summaryrefslogtreecommitdiffstats
path: root/web/hint-packages.sh
blob: 9a6fce65e7dc7f9f1860fe14e96f5528f20f9fcd (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
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
#!/bin/sh

set -e

for CODENAMES in \
	engywuck_fuchur \
	engywuck-backports_fuchur-backports \
	fuchur_engywuck \
	fuchur-backports_engywuck-backports \
	graograman_fuchur \
	graograman-backports_fuchur-backports
do
	TARGET="$(echo ${CODENAMES} | awk -F_ '{ print $1 }')"
	SOURCE="$(echo ${CODENAMES} | awk -F_ '{ print $2 }')"

	echo "###############################################################################"
	echo "${TARGET} hints"
	echo "###############################################################################"

	PACKAGES="$(cd /srv/git/progress-linux.org/packages/${SOURCE} && ls -d */)"

	for PACKAGE in ${PACKAGES}
	do
		PACKAGE="$(basename ${PACKAGE})"

		if [ ! -e "/srv/git/progress-linux.org/packages/${TARGET}/${PACKAGE}" ]
		then
			case "${TARGET}" in
				engywuck)
					case "${PACKAGE}" in
						browserpass)
							# no modification in the newer package in the old distribution required - ignore
							continue
							;;

						progress-linux-metapackages)
							# package already included in engywuck-backports
							continue
							;;
					esac
					;;

				engywuck-backports)
					case "${PACKAGE}" in
						pass-tomb|password-store)
							# no modification in the newer package in the old distribution required - ignore
							continue
							;;

						dnsperf|icingaweb2-module-generictts|icingaweb2-module-graphite|icingaweb2-module-idoreports|icingaweb2-module-incubator|icingaweb2-module-metapackages|icingaweb2-module-reporting|icingaweb2-module-toplevelview|icingaweb2-module-x509|iredis|litecli|monitoring-plugins-systemd|pgcli|postgresql-14|ptpython)
							# package not in debian bullseye - ignore
							continue
							;;

						ck|libgcrypt20|cli-helpers|libgpg-error|llvm-toolchain-12|llvm-toolchain-13|pendulum|pytzdata)
							# build-depends of package not in debian bullseye - ignore
							continue
							;;
					esac
					;;

				fuchur)
					case "${PACKAGE}" in
						mdadm|mycli)
							# no modification in the newer package in the old distribution required - ignore
							continue
							;;

						linux-latest|mariadb-10.3|postgresql-11)
							# package not in debian bullseye - ignore
							continue
							;;
					esac
					;;
			esac

			case "${SOURCE}" in
				*-backports)
					# version check
					DISTRIBUTION="${TARGET}"
					PARENT_DISTRIBUTION="$(echo ${DISTRIBUTION} | awk -F- '{ print $1 }')"

					if [ ! -e upstream.${DISTRIBUTION}.sources ] || [ ! -e upstream.${PARENT_DISTRIBUTION}.sources ]
					then
						echo "no indices.. running update first.."
						./update.${DISTRIBUTION}
					fi

					DISTRIBUTION_VERSION="$(sed -n "/^Package: ${PACKAGE}$/,/^Version:/p" upstream.${DISTRIBUTION}.sources | awk '/^Version: / { print $2 }' | sort -rV | head -n1)"
					PARENT_VERSION="$(sed -n "/^Package: ${PACKAGE}$/,/^Version:/p" upstream.${PARENT_DISTRIBUTION}.sources | awk '/^Version: / { print $2 }' | sort -rV | head -n1)"

					if [ -n "${PARENT_VERSION}" ] && dpkg --compare-versions ${PARENT_VERSION} ge ${DISTRIBUTION_VERSION}
					then
						# package has not been updated in "stable", hence no need for "backports"
						continue
					fi
					;;
			esac

			echo "${TARGET}: ${PACKAGE}"
		fi
	done

	echo
done