blob: 0b79871b216ce8139c4c38e1cf5c45e6100db74a (
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
|
#!/bin/bash
work_dir=$1
arch=$2
# A func to download, build ...
build_aur () {
old_dir=`pwd`
# Prep with a build-user:
useradd -m -G wheel builder
sed -i 's/# %wheel ALL=(ALL) NO/%wheel ALL=(ALL) NO/' /etc/sudoers
cd /tmp
rm -rf $1 $1.tar.gz
wget "https://aur.archlinux.org/cgit/aur.git/snapshot/$1.tar.gz"
tar xvzf "$1.tar.gz"
cd $1
build_dir=$(pwd)
chown -R builder.builder /tmp/$1
echo " => Buiilding $1"
su - builder -c "(cd ${build_dir}; makepkg -s --noconfirm)" >/dev/null 2>&1
if [[ -n $3 ]]; then
echo " => Adding $1 to local AUR mirror"
mkdir -p $3
sh -c "cp *.xz $3/$1.pkg.tar.xz"
sh -c "repo-add $3/aur_offline.db.tar.gz $3/*.xz"
if [[ -z $(cat ${old_dir}/packages.both | grep $1) ]]; then
echo " => Adding $1 to packages.both (from AUR)"
echo "$1" >> ${old_dir}/packages.both
fi
fi
sh -c "mv *.xz ${old_dir}/$2/$1.pkg.tar.xz"
cd ${old_dir}
userdel builder
rm -rf /home/builder
rm -rf /tmp/$1
rm /tmp/$1.tar.gz
}
echo "Starting to sync upstream changes to mirror."
mkdir -p ${work_dir}/${arch}/airootfs/srv/http/archlinux/arch_offline/os/x86_64
rm -rf /tmp/sync /tmp/local
echo " => Retrieving packages"
pacman --noconfirm --dbpath /tmp/ -Syu -w --cachedir ${work_dir}/${arch}/airootfs/srv/http/archlinux/arch_offline/os/${arch} base base-devel syslinux efitools haveged intel-ucode memtest86+ mkinitcpio-nfs-utils nbd zsh git python python-systemd nano sudo iptables dhclient dnsmasq openssh sshfs openssl openvpn gcc openvpn powerdns postgresql sqlite go c-ares http-parser libuv nodejs-less mariadb memcached bzip2 glib2 libev lua51 ragel zlib >/dev/null 2>&1
echo " => Retrieving ISO specific packages"
pacman --noconfirm --dbpath /tmp/ -Syu -w --cachedir ${work_dir}/${arch}/airootfs/srv/http/archlinux/arch_offline/os/${arch} $(cat ${work_dir}/../packages.both)
echo " => Building AUR (Adding packages to packages.both as we go along)"
build_aur "gogs-git" "${work_dir}/${arch}/airootfs/srv/http/archlinux/arch_offline/os/${arch}"
build_aur "lighttpd2-git" "${work_dir}/${arch}/airootfs/srv/http/archlinux/arch_offline/os/${arch}" "/tmp/aur_offline"
if [[ -z $(cat ${work_dir}/pacman.conf | grep '\[aur_offline\]') ]]; then
echo "Adding offline mirror to build bubble"
echo "[aur_offline]" >> ${work_dir}/pacman.conf
echo "Server = file:///tmp/aur_offline" >> ${work_dir}/pacman.conf
echo "SigLevel = Optional TrustAll" >> ${work_dir}/pacman.conf
fi
echo " => Adding packages to offline database"
sh -c "repo-add --new ${work_dir}/${arch}/airootfs/srv/http/archlinux/arch_offline/os/${arch}/arch_offline.db.tar.gz ${work_dir}/${arch}/airootfs/srv/http/archlinux/arch_offline/os/${arch}/*.pkg.tar.xz" >/dev/null 2>&1
pacman --config ${work_dir}/pacman.conf -Sy
pacman -Sy
echo "Done syncing offline mirror."
|