A new PC makes the old one a file server and sometimes build server. Previously I had setup poudriere so I could periodically update the ports via pkg on my box with my own desired options. I also have been keeping a number of unofficial ports updated as well, most notably, luanti (formerly minetest) which I described in an old blog post and revisit periodically it seems. My plan is to continue to build on the same machine and use it to update ports on that box as well as on my new pc. I also decided I wanted to figure out how to build my custom unofficial ports for pkgs to install on the new pc. It turns out that there was a thread of documentation to find which eventually got me to the destination.
Firstly, I put both boxes onto the same LAN which is an obvious step, except that my new PC has an indirectly supported ethernet device on the motherboard. I sidestepped this issue after temporarily solving it during a test install on an SSD. The realtek 2.5GB ethernet card requires a driver from ports and an rc.conf adjustment to override the normally included re driver. There was a little too long of a moment when everything should have worked but did not, an ethernet cable with a broken clip had fallen out of the switch. With both machines on the same network and functioning, I could setup some things to make my transfer to the new box easier.
Since I have both machines accessible to each other it is a simple matter of setting up ssh so that I can sftp or ssh -X and use X server applications from the old box. ssh is easy to setup, and with ssh you get the ability to use a secure ftp (sftp) the exact same way as the original deprecated ftp. At this point the new box was barely configured and had a lot of what I needed for my GUI but my customizations for FVWM were not yet present. There are other configuration files I transferred over using sftp, such as rc.conf.local and loader.conf.local which I believe I may have named rc.conf and loader.conf on the new box after I moved them. With things mostly usable and shortly after a number of applications installed on the new box, some days later I finally got motivated to get poudriere setup.
The setup for poudriere to handle building and for pkg to access the files it builds took a little too long to figure out, even though its not particularly complicated. The later step to handle the default ports tree and my custom local ports tree all in one step took a very close read of documentation to solve. The basic idea is to use an overlay which is a relatively new addition to ports functionality. Poudriere supports overlays but I was unable to figure it out with the anecdotal documentation I found.
First, after reading some forum posts and obviously missing some detail I went to the manpages and fell upon a couple details:
FreeBSD 13.2 August 9, 2024 POUDRIERE-BULK(8)
(excerpt)
-n Dry run. Show what would be done, but do not actually build
or delete any packages.
-O overlay
Specify an extra poudriere-ports(8) tree to use as an overlay.
Multiple -O overlay arguments may be specified to stack them.
-p tree Specify on which ports tree the bulk build will be done.
(Default: "default")
FreeBSD 13.2 April 26, 2021 POUDRIERE-PORTS(8)
(excerpt)
EXAMPLES
Creates a new checkout from Git called default from FreeBSD's official
ports tree branch main.
# poudriere ports -c
Creates a new checkout from Git called quarterly from FreeBSD's offi-
cial ports tree branch 2021Q1.
# poudriere ports -c -p quarterly -B 2021Q1
Updates ports tree named quarterly.
# poudriere ports -u -p quarterly
Import a local manually-managed ports tree named local from /usr/ports.
# poudriere ports -c -p local -m null -M /usr/ports
After reading this I now better understood what the command that was in the forum post was about:
With overlays: Code: # poudriere bulk accessibility/sct www/firefox tools/tool1 -p default -O privateportstree
The part -p default is essentially automatic as a default itself, so I can ignore it, the other part, -O privateportstree is important, but there needs to be additional setup to use this. Since my alternative ports tree is incomplete but already existing, I used the command from the examples with adjustments:
poudriere ports -c -p local -m null -M /usr/local/ports
I did that after I copied all of the contents of my /home/tigersharke/Ported_software directory into the newly created ports directory in the path /usr/local and to help me if I forget, I also created a symbolic link in my user directory to this named Local_ports.
Now I can use a similar command as in the past, to build all ports I wish with my unofficial ones included:
poudriere bulk -O local -j 14amd64 -f `p-keg-deblack installed-pkgs-gross`
I had to make some adjustments to my blacklist because I was assuming I would not be able to do this combined build and maybe only might use poudriere on specific unofficial ports. I have been working on getting pkgs updated and installed onto my new ichigo box which get built on the former ichigo now called atlas. A number of adjustments to my make.conf and blacklist files were necessary, as well as avoiding some non-vital options in some ports which presently cause them to fail building. While all this is going on, my repeated builds and adjustments, I am editing this blog post using bluefish which I am running via ssh -X from atlas to appear on my monitor which shows me the new ichigo desktop. A lot of remote lan work including poudriere, ssh edits and an X app appearing from a different machine. It is amazing what can be done and much of this technology is not brand new, poudriere is the most recent of the bunch actually.
No comments:
Post a Comment