aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEuAndreh <eu@euandre.org>2023-03-21 13:23:50 -0300
committerEuAndreh <eu@euandre.org>2023-03-21 13:37:05 -0300
commit874659bf739757cb56218de323a40e2238ebe187 (patch)
tree95a63429f189b1092fbe6e7bc73b0f553ef3dac6
parentAdd generated Guix and Nix files as dependencies of paku.lock (diff)
downloadpackage-repository-874659bf739757cb56218de323a40e2238ebe187.tar.gz
package-repository-874659bf739757cb56218de323a40e2238ebe187.tar.xz
src/bin/paku: General cleanup and tidyness
-rw-r--r--Makefile7
-rw-r--r--paku.lock25
-rwxr-xr-xsrc/bin/paku320
-rw-r--r--src/org/euandre/packages.scm67
4 files changed, 222 insertions, 197 deletions
diff --git a/Makefile b/Makefile
index 0f011f9..e0d7de2 100644
--- a/Makefile
+++ b/Makefile
@@ -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`/ $@/
diff --git a/paku.lock b/paku.lock
index ac1cf00..f89a9fb 100644
--- a/paku.lock
+++ b/paku.lock
@@ -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