Package: python-clamav Version: 0.4.1-1+b1 Severity: normal This package needs to be updated to support the new clamav release (clamav 0.95/libclamav6). Proposed NMU diff is attached.
-- System Information: Debian Release: 5.0.1 APT prefers stable APT policy: (500, 'stable') Architecture: i386 (i686) Kernel: Linux 2.6.26-2-686 (SMP w/1 CPU core) Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8) Shell: /bin/sh linked to /bin/bash Versions of packages python-clamav depends on: ii clamav-freshclam [cl 0.94.dfsg.2-1lenny2 anti-virus utility for Unix - viru ii libc6 2.7-18 GNU C Library: Shared libraries ii libclamav5 0.94.dfsg.2-1lenny2 anti-virus utility for Unix - libr ii python 2.5.2-3 An interactive high-level object-o ii python-support 0.8.4 automated rebuilding support for P python-clamav recommends no packages. python-clamav suggests no packages. -- no debconf information
diff -u python-clamav-0.4.1/debian/changelog python-clamav-0.4.1/debian/changelog --- python-clamav-0.4.1/debian/changelog +++ python-clamav-0.4.1/debian/changelog @@ -1,3 +1,13 @@ +python-clamav (0.4.1-1.1) unstable; urgency=low + + * Non-maintainer upload. + * Build against libclamav6/clamav 0.95 + - modified pyclamav.c source to use the new API functions + - cleaned up some old code for clamav 0.75 + - updated Build-Depends + + -- Imre Gergely <[email protected]> Sat, 18 Apr 2009 17:00:51 +0300 + python-clamav (0.4.1-1) unstable; urgency=low * New upstream release diff -u python-clamav-0.4.1/debian/control python-clamav-0.4.1/debian/control --- python-clamav-0.4.1/debian/control +++ python-clamav-0.4.1/debian/control @@ -2,7 +2,7 @@ Section: python Priority: optional Maintainer: Cédric Delfosse <[email protected]> -Build-Depends: debhelper (>= 5.0.37.2), libclamav-dev, python (>= 2.3.5-11), python-support (>= 0.3), python-all-dev +Build-Depends: debhelper (>= 5.0.37.2), libclamav-dev (>= 0.95), python (>= 2.3.5-11), python-support (>= 0.3), python-all-dev Standards-Version: 3.7.3 Package: python-clamav only in patch2: unchanged: --- python-clamav-0.4.1.orig/pyclamav.c +++ python-clamav-0.4.1/pyclamav.c @@ -33,25 +33,6 @@ /* ********************************************************* */ -/* To be able to compile with - releases 0.75 of libclamav - - Where cl_free was cl_freetrie - and cl_build was cl_buildtrie - CL_SCAN_STDOPT did not exist -*/ -#ifndef CL_SCAN_STDOPT -#define CL_SCAN_STDOPT CL_RAW | CL_ARCHIVE | CL_MAIL | CL_DISABLERAR | CL_OLE2 | CL_ENCRYPTED -void cl_free(struct cl_node *rootnode) { - cl_freetrie(rootnode); - return; -} - -int cl_build(struct cl_node *rootnode) { - return cl_buildtrie(rootnode); -} -#endif - /* For python prior to 2.3 */ #ifndef PyMODINIT_FUNC #define PyMODINIT_FUNC void @@ -68,11 +49,9 @@ unsigned int signumber = 0; /* Structures for clamav */ -struct cl_node *root = NULL; -struct cl_limits limits; +struct cl_engine *engine = NULL; struct cl_stat dbstat; - /* * If the virus database has been changed, then * free the current tree and reload the new one @@ -85,22 +64,22 @@ /* If yes : reload DB */ if (cl_statchkdir(&dbstat) == 1) { - /* free the tree */ - cl_free(root); + /* free the engine */ + cl_engine_free(engine); signumber=0; - root=NULL; + engine=NULL; /* Load DB */ - if((ret = cl_load(cl_retdbdir(), &root, &signumber, CL_DB_STDOPT))) { + if((ret = cl_load(cl_retdbdir(), engine, &signumber, CL_DB_STDOPT)) != CL_SUCCESS) { /* Raise exception with error message */ PyErr_SetString(PyclamavError, cl_strerror(ret)); return -2; } - /* build the final tree */ - if((ret = cl_build(root))) { - /* free the partial tree */ - cl_free(root); + /* prepare the engine */ + if((ret = cl_engine_compile(engine))) { + /* free the engine */ + cl_engine_free(engine); /* Raise exception with error message */ PyErr_SetString(PyclamavError, cl_strerror(ret)); return -2; @@ -231,7 +210,7 @@ return NULL; } - ret = cl_scanfile(file_to_scan, &virname, &size, root, &limits, CL_SCAN_STDOPT); + ret = cl_scanfile(file_to_scan, &virname, &size, engine, CL_SCAN_STDOPT); /* Test return code */ switch (ret) { @@ -278,17 +257,21 @@ /* Set documentation string for the module */ PyDict_SetItemString(dict, "__doc__", PyString_FromString("pyclamav :\n\n This is a python binding to the C libclamav library\n (from the Clamav project - http://www.clamav.net).\n It can be used to easily allow a Python script to scan\n a file or a buffer against known viruses.\n\nAuthor : Alexandre Norman [[email protected]]\n\nfunctions :\n - scanfile(string filename) : Scan a file for virus.\n - get_numsig() : Return the number of known signatures.\n - get_version() : Return the version of Clamav.\n - version() : Return the version of pyclamav.\n")); + /* initialize libclamav */ + cl_init(CL_INIT_DEFAULT); + engine = cl_engine_new(); - if((ret = cl_load(cl_retdbdir(), &root, &signumber, CL_DB_STDOPT))) { + if((ret = cl_load(cl_retdbdir(), engine, &signumber, CL_DB_STDOPT))) { /* Raise exception with error message */ PyErr_SetString(PyclamavError, cl_strerror(ret)); + cl_engine_free(engine); return; } - /* build the final tree */ - if((ret = cl_build(root))) { - /* free the partial tree */ - cl_free(root); + /* prepare the engine */ + if((ret = cl_engine_compile(engine)) != CL_SUCCESS) { + /* free up the engine resources */ + cl_engine_free(engine); /* Raise exception with error message */ PyErr_SetString(PyclamavError, cl_strerror(ret)); return; @@ -299,15 +282,6 @@ memset(&dbstat, 0, sizeof(struct cl_stat)); cl_statinidir(cl_retdbdir(), &dbstat); - - - /* set up archive limits */ - memset(&limits, 0, sizeof(struct cl_limits)); - limits.maxfiles = 1000; /* max files */ - limits.maxfilesize = 10 * 1048576; /* maximal archived file size == 10 Mb */ - limits.maxreclevel = 5; /* maximal recursion level */ - limits.archivememlim = 0; /* disable memory limit for bzip2 scanner */ - return ; }

