Send patches - preferably formatted by git format-patch - to patches at archlinux32 dot org.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xbin/check38
-rwxr-xr-xbin/setup36
-rwxr-xr-xbin/update46
-rw-r--r--conf/default.conf12
-rw-r--r--conf/local.conf0
-rw-r--r--doc/LINKS4
-rw-r--r--doc/TODOS10
-rw-r--r--html/.gitkeep0
-rw-r--r--templates/main.m4659
9 files changed, 805 insertions, 0 deletions
diff --git a/bin/check b/bin/check
new file mode 100755
index 0000000..43a047c
--- /dev/null
+++ b/bin/check
@@ -0,0 +1,38 @@
+#!/bin/oksh
+
+BASE="${0%/*}/.."
+. "${BASE}/conf/default.conf"
+
+if test ! -d "${state_dir}"; then
+ echo "no upstream git state repo of packages.. exiting.."
+ exit 1
+fi
+
+if test ! -d "${packages_dir}"; then
+ echo "no directory for uptream package descriptions.. exiting.."
+ exit 1
+fi
+
+find "${state_dir}"/{core,extra}-{any,x86_64} -type f > /tmp/update_packages.$$
+nof_packages=`cat /tmp/update_packages.$$ | wc -l`
+
+nof_checked_out_packages=`find "${packages_dir}" -type f -name PKGBUILD | wc -l`
+
+echo "${nof_packages} packages in state repo"
+echo "${nof_checked_out_packages} packages are checked out"
+
+exit 0
+
+# find duplicate entries in state repo
+for duplicate in `find "${state_dir}"/{core,extra}-{any,x86_64} -type f | \
+ rev | cut -f 1 -d / | rev | sort | uniq -D | uniq`; do
+ for packages in `ls ${state_dir}/{core,extra}-{any,x86_64}/$duplicate 2>/dev/null`; do
+ for instance in `echo $packages | rev | cut -f 1,2 -d / | rev`; do
+ echo -n "${instance} "
+ cat "${state_dir}/$instance"
+ done
+ done
+done
+
+# TODO: update all single package directories
+# TODO: update all AUR package directories
diff --git a/bin/setup b/bin/setup
new file mode 100755
index 0000000..f1e252c
--- /dev/null
+++ b/bin/setup
@@ -0,0 +1,36 @@
+#!/bin/oksh
+
+BASE="${0%/*}/.."
+. "${BASE}/conf/default.conf"
+
+echo "base dir: ${base_dir}"
+echo "script dir: ${script_dir}"
+echo "state dir: ${state_dir}"
+echo "packages dir: ${packages_dir}"
+
+if test ! -d "${state_dir}"; then
+ echo "no upstream git state repo of packages.. cloning.."
+ git clone https://gitlab.archlinux.org/archlinux/packaging/state.git "${state_dir}"
+else
+ echo "upstream git state repo exists.."
+fi
+
+if test ! -d "${packages_dir}"; then
+ echo "creating directory for uptream package description.."
+ mkdir -p "${packages_dir}"
+else
+ echo "package directory exists"
+fi
+
+for repo in core extra; do
+ for arch in any x86_64; do
+ if test ! -d "${packages_dir}/${repo}-${arch}"; then
+ echo "package directory ${packages_dir}/${repo}-${arch} doesn't exist, creating it.."
+ mkdir "${packages_dir}/${repo}-${arch}"
+ else
+ echo "package directory ${packages_dir}/${repo}-${arch} exists"
+ fi
+ done
+done
+
+# TODO: AUR directory
diff --git a/bin/update b/bin/update
new file mode 100755
index 0000000..31333dc
--- /dev/null
+++ b/bin/update
@@ -0,0 +1,46 @@
+#!/bin/oksh
+
+BASE="${0%/*}/.."
+. "${BASE}/conf/default.conf"
+
+if test ! -d "${state_dir}"; then
+ echo "no upstream git state repo of packages.. exiting.."
+ exit 1
+fi
+
+if test ! -d "${packages_dir}"; then
+ echo "no directory for uptream package descriptions.. exiting.."
+ exit 1
+fi
+
+git -C "${state_dir}" pull
+
+find "${state_dir}"/{core,extra}-{any,x86_64} -type f > /tmp/update_packages.$$
+nof_packages=`cat /tmp/update_packages.$$ | wc -l`
+
+nof_checked_out_packages=`find "${packages_dir}" -type f -name PKGBUILD | wc -l`
+
+echo "${nof_packages} packages in state repo"
+echo "${nof_checked_out_packages} packages are checked out"
+
+sleep 10
+
+for pkgfile in `cat /tmp/update_packages.$$`; do
+ repo=`echo "${pkgfile}" | rev | cut -f 2 -d / | rev`
+ OLDIFS="$IFS"
+ IFS=" "
+ while read pkgname pkgver tag revision; do
+ echo "${repo} ${pkgname}"
+ if test ! -d "${packages_dir}/${repo}/${pkgname}"; then
+ cd "${packages_dir}/${repo}" || exit 1
+ pkgctl repo clone --protocol=https "${pkgname}"
+ sleep 10
+ else
+ true
+# git -C "${packages_dir}/${repo}/${pkgname}" pull
+ fi
+ done < $pkgfile
+ IFS="$OLDIFS"
+done
+# TODO: update all single package directories
+# TODO: update all AUR package directories
diff --git a/conf/default.conf b/conf/default.conf
new file mode 100644
index 0000000..bd1be9b
--- /dev/null
+++ b/conf/default.conf
@@ -0,0 +1,12 @@
+script_name=`readlink -f "$0"`
+script_dir=`dirname ${script_name}`
+base_dir_rel=`printf '%s/..' "${script_dir}"`
+base_dir=`realpath ${base_dir_rel}`
+
+if test -r "${base_dir}/conf/local.conf"; then
+ . "${base_dir}/conf/local.conf"
+fi
+
+script_dir="${base_dir}/scripts"
+state_dir="${base_dir}/state"
+packages_dir="${base_dir}/packages"
diff --git a/conf/local.conf b/conf/local.conf
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/conf/local.conf
diff --git a/doc/LINKS b/doc/LINKS
new file mode 100644
index 0000000..f09fa6e
--- /dev/null
+++ b/doc/LINKS
@@ -0,0 +1,4 @@
+- Archlinux
+ - devtools
+- HTML with m4
+ - https://www.linuxjournal.com/article/2393
diff --git a/doc/TODOS b/doc/TODOS
new file mode 100644
index 0000000..3f9f630
--- /dev/null
+++ b/doc/TODOS
@@ -0,0 +1,10 @@
+- check if gitrevision is part of the packages_dir checkout, if not, and only then,
+ do a git pull.
+- consistency checks
+ - check for more than one pkgname over multiple repos/archs, use vercmp
+ to find the newer version
+ - provide a report and a code snippet for arch32 builder to ignore all
+ but the newest version
+ - check for gitrevision from state to appear in packages for every package
+ - check for all tags if they appear in the packages for every package
+
diff --git a/html/.gitkeep b/html/.gitkeep
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/html/.gitkeep
diff --git a/templates/main.m4 b/templates/main.m4
new file mode 100644
index 0000000..604a8da
--- /dev/null
+++ b/templates/main.m4
@@ -0,0 +1,659 @@
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <meta charset="utf-8" />
+ <title>Arch Linux 32 - List of Build Slaves</title>
+ <link rel="stylesheet" type="text/css" href="/static/archweb.css" media="screen, projection" />
+ <link rel="icon" type="image/x-icon" href="/static/favicon.ico" />
+ <link rel="shortcut icon" type="image/x-icon" href="/static/favicon.ico" />
+ <link rel="stylesheet" type="text/css" href="/static/flags/fam.47411010d402.css" media="screen, projection" />
+ </head>
+ <body class="">
+ <div id="archnavbar" class="anb-packages">
+ <div id="archnavbarlogo">
+ <h1><a href="/" title="Return to the main page">Arch Linux</a></h1>
+ </div>
+ <div id="archnavbarmenu">
+ <ul id="archnavbarlist">
+ <li id="anb-home"><a href="https://www.archlinux32.org/">Home</a></li>
+ <li id="anb-packages"><a href="https://www.archlinux32.org/packages">Packages</a></li>
+ <li id="anb-forums"><a href="https://bbs.archlinux32.org/">Forums</a></li>
+ <li id="anb-bugs"><a href="https://bugs.archlinux32.org/" title="Report and track bugs">Bugs</a></li>
+ <li id="anb-mailing-list"><a href="https://lists.archlinux.org/archives/list/arch-ports@lists.archlinux.org/latest">Mailing List</a></li>
+ <li id="anb-download"><a href="https://www.archlinux32.org/download/" title="Get Arch Linux">Download</a></li>
+ <li id="anb-arch-linux-official"><a href="https://www.archlinux.org/">Arch Linux Official</a></li>
+ </ul>
+ </div>
+ </div>
+ <div id="content">
+ <div id="buildslaveslist-results" class="box">
+ <table class="results">
+ <thead>
+ <tr>
+ <th>
+ <a href="?showall=&sort=name" title="Sort build assignments by name">
+ name
+ </a>
+ </th>
+ <th>
+ <a href="?showall=&sort=operator" title="Sort build assignments by operator">
+ operator
+ </a>
+ </th>
+ <th>
+ <a href="?showall=&sort=currently_building" title="Sort build assignments by pkgbase of currently building package">
+ currently building
+ </a>
+ </th>
+ <th>
+ <a href="?showall=&sort=last_connection" title="Sort build assignments by time of last connection">
+ last connection
+ </a>
+ </th>
+ <th>
+ <a href="?showall=&sort=building_since" title="Sort build assignments by start of build">
+ building since
+ </a>
+ </th>
+ <th>
+ <a href="?showall=&sort=trials" title="Sort build assignments by number of trials">
+ trials
+ </a>
+ </th>
+ <th>
+ <a href="?showall=&sort=logged_lines" title="Sort build assignments by number of logged lines so far">
+ logged lines
+ </a>
+ </th>
+ <th>
+ <a href="?showall=&sort=last_action" title="Sort build assignments by last action">
+ last action
+ </a>
+ </th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr class="odd">
+ <td>
+ <a href="/buildmaster/log.php?show=ssh&slave=build-tasossah-1">build-tasossah-1</a>
+ </td>
+ <td>
+ KitsuWhooa
+ </td>
+ <td>
+ pentium4/ot-urchin
+ </td>
+ <td>
+ 2024-09-10 19:11:29
+ </td>
+ <td>
+ 2024-09-10 19:09:18
+ </td>
+ <td>
+ 2
+ </td>
+ <td>
+ 601
+ </td>
+ <td>
+ checking-source
+ </td>
+ </tr>
+ <tr class="even">
+ <td>
+ <a href="/buildmaster/log.php?show=ssh&slave=euronuc">euronuc</a>
+ </td>
+ <td>
+ abaumann
+ </td>
+ <td>
+ i686/guile2.2
+ </td>
+ <td>
+ 2024-09-10 19:11:26
+ </td>
+ <td>
+ 2024-09-09 23:12:01
+ </td>
+ <td>
+ 3
+ </td>
+ <td>
+ 12036
+ </td>
+ <td>
+ building
+ </td>
+ </tr>
+ <tr class="odd">
+ <td>
+ <a href="/buildmaster/log.php?show=ssh&slave=build-tasossah-2">build-tasossah-2</a>
+ </td>
+ <td>
+ KitsuWhooa
+ </td>
+ <td>
+ i686/sniffnet
+ </td>
+ <td>
+ 2024-09-10 19:11:07
+ </td>
+ <td>
+ 2024-09-10 15:24:15
+ </td>
+ <td>
+ 5
+ </td>
+ <td>
+ 6954
+ </td>
+ <td>
+ building
+ </td>
+ </tr>
+ <tr class="even">
+ <td>
+ <a href="/buildmaster/log.php?show=ssh&slave=build-tasossah-fx">build-tasossah-fx</a>
+ </td>
+ <td>
+ KitsuWhooa
+ </td>
+ <td>
+ pentium4/vlc
+ </td>
+ <td>
+ 2024-09-10 19:11:01
+ </td>
+ <td>
+ 2024-09-09 08:13:36
+ </td>
+ <td>
+ 1
+ </td>
+ <td>
+ 1479
+ </td>
+ <td>
+ building
+ </td>
+ </tr>
+ <tr class="odd">
+ <td>
+ <a href="/buildmaster/log.php?show=ssh&slave=euronuc-i486">euronuc-i486</a>
+ </td>
+ <td>
+ abaumann
+ </td>
+ <td>
+ i486/rocm-llvm
+ </td>
+ <td>
+ 2024-09-10 19:11:00
+ </td>
+ <td>
+ 2024-09-09 21:48:35
+ </td>
+ <td>
+ 4
+ </td>
+ <td>
+ 42243
+ </td>
+ <td>
+ building
+ </td>
+ </tr>
+ <tr class="even">
+ <td>
+ <a href="/buildmaster/log.php?show=ssh&slave=build-tasossah-3">build-tasossah-3</a>
+ </td>
+ <td>
+ KitsuWhooa
+ </td>
+ <td>
+ i686/ot-urchin
+ </td>
+ <td>
+ 2024-09-10 19:10:47
+ </td>
+ <td>
+ 2024-09-10 19:01:21
+ </td>
+ <td>
+ 5
+ </td>
+ <td>
+ 3056
+ </td>
+ <td>
+ building
+ </td>
+ </tr>
+ <tr class="odd">
+ <td>
+ <a href="/buildmaster/log.php?show=ssh&slave=eurobuild6-6">eurobuild6-6</a>
+ </td>
+ <td>
+ abaumann
+ </td>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+ 2024-09-10 17:30:12
+ </td>
+ <td>
+ 2024-09-10 16:27:25
+ </td>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+ &nbsp;
+ </td>
+ </tr>
+ <tr class="even">
+ <td>
+ <a href="/buildmaster/log.php?show=ssh&slave=eurobuild6-4">eurobuild6-4</a>
+ </td>
+ <td>
+ abaumann
+ </td>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+ 2024-09-10 17:27:58
+ </td>
+ <td>
+ 2024-09-10 15:45:32
+ </td>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+ &nbsp;
+ </td>
+ </tr>
+ <tr class="odd">
+ <td>
+ <a href="/buildmaster/log.php?show=ssh&slave=eurobuild6-1">eurobuild6-1</a>
+ </td>
+ <td>
+ abaumann
+ </td>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+ 2024-09-10 17:23:10
+ </td>
+ <td>
+ 2024-09-10 16:55:10
+ </td>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+ &nbsp;
+ </td>
+ </tr>
+ <tr class="even">
+ <td>
+ <a href="/buildmaster/log.php?show=ssh&slave=eurobuild6-5">eurobuild6-5</a>
+ </td>
+ <td>
+ abaumann
+ </td>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+ 2024-09-10 17:20:00
+ </td>
+ <td>
+ 2024-09-10 16:42:52
+ </td>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+ &nbsp;
+ </td>
+ </tr>
+ <tr class="odd">
+ <td>
+ <a href="/buildmaster/log.php?show=ssh&slave=eurobuild6-8-i486">eurobuild6-8-i486</a>
+ </td>
+ <td>
+ abaumann
+ </td>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+ 2024-09-10 17:14:43
+ </td>
+ <td>
+ 2024-09-10 16:51:28
+ </td>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+ &nbsp;
+ </td>
+ </tr>
+ <tr class="even">
+ <td>
+ <a href="/buildmaster/log.php?show=ssh&slave=eurobuild6-7-i486">eurobuild6-7-i486</a>
+ </td>
+ <td>
+ abaumann
+ </td>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+ 2024-09-10 17:10:43
+ </td>
+ <td>
+ 2024-09-10 16:54:44
+ </td>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+ &nbsp;
+ </td>
+ </tr>
+ <tr class="odd">
+ <td>
+ <a href="/buildmaster/log.php?show=ssh&slave=eurobuild6-3">eurobuild6-3</a>
+ </td>
+ <td>
+ abaumann
+ </td>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+ 2024-09-10 17:10:31
+ </td>
+ <td>
+ 2024-09-10 16:41:49
+ </td>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+ &nbsp;
+ </td>
+ </tr>
+ <tr class="even">
+ <td>
+ <a href="/buildmaster/log.php?show=ssh&slave=eurobuild6-2">eurobuild6-2</a>
+ </td>
+ <td>
+ abaumann
+ </td>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+ 2024-09-10 17:04:09
+ </td>
+ <td>
+ 2024-09-10 16:36:53
+ </td>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+ &nbsp;
+ </td>
+ </tr>
+ <tr class="odd">
+ <td>
+ <a href="/buildmaster/log.php?show=ssh&slave=build-tasossah-c2d">build-tasossah-c2d</a>
+ </td>
+ <td>
+ KitsuWhooa
+ </td>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+ 2024-09-09 15:20:04
+ </td>
+ <td>
+ 2024-09-09 15:01:04
+ </td>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+ &nbsp;
+ </td>
+ </tr>
+ <tr class="even">
+ <td>
+ <a href="/buildmaster/log.php?show=ssh&slave=eurobuild3-i486">eurobuild3-i486</a>
+ </td>
+ <td>
+ abaumann
+ </td>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+ 2024-09-08 11:55:16
+ </td>
+ <td>
+ 2024-09-08 11:34:55
+ </td>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+ &nbsp;
+ </td>
+ </tr>
+ <tr class="odd">
+ <td>
+ <a href="/buildmaster/log.php?show=ssh&slave=eurobuild3">eurobuild3</a>
+ </td>
+ <td>
+ abaumann
+ </td>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+ 2024-09-08 11:49:22
+ </td>
+ <td>
+ 2024-09-08 11:34:13
+ </td>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+ &nbsp;
+ </td>
+ </tr>
+ <tr class="even">
+ <td>
+ <a href="/buildmaster/log.php?show=ssh&slave=streusel-1">streusel-1</a>
+ </td>
+ <td>
+ deep42thought
+ </td>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+ &nbsp;
+ </td>
+ </tr>
+ <tr class="odd">
+ <td>
+ <a href="/buildmaster/log.php?show=ssh&slave=streusel-2">streusel-2</a>
+ </td>
+ <td>
+ deep42thought
+ </td>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+ &nbsp;
+ </td>
+ </tr>
+ <tr class="even">
+ <td>
+ <a href="/buildmaster/log.php?show=ssh&slave=streusel-3">streusel-3</a>
+ </td>
+ <td>
+ deep42thought
+ </td>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+ &nbsp;
+ </td>
+ </tr>
+ <tr class="odd">
+ <td>
+ <a href="/buildmaster/log.php?show=ssh&slave=thuringiabuild1">thuringiabuild1</a>
+ </td>
+ <td>
+ deep42thought
+ </td>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+ &nbsp;
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ <div>
+ <form>
+ <input type="hidden" name="sort" value="-last_connection"/>
+ <label style="font-weight: normal" for="showall">Show all:</label><input type="checkbox" name="showall" />
+ <input type="submit" value="Filter">
+ </form>
+ </div>
+
+ </div>
+ <div id="footer">
+ <p>
+ Copyright © 2002-2019 <a href="mailto:jvinet@zeroflux.org" title="Contact Judd Vinet">Judd Vinet</a> and <a href="mailto:aaron@archlinux.org" title="Contact Aaron Griffin">Aaron Griffin</a>.
+ Copyright © 2018-2022 <a href="mailto:arch@eckner.net" title="Contact Erich Eckner">Erich Eckner</a>.
+ </p>
+ <p>
+ The Arch Linux name and logo are recognized <a href="https://wiki.archlinux.org/index.php/DeveloperWiki:TrademarkPolicy" title="Arch Linux Trademark Policy">trademarks</a>. Some rights reserved.
+ </p>
+ <p>
+ The registered trademark Linux® is used pursuant to a sublicense from LMI, the exclusive licensee of Linus Torvalds, owner of the mark on a world-wide basis.
+ </p>
+ </div>
+ </div>
+ <script type="application/ld+json">
+ {
+ "@context": "http://schema.org",
+ "@type": "WebSite",
+ "url": "/",
+ "potentialAction": {
+ "@type": "SearchAction",
+ "target": "/?q={search_term}",
+ "query-input": "required name=search_term"
+ }
+ }
+ </script>
+ </body>
+</html>