🔒 Repository is read-only – file editing is disabled.
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
#!/bin/bash
# Regeneruje patch util-linux-2.42.2-consolidate-1.patch.
#
# Oryginalny patch (2.41.3/2.41.5) zmienial:
# - disk-utils/cfdisk.c : COLOR_BLUE -> COLOR_CYAN dla CFDISK_CL_INFO
# - include/pathnames.h : _PATH_LOGIN "/bin/login" -> "/usr/bin/login"
# - term-utils/agetty.{c,8,8.adoc}, tests/expected/paths/built-in,
# po-man/*.po, po-man/util-linux-man.pot : /bin/login -> /usr/bin/login
# W 2.42.2 zmienily sie konteksty w plikach .po, wiec hunki nie pasowaly.
# Zamiast latac konteksty odtwarzamy ten sam efekt na czystym 2.42.2 i generujemy
# nowy diff (identyczna intencja, aktualne konteksty).
set -e
WORK=/tmp/ul-regen
TARBALL=util-linux-2.42.2.tar.xz
SRC=util-linux-2.42.2
RECIPE=/var/lib/pagan-sync/recipes/core/util-linux
rm -rf "$WORK"
mkdir -p "$WORK"
cd "$WORK"
echo "== pobieram $TARBALL =="
curl -sSLO "https://www.kernel.org/pub/linux/utils/util-linux/v2.42/$TARBALL"
sha256sum "$TARBALL"
echo "== rozpakowuje 2 kopie (a = czyste, b = zmodyfikowane) =="
tar xf "$TARBALL"
cp -a "$SRC" a
cp -a "$SRC" b
FILES="term-utils/agetty.c
term-utils/agetty.8
term-utils/agetty.8.adoc
tests/expected/paths/built-in
po-man/cs.po
po-man/de.po
po-man/es.po
po-man/fr.po
po-man/ko.po
po-man/pl.po
po-man/pt_BR.po
po-man/ro.po
po-man/sr.po
po-man/uk.po
po-man/util-linux-man.pot"
echo "== sprawdzam obecnosc plikow =="
for f in $FILES; do
if [ ! -f "b/$f" ]; then
echo "BRAK PLIKU: $f"
exit 1
fi
done
echo "wszystkie pliki obecne"
cd b
echo "== cfdisk.c: COLOR_BLUE -> COLOR_CYAN (CFDISK_CL_INFO) =="
sed -i 's/\(CFDISK_CL_INFO\][[:space:]]*=[[:space:]]*{[[:space:]]*COLOR_\)BLUE/\1CYAN/' disk-utils/cfdisk.c
grep -n "CFDISK_CL_INFO\]" disk-utils/cfdisk.c
echo "== pathnames.h: _PATH_LOGIN =="
sed -i 's|^# define _PATH_LOGIN[[:space:]]*"/bin/login"|# define _PATH_LOGIN "/usr/bin/login"|' include/pathnames.h
grep -n "_PATH_LOGIN" include/pathnames.h
echo "== /bin/login -> /usr/bin/login w pozostalych plikach =="
for f in $FILES; do
sed -i 's|/bin/login|/usr/bin/login|g' "$f"
done
cd ..
echo "== generuje patch =="
diff -Naur a b > util-linux-2.42.2-consolidate-1.patch || true
wc -l util-linux-2.42.2-consolidate-1.patch
echo "== weryfikacja: patch na czystym zrodle (dry-run) =="
rm -rf verify
cp -a a verify
cd verify
patch -Np1 --dry-run -i ../util-linux-2.42.2-consolidate-1.patch
echo "DRY-RUN OK (exit 0)"
cd ..
echo "== weryfikacja: realne nalozenie i sprawdzenie efektu =="
rm -rf real
cp -a a real
cd real
patch -Np1 -i ../util-linux-2.42.2-consolidate-1.patch > /dev/null
echo "-- pathnames.h --"
grep -n "_PATH_LOGIN" include/pathnames.h
echo "-- cfdisk.c --"
grep -n "CFDISK_CL_INFO\]" disk-utils/cfdisk.c
echo "-- pozostale wystapienia /bin/login (powinny byc 0 w zmienionych plikach) --"
grep -c "/bin/login" disk-utils/cfdisk.c include/pathnames.h term-utils/agetty.c term-utils/agetty.8 term-utils/agetty.8.adoc || true
cd ..
echo "== sha256 nowego patcha =="
sha256sum util-linux-2.42.2-consolidate-1.patch
echo "== kopiuje do receptury =="
cp util-linux-2.42.2-consolidate-1.patch "$RECIPE/util-linux-2.42.2-consolidate-1.patch"
ls -l "$RECIPE"/util-linux-2.42.2-consolidate-1.patch