diff options
author | Jakub Jirutka <jakub@jirutka.cz> | 2017-05-24 00:03:30 +0200 |
---|---|---|
committer | Jakub Jirutka <jakub@jirutka.cz> | 2017-06-07 23:36:21 +0200 |
commit | afe7923c88c43e566e4529ef91f464b0eaedcd8c (patch) | |
tree | a76ddb1d356164d6e8c30ba0395c1f3e0aaf0ccb /testing/nim/niminst-fix-paths.patch | |
parent | 51845850201a6e06d5d7154807ed9969fd8b6c9a (diff) | |
download | aports-afe7923c88c43e566e4529ef91f464b0eaedcd8c.tar.bz2 aports-afe7923c88c43e566e4529ef91f464b0eaedcd8c.tar.xz |
testing/nim: new aport
https://nim-lang.org/
A systems and applications programming language
Diffstat (limited to 'testing/nim/niminst-fix-paths.patch')
-rw-r--r-- | testing/nim/niminst-fix-paths.patch | 170 |
1 files changed, 170 insertions, 0 deletions
diff --git a/testing/nim/niminst-fix-paths.patch b/testing/nim/niminst-fix-paths.patch new file mode 100644 index 0000000000..1274220493 --- /dev/null +++ b/testing/nim/niminst-fix-paths.patch @@ -0,0 +1,170 @@ +From: Jakub Jirutka <jakub@jirutka.cz> +Date: Tue, 23 Aug 2017 22:57:00 +0200 +Subject: [PATCH] Patch niminst's (de)install to be usable for distributions + +* Add support for DESTDIR variable (staged installs). +* Change paths to be FHS/Alpine compliant. +* Use "install" command instead of mkdir/cp/chmod. + ++++ b/tools/niminst/install.tmpl +--- a/tools/niminst/install.tmpl +@@ -5,6 +5,8 @@ + + set -e + ++: ${DESTDIR:=} ++ + if [ $# -eq 1 ] ; then + # if c.cat[fcUnixBin].len > 0: + if test -f ?{c.cat[fcUnixBin][0].toUnix} +@@ -26,43 +28,47 @@ + echo " <some other dir> (treated similar to '/opt')" + echo "To deinstall, use the command:" + echo "sh deinstall.sh DIR" ++ echo "" ++ echo "You may also use environment variable DESTDIR for staged installs" ++ echo "(DESTDIR is prepended to each install target file). Note that this" ++ echo "is added by Alpine Linux, it's not supported by standard niminst." + exit 1 + ;; + "/usr/bin") +- bindir=/usr/bin +- configdir=/etc +- libdir=/usr/lib/?proj +- docdir=/usr/share/?proj/doc +- datadir=/usr/share/?proj/data +- nimbleDir="/opt/nimble/pkgs/?c.nimblePkgName-?c.version" ++ bindir="$DESTDIR/usr/bin" ++ configdir="$DESTDIR/etc" ++ libdir="$DESTDIR/usr/lib/?proj" ++ docdir="$DESTDIR/usr/share/doc/?proj" ++ datadir="$DESTDIR/usr/share/?proj/data" ++ nimbleDir="$DESTDIR/usr/share/nimble/pkgs/?c.nimblePkgName-?c.version" + ;; + "/usr/local/bin") +- bindir=/usr/local/bin +- configdir=/etc +- libdir=/usr/local/lib/?proj +- docdir=/usr/local/share/?proj/doc +- datadir=/usr/local/share/?proj/data +- nimbleDir="/opt/nimble/pkgs/?c.nimblePkgName-?c.version" ++ bindir="$DESTDIR/usr/local/bin" ++ configdir="$DESTDIR/etc" ++ libdir="$DESTDIR/usr/local/lib/?proj" ++ docdir="$DESTDIR/usr/local/share/doc/?proj" ++ datadir="$DESTDIR/usr/local/share/?proj/data" ++ nimbleDir="$DESTDIR/usr/local/share/nimble/pkgs/?c.nimblePkgName-?c.version" + ;; + "/opt") +- bindir="/opt/?proj/bin" +- configdir="/opt/?proj/config" +- libdir="/opt/?proj/lib" +- docdir="/opt/?proj/doc" +- datadir="/opt/?proj/data" +- nimbleDir="/opt/nimble/pkgs/?c.nimblePkgName-?c.version" +- mkdir -p /opt/?proj ++ bindir="$DESTDIR/opt/?proj/bin" ++ configdir="$DESTDIR/opt/?proj/config" ++ libdir="$DESTDIR/opt/?proj/lib" ++ docdir="$DESTDIR/opt/?proj/doc" ++ datadir="$DESTDIR/opt/?proj/data" ++ nimbleDir="$DESTDIR/opt/nimble/pkgs/?c.nimblePkgName-?c.version" ++ mkdir -p $DESTDIR/opt/?proj + mkdir -p $bindir + mkdir -p $configdir + ;; + *) +- bindir="$1/?proj/bin" +- configdir="$1/?proj/config" +- libdir="$1/?proj/lib" +- docdir="$1/?proj/doc" +- datadir="$1/?proj/data" +- nimbleDir="$1/?proj" +- mkdir -p $1/?proj ++ bindir="$DESTDIR$1/?proj/bin" ++ configdir="$DESTDIR$1/?proj/config" ++ libdir="$DESTDIR$1/?proj/lib" ++ docdir="$DESTDIR$1/?proj/doc" ++ datadir="$DESTDIR$1/?proj/data" ++ nimbleDir="$DESTDIR$1/?proj" ++ mkdir -p $DESTDIR$1/?proj + mkdir -p $bindir + mkdir -p $configdir + ;; +@@ -89,35 +95,28 @@ + #end for + + #for f in items(c.cat[fcUnixBin]): +- cp ?f.toUnix $bindir/?f.skipRoot.toUnix +- chmod 755 $bindir/?f.skipRoot.toUnix ++ install -D -m 755 ?f.toUnix $bindir/?f.skipRoot.toUnix + #end for + #for f in items(c.cat[fcConfig]): +- cp ?f.toUnix $configdir/?f.skipRoot.toUnix +- chmod 644 $configdir/?f.skipRoot.toUnix ++ install -D -m 755 ?f.toUnix $configdir/?f.skipRoot.toUnix + #end for + #for f in items(c.cat[fcData]): + if [ -f ?f.toUnix ]; then +- cp ?f.toUnix $datadir/?f.skipRoot.toUnix +- chmod 644 $datadir/?f.skipRoot.toUnix ++ install -D -m 644 ?f.toUnix $datadir/?f.skipRoot.toUnix + fi + #end for + #for f in items(c.cat[fcDoc]): + if [ -f ?f.toUnix ]; then +- cp ?f.toUnix $docdir/?f.skipRoot.toUnix +- chmod 644 $docdir/?f.skipRoot.toUnix ++ install -D -m 644 ?f.toUnix $docdir/?f.skipRoot.toUnix + fi + #end for + #for f in items(c.cat[fcLib]): +- cp ?f.toUnix $libdir/?f.skipRoot.toUnix +- chmod 644 $libdir/?f.skipRoot.toUnix ++ install -D -m 644 ?f.toUnix $libdir/?f.skipRoot.toUnix + #end for + #for f in items(c.cat[fcNimble]): +- cp ?f.toUnix $nimbleDir/?f.toUnix +- chmod 644 $nimbleDir/?f.toUnix ++ install -D -m 644 ?f.toUnix $nimbleDir/?f.toUnix + #end for +-cp ?{c.nimblePkgName}.nimble $nimbleDir/?{c.nimblePkgName}.nimble +-chmod 644 $nimbleDir/?{c.nimblePkgName}.nimble ++install -D -m 644 ?{c.nimblePkgName}.nimble $nimbleDir/?{c.nimblePkgName}.nimble + + echo "installation successful" + else +@@ -130,5 +129,9 @@ + echo " <some other dir> (treated similar to '/opt')" + echo "To deinstall, use the command:" + echo "sh deinstall.sh DIR" ++ echo "" ++ echo "You may also use environment variable DESTDIR for staged installs" ++ echo "(DESTDIR is prepended to each install target file). Note that this" ++ echo "is added by Alpine Linux, it's not supported by standard niminst." + exit 1 + fi +--- a/tools/niminst/deinstall.tmpl ++++ b/tools/niminst/deinstall.tmpl +@@ -19,17 +19,17 @@ + bindir=/usr/bin + configdir=/etc + libdir=/usr/lib/?proj +- docdir=/usr/share/?proj/doc ++ docdir=/usr/share/doc/?proj + datadir=/usr/share/?proj/data +- nimbleDir="/opt/nimble/pkgs/?c.nimblePkgName-?c.version" ++ nimbleDir="/usr/share/nimble/pkgs/?c.nimblePkgName-?c.version" + ;; + "/usr/local/bin") + bindir=/usr/local/bin + configdir=/etc + libdir=/usr/local/lib/?proj +- docdir=/usr/local/share/?proj/doc ++ docdir=/usr/local/share/doc/?proj + datadir=/usr/local/share/?proj/data +- nimbleDir="/opt/nimble/pkgs/?c.nimblePkgName-?c.version" ++ nimbleDir="/usr/share/nimble/pkgs/?c.nimblePkgName-?c.version" + ;; + "/opt") + bindir="/opt/?proj/bin" |