[PATCH 1/1] * gnu: Add debian-devscripts.

  • Open
  • quality assurance status badge
Details
3 participants
  • Jelle Licht
  • Steve George
  • Vagrant Cascadian
Owner
unassigned
Submitted by
Steve George
Severity
normal
S
S
Steve George wrote on 26 Mar 21:41 +0100
(address . guix-patches@gnu.org)(name . Steve George)(address . steve@futurile.net)
b6d8a95e03a346c44df5ba9cdfdf175c0c82131b.1711485320.git.steve@futurile.net
* gnu/packages/debian.scm (debian-devscripts): New variable.

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

Toggle diff (102 lines)
diff --git a/gnu/packages/debian.scm b/gnu/packages/debian.scm
index 1715b963a93..ecec816d872 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,6 +45,8 @@ (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-26))
@@ -211,6 +215,68 @@ (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 gnu-build-system)
+ (arguments
+ (list
+ #:tests? #f ; tests assume various Debian specific capabilities
+ #:phases
+ #~(modify-phases %standard-phases
+ (delete 'configure)
+ (delete 'build)
+ (replace 'install
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let ((bin (string-append (assoc-ref outputs "out") "/bin"))
+ (devscripts-lib (string-append (assoc-ref outputs "out")
+ "/lib/perl5/site_perl/Devscripts")))
+ (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")
+ (install-file "bts" bin))
+ (with-directory-excursion "lib/Devscripts/"
+ (for-each (lambda (f) (install-file f devscripts-lib))
+ (find-files "./")))))))))
+ (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 "Scripts to make the life of a Debian Package maintainer easier")
+ (description "Scripts that assist Debian packagers. Guix developers
+may find the bts command useful for interacting with GNU's debbugs server.")
+ (license license:gpl2)))
+
(define-public debootstrap
(package
(name "debootstrap")

base-commit: 40f53e8fb5b867e3a1e8fa798328423718282aac
--
2.41.0
J
J
Jelle Licht wrote on 31 Mar 23:08 +0200
87zfuef6sa.fsf@fsfe.org
Hi Steve,

Steve George <steve@futurile.net> writes:

Toggle quote (77 lines)
> * gnu/packages/debian.scm (debian-devscripts): New variable.
>
> Change-Id: Iff64afdb1f730f3d941617bc428a57d09c0381b2
> ---
> gnu/packages/debian.scm | 66 +++++++++++++++++++++++++++++++++++++++++
> 1 file changed, 66 insertions(+)
>
> diff --git a/gnu/packages/debian.scm b/gnu/packages/debian.scm
> index 1715b963a93..ecec816d872 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,6 +45,8 @@ (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-26))
>
> @@ -211,6 +215,68 @@ (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 gnu-build-system)
> + (arguments
> + (list
> + #:tests? #f ; tests assume various Debian specific capabilities
> + #:phases
> + #~(modify-phases %standard-phases
> + (delete 'configure)
> + (delete 'build)
> + (replace 'install
> + (lambda* (#:key outputs #:allow-other-keys)
> + (let ((bin (string-append (assoc-ref outputs "out") "/bin"))
> + (devscripts-lib (string-append (assoc-ref outputs "out")
> + "/lib/perl5/site_perl/Devscripts")))

> + (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,"))
This could be separate phase, such as:
(add-after 'unpack 'patch-programs ...)


Toggle quote (3 lines)
> + (rename-file "bts.pl" "bts")
> + (install-file "bts" bin))

It seems this "only" installs bts, compared to the (huge) list of helper
scripts I see listed in the repo README.

IMHO not a blocker, but it should probably be reflected in either a
comment or the package synopsis, name or description. Perhaps an
acceptable compromise is to spin this off into just a 'bts' package?


Toggle quote (4 lines)
> + (with-directory-excursion "lib/Devscripts/"
> + (for-each (lambda (f) (install-file f devscripts-lib))
> + (find-files "./")))))))))

This seems to not install any bash completions or manpages. IWBN to
also install those, of at least make a comment w.r.t. them not being
installed at this time.


Toggle quote (16 lines)
> + (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))

Would it be possible to wrap relevant scripts, in a similar manner to
bioperl-minimal, and make most of these normal inputs instead of
propagated-inputs?

dpkg seems like something that could be patched to directly refer to a
version directly in the store.

Toggle quote (5 lines)
> + (synopsis "Scripts to make the life of a Debian Package maintainer easier")
> + (description "Scripts that assist Debian packagers. Guix developers
> +may find the bts command useful for interacting with GNU's debbugs server.")

The description should contain full sentences. When you refer to bts,
I'd use @code{bts} Texinfo markup as well.

Toggle quote (2 lines)
> + (license license:gpl2)))

I did not check by going though all source files, but AFAICS, it's
gplv2+. Or does the gplv2 refer to the devscripts files and bts.pl? In
that case, a clarifying comment would be a welcome addition here.

Toggle quote (8 lines)
> (define-public debootstrap
> (package
> (name "debootstrap")
>
> base-commit: 40f53e8fb5b867e3a1e8fa798328423718282aac
> --
> 2.41.0

Thanks,
Jelle
S
S
Steve George wrote on 1 Apr 22:52 +0200
[PATCH v2 0/1] RE: Add Debian-devscripts
(address . 70020@debbugs.gnu.org)
cover.1712003588.git.steve@futurile.net
Hi Jelle - thanks for taking a look at this. I need some help with one of your requests, if you are able.

Stuck on:

I looked at bioperl-minimal and how it's creating a list of transitive inputs. I thought I had it but I'm stuck trying to 'unquote' in a Gexp context (I think that's the problem). Do you know any way to fix this? I guess the other option is to convert to the old type quoted list that bioperl-minimal is using.

Fixed:

1. Split phases
2. Set-up so additional scripts can be added later - decided not to for now
2. Install man pages (mostly - can't figure out how it's creating the bts man page)
3. Install completions (bts)
4. Rework the synopsis / description
5. Add comment about other scripts

Not changed:

* Left the name as-is, because I think some people will find 'bts' through the 'debian devscripts' name. But, changed the synopsis / description to clarify that it's not the massive list of scripts Debian has.
* Need to double check the license from your comment, and add a Texinfo markup.

Steve George (1):
* gnu: Add debian-devscripts.

gnu/packages/debian.scm | 104 ++++++++++++++++++++++++++++++++++++++++
1 file changed, 104 insertions(+)


base-commit: 40f53e8fb5b867e3a1e8fa798328423718282aac
--
2.41.0
S
S
Steve George wrote on 1 Apr 22:52 +0200
[PATCH v2 1/1] * gnu: Add debian-devscripts.
(address . 70020@debbugs.gnu.org)
6ff2720d046e5b553bb655966c21a4041385ed96.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(+)

Toggle diff (139 lines)
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
S
S
Steve George wrote on 15 Apr 11:29 +0200
[PATCH v3 0/1] RE: Add Debian-devscripts
(address . 70020@debbugs.gnu.org)
cover.1713173193.git.steve@futurile.net
Hi,

Fixed the propagated inputs; just one there now which I think is pretty reasonable.

All other changes requested included from the v2.


Steve George (1):
gnu: Add debian-devscripts.

gnu/packages/debian.scm | 151 ++++++++++++++++++++++++++++++++++++++++
1 file changed, 151 insertions(+)


base-commit: 238e4ec73e4143f3a5a85b56ca00d395cdf60197
--
2.41.0
S
S
Steve George wrote on 15 Apr 11:29 +0200
[PATCH v3 1/1] gnu: Add debian-devscripts.
(address . 70020@debbugs.gnu.org)
03f2e0ee39ee8112655feccb2a72dc4764c4412b.1713173193.git.steve@futurile.net
* gnu/packages/debian.scm (debian-devscripts): New variable.

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

Toggle diff (186 lines)
diff --git a/gnu/packages/debian.scm b/gnu/packages/debian.scm
index a88fb04feb..2c79afdc75 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
@@ -236,6 +241,152 @@ (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 gnu-build-system)
+ (arguments
+ (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 inputs outputs #:allow-other-keys)
+ (let* ((bindir (string-append #$output "/bin"))
+ (bashcomp (string-append #$output
+ "/etc/bash_completion.d"))
+ (perl-lib (string-append #$output
+ "/lib/perl5/site_perl/Devscripts"))
+ (wrap.pl
+ (lambda (scripts keys)
+ (for-each
+ (lambda (script)
+ (wrap-program script
+ `("PERL5LIB" ":" prefix
+ ,(cons
+ (string-append #$output
+ "/lib/perl5/site_perl")
+ (map
+ (lambda (key)
+ (string-append
+ (assoc-ref inputs key)
+ "/lib/perl5/site_perl"))
+ keys)))))
+ scripts)))
+ (doc (string-append #$output
+ "/share/doc/" #$name "-" #$version)))
+ (with-directory-excursion "scripts"
+ (for-each (lambda (f) (install-file f bindir))
+ '("bts"))
+ (mkdir-p bashcomp)
+ (copy-file "bts.bash_completion" (string-append bashcomp "/bts")))
+ (wrap.pl (find-files bindir)
+ (list "dpkg"
+ "perl-authen-sasl"
+ "perl-db-file"
+ "perl-encode"
+ "perl-encode-locale"
+ "perl-file-homedir"
+ "perl-file-listing"
+ "perl-file-which"
+ "perl-http-cookies"
+ "perl-http-daemon"
+ "perl-http-date"
+ "perl-http-message"
+ "perl-http-negotiate"
+ "perl-http-parser"
+ "perl-io-socket-ssl"
+ "perl-ipc-run"
+ "perl-json"
+ "perl-libwww"
+ "perl-list-compare"
+ "perl-lwp-protocol-https"
+ "perl-moo"
+ "perl-mozilla-ca"
+ "perl-net-http"
+ "perl-try-tiny"
+ "perl-uri"
+ "perl-www-robotrules"))
+ (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
+ bash-minimal
+ dpkg
+ perl-authen-sasl
+ perl-db-file
+ perl-encode
+ perl-encode-locale
+ perl-file-homedir
+ perl-file-listing
+ perl-file-which
+ perl-http-cookies
+ perl-http-daemon
+ perl-http-date
+ perl-http-message
+ perl-http-negotiate
+ perl-http-parser
+ perl-io-socket-ssl
+ perl-ipc-run
+ perl-json
+ perl-libwww
+ perl-list-compare
+ perl-lwp-protocol-https
+ perl-moo
+ perl-mozilla-ca
+ perl-net-http
+ perl-try-tiny
+ perl-uri
+ perl-www-robotrules))
+ (native-inputs
+ (list perl perl-libwww perl-uri pkg-config python))
+ (propagated-inputs
+ (list perl-lwp-protocol-https))
+ (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 interacting with GNU's
+debbugs server.")
+ (license license:gpl2)))
+
(define-public debootstrap
(package
(name "debootstrap")
--
2.41.0
V
V
Vagrant Cascadian wrote 8 minutes ago
(name . Steve George)(address . steve@futurile.net)
87ikzuwb5o.fsf@wireframe
On 2024-04-15, Steve George wrote:
Toggle quote (11 lines)
> * gnu/packages/debian.scm (debian-devscripts): New variable.
>
> Change-Id: Iff64afdb1f730f3d941617bc428a57d09c0381b2
> ---
> gnu/packages/debian.scm | 151 ++++++++++++++++++++++++++++++++++++++++
> 1 file changed, 151 insertions(+)
>
> diff --git a/gnu/packages/debian.scm b/gnu/packages/debian.scm
> index a88fb04feb..2c79afdc75 100644
> --- a/gnu/packages/debian.scm
> +++ b/gnu/packages/debian.scm
...
Toggle quote (4 lines)
> +(define-public debian-devscripts
> + (package
> + (name "debian-devscripts")

As someone who has used devscripts for years (decades?), I would find it
very surprising that it includes a single script! :)

It is essentially a huge grab bag of scripts (most of which I have never
used) ... so I would suggest "debian-devscripts-bts" or simply "debian-bts".

Or packaging more of the scripts? Not sure what would be generally
useful on guix as most are very debian-specific, but I am sometimes
surprised. :)


Toggle quote (3 lines)
> + (add-after 'install 'manpage
> + ;; FIXME: missing the man page for bts, how is it created?

I have not quite figured out exactly how it gets there, but according
the last build on debian:


it calls:

pod2man --utf8 --center=" " --release="Debian Utilities" bts.pl > bts.1

Presumably this is in one of the scripts/Makefile targets:

%.1: %.pl
podchecker $<
pod2man --utf8 --center=" " --release="Debian Utilities" $< > $@

Seems like they get pulled into SCRIPTS via a wildcard:

PL_FILES := $(wildcard *.pl)
SH_FILES = $(wildcard *.sh)
SCRIPTS = $(patsubst %.pl,%,$(PL_FILES)) $(patsubst %.sh,%,$(SH_FILES))

So it might be possible to get the Makefile to do the right thing ... or
just call pod2man (from "perl") directly since you're only packaging
bts.pl...


Toggle quote (6 lines)
> + (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 interacting with GNU's
> +debbugs server.")
> + (license license:gpl2)))

This should definitely be changed to gpl2+ looking at scripts/bts.pl and
debian/copyright documents some exceptions; a few of the common files
might actually be a smattering of other licenses; this is where shipping
only a subset is very nice. :)


Hope that is helpful! :)


live well,
vagrant
-----BEGIN PGP SIGNATURE-----

iHUEARYKAB0WIQRlgHNhO/zFx+LkXUXcUY/If5cWqgUCZjWggwAKCRDcUY/If5cW
qnGuAQDuvpApduGOHhyW5DpHWzCkFZc7wp+S3fveR6yBlkVkBQEA5TYpSCRK7gZe
Lj4Eh1G4C1xtixNHDuPkfnpLqP+ZpwQ=
=Eg2S
-----END PGP SIGNATURE-----

?