#!/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