Solved Poudriere stopped:sanity:

Ports-mgmt/poudriere stops with exit status 1 logging "stopped:sanity:" which, I presume, means it has found something wrong with its configuration or environment. I have tried running it with the -vv option in bulk, but although that lists a lot more information, it still doesn't tell me what it found wrong!

How do I get poudriere to divulge what it doesn't like that causes it to stop with a sanity complaint?
 
I ran into the same problem yesterday. You will have to look at the port's config to find out by doing make config. It usually will give you an error when you exit the config if the options are not correct or selected then you will have to add the SET or UNSET options in /etc/make.conf or poudriere's make.conf.
 
It's probably a permission problem, try to do chmod -R a+r your_port_and_its_dependencies

I don't think so, the message very much suggest that a port is failing at the sanity check phase and the problem is in fact in the selected options.
 
Thanks but chmod did nothing unfortunately.

As for running make config, I have over 250 ports in the dependency tree. Do I really have to run make config manually on every one? That'd take days.
 
As for running make config, I have over 250 ports in the dependency tree. Do I really have to run make config manually on every one? That'd take days.

Just the first one. Sometimes its the first one that caused sanity check and it can cause many other ports to fail. Unless if you have something incorrectly defined in /usr/local/etc/poudriere.d/make.conf.
 
As for running make config, I have over 250 ports in the dependency tree. Do I really have to run make config manually on every one? That'd take days.
Use poudriere options -j myjail -f myfilelist.

I had the same issue a couple of times, usually because I accidentally created circular dependencies.
 
Code:
[root@monster /]# /usr/local/bin/poudriere options -j 10buildi386 -f /usr/local/etc/poudriere.d/10buildi386-local-kjpservers-pkglist   
/usr/local/share/poudriere/options.sh: cannot open /usr/local/etc/poudriere.d/ports/default/mnt: No such file or directory
[00:00:00] ====>> Error: No such ports tree: default
[root@monster /]# ls /usr/local/etc/poudriere.d/ports/   
local
[root@monster /]# mkdir -p /usr/local/etc/poudriere.d/ports/default/mnt
[root@monster /]# /usr/local/bin/poudriere options -j 10buildi386 -f /usr/local/etc/poudriere.d/10buildi386-local-kjpservers-pkglist
[00:00:00] ====>> Error: No such ports tree: default

Well, I suspect that means something, but not what I hoped as you can see.
 
It's tricky to find the exact one. In my case it's usually CUPS that's causing it because it's enabled in both GTK2 and GTK3. As I have no use for it I disable it everywhere.
 
Ah, yes, there's a -p in my bulk command! In the meantime I created a symbolic link to get it working. Now to see whether it builds.

Alas, no:
Code:
# poudriere status -r[10buildi386-local-kjpservers] [2016-09-28_14h27m44s] [stopped:sanity:] Queued: 0  Built: 0  Failed: 0  Skipped: 0  Ignored: 0  Tobuild: 0   Time: 00:00:20
====>> Logs: /usr/local/poudriere/data/logs/bulk/10buildi386-local-kjpservers/2016-09-28_14h27m44s

Evidently, the symbolic link was the wrong way to do it. When I added a -p to the poudriere option command I got a lot more packages to configure, but after accepting the defaults poudriere bulk still logs "stopped:sanity:".
 
I have now tried editing my pkglist file to build only one package, but I still have the error whichever package I choose, so it can't be the configuration of an individual package that's wrong, unless it's something which is a dependency of everything, like ports-mgmt/pkg, but that has no options. converters/libiconv has no other dependencies.

So, are we barking up the wrong tree?
 
In /usr/local/etc/poudriere.d there should be some directories, named something like <jail>-options or <jail>-<portstree>-options. This is where the options are stored. Try moving those out of the way.
 
Re-install the jail you're using to build the packages.

That moved things on. Now I just get the error:
Code:
[00:02:05] ====>> [01][00:00:07] Finished build of devel/apr1: Failed: lib-depends
. Presumably that means there is a dependency not found, but which, and what do I do about it?
 
Try rebuilding everything from scratch with # poudriere bulk -c -j .... It's possible that the packages you have now are "tainted" from failed builds.
 
That did it! Looking back, it seems the abortion of the VM left everything broken in a half-built state, so that's the underlying problem (a segfault in the host system) to be solved. Think I will archive this machine while it's working!
 
Aren't circular dependencies a maintainers/porter's fault? They are essentially port bugs, right?

Also, can not find documentation explaining what various failure messages mean, specifically "Failed: stage".
 
Aren't circular dependencies a maintainers/porter's fault? They are essentially port bugs, right?
That depends. If all options are default and you get circular dependencies, then yes, one of them is probably causing it. In my case it ended up being my own fault because I enabled incompatible options on a bunch of different ports. Circular dependencies can suddenly appear several ports "down the line".

Options are nice but sometimes you don't realize what the actual consequences are :D

Also, can not find documentation explaining what various failure messages mean, specifically "Failed: stage".
This might enlighten you: https://wiki.freebsd.org/Ports/StageDir
 
Yeah, I see that. As far as I can gather, it's like the XML attributes VS elements thing - options vs dependencies.
 
I was unaware that there is so much info in the wiki pages. The Handbook was my "K&R 2nd edition". But I guess things have moved on... Great!
 
Back
Top