gnu: sway: Update to 1.4
[jackhill/guix/guix.git] / gnu / packages / debian.scm
index e1dd9d1..a3bbd2b 100644 (file)
@@ -1,5 +1,8 @@
+;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2018 Efraim Flashner <efraim@flashner.co.il>
-;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2018, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
+;;;
+;;; 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
 (define-module (gnu packages debian)
   #:use-module ((guix licenses) #:prefix license:)
   #:use-module (guix download)
+  #:use-module (guix git-download)
   #:use-module (guix packages)
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system trivial)
   #:use-module (gnu packages base)
   #:use-module (gnu packages compression)
   #:use-module (gnu packages gnupg)
-  #:use-module (gnu packages perl)
-  #:use-module (gnu packages wget))
+  #:use-module (gnu packages wget)
+  #:use-module (gnu packages perl))
 
 (define-public debian-archive-keyring
   (package
     (name "debian-archive-keyring")
-    (version "2017.7")
+    (version "2019.1")
     (source
       (origin
-        (method url-fetch)
-        (uri (string-append "mirror://debian/pool/main/d/" name "/"
-                            name "_" version ".tar.xz"))
+        (method git-fetch)
+        (uri (git-reference
+              (url "https://salsa.debian.org/release-team/debian-archive-keyring.git")
+              (commit version)))
+        (file-name (git-file-name name version))
         (sha256
          (base32
-          "1pdwgipfi0y4svhxlw8arhq792f1g3vlmw4raphizy7sa65vd4ca"))))
+          "0bphwji3ywk1zi5bq8bhqk7l51fwjy1idwsw7zfqnxca8m5wvw1g"))))
     (build-system gnu-build-system)
     (arguments
      '(#:test-target "verify-results"
@@ -70,7 +76,7 @@ contains the archive keys used for that.")
 (define-public ubuntu-keyring
   (package
     (name "ubuntu-keyring")
-    (version "2018.02.28")
+    (version "2018.09.18.1")
     (source
       (origin
         (method url-fetch)
@@ -78,7 +84,7 @@ contains the archive keys used for that.")
                             "+files/" name "_" version ".tar.gz"))
         (sha256
          (base32
-          "1zj3012cz7rlx9pm39wnwa0lmi1h38n6bkgbz81vnmcsvqsc9a3a"))))
+          "0csx2n62rj9rxjv4y8qhby7l9rbybfwrb0406pc2cjr7f2yk91af"))))
     (build-system trivial-build-system)
     (arguments
      `(#:modules ((guix build utils))
@@ -112,15 +118,16 @@ contains the archive keys used for that.")
 (define-public debootstrap
   (package
     (name "debootstrap")
-    (version "1.0.101")
+    (version "1.0.123")
     (source
       (origin
-        (method url-fetch)
-        (uri (string-append "mirror://debian/pool/main/d/" name "/"
-                            name "_" version ".tar.gz"))
+        (method git-fetch)
+        (uri (git-reference
+              (url "https://salsa.debian.org/installer-team/debootstrap.git")
+              (commit version)))
+        (file-name (git-file-name name version))
         (sha256
-         (base32
-          "1p1a81s8hq73byd7256iljdls389x2q7w6srgrgfmx5bl1csnzp3"))))
+         (base32 "0fr5ir8arzisx71jybbk4xz85waz50lf2y052nfimzh6vv9dx54c"))))
     (build-system gnu-build-system)
     (arguments
      `(#:phases
@@ -129,46 +136,95 @@ contains the archive keys used for that.")
          (add-after 'unpack 'patch-source
            (lambda* (#:key inputs outputs #:allow-other-keys)
              (let ((out    (assoc-ref outputs "out"))
-                   (coreutils (assoc-ref inputs "coreutils"))
-                   (wget   (assoc-ref inputs "wget"))
+                   (tzdata (assoc-ref inputs "tzdata"))
                    (debian (assoc-ref inputs "debian-keyring"))
                    (ubuntu (assoc-ref inputs "ubuntu-keyring")))
                (substitute* "Makefile"
                  (("/usr") "")
                  (("-o root -g root") "")
                  (("chown root.*") "\n"))
-               (substitute* "scripts/sid"
+               (substitute* '("scripts/etch"
+                              "scripts/potato"
+                              "scripts/sarge"
+                              "scripts/sid"
+                              "scripts/woody"
+                              "scripts/woody.buildd")
                  (("/usr") debian))
                (substitute* "scripts/gutsy"
                  (("/usr") ubuntu))
                (substitute* "debootstrap"
-                 (("chroot ") (string-append coreutils "/bin/chroot "))
                  (("=/usr") (string-append "=" out)))
+               ;; Ensure PATH works both in guix and within the debian chroot
+               ;; workaround for: https://bugs.debian.org/929889
                (substitute* "functions"
-                 (("wget ") (string-append wget "/bin/wget ")))
+                 (("PATH=/sbin:/usr/sbin:/bin:/usr/bin")
+                  "PATH=$PATH:/sbin:/usr/sbin:/bin:/usr/bin"))
+               (substitute* (find-files "scripts" ".")
+                 (("/usr/share/zoneinfo") (string-append tzdata "/share/zoneinfo")))
                #t)))
          (add-after 'install 'install-man-file
            (lambda* (#:key outputs #:allow-other-keys)
              (let ((out (assoc-ref outputs "out")))
                (install-file "debootstrap.8"
                              (string-append out "/share/man/man8"))
+               #t)))
+         (add-after 'install 'wrap-executable
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let ((debootstrap (string-append (assoc-ref outputs "out")
+                                               "/sbin/debootstrap"))
+                   (path        (getenv "PATH")))
+               (wrap-program debootstrap
+                             `("PATH" ":" prefix (,path)))
                #t))))
        #:make-flags (list (string-append "DESTDIR=" (assoc-ref %outputs "out")))
        #:tests? #f)) ; no tests
     (inputs
-     `(("coreutils" ,coreutils)
-       ("debian-keyring" ,debian-archive-keyring)
+     `(("debian-keyring" ,debian-archive-keyring)
        ("ubuntu-keyring" ,ubuntu-keyring)
-       ("wget" ,wget)))
-    ;; The following are required for debootstrap to work correctly
-    (propagated-inputs
-     `(("binutils" ,binutils)
-       ("gnupg" ,gnupg)
-       ("perl" ,perl)))
-    (home-page "https://anonscm.debian.org/cgit/d-i/debootstrap.git")
+       ("tzdata" ,tzdata)))
+    (native-inputs
+     `(("perl" ,perl)))
+    (home-page "https://tracker.debian.org/pkg/debootstrap")
     (synopsis "Bootstrap a basic Debian system")
     (description "Debootstrap is used to create a Debian base system from
 scratch, without requiring the availability of @code{dpkg} or @code{apt}.
 It does this by downloading .deb files from a mirror site, and carefully
 unpacking them into a directory which can eventually be chrooted into.")
     (license license:gpl2)))
+
+
+(define-public apt-mirror
+  (let ((commit "e664486a5d8947c2579e16dd793d762ea3de4202")
+        (revision "1"))
+    (package
+      (name "apt-mirror")
+      (version (git-version "0.5.4" revision commit))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://github.com/apt-mirror/apt-mirror/")
+                      (commit commit)))
+                (file-name (git-file-name name version))
+                (sha256
+                 (base32
+                  "0qj6b7gldwcqyfs2kp6amya3ja7s4vrljs08y4zadryfzxf35nqq"))))
+      (build-system gnu-build-system)
+      (outputs '("out"))
+      (arguments
+       `(#:tests? #f
+         ;; sysconfdir is not PREFIXed in the makefile but DESTDIR is
+         ;; honored correctly; we therefore use DESTDIR for our
+         ;; needs. A more correct fix would involve patching.
+         #:make-flags (list (string-append "DESTDIR=" (assoc-ref %outputs "out"))
+                            "PREFIX=/")
+         #:phases (modify-phases %standard-phases (delete 'configure))))
+      (inputs
+       `(("wget" ,wget)
+         ("perl" ,perl)))
+      (home-page "http://apt-mirror.github.io/")
+      (synopsis "Script for mirroring a Debian repository")
+      (description
+       "apt-mirror is a small tool that provides the ability to
+selectively mirror Debian and Ubuntu GNU/Linux distributions or any
+other apt sources typically provided by open source developers.")
+      (license license:gpl2))))