diff options
author | EuAndreh <eu@euandre.org> | 2023-03-21 13:23:50 -0300 |
---|---|---|
committer | EuAndreh <eu@euandre.org> | 2023-03-21 13:37:05 -0300 |
commit | 874659bf739757cb56218de323a40e2238ebe187 (patch) | |
tree | 95a63429f189b1092fbe6e7bc73b0f553ef3dac6 | |
parent | Add generated Guix and Nix files as dependencies of paku.lock (diff) | |
download | package-repository-874659bf739757cb56218de323a40e2238ebe187.tar.gz package-repository-874659bf739757cb56218de323a40e2238ebe187.tar.xz |
src/bin/paku: General cleanup and tidyness
-rw-r--r-- | Makefile | 7 | ||||
-rw-r--r-- | paku.lock | 25 | ||||
-rwxr-xr-x | src/bin/paku | 320 | ||||
-rw-r--r-- | src/org/euandre/packages.scm | 67 |
4 files changed, 222 insertions, 197 deletions
@@ -15,6 +15,9 @@ all: EuAndreh.key guix nix debian +paku.lock: src/bin/paku + touch $@ + test-config-files = \ tests/internet/etc/postfix/main.cf \ @@ -70,13 +73,13 @@ result: debian.mk: paku.lock - perl src/bin/paku makefile > $@ + perl src/bin/paku debian > $@ debian: debian.mk $(MAKE) -f debian.mk -public/debian: debian.mk +public/debian: debian mkdir -p $(@D) rsync -avzP --delete `$(MAKE) -s -f debian.mk public-dir`/ $@/ @@ -10,15 +10,18 @@ "guix": "guile-3.0" } }, + "namespace": "org.euandre", + "maintainer": "EuAndreh <eu@euandre.org>", "packages": [ { "name": "git-permalink", "native-inputs": [], "inputs": [], "version": "v0.1.0", - "sha256": "1jb0rgcj5b4bkm5gds3l0dymf3gd644r2njmirs9345vf54if45y", - "sha256FIXME": "07waci3y0xdlbr8gl1lzdbsiz0csnrshcm6f18cdzn7y97irhb15", + "sha256": "1jb0rgcj5b4bkm5gds3l0dymf3gd644r2njmirs9345vf54if45y", + "sha256base32": "07waci3y0xdlbr8gl1lzdbsiz0csnrshcm6f18cdzn7y97irhb15", "url": "https://euandre.org/git/git-permalink/snapshot/git-permalink-v0.1.0.tar.xz", + "base-url": "https://euandre.org/s/git-permalink", "fname": "git-permalink-v0.1.0.tar.xz", "maintainer": "EuAndreh <eu@euandre.org>", "architectures": "any", @@ -31,9 +34,10 @@ "native-inputs": [], "inputs": [], "version": "v0.2.0", - "sha256": "1bzx4gdfc87jfshaqifxpc3llp2j98wkzjjslzwbrqn59jzakxc9", - "sha256FIXME": "10qiigp29jamb23mdrf1yp0gqmihlsg931ibpiqpf4pn28l5d9ly", + "sha256": "1bzx4gdfc87jfshaqifxpc3llp2j98wkzjjslzwbrqn59jzakxc9", + "sha256base32": "10qiigp29jamb23mdrf1yp0gqmihlsg931ibpiqpf4pn28l5d9ly", "url": "https://euandre.org/git/git-permalink/snapshot/git-permalink-v0.2.0.tar.xz", + "base-url": "https://euandre.org/s/git-permalink", "fname": "git-permalink-v0.2.0.tar.xz", "maintainer": "EuAndreh <eu@euandre.org>", "architectures": "any", @@ -46,9 +50,10 @@ "native-inputs": [], "inputs": [], "version": "v0.1.2", - "sha256": "1mrkyfcgz77hw7mpgqrnsaws9qng2awf8flslzf1s1gikk3zljns", - "sha256FIXME": "1syzn41w4f754ihblwxcv3wn653lh92cgg6g06db1qrx3m2zvw5v", + "sha256": "1mrkyfcgz77hw7mpgqrnsaws9qng2awf8flslzf1s1gikk3zljns", + "sha256base32": "1syzn41w4f754ihblwxcv3wn653lh92cgg6g06db1qrx3m2zvw5v", "url": "https://euandre.org/git/remembering/snapshot/remembering-v0.1.2.tar.xz", + "base-url": "https://euandre.org/s/remembering", "fname": "remembering-v0.1.2.tar.xz", "maintainer": "EuAndreh <eu@euandre.org>", "architectures": "any", @@ -61,9 +66,10 @@ "native-inputs": [], "inputs": [], "version": "4a8a7a2662c94b2581f587e9a4b81feba4f5e7d8", - "sha256": "1xqr2vc270jydk508pbkhcchmbg74w4bf83ch2d85nqja14r64n9", - "sha256FIXME": "01g1vnlz1kch8j9zzaxyixih04azdvrfabfzg7xqny32h2p62md2", + "sha256": "1xqr2vc270jydk508pbkhcchmbg74w4bf83ch2d85nqja14r64n9", + "sha256base32": "01g1vnlz1kch8j9zzaxyixih04azdvrfabfzg7xqny32h2p62md2", "url": "https://euandre.org/git/td/snapshot/td-4a8a7a2662c94b2581f587e9a4b81feba4f5e7d8.tar.xz", + "base-url": "https://euandre.org/s/td", "fname": "td-4a8a7a2662c94b2581f587e9a4b81feba4f5e7d8.tar.xz", "maintainer": "EuAndreh <eu@euandre.org>", "architectures": "any", @@ -88,8 +94,9 @@ "type": "latest", "version": "065435cdce609604e33b879b9be3e81ab89f3e7b", "sha256": "179qq17mgi4kakhj9w1dk26afljh5yad4j9ih9d8wms70x6h211m", - "sha256FIXME": "1y1110bg4ki0dvn8hggxy34wg7ig4r3377nc84isnj3dydqm2vjd", + "sha256base32": "1y1110bg4ki0dvn8hggxy34wg7ig4r3377nc84isnj3dydqm2vjd", "url": "https://euandre.org/git/guile-heredoc/snapshot/guile-heredoc-065435cdce609604e33b879b9be3e81ab89f3e7b.tar.xz", + "base-url": "https://euandre.org/s/guile-heredoc", "fname": "guile-heredoc-065435cdce609604e33b879b9be3e81ab89f3e7b.tar.xz", "maintainer": "EuAndreh <eu@euandre.org>", "description": "Guile heredoc syntax", diff --git a/src/bin/paku b/src/bin/paku index d73107a..262d0c8 100755 --- a/src/bin/paku +++ b/src/bin/paku @@ -1,7 +1,5 @@ #!/usr/bin/env perl -# FIXME: add html output - use v5.34; use warnings; use feature 'signatures'; @@ -9,12 +7,14 @@ no warnings ('experimental::signatures'); use Getopt::Std (); use JSON (); use MIME::Base64 (); -use open IN => ':encoding(UTF-8)'; +use File::Basename (); +use Digest::MD5 (); +use Digest::SHA (); sub usage($fh) { print $fh <<~'EOF' Usage: - paku [-f FILE] FIXME + paku [-d DIR] [-f FILE] ACTION paku -h EOF } @@ -24,18 +24,33 @@ sub help($fh) { Options: - -f FILE use data from FILE (default: paku.json) + -d DIR use DIR for intermediary data (default: .paku/) + -f FILE use data from FILE (default: paku.lock) -h, --help show this message + ACTION what to emit, one of: + - guix + - debian + - nix + - html + Generate package definitions for different package managers. Examples: - FIXME: + Emit Guix package definitions using all defaults: + + $ paku guix > packages.scm + $ guix build -f packages.scm - $ FIXME + + Emit Debian build recipes from "debian.json", using + ".debtmp/" as the temporary directory, and execute them + as is: + + $ paku -d .debtemp/ -f debian.json debian | make -f- EOF } @@ -50,7 +65,7 @@ for (@ARGV) { } my %opts; -if (!Getopt::Std::getopts('f:h', \%opts)) { +if (!Getopt::Std::getopts('d:f:h', \%opts)) { usage *STDERR; exit 2; } @@ -62,7 +77,7 @@ if ($opts{h}) { } -my $dir = '.paku'; # FIXME: parameterize +my $dir = $opts{d} || '.paku'; my $fname = $opts{f} || 'paku.lock'; my $json_str = do { open my $fh, $fname or die "Failed opening \"$fname\""; @@ -70,22 +85,10 @@ my $json_str = do { <$fh>; }; my $json = JSON::decode_json($json_str); - -my $action = $ARGV[0]; +my $action = $ARGV[0] or die "Missing ACTION"; - -use Data::Dumper; -use POSIX qw(); -use File::Basename (); -use Digest::MD5 (); -use Digest::SHA (); - - -# FIXME -my $base_url_prefix = 'https://euandre.org/s'; - -if ($action eq 'release') { +sub emit_release() { my $f = $ARGV[1]; my $name = File::Basename::basename $f; my $size = (stat($f))[7]; @@ -125,8 +128,9 @@ if ($action eq 'release') { exit; } -if ($action eq 'nix') { - my $ns = 'org-euandre'; # FIXME +sub emit_nix() { + my $ns = $json->{namespace}; + $ns =~ s/\./-/g; print <<~EOF; { pkgs }: self: super: { @@ -146,8 +150,6 @@ if ($action eq 'nix') { my $long = $pkg->{'long-description'}; $long =~ s/^(.)/ $1/gm; - my $base_url = $base_url_prefix . '/' . $pkg->{name}; - print <<~EOF; $pkg->{name}-$ver = pkgs.stdenv.mkDerivation rec { name = "$pkg->{name}"; @@ -190,39 +192,34 @@ if ($action eq 'nix') { longDescription = '' $long ''; - homepage = "$base_url/"; - changelog = "$base_url/CHANGELOG.html"; - downloadPage = "$base_url/#releases"; + homepage = "$pkg->{'base-url'}/"; + changelog = "$pkg->{'base-url'}/CHANGELOG.html"; + downloadPage = "$pkg->{'base-url'}/#releases"; license = licenses.agpl3; platforms = platforms.unix; }; }; EOF - # FIXME: escape quotes in description - # FIXME: parameterize license } print <<~EOF; }; } EOF - exit; } - -if ($action eq 'guix') { - my @pkgs = (); - my $ns = 'org euandre'; # FIXME +sub emit_guix() { + my $ns = $json->{namespace}; + $ns =~ s/\./ /g; print <<~EOF; - (define-module ($ns packages) - EOF + (define-module ($ns packages) + EOF for my $module (@{$json->{guix}{'module-use'}}) { print <<~EOF; #:use-module (gnu packages $module) EOF } - # FIXME: rename to 'licenses:' print <<~EOF; - #:use-module ((guix licenses) #:prefix license:) + #:use-module ((guix licenses) #:prefix licenses:) #:use-module (guix gexp) #:use-module (guix packages) #:use-module (guix download) @@ -230,6 +227,7 @@ if ($action eq 'guix') { EOF + my @pkgs = (); for my $pkg (@{$json->{packages}}) { my $ver = $pkg->{version}; $ver =~ s/^v//; @@ -242,20 +240,18 @@ if ($action eq 'guix') { my $long = $pkg->{'long-description'}; $long =~ s/^(.)/ $1/gm; - my $base_url = $base_url_prefix . '/' . $pkg->{name}; - push @pkgs, "$pkg->{name}-$ver"; - # FIXME: indentation of (source ...) print <<~EOF; (define-public $pkg->{name}-$ver (package (name "$pkg->{name}-$ver") (version "$pkg->{version}") - (source (origin - (method url-fetch) - (uri "$pkg->{url}") - (sha256 - (base32 "$pkg->{sha256FIXME}")))) + (source + (origin + (method url-fetch) + (uri "$pkg->{url}") + (sha256 + (base32 "$pkg->{sha256base32}")))) (build-system gnu-build-system) (native-inputs EOF @@ -285,12 +281,10 @@ if ($action eq 'guix') { (synopsis "$pkg->{description}") (description "$pkg->{'long-description'}") - (home-page "$base_url/") - (license license:agpl3+))) + (home-page "$pkg->{'base-url'}/") + (license licenses:agpl3+))) EOF - # FIXME: escape quotes in description - # FIXME: parameterize license if ($pkg->{type} eq 'latest') { print <<~EOF; (define-public $pkg->{name} @@ -307,132 +301,148 @@ if ($action eq 'guix') { print "\n $_"; } print ")\n"; - exit; } +sub emit_debian() { + my %vars = ( + tarballs => ["tarballs = \\\n"], + checkouts => ["checkouts = \\\n"], + destdirs => ["debian-destdirs = \\\n"], + ctrlfiles => ["control-files = \\\n"], + destdebs => ["destdir-debs = \\\n"], + debs => ["debs = \\\n"], + ); -my %vars = ( - tarballs => ["tarballs = \\\n"], - checkouts => ["checkouts = \\\n"], - destdirs => ["debian-destdirs = \\\n"], - ctrlfiles => ["control-files = \\\n"], - destdebs => ["destdir-debs = \\\n"], - debs => ["debs = \\\n"], -); + my @targets = (); -my @targets = (); + for my $pkg (@{$json->{packages}}) { + push @{$vars{tarballs}}, "\t$dir/tarballs/$pkg->{fname} \\\n"; + push @{$vars{checkouts}}, "\t$dir/checkouts/$pkg->{name}-$pkg->{version} \\\n"; -for my $pkg (@{$json->{packages}}) { - push @{$vars{tarballs}}, "\t$dir/tarballs/$pkg->{fname} \\\n"; - push @{$vars{checkouts}}, "\t$dir/checkouts/$pkg->{name}-$pkg->{version} \\\n"; + push @targets, <<~EOF; + $dir/tarballs/$pkg->{fname}: + mkdir -p \$(\@D) + wget -O \$\@ \\ + '$pkg->{url}' - push @targets, <<~EOF; - $dir/tarballs/$pkg->{fname}: - mkdir -p \$(\@D) - wget -O \$\@ \\ - '$pkg->{url}' + $dir/checkouts/$pkg->{name}-$pkg->{version}: $dir/tarballs/$pkg->{fname} + mkdir -p \$(\@D) + tar -C $dir/checkouts/ -xf $dir/tarballs/$pkg->{fname} + touch \$\@ - $dir/checkouts/$pkg->{name}-$pkg->{version}: $dir/tarballs/$pkg->{fname} - mkdir -p \$(\@D) - tar -C $dir/checkouts/ -xf $dir/tarballs/$pkg->{fname} - touch \$\@ + EOF - EOF + next if $pkg->{architectures} ne 'any'; - next if $pkg->{architectures} ne 'any'; - - push @{$vars{destdirs}}, "\t$dir/debian-destdir/$pkg->{name}-$pkg->{version}/DEBIAN \\\n"; - push @{$vars{ctrlfiles}}, "\t$dir/debian-destdir/$pkg->{name}-$pkg->{version}/DEBIAN/control \\\n"; - push @{$vars{destdebs}}, "\t$dir/debian-destdir/$pkg->{name}-$pkg->{version}.deb \\\n"; - push @{$vars{debs}}, "\t$dir/debian/$pkg->{name}_$pkg->{version}_all.deb \\\n"; - - my $ver = $pkg->{type} eq 'latest' ? '0.' . $pkg->{version} . '.latest' : $pkg->{version}; - $ver =~ s/^v//; - my $maintainer_b64 = MIME::Base64::encode_base64 $pkg->{maintainer}, ''; - my $desc_b64 = MIME::Base64::encode_base64 $pkg->{description}, ''; - my $long_desc_b64 = MIME::Base64::encode_base64 $pkg->{'long-description'}, ''; - - push @targets, <<~EOF; - $dir/debian-destdir/$pkg->{name}-$pkg->{version}/DEBIAN: $dir/checkouts/$pkg->{name}-$pkg->{version} - \$(MAKE) \\ - -C $dir/checkouts/$pkg->{name}-$pkg->{version} \\ - install \\ - PREFIX=/usr \\ - DESTDIR="\$\$PWD"/$dir/debian-destdir/$pkg->{name}-$pkg->{version} - mkdir -p \$\@ - touch \$\@ - - $dir/debian-destdir/$pkg->{name}-$pkg->{version}/DEBIAN/control: $dir/debian-destdir/$pkg->{name}-$pkg->{version}/DEBIAN - printf '' > \$\@ - printf 'Package: $pkg->{name}\\n' >> \$\@ - printf 'Version: $ver\\n' >> \$\@ - printf 'Section: custom\\n' >> \$\@ - printf 'Depends:\\n' >> \$\@ - printf 'Priority: optional\\n' >> \$\@ - printf 'Architecture: all\\n' >> \$\@ - printf 'Essential: no\\n' >> \$\@ - - printf 'Maintainer: ' >> \$\@ - printf '$maintainer_b64' | base64 -d >> \$\@ - printf '\\n' >> \$\@ - - printf 'Description: ' >> \$\@ - printf '$desc_b64' | base64 -d >> \$\@ - printf '\\n' >> \$\@ - - printf '$long_desc_b64' | \\ - base64 -d | \\ - sed 's|^\$\$|.|' | \\ - sed 's|^| |' >> \$\@ - printf '\\n' >> \$\@ - - $dir/debian-destdir/$pkg->{name}-$pkg->{version}.deb: $dir/debian-destdir/$pkg->{name}-$pkg->{version}/DEBIAN/control - dpkg-deb --build $dir/debian-destdir/$pkg->{name}-$pkg->{version} - - $dir/debian/$pkg->{name}_$pkg->{version}_all.deb: $dir/debian-destdir/$pkg->{name}-$pkg->{version}.deb - mkdir -p \$(\@D) - cp $dir/debian-destdir/$pkg->{name}-$pkg->{version}.deb \$\@ + push @{$vars{destdirs}}, "\t$dir/debian-destdir/$pkg->{name}-$pkg->{version}/DEBIAN \\\n"; + push @{$vars{ctrlfiles}}, "\t$dir/debian-destdir/$pkg->{name}-$pkg->{version}/DEBIAN/control \\\n"; + push @{$vars{destdebs}}, "\t$dir/debian-destdir/$pkg->{name}-$pkg->{version}.deb \\\n"; + push @{$vars{debs}}, "\t$dir/debian/$pkg->{name}_$pkg->{version}_all.deb \\\n"; + my $ver = $pkg->{type} eq 'latest' ? '0.' . $pkg->{version} . '.latest' : $pkg->{version}; + $ver =~ s/^v//; + my $maintainer_b64 = MIME::Base64::encode_base64 $pkg->{maintainer}, ''; + my $desc_b64 = MIME::Base64::encode_base64 $pkg->{description}, ''; + my $long_desc_b64 = MIME::Base64::encode_base64 $pkg->{'long-description'}, ''; + + push @targets, <<~EOF; + $dir/debian-destdir/$pkg->{name}-$pkg->{version}/DEBIAN: $dir/checkouts/$pkg->{name}-$pkg->{version} + \$(MAKE) \\ + -C $dir/checkouts/$pkg->{name}-$pkg->{version} \\ + install \\ + PREFIX=/usr \\ + DESTDIR="\$\$PWD"/$dir/debian-destdir/$pkg->{name}-$pkg->{version} + mkdir -p \$\@ + touch \$\@ + + $dir/debian-destdir/$pkg->{name}-$pkg->{version}/DEBIAN/control: $dir/debian-destdir/$pkg->{name}-$pkg->{version}/DEBIAN + printf '' > \$\@ + printf 'Package: $pkg->{name}\\n' >> \$\@ + printf 'Version: $ver\\n' >> \$\@ + printf 'Section: custom\\n' >> \$\@ + printf 'Depends:\\n' >> \$\@ + printf 'Priority: optional\\n' >> \$\@ + printf 'Architecture: all\\n' >> \$\@ + printf 'Essential: no\\n' >> \$\@ + + printf 'Maintainer: ' >> \$\@ + printf '$maintainer_b64' | base64 -d >> \$\@ + printf '\\n' >> \$\@ + + printf 'Description: ' >> \$\@ + printf '$desc_b64' | base64 -d >> \$\@ + printf '\\n' >> \$\@ + + printf '$long_desc_b64' | \\ + base64 -d | \\ + sed 's|^\$\$|.|' | \\ + sed 's|^| |' >> \$\@ + printf '\\n' >> \$\@ + + $dir/debian-destdir/$pkg->{name}-$pkg->{version}.deb: $dir/debian-destdir/$pkg->{name}-$pkg->{version}/DEBIAN/control + dpkg-deb --build $dir/debian-destdir/$pkg->{name}-$pkg->{version} + + $dir/debian/$pkg->{name}_$pkg->{version}_all.deb: $dir/debian-destdir/$pkg->{name}-$pkg->{version}.deb + mkdir -p \$(\@D) + cp $dir/debian-destdir/$pkg->{name}-$pkg->{version}.deb \$\@ - EOF -} + EOF + } -print - @{$vars{tarballs}}, "\n", - @{$vars{checkouts}}, "\n", - @{$vars{destdirs}}, "\n", - @{$vars{ctrlfiles}}, "\n", - @{$vars{destdebs}}, "\n", - @{$vars{debs}}, "\n"; -print <<~EOF; - FIXME = eu\@euandre.org + print + @{$vars{tarballs}}, "\n", + @{$vars{checkouts}}, "\n", + @{$vars{destdirs}}, "\n", + @{$vars{ctrlfiles}}, "\n", + @{$vars{destdebs}}, "\n", + @{$vars{debs}}, "\n"; + print <<~EOF; + GPGKEY = '$json->{maintainer}' - all: $dir/debian/InRelease $dir/debian/Release.gpg $dir/debian/public-key.asc - public-dir: - \@printf '$dir/debian' + all: $dir/debian/InRelease $dir/debian/Release.gpg $dir/debian/public-key.asc + public-dir: + \@printf '$dir/debian' - $dir/debian/Packages: \$(debs) - cd \$(\@D) && dpkg-scanpackages -m . > \$(\@F) - $dir/debian/Release: $dir/debian/Packages - perl src/bin/paku release $dir/debian/Packages > \$\@ + $dir/debian/Packages: \$(debs) + cd \$(\@D) && dpkg-scanpackages -m . > \$(\@F) - $dir/debian/Release.gpg: $dir/debian/Release - gpg -abs -o \$\@ $dir/debian/Release + $dir/debian/Release: $dir/debian/Packages + perl src/bin/paku debian-release $dir/debian/Packages > \$\@ - $dir/debian/InRelease: $dir/debian/Release - gpg --default-key \$(FIXME) -a --clear-sign -o \$\@ $dir/debian/Release + $dir/debian/Release.gpg: $dir/debian/Release + gpg -abs -o \$\@ $dir/debian/Release - $dir/debian/public-key.asc: $dir/debian/Release - gpg --armour --export \$(FIXME) > \$\@ + $dir/debian/InRelease: $dir/debian/Release + gpg --default-key \$(GPGKEY) -a --clear-sign -o \$\@ $dir/debian/Release + $dir/debian/public-key.asc: $dir/debian/Release + gpg --armour --export \$(GPGKEY) > \$\@ - EOF -print @targets; + EOF + + print @targets; +} + +sub emit_html() { + +} + + +my %actions = ( + 'debian-release' => \&emit_release, + nix => \&emit_nix, + guix => \&emit_guix, + debian => \&emit_debian, + html => \&emit_html, +); + +my $fn = $actions{$action} or die "Unknown ACTION: \"$action\""; +&$fn; diff --git a/src/org/euandre/packages.scm b/src/org/euandre/packages.scm index 772086b..a7b0d4e 100644 --- a/src/org/euandre/packages.scm +++ b/src/org/euandre/packages.scm @@ -1,7 +1,7 @@ (define-module (org euandre packages) #:use-module (gnu packages guile) #:use-module (gnu packages texinfo) - #:use-module ((guix licenses) #:prefix license:) + #:use-module ((guix licenses) #:prefix licenses:) #:use-module (guix gexp) #:use-module (guix packages) #:use-module (guix download) @@ -11,11 +11,12 @@ (package (name "git-permalink-0-1-0") (version "v0.1.0") - (source (origin - (method url-fetch) - (uri "https://euandre.org/git/git-permalink/snapshot/git-permalink-v0.1.0.tar.xz") - (sha256 - (base32 "07waci3y0xdlbr8gl1lzdbsiz0csnrshcm6f18cdzn7y97irhb15")))) + (source + (origin + (method url-fetch) + (uri "https://euandre.org/git/git-permalink/snapshot/git-permalink-v0.1.0.tar.xz") + (sha256 + (base32 "07waci3y0xdlbr8gl1lzdbsiz0csnrshcm6f18cdzn7y97irhb15")))) (build-system gnu-build-system) (native-inputs (list)) @@ -33,17 +34,18 @@ template overrides to be used on custom domains or deployments via git config.") (home-page "https://euandre.org/s/git-permalink/") - (license license:agpl3+))) + (license licenses:agpl3+))) (define-public git-permalink-0-2-0 (package (name "git-permalink-0-2-0") (version "v0.2.0") - (source (origin - (method url-fetch) - (uri "https://euandre.org/git/git-permalink/snapshot/git-permalink-v0.2.0.tar.xz") - (sha256 - (base32 "10qiigp29jamb23mdrf1yp0gqmihlsg931ibpiqpf4pn28l5d9ly")))) + (source + (origin + (method url-fetch) + (uri "https://euandre.org/git/git-permalink/snapshot/git-permalink-v0.2.0.tar.xz") + (sha256 + (base32 "10qiigp29jamb23mdrf1yp0gqmihlsg931ibpiqpf4pn28l5d9ly")))) (build-system gnu-build-system) (native-inputs (list)) @@ -61,17 +63,18 @@ config.") template overrides to be used on custom domains or deployments via git config.") (home-page "https://euandre.org/s/git-permalink/") - (license license:agpl3+))) + (license licenses:agpl3+))) (define-public remembering-0-1-2 (package (name "remembering-0-1-2") (version "v0.1.2") - (source (origin - (method url-fetch) - (uri "https://euandre.org/git/remembering/snapshot/remembering-v0.1.2.tar.xz") - (sha256 - (base32 "1syzn41w4f754ihblwxcv3wn653lh92cgg6g06db1qrx3m2zvw5v")))) + (source + (origin + (method url-fetch) + (uri "https://euandre.org/git/remembering/snapshot/remembering-v0.1.2.tar.xz") + (sha256 + (base32 "1syzn41w4f754ihblwxcv3wn653lh92cgg6g06db1qrx3m2zvw5v")))) (build-system gnu-build-system) (native-inputs (list)) @@ -88,17 +91,18 @@ config.") "It can wrap such tools to accumulate preferences over time, and re-arrange the input according to common picks.") (home-page "https://euandre.org/s/remembering/") - (license license:agpl3+))) + (license licenses:agpl3+))) (define-public td-latest (package (name "td-latest") (version "4a8a7a2662c94b2581f587e9a4b81feba4f5e7d8") - (source (origin - (method url-fetch) - (uri "https://euandre.org/git/td/snapshot/td-4a8a7a2662c94b2581f587e9a4b81feba4f5e7d8.tar.xz") - (sha256 - (base32 "01g1vnlz1kch8j9zzaxyixih04azdvrfabfzg7xqny32h2p62md2")))) + (source + (origin + (method url-fetch) + (uri "https://euandre.org/git/td/snapshot/td-4a8a7a2662c94b2581f587e9a4b81feba4f5e7d8.tar.xz") + (sha256 + (base32 "01g1vnlz1kch8j9zzaxyixih04azdvrfabfzg7xqny32h2p62md2")))) (build-system gnu-build-system) (native-inputs (list)) @@ -117,7 +121,7 @@ re-arrange the input according to common picks.") It is a tool for distributed, offline issue tracking, reified as a simple text file in the repository.") (home-page "https://euandre.org/s/td/") - (license license:agpl3+))) + (license licenses:agpl3+))) (define-public td (package @@ -129,11 +133,12 @@ file in the repository.") (package (name "guile-heredoc-latest") (version "065435cdce609604e33b879b9be3e81ab89f3e7b") - (source (origin - (method url-fetch) - (uri "https://euandre.org/git/guile-heredoc/snapshot/guile-heredoc-065435cdce609604e33b879b9be3e81ab89f3e7b.tar.xz") - (sha256 - (base32 "1y1110bg4ki0dvn8hggxy34wg7ig4r3377nc84isnj3dydqm2vjd")))) + (source + (origin + (method url-fetch) + (uri "https://euandre.org/git/guile-heredoc/snapshot/guile-heredoc-065435cdce609604e33b879b9be3e81ab89f3e7b.tar.xz") + (sha256 + (base32 "1y1110bg4ki0dvn8hggxy34wg7ig4r3377nc84isnj3dydqm2vjd")))) (build-system gnu-build-system) (native-inputs (list @@ -151,7 +156,7 @@ file in the repository.") (description "Guile heredoc syntax long.") (home-page "https://euandre.org/s/guile-heredoc/") - (license license:agpl3+))) + (license licenses:agpl3+))) (define-public guile-heredoc (package |