diff --git a/astronaut/astronaut b/astronaut/astronaut
index 1147f60..d138e25 100755
--- a/astronaut/astronaut
+++ b/astronaut/astronaut
@@ -12,27 +12,22 @@ dir_install='/tmp/astronaut/install' # Directory where the package will be inst
# which is the filename of the satellite, without the .sat suffix.
# Runtime directories
-dir_sysroot='' # The root directory of the system
-dir_prefix='usr' # Prefix directory (for /bin, /lib, /include, /share and such)
+dir_prefix='usr' # Prefix directory
# Finer-grained control of runtime dirs
# This can't be set from the command line, but might need to be adapted for your distro.
-# Dirs always outside of $dir_prefix
-dir_sysconfdir='etc'
-
-# Dirs outside and inside of $dir_prefix
dir_bindir='bin'
dir_sbindir='sbin'
-dir_libdir='lib'
-
-# Dirs only inside of $dir_prefix
dir_libexecdir='libexec'
+dir_sysconfdir='etc'
+dir_libdir='lib'
+dir_includedir='include'
dir_datadir='share'
-dir_mandir='share/man'
-dir_docdir='share/doc'
dir_infodir='share/info'
dir_localedir='share/locale'
+dir_mandir='share/man'
+dir_docdir='share/doc'
# Default commands
cmd_download='curl -# -L -o {dst} {src}' # Command to execute to download files
@@ -61,34 +56,42 @@ package_options() { :; } # Per-package options function.
# Options not in the configuration
_download_only=false
_vcs_only=false
-vcs_compile=false
+_nuke_dir_install=false
unset _user_options # Options specified in the command line get the highest priority
unset _sat_options # Options defined by the satellite
-#_astronaut_nuke_dir_install (This can be set from wrappers)
+
+# Check if running from a wrapper
+if [ "$(basename "$0")" != "astronaut" ]; then
+ type _astronaut_wrapper_pre > /dev/null || _astronaut_wrapper_pre() { :; }
+ type _astronaut_wrapper_post > /dev/null || _astronaut_wrapper_post() { :; }
+else
+ _astronaut_wrapper_pre() { :; }
+ _astronaut_wrapper_post() { :; }
+fi
# Should be specified in the satellite
unset name
unset version
unset update_url
+vcs_compile=false
# Some printing functions
_show_help() {
echo "This astronaut will help you build some satellites.
Just describe what he's got to do in a satellite file.
-Usage: $0 [-bsirp
] [-hIdv] [-o ]
+Usage: $0 [-bsip ] [-hIdv] [-o ] ...
-h/? Show this message
-b Set build directory [WARNING: Will be deleted before build]
-s Set source directory
-i Set install directory
--r Set root directory
-p Set prefix directory
-I Nuke install directory before build [WARNING: You will not be prompted]
-d Only download package files
-v Only build vcs package if any updates have been made to it
-o Set package options (comma-separated)
-Tips:$([ "$(basename "$0")" = "astronaut" ] && printf "\n- Use \`head -n 55 $0 > astronaut.conf.example\` to generate a default configuration file.")
+Tips:$([ "$(basename "$0")" = "astronaut" ] && printf "\n- Use \`head -n 50 $0 > astronaut.conf.example\` to generate a default configuration file.")
- Keep in mind that when specifying options on the command line in a string, the first always takes priority.
For example, in \"opt,someotheropt,!opt\", opt is enabled, due to it being the first occurrence.
- If you have set \$dir_satellites in the config, you can omit the .sat suffix.
@@ -105,7 +108,7 @@ _exiterr() {
}
# Gather info
-while getopts "h?s:b:i:r:p:IcCdvo:" opt; do
+while getopts "h?s:b:i:p:IcCdvo:" opt; do
case "$opt" in
h|\?)
_show_help
@@ -120,14 +123,11 @@ while getopts "h?s:b:i:r:p:IcCdvo:" opt; do
i)
dir_install="$OPTARG"
;;
- r)
- dir_sysroot="$OPTARG"
- ;;
p)
dir_prefix="$OPTARG"
;;
I)
- _astronaut_nuke_dir_install=true
+ _nuke_dir_install=true
;;
d)
_download_only=true
@@ -291,7 +291,7 @@ header_end() { :; }
if [ "$_vcs_only" = true ]; then
header_end() {
if [ ! "$vcs_compile" = true ]; then
- exit
+ exit 1
fi
}
fi
@@ -305,51 +305,62 @@ if [ "$_download_only" = true ]; then
header_end() { exit; }
fi
-_satellite="$1"
-_satname="$(basename "$_satellite" .sat)"
-
-# Try to find the satellite file if it can't be found.
-if [ ! -f "$_satellite" ]; then
- if [ -d "$dir_satellites" ]; then
- file="$(find "$dir_satellites" -type f \( -name "$_satname.sat" -o -name "$_satname" \) -print -quit)"
- if [ -f "$file" ]; then
- _satellite="$file"
- _satname="$(basename "$_satellite" .sat)"
- fi
- fi
-
- # If it still can't be found, exit.
- if [ ! -f "$_satellite" ]; then
- _exiterr "Can't find satellite"
- fi
-fi
-
-_satellite="$(realpath "$_satellite")"
-
-# Build the definitive options list (not including the options defined in the satellite)
-options="$_user_options$(package_options "$_satname"),$options"
-
# Create the directories
mkdir -p "$dir_source"
dir_source="$(realpath "$dir_source")"
if [ "$_download_only" = false ]; then
- # Fix up the install path
- dir_install="$(echo "$dir_install" | sed -e "s/{pkg}/$(safe_sed "$satname")/g")"
-
- # This variable can be set by a wrapper script in need to nuke the install dir.
- if [ "$_astronaut_nuke_dir_install" = true -a ! -z "$dir_install" ]; then
- rm -rf "$dir_install"
- fi
-
- rm -rf "$dir_build"
mkdir -p "$dir_build"
mkdir -p "$dir_install"
dir_build="$(realpath "$dir_build")"
dir_install="$(realpath "$dir_install")"
-
- cd "$dir_build"
fi
-# Create the satellite
-. "$_satellite"
+for _satellite in "$@"; do
+ _satname="$(basename "$_satellite" .sat)"
+
+ # Try to find the satellite file if it can't be found.
+ if [ ! -f "$_satellite" ]; then
+ if [ -d "$dir_satellites" ]; then
+ file="$(find "$dir_satellites" -type f \( -name "$_satname.sat" -o -name "$_satname" \) -print -quit)"
+ if [ -f "$file" ]; then
+ _satellite="$file"
+ _satname="$(basename "$_satellite" .sat)"
+ fi
+ fi
+
+ # If it still can't be found, exit.
+ if [ ! -f "$_satellite" ]; then
+ _exiterr "Can't find satellite: $_satellite"
+ fi
+ fi
+
+ _satellite="$(realpath "$_satellite")"
+
+ (
+ options="$_user_options$(package_options "$_satname"),$options"
+
+ if [ "$_download_only" = true ]; then
+ # Just download it
+ . "$_satellite"
+ else
+ _astronaut_wrapper_pre
+
+ # Remove install dir if appropriate
+ if [ "$_nuke_dir_install" = true -a ! -z "$dir_install" ]; then
+ rm -rf "$dir_install"
+ mkdir -p "$dir_install"
+ fi
+
+ rm -rf "$dir_build"
+ mkdir -p "$dir_build"
+
+ # Create the satellite
+ options="$_user_options$(package_options "$_satname"),$options"
+ cd "$dir_build"
+ . "$_satellite"
+
+ _astronaut_wrapper_post
+ fi
+ )
+done
diff --git a/astronaut/astronautpkg b/astronaut/astronautpkg
index f9f92eb..fcd4924 100755
--- a/astronaut/astronautpkg
+++ b/astronaut/astronautpkg
@@ -1,41 +1,48 @@
#!/bin/sh -e
# A hacky script to generate .t?z files using satellites.
-# It's a fairly simple wrapper to astronaut, that generates a pkgtools package at the end.
+# It's a fairly simple wrapper to astronaut, that generates pkgtools packages.
# This may also serve as an example on how you can wrap astronaut to package in any format.
-_fakeroot="$(command -v fakeroot || true)"
-[ "$_fakeroot" ] && _fakeroot='fakeroot'
+# Check whether we'll use fakeroot or not
+_astronaut_wrapper_fakeroot="$(command -v fakeroot || true)"
+[ "$_astronaut_wrapper_fakeroot" ] && _astronaut_wrapper_fakeroot='fakeroot'
-if [ ! "$_fakeroot" -a "$(id -u)" != "0" ]; then
+if [ ! "$_astronaut_wrapper_fakeroot" -a "$(id -u)" != "0" ]; then
echo 'This script has to be run as root, or you need fakeroot installed.' 1>&2
exit 1
fi
-_topdir=$PWD
+# Find astronaut
_astronaut="$(dirname "$0")/astronaut"
[ ! -f "$_astronaut" ] && _astronaut='astronaut'
-_astronaut_nuke_dir_install=true
+# Configuration
+dir_wrapper_pkgtools="$PWD" # Where the packages should be stored
-. "$_astronaut"
+# Wrapper functions
+_astronaut_wrapper_pre() {
+ # Make sure to remove the contents of the install directory before building
+ _nuke_dir_install=true
+}
-# Gzip man and info pages
-if [ -d "$dir_install/$dir_prefix/$dir_mandir" ]; then
- find "$dir_install/$dir_prefix/$dir_mandir" -type f -exec gzip -9 {} \;
- for i in $(find "$dir_install/$dir_prefix/$dir_mandir" -type l); do ln -s "$(readlink "$i").gz" "$i.gz"; rm "$i"; done
-fi
-if [ -d "$dir_install/$dir_prefix/$dir_infodir" ]; then
- rm -f "$dir_install/$dir_prefix/$dir_infodir/dir"
- gzip -9 -r "$dir_install/$dir_prefix/$dir_infodir"
-fi
+_astronaut_wrapper_post() {
+ # Gzip man and info pages
+ if [ -d "$dir_install/$dir_prefix/$dir_mandir" ]; then
+ find "$dir_install/$dir_prefix/$dir_mandir" -type f -exec gzip -9 {} \;
+ for i in $(find "$dir_install/$dir_prefix/$dir_mandir" -type l); do ln -s "$(readlink "$i").gz" "$i.gz"; rm "$i"; done
+ fi
+ if [ -d "$dir_install/$dir_prefix/$dir_infodir" ]; then
+ rm -f "$dir_install/$dir_prefix/$dir_infodir/dir"
+ gzip -9 -r "$dir_install/$dir_prefix/$dir_infodir"
+ fi
-# Strip binaries
-find "$dir_install" | xargs file | grep -e "executable" -e "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null | true
+ # Strip binaries
+ find "$dir_install" | xargs file | grep -e "executable" -e "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null | true
-# Generate slack-desc for proper compliance, even if it's completely redundant
-#mkdir -p "$dir_install/install"
-#cat > "$dir_install/install/slack-desc" << EOF
+ # Generate slack-desc for proper compliance, even if it's completely redundant
+ #mkdir -p "$dir_install/install"
+ #cat > "$dir_install/install/slack-desc" << EOF
## HOW TO EDIT THIS FILE:
## The "handy ruler" below makes it easier to edit a package description. Line
## up the first '|' above the ':' following the base package name, and the '|'
@@ -57,8 +64,33 @@ find "$dir_install" | xargs file | grep -e "executable" -e "shared object" | gre
#$_satname:
#EOF
-# dir_wrapper_pkgtools should be set from a configuration file (e.g. ~/.astronaut.conf), and points to wherever you want your packages to be placed.
-[ "$dir_wrapper_pkgtools" ] && mkdir -p "$dir_wrapper_pkgtools" || dir_wrapper_pkgtools="$_topdir"
-cd "$dir_install"
+ # Move configuration files to .new and install them for proper compliance.
+ if [ -d "$dir_install/etc" ]; then
+ mkdir -p "$dir_install/install"
+ cat > "$dir_install/install/doinst.sh" << EOF
+config() {
+ NEW="\$1"
+ OLD="\$(dirname \$NEW)/\$(basename \$NEW .new)"
+ # If there's no config file by that name, mv it over:
+ if [ ! -r \$OLD ]; then
+ mv \$NEW \$OLD
+ elif [ "\$(cat \$OLD | md5sum)" = "\$(cat \$NEW | md5sum)" ]; then # toss the redundant copy
+ rm \$NEW
+ fi
+ # Otherwise, we leave the .new copy for the admin to consider...
+}
+EOF
-PATH="$PATH:/sbin" $_fakeroot makepkg -l y -c n "$dir_wrapper_pkgtools/$_satname-$(echo "$version" | sed -e 's/-/_/g')-$(uname -m)-astro.txz"
+ find "$dir_install/etc" -type f -printf '%P\n' | while IFS= read file; do
+ mv "$dir_install/etc/$file" "$dir_install/etc/$file.new"
+ echo "config 'etc/$file.new'" >> "$dir_install/install/doinst.sh"
+ done
+ fi
+
+ # Create the package
+ cd "$dir_install"
+ mkdir -p "$dir_wrapper_pkgtools"
+ PATH="$PATH:/sbin" $_astronaut_wrapper_fakeroot makepkg -l y -c n "$dir_wrapper_pkgtools/$_satname-$(echo "$version" | sed -e 's/-/_/g')-$(uname -m)-astro.txz"
+}
+
+. "$_astronaut"
diff --git a/astronaut/pacman-astronaut b/astronaut/pacman-astronaut
index a920ef4..6b7f145 100755
--- a/astronaut/pacman-astronaut
+++ b/astronaut/pacman-astronaut
@@ -1,23 +1,27 @@
#!/bin/sh -e
# A hacky script to generate .pkg.tar.?z files using satellites.
-# It's a fairly simple wrapper to astronaut, that generates a pacman package at the end.
+# It's a fairly simple wrapper to astronaut, that generates pacman packages.
# This may also serve as an example on how you can wrap astronaut to package in any format.
# Sure, no dependency resolution, and the packages won't make it in any official repositories,
# but it isn't meant for that anyway.
-_topdir=$PWD
+# Find astronaut
_astronaut="$(dirname "$0")/astronaut"
[ ! -f "$_astronaut" ] && _astronaut="astronaut"
-_astronaut_nuke_dir_install=true
+# Configuration
+dir_wrapper_pacman="$PWD" # Where the packages should be stored
-. "$_astronaut"
-
-# dir_wrapper_pacman should be set from a configuration file (e.g. ~/.astronaut.conf), and points to wherever you want your packages to be placed.
-[ "$dir_wrapper_pacman" ] && mkdir -p "$dir_wrapper_pacman" && cd "$dir_wrapper_pacman" || cd "$_topdir"
+# Wrapper functions
+_astronaut_wrapper_pre() {
+ # Make sure to remove the contents of the install directory before building
+ _nuke_dir_install=true
+}
-cat << EOF > "$dir_install/.PKGINFO"
+_astronaut_wrapper_post() {
+ # Create the package info file
+ cat > "$dir_install/.PKGINFO" << EOF
pkgname = $_satname
pkgver = $version-astro
pkgdesc = Generated with pacman-astronaut
@@ -27,7 +31,14 @@ size = $(du -sb --apparent-size "$dir_install" | awk '{print $1}')
arch = $(uname -m)
EOF
-bsdtar --strip-components 1 -C "$dir_install" -czf .MTREE --format=mtree --options='!all,use-set,type,uid,gid,mode,time,size,md5,sha256,link' .
-mv .MTREE "$dir_install/.MTREE" # bsdtar doesn't like the file being in the same directory.
-fakeroot -- bsdtar --strip-components 1 -C "$dir_install" -cf - . > "$_satname-$version-astro-$(uname -m).pkg.tar"
-repo-add astronaut.db.tar.gz "$_satname-$version-astro-$(uname -m).pkg.tar"
+ mkdir -p "$dir_wrapper_pacman"
+ cd "$dir_wrapper_pacman"
+
+ # Create the package
+ bsdtar --strip-components 1 -C "$dir_install" -czf .MTREE --format=mtree --options='!all,use-set,type,uid,gid,mode,time,size,md5,sha256,link' .
+ mv .MTREE "$dir_install/.MTREE" # bsdtar doesn't like the file being in the same directory.
+ fakeroot -- bsdtar --strip-components 1 -C "$dir_install" -cf - . > "$_satname-$version-astro-$(uname -m).pkg.tar"
+ repo-add astronaut.db.tar.gz "$_satname-$version-astro-$(uname -m).pkg.tar"
+}
+
+. "$_astronaut"
diff --git a/astronaut/xbps-astronaut b/astronaut/xbps-astronaut
index d43d902..e9dcd02 100755
--- a/astronaut/xbps-astronaut
+++ b/astronaut/xbps-astronaut
@@ -1,20 +1,31 @@
#!/bin/sh -e
# A hacky script to generate .xbps files using satellites.
-# It's a fairly simple wrapper to astronaut, that generates a xbps package at the end.
+# It's a fairly simple wrapper to astronaut, that generates xbps packages.
# This may also serve as an example on how you can wrap astronaut to package in any format.
# Sure, no dependency resolution, and the packages won't make it in any official repositories,
# but it isn't meant for that anyway.
-_topdir=$PWD
+# Find astronaut
_astronaut="$(dirname "$0")/astronaut"
[ ! -f "$_astronaut" ] && _astronaut="astronaut"
-_astronaut_nuke_dir_install=true
+# Configuration
+dir_wrapper_xbps="$PWD"
-. "$_astronaut"
+# Wrapper functions
+_astronaut_wrapper_pre() {
+ # Make sure to remove the contents of the install directory before building
+ _nuke_dir_install=true
+}
+
+_astronaut_wrapper_post() {
+ mkdir -p "$dir_wrapper_xbps"
+ cd "$dir_wrapper_xbps"
-# _dir_xbps should be set from a configuration file (e.g. ~/.astronaut.conf), and points to wherever you want your packages to be placed.
-[ "$dir_wrapper_xbps" ] && mkdir -p "$dir_wrapper_xbps" && cd "$dir_wrapper_xbps" || cd "$_topdir"
-xbps-create --compression none -A "$(uname -m)" -n "$_satname-${version}_astro" -s "Generated with xbps-astronaut" -H "$update_url" "$dir_install"
-xbps-rindex -f -a "$_satname-${version}_astro.$(uname -m).xbps"
+ # Create the package
+ xbps-create --compression none -A "$(uname -m)" -n "$_satname-${version}_astro" -s "Generated with xbps-astronaut" -H "$update_url" "$dir_install"
+ xbps-rindex -f -a "$_satname-${version}_astro.$(uname -m).xbps"
+}
+
+. "$_astronaut"
diff --git a/satellites/compton-git.sat b/satellites/compton-git.sat
index 8af6ce9..6aa4fa7 100644
--- a/satellites/compton-git.sat
+++ b/satellites/compton-git.sat
@@ -12,6 +12,6 @@ make install \
BINDIR="/$dir_prefix/$dir_bindir" \
MANDIR="/$dir_prefix/$dir_mandir" \
APPDIR="/$dir_prefix/$dir_datadir/applications" \
- INODIR="/$dir_prefix/$dir_datadir/icons/hicolor"
+ ICODIR="/$dir_prefix/$dir_datadir/icons/hicolor"
# vim:set tabstop=4 shiftwidth=4 syntax=sh expandtab:
diff --git a/satellites/create_ap.sat b/satellites/create_ap.sat
index 5b4e0d1..5bb443b 100644
--- a/satellites/create_ap.sat
+++ b/satellites/create_ap.sat
@@ -9,7 +9,7 @@ header_end
cd "$name-$version"
install -Dm755 -t "$dir_install/$dir_prefix/$dir_bindir" "$name"
-install -Dm644 -t "$dir_install/$dir_sysconfdir" "$name.conf"
+install -Dm644 -t "$dir_install/$dir_prefix/$dir_sysconfdir" "$name.conf"
install -Dm644 -t "$dir_install/$dir_prefix/$dir_datadir/bash-completion/$name" bash_completion
install -Dm644 -t "$dir_install/$dir_prefix/$dir_docdir/$name" README.md
diff --git a/satellites/ffmpeg.sat b/satellites/ffmpeg.sat
index 8a9e72b..05ca9ad 100644
--- a/satellites/ffmpeg.sat
+++ b/satellites/ffmpeg.sat
@@ -16,10 +16,11 @@ cd "$name-$version"
--enable-libvorbis \
--prefix="/$dir_prefix" \
--bindir="/$dir_prefix/$dir_bindir" \
- --libdir="/$dir_prefix/$dir_libdir" \
--datadir="/$dir_prefix/$dir_datadir/$name" \
- --mandir="/$dir_prefix/$dir_mandir" \
- --docdir="/$dir_prefix/$dir_docdir/$name"
+ --docdir="/$dir_prefix/$dir_docdir/$name" \
+ --libdir="/$dir_prefix/$dir_libdir" \
+ --incdir="/$dir_prefix/$dir_includedir" \
+ --mandir="/$dir_prefix/$dir_mandir"
make
make DESTDIR="$dir_install" install
diff --git a/satellites/functions/compile/cmake.sh b/satellites/functions/compile/cmake.sh
index 5a2b4a6..dd60387 100644
--- a/satellites/functions/compile/cmake.sh
+++ b/satellites/functions/compile/cmake.sh
@@ -16,16 +16,17 @@ compile_cmake() {
cmake "$olddir" \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX="/$dir_prefix" \
- -DCMAKE_INSTALL_SYSCONFDIR="$dir_sysconfdir" \
- -DCMAKE_INSTALL_BINDIR="$dir_bindir" \
- -DCMAKE_INSTALL_SBINDIR="$dir_sbindir" \
- -DCMAKE_INSTALL_LIBDIR="$dir_libdir" \
- -DCMAKE_INSTALL_LIBEXECDIR="$dir_libexecdir" \
- -DCMAKE_INSTALL_DATADIR="$dir_datadir" \
- -DCMAKE_INSTALL_MANDIR="$dir_mandir" \
- -DCMAKE_INSTALL_DOCDIR="$dir_docdir/$name" \
- -DCMAKE_INSTALL_INFODIR="$dir_infodir" \
- -DCMAKE_INSTALL_LOCALEDIR="$dir_localedir" \
+ -DCMAKE_INSTALL_FULL_SYSCONFDIR="/$dir_prefix/$dir_sysconfdir" \
+ -DCMAKE_INSTALL_FULL_BINDIR="/$dir_prefix/$dir_bindir" \
+ -DCMAKE_INSTALL_FULL_SBINDIR="/$dir_prefix/$dir_sbindir" \
+ -DCMAKE_INSTALL_FULL_LIBEXECDIR="/$dir_prefix/$dir_libexecdir" \
+ -DCMAKE_INSTALL_FULL_LIBDIR="/$dir_prefix/$dir_libdir" \
+ -DCMAKE_INSTALL_FULL_INCLUDEDIR="/$dir_prefix/$dir_includedir" \
+ -DCMAKE_INSTALL_FULL_DATADIR="/$dir_prefix/$dir_datadir" \
+ -DCMAKE_INSTALL_FULL_MANDIR="/$dir_prefix/$dir_mandir" \
+ -DCMAKE_INSTALL_FULL_DOCDIR="/$dir_prefix/$dir_docdir/$name" \
+ -DCMAKE_INSTALL_FULL_INFODIR="/$dir_prefix/$dir_infodir" \
+ -DCMAKE_INSTALL_FULL_LOCALEDIR="/$dir_prefix/$dir_localedir" \
"$@"
make
[ "$noinstall" = false ] && make DESTDIR="$dir_install" install
diff --git a/satellites/functions/compile/configure.sh b/satellites/functions/compile/configure.sh
index 3be477c..627800f 100644
--- a/satellites/functions/compile/configure.sh
+++ b/satellites/functions/compile/configure.sh
@@ -31,16 +31,17 @@ compile_configure() {
"$olddir/configure" \
--prefix="/$dir_prefix" \
- --sysconfdir="/$dir_sysconfdir" \
--bindir="/$dir_prefix/$dir_bindir" \
--sbindir="/$dir_prefix/$dir_sbindir" \
- --libdir="/$dir_prefix/$dir_libdir" \
--libexecdir="/$dir_prefix/$dir_libexecdir" \
+ --sysconfdir="/$dir_prefix/$dir_sysconfdir" \
+ --libdir="/$dir_prefix/$dir_libdir" \
+ --includedir="/$dir_prefix/$dir_includedir" \
--datadir="/$dir_prefix/$dir_datadir" \
- --mandir="/$dir_prefix/$dir_mandir" \
- --docdir="/$dir_prefix/$dir_docdir/$name" \
--infodir="/$dir_prefix/$dir_infodir" \
--localedir="/$dir_prefix/$dir_localedir" \
+ --mandir="/$dir_prefix/$dir_mandir" \
+ --docdir="/$dir_prefix/$dir_docdir/$name" \
$build $cross "$@"
[ "$nomake" = false ] && make $makeflags
diff --git a/satellites/i3status.sat b/satellites/i3status.sat
index 05246a6..d6fa404 100644
--- a/satellites/i3status.sat
+++ b/satellites/i3status.sat
@@ -13,14 +13,14 @@ cd "$name-$version"
patch -p0 -i "../$name-$version-optional-pulseaudio.patch"
-# Fix install directories
+# Fix paths
sed -i -e "/install -m/s/bin/$(safe_sed "$dir_bindir")/" \
-e "/install -m/s/share\/man/$(safe_sed "$dir_mandir")/" Makefile
make WITH_PULSEAUDIO=$(option pulseaudio && echo yes || echo no)
make install \
PREFIX="/$dir_prefix" \
- SYSCONFDIR="/$dir_sysconfdir" \
+ SYSCONFDIR="/$dir_prefix/$dir_sysconfdir" \
DESTDIR="$dir_install"
# vim:set tabstop=4 shiftwidth=4 syntax=sh expandtab:
diff --git a/satellites/lua.sat b/satellites/lua.sat
index f5f249a..3637154 100644
--- a/satellites/lua.sat
+++ b/satellites/lua.sat
@@ -9,7 +9,7 @@ header_end
cd "$name-$version"
-# Fix paths in luaconf.h
+# Fix paths
sed -i -e "/LUA_ROOT/s/usr\/local/$(safe_sed "$dir_prefix")/" \
-e "/LUA_LDIR/s/share/$(safe_sed "$dir_datadir")/" \
-e "/LUA_CDIR/s/lib/$(safe_sed "$dir_libdir")/" src/luaconf.h
@@ -23,6 +23,7 @@ make install \
INSTALL_TOP="$PWD/install" \
INSTALL_BIN="\$(INSTALL_TOP)/$dir_bindir" \
INSTALL_LIB="\$(INSTALL_TOP)/$dir_libdir" \
+ INSTALL_INC="\$(INSTALL_TOP)/$dir_includedir" \
INSTALL_MAN="\$(INSTALL_TOP)/$dir_mandir/man1" \
INSTALL_LMOD="\$(INSTALL_TOP)/$dir_datadir/$majver" \
INSTALL_CMOD="\$(INSTALL_TOP)/$dir_libdir/$majver"
diff --git a/satellites/luajit.sat b/satellites/luajit.sat
index d71c553..d89344f 100644
--- a/satellites/luajit.sat
+++ b/satellites/luajit.sat
@@ -16,6 +16,7 @@ make install \
MULTILIB="$dir_libdir" \
INSTALL_BIN="\$(DPREFIX)/$dir_bindir" \
INSTALL_SHARE="\$(DPREFIX)/$dir_datadir" \
- INSTALL_MAN="\$(DPREFIX)/$dir_mandir"
+ INSTALL_MAN="\$(DPREFIX)/$dir_mandir" \
+ INSTALL_INC="\$(DPREFIX)/$dir_includedir/luajit-\$(MAJVER).\$(MINVER)"
# vim:set tabstop=4 shiftwidth=4 syntax=sh expandtab:
diff --git a/satellites/mpv.sat b/satellites/mpv.sat
index 093a038..9c65125 100644
--- a/satellites/mpv.sat
+++ b/satellites/mpv.sat
@@ -10,10 +10,11 @@ header_end
cd "$name-$version"
compile_waf -- \
- --confdir="/$dir_sysconfdir" \
+ --confdir="/$dir_prefix/$dir_sysconfdir" \
+ --incdir="/$dir_prefix/$dir_includedir" \
+ --datadir="/$dir_prefix/$dir_datadir" \
--mandir="/$dir_prefix/$dir_mandir" \
--docdir="/$dir_prefix/$dir_docdir/$name" \
- --datadir="/$dir_prefix/$dir_datadir" \
--enable-zsh-comp
# vim:set tabstop=4 shiftwidth=4 syntax=sh expandtab:
diff --git a/satellites/python3.sat b/satellites/python3.sat
index a3d9138..1cb0293 100644
--- a/satellites/python3.sat
+++ b/satellites/python3.sat
@@ -14,9 +14,11 @@ cd "$name-$version"
# Fix paths
sed -i -e "/os.path.join(prefix/s/lib/$(safe_sed "$dir_libdir")/" Lib/site.py
-sed -i -e "s/\/lib\/python/\/$(safe_sed "$dir_libdir")\/python/" \
- -e "s/\/bin/\/$(safe_sed "$dir_bindir")/" Lib/sysconfig.py Lib/distutils/command/install.py
-sed -i -e "/libpython =/!b;n;s/lib/$(safe_sed "$dir_libdir")/" Lib/distutils/sysconfig.py
+sed -i -e "s/\/lib\/python/$(safe_sed "/$dir_libdir/python")/" \
+ -e "s/\/include\/python/$(safe_sed "/$dir_includedir/python")/" \
+ -e "s/\/bin/$(safe_sed "/$dir_bindir")/" Lib/sysconfig.py Lib/distutils/command/install.py
+sed -i -e "/libpython =/!b;n;s/lib/$(safe_sed "$dir_libdir")/" \
+ -e "/os.path.join/s/include/$(safe_sed "$dir_includedir")/" Lib/distutils/sysconfig.py
sed -i -e "/lib_python =/s/lib\//$(safe_sed "$dir_libdir")\//" Modules/getpath.c
sed -i -e "/SCRIPTDIR=/s/lib/$(safe_sed "$dir_libdir")/" Makefile.pre.in
sed -i -e "/LIBPL=/s/lib/$(safe_sed "$dir_libdir")/" configure
diff --git a/satellites/qt5-base.sat b/satellites/qt5-base.sat
index 642febe..45cf193 100644
--- a/satellites/qt5-base.sat
+++ b/satellites/qt5-base.sat
@@ -28,11 +28,11 @@ for opt in $optional_libraries; do
done
# NOTE: Only double-conversion from Qt itself is used, as there's no recent stable version available, due to lack of maintenance (last I can find is 1.1.5 from 2014, but there's scripts to build 2.0.1, for example in AUR, yet there's no proper place to get the sources for that).
-./configure -v -confirm-license -opensource \
+./configure -confirm-license -opensource \
-prefix "/$dir_prefix" \
-libdir "/$dir_prefix/$dir_libdir" \
- -headerdir "/$dir_prefix/include/$name" \
- -sysconfdir "/$dir_sysconfdir/xdg" \
+ -headerdir "/$dir_prefix/$dir_includedir/$name" \
+ -sysconfdir "/$dir_prefix/$dir_sysconfdir/xdg" \
-datadir "/$dir_prefix/$dir_datadir/$name" \
-bindir "/$dir_prefix/$dir_libdir/$name/bin" \
-archdatadir "/$dir_prefix/$dir_libdir/$name" \
@@ -52,7 +52,7 @@ make
make INSTALL_ROOT="$dir_install" install
mkdir -p "$dir_install/$dir_prefix/$dir_bindir"
-for bin in $(find "$dir_install/$dir_prefix/$dir_libdir/$name/bin/" -type f -printf '%P '); do
+find "$dir_install/$dir_prefix/$dir_libdir/$name/bin/" -type f -printf '%P\n' | while IFS= read bin; do
ln -s "../$dir_libdir/$name/bin/$bin" "$dir_install/$dir_prefix/$dir_bindir/$bin-$name"
done
diff --git a/satellites/qt5-tools.sat b/satellites/qt5-tools.sat
index 1149c4e..599d683 100644
--- a/satellites/qt5-tools.sat
+++ b/satellites/qt5-tools.sat
@@ -15,7 +15,7 @@ cd "qt$submodule-opensource-src-$version"
compile_qt 5
mkdir -p "$dir_install/$dir_prefix/$dir_bindir"
-for bin in $(find "$dir_install/$dir_prefix/$dir_libdir/$name/bin/" -type f -printf '%P '); do
+find "$dir_install/$dir_prefix/$dir_libdir/$name/bin/" -type f -printf '%P\n' | while IFS= read bin; do
ln -s "../$dir_libdir/$name/bin/$bin" "$dir_install/$dir_prefix/$dir_bindir/$bin-$name"
done
diff --git a/satellites/rt8192cu-git.sat b/satellites/rt8192cu-git.sat
index 9c64d41..4e67e39 100644
--- a/satellites/rt8192cu-git.sat
+++ b/satellites/rt8192cu-git.sat
@@ -10,9 +10,9 @@ header_end
kver="$(option =kver)"
cd "$name"
-make KSRC="$dir_sysroot/lib/modules/$kver/build" modules
+make KSRC="/lib/modules/$kver/build" modules
install -Dm644 -t "$dir_install/lib/modules/$kver/kernel/drivers/net/wireless" 8192cu.ko
-install -Dm644 blacklist-dkms-8192cu.conf "$dir_install/$dir_sysconfdir/modprobe.d/$name.conf"
-echo 'blacklist rtl8xxxu' >> "$dir_install/$dir_sysconfdir/modprobe.d/$name.conf"
+install -Dm644 blacklist-dkms-8192cu.conf "$dir_install/$dir_prefix/$dir_sysconfdir/modprobe.d/$name.conf"
+echo 'blacklist rtl8xxxu' >> "$dir_install/$dir_prefix/$dir_sysconfdir/modprobe.d/$name.conf"
# vim:set tabstop=4 shiftwidth=4 syntax=sh expandtab:
diff --git a/satellites/waf.sat b/satellites/waf.sat
index bd841d3..6f56fdd 100644
--- a/satellites/waf.sat
+++ b/satellites/waf.sat
@@ -19,7 +19,7 @@ sed -i -e '/dirname =/s/%s-%s-%s/%s-%s/' \
-e '/dirname =/s/, REVISION//' "$name"
# Change the logic of checking dirs to find waflib to only check one dir, the dir where we installed it.
-sed -i -e "s/INSTALL,'\/usr','\/usr\/local','\/opt'/'$(safe_sed "$dir_sysroot/$dir_prefix")',/" \
+sed -i -e "s/INSTALL,'\/usr','\/usr\/local','\/opt'/'$(safe_sed "/$dir_prefix")',/" \
-e "s/'\/lib\/'/'$(safe_sed "/$dir_libdir/")'/" "$name"
# Fix the shebang to point to python3
diff --git a/satellites/yajl.sat b/satellites/yajl.sat
index e400e29..410ff19 100644
--- a/satellites/yajl.sat
+++ b/satellites/yajl.sat
@@ -16,9 +16,10 @@ sed -i -e '/yajl_s/d' \
-e '/COMMAND ${CMAKE_COMMAND}/d' src/CMakeLists.txt
find . -name "CMakeLists.txt" -exec sed -i -e '/TARGET_LINK_LIBRARIES/s/yajl_s/yajl/' '{}' \;
-# Fix install dirs
+# Fix paths
sed -i -e "/DESTINATION/s/lib\${LIB_SUFFIX}/\"$(safe_sed "$dir_libdir")\"/" \
- -e "/DESTINATION/s/share\\pkgconfig/\"$(safe_sed "$dir_datadir/pkgconfig")\"/" src/CMakeLists.txt
+ -e "/DESTINATION/s/share\/pkgconfig/\"$(safe_sed "$dir_datadir/pkgconfig")\"/" \
+ -e "/DESTINATION/s/include\/yajl/\"$(safe_sed "$dir_includedir/yajl")\"/" src/CMakeLists.txt
sed -i -e "/DESTINATION/s/bin/\"$(safe_sed "$dir_bindir")\"/" \
verify/CMakeLists.txt reformatter/CMakeLists.txt
diff --git a/satellites/zim.sat b/satellites/zim.sat
index b5ebab3..49723b2 100644
--- a/satellites/zim.sat
+++ b/satellites/zim.sat
@@ -12,8 +12,8 @@ cd "$name-$version"
# Shitty method to fix setup.py for paths
safe_datadir="$(safe_sed "$dir_datadir")"
-sed -i -e "s/share/$safe_datadir/g" setup.py
-sed -i -e "s/$safe_datadir\/man/$(safe_sed "$dir_mandir")/g" setup.py
+sed -i -e "s/share/$safe_datadir/g" \
+ -e "s/$safe_datadir\/man/$(safe_sed "$dir_mandir")/g" setup.py
compile_python 2 --skip-xdg-cmd
diff --git a/todo.txt b/todo.txt
deleted file mode 100644
index da5f182..0000000
--- a/todo.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-Remove the need for dir_sysroot, using it as an option only in the strictly required packages.
-Update the vcs and compile functions to support better options.