(define-module (glicid packages ssh) #:use-module (guix packages) #:use-module (guix download) #:use-module (guix git-download) #:use-module (guix build-system gnu) #:use-module (guix build-system cmake) ; #:use-module (guix licenses) #:use-module (gnu packages gawk) #:use-module (gnu packages gcc) #:use-module (gnu packages commencement) #:use-module (guix build-system python) #:use-module ((guix licenses) #:prefix license:) #:use-module ((guix utils) #:select (target-64bit?)) #:use-module (gnu packages) #:use-module (gnu packages admin) #:use-module (gnu packages autotools) #:use-module (gnu packages base) #:use-module (gnu packages freeipmi) #:use-module (gnu packages linux) #:use-module (gnu packages mpi) #:use-module (gnu packages perl) #:use-module (gnu packages pkg-config) #:use-module (gnu packages parallel) #:use-module (gnu packages storage) #:use-module (gnu packages networking) #:use-module (gnu packages gtk) #:use-module (gnu packages python) #:use-module (gnu packages python-science) #:use-module (gnu packages python-web) #:use-module (gnu packages python-xyz) #:use-module (gnu packages readline) #:use-module (gnu packages tcl) #:use-module (gnu packages tls) #:use-module (gnu packages commencement) #:use-module (gnu packages gcc) #:use-module (gnu packages chemistry) #:use-module (gnu packages sphinx) #:use-module (srfi srfi-1) #:use-module (gnu packages mpi) #:use-module (gnu packages sssd) #:use-module (gnu packages fabric-management) #:use-module (gnu packages benchmark) #:use-module (gnu packages messaging) #:use-module (gnu packages web) #:use-module (gnu packages gnome) #:use-module (gnu packages cluster) #:use-module (gnu packages libevent) #:use-module (gnu packages xorg) #:use-module (gnu packages fontutils) #:use-module (gnu packages flex) #:use-module (gnu packages bison) #:use-module (gnu packages pkg-config) #:use-module (gnu packages autotools) #:use-module (gnu packages fontutils) #:use-module (guix build-system gnu) #:use-module (gnu packages image) #:use-module (gnu packages maths) #:use-module (guix utils) #:use-module (gnu packages cmake) #:use-module (gnu packages pretty-print) #:use-module (gnu packages boost) #:use-module (gnu packages curl) #:use-module (gnu packages cryptsetup) #:use-module (gnu packages xml) #:use-module (gnu packages admin) #:use-module (gnu packages assembly) #:use-module (gnu packages authentication) #:use-module (gnu packages bdw-gc) #:use-module (gnu packages boost) #:use-module (gnu packages compression) #:use-module (gnu packages crypto) #:use-module (gnu packages cryptsetup) #:use-module (gnu packages curl) #:use-module (gnu packages databases) #:use-module (gnu packages disk) #:use-module (gnu packages gperf) #:use-module (gnu packages jemalloc) #:use-module (gnu packages linux) #:use-module (gnu packages lua) #:use-module (gnu packages ncurses) #:use-module (gnu packages networking) #:use-module (gnu packages nss) #:use-module (gnu packages openldap) #:use-module (gnu packages pkg-config) #:use-module (gnu packages python) #:use-module (gnu packages python-xyz) #:use-module (gnu packages sphinx) #:use-module (gnu packages tls) #:use-module (gnu packages web) ;; #:use-module (gnu packages glicid) #:use-module (gnu packages pretty-print) #:use-module (gnu packages virtualization) #:use-module (glicid packages storage) #:use-module (glicid packages mpi) #:use-module (glicid packages gcc) ) ;;;;;;;; (use-modules (guix packages)) (use-modules (guix download)) (use-modules (gnu packages linux)) (use-modules (gnu packages gcc)) ;;(use-modules (gnu packages glicid)) (use-modules (gnu packages ssh)) (use-modules (gnu packages hurd)) (use-modules (guix build-system gnu)) (use-modules (guix build-system cmake)) (use-modules (gnu packages compression)) (use-modules (gnu packages crypto)) (use-modules (gnu packages tls)) ;;(use-modules (gnu packages glicid)) (use-modules (gnu packages pkg-config)) (use-modules ((guix licenses) #:prefix license:)) (define-public libcbor-0.8.0 (package (name "libcbor") (version "0.8.0") (source (origin (method url-fetch) (uri (string-append "http://github.com/PJK/libcbor/archive/refs/tags/v" version ".tar.gz")) (sha256 (base32 "12vw46ahhsc3ydnivkv5lvk1cn4sjjmcr639cjcl99d4dqb9g031")) )) (build-system cmake-build-system) (arguments `(#:configure-flags (list "-DCMAKE_CXX_FLAGS=-fPIE" "-DCMAKE_C_FLAGS=-fPIE"))) (synopsis "libfido2") (description "Todo") (home-page "toto") (license license:gpl2+) )) (define-public libcbor-0.9.0 (package (inherit libcbor-0.8.0) (version "0.9.0") (source (origin (method url-fetch) (uri (string-append "http://github.com/PJK/libcbor/archive/refs/tags/v" version ".tar.gz")) (sha256 (base32 "12vw46ahhsc3ydnivkv5lvk1cn4sjjmcr639cjcl99d4dqb9g031")) ) ) ) ) (define-public libcbor-latest libcbor-0.9.0) (define-public libfido2-1.8.0 (package (name "libfido2") (version "1.8.0") (source (origin (method url-fetch) (uri (string-append "https://developers.yubico.com/libfido2/Releases/libfido2-" version ".tar.gz")) ; (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 "07gxyy5yzgfh5hg7q9fr77z5mkj0xjvd5ya7p5f5kar4iwc92hjm")) )) (build-system cmake-build-system) (arguments '(#:tests? #f)) (inputs `( ("libcbor",libcbor-latest) ("openssl",openssl) ("zlib", zlib) ("pkg-config", pkg-config) ; or cmake won't find zlib ! ("eudev", eudev) )) (synopsis "libfido2") (description "Todo") (home-page "toto") (license license:gpl2+) ) ) (define-public libfido2-1.9.0 (package (inherit libfido2-1.8.0) (version "1.9.0") (source (origin (method url-fetch) (uri (string-append "https://developers.yubico.com/libfido2/Releases/libfido2-" version ".tar.gz")) ; (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 "1ln2b0zfvl35r03kn2k1i2aw1k3ypvivc71xmp4dzlin6ypy6fds")) ) ) ) ) (define libfido2-latest libfido2-1.9.0) (define-public openssh-with-fido2 (package (inherit openssh) (name "openssh-with-fido2") (arguments `(#:test-target "tests" ;; Otherwise, the test scripts try to use a nonexistent directory and ;; fail. #:make-flags '("REGRESSTMP=\"$${BUILDDIR}/regress\"") #:configure-flags `("--sysconfdir=/etc/ssh" ;; Default value of 'PATH' used by sshd. "--with-default-path=/run/current-system/profile/bin" ;; configure needs to find krb5-config. ,(string-append "--with-kerberos5=" (assoc-ref %build-inputs "mit-krb5") "/bin") ;; libedit is needed for sftp completion. "--with-libedit" ;; for u2f "--with-security-key-builtin" ; ,(string-append "--with-fido2=" (assoc-ref %build-inputs "libfido2")) ;; Enable PAM support in sshd. ,,@(if (hurd-target?) '() '("--with-pam")) ;; "make install" runs "install -s" by default, ;; which doesn't work for cross-compiled binaries ;; because it invokes 'strip' instead of ;; 'TRIPLET-strip'. Work around this. ,,@(if (%current-target-system) '("--disable-strip") '() )) #:phases (modify-phases %standard-phases (add-after 'configure 'reset-/var/empty (lambda* (#:key outputs #:allow-other-keys) (let ((out (assoc-ref outputs "out"))) (substitute* "Makefile" (("PRIVSEP_PATH=/var/empty") (string-append "PRIVSEP_PATH=" out "/var/empty"))) #t))) (add-before 'check 'patch-tests (lambda _ (substitute* "regress/test-exec.sh" (("/bin/sh") (which "sh"))) ;; Remove 't-exec' regress target which requires user 'sshd'. (substitute* (list "Makefile" "regress/Makefile") (("^(tests:.*) t-exec(.*)" all pre post) (string-append pre post))) #t)) (replace 'install (lambda* (#:key outputs (make-flags '()) #:allow-other-keys) ;; Install without host keys and system configuration files. (apply invoke "make" "install-nosysconf" make-flags) (install-file "contrib/ssh-copy-id" (string-append (assoc-ref outputs "out") "/bin/")) (chmod (string-append (assoc-ref outputs "out") "/bin/ssh-copy-id") #o555) (install-file "contrib/ssh-copy-id.1" (string-append (assoc-ref outputs "out") "/share/man/man1/")) #t))) ; )) ) ) (inputs `(("libfido2", libfido2-latest) ("libcbor", libcbor-latest) ,@(package-inputs openssh))) ) ) ;;; glicid/ssh.scm ends here