From 686f14e8a45b06e0b27cc6100b60a475e6970fe6 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Tue, 4 Dec 2012 00:17:49 +0100 Subject: distro: Add psmisc. * distro/packages/linux.scm (psmisc): New variable. --- distro/packages/linux.scm | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) (limited to 'distro') diff --git a/distro/packages/linux.scm b/distro/packages/linux.scm index 54a0606a11..3048181ecd 100644 --- a/distro/packages/linux.scm +++ b/distro/packages/linux.scm @@ -21,6 +21,7 @@ #:use-module (guix download) #:use-module (distro packages flex) #:use-module (distro packages perl) + #:use-module (distro packages ncurses) #:use-module (guix build-system gnu)) (define-public linux-libre-headers @@ -104,3 +105,26 @@ Pluggable authentication modules are small shared object files that can be used through the PAM API to perform tasks, like authenticating a user at login. Local and dynamic reconfiguration are its key features") (license "BSD"))) + +(define-public psmisc + (package + (name "psmisc") + (version "22.20") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://sourceforge/psmisc/psmisc/psmisc-" + version ".tar.gz")) + (sha256 + (base32 + "052mfraykmxnavpi8s78aljx8w87hyvpx8mvzsgpjsjz73i28wmi")))) + (build-system gnu-build-system) + (inputs `(("ncurses" ,ncurses))) + (home-page "http://psmisc.sourceforge.net/") + (synopsis + "set of utilities that use the proc filesystem, such as fuser, killall, and pstree") + (description + "This PSmisc package is a set of some small useful utilities that +use the proc filesystem. We're not about changing the world, but +providing the system administrator with some help in common tasks.") + (license "GPLv2+"))) -- cgit 1.4.1 From 02b80c3f652bfd0814a37a0710822268f7934294 Mon Sep 17 00:00:00 2001 From: Nikita Karetnikov Date: Mon, 3 Dec 2012 23:13:02 +0000 Subject: distro: Add util-linux. * distro/packages/linux.scm (util-linux): New variable. --- distro/packages/linux.scm | 45 +++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 43 insertions(+), 2 deletions(-) (limited to 'distro') diff --git a/distro/packages/linux.scm b/distro/packages/linux.scm index 3048181ecd..d6669312dc 100644 --- a/distro/packages/linux.scm +++ b/distro/packages/linux.scm @@ -1,5 +1,6 @@ ;;; Guix --- Nix package management from Guile. -*- coding: utf-8 -*- ;;; Copyright (C) 2012 Ludovic Courtès +;;; Copyright (C) 2012 Nikita Karetnikov ;;; ;;; This file is part of Guix. ;;; @@ -17,11 +18,13 @@ ;;; along with Guix. If not, see . (define-module (distro packages linux) - #:use-module (guix packages) - #:use-module (guix download) + #:use-module (distro packages compression) #:use-module (distro packages flex) + #:use-module (distro packages ncurses) #:use-module (distro packages perl) #:use-module (distro packages ncurses) + #:use-module (guix packages) + #:use-module (guix download) #:use-module (guix build-system gnu)) (define-public linux-libre-headers @@ -128,3 +131,41 @@ at login. Local and dynamic reconfiguration are its key features") use the proc filesystem. We're not about changing the world, but providing the system administrator with some help in common tasks.") (license "GPLv2+"))) + +(define-public util-linux + (package + (name "util-linux") + (version "2.21") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://kernel.org/linux/utils/" + name "/v" version "/" + name "-" version ".2" ".tar.xz")) + (sha256 + (base32 + "1rpgghf7n0zx0cdy8hibr41wvkm2qp1yvd8ab1rxr193l1jmgcir")))) + (build-system gnu-build-system) + (arguments + `(#:configure-flags '("--disable-use-tty-group") + #:phases (alist-cons-after + 'install 'patch-chkdupexe + (lambda* (#:key outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out"))) + (substitute* (string-append out "/bin/chkdupexe") + ;; Allow 'patch-shebang' to do its work. + (("@PERL@") "/bin/perl")))) + %standard-phases))) + (inputs `(("zlib" ,zlib) + ("ncurses" ,ncurses) + ("perl" ,perl))) + (home-page "https://www.kernel.org/pub/linux/utils/util-linux/") + (synopsis + "util-linux is a random collection of utilities for the Linux kernel") + (description + "util-linux is a random collection of utilities for the Linux kernel.") + ;; Note that util-linux doesn't use the same license for all the + ;; code. GPLv2+ is the default license for a code without an + ;; explicitly defined license. + (license '("GPLv3+" "GPLv2+" "GPLv2" "LGPLv2+" + "BSD-original" "Public Domain")))) -- cgit 1.4.1 From 18d50d76216f5c207d8178cb2d2d2f31eb8fe3eb Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Tue, 4 Dec 2012 22:03:21 +0100 Subject: distro: Add GNU lsh. * distro/packages/lsh.scm, distro/packages/patches/lsh-guile-compat.patch: distro/packages/patches/lsh-no-root-login.patch: distro/packages/patches/lsh-pam-service-name.patch: New files. * Makefile.am (MODULES): Add lsh.scm. (dist_patch_DATA): Add the above patches. --- Makefile.am | 4 + distro/packages/lsh.scm | 125 +++++++++++++++++++++ distro/packages/patches/lsh-guile-compat.patch | 9 ++ distro/packages/patches/lsh-no-root-login.patch | 16 +++ distro/packages/patches/lsh-pam-service-name.patch | 14 +++ 5 files changed, 168 insertions(+) create mode 100644 distro/packages/lsh.scm create mode 100644 distro/packages/patches/lsh-guile-compat.patch create mode 100644 distro/packages/patches/lsh-no-root-login.patch create mode 100644 distro/packages/patches/lsh-pam-service-name.patch (limited to 'distro') diff --git a/Makefile.am b/Makefile.am index 8bb3b55634..2500c0e2a7 100644 --- a/Makefile.am +++ b/Makefile.am @@ -67,6 +67,7 @@ MODULES = \ distro/packages/libunistring.scm \ distro/packages/linux.scm \ distro/packages/lout.scm \ + distro/packages/lsh.scm \ distro/packages/m4.scm \ distro/packages/make-bootstrap.scm \ distro/packages/multiprecision.scm \ @@ -103,6 +104,9 @@ dist_patch_DATA = \ distro/packages/patches/guile-default-utf8.patch \ distro/packages/patches/guile-relocatable.patch \ distro/packages/patches/libtool-skip-tests.patch \ + distro/packages/patches/lsh-guile-compat.patch \ + distro/packages/patches/lsh-no-root-login.patch \ + distro/packages/patches/lsh-pam-service-name.patch \ distro/packages/patches/m4-gets-undeclared.patch \ distro/packages/patches/m4-readlink-EINVAL.patch \ distro/packages/patches/m4-s_isdir.patch \ diff --git a/distro/packages/lsh.scm b/distro/packages/lsh.scm new file mode 100644 index 0000000000..f6caf52caf --- /dev/null +++ b/distro/packages/lsh.scm @@ -0,0 +1,125 @@ +;;; Guix --- Nix package management from Guile. -*- coding: utf-8 -*- +;;; Copyright (C) 2012 Ludovic Courtès +;;; +;;; This file is part of Guix. +;;; +;;; 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. +;;; +;;; 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 Guix. If not, see . + +(define-module (distro packages lsh) + #:use-module (guix packages) + #:use-module (guix download) + #:use-module (guix build-system gnu) + #:use-module (distro) + #:use-module (distro packages m4) + #:use-module (distro packages linux) + #:use-module (distro packages compression) + #:use-module (distro packages multiprecision) + #:use-module (distro packages readline) + #:use-module (distro packages gperf) + #:use-module (distro packages base)) + +(define-public liboop + (package + (name "liboop") + (version "1.0") + (source + (origin + (method url-fetch) + (uri (string-append "http://download.ofb.net/liboop/liboop-" + version ".tar.gz")) + (sha256 + (base32 + "0z6rlalhvfca64jpvksppc9bdhs7jwhiw4y35g5ibvh91xp3rn1l")))) + (build-system gnu-build-system) + (home-page "http://liboop.ofb.net/") + (synopsis "`liboop', an event loop library") + (description "liboop is an event loop library.") + (license "LGPLv2.1+"))) + +(define-public lsh + (package + (name "lsh") + (version "2.0.4") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://gnu/lsh/lsh-" + version ".tar.gz")) + (sha256 + (base32 + "149hf49xcj99wwvi7hcb59igq4vpyv8har1br1if3lrsw5irsjv1")))) + (build-system gnu-build-system) + (inputs + `(("linux-pam" ,linux-pam) + ("m4" ,m4) + ("readline" ,readline) + ("liboop" ,liboop) + ("zlib" ,zlib) + ("gmp" ,gmp) + ("guile" ,guile-final) + ("gperf" ,gperf) + ("psmisc" ,psmisc) ; for `killall' + + ("patch/no-root-login" ,(search-patch "lsh-no-root-login.patch")) + ("patch/guile-compat" ,(search-patch "lsh-guile-compat.patch")) + ("patch/pam-service-name" + ,(search-patch "lsh-pam-service-name.patch")))) + (arguments + '(#:patches (list (assoc-ref %build-inputs "patch/no-root-login") + (assoc-ref %build-inputs "patch/pam-service-name") + (assoc-ref %build-inputs "patch/guile-compat")) + + ;; Skip the `configure' test that checks whether /dev/ptmx & + ;; co. work as expected, because it relies on impurities (for + ;; instance, /dev/pts may be unavailable in chroots.) + #:configure-flags '("lsh_cv_sys_unix98_ptys=yes") + + ;; FIXME: Tests won't run in a chroot, presumably because + ;; /etc/profile is missing, and thus clients get an empty $PATH + ;; and nothing works. + #:tests? #f + + #:phases + (alist-cons-before + 'configure 'fix-test-suite + (lambda _ + ;; Tests rely on $USER being set. + (setenv "USER" "guix") + + (substitute* "src/testsuite/functions.sh" + (("localhost") + ;; Avoid host name lookups since they don't work in chroot + ;; builds. + "127.0.0.1") + (("set -e") + ;; Make tests more verbose. + "set -e\nset -x")) + + (substitute* (find-files "src/testsuite" "-test$") + (("localhost") "127.0.0.1")) + + (substitute* "src/testsuite/login-auth-test" + (("/bin/cat") + ;; Use the right path to `cat'. + (search-path (search-path-as-string->list (getenv "PATH")) + "cat")))) + %standard-phases))) + (home-page "http://www.lysator.liu.se/~nisse/lsh/") + (synopsis + "GNU lsh, a GPL'd implementation of the SSH protocol") + (description + "lsh is a free implementation (in the GNU sense) of the ssh +version 2 protocol, currently being standardised by the IETF +SECSH working group.") + (license "GPLv2+"))) diff --git a/distro/packages/patches/lsh-guile-compat.patch b/distro/packages/patches/lsh-guile-compat.patch new file mode 100644 index 0000000000..0fe0484580 --- /dev/null +++ b/distro/packages/patches/lsh-guile-compat.patch @@ -0,0 +1,9 @@ +Use (ice-9 rdelim) for `read-line'. + +--- lsh-2.0.4/src/scm/guile-compat.scm 2012-12-03 23:28:01.000000000 +0100 ++++ lsh-2.0.4/src/scm/guile-compat.scm 2012-12-03 23:28:04.000000000 +0100 +@@ -21,3 +21,4 @@ + ;; Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + + (use-syntax (ice-9 syncase)) ++(use-modules (ice-9 rdelim)) diff --git a/distro/packages/patches/lsh-no-root-login.patch b/distro/packages/patches/lsh-no-root-login.patch new file mode 100644 index 0000000000..9dd81de3fb --- /dev/null +++ b/distro/packages/patches/lsh-no-root-login.patch @@ -0,0 +1,16 @@ +Correctly handle the `--no-root-login' option. + +--- lsh-2.0.4/src/lshd.c 2006-05-01 13:47:44.000000000 +0200 ++++ lsh-2.0.4/src/lshd.c 2009-09-08 12:20:36.000000000 +0200 +@@ -758,6 +758,10 @@ main_argp_parser(int key, char *arg, str + self->allow_root = 1; + break; + ++ case OPT_NO_ROOT_LOGIN: ++ self->allow_root = 0; ++ break; ++ + case OPT_KERBEROS_PASSWD: + self->pw_helper = PATH_KERBEROS_HELPER; + break; + diff --git a/distro/packages/patches/lsh-pam-service-name.patch b/distro/packages/patches/lsh-pam-service-name.patch new file mode 100644 index 0000000000..6a6156855c --- /dev/null +++ b/distro/packages/patches/lsh-pam-service-name.patch @@ -0,0 +1,14 @@ +Tell `lsh-pam-checkpw', the PAM password helper program, to use a more +descriptive service name. + +--- lsh-2.0.4/src/lsh-pam-checkpw.c 2003-02-16 22:30:10.000000000 +0100 ++++ lsh-2.0.4/src/lsh-pam-checkpw.c 2008-11-28 16:16:58.000000000 +0100 +@@ -38,7 +38,7 @@ + #include + + #define PWD_MAXLEN 1024 +-#define SERVICE_NAME "other" ++#define SERVICE_NAME "lshd" + #define TIMEOUT 600 + + static int -- cgit 1.4.1