Package: guix-patches;
Reported by: Adam Van Ymeren <adam <at> vany.ca>
Date: Tue, 24 Oct 2017 19:00:02 UTC
Severity: normal
Tags: patch
Done: ludo <at> gnu.org (Ludovic Courtès)
Bug is archived. No further changes may be made.
Message #17 received at 28973 <at> debbugs.gnu.org (full text, mbox):
From: Adam Van Ymeren <adam <at> vany.ca> To: Tobias Geerinckx-Rice <me <at> tobias.gr> Cc: 28973 <at> debbugs.gnu.org Subject: Re: [bug#28973] [PATCH 1/1] gnu: Add strongswan. Date: Tue, 24 Oct 2017 19:08:27 -0400
Thanks for the repsonse and feedback! I've appended a new patch at the bottom of this message as well as replied to some of your comment inline. Tobias Geerinckx-Rice <me <at> tobias.gr> writes: >> I believe the licensing info is correct now but I didn't do an >> exhaustive search of all files. > > Unfortunately, that's the only way to be sure. Yeah, I was hoping somebody had a tool to make this faster :) I wrote a little script in guile and started working through it but its slow work. I'm going on vacation next week so I might not be able to finish this before then. However it looks like Debian has a much more exhaustive listing of the licenses here: http://metadata.ftp-master.debian.org/changelogs/main/s/strongswan/strongswan_5.5.1-4+deb9u1_copyright The 4 clause BSD licenses are troubling. Apparently Debian doesn't compile those files in their build. Will have to investiate further. For reference here's my shoddy guile script. (use-modules (ice-9 ftw) (ice-9 textual-ports)) (define GPL " * 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 the * Free Software Foundation; either version 2 of the License, or (at your * option) any later version. See <http://www.fsf.org/copyleft/gpl.txt>. ") (define GPL2 "-- 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 the -- Free Software Foundation; either version 2 of the License, or (at your -- option) any later version. See <http://www.fsf.org/copyleft/gpl.txt>. ") (define (check-licenses preamble) (and (string? preamble) (not (string-contains preamble GPL)) (not (string-contains preamble GPL2)))) (ftw "strongswan-5.6.0" (lambda (filename stat flag) (when (and (eq? flag 'regular) (not (member (substring (basename filename) (or (string-rindex (basename filename) #\.) 0)) '(".opt" ".conf" ".pem" ".in" ".am" ".mk" ".sql" "hostname" ".der" ".old" ".xml")))) (call-with-input-file filename (lambda (port) (let ((preamble (get-string-n port 5000))) (when (check-licenses preamble) (format #t "~A~%" filename)))))) #t)) >> + (synopsis "IKEv1/v2 keying daemon") >> + (description "strongswan is an open source IPSec implementation") > > Newspeak aside[0], all software in Guix is Free. Removing ‘open source’ > leaves us with a very short description indeed... > > Is there a README, web, or man page who's opening paragraphs we could > shamelessly plunder? I agree I don't like the usage of "open source" but that's how they brand themselves, not sure if it's right for me to change it to read Free Software. I took this sentence from their README file. How about this? I wrote this based upon the top features they list on their homepage. "StrongSwan is an IPsec implementation originally based upon the FreeS/WAN project. It contains support for IKEv1, IKEv2, MOBIKE, IPv6, NAT-T and more." > Oh, and: thanks for packaging StrongSwan! NP :). Updated patch below. diff --git a/gnu/packages/networking.scm b/gnu/packages/networking.scm index 633b8ca43..552690556 100644 --- a/gnu/packages/networking.scm +++ b/gnu/packages/networking.scm @@ -64,6 +64,7 @@ #:use-module (gnu packages libidn) #:use-module (gnu packages linux) #:use-module (gnu packages lua) + #:use-module (gnu packages multiprecision) #:use-module (gnu packages kerberos) #:use-module (gnu packages ncurses) #:use-module (gnu packages pcre) @@ -1494,3 +1495,35 @@ interface and a programmable text output for scripting.") ;; Update the license field when upstream responds. (license (list license:bsd-2 license:expat)))) + +(define-public strongswan + (package + (name "strongswan") + (version "5.6.0") + (source + (origin + (method url-fetch) + (uri (string-append "https://download.strongswan.org/strongswan-" version ".tar.bz2")) + (sha256 + (base32 "04vvha2zgsg1cq05cnn6sf7a4hq9ndnsfxpw1drm5v9l4vcw0kd1")) + (patches + (search-patches "strongswan-test_process-disable-all.patch" + "strongswan-test_time_printf_hook-pass-in-utc.patch")))) + (build-system gnu-build-system) + (inputs + `(("curl" ,curl) + ("gmp" ,gmp) + ("libgcrypt" ,libgcrypt) + ("openssl" ,openssl))) + (synopsis "IKEv1/v2 keying daemon") + (description "StrongSwan is an IPsec implementation originally based upon +the FreeS/WAN project. It contains support for IKEv1, IKEv2, MOBIKE, IPv6, +NAT-T and more.") + (home-page "https://strongswan.org/") + (license + (list license:expat + license:bsd-3 + license:bsd-4 + license:gpl2+ + license:public-domain ;src/libstrongswan/plugins/sha3/sha3_keccak.c + )))) diff --git a/gnu/packages/patches/strongswan-test_process-disable-all.patch b/gnu/packages/patches/strongswan-test_process-disable-all.patch new file mode 100644 index 000000000..df3d1f3be --- /dev/null +++ b/gnu/packages/patches/strongswan-test_process-disable-all.patch @@ -0,0 +1,48 @@ + +diff -Naur strongswan-5.6.0-original/src/libstrongswan/tests/suites/test_process.c strongswan-5.6.0/src/libstrongswan/tests/suites/test_process.c +--- strongswan-5.6.0-original/src/libstrongswan/tests/suites/test_process.c 2016-04-22 16:01:35.000000000 -0400 ++++ strongswan-5.6.0/src/libstrongswan/tests/suites/test_process.c 2017-10-23 15:10:12.753837342 -0400 +@@ -201,27 +201,27 @@ + + s = suite_create("process"); + +- tc = tcase_create("return values"); +- tcase_add_test(tc, test_retval_true); +- tcase_add_test(tc, test_retval_false); +- suite_add_tcase(s, tc); ++ /* tc = tcase_create("return values"); */ ++ /* tcase_add_test(tc, test_retval_true); */ ++ /* tcase_add_test(tc, test_retval_false); */ ++ /* suite_add_tcase(s, tc); */ + + tc = tcase_create("not found"); + tcase_add_test(tc, test_not_found); + suite_add_tcase(s, tc); + +- tc = tcase_create("echo"); +- tcase_add_test(tc, test_echo); +- tcase_add_test(tc, test_echo_err); +- suite_add_tcase(s, tc); +- +- tc = tcase_create("env"); +- tcase_add_test(tc, test_env); +- suite_add_tcase(s, tc); +- +- tc = tcase_create("shell"); +- tcase_add_test(tc, test_shell); +- suite_add_tcase(s, tc); ++ /* tc = tcase_create("echo"); */ ++ /* tcase_add_test(tc, test_echo); */ ++ /* tcase_add_test(tc, test_echo_err); */ ++ /* suite_add_tcase(s, tc); */ ++ ++ /* tc = tcase_create("env"); */ ++ /* tcase_add_test(tc, test_env); */ ++ /* suite_add_tcase(s, tc); */ ++ ++ /* tc = tcase_create("shell"); */ ++ /* tcase_add_test(tc, test_shell); */ ++ /* suite_add_tcase(s, tc); */ + + return s; + } diff --git a/gnu/packages/patches/strongswan-test_time_printf_hook-pass-in-utc.patch b/gnu/packages/patches/strongswan-test_time_printf_hook-pass-in-utc.patch new file mode 100644 index 000000000..a1d80cb3a --- /dev/null +++ b/gnu/packages/patches/strongswan-test_time_printf_hook-pass-in-utc.patch @@ -0,0 +1,14 @@ +diff -Naur strongswan-5.6.0-original/src/libstrongswan/tests/suites/test_utils.c strongswan-5.6.0/src/libstrongswan/tests/suites/test_utils.c +--- strongswan-5.6.0-original/src/libstrongswan/tests/suites/test_utils.c 2017-10-23 14:50:49.744343308 -0400 ++++ strongswan-5.6.0/src/libstrongswan/tests/suites/test_utils.c 2017-10-23 14:51:07.911880335 -0400 +@@ -750,9 +750,9 @@ + } time_data[] = { + {UNDEFINED_TIME, FALSE, "--- -- --:--:-- ----"}, + {UNDEFINED_TIME, TRUE , "--- -- --:--:-- UTC ----"}, +- {1, FALSE, "Jan 01 01:00:01 1970"}, ++ {1, FALSE, "Jan 01 00:00:01 1970"}, + {1, TRUE , "Jan 01 00:00:01 UTC 1970"}, +- {1341150196, FALSE, "Jul 01 15:43:16 2012"}, ++ {1341150196, FALSE, "Jul 01 13:43:16 2012"}, + {1341150196, TRUE , "Jul 01 13:43:16 UTC 2012"}, + };
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.