1. 15
  1.  

  2. 4

    The article read fine to me. I might mention overlay ports trees to manage meta-ports but that’s a preference thing.

    As to Poudriere itself: I’d really love saner ways to completely disable X11 dependencies than to have to use a Poudriere /usr/local/etc/poudriere.d/make.conf which has ${CURDIR...} guards to set FORBIDDEN (with exemptions for the blocks because of things like irssi-themes being in x11-themes/).

    Also a way to get all the dependency paths leading to a given port, rather than just the first one. I wrote a poudriere_status.py which can report to CLI or generate graphviz directives but the dependency graph becomes a tree because only one inbound link is reported.

    1. 2

      Poudriere is one of my favorite tools in the FreeBSD ecosystem.

      1. 2

        A shorter version, skipping signature if you do this only locally on a trusted system.

        Commands are based on the article, but partly shortened. For example if you only have one ports tree it will be named default, if you don’t specify otherwise.

        # Install poudriere
        pkg install poudriere 
        
        # Create a jail with the right version of FreeBSD it
        poudriere jail -c -j 12-2x64 -v 12.2-RELEASE 
        
        # Create a ports tree
        poudriere ports -c 
        
        # -> Set up package building options, according to the article by creating make.conf
        # -> create a port-lists file with the ports you want to build (format like www/nginx, one per line)
        
        # Build the ports
        poudriere bulk -j 12-2x64 -f /path/to/port-list
        
        # Disable the default repo by creating a /usr/local/etc/pkg/repos/freebsd.conf containing:
        FreeBSD: {
          enabled: no
        }
        
        # Create a new one with 
        poudriere: {
          url: "file:///usr/local/poudriere/data/packages/12-2x64",
          enabled: yes                        
        }
        
        # Update repos
        pkg update
        

        Build updated packages

        # Update ports
        poudriere ports -u
        poudriere bulk -j 12-2x64 -f /path/to/port-list
        

        Use packages as normally.

        1. 3

          Note that, if you’re using pkg-base, then the output from pkg query -e "%a==0" "%o" | sort -d will contain a load of lines with just base in them. Putting that in the list of packages for Poudriere to build will cause problems. To avoid this, run pkg query -e "%a==0" "%o" | sort -d -u | grep -v -x base.

          You should also be able to skip this:

          # Update repos
          pkg update
          

          pkg (unlike apt) will automatically check if it needs to do an update when you do an upgrade.