# clamav now requires python?



## Ruler2112 (Apr 12, 2010)

I noticed that clamav was out of date on my box, so I started to update it.  After downloading the clamav file, it started downloading/installing python.  I was able to find a reference online to python being required for certain tests.  Is python really a requirement for clamav now or did somebody forget to add an option for it?  I like to keep my server clean and only install what I need, which is why I'm wondering about this.

(I looked in the makefile and couldn't see anything obvious.)  I was unable to find anything on the clam site about python being required, so I'm guessing it's BSD-specific.


----------



## DutchDaemon (Apr 12, 2010)

```
[/usr/ports/security/clamav]# make build-depends-list
/usr/ports/devel/gmake
/usr/ports/devel/libcheck
/usr/ports/lang/python26
```

It's a 'hard' requirement, it seems, but only for building clamav, not for running it. So you could probably ditch Python after the installation.


----------



## Ruler2112 (Apr 12, 2010)

Clam is written in C - why would it need python to compile?  I've built the various revisions of clam 0.94 and 0.95 over the past couple years and not ever installed python.

Do you happen know where the requirements for each port are stored?  (You probably see where I'm heading...  )


----------



## DutchDaemon (Apr 12, 2010)

[cmd=]make run-depends-list[/cmd] and [cmd=]make build-depends-list[/cmd] simply query the relevant /usr/ports/INDEX-* file (it's the 8th field for build dependencies, and the 9th for run dependencies, with field separator="|").


```
# grep ^clamav-0.96 INDEX-8 | awk -F\| '{print $8}'
gettext-0.17_1 gmake-3.81_3 libcheck-0.9.8 libiconv-1.13.1_1 python26-2.6.4

# grep ^clamav-0.96 INDEX-8 | awk -F\| '{print $9}'
arc-5.21o_1 arj-3.10.22_3 lha-1.14i_6 unzoo-4.4_2
```


----------



## phoenix (Apr 12, 2010)

Go to the source, ClamAV website and read through the changes for 0.96.  A lot has changed.  There's a bunch of LLVM stuff in there now, and some C++ stuff, and so on.

If you don't want all the extra build-dependencies, then stick to using packages.

This is not a BSD issue, nor a ports issue.


----------



## Ruler2112 (Apr 13, 2010)

phoenix said:
			
		

> This is not a BSD issue, nor a ports issue.



I must respectfully disagree phoenix.  This is why:

Based on the info on DDs last post, I tried modifying the INDEX-7 file and rebuilding the database with [cmd=]portsdb -u[/cmd] - python26 was still listed as a requirement.  I let out a big sigh and wondered if I'll ever get to the point where stuff works the way it's supposed to without my fighting with it.

I decided to try things the old way.  I downloaded the clam source file, untarred it, and did [cmd=]./configure[/cmd] and [cmd=]make[/cmd].  (This gave me flashbacks to when I used Linux, but I'm hoping they'll go away.  )  It built successfully and clamscan runs.  I did not install because I'd like to stick to the ports if at all possible, even if that means struggling through figuring out why my changing the INDEX file to remove the dependency didn't work.



It's my belief that python26 was incorrectly added as a dependency for clamav in the latest 0.96 version.  If it truly *is* a new dependency, the description for the port should be updated to not have "written entirely in C" in the single-line description.

I've sent a message to the port maintainer asking him for clarification and will update this thread when I hear back from him.


----------



## DutchDaemon (Apr 13, 2010)

https://wiki.clamav.net/Main/UpgradeNotes096 ->



> (Optional) to run the tests for the JIT you need Python 2.4+, and GNU make, at build time only



The defaults for the port include:


```
[X] LLVM          Enable JIT Bytecode compiler
```

The port's default config includes an option that pulls in Python. And, as noted, it's a build dependency only, so Python can be deleted after installation (if nothing else needs it as a run dependency).

I don't think it's anything FreeBSD-specific, it's just that that particular option defaults to 'On'.


----------



## Ruler2112 (Apr 13, 2010)

Thanks DD - that did it.  I was under the impression that ports updated with additional options had the defaults set to match behavior in versions prior to the option existing?  (At least this is what I was told when I submitted a patch to a port maintainer to add an option.)

Related to the OT, but on a tangent, how do you find this stuff?  I spent almost two hours today going over the clam site, reading the change log, and googling and never found the upgrade notes page.


----------



## fronclynne (Apr 13, 2010)

Ruler2112 said:
			
		

> Related to the OT, but on a tangent, how do you find this stuff?  I spent almost two hours today going over the clam site, reading the change log, and googling and never found the upgrade notes page.



He's magical.  But just like SchrÃ¶dingers cat, the act of direct observation places him in a definite state, and everyone knows that definite states aren't magical.


----------



## phoenix (Apr 13, 2010)

The release announcement e-mail included the link to the release notes, and to the upgrade notes.  But a simple "clamav 0.96 python" search on google shows a lot of hits.    There's even a couple of Debian bugs asking why Python is now required to install ClamAV.

Like I said, it's not a FreeBSD or ports issue.  It's the way things work with the new version of ClamAV.  If you don't like the Python dep, complain to the ClamAV devs.


----------



## DutchDaemon (Apr 13, 2010)

Ruler2112 said:
			
		

> Related to the OT, but on a tangent, how do you find this stuff?  I spent almost two hours today going over the clam site, reading the change log, and googling and never found the upgrade notes page.



It was literally two clicks away 

http://www.clamav.net -> Announcing ClamAV 0.96 -> bottom of that page.


----------



## Ruler2112 (Apr 13, 2010)

I feel like an idiot... spent nearly 2 hours reading through BS online, looking at the Makefile, etc and didn't find it until you posted that link DD.    I do have a suggestion for the ports system, but will start a new thread on it as that's where it should go.

Thanks for your help guys.


----------

