unofficial mirror of guix-patches@gnu.org 
 help / color / mirror / code / Atom feed
* [bug#32268] [PATCH] gnu: Add net-snmp.
@ 2018-07-25 11:44 Oleg Pykhalov
  2018-07-25 11:50 ` Oleg Pykhalov
                   ` (2 more replies)
  0 siblings, 3 replies; 6+ messages in thread
From: Oleg Pykhalov @ 2018-07-25 11:44 UTC (permalink / raw)
  To: 32268

* gnu/packages/networking.scm (net-snmp): New variable.
---
 gnu/packages/networking.scm | 76 +++++++++++++++++++++++++++++++++++++
 1 file changed, 76 insertions(+)

diff --git a/gnu/packages/networking.scm b/gnu/packages/networking.scm
index 90967b9b1..a77452d6a 100644
--- a/gnu/packages/networking.scm
+++ b/gnu/packages/networking.scm
@@ -66,6 +66,7 @@
   #:use-module (gnu packages databases)
   #:use-module (gnu packages dejagnu)
   #:use-module (gnu packages documentation)
+  #:use-module (gnu packages file)
   #:use-module (gnu packages flex)
   #:use-module (gnu packages gettext)
   #:use-module (gnu packages glib)
@@ -1965,3 +1966,78 @@ Features:
 @item Destination IP blacklist
 @end itemize")
       (license license:asl2.0))))
+
+(define-public net-snmp
+  (package
+    (name "net-snmp")
+    (version "5.7.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://sourceforge/net-snmp/net-snmp/" version
+                           "/net-snmp-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1w5l9w0sgi1zkzq8ww6kc6fzq7ljq59z2d9ks6bdq1vp7ihqkvqj"))
+       (patches
+        (map (lambda (file hash)
+               (origin
+                 (method url-fetch)
+                 (uri (string-append
+                       "https://git.alpinelinux.org\
+/cgit/aports/plain/main/net-snmp/"
+                       file "?id=f25d3fb08341b60b6ccef424399f060dfcf3f1a5"))
+                 (sha256
+                  (base32
+                   hash))))
+             '("CVE-2015-5621.patch"
+               "fix-Makefile-PL.patch"
+               "fix-includes.patch"
+               "netsnmp-swinst-crash.patch"
+               "remove-U64-typedef.patch")
+             '("0mg2mlfb45fnv7m1k9wckrqjfizipyvrl1q4dn1r0zc774mm7zjc"
+               "1pd85sy04n76q1ri3l33f0zpnnw76nd5mcny2j39ilzp76bjfik5"
+               "0zpkbb6k366qpq4dax5wknwprhwnhighcp402mlm7950d39zfa3m"
+               "0gh164wy6zfiwiszh58fsvr25k0ns14r3099664qykgpmickkqid"
+               "0jcpcpgx4z9k1w0x6km0132n67qc29mz6cialwfjm02l76q2yk5n")))))
+    (build-system gnu-build-system)
+    (native-inputs
+     `(("autoconf" ,autoconf)
+       ("automake" ,automake)
+       ("libtool" ,libtool)))
+    (inputs
+     `(("file" ,file)
+       ("perl" ,perl)
+       ("openssl" ,openssl)))
+    (arguments
+     `(#:tests? #f
+       #:configure-flags
+       (list "--with-default-snmp-version=3"
+             "--with-sys-location=Unknown"
+             "--with-sys-contact=root@unknown"
+             "--with-logfile=/var/log/net-snmpd.log"
+             "--with-persistent-directory=/var/lib/net-snmp"
+             (string-append "--with-openssl="
+                            (assoc-ref %build-inputs "openssl"))
+             "--with-mnttab=/proc/mounts")
+       #:make-flags
+       (let ((out (assoc-ref %outputs "out")))
+         (list (string-append "INSTALLSITEARCH=" out
+                              "/lib/perl5/site_perl/" ,(package-version perl)
+                              "/x86_64-linux-thread-multi")
+               (string-append"INSTALLSITEMAN3DIR=" out "/share/man/man3")))
+
+       #:phases
+       (modify-phases %standard-phases
+         (add-before 'configure 'autoreconf
+           (lambda _
+             (invoke "autoreconf" "-vfi"))))))
+    (home-page "http://net-snmp.sourceforge.net/")
+    (synopsis "Clients and server for the SNMP network monitoring protocol")
+    (description "The Simple Network Management Protocol (SNMP) provides a
+framework for the exchange of management information between agents (servers)
+and clients.
+
+The Net-SNMP applications are a collection of command line clients for issuing
+SNMP requests to agents.")
+    (license license:bsd-3)))
-- 
2.18.0

^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [bug#32268] [PATCH] gnu: Add net-snmp.
  2018-07-25 11:44 [bug#32268] [PATCH] gnu: Add net-snmp Oleg Pykhalov
@ 2018-07-25 11:50 ` Oleg Pykhalov
  2018-07-25 11:56 ` Nils Gillmann
  2018-07-29 22:03 ` Marius Bakke
  2 siblings, 0 replies; 6+ messages in thread
From: Oleg Pykhalov @ 2018-07-25 11:50 UTC (permalink / raw)
  To: 32268

[-- Attachment #1: Type: text/plain, Size: 1089 bytes --]

I should mention that I converted the recipe from Nix [1] which has
different hashes for patches.
--8<---------------cut here---------------start------------->8---
  patches =
    let fetchAlpinePatch = name: sha256: fetchpatch {
      url = "https://git.alpinelinux.org/cgit/aports/plain/main/net-snmp/${name}?id=f25d3fb08341b60b6ccef424399f060dfcf3f1a5";
      inherit name sha256;
    };
  in [
    (fetchAlpinePatch "CVE-2015-5621.patch" "05098jyvd9ddr5q26z7scbbvk1bk6x4agpjm6pyprvpc1zpi0y09")
    (fetchAlpinePatch "fix-Makefile-PL.patch" "14ilnkj3cr6mpi242hrmmmv8nv4dj0fdgn42qfk9aa7scwsc0lc7")
    (fetchAlpinePatch "fix-includes.patch" "0zpkbb6k366qpq4dax5wknwprhwnhighcp402mlm7950d39zfa3m")
    (fetchAlpinePatch "netsnmp-swinst-crash.patch" "0gh164wy6zfiwiszh58fsvr25k0ns14r3099664qykgpmickkqid")
    (fetchAlpinePatch "remove-U64-typedef.patch" "1msxyhcqkvhqa03dwb50288g7f6nbrcd9cs036m9xc8jdgjb8k8j")
  ];
--8<---------------cut here---------------end--------------->8---

[1]  https://github.com/NixOS/nixpkgs/blob/master/pkgs/servers/monitoring/net-snmp/default.nix#L11

Oleg.

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 832 bytes --]

^ permalink raw reply	[flat|nested] 6+ messages in thread

* [bug#32268] [PATCH] gnu: Add net-snmp.
  2018-07-25 11:44 [bug#32268] [PATCH] gnu: Add net-snmp Oleg Pykhalov
  2018-07-25 11:50 ` Oleg Pykhalov
@ 2018-07-25 11:56 ` Nils Gillmann
  2018-07-29 13:54   ` Ludovic Courtès
  2018-07-29 22:03 ` Marius Bakke
  2 siblings, 1 reply; 6+ messages in thread
From: Nils Gillmann @ 2018-07-25 11:56 UTC (permalink / raw)
  To: Oleg Pykhalov; +Cc: 32268

Oleg Pykhalov transcribed 3.7K bytes:
> * gnu/packages/networking.scm (net-snmp): New variable.
> ---
>  gnu/packages/networking.scm | 76 +++++++++++++++++++++++++++++++++++++
>  1 file changed, 76 insertions(+)
> 
> diff --git a/gnu/packages/networking.scm b/gnu/packages/networking.scm
> index 90967b9b1..a77452d6a 100644
> --- a/gnu/packages/networking.scm
> +++ b/gnu/packages/networking.scm
> @@ -66,6 +66,7 @@
>    #:use-module (gnu packages databases)
>    #:use-module (gnu packages dejagnu)
>    #:use-module (gnu packages documentation)
> +  #:use-module (gnu packages file)
>    #:use-module (gnu packages flex)
>    #:use-module (gnu packages gettext)
>    #:use-module (gnu packages glib)
> @@ -1965,3 +1966,78 @@ Features:
>  @item Destination IP blacklist
>  @end itemize")
>        (license license:asl2.0))))
> +
> +(define-public net-snmp
> +  (package
> +    (name "net-snmp")
> +    (version "5.7.3")
> +    (source
> +     (origin
> +       (method url-fetch)
> +       (uri (string-append "mirror://sourceforge/net-snmp/net-snmp/" version
> +                           "/net-snmp-" version ".tar.gz"))
> +       (sha256
> +        (base32
> +         "1w5l9w0sgi1zkzq8ww6kc6fzq7ljq59z2d9ks6bdq1vp7ihqkvqj"))
> +       (patches
> +        (map (lambda (file hash)
> +               (origin
> +                 (method url-fetch)
> +                 (uri (string-append
> +                       "https://git.alpinelinux.org\
> +/cgit/aports/plain/main/net-snmp/"
> +                       file "?id=f25d3fb08341b60b6ccef424399f060dfcf3f1a5"))

Can you please make the 3 lines above look more aligned? like:

> +                 (uri (string-append "https://git.alpinelinux.org"
                                        "/cgit/aports/plain/main/net-snmp/"
                                        file
                                        "?id=f25d3fb08341b60b6ccef424399f060dfcf3f1a5"))

> +                 (sha256
> +                  (base32
> +                   hash))))
> +             '("CVE-2015-5621.patch"
> +               "fix-Makefile-PL.patch"
> +               "fix-includes.patch"
> +               "netsnmp-swinst-crash.patch"
> +               "remove-U64-typedef.patch")
> +             '("0mg2mlfb45fnv7m1k9wckrqjfizipyvrl1q4dn1r0zc774mm7zjc"
> +               "1pd85sy04n76q1ri3l33f0zpnnw76nd5mcny2j39ilzp76bjfik5"
> +               "0zpkbb6k366qpq4dax5wknwprhwnhighcp402mlm7950d39zfa3m"
> +               "0gh164wy6zfiwiszh58fsvr25k0ns14r3099664qykgpmickkqid"
> +               "0jcpcpgx4z9k1w0x6km0132n67qc29mz6cialwfjm02l76q2yk5n")))))
> +    (build-system gnu-build-system)
> +    (native-inputs
> +     `(("autoconf" ,autoconf)
> +       ("automake" ,automake)
> +       ("libtool" ,libtool)))
> +    (inputs
> +     `(("file" ,file)
> +       ("perl" ,perl)
> +       ("openssl" ,openssl)))
> +    (arguments
> +     `(#:tests? #f
> +       #:configure-flags
> +       (list "--with-default-snmp-version=3"
> +             "--with-sys-location=Unknown"
> +             "--with-sys-contact=root@unknown"

Would root@localhost make more sense? Why @unknown?

> +             "--with-logfile=/var/log/net-snmpd.log"
> +             "--with-persistent-directory=/var/lib/net-snmp"
> +             (string-append "--with-openssl="
> +                            (assoc-ref %build-inputs "openssl"))
> +             "--with-mnttab=/proc/mounts")
> +       #:make-flags
> +       (let ((out (assoc-ref %outputs "out")))
> +         (list (string-append "INSTALLSITEARCH=" out
> +                              "/lib/perl5/site_perl/" ,(package-version perl)
> +                              "/x86_64-linux-thread-multi")
> +               (string-append"INSTALLSITEMAN3DIR=" out "/share/man/man3")))
> +
> +       #:phases
> +       (modify-phases %standard-phases
> +         (add-before 'configure 'autoreconf
> +           (lambda _
> +             (invoke "autoreconf" "-vfi"))))))

What I recently discovered, or it might be false memory, is that we
have a phase for this which runs autoreconf -vfi automatically. Or am
I wrong about this?

> +    (home-page "http://net-snmp.sourceforge.net/")
> +    (synopsis "Clients and server for the SNMP network monitoring protocol")
> +    (description "The Simple Network Management Protocol (SNMP) provides a
> +framework for the exchange of management information between agents (servers)
> +and clients.
> +
> +The Net-SNMP applications are a collection of command line clients for issuing
> +SNMP requests to agents.")
> +    (license license:bsd-3)))
> -- 
> 2.18.0

No further comments. As I didn't compile it I can't conclude with 'LGTM'.

^ permalink raw reply	[flat|nested] 6+ messages in thread

* [bug#32268] [PATCH] gnu: Add net-snmp.
  2018-07-25 11:56 ` Nils Gillmann
@ 2018-07-29 13:54   ` Ludovic Courtès
  0 siblings, 0 replies; 6+ messages in thread
From: Ludovic Courtès @ 2018-07-29 13:54 UTC (permalink / raw)
  To: Nils Gillmann; +Cc: 32268

Hello,

Nils Gillmann <ng0@n0.is> skribis:

> Oleg Pykhalov transcribed 3.7K bytes:
>> * gnu/packages/networking.scm (net-snmp): New variable.

[...]

>> +       (modify-phases %standard-phases
>> +         (add-before 'configure 'autoreconf
>> +           (lambda _
>> +             (invoke "autoreconf" "-vfi"))))))
>
> What I recently discovered, or it might be false memory, is that we
> have a phase for this which runs autoreconf -vfi automatically. Or am
> I wrong about this?

You’re right, it appeared with the last ‘core-updates’ merge.  Oleg, can
you make sure this phase can be removed?

No further comments!

Thanks Nils & Oleg,
Ludo’.

^ permalink raw reply	[flat|nested] 6+ messages in thread

* [bug#32268] [PATCH] gnu: Add net-snmp.
  2018-07-25 11:44 [bug#32268] [PATCH] gnu: Add net-snmp Oleg Pykhalov
  2018-07-25 11:50 ` Oleg Pykhalov
  2018-07-25 11:56 ` Nils Gillmann
@ 2018-07-29 22:03 ` Marius Bakke
  2018-07-30 17:08   ` Oleg Pykhalov
  2 siblings, 1 reply; 6+ messages in thread
From: Marius Bakke @ 2018-07-29 22:03 UTC (permalink / raw)
  To: Oleg Pykhalov, 32268


[-- Attachment #1.1: Type: text/plain, Size: 4490 bytes --]

Oleg Pykhalov <go.wigust@gmail.com> writes:

> * gnu/packages/networking.scm (net-snmp): New variable.

Hello!  This patch reminded me I had an ancient patch for Net-SNMP too,
but got stuck on a single test failure and forgot all about it.

I see you've disabled tests altogether which is a neat workaround.
However I'm hoping we can consolidate our efforts and just disable the
one (or was it two) tests that are failing.

Comments inline, my patch attached at the end.

> ---
>  gnu/packages/networking.scm | 76 +++++++++++++++++++++++++++++++++++++
>  1 file changed, 76 insertions(+)

I chose to add a (gnu packages snmp) module, but that may be overkill
indeed.

[...]

> +(define-public net-snmp
> +  (package
> +    (name "net-snmp")
> +    (version "5.7.3")
> +    (source
> +     (origin
> +       (method url-fetch)
> +       (uri (string-append "mirror://sourceforge/net-snmp/net-snmp/" version
> +                           "/net-snmp-" version ".tar.gz"))
> +       (sha256
> +        (base32
> +         "1w5l9w0sgi1zkzq8ww6kc6fzq7ljq59z2d9ks6bdq1vp7ihqkvqj"))
> +       (patches
> +        (map (lambda (file hash)
> +               (origin
> +                 (method url-fetch)
> +                 (uri (string-append
> +                       "https://git.alpinelinux.org\
> +/cgit/aports/plain/main/net-snmp/"
> +                       file "?id=f25d3fb08341b60b6ccef424399f060dfcf3f1a5"))
> +                 (sha256
> +                  (base32
> +                   hash))))
> +             '("CVE-2015-5621.patch"
> +               "fix-Makefile-PL.patch"
> +               "fix-includes.patch"
> +               "netsnmp-swinst-crash.patch"
> +               "remove-U64-typedef.patch")
> +             '("0mg2mlfb45fnv7m1k9wckrqjfizipyvrl1q4dn1r0zc774mm7zjc"
> +               "1pd85sy04n76q1ri3l33f0zpnnw76nd5mcny2j39ilzp76bjfik5"
> +               "0zpkbb6k366qpq4dax5wknwprhwnhighcp402mlm7950d39zfa3m"
> +               "0gh164wy6zfiwiszh58fsvr25k0ns14r3099664qykgpmickkqid"
> +               "0jcpcpgx4z9k1w0x6km0132n67qc29mz6cialwfjm02l76q2yk5n")))))

Instead of adding all these patches, I opted to use the 5.8
pre-release instead.  No strong opinion, but since it's a new package
and 5.8 is "just around the corner" I think that's fine.  WDYT?

Also note that this packages bundles a copy of OpenSSL, which should be
purged.

> +    (build-system gnu-build-system)
> +    (native-inputs
> +     `(("autoconf" ,autoconf)
> +       ("automake" ,automake)
> +       ("libtool" ,libtool)))

Why are these needed?  Because of the patches?

> +    (inputs
> +     `(("file" ,file)
> +       ("perl" ,perl)
> +       ("openssl" ,openssl)))

"file" is an implicit input.  Can you add a comment about why it's
needed here (I guess it's referenced somewhere?)?

> +    (arguments
> +     `(#:tests? #f
> +       #:configure-flags
> +       (list "--with-default-snmp-version=3"
> +             "--with-sys-location=Unknown"
> +             "--with-sys-contact=root@unknown"
> +             "--with-logfile=/var/log/net-snmpd.log"
> +             "--with-persistent-directory=/var/lib/net-snmp"
> +             (string-append "--with-openssl="
> +                            (assoc-ref %build-inputs "openssl"))
> +             "--with-mnttab=/proc/mounts")
> +       #:make-flags
> +       (let ((out (assoc-ref %outputs "out")))
> +         (list (string-append "INSTALLSITEARCH=" out
> +                              "/lib/perl5/site_perl/" ,(package-version perl)
> +                              "/x86_64-linux-thread-multi")
> +               (string-append"INSTALLSITEMAN3DIR=" out "/share/man/man3")))
> +
> +       #:phases
> +       (modify-phases %standard-phases
> +         (add-before 'configure 'autoreconf
> +           (lambda _
> +             (invoke "autoreconf" "-vfi"))))))
> +    (home-page "http://net-snmp.sourceforge.net/")
> +    (synopsis "Clients and server for the SNMP network monitoring protocol")
> +    (description "The Simple Network Management Protocol (SNMP) provides a
> +framework for the exchange of management information between agents (servers)
> +and clients.
> +
> +The Net-SNMP applications are a collection of command line clients for issuing
> +SNMP requests to agents.")
> +    (license license:bsd-3)))

The main license is actually CMU/UCDs "Historic Permission Notice and
Disclaimer", which is not in Guix.  Do you think it's worth adding, or
should we simply use a non-copyleft style URI here?

My patch attached:


[-- Attachment #1.2: 0001-gnu-Add-net-snmp.patch --]
[-- Type: text/x-patch, Size: 10228 bytes --]

From ac4684bb69b0e14abef4b81006115a4077ca6d94 Mon Sep 17 00:00:00 2001
From: Marius Bakke <mbakke@fastmail.com>
Date: Mon, 29 Jan 2018 17:06:24 +0100
Subject: [PATCH] gnu: Add net-snmp.

* gnu/packages/snmp.scm,
gnu/packages/patches/net-snmp-disable-network-tests.patch: New files.
* gnu/local.mk (GNU_SYSTEM_MODULES, dist_patch_DATA): Register it.
---
 gnu/local.mk                                  |   2 +
 .../net-snmp-disable-network-tests.patch      |  84 +++++++++++++++
 gnu/packages/snmp.scm                         | 101 ++++++++++++++++++
 3 files changed, 187 insertions(+)
 create mode 100644 gnu/packages/patches/net-snmp-disable-network-tests.patch
 create mode 100644 gnu/packages/snmp.scm

diff --git a/gnu/local.mk b/gnu/local.mk
index 80d6a8d4c..0a468578b 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -385,6 +385,7 @@ GNU_SYSTEM_MODULES =				\
   %D%/packages/slang.scm			\
   %D%/packages/smalltalk.scm			\
   %D%/packages/sml.scm				\
+  %D%/packages/snmp.scm				\
   %D%/packages/speech.scm			\
   %D%/packages/spice.scm			\
   %D%/packages/ssh.scm				\
@@ -920,6 +921,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/mupen64plus-ui-console-notice.patch	\
   %D%/packages/patches/mutt-store-references.patch		\
   %D%/packages/patches/ncurses-CVE-2017-10684-10685.patch	\
+  %D%/packages/patches/net-snmp-disable-network-tests.patch	\
   %D%/packages/patches/net-tools-bitrot.patch			\
   %D%/packages/patches/netcdf-date-time.patch			\
   %D%/packages/patches/netcdf-tst_h_par.patch			\
diff --git a/gnu/packages/patches/net-snmp-disable-network-tests.patch b/gnu/packages/patches/net-snmp-disable-network-tests.patch
new file mode 100644
index 000000000..c1869a9b1
--- /dev/null
+++ b/gnu/packages/patches/net-snmp-disable-network-tests.patch
@@ -0,0 +1,84 @@
+Drop tests that require network access.
+
+--- a/testing/fulltests/default/T070com2sec_simple
++++ b/testing/fulltests/default/T070com2sec_simple
+@@ -80,12 +80,6 @@
+ # 407b Test maximally long host name/mask
+ CONFIGAGENT 'com2sec t407b a23456789012345678901234567890123456789012345678901234567890123.a23456789012345678901234567890123456789012345678901234567890123.a23456789012345678901234567890123456789012345678901234567890123.a234567890123456789012345678901234567890123456789012345678901./255.255.255.255 c407b'
+ 
+-# 408 Lookup tests, require network access
+-# 408a Test lookup returning a single host
+-CONFIGAGENT 'com2sec t408a onea.net-snmp.org c408a'
+-# 408a Test lookup returning multiple hosts
+-CONFIGAGENT 'com2sec t408b twoa.net-snmp.org c408b'
+-
+ # Default agent setup
+ CONFIGAGENT "[snmp] persistentdir $SNMP_TMP_PERSISTENTDIR"
+ # Dummy config to prevent the basic_setup warning
+@@ -134,26 +128,4 @@
+ SAVECHECKAGENT 'line 30: Error:' # msg from h_strerror so it varies
+ SAVECHECKAGENT 'line 31: Error:' # msg from h_strerror so it varies
+ 
+-CHECKAGENT '<"c408a"'
+-if [ "$snmp_last_test_result" -eq 0 ] ; then
+-  CHECKAGENT 'line 32: Error:'
+-  if [ "$snmp_last_test_result" -ne 1 ] ; then
+-    return_value=1
+-    FINISHED
+-  fi
+-elif [ "$snmp_last_test_result" -ne 1 ] ; then
+-  return_value=1
+-  FINISHED
+-fi
+-
+-CHECKAGENT '<"c408b"'
+-if [ "$snmp_last_test_result" -eq 0 ] ; then
+-  CHECKAGENT 'line 33: Error:'
+-  if [ "$snmp_last_test_result" -ne 1 ] ; then
+-    return_value=1
+-  fi
+-elif [ "$snmp_last_test_result" -ne 1 ] ; then
+-  return_value=1
+-fi
+-
+ FINISHED
+--- a/testing/fulltests/default/T071com2sec6_simple
++++ b/testing/fulltests/default/T071com2sec6_simple
+@@ -74,12 +74,6 @@
+ # 607b Test maximally long host name/mask
+ CONFIGAGENT 'com2sec6 t607b a23456789012345678901234567890123456789012345678901234567890123.a23456789012345678901234567890123456789012345678901234567890123.a23456789012345678901234567890123456789012345678901234567890123.a234567890123456789012345678901234567890123456789012345678901./ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff c607b'
+ 
+-# 608 Lookup tests, require network access
+-# 608a Test lookup returning a single host
+-CONFIGAGENT 'com2sec6 t608a oneAAAA.net-snmp.org c608a'
+-# 608b Test lookup returning multiple hosts
+-CONFIGAGENT 'com2sec6 t608b twoAAAA.net-snmp.org c608b'
+-
+ # Default agent setup
+ CONFIGAGENT "[snmp] persistentdir $SNMP_TMP_PERSISTENTDIR"
+ # Dummy config to prevent the basic_setup warning
+@@ -132,24 +126,4 @@
+ SAVECHECKAGENT 'line 27: Error:'
+ SAVECHECKAGENT 'line 28: Error:'
+ 
+-# 608
+-CHECKAGENT '<"c608a"'
+-if [ "$snmp_last_test_result" -eq 0 ] ; then
+-  CHECKAGENT 'line 29: Error:'
+-  errnum=`expr $errnum - 1`
+-  if [ "$snmp_last_test_result" -ne 1 ] ; then
+-    FINISHED
+-  fi
+-elif [ "$snmp_last_test_result" -ne 1 ] ; then
+-  FINISHED
+-fi
+-
+-CHECKAGENTCOUNT atleastone '<"c608b"'
+-if [ "$snmp_last_test_result" -eq 0 ] ; then
+-  CHECKAGENT 'line 30: Error:'
+-  if [ "$snmp_last_test_result" -eq 1 ] ; then
+-    errnum=`expr $errnum - 1`
+-  fi
+-fi
+-
+ FINISHED
diff --git a/gnu/packages/snmp.scm b/gnu/packages/snmp.scm
new file mode 100644
index 000000000..be79f5458
--- /dev/null
+++ b/gnu/packages/snmp.scm
@@ -0,0 +1,101 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2018 Marius Bakke <mbakke@fastmail.com>
+;;;
+;;; This file is part of GNU Guix.
+;;;
+;;; GNU Guix is free software; you can redistribute it and/or modify it
+;;; under the terms of the GNU General Public License as published by
+;;; the Free Software Foundation; either version 3 of the License, or (at
+;;; your option) any later version.
+;;;
+;;; GNU Guix is distributed in the hope that it will be useful, but
+;;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;;; GNU General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
+
+(define-module (gnu packages snmp)
+  #:use-module (gnu packages)
+  #:use-module (gnu packages compression)
+  #:use-module (gnu packages linux)
+  #:use-module (gnu packages perl)
+  #:use-module (gnu packages tls)
+  #:use-module (guix build-system gnu)
+  #:use-module (guix download)
+  #:use-module ((guix licenses) #:prefix license:)
+  #:use-module (guix packages)
+  #:use-module (guix utils))
+
+(define-public net-snmp
+  (package
+    (name "net-snmp")
+    (version "5.8.pre1")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "mirror://sourceforge/net-snmp/"
+                                  "5.8-pre-releases/net-snmp-" version
+                                  ".tar.gz"))
+              (sha256
+               (base32
+                "1f1rwq2cqz9ysapl96rsay240dbz8s6wsprms7skl2vacq94s2bd"))
+              (patches (search-patches "net-snmp-disable-network-tests.patch"))
+              (modules '((guix build utils)))
+              (snippet
+               '(begin
+                  ;; Drop bundled libraries.
+                  (delete-file-recursively "snmplib/openssl")
+                  #t))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:test-target "test"
+       ;; XXX: With parallel build enabled, Perl modules may not get linked with
+       ;; libnetsnmp.  See e.g. <https://bugzilla.novell.com/show_bug.cgi?id=819497>.
+       #:parallel-build? #f
+       #:make-flags (let ((out (assoc-ref %outputs "out")))
+                      (list (string-append "INSTALLSITEARCH=" out
+                                           "/lib/perl5/site_perl/"
+                                           ,(package-version perl))
+                            (string-append "INSTALLSITEMAN3DIR=" out
+                                           "/share/man/man3")
+                            ;; Make sure the Perl modules get a proper RUNPATH.
+                            ;(string-append "LDFLAGS=-Wl,-rpath=" out "/lib")
+                            ))
+       #:phases (modify-phases %standard-phases
+                  (add-before 'check 'patch-tests
+                    (lambda _
+                      (substitute* "testing/fulltests/support/simple_TESTCONF.sh"
+                        (("NETSTAT=\"\"") (string-append "NETSTAT="
+                                                         (which "netstat"))))
+                      (substitute* "testing/fulltests/default/T065agentextend_sh_simple"
+                        (("/bin/sh") (which "sh")))
+                      (substitute* '("testing/fulltests/default/T061agentperl_simple"
+                                     "testing/fulltests/default/T065agentextend_simple"
+                                     "testing/fulltests/default/T115agentxperl_simple")
+                        (("/usr/bin/env") (which "env")))
+
+                      ;; Note: to debug test failures, step into the failed build
+                      ;; directory, export OK_TO_SAVE_RESULT and run "make testfailed".
+                      #t)))))
+    (native-inputs
+     `(("net-tools" ,net-tools-for-tests)))
+    (inputs
+     `(("bzip2" ,bzip2)
+       ("libnl" ,libnl)
+       ("linux-libre-headers" ,linux-libre-headers)
+       ("openssl" ,openssl)
+       ("perl" ,perl)
+       ("zlib" ,zlib)))
+    (home-page "http://net-snmp.sourceforge.net/")
+    (synopsis "SNMP tools and libraries")
+    (description
+     "@dfn{SNMP} (Simple Network Management Protocol) is a widely used protocol
+for monitoring and managing servers and network devices.  This package includes
+command-line utilities for retrieving information and sending commands, a
+graphical @dfn{MIB} (Management Information Base) browser, a daemon for responding
+to SNMP commands (@command{snmptrapd}), an extensible SNMP server (@command{snmpd}),
+and libraries for writing other SNMP applications.")
+    ;; Distributed under HPND and multiple variants of the 3-clause BSD license.
+    ;; See COPYING for full information.
+    (license (list license:hpnd license:bsd-3))))
-- 
2.18.0


[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 487 bytes --]

^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [bug#32268] [PATCH] gnu: Add net-snmp.
  2018-07-29 22:03 ` Marius Bakke
@ 2018-07-30 17:08   ` Oleg Pykhalov
  0 siblings, 0 replies; 6+ messages in thread
From: Oleg Pykhalov @ 2018-07-30 17:08 UTC (permalink / raw)
  To: Marius Bakke; +Cc: 32268

[-- Attachment #1: Type: text/plain, Size: 2600 bytes --]

Hello Marius,

First of all thank you for your work on ‘net-snmp’.

Marius Bakke <mbakke@fastmail.com> writes:

> Oleg Pykhalov <go.wigust@gmail.com> writes:
>
>> * gnu/packages/networking.scm (net-snmp): New variable.
>
> Hello!  This patch reminded me I had an ancient patch for Net-SNMP too,
> but got stuck on a single test failure and forgot all about it.

Oh, unfortunate I didn't find it before #32268.

> I see you've disabled tests altogether which is a neat workaround.
> However I'm hoping we can consolidate our efforts and just disable the
> one (or was it two) tests that are failing.

I did't find tests suite while packaging.  Thank you for pointing that.

> Comments inline, my patch attached at the end.
>
>> ---
>>  gnu/packages/networking.scm | 76 +++++++++++++++++++++++++++++++++++++
>>  1 file changed, 76 insertions(+)
>
> I chose to add a (gnu packages snmp) module, but that may be overkill
> indeed.

If you think about adding other SNMP specific tools then it's a great
idea.  :-) Maybe a ‘(gnu packages monitoring)’ module could be also in a
consideration?  I vote for ‘(gnu packages networking)’ still.

[…]

> I opted to use the 5.8 pre-release instead.  No strong opinion, but
> since it's a new package and 5.8 is "just around the corner" I think
> that's fine.  WDYT?

Wow, indeed.  Seems I found a 5.8 release.  Maybe we should peek it?
WDYT?  https://sourceforge.net/projects/net-snmp/files/net-snmp/5.8/

> Also note that this packages bundles a copy of OpenSSL, which should be
> purged.
>
>> +    (build-system gnu-build-system)
>> +    (native-inputs
>> +     `(("autoconf" ,autoconf)
>> +       ("automake" ,automake)
>> +       ("libtool" ,libtool)))
>
> Why are these needed?  Because of the patches?

The ‘(invoke "autoreconf" "-vfi")’ requires all those three packages.

>> +    (inputs
>> +     `(("file" ,file)
>> +       ("perl" ,perl)
>> +       ("openssl" ,openssl)))
>
> "file" is an implicit input.  Can you add a comment about why it's
> needed here (I guess it's referenced somewhere?)?

Configuration or complation phases failed without it.  I don't see
‘file’ in your patch.  So, I think I could skip commenting above.  :-)

[…]

>> +    (license license:bsd-3)))
>
> The main license is actually CMU/UCDs "Historic Permission Notice and
> Disclaimer", which is not in Guix.  Do you think it's worth adding, or
> should we simply use a non-copyleft style URI here?

Either way is OK for me, but I vote for non-copyleft style.

Thanks,
Oleg.

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 832 bytes --]

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2018-07-30 17:09 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-07-25 11:44 [bug#32268] [PATCH] gnu: Add net-snmp Oleg Pykhalov
2018-07-25 11:50 ` Oleg Pykhalov
2018-07-25 11:56 ` Nils Gillmann
2018-07-29 13:54   ` Ludovic Courtès
2018-07-29 22:03 ` Marius Bakke
2018-07-30 17:08   ` Oleg Pykhalov

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/guix.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).