krita: update to 5.2.9.
[void-pkg.git] / common / xbps-src / shutils / pkgtarget.sh
blob1e76a1b93b19ee1e1bbc0371278bc7a609fd6e64
1 # vim: set ts=4 sw=4 et:
3 check_existing_pkg() {
4 local arch= curpkg=
5 if [ -z "$XBPS_PRESERVE_PKGS" ] || [ "$XBPS_BUILD_FORCEMODE" ]; then
6 return
7 fi
8 arch=$XBPS_TARGET_MACHINE
9 curpkg=$XBPS_REPOSITORY/$repository/$pkgver.$arch.xbps
10 if [ -e $curpkg ]; then
11 msg_warn "$pkgver: skipping build due to existing $curpkg\n"
12 exit 0
16 check_pkg_arch() {
17 local cross="$1" _arch f match nonegation
19 if [ -n "$archs" ]; then
20 if [ -n "$cross" ]; then
21 _arch="$XBPS_TARGET_MACHINE"
22 elif [ -n "$XBPS_ARCH" ]; then
23 _arch="$XBPS_ARCH"
24 else
25 _arch="$XBPS_MACHINE"
27 set -f
28 for f in ${archs}; do
29 set +f
30 nonegation=${f##\~*}
31 f=${f#\~}
32 case "${_arch}" in
33 $f) match=1; break ;;
34 esac
35 done
36 if [ -z "$nonegation" -a -n "$match" ] || [ -n "$nonegation" -a -z "$match" ]; then
37 report_broken "${pkgname}-${version}_${revision}: this package cannot be built for ${_arch}.\n"
42 # Returns 1 if pkg is available in xbps repositories, 0 otherwise.
43 pkg_available() {
44 local pkg="$1" cross="$2" pkgver
46 if [ -n "$cross" ]; then
47 pkgver=$($XBPS_QUERY_XCMD -R -ppkgver "${pkg}" 2>/dev/null)
48 else
49 pkgver=$($XBPS_QUERY_CMD -R -ppkgver "${pkg}" 2>/dev/null)
52 if [ -z "$pkgver" ]; then
53 return 0
55 return 1
58 remove_pkg_autodeps() {
59 local rval= tmplogf= errlogf= prevs=
61 cd $XBPS_MASTERDIR || return 1
62 msg_normal "${pkgver:-xbps-src}: removing autodeps, please wait...\n"
63 tmplogf=$(mktemp) || exit 1
64 errlogf=$(mktemp) || exit 1
66 remove_pkg_cross_deps
67 $XBPS_RECONFIGURE_CMD -a >> $tmplogf 2>&1
68 prevs=$(stat_size $tmplogf)
69 echo yes | $XBPS_REMOVE_CMD -Ryod 2>> $errlogf 1>> $tmplogf
70 rval=$?
71 while [ $rval -eq 0 ]; do
72 local curs=$(stat_size $tmplogf)
73 if [ $curs -eq $prevs ]; then
74 break
76 prevs=$curs
77 echo yes | $XBPS_REMOVE_CMD -Ryod 2>> $errlogf 1>> $tmplogf
78 rval=$?
79 done
81 if [ $rval -ne 0 ]; then
82 msg_red "${pkgver:-xbps-src}: failed to remove autodeps: (returned $rval)\n"
83 cat $tmplogf && rm -f $tmplogf
84 cat $errlogf && rm -f $errlogf
85 msg_error "${pkgver:-xbps-src}: cannot continue!\n"
87 rm -f $tmplogf
88 rm -f $errlogf
91 remove_pkg_wrksrc() {
92 if [ -d "$wrksrc" ]; then
93 msg_normal "$pkgver: cleaning build directory...\n"
94 rm -rf "$wrksrc" 2>/dev/null || chmod -R +wX "$wrksrc" # Needed to delete Go Modules
95 rm -rf "$wrksrc"
99 remove_pkg_statedir() {
100 if [ -d "$XBPS_STATEDIR" ]; then
101 rm -rf "$XBPS_STATEDIR"
105 remove_pkg() {
106 local cross="$1" _destdir f
108 [ -z $pkgname ] && msg_error "nonexistent package, aborting.\n"
110 if [ -n "$cross" ]; then
111 _destdir="$XBPS_DESTDIR/$XBPS_CROSS_TRIPLET"
112 else
113 _destdir="$XBPS_DESTDIR"
116 [ ! -d ${_destdir} ] && return
118 for f in ${sourcepkg} ${subpackages}; do
119 if [ -d "${_destdir}/${f}-${version}" ]; then
120 msg_normal "$f: removing files from destdir...\n"
121 rm -rf ${_destdir}/${f}-${version}
123 if [ -d "${_destdir}/${f}-dbg-${version}" ]; then
124 msg_normal "$f: removing dbg files from destdir...\n"
125 rm -rf ${_destdir}/${f}-dbg-${version}
127 if [ -d "${_destdir}/${f}-32bit-${version}" ]; then
128 msg_normal "$f: removing 32bit files from destdir...\n"
129 rm -rf ${_destdir}/${f}-32bit-${version}
131 rm -f ${XBPS_STATEDIR}/${f}_${cross}_subpkg_install_done
132 rm -f ${XBPS_STATEDIR}/${f}_${cross}_prepkg_done
133 done
134 rm -f ${XBPS_STATEDIR}/${sourcepkg}_${cross}_install_done
135 rm -f ${XBPS_STATEDIR}/${sourcepkg}_${cross}_pre_install_done
136 rm -f ${XBPS_STATEDIR}/${sourcepkg}_${cross}_post_install_done