Tracker3 Core Dumps on FreeBSD with GNOME

Tracker3 core dumps on FreeBSD with GNOME.

If you have a FreeBSD desktop computer with the GNOME desktop environment, or similar open source desktop computer, you might have noticed random Tracker3 core dumps on the file system.

$ find . -name '*.core'
./bin/tracker3.core
./projects/tracker3.core

You might also have noticed messages about Tracker3 error, exit and core dumps in system logs.

$ dmesg
pid 2416 (tracker3), jid 0, uid 1001: exited on signal 10 (no core dump - other error)
pid 2451 (tracker3), jid 0, uid 1001: exited on signal 10 (no core dump - other error)
pid 2848 (tracker3), jid 0, uid 1001: exited on signal 10 (core dumped)

What is Tracker3?

A first approach to learning, what Tracker3 is, would be to open its manual page. Unfortunately, as often seen with utilities like this, they do not include a manual by default.

$ man tracker3
No manual entry for "tracker3"

A search for “tracker3 official website” on search engines does not give a clean answer. The utility seems to not have a website nor a coding home listed on search engines. Again, a sign of poor coding and project management skills.

Thanks to Freshports, more about the utility can be learned. Here, it is described as a system utility, that index and harvest meta data for GNOME utilities, such as the file management utility Nautilus. A rather useless feature, in my oppinion. Its undocumented operation is a privacy concern. It might even scan files across datasets and partitions, which could be privacy concern.

Tracker is a powerful desktop-neutral first class object database, tag/metadata
database, search tool and indexer.

Tracker is also extremely fast and super efficient with your systems memory when
compared with some other competing frameworks and is by far the fastest and most
memory efficient Nautilus search and Deskbar backends currently availble.

It consists of a common object database that allows entities to have an almost
infinte number of properties, metadata (both embedded/harvested as well as user
definable), a comprehensive database of keywords/tags and links to other
entities.

Freshports does have a reference to a page, which seems to be about Tracker3 by GNOME, but aligned with their poor views on privacy and security, the site either does not work or blocks privacy VPNs.

<Code>AccessDenied</Code>

It does not come with a manual by default. However, according to FreeBSD Manual Pages, there are no known manual for it. I even tried compiling it with option for installing its manual pages. It was not installed.

===> The following configuration options are available for tracker3-3.5.3_3:
DOCS=on: Build and/or install documentation
MAN=off: Install manual pages

It is a dependency of Nautilus, which does not have an option for disabling this.

Removing Tracker3 from GNOME and FreeBSD.

If a system utility, that index and harvest the file system for filenames and metadata in the background, is not needed or unwanted, it might be a logic approach, that Tracker3 is removed with the package manager. However, as seen in the output, it does not seem, that GNOME wanted that to be an option.

# pkg remove tracker3
Checking integrity... done (0 conflicting)
Deinstallation has been requested for the following 7 packages (of 0 packages in the universe):
Installed packages to be REMOVED:
evince: 43.1_11
gnome-lite: 42_5
gnome-terminal: 3.44.2_3
gnome-tweaks: 40.10_4
nautilus: 42.2_3
sushi: 42.0_5
tracker3: 3.5.3_3
Number of packages to be removed: 7
The operation will free 38 MiB.
Proceed with deinstalling packages? [y/N]:

Tracker3 in GNOME is a privacy concern.

Tracker3 is deeply embedded in GNOME. Tracker3 comes enabled without consent from the user. It is a forced installation, that comes with no clear information, warning nor documentation. It is difficult or impossible to disable or deinstall. It scans file systems, datasets and partitions. It stores metadata from files, that has been downloaded temporary. It stores metadata for files, that has been deleted. It stores metadata in internal database and hidden files. It does not have an interface to manage data. This is not a utility, that fits well with the UNIX philosophy. Tracker3 is a privacy concern.

Disabling Search and Tracker3 in GNOME.

Tracker3 can to some degree be disabled from within GNOME by going to the Settings menu and Search and then disabling Application Search. This also seems to reduce the amount of core dumps. However, I have been able to find any documentation about this.

Switching from GNOME to XFCE.

Switching desktop environment from GNOME to XFCE, or similar more simple, resource friendly and privacy focused desktop environment, could be a better over-all solution. The switch to XFCE should be fairly straight forward, because it is also based on X. Unfortunately, there is no guarantee, that XFCE will not implement the same or similar kind of file system metadata scanner at some point. A reason is, that some users and project contributors believe, that a desktop search feature is more important than privacy and security.

References.

FreeBSD User Groups in Denmark

FreeBSD user groups in Denmark.

Here in Denmark, to my knowledge, there is no active FreeBSD user groups. We have had BSD and UNIX user groups in the past, but for reasons, unknown to me, they have become inactive or dissolved, despite that their inactive websites and public listings still exist. Examples of these are BSD-DK and DKUUG. DKUUG was probably the most influensive and active over the years and, to my knowledge, arranged meetings, workshops and conferences, such as Open Source Days.

While not being a user group, we also had a yearly 7 day camp type conference The Camp, which existed until recently.

Related user groups in Denmark?

We do have other user groups, that is more or lesss related to FreeBSD user groups.

Linux comes to mind as one of the first related systems, but for reasons, unknown to me, many, if not almost all, of our Linux user groups (LUGs) have also become inactive or dissolved. I have only head of Linux Roskilde, which should have regular meetings at the local university. Wikipedia has a list of some of the memorable LUGs. I remember the large SSLUG and the yearly Linuxforum conference from the good old days.

If I look at non-operating system related user groups, there is the more recently popular topic of technology, hacking and security. When I mention hacking, I mean it in its positive sense, where users invent, improve and change systems and technology. We have a very active user group Cryptohagen in Copenhagen which has been meeting monthly and discussing privacy related topics for 10 years.

If I look at more camp like conferences, we have a yearly 7 day camp type conference Bornhack, which, to my knowledge, attract hackers (in a positive sense), who like to build things and share diversity in a wide range of technical topics. We also have SommerHack, which I believe, is very similar. We have Labitat in Copenhagen, a very technical hacking or construction user group. It has been around for a long time, seems very active, and seems to be a very friendly user group.

If I look over to more web related user groups, WordPress Copenhagen comes to mind. This is a somewhat active user group, who announces their meetings on MeetUp.

Alternatives to user groups.

I can see, how the need for physical FreeBSD user groups has become less important in modern post-covid times, because users can seek and find practical advice on Internet platforms, such as FreeBSD Forums and the FreeBSD server on Discord. While these platforms are brilliant at solving technical issues, they are not so brilliant, when it comes to real life applications of solutions, career opportunities and social networking.

Create a FreeBSD user group?

I have been thinking about creating a FreeBSD user group for some time. The purpose would be to acknowledge the value of sharing a common interest or enthusiasm and meeting in real life in an informal and friendly environment to discuss FreeBSD, BSD and UNIX related subjects and projects over a nice cup of coffee with or without a computer at hand.

A good name for a FreeBSD user group?

The name for such a FreeBSD user group should probably be descriptive and follow the naming tradition for user groups, that can also be seen on FreeBSD User Groups. This has lead me to the name Copenhagen FreeBSD User Group with the shorter abbreviation CFUG.

What are your thoughts?

I would love to hear your thoughts about a creating a FreeBSD user group for users and enthusiasts in Copenhagen. You might even be interested in joining such a group or contributing with speaks on different topics.

References.

Converting Line Breaks To Paragraph

Some text files has line breaks, that might look good on fixed width screens, but can not be used as paragraph in other editing software. The is cause by line breaks.

$ cat input.txt 
The computer was a powerful WOPR machine for game simulation.
You can play a nice game of chess or an exciting war game.

This one-liner will replace line breaks with space and then remove any double spaces. It will also make sure, that the file ends with a new line, so it meets the POSIX standard definition of a text file.

$ (tr '\n' ' ' < input.txt | sed 's/  */ /g'; echo) > output.txt

The result is one clean paragraph, that will scale to any screen width or be used in other editing software.

$ cat output.txt 
The computer was a powerful WOPR machine for game simulation. You can play a nice game of chess or an exciting war game.

Compact Camera Requirements 2025

My requirements for a compact camera for fun and creative point-and-shoot photography in 2025.

The Purpose

  • Point-and-shoot daytime and nighttime street photography of people, buildings and city atmosphere for social media or print.
  • Low key creative portraits and self-portraits outside at interesting places and scenery for social media.
  • Snapshot documentation photography.

The Challenges

These requirements are really not that much to ask for, when thinking of the amount of optical and computing technology, that have been put into modern cameras. However, despite of this, the engineers of many cameras, even very expensive ones, still fail to meet basic requirements.

  • The vast amount of settings in modern cameras can take too much time to dial in, if the menu system is not intuitive and well organized.
  • Modern cameras can have a combination of sensor and processor, that surpricingly create less sharp and color accurate pictures.
  • Modern self-portrait features with automatic re-focus and interval shooting is surprincly not a feature in any camera. Canon is known to cripple users by removing fundamental features like this.
  • Operating in low light conditions, such as here in Scandinavia, where users struggle with horrible contrast, blurry images and low image quality, because of poor performance from modern sensors and processors, that is so bad, that not even a professional lens can compensate for it. Hello, Canon!
  • Looking through impressive mega-pixel specifications and viral marketing for modern and expensive cameras, that actually perform worse than decades old cameras, such as the Canon IXUS 65 from 2006 and the Canon EOS D30 from 2001 with a nifty-fifty 50mm f/1.8.

Handling Requirements

  • The camera must be compact and light-weight, so it can be stored in a pocket, small bag or polstered bike frame cycle bag and used for fun and in-the-moment creative or documenting snapshots.
  • The compact size and design should make it appear non-intrusive, so people will not notice it and act naturally. Its design might even make people want to act and have fun while shooting.
  • Quick start-up and shooting with automatic settings to ensure, that one-time scenes are captured.

Release Requirements

  • The camera must have a self-timer, that can release the shutter automatically after at least 10 seconds, while the subject walks from behind the camera to the front of the camera.
  • The camera should have built-in interval timer shooting, so it can shoot a series of images automatically, while the subject is given at least 5 seconds to re-compose, before each shot. This is different from burst shooting.
  • The camera should support a physical wireless remote control with instant or self-timer release button. Many cameras has smartphone applications, that aim to act like a remote control, but the wireless connection implementation is often neither fast nor stable for use. Reason is probably weak antennas and signal interfering noise.

Focus Requirements

  • When using the self-timer or interval timer shooting, the camera must be able to re-focus on eyes or subject at the time of shutter release. Not when the button is pressed.
  • The camera should support fixed focus to operate fast in low light scenes.

Optical Requirements

  • The images should retain a natural and pleasing look of face, body and background. If the lens is too wide, and thus the distance too short, the nose might appear overly large in relation to the head and body. If the lens is too narrow, and thus the distance too long, the nose and face might appear too small in relation to the head and body. This means, that the focal length should be around the 35 mm full frame equivalent. It can be lower for a more modern and creative street photography look.
  • The camera should have a built-in flash, that use light metering to obtain a well-lit image, which is crucial for good-looking selfies at the café and group portraits indoor or in low light environments.
  • The camera might have built-in filters, or support external filters, such as diffusion and polarization filters.

Sensor Requirements

  • The performance of the sensor must be so good, that it can operate in low light scenes and conditions, such as classic cloudy and grey days in Scandinavia without the user struggling with low quality images. This is actually a problem with many cameras, including very expensive cameras, such as Canon DSLR cameras with L-series lenses.

Processor Requirements

  • The camera must have a neat color grading, that portraits adult scandinavian skin and face beautifully, despite the sharpness of its modern lens and sensor.
  • The camera should have optional smooth skin effect and beauty filters, that can compensate for harsh light or similar worsening of adult subject features, when modern high megapixel cameras are used.
  • The camera must support creative custom color profile recipes, that can be installed or entered manually. Not just monochrome or color tints, but fun, expressive and creative charactistic looks, such as filmic color profiles.
  • The user should be able to take and review an image in-camera and apply different recipes, before transferring it to a smartphone and sharing it on social media.

Privacy Requirements

  • The camera should be able to optionally clear traceable metadata, such as body serial number, geographic location and owner name, from images, that are shared on social media.
  • The camera should have some kind of theft prevention, that either helps the user get the camera back or at least clear the pictures and render the camera useless.

Candidates

I have found onw candidate for a compact camera, that meet the requirements to an acceptable degree.

  • Fujifilm X100VI. 23mm (35mm) f/2.0. 12,8 x 7,4 x 5,5 cm. 521 g. Uncertain about automatic focus for self-timer and interval timer portraits. Does not have privacy features. 13.790 DKK.

Other Candidates?

I have found some candidates for a compact camera, that unfortunately not quite meet the requirements, such as lack of built-in flash and poor low light performance.

  • Canon PowerShot V1. 8-25 mm (16-50mm) f/2.8. 11,8 x 6,8 x 5,3 cm. 426 g. Focus for selfies and self-timer portraits? Does not have a built-in flash. Does not have privacy features. 7.990 DKK.
  • Ricoh GR IIIX HDF. 26,3mm (40mm) f/2.8. 11,3 x 6,4 x 3,3 cm. 262 g. Does not have a built-in flash. Does not have privacy features. 8.995 DKK.
  • Ricoh GR IIIX. 26,3mm (40mm) f/2.8. 11,3 x 6,4 x 3,3 cm. 262 g. Does not have a built-in flash. Does not have privacy features. 8.250 DKK.
  • Sony ZV-1. 5.475 DKK.
  • Sony CyberShot RX100VII. (24-200mm) f/2.8-4.5. Does not have a built-in flash. 8.790 DKK.

Compact DSLR Alternatives?

There are smaller and light-weight compact DSLR cameras, that could be an alternative to a compact camera. Benefits of these are more control of exposure, lens options, flash options and wider applications. The camera might be performing better in more different situations, but can be more expensive, less convenient and more intrusive.

  • Canon EOS 250D with Canon EF-S 24mm F/2.8 STM (39mm f/4.5) and Canon EF-S 50mm F/1.8 STM (81mm f/2.8). 622 g. Does not fit into a bike frame bag nor a pocket, but does fit into a sling bag. Does not have interval shooting, but does have remote control. Does not have privacy features. 7.995 DKK.
  • Sony A7C II with Sony FE 40mm F2.5 G. 12,4 x 7,1 x 11,5 cm. 634 g. Does not fit into a bike frame bag nor a pocket, but does fit into a sling bag. Does not have privacy features? 20.645 DKK.

More

Reducing or disabling swap on FreeBSD

Is it possible to reduce or disable swap memory on FreeBSD? In this example, 32 GB swap is enabled by using 16 GB on each of 2 SSDs. I would prefer this to be closer to 8 GB by using 4 GB on each of 2 SSDs.

Information about current swap devices.

Get information about currently active swap devices and sizes.

# swapinfo -h
Device Size Used Avail Capacity
/dev/nda0p3 16G 0B 16G 0%
/dev/nda1p3 16G 0B 16G 0%
Total 32G 0B 32G 0%

Get information about partitions on disks and GEOM providers. Each device and partition has a unique identifier, that can be used to make changes.

# gpart show
=> 40 4000797280 nda0 GPT (1.9T)
40 532480 1 efi (260M)
532520 1024 2 freebsd-boot (512K)
533544 984 - free - (492K)
534528 33554432 3 freebsd-swap (16G)
34088960 3966707712 4 freebsd-zfs (1.8T)
4000796672 648 - free - (324K)
=> 40 3907029088 nda1 GPT (1.8T)
40 532480 1 efi (260M)
532520 1024 2 freebsd-boot (512K)
533544 984 - free - (492K)
534528 33554432 3 freebsd-swap (16G)
34088960 3872940032 4 freebsd-zfs (1.8T)
3907028992 136 - free - (68K)

The devices can be listed. This also shows the naming convention for the partitions.

# gpart status
nda0p1 OK nda0
nda0p2 OK nda0
nda0p3 OK nda0
nda0p4 OK nda0
nda1p1 OK nda1
nda1p2 OK nda1
nda1p3 OK nda1
nda1p4 OK nda1

Disabling swap on FreeBSD.

Move swapped pages out from swap devices and disable them.

# swapoff -a
swapoff: removing /dev/nda0p3 as swap device
swapoff: removing /dev/nda1p3 as swap device

If you want to re-enable swap, it is as easy as reverting that.

# swapon -a
swapon: adding /dev/nda0p3 as swap device
swapon: adding /dev/nda1p3 as swap device

Reducing swap partitions?

Is it possible to reduce the swap partition on each SSD and then have ZFS use the free space? Is it possible to split the partitions?

Deleting swap partitions?

Delete or comment out the swap partitions from the static information about file systems. This ensures, that they do not get re-mounted during boot.

# nano /etc/fstab
# Device Mountpoint FStype Options Dump Pass#
/dev/gpt/efiboot0 /boot/efi msdosfs rw 2 2
#/dev/nda0p3 none swap sw 0 0
#/dev/nda1p3 none swap sw 0 0
proc /proc procfs rw 0 0

Is it possible to delete the swap partition on each SSD and then have ZFS use the free space? The handbook does mention growing partitions, but it is not clear, if ZFS can in fact grow directly or it will be necessary to re-create partitions, format, import and encrypt.

Links

Configuring Bourne shell on FreeBSD

What is a Bourne shell?

The Bourne shell, also often referred to as /bin/sh or just sh, has been a default shell for users on FreeBSD for many major versions, while C shell was the default shell for root. From FreeBSD 14, the default shell for root is the Bourne shell.

Changing to Bourne shell on FreeBSD.

The shell for a user in FreeBSD can be changed with the chsh utility.

Configuring the Bourne shell in FreeBSD.

The Bourne shell in FreeBSD is configured by editing the global configuration file /etc/profile and/or the local user configuration file .shrc. These files contains commands, that will be executed, when the shell is started, such as when the user logs into the system.

In this example, the global configuration sets the blocksize for default file operations, ccache settings, the default editor, he default pager and a prompt. The prompt shows a “$” for a normal user and a “#” for root.

# nano /etc/profile
BLOCKSIZE=K
CCACHE=1
CCACHE_DIR=/var/cache/ccache
EDITOR=/usr/local/bin/nano
PAGER=less
VISUAL=$EDITOR
if [ "$(id -u)" -eq 0 ]; then
  PS1='# '
else
  PS1='$ '
fi
export BLOCKSIZE CCACHE CCACHE_DIR EDITOR PAGER PS1 VISUAL

If the user would like to add or change custom settings, then this can be set in the local user configuration file. If this is not relavant, the file should be deleted, because it does contain settings, that could interfere with the global settings.

$ rm .shrc
# rm .shrc

Testing.

The Bourne shell can now be tested. In this example, a user log in and switch to root.

$ whoami
jennifer
$ su -
Password: Pencil
# whoami
root
# echo $EDITOR
/usr/local/bin/nano

The different kinds of shells.

There are different kinds of shells, such as login shells and sub-shells. The sub-shells are also known as non-login shells. The difference is, that a login shell reads global configuration files, while sub-shells just inherits the settings from the original shell. In this example, the first shell will be a login-shell, while the second will be a sub-shell.

FreeBSD/amd64 (wopr) (ttyv0)

Login: stephen
Password: Pencil
__ __________ ____________________
/ \ / \_____ \\______ \______ \
\ \/\/ // | \| ___/| _/
\ // | \ | | | \
\__/\ / \_______ /____| |____|_ /
\/ \/ \/
Greetings, professor Falken. How about a nice game of chess?
$ sh
$ su stephen
$ logout
$ logout

More about shells.

DOAS for FreeBSD

What is DOAS?

doas is a utility, that can permit users to execute commands as root or as another user. Groups as well as users can be permitted to do.

Installing DOAS on FreeBSD.

# pkg install doas

The manual for doas is nice and simple.

# man doas.conf

Configuring DOAS.

In this example, I will configure doas to permit members of the wheel group to use the FreeBSD service command script, that can start and stop services, such as an nginx web server, without a password. This is a safe and trivial command to disable password requirement for.

# nano /usr/local/etc/doas.conf
permit nopass :wheel as root cmd service

If I wanted to limit, which arguments, that can be passed to the command, I could specifiy this with the args feature.

# nano /usr/local/etc/doas.conf
permit nopass :wheel as root cmd service args nginx onestart

Testing.

$ doas service nginx onestart
nginx: the configuration file /usr/local/etc/nginx/nginx.conf syntax is ok
nginx: configuration file /usr/local/etc/nginx/nginx.conf test is successful
Starting nginx

Be aware, that doas requires, that the command is matched exactly. The following definition will not work.

# nano /usr/local/etc/doas.conf
permit nopass :wheel as root cmd /usr/sbin/service args nginx onestart
$ doas service nginx onestart
doas: Operation not permitted

SUDO for FreeBSD

Do not use sudo for FreeBSD. I tested sudo for FreeBSD and despite, that it is widely used in online procedures and documentation, I had to conclude, that it is somewhat poorly documented and simply does not work properly for FreeBSD.

# visudo
david ALL=(ALL) NOPASSWD: /usr/sbin/service nginx onestart

One thing, in particular, that did not work, was the ability for a member of the wheel group to execute a trivial safe command as root without the requirement for a password. sudo kept asking for password.

$ id
$ sudo service nginx onestart
Password:
sudo: a password is required

I recommend deinstalling sudo and instead using security/doas. This is also recommended on the FreeBSD Forums.

# rm /usr/local/etc/sudo.conf
# rm /usr/local/etc/sudoers
# pkg remove sudo

References