blob: 1fbd696ea841b09fcf1ee4728a0977ab292a0d2e (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
|
#!/bin/bash
# Lic: GPLv3+
# Author: Nicolas Reynolds <fauno@kiwwwi.com.ar>
# Local release of mips64el packages + clean ABS sync
# Called by HOOKLOCALRELEASE
# $1 repo
# $2+ packages
source /etc/makepkg.conf
source /etc/libretools.conf
source /etc/libretools.d/prtools.conf
usage() {
echo "$0 repo package1 [ package2 ... packageN ]"
echo
echo " release packages locally on ${PKGDEST}/stage3."
echo " and make a clean ABS sync "
}
##
# usage : get_full_version( $epoch, $pkgver, $pkgrel )
# return : full version spec, including epoch (if necessary), pkgver, pkgrel
##
get_full_version() {
if [[ $1 -eq 0 ]]; then
# zero epoch case, don't include it in version
echo $2-$3
else
echo $1:$2-$3
fi
}
repo=$1; shift
repo-add "${PKGDEST}/stage3.db.tar.gz" $@
# Get all needed sources
source PKGBUILD
fullver=$(get_full_version ${epoch:-0} ${pkgver} ${pkgrel})
pkgbase=${pkgbase:-$pkgname}
msg "Adding packages to [stage3]..."
repo-add $@
for name in ${pkgname[@]}; do
msg2 "${name} ${fullver}"
repo-add ${PKGDEST}/stage3.db.tar.gz ${PKGDEST}/${name}-${fullver}-*.pkg.tar.*
done
# Copy PKGBUILD and sources
msg "Adding clean source to $WORKDIR/abs/${CARCH}/$repo/$pkgbase"
dest_dir="$WORKDIR/abs/${CARCH}/$repo/$pkgbase"
mkdir -p ${dest_dir} >/dev/null
rm -rf ${dest_dir}/* # if package existed already there
eval $(grep '^CARCH=' "$copydir/etc/makepkg.conf") # CARCH might be used in PKGBUILD to select sources.
export CARCH
source=($(. "PKGBUILD"; echo ${source[@]}))
cp --remove-destination "PKGBUILD" "${dest_dir}" || echo "copy 1"
for f in ${source[@]}; do
basef=$(echo $f | sed 's|::.*||' | sed 's|^.*://.*/||g')
if [ -f "$basef" ]; then
cp --remove-destination "$basef" "${dest_dir}"
fi
done
( . PKGBUILD
for i in 'changelog' 'install'; do
filelist=$(sed -n "s/^[[:space:]]*$i=//p" PKGBUILD)
for file in $filelist; do
# evaluate any bash variables used
eval file=${file}
if [ -f "$file" ]; then
cp --remove-destination "$file" "${dest_dir}"
fi
done
done
)
# END add clean abs
# Commit the changes
pushd "$dest_dir" >/dev/null
source "${dest_dir}/PKGBUILD"
epoch=${epoch:-0}
fullver=$(get_full_version ${epoch} ${pkgver} ${pkgrel})
pkgbase=${pkgbase:-${pkgname[0]}}
git add "${dest_dir}/." # add using .gitignore
git commit -m "${pkgbase}-${fullver} ${repo}" >/dev/null && msg2 "${pkgbase} ${fullver} ${repo}"
popd >/dev/null
# END commit
exit $?
|