poudriere - intltool im FreeBSD11-Jail zu alt für Paketbau, wie aktuelleres im Jail aus ports bauen?

H

holgerw

Guest
Hallo,

folgende Schwierigkeit: Für den Bau eines Paketes graphics/pinta, dessen Files ich etwas modifiziert habe, so dass es sauber baut, benötigt man das aktuellste Paket intltool. Mit portmaster kann ich pinta auf meinem Desktop-System nur bauen, wenn ich zuvor aus den Ports das aktuelle intltool gebaut und installiert habe, das Binary direkt über pkg ist zu alt.

Unter poudriere habe ich ja nun ein aktuelles FreeBSD-11-jail, aber da baut pinta eben wegen diesem zu alten intltool auch nicht. Wie bekomme ich ins jail das aktuelle intltool rein, damit poudriere mir pinta baut?

Viele Grüße,
Holger
 
Hallo Robert,

hmmm, ich habe in der liste für poudriere mal neben dem pinta das intltool eingetragen. Stoße ich dann mit poudriere die Abarbeitung der Liste an, kommt der Fehler, dass intltool zu alt ist (was ja eigentlich klar ist, weil ich ja dann lediglich mit Hilfe des Jails ein intltool für mein eigenes repo baue, was für das Jail gar nicht wirksam ist.

Wie baue ich für das Jail ein dort wirksames intltool? Geht das elegant über poudriere?

Viele Grüße,
Holger
 
Hallo @foxit

zum Hintergrund: pinta ist ein gelöschter port, weil er angeblich nicht mit mono baut. Ich habe im pinta port Anpassungen hinsichtlich einer aktuelleren Monoversion gemacht, mehr nicht, und danach baut pinta ohne Murren auf meinem Desktop-System mit portmaster, sofern ich ebenfalls aus den Ports inttool installiert habe:
Code:
Name           : intltool
Version        : 0.51.0_1
Installed on   : Wed Dec 14 17:41:50 2016 CET
Origin         : textproc/intltool
Architecture   : freebsd:11:x86:64
Prefix         : /usr/local
Categories     : gnome textproc

Wenn ich versuche, pinta mit portmaster zu bauen, ohne intltool zuvor mit portmaster gebaut zu haben, endet das .configure von pinta mit:
Code:
./configure: intltool-update: not found
checking for intltool >= 0.35.0...  found
configure: error: Your intltool is too old.  You need intltool 0.35.0 or later
Nacvh einem Bau mit portmaster von textproc/intltool baut pinta dann sauber durch.

So, und nun mit poudriere unter einem aktuellen jail FreeBSD 11:
Der Bau bricht ebenfalls ab, im error-log zu pinta genau die gleiche Meldung:
Code:
./configure: intltool-update: not found
checking for intltool >= 0.35.0...  found
configure: error: Your intltool is too old.  You need intltool 0.35.0 or later

Ich möchte nun wissen, wie ich in die Bauumgebung jail-FreeBSD 11 das intltool hinein bekomme, damit poudriere pinta sauber baut. pinta benötigt intltool nicht als Abhängigkeit, um zu laufen, der Bau von pinta benötigt intltool in einer aktuellen Version.

Wie bekomme ich in die Bauwerkzeugumgebung jail-FreeBSD-11 das aktuelle intltool?

Viele Grüße,
Holger
 
Ich kenn mich mit poudriere nicht so wirklich aus, jedoch wird für das bauen der Pakete initial eine Jail erstellt, aber nicht nach jedem Job gelöscht sondern nur gestoppt(?). Dann könntest du doch die Jail einfach starten, rein springen, intltool aus den Ports installieren, Jail beenden und dann dein Bulk Job mit poudriere starten?
 
@holgerw
Die Lösung ist ganz einfach. Steig auf den Quartals Branch 2017Q1 um (Sollte man eh machen, da dieser der neue aktuelle stable Branch ist). Dort ist textproc/intltool in der Version 0.51.0 vorhanden.
Code:
# Created by: Ade Lovett <ade@FreeBSD.org>
# $FreeBSD: branches/2017Q1/textproc/intltool/Makefile 412349 2016-04-01 14:25:16Z mat $
PORTNAME=  intltool
PORTVERSION=  0.51.0
Mit poudriere kannst du den Branch so bekommen (per SVN):
Code:
poudriere ports -c -B branches/2017Q1 -m svn+https -p 2017Q1
Anzeigen geht so:
Code:
poudriere ports -l
Und bauen so:
Code:
poudriere bulk -f <PAKETLISTE> -j <JAIL> -p 2017Q1
Gruss
 
Hallo,

danke Euch für die Antworten.

@foxit, Noch eine Frage, irgendwie stehe ich da wohl auf dem Schlauch: Wenn ich das so mache, wie Du es beschreibst, habe ich doch danach in dem Packages-Verzeichnis All von poudriere das aktuelle intltool-Paket, aber damit ist dieses Paket doch noch nicht in der jail installiert, sondern nur mithilfe der jail gebaut.

Wie bekomme ich in die jail das intltool installiert?

Ich habe mal mit dem Jail Kapitel im Handbuch (en) angefangen, aber mich da einzuarbeiten finde ich für meine Zwecke ein wenig wie das Schießen mit Kanonen auf Spatzen.

Mittlerweile weiß ich, dass ich mit service jail onestart meine jail starten kann, mit jls wird sie angezeigt, mit jexec 1 tsh komme ich in die jail, nur wie installiere ich dann in der jail Software?

Viele Grüße,
Holger
 
Du hast doch noch den Port mit dem graphics/pinta Verzeichnis aus dem alten Branch das du geändert hast oder? Das kopierst du einfach in das Verzeichnis von den Branch 2017Q1.

Im pinta Port ist dann eine Abhänigkeit (sollte zumindest) zu textproc/intltool das dann in V. 0.51.0 vorhanden ist und kompiliert werden kann.
 
Hallo @foxit
danke, werde ich mal probieren.

Davon abgesehen:
Kennst Du eine gute - leicht verständliche - Einführung zu den Basics rund um Jails? Ich finde da das FreeBSD-Handbuch ziemlich kompliziert - und leider auch veraltet, da steht nix von einer /etc/jail.conf, sondern da wird noch alles in die /etc/rc.conf eingetragen, das wird aber beim händischen Starten der Jail dann als obsolet angemeckert.

Mit Basics meine ich:
- wie eine jail betreten
- wie Zugriff auf das Internet in der Jail bekommen
- wie in der Jail Pakete installieren

Kennst Du da ein schönes HowTo, ob englisch oder deutsch spielt keinen großen Walzer.

Viele Grüße,
Holger
 
Also mit poudriere solltest du nicht in die Jail müssen. Die sind nur sehr kurzlebig.

Kann es sein, dass du die Ports, die poudriere (per default in /usr/local/poudriere/ports/) verwendet mit denen in deinem Basissystem (/usr/ports) verwechselst?

Wenn du meinst, dass es mit den normalen Ports funktioniert mach mal ein "poudriere ports -u", schau, ob die beiden Ports, intltool und pinta innerhalb von /usr/local/poudriere/ports/ so sind wie du möchtest und dann sollte es funktionieren.

Solltest du wirklich in die Poudriere Jail wollen schau dir die Ausgabe von "poudriere help jail" an. Da kannst du sie explizit starten (weil kurzlebig).

Und wie foxit sagt solltest du das Pakete nicht manuell installieren müssen, weil sich poudriere drum kümmert, dass die Abhängigkeiten von Paketen da ist. Die Jail besorgt sich und installiert alles was sie braucht um deine Zielpakete zu bauen.

Würde alles was du kannst mit poudriere machen was jails angeht. Für Jails finde ich die Man Pages recht gut. Es gibt jail(8) um jails zu verwalten, jls(8) für eine Liste der laufenden jails und jexec(8) um da drin Sachen zu starten, also auch eine Shell. jls und jexec sind extrem simpel und jail brauchst du wahrscheinlich für poudriere nicht. Eher nur jexec, aber selbst das nicht unbedingt weil du ja ohnehin alles in /usr/local/poudriere/jails/ hast und du wahrscheinlich nur Textdateien bearbeiten möchtest?
 
Hallo @Athaba
danke Dir für Deine hilfreichen Hinweise zum Jail-Handling per poudriere.

Kann es sein, dass du die Ports, die poudriere (per default in /usr/local/poudriere/ports/) verwendet mit denen in deinem Basissystem (/usr/ports) verwechselst?
Nein, ich weiß um die verschiedenen Ports und auch darum, wie man poudriere dazu bewegt, Custom Ports zu benutzen.

Solltest du wirklich in die Poudriere Jail wollen schau dir die Ausgabe von "poudriere help jail" an. Da kannst du sie explizit starten (weil kurzlebig).
Das werde ich mal testen.

Viele Grüße,
Holger
 
Zum testen von Ports empfiehlt es sich, sich ein extra Portstree anzulegen. Ich habe sowohl local als auch auf meinem Poudriere Server das ganze unter ~/dev/ports
 
Zurück
Oben