User Tools

Site Tools


documentation:technical_docs:poudriere

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
documentation:technical_docs:poudriere [2024/10/20 22:11] – [The 6 minimum steps to build a poudriere firmware image] olivierdocumentation:technical_docs:poudriere [2024/11/18 19:11] (current) – [Build packages] olivier
Line 46: Line 46:
 echo "ZPOOL="`zpool list -H | cut -f1` | sudo tee -a /usr/local/etc/poudriere.conf</code> echo "ZPOOL="`zpool list -H | cut -f1` | sudo tee -a /usr/local/etc/poudriere.conf</code>
   - Create a poudriere jail WITH a GENERIC kernel (by default kernel is not build & installed), here named "router":  <code>sudo poudriere jail -c -j router -v 14.2-RELEASE -K GENERIC</code>   - Create a poudriere jail WITH a GENERIC kernel (by default kernel is not build & installed), here named "router":  <code>sudo poudriere jail -c -j router -v 14.2-RELEASE -K GENERIC</code>
-  - Create a port-tree using "poudriere ports":<code>sudo poudriere ports -c -p router-ports</code>+  - Create a port-tree using "poudriere ports":<code>sudo poudriere ports -c -p router_ports</code>
   - Generate list of ports to be build & added into the firmware image:<code>   - Generate list of ports to be build & added into the firmware image:<code>
 cat > ~/router-pkglist <<EOF cat > ~/router-pkglist <<EOF
Line 159: Line 159:
  
 List of mandatory patches for poudriere in Pull-request review: List of mandatory patches for poudriere in Pull-request review:
 +  * [[https://github.com/freebsd/poudriere/issues/1181|Overlay permission bug on the final image]]
 +
 +Merged patches:
 +  * [[https://github.com/freebsd/poudriere/pull/1141|Optimize disk space for space]]
   * [[https://github.com/freebsd/poudriere/pull/1139|Need to replace loader.efi by gptboot.efi to use GPT attribute bootonce and bootme]]   * [[https://github.com/freebsd/poudriere/pull/1139|Need to replace loader.efi by gptboot.efi to use GPT attribute bootonce and bootme]]
   * [[https://github.com/freebsd/poudriere/pull/1140|Need to generate the upgrade image too]]   * [[https://github.com/freebsd/poudriere/pull/1140|Need to generate the upgrade image too]]
- 
-List of tuning patches in Pull-request review: 
-  * [[https://github.com/freebsd/poudriere/pull/1141|Optimize disk space for space]] 
- 
-Merged patches: 
   * [[https://github.com/freebsd/poudriere/commit/2fa915c41d2786aad80b8e59ba07a4f0161df794|Fix default permissions to cfg and data partitions]]   * [[https://github.com/freebsd/poudriere/commit/2fa915c41d2786aad80b8e59ba07a4f0161df794|Fix default permissions to cfg and data partitions]]
   * [[https://github.com/freebsd/poudriere/commit/6b07d209c579ddf01a4fab947c4efd9683e6778a|Add bytes to bibytes conversion regarding image size]]   * [[https://github.com/freebsd/poudriere/commit/6b07d209c579ddf01a4fab947c4efd9683e6778a|Add bytes to bibytes conversion regarding image size]]
Line 227: Line 226:
 The [[https://github.com/ocochard/BSDRP/blob/master/poudriere.etc/poudriere.d/excluded.files|excluded.files ]] is on github. The [[https://github.com/ocochard/BSDRP/blob/master/poudriere.etc/poudriere.d/excluded.files|excluded.files ]] is on github.
  
 +==== Packages excluded files ====
  
 +When customizing ports options, some could not be disabled but we could configure pkg to not install some files from packages while extracting them.
 +
 +The [[https://github.com/ocochard/BSDRP/blob/master/BSDRP/Files/usr/local/etc/pkg.conf|customized pkg.conf]] is on github.
  
 ===== Building the jail ===== ===== Building the jail =====
Line 234: Line 237:
 The simplest solution is to re-use already existing BSDRP patched source tree: specific kernel configuration files can be installed into these source tree and use after. The simplest solution is to re-use already existing BSDRP patched source tree: specific kernel configuration files can be installed into these source tree and use after.
  
-Start by only patching BSDRP sources (sources and ports) using the [[https://github.com/ocochard/BSDRP/blob/master/make.sh|BSDRP make.sh]] script:+Start by only patching BSDRP sources (sources and ports) using the [[https://github.com/ocochard/BSDRP/blob/master/Makefile|BSDRP makefile]]:
 <code> <code>
-./make.sh -+make patch-sources
-Update ONLY done+
 </code> </code>
  
-There is now 2 sources ready patched: +There are now 2 sources ready patched: 
-  * /usr/local/BSDRP/BSDRP/FreeBSD/src (including BSDRP specific kernel configuration file) +  * obj/FreeBSD (including BSDRP specific kernel configuration file) 
-  * /usr/local/BSDRP/BSDRP/FreeBSD/ports +  * obj/ports
  
 <code> <code>
-poudriere jail -c -j BSDRPj -b -m src=/usr/local/BSDRP/BSDRP/FreeBSD/src -K amd64+poudriere jail -e poudriere.etc -c -j BSDRPj -b -m src=obj/FreeBSD -K amd64
 </code> </code>
 Command line details: Command line details:
Line 252: Line 253:
   * -c: create a jail   * -c: create a jail
   * -j: SHORT name for the jail (I can't use BSDRP-amd64-10.3R here because later it will generate a long directory name and long name aren't well supported)   * -j: SHORT name for the jail (I can't use BSDRP-amd64-10.3R here because later it will generate a long directory name and long name aren't well supported)
 +  * -e: Load all configurations files from ./poudriere.etc
   * -m src=: Path to the patched source branch we want to use   * -m src=: Path to the patched source branch we want to use
   * -K: The kernel configuration file (was copied here during patching BSDRP code tree)   * -K: The kernel configuration file (was copied here during patching BSDRP code tree)
Line 260: Line 262:
  
 <code> <code>
-poudriere ports -c -p BSDRPp -m null -M /usr/local/BSDRP/BSDRP/FreeBSD/ports+poudriere ports -e poudriere.etc -c -p BSDRPp -m null -M obj/ports
 </code> </code>
  
Line 267: Line 269:
 poudriere native role, we just give the jail name and port-tree name to use then the list of packages. poudriere native role, we just give the jail name and port-tree name to use then the list of packages.
 <code> <code>
-poudriere bulk -j BSDRPj -p BSDRPp -f /usr/local/etc/poudriere.d/BSDRP-pkglist+poudriere bulk -e poudriere.etc -j BSDRPj -p BSDRPp -f /usr/local/etc/poudriere.d/BSDRP-pkglist.common
 </code> </code>
  
documentation/technical_docs/poudriere.1729455112.txt.gz · Last modified: 2024/10/20 22:11 by olivier

Except where otherwise noted, content on this wiki is licensed under the following license: BSD 2-Clause
Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki