void-packages

Void Source Packages
git clone git://ezup.dev/void-packages.git
Log | Files | Refs | README | LICENSE

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}