Reorganize the tree for easier and better handling.
- Template helpers have been moved to templates/helpers. - Documentation to docs/. - Common scripts have been moved to utils/sh. - Fixed install-destdir when executed via chroot. - Added a build-pkg target that builds a binary package. The package must be installed into destdir before using. - Misc tweaks and fixes. --HG-- extra : convert_revision : 0896e8f24bb7592116aaf77ae9c776033818a3d8
This commit is contained in:
parent
8373117030
commit
23fa45a18b
20 changed files with 65 additions and 79 deletions
|
@ -62,14 +62,15 @@ To avoid problems with libtool and configure scripts finding stuff that is
|
||||||
available in the host system, almost all packages must be built inside of a
|
available in the host system, almost all packages must be built inside of a
|
||||||
chroot. So the first thing would be to create the binary packages with:
|
chroot. So the first thing would be to create the binary packages with:
|
||||||
|
|
||||||
$ xbps.sh build-chroot
|
$ xbps.sh install xbps-base-chroot
|
||||||
|
|
||||||
This will build all required binary packages via fakeroot, therefore you
|
This will build all required packages via fakeroot in masterdir, therefore you
|
||||||
can run it as normal user. Next commands will require super-user privileges
|
can run it as normal user. Next commands will require super-user privileges
|
||||||
and all package handling will be done within the chroot. I believe it's the
|
and all package handling will be done within the chroot. I believe it's the
|
||||||
most easier and faster way to handle clean dependencies; another reason would
|
most easier and faster way to handle clean dependencies; another reason would
|
||||||
be that xbps packages are meant to be used in a system and not just for
|
be that xbps packages are meant to be used in a system and not just for
|
||||||
ordinary users. So once all packages are built, you can create the chroot with:
|
ordinary users. So once all packages are built, you can create and enter
|
||||||
|
to the chroot with:
|
||||||
|
|
||||||
$ sudo xbps.sh chroot
|
$ sudo xbps.sh chroot
|
||||||
|
|
||||||
|
@ -81,7 +82,7 @@ to be done in the chroot:
|
||||||
Now let's explain some more about the targets that you can use. To start
|
Now let's explain some more about the targets that you can use. To start
|
||||||
installing packages you should use the install target:
|
installing packages you should use the install target:
|
||||||
|
|
||||||
$ xbps.sh install glib
|
$ sudo xbps.sh install glib
|
||||||
|
|
||||||
If the package is properly installed, it will be "stowned" automatically.
|
If the package is properly installed, it will be "stowned" automatically.
|
||||||
``stowned´´ means that this package is available in the master directory,
|
``stowned´´ means that this package is available in the master directory,
|
||||||
|
@ -89,18 +90,18 @@ on which xpbs has copied all files from DESTDIR/<pkgname>.
|
||||||
|
|
||||||
To remove a currently installed (and stowned) package, you can use:
|
To remove a currently installed (and stowned) package, you can use:
|
||||||
|
|
||||||
$ xbps.sh remove glib
|
$ sudo xbps.sh remove glib
|
||||||
|
|
||||||
Please note that when you remove it, the package will also be removed
|
Please note that when you remove it, the package will also be removed
|
||||||
from XBPS_DESTDIR and previously "unstowned".
|
from XBPS_DESTDIR and previously "unstowned".
|
||||||
|
|
||||||
To stow an already installed package (from XBPS_DESTDIR/<pkgname>):
|
To stow an already installed package (from XBPS_DESTDIR/<pkgname>):
|
||||||
|
|
||||||
$ xbps.sh stow glib
|
$ sudo xbps.sh stow glib
|
||||||
|
|
||||||
and to unstow an already installed (stowned) package:
|
and to unstow an already installed (stowned) package:
|
||||||
|
|
||||||
$ xbps.sh unstow glib
|
$ sudo xbps.sh unstow glib
|
||||||
|
|
||||||
You can also print some stuff about any template build file, e.g:
|
You can also print some stuff about any template build file, e.g:
|
||||||
|
|
||||||
|
@ -116,7 +117,7 @@ To only extract the distfiles, without configuring/building/installing:
|
||||||
|
|
||||||
To not remove the build directory after successful installation:
|
To not remove the build directory after successful installation:
|
||||||
|
|
||||||
$ xbps.sh -C install blah
|
$ sudo xbps.sh -C install blah
|
||||||
|
|
||||||
To only fetch the distfile:
|
To only fetch the distfile:
|
||||||
|
|
||||||
|
@ -124,7 +125,7 @@ To only fetch the distfile:
|
||||||
|
|
||||||
To only install the package, _without_ stowning it into the master directory:
|
To only install the package, _without_ stowning it into the master directory:
|
||||||
|
|
||||||
$ xbps.sh install-destdir blob
|
$ sudo xbps.sh install-destdir blob
|
||||||
|
|
||||||
To list files installed by a package, note that package must be installed
|
To list files installed by a package, note that package must be installed
|
||||||
into destination directory first:
|
into destination directory first:
|
60
binpkg/create.sh → utils/sh/binpkg.sh
Executable file → Normal file
60
binpkg/create.sh → utils/sh/binpkg.sh
Executable file → Normal file
|
@ -1,13 +1,9 @@
|
||||||
#!/bin/sh
|
|
||||||
#
|
#
|
||||||
# Builds a binary package from an installed xbps package in the
|
# This function writes the metadata files into package's destdir,
|
||||||
# destination directory. This binary package is just a simple tar(1)
|
# these will be used for binary packages.
|
||||||
# archive with gzip, bzip2 or lzma compression (all compression
|
|
||||||
# modes that libarchive supports).
|
|
||||||
#
|
#
|
||||||
# Passed argument: pkgname.
|
|
||||||
|
|
||||||
write_metadata()
|
xbps_write_metadata_pkg()
|
||||||
{
|
{
|
||||||
local destdir=$XBPS_DESTDIR/$pkgname-$version
|
local destdir=$XBPS_DESTDIR/$pkgname-$version
|
||||||
|
|
||||||
|
@ -16,10 +12,19 @@ write_metadata()
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
if [ ! -d $destdir/xbps-metadata ]; then
|
||||||
|
mkdir -p $destdir/xbps-metadata >/dev/null 2>&1
|
||||||
|
if [ $? -ne 0 ]; then
|
||||||
|
echo "ERROR: you don't have enough perms for this."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
# Write the files list.
|
# Write the files list.
|
||||||
local TMPFLIST=$(mktemp -t flist.XXXXXXXXXX) || exit 1
|
local TMPFLIST=$(mktemp -t flist.XXXXXXXXXX) || exit 1
|
||||||
find $destdir | sort -ur | \
|
find $destdir | sort -ur | \
|
||||||
sed -e "s|$destdir||g;s|^\/$||g;/^$/d" > $TMPFLIST
|
sed -e "s|$destdir||g;s|^\/$||g;s|/xbps-metadata||g;/^$/d" \
|
||||||
|
> $TMPFLIST
|
||||||
|
|
||||||
# Write the property list file.
|
# Write the property list file.
|
||||||
local TMPFPROPS=$(mktemp -t fprops.XXXXXXXXXX) || exit 1
|
local TMPFPROPS=$(mktemp -t fprops.XXXXXXXXXX) || exit 1
|
||||||
|
@ -58,17 +63,18 @@ _EOF
|
||||||
printf "</dict>\n</plist>\n" >> $TMPFPROPS
|
printf "</dict>\n</plist>\n" >> $TMPFPROPS
|
||||||
|
|
||||||
# Write metadata files into destdir and cleanup.
|
# Write metadata files into destdir and cleanup.
|
||||||
if [ ! -d $destdir/xbps-metadata ]; then
|
|
||||||
mkdir -p $destdir/xbps-metadata
|
|
||||||
fi
|
|
||||||
|
|
||||||
cp -f $TMPFLIST $destdir/xbps-metadata/flist
|
cp -f $TMPFLIST $destdir/xbps-metadata/flist
|
||||||
cp -f $TMPFPROPS $destdir/xbps-metadata/props.plist
|
cp -f $TMPFPROPS $destdir/xbps-metadata/props.plist
|
||||||
chmod 644 $destdir/xbps-metadata/*
|
chmod 644 $destdir/xbps-metadata/*
|
||||||
rm -f $TMPFLIST $TMPFPROPS
|
rm -f $TMPFLIST $TMPFPROPS
|
||||||
}
|
}
|
||||||
|
|
||||||
make_archive()
|
#
|
||||||
|
# This functions builds a binary package from an installed xbps
|
||||||
|
# package in destdir.
|
||||||
|
#
|
||||||
|
|
||||||
|
xbps_make_binpkg()
|
||||||
{
|
{
|
||||||
local destdir=$XBPS_DESTDIR/$pkgname-$version
|
local destdir=$XBPS_DESTDIR/$pkgname-$version
|
||||||
local pkgsdir=$XBPS_DISTRIBUTIONDIR/packages
|
local pkgsdir=$XBPS_DISTRIBUTIONDIR/packages
|
||||||
|
@ -81,31 +87,3 @@ make_archive()
|
||||||
|
|
||||||
echo "=> Built package: $pkgname-$version-xbps.tbz2."
|
echo "=> Built package: $pkgname-$version-xbps.tbz2."
|
||||||
}
|
}
|
||||||
|
|
||||||
pkg=$1
|
|
||||||
if [ -z "$pkg" ]; then
|
|
||||||
echo "ERROR: missing package name as argument."
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ -z "$XBPS_DISTRIBUTIONDIR" ]; then
|
|
||||||
echo "ERROR: XBPS_DISTRIBUTIONDIR not set."
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ -z "$XBPS_DESTDIR" ]; then
|
|
||||||
echo "ERROR: XBPS_DESTDIR not set."
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ ! -f $XBPS_DISTRIBUTIONDIR/templates/$pkg.tmpl ]; then
|
|
||||||
echo "ERROR: missing package template file."
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
. $XBPS_DISTRIBUTIONDIR/templates/$pkg.tmpl
|
|
||||||
|
|
||||||
write_metadata
|
|
||||||
make_archive
|
|
||||||
|
|
||||||
return 0
|
|
|
@ -1,5 +1,5 @@
|
||||||
#
|
#
|
||||||
# Helper to install packages into a sandbox in masterdir.
|
# Script to install packages into a sandbox in masterdir.
|
||||||
# Actually this needs the xbps-base-chroot package installed.
|
# Actually this needs the xbps-base-chroot package installed.
|
||||||
#
|
#
|
||||||
|
|
||||||
|
@ -25,6 +25,7 @@ fi
|
||||||
|
|
||||||
if [ ! -f $XBPS_MASTERDIR/.xbps_perms_done ]; then
|
if [ ! -f $XBPS_MASTERDIR/.xbps_perms_done ]; then
|
||||||
echo -n "==> Preparing chroot on $XBPS_MASTERDIR... "
|
echo -n "==> Preparing chroot on $XBPS_MASTERDIR... "
|
||||||
|
chown -R root:root $XBPS_MASTERDIR
|
||||||
cp -af /etc/passwd /etc/shadow /etc/group /etc/hosts \
|
cp -af /etc/passwd /etc/shadow /etc/group /etc/hosts \
|
||||||
/etc/resolv.conf $XBPS_MASTERDIR/etc
|
/etc/resolv.conf $XBPS_MASTERDIR/etc
|
||||||
touch $XBPS_MASTERDIR/.xbps_perms_done
|
touch $XBPS_MASTERDIR/.xbps_perms_done
|
||||||
|
@ -64,10 +65,11 @@ rebuild_ldso_cache()
|
||||||
echo " done."
|
echo " done."
|
||||||
}
|
}
|
||||||
|
|
||||||
chroot_pkg_handler()
|
xbps_chroot_handler()
|
||||||
{
|
{
|
||||||
local action="$1"
|
local action="$1"
|
||||||
local pkg="$2"
|
local pkg="$2"
|
||||||
|
local only_destdir="$3"
|
||||||
|
|
||||||
[ -z "$action" -o -z "$pkg" ] && return 1
|
[ -z "$action" -o -z "$pkg" ] && return 1
|
||||||
|
|
||||||
|
@ -79,7 +81,9 @@ chroot_pkg_handler()
|
||||||
if [ "$action" = "chroot" ]; then
|
if [ "$action" = "chroot" ]; then
|
||||||
env in_chroot=yes chroot $XBPS_MASTERDIR /bin/bash
|
env in_chroot=yes chroot $XBPS_MASTERDIR /bin/bash
|
||||||
else
|
else
|
||||||
env in_chroot=yes chroot $XBPS_MASTERDIR \
|
[ -n "$only_destdir" ] && \
|
||||||
|
local lenv="install_destdir_target=yes"
|
||||||
|
env in_chroot=yes ${lenv} chroot $XBPS_MASTERDIR \
|
||||||
/xbps/xbps.sh $action $pkg
|
/xbps/xbps.sh $action $pkg
|
||||||
fi
|
fi
|
||||||
msg_normal "Exiting from the chroot on $XBPS_MASTERDIR."
|
msg_normal "Exiting from the chroot on $XBPS_MASTERDIR."
|
55
xbps.sh
55
xbps.sh
|
@ -41,7 +41,6 @@ $progname: [-C] [-c <config_file>] <target> <pkg>
|
||||||
|
|
||||||
Targets:
|
Targets:
|
||||||
build <pkg> Build a package (fetch + extract + configure + build).
|
build <pkg> Build a package (fetch + extract + configure + build).
|
||||||
build-chroot Build binary packages required for chroot.
|
|
||||||
build-pkg <pkg> Build a binary package from <pkg>.
|
build-pkg <pkg> Build a binary package from <pkg>.
|
||||||
Package must be installed into destdir before it.
|
Package must be installed into destdir before it.
|
||||||
chroot Enter to the chroot in masterdir.
|
chroot Enter to the chroot in masterdir.
|
||||||
|
@ -50,7 +49,7 @@ Targets:
|
||||||
fetch <pkg> Download distribution file(s).
|
fetch <pkg> Download distribution file(s).
|
||||||
info <pkg> Show information about <pkg>.
|
info <pkg> Show information about <pkg>.
|
||||||
install-destdir <pkg> build + install into destdir.
|
install-destdir <pkg> build + install into destdir.
|
||||||
install <pkg> install-destdir + stow + build-pkg.
|
install <pkg> install-destdir + stow.
|
||||||
list List installed packages in masterdir.
|
list List installed packages in masterdir.
|
||||||
listfiles <pkg> List installed files from <pkg>.
|
listfiles <pkg> List installed files from <pkg>.
|
||||||
remove <pkg> Remove package completely (destdir + masterdir).
|
remove <pkg> Remove package completely (destdir + masterdir).
|
||||||
|
@ -72,16 +71,18 @@ set_defvars()
|
||||||
local i=
|
local i=
|
||||||
|
|
||||||
: ${XBPS_TEMPLATESDIR:=$XBPS_DISTRIBUTIONDIR/templates}
|
: ${XBPS_TEMPLATESDIR:=$XBPS_DISTRIBUTIONDIR/templates}
|
||||||
: ${XBPS_HELPERSDIR:=$XBPS_DISTRIBUTIONDIR/helpers}
|
: ${XBPS_HELPERSDIR:=$XBPS_TEMPLATESDIR/helpers}
|
||||||
: ${XBPS_CACHEDIR:=$XBPS_MASTERDIR/var/cache/xbps}
|
: ${XBPS_CACHEDIR:=$XBPS_MASTERDIR/var/cache/xbps}
|
||||||
: ${XBPS_PKGDB_FPATH:=$XBPS_CACHEDIR/pkgdb.plist}
|
: ${XBPS_PKGDB_FPATH:=$XBPS_CACHEDIR/pkgdb.plist}
|
||||||
: ${XBPS_PKGMETADIR:=$XBPS_CACHEDIR/metadata}
|
: ${XBPS_PKGMETADIR:=$XBPS_CACHEDIR/metadata}
|
||||||
: ${XBPS_UTILSDIR:=$XBPS_DISTRIBUTIONDIR/utils}
|
: ${XBPS_UTILSDIR:=$XBPS_DISTRIBUTIONDIR/utils}
|
||||||
|
: ${XBPS_SHUTILSDIR:=$XBPS_UTILSDIR/sh}
|
||||||
: ${XBPS_DIGEST_CMD:=$XBPS_UTILSDIR/xbps-digest}
|
: ${XBPS_DIGEST_CMD:=$XBPS_UTILSDIR/xbps-digest}
|
||||||
: ${XBPS_PKGDB_CMD:=$XBPS_UTILSDIR/xbps-pkgdb}
|
: ${XBPS_PKGDB_CMD:=$XBPS_UTILSDIR/xbps-pkgdb}
|
||||||
: ${XBPS_CMPVER_CMD:=$XBPS_UTILSDIR/xbps-cmpver}
|
: ${XBPS_CMPVER_CMD:=$XBPS_UTILSDIR/xbps-cmpver}
|
||||||
|
|
||||||
local DDIRS="XBPS_TEMPLATESDIR XBPS_HELPERSDIR XBPS_UTILSDIR"
|
local DDIRS="XBPS_TEMPLATESDIR XBPS_HELPERSDIR XBPS_UTILSDIR \
|
||||||
|
XBPS_SHUTILSDIR"
|
||||||
for i in ${DDIRS}; do
|
for i in ${DDIRS}; do
|
||||||
eval val="\$$i"
|
eval val="\$$i"
|
||||||
[ ! -d "$val" ] && msg_error "cannot find $i, aborting."
|
[ ! -d "$val" ] && msg_error "cannot find $i, aborting."
|
||||||
|
@ -898,7 +899,7 @@ install_src_phase()
|
||||||
|
|
||||||
cd $wrksrc || exit 1
|
cd $wrksrc || exit 1
|
||||||
|
|
||||||
msg_normal "Running install phase for: $pkgname-$version."
|
msg_normal "Running install phase for $pkgname-$version."
|
||||||
|
|
||||||
# cross compilation vars.
|
# cross compilation vars.
|
||||||
if [ -n "$cross_compiler" ]; then
|
if [ -n "$cross_compiler" ]; then
|
||||||
|
@ -1188,10 +1189,6 @@ build_binpkg()
|
||||||
|
|
||||||
[ -z $pkg ] && return 1
|
[ -z $pkg ] && return 1
|
||||||
|
|
||||||
cd $XBPS_BUILDDIR || exit 1
|
|
||||||
if [ "$(whoami)" != "root" ]; then
|
|
||||||
echo "==> Building binary package via fakeroot."
|
|
||||||
fi
|
|
||||||
rootcmd_run $XBPS_DISTRIBUTIONDIR/binpkg/create.sh $pkg
|
rootcmd_run $XBPS_DISTRIBUTIONDIR/binpkg/create.sh $pkg
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1202,8 +1199,9 @@ install_pkg()
|
||||||
{
|
{
|
||||||
local pkg=
|
local pkg=
|
||||||
local curpkgn="$1"
|
local curpkgn="$1"
|
||||||
|
local cdestdir=
|
||||||
local cur_tmpl="$XBPS_TEMPLATESDIR/$curpkgn.tmpl"
|
local cur_tmpl="$XBPS_TEMPLATESDIR/$curpkgn.tmpl"
|
||||||
|
|
||||||
if [ -z $cur_tmpl -o ! -f $cur_tmpl ]; then
|
if [ -z $cur_tmpl -o ! -f $cur_tmpl ]; then
|
||||||
msg_error "cannot find $cur_tmpl template build file."
|
msg_error "cannot find $cur_tmpl template build file."
|
||||||
fi
|
fi
|
||||||
|
@ -1228,9 +1226,9 @@ install_pkg()
|
||||||
[ -z "$origin_tmpl" ] && origin_tmpl=$pkgname
|
[ -z "$origin_tmpl" ] && origin_tmpl=$pkgname
|
||||||
|
|
||||||
if [ -z "$base_chroot" -a -z "$in_chroot" ]; then
|
if [ -z "$base_chroot" -a -z "$in_chroot" ]; then
|
||||||
. $XBPS_HELPERSDIR/chroot.sh
|
. $XBPS_SHUTILSDIR/chroot.sh
|
||||||
chroot_pkg_handler install $curpkgn
|
[ -n "$install_destdir_target" ] && cdestdir=yes
|
||||||
build_binpkg $curpkgn
|
xbps_chroot_handler install $curpkgn $cdestdir
|
||||||
return $?
|
return $?
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
@ -1285,8 +1283,6 @@ install_pkg()
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
[ -z "$in_chroot" ] && build_binpkg $curpkgn
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# Do not stow package if it wasn't requested.
|
# Do not stow package if it wasn't requested.
|
||||||
#
|
#
|
||||||
|
@ -1342,7 +1338,9 @@ remove_pkg()
|
||||||
fi
|
fi
|
||||||
|
|
||||||
unstow_pkg $pkg
|
unstow_pkg $pkg
|
||||||
rm -rf $XBPS_DESTDIR/$pkg-$ver
|
if [ $? -eq 0 ]; then
|
||||||
|
rm -rf $XBPS_DESTDIR/$pkg-$ver
|
||||||
|
fi
|
||||||
return $?
|
return $?
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1370,7 +1368,11 @@ stow_pkg()
|
||||||
|
|
||||||
cd $XBPS_DESTDIR/$pkgname-$version || exit 1
|
cd $XBPS_DESTDIR/$pkgname-$version || exit 1
|
||||||
|
|
||||||
# Copy metadata files.
|
# Write pkg metadata.
|
||||||
|
. $XBPS_SHUTILSDIR/binpkg.sh
|
||||||
|
xbps_write_metadata_pkg
|
||||||
|
|
||||||
|
# Copy metadata files into masterdir.
|
||||||
if [ -f xbps-metadata/flist -a -f xbps-metadata/props.plist ]; then
|
if [ -f xbps-metadata/flist -a -f xbps-metadata/props.plist ]; then
|
||||||
local metadir=$XBPS_PKGMETADIR/$pkgname-$version
|
local metadir=$XBPS_PKGMETADIR/$pkgname-$version
|
||||||
mkdir -p $metadir
|
mkdir -p $metadir
|
||||||
|
@ -1489,11 +1491,11 @@ case "$target" in
|
||||||
build|configure)
|
build|configure)
|
||||||
setup_tmpl $2
|
setup_tmpl $2
|
||||||
if [ -z "$base_chroot" -a -z "$in_chroot" ]; then
|
if [ -z "$base_chroot" -a -z "$in_chroot" ]; then
|
||||||
. $XBPS_HELPERSDIR/chroot.sh
|
. $XBPS_SHUTILSDIR/chroot.sh
|
||||||
if [ "$target" = "build" ]; then
|
if [ "$target" = "build" ]; then
|
||||||
chroot_pkg_handler build $2
|
xbps_chroot_handler build $2
|
||||||
else
|
else
|
||||||
chroot_pkg_handler configure $2
|
xbps_chroot_handler configure $2
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
fetch_distfiles $2
|
fetch_distfiles $2
|
||||||
|
@ -1510,13 +1512,14 @@ build|configure)
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
build-chroot)
|
build-pkg)
|
||||||
. $XBPS_HELPERSDIR/build-chroot-binpkgs.sh
|
. $XBPS_SHUTILSDIR/binpkg.sh
|
||||||
build_chroot_binpkgs
|
setup_tmpl $2
|
||||||
|
xbps_make_binpkg
|
||||||
;;
|
;;
|
||||||
chroot)
|
chroot)
|
||||||
. $XBPS_HELPERSDIR/chroot.sh
|
. $XBPS_SHUTILSDIR/chroot.sh
|
||||||
chroot_pkg_handler chroot dummy
|
xbps_chroot_handler chroot dummy
|
||||||
;;
|
;;
|
||||||
extract|fetch|info)
|
extract|fetch|info)
|
||||||
setup_tmpl $2
|
setup_tmpl $2
|
||||||
|
@ -1553,4 +1556,4 @@ unstow)
|
||||||
esac
|
esac
|
||||||
|
|
||||||
# Agur
|
# Agur
|
||||||
exit 0
|
exit $?
|
||||||
|
|
Loading…
Reference in a new issue