Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
[gelöst] wie portage hooks verwenden?
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)
View previous topic :: View next topic  
Author Message
Christian99
Veteran
Veteran


Joined: 28 May 2009
Posts: 1176

PostPosted: Fri Sep 03, 2010 8:43 am    Post subject: [gelöst] wie portage hooks verwenden? Reply with quote

Hallo, kann mir jemand sagen wo ich eine Anleitung/Dokumentation für portage-hooks finde? Ich hab bisher nichts vernünftiges finden können,
Schönen Dank
Christian


Last edited by Christian99 on Mon Sep 06, 2010 8:50 am; edited 2 times in total
Back to top
View user's profile Send private message
Genone
Retired Dev
Retired Dev


Joined: 14 Mar 2003
Posts: 9236
Location: beyond the rim

PostPosted: Fri Sep 03, 2010 11:28 am    Post subject: Reply with quote

Hooks wofür? Gibt diverse Stellen wo eigener Code eingebaut werden kann, allerdings auf sehr unterschiedliche Weise und mit unterschiedlichen Auswirkungen.
Back to top
View user's profile Send private message
Christian99
Veteran
Veteran


Joined: 28 May 2009
Posts: 1176

PostPosted: Fri Sep 03, 2010 12:34 pm    Post subject: Reply with quote

ich möchte wine ohne "-fomit-frame-pointer" bauen, da das bei manchen CD-Erkennungen Probleme gibt.
Ich bin mir aber sowieo nicht ganz sicher ob hooks dafür richtig sind, weil ich noch keine richtige Dokumentation dazu gefunden habe.
Was ich bisher so gemerkt habe, ist das man {pre,post}-{src_compile,prepare...} Funktionen definieren kann. ich hätte dann in eine pre_src_compile funktion sowas wie "filter-flags -fomit-frame-pointer" geschrieben. Was ich blos nicht weiß ist, wo (in welche Datei) diese pre_src_compile Funktion rein kommt, und ob ich das Paket-spezifisch machen kann und ob ich da zusätlich "inherit flag-o-matic" rein machen kann, damit ich filter-flags verwenden kann.
Ich weiß dass ich in /etc/portage/env/... auch einfach CXX_FLAGS="" neu definieren kann für wine, aber dass möchte ich eigentlich nicht, denn dann müsste ich ja theoretisch beim ändern der Compiler-Flags das zweimal machen (zugegeben, ich hab das bisher blos ein oder zweimal gemacht, aber mir gehts ums Prinzip :) ). Das würde ich dann halt machen, wenn hooks nicht so funktionieren wie ich mir es vorstelle.

Schöne Grüße
Christian
Back to top
View user's profile Send private message
mv
Watchman
Watchman


Joined: 20 Apr 2005
Posts: 6281

PostPosted: Fri Sep 03, 2010 2:06 pm    Post subject: Reply with quote

In /etc/portage/env/... kannst Du auch Deine Funktion definieren. Allerdings hast Du Probleme, falls das ebuild nicht "inherit flag-o-matic" enthält, denn "inherit" darfst Du dort nicht mehr ausführen. Du kannst dort natürlich ein eigenes filter-flags stricken oder einfach so etwas wie CXXFLAGS="${CXXFLAGS} -fno-omit-frame-pointer" einfügen.
Alternativ kannst Du auch die /etc/portage/bashrc aus portage-bashrc.tar.gz benutzen und in die dann unterstützte Datei/Directory /etc/portage/package.cflags einen Eintrag vom Typ
Code:
app-emulation/wine +fomit-frame-pointer
machen.
Back to top
View user's profile Send private message
Genone
Retired Dev
Retired Dev


Joined: 14 Mar 2003
Posts: 9236
Location: beyond the rim

PostPosted: Fri Sep 03, 2010 2:10 pm    Post subject: Reply with quote

Ok, Phase Hooks werden in /etc/portage/bashrc definiert. Die Funktionen werden dann für jedes Paket benutzt, aber in der Funktion kann man natürlich eine passende Bedingung definieren, e.g.
Code:
if [ "${PN}" == "wine" ]; then

Eclasses sollte man definitiv nich via bashrc laden (Elibs würden gehen, aber die existieren noch nicht), aber da das wine Ebuild flag-o-matic selber lädt brauchst du das hier auch nicht.

Das man mit Dingen /etc/portage/bashrc aufpassen muss ist hoffentlich selbstverständlich.
Back to top
View user's profile Send private message
Christian99
Veteran
Veteran


Joined: 28 May 2009
Posts: 1176

PostPosted: Fri Sep 03, 2010 5:12 pm    Post subject: Reply with quote

hm, also wohin jetzt? in /etc/portage/bashrc oder nach /etc/portage/env... weil im env verzeichnis kann ich doch per Paket einstellungen machen. da ist nämlich schon was drin: /etc/portage/env/dev-db/mysql enthält:
Code:
CFLAGS="-O2 -pipe -fomit-frame-pointer -march=core2 -DPIC -fPIC"
CXXFLAGS="-O2 -pipe -fomit-frame-pointer -march=core2 -DPIC -fPIC"

wobei ich allerdings nicht weiß, wo das herkommt. ich bin mir ziemlich sicher, dass ich das nicht selber gemacht hab, zu einem Paket gehört sie aber auch nicht (laut equery b) Habt ihr da zufällig ne Ahnung wo die herkommen könnte, und ob ich die noch brauche?

zu "-fno-omit-frame-pointer": Geht das so? Gibts diese Option überhaupt? In der gcc doku steht das so nicht drin, oder kann man alles mit vorhergehenden "no" negieren? Das wäre eigentlich am einfachsten.
Und wenn ich eine Funktion schreibe, wie muss die aussehen? ganz einfache bash-function? oder brauch ich da noch was extra?
Ich würde es so machen:
Code:

/etc/portage/env/app-emulation/wine:

function pre_src_compile( )
{
filter-flags -fomit-frame-pointer
}

Reicht das so?
Back to top
View user's profile Send private message
Max Steel
Advocate
Advocate


Joined: 12 Feb 2007
Posts: 2042
Location: My own world! I and Gentoo!

PostPosted: Fri Sep 03, 2010 5:23 pm    Post subject: Reply with quote

Statt -fno-omit-frame-pointer einzubauen, kannst du auch -fomit-frame-pointer "ausbauen"

/etc/portage/env/app-emulation/wine ---> /etc/portage/env/no-frame-pointer
Code:
CFLAGS="${CFLAGS/-fomit-frame-pointer /}"
CXXFLAGS="${CXXFLAGS/-fomit-frame-pointer /}"


Vll gehts mit ebuild-functions auch. Aber so dürfte es (meiner Meinung nach) am einfachsten klappen.
_________________
mfg
Steel
___________________
Sorry for my bad English.

Heim-PC: Intel i7-5820K, 32GB RAM, GTX 1080
Laptop: Intel Core i5-4300U, 16GB RAM, Intel Graphic
Arbeit-PC: Intel i5-3470S, 16GB RAM, Intel Graphic
Back to top
View user's profile Send private message
Necoro
Veteran
Veteran


Joined: 18 Dec 2005
Posts: 1912
Location: München (Germany)

PostPosted: Fri Sep 03, 2010 7:28 pm    Post subject: Reply with quote

Christian99 wrote:
zu "-fno-omit-frame-pointer": Geht das so? Gibts diese Option überhaupt? In der gcc doku steht das so nicht drin, oder kann man alles mit vorhergehenden "no" negieren?


man gcc wrote:
Many options have long names starting with -f or with -W---for example,
-fmove-loop-invariants, -Wformat and so on. Most of these have both
positive and negative forms; the negative form of -ffoo would be
-fno-foo. This manual documents only one of these two forms, whichever
one is not the default.

_________________
Inter Deum Et Diabolum Semper Musica Est.
Back to top
View user's profile Send private message
Christian99
Veteran
Veteran


Joined: 28 May 2009
Posts: 1176

PostPosted: Mon Sep 06, 2010 8:50 am    Post subject: Reply with quote

ok, vielen dank für eure Hilfe. Ich hab jetzt in der /etc/portage/env/app-emulation/wine folgendes stehen:
Code:
CFLAGS="${CFLAGS} -fno-omit-frame-pointer"
CXXFLAGS="${CXXFLAGS} -fno-omit-frame-pointer"

und das scheint zu funktionieren.
Auch das mit dem "ausbauen" ist interessant. das hab ich noch nicht gekannt.
Back to top
View user's profile Send private message
Max Steel
Advocate
Advocate


Joined: 12 Feb 2007
Posts: 2042
Location: My own world! I and Gentoo!

PostPosted: Mon Sep 06, 2010 3:50 pm    Post subject: Reply with quote

Christian99 wrote:
ok, vielen dank für eure Hilfe. Ich hab jetzt in der /etc/portage/env/app-emulation/wine folgendes stehen:
Code:
CFLAGS="${CFLAGS} -fno-omit-frame-pointer"
CXXFLAGS="${CXXFLAGS} -fno-omit-frame-pointer"

und das scheint zu funktionieren.
Auch das mit dem "ausbauen" ist interessant. das hab ich noch nicht gekannt.


Geht sogar noch weiter.
Da python-2 mit -O3 besser lauft(/en soll) hab ich z.B.:

/etc/portage/env/dev-lang/python ---> /etc/portage/env/optimize-3
Code:
CFLAGS="{CFLAGS/-O? /-O3 }"
CXXFLAGS="{CXXFLAGS/-O? /-O3 }"


Das heißt -O<irgendwas> mit -O3 austauschen.

Edith: Quatsch Portage. Python natürlich.
_________________
mfg
Steel
___________________
Sorry for my bad English.

Heim-PC: Intel i7-5820K, 32GB RAM, GTX 1080
Laptop: Intel Core i5-4300U, 16GB RAM, Intel Graphic
Arbeit-PC: Intel i5-3470S, 16GB RAM, Intel Graphic
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Deutsches Forum (German) 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