From 75bd88afc6521504f98749547acf59f829aabafa Mon Sep 17 00:00:00 2001 From: Juan RP Date: Sat, 28 Mar 2009 08:27:29 +0100 Subject: [PATCH] Rework how $revision is used. Works much better in all cases. $version is not modified anymore. --HG-- extra : convert_revision : a83408f47e22db2f34cd33d6d47eb2f045ae2758 --- shutils/build_funcs.sh | 4 +++- shutils/builddep_funcs.sh | 10 ++++++++-- shutils/configure_funcs.sh | 11 ++++++++--- shutils/extract_funcs.sh | 18 +++++++++--------- shutils/install_funcs.sh | 32 ++++++++++++++++++++++---------- shutils/make-binpkg.sh | 9 +++++++-- shutils/metadata.sh | 31 ++++++++++++++++++++++++------- shutils/pkgtarget_funcs.sh | 8 +++----- shutils/stow_funcs.sh | 29 ++++++++++++++++++----------- shutils/tmpl_funcs.sh | 14 ++++---------- 10 files changed, 106 insertions(+), 60 deletions(-) diff --git a/shutils/build_funcs.sh b/shutils/build_funcs.sh index 66ff6c0166e..5732e1027ce 100644 --- a/shutils/build_funcs.sh +++ b/shutils/build_funcs.sh @@ -31,7 +31,7 @@ build_src_phase() { local pkgparam="$1" local pkg="$pkgname-$version" - local f= + local f [ -z $pkgparam ] && [ -z $pkgname -o -z $version ] && return 1 @@ -47,6 +47,8 @@ build_src_phase() cd $wrksrc || exit 1 + [ -n "$revision" ] && pkg="${pkg}_${revision}" + # cross compilation vars. if [ -n "$cross_compiler" ]; then . $XBPS_HELPERSDIR/cross-compilation.sh diff --git a/shutils/builddep_funcs.sh b/shutils/builddep_funcs.sh index b3a57d92310..c7e25dcce85 100644 --- a/shutils/builddep_funcs.sh +++ b/shutils/builddep_funcs.sh @@ -89,13 +89,19 @@ install_dependencies_pkg() { local pkg="$1" local lpkgname=$(xbps-pkgdb getpkgname ${pkg}) - local i ipkgname iversion reqvers notinstalled_deps + local i ipkgname iversion reqvers notinstalled_deps lver [ -z "$pkg" ] && return 1 doing_deps=true - echo "==> Required build dependencies for $pkgname-$version... " + if [ -n "$revision" ]; then + lver="${version}_${revision}" + else + lver="${version}" + fi + + echo "==> Required build dependencies for $pkgname-$lver... " for i in ${build_depends}; do ipkgname=$(xbps-pkgdb getpkgname ${i}) iversion=$($XBPS_REGPKGDB_CMD version $ipkgname) diff --git a/shutils/configure_funcs.sh b/shutils/configure_funcs.sh index c7c3501fcaa..4eea83af8bf 100644 --- a/shutils/configure_funcs.sh +++ b/shutils/configure_funcs.sh @@ -29,8 +29,7 @@ # configure_src_phase() { - local pkg="$1" - local f= + local f lver pkg="$1" [ -z $pkg ] && [ -z $pkgname ] && return 1 @@ -50,6 +49,12 @@ configure_src_phase() "$build_style" = "only-install" -o \ "$build_style" = "custom-install" ] && return 0 + if [ -n "$revision" ]; then + lver="${version}_${revision}" + else + lver="${version}" + fi + # cross compilation vars. if [ -n "$cross_compiler" ]; then . $XBPS_HELPERSDIR/cross-compilation.sh @@ -64,7 +69,7 @@ configure_src_phase() export "$f" done - msg_normal "Running configure phase for $pkgname-$version." + msg_normal "Running configure phase for $pkgname-$lver." [ -z "$configure_script" ] && configure_script="./configure" diff --git a/shutils/extract_funcs.sh b/shutils/extract_funcs.sh index cbaded36c72..5a619116b55 100644 --- a/shutils/extract_funcs.sh +++ b/shutils/extract_funcs.sh @@ -29,13 +29,8 @@ # extract_distfiles() { - local pkg="$1" - local count=0 - local curfile= - local cursufx= - local lwrksrc= - local ltar_cmd= - local f= + local count=0 pkg="$1" + local curfile cursufx lwrksrc ltar_cmd f lver [ -f $XBPS_EXTRACT_DONE ] && return 0 [ -z "$in_chroot" -a ! -w $XBPS_BUILDDIR ] && \ @@ -51,11 +46,16 @@ extract_distfiles() # [ "$build_style" = "meta-template" ] && return 0 + if [ -n "$revision" ]; then + lver="${version}_${revision}" + else + lver="${version}" + fi # # If noextract is set, do a "fake extraction". # if [ -n "$noextract" ]; then - msg_normal "Manual extraction for $pkgname-$version." + msg_normal "Manual extraction for $pkgname-$lver." mkdir $wrksrc touch -f $XBPS_EXTRACT_DONE return 0 @@ -73,7 +73,7 @@ extract_distfiles() mkdir $wrksrc fi - msg_normal "Extracting $pkgname-$version distfile(s)." + msg_normal "Extracting $pkgname-$lver distfile(s)." if [ -n "$tar_override_cmd" ]; then ltar_cmd="$tar_override_cmd" diff --git a/shutils/install_funcs.sh b/shutils/install_funcs.sh index 9005ad458f3..e2e9945a8ed 100644 --- a/shutils/install_funcs.sh +++ b/shutils/install_funcs.sh @@ -30,17 +30,22 @@ install_src_phase() { local pkg="$1" - local f= - local i= - local subpkg= + local f i subpkg lver spkgrev [ -z $pkg ] && [ -z $pkgname ] && return 1 + + if [ -n "$revision" ]; then + lver="${version}_${revision}" + else + lver="${version}" + fi + # # There's nothing we can do if we are a meta template. # Just creating the dir is enough to write the package metadata. # if [ "$build_style" = "meta-template" ]; then - mkdir -p $XBPS_DESTDIR/$pkgname-$version + mkdir -p $XBPS_DESTDIR/$pkgname-$lver return 0 fi @@ -51,7 +56,7 @@ install_src_phase() # Run pre_install func. run_func pre_install - msg_normal "Running install phase for $pkgname-$version." + msg_normal "Running install phase for $pkgname-$lver." # cross compilation vars. if [ -n "$cross_compiler" ]; then @@ -62,7 +67,7 @@ install_src_phase() if [ "$build_style" = "custom-install" ]; then run_func do_install else - make_install + make_install $lver fi # Run post_install func. @@ -71,7 +76,7 @@ install_src_phase() # unset cross compiler vars. [ -n "$cross_compiler" ] && cross_compile_unsetvars - msg_normal "Installed $pkgname-$version into $XBPS_DESTDIR." + msg_normal "Installed $pkgname-$lver into $XBPS_DESTDIR." touch -f $XBPS_INSTALL_DONE @@ -83,7 +88,12 @@ install_src_phase() [ "${pkg}" != "${sourcepkg}-${subpkg}" ]; then continue fi - check_installed_pkg ${sourcepkg}-${subpkg}-${version} + if [ -n "$revision" ]; then + spkgrev="${sourcepkg}-${subpkg}-${version}_${revision}" + else + spkgrev="${sourcepkg}-${subpkg}-${version}" + fi + check_installed_pkg ${spkgrev} [ $? -eq 0 ] && continue msg_normal "Preparing ${sourcepkg} subpackage: $sourcepkg-$subpkg" @@ -105,7 +115,7 @@ install_src_phase() if [ -d "$wrksrc" -a -z "$dontrm_builddir" ]; then rm -rf $wrksrc [ $? -eq 0 ] && \ - msg_normal "Removed $pkgname-$version build directory." + msg_normal "Removed $pkgname-$lver build directory." fi } @@ -115,6 +125,8 @@ install_src_phase() make_install() { + local lver="$1" + if [ "$build_style" = "perl_module" ]; then make_install_target="install" elif [ -z "$make_install_target" ]; then @@ -131,7 +143,7 @@ make_install() # run_rootcmd no ${make_cmd} ${make_install_target} ${make_install_args} if [ "$?" -ne 0 ]; then - msg_error "installing $pkgname-$version." + msg_error "installing $pkgname-$lver." exit 1 fi diff --git a/shutils/make-binpkg.sh b/shutils/make-binpkg.sh index 400b4c114f3..563d30f14a8 100644 --- a/shutils/make-binpkg.sh +++ b/shutils/make-binpkg.sh @@ -50,7 +50,7 @@ xbps_make_binpkg() # xbps_make_binpkg_real() { - local binpkg pkgdir arch use_sudo + local binpkg pkgdir arch use_sudo lver if [ ! -d ${DESTDIR} ]; then echo "$pkgname: unexistent destdir... skipping!" @@ -71,7 +71,12 @@ xbps_make_binpkg_real() use_sudo=yes fi - binpkg=$pkgname-$version.$arch.xbps + if [ -n "$revision" ]; then + lver="${version}_${revision}" + else + lver="${version}" + fi + binpkg=$pkgname-$lver.$arch.xbps pkgdir=$XBPS_PACKAGESDIR/$arch if [ -x ./INSTALL ]; then diff --git a/shutils/metadata.sh b/shutils/metadata.sh index 0e52dd161d3..04e1feb0a3b 100644 --- a/shutils/metadata.sh +++ b/shutils/metadata.sh @@ -41,20 +41,26 @@ _EOF xbps_write_metadata_pkg() { local pkg="$1" - local subpkg + local subpkg spkgrev for subpkg in ${subpackages}; do if [ "${pkg}" != "${sourcepkg}" ] && \ [ "${pkg}" != "${sourcepkg}-${subpkg}" ]; then continue fi - check_installed_pkg ${sourcepkg}-${subpkg}-${version} + if [ -n "${revision}" ]; then + spkgrev="${sourcepkg}-${subpkg}-${version}_${revision}" + else + spkgrev="${sourcepkg}-${subpkg}-${version}" + fi + check_installed_pkg ${spkgrev} [ $? -eq 0 ] && continue if [ ! -f $XBPS_TEMPLATESDIR/${sourcepkg}/${subpkg}.template ]; then msg_error "Cannot find subpackage template!" fi - unset run_depends conf_files keep_dirs noarch triggers + unset run_depends conf_files keep_dirs noarch triggers \ + revision . $XBPS_TEMPLATESDIR/${sourcepkg}/${subpkg}.template pkgname=${sourcepkg}-${subpkg} set_tmpl_common_vars @@ -67,7 +73,12 @@ xbps_write_metadata_pkg() if [ "$build_style" = "meta-template" -a -z "${run_depends}" ]; then for subpkg in ${subpackages}; do - run_depends="$run_depends ${sourcepkg}-${subpkg}-${version}" + if [ -n "${revision}" ]; then + spkgrev="${sourcepkg}-${subpkg}-${version}_${revision}" + else + spkgrev="${sourcepkg}-${subpkg}-${version}" + fi + run_depends="${run_depends} ${spkgrev}" done fi set_tmpl_common_vars @@ -81,7 +92,7 @@ xbps_write_metadata_pkg() xbps_write_metadata_pkg_real() { local metadir=${DESTDIR}/var/db/xbps/metadata/$pkgname - local f i j arch dirat lnkat newlnk TMPFLIST TMPFPLIST + local f i j arch dirat lnkat newlnk lver TMPFLIST TMPFPLIST local fpattern="s|${DESTDIR}||g;s|^\./$||g;/^$/d" if [ ! -d "${DESTDIR}" ]; then @@ -95,6 +106,12 @@ xbps_write_metadata_pkg_real() arch=$xbps_machine fi + if [ -n "$revision" ]; then + lver="${version}_${revision}" + else + lver="${version}" + fi + # Write the files.plist file. TMPFLIST=$(mktemp -t flist.XXXXXXXXXX) || exit 1 TMPFPLIST=$(mktemp -t fplist.XXXXXXXXXX) || exit 1 @@ -159,7 +176,7 @@ xbps_write_metadata_pkg_real() fi cd ${DESTDIR} - msg_normal "Writing package metadata for $pkgname-$version..." + msg_normal "Writing package metadata for $pkgname-$lver..." write_metadata_flist_header $TMPFPLIST @@ -245,7 +262,7 @@ xbps_write_metadata_pkg_real() pkgname $pkgname version -$version +$lver architecture $arch installed_size diff --git a/shutils/pkgtarget_funcs.sh b/shutils/pkgtarget_funcs.sh index 0fe734b167e..6c917f16594 100644 --- a/shutils/pkgtarget_funcs.sh +++ b/shutils/pkgtarget_funcs.sh @@ -145,9 +145,7 @@ list_pkg_files() # remove_pkg() { - local pkg="$1" - local subpkg= - local ver= + local pkg="$1" subpkg ver [ -z $pkg ] && msg_error "unexistent package, aborting." @@ -168,8 +166,8 @@ remove_pkg() . $XBPS_SHUTILSDIR/stow_funcs.sh unstow_pkg $pkg - if [ $? -eq 0 -a -d $XBPS_DESTDIR/$pkg-$ver ]; then - rm -rf $XBPS_DESTDIR/$pkg-$ver + if [ $? -eq 0 -a -d $XBPS_DESTDIR/$pkg-${ver%_${revision}} ]; then + rm -rf $XBPS_DESTDIR/$pkg-${ver%_${revision}} fi return $? } diff --git a/shutils/stow_funcs.sh b/shutils/stow_funcs.sh index f84b1ef9dc1..520734ff9a1 100644 --- a/shutils/stow_funcs.sh +++ b/shutils/stow_funcs.sh @@ -29,19 +29,25 @@ stow_pkg() { local pkg="$1" local automatic="$2" - local subpkg= + local subpkg spkgrev for subpkg in ${subpackages}; do if [ "${pkg}" != "${sourcepkg}" ] && \ [ "${pkg}" != "${sourcepkg}-${subpkg}" ]; then continue fi - check_installed_pkg ${sourcepkg}-${subpkg}-${version} + if [ -n "$revision" ]; then + spkgrev="${sourcepkg}-${subpkg}-${version}_${revision}" + else + spkgrev="${sourcepkg}-${subpkg}-${version}" + fi + check_installed_pkg ${spkgrev} [ $? -eq 0 ] && continue if [ ! -f $XBPS_TEMPLATESDIR/${sourcepkg}/${subpkg}.template ]; then msg_error "Cannot find subpackage template!" fi + unset revision . $XBPS_TEMPLATESDIR/${sourcepkg}/${subpkg}.template pkgname=${sourcepkg}-${subpkg} set_tmpl_common_vars @@ -52,7 +58,7 @@ stow_pkg() # If it's a subpackage, just remove sourcepkg from # destdir and return, we are done. # - rm -rf $XBPS_DESTDIR/${sourcepkg}-${version} + rm -rf $XBPS_DESTDIR/${spkgrev} return $? fi done @@ -70,7 +76,7 @@ stow_pkg_real() { local pkg="$1" local automatic="$2" - local i= + local i lver regpkgdb_flags [ -z "$pkg" ] && return 2 @@ -96,12 +102,15 @@ stow_pkg_real() # Register pkg in plist file and add automatic installation # object if requested. # - local regpkgdb_flags= - if [ -n "$automatic" ]; then - regpkgdb_flags="-a" + [ -n "$automatic" ] && regpkgdb_flags="-a" + + if [ -n "$revision" ]; then + lver="${version}_${revision}" + else + lver="${version}" fi $XBPS_REGPKGDB_CMD $regpkgdb_flags register \ - $pkg $version "$short_desc" || exit 1 + $pkg $lver "$short_desc" || exit 1 } # @@ -110,9 +119,7 @@ stow_pkg_real() # unstow_pkg() { - local pkg="$1" - local f= - local ver= + local f ver pkg="$1" [ -z $pkg ] && msg_error "template wasn't specified?" diff --git a/shutils/tmpl_funcs.sh b/shutils/tmpl_funcs.sh index ecd9f4ae761..64f6835a238 100644 --- a/shutils/tmpl_funcs.sh +++ b/shutils/tmpl_funcs.sh @@ -32,6 +32,7 @@ info_tmpl() echo "pkgname: $pkgname" echo "version: $version" + [ -n "$revision" ] && echo "revision: $revision" for i in "${distfiles}"; do [ -n "$i" ] && echo "distfile: $i" done @@ -65,7 +66,7 @@ reset_tmpl_vars() make_build_target configure_script noextract \ pre_configure pre_build pre_install \ post_configure post_build post_install \ - make_install_target version revision _revset \ + make_install_target version revision \ sgml_catalogs xml_catalogs xml_entries sgml_entries \ build_depends libtool_fixup_la_stage no_fixup_libtool \ disable_parallel_build run_depends cross_compiler \ @@ -152,9 +153,7 @@ Add_dependency() # prepare_tmpl() { - local REQ_VARS= - local i= - local found= + local REQ_VARS i found # # There's nothing of interest if we are a meta template. @@ -162,7 +161,7 @@ prepare_tmpl() [ "$build_style" = "meta-template" ] && return 0 if [ "$build_style" = "custom-install" -a -z "$distfiles" ]; then - mkdir -p $XBPS_BUILDDIR/$pkgname-$version + return 0 fi REQ_VARS="pkgname version build_style short_desc long_desc" @@ -208,11 +207,6 @@ set_tmpl_common_vars() { [ -z "$pkgname" ] && return 1 - if [ -z "${_revset}" -a -n "$revision" ]; then - _revset=1 - version="${version}_${revision}" - fi - FILESDIR=${XBPS_TEMPLATESDIR}/${pkgname}/files DESTDIR=${XBPS_DESTDIR}/${pkgname}-${version} SRCPKGDESTDIR=${XBPS_DESTDIR}/${sourcepkg}-${version}