makepkg: add --allsource option
This supplements the --source option and does nearly the same thing, except downloaded source files are included in the archive as well. The sources are now packages with a pkgname/ prefix. Original-work-by: Dan McGee <dan@archlinux.org> Signed-off-by: Allan McRae <mcrae_allan@hotmail.com> Signed-off-by: Dan McGee <dan@archlinux.org>
This commit is contained in:
parent
0fc538fcdb
commit
4979157cba
|
@ -921,14 +921,26 @@ create_xdelta() {
|
||||||
|
|
||||||
create_srcpackage() {
|
create_srcpackage() {
|
||||||
cd "$startdir"
|
cd "$startdir"
|
||||||
|
if [ "$SOURCEONLY" = "2" ]; then
|
||||||
|
# get back to our src directory so we can begin with sources
|
||||||
|
mkdir -p "$srcdir"
|
||||||
|
cd "$srcdir"
|
||||||
|
download_sources
|
||||||
|
# we can only check checksums if we have all files
|
||||||
|
check_checksums
|
||||||
|
cd "$startdir"
|
||||||
|
fi
|
||||||
msg "$(gettext "Creating source package...")"
|
msg "$(gettext "Creating source package...")"
|
||||||
local comp_files="$BUILDSCRIPT"
|
local srclinks="$(mktemp -d "$startdir"/srclinks.XXXXXXXXX)"
|
||||||
|
mkdir "${srclinks}"/${pkgname}
|
||||||
|
|
||||||
msg2 "$(gettext "Adding %s...")" "$BUILDSCRIPT"
|
msg2 "$(gettext "Adding %s...")" "$BUILDSCRIPT"
|
||||||
|
ln -s "${startdir}/${BUILDSCRIPT}" "${srclinks}/${pkgname}/"
|
||||||
|
|
||||||
if [ "$install" != "" ]; then
|
if [ "$install" != "" ]; then
|
||||||
if [ -f $install ]; then
|
if [ -f $install ]; then
|
||||||
msg2 "$(gettext "Adding install script...")"
|
msg2 "$(gettext "Adding install script...")"
|
||||||
comp_files="$comp_files $install"
|
ln -s "${startdir}/$install" "${srclinks}/${pkgname}/"
|
||||||
else
|
else
|
||||||
error "$(gettext "Install script %s not found.")" "$install"
|
error "$(gettext "Install script %s not found.")" "$install"
|
||||||
fi
|
fi
|
||||||
|
@ -936,14 +948,18 @@ create_srcpackage() {
|
||||||
|
|
||||||
if [ -f ChangeLog ]; then
|
if [ -f ChangeLog ]; then
|
||||||
msg2 "$(gettext "Adding %s...")" "ChangeLog"
|
msg2 "$(gettext "Adding %s...")" "ChangeLog"
|
||||||
comp_files="$comp_files ChangeLog"
|
ln -s "${startdir}/ChangeLog" "${srclinks}/${pkgname}"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
local i
|
local netfile
|
||||||
for i in ${source[@]}; do
|
for netfile in ${source[@]}; do
|
||||||
if [ -f $i ]; then
|
local file=$(strip_url "$netfile")
|
||||||
msg2 "$(gettext "Adding %s...")" "$i"
|
if [ -f $netfile ]; then
|
||||||
comp_files="$comp_files $i"
|
msg2 "$(gettext "Adding %s...")" "$netfile"
|
||||||
|
ln -s $netfile ${srclinks}/${pkgname}
|
||||||
|
elif [ "$SOURCEONLY" = "2" -a -f "$SRCDEST/$file" ]; then
|
||||||
|
msg2 "$(gettext "Adding %s...")" "$file"
|
||||||
|
ln -s "$SRCDEST/$file" "${srclinks}/${pkgname}/"
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
|
||||||
|
@ -951,10 +967,13 @@ create_srcpackage() {
|
||||||
|
|
||||||
# tar it up
|
# tar it up
|
||||||
msg2 "$(gettext "Compressing source package...")"
|
msg2 "$(gettext "Compressing source package...")"
|
||||||
if ! bsdtar -czf "$pkg_file" $comp_files; then
|
cd ${srclinks}
|
||||||
|
if ! bsdtar -czLf "$pkg_file" ${pkgname}; then
|
||||||
error "$(gettext "Failed to create source package file.")"
|
error "$(gettext "Failed to create source package file.")"
|
||||||
exit 1 # TODO: error code
|
exit 1 # TODO: error code
|
||||||
fi
|
fi
|
||||||
|
cd ${startdir}
|
||||||
|
rm -rf ${srclinks}
|
||||||
}
|
}
|
||||||
|
|
||||||
install_package() {
|
install_package() {
|
||||||
|
@ -1126,8 +1145,10 @@ SRCDEST=${SRCDEST:-$startdir} #default to $startdir if undefined
|
||||||
|
|
||||||
# Parse Command Line Options.
|
# Parse Command Line Options.
|
||||||
OPT_SHORT="AbcCdefFghiLmop:rRsSV"
|
OPT_SHORT="AbcCdefFghiLmop:rRsSV"
|
||||||
OPT_LONG="ignorearch,asroot,builddeps,clean,cleancache,nodeps,noextract,force,forcever:,geninteg,help,holdver"
|
OPT_LONG="allsource,asroot,ignorearch,builddeps,clean,cleancache,nodeps"
|
||||||
OPT_LONG="$OPT_LONG,install,log,nocolor,nobuild,rmdeps,repackage,source,syncdeps,usesudo,version"
|
OPT_LONG="$OPT_LONG,noextract,force,forcever:,geninteg,help,holdver"
|
||||||
|
OPT_LONG="$OPT_LONG,install,log,nocolor,nobuild,rmdeps,repackage,source"
|
||||||
|
OPT_LONG="$OPT_LONG,syncdeps,usesudo,version"
|
||||||
# Pacman Options
|
# Pacman Options
|
||||||
OPT_LONG="$OPT_LONG,noconfirm,noprogressbar"
|
OPT_LONG="$OPT_LONG,noconfirm,noprogressbar"
|
||||||
OPT_TEMP="$(getopt -o "$OPT_SHORT" -l "$OPT_LONG" -n "$(basename "$0")" -- "$@" || echo 'GETOPT GO BANG!')"
|
OPT_TEMP="$(getopt -o "$OPT_SHORT" -l "$OPT_LONG" -n "$(basename "$0")" -- "$@" || echo 'GETOPT GO BANG!')"
|
||||||
|
@ -1145,6 +1166,7 @@ while true; do
|
||||||
--noprogressbar) PACMAN_OPTS="$PACMAN_OPTS --noprogressbar" ;;
|
--noprogressbar) PACMAN_OPTS="$PACMAN_OPTS --noprogressbar" ;;
|
||||||
|
|
||||||
# Makepkg Options
|
# Makepkg Options
|
||||||
|
--allsource) SOURCEONLY=2 ;;
|
||||||
--asroot) ASROOT=1 ;;
|
--asroot) ASROOT=1 ;;
|
||||||
-A|--ignorearch) IGNOREARCH=1 ;;
|
-A|--ignorearch) IGNOREARCH=1 ;;
|
||||||
-c|--clean) CLEANUP=1 ;;
|
-c|--clean) CLEANUP=1 ;;
|
||||||
|
@ -1381,7 +1403,7 @@ if [ $EUID -eq 0 ]; then
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# if we are creating a source-only package, go no further
|
# if we are creating a source-only package, go no further
|
||||||
if [ "$SOURCEONLY" = "1" ]; then
|
if [ "$SOURCEONLY" != "0" ]; then
|
||||||
if [ -f "$PKGDEST/${pkgname}-${pkgver}-${pkgrel}${SRCEXT}" \
|
if [ -f "$PKGDEST/${pkgname}-${pkgver}-${pkgrel}${SRCEXT}" \
|
||||||
-a "$FORCE" = "0" ]; then
|
-a "$FORCE" = "0" ]; then
|
||||||
error "$(gettext "A package has already been built. (use -f to overwrite)")"
|
error "$(gettext "A package has already been built. (use -f to overwrite)")"
|
||||||
|
|
Loading…
Reference in New Issue