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.
This commit is contained in:
		
							parent
							
								
									02b80c3f65
								
							
						
					
					
						commit
						18d50d7621
					
				
					 5 changed files with 168 additions and 0 deletions
				
			
		|  | @ -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			\ | ||||
|  |  | |||
							
								
								
									
										125
									
								
								distro/packages/lsh.scm
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										125
									
								
								distro/packages/lsh.scm
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,125 @@ | |||
| ;;; Guix --- Nix package management from Guile.         -*- coding: utf-8 -*- | ||||
| ;;; Copyright (C) 2012 Ludovic Courtès <ludo@gnu.org> | ||||
| ;;; | ||||
| ;;; 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 <http://www.gnu.org/licenses/>. | ||||
| 
 | ||||
| (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+"))) | ||||
							
								
								
									
										9
									
								
								distro/packages/patches/lsh-guile-compat.patch
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										9
									
								
								distro/packages/patches/lsh-guile-compat.patch
									
										
									
									
									
										Normal file
									
								
							|  | @ -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))
 | ||||
							
								
								
									
										16
									
								
								distro/packages/patches/lsh-no-root-login.patch
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										16
									
								
								distro/packages/patches/lsh-no-root-login.patch
									
										
									
									
									
										Normal file
									
								
							|  | @ -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; | ||||
| 
 | ||||
							
								
								
									
										14
									
								
								distro/packages/patches/lsh-pam-service-name.patch
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										14
									
								
								distro/packages/patches/lsh-pam-service-name.patch
									
										
									
									
									
										Normal file
									
								
							|  | @ -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 <security/pam_appl.h> | ||||
|   | ||||
|  #define PWD_MAXLEN 1024 | ||||
| -#define SERVICE_NAME "other"
 | ||||
| +#define SERVICE_NAME "lshd"
 | ||||
|  #define TIMEOUT 600  | ||||
|   | ||||
|  static int | ||||
		Reference in a new issue