summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2021-03-14 20:43:26 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2021-05-13 12:32:43 +0000
commitcff65f33835c0c03154ef5aa9c5e85ae7db53328 (patch)
tree1c08ece89076f65d6b0c5d14651199f884cf3c3a
parentInitial commit. (diff)
downloadbin-main.tar.xz
bin-main.zip
Updating.HEADmain
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
-rwxr-xr-xarchive_double-tarball.sh11
-rwxr-xr-xarchive_dscverify.sh19
-rwxr-xr-xarchive_missing-builds.sh20
-rwxr-xr-xcheck-downstream-versions.sh308
-rwxr-xr-xlist-upstream-versions.sh164
5 files changed, 522 insertions, 0 deletions
diff --git a/archive_double-tarball.sh b/archive_double-tarball.sh
new file mode 100755
index 0000000..df29f2d
--- /dev/null
+++ b/archive_double-tarball.sh
@@ -0,0 +1,11 @@
+#!/bin/sh
+
+set -e
+
+for PACKAGE in */*/*_source/
+do
+ if [ $(ls ${PACKAGE}/*.orig.tar.* | wc -l) -ge 2 ]
+ then
+ echo ${PACKAGE}
+ fi
+done
diff --git a/archive_dscverify.sh b/archive_dscverify.sh
new file mode 100755
index 0000000..3c36392
--- /dev/null
+++ b/archive_dscverify.sh
@@ -0,0 +1,19 @@
+#!/bin/sh
+
+set -e
+
+echo -n "Verifying... "
+
+for DIRECTORY in */*/
+do
+ if ls ${DIRECTORY}/*.dsc > /dev/null 2>&1 && ! ls ${DIRECTORY}/.dscverified > /dev/null 2>&1
+ then
+ cd ${DIRECTORY}
+ ( dscverify *.dsc || dscverify --keyring ~/.gnupg/pubring.kbx *.dsc ) && touch .dscverified
+ cd ${OLDPWD}
+ else
+ echo -n "."
+ fi
+done
+
+echo " done."
diff --git a/archive_missing-builds.sh b/archive_missing-builds.sh
new file mode 100755
index 0000000..534902e
--- /dev/null
+++ b/archive_missing-builds.sh
@@ -0,0 +1,20 @@
+#!/bin/sh
+
+set -e
+
+for SOURCE in */*/*_source/
+do
+ case "${SOURCE}" in
+ */current_source/)
+ continue
+ ;;
+ esac
+
+ if [ -e $(echo ${SOURCE} | sed -e 's|_source|_amd64|') ] || [ -e $(echo ${SOURCE} | sed -e 's|_source|_i386|') ]
+ then
+ if [ ! -e $(echo ${SOURCE} | sed -e 's|_source|_arm64|') ]
+ then
+ echo ${SOURCE}: missing arm64
+ fi
+ fi
+done
diff --git a/check-downstream-versions.sh b/check-downstream-versions.sh
new file mode 100755
index 0000000..151178f
--- /dev/null
+++ b/check-downstream-versions.sh
@@ -0,0 +1,308 @@
+#!/bin/sh
+
+# Copyright (C) 2021 Daniel Baumann <daniel.baumann@progress-linux.org>
+#
+# SPDX-License-Identifier: GPL-3.0+
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+set -e
+
+CURDIR="$(pwd)"
+
+RED="\033[1;33;31m"
+GREEN="\033[1;33;32m"
+YELLOW="\033[1;33;33m"
+BLUE="\033[1;33;34m"
+WHITE="\033[1;33;37m"
+NORMAL="\033[0m"
+PURPLE="\033[1;33;35m"
+
+if [ -z "${1}" ]
+then
+ echo "Usage: ${0} CODENAME [PACKAGE1 PACKAGE2 ...]" >&2
+ exit 1
+fi
+
+CODENAME="${1}"
+shift 1
+
+REPO="/srv/GIT/progress-linux/packages/${CODENAME}"
+
+if [ -n "${1}" ]
+then
+ PACKAGES="${@}"
+else
+ PACKAGES="$(cd ${REPO} && for DIRECTORY in */; do echo ${DIRECTORY} | sed -e 's|/$||g'; done)"
+fi
+
+for PACKAGE in ${PACKAGES}
+do
+ echo -n "Checking ${PACKAGE}... "
+
+ VERSIONS="$(${CURDIR}/list-upstream-versions.sh ${CODENAME} ${PACKAGE} | awk -Fversions: '/^# versions: / { print $2 }')"
+
+ for VERSION in ${VERSIONS}
+ do
+ case "${CODENAME}" in
+ engywuck)
+ case "${PACKAGE}" in
+ firefox-esr|thunderbird)
+ if ! echo "${VERSION}" | grep -qs '~deb10u'
+ then
+ continue
+ fi
+ ;;
+ esac
+ ;;
+
+ engywuck-backports)
+ case "${PACKAGE}" in
+ cryptsetup)
+ case "${VERSION}" in
+ 2:2.3.4-1+exp1|2:2.3.4-2+exp1)
+ continue
+ ;;
+ esac
+ ;;
+ e2fsprogs)
+ case "${VERSION}" in
+ 1.46~WIP.2019.10.03-1)
+ continue
+ ;;
+ esac
+ ;;
+ git)
+ if echo "${VERSION}" | grep -qs '+next'
+ then
+ continue
+ fi
+ ;;
+
+ mariadb-10.5|parted|procps)
+ if echo "${VERSION}" | grep -qs '+hurd\.'
+ then
+ continue
+ fi
+ ;;
+
+ firefox|firefox-esr|intel-microcode|thunderbird)
+ if echo "${VERSION}" | grep -qs '~deb10u'
+ then
+ continue
+ fi
+ ;;
+ esac
+ ;;
+
+ fuchur)
+ case "${PACKAGE}" in
+ git)
+ if echo "${VERSION}" | grep -qs '+next'
+ then
+ continue
+ fi
+ ;;
+
+ firefox-esr|thunderbird)
+ if echo "${VERSION}" | grep -qs '~deb10u'
+ then
+ continue
+ fi
+ ;;
+ esac
+ ;;
+
+ fuchur-backports)
+ case "${PACKAGE}" in
+ meson)
+ case "${VERSION}" in
+ 0.57.0+really0.56.2-0.1|0.57.0-1|0.57.0~rc1-1|0.56.2-1)
+ continue
+ ;;
+ esac
+ ;;
+ monitoring-plugins)
+ case "${VERSION}" in
+ 2.3-1)
+ continue
+ ;;
+ esac
+ ;;
+ wasi-libc)
+ case "${VERSION}" in
+ 0.0~git20200731.215adc8-2)
+ continue
+ ;;
+ esac
+ ;;
+ open-infrastructure-compute-tools)
+ case "${VERSION}" in
+ 20201030-1|20210101-1)
+ continue
+ ;;
+ esac
+ ;;
+ rust-cbindgen)
+ case "${VERSION}" in
+ 0.15.*|0.17.*)
+ continue
+ ;;
+ esac
+ ;;
+ apt)
+ case "${VERSION}" in
+ 2.1.*|2.2.*)
+ continue
+ ;;
+ esac
+ ;;
+ llvm-defaults)
+ case "${VERSION}" in
+ 0.51+nmu3|0.51+nmu4)
+ continue
+ ;;
+ esac
+ ;;
+ nodejs)
+ case "${VERSION}" in
+ 12.*)
+ continue
+ ;;
+ esac
+ ;;
+ rustc)
+ case "${VERSION}" in
+ 1.48.0+dfsg1-2)
+ continue
+ ;;
+ esac
+ ;;
+ nss)
+ case "${VERSION}" in
+ 2:3.60-1|2:3.61-1)
+ continue
+ ;;
+ esac
+ ;;
+
+ netdata)
+ case "${VERSION}" in
+ 1.19*|1.29*)
+ continue
+ ;;
+ esac
+ ;;
+
+ remmina)
+ case "${VERSION}" in
+ 1.4.10+dfsg*|1.4.11+dfsg*)
+ continue
+ ;;
+ esac
+ ;;
+
+ haproxy)
+ if echo "${VERSION}" | grep -qs '^2\.2\.'
+ then
+ continue
+ fi
+ ;;
+
+ icingaweb2-module-director)
+ case "${VERSION}" in
+ 1.6.0-2)
+ continue
+ ;;
+ esac
+ ;;
+
+ mycli)
+ case "${VERSION}" in
+ 1.22.2-0.1|1.23.2-0.1)
+ continue
+ ;;
+ esac
+ ;;
+
+ prompt-toolkit)
+ case "${VERSION}" in
+ 3.0.10-1|3.0.14-1)
+ continue
+ ;;
+ esac
+ ;;
+
+ firefox|firefox-esr|thunderbird)
+ if echo "${VERSION}" | grep -qs '~deb10u'
+ then
+ continue
+ fi
+ ;;
+
+ twitter-bootstrap4)
+ case "${VERSION}" in
+ 4.5.2+dfsg1-4|4.5.2+dfsg1-5|4.5.2+dfsg1-6)
+ continue
+ ;;
+ esac
+ ;;
+
+ pass-tomb)
+ case "${VERSION}" in
+ 1.1-4.1)
+ continue
+ ;;
+ esac
+ ;;
+
+ sphinx)
+ case "${VERSION}" in
+ 3.4.3-1|3.4.3-2)
+ continue
+ ;;
+ esac
+ ;;
+ esac
+ ;;
+ esac
+
+ GIT="$(echo ${VERSION} | sed -e 's|:|%|g' -e 's|~|_|g')"
+
+ cd "${REPO}/${PACKAGE}"
+
+ if ! git tag | grep -qs "debian\/${GIT}$"
+ then
+ echo GIT: ${YELLOW}${PACKAGE}${NORMAL} is missing ${YELLOW}${VERSION}${NORMAL}
+ else
+ echo -n "."
+ fi
+
+ cd "${OLDPWD}"
+
+
+ APT="$(echo ${VERSION} | sed -e 's|.*:||g')"
+
+ if ! wget -q https://apt.progress-linux.org/archive/${CODENAME}.orig/${PACKAGE}/${VERSION}/${PACKAGE}_${APT}.dsc -O /dev/null
+ then
+ echo APT: ${YELLOW}${PACKAGE}${NORMAL} is missing ${YELLOW}${VERSION}${NORMAL} in orig
+ else
+ echo -n "."
+ fi
+ done
+
+ echo " done."
+done
+
+cd "${CURDIR}"
diff --git a/list-upstream-versions.sh b/list-upstream-versions.sh
new file mode 100755
index 0000000..05ac4eb
--- /dev/null
+++ b/list-upstream-versions.sh
@@ -0,0 +1,164 @@
+#!/bin/sh
+
+# Copyright (C) 2021 Daniel Baumann <daniel.baumann@progress-linux.org>
+#
+# SPDX-License-Identifier: GPL-3.0+
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+set -e
+
+MIRROR="https://debian.ethz.ch/debian"
+ARCHIVE_AREAS="main contrib non-free"
+
+if [ -z "${2}" ]
+then
+ echo "Usage: ${0} CODENAME PACKAGE1 PACKAGE2 ..." >&2
+ exit 1
+fi
+
+CODENAME="${1}"
+shift 1
+
+PACKAGES="${@}"
+
+case "${CODENAME}" in
+ engywuck)
+ DEBIAN="buster"
+ DEBIAN_PROPOSED_UPDATES="${DEBIAN}-proposed-updates"
+ DEBIAN_UPDATES="${DEBIAN}-updates"
+ DEBIAN_SECURITY="${DEBIAN}/updates"
+ SNAPSHOT="20210206T105319Z" # 2021-02-06: buster 10.8 release
+ ;;
+
+ fuchur|engywuck-backports)
+ DEBIAN="bullseye"
+ DEBIAN_PROPOSED_UPDATES="${DEBIAN}-proposed-updates"
+ DEBIAN_UPDATES="${DEBIAN}-updates"
+ DEBIAN_SECURITY="${DEBIAN}-security"
+ SNAPSHOT="20210113T203702Z" # 2021-01-13: bullseye essential freeze
+ ;;
+
+ fuchur-backports)
+ DEBIAN="sid"
+ SNAPSHOT="20210113T203702Z" # 2021-01-13: bullseye essential freeze
+ ;;
+esac
+
+#TMPDIR="/tmp/$(mktemp apt.XXXXXXXX)"
+TMPDIR="/tmp/apt"
+
+Get_indices ()
+{
+ RELEASE="${1}"
+ SNAPSHOT="${2}"
+
+ mkdir -p "${TMPDIR}"
+
+ for FILE in "${TMPDIR}/upstream.${RELEASE}.base" "${TMPDIR}/upstream.${RELEASE}.current"
+ do
+ if [ -e "${FILE}" ] && [ "$(( $(stat -c %Y ${FILE}) + 3600 ))" -lt "$(date +%s)" ]
+ then
+ # file is older than 1 hour
+ rm -f "${FILE}"
+ fi
+ done
+
+ for FILE in "${TMPDIR}/upstream.${RELEASE}.base" "${TMPDIR}/upstream.${RELEASE}.current"
+ do
+ if [ -e "${FILE}" ]
+ then
+ continue
+ fi
+
+ echo -n "# Getting indices $(basename ${FILE})... "
+
+ for ARCHIVE_AREA in ${ARCHIVE_AREAS}
+ do
+ case "${FILE}" in
+ *.base)
+ wget -q "http://snapshot.debian.org/archive/debian/${SNAPSHOT}/dists/${DEBIAN}/${ARCHIVE_AREA}/source/Sources.xz" -O - | xz -c -d >> "${TMPDIR}/upstream.${RELEASE}.base"
+ echo -n "."
+ ;;
+
+ *.current)
+ wget -q "${MIRROR}/dists/${RELEASE}/${ARCHIVE_AREA}/source/Sources.xz" -O - | xz -c -d >> "${TMPDIR}/upstream.${RELEASE}.current"
+ echo -n "."
+
+ if [ -n "${DEBIAN_PROPOSED_UPDATES}" ]
+ then
+ wget -q "${MIRROR}/dists/${DEBIAN_PROPOSED_UPDATES}/${ARCHIVE_AREA}/source/Sources.xz" -O - | xz -c -d >> "${TMPDIR}/upstream.${RELEASE}.current"
+ echo -n "."
+ fi
+
+ if [ -n "${DEBIAN_UPDATES}" ]
+ then
+ wget -q "${MIRROR}/dists/${DEBIAN_UPDATES}/${ARCHIVE_AREA}/source/Sources.xz" -O - | xz -c -d >> "${TMPDIR}/upstream.${RELEASE}.current"
+ echo -n "."
+ fi
+
+ if [ -n "${DEBIAN_SECURITY}" ]
+ then
+ wget -q "https://security.debian.org/dists/${DEBIAN_SECURITY}/${ARCHIVE_AREA}/source/Sources.xz" -O - | xz -c -d >> "${TMPDIR}/upstream.${RELEASE}.current"
+ echo -n "."
+ fi
+ ;;
+ esac
+ done
+
+ echo " done."
+ done
+}
+
+Get_versions ()
+{
+ RELEASE="${1}"
+ shift 1
+
+ PACKAGES="${@}"
+
+ for PACKAGE in ${PACKAGES}
+ do
+ echo "# package: ${PACKAGE}"
+
+ BASE_VERSION="$(sed -n "/^Package: ${PACKAGE}$/,/^Version:/p" ${TMPDIR}/upstream.${RELEASE}.base | awk '/^Version: / { print $2 }' | sort -V | tail -n1)"
+ CURRENT_VERSION="$(sed -n "/^Package: ${PACKAGE}$/,/^Version:/p" ${TMPDIR}/upstream.${RELEASE}.current | awk '/^Version: / { print $2 }' | sort -V | tail -n1)"
+
+ echo "# base: ${BASE_VERSION}"
+ echo "# current: ${CURRENT_VERSION}"
+
+ VERSIONS=" $(wget -q http://snapshot.debian.org/package/${PACKAGE}/ -O - | grep '<li><a href=' | awk -F\> '{ print $3 }' | sed -e 's|<.*$||' | grep -Ev '(bpo|deb[0-9]u)') "
+
+ if [ "${BASE_VERSION}" = "${CURRENT_VERSION}" ]
+ then
+ VERSIONS="${CURRENT_VERSION}"
+ else
+ BASE_VERSION="$(echo ${BASE_VERSION} | sed -e 's|\.|\\.|g')"
+ CURRENT_VERSION="$(echo ${CURRENT_VERSION} | sed -e 's|\.|\\.|g')"
+
+ VERSIONS="$(echo ${VERSIONS} | sed -e "s|.* \(${CURRENT_VERSION}\) | \1 |" -e "s| \(${BASE_VERSION}\) .*| \1 |" | sed -e 's|^ ||' -e 's| | |g' -e 's| $||')"
+ fi
+
+ echo "# versions: ${VERSIONS}"
+ echo "# uploads: $(echo ${VERSIONS} | wc -w)"
+ done
+}
+
+Main ()
+{
+ Get_indices ${DEBIAN} ${SNAPSHOT}
+ Get_versions ${DEBIAN} ${PACKAGES}
+}
+
+Main