Pull Requests
- Port the multi-server CA bundle transfer steps to dev-branch, and drop flags this line lacks by @mastacontrola in #1023
- Fix #1036: inventory empty after Quick Registration (mac encoding in getHostItem) by @mastacontrola in #1037
- Fix #1039: installer fails with DHCP enabled on Debian 13 / Ubuntu 26 (Kea + AppArmor) by @mastacontrola in #1040
- Stop a user PUT locking that account out permanently by @mastacontrola in #1092
- Drop deprecated "${var}" interpolation by @mastacontrola in #1106
- Fix untranslatable, misspelled copy on the pending-MAC report by @mastacontrola in #1108
- Sweep gettext msgids that were built at runtime, and gate it by @mastacontrola in #1110
- Make the iPXE advanced menu actually check the login it asks for by @mastacontrola in #1112
- Stop handing a session to entry points that cannot carry a cookie by @mastacontrola in #1115
- Say 7.4 in the docblocks, which is what FOG has enforced for years by @mastacontrola in #1127
- Verify TLS on outbound requests, and keep the session off third-party hosts by @mastacontrola in #1133
- Run the test suite on pull requests by @mastacontrola in #1140
- Sync the version on merge, not just on the daily sweep (dev-branch) by @darksidemilk in #1161
- Bound every installer network fetch (port of #1159) by @mastacontrola in #1168
- Port: string identifiers read as foreign keys, and php-fpm error log ownership by @mastacontrola in #1167
- Port: verify TLS on the installer's downloads and its calls to itself by @mastacontrola in #1170
- Trigger the merge sync from an event that actually reaches this file (dev-branch) by @darksidemilk in #1172
- Pin iPXE to v2.0.0-fog.7 by @mastacontrola in #1188
- Stop register()'s error handler being fatal by @mastacontrola in #1196
- Fix four hook/event defects that cannot change which listener runs by @mastacontrola in #1201
- Let 1.5 record what FOS tells it: taskLog gets a type and a body (schema 280) by @mastacontrola in #1210
- Give a task the host died on a state of its own (schema 281) by @mastacontrola in #1212
- Type the taskLog rows that were landing empty (schema 282) by @mastacontrola in #1214
- Make the cancel route refuse what it cannot cancel by @mastacontrola in #1216
- Let a stored FOS report be longer than the notification it triggers by @mastacontrola in #1218
- Keep the line breaks in a stored FOS report by @mastacontrola in #1224
- Say why imaging failed, not just that it did by @mastacontrola in #1226
- Apply the site boundary to the API, not just to the management pages by @mastacontrola in #1229
- Push the API object boundary into the query, keeping the id list as fallback by @mastacontrola in #1233
- Keep a host with no primary MAC loadable, and self-heal it by @mastacontrola in #1234
- Keep a FOS report readable after its task is gone by @mastacontrola in #1237
- fix(db): run under the server's own sql_mode (#1245) by @mastacontrola in #1252
- fix(replication): report a refused FTP login as a login failure (#1254) by @mastacontrola in #1256
- fix(core): report and record database operations that fail on machine paths (1.5 port of #1257) by @mastacontrola in #1258
- test: pin FOGManagerController::find()'s failure check by @mastacontrola in #1260
- fix(security): keep the failed statement's bound values out of the fault log (1.5 port of #1261) by @mastacontrola in #1262
- fix(installer): create the fault log directory 0750, not 0755 (1.5 port) by @mastacontrola in #1264
- Fix 1364: insertBatch must name every column a strict server requires by @mastacontrola in #1270
- Schema step 286: give FOG's optional columns a real default by @mastacontrola in #1273
- Give plugin tables real column defaults, and stop createTable dropping them by @mastacontrola in #1274
- fix(installer): report "Skipped" when no web backup was written (1.5 port) by @mastacontrola in #1282
- fix(tasking): stop the first check-in of every task fataling on a null taskCheckIn by @mastacontrola in #1283
- Close two blind gates in the API object-scope tests by @mastacontrola in #1291
- Say why _scopeWhere() carries no reentrancy guard by @mastacontrola in #1294
- fix(installer): don't reject every directory when the distro config is missing by @mastacontrola in #1299
- fix(multicast): make a kill answer whether the sender is actually gone by @mastacontrola in #1301
- fix(snapinhash): stop saving a hash for a file that is not there by @mastacontrola in #1304
- fix(multicast): give the first partition its own max-wait (GH-536) by @mastacontrola in #1305
- fix(pki): make an imported Web CA actually work on dev-branch by @mastacontrola in #1303
- fix(session): give FOG its own PHP session store so GC stops reaping logins (1.5 port) by @mastacontrola in #1307
- fix(session): stop an empty session cookie minting a throwaway session (1.5 port) by @mastacontrola in #1309
- fix(auth): let FOG's own components authenticate without a session (1.5 port) by @mastacontrola in #1314
- fix(api): stop returning credential setting values over REST by @mastacontrola in #1315
- feat(nodes): give a peer FOG server its own signing key by @mastacontrola in #1318
- feat(nodes): give a peer a way to be handed its signing key by @mastacontrola in #1319
- fix(service): let cleanupProcList actually empty the process lists by @mastacontrola in #1322
- test(schema): pin FOG_SCHEMA to the real step count on this branch too by @mastacontrola in #1343
- fix(boot): resolve the boot kernel by architecture, not by hope by @mastacontrola in #1350
- Port BootMenu dead-code removal and hook-argument fixes from working-1.6 by @mastacontrola in #1354
- Store a PHP boolean as '0'/'1', never as '' by @mastacontrola in #1362
- Use MAC of first link-up interface instead of forcing net0 for setmacto by @MrLego8-9 in #1383
- Fix FOGUpdater: GitHub as the update source, https enforced end to end (GHSA-qp3r-8mwm-vg6h) by @mastacontrola in #1386
- Record the real manufacturer, stop blanking the boot log, and look past three NICs by @mastacontrola in #1388
- Stop a task ever pointing at nothing, and free the ones that do (1.5) by @mastacontrola in #1391
- Reap the tasks that can never run, and say why (1.5) by @mastacontrola in #1394
- fix(registration): stop HTML-escaping the password before checking it by @mastacontrola in #1398
- Say which store fog-enroll-mok.sh actually checked by @mastacontrola in #1401
- Point the iPXE build failure at its own log (dev-branch port) by @mastacontrola in #1406
- Stop shipping the generated config world-readable by @mastacontrola in #1433
- Stop the config step printing OK twice by @mastacontrola in #1436
- Pin iPXE to v2.0.0-fog.7.1, which ships the pre-DHCP sleep by @mastacontrola in #1468
- Stop writing FOG_VERSION on a branch, so open PRs stop conflicting by @mastacontrola in #1511
- Report a node registration POST that did not land (GH-575) by @mastacontrola in #1560
- Stop forcing the netboot path to HTTPS (GH-978) by @mastacontrola in #1562
- Make the node sub-menu labels whole translatable phrases (GH-435, dev-branch) by @mastacontrola in #1571
- Read the tasking form's account as a string, not as NULL by @mastacontrola in #1573
- Cast request input before handing it to a string function by @mastacontrola in #1575
- Let the pre-commit hook exit 0 when an optional tool is missing (GH-1581, dev-branch) by @darksidemilk in #1588
- Add bin/updatefog.sh for the 1.5 -> 1.6 crossing, and retire fogupdater.sh by @darksidemilk in #1589
- Copy from the resolved path, and refuse a headless run before moving anything by @darksidemilk in #1605
- Detach rather than move a branch ref, and do not read EOF as a decision by @darksidemilk in #1637
- Give Group::createImagePackage() a capture arm so a group capture writes a task by @mastacontrola in #1680
- Boot Memtest86+ 8.10 directly so the memory test runs on UEFI as well as BIOS by @mastacontrola in #1698
- Bind the gettext domain's output codeset to UTF-8 (1.5) by @mastacontrola in #1723
- Keep the Kea config path on an installer re-run (GH-1747) by @mastacontrola in #1751
- Derive the DHCP subnet from the FOG address, not the interface (GH-1747) by @mastacontrola in #1753
- Take the version base from a release tag only by @mastacontrola in #1757
- Stable Release PR For 1.5.10.2482 - 2026-09-11 by @fog-workflows[bot] in #1762
New Contributors
- @MrLego8-9 made their first contribution in #1383
Full Changelog: 1.5.10.2253...1.5.10.2482
Commits
- Reissue the web leaf when the signing CA changes, not just the names (4a656becb)
- Add fog-mint-web-ca and document unifying a multi-server fleet (21636d105)
- Port the bundle transfer steps, and stop naming flags this line does not have (#1023) (ac3e26295)
- Fix #1036: resolve the mac encoding inside getHostItem (d419f978d)
- Catch FOG_VERSION drift at push time instead of predicting it at commit (18c0f6a3e)
- Fix #1039: validate the Kea config as the account that can read it (8edfbf3d1)
- Version Sync: Increment version from 1.5.10.2262 to 1.5.10.2265 for Patches channel on dev-branch to match commit count since master (e2a1fce38)
- Stop a user PUT locking that account out permanently (6f58fff18)
- Drop deprecated "${var}" interpolation (b458ca0be)
- Fix untranslatable, misspelled copy on the pending-MAC report (#1108) (8faee64b5)
- Sweep gettext msgids that were built at runtime, and gate it (#1110) (bca0dd163)
- Make the iPXE advanced menu actually check the login it asks for (#1112) (1f9df5a4f)
- Stop handing a session to entry points that cannot carry a cookie (3b33200e7)
- Say 7.4 in the docblocks, which is what FOG has enforced for years (a3fb7352c)
- Version Sync: Increment version from 1.5.10.2265 to 1.5.10.2277 for Patches channel on dev-branch to match commit count since master (f5cea92af)
- Verify TLS on outbound requests, and keep the session off third-party hosts (#1133) (e3ba27771)
- Run the test suite on pull requests (#1140) (88a3f69e8)
- Ask the database whether there is a database to back up (97be8b1de)
- Back up the web tree the symlink pointed at, not the symlink (f8141bb22)
- Sync the version on merge, not just on the daily sweep (b73ee5693)
- Bound every installer network fetch (port of #1159) (01ac2c7dd)
- Port: string identifiers read as foreign keys, and php-fpm error log ownership (#1167) (eff3f5ff8)
- Port: verify TLS on the installer's downloads and its calls to itself (#1170) (c786d8f13)
- Trigger the merge sync from an event that actually reaches this file (d634bdfed)
- Version Sync: Increment version from 1.5.10.2281 to 1.5.10.2290 for Patches channel on dev-branch to match commit count since master (1130094a8)
- Pin iPXE to v2.0.0-fog.7 (#1188) (a49fb96fc)
- Stop register()'s error handler being fatal (#1196) (636f2cb0b)
- Fix four hook/event defects that cannot change which listener runs (#1201) (cf54b2fc5)
- Version Sync: Increment version from 1.5.10.2290 to 1.5.10.2294 for Patches channel on dev-branch to match commit count since master (af958bcb9)
- Let 1.5 record what FOS tells it: taskLog gets a type and a body (schema 280) (#1210) (2624732b2)
- Give a task the host died on a state of its own (schema 281) (#1212) (f79453045)
- Type the taskLog rows that were landing empty (schema 282) (#1214) (d6fef1e2c)
- Make the cancel route refuse what it cannot cancel (#1216) (02eee9dec)
- Let a stored FOS report be longer than the notification it triggers (#1218) (af02d6771)
- Keep the line breaks in a stored FOS report (#1224) (59616e728)
- Say why imaging failed, not just that it did (#1226) (b7b748da4)
- Apply the site boundary to the API, not just to the management pages (bcbcecf16)
- Push the API object boundary into the query, keeping the id list as fallback (0b41dfb84)
- fix(orm): keep a host with no primary MAC loadable, and self-heal it (73916a4f5)
- Version Sync: Increment version from 1.5.10.2301 to 1.5.10.2308 for Patches channel on dev-branch to match commit count since master (d04ec2d62)
- fix(tasklog): keep a FOS report readable after its task is gone (1169c84fe)
- Version Sync: Increment version from 1.5.10.2308 to 1.5.10.2311 for Patches channel on dev-branch to match commit count since master (a80cfe466)
- fix(db): run under the server's own sql_mode (#1245) (097a528a8)
- Version Sync: Increment version from 1245.0-feature.2312 to 1.5.10.2314 for Patches channel on dev-branch to match commit count since master (674079e13)
- fix(replication): report a refused FTP login as a login failure (#1254) (f41aedee1)
- Version Sync: Increment version from 1.5.10.2314 to 1.5.10.2317 for Patches channel on dev-branch to match commit count since master (9b288fc13)
- fix(core): report and record database operations that fail on machine paths (0a17a3a22)
- fix(db): record a failed FETCH, and check for it after the fetch not before (eb3c705d1)
- Version Sync: Increment version from 1.5.10.2317 to 1.5.10.2321 for Patches channel on dev-branch to match commit count since master (d96d9f03e)
- test: pin FOGManagerController::find()'s failure check (e24b8e6cd)
- Version Sync: Increment version from 1.5.10.2321 to 1.5.10.2324 for Patches channel on dev-branch to match commit count since master (c12ae8ceb)
- fix(security): keep the failed statement's bound values out of the fault log (#1262) (29bf14beb)
- Version Sync: Increment version from 1.5.10.2324 to 1.5.10.2326 for Patches channel on dev-branch to match commit count since master (9dc847e64)
- fix(installer): create the fault log directory 0750, not 0755 (#1264) (9ecda2876)
- Version Sync: Increment version from 1.5.10.2326 to 1.5.10.2328 for Patches channel on dev-branch to match commit count since master (3530e23da)
- fix(db): insertBatch must name every column a strict server requires (6eda42133)
- Version Sync: Increment version from 1.5.10.2328 to 1.5.10.2331 for Patches channel on dev-branch to match commit count since master (db7d2bd6e)
- Schema step 286: give FOG's optional columns a real default (1446dba68)
- Version Sync: Increment version from 1.5.10.2331 to 1.5.10.2334 for Patches channel on dev-branch to match commit count since master (427e24550)
- Give plugin tables real column defaults, and stop createTable dropping them (159619850)
- Version Sync: Increment version from 1.5.10.2334 to 1.5.10.2337 for Patches channel on dev-branch to match commit count since master (813f0da82)
- fix(installer): report "Skipped" when no web backup was written (15b944638)
- Version Sync: Increment version from 1.5.10.2337 to 1.5.10.2340 for Patches channel on dev-branch to match commit count since master (7e4a8b744)
- fix(tasking): stop the first check-in of every task fataling on a null taskCheckIn (f814a64ec)
- test: pin that a task with no check-in time can still check in (67d904ec1)
- Version Sync: Increment version from 1.5.10.2340 to 1.5.10.2344 for Patches channel on dev-branch to match commit count since master (3e2ba947e)
- Close two blind gates in the API object-scope tests (0c41d531c)
- Version Sync: Increment version from 1.5.10.2344 to 1.5.10.2347 for Patches channel on dev-branch to match commit count since master (5aad9e6e4)
- Say why _scopeWhere() carries no reentrancy guard (4ca3ad4f7)
- Version Sync: Increment version from 1.5.10.2347 to 1.5.10.2350 for Patches channel on dev-branch to match commit count since master (bc34310c5)
- fix(installer): don't reject every directory when the distro config is missing (6027fbe23)
- Version Sync: Increment version from 1.5.10.2350 to 1.5.10.2353 for Patches channel on dev-branch to match commit count since master (81630e8f2)
- fix(multicast): make a kill answer whether the sender is actually gone (ac4bd48e7)
- test(multicast): settle on a cmdline that is ours, not merely non-empty (cefb99024)
- Version Sync: Increment version from 1.5.10.2353 to 1.5.10.2357 for Patches channel on dev-branch to match commit count since master (62ea1b37f)
- fix(pki): keep the imported root when regenerating the web CA chain (9f5488f1f)
- fix(snapinhash): stop saving a hash for a file that is not there (2122b6244)
- Version Sync: Increment version from 1.5.10.2357 to 1.5.10.2360 for Patches channel on dev-branch to match commit count since master (921bf4340)
- fix(pki): anchor the installer's self-calls on the chain, not the local root (0e8b51cfe)
- fix(multicast): give the first partition its own max-wait (GH-536) (e91060ad2)
- Version Sync: Increment version from 1.5.10.2360 to 1.5.10.2363 for Patches channel on dev-branch to match commit count since master (5a275e938)
- test(installer): pin the resolved anchor, not $rootCAPem (f606aa964)
- Version Sync: Increment version from 1.5.10.2363 to 1.5.10.2368 for Patches channel on dev-branch to match commit count since master (9f07d73a2)
- fix(session): give FOG its own PHP session store so GC stops reaping logins (e84390610)
- Version Sync: Increment version from 1.5.10.2368 to 1.5.10.2371 for Patches channel on dev-branch to match commit count since master (70bb103c5)
- fix(session): stop an empty session cookie minting a throwaway session (3c187527c)
- test(url-requests): re-pin the cookie gate, and gate the session guard too (1ff8741f7)
- Version Sync: Increment version from 1.5.10.2371 to 1.5.10.2375 for Patches channel on dev-branch to match commit count since master (3cf3252f5)
- fix(auth): let FOG's own components authenticate without a session (1.5 port) (599dbf988)
- Version Sync: Increment version from 1.5.10.2375 to 1.5.10.2378 for Patches channel on dev-branch to match commit count since master (27753fd0a)
- fix(api): stop returning credential setting values over REST (e6150e931)
- Version Sync: Increment version from 1.5.10.2378 to 1.5.10.2381 for Patches channel on dev-branch to match commit count since master (58a39f453)
- feat(nodes): give a peer FOG server its own signing key (6abf4c4cc)
- Version Sync: Increment version from 1.5.10.2381 to 1.5.10.2384 for Patches channel on dev-branch to match commit count since master (0693679ab)
- feat(nodes): give a peer a way to be handed its signing key (967516930)
- Version Sync: Increment version from 1.5.10.2384 to 1.5.10.2387 for Patches channel on dev-branch to match commit count since master (e596c22e1)
- fix(service): let cleanupProcList actually empty the process lists (f2cb3ed4c)
- Version Sync: Increment version from 1.5.10.2387 to 1.5.10.2390 for Patches channel on dev-branch to match commit count since master (722e31297)
- test(schema): pin FOG_SCHEMA to the real step count on this branch too (533bdb139)
- Version Sync: Increment version from 1.5.10.2390 to 1.5.10.2393 for Patches channel on dev-branch to match commit count since master (7e4932bba)
- fix(boot): resolve the boot kernel by architecture, not by hope (87b17cd0a)
- Version Sync: Increment version from 1.5.10.2393 to 1.5.10.2396 for Patches channel on dev-branch to match commit count since master (63dfca6ec)
- Port BootMenu dead-code removal and hook-argument fixes from working-1.6 (295a25340)
- Version Sync: Increment version from 1.5.10.2396 to 1.5.10.2399 for Patches channel on dev-branch to match commit count since master (3fce2eea9)
- Store a PHP boolean as '0'/'1', never as '' (c015ea753)
- Version Sync: Increment version from 1.5.10.2399 to 1.5.10.2402 for Patches channel on dev-branch to match commit count since master (1f57bfc80)
- feat: support multiple NICs with iPXE net0 inactive (180f7a93b)
- Use iPXE's netX alias for setmacto instead of nesting ifname (692d97fc3)
- Regenerate the bootmenu golden for the setmacto change (2fa86652c)
- Fix FOGUpdater: GitHub as the update source, https enforced end to end (a92d061e0)
- Version Sync: Increment version from 1.5.10.2402 to 1.5.10.2409 for Patches channel on dev-branch to match commit count since master (0b4fb3228)
- Record the real manufacturer, stop blanking the boot log, and look past three NICs (ba92027ff)
- Version Sync: Increment version from 1.5.10.2409 to 1.5.10.2412 for Patches channel on dev-branch to match commit count since master (4509b809d)
- fix(tasking): stop a task ever pointing at nothing, and free the ones that do (139b469e5)
- fix(db): let find() ask for a column that holds nothing (72d9a805b)
- fix(tasking): reap the tasks that can never run, and say why (3d9a1aa5a)
- Version Sync: Increment version from 1.5.10.2412 to 1.5.10.2418 for Patches channel on dev-branch to match commit count since master (358367333)
- fix(registration): stop HTML-escaping the password before checking it (c651c49be)
- Version Sync: Increment version from 1.5.10.2418 to 1.5.10.2421 for Patches channel on dev-branch to match commit count since master (5c5688643)
- Say which store fog-enroll-mok.sh actually checked (7cc4c98db)
- Version Sync: Increment version from 1.5.10.2421 to 1.5.10.2424 for Patches channel on dev-branch to match commit count since master (57aefe674)
- Point the iPXE build failure at its own log (a729455de)
- Version Sync: Increment version from 1.5.10.2424 to 1.5.10.2427 for Patches channel on dev-branch to match commit count since master (4dd6fd583)
- Stop shipping the generated config world-readable (3da2c0372)
- Version Sync: Increment version from 1.5.10.2427 to 1.5.10.2430 for Patches channel on dev-branch to match commit count since master (1d43dad0d)
- Stop the config step printing OK twice (98ae6bb8a)
- Version Sync: Increment version from 1.5.10.2430 to 1.5.10.2433 for Patches channel on dev-branch to match commit count since master (9da71a33f)
- Pin iPXE to v2.0.0-fog.7.1, which ships the pre-DHCP sleep (5daf4eb50)
- Version Sync: Increment version from 1.5.10.2433 to 1.5.10.2436 for Patches channel on dev-branch to match commit count since master (123a39fa2)
- Stop writing FOG_VERSION on a branch, so open PRs stop conflicting (e481219f0)
- Version Sync: Increment version from 1.5.10.2436 to 1.5.10.2439 for Patches channel on dev-branch to match commit count since master (14138dfa5)
- Report a node registration POST that did not land (GH-575) (4a65865fc)
- Version Sync: Increment version from 1.5.10.2439 to 1.5.10.2442 for Patches channel on dev-branch to match commit count since master (6816c38cd)
- Stop forcing the netboot path to HTTPS (GH-978) (3fc7e6433)
- Version Sync: Increment version from 1.5.10.2442 to 1.5.10.2445 for Patches channel on dev-branch to match commit count since master (74210315a)
- Make the node sub-menu labels whole translatable phrases (a96f21566)
- Version Sync: Increment version from 1.5.10.2445 to 1.5.10.2448 for Patches channel on dev-branch to match commit count since master (523eaed4f)
- Read the tasking form's account as a string, not as NULL (ac427368d)
- Version Sync: Increment version from 1.5.10.2448 to 1.5.10.2451 for Patches channel on dev-branch to match commit count since master (6f67966fb)
- Cast request input before handing it to a string function (1bf021f03)
- Version Sync: Increment version from 1.5.10.2451 to 1.5.10.2454 for Patches channel on dev-branch to match commit count since master (d82877736)
- Let the pre-commit hook exit 0 when an optional tool is missing (GH-1581) (878fd6cbc)
- Add bin/updatefog.sh for the 1.5 -> 1.6 crossing, and retire fogupdater.sh (a3727ac80)
- Version Sync: Increment version from 1.5.10.2454 to 1.5.10.2457 for Patches channel on dev-branch to match commit count since master (cc4ddfcee)
- Anchor rcBranch at refs/heads/, and cover it with a real remote (a2397599a)
- Version Sync: Increment version from 1.5.10.2457 to 1.5.10.2461 for Patches channel on dev-branch to match commit count since master (58ff0a077)
- Copy from the resolved path, and refuse a headless run before moving anything (a059c7d31)
- Version Sync: Increment version from 1.5.10.2461 to 1.5.10.2464 for Patches channel on dev-branch to match commit count since master (a8f7218ce)
- Detach rather than move a branch ref, and do not read EOF as a decision (05b408213)
- Version Sync: Increment version from 1.5.10.2464 to 1.5.10.2467 for Patches channel on dev-branch to match commit count since master (025711a9e)
- Give Group::createImagePackage() a capture arm so a group capture writes a task (3e2f6938b)
- Version Sync: Increment version from 1.5.10.2467 to 1.5.10.2470 for Patches channel on dev-branch to match commit count since master (6c23c2b4d)
- Boot Memtest86+ 8.10 directly so the memory test runs on UEFI as well as BIOS (24fb75b29)
- Version Sync: Increment version from 1.5.10.2470 to 1.5.10.2473 for Patches channel on dev-branch to match commit count since master (62cd973c6)
- Bind the gettext domain's output codeset to UTF-8 (9ba8b1b14)
- Keep the Kea config path on an installer re-run (GH-1747) (bd80f1381)
- Derive the DHCP subnet from the FOG address, not the interface (GH-1747) (93f4594a0)
- Take the version base from a release tag only (7548b49fb)
- Version Sync: Increment version from 1.5.10.2473 to 1.5.10.2482 for Patches channel on dev-branch to match commit count since master (b959754a5)
Closed Issues Since Last Release
- Kea DHCP config written to /etc/dhcp3/dhcpd.conf, blocked by AppArmor => installer aborts before TFTP/PXE setup (#1747)
- Multicast: a host rebooting mid-session is handed the same session and rejoins mid-chain (#1744)
- Multicast: a desynced receiver silently restores each partition from the wrong stream (#1742)
- New host registration silently fails when a client sends more than one MAC address (multi-NIC machines never reach Pending Hosts) (#1725)
- Chinese translations render as question marks when PHP-FPM LC_CTYPE is C (#1720)
- Certificates page: prove the redirect only affects non-netboot, and offer netboot transport as its own switch (#1692)
- Certificate Management page: adopt an existing cert, and decide on leaf key upload (#1685)
- Unify the customizations directories, and extend blessed drop-in beyond certificates (#1684)
- PKI_web_external_root_cert records a temp path that is gone by the next run (#1683)
- --client-cert/--client-key silently revert on the next installer run (#1682)
- Capture task from web UI silently fails (#1677)
- No standalone way back from an update: offerRevert only runs on failure, and revertfog.sh refuses a 1.6 dump (#1659)
- errorStat prints "Failed!" then "OK" for the same step when exitFail is set (#1597)
- updatefog.sh runs with $error_log unset: every redirect writes to a file named "" (#1594)
- fogupdater.sh cannot update to 1.6: its Beta arm resolves a version file that does not exist there (#1587)
- pre-commit hook blocks every commit when gettext or php-cs-fixer is not installed (#1581)
- User-authored reports are destroyed on every install: restoreReports() is never called (#1580)
- Kernel backup generations never rotate (gen-2/gen-3 are never created) (#1579)
- shapeDrift() matches UNIQUE indexes by name only, so a same-named index on the wrong column reports clean (#1566)
- The site plugin's retirement step can never fire on an upgrade from 1.5 (#1543)
- SchemaReconciler::plan() repairs existence but never shape (#1542)
- GET /system/export: permission does not match the authority it grants, plus three defects on the same path (#1410)
- Capture never reaches Complete: FOGSSH::delete() recurses until memory is exhausted, with an empty response body (#1380)
- Task log shows cancelled and complete tasks as In-Progress, and stamps every row with the task's creation time (#1378)
- REST API refuses writes the database allows: $nonUniqueNameClasses does not match the schema (#1366)
- Creating a forum topic (#1345)
- Storage node image/snapin listings come back empty for any caller without a browser session (#1312)
- /{class}/search/{item} silently returns nothing for 17 of the 31 classes that still advertise it (#1290)
- Two unrelated "channel" vocabularies collide: fog_update_channel vs FOG_CHANNEL (#1279)
- Secure Boot enrolment reports the wrong cause twice: efitools blamed for absent .auth, and MokList checked for a db question (#1266)
- Replication logs a rejected FTP login as "Cannot connect", pointing at the network instead of the password (#1254)
- schema-expected.php ships one machine's NIC name as the ngmInterface default (#1249)
- PDODB clears sql_mode on every connection, so FOG stores values the server would reject (#1245)
- Schema cannot be applied to a stock MySQL 8.0: zero-date default on fileDeleteQueue.fdqCompletedDate (#1243)
- Schema execution test fails 12 of 278 statements, and CI reports it green (#1241)
- Release validation does not run the unit suite (#1222)
- No CI executes the schema against a real database server (#1221)
- Distro install tests are hardcoded to dev-branch and cannot validate a branch before merge (#1220)
- Merge sync fails when another PR is merged during its run (#1219)
- FOS reports nothing to the server when imaging fails (#1206)
- Hook extends Event, but a hook is not a kind of event (#1203)
- Two notification events have never fired: HOST_IMAGE_FAIL and HOST_IMAGEUP_COMPLETE (#1202)
- The ESP archives cannot boot since iPXE stopped embedding a boot script: three are empty and three loop (#1195)
- The ESP archives omit rEFInd, so a kit-assembled ESP has no local-boot chainloader (#1185)
- taskLog.taskID is mediumtext where tasks.taskID is int(11) (#1155)
- 71 tables inherit the server default collation, which changed meaning in MariaDB 11.4 (#1152)
- backupDB() cannot report why it failed (#1149)
- A stale schema blocks the pre-upgrade database backup, which is when you most need it (#1148)
- Installer: web-tree backup is skipped when ${docroot}fog is a symlink (#1146)
- --oldcopy upgrades leave two files claiming one autoloader key (#1136)
- Phase 4: build out the certificate management page (#1121)
- Phase 3: document netboot transport, PKI choices and Secure Boot enrolment (#1120)
- Phase 2: decouple the install settings and add --install-mode (#1119)
- Phase 1: audit httpproto coverage and assess a conditional HTTPS redirect (#1118)
- Phase 0: ESP boot binaries should be fog*, not local* (#1117)
- Decouple HTTPS, netboot transport and the iPXE rebuild (#1116)
- working-1.6: the three iPXE provisioning gates were not updated for the $netbootproto split (#1096)
- Installer fails if DHCP is turned on (#1039)
- Inventory Empty after Quick Registration (#1036)
- Remove the stale duplicate of bootbox.min.js under management/plugins (#1032)
- CI: verify FOG_PLUGINS_VERSION and FOG_IPXE_VERSION point at releases that exist (#1030)
- OU plugin silently never applies the OU during AD join (hook class-name collision with the Location plugin) (#1024)
- Separate web server vhost cert (server_name/CA/cert) from FOG client-trust CA, scaffold Let's Encrypt support (#1013)
- [Update Workflow] Phase 1 follow-ups: vhost/TFTP overwrite warnings, custom branch, sticky channel (#1012)
- [Update Workflow] Phase 6: Optional scheduled auto-update (#1010)
- [Update Workflow] Phase 5: GUI-driven update UX (#1009)
- [Update Workflow] Phase 3: Standard iPXE/secureboot symlink setup (#1007)
- [Update Workflow] Phase 2: One-liner bootstrap installer (#1006)
- [Update Workflow] Phase 1: fog_git_path setting + bin/updatefog.sh (#1005)
- Secure Boot: a FOG vendor shim signed by Microsoft — settle the UKI question first (#995)
- UEFI PXE boot fails after upgrading to 1.5.10.2149 — HTTP-to-HTTPS redirect causes “Permission denied” with older iPXE binary (#978)
- Installer support for Alpine Linux as host OS (#863)
- Powershell X64 Snapin not saving correctly and not working (#798)
- Feature Request: Support for External Intermediate CA (e.g., Smallstep step-ca) (#794)
- ntfsresize fails to resize partition with a Windows 11 install (#789)
- auto register failed (#779)
- Feature: Multicast Deploy Across Multiple Subnets/VLANs (#769)
- Image Replicator produces inconsistent image copies across Storage Nodes (#755)
- ISC-DHCP is deprecated (#730)
- Error Generate PXE boot.php (#725)
- FOG not working on Rocky 9.5 (#694)
- Capturing image - problem (#693)
- Automatic device name change (#690)
- FOGProject proxyDHCP server. (#686)
- Update Fog 1.5.9 to 1.5.10 / Update in general (#639)
- Running provisioning package (ppkg) to enroll to Microsoft Azure AD (Entra ID) (#637)
- Let's Encrypt support (#633)
- Windows 11 with Secure Boot doesn't work (#597)
- Registering & ensuring node username and password match. (#575)
- pxe menu variables (#572)
- Fog can't join computers to domain (#557)
- Problematic operation of udpcast (#536)
- [dev-branch][l10n] Main menus are not adapted to the French language (#435)
- Add Chocolately package manager (#356)
- Remove Virusscan option (#328)
- Memtest86+ is only runable when booting from Legacy PXE (#321)
- Retrofit fog-too gui (#217)
Security Advisories
- Authenticated low-privileged API user can modify Storage Nodes and reach root command execution (GHSA-2hqx-5ffg-w4c3)