poudriere questions

Hello,

I have 2 questions about poudriere.
I am building an poudriere build system to create packages for my FreeBSD servers at work.

I create a list ( ports.list) of software I want to build.
The last step I build the packages with poudriere bulk -j jailx -p local -f /path/ports.list

Question 1: After the build I want to add new ports. Do I create a new list ports-new.list with only the names of the new port-names ? Or do I add the new port-names to the existing ports.list and rerun the poudriere bulk ... command ?

Question 2: Is there a way to create a ports.list which contains all of the existing port-names ?

Thanks in advance,
Carlo
 
A1) Add them to the existing list and do the same bulk run again. Anything that's missing or had its config changed will get (re)built.

A2) If you want to build all 37209 ports don't use a file at all, just use the -a flag instead. Can't recommend this though, I'm betting you're never going to use 90% of those packages. Seems like a big waste of time and resources.
Code:
     -a           Build all ports in the tree with all flavors.
 
Thanks for your help. But how can I built a list with the most important or common ports ?
I have several several servers running, for example squid haproxy dns webservers postgresql php java ....
 
But how can I built a list with the most important or common ports ?
Either create the list manually or try pkg query -e %a=0 %o | sort > $HOST_bulk_list for each of your systems or jails. Merge the lists and run a sort -u on the merged list.
Also see if the Poudriere -z option for subsets make sense.
 
A2) If you want to build all 37209 ports don't use a file at all, just use the -a flag instead. Can't recommend this though, I'm betting you're never going to use 90% of those packages. Seems like a big waste of time and resources.
It's taken over 5 hours to build roughly 200 ports today. If that generally holds true for the rest (impossible to guess), you are looking at about 37 days to complete the build of everything :eek:
 
Thanks for your help. But how can I built a list with the most important or common ports ?
I have several several servers running, for example squid haproxy dns webservers postgresql php java ....

If you add haproxy, dns, webservers, postgresql, java, etc. to the ports.list file and Poudriere will also build all the dependencies automatically as well so you don't need to include all the dependencies.
 
A1) Add them to the existing list and do the same bulk run again. Anything that's missing or had its config changed will get (re)built.

I added net/tcpdump to the list and did succesfully rebuild.
Code:
[00:03:01] [01] [00:00:00] Building net/tcpdump | tcpdump-4.9.2_2
[00:03:25] [01] [00:00:24] Finished net/tcpdump | tcpdump-4.9.2_2: Success
I also see the package in the repository
Code:
root@bsd11:/data/poudriere/data/packages/113amd64-local/All # ls |  grep tcp
tcpdump-4.9.2_2.txz
So far so good.
But the server pointing to this repo can't find the package tcpdump
Code:
root@bsd11-12:/etc/pkg # pkg install tcpdump
Updating poudriere repository catalogue...
poudriere repository is up to date.
All repositories are up to date.
pkg: No packages available to install matching 'tcpdump' have been found in the repositories
I can install all of the other packages. What's going wrong ?
 
Question 2: Is there a way to create a ports.list which contains all of the existing port-names ?

I would not advise to add all ports you have installed to a list because that would include ports which are just dependencies (usually the majority), and then are pointless to have in the list.

If you want to create a list just with the origin ports (the ones you actually want installed): pkg prime-origins > ports.list

Or you can do the same but sorted: pkg prime-origins | sort | tee ports.list :)
 
I would suggest that you build all dependencies with Poudriere too. Pkgs in the FreeBSD repo are quarterly updated unless you edit FreeBSD.conf in the ../etc/pkg/.. for latest pkgs. Those pkgs might conflict with yours if you don't regularly update your Poudriere build.

You now have two options to get a list of pkgs to build:
1) pkg query -e %a=0 %o
2) pkg prime-origins

And here is another:
3) pkg info -aoq

The 3rd command produces most list.

Choose one, sort, remove duplicates and build.
 
I would suggest that you build all dependencies with Poudriere too.

Poudriere will always deal/build the dependencies because it always build in an empty jail, unless the dependencies are already built in that specific jail repository.
 
Slight thread highjack, but has anyone else noticed that Poudriere seems to have messed up colours in the terminal? When it prints a line that says Success the time on the left is in green, but that green bleeds in to the first square bracket of the builder number, and then the right hand square bracket is white.

Is this just my terminal doing weird things, or are others seeing that too?
 
Haven't seen that, but I'm using poudriere-devel and update it regularly. It may have happened with some version but never noticed it. I rarely look at the console output, I mainly use the web interface to keep an eye on the build process.
 
Just tried poudriere-devel and it does it in that too. Tried it with both the bash and zsh shells, and inside and outside of tmux. No difference. It just doesn't look right to me as if this can't have been intentional? Maybe I'll report it to the developers.

6816
 
That looks normal.
 

Attachments

  • poudriere.png
    poudriere.png
    94.7 KB · Views: 215
Back
Top