BlogBlog ÜbersichtjailscriptportsoptFreeBSDLinksThermoskanne

Port-Patches automatisch generieren

Ändert man einen FreeBSD -Port und möchte dazu Patches erstellen, welche im Port unter dem Verzeichnis files gespeichert werden, so muss man diese nicht unbedingt von Hand mit diff(1) erzeugen. Zuerst erstellt man von jeder Datei, die man verändern möchte, unterhalb des work/-Verzeichnisses eine Kopie mit der Endung .orig und bearbeitet das Original.

# cd /usr/ports/security/nss/work/nss-3.12.4/mozilla/security/nss/lib/nss/
# ls -l config.mk*
-rw-r-----  1 root  wheel  3181 30 Aug 22:27 config.mk
-rw-r-----  1 root  wheel  3182 11 Jun 02:55 config.mk.orig

Sind alle Änderungen gemacht, geht man in das Port-Verzeichnis und gibt make makepatch ein:

# cd /usr/ports/security/nss
# ls -l files
total 0
# make makepatch
/usr/bin/diff -ud ./cmd/modutil/modutil.h.orig ./cmd/modutil/modutil.h > /usr/ports/security/nss/files/patch-cmd__modutil__modutil.h
/usr/bin/diff -ud ./cmd/modutil/pk11.c.orig ./cmd/modutil/pk11.c > /usr/ports/security/nss/files/patch-cmd__modutil__pk11.c
/usr/bin/diff -ud ./cmd/platlibs.mk.orig ./cmd/platlibs.mk > /usr/ports/security/nss/files/patch-cmd__platlibs.mk
/usr/bin/diff -ud ./tests/common/init.sh.orig ./tests/common/init.sh > /usr/ports/security/nss/files/patch-tests__common__init.sh
/usr/bin/diff -ud ./lib/ckfw/dbm/ckdbm.h.orig ./lib/ckfw/dbm/ckdbm.h > /usr/ports/security/nss/files/patch-lib__ckfw__dbm__ckdbm.h
/usr/bin/diff -ud ./lib/ssl/config.mk.orig ./lib/ssl/config.mk > /usr/ports/security/nss/files/patch-lib__ssl__config.mk
/usr/bin/diff -ud ./lib/smime/config.mk.orig ./lib/smime/config.mk > /usr/ports/security/nss/files/patch-lib__smime__config.mk
/usr/bin/diff -ud ./lib/certdb/xauthkid.c.orig ./lib/certdb/xauthkid.c > /usr/ports/security/nss/files/patch-lib__certdb__xauthkid.c
/usr/bin/diff -ud ./lib/certdb/xbsconst.c.orig ./lib/certdb/xbsconst.c > /usr/ports/security/nss/files/patch-lib__certdb__xbsconst.c
/usr/bin/diff -ud ./lib/certdb/xconst.c.orig ./lib/certdb/xconst.c > /usr/ports/security/nss/files/patch-lib__certdb__xconst.c
/usr/bin/diff -ud ./lib/softoken/legacydb/cdbhdl.h.orig ./lib/softoken/legacydb/cdbhdl.h > /usr/ports/security/nss/files/patch-lib__softoken__legacydb__cdbhdl.h
/usr/bin/diff -ud ./lib/softoken/legacydb/dbmshim.c.orig ./lib/softoken/legacydb/dbmshim.c > /usr/ports/security/nss/files/patch-lib__softoken__legacydb__dbmshim.c
/usr/bin/diff -ud ./lib/softoken/legacydb/keydb.c.orig ./lib/softoken/legacydb/keydb.c > /usr/ports/security/nss/files/patch-lib__softoken__legacydb__keydb.c
/usr/bin/diff -ud ./lib/softoken/legacydb/pcertdb.c.orig ./lib/softoken/legacydb/pcertdb.c > /usr/ports/security/nss/files/patch-lib__softoken__legacydb__pcertdb.c
/usr/bin/diff -ud ./lib/softoken/legacydb/pk11db.c.orig ./lib/softoken/legacydb/pk11db.c > /usr/ports/security/nss/files/patch-lib__softoken__legacydb__pk11db.c
/usr/bin/diff -ud ./lib/softoken/legacydb/keydbi.h.orig ./lib/softoken/legacydb/keydbi.h > /usr/ports/security/nss/files/patch-lib__softoken__legacydb__keydbi.h
/usr/bin/diff -ud ./lib/softoken/config.mk.orig ./lib/softoken/config.mk > /usr/ports/security/nss/files/patch-lib__softoken__config.mk
/usr/bin/diff -ud ./lib/nss/config.mk.orig ./lib/nss/config.mk > /usr/ports/security/nss/files/patch-lib__nss__config.mk
/usr/bin/diff -ud ./lib/freebl/config.mk.orig ./lib/freebl/config.mk > /usr/ports/security/nss/files/patch-lib__freebl__config.mk
/usr/bin/diff -ud ./lib/pk11wrap/secmodi.h.orig ./lib/pk11wrap/secmodi.h > /usr/ports/security/nss/files/patch-lib__pk11wrap__secmodi.h
/usr/bin/diff -ud ./Makefile.orig ./Makefile > /usr/ports/security/nss/files/patch-Makefile
# ls -l files
total 42
-rw-r--r--  1 root  wheel   434 30 Aug 22:29 patch-Makefile
-rw-r--r--  1 root  wheel   451 30 Aug 22:29 patch-cmd__modutil__modutil.h
-rw-r--r--  1 root  wheel  1448 30 Aug 22:29 patch-cmd__modutil__pk11.c
-rw-r--r--  1 root  wheel   635 30 Aug 22:29 patch-cmd__platlibs.mk
-rw-r--r--  1 root  wheel   341 30 Aug 22:29 patch-lib__certdb__xauthkid.c
-rw-r--r--  1 root  wheel   509 30 Aug 22:29 patch-lib__certdb__xbsconst.c
-rw-r--r--  1 root  wheel   481 30 Aug 22:29 patch-lib__certdb__xconst.c
-rw-r--r--  1 root  wheel   285 30 Aug 22:29 patch-lib__ckfw__dbm__ckdbm.h
-rw-r--r--  1 root  wheel   291 30 Aug 22:29 patch-lib__freebl__config.mk
-rw-r--r--  1 root  wheel   284 30 Aug 22:29 patch-lib__nss__config.mk
-rw-r--r--  1 root  wheel   301 30 Aug 22:29 patch-lib__pk11wrap__secmodi.h
-rw-r--r--  1 root  wheel   311 30 Aug 22:29 patch-lib__smime__config.mk
-rw-r--r--  1 root  wheel   296 30 Aug 22:29 patch-lib__softoken__config.mk
-rw-r--r--  1 root  wheel   333 30 Aug 22:29 patch-lib__softoken__legacydb__cdbhdl.h
-rw-r--r--  1 root  wheel   372 30 Aug 22:29 patch-lib__softoken__legacydb__dbmshim.c
-rw-r--r--  1 root  wheel   332 30 Aug 22:29 patch-lib__softoken__legacydb__keydb.c
-rw-r--r--  1 root  wheel   361 30 Aug 22:29 patch-lib__softoken__legacydb__keydbi.h
-rw-r--r--  1 root  wheel   341 30 Aug 22:29 patch-lib__softoken__legacydb__pcertdb.c
-rw-r--r--  1 root  wheel   353 30 Aug 22:29 patch-lib__softoken__legacydb__pk11db.c
-rw-r--r--  1 root  wheel   368 30 Aug 22:29 patch-lib__ssl__config.mk
-rw-r--r--  1 root  wheel   495 30 Aug 22:29 patch-tests__common__init.sh

Nun wurde von allen veränderten Dateien ein Patch im Verzeichnis files erstellt.

Related Entries:
Gespeicherte Optionen nach OptionsNG konvertieren
Ports-Subversion-Repository spiegeln
sysinstall-Ersatz für neuere FreeBSD-Versionen
Alte FreeBSD-Port Patchdateien aufsplitten
FreeBSD-Portbaum auf Fehler überprüfen
 Permalink

Fehlende Abhängigkeiten eines Ports anzeigen

Möchte man einen Port installieren, vorher aber herausfinden welche Ports als Abhängigkeiten dieses Ports installiert werden, so kann dies mit make missing im Portverzeichnis gemacht werden:

# cd /usr/ports/editors/openoffice.org-3
# make missing
sysutils/coreutils
devel/patch
archivers/p5-Archive-Zip
devel/apache-ant

Mehr Informationen zu den make-Targes des Portbaums findet man in der Manpage ports(7).

Related Entries:
Gespeicherte Optionen nach OptionsNG konvertieren
Ports-Subversion-Repository spiegeln
sysinstall-Ersatz für neuere FreeBSD-Versionen
Alte FreeBSD-Port Patchdateien aufsplitten
FreeBSD-Portbaum auf Fehler überprüfen
 Permalink
1-2/2