unofficial mirror of guix-patches@gnu.org 
 help / color / mirror / code / Atom feed
From: Steve George <steve@futurile.net>
To: 70020@debbugs.gnu.org
Cc: jlicht@fsfe.org, steve@futurile.net
Subject: [bug#70020] [PATCH v2 1/1] * gnu: Add debian-devscripts.
Date: Mon,  1 Apr 2024 21:52:15 +0100	[thread overview]
Message-ID: <6ff2720d046e5b553bb655966c21a4041385ed96.1712003588.git.steve@futurile.net> (raw)
In-Reply-To: <cover.1712003588.git.steve@futurile.net>

* gnu/packages/debian.scm (debian-devscripts): New variable.

Change-Id: Iff64afdb1f730f3d941617bc428a57d09c0381b2
---
 gnu/packages/debian.scm | 104 ++++++++++++++++++++++++++++++++++++++++
 1 file changed, 104 insertions(+)

diff --git a/gnu/packages/debian.scm b/gnu/packages/debian.scm
index 1715b963a93..88060d3395d 100644
--- a/gnu/packages/debian.scm
+++ b/gnu/packages/debian.scm
@@ -27,6 +27,7 @@ (define-module (gnu packages debian)
   #:use-module (guix packages)
   #:use-module (guix build-system copy)
   #:use-module (guix build-system gnu)
+  #:use-module (guix build-system perl)
   #:use-module (guix build-system trivial)
   #:use-module (gnu packages autotools)
   #:use-module (gnu packages backup)
@@ -34,6 +35,7 @@ (define-module (gnu packages debian)
   #:use-module (gnu packages bash)
   #:use-module (gnu packages compression)
   #:use-module (gnu packages crypto)
+  #:use-module (gnu packages databases)
   #:use-module (gnu packages dbm)
   #:use-module (gnu packages gettext)
   #:use-module (gnu packages gnupg)
@@ -43,7 +45,10 @@ (define-module (gnu packages debian)
   #:use-module (gnu packages ncurses)
   #:use-module (gnu packages perl)
   #:use-module (gnu packages pkg-config)
+  #:use-module (gnu packages python)
+  #:use-module (gnu packages web)
   #:use-module (gnu packages wget)
+  #:use-module (srfi srfi-1)
   #:use-module (srfi srfi-26))
 
 (define-public debian-archive-keyring
@@ -211,6 +216,105 @@ (define-public ubuntu-keyring
     (license (list license:public-domain ; the keys
                    license:gpl2+)))) ; see debian/copyright
 
+(define-public debian-devscripts
+  (package
+    (name "debian-devscripts")
+    (version "2.23.7")
+    (source
+      (origin
+        (method git-fetch)
+        (uri (git-reference
+              (url "https://salsa.debian.org/debian/devscripts.git")
+              (commit (string-append "v" version))))
+        (file-name (git-file-name name version))
+       (sha256
+         (base32
+           "031467rclglk1hdx8z2vzx5z88vpy0sk73qi8ni0sai3jx62ji75"))))
+    (build-system perl-build-system)      ;; bioperl-live used perl - I was using gnu
+    (arguments
+      (let ((transitive-inputs
+              (map (compose package-name cadr)
+                   (delete-duplicates
+                    (concatenate
+                        (map (compose package-transitive-target-inputs cadr)
+                                        (package-inputs this-package)))))))
+      (list
+        #:tests? #f ; tests assume various Debian specific capabilities
+        #:phases
+            ;; only includes the bts command as that's useful for Guix packagers
+            #~(modify-phases %standard-phases
+                (add-after 'bootstrap 'patch-programs
+                  (lambda* (#:key inputs outputs #:allow-other-keys)
+                    (with-directory-excursion "scripts"
+                      (substitute* "bts.pl" (("/bin/bash") (which "bash")))
+                      (substitute* "bts.pl" (("/bin/rm") (which "rm")))
+                      (substitute* "bts.pl" (("/bin/cat") (which "cat")))
+                      ;; Avoid having to provide Debian's sensible-browser package
+                      (substitute* "bts.pl"
+                        (("my \\$browser;") "my $browser = $ENV{'BROWSER'};"))
+                      (substitute* "bts.pl"
+                        (("'sensible-browser',") "$browser,"))
+                      (rename-file "bts.pl" "bts"))))
+                (delete 'configure)
+                (delete 'build)
+                (replace 'install
+                  (lambda* (#:key outputs #:allow-other-keys)
+                    (let* ((bin (string-append #$output "/bin"))
+                          (bashcomp (string-append #$output
+                                        "/etc/bash_completion.d"))
+                          (perl-lib (string-join
+                                      (cons (string-append #$output
+                                                    "/lib/perl5/site_perl/Devscripts")
+                                            (map (lambda (name)
+                                                   (assoc-ref %build-inputs name))
+                                                   #$transitive-inputs))
+                                      ":"))
+                          ;(perl-lib (string-append #$output
+                          ;              "/lib/perl5/site_perl/Devscripts"))
+                          (doc (string-append #$output
+                                        "/share/doc/" #$name "-" #$version)))
+                      (with-directory-excursion "scripts"
+                        (for-each (lambda (f) (install-file f bin))
+                                  '("bts"))
+                        (mkdir-p bashcomp)
+                        (copy-file "bts.bash_completion" (string-append bashcomp "/bts")))
+                      ;(with-directory-excursion "lib/Devscripts/"
+                        ;(for-each (lambda (f) (install-file f perl-lib))
+                        ;          (find-files "./")))
+                      (for-each (lambda (f) (install-file f doc))
+                                '("README")))))
+                (add-after 'install 'manpage
+                  ;; FIXME: missing the man page for bts, how is it created?
+                  (lambda* (#:key outputs #:allow-other-keys)
+                    (let ( (man1 (string-append #$output "/share/man/man1"))
+                           (man5 (string-append #$output "/share/man/man5")))
+                        (with-directory-excursion "doc"
+                            (invoke "make" "devscripts.1")
+                            (install-file "devscripts.1" man1)
+                            (install-file "devscripts.conf.5" man5)))))))))
+    (inputs (list dpkg perl-authen-sasl perl-db-file))
+    (native-inputs (list perl perl-libwww perl-uri pkg-config python))
+    (propagated-inputs
+      (list dpkg
+            perl-authen-sasl
+            perl-db-file
+            perl-encode
+            perl-file-homedir
+            perl-file-which
+            perl-ipc-run
+            perl-json
+            perl-libwww
+            perl-list-compare
+            perl-lwp-protocol-https
+            perl-moo
+            perl-uri))
+    (home-page "https://tracker.debian.org/pkg/devscripts")
+    (synopsis "BTS script from Debian's devscripts")
+    (description "This package only provides the bts script from the Debian
+devscripts archive.  It's useful for Guix Developers that interacti with GNU's
+debbugs server.")
+    (license license:gpl2)))
+
 (define-public debootstrap
   (package
     (name "debootstrap")
-- 
2.41.0





  reply	other threads:[~2024-04-01 20:54 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-03-26 20:41 [bug#70020] [PATCH 1/1] * gnu: Add debian-devscripts Steve George
2024-03-31 21:08 ` Jelle Licht
2024-04-01 20:52 ` [bug#70020] [PATCH v2 0/1] RE: Add Debian-devscripts Steve George
2024-04-01 20:52   ` Steve George [this message]
2024-04-15  9:29 ` [bug#70020] [PATCH v3 " Steve George
2024-04-15  9:29   ` [bug#70020] [PATCH v3 1/1] gnu: Add debian-devscripts Steve George
2024-05-04  2:42     ` Vagrant Cascadian
2024-05-04  7:06     ` Vagrant Cascadian
2024-05-22 13:44       ` Simon Tournier
2024-05-30 22:07 ` [bug#70020] [PATCH v4 0/1] Add debian-devscripts-bts Steve George
2024-05-30 22:07   ` [bug#70020] [PATCH v4 1/1] gnu: " Steve George
2024-05-31 18:29     ` bug#70020: " Vagrant Cascadian

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://guix.gnu.org/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=6ff2720d046e5b553bb655966c21a4041385ed96.1712003588.git.steve@futurile.net \
    --to=steve@futurile.net \
    --cc=70020@debbugs.gnu.org \
    --cc=jlicht@fsfe.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/guix.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).