diff --git a/config/backup/includes/cyrus-imapd b/config/backup/includes/cyrus-imapd new file mode 100644 index 000000000..bb1bb3b1c --- /dev/null +++ b/config/backup/includes/cyrus-imapd @@ -0,0 +1,4 @@ +/usr/sieve +/var/imap +/var/ipfire/cyrusimap +/var/log/imap diff --git a/config/rootfiles/common/web-user-interface b/config/rootfiles/common/web-user-interface index 5da892bbd..08b87a356 100644 --- a/config/rootfiles/common/web-user-interface +++ b/config/rootfiles/common/web-user-interface @@ -92,6 +92,7 @@ srv/web/ipfire/html/blob.gif srv/web/ipfire/html/clwarn.cgi srv/web/ipfire/html/dial.cgi srv/web/ipfire/html/favicon.ico +#srv/web/ipfire/html/graphs #srv/web/ipfire/html/images srv/web/ipfire/html/images/IPFire.png srv/web/ipfire/html/images/add.gif diff --git a/config/rootfiles/core/89/update.sh b/config/rootfiles/core/89/update.sh index 90a6d776b..13c645a1a 100644 --- a/config/rootfiles/core/89/update.sh +++ b/config/rootfiles/core/89/update.sh @@ -75,15 +75,17 @@ chown nobody.nobody \ /var/run/ovpnserver.log # Update OpenVPN/collectd configuration -files=`find /var/ipfire/ovpn/n2nconf/ -type d` -for i in $files; -do - if ! grep -q "status-version" $i/${i##*/}.conf; then - echo "# Logfile" >> $i/${i##*/}.conf - echo "status-version 1" >> $i/${i##*/}.conf +for i in /var/ipfire/ovpn/n2nconf/*/*.conf; do + name="${i##*/}" + name="${name%*.conf}" + + if ! grep -qE "^status-version" ${i}; then + echo "# Logfile" >> ${i} + echo "status-version 1" >> ${i} fi - if ! grep -q "status " $i/${i##*/}.conf; then - echo "status /var/run/openvpn/${i##*/}-n2n 10" >> $i/${i##*/}.conf + + if ! grep -qE "^status " ${i}; then + echo "status /var/run/openvpn/${name}-n2n 10" >> ${i} fi done diff --git a/config/rootfiles/core/90/exclude b/config/rootfiles/core/90/exclude index 56e840d8c..73b7b73e6 100644 --- a/config/rootfiles/core/90/exclude +++ b/config/rootfiles/core/90/exclude @@ -15,7 +15,6 @@ etc/sudoers etc/sysconfig/firewall.local etc/sysconfig/modules etc/sysconfig/rc.local -etc/udev/rules.d/30-persistent-network.rules srv/web/ipfire/html/proxy.pac var/ipfire/firewall/geoipblock var/ipfire/fwhosts/custmgeoipgrp diff --git a/config/rootfiles/core/90/filelists/files b/config/rootfiles/core/90/filelists/files index 431dcd61c..ee596a070 100644 --- a/config/rootfiles/core/90/filelists/files +++ b/config/rootfiles/core/90/filelists/files @@ -5,6 +5,8 @@ etc/rc.d/init.d/network-trigger etc/rc.d/init.d/networking/functions.network etc/rc.d/init.d/networking/red.up/99-geoip-database etc/rc.d/rcsysinit.d/S90network-trigger +opt/pakfire/pakfire +opt/pakfire/lib/functions.pl srv/web/ipfire/cgi-bin/country.cgi srv/web/ipfire/cgi-bin/ddns.cgi srv/web/ipfire/cgi-bin/firewall.cgi diff --git a/config/rootfiles/core/90/filelists/openldap b/config/rootfiles/core/90/filelists/openldap new file mode 120000 index 000000000..80c324f76 --- /dev/null +++ b/config/rootfiles/core/90/filelists/openldap @@ -0,0 +1 @@ +../../../common/openldap \ No newline at end of file diff --git a/config/rootfiles/core/90/update.sh b/config/rootfiles/core/90/update.sh index 4835c5a29..34dacf113 100644 --- a/config/rootfiles/core/90/update.sh +++ b/config/rootfiles/core/90/update.sh @@ -208,6 +208,13 @@ sudo -u nobody /srv/web/ipfire/cgi-bin/vpnmain.cgi # Update Language cache perl -e "require '/var/ipfire/lang.pl'; &Lang::BuildCacheLang" +# Remove old udev configuration +rm -vf /etc/udev/rules.d/30-persistent-network.rules + +# Remove pids from dhcp client because it hang at normal shutdown +# so let the sysvinit kill it +rm -f /run/dhcpcd-*.pid + # # Start services # @@ -218,22 +225,9 @@ if [ `grep "ENABLED=on" /var/ipfire/vpn/settings` ]; then /etc/init.d/ipsec start fi -case "$(uname -m)" in - i?86) - case "$(find_device "/")" in - xvd* ) - echo Skip remove grub2 files, because pygrub fail. - rm -f /boot/grub/* - echo config will recreated by linux-pae install. - ;; - * ) - # - # Update to GRUB2 config - # - grub-mkconfig > /boot/grub/grub.cfg - ;; - esac -esac +if [ -e /boot/grub/grub.cfg ]; then + grub-mkconfig > /boot/grub/grub.cfg +fi # Upadate Kernel version uEnv.txt if [ -e /boot/uEnv.txt ]; then @@ -247,7 +241,7 @@ fi # Force (re)install pae kernel if pae is supported -rm -rf /opt/pakfire/db/*/meta-linux-pae +rm -rf /opt/pakfire/db/installed/meta-linux-pae if [ ! "$(grep "^flags.* pae " /proc/cpuinfo)" == "" ]; then ROOTSPACE=`df / -Pk | sed "s| * | |g" | cut -d" " -f4 | tail -n 1` BOOTSPACE=`df /boot -Pk | sed "s| * | |g" | cut -d" " -f4 | tail -n 1` @@ -258,9 +252,7 @@ if [ ! "$(grep "^flags.* pae " /proc/cpuinfo)" == "" ]; then echo "Name: linux-pae" > /opt/pakfire/db/installed/meta-linux-pae echo "ProgVersion: 0" >> /opt/pakfire/db/installed/meta-linux-pae echo "Release: 0" >> /opt/pakfire/db/installed/meta-linux-pae - echo "Name: linux-pae" > /opt/pakfire/db/meta/meta-linux-pae - echo "ProgVersion: 0" >> /opt/pakfire/db/meta/meta-linux-pae - echo "Release: 0" >> /opt/pakfire/db/meta/meta-linux-pae +# rm -f /opt/pakfire/db/meta/meta-linux-pae 2>&1 > /dev/null fi fi diff --git a/config/rootfiles/packages/cyrus-imapd b/config/rootfiles/packages/cyrus-imapd index 0c0485e4e..bbaec3ffb 100644 --- a/config/rootfiles/packages/cyrus-imapd +++ b/config/rootfiles/packages/cyrus-imapd @@ -146,6 +146,7 @@ var/imap/msg var/imap/proc var/imap/ptclient var/imap/socket +var/ipfire/backup/addons/includes/cyrus-imapd var/ipfire/cyrusimap var/ipfire/cyrusimap/cyrus.conf var/ipfire/cyrusimap/imapd.conf diff --git a/html/cgi-bin/country.cgi b/html/cgi-bin/country.cgi index 60c2e5869..f2ae81300 100644 --- a/html/cgi-bin/country.cgi +++ b/html/cgi-bin/country.cgi @@ -23,12 +23,9 @@ use strict; use Locale::Codes::Country; -my $flagdir = '/srv/web/ipfire/html/images/flags'; +my $col; my $lines = '1'; my $lines2 = ''; -my @flaglist=(); -my @flaglistfiles=(); -my $flag = ''; require '/var/ipfire/general-functions.pl'; require "${General::swroot}/geoip-functions.pl"; @@ -41,44 +38,41 @@ require "${General::swroot}/header.pl"; &Header::openbigbox('100%', 'left'); &Header::openbox('100%', 'left', $Lang::tr{'country codes and flags'}); -print ""; -print ""; -print ""; -print ""; -print ""; -print ""; -print ""; -print ""; -@flaglist = <$flagdir/*>; +print< + + + + + + + + + +END -undef @flaglistfiles; +# Get a list of all supported country codes. +my @countries = Locale::Codes::Country::all_country_codes(); -foreach (@flaglist) -{ - if (!-d) { push(@flaglistfiles,substr($_,rindex($_,"/")+1)); } -} -my $col=""; -foreach $flag (@flaglistfiles) -{ +# Loop through whole country list. +foreach my $country (@countries) { $lines++; - my $flagcode = uc(substr($flag, 0, 2)); - my $fcode = lc($flagcode); + # Convert country code into upper case. + my $country_uc = uc($country); # Get flag icon for of the country. - my $flag_icon = &GeoIP::get_flag_icon($fcode); + my $flag_icon = &GeoIP::get_flag_icon($country); + + # Get country name. + my $name = &GeoIP::get_full_country_name($country); - my $country = Locale::Country::code2country($fcode); - if($fcode eq 'eu') { $country = 'Europe'; } - if($fcode eq 'tp') { $country = 'East Timor'; } - if($fcode eq 'yu') { $country = 'Yugoslavia'; } if ($lines % 2) { - print ""; - print ""; - print "\n"; - } - else { + print ""; + print ""; + print "\n"; + } else { $lines2++; if($lines2 % 2) { $col="style='background-color:${Header::table2colour};'"; @@ -86,25 +80,25 @@ foreach $flag (@flaglistfiles) $col="style='background-color:${Header::table1colour};'"; } print ""; - print ""; - print ""; - print ""; + print ""; + print ""; + print ""; print ""; + + # Finish column when the last element in the array has passed and we have an uneven amount of items. + if ( $country eq $countries[-1] ) { + print "\n"; + print "\n"; + print "\n"; + } } } - - print "
$Lang::tr{'flag'}$Lang::tr{'countrycode'}$Lang::tr{'country'} $Lang::tr{'flag'}$Lang::tr{'countrycode'}$Lang::tr{'country'}
$Lang::tr{'flag'}$Lang::tr{'countrycode'}$Lang::tr{'country'} $Lang::tr{'flag'}$Lang::tr{'countrycode'}$Lang::tr{'country'}
$flagcode$flagcode$country
$country_uc$country_uc$name
$flagcode$flagcode$country$country_uc$country_uc$name    
"; &Header::closebox(); &Header::closebigbox(); -print < -$Lang::tr{'back'} - -END -; +print "
$Lang::tr{'back'}
\n"; &Header::closepage(); diff --git a/html/cgi-bin/geoip-block.cgi b/html/cgi-bin/geoip-block.cgi index ccbfa926a..056b333e8 100644 --- a/html/cgi-bin/geoip-block.cgi +++ b/html/cgi-bin/geoip-block.cgi @@ -225,7 +225,16 @@ foreach my $location (@locations) { print "$flag\n"; print "$ccode_uc\n"; print "$cname$line_end\n"; - + + # Finish column when the last element in the array has passed and we have an uneven amount of items. + if(! ($lines2 % 2) && ($location eq $locations[-1] )) { + print " \n"; + print " \n"; + print " \n"; + print " \n"; + print " \n"; + } + $lines2++; } diff --git a/html/cgi-bin/vpnmain.cgi b/html/cgi-bin/vpnmain.cgi index 2a020eadd..94900765f 100644 --- a/html/cgi-bin/vpnmain.cgi +++ b/html/cgi-bin/vpnmain.cgi @@ -3029,12 +3029,6 @@ sub make_algos($$$$$) { if (!$is_aead) { push(@algo, $int); } - - if ($grp =~ m/^e(.*)$/) { - push(@algo, "ecp$1"); - } else { - push(@algo, "modp$grp"); - } } push(@algos, join("-", @algo)); diff --git a/lfs/cyrus-imapd b/lfs/cyrus-imapd index 2a826cd70..fc87bd62b 100644 --- a/lfs/cyrus-imapd +++ b/lfs/cyrus-imapd @@ -1,7 +1,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2011 IPFire Team # +# Copyright (C) 2007-2015 IPFire Team # # # # This program is free software: you can redistribute it and/or modify # # it under the terms of the GNU General Public License as published by # @@ -32,7 +32,7 @@ DL_FROM = $(URL_IPFIRE) DIR_APP = $(DIR_SRC)/$(THISAPP) TARGET = $(DIR_INFO)/$(THISAPP) PROG = cyrus-imapd -PAK_VER = 3 +PAK_VER = 5 DEPS = "" @@ -100,5 +100,7 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) cp -f $(DIR_APP)/tools/mkimap /usr/bin sudo -u cyrus /usr/bin/mkimap /var/ipfire/cyrusimap/imapd.conf chown cyrus.mail /var/imap/socket + install -v -m 644 $(DIR_SRC)/config/backup/includes/cyrus-imapd \ + /var/ipfire/backup/addons/includes/cyrus-imapd @rm -rf $(DIR_APP) /usr/include/com_err.h @$(POSTBUILD) diff --git a/lfs/elinks b/lfs/elinks index 59f1426ea..2727423f0 100644 --- a/lfs/elinks +++ b/lfs/elinks @@ -1,7 +1,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2007-2013 IPFire Team # +# Copyright (C) 2007-2015 IPFire Team # # # # This program is free software: you can redistribute it and/or modify # # it under the terms of the GNU General Public License as published by # @@ -32,7 +32,7 @@ DL_FROM = $(URL_IPFIRE) DIR_APP = $(DIR_SRC)/$(THISAPP) TARGET = $(DIR_INFO)/$(THISAPP) PROG = elinks -PAK_VER = 4 +PAK_VER = 5 DEPS = "" diff --git a/lfs/linux b/lfs/linux index b2d2552dc..f59a709a5 100644 --- a/lfs/linux +++ b/lfs/linux @@ -24,11 +24,11 @@ include Config -VER = 3.14.41 +VER = 3.14.43 -RPI_PATCHES = 3.14.41-grsec-ipfire1 -A7M_PATCHES = 3.14.41-grsec-ipfire1 -GRS_PATCHES = grsecurity-3.1-3.14.41-201505072056.patch.xz +RPI_PATCHES = 3.14.43-grsec-ipfire1 +A7M_PATCHES = 3.14.43-grsec-ipfire1 +GRS_PATCHES = grsecurity-3.1-3.14.43-201505191737.patch.xz THISAPP = linux-$(VER) DL_FILE = linux-$(VER).tar.xz @@ -37,7 +37,7 @@ DIR_APP = $(DIR_SRC)/$(THISAPP) CFLAGS = CXXFLAGS = -PAK_VER = 59 +PAK_VER = 61 DEPS = "" VERSUFIX=ipfire$(KCFG) @@ -77,10 +77,10 @@ rpi-patches-$(RPI_PATCHES).patch.xz = $(URL_IPFIRE)/rpi-patches-$(RPI_PATCHES). arm7-multi-patches-$(A7M_PATCHES).patch.xz = $(URL_IPFIRE)/arm7-multi-patches-$(A7M_PATCHES).patch.xz $(GRS_PATCHES) = $(URL_IPFIRE)/$(GRS_PATCHES) -$(DL_FILE)_MD5 = b28dfc6907c388c2adcc65aee2ad68ff -rpi-patches-$(RPI_PATCHES).patch.xz_MD5 = 9c8b20647429a64d656999a3c7af890f -arm7-multi-patches-$(A7M_PATCHES).patch.xz_MD5 = a4a4103255e93bfcb02652212b0ae3fc -$(GRS_PATCHES)_MD5 = 8af3b27954311da581cc6f803f048779 +$(DL_FILE)_MD5 = 927f2343f298dfe531a8371f81356e53 +rpi-patches-$(RPI_PATCHES).patch.xz_MD5 = b5ba925ae1d4279d3ac0f03c27dd16eb +arm7-multi-patches-$(A7M_PATCHES).patch.xz_MD5 = b9c696fe4f22b05b81c168329ca33c94 +$(GRS_PATCHES)_MD5 = 35e26b1214b1b0b515ee67e5ce50633a install : $(TARGET) diff --git a/lfs/netsnmpd b/lfs/netsnmpd index 1ea0a4e4c..b51367855 100644 --- a/lfs/netsnmpd +++ b/lfs/netsnmpd @@ -32,7 +32,7 @@ DL_FROM = $(URL_IPFIRE) DIR_APP = $(DIR_SRC)/$(THISAPP) TARGET = $(DIR_INFO)/$(THISAPP) PROG = netsnmpd -PAK_VER = 3 +PAK_VER = 4 DEPS = "" ############################################################################### diff --git a/src/initscripts/init.d/firstsetup b/src/initscripts/init.d/firstsetup index dca3e4016..70c30b4e2 100644 --- a/src/initscripts/init.d/firstsetup +++ b/src/initscripts/init.d/firstsetup @@ -40,9 +40,6 @@ if [ ! "$(grep "^flags.* pae " /proc/cpuinfo)" == "" ]; then echo "Name: linux-pae" > /opt/pakfire/db/installed/meta-linux-pae echo "ProgVersion: 0" >> /opt/pakfire/db/installed/meta-linux-pae echo "Release: 0" >> /opt/pakfire/db/installed/meta-linux-pae - echo "Name: linux-pae" > /opt/pakfire/db/meta/meta-linux-pae - echo "ProgVersion: 0" >> /opt/pakfire/db/meta/meta-linux-pae - echo "Release: 0" >> /opt/pakfire/db/meta/meta-linux-pae fi fi diff --git a/src/pakfire/lib/functions.pl b/src/pakfire/lib/functions.pl index d14e0314d..6bf85afdc 100644 --- a/src/pakfire/lib/functions.pl +++ b/src/pakfire/lib/functions.pl @@ -2,7 +2,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2007 Michael Tremer & Christian Schmidt # +# Copyright (C) 2007-2015 IPFire Team # # # # This program is free software: you can redistribute it and/or modify # # it under the terms of the GNU General Public License as published by # @@ -393,6 +393,7 @@ sub dbgetlist { foreach $file (@files) { next if ( $file eq "." ); next if ( $file eq ".." ); + next if ( $file eq "meta-" ); next if ( $file =~ /^old/ ); open(FILE, "<$Conf::dbdir/meta/$file"); @meta = ; @@ -589,6 +590,25 @@ sub resolvedeps { return @all; } +sub resolvedeps_recursive { + my @packages = shift; + my @result = (); + + foreach my $pkg (@packages) { + my @deps = &Pakfire::resolvedeps($pkg); + + foreach my $dep (@deps) { + push(@result, $dep); + } + } + + # Sort the result array and remove dupes + my %sort = map{ $_, 1 } @result; + @result = keys %sort; + + return @result; +} + sub cleanup { my $dir = shift; my $path; @@ -695,7 +715,7 @@ sub getpak { } unless ($file) { - message("No filename given in meta-file. Please phone the developers."); + message("No filename given in meta-file."); exit 1; } diff --git a/src/pakfire/pakfire b/src/pakfire/pakfire index 3d0270aa4..8bca061ab 100644 --- a/src/pakfire/pakfire +++ b/src/pakfire/pakfire @@ -2,7 +2,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2007 Michael Tremer & Christian Schmidt # +# Copyright (C) 2007-2015 IPFire Team # # # # This program is free software: you can redistribute it and/or modify # # it under the terms of the GNU General Public License as published by # @@ -255,14 +255,11 @@ } elsif ("$ARGV[0]" eq "upgrade") { &Pakfire::upgradecore(); my @upgradepaks = &Pakfire::dblist("upgrade", "noweb"); - my @temp, $pak; - - foreach (@upgradepaks) { - @temp = &Pakfire::resolvedeps("$_"); - foreach (@temp) { push(@upgradepaks,$_) if $_; } - } - + if (@upgradepaks) { + # Resolve the dependencies of the to be upgraded packages + my @deps = &Pakfire::resolvedeps_recursive(@upgradepaks); + &Pakfire::message(""); &Pakfire::message("PAKFIRE UPGR: We are going to install all packages listed above."); if ($interactive) { @@ -277,16 +274,24 @@ } } - ### Download first + # Download packages foreach $pak (@upgradepaks) { - #system("mv $Conf::dbdir/meta/meta-$pak $Conf::dbdir/meta/old-meta-$pak"); &Pakfire::getpak("$pak", ""); } - + + # Download dependencies + foreach $pak (@deps) { + &Pakfire::getpak("$pak", ""); + } + + # Install dependencies first + foreach $pak (@deps) { + &Pakfire::setuppak("$pak"); + } + + # Install all upgrades foreach $pak (@upgradepaks) { - if (&Pakfire::upgradepak("$pak")) { - #system("mv $Conf::dbdir/meta/old-meta-$pak $Conf::dbdir/meta/meta-$pak"); - } + &Pakfire::upgradepak("$pak"); } } elsif ("$ARGV[0]" eq "list") { diff --git a/src/paks/cyrus-imapd/uninstall.sh b/src/paks/cyrus-imapd/uninstall.sh index 0d2109eb9..6e1468ec7 100644 --- a/src/paks/cyrus-imapd/uninstall.sh +++ b/src/paks/cyrus-imapd/uninstall.sh @@ -22,6 +22,7 @@ ############################################################################ # . /opt/pakfire/lib/functions.sh +extract_backup_include stop_service ${NAME} make_backup ${NAME} remove_files diff --git a/src/paks/linux-pae/install.sh b/src/paks/linux-pae/install.sh index c980a0136..27e665f92 100644 --- a/src/paks/linux-pae/install.sh +++ b/src/paks/linux-pae/install.sh @@ -55,29 +55,24 @@ depmod -a $KVER-ipfire-pae # /usr/bin/dracut --force --xz /boot/initramfs-$KVER-ipfire-pae.img $KVER-ipfire-pae - -ROOT="$(find_partition "/")" -case $ROOT in - xvd* ) - # - # We are on XEN so create new grub.conf / menu.lst for pygrub - # - echo "timeout 10" > /boot/grub/grub.conf - echo "default 0" >> /boot/grub/grub.conf - echo "title IPFire (pae-kernel)" >> /boot/grub/grub.conf - echo " kernel /vmlinuz-$KVER-ipfire-pae root=/dev/$ROOT rootdelay=10 panic=10 console=hvc0" \ - >> /boot/grub/grub.conf - echo " initrd /initramfs-$KVER-ipfire-pae.img" >> /boot/grub/grub.conf - echo "# savedefault 0" >> /boot/grub/grub.conf - ln -s grub.conf $MNThdd/boot/grub/menu.lst - ;; - * ) - # - # Update grub2 config - # - grub-mkconfig > /boot/grub/grub.cfg - ;; -esac +if [ -e /boot/grub/grub.cfg ]; then + # + # Update grub2 config + # + grub-mkconfig > /boot/grub/grub.cfg +else + # + # xen pv with pygrub need grub.conf / menu.lst + # + echo "timeout 10" > /boot/grub/grub.conf + echo "default 0" >> /boot/grub/grub.conf + echo "title IPFire (pae-kernel)" >> /boot/grub/grub.conf + echo " kernel /vmlinuz-$KVER-ipfire-pae root=/dev/$ROOT rootdelay=10 panic=10 console=hvc0" \ + >> /boot/grub/grub.conf + echo " initrd /initramfs-$KVER-ipfire-pae.img" >> /boot/grub/grub.conf + echo "# savedefault 0" >> /boot/grub/grub.conf + ln -s grub.conf $MNThdd/boot/grub/menu.lst +fi # request a reboot if pae is supported if [ ! "$(grep "^flags.* pae " /proc/cpuinfo)" == "" ]; then diff --git a/src/paks/net-snmp/install.sh b/src/paks/netsnmpd/install.sh similarity index 100% rename from src/paks/net-snmp/install.sh rename to src/paks/netsnmpd/install.sh diff --git a/src/paks/net-snmp/uninstall.sh b/src/paks/netsnmpd/uninstall.sh similarity index 98% rename from src/paks/net-snmp/uninstall.sh rename to src/paks/netsnmpd/uninstall.sh index a7b8a5370..278218b26 100644 --- a/src/paks/net-snmp/uninstall.sh +++ b/src/paks/netsnmpd/uninstall.sh @@ -22,6 +22,7 @@ ############################################################################ # . /opt/pakfire/lib/functions.sh +extract_backup_includes stop_service ${NAME} make_backup ${NAME} remove_files diff --git a/src/paks/net-snmp/update.sh b/src/paks/netsnmpd/update.sh similarity index 100% rename from src/paks/net-snmp/update.sh rename to src/paks/netsnmpd/update.sh