Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
via ebuild mehrere Repos auschecken?
View unanswered posts
View posts from last 24 hours
View posts from last 7 days

 
Reply to topic    Gentoo Forums Forum Index Deutsches Forum (German) Diskussionsforum
View previous topic :: View next topic  
Author Message
3PO
Veteran
Veteran


Joined: 26 Nov 2006
Posts: 1110
Location: Schwabenländle

PostPosted: Wed Jun 01, 2016 3:07 pm    Post subject: via ebuild mehrere Repos auschecken? Reply with quote

Hallo Zusammen,

ist eigentlich möglich, via ebuild mehrere Repos auszuchecken?

Beispiel:

in "EGIT_REPO_URI" steht das eigentliche Paket und weiter unten z.B. in "src_prepare" möchte aus einem anderen Repo einen Patch herunterladen und anwenden.

Ist soetwas möglich und falls ja, wie?
Back to top
View user's profile Send private message
mrsteven
Veteran
Veteran


Joined: 04 Jul 2003
Posts: 1938

PostPosted: Wed Jun 01, 2016 7:42 pm    Post subject: Reply with quote

Hallo,

auch wenn es deine Frage nicht direkt beantwortet, aber das übliche Vorgehen bei kleineren Patches ist eigentlich, dass man die in das files-Verzeichnis des Ebuilds legt und dann in src_prepare einfach ein
Code:
epatch "${FILESDIR}/${P}-foo.patch

macht. Bei nur einem Patch ist das sicher einfacher und effizienter, als zwei Repositories zu klonen.
_________________
Unix philosophy: "Do one thing and do it well."
systemd: "Do everything and do it wrong."
Back to top
View user's profile Send private message
3PO
Veteran
Veteran


Joined: 26 Nov 2006
Posts: 1110
Location: Schwabenländle

PostPosted: Wed Jun 01, 2016 7:53 pm    Post subject: Reply with quote

Dass es mit epatch geht ist mir auch klar, aber das war nicht die Frage.
Back to top
View user's profile Send private message
franzf
Advocate
Advocate


Joined: 29 Mar 2005
Posts: 4565

PostPosted: Thu Jun 02, 2016 5:35 am    Post subject: Reply with quote

Es sollte gehen, das Patch via SRC_URI herunterzuladen und dann epatch in src_prepare nicht aus ${FILESDIR} zu füttern sondern aus ${DISTDIR}.
Back to top
View user's profile Send private message
mv
Watchman
Watchman


Joined: 20 Apr 2005
Posts: 6747

PostPosted: Mon Jun 06, 2016 9:12 am    Post subject: Reply with quote

Die entsprechenden Eclasses für die verschiedenen VC-Systeme (git*, cvs, ...) sehen leider nicht vor, was Du willst (außer Deine Quellen stammen zufälligerweise von vorschiedenen VC-Systemen).
Für das VC-System monotone gibt es eine Eclass, die das kann, im mv overlay (denn das Paket "games-rpg/magus" dort benötigt Sourcen aus verschiedenen Quellen), aber eben nur für monotone, und das ist nicht im offiziellen Gentoo-Repository (für monotone gibt es gar keine Eclasse im Gentoo-Repository).
Du musst Dir wohl selbst eine passende Eclasse schreiben (oder es one-shot im Ebuild manuell erledigen).
Back to top
View user's profile Send private message
3PO
Veteran
Veteran


Joined: 26 Nov 2006
Posts: 1110
Location: Schwabenländle

PostPosted: Mon Jun 20, 2016 4:45 pm    Post subject: Reply with quote

Ich habe es jetzt anders gelöst, ich habe es mit Plugins gemacht.

foo-bar/lala
foo-bar/lala-Plugin-abc
foo-bar/lala-Plugin-123

Was mir allerdings noch fehlt ist, dass wenn "foo-bar/lala" neu gebaut wird, auch hinterher jedes Mal(!) die Plugins auch neu gebaut werden.

Ich habe es mit "PDEPEND" versucht, das scheint aber nicht zu funktionieren. :(

Hat Jemand eine Idee, wie man das regeln könnte?
Back to top
View user's profile Send private message
3PO
Veteran
Veteran


Joined: 26 Nov 2006
Posts: 1110
Location: Schwabenländle

PostPosted: Thu Jun 23, 2016 3:03 pm    Post subject: Reply with quote

Niemand eine Idee dazu?
Back to top
View user's profile Send private message
schmidicom
Veteran
Veteran


Joined: 09 Mar 2006
Posts: 1915
Location: Schweiz

PostPosted: Fri Jun 24, 2016 8:31 am    Post subject: Reply with quote

Schau dir mal die ebuilds von lightdm und dessen greeter an die verhalten sich nämlich genau so.
_________________
Lenovo - ThinkPad P16s Gen 2 - 21K9CTO1WW
Back to top
View user's profile Send private message
mv
Watchman
Watchman


Joined: 20 Apr 2005
Posts: 6747

PostPosted: Fri Jun 24, 2016 10:25 am    Post subject: Reply with quote

schmidicom wrote:
Schau dir mal die ebuilds von lightdm und dessen greeter an die verhalten sich nämlich genau so.

Das erscheint Dir wahrscheinlich nur zufällig so, weil Du sie nur bei Versions-Bumps neu baust.
Ich denke nicht, dass das gewünschte Verhalten bei Live-Ebuilds (ohne Versionen- oder Subslot-Bumps) erreicht werden kann.
Back to top
View user's profile Send private message
franzf
Advocate
Advocate


Joined: 29 Mar 2005
Posts: 4565

PostPosted: Fri Jun 24, 2016 11:15 am    Post subject: Reply with quote

mv wrote:
schmidicom wrote:
Schau dir mal die ebuilds von lightdm und dessen greeter an die verhalten sich nämlich genau so.

Das erscheint Dir wahrscheinlich nur zufällig so, weil Du sie nur bei Versions-Bumps neu baust.
Ich denke nicht, dass das gewünschte Verhalten bei Live-Ebuilds (ohne Versionen- oder Subslot-Bumps) erreicht werden kann.

Wir können überhaupt nichts sagen, weil die Ausgangsfrage schon recht nebulös war und am eigentlichen Thema vorbei ("patch in src_prepare" vs "externes Plugin als eigenes Paket"). Ich weiß nicht, wie ernst das "EGIT_REPO_URI" im Ausgangspost genommen werden kann. Falls es sich tatsächlich um live-ebuilds handeln sollte und falls es nicht möglich ist ABIs korrekt im subslot zu handhaben (was ich annehme) sehe ich keine automatische Lösung sondern nur ein manuelles revdep-rebuild.
Back to top
View user's profile Send private message
mv
Watchman
Watchman


Joined: 20 Apr 2005
Posts: 6747

PostPosted: Fri Jun 24, 2016 1:21 pm    Post subject: Reply with quote

franzf wrote:
Wir können überhaupt nichts sagen, weil die Ausgangsfrage schon recht nebulös war

Für mich ist die Frage sehr klar, weil es genau dieses Problem beim Ebuidl von magus gab:
Upstream stellt das gewünschte Programm nicht in einem Repository zur Verfügung, das alles enthält, sondern bestimmte Komponenten (Libraries/Plugins/Patches/... etc.) werden in einem getrennten Repository gelagert. Trotzdem sind diese Repositories nicht unabhängig voneinander, d.h. Syncen und Neubauen des Haupt-Repositories wird nicht funktionieren, solange man nicht vorher die anderen Repositories auf den neuesten Stand gebracht und während des Bauens zur Verfügung hat.
Anscheinend hat sich 3PO entschlossen, die Libraries/Patches/was-auch-immer in einem getrennten Paket als Source-Code zu installieren, um sie dann anschließend beim emergen des Hauptprogramms zur Verfügung zu haben (oder vielleicht auch umgekehrt).
Da gibt es aber dann eben das Problem, dass bei einem erneuten Emergen des Haupt-Repositories (mit EVCS_OFFLINE='') nicht zwangsläufig die anderen Repositories erneut emerget werden müssen.
Back to top
View user's profile Send private message
franzf
Advocate
Advocate


Joined: 29 Mar 2005
Posts: 4565

PostPosted: Fri Jun 24, 2016 3:19 pm    Post subject: Reply with quote

mv wrote:
Anscheinend hat sich 3PO entschlossen, die Libraries/Patches/was-auch-immer in einem getrennten Paket als Source-Code zu installieren, um sie dann anschließend beim emergen des Hauptprogramms zur Verfügung zu haben (oder vielleicht auch umgekehrt).

Es schaut eher aus als wäre es umgekehrt, und da könnte man sehrwohl mit subslots und =-Operator arbeiten, so lange es kein live-ebuild ist (ginge auch, würde aber mehr Aufwand bedeuten). Und ich bin mir nichtmal sicher, dass es live-ebuilds sind.
3PO kannst du mal bitte genau sagen, was du versuchst? Am besten gleich sagen, welches Paket du wie installieren willst, dann können wir auch konkrete Tips geben.
Back to top
View user's profile Send private message
3PO
Veteran
Veteran


Joined: 26 Nov 2006
Posts: 1110
Location: Schwabenländle

PostPosted: Fri Jun 24, 2016 7:33 pm    Post subject: Reply with quote

franzf wrote:
[...] 3PO kannst du mal bitte genau sagen, was du versuchst? Am besten gleich sagen, welches Paket du wie installieren willst, dann können wir auch konkrete Tips geben.


Mir geht es darum: --> https://github.com/3PO/3PO-overlay/tree/master/media-tv

Dort gibt es ein Paket "epgd". Ich will nun, dass wenn epgd neu gebaut wird, automatisch auch die Plugins (epg-plugin-*) neu gebaut werden.
Back to top
View user's profile Send private message
franzf
Advocate
Advocate


Joined: 29 Mar 2005
Posts: 4565

PostPosted: Mon Jun 27, 2016 3:37 pm    Post subject: Reply with quote

Soweit ich sehe hat da jeder commit eine eigene Version (wie es auch bei vim der Fall ist). Du könntest also auch regelmäßig neue Snapshots ins Overlay packen und denen einen Subslots verpassen, z.B. beim aktuellen Stand "2016-06-25: version 1.0.106" im Ebuild einen SLOT="1/106". Die Plugins haben dann als Abhängigkeit "media-tv/epgd:=" stehen und sollten dann automatisch neu gebaut werden können.
epgd-9999 kann so aber leider keinen automatischen rebuild auslösen, da der SLOT (und damit subslot) händisch im ebuild eingetragen werden muss und das irgendwie nahezu unmöglich ist, das beim live-ebuild immer aktuell zu halten ;) Da brauchst du dann ein revdep-rebuild. Evtl. reicht dir aber auch eine pkg_postinst-Meldung, die den User auffordert die Plugins neu zu bauen.

Auch von der Code-Seite her ein interessantes Projekt, dieses epgd... "CC=g++" und auch die cList-Implementierung in svdrclient.h (Verebung + template) ;) Schaut mir teilweise nach "C mit Klassen, aber richtig" aus.
Back to top
View user's profile Send private message
3PO
Veteran
Veteran


Joined: 26 Nov 2006
Posts: 1110
Location: Schwabenländle

PostPosted: Thu Jun 30, 2016 6:32 pm    Post subject: Reply with quote

Nun ja, zu jeder Revision ein ebuild zu erstellen, bin ich zu faul, denn deshalb war ja auch eingangs die Idee, einfach mehrere Repos auszuchecken.

Das es vermutlich so oder so nur ein paar User geben wird, werde ich einfach empfehlen, es so zu installieren/updaten:

Code:
emerge -v $(qlist -IC epgd)


BTW: Der Code von EPGd ist nicht von mir, ich habe nur das ebuild gebastelt. ;)
Back to top
View user's profile Send private message
kernelOfTruth
Watchman
Watchman


Joined: 20 Dec 2005
Posts: 6111
Location: Vienna, Austria; Germany; hello world :)

PostPosted: Tue Jul 19, 2016 10:34 pm    Post subject: Reply with quote

Das muss irgendwas mit Slots zu tun haben oder so

wenn z.b. xorg-server neu gebaut wird, werden automatisch die Treiber auch neu gebaut (forced rebuild)

eventuell findet sich dazu was unter:

https://www.chromium.org/chromium-os/how-tos-and-troubleshooting/portage-build-faq#TOC-When-does-a-dependency-cause-a-rebuild-

https://devmanual.gentoo.org/general-concepts/slotting/


alternativ mal im IRC nachfragen
_________________
https://github.com/kernelOfTruth/ZFS-for-SystemRescueCD/tree/ZFS-for-SysRescCD-4.9.0
https://github.com/kernelOfTruth/pulseaudio-equalizer-ladspa

Hardcore Gentoo Linux user since 2004 :D
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Deutsches Forum (German) Diskussionsforum All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum