From 724f305e6f8c9df9213850ad319ca5ef225d7add Mon Sep 17 00:00:00 2001 From: Fredrick Brennan Date: Wed, 21 Jun 2023 01:50:03 -0400 Subject: [PATCH] v0.0.20 pkgrel 5 Adds a check for all the envvars the package uses. --- .SRCINFO | 28 +++++++++++++-------- .gitignore | 2 ++ PKGBUILD | 57 ++++++++++++++++++++++++++---------------- sensible-envvars | 9 +++++++ sensible-utils.install | 24 ++++++++++++++++++ 5 files changed, 88 insertions(+), 32 deletions(-) create mode 100755 sensible-envvars create mode 100644 sensible-utils.install diff --git a/.SRCINFO b/.SRCINFO index 4c57dca..1ced94b 100644 --- a/.SRCINFO +++ b/.SRCINFO @@ -1,20 +1,36 @@ pkgbase = sensible-utils pkgdesc = Utilities for sensible alternative selection pkgver = 0.0.20 - pkgrel = 4 + pkgrel = 5 url = http://packages.debian.org/source/sid/sensible-utils arch = any license = GPL checkdepends = ed checkdepends = dash makedepends = po4a + makedepends = findutils depends = bash depends = coreutils source = sensible-utils_0.0.20_.tar.xz::http://ftp.debian.org/debian/pool/main/s/sensible-utils/sensible-utils_0.0.20.tar.xz source = sensible-utils_0.0.20_.dsc::http://ftp.debian.org/debian/pool/main/s/sensible-utils/sensible-utils_0.0.20.dsc + source = sensible-utils.install + source = sensible-envvars validpgpkeys = 5D0187B940A245BAD7B0F56A003A1A2DAA41085F b2sums = e65419e7f157f64249b429806a4d48c02c5f492fb2dbdae1a8e4966dca964a4b1b9b6fdb555f03fabb6cd219238022821a64b15f11582ffdf115fa15ab6e3e0e b2sums = 8b122921916df3f4c138b99ac5183cae686e01be985db0ad2c77e3faff619779aecc596c6936c9f73f73ff3c73cf5ce30654df9158ce15caccd4ed0e0f50de09 + b2sums = 7ce44eb32d7630155bdf0b6bb0dcb7263c74c5d7050ace953559efdb97448b8105d971c0b721ce34033cda3f32263e524ebfded39a6b7a02652a73bc29d46b98 + b2sums = 8a213b98cc6d432af30ecf58d91ae88f151f2824274702f7e1bde6119b45effc4a0b15907459c9f8f1ee5af94de862e6dec579b4f07d168aaa658443764a1f19 + +pkgname = sensible-utils + pkgdesc = Utilities for sensible alternative selection (metapackage) + install = sensible-utils.install + depends = bash + depends = coreutils + depends = sensible-browser + depends = sensible-editor + depends = sensible-pager + depends = sensible-terminal + depends = sensible-utils-data pkgname = sensible-browser depends = bash @@ -36,15 +52,5 @@ pkgname = sensible-terminal depends = coreutils depends = sensible-utils-data -pkgname = sensible-utils - pkgdesc = Utilities for sensible alternative selection (metapackage) - depends = bash - depends = coreutils - depends = sensible-browser - depends = sensible-editor - depends = sensible-pager - depends = sensible-terminal - depends = sensible-utils-data - pkgname = sensible-utils-data depends = bash diff --git a/.gitignore b/.gitignore index 322cb7c..7b2892c 100644 --- a/.gitignore +++ b/.gitignore @@ -3,3 +3,5 @@ !/.SRCINFO !/PKGBUILD !/sensible-utils*.asc +!/*.install +!/sensible-envvars diff --git a/PKGBUILD b/PKGBUILD index d777d10..8fb4490 100644 --- a/PKGBUILD +++ b/PKGBUILD @@ -4,30 +4,37 @@ # Contributor: Brian BIdulock pkgbase=sensible-utils -_pkgname='sensible-browser sensible-editor sensible-pager sensible-terminal' -declare -g -a pkgname=($_pkgname) -pkgname+=(sensible-utils sensible-utils-data) +pkgname=(sensible-utils sensible-browser sensible-editor sensible-pager sensible-terminal sensible-utils-data) +# This is the above minus the pkgbase name, for use in sensible-utils packaging command. +_pkgname=(sensible-browser sensible-editor sensible-pager sensible-terminal sensible-utils-data) pkgver=0.0.20 -_debianextra='' -pkgrel=4 +_debianextra='' # Do not remove even if empty as sometimes Debian puts e.g. +1, their version of a pkgrel. +pkgrel=5 pkgdesc="Utilities for sensible alternative selection" arch=('any') url="http://packages.debian.org/source/sid/sensible-utils" license=('GPL') depends=('bash' 'coreutils') -makedepends=('po4a') -checkdepends=('ed' 'dash') +makedepends=('po4a' + # for xargs + 'findutils') +checkdepends=('ed' + # see comment in check() function + 'dash') _dirname=${pkgbase}_${pkgver}_$pkgrel_${_debianextra} source=("$_dirname.tar.xz::http://ftp.debian.org/debian/pool/main/s/$pkgbase/${pkgbase}_${pkgver}${_debianextra}.tar.xz" - "$_dirname.dsc::http://ftp.debian.org/debian/pool/main/s/$pkgbase/${pkgbase}_${pkgver}${_debianextra}.dsc") + "$_dirname.dsc::http://ftp.debian.org/debian/pool/main/s/$pkgbase/${pkgbase}_${pkgver}${_debianextra}.dsc" + sensible-utils.install + sensible-envvars) +# (n)vim command to regenerate: +# :'<,'>! makepkg --geninteg 2>&1 | perl -pe '$_=~s/^[\s]*(==>|->).*//g; $_=~s/^[\s]*$//d' b2sums=('e65419e7f157f64249b429806a4d48c02c5f492fb2dbdae1a8e4966dca964a4b1b9b6fdb555f03fabb6cd219238022821a64b15f11582ffdf115fa15ab6e3e0e' - '8b122921916df3f4c138b99ac5183cae686e01be985db0ad2c77e3faff619779aecc596c6936c9f73f73ff3c73cf5ce30654df9158ce15caccd4ed0e0f50de09') + '8b122921916df3f4c138b99ac5183cae686e01be985db0ad2c77e3faff619779aecc596c6936c9f73f73ff3c73cf5ce30654df9158ce15caccd4ed0e0f50de09' + '7ce44eb32d7630155bdf0b6bb0dcb7263c74c5d7050ace953559efdb97448b8105d971c0b721ce34033cda3f32263e524ebfded39a6b7a02652a73bc29d46b98' + '8a213b98cc6d432af30ecf58d91ae88f151f2824274702f7e1bde6119b45effc4a0b15907459c9f8f1ee5af94de862e6dec579b4f07d168aaa658443764a1f19') +# Bastien ROUCARIÈS validpgpkeys=('5D0187B940A245BAD7B0F56A003A1A2DAA41085F') -prepare() { - return 0 -} - build() { cd ${pkgbase}-${pkgver}${_debianextra} export -n EDITOR VISUAL PAGER TERMINAL_EMULATOR BROWSER @@ -35,21 +42,26 @@ build() { make } +# This trick is needed as the fork-bomb test only works if /bin/sh == /bin/dash, +# which it isn't on Arch but is on Debian! check() { cd ${pkgbase}-${pkgver}${_debianextra} - test -L sh || ln -s /bin/dash sh OLDPATH="$PATH" - export PATH=.:"$PATH" + TEMPDIR=`mktemp -d` + >&2 echo Made tempdir "$TEMPDIR". + ln -s /bin/dash "$TEMPDIR/sh" + export PATH="$TEMPDIR:$PATH" sed -i -e 's@#!/bin/sh@#!/usr/bin/env sh@' ./sensible-editor - env -i make -k check + env -i make check sed -i -e 's@#!/usr/bin/env sh@#!/bin/sh@' ./sensible-editor export PATH="$OLDPATH" + rm -rv "$TEMPDIR" } _package_sensible() { cd ${pkgbase}-${pkgver}${_debianextra} pkgdesc="$pkgdesc (${pkgname##*-})" - export -n EDITOR VISUAL + export -n EDITOR VISUAL PAGER TERMINAL_EMULATOR BROWSER make DESTDIR="$pkgdir/" install shopt -s globstar cd "$pkgdir" @@ -82,10 +94,13 @@ package_sensible-utils-data() { } package_sensible-utils() { + shopt -s extglob + local rms + rms='!(sensible-utils)' pkgdesc="$pkgdesc (metapackage)" - depends+=($_pkgname sensible-utils-data) - mkdir -p "$pkgdir/usr/share/sensible-utils" - echo 1 > "$pkgdir/usr/share/sensible-utils/.ARCH" + depends+=(${_pkgname[@]}) + install=sensible-utils.install + install -Dm0755 "$srcdir/sensible-envvars" "$pkgdir/usr/share/sensible-utils/sensible-envvars" } -# vim:set ts=2 sw=2 et: +# vim:set syntax=bash ts=2 sw=2 et: diff --git a/sensible-envvars b/sensible-envvars new file mode 100755 index 0000000..7c9fb96 --- /dev/null +++ b/sensible-envvars @@ -0,0 +1,9 @@ +#!/bin/bash +declare -g -A SENSIBLEENVVARS + +SENSIBLEENVVARS=([sensible-browser]=BROWSER + [sensible-editor]=EDITOR + [sensible-pager]=PAGER + [sensible-terminal]=TERMINAL_EMULATOR) + +# vim:set ts=2 sw=2 et: diff --git a/sensible-utils.install b/sensible-utils.install new file mode 100644 index 0000000..395f454 --- /dev/null +++ b/sensible-utils.install @@ -0,0 +1,24 @@ +#!/bin/bash + +source /usr/share/sensible-utils/sensible-envvars + +post_install() { + for cmd in ${!SENSIBLEENVVARS[*]}; do + local cmdpath + cmdpath="$(which $cmd)" + [[ -n "$cmdpath" ]] || continue + local envvar + envvar="${SENSIBLEENVVARS["$cmd"]}" + if [[ -z "$envvar" ]]; then + continue + fi + [[ -z "${!envvar}" ]] && echo "$cmdpath requires $envvar be set in the environment to work properly!" + done +} + +post_upgrade() { + post_install "$@" +} + +# vim:set ts=2 sw=2 et: +