rseichter / fangfrisch

Update and verify unofficial Clam Anti-Virus signatures
GNU General Public License v3.0
86 stars 10 forks source link

Improve setup on Gentoo #4

Closed r7l closed 4 years ago

r7l commented 4 years ago

Hello, seeing that you're also the maintainer on Gentoo, i was wondering if it might be possible to improve the setup on there. I've not tested Arch which also seem to have a package. Maybe it's similar there.

Fangfrisch was suggested as a new alternative to clamav-unofficial-sigs but when installing it, it lacks of a number of defaults that would usually be provided from other packages. I got it working but migrating a number of machines to it, some would have to rerun the commands that would simply set documented defaults.

The package does not create a /var/lib/fangfrisch directory when it is essential to have it. Even if you're not going to add the creation of such a directory to the Ebuild, it might be a good idea to add the initial commands to the Ebuild info instead of the link to your homepage. As a new user, i was forced to go to your website just to find 2 or 3 commands that i needed to enter.

The other thing i wonder about is the lack of a default config file location, when the file is already placed there. Wouldn't it be easier if Fangfrisch use the default but keeps the -c option for those using another location? That way you could simply run fangfrisch initdb without the need of providing the default config, that was placed to /etc/fangfrisch.conf during install.

rseichter commented 4 years ago

I got it working but migrating a number of machines to it, some would have to rerun the commands that would simply set documented defaults.

I am curious, what commands are these? On the machines I maintain, sharing fangfrisch.conf and a crontable suffice, which leaves calling "fangfrisch initdb" as the one command I can think of.

The package does not create a /var/lib/fangfrisch directory when it is essential to have it.

The SQLite DB could be stored anywhere, /var/lib/fangfrisch is just an example. In the current ebuild version, I deliberately don't depend on an acct-user/* package, but rely on an existing user account like clamav. Thus, there is no defined home directory like /var/lib/fangfrisch.

One could use /var/lib/clamav/fangfrisch.sqlite, but that directory is owned by another ebuild.

Even if you're not going to add the creation of such a directory to the Ebuild, it might be a good idea to add the initial commands to the Ebuild info

Fair point, I can change the post-install message.

The other thing i wonder about is the lack of a default config file location, when the file is already placed there.

I considered it. However, different OS platforms have different ideas. The Arch package for example uses /etc/fangfrisch/fangfrisch.conf. What to do with Windows I don't even know. I could implement a config file search using a couple of well-known locations, but that would leave the door open to end user confusion if files exist in multiple places. Having the user specify -c foo.conf avoids all ambiguity.

Also, once Fangfrisch is set up, it requires next to no maintenance, other than perhaps changing a setting in the config file. The initdb action you mentioned is required only once.

r7l commented 4 years ago

I am curious, what commands are these? On the machines I maintain, sharing fangfrisch.conf and a crontable suffice, which leaves calling "fangfrisch initdb" as the one command I can think of.

It might be the developers perspective as you know the program. But as a user of this program that has never seen it before, it's not clear right away and it took me a while to go through the files when i was installing it for the first time. What i had in mind when asking for improvements were Ebuilds that come with a clear instruction info after install. If you don't want to provide /var/lib/fangfrisch it could simple be added to that info section that is shown after installing it. Maybe even with a check if that directory exists or not.

I went to your website and followed what's said there:

mkdir -p /var/lib/fangfrisch
cd /var/lib/fangfrisch
fangfrisch --conf /etc/fangfrisch.conf initdb

The install documentation on your website is pretty much for the python setup using pip but i don't think the website is wrong in any way. Actually it's straight forward. What i meant is that it's not entirely clear what status the program has after it's been installed on Gentoo.

The config file might be a matter of taste. You're right on that. It's not that much of an issue.

I was just trying to point out that other users might find that setup info useful when Fangfrisch currently is shown as a drop in replacement for the soon to be removed clamav-unofficial-sigs. It's definitely the better option when compared to it.

Another thing i've noted is that you say on your documentation that running Fangfrisch as root is not a good idea. Wouldn't that mean i need to chown clamav:clamav /var/lib/fangfrisch and run the initdb command with the clamav user already?

rseichter commented 4 years ago

I have opened a pull request for an enhanced ebuild version (I have no commit rights for the Gentoo tree). The post-install message is now verbose and lists the necessary steps. While working on this PR I realised, like you did, that I forgot to mention the ownership of /var/lib/fangfrisch, so I will be correcting my own documentation accordingly.

rseichter commented 4 years ago

I updated my docs. As is now shown in the example, I recommend creating the DB using a sudo call. According to acct-user/clamav, that user does not have a home directory or login shell after a fresh install, but sudo works.

r7l commented 4 years ago

Sounds good. Thanks!

rseichter commented 4 years ago

QA checks for my pull request were successful. Now there is nothing for me to do but wait that somebody processes the PR. Hence, I'll close this issue.