reassign 389434 net-snmp
tag 389434 patch
thanks

Hi,

let's fix this (at least) in net-snmp, since it seems to be two separate
problems:

(1) As implemented and documented, the MIBs dir (currently
/usr/share/snmp/mibs) is intended for changing/adding MIB data. Index
files (.index) are also always (re-)created by libsnmp. Therefore, it
should go to /var/lib/snmp/mibs. Patch attached
(net-snmp.patch.5.2.3-1). A forward-ported version is included in
net-snmp.patch.5.3.1-2 if you decide to migrate the version currently in
experimental (which will probably happen sooner or later, anyway).

(2) To prevent 0666, we can umask() the written index file properly (see
 attached net-snmp.patch.umask). If we also want to "sanitize" old index
files, we could alternatively use fchmod() (_not_ included in the patch,
but trivial).

If necessary (fixing issues separately), please split the bug.

bye,
  Roland
diff -ruN net-snmp-5.2.3.orig/debian/libsnmp-base.dirs 
net-snmp-5.2.3/debian/libsnmp-base.dirs
--- net-snmp-5.2.3.orig/debian/libsnmp-base.dirs        2006-10-15 
13:46:02.000000000 +0200
+++ net-snmp-5.2.3/debian/libsnmp-base.dirs     2006-10-15 13:47:39.000000000 
+0200
@@ -1 +1 @@
-var/lib/snmp
+var/lib/snmp/mibs
diff -ruN net-snmp-5.2.3.orig/debian/libsnmp-base.files 
net-snmp-5.2.3/debian/libsnmp-base.files
--- net-snmp-5.2.3.orig/debian/libsnmp-base.files       2006-10-15 
13:46:02.000000000 +0200
+++ net-snmp-5.2.3/debian/libsnmp-base.files    2006-10-15 13:47:39.000000000 
+0200
@@ -1,3 +1,3 @@
-usr/share/snmp/mibs
+var/lib/snmp/mibs
 usr/share/snmp/mib2c-data
 usr/share/man/man5/*
diff -ruN net-snmp-5.2.3.orig/debian/libsnmp-base.prerm 
net-snmp-5.2.3/debian/libsnmp-base.prerm
--- net-snmp-5.2.3.orig/debian/libsnmp-base.prerm       2006-10-15 
13:46:02.000000000 +0200
+++ net-snmp-5.2.3/debian/libsnmp-base.prerm    2006-10-15 13:47:39.000000000 
+0200
@@ -2,7 +2,7 @@
 
 set -e
 
-rm -f /usr/share/snmp/mibs/.index
+rm -f /var/lib/snmp/mibs/.index
 
 #DEBHELPER#
 
diff -ruN net-snmp-5.2.3.orig/debian/patches/07_docfiles.patch 
net-snmp-5.2.3/debian/patches/07_docfiles.patch
--- net-snmp-5.2.3.orig/debian/patches/07_docfiles.patch        2006-10-15 
13:46:02.000000000 +0200
+++ net-snmp-5.2.3/debian/patches/07_docfiles.patch     2006-10-15 
13:47:39.000000000 +0200
@@ -62,7 +62,7 @@
    Firstly,
  
 -      cp MY-MIB.txt /usr/local/share/snmp/mibs
-+      cp MY-MIB.txt /usr/share/snmp/mibs
++      cp MY-MIB.txt /var/lib/snmp/mibs
  
            or
  
@@ -71,7 +71,7 @@
    The first command copies the file defining the new MIB to a
    expected location for MIB files.  This defaults to
 -  /usr/local/share/snmp/mibs (or PREFIX/share/snmp/mibs if the the
-+  /usr/share/snmp/mibs (or PREFIX/share/snmp/mibs if the the
++  /var/lib/snmp/mibs (or PREFIX/share/snmp/mibs if the the
    suite was installed into a different base location).  Some
    ready-packaged distributions (such as Linux RPM packages) may look
    for MIB files in a different location, such as /etc/snmp/mibs - put
@@ -98,7 +98,7 @@
  
      Alternatively, the tools may be looking in the wrong place.
 -  The default location for the mib files is /usr/local/share/snmp/mibs.
-+  The default location for the mib files is /usr/share/snmp/mibs.
++  The default location for the mib files is /var/lib/snmp/mibs.
    Again, this is set when the suite is first configured and compiled.
    This can be changed using the environmental variable 'MIBDIRS'
    or the snmp.conf directive 'mibdirs'.
diff -ruN net-snmp-5.2.3.orig/debian/rules net-snmp-5.2.3/debian/rules
--- net-snmp-5.2.3.orig/debian/rules    2006-10-15 13:46:02.000000000 +0200
+++ net-snmp-5.2.3/debian/rules 2006-10-15 13:48:30.000000000 +0200
@@ -60,6 +60,7 @@
          --without-rpm --with-libwrap --with-openssl \
          --without-dmalloc --without-efence --without-rsaref \
          --with-sys-contact="root" --with-sys-location="Unknown" \
+         --with-mibdirs="\$HOME/.snmp/mibs:/var/lib/snmp/mibs" \
          --with-mib-modules="$(MIB_MODULES)" \
          --enable-mfd-rewrites \
          --with-defaults
@@ -109,7 +110,8 @@
        $(MAKE) prefix=`pwd`/debian/tmp/usr exec_prefix=`pwd`/debian/tmp/usr \
          mandir=`pwd`/debian/tmp/usr/share/man \
          persistentdir=`pwd`/debian/tmp/var/lib/snmp \
-         PREFIX=`pwd`/debian/tmp/usr install
+         PREFIX=`pwd`/debian/tmp/usr \
+         mibdir=`pwd`/debian/tmp/var/lib/snmp/mibs install
        # Install the "broke" headers
        cp agent/mibgroup/struct.h debian/tmp/usr/include/net-snmp/agent
        cp agent/mibgroup/util_funcs.h debian/tmp/usr/include/net-snmp
diff -ruN net-snmp-5.2.3.orig/debian/snmpd.default 
net-snmp-5.2.3/debian/snmpd.default
--- net-snmp-5.2.3.orig/debian/snmpd.default    2006-10-15 13:46:02.000000000 
+0200
+++ net-snmp-5.2.3/debian/snmpd.default 2006-10-15 13:47:39.000000000 +0200
@@ -1,8 +1,8 @@
 # This file controls the activity of snmpd and snmptrapd
 
-# MIB directories.  /usr/share/snmp/mibs is the default, but
+# MIB directories.  /var/lib/snmp/mibs is the default, but
 # including it here avoids some strange problems.
-export MIBDIRS=/usr/share/snmp/mibs
+export MIBDIRS=/var/lib/snmp/mibs
 
 # snmpd control (yes means start daemon).
 SNMPDRUN=yes
diff -ruN net-snmp-5.2.3.orig/debian/snmpd.init net-snmp-5.2.3/debian/snmpd.init
--- net-snmp-5.2.3.orig/debian/snmpd.init       2006-10-15 13:46:02.000000000 
+0200
+++ net-snmp-5.2.3/debian/snmpd.init    2006-10-15 13:47:39.000000000 +0200
@@ -5,7 +5,7 @@
 test -x /usr/sbin/snmptrapd || exit 0
 
 # Defaults
-export MIBDIRS=/usr/share/snmp/mibs
+export MIBDIRS=/var/lib/snmp/mibs
 SNMPDRUN=yes
 SNMPDOPTS='-Lsd -Lf /dev/null -p /var/run/snmpd.pid'
 TRAPDRUN=no
diff -ruN net-snmp-5.3.1.orig/debian/libsnmp-base.dirs 
net-snmp-5.3.1/debian/libsnmp-base.dirs
--- net-snmp-5.3.1.orig/debian/libsnmp-base.dirs        2006-10-15 
18:59:48.000000000 +0200
+++ net-snmp-5.3.1/debian/libsnmp-base.dirs     2006-10-15 19:00:30.000000000 
+0200
@@ -1 +1 @@
-var/lib/snmp
+var/lib/snmp/mibs
diff -ruN net-snmp-5.3.1.orig/debian/libsnmp-base.install 
net-snmp-5.3.1/debian/libsnmp-base.install
--- net-snmp-5.3.1.orig/debian/libsnmp-base.install     2006-10-15 
18:59:48.000000000 +0200
+++ net-snmp-5.3.1/debian/libsnmp-base.install  2006-10-15 19:02:13.000000000 
+0200
@@ -1,3 +1,3 @@
-debian/tmp/usr/share/snmp/mibs
+debian/tmp/var/lib/snmp/mibs
 debian/tmp/usr/share/snmp/mib2c-data
 debian/tmp/usr/share/man/man5/*
diff -ruN net-snmp-5.3.1.orig/debian/libsnmp-base.prerm 
net-snmp-5.3.1/debian/libsnmp-base.prerm
--- net-snmp-5.3.1.orig/debian/libsnmp-base.prerm       2006-10-15 
18:59:48.000000000 +0200
+++ net-snmp-5.3.1/debian/libsnmp-base.prerm    2006-10-15 19:00:32.000000000 
+0200
@@ -2,7 +2,7 @@
 
 set -e
 
-rm -f /usr/share/snmp/mibs/.index
+rm -f /var/lib/snmp/mibs/.index
 
 #DEBHELPER#
 
diff -ruN net-snmp-5.3.1.orig/debian/patches/07_docfiles.patch 
net-snmp-5.3.1/debian/patches/07_docfiles.patch
--- net-snmp-5.3.1.orig/debian/patches/07_docfiles.patch        2006-10-15 
18:59:48.000000000 +0200
+++ net-snmp-5.3.1/debian/patches/07_docfiles.patch     2006-10-15 
19:00:32.000000000 +0200
@@ -62,7 +62,7 @@
    Firstly,
  
 -      cp MY-MIB.txt /usr/local/share/snmp/mibs
-+      cp MY-MIB.txt /usr/share/snmp/mibs
++      cp MY-MIB.txt /var/lib/snmp/mibs
  
            or
  
@@ -71,7 +71,7 @@
    The first command copies the file defining the new MIB to a
    expected location for MIB files.  This defaults to
 -  /usr/local/share/snmp/mibs (or PREFIX/share/snmp/mibs if the the
-+  /usr/share/snmp/mibs (or PREFIX/share/snmp/mibs if the the
++  /var/lib/snmp/mibs (or PREFIX/share/snmp/mibs if the the
    suite was installed into a different base location).  Some
    ready-packaged distributions (such as Linux RPM packages) may look
    for MIB files in a different location, such as /etc/snmp/mibs - put
@@ -98,7 +98,7 @@
  
      Alternatively, the tools may be looking in the wrong place.
 -  The default location for the mib files is /usr/local/share/snmp/mibs.
-+  The default location for the mib files is /usr/share/snmp/mibs.
++  The default location for the mib files is /var/lib/snmp/mibs.
    Again, this is set when the suite is first configured and compiled.
    This can be changed using the environmental variable 'MIBDIRS'
    or the snmp.conf directive 'mibdirs'.
diff -ruN net-snmp-5.3.1.orig/debian/rules net-snmp-5.3.1/debian/rules
--- net-snmp-5.3.1.orig/debian/rules    2006-10-15 18:59:48.000000000 +0200
+++ net-snmp-5.3.1/debian/rules 2006-10-15 19:01:23.000000000 +0200
@@ -27,7 +27,7 @@
 DEB_AUTO_UPDATE_AUTOCONF = 2.59
 
 DEB_DH_MAKESHLIBS_ARGS_libsnmp$(LIB_VERSION) := -V"libsnmp$(LIB_VERSION) (>= 
$(COMPAT_VERSION))"
-DEB_MAKE_INSTALL_TARGET=install        INSTALL_PREFIX=$(CURDIR)/debian/tmp 
DESTDIR=$(CURDIR)/debian/tmp
+DEB_MAKE_INSTALL_TARGET=install        INSTALL_PREFIX=$(CURDIR)/debian/tmp 
DESTDIR=$(CURDIR)/debian/tmp mibdir=/var/lib/snmp/mibs
 DEB_MAKE_BUILD_TARGET=LD_RUN_PATH=
 DEB_CONFIGURE_EXTRA_FLAGS := --prefix=/usr --sysconfdir=/etc 
--mandir=/usr/share/man \
          --with-persistent-directory=/var/lib/snmp \
@@ -38,6 +38,7 @@
          --without-rpm --with-libwrap --with-openssl \
          --without-dmalloc --without-efence --without-rsaref \
          --with-sys-contact="root" --with-sys-location="Unknown" \
+         --with-mibdirs="\$HOME/.snmp/mibs:/var/lib/snmp/mibs" \
          --with-mib-modules="$(MIB_MODULES)" \
          --enable-mfd-rewrites \
          --with-defaults
diff -ruN net-snmp-5.3.1.orig/debian/snmpd.default 
net-snmp-5.3.1/debian/snmpd.default
--- net-snmp-5.3.1.orig/debian/snmpd.default    2006-10-15 18:59:48.000000000 
+0200
+++ net-snmp-5.3.1/debian/snmpd.default 2006-10-15 19:00:32.000000000 +0200
@@ -1,8 +1,8 @@
 # This file controls the activity of snmpd and snmptrapd
 
-# MIB directories.  /usr/share/snmp/mibs is the default, but
+# MIB directories.  /var/lib/snmp/mibs is the default, but
 # including it here avoids some strange problems.
-export MIBDIRS=/usr/share/snmp/mibs
+export MIBDIRS=/var/lib/snmp/mibs
 
 # snmpd control (yes means start daemon).
 SNMPDRUN=yes
diff -ruN net-snmp-5.3.1.orig/debian/snmpd.init net-snmp-5.3.1/debian/snmpd.init
--- net-snmp-5.3.1.orig/debian/snmpd.init       2006-10-15 18:59:48.000000000 
+0200
+++ net-snmp-5.3.1/debian/snmpd.init    2006-10-15 19:00:32.000000000 +0200
@@ -5,7 +5,7 @@
 test -x /usr/sbin/snmptrapd || exit 0
 
 # Defaults
-export MIBDIRS=/usr/share/snmp/mibs
+export MIBDIRS=/var/lib/snmp/mibs
 SNMPDRUN=yes
 SNMPDOPTS='-Lsd -Lf /dev/null -p /var/run/snmpd.pid'
 TRAPDRUN=no
diff -ruN net-snmp-5.2.3.orig/snmplib/parse.c net-snmp-5.2.3/snmplib/parse.c
--- net-snmp-5.2.3.orig/snmplib/parse.c 2006-01-17 15:49:35.000000000 +0100
+++ net-snmp-5.2.3/snmplib/parse.c      2006-10-15 13:47:39.000000000 +0200
@@ -4708,6 +4708,7 @@
 #endif
 
     if ((dir = opendir(dirname))) {
+       mode_t mask = umask(0022); /* save; use mode 0644 */
         snprintf(tmpstr, sizeof(tmpstr), "%s/.index", dirname);
         tmpstr[ sizeof(tmpstr)-1 ] = 0;
         ip = fopen(tmpstr, "w");
@@ -4733,6 +4734,7 @@
         closedir(dir);
         if (ip)
             fclose(ip);
+       umask(mask); /* restore */
         return (count);
     }
     else

Reply via email to