[gentoo-user-de] Bug in Portage oder "PEBCAC"..?

18/11/2013 - 22:30 von Christian Bricart | Report spam
Servus,

bevor ich die grosse englische Bug-Runde eröffen... liegt's an Portage
oder an meiner Unfàhigkeit..? ;-)

folgendes:
ich habe ein ebuild aus dem main Tree in mein lokales Overlay überführt
und möchte es (ausschliesslich!) dort weiterpflegen..
soll heissen: ich will generell dieses Paket wenn es aus dem main-Tree
kommt maskieren und nur meine Versionen benutzen - auch wenn die Version
im main Tree neuer ist. Zusàtzlich will ich diese Konfiguration nicht
immer auf jedem meiner Hosts in /etc/portage/package.{mask,unmask}
einrichten, sondern sie mit dem Overlay (<- ist zentral bei mir ein
GIT-Repo) mitbringen.

folgendes habe ich also gemacht:
- PORTDIR_OVERLAY="/usr/local/portage" in /etc/portage/make.conf
- aus /usr/portage/app-foo/bar-1.0.0.ebuild nach
/usr/local/portage/app-foo/bar-1.0.0.ebuild kopiert und geàndert
- digest/manifest gebaut
- # echo "meins" > /usr/local/portage/profiles/repo_name

soweit so gut - emerge an sich funktioniert schon mal korrekt und meine
Version aus dem local Overlay überstimmt die selbe Version aus dem
main-Tree..

Umd die oben gewünschte generelle Maskierung zu realisieren habe ich
folgendes versucht:

# echo "app-foo/bar::gentoo" > /usr/local/portage/profiles/package.mask
# echo "app-foo/bar::meins" > /usr/local/portage/profiles/package.unmask

jetzt bekomme ich bei *jedem* emerge die Warnung(en):

Invalid atom in /usr/local/portage/profiles/package.mask:
app-foo/bar::gentoo
Invalid atom in /usr/local/portage/profiles/package.unmask:
app-foo/bar::meins

... aber: es funktioniert wie gewollt! und "eix" zeigt das sogar richtig
an..

Wenn ich diese [un]mask statt im profile Overlay in die
/etc/portage/package.[un]mask schreibe, dann geht's auch ohen Warnung
und auch korrekt...

In portage(5) steht:
..
Repository Constraints
Atoms with repository constraints have a '::' separator appended
to the right side, followed by a repository name. Each repository
name should correspond to the value of a repo_name entry from one
of the repositories that is configured via the PORTDIR or
PORTDIR_OVERLAY variables (see make.conf(5)).
..

also ist das doch eigentlich doch ein "valid atom", oder nicht..?

Also die Warnungen beomme ich ja weg, indem ich in die overlay
package.mask nur "app-foo/bar" (ohne ::gentoo) reinschreibe und dann in
*jedem* lokalen /etc/portage/package.unmask dann "app-foo/bar::meins"
wieder freischalte.. aber das ist ja unschön ;-)

ach so ja .. =sys-app/portage-2.2.7 ...

Meinungen dazu..?

Danke
Christian
 

Lesen sie die antworten

#1 assabajanischer_hinterwaeldler
18/11/2013 - 23:10 | Warnen spam
du kannst unterbinden, dass eine neue version mittels rsync
syncronisiert wird. dadurch werden keine neueren version von einem paket
mehr bezogen.
dazu muss folgendes in der make.conf vorhanden sein:
PORTAGE_RSYNC_EXTRA_OPTS="--exclude-from=/etc/portage/rsync_excludes"

alle dort aufgefuehrten dateien, werden nicht mehr synronisiert.
dabei wird 1 paket pro zeile definiert, wobei auch wildcards erlaubt
sind.
leider muss diese datei pro rechner verwaltet werden und kann meines
wissens nach nicht direkt im overlay hinterlegt werden.

soll das ganze doch direkt ueber das overlay verwaltet werden, hilft
wohl nur ein skript, dass automatisch die version im overlay anpasst.

nachdem ich grad nochmal nachgesehen habe, sind diese informationen auch
in der doku enthalten:
http://www.gentoo.de/doc/de/handboo...amp;chap=5

hoff, dass entspricht dem, was du dir vorstellst

gruss
martin

Ähnliche fragen