Package Details: soundfont-fatboy 0.789-1

Git Clone URL: https://aur.archlinux.org/soundfont-fatboy.git (read-only, click to copy)
Package Base: soundfont-fatboy
Description: A free GM/GS SoundFont for classic video game MIDI, emulation, and general usage.
Upstream URL: https://fatboy.site/
Keywords: dosbox midi pro-audio soundfont
Licenses: unknown
Submitter: Protecto
Maintainer: None
Last Packager: Protecto
Votes: 5
Popularity: 0.019588
First Submitted: 2019-02-17 17:06
Last Updated: 2020-04-08 08:41

Dependencies (0)

Required by (1)

Sources (1)

Latest Comments

ccorn commented on 2020-04-17 09:44

@3ndymion: You could use something like this:

--- a/PKGBUILD
+++ b/PKGBUILD
@@ -6,7 +6,8 @@ pkgdesc="A free GM/GS SoundFont for classic video game MIDI, emulation, and gene
 arch=('any')
 url="https://fatboy.site/"
 license=('unknown')
-source=("https://dl.fatboy.site/FatBoy-latest.7z")
+# Put version in downloaded source filename to trigger new download on update
+source=("FatBoy-latest-supposedly-v$pkgver.7z::https://dl.fatboy.site/FatBoy-latest.7z")
 sha256sums=(99c0ed3a19d1626c79ccea79c11ba60f92ce6251376d8251b5c26c5bafeff504)

 package() {

If the checksum test then fails, that would probably be due to an upstream update (which is why I have prefixed the new version part of the filename with latest-supposedly-, you might want to leave that out for brevity). In that case, use 7z l on the downloaded file to find the actual version, rename the downloaded file accordingly and update the PKGBUILD to the new version and checksum. (Such changes should be published here of course.)

3ndymion commented on 2020-04-10 11:43

Hi. Part of the problem that ccorn described is still there. When the source package is already present, makepkg will check the sha256sum with the new value, & it will fail & exit.

==> Validating source files with sha256sums...
    FatBoy-latest.7z ... FAILED
==> ERROR: One or more files did not pass the validity check!

The problem is that the source file always has the same name. A good fix would be to append the package version to the source file's name before the sha256sum check is done. That way, every future update will download a new source file & rename it with the new package version.

I don't know if that's possible or not with the build system. Perhaps the downloading & renaming & sum checking can be done manually if the build system can't do it automatically.

Protecto commented on 2020-04-08 08:41

Thanks for the work! I patched the PKGBUILD.

ccorn commented on 2020-04-07 20:15

The versioning mechanism does not work when sources are present:

  • Suppose PKGBUILD contains pkgver=0.789 after the git pull.
  • FatBoy-latest.7z is already present, contains the old version 0.786.
  • No checksum gets checked, so the outdated archive is accepted and extracted.
  • pkgver() runs, correctly discovers the old version 0.786 and changes the PKGBUILD back to that.
  • No update gets downloaded.
  • The old package with the old version is rebuilt, which is pointless.

This has actually happened here.

The underlying cause is that there is no automatic way to detect when the downloaded source archive is out of date.

I have therefore switched to manual versioning.

Besides, the install comand needs -m644 to disable x permissions.

--- a/PKGBUILD
+++ b/PKGBUILD
@@ -7,12 +7,8 @@ arch=('any')
 url="https://fatboy.site/"
 license=('unknown')
 source=("https://dl.fatboy.site/FatBoy-latest.7z")
-md5sums=("SKIP")
-
-pkgver() {
-   echo *sf2 | sed -e 's/FatBoy-v\(.*\).sf2/\1/'
-}
+sha256sums=(99c0ed3a19d1626c79ccea79c11ba60f92ce6251376d8251b5c26c5bafeff504)

 package() {
-   install -D "FatBoy-v$pkgver.sf2" "$pkgdir/usr/share/soundfonts/FatBoy.sf2"
+   install -Dm644 "FatBoy-v$pkgver.sf2" "$pkgdir/usr/share/soundfonts/FatBoy.sf2"
 }

Protecto commented on 2019-11-03 14:29

Looks like a bug in the pacman package. It was fixed in pacman 5.2.1 https://git.archlinux.org/pacman.git/tree/NEWS

jsomedon commented on 2019-11-01 13:29

Got this warning:

==> WARNING: PACKAGER should have the format 'Example Name email@address.invalid'