Date: Mon, 29 Jan 2018 21:21:45 +0100 From: Johannes-Maria Kaltenbach <johannes-maria@t-online.de> To: freebsd-questions@freebsd.org Subject: Re: problem with upgrade and unable to build openjdk8 in poudriere Message-ID: <20180129202145.GA2773@localhost.org> In-Reply-To: <ee439e67-e5f7-b6bb-d9b0-d79ce5804386@FreeBSD.org> References: <20180115151549.GA9923@localhost.org> <20180128130433.GA2196@localhost.org> <ee439e67-e5f7-b6bb-d9b0-d79ce5804386@FreeBSD.org>
next in thread | previous in thread | raw e-mail | index | archive | help
Hello Matthew, thanks for your help and explanations. On Sun, Jan 28, 2018 at 11:59:43PM +0000, Matthew Seaman wrote: > On 28/01/2018 13:04, johannes-maria@t-online.de wrote: > > On Mon, Jan 15, 2018 at 04:15:49PM +0100, johannes-maria@t-online.de wrote: > >> Hello, > >> > >> I'm still working with 9.3 and thought it's time to install 11.1 > >> but there are two problems I couldn't solve myself. > >> > >> I've never worked with jails or poudriere before and probably > >> made some errors so I first describe in detail what I've done. > >> > >> To not destroy my working system I made this on a separate > >> (clear) slice of my hard disk. > >> > >> First I installed the basic 11.1 system with the boot disk > >> (FreeBSD-11.1-RELEASE-amd64-disc1.iso) without problems. > >> > >> Then I installed poudriere (pkg install poudriere) > >> and created a jail with poudriere: > >> poudriere jail -c -v 11.1-RELEASE -a amd64 -j 11amd64 > >> and installed the ports tree: > >> poudriere ports -c > >> I created a list of ports to install and started poudriere: > >> poudriere -v bulk -j 11amd64 -f list_of_ports_to_install > >> > >> > >> First problem: > >> > >> One of the ports to install is x11/kde4 which as a dependency > >> adds java/openjdk8 to the list but poudriere seems to be > >> unable to build it: > >> =>> Failed ports: java/openjdk8:build > >> [excerpt from the log-file: > >> gmake[2]: *** No rule to make target '1'. Stop. > >> gmake[2]: Leaving directory '/wrkdirs/usr/ports/java/openjdk8/work/openjdk/langtools/make' > >> ] > > I can't really give you much help with this: openjdk8 is building just > fine for me on 11.1-RELEASE. This is probably some small configuration > mistake that will have you face-palming once you find it... did you built it in the ports or with poudriere? I have also no problem building it in the ports: a make in java/openjdk8 runs through without an error. But not if it's build with poudriere (and it was the only package with such a problem in poudriere) and as a consequence poudriere could also not build x11/kde4 (in which I'm interested; no interest in java/openjdk8 itself). > >> And therefore > >> =>> Skipped ports: devel/antlr devel/kdesdk4 devel/poxml x11/kde4 > >> > >> On the other hand a direct make in ports/java/openjdk8 is successful > >> but it fails repeatedly when called by poudriere. > >> > >> > >> Second problem: > >> > >> I tried to install the successfully built software > >> (i. e. my list without kde4) with > >> pkg -j 11amd64 upgrade > >> but this fails with > >> pkg: jail "11amd64" not found > >> > >> and jls doesn't list any jails > >> whereas > >> poudriere jail -l > >> displays > >> JAILNAME VERSION ARCH METHOD ... PATH > >> 11amd64 11.1-RELEASE-p6 amd64 ftp ... /usr/local/poudriere/jails/11amd64 > >> > > OK. Confusion over jails here. > > The '-j' flag to pkg(8) allows you to install files into a jail from the > host system. As you don't have any actual jails configured, you don't > want to use this flag. > > These are completely different to the jails used by poudriere. In fact, > when you "create a jail" by eg. > > poudriere jail -c -j 11amd64 -v 11.1-RELEASE -a amd64 -m ftp > > What you are actually doing is creating a template. 'poudriere jail -l' > will list all the templates poudriere knows about. It's only during a > poudriere run that jails are actually created from these templates -- in > fact, as many jails as the degree of parallelism you've allowed in > poudriere.conf. Try running jls(1) while poudriere is compiling stuff > and you'll see. These build jails are only temporary and are destroyed > as soon as the poudriere run ends. thanks for your explanations. Yes, I misunderstood it and as already stated I've no experience or knowledge of jails. > Now, poudriere will collect all the packages it has built into a > repository. It's typical to set up a webserver (nginx recommended) to > allow distribution of those packages, and you will need to write a > configuration file for pkg(8) giving the correct URL for your custom > repository. You'll probably also want to turn off the default FreeBSD > package repository -- see the comment in /etc/pkg/FreeBSD.conf for how > to do that. Then you can just upgrade your system by: > > pkg upgrade > > Hint: try 'pkg -vv' to see your pkg(8) configuration including all the > repositories you have configured. I'm not sure what the correct URL for the poudriere-created repository is, so I looked in /var/poudriere for something plausible and thought it could be /usr/local/poudriere/data/packages/11amd64-default so I set up a /usr/local/etc/pkg/repos/FreeBSD.conf with: FreeBSD: { url: "file:///usr/local/poudriere/data/packages/11amd64-default/", mirror_type: "none", signature_type: "none", enabled: yes } pkg -vv confirmed that ist URL would be used. Then pkg upgrade produced the following output: Updating FreeBSD repository catalogue... FreeBSD repository is up to date. All repositories are up to date. Checking for upgrades (123 candidates): .......... done Processing candidates (123 candidates): . done Checking integrity... done (0 conflicting) Your packages are up to date. At least there was no error but none of the packages which poudriere had built [built 954, 1 failed, 4 skipped] were installed. I don't know how to proceed. Best regards, Johannes-Maria
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20180129202145.GA2773>