Could I please have comments on the below (and attached) PKGBUILD for nixnote2-release-bin.

To pre-empt some comments:

1) This will download the latest binary from GitHub. I'm open to a different package name to denote that it's not a '-git' or build-from-latest-source-code, but rather a build-from-latest-binary-release.

You may say that building from latest binary release against the packaging guidelines, but I can't see where. Please see prior art regarding this at:

https://bbs.archlinux.org/viewtopic.php?pid=1811590#p1811590

2) There is already a '-git' version of this package, but I want to provide another option which: * Is more stable - based on versioned releases rather than the 'continuous' branch.
* Has a quicker install - doesn't require waiting for compiling


Question:

I've found that even with pointing the .desktop file explicitly at the pathname of the icon, xfce4 still doesn't pick it up. Why not?

===============================================================

# Maintainer: Tom Hale <tom[noodle]hale[point]ee>
# Contributor: twa022 <twa022 at gmail dot com>

OPTIONS=(!strip)  # Stripping an AppImage renders it non-functional

_pkgname=nixnote2
pkgname=${_pkgname}-release-bin
pkgver=2.1.0.beta4
pkgrel=1
pkgdesc='Evernote clone (formerly Nevernote) - latest binary release'
url="https://github.com/robert7/$_pkgname";
arch=(x86_64)
license=(GPL3)
depends=(hicolor-icon-theme zlib)
makedepends=(git)
conflicts=(nixnote2-git)
provides=("nixnote=${pkgver%.r*}" "$_pkgname=${pkgver%.r*}")
replaces=(nevernote nixnote nixnote-beta)
source=("$pkgname:desktop.patch")
sha256sums=(4f12cddc49e0c694f41e344acebc0d8a3bce07a3496098eb2fae258ba9044967)
noextract=("${source[@]%%::*}")  # Don't extract anything

_version_file=$pkgname-PKGBUILD-version  # For version from the download URL

_appimage_path=$(curl -s 'https://github.com/robert7/nixnote2/releases' |
sed -En 's:.*(/releases/download/v[^"/]+/[^"/]+[Aa]pp[Ii]mage)".*:\1:p' |
                  head -n1)

_appimage=${_appimage_path##*/}  # basename of AppImage

prepare() {
wget -N "$url/$_appimage_path" # Only download again if server version is newer

   # Make download executable
   chmod 755 "$_appimage"

   # Extract user resources from inside the AppImage
   # All files in the directories specified are extracted
# Note that --appimage-extract currently doesn't support recursive extraction:
   # https://github.com/AppImage/AppImageKit/issues/370
   local extract_dirs=(usr/share/applications
                       usr/share/man/man1
                       usr/share/icons/hicolor/48x48/apps
                       usr/share/nixnote2
                       usr/share/nixnote2/help
                       usr/share/nixnote2/translations)

# Due to this issue, all --appimage-extract target directories must already exist
   # https://github.com/AppImage/AppImageKit/issues/363
   local dir
   for dir in "${extract_dirs[@]}"; do
     mkdir -p squashfs-root/"$dir"
     "./$_appimage" --appimage-extract "$dir/*"
   done

   # Save version of extracted files for pkgver() in `makepkg -e`
   [[ $_appimage_path =~ /releases/download/v([^/]+).* ]]
   local version=${BASH_REMATCH[1]}
   echo ${version//-/.} >| "$_version_file"

rm -r squashfs-root/usr/share/"$_pkgname"/{java,images} # Remove non-human resources

# Directories are extracted with no permissions for group and other. Fix:
   find squashfs-root -type d -exec chmod go+rx -- {} +

   # Have the .desktop point explicitly at the icon
   patch -d squashfs-root/usr/share/applications < "$pkgname:desktop.patch"
}


pkgver() {
     cat "$_version_file"
}


package() {
   cd "$pkgdir"

   # User resources
   cp -pr "$srcdir"/squashfs-root/usr .

   # AppImage as /usr/bin/nixnote2 for .desktop file
   install -Dm755 -T "$srcdir/$_appimage" usr/bin/"$_pkgname"
}

--
Tom Hale
# Maintainer: Tom Hale <tom[noodle]hale[point]ee>
# Contributor: twa022 <twa022 at gmail dot com>

OPTIONS=(!strip)  # Stripping an AppImage renders it non-functional

_pkgname=nixnote2
pkgname=${_pkgname}-release-bin
pkgver=2.1.0.beta4
pkgrel=1
pkgdesc='Evernote clone (formerly Nevernote) - latest binary release'
url="https://github.com/robert7/$_pkgname";
arch=(x86_64)
license=(GPL3)
depends=(hicolor-icon-theme zlib)
makedepends=(git)
conflicts=(nixnote2-git)
provides=("nixnote=${pkgver%.r*}" "$_pkgname=${pkgver%.r*}")
replaces=(nevernote nixnote nixnote-beta)
source=("$pkgname:desktop.patch")
sha256sums=(4f12cddc49e0c694f41e344acebc0d8a3bce07a3496098eb2fae258ba9044967)
noextract=("${source[@]%%::*}")  # Don't extract anything

_version_file=$pkgname-PKGBUILD-version  # For version from the download URL

_appimage_path=$(curl -s 'https://github.com/robert7/nixnote2/releases' |
                 sed -En 
's:.*(/releases/download/v[^"/]+/[^"/]+[Aa]pp[Ii]mage)".*:\1:p' |
                 head -n1)

_appimage=${_appimage_path##*/}  # basename of AppImage

prepare() {
  wget -N "$url/$_appimage_path"  # Only download again if server version is 
newer

  # Make download executable
  chmod 755 "$_appimage"

  # Extract user resources from inside the AppImage
  # All files in the directories specified are extracted
  # Note that --appimage-extract currently doesn't support recursive extraction:
  # https://github.com/AppImage/AppImageKit/issues/370
  local extract_dirs=(usr/share/applications
                      usr/share/man/man1
                      usr/share/icons/hicolor/48x48/apps
                      usr/share/nixnote2
                      usr/share/nixnote2/help
                      usr/share/nixnote2/translations)

  # Due to this issue, all --appimage-extract target directories must already 
exist
  # https://github.com/AppImage/AppImageKit/issues/363
  local dir
  for dir in "${extract_dirs[@]}"; do
    mkdir -p squashfs-root/"$dir"
    "./$_appimage" --appimage-extract "$dir/*"
  done

  # Save version of extracted files for pkgver() in `makepkg -e`
  [[ $_appimage_path =~ /releases/download/v([^/]+).* ]]
  local version=${BASH_REMATCH[1]}
  echo ${version//-/.} >| "$_version_file"

  rm -r squashfs-root/usr/share/"$_pkgname"/{java,images}  # Remove non-human 
resources

  # Directories are extracted with no permissions for group and other. Fix:
  find squashfs-root -type d -exec chmod go+rx -- {} +

  # Have the .desktop point explicitly at the icon
  patch -d squashfs-root/usr/share/applications < "$pkgname:desktop.patch"
}


pkgver() {
    cat "$_version_file"
}


package() {
  cd "$pkgdir"

  # User resources
  cp -pr "$srcdir"/squashfs-root/usr .

  # AppImage as /usr/bin/nixnote2 for .desktop file
  install -Dm755 -T "$srcdir/$_appimage" usr/bin/"$_pkgname"
}

Reply via email to