Mega-commit removing deps in xbps-base-chroot.

xbps-src:
  * ALWAYS use the static bins, to avoid breakage in the chroot.
  * Remove XBPS_FETCH_CMD. Use xbps-fetch (static) now that it's
    useful to download all distfiles in xbps-base-system.
  * Use busybox in the chroot and create links in /usr/local/bin
    at creation time. This helps to remove many packages that
    had problems with host/target libs (acl, attr, libarchive, etc).

build templates:
  * Add explicit gettext and texinfo build dependencies in all
    packages that need them, because they aren't built anymore
    by xbps-base-chroot.
  * Fixed some packages using build_style=gnu_makefile, that were
    broken because pre/post_configure() is not executed for a while,
    they should use pre/post_build() instead.

--HG--
extra : convert_revision : 0eaaf4917fd824710d0895e0c984bbc236b0cdf8
This commit is contained in:
Juan RP 2009-10-30 22:14:09 +01:00
parent ab0de77616
commit 1ebe5e6b5e
54 changed files with 148 additions and 199 deletions

View file

@ -51,11 +51,6 @@ XBPS_CXXFLAGS="$XBPS_CFLAGS"
#
#XBPS_MAKEJOBS=4
#
# Fetch command to download files.
#
XBPS_FETCH_CMD=wget
#
# Compression program used to build the binary packages.
# Possible values: gzip, bzip2 or xz. Default xz.

View file

@ -32,15 +32,15 @@
install_pkg_deps()
{
local curpkg="$1"
local curpkgname=$(xbps-pkgdb getpkgname $1)
local saved_prevpkg=$(xbps-pkgdb getpkgname $2)
local curpkgname=$(${XBPS_PKGDB_CMD} getpkgname $1)
local saved_prevpkg=$(${XBPS_PKGDB_CMD} getpkgname $2)
local j jver jname reqver
[ -z "$curpkg" ] && return 1
if [ -n "$prev_pkg" ]; then
curpkg=$prev_pkg
curpkgname=$(xbps-pkgdb getpkgname ${curpkg})
curpkgname=$(${XBPS_PKGDB_CMD} getpkgname ${curpkg})
fi
msg_normal "Installing $saved_prevpkg dependency: $curpkgname."
@ -50,9 +50,9 @@ install_pkg_deps()
if [ $? -eq 0 ]; then
msg_normal "Dependency $curpkgname requires:"
for j in ${build_depends}; do
jname=$(xbps-pkgdb getpkgname ${j})
jver=$($XBPS_REGPKGDB_CMD version ${jname})
reqver=$(xbps-pkgdb getpkgversion ${j})
jname=$(${XBPS_PKGDB_CMD} getpkgname ${j})
jver=$($XBPS_PKGDB_CMD version ${jname})
reqver=$(${XBPS_PKGDB_CMD} getpkgversion ${j})
check_installed_pkg $j
if [ $? -eq 0 ]; then
echo " $jname >= $reqver: found $jname-$jver."
@ -88,7 +88,7 @@ install_pkg_deps()
install_dependencies_pkg()
{
local pkg="$1"
local lpkgname=$(xbps-pkgdb getpkgname ${pkg})
local lpkgname=$(${XBPS_PKGDB_CMD} getpkgname ${pkg})
local i ipkgname iversion reqvers notinstalled_deps lver
[ -z "$pkg" ] && return 1
@ -103,9 +103,9 @@ install_dependencies_pkg()
msg_normal "Required build dependencies for $pkgname-$lver... "
for i in ${build_depends}; do
ipkgname=$(xbps-pkgdb getpkgname ${i})
iversion=$($XBPS_REGPKGDB_CMD version $ipkgname)
reqvers=$(xbps-pkgdb getpkgversion ${i})
ipkgname=$(${XBPS_PKGDB_CMD} getpkgname ${i})
iversion=$($XBPS_PKGDB_CMD version $ipkgname)
reqvers=$(${XBPS_PKGDB_CMD} getpkgversion ${i})
check_installed_pkg $i
if [ $? -eq 0 ]; then
echo " $ipkgname >= $reqvers: found $ipkgname-$iversion."
@ -122,7 +122,7 @@ install_dependencies_pkg()
check_installed_pkg $i
[ $? -eq 0 ] && continue
ipkgname=$(xbps-pkgdb getpkgname ${i})
ipkgname=$(${XBPS_PKGDB_CMD} getpkgname ${i})
run_template $ipkgname
check_build_depends_pkg
if [ $? -eq 1 ]; then
@ -137,7 +137,7 @@ install_dependencies_pkg()
install_builddeps_required_pkg()
{
local pkg="$1"
local pkgname=$(xbps-pkgdb getpkgname ${pkg})
local pkgname=$(${XBPS_PKGDB_CMD} getpkgname ${pkg})
local dep depname
[ -z "$pkg" ] && return 1
@ -148,7 +148,7 @@ install_builddeps_required_pkg()
check_installed_pkg $dep
if [ $? -ne 0 ]; then
msg_normal "Installing $pkgname dependency: $dep."
depname=$(xbps-pkgdb getpkgname ${dep})
depname=$(${XBPS_PKGDB_CMD} getpkgname ${dep})
install_pkg $depname
fi
done
@ -165,11 +165,11 @@ check_installed_pkg()
[ -z "$pkg" ] && return 2
pkgname=$(xbps-pkgdb getpkgname $pkg)
reqver=$(xbps-pkgdb getpkgversion $pkg)
pkgname=$(${XBPS_PKGDB_CMD} getpkgname $pkg)
reqver=$(${XBPS_PKGDB_CMD} getpkgversion $pkg)
run_template $pkgname
iver="$($XBPS_REGPKGDB_CMD version $pkgname)"
iver="$($XBPS_PKGDB_CMD version $pkgname)"
if [ -n "$iver" ]; then
xbps-cmpver $pkgname-$iver $pkgname-$reqver
[ $? -eq 0 -o $? -eq 1 ] && return 0

View file

@ -86,12 +86,18 @@ ff02::2 ip6-allrouters
ff02::3 ip6-allhosts
_EOF
# Use OpenDNS servers.
cat > $XBPS_MASTERDIR/etc/resolv.conf <<_EOF
nameserver 208.67.222.222
nameserver 208.67.220.220
_EOF
cp -f /etc/resolv.conf $XBPS_MASTERDIR/etc
#
# Copy host shell, bash is prefered to avoid breakage in
# GNU autoconf scripts!
#
mkdir -p $XBPS_MASTERDIR/bin
if [ -x /bin/bash ]; then
cp -f /bin/bash $XBPS_MASTERDIR/bin/sh
elif [ -x /bin/sh ]; then
cp -f /bin/sh $XBPS_MASTERDIR/bin/sh
fi
touch $XBPS_MASTERDIR/.xbps_perms_done
}
@ -104,19 +110,37 @@ rebuild_ldso_cache()
echo " done."
}
create_busybox_links()
{
local busyboxdir=$XBPS_MASTERDIR/usr/lib/busybox-initramfs
local lbindir=$XBPS_MASTERDIR/usr/local/bin
[ -f $XBPS_MASTERDIR/.busybox_done ] && return 0
[ ! -d ${lbindir} ] && mkdir -p ${lbindir}
# Create other symlinks in /usr/local/bin
for f in $(find ${busyboxdir} -type l); do
cd ${lbindir} || return 1
[ "$(basename $f)" = "sh" ] && continue
ln -s ../../lib/busybox-initramfs/bin/busybox $(basename $f)
done
touch -f $XBPS_MASTERDIR/.busybox_done
}
install_xbps_utils()
{
local needed fetch_cmd
local xbps_prefix=$XBPS_MASTERDIR/usr/local
for f in bin cmpver digest pkgdb; do
if [ ! -x $xbps_prefix/sbin/xbps-${f} ]; then
if [ ! -x $xbps_prefix/sbin/xbps-${f}.static ]; then
needed=yes
fi
done
if [ -n "$needed" ]; then
cd ${XBPS_MASTERDIR}/bin && ln -s dash sh
echo "=> Installing the required XBPS utils."
chroot $XBPS_MASTERDIR sh -c \
"echo /usr/local/lib > /etc/ld.so.conf"
@ -128,7 +152,7 @@ install_xbps_utils()
cp -f $fetch_cmd $xbps_prefix/sbin
for f in bin cmpver digest pkgdb repo; do
cp -f $XBPS_INSTALLDIR/sbin/xbps-$f.static \
$xbps_prefix/sbin/xbps-$f
$xbps_prefix/sbin/
done
cp -f $XBPS_INSTALLDIR/sbin/xbps-src $xbps_prefix/sbin
if [ -z $XBPS_INSTALLDIR ]; then
@ -146,7 +170,7 @@ xbps_chroot_handler()
local action="$1"
local pkg="$2"
local only_destdir="$3"
local path="/usr/local/sbin:/bin::/sbin:/usr/bin:/usr/sbin:/usr/local/bin"
[ -z "$action" -o -z "$pkg" ] && return 1
[ "$action" != "configure" -a "$action" != "build" -a \
@ -154,6 +178,7 @@ xbps_chroot_handler()
mount_chroot_fs
install_xbps_utils
create_busybox_links
if [ ! -f $XBPS_MASTERDIR/.xbps_perms_done ]; then
echo -n "==> Preparing chroot on $XBPS_MASTERDIR... "
@ -162,12 +187,14 @@ xbps_chroot_handler()
fi
if [ "$action" = "chroot" ]; then
env in_chroot=yes LANG=C chroot $XBPS_MASTERDIR /bin/bash
env in_chroot=yes LANG=C PATH=$path \
chroot $XBPS_MASTERDIR /bin/sh
else
[ -n "$only_destdir" ] && \
local lenv="install_destdir_target=yes"
env in_chroot=yes LANG=C ${lenv} chroot $XBPS_MASTERDIR \
xbps-src $action $pkg
env in_chroot=yes LANG=C PATH=$path \
${lenv} chroot $XBPS_MASTERDIR \
/usr/local/sbin/xbps-src $action $pkg
fi
msg_normal "Exiting from the chroot on $XBPS_MASTERDIR."
umount_chroot_fs
@ -250,10 +277,10 @@ umount_chroot_fs()
[ -n "$base_chroot" ] && return 0
. $XBPS_SHUTILSDIR/builddep_funcs.sh
check_installed_pkg xbps-base-chroot-0.1
check_installed_pkg xbps-base-chroot-0.11
if [ $? -ne 0 ]; then
echo "The '$pkgname' package requires to be installed in a chroot."
echo "Please install the 'xbps-base-chroot' package and try again."
echo "Please install 'xbps-base-chroot>=0.11' and try again."
exit 1
fi

View file

@ -34,7 +34,7 @@ verify_sha256_cksum()
[ -z "$file" -o -z "$cksum" ] && return 1
filesum=$(xbps-digest.static $XBPS_SRCDISTDIR/$file)
filesum=$(${XBPS_DIGEST_CMD} $XBPS_SRCDISTDIR/$file)
if [ "$origsum" != "$filesum" ]; then
msg_error "SHA256 checksum doesn't match for $file."
fi
@ -47,7 +47,7 @@ fetch_update_cksum()
local tmpl="$XBPS_TEMPLATESDIR/$pkgname/template"
local upcmd=$(basename $XBPS_SRCDISTDIR/$1)
sed -i -e "s|checksum.*|checksum=$(xbps-digest.static ${upcmd})|" $tmpl
sed -i -e "s|checksum.*|checksum=$(${XBPS_DIGEST_CMD} ${upcmd})|" $tmpl
return $?
}

View file

@ -213,7 +213,7 @@ xbps_write_metadata_pkg_real()
echo "<key>file</key>" >> $TMPFPLIST
echo "<string>$j</string>" >> $TMPFPLIST
echo "<key>sha256</key>" >> $TMPFPLIST
echo "<string>$(xbps-digest.static $f)</string>" \
echo "<string>$(${XBPS_DIGEST_CMD} $f)</string>" \
>> $TMPFPLIST
echo "</dict>" >> $TMPFPLIST
done
@ -244,7 +244,7 @@ xbps_write_metadata_pkg_real()
echo "<key>file</key>" >> $TMPFPLIST
echo "<string>$f</string>" >> $TMPFPLIST
echo "<key>sha256</key>" >> $TMPFPLIST
echo "<string>$(xbps-digest.static ${i})</string>" \
echo "<string>$(${XBPS_DIGEST_CMD} ${i})</string>" \
>> $TMPFPLIST
echo "</dict>" >> $TMPFPLIST
done
@ -258,6 +258,8 @@ xbps_write_metadata_pkg_real()
# Write the props.plist file.
local TMPFPROPS=$(mktemp -t fprops.XXXXXXXXXX) || exit 1
local instsize=$(du -sk ${DESTDIR}|awk '{print $1}')
cat > $TMPFPROPS <<_EOF
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
@ -270,7 +272,7 @@ xbps_write_metadata_pkg_real()
<key>architecture</key>
<string>$arch</string>
<key>installed_size</key>
<integer>$(du -sb ${DESTDIR}|awk '{print $1}')</integer>
<integer>$(($instsize * 1024))</integer>
<key>maintainer</key>
<string>$(echo $maintainer|sed -e 's|<|[|g;s|>|]|g')</string>
<key>short_desc</key>
@ -345,8 +347,8 @@ _EOF
mv -f $TMPFPLIST ${DESTDIR}/files.plist
mv -f $TMPFPROPS ${DESTDIR}/props.plist
$XBPS_REGPKGDB_CMD sanitize-plist ${DESTDIR}/files.plist
$XBPS_REGPKGDB_CMD sanitize-plist ${DESTDIR}/props.plist
$XBPS_PKGDB_CMD sanitize-plist ${DESTDIR}/files.plist
$XBPS_PKGDB_CMD sanitize-plist ${DESTDIR}/props.plist
chmod 644 ${DESTDIR}/files.plist ${DESTDIR}/props.plist
[ -f $metadir/flist ] && chmod 644 $metadir/flist

View file

@ -133,7 +133,7 @@ list_pkg_files()
[ -z $pkg ] && msg_error "unexistent package, aborting."
ver=$($XBPS_REGPKGDB_CMD version $pkg)
ver=$($XBPS_PKGDB_CMD version $pkg)
[ -z "$ver" ] && msg_error "$pkg is not installed."
cat $XBPS_PKGMETADIR/$pkg/flist
@ -160,7 +160,7 @@ remove_pkg()
fi
done
ver=$($XBPS_REGPKGDB_CMD version $pkg)
ver=$($XBPS_PKGDB_CMD version $pkg)
[ -z "$ver" ] && msg_error "$pkg is not installed."
. $XBPS_SHUTILSDIR/stow_funcs.sh

View file

@ -106,7 +106,7 @@ stow_pkg_real()
else
lver="${version}"
fi
$XBPS_REGPKGDB_CMD register $pkg $lver "$short_desc" || exit 1
$XBPS_PKGDB_CMD register $pkg $lver "$short_desc" || exit 1
return $?
}
@ -127,7 +127,7 @@ unstow_pkg()
run_template $pkg
ver=$($XBPS_REGPKGDB_CMD version $pkg)
ver=$($XBPS_PKGDB_CMD version $pkg)
if [ -z "$ver" ]; then
msg_error "$pkg is not installed."
fi
@ -165,6 +165,6 @@ unstow_pkg()
rm -rf $XBPS_PKGMETADIR/$pkg
# Unregister pkg from plist file.
$XBPS_REGPKGDB_CMD unregister $pkg $ver
$XBPS_PKGDB_CMD unregister $pkg $ver
return $?
}

View file

@ -107,8 +107,11 @@ set_defvars()
[ ! -d "$val" ] && msg_error "cannot find $i, aborting."
done
XBPS_REGPKGDB_CMD="xbps-pkgdb -r $XBPS_MASTERDIR"
XBPS_BIN_CMD="xbps-bin -r $XBPS_MASTERDIR"
export XBPS_PKGDB_CMD="xbps-pkgdb.static -r $XBPS_MASTERDIR"
export XBPS_BIN_CMD="xbps-bin.static -r $XBPS_MASTERDIR"
export XBPS_DIGEST_CMD="xbps-digest.static"
export XBPS_CMPVER_CMD="xbps-cmpver.static"
export XBPS_FETCH_CMD="xbps-fetch.static"
}
#
@ -148,7 +151,7 @@ check_config_vars()
fi
done
export PATH="$PATH:@@XBPS_INSTALL_PREFIX@@/sbin"
export PATH="@@XBPS_INSTALL_PREFIX@@/sbin:$PATH"
}
#
@ -217,7 +220,7 @@ build-pkg)
. $XBPS_SHUTILSDIR/tmpl_funcs.sh
if [ "$2" = "all" ]; then
for f in $($XBPS_BIN_CMD list|awk '{print $1}'); do
pkg=$(xbps-pkgdb getpkgname $f)
pkg=$(${XBPS_PKGDB_CMD} getpkgname $f)
setup_tmpl ${pkg}
if [ "$pkg" = "$sourcepkg" ]; then
xbps_make_binpkg ${pkg}