aboutsummaryrefslogtreecommitdiffstats
path: root/testing/nim/niminst-fix-paths.patch
diff options
context:
space:
mode:
authorJakub Jirutka <jakub@jirutka.cz>2017-05-24 00:03:30 +0200
committerJakub Jirutka <jakub@jirutka.cz>2017-06-07 23:36:21 +0200
commitafe7923c88c43e566e4529ef91f464b0eaedcd8c (patch)
treea76ddb1d356164d6e8c30ba0395c1f3e0aaf0ccb /testing/nim/niminst-fix-paths.patch
parent51845850201a6e06d5d7154807ed9969fd8b6c9a (diff)
downloadaports-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.patch170
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"