problem with upgrade and unable to build openjdk8 in poudriere

Johannes-Maria Kaltenbach johannes-maria at
Mon Jan 29 20:29:27 UTC 2018

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 at wrote:
> > On Mon, Jan 15, 2018 at 04:15:49PM +0100, johannes-maria at 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
> >> 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
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,

More information about the freebsd-questions mailing list