# poudriere questions



## cm-vdp (Aug 14, 2019)

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


----------



## SirDice (Aug 14, 2019)

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.

```
-a           Build all ports in the tree with all flavors.
```


----------



## cm-vdp (Aug 14, 2019)

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 ....


----------



## getopt (Aug 14, 2019)

cm-vdp said:


> 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.


----------



## leebrown66 (Aug 14, 2019)

SirDice said:


> 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


----------



## Remington (Aug 14, 2019)

cm-vdp said:


> 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.


----------



## cm-vdp (Aug 15, 2019)

SirDice said:


> 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.

```
[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

```
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

```
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 ?


----------



## rigoletto@ (Aug 15, 2019)

cm-vdp said:


> 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`


----------



## Lamia (Aug 16, 2019)

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.


----------



## rigoletto@ (Aug 16, 2019)

Lamia said:


> 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.


----------



## SirDice (Aug 16, 2019)

cm-vdp said:


> But the server pointing to this repo can't find the package tcpdump


It may not have noticed the repository got updated. Force an update of the cache with `pkg update -f`.


----------



## xtaz (Aug 16, 2019)

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?


----------



## SirDice (Aug 16, 2019)

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.


----------



## xtaz (Aug 16, 2019)

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.


----------



## SirDice (Aug 16, 2019)

That looks normal.


----------



## cm-vdp (Aug 16, 2019)

SirDice said:


> It may not have noticed the repository got updated. Force an update of the cache with `pkg update -f`.


That did the trick. Thanks !!


----------

