Package Details: hledger-bin 1.40-5

Git Clone URL: https://aur.archlinux.org/hledger-bin.git (read-only, click to copy)
Package Base: hledger-bin
Description: Command-line interface for the hledger accounting system
Upstream URL: http://hledger.org
Keywords: hledger ledger
Licenses: GPL
Conflicts: hledger
Provides: hledger
Submitter: ccat3z
Maintainer: dude
Last Packager: dude
Votes: 8
Popularity: 1.67
First Submitted: 2020-08-22 05:39 (UTC)
Last Updated: 2024-09-17 19:30 (UTC)

Latest Comments

1 2 3 4 Next › Last »

gesh commented on 2024-12-30 19:42 (UTC) (edited on 2024-12-30 19:56 (UTC) by gesh)

In reading the diff, just noticed prepare() contains an absolutely unnecessary extraction of a tar archive. EDIT: turns out pacman isn't smart enough to extract .tar.zip files (in fact, the fact that it extracts one level at all is a coincidence -- makepkg tries to autodetect the archive type and seems to be accidentally detecting the underlying tar archive. Luckily, bsdtar -xf can extract both zip and tar archives, but since zip files are themselves archives, it stops the extraction after one step (in contrast to eg .tar.xz files)). On the other hand, Github is too stubborn to enable automatically uploading .tar.gz files1, so upstream ended up going with .tar.zip files2.

Also, the new release packages the bash completion with it, no need to download it separately anymore. Hopefully, soon the manpages will also be distributed in the bindist, making the hardcoded urls unnecessary3

Also, the license is GPL-3+, see the manpage.

Also, you either want the split packages to work independently (in which case, independent copies of hledger-completion.bash should be shipped with each, instead of symlinking), or you want to make the -ui and -web variants depend on the vanilla hledger.

Finally, are you sure the ncurses5 and zlib dependencies are necessary? The former is IIUC only needed for GHCs from more than 7 years ago4, and I can't find mention of the latter in the repo. Also, glibc and coreutils are in base, there's no need to manually specify them.

dbh97 commented on 2024-12-27 10:09 (UTC)

Here's 1.41 diff.

diff --git a/PKGBUILD b/PKGBUILD
index 4c6d661..7f526c5 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -1,6 +1,6 @@
 # Maintainer: dude <brrtsm@gmail.com>

-pkgver=1.40
+pkgver=1.41
 pkgname=(hledger-bin hledger-ui-bin hledger-web-bin)
 pkgrel=5
 pkgdesc="Easy-to-use command-line/curses/web plaintext accounting tool"
@@ -11,23 +11,24 @@ depends=('gmp' 'ncurses5-compat-libs')
 makedepends=('coreutils')
 optdepends=('asciinema: hledger demo support')
 source=(
-    hledger-${pkgver}.tar.gz::https://github.com/simonmichael/hledger/releases/download/${pkgver}/hledger-linux-x64.tar.gz
+    hledger-${pkgver}.zip::https://github.com/simonmichael/hledger/releases/download/${pkgver}/hledger-linux-x64.zip
     https://raw.githubusercontent.com/simonmichael/hledger/hledger-${pkgver}/hledger/shell-completion/hledger-completion.bash
     https://raw.githubusercontent.com/simonmichael/hledger/hledger-${pkgver}/hledger/hledger.1
     https://raw.githubusercontent.com/simonmichael/hledger/hledger-${pkgver}/hledger-ui/hledger-ui.1
     https://raw.githubusercontent.com/simonmichael/hledger/hledger-${pkgver}/hledger-web/hledger-web.1
 )
 sha256sums=(
-    8f41679941ee6e68d77b9a6f9c0d155d9e6e27265da297f92d0a5bcf5658679e
-    662abb7f39b9582315a6d014012fdff56664e8cf6b2665f1d96ae3285930d4ce
-    cb37c183da683bd6031c881272998f994a60ead08b25e61c4698d6cbc3269968
-    7a789e1a2b82f0e250efb5ec0d1b630a6053cabb2912bccddee7f65fc08fe992
-    cfd949b03ce0a0ce20d7ab1e99173456465d02716cc3ad472a4be7bc2e31d325
+    97b28749dbd673f093f0f0784b0cd938f41f0729bb4a73daf3aa56d7994c3353
+    4acdf7a80ff641210bd4de7814b9f44607b51d44b3df08b709eb202670047801
+    d8608500460bddd820429a1b6a46e1a6f4f2955666c0ddf33969f2eb2d6886cc
+    8f4aa0bc4b0474596a06b48e9227fa6c18ecb58b123c078f81776ef4d2eb85ee
+    b49e60026438567f9ed98c80930ac9c2d60e637e2518a2ae4eaed606f16c46cb
 )

 prepare() {
     cd $srcdir
-    tar -xvf ./hledger-${pkgver}.tar.gz
+    unzip ./hledger-${pkgver}.zip
+    tar -xf ./hledger-linux-x64.tar
 }

 package_hledger-bin() {

gesh commented on 2024-09-17 18:05 (UTC)

Note the installation instructions in the completion file -- it should be symlinked to also be pointed to by /usr/share/bash-completion/completions/hledger-{ui,web}. Currently, the only way to load the completion for eg hledger-ui is to first do hledger <TAB> -- this will pull in the completion file, which will additionally configure completion for hledger-ui and hledger-web.

diff --git a/PKGBUILD b/PKGBUILD
index cb9759e..4c6d661 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -2,7 +2,7 @@

 pkgver=1.40
 pkgname=(hledger-bin hledger-ui-bin hledger-web-bin)
-pkgrel=4
+pkgrel=5
 pkgdesc="Easy-to-use command-line/curses/web plaintext accounting tool"
 arch=(x86_64)
 url="http://hledger.org"
@@ -48,6 +48,8 @@ package_hledger-ui-bin() {
     depends+=(zlib)

     install -Dm 755 ./hledger-ui "$pkgdir/usr/bin/hledger-ui"
+    mkdir -p "$pkgdir/usr/share/bash-completion/completions/"
+    ln -sr "$pkgdir/usr/share/bash-completion/completions/hledger"{,-ui}
     install -Dm 644 hledger-ui.1 -t "$pkgdir/usr/share/man/man1/"
 }

@@ -58,5 +60,7 @@ package_hledger-web-bin() {
     depends+=(zlib)

     install -Dm 755 ./hledger-web "$pkgdir/usr/bin/hledger-web"
+    mkdir -p "$pkgdir/usr/share/bash-completion/completions/"
+    ln -sr "$pkgdir/usr/share/bash-completion/completions/hledger"{,-web}
     install -Dm 644 hledger-web.1 -t "$pkgdir/usr/share/man/man1/"
 }

dude commented on 2024-09-14 16:03 (UTC)

@tee Thanks, I've added that as an optdepends just now

tee commented on 2024-09-14 15:42 (UTC)

This optionally depends on asciinema, for hledger demo 2.

gesh commented on 2024-09-10 19:08 (UTC)

Ah, right. I had considered that a static resource (i.e. not something making this a VCS package), but of course you're right to want to get the version of the completion at that tag. Also, TIL that syntax to get the file at a given tag, thanks!

dude commented on 2024-09-10 18:39 (UTC)

@gesh Fixed it for you...just needed to specify hledger-${pkgver} as the git tag, instead of the master branch.

dude commented on 2024-09-10 15:31 (UTC) (edited on 2024-09-10 15:38 (UTC) by dude)

@gesh Can you change your patch to pull hledger-completion.bash from the 1.40 source release rather than git master?

The restriction is noted here: https://wiki.archlinux.org/title/AUR_submission_guidelines#Rules_of_submission

Packages that build from a version control system and are not tied to a specific version need to have an appropriate suffix, -git for git and so on

gesh commented on 2024-09-10 15:17 (UTC)

I don't understand the reasoning for this restriction -- yes, this makes the PKGBUILD sensitive to changes to the completions, but they haven't changed in 2 years. I have prodded upstream on this, hopefully this gets resolved one way or the other https://github.com/simonmichael/hledger/issues/986

dude commented on 2024-09-10 09:13 (UTC)

@gesh Can't use files from a git repo for this, the source files need to be taken from an official tarball release. Because if the hledger-completion.bash file gets updated upstream, this package will fail to build (shasum will be different).