1 |
#!/bin/sh |
2 |
|
3 |
set -e |
4 |
|
5 |
distro=$1 |
6 |
arch=$2 |
7 |
perlchroot=$3 |
8 |
if [ -z "$distro" ] || [ -z "$arch" ]; then |
9 |
echo "usage: $0 <distro> <arch> [<iurt chroot>]" |
10 |
exit 1 |
11 |
fi |
12 |
|
13 |
media=core/release |
14 |
repository=http://repository.mageia.org/distrib/ |
15 |
|
16 |
if [ -z "$perlchroot" ]; then |
17 |
perlchroot=$(echo | iurt --shell -r $distro $arch 2>&1 | perl -lne '/dumping to a chrooted shell into (.*)/ and print $1') |
18 |
fi |
19 |
|
20 |
echo "\ |
21 |
set -x; \ |
22 |
set -e; \ |
23 |
skip() { echo \$*; }; \ |
24 |
sudo urpmi.update -a; \ |
25 |
sudo urpmi mgarepo; \ |
26 |
mkdir -p ~/.mgarepo; \ |
27 |
perl -pe 's/svn\+ssh:/svn:/' /etc/mgarepo.conf > ~/.mgarepo/config; \ |
28 |
perlapis_path=\$HOME/perlapis.txt; \ |
29 |
[ -e \$perlapis_path ] || rpm -q --provides perl-base | grep ^perlapi > \$perlapis_path; \ |
30 |
for p in perl perl-List-MoreUtils perl-URPM perl-Locale-gettext; do mgarepo getsrpm -l -n \$p; done; \ |
31 |
rpm -ivh *.src.rpm; \ |
32 |
sudo urpmi --auto --no-verify-rpm rpmbuild/SPECS/*.spec; \ |
33 |
rpmbuild -ba rpmbuild/SPECS/perl.spec; \ |
34 |
sudo rpm -Uvh --nodeps --force \$(ls rpmbuild/RPMS/*/perl-*.rpm | grep -v debuginfo); \ |
35 |
PERL5LIB=\$(rpm -ql perl-List-MoreUtils | perl -ne 's!/List/MoreUtils.pm!! && print') LIST_MOREUTILS_PP=1 rpmbuild -ba rpmbuild/SPECS/perl-List-MoreUtils.spec; \ |
36 |
sudo rpm -Uvh --force rpmbuild/RPMS/*/perl-List-MoreUtils-*.rpm; \ |
37 |
rpmbuild -ba rpmbuild/SPECS/perl-URPM.spec; \ |
38 |
rpmbuild -ba rpmbuild/SPECS/perl-Locale-gettext.spec; \ |
39 |
sudo rpm -Uvh --force rpmbuild/RPMS/*/perl-URPM-*.rpm rpmbuild/RPMS/*/perl-Locale-gettext-*.rpm; \ |
40 |
updatepkgs() { spec=\$1; toupdate=; while read line; do set -- \$line; name=\$1; path=\$2; rpm -q \$name --quiet && toupdate=\"\$toupdate \$path\"; done < <(rpm -q --specfile \$spec --qf '%{name} rpmbuild/RPMS/%{arch}/%{name}-%{version}-%{release}.%{arch}.rpm\n' | egrep -v -- '-(debuginfo|__restore__)-'); [ -n \"\$toupdate\" ] && sudo rpm -Uvh --force \$toupdate; }; \ |
41 |
rebuild() { p=\$1; mgarepo getsrpm -l -n \$p; rpm -ivh \@*:\$p-*.src.rpm; spec=rpmbuild/SPECS/\$p.spec; sudo urpmi --auto --no-verify-rpm \$spec; rpmbuild -ba \$spec; updatepkgs \$spec; }; \ |
42 |
rebuild perl-HTML-Parser; \ |
43 |
pkgs=\$(LC_ALL=C rpm -q --qf '%{SOURCERPM}\n' --whatrequires \$(cat \$perlapis_path) | perl -lne '/^(\S+)-[^-]+-[^-]+\$/ and print \$1' | uniq); for p in \$pkgs; do rebuild \$p; done; \ |
44 |
" | iurt --shell -r $distro $arch --use-old-chroot $perlchroot --chrooted-urpmi -m $media -- $repository |
45 |
echo $perlchroot |