Skip to content

Releases: FOGProject/fogproject

1.5.10.2482

Choose a tag to compare

@fog-workflows fog-workflows released this 11 Sep 17:39
ff6410d

Pull Requests

Read more

1.5.10.2253

Choose a tag to compare

@fog-workflows fog-workflows released this 11 Aug 11:59
9f3b5a8

Pull Requests

  • Keep FOS kernels signed for Secure Boot, and make enrolment a short visit by @darksidemilk in #961
  • Label FOG's directories and ship a policy module instead of a blanket boolean (dev-branch port) by @mastacontrola in #967
  • Give FOG its own SELinux type for /images and snapins (dev-branch port) by @mastacontrola in #969
  • Configure the local firewall instead of offering to switch it off (dev-branch port) by @mastacontrola in #971
  • Stop recommending permissive SELinux, and stop setting it under -y (dev-branch port) by @mastacontrola in #973
  • Add "Enroll Secure Boot Key" PXE menu item (dev-branch port) by @mastacontrola in #977
  • docs: working-1.6 first, then port to dev-branch (CLAUDE.md) by @darksidemilk in #974
  • Secure Boot: document the ipxe.efi fallback chain, bump fog-ipxe pin by @mastacontrola in #980
  • Fix doubled slash in the HTTP-to-HTTPS redirect (GH-978) by @mastacontrola in #982
  • Add --no-force-https so -S can be undone (GH-978) by @mastacontrola in #984
  • Point the Secure Boot DHCP classes at the snponly chain (dev-branch port) by @mastacontrola in #994
  • Pin iPXE to v2.0.0-fog.4 for the restored BIOS command set (1.5) by @mastacontrola in #997
  • Hide the Secure Boot enrolment menu item on legacy BIOS boots (1.5) by @mastacontrola in #999
  • Define FOG_BASE_DIR on 1.5.x, fixing HTTP 500 on kernel/init update by @mastacontrola in #1000
  • Gate the API on uType and stop building the lftp command in a shell (GHSA-2hqx-5ffg-w4c3) by @mastacontrola in #1001
  • Stop publishing autoexec.ipxe to the TFTP root, and pin iPXE v2.0.0-fog.5 by @mastacontrola in #1004
  • PKI: hang Web and Secure Boot CAs off the existing FOG Server CA (dev-branch port) by @darksidemilk in #1017
  • Fix silent Secure Boot/Web CA regeneration when only the CA key is offline by @darksidemilk in #1018
  • Stable Release PR For 1.5.10.2253 - 2026-08-11 by @fog-workflows[bot] in #1020

Full Changelog: 1.5.10.2149...1.5.10.2253


Commits

  • Version Sync: Increment version from 1.5.10.2149 to 1.5.10.2152 for Patches channel on dev-branch to match commit count since master (b1912aad1)
  • Availability probe honours FOG_FTP_PORT (bae85f5a6)
  • Stop deriving the Debian docroot from a test the install invalidates (923a74724)
  • fix(installer): emit every interface IP as a cert SAN (750f1da04)
  • fix(installer): config.class.php host constants take the primary IP (130938980)
  • Make a custom webroot actually work (ba41fae1c)
  • Install the FOG utilities to the fog path (d3a7079ef)
  • Make FOGBackup work, and stop the installer claiming empty backups (717a3c7e0)
  • Restrict the maintenance endpoints to same-machine requests (200a5072f)
  • Stop a second IP on the FOG interface breaking the apache vhost (b9a970a6f)
  • Deny maintenance/ to anything but the server itself (c6c6b705a)
  • Keep service logs across restarts and rotate them instead of deleting (1efe787bf)
  • Settle what $ipaddress means: one address, with $ipaddresses for the set (62626fcfd)
  • Write .fogsettings as soon as the database credentials exist (7c5450196)
  • Stop installer helper errors from being written into the DHCP config (ac0709e35)
  • fix(installer): survive a master database that offers no TLS (361bacf36)
  • fix(installer): stop rejecting a valid root environment on usr-merged distros (c7c262806)
  • perf(web): stop querying the database on every hook fire (e827fd1bd)
  • build(ipxe): stop overlaying upstream's build system, and pass NO_WERROR (cb9d8d9a2)
  • build(ipxe): pin the iPXE clone to a release tag (bd93ae8d5)
  • Consume iPXE from FOGProject/fog-ipxe instead of carrying it in git (182701dd6)
  • Publish autoexec.ipxe at the TFTP root as well, via a hard link (3c0b4ce37)
  • Stage the iPXE Secure Boot binaries at /tftpboot/secureboot (421918f3f)
  • Pin iPXE to v2.0.0-fog.2 (6fc1abb94)
  • Set the SELinux context on the TFTP root instead of disabling SELinux (2121873d9)
  • Keep FOS kernels signed for Secure Boot, and make enrolment a short visit (037af2be4)
  • Drop the staging half; keep signing, and accept a DER certificate (f62a592ec)
  • Derive the Secure Boot paths from FOG_BASE_DIR, not /opt/fog (d36f94637)
  • Label FOG's directories and ship a policy module instead of a blanket boolean (09efe7325)
  • Give FOG its own SELinux type for /images and snapins (358fec4c5)
  • Configure the local firewall instead of offering to switch it off (450826cb3)
  • Stop recommending permissive SELinux, and stop setting it under -y (33d1718f3)
  • Allocate multicast ports inside the window the installer firewalls (a678260f9)
  • Installer: batch the package state queries and the install transaction (fa46760f7)
  • Codify: new features land on working-1.6 first, then port here (3024875ba)
  • Secure Boot: generate the signing key by default, and show the page (5d23f2030)
  • Fix CLAUDE.md: previous commit accidentally stored base64, not text (e12a1c6bd)
  • Fix CLAUDE.md corruption from the base64 round-trip (2c867afba)
  • Add "Enroll Secure Boot Key" PXE menu item (08c98aecd)
  • Version Sync: Increment version from 1.5.10.2191 to 1.5.10.2198 for Patches channel on dev-branch to match commit count since master (35cd62652)
  • Secure Boot: document the ipxe.efi fallback chain, bump fog-ipxe pin (661b23cde)
  • Fix doubled slash in the HTTP-to-HTTPS redirect (GH-978) ([2c119dc](https://github.com/FOGProject/fogproj...
Read more

1.5.10.2149

Choose a tag to compare

@fog-workflows fog-workflows released this 30 Jul 18:02
df82a45

Pull Requests

  • Add Japanese translation by @mashiro-mikage in #870
  • Document 1.5 LDAP nested-group migration gap as wontfix and direct users to 1.6 by @mastacontrola with @Copilot in #894
  • Make the str_contains() polyfill agree with the function it replaces by @mastacontrola in #901
  • Stop the installer reporting failures on a successful upgrade by @mastacontrola in #902
  • Resolve the DB unit to one name instead of three by @mastacontrola in #904
  • fix(web): stop isLoaded() gates poisoning association writes (1.5 port) by @mastacontrola in #912
  • Add isDirty() to stop assocSetter() re-diffing untouched associations by @darksidemilk in #918
  • ci: add push-triggered stub delegating to fog-workflows version check (dev-branch) by @darksidemilk in #923
  • docs: link Version Sync Automation doc from README by @darksidemilk in #929
  • sync branches by @darksidemilk in #936
  • refactor(githooks): make fog-version.sh a pure compute, add apply script by @darksidemilk in #931
  • feat(githooks): skip apply-fog-version.sh entirely when nothing drifted by @darksidemilk in #937
  • docs: add current-version badges for stable/dev-branch/working-1.6 by @darksidemilk in #942
  • Stable Release PR For 1.5.10.2149 - 2026-07-30 by @fog-workflows[bot] in #951

Full Changelog: 1.5.10.1903...1.5.10.2149


Commits

  • Add Japanese translation (7d73d9f68)
  • Update messages.po (a0a87c242)
  • Update messages.po (b55c0919d)
  • Update functions.sh (ed2c8b527)
  • add ja to function for redhat (846b42cd0)
  • Update messages.po (6dd592e9c)
  • いくつかの翻訳を追加 (83edfea6f)
  • Update messages.po (55bfe31b5)
  • Merge PR #870: Add Japanese translation (1eca5450b)
  • Fix silent failure and data loss when moving captured images out of /images/dev (edb467547)
  • Fix uncaught ValueError 500 when a storage group has no nodes (a7be9a645)
  • Harden FOG client endpoints against empty-collection crashes (60edfd044)
  • Harden lib/fog against PHP 8 min()/max() ValueError on empty arrays (376f13a89)
  • Fix zero-byte HTTP 500 on PHP 7.4 from the mixed hint on Initiator::e() (10d4bce68)
  • Make the installer verify the web tier and the schema deploy (d9551e06b)
  • Guard multicast/imaging lookups against PHP 8 empty-array errors (fb247b0af)
  • Stop udp-sender when its session leaves the active set (6fb7ccada)
  • Stop resetting the multicast join counter on every poll (6d060fe34)
  • Persist multicast sender ownership and scope sessions to the owning node (fa999c8c1)
  • Close the multicast join window and stop reporting phantom deployments (9b53a409c)
  • Make the multicast port override a pool and enforce the session cap (e6afb75fb)
  • Tier schema-deploy authorization by credential channel (3d0b681d1)
  • Reconcile orphaned senders even when multicast is globally disabled (05dc69cda)
  • Close the GHSA-gj9f batch findings that are still live on 1.5.x (1bcfafb73)
  • Escape the inventory report display columns on 1.5.x (edc5322ec)
  • Stop a spoofable pre-auth request clearing a host's encryption key (fb2cc3ecc)
  • Escape the multicast sender command line at the sink (19682c75d)
  • Send the real path when the image path is the image file (d6ffb8c7c)
  • Reject '.' and '..' as snapin filenames here too (f008b9a97)
  • Stage only what the commit touches in the pre-commit PSR2 pass (8e30a2fdf)
  • Let a FOG Client recover from a lost authorize reply (8c9ea2976)
  • Stop passing null where an internal string parameter is expected (c82e5b919)
  • Initial plan (8a30ab788)
  • Document LDAP nested-group 1.5 wontfix limitation (03de85c26)
  • Let the rate-limit reply carry its meaning in the body, like the rest (217707d87)
  • Stop every non-AD login enumerating the whole group subtree (5ce3121e4)
  • Stop the one entry point that read raw superglobal input (e904a07d9)
  • Add the filter-field guard to 1.5 (17bedf0a0)
  • Make the filtered /names and /ids routes work on PHP 8 (c35b54599)
  • Vet only request filter keys, not PHP-built ones (78633f3c7)
  • Compile an uncompilable filter to 1=0, as 1.6 does (ac9e68da5)
  • Stop a closed session naming a sender that is already dead (919665769)
  • Read multicast service settings by name, not by position (cb2901992)
  • Read the other services' settings by name too (9fec3c224)
  • Initialise MasterIDs before reading it (b9ea2167c)
  • Say string, which is what group tasking returns (3149aa3a2)
  • Make the str_contains() polyfill agree with the function it replaces (4531858c3)
  • Stop the installer reporting failures on a successful upgrade (e4e5b806c)
  • Resolve the DB unit to one name instead of three (82a6a0b5d)
  • Send a split partition as one stream instead of one sender per chunk (cae235745)
  • Collect the chunks of a split partition for multicast ([62ae16e](https://github.com/FOGProject/fogproject/commit...
Read more

1.5.10.1903

Choose a tag to compare

@mastacontrola mastacontrola released this 11 Jul 18:08
c8a5665

Pull Requests

New Contributors

Full Changelog: 1.5.10.1870...1.5.10.1903


Commits

  • Update functions.sh (e8a7d916f)
  • fix(api): restore timeElapsed value in progress reporting (#835) (36b94e12b)
  • fix(registration): allow blank optional product key in full manual registration (#836) (ee401ce19)
  • fix(registration): allow blank optional product key in auto/quick registration (508e90586)
  • docs(claude): add Claude context file for dev-branch (1.5.x) (f5219bfa2)
  • feat(installer): support Kea DHCP with ISC fallback (#730) (979a89867)
  • fix(ldap): preg_quote user DN before using it as a regex pattern (f4cb80df2)
  • fix(ldap): pick highest access across LDAP servers without clobbering (7369d2b5a)
  • Fix LDAP group filter for rfc2307 groups case. (e8406eb6c)
  • feat(db): report sanitized DB connection error on failure (#275) (82c024c04)
  • fix(db): distinct() unique placeholders + drop dead $isEnabled (#843) (1d5b2500a)
  • fix(ldap): drop non-load-bearing (grpMemAttr=group) filter alternative (6d21aeed7)
  • fix(installer): drop lastlog-based account check broken on Debian Trixie (#818) (06284f6ba)
  • fix(printer): widen pIP column to allow FQDN/host:port (#560) (06749f410)
  • fix(reports): stop User Tracking report loading whole table into memory (#700) (6ede9b7ad)
  • fix(accesscontrol): seed default rule for the plugin's own menu item (#750) (637ec3d53)
  • Fix login language session persistence (006d06fa5)
  • Fix Chinese language label (b347c37b1)
  • Translate report menu labels (eca1c90f4)
  • i18n(reports): keep dynamic report-name msgids extractable (d1e0dc4d5)
  • installer: honor -X on DHCP config failure and report unwritten Kea config (b8f82402a)
  • installer: refactor writeUpdateFile() to be array-driven and DRY (cf7926411)
  • installer: write dedicated/external Kea DHCP sample on skip path (61899caf2)

Closed Issues since last release

  • Impossible to register inventory info [WORKING-1.6] (#860)
  • CSV export: batch association loads to avoid per-row N+1 queries (#857)
  • CSV import/export: name-resolve plain foreign-key columns (follow-up to #828) (#856)
  • CSV associations: Site plugin consumer (mirror Location) for host site (follow-up to #828) (#855)
  • CSV associations: escape delimiter characters (; : |) in names (follow-up to #828) (#854)
  • Infinite-scroll tables: fixed 55vh height isn't adaptive/expandable and can crowd page-bottom content (#853)
  • Sidebar menu doesn't auto-refresh after plugin install/activate/remove (requires manual page reload) (#852)
  • perf(settings): persistent file-backed settings cache + cache observability (#851)
  • perf(settings): add TTL-based per-process cache to getSetting() with cross-process flush signal (#849)
  • Docs: end-to-end FOG plugin authoring guide + skeleton plugin (working-1.6) (#847)
  • FOGManagerController::distinct() reuses SQL placeholders for multi-condition queries (#843)
  • Plugins have no schema upgrade path; re-install is destructive (#840)
  • timeElapsed is reported as 0 by the API (#835)
  • Group edit: shared-value display for push-down config fields (AD, auto-logout, printer default, kernel/general) (#833)
  • Group edit: surface shared member state for all associative/config properties (#832)
  • Fresh installation fails with "Unauthorized" on database schema deployment (working-1.6, build 2342) (#825)
  • Sequential Snapin execution with stop-on-failure and logging (#824)
  • Subject: Inquiry about correct API usage for creating Snapin in FOG (#823)
  • installfog.sh cannot upgrade FOG on Debian Trixie: "/lib/common/functions.sh: line 1526: lastlog: command not found" (#818)
  • Install fails on Debian Trixie (13) because script tries to install sysv-rc-conf (#797)
  • Debian Trixie / Sid fails with libcurl3 (#781)
  • How can i override getOptimalStorageNode with a plugin (#683)
  • Debian : php-mysqlnd (#648)
  • Add detailed error output on failed DB connections (#275)

1.5.10.1870

Choose a tag to compare

@fog-workflows fog-workflows released this 15 Jun 18:19
5346777

What's Changed

  • merge stable - 1.5.10.1826 into dev by @fog-workflows[bot] in #814
  • Stable Release PR For 1.5.10.1826 - 2026-05-15 by @fog-workflows[bot] in #822
  • Stable Release PR For 1.5.10.1870 - 2026-06-15 by @fog-workflows[bot] in #829

Full Changelog: 1.5.10.1826...1.5.10.1870

Commits

  • feat(api): add token-authenticated DB backup endpoint (abaae49e2)
  • docs(contributing): fix broken TOC links and add missing sections (172dc35cd)
  • fix(inventory): allowlist writable fields, block mass-assignment (7251c3c6b)
  • Should fix issue with inventory mapping. (749d61e99)
  • fix(multicast): clear sessions when udp-sender exits on its own (#820) (4b2ce25a2)
  • fix(host): PHP 8 safety for mac handling on host creation/check-in (578cf5cfd)
  • Should address 067 vuln on dev-branch (53144afdb)
  • security(wol): authenticate the inter-node Wake-on-LAN relay (820e99690)
  • fix(auth): drop ipxe from the no-auth allowlists (26f37fbbc)
  • security(install): protect schema deploy with a per-install token (7a10a8c84)
  • security(csp): harden Content-Security-Policy to script-src 'self' (2fd360483)
  • fix(hostmanager): early-return getHostByMacAddresses on empty macs (7d7ea75f8)
  • Add NULL sentinel to explicitly clear group-general fields on hosts (54334ae3c)
  • Preserve per-host fields when updating group-general (fa14632df)
  • Revert vuln 009 token check - breaks deployed FOG Client (04ee37464)
  • Port /snapin/createwithfile and /storagegroup//uploadsnapinfiles to dev-branch (dd26efb95)
  • Make santizeCronField public function (41ba0d882)
  • Should switch private santizeCronField to protected (06284ec25)
  • Fix vuln 023 again (f70a71470)
  • Fix 021 vuln (46dd3ec78)
  • Fix 020 vuln at progress insert (efc399b19)
  • Fix 009 Vuln with expected (f2cc61b3b)
  • Fix issue reported on forums (d7f6fa031)
  • Fix 097 vuln (ed1a9d3b2)
  • Fix 081 vuln (5123be197)
  • Fix 078 vuln (c6b053c60)
  • Fix 055 vuln properly (262a8bfa7)
  • Fix 055 vuln (edbde2820)
  • Fix 029 vuln (dd9c5ca95)
  • Fix 023 vuln (dc1dc1c0d)
  • Fix 022 vuln (876124eba)
  • Fix 021 vuln (8b09fd9a2)
  • Address 020 vuln (549b9d1cb)
  • Address 020 vuln (fe9267d85)
  • Fix 019 vuln (fe0c1938d)
  • Remove 010 vuln, though not using proposed patch as we have a different method to obtain this information already baked in (aab1d32f0)
  • Fix 137 vuln (6228cad5f)
  • Fix security issues (64f7213f9)
  • Fix another security thing (117a2722c)
  • Should fix multiple noticed issues (e194c5deb)
  • Should attempt to fix 3 broken elements at once for security reasons (05403ee09)
  • fix(fogcontroller): write 0 for cleared optional *id fields instead of skipping (3ba8b766a)

1.5.10.1826

Choose a tag to compare

@fog-workflows fog-workflows released this 15 Apr 16:32
2309704

What's Changed

  • merge stable - 1.5.10.1815 into dev by @fog-workflows[bot] in #807
  • Update translation for zh_CN.UTF-8 by @BA4TMR in #809
  • Stable Release PR For 1.5.10.1826 - 2026-04-15 by @fog-workflows[bot] in #813

New Contributors

Full Changelog: 1.5.10.1815...1.5.10.1826

1.5.10.1815

Choose a tag to compare

@fog-workflows fog-workflows released this 25 Mar 17:55
2d593de

What's Changed

  • merge stable - 1.5.10.1812 into dev by @fog-workflows[bot] in #805
  • Persistent Groups Manager does not auto create snapin tasks, only assigns the snapins. by @PorygonPhD in #803
  • Stable Release PR For 1.5.10.1815 - 2026-03-25 by @fog-workflows[bot] in #806

New Contributors

Full Changelog: 1.5.10.1812...1.5.10.1815

1.5.10.1812

Choose a tag to compare

@fog-workflows fog-workflows released this 24 Mar 22:58
08f9286

What's Changed

  • merge stable - 1.5.10.1798 into dev by @fog-workflows[bot] in #800
  • Remove hardcoded ftp port for storage node availability check by @CMQuah in #801
  • Stable Release PR For 1.5.10.1812 - 2026-03-24 by @fog-workflows[bot] in #804

New Contributors

Full Changelog: 1.5.10.1798...1.5.10.1812

1.5.10.1798

Choose a tag to compare

@fog-workflows fog-workflows released this 15 Mar 14:58
36d51cc

What's Changed

  • merge stable - 1.5.10.1763 into dev by @fog-workflows[bot] in #787
  • Update Portuguese translation by @eduardomozart in #782
  • Change input sanitization to use FILTER_SANITIZE_SPECIAL_CHARS by @eduardomozart in #784
  • External dB with new snmysqlexternal parameter by @geotsot in #793
  • feat(ldap): Add Active Directory nested group matching and fix PHP LDAP auth errors by @eduardomozart in #791
  • Refactor host validation and save logic by @eduardomozart in #785
  • hostgetkey store token before save in db and return by @kbats183 in #748
  • Stable Release PR For 1.5.10.1798 - 2026-03-15 by @fog-workflows[bot] in #799

New Contributors

Full Changelog: 1.5.10.1763...1.5.10.1798

1.5.10.1763

Choose a tag to compare

@fog-workflows fog-workflows released this 15 Feb 14:56
2506723

What's Changed

  • merge stable - 1.5.10.1754 into dev by @fog-workflows[bot] in #774
  • Fix iPXE compilation error for HTTPS FOG Installs (dev-branch) by @rluzuriaga in #776
  • Stable Release PR For 1.5.10.1763 - 2026-02-15 by @fog-workflows[bot] in #786

Full Changelog: 1.5.10.1754...1.5.10.1763