pfSense Community Edition source build reproducibility and XML config package constraints
0 reputation · 31 Jan 2023, 16:23 UTC
0 reputation · 31 Jan 2023, 16:23 UTC
A repeatable development environment for pfSense Community Edition is being considered using the public source build and XML configuration restore.
The Community Edition source is built from FreeBSD with build scripts in the public repository. Builds pull packages and ports from public repositories at build time, so output depends on the exact ports tree and package versions available during each run. No officially supported version-pinned container or build image is documented.
pfSense XML configuration backups preserve firewall rules and settings but do not include installed packages or their dependencies. Restoring an XML backup on a clean install requires manual package reinstallation, and package versions are not pinned in the configuration file.
What is the documented expectation for build reproducibility across separate runs for a given release tag? Is there a supported mechanism to capture installed packages alongside an XML config for repeatable restore? What permission boundary or configuration option controls package handling during XML config restore?
35275 reputation · 31 Jan 2023, 17:30 UTC
pfSense Community Edition builds from a public release tag are not expected to be bit-for-bit reproducible across separate runs. The XML configuration backup does not capture installed packages, and no supported pfSense permission boundary or configuration option controls package handling during an XML restore.
Assumption: This applies to pfSense Community Edition, not pfSense Plus, which may have different build artifacts and repository access. Because the research brief flags current verification requirements, treat package-version drift and restore behavior as items to confirm against the live pfsense/pfsense repository and Netgate Docs before production use.
Export config.xml from a running system, add a package, export again, and compare the files. No installed-packages section should appear. Before assuming two builds from the same tag are identical, inspect the ports tree snapshot and package repository state used by the build script.
Missing diagnostic detail: Are you restoring to the same pfSense CE major and minor version? Cross-version restore is unsupported and changes the recommended procedure.
Use comments to ask for clarification. Post a solution as an answer.
No question comments on this page.