[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Proposed upload for python-clamav



In order to keep python-clamav in squeeze, I've agreed to take over 
maintainership (in the DPMT).  I'm attaching the proposed diff for my upload to 
unstable for approval.  The reason to convert to a patch system is so that the 
package will work with the DPMT svn layout.

Please approve/let me know what else needs doing.

Scott K

P.S. Please cc me on any replies as I am not subscribed.
diff -Nru python-clamav-0.4.1/debian/changelog python-clamav-0.4.1/debian/changelog
--- python-clamav-0.4.1/debian/changelog	2010-09-22 16:25:24.000000000 -0400
+++ python-clamav-0.4.1/debian/changelog	2010-09-22 16:15:24.000000000 -0400
@@ -1,3 +1,19 @@
+python-clamav (0.4.1-2) unstable; urgency=low
+
+  * Agreed maintainer change to Debian Python Modules Team
+    - Add myself to uploaders
+    - Thanks to Cédric Delfosse for his work maintaining python-clamav
+  * Acknowledge NMU (Closes: #524645)
+    - Thanks to Imre Gergely
+  * Convert to source format 3.0 (Quilt) to add patch system
+    - Convert existing inline change to debian/patches/clamav-095-compat.patch
+  * Improve debian/copyright
+  * Add Homepage to debian/control and bump standards version to 3.9.1.0
+    without further change
+  * Remove obsolete debian/pycompat file
+
+ -- Scott Kitterman <scott@kitterman.com>  Wed, 22 Sep 2010 12:30:43 -0400
+
 python-clamav (0.4.1-1.1) unstable; urgency=low
 
   * Non-maintainer upload.
diff -Nru python-clamav-0.4.1/debian/control python-clamav-0.4.1/debian/control
--- python-clamav-0.4.1/debian/control	2010-09-22 16:25:24.000000000 -0400
+++ python-clamav-0.4.1/debian/control	2010-09-21 12:52:43.000000000 -0400
@@ -1,9 +1,11 @@
 Source: python-clamav
 Section: python
 Priority: optional
-Maintainer: Cédric Delfosse <cedric@debian.org>
+Maintainer: Debian Python Modules Team <debian-python@lists.debian.org>
+Uploaders: Scott Kitterman <scott@kitterman.com>
 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
+Standards-Version: 3.9.1.0
+Homepage: http://xael.org/norman/python/pyclamav/index.html
 
 Package: python-clamav
 Architecture: any
diff -Nru python-clamav-0.4.1/debian/copyright python-clamav-0.4.1/debian/copyright
--- python-clamav-0.4.1/debian/copyright	2010-09-22 16:25:24.000000000 -0400
+++ python-clamav-0.4.1/debian/copyright	2010-09-22 16:09:24.000000000 -0400
@@ -3,7 +3,7 @@
 
 It was downloaded from http://xael.org/norman/python/pyclamav/index.html
 
-Copyright Holder: Alexandre Norman <norman@freesurf.fr>
+Copyright Holder: © 2005 Alexandre Norman <norman@freesurf.fr>
 
 License:
 
diff -Nru python-clamav-0.4.1/debian/patches/clamav-095-compat.patch python-clamav-0.4.1/debian/patches/clamav-095-compat.patch
--- python-clamav-0.4.1/debian/patches/clamav-095-compat.patch	1969-12-31 19:00:00.000000000 -0500
+++ python-clamav-0.4.1/debian/patches/clamav-095-compat.patch	2010-09-22 16:13:55.000000000 -0400
@@ -0,0 +1,128 @@
+Bug-Debian: http://bugs.debian.org/524645
+Reviewed-By: Michael Casadevall <mcasadevall@buildd.net>
+Last-Update: <2009-04-20>
+
+--- 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 @@ static PyObject *PyclamavError;
+ 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 @@ int if_database_have_changed_then_reload
+   /* 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 @@ static PyObject *pyclamav_scanfile(PyObj
+     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 @@ PyMODINIT_FUNC initpyclamav(void)
+   /* 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 [norman@xael.org]\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 @@ PyMODINIT_FUNC initpyclamav(void)
+   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 ;
+ }
+ 
diff -Nru python-clamav-0.4.1/debian/patches/series python-clamav-0.4.1/debian/patches/series
--- python-clamav-0.4.1/debian/patches/series	1969-12-31 19:00:00.000000000 -0500
+++ python-clamav-0.4.1/debian/patches/series	2010-09-22 16:10:16.000000000 -0400
@@ -0,0 +1 @@
+clamav-095-compat.patch
diff -Nru python-clamav-0.4.1/debian/pycompat python-clamav-0.4.1/debian/pycompat
--- python-clamav-0.4.1/debian/pycompat	2010-09-22 16:25:24.000000000 -0400
+++ python-clamav-0.4.1/debian/pycompat	1969-12-31 19:00:00.000000000 -0500
@@ -1 +0,0 @@
-2
diff -Nru python-clamav-0.4.1/debian/source/format python-clamav-0.4.1/debian/source/format
--- python-clamav-0.4.1/debian/source/format	1969-12-31 19:00:00.000000000 -0500
+++ python-clamav-0.4.1/debian/source/format	2010-09-22 16:25:24.000000000 -0400
@@ -0,0 +1 @@
+3.0 (quilt)
diff -Nru python-clamav-0.4.1/pyclamav.c python-clamav-0.4.1/pyclamav.c
--- python-clamav-0.4.1/pyclamav.c	2010-09-22 16:25:24.000000000 -0400
+++ python-clamav-0.4.1/pyclamav.c	2008-04-16 09:51:47.000000000 -0400
@@ -33,6 +33,25 @@
 
 /* ********************************************************* */
 
+/* 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
@@ -49,9 +68,11 @@
 unsigned int signumber = 0;
  
 /* Structures for clamav */
-struct cl_engine *engine = NULL;
+struct cl_node *root = NULL;
+struct cl_limits limits;
 struct cl_stat dbstat;
 
+
 /*
  * If the virus database has been changed, then
  * free the current tree and reload the new one
@@ -64,22 +85,22 @@
   /* If yes : reload DB                */
   if (cl_statchkdir(&dbstat) == 1)
     {
-      /* free the engine */
-      cl_engine_free(engine); 
+      /* free the tree */
+      cl_free(root); 
       signumber=0;
-      engine=NULL;
+      root=NULL;
 
       /* Load DB */
-      if((ret = cl_load(cl_retdbdir(), engine, &signumber, CL_DB_STDOPT)) != CL_SUCCESS) {
+      if((ret = cl_load(cl_retdbdir(), &root, &signumber, CL_DB_STDOPT))) {
 	/* Raise exception with error message */
 	PyErr_SetString(PyclamavError,  cl_strerror(ret));
 	return -2;
       }
 
-      /* prepare the engine */
-      if((ret = cl_engine_compile(engine))) {
-	/* free the engine */
-	cl_engine_free(engine); 
+      /* build the final tree */
+      if((ret = cl_build(root))) {
+	/* free the partial tree */
+	cl_free(root); 
 	/* Raise exception with error message */
 	PyErr_SetString(PyclamavError, cl_strerror(ret));
 	return -2;
@@ -210,7 +231,7 @@
     return NULL;     
   }
 
-  ret = cl_scanfile(file_to_scan, &virname, &size, engine, CL_SCAN_STDOPT);
+  ret = cl_scanfile(file_to_scan, &virname, &size, root, &limits, CL_SCAN_STDOPT);
 
   /* Test return code */
   switch (ret) {
@@ -257,21 +278,17 @@
   /* 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 [norman@xael.org]\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(), engine, &signumber, CL_DB_STDOPT))) {
+  if((ret = cl_load(cl_retdbdir(), &root, &signumber, CL_DB_STDOPT))) {
     /* Raise exception with error message */
     PyErr_SetString(PyclamavError,  cl_strerror(ret));
-    cl_engine_free(engine);
     return;
   }
 
-  /* prepare the engine */
-  if((ret = cl_engine_compile(engine)) != CL_SUCCESS) {
-    /* free up the engine resources */
-    cl_engine_free(engine); 
+  /* build the final tree */
+  if((ret = cl_build(root))) {
+    /* free the partial tree */
+    cl_free(root); 
     /* Raise exception with error message */
     PyErr_SetString(PyclamavError, cl_strerror(ret));
     return;
@@ -282,6 +299,15 @@
   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 ;
 }
 

Attachment: signature.asc
Description: This is a digitally signed message part.


Reply to: