MLD-5.x > Development

Wie wird ein Patch bei der Paketerstellung angewandt?

(1/2) > >>

maf:
Ich habe einen Patch, den ich zuvor unter yaVDR für ein Plugin erstellt hatte, in das Unterverzeichnis src des Pakets kopiert, das ich erstellen möchte. Der Name der Patch-Datei enthält den Namen des Pakets und endet mit '.patch'. Bei
--- Code: ---cd PACKAGENAME; make
--- End code ---
allein wird der Patch allerdings nicht angewandt. Auch bei
--- Code: ---cd PACKAGENAME; make patch
--- End code ---
nicht. Was muss ich tun, damit ein Patch bei der Paketerstellung angewandt wird?

Walter:
Hallo,
Im Makefile vom vdr findet sich dies ?

--- Code: ---$(MAKE) patch src_path=$@
--- End code ---
und im Makefile.plugin dies

--- Code: ---$(MAKE) patch src_path=$@ src_name=_$(pluginname)_
--- End code ---

maf:
Danke für Deine Hinweise.

Die Regel in Makefile.plugin sieht eigentlich vielversprechend aus:

--- Code: ---src/$(pluginname)-%:
        if [ -n "$(src_url)" ]; then \
                $(MAKE) -f ../Makefile.getfile file=src/$(name).tgz version=$(version) url='$(src_url)'; \
        else \
                $(MAKE) -f ../Makefile.getfile file=src/$(name).tgz version=$(version) rule='$(src_rule)'; \
        fi
        rm -rf $@ $@-src
        mkdir -p $@-src
        tar xf src/$(name).tgz -C $@-src
        mv $@-src/* $@
        rm -r $@-src
        ln -fns $(@F) src/$(pluginname)
        $(MAKE) patch src_path=$@ src_name=_$(pluginname)_
--- End code ---
Aber das Verzeichnis src/$(pluginname)-% wird bereits im Zuge von 'make checkout' angelegt, die Regel deshalb nie angewandt.

Ich habe es deshalb mit

--- Code: ---make patch src_path=$PWD/src/PACKAGENAME-PACKAGEVERSION
--- End code ---
versucht. Das funktioniert zwar, sieht aber nicht wie die "richtige" Lösung aus.

Ich suche also immer noch nach allgemeingültigen Vorgehensweise: Wie kann man dafür sorgen, dass ein Patch, den man nach dem 'make checkout' in das Verzeichnis src kopiert, beim Erstellen des Pakets angewandt wird?

P3f:
Hallo maf,

bisher hat bei uns immer geklappt, das die Patche eingebaut / mit eingesetzt werden, sobald man sich an die Namenskonvention hält. Ich habe hier mal ein Beispiel am vdr-plugin-epgsearch Plugin.


--- Code: ---pit@MLD-5:~/nightbuild/amd64/vdr-plugin-epgsearch$ cd src/
pit@MLD-5:~/nightbuild/amd64/vdr-plugin-epgsearch/src$ ls -l
insgesamt 60
-rw-r--r--  1    pit pit        951 Jan  7 18:36 11_epgsearch_menue.patch
-rw-r--r--  1    pit pit      40816 Jan  7 18:36 12_epgsearch_README.patch
lrwxrwxrwx  1    pit pit         20 Jun 17 16:08 epgsearch -> epgsearch-2019.04.11
drwxr-xr-x 11    pit pit      12288 Jun 17 21:13 epgsearch-2019.04.11
-rw-r--r--  1    pit pit        393 Jan  7 18:36 epgsearchcats.conf
--- End code ---

Dort kannst Du sehen, das es 2 Patche gibt die eingebunden werden sollen.

Hilft Dir das als Beispiel?

Ansonsten schreib doch mal dein Patch hier rein, oder schick uns den zu. Dann schauen wir es uns an.


Gruß,

Pit

clausmuus:
Wenn Du die Sourcen des Plugins mit eincheckst, dann müssen da drin bereits alle Patches angewendet sein. Wenn Du trotzdem Patches dazu packst, dann dient das lediglich der Dokumentation.
Normalerweise checken wir die Sourcen nicht mit ein. Das wird nur bei einigen wenigen Plugins gemacht, bei denen die Sourcen nicht zuverlässig verfügbar sind, oder nicht unter einer festen URL abrufbar sind.

Navigation

[0] Message Index

[#] Next page

Go to full version