index : releng | |
Archlinux32 release engineering | gitolite user |
summaryrefslogtreecommitdiff |
author | Andreas Baumann <mail@andreasbaumann.cc> | 2022-02-03 20:52:12 +0100 |
---|---|---|
committer | Andreas Baumann <mail@andreasbaumann.cc> | 2022-02-03 20:52:12 +0100 |
commit | 015efed85b2d9a99da9f4487680d55829573ba71 (patch) | |
tree | d536a97f7b4b86276c9a34aaaa018755c0607fd5 | |
parent | 2ff8e857a3f6d1772012f4c7cfee74b4c35c2f39 (diff) |
-rwxr-xr-x | Attic/build-dual.sh | 57 | ||||
-rwxr-xr-x | Attic/build-i686.sh | 49 | ||||
-rwxr-xr-x | Attic/build-isos-nlopc43 | 131 | ||||
-rwxr-xr-x | Attic/update-website-old | 334 |
diff --git a/Attic/build-dual.sh b/Attic/build-dual.sh deleted file mode 100755 index 9f14a5f..0000000 --- a/Attic/build-dual.sh +++ /dev/null @@ -1,57 +0,0 @@ -#!/bin/bash -mkdir build-dual -cd build-dual - -cat << "END" > Vagrantfile -Vagrant.configure("2") do |config| - config.vm.box = "archlinux/archlinux" - config.vm.provision "shell", path: "provision.sh", run: "once" -end -END - -cat << "__ENDOFPROVISION.SH__" > provision.sh -#!/bin/bash -set -e -ln -svf /usr/share/zoneinfo/America/Detroit /etc/localtime - -pacman --noconfirm -Sy archlinux-keyring - -tee -a /etc/pacman.conf << "_PACMANCONF_" -[releng] -Include = /etc/pacman.d/mirrorlist32 -_PACMANCONF_ - -cat << "__ENDOFARCH32MIRRORLIST__" > /etc/pacman.d/mirrorlist32 -Server = https://32.arlm.tyzoid.com/$arch/$repo -Server = http://arch32.mirrors.simplysam.us/$arch/$repo -Server = https://mirror.archlinux32.org/$arch/$repo -__ENDOFARCH32MIRRORLIST__ - -pacman --noconfirm -Sy archlinux32-keyring-transition -pacman --noconfirm -R archlinux32-keyring-transition -pacman --noconfirm -S archlinux32-keyring -pacman --noconfirm -Su archiso-dual - -cat << "__ENDOFARCH32MIRRORLIST__" > /etc/pacman.d/mirrorlist32 -Server = https://multiarch.arch32.tyzoid.com/$repo/os/$arch -__ENDOFARCH32MIRRORLIST__ - -cat << "__MIRRORLIST__" | tee /etc/pacman.d/mirrorlist -Server = https://multiarch.arch32.tyzoid.com/$repo/os/$arch -__MIRRORLIST__ - -cat << "__ENDOFISOBUILDSCRIPT__" | tee /root/buildiso.sh >/dev/null -#!/bin/bash -/usr/share/archiso/configs/releng/build.sh -v -V"$(date -d"$(date -d "+2day" +%Y-%m-01T12:00:00Z)" +%Y.%m.%d)" -L"ARCH_$(date -d"$(date -d "+2day" +%Y-%m-01T12:00:00Z)" +%Y%m)" -__ENDOFISOBUILDSCRIPT__ -chmod +x /root/buildiso.sh -__ENDOFPROVISION.SH__ - -vagrant up -vagrant ssh -c "sudo reboot"; -vagrant ssh -c "sudo bash -c '/root/buildiso.sh'"; - -vagrant ssh-config > config.txt -scp -rF config.txt default:/home/vagrant/out ../ - -#vagrant destroy -f diff --git a/Attic/build-i686.sh b/Attic/build-i686.sh deleted file mode 100755 index 171a690..0000000 --- a/Attic/build-i686.sh +++ /dev/null @@ -1,49 +0,0 @@ -#!/bin/bash -mkdir build-i686 -cd build-i686 - -cat << "END" > Vagrantfile -Vagrant.configure("2") do |config| - config.vm.box = "archlinux/archlinux" - config.vm.provision "shell", path: "provision.sh", run: "once" -end -END - -cat << "__ENDOFPROVISION.SH__" > provision.sh -#!/bin/bash -set -e -ln -svf /usr/share/zoneinfo/America/Detroit /etc/localtime - -pacman --noconfirm -Sy archlinux-keyring - -tee -a /etc/pacman.conf << "_PACMANCONF_" -[releng] -Include = /etc/pacman.d/mirrorlist32 -_PACMANCONF_ - -cat << "__ENDOFARCH32MIRRORLIST__" > /etc/pacman.d/mirrorlist32 -Server = https://32.arlm.tyzoid.com/$arch/$repo -Server = http://arch32.mirrors.simplysam.us/$arch/$repo -Server = https://mirror.archlinux32.org/$arch/$repo -__ENDOFARCH32MIRRORLIST__ - -pacman --noconfirm -Sy archlinux32-keyring-transition -pacman --noconfirm -R archlinux32-keyring-transition -pacman --noconfirm -S archlinux32-keyring -pacman --noconfirm -Syu archiso32 - -cat << "__ENDOFISOBUILDSCRIPT__" | tee /root/buildiso.sh >/dev/null -#!/bin/bash -/usr/share/archiso/configs/releng/build.sh -v -V"$(date -d"$(date -d "+2day" +%Y-%m-01T12:00:00Z)" +%Y.%m.%d)" -L"ARCH_$(date -d"$(date -d "+2day" +%Y-%m-01T12:00:00Z)" +%Y%m)" -__ENDOFISOBUILDSCRIPT__ -chmod +x /root/buildiso.sh -__ENDOFPROVISION.SH__ - -vagrant up -vagrant ssh -c "sudo reboot"; -vagrant ssh -c 'sudo bash -c "/root/buildiso.sh"'; - -vagrant ssh-config > config.txt -scp -rF config.txt default:/home/vagrant/out ../ - -#vagrant destroy -f diff --git a/Attic/build-isos-nlopc43 b/Attic/build-isos-nlopc43 deleted file mode 100755 index 5541fe6..0000000 --- a/Attic/build-isos-nlopc43 +++ /dev/null @@ -1,131 +0,0 @@ -#!/bin/bash - -# to be executed on nlopc43 ... sry for all the hard-coded stuff - -set -e - -archive='/mnt/archlinux32archive' -destination='/mnt/archlinux32/archisos' -base_dir=$( - readlink -e "${0%/*}" -) - -case "$(hostname -s)" in - 'nlopc43') - echo 'build isos on nlopc46 ...' - rsync "$0" nlopc46.ioq.uni-jena.de:/tmp/ - isos=$( - ssh nlopc46.ioq.uni-jena.de "/tmp/${0##*/}" - ) - echo '... done.' - - if [ -z "${isos}" ]; then - echo 'no isos were built!?' - exit 1 - fi - - echo 'sign and upload isos ...' - - tmp_dir=$(mktemp -d) - trap 'cd "${base_dir}"; rm -rf --one-file-system "${tmp_dir}"' EXIT - - rsync -av $(printf 'nlopc46.ioq.uni-jena.de:%s\n' ${isos}) "${tmp_dir}/" - - isos=$( - printf '%s\n' "${isos}" | \ - sed 's,^.*/,,' - ) - - mountpoint -q "${archive}" || sudo mount "${archive}" - mountpoint -q "${destination%/*}" || sudo mount "${destination%/*}" - - cd "${tmp_dir}" - cp "${destination}/sha512sums" . - cp "${destination}/md5sums" . - - date=$( - printf '%s\n' "${isos}" \ - | sed 's/^.*-\([^-]\+\)-[^-]\+$/\1/' \ - | sort -u - ) - - for iso in ${isos}; do - gpg --local-user '33CA3597B0D161AAE4173F65C17F1214114574A4' --batch --no-tty --detach-sign "${iso}" </dev/null - done - sha512sum ${isos} >> sha512sums - md5sum ${isos} >> md5sums - sort -k2,2 sha512sums --output sha512sums - sort -k2,2 md5sums --output md5sums - - cp $( - printf '%s\n' ${isos} - printf '%s.sig\n' ${isos} - ) sha512sums md5sums "${destination}/" - - date +%s > "${destination%/*}/lastupdate" - - "${base_dir}/al32-mktorrent.sh" -d "${date}" -t "hefur@archlinux32:" - - mv $( - printf '%s.torrent\n' ${isos} - ) feed_dual.rss feed_i686.rss "${destination}/" - -# --torrent-seed-dual "https://pool.mirror.archlinux32.org/archisos/archlinux32-${date}-dual.iso.torrent" \ -# - git -C "${base_dir}/../archweb32" pull --ff-only - "${base_dir}/update-website" \ - --torrent-seed-i686 "https://pool.mirror.archlinux32.org/archisos/archlinux32-${date}-i686.iso.torrent" \ - --update-iso - git -C "${base_dir}/../archweb32" commit 'download/index.html' -m 'download/index.html: new isos ('"${date}"')' - git -C "${base_dir}/../archweb32" push - - find "${destination}" \( -name 'archlinux32-*' -o -name 'archlinux-*' \) -not -name 'archlinux32-'"${date}"'-*' \ - | while read -r to_delete; do - if diff -q "${to_delete}" "${archive}/iso/${to_delete#${destination}/}" >/dev/null; then - rm "${to_delete}" - printf '%s\n' "${to_delete}" \ - | sed ' - s@^.*/@@ - s/\./\\./g - s@.*@/ \0$/d@ - ' - fi - done \ - >> "${tmp_dir}/delete-regex" - sed -i -f "${tmp_dir}/delete-regex" "${destination}/sha512sums" - sed -i -f "${tmp_dir}/delete-regex" "${destination}/md5sums" - - echo '... done.' - ;; - 'nlopc46') - if [ "$(whoami)" = 'root' ]; then - cd "/usr/share/archiso/configs/$1" - tmp_dir=$(mktemp -d) - trap 'rm -rf --one-file-system "${tmp_dir}"' EXIT - arch=i686 setarch i686 mkarchiso -o "$2" -w "${tmp_dir}" -v /usr/share/archiso/configs/$1 - chown "${SUDO_USER}:users" "$2/"archlinux*.iso - exit - fi - - rm -rf --one-file-system ~/archisos - mkdir ~/archisos - - >&2 echo 'build i686-iso ...' - - >&2 sudo "$0" releng32 ~/archisos/ - - >&2 echo '... done.' - -# >&2 echo 'build dual-iso ...' - -# >&2 sudo "$0" releng-dual ~/archisos/ - -# >&2 echo '... done.' - - find ~/archisos/ -type f - ;; - *) - >&2 echo 'execute on nlopc43 (or nlopc46) - sry' - exit 1 - ;; -esac diff --git a/Attic/update-website-old b/Attic/update-website-old deleted file mode 100755 index 95f12ad..0000000 --- a/Attic/update-website-old +++ /dev/null @@ -1,334 +0,0 @@ -#!/bin/bash - -set -e - -mirror_dir='/mnt/archlinux32' -website_dir='/usr/src/archlinux32/archweb32' - -usage() { - >&2 echo '' - >&2 echo 'update-website: update download, torrent, magnet links on' - >&2 echo ' the Arch32 website' - >&2 echo '' - >&2 echo 'possible options:' - >&2 echo ' -h|--help: Show this help and exit.' - >&2 echo ' --magnet-i686 $link:' - >&2 echo ' Set archiso-i686 magnet link to $link.' - >&2 echo ' --magnet-dual $link:' - >&2 echo ' Set archiso-dual magnet link to $link.' - >&2 echo ' --torrent-seed-i686 $link:' - >&2 echo ' Set archiso-i686 torrent link to $link.' - >&2 echo ' --torrent-seed-dual $link:' - >&2 echo ' Set archiso-dual torrent link to $link.' - >&2 echo ' --website-dir $dir:' - >&2 echo ' Set website-dir to $dir.' - >&2 echo ' --mirror-dir $dir:' - >&2 echo ' Set mirror-dir to $dir.' - >&2 echo ' --update-iso:' - >&2 echo ' Update information about iso, too.' - [ -z "$1" ] && exit 1 || exit "$1" -} - -eval set -- "$( - getopt -o h \ - --long help \ - --long magnet-i686: \ - --long magnet-dual: \ - --long torrent-seed-i686: \ - --long torrent-seed-dual: \ - --long mirror-dir: \ - --long website-dir: \ - --long update-iso \ - -n "$(basename "$0")" -- "$@" || \ - echo usage -)" - -tmp_dir="$(mktemp -d)" -cleanup() { - if mountpoint -q "${tmp_dir}"; then - sudo umount "${tmp_dir}" - fi - rm -rf --one-file-system "${tmp_dir}" -} -trap cleanup EXIT - -while [ $# -gt 0 ]; do - case "$1" in - '--magnet-i686') - if [ -s "${tmp_dir}/magnet.i686" ]; then - printf 'Option %s given multiple times.\n' "$1" - usage - fi - shift - echo "$1" | \ - tr -d '\n' > \ - "${tmp_dir}/magnet.i686" - ;; - '--magnet-dual') - if [ -s "${tmp_dir}/magnet.dual" ]; then - printf 'Option %s given multiple times.\n' "$1" - usage - fi - shift - echo "$1" | \ - tr -d '\n' > \ - "${tmp_dir}/magnet.dual" - ;; - '--torrent-seed-i686') - if [ -s "${tmp_dir}/torrent-seed.i686" ]; then - printf 'Option %s given multiple times.\n' "$1" - usage - fi - shift - echo "$1" | \ - tr -d '\n' > \ - "${tmp_dir}/torrent-seed.i686" - ;; - '--torrent-seed-dual') - if [ -s "${tmp_dir}/torrent-seed.dual" ]; then - printf 'Option %s given multiple times.\n' "$1" - usage - fi - shift - echo "$1" | \ - tr -d '\n' > \ - "${tmp_dir}/torrent-seed.dual" - ;; - '--mirror-dir') - if [ -s "${tmp_dir}/mirror_dir.set" ]; then - printf 'Option %s given multiple times.\n' "$1" - usage - fi - shift - mirror_dir="$1" - echo "$mirror_dir" > "${tmp_dir}/mirror_dir.set" - ;; - '--website-dir') - if [ -s "${tmp_dir}/website_dir.set" ]; then - printf 'Option %s given multiple times.\n' "$1" - usage - fi - shift - website_dir="$1" - echo "$website_dir" > "${tmp_dir}/website_dir.set" - ;; - '--update-iso') - if [ -s "${tmp_dir}/update_iso.set" ]; then - printf 'Option %s given multiple times.\n' "$1" - usage - fi - echo "true" > "${tmp_dir}/update_iso.set" - ;; - '--help'|'-h') - usage 0 - ;; - '--') - shift - break - ;; - *) - >&2 printf 'Whoops, option "%s" is not yet implemented!\n' "$1" - exit 42 - ;; - esac - shift -done - -if [ $# -gt 0 ]; then - >&2 echo 'Too many arguments.' - exit 2 -fi - -( - printf ' <div id="download-mirrors">\n' - curl -Ss 'https://archlinux32.org/mirrorlist/?country=all&hash='"$( - head -c 24 /dev/urandom | \ - base64 -w0 - )" | \ - sed ' - 0,/^$/d - /^$/d - /^## /{ - s|^## |\n </ul>\n\n <h5>| - s|$|</h5>\n\n <ul>\n| - '"$( - while read -r flag country; do - printf \ - 's|<h5>%s</h5>|<h5><span class="fam-flag fam-flag-%s" title="%s"></span> %s</h5>|\n' \ - "${country}" \ - "${flag}" \ - "${country}" \ - "${country}" - done < \ - "${0%/*}/flag-names" - )"' - } - /^#Server = /{ - s|^#Server = \(.*//\)\([^/]*\)\(/.*\)\$arch/\$repo/\?$|'"$( - printf \ - ' %s\\n' \ - '<li><a href="\1\2\3archisos/"' \ - ' title="Download from \1\2\3">\2</a></li>' - )"'| - } - ' | \ - sed ' - 0,/<\/ul>/d - ' - printf ' </ul>\n\n' - printf ' </div>\n' -) | \ - sed -i ' - :emptyLines - /^\n*$/{ - N - bemptyLines - } - /^\(\s*\n\)*\s*<div id="download-mirrors">$/{ - :a - s|^.*</div>|| - tb - $!N - ba - :b - r /dev/stdin - } - ' "${website_dir}/download/index.html" - -latest_iso_date="$( - ls "${mirror_dir}/archisos" | \ - grep '^archlinux32-[0-9.]\+-\(dual\|i.86\)\.iso$' | \ - sed 's@^archlinux32-\([0-9.]\+\)-\(dual\|i.86\)\.iso$@\1@' | \ - sort -k1,1 -u | \ - tail -n1 -)" - -declare -A desc -desc['i686']='i686 only' -# desc['dual']='dual bootable' - -for arch in "${!desc[@]}"; do - if [ ! -s "${tmp_dir}/magnet.${arch}" ]; then - continue - fi - if ! tr '&' '\n' < \ - "${tmp_dir}/magnet.${arch}" | \ - grep -qxF "dn=archlinux32-${latest_iso_date}-${arch}.iso"; then - >&2 printf 'Magnet link for %s is not for %s, skipping.\n' "${arch}" "archlinux32-${latest_iso_date}-${arch}.iso" - continue - fi - sed -i ' - /<li><a href="magnet:?.*-'"${arch}"'\.iso/ s/href="[^"]\+"/href="'"$(sed 's|&|\\&|g' "${tmp_dir}/magnet.${arch}")"'"/ - /title="Magnet link">Magnet link for \S\+ ('"${desc["${arch}"]}"')/ s/>Magnet link for \S\+ />Magnet link for '"${latest_iso_date}"' / - ' "${website_dir}/download/index.html" -done - -for arch in "${!desc[@]}"; do - if [ ! -s "${tmp_dir}/torrent-seed.${arch}" ]; then - continue - fi - if ! grep -qF "archlinux32-${latest_iso_date}-${arch}" "${tmp_dir}/torrent-seed.${arch}"; then - >&2 printf 'Torrent seed for %s is not for %s, skipping.\n' "${arch}" "archlinux32-${latest_iso_date}-${arch}.iso" - continue - fi - sed -i ' - /<li><a href="http.*-'"${arch}"'\.iso.torrent/ s/href="[^"]\+"/href="'"$(sed -e 's_/_\\/_g' "${tmp_dir}/torrent-seed.${arch}")"'"/ - /title="Download torrent">Torrent for \S\+ ('"${desc["${arch}"]}"')/ s/>Torrent for \S\+ />Torrent for '"${latest_iso_date}"' / - ' "${website_dir}/download/index.html" -done - -if [ ! -s "${tmp_dir}/update_iso.set" ]; then - exit -fi - -unset kernels -unset sizes -declare -A sizes -declare -A md5 -declare -A sha512 - -for arch in "${!desc[@]}"; do - iso="${mirror_dir}/archisos/archlinux32-${latest_iso_date}-${arch}.iso" - if [ ! -f "${iso}" ]; then - >&2 echo "Can't find iso to arch ${arch}." - exit 1 - fi - sudo mount -o loop,ro "${iso}" "${tmp_dir}" - kernels="$( - printf '%s\n' ${kernels} $( - find "${tmp_dir}/arch" \ - -maxdepth 1 \ - -name 'pkglist.*.txt' \ - -not -name 'pkglist.x86_64.txt' \ - -execdir cat {} \; \ - | sed ' - s/^linux\s\+\([^-]\+-[^-]\+\)$/\1/ - t - d - ' - ) | \ - sort -u - )" - sudo umount "${tmp_dir}" - sizes["${arch}"]="$( - printf 'scale=1; %s/1024/1024\n' "$(stat -c'%s' "${iso}")" | \ - bc - )" - md5["${arch}"]="$( - grep "\s${iso##*/}\$" "${mirror_dir}/archisos/md5sums" | \ - awk '{print $1}' - )" - sha512["${arch}"]="$( - grep "\s${iso##*/}\$" "${mirror_dir}/archisos/sha512sums" | \ - awk '{print $1}' - )" - sign_keys="$( - printf '%s\n' ${sign_keys} $( - gpg --status-fd=1 --verify "${iso}.sig" "${iso}" 2> /dev/null | \ - grep '^\[GNUPG:] VALIDSIG [0-9A-F]\+ ' | \ - cut -d' ' -f3 - ) | \ - sort -u - )" -done - -if [ $(echo "${kernels}" | grep -c '\S') -ne 1 ]; then - >&2 echo 'Not exactly one kernel on the iso:' - >&2 echo "${kernels}" - exit 1 -fi - -if [ $(echo "${sign_keys}" | grep -c '\S') -ne 1 ]; then - >&2 echo 'Not exactly one key used for signing the iso:' - >&2 echo "'${sign_keys}'" - exit 1 -fi - -if [ "${sign_keys}" != '33CA3597B0D161AAE4173F65C17F1214114574A4' ]; then - >&2 printf 'Isos are signed with key %s instead of %s.\n' \ - "${sign_keys}" \ - '33CA3597B0D161AAE4173F65C17F1214114574A4' - exit 1 -fi - -values=( - 'Current Release' "${latest_iso_date}" - 'Included Kernel' "${kernels}" - 'PGP Key' '<a href="http://www.archlinux32.org/buildmaster/gpg-keys.php?fp='"${sign_keys}"'">'"${sign_keys}"'</a>' -) -for arch in 'i686' 'dual'; do - values+=( - "ISO Size (${desc["${arch}"]})" "${sizes["${arch}"]} MB" - "MD5 (${desc["${arch}"]})" "${md5["${arch}"]}" - "SHA512 (${desc["${arch}"]})" "${sha512["${arch}"]}" - ) -done - -sed -i "$( - printf '/%s:/s|</strong>.*</li>|</strong> %s</li>|\n' "${values[@]}" - printf '/archlinux32-[0-9.]\+-%s\.iso\.sig/s@archlinux32-[0-9.]\+-%s\.iso\.sig@archlinux32-%s-%s.iso.sig@\n' \ - 'i686' 'i686' "${latest_iso_date}" 'i686' \ - 'dual' 'dual' "${latest_iso_date}" 'dual' -) -" \ - "${website_dir}/download/index.html" |