* [gentoo-user-de] Manuelles Patchen bei emerge? @ 2019-06-12 10:24 Matthias Hanft 2019-06-12 10:29 ` Khaosgrille 0 siblings, 1 reply; 7+ messages in thread From: Matthias Hanft @ 2019-06-12 10:24 UTC (permalink / raw To: gentoo-user-de Hallo, ich würde gerne beim emerge-Vorgang gelegentlich noch schnell manuell etwas im Sourcecode ändern (zwischen Holen der Sourcefiles und dem Compilieren) - ist das möglich, und wenn ja, wie? Ich habe zwar schon "emerge -f" gefunden, was das Zeug angeblich nur holt statt gleich zu compilieren, aber die Sources finde ich trotzdem nirgendwo, und ich wüsste auch nicht, wie ich dann weitermachen sollte. Konkret würde ich gerne in media-plugins/vdr-epgsearch die zwei winzigen Änderungen von der Seite https://projects.vdr-developer.org/git/vdr-plugin-epgsearch.git/commit/?id=49ba796fe6298abf0ebba68a25ddfc92d3d70aad einbauen (die den Segfault seit letzter Woche ausmerzen sollen). Wäre im Source mit vi ja ganz simpel zu korrigieren, aber wo, wann und wie? (Ich bin nicht der große Patch-Freak. Ich kann Apache, Postfix & Co. installieren und - auch sehr komplex - konfigurieren, aber was Compi- lieren, Patchen & Co. anbelangt, bin ich der totale Noob; da verlasse ich mich bisher immer auf emerge...) Danke & Gruß Matthias. ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [gentoo-user-de] Manuelles Patchen bei emerge? 2019-06-12 10:24 [gentoo-user-de] Manuelles Patchen bei emerge? Matthias Hanft @ 2019-06-12 10:29 ` Khaosgrille 2019-06-12 11:19 ` David Haller 0 siblings, 1 reply; 7+ messages in thread From: Khaosgrille @ 2019-06-12 10:29 UTC (permalink / raw To: gentoo-user-de@lists.gentoo.org [-- Attachment #1.1: Type: text/plain, Size: 1475 bytes --] Hi, das geht wie hier beschrieben: https://wiki.gentoo.org/wiki//etc/portage/patches Also im Prinzip muss der Patch da als /etc/portage/patches/${CATEGORY}/${P} liegen. Liebe Grüße Khaosgrille ‐‐‐‐‐‐‐ Original Message ‐‐‐‐‐‐‐ On Wednesday, June 12, 2019 12:24 PM, Matthias Hanft <mh@hanft.de> wrote: > Hallo, > > ich würde gerne beim emerge-Vorgang gelegentlich noch schnell manuell > etwas im Sourcecode ändern (zwischen Holen der Sourcefiles und dem > Compilieren) - ist das möglich, und wenn ja, wie? Ich habe zwar schon > "emerge -f" gefunden, was das Zeug angeblich nur holt statt gleich zu > compilieren, aber die Sources finde ich trotzdem nirgendwo, und ich > wüsste auch nicht, wie ich dann weitermachen sollte. > > Konkret würde ich gerne in media-plugins/vdr-epgsearch die zwei winzigen > Änderungen von der Seite > https://projects.vdr-developer.org/git/vdr-plugin-epgsearch.git/commit/?id=49ba796fe6298abf0ebba68a25ddfc92d3d70aad > einbauen (die den Segfault seit letzter Woche ausmerzen sollen). Wäre > im Source mit vi ja ganz simpel zu korrigieren, aber wo, wann und wie? > > (Ich bin nicht der große Patch-Freak. Ich kann Apache, Postfix & Co. > installieren und - auch sehr komplex - konfigurieren, aber was Compi- > lieren, Patchen & Co. anbelangt, bin ich der totale Noob; da verlasse > ich mich bisher immer auf emerge...) > > Danke & Gruß Matthias. [-- Attachment #1.2: publickey - Khaosgrille@protonmail.com - 0xE78BC986.asc --] [-- Type: application/pgp-keys, Size: 1831 bytes --] [-- Attachment #2: OpenPGP digital signature --] [-- Type: application/pgp-signature, Size: 509 bytes --] ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [gentoo-user-de] Manuelles Patchen bei emerge? 2019-06-12 10:29 ` Khaosgrille @ 2019-06-12 11:19 ` David Haller 2019-06-12 13:09 ` Matthias Hanft 0 siblings, 1 reply; 7+ messages in thread From: David Haller @ 2019-06-12 11:19 UTC (permalink / raw To: gentoo-user-de Hallo, Am Wed, 12 Jun 2019, Khaosgrille schrieb: >das geht wie hier beschrieben: https://wiki.gentoo.org/wiki//etc/portage/patches > >Also im Prinzip muss der Patch da als /etc/portage/patches/${CATEGORY}/${P} liegen. >> Konkret würde ich gerne in media-plugins/vdr-epgsearch die zwei winzigen >> Änderungen von der Seite >> https://projects.vdr-developer.org/git/vdr-plugin-epgsearch.git/commit/?id=49ba796fe6298abf0ebba68a25ddfc92d3d70aad >> einbauen (die den Segfault seit letzter Woche ausmerzen sollen). Wäre >> im Source mit vi ja ganz simpel zu korrigieren, aber wo, wann und wie? [..] Also konkret, ich nehme mal an, du beziehst dich auf die ~amd Version media-plugins/vdr-epgsearch-2.2.0...: # mkdir -p /etc/portage/patches/media-plugins/vdr-epgsearch-2.2.0 # chmod -cR a+rX /etc/portage/patches/media-plugins/ # cd /etc/portage/patches/media-plugins/vdr-epgsearch-2.2.0 # wget -O vdr-epgsearch-2.2.0-no_erase_of_iterator_inside_loop.patch \ 'https://projects.vdr-developer.org/git/vdr-plugin-epgsearch.git/patch/?id=49ba796fe6298abf0ebba68a25ddfc92d3d70aad' # chmod -c a+r vdr-epgsearch-2.2.0-no_erase_of_iterator_inside_loop.patch Und das war's schon. Achso, ggfs. statt "-2.2.0" eben "-1.0.1" verwenden wenn es um die stable-Version geht. Durch die Version im Verzeichnisnamen -2.2.0 wird der Patch nur bei dieser angewendet, wenn dann 2.2.1 _mit_ dem Patch rauskommt fliegt emerge nicht auf die Nase, weil der Patch nicht zweimal angewendet werden kann. Andererseits: wenn man das öfter macht kann sich "Müll" in /etc/portage/patches ansammeln, ohne die Version würde emerge eben wg. zweifach anwenden des patches meckern und man könnte sich erinnern und den Patch löschen... Muß man eben überlegen was wann geeigneter ist... HTH, -dnh -- Optimization matters *only* when it matters. When it matters, it matters a lot, but until you know that it matters, don't waste a lot of time doing it. Even if you know it matters, you need to know *where* it matters. -- Joseph M. Newcomer ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [gentoo-user-de] Manuelles Patchen bei emerge? 2019-06-12 11:19 ` David Haller @ 2019-06-12 13:09 ` Matthias Hanft 2019-06-12 14:25 ` Felix Kuperjans 0 siblings, 1 reply; 7+ messages in thread From: Matthias Hanft @ 2019-06-12 13:09 UTC (permalink / raw To: gentoo-user-de David Haller schrieb: > > Also konkret, ich nehme mal an, du beziehst dich auf die ~amd Version > media-plugins/vdr-epgsearch-2.2.0...: Richtich! > # mkdir [...] > Und das war's schon. Das ist ja einfach :-) Allerdings bringt emerge (oder ebuild clean prepare) jetzt die Fehlermeldung * vdr-epgsearch-2.2.0.tgz BLAKE2B SHA512 size ;-) ... [ ok ] * Compiling against * vdr-2.2.0 [API version 2.2.0] >>> Unpacking source... >>> Unpacking vdr-epgsearch-2.2.0.tgz to /var/tmp/portage/media-plugins/vdr-epgsearch-2.2.0/work >>> Source unpacked in /var/tmp/portage/media-plugins/vdr-epgsearch-2.2.0/work >>> Preparing source in /var/tmp/portage/media-plugins/vdr-epgsearch-2.2.0/work/vdr-plugin-epgsearch-2.2.0 ... * Applying vdr-epgsearch-2.2.0_makefile.diff ... [ ok ] * Applying vdr-epgsearch-2.2.0-no_erase_of_iterator_inside_loop.patch ... 2 out of 2 hunks FAILED -- saving rejects to file conflictcheck.c.rej [ !! ] * ERROR: media-plugins/vdr-epgsearch-2.2.0::gentoo failed (prepare phase): * patch -p1 failed with /etc/portage/patches/media-plugins/vdr-epgsearch-2.2.0/vdr-epgsearch-2.2.0-no_erase_of_iterator_inside_loop.patch * * Call stack: * ebuild.sh, line 124: Called src_prepare * environment, line 1647: Called vdr-plugin-2_src_prepare * environment, line 2875: Called vdr-plugin-2_src_util 'prepare' * environment, line 2900: Called vdr-plugin-2_src_util 'add_local_patch' 'patchmakefile' 'linguas_patch' 'i18n' * environment, line 2908: Called eapply_user * environment, line 691: Called eapply '/etc/portage/patches/media-plugins/vdr-epgsearch-2.2.0/vdr-epgsearch-2.2.0-no_erase_of_iterator_inside_loop.patch' * environment, line 661: Called _eapply_patch '/etc/portage/patches/media-plugins/vdr-epgsearch-2.2.0/vdr-epgsearch-2.2.0-no_erase_of_iterator_inside_loop.patch' * environment, line 599: Called __helpers_die 'patch -p1 failed with /etc/portage/patches/media-plugins/vdr-epgsearch-2.2.0/vdr-epgsearch-2.2.0-no_erase_of_iterator_inside_loop.patch' * isolated-functions.sh, line 119: Called die * The specific snippet of code: * die "$@" Ich bin nicht sicher, ob und welcher Header-Zeilen man im dem Patchfile drinlassen muss.... oder liegts an ganz was anderem? Gruß Matthias. ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [gentoo-user-de] Manuelles Patchen bei emerge? 2019-06-12 13:09 ` Matthias Hanft @ 2019-06-12 14:25 ` Felix Kuperjans 2019-06-12 14:56 ` David Haller 2019-06-12 15:16 ` Matthias Hanft 0 siblings, 2 replies; 7+ messages in thread From: Felix Kuperjans @ 2019-06-12 14:25 UTC (permalink / raw To: gentoo-user-de Hallo Matthias, Am 12.06.19 um 15:09 schrieb Matthias Hanft: > * Applying vdr-epgsearch-2.2.0-no_erase_of_iterator_inside_loop.patch ... > 2 out of 2 hunks FAILED -- saving rejects to file conflictcheck.c.rej Du kannst in dieser Datei mal nachgucken, was mit deinem Patch nicht funktionierte. Aus irgendeinem Grund lässt er sich nicht auf den Quelltext anwenden. Der Workspace müsste noch in /var/tmp/portage/ liegen, ansonsten noch ein cooler Trick, um den Workspace zu bekommen: ebuild filepath.ebuild prepare erstellt dir in /var/tmp/portage (oder was du als PORTAGE_TMPDIR konfiguriert hast) den Workspace, so dass du selber darauf rumpatchen kannst (prepare im Gegensatz zu unpack wendet auch Gentoo Patches bereits an sowie deine Patches aus /etc/portage/patches). Um dann einen neuen Patch zu erstellen, ist git sehr hilfreich, wie in diesem Howto erklärt: https://wiki.gentoo.org/wiki/Patches Damit solltest du deinen Patch ins korrekte Format bringen können, so dass er sich auch anwenden lässt. Viele Grüße Felix ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [gentoo-user-de] Manuelles Patchen bei emerge? 2019-06-12 14:25 ` Felix Kuperjans @ 2019-06-12 14:56 ` David Haller 2019-06-12 15:16 ` Matthias Hanft 1 sibling, 0 replies; 7+ messages in thread From: David Haller @ 2019-06-12 14:56 UTC (permalink / raw To: gentoo-user-de [-- Attachment #1: Type: text/plain, Size: 1928 bytes --] Hallo, Am Wed, 12 Jun 2019, Felix Kuperjans schrieb: >Am 12.06.19 um 15:09 schrieb Matthias Hanft: >> * Applying vdr-epgsearch-2.2.0-no_erase_of_iterator_inside_loop.patch ... >> 2 out of 2 hunks FAILED -- saving rejects to file conflictcheck.c.rej > >Du kannst in dieser Datei mal nachgucken, was mit deinem Patch nicht >funktionierte. Aus irgendeinem Grund lässt er sich nicht auf den >Quelltext anwenden. > >Der Workspace müsste noch in /var/tmp/portage/ liegen, ansonsten noch >ein cooler Trick, um den Workspace zu bekommen: > >ebuild filepath.ebuild prepare > >erstellt dir in /var/tmp/portage (oder was du als PORTAGE_TMPDIR >konfiguriert hast) den Workspace, so dass du selber darauf rumpatchen >kannst (prepare im Gegensatz zu unpack wendet auch Gentoo Patches >bereits an sowie deine Patches aus /etc/portage/patches). >Um dann einen neuen Patch zu erstellen, ist git sehr hilfreich, wie in >diesem Howto erklärt: > >https://wiki.gentoo.org/wiki/Patches > >Damit solltest du deinen Patch ins korrekte Format bringen können, so >dass er sich auch anwenden lässt. Als Ergänzung: nach dem 'ebuild foo.ebuild prepare' kann man dann noch # ebuild foo.ebuild compile # ebuild foo.ebuild package # emerge -k foo folgen lassen... ;) 'ebuild foo.ebuild merge' funktioniert auch, macht aber irgendwas anders, jedenfalls taucht z.B. ein per 'ebuild .. merge' installiertes Paket nicht in 'qlop -l' auf (und/oder genlop)... Jedenfalls: der patch passt einfach nicht mehr zu den Sourcen... Ich hab den mal angepasst ("rebased"), siehe Anhang ;) HTH, -dnh -- [PHP ist ein] total inkonsistenter Moloch, der mehr Funktionen als Funktiona- lität hat, bei dem aber nichts anständig designt respektive implementiert ist und bei dessen Benutzung man ständlich auf der Suche nach dem Workaround zum Workaround für den Fehler im Workaround zum Designfehler ist. -- E. Schwenk [-- Attachment #2: vdr-epgsearch-2.2.0-no_erase_of_iterator_inside_loop_rebased.patch --] [-- Type: text/x-patch, Size: 1314 bytes --] From: David Haller <gentoo@dhaller.de> Subject: [PATCH adjusted] avoid erase of iterator inside of a loop see commit 49ba796fe6298abf0ebba68a25ddfc92d3d70aad at <https://projects.vdr-developer.org/git/vdr-plugin-epgsearch.git/patch/?id=49ba796fe6298abf0ebba68a25ddfc92d3d70aad> diff -ub -purN -x '*~' a/conflictcheck.c b/conflictcheck.c --- a/conflictcheck.c 2017-05-01 21:40:19.000000000 +0200 +++ b/conflictcheck.c 2019-06-12 16:42:37.187803757 +0200 @@ -498,8 +498,8 @@ int cConflictCheck::ProcessCheckTime(cCo { if ((*it) && (*it)->stop > checkTime->evaltime) checkTime->startingTimers.insert(*it); - pendingTimers.erase(*it); } + pendingTimers.clear(); LogFile.Log(3,"attach starting timers"); // handle starting timers @@ -518,9 +518,9 @@ int cConflictCheck::ProcessCheckTime(cCo { LogFile.Log(3,"stopping timer '%s' (%s, channel %s) at %s on device %d because of higher priority", (*it2)->timer->File(), DAYDATETIME((*it2)->start), CHANNELNAME((*it2)->timer->Channel()), DAYDATETIME(checkTime->evaltime), device+1); AddConflict((*it2), checkTime, pendingTimers); - devices[device].recTimers.erase(*it2); Conflicts++; } + devices[device].recTimers.clear(); } devices[device].recTimers.insert(*it); (*it)->device = device; ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [gentoo-user-de] Manuelles Patchen bei emerge? 2019-06-12 14:25 ` Felix Kuperjans 2019-06-12 14:56 ` David Haller @ 2019-06-12 15:16 ` Matthias Hanft 1 sibling, 0 replies; 7+ messages in thread From: Matthias Hanft @ 2019-06-12 15:16 UTC (permalink / raw To: gentoo-user-de Felix Kuperjans schrieb: > >> * Applying vdr-epgsearch-2.2.0-no_erase_of_iterator_inside_loop.patch ... >> 2 out of 2 hunks FAILED -- saving rejects to file conflictcheck.c.rej > Du kannst in dieser Datei mal nachgucken, was mit deinem Patch nicht > funktionierte. Aus irgendeinem Grund lässt er sich nicht auf den > Quelltext anwenden. In dieser Datei stand einfach nochmal der originale Quelltext aus der .patch-Datei, das hat mir also nicht weitergeholfen. Aber... > Der Workspace müsste noch in /var/tmp/portage/ liegen, ansonsten noch > ein cooler Trick, um den Workspace zu bekommen: [...] ...bei Fehlern bleibt .../work mit den Sourcefiles eh stehen. Ich bin dann da reingegangen, hab das fragliche File in zwei Subdirectories a und b kopiert, in b die zwei Zeilen schnell mitm vi korrigiert und dann "diff -Nub a/conflictcheck.c b/conflictcheck.c > /etc/patches.../mein.patch" gemacht. Das hatte dann wohl das richtige Format, denn damit hats nun funktioniert. Herzlichen Dank an alle Beteiligten - ich habe viel dazu- gelernt! :-) Gruß Matthias. ^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2019-06-12 15:16 UTC | newest] Thread overview: 7+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2019-06-12 10:24 [gentoo-user-de] Manuelles Patchen bei emerge? Matthias Hanft 2019-06-12 10:29 ` Khaosgrille 2019-06-12 11:19 ` David Haller 2019-06-12 13:09 ` Matthias Hanft 2019-06-12 14:25 ` Felix Kuperjans 2019-06-12 14:56 ` David Haller 2019-06-12 15:16 ` Matthias Hanft
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox