pkgtarget.sh (3643B)
1# vim: set ts=4 sw=4 et: 2 3check_pkg_arch() { 4 local cross="$1" _arch f match nonegation 5 6 if [ -n "$archs" ]; then 7 if [ -n "$cross" ]; then 8 _arch="$XBPS_TARGET_MACHINE" 9 elif [ -n "$XBPS_ARCH" ]; then 10 _arch="$XBPS_ARCH" 11 else 12 _arch="$XBPS_MACHINE" 13 fi 14 set -f 15 for f in ${archs}; do 16 set +f 17 nonegation=${f##\~*} 18 f=${f#\~} 19 case "${_arch}" in 20 $f) match=1; break ;; 21 esac 22 done 23 if [ -z "$nonegation" -a -n "$match" ] || [ -n "$nonegation" -a -z "$match" ]; then 24 msg_red "${pkgname}-${version}_${revision}: this package cannot be built for ${_arch}.\n" 25 exit 2 26 fi 27 fi 28} 29 30# Returns 1 if pkg is available in xbps repositories, 0 otherwise. 31pkg_available() { 32 local pkg="$1" cross="$2" pkgver 33 34 if [ -n "$cross" ]; then 35 pkgver=$($XBPS_QUERY_XCMD -R -ppkgver "${pkg}" 2>/dev/null) 36 else 37 pkgver=$($XBPS_QUERY_CMD -R -ppkgver "${pkg}" 2>/dev/null) 38 fi 39 40 if [ -z "$pkgver" ]; then 41 return 0 42 fi 43 return 1 44} 45 46remove_pkg_autodeps() { 47 local rval= tmplogf= errlogf= prevs= 48 49 cd $XBPS_MASTERDIR || return 1 50 msg_normal "${pkgver:-xbps-src}: removing autodeps, please wait...\n" 51 tmplogf=$(mktemp) || exit 1 52 errlogf=$(mktemp) || exit 1 53 54 remove_pkg_cross_deps 55 $XBPS_RECONFIGURE_CMD -a >> $tmplogf 2>&1 56 prevs=$(stat -c %s $tmplogf) 57 echo yes | $XBPS_REMOVE_CMD -Ryod 2>> $errlogf 1>> $tmplogf 58 rval=$? 59 while [ $rval -eq 0 ]; do 60 local curs=$(stat -c %s $tmplogf) 61 if [ $curs -eq $prevs ]; then 62 break 63 fi 64 prevs=$curs 65 echo yes | $XBPS_REMOVE_CMD -Ryod 2>> $errlogf 1>> $tmplogf 66 rval=$? 67 done 68 69 if [ $rval -ne 0 ]; then 70 msg_red "${pkgver:-xbps-src}: failed to remove autodeps: (returned $rval)\n" 71 cat $tmplogf && rm -f $tmplogf 72 cat $errlogf && rm -f $errlogf 73 msg_error "${pkgver:-xbps-src}: cannot continue!\n" 74 fi 75 rm -f $tmplogf 76 rm -f $errlogf 77} 78 79remove_pkg_wrksrc() { 80 if [ -d "$wrksrc" ]; then 81 msg_normal "$pkgver: cleaning build directory...\n" 82 chmod -R +wX "$wrksrc" # Needed to delete Go Modules 83 rm -rf "$wrksrc" 84 fi 85} 86 87remove_pkg_statedir() { 88 if [ -d "$XBPS_STATEDIR" ]; then 89 rm -rf "$XBPS_STATEDIR" 90 fi 91} 92 93remove_pkg() { 94 local cross="$1" _destdir f 95 96 [ -z $pkgname ] && msg_error "unexistent package, aborting.\n" 97 98 if [ -n "$cross" ]; then 99 _destdir="$XBPS_DESTDIR/$XBPS_CROSS_TRIPLET" 100 else 101 _destdir="$XBPS_DESTDIR" 102 fi 103 104 [ ! -d ${_destdir} ] && return 105 106 for f in ${sourcepkg} ${subpackages}; do 107 if [ -d "${_destdir}/${f}-${version}" ]; then 108 msg_normal "$f: removing files from destdir...\n" 109 rm -rf ${_destdir}/${f}-${version} 110 fi 111 if [ -d "${_destdir}/${f}-dbg-${version}" ]; then 112 msg_normal "$f: removing dbg files from destdir...\n" 113 rm -rf ${_destdir}/${f}-dbg-${version} 114 fi 115 if [ -d "${_destdir}/${f}-32bit-${version}" ]; then 116 msg_normal "$f: removing 32bit files from destdir...\n" 117 rm -rf ${_destdir}/${f}-32bit-${version} 118 fi 119 rm -f ${XBPS_STATEDIR}/${f}_${cross}_subpkg_install_done 120 rm -f ${XBPS_STATEDIR}/${f}_${cross}_prepkg_done 121 done 122 rm -f ${XBPS_STATEDIR}/${sourcepkg}_${cross}_install_done 123 rm -f ${XBPS_STATEDIR}/${sourcepkg}_${cross}_pre_install_done 124 rm -f ${XBPS_STATEDIR}/${sourcepkg}_${cross}_post_install_done 125}