<?xml version="1.0" encoding="UTF-8"?>
<otherdata xmlns="http://linux.duke.edu/metadata/other" packages="27">
<package pkgid="206bdb674c75261ab7b5e833f7d8955350ece9351d6be62b578790fa248263fecc64f438a13e79c018fb70d6d71a866566bd3a6636b85c122c1cfa770d675056" name="hello" arch="src">
  <version epoch="0" ver="2.12.1" rel="3.1"/>
  <changelog author="Dennis Knorr &lt;dennis.knorr@suse.com&gt;" date="1727265600">- changing package</changelog>
  <changelog author="Dennis Knorr &lt;dennis.knorr@suse.com&gt;" date="1727265601">- adding missing files</changelog>
  <changelog author="Dennis Knorr &lt;dennis.knorr@suse.com&gt;" date="1727265602">- bsc#12239844 this is not a real ticketnumber</changelog>
</package>
<package pkgid="3d0bb9f9290b1bcb49ea877c0999e79d4c0115ba096e7d8069ebc558418d5df16951981fc287518945366675b04f3bfe0e1fb1eaaa62a066e31d6d59f225363d" name="hello" arch="x86_64">
  <version epoch="0" ver="2.12.1" rel="3.1"/>
  <changelog author="Dennis Knorr &lt;dennis.knorr@suse.com&gt;" date="1727265600">- changing package</changelog>
  <changelog author="Dennis Knorr &lt;dennis.knorr@suse.com&gt;" date="1727265601">- adding missing files</changelog>
  <changelog author="Dennis Knorr &lt;dennis.knorr@suse.com&gt;" date="1727265602">- bsc#12239844 this is not a real ticketnumber</changelog>
</package>
<package pkgid="78e8ceff186556a98328f29875c2a93e0e4acb8ecb16beff993c38eaac2cd340a660fe4f8210fc0af1d5cb7bee8cf1d3cb7727e95b7e25d2332dcb29e68c1b0b" name="hello-lang" arch="noarch">
  <version epoch="0" ver="2.12.1" rel="3.1"/>
  <changelog author="Dennis Knorr &lt;dennis.knorr@suse.com&gt;" date="1727265600">- changing package</changelog>
  <changelog author="Dennis Knorr &lt;dennis.knorr@suse.com&gt;" date="1727265601">- adding missing files</changelog>
  <changelog author="Dennis Knorr &lt;dennis.knorr@suse.com&gt;" date="1727265602">- bsc#12239844 this is not a real ticketnumber</changelog>
</package>
<package pkgid="385879e3f17918d3dfabe94587d78c4d067ab0041147e838aa403039f1af2cadd7e6ac057e4525cdf853590ca05e78887c754807f3c0c0bb96599f1353411e96" name="kcli-azure" arch="noarch">
  <version epoch="0" ver="99.0.202405201944" rel="5.25"/>
  <changelog author="Dennis Knorr &lt;dennis.knorr@suse.com&gt;" date="1716292800">- bringing kcli into opensuse</changelog>
</package>
<package pkgid="f723c0b8b6ebd071ed79bf16286ab9fe94683b1f0addf2021a1dfe31c43f6fb71a00b10b3282cdb8657faa7218be09e37ef0e8b87e3a5e1af60f43c1fead4d79" name="python-kcli" arch="src">
  <version epoch="0" ver="99.0.202405201944" rel="5.25"/>
  <changelog author="Dennis Knorr &lt;dennis.knorr@suse.com&gt;" date="1716292800">- bringing kcli into opensuse</changelog>
</package>
<package pkgid="f59290c764194c1ffc6689f7d71b81a8c79b027d1b74dce230b157bb365e9409e1cf0479162535ab35f20e28b3d6cd378f721f2ad976c7ab1e829ab54bd3fa4f" name="python-lsplug" arch="src">
  <version epoch="0" ver="5" rel="5.21"/>
  <changelog author="Dennis Knorr &lt;dennis.knorr@suse.com&gt;" date="1723550400">- adding</changelog>
</package>
<package pkgid="c0d19c539af041f239fbea1c45d1b1686993dc36b1bf74e96eea394f02bbd0920f48b04a9c7de8357a3ca23aff2bbdd7003456a866d4cec119b875115d80c6c0" name="python311-kcli" arch="noarch">
  <version epoch="0" ver="99.0.202405201944" rel="5.25"/>
  <changelog author="Dennis Knorr &lt;dennis.knorr@suse.com&gt;" date="1716292800">- bringing kcli into opensuse</changelog>
</package>
<package pkgid="11d63437c478e251be66674562ed7cc145d03e1c1abdda0b00512b9b822c38b452434118d5aa7e0687b0347a6ff76df4bb30b605528a0c8e491091c1842a1079" name="python311-lsplug" arch="noarch">
  <version epoch="0" ver="5" rel="5.21"/>
  <changelog author="Dennis Knorr &lt;dennis.knorr@suse.com&gt;" date="1723550400">- adding</changelog>
</package>
<package pkgid="1c6f1dddfa9daca4fe9f0330633fe9a6fa3089f0a9ea59992965eace108ebbd0a9784efb23083f2b48492edc8538338c6673a9dab7a872ad7a64b014d6f167b0" name="python313-kcli" arch="noarch">
  <version epoch="0" ver="99.0.202405201944" rel="5.25"/>
  <changelog author="Dennis Knorr &lt;dennis.knorr@suse.com&gt;" date="1716292800">- bringing kcli into opensuse</changelog>
</package>
<package pkgid="7ed4a83259814d2fd75a5066919f23ac2285e3ac52133c36e334ea5c390423be651b5139dbacfb6b75b9a0c949d2feaaeff09fd0faa7ee8023eb17881387582a" name="python313-lsplug" arch="noarch">
  <version epoch="0" ver="5" rel="5.21"/>
  <changelog author="Dennis Knorr &lt;dennis.knorr@suse.com&gt;" date="1723550400">- adding</changelog>
</package>
<package pkgid="48262b50582d188828cf6ec7e7eb095ad89688844338bd97d232547eb2e2a14199fd760892722cf2671b7565bdd8f91b2c329182be7f8f582a895d6cabe894a6" name="python314-kcli" arch="noarch">
  <version epoch="0" ver="99.0.202405201944" rel="5.25"/>
  <changelog author="Dennis Knorr &lt;dennis.knorr@suse.com&gt;" date="1716292800">- bringing kcli into opensuse</changelog>
</package>
<package pkgid="134d9d7eb2021d9110ad1615baf0ae6f19527ec522b9eec7bb4d9595707475b0ee22b8c06ce55f943a47d251b59d1702e3081e0640bea397e944abb51fc4d3d9" name="python314-lsplug" arch="noarch">
  <version epoch="0" ver="5" rel="5.21"/>
  <changelog author="Dennis Knorr &lt;dennis.knorr@suse.com&gt;" date="1723550400">- adding</changelog>
</package>
<package pkgid="f5a1200ded523038f601349e2b468e4166df97e39010ae746fde8e2a171b99fad1ba587c2a1b2ee5b3f745cf6bca70a8cec797c0aecfd2c51eaa86faeac6e7d9" name="scap-security-guide" arch="noarch">
  <version epoch="0" ver="0.1.81" rel="160.1"/>
  <changelog author="Rumen Chikov &lt;rumen.chikov@suse.com&gt;" date="1741089600">- removed ssg-reproducable.patch: upstream</changelog>
  <changelog author="Rumen Chikov &lt;rumen.chikov@suse.com&gt;" date="1741089601">- added build support for almalinux9</changelog>
  <changelog author="Rumen Chikov &lt;rumen.chikov@suse.com&gt;" date="1741176000">- updates redhat package to include almalinux9 builds</changelog>
  <changelog author="Rumen Chikov &lt;rumen.chikov@suse.com&gt;" date="1741176001">- fix a bug in redhad package description for almalinux9 builds</changelog>
  <changelog author="Rumen Chikov &lt;rumen.chikov@suse.com&gt;" date="1741176002">- removed tables reference related to almalinux9 builds</changelog>
  <changelog author="Rumen Chikov &lt;rumen.chikov@suse.com&gt;" date="1741694400">- creation of a new request</changelog>
  <changelog author="Shawn Dunn &lt;sfalken@opensuse.org&gt;" date="1742644800">- Add -DCMAKE_POLICY_VERSION_MINIMUM=3.5 to fix FTBFS with cmake4
- Remove Group: declarations, no longer used</changelog>
  <changelog author="Marcus Meissner &lt;meissner@suse.com&gt;" date="1742731200">- ssg-fix-python.patch: fix build with older python3.</changelog>
  <changelog author="Rumen Chikov &lt;rumen.chikov@suse.com&gt;" date="1749729600">- updated to 0.1.77 (jsc#ECO-3319)
  - Introduce Architecture Decisions Records
  - Move stablization to the third Monday of the second month
  - Remove CCI References
  - Remove macOS content
- removed ssg-fix-python.patch: upstream
- Added support for tencentos4</changelog>
  <changelog author="Marcus Meissner &lt;meissner@suse.com&gt;" date="1750766400">- buildrequire cmake3 on older SLES versions for build</changelog>
  <changelog author="Boychev &lt;svetlin.boychev@suse.com&gt;" date="1753876800">- ssg-remove-cis.patch: remove cis profiles
- Update description: remove cis profiles</changelog>
  <changelog author="Boychev &lt;svetlin.boychev@suse.com&gt;" date="1755777600">- Remove ssg-remove-cis.patch: tarball
- Add check if cis profiles exists in the tarball</changelog>
  <changelog author="Boychev &lt;svetlin.boychev@suse.com&gt;" date="1755777601">- Remove the cis profiles from the tarball</changelog>
  <changelog author="Boychev &lt;svetlin.boychev@suse.com&gt;" date="1759147200">- updated to 0.1.78 (jsc#ECO-3319)
  - Enable SCE content for problematic rules that can traverse the whole filesystem
  - Remove unnecessary Jinja2 macros in control files
  - Update RHEL 8 STIG to V2R4 and RHEL 9 STIG to V2R5
  - Add Debian 13 profile for ANSSI BP 28 (enhanced)
  - Create SLEM5 General profile
  - Create SL Micro 6 product and general profile
  - Update SLE15 STIG version to V2R5
  - Update SLE12 STIG version to V3R3
  - Update SLEM5 STIG version to V1R2
- Remove the cis profiles from all products</changelog>
  <changelog author="Boychev &lt;svetlin.boychev@suse.com&gt;" date="1765886400">- updated to 0.1.79 (jsc#ECO-3319)
  - Add rhcos4 Profile for BSI Grundschutz
  - Create SLE15 general profile
  - Fix crypto policy settings in RHEL CIS profiles
  - Remove deprecated CIS OpenShift 1.4.0 and 1.5.0 profiles
  - Remove OCP STIG V1R1
  - Remove OCP STIG V2R1
  - Various updates for SLE 12/15</changelog>
  <changelog author="Boychev &lt;svetlin.boychev@suse.com&gt;" date="1773230400">- updated to 0.1.80 (jsc#ECO-3319)
  - Create SLE16 HIPAA profile
  - Create SLE16 PCI DSS 4 profile
  - Use Sequoia in RHEL 10 instead of GPG
  - New Profile for RHEL10: BSI
  - Move RHEL Control files to product files
  - Update RHEL 9 CCN profile
  - Various updates for SLE 12/15</changelog>
  <changelog author="Boychev &lt;svetlin.boychev@suse.com&gt;" date="1773230401">- Add SLE16 profiles to the build</changelog>
  <changelog author="Boychev &lt;svetlin.boychev@suse.com&gt;" date="1773230402">- Update the SSG package description</changelog>
  <changelog author="Boychev &lt;svetlin.boychev@suse.com&gt;" date="1780401600">- updated to 0.1.81 (jsc#ECO-3319)
  - Create SLE16 ANSSI profiles
  - Update SLE15 STIG version to V2R7
  - Update SLE12 STIG version to V3R5
  - Update SLEM5 STIG version to V1R3
  - Add Claude Code skills for content development workflows
  - Create Claude Skill for creating new products
  - Various updates for SLE 12/15</changelog>
  <changelog author="Boychev &lt;svetlin.boychev@suse.com&gt;" date="1780401601">- Add Hummingbird product support</changelog>
</package>
<package pkgid="82860d3a012a8c24c4a94e7fde70dc2925d39608cf7d42565bd111c4f09370c5024f8876876340b1544f57cee7243150fc6a119209aad0b61e5dcf2b5683ee14" name="scap-security-guide" arch="src">
  <version epoch="0" ver="0.1.81" rel="160.1"/>
  <changelog author="Rumen Chikov &lt;rumen.chikov@suse.com&gt;" date="1741089600">- removed ssg-reproducable.patch: upstream</changelog>
  <changelog author="Rumen Chikov &lt;rumen.chikov@suse.com&gt;" date="1741089601">- added build support for almalinux9</changelog>
  <changelog author="Rumen Chikov &lt;rumen.chikov@suse.com&gt;" date="1741176000">- updates redhat package to include almalinux9 builds</changelog>
  <changelog author="Rumen Chikov &lt;rumen.chikov@suse.com&gt;" date="1741176001">- fix a bug in redhad package description for almalinux9 builds</changelog>
  <changelog author="Rumen Chikov &lt;rumen.chikov@suse.com&gt;" date="1741176002">- removed tables reference related to almalinux9 builds</changelog>
  <changelog author="Rumen Chikov &lt;rumen.chikov@suse.com&gt;" date="1741694400">- creation of a new request</changelog>
  <changelog author="Shawn Dunn &lt;sfalken@opensuse.org&gt;" date="1742644800">- Add -DCMAKE_POLICY_VERSION_MINIMUM=3.5 to fix FTBFS with cmake4
- Remove Group: declarations, no longer used</changelog>
  <changelog author="Marcus Meissner &lt;meissner@suse.com&gt;" date="1742731200">- ssg-fix-python.patch: fix build with older python3.</changelog>
  <changelog author="Rumen Chikov &lt;rumen.chikov@suse.com&gt;" date="1749729600">- updated to 0.1.77 (jsc#ECO-3319)
  - Introduce Architecture Decisions Records
  - Move stablization to the third Monday of the second month
  - Remove CCI References
  - Remove macOS content
- removed ssg-fix-python.patch: upstream
- Added support for tencentos4</changelog>
  <changelog author="Marcus Meissner &lt;meissner@suse.com&gt;" date="1750766400">- buildrequire cmake3 on older SLES versions for build</changelog>
  <changelog author="Boychev &lt;svetlin.boychev@suse.com&gt;" date="1753876800">- ssg-remove-cis.patch: remove cis profiles
- Update description: remove cis profiles</changelog>
  <changelog author="Boychev &lt;svetlin.boychev@suse.com&gt;" date="1755777600">- Remove ssg-remove-cis.patch: tarball
- Add check if cis profiles exists in the tarball</changelog>
  <changelog author="Boychev &lt;svetlin.boychev@suse.com&gt;" date="1755777601">- Remove the cis profiles from the tarball</changelog>
  <changelog author="Boychev &lt;svetlin.boychev@suse.com&gt;" date="1759147200">- updated to 0.1.78 (jsc#ECO-3319)
  - Enable SCE content for problematic rules that can traverse the whole filesystem
  - Remove unnecessary Jinja2 macros in control files
  - Update RHEL 8 STIG to V2R4 and RHEL 9 STIG to V2R5
  - Add Debian 13 profile for ANSSI BP 28 (enhanced)
  - Create SLEM5 General profile
  - Create SL Micro 6 product and general profile
  - Update SLE15 STIG version to V2R5
  - Update SLE12 STIG version to V3R3
  - Update SLEM5 STIG version to V1R2
- Remove the cis profiles from all products</changelog>
  <changelog author="Boychev &lt;svetlin.boychev@suse.com&gt;" date="1765886400">- updated to 0.1.79 (jsc#ECO-3319)
  - Add rhcos4 Profile for BSI Grundschutz
  - Create SLE15 general profile
  - Fix crypto policy settings in RHEL CIS profiles
  - Remove deprecated CIS OpenShift 1.4.0 and 1.5.0 profiles
  - Remove OCP STIG V1R1
  - Remove OCP STIG V2R1
  - Various updates for SLE 12/15</changelog>
  <changelog author="Boychev &lt;svetlin.boychev@suse.com&gt;" date="1773230400">- updated to 0.1.80 (jsc#ECO-3319)
  - Create SLE16 HIPAA profile
  - Create SLE16 PCI DSS 4 profile
  - Use Sequoia in RHEL 10 instead of GPG
  - New Profile for RHEL10: BSI
  - Move RHEL Control files to product files
  - Update RHEL 9 CCN profile
  - Various updates for SLE 12/15</changelog>
  <changelog author="Boychev &lt;svetlin.boychev@suse.com&gt;" date="1773230401">- Add SLE16 profiles to the build</changelog>
  <changelog author="Boychev &lt;svetlin.boychev@suse.com&gt;" date="1773230402">- Update the SSG package description</changelog>
  <changelog author="Boychev &lt;svetlin.boychev@suse.com&gt;" date="1780401600">- updated to 0.1.81 (jsc#ECO-3319)
  - Create SLE16 ANSSI profiles
  - Update SLE15 STIG version to V2R7
  - Update SLE12 STIG version to V3R5
  - Update SLEM5 STIG version to V1R3
  - Add Claude Code skills for content development workflows
  - Create Claude Skill for creating new products
  - Various updates for SLE 12/15</changelog>
  <changelog author="Boychev &lt;svetlin.boychev@suse.com&gt;" date="1780401601">- Add Hummingbird product support</changelog>
</package>
<package pkgid="149d5cb02ff4748158e347b0f73334b37a1711e043948ccf00a1bc9e93ad9a304bebc33172957cdd504e89bd45e6f72491c94056bc10a70dbefb1a68bd3bc17c" name="scap-security-guide-debian" arch="noarch">
  <version epoch="0" ver="0.1.81" rel="160.1"/>
  <changelog author="Rumen Chikov &lt;rumen.chikov@suse.com&gt;" date="1741089600">- removed ssg-reproducable.patch: upstream</changelog>
  <changelog author="Rumen Chikov &lt;rumen.chikov@suse.com&gt;" date="1741089601">- added build support for almalinux9</changelog>
  <changelog author="Rumen Chikov &lt;rumen.chikov@suse.com&gt;" date="1741176000">- updates redhat package to include almalinux9 builds</changelog>
  <changelog author="Rumen Chikov &lt;rumen.chikov@suse.com&gt;" date="1741176001">- fix a bug in redhad package description for almalinux9 builds</changelog>
  <changelog author="Rumen Chikov &lt;rumen.chikov@suse.com&gt;" date="1741176002">- removed tables reference related to almalinux9 builds</changelog>
  <changelog author="Rumen Chikov &lt;rumen.chikov@suse.com&gt;" date="1741694400">- creation of a new request</changelog>
  <changelog author="Shawn Dunn &lt;sfalken@opensuse.org&gt;" date="1742644800">- Add -DCMAKE_POLICY_VERSION_MINIMUM=3.5 to fix FTBFS with cmake4
- Remove Group: declarations, no longer used</changelog>
  <changelog author="Marcus Meissner &lt;meissner@suse.com&gt;" date="1742731200">- ssg-fix-python.patch: fix build with older python3.</changelog>
  <changelog author="Rumen Chikov &lt;rumen.chikov@suse.com&gt;" date="1749729600">- updated to 0.1.77 (jsc#ECO-3319)
  - Introduce Architecture Decisions Records
  - Move stablization to the third Monday of the second month
  - Remove CCI References
  - Remove macOS content
- removed ssg-fix-python.patch: upstream
- Added support for tencentos4</changelog>
  <changelog author="Marcus Meissner &lt;meissner@suse.com&gt;" date="1750766400">- buildrequire cmake3 on older SLES versions for build</changelog>
  <changelog author="Boychev &lt;svetlin.boychev@suse.com&gt;" date="1753876800">- ssg-remove-cis.patch: remove cis profiles
- Update description: remove cis profiles</changelog>
  <changelog author="Boychev &lt;svetlin.boychev@suse.com&gt;" date="1755777600">- Remove ssg-remove-cis.patch: tarball
- Add check if cis profiles exists in the tarball</changelog>
  <changelog author="Boychev &lt;svetlin.boychev@suse.com&gt;" date="1755777601">- Remove the cis profiles from the tarball</changelog>
  <changelog author="Boychev &lt;svetlin.boychev@suse.com&gt;" date="1759147200">- updated to 0.1.78 (jsc#ECO-3319)
  - Enable SCE content for problematic rules that can traverse the whole filesystem
  - Remove unnecessary Jinja2 macros in control files
  - Update RHEL 8 STIG to V2R4 and RHEL 9 STIG to V2R5
  - Add Debian 13 profile for ANSSI BP 28 (enhanced)
  - Create SLEM5 General profile
  - Create SL Micro 6 product and general profile
  - Update SLE15 STIG version to V2R5
  - Update SLE12 STIG version to V3R3
  - Update SLEM5 STIG version to V1R2
- Remove the cis profiles from all products</changelog>
  <changelog author="Boychev &lt;svetlin.boychev@suse.com&gt;" date="1765886400">- updated to 0.1.79 (jsc#ECO-3319)
  - Add rhcos4 Profile for BSI Grundschutz
  - Create SLE15 general profile
  - Fix crypto policy settings in RHEL CIS profiles
  - Remove deprecated CIS OpenShift 1.4.0 and 1.5.0 profiles
  - Remove OCP STIG V1R1
  - Remove OCP STIG V2R1
  - Various updates for SLE 12/15</changelog>
  <changelog author="Boychev &lt;svetlin.boychev@suse.com&gt;" date="1773230400">- updated to 0.1.80 (jsc#ECO-3319)
  - Create SLE16 HIPAA profile
  - Create SLE16 PCI DSS 4 profile
  - Use Sequoia in RHEL 10 instead of GPG
  - New Profile for RHEL10: BSI
  - Move RHEL Control files to product files
  - Update RHEL 9 CCN profile
  - Various updates for SLE 12/15</changelog>
  <changelog author="Boychev &lt;svetlin.boychev@suse.com&gt;" date="1773230401">- Add SLE16 profiles to the build</changelog>
  <changelog author="Boychev &lt;svetlin.boychev@suse.com&gt;" date="1773230402">- Update the SSG package description</changelog>
  <changelog author="Boychev &lt;svetlin.boychev@suse.com&gt;" date="1780401600">- updated to 0.1.81 (jsc#ECO-3319)
  - Create SLE16 ANSSI profiles
  - Update SLE15 STIG version to V2R7
  - Update SLE12 STIG version to V3R5
  - Update SLEM5 STIG version to V1R3
  - Add Claude Code skills for content development workflows
  - Create Claude Skill for creating new products
  - Various updates for SLE 12/15</changelog>
  <changelog author="Boychev &lt;svetlin.boychev@suse.com&gt;" date="1780401601">- Add Hummingbird product support</changelog>
</package>
<package pkgid="561551911ba69fc940c39a55ca9160c5dc57161f3909cb6369c43260fb38b405ffdef8407202b5475ebe210b6adced6197b47d5a977b85d6ddcec49c722ed5dd" name="scap-security-guide-redhat" arch="noarch">
  <version epoch="0" ver="0.1.81" rel="160.1"/>
  <changelog author="Rumen Chikov &lt;rumen.chikov@suse.com&gt;" date="1741089600">- removed ssg-reproducable.patch: upstream</changelog>
  <changelog author="Rumen Chikov &lt;rumen.chikov@suse.com&gt;" date="1741089601">- added build support for almalinux9</changelog>
  <changelog author="Rumen Chikov &lt;rumen.chikov@suse.com&gt;" date="1741176000">- updates redhat package to include almalinux9 builds</changelog>
  <changelog author="Rumen Chikov &lt;rumen.chikov@suse.com&gt;" date="1741176001">- fix a bug in redhad package description for almalinux9 builds</changelog>
  <changelog author="Rumen Chikov &lt;rumen.chikov@suse.com&gt;" date="1741176002">- removed tables reference related to almalinux9 builds</changelog>
  <changelog author="Rumen Chikov &lt;rumen.chikov@suse.com&gt;" date="1741694400">- creation of a new request</changelog>
  <changelog author="Shawn Dunn &lt;sfalken@opensuse.org&gt;" date="1742644800">- Add -DCMAKE_POLICY_VERSION_MINIMUM=3.5 to fix FTBFS with cmake4
- Remove Group: declarations, no longer used</changelog>
  <changelog author="Marcus Meissner &lt;meissner@suse.com&gt;" date="1742731200">- ssg-fix-python.patch: fix build with older python3.</changelog>
  <changelog author="Rumen Chikov &lt;rumen.chikov@suse.com&gt;" date="1749729600">- updated to 0.1.77 (jsc#ECO-3319)
  - Introduce Architecture Decisions Records
  - Move stablization to the third Monday of the second month
  - Remove CCI References
  - Remove macOS content
- removed ssg-fix-python.patch: upstream
- Added support for tencentos4</changelog>
  <changelog author="Marcus Meissner &lt;meissner@suse.com&gt;" date="1750766400">- buildrequire cmake3 on older SLES versions for build</changelog>
  <changelog author="Boychev &lt;svetlin.boychev@suse.com&gt;" date="1753876800">- ssg-remove-cis.patch: remove cis profiles
- Update description: remove cis profiles</changelog>
  <changelog author="Boychev &lt;svetlin.boychev@suse.com&gt;" date="1755777600">- Remove ssg-remove-cis.patch: tarball
- Add check if cis profiles exists in the tarball</changelog>
  <changelog author="Boychev &lt;svetlin.boychev@suse.com&gt;" date="1755777601">- Remove the cis profiles from the tarball</changelog>
  <changelog author="Boychev &lt;svetlin.boychev@suse.com&gt;" date="1759147200">- updated to 0.1.78 (jsc#ECO-3319)
  - Enable SCE content for problematic rules that can traverse the whole filesystem
  - Remove unnecessary Jinja2 macros in control files
  - Update RHEL 8 STIG to V2R4 and RHEL 9 STIG to V2R5
  - Add Debian 13 profile for ANSSI BP 28 (enhanced)
  - Create SLEM5 General profile
  - Create SL Micro 6 product and general profile
  - Update SLE15 STIG version to V2R5
  - Update SLE12 STIG version to V3R3
  - Update SLEM5 STIG version to V1R2
- Remove the cis profiles from all products</changelog>
  <changelog author="Boychev &lt;svetlin.boychev@suse.com&gt;" date="1765886400">- updated to 0.1.79 (jsc#ECO-3319)
  - Add rhcos4 Profile for BSI Grundschutz
  - Create SLE15 general profile
  - Fix crypto policy settings in RHEL CIS profiles
  - Remove deprecated CIS OpenShift 1.4.0 and 1.5.0 profiles
  - Remove OCP STIG V1R1
  - Remove OCP STIG V2R1
  - Various updates for SLE 12/15</changelog>
  <changelog author="Boychev &lt;svetlin.boychev@suse.com&gt;" date="1773230400">- updated to 0.1.80 (jsc#ECO-3319)
  - Create SLE16 HIPAA profile
  - Create SLE16 PCI DSS 4 profile
  - Use Sequoia in RHEL 10 instead of GPG
  - New Profile for RHEL10: BSI
  - Move RHEL Control files to product files
  - Update RHEL 9 CCN profile
  - Various updates for SLE 12/15</changelog>
  <changelog author="Boychev &lt;svetlin.boychev@suse.com&gt;" date="1773230401">- Add SLE16 profiles to the build</changelog>
  <changelog author="Boychev &lt;svetlin.boychev@suse.com&gt;" date="1773230402">- Update the SSG package description</changelog>
  <changelog author="Boychev &lt;svetlin.boychev@suse.com&gt;" date="1780401600">- updated to 0.1.81 (jsc#ECO-3319)
  - Create SLE16 ANSSI profiles
  - Update SLE15 STIG version to V2R7
  - Update SLE12 STIG version to V3R5
  - Update SLEM5 STIG version to V1R3
  - Add Claude Code skills for content development workflows
  - Create Claude Skill for creating new products
  - Various updates for SLE 12/15</changelog>
  <changelog author="Boychev &lt;svetlin.boychev@suse.com&gt;" date="1780401601">- Add Hummingbird product support</changelog>
</package>
<package pkgid="2c578f0c1edc2207c19ec2eac57092fb91cdc3df73fc1294c9ea01f2f7864702d07a45ba0d77433ebd07c467ca28577d219ab565df4714578fd8f3e33206a2c4" name="scap-security-guide-ubuntu" arch="noarch">
  <version epoch="0" ver="0.1.81" rel="160.1"/>
  <changelog author="Rumen Chikov &lt;rumen.chikov@suse.com&gt;" date="1741089600">- removed ssg-reproducable.patch: upstream</changelog>
  <changelog author="Rumen Chikov &lt;rumen.chikov@suse.com&gt;" date="1741089601">- added build support for almalinux9</changelog>
  <changelog author="Rumen Chikov &lt;rumen.chikov@suse.com&gt;" date="1741176000">- updates redhat package to include almalinux9 builds</changelog>
  <changelog author="Rumen Chikov &lt;rumen.chikov@suse.com&gt;" date="1741176001">- fix a bug in redhad package description for almalinux9 builds</changelog>
  <changelog author="Rumen Chikov &lt;rumen.chikov@suse.com&gt;" date="1741176002">- removed tables reference related to almalinux9 builds</changelog>
  <changelog author="Rumen Chikov &lt;rumen.chikov@suse.com&gt;" date="1741694400">- creation of a new request</changelog>
  <changelog author="Shawn Dunn &lt;sfalken@opensuse.org&gt;" date="1742644800">- Add -DCMAKE_POLICY_VERSION_MINIMUM=3.5 to fix FTBFS with cmake4
- Remove Group: declarations, no longer used</changelog>
  <changelog author="Marcus Meissner &lt;meissner@suse.com&gt;" date="1742731200">- ssg-fix-python.patch: fix build with older python3.</changelog>
  <changelog author="Rumen Chikov &lt;rumen.chikov@suse.com&gt;" date="1749729600">- updated to 0.1.77 (jsc#ECO-3319)
  - Introduce Architecture Decisions Records
  - Move stablization to the third Monday of the second month
  - Remove CCI References
  - Remove macOS content
- removed ssg-fix-python.patch: upstream
- Added support for tencentos4</changelog>
  <changelog author="Marcus Meissner &lt;meissner@suse.com&gt;" date="1750766400">- buildrequire cmake3 on older SLES versions for build</changelog>
  <changelog author="Boychev &lt;svetlin.boychev@suse.com&gt;" date="1753876800">- ssg-remove-cis.patch: remove cis profiles
- Update description: remove cis profiles</changelog>
  <changelog author="Boychev &lt;svetlin.boychev@suse.com&gt;" date="1755777600">- Remove ssg-remove-cis.patch: tarball
- Add check if cis profiles exists in the tarball</changelog>
  <changelog author="Boychev &lt;svetlin.boychev@suse.com&gt;" date="1755777601">- Remove the cis profiles from the tarball</changelog>
  <changelog author="Boychev &lt;svetlin.boychev@suse.com&gt;" date="1759147200">- updated to 0.1.78 (jsc#ECO-3319)
  - Enable SCE content for problematic rules that can traverse the whole filesystem
  - Remove unnecessary Jinja2 macros in control files
  - Update RHEL 8 STIG to V2R4 and RHEL 9 STIG to V2R5
  - Add Debian 13 profile for ANSSI BP 28 (enhanced)
  - Create SLEM5 General profile
  - Create SL Micro 6 product and general profile
  - Update SLE15 STIG version to V2R5
  - Update SLE12 STIG version to V3R3
  - Update SLEM5 STIG version to V1R2
- Remove the cis profiles from all products</changelog>
  <changelog author="Boychev &lt;svetlin.boychev@suse.com&gt;" date="1765886400">- updated to 0.1.79 (jsc#ECO-3319)
  - Add rhcos4 Profile for BSI Grundschutz
  - Create SLE15 general profile
  - Fix crypto policy settings in RHEL CIS profiles
  - Remove deprecated CIS OpenShift 1.4.0 and 1.5.0 profiles
  - Remove OCP STIG V1R1
  - Remove OCP STIG V2R1
  - Various updates for SLE 12/15</changelog>
  <changelog author="Boychev &lt;svetlin.boychev@suse.com&gt;" date="1773230400">- updated to 0.1.80 (jsc#ECO-3319)
  - Create SLE16 HIPAA profile
  - Create SLE16 PCI DSS 4 profile
  - Use Sequoia in RHEL 10 instead of GPG
  - New Profile for RHEL10: BSI
  - Move RHEL Control files to product files
  - Update RHEL 9 CCN profile
  - Various updates for SLE 12/15</changelog>
  <changelog author="Boychev &lt;svetlin.boychev@suse.com&gt;" date="1773230401">- Add SLE16 profiles to the build</changelog>
  <changelog author="Boychev &lt;svetlin.boychev@suse.com&gt;" date="1773230402">- Update the SSG package description</changelog>
  <changelog author="Boychev &lt;svetlin.boychev@suse.com&gt;" date="1780401600">- updated to 0.1.81 (jsc#ECO-3319)
  - Create SLE16 ANSSI profiles
  - Update SLE15 STIG version to V2R7
  - Update SLE12 STIG version to V3R5
  - Update SLEM5 STIG version to V1R3
  - Add Claude Code skills for content development workflows
  - Create Claude Skill for creating new products
  - Various updates for SLE 12/15</changelog>
  <changelog author="Boychev &lt;svetlin.boychev@suse.com&gt;" date="1780401601">- Add Hummingbird product support</changelog>
</package>
<package pkgid="d69b4aca41cdaafd1f376083f025af48cfda2e90a3104e927d05906c49a8059a3eb688d2307b4fb26188448f51146e7287554873e004a0ca4e142ea29616b162" name="slackdump" arch="src">
  <version epoch="0" ver="3.1.8" rel="3.10"/>
  <changelog author="Dennis Knorr &lt;dennis.knorr@suse.com&gt;" date="1732536000">- Initial package import</changelog>
  <changelog author="dennis.knorr@suse.com" date="1732536001">- Update to version 2.6.0:
  * backport
  * backport auth ui from v3
  * google auth support
  * update auth_ui
  * Include brew installation instructions
  * bump dependencies</changelog>
  <changelog author="Dennis Knorr &lt;dennis.knorr@suse.com&gt;" date="1752667200">- Update to version 3.1.6:
  * fix comments
  * test for #533
  * readme update
  * Bump github.com/go-chi/chi/v5 from 5.2.1 to 5.2.2
  * simplify format.All implementation
  * replace context.Background with t.Context in tests
  * correct typos across multiple files
  * correct typos in a few filenames
  * copilot review
  * test coverage for #521
  * replace unsafe characters in the filename before saving
  * cookie-only authentication
  * Token from Cookie
  * Adding custom HTTP client UA
  * retract v3.1.2
  * exclude freebsd-386 from the build
  * bump deps
  * import tzdata for dumb environments
  * Cleanup
  * update documentation
  * add types table
  * get rid of threadOnly param
  * intermediate step in getting rid of FileID
  * remove html transform stub for later
  * brushing up transform
  * error message update
  * link to GH issue
  * update message counter
  * fix thread-only for archive/convert to dump/view
  * add channel test
  * Thread count test
  * thread-only logic fixes
  * fix database side
  * Thread only
  * add an additional context check to avoid sending anything when context is cancelled
  * add ignoreCopyErrors and enable channel list scrolling
  * disable walk test on windows
  * additional logging for the test
  * windows, whats up
  * copilot CR
  * test for export source
  * skip invalid json and traverse only top level of the channel for the export source
  * doc update
  * skips invalid JSON on dump source
  * skip nested dirs when processing chunk dir
  * add a test for invalid json
  * skip invalid json during direct database conversion
  * treat json errors as warnings
  * Bump golang.org/x/net from 0.37.0 to 0.38.0 (#502)
  * print filename along with the error (#503)
  * Viewer: display userpics from online source (#500)
  * propagate channel topic to the UI (#499)
  * reenable thread scrolling
  * align dms appearance in channel list
  * Add text wrapping on system messages
  * Do basic styling of profile sidebar
  * Tidy up file attachments
  * Progress styling + add placeholder icon
  * source improvements
  * export "source" package
  * Fix renaming residue and remove unused functions
  * Simple tests
  * add a license header template
  * use client.Slack where possible
  * move to using client.Slack, instead of slackdump.Session
  * update todo
  * Pool struct comment
  * value receiver for Result
  * consistency in receivers (Result type)
  * better streaming errors
  * udpate the slack lib to handle string attachment id
  * apply nitpick recommendation of our future overlords out of fear
  * add bare output format
  * brush up client pkg
  * update stream
  * abstract slack.Client away
  * implement simple pool with RR strategy
  * fix tests
  * reuse WithFiles flag
  * implement nodownload flag
  * additional info on conversion
  * fix double json extension for dumps
  * formatter for any source
  * human friendly format error message
  * align error handling and fix to-export converter
  * fix bot messages display in viewer
  * add ToChunk test
  * chunk assy test
  * Fix error values returned from the chunk source
  * modernise
  * basic src2enc tests
  * nit comment from copilot
  * tests + small fixes
  * rename dbproc-&gt;dbase
  * add some dbase tests
  * add dbase tests
  * defer wait to ensure it synchronises even if the error happens
  * mishandled error
  * fix unhandled walk err
  * fix for groups and rename to convertv1
  * cleanup
  * implement source v1 and use the converter
  * conversion v1-&gt;database
  * skip files starting with "." when reading chunk dir
  * Fix for unexpected EOF #468
  * revert conversations test as the concurrency issue is fixed
  * add synchronisation with the generator
  * lax the test expectations
  * Colorful logs (peeked in https://github.com/marcus-crane/khinsider)
  * bump deps (#465)
  * Declutter global flags (#464)
  * File duplicates, resolve user_not_found, etc. (#462)
  * Improve comment a little
  * Add placeholder static folder + fix static server check
  * Resume wizard and parsing of enterprise URLs (#461)
  * spelling checker
  * upgrade htmx
  * Add header block support
  * clear naming for user ID collector
  * channel-users
  * UserBulk Stream method
  * add tests
  * update thread generator to use the client credentials
  * fix stream tests
  * fix chunk tests
  * wire avatar support to src2enc
  * complete source2encoder conversion + resolve inconsistency with thread chunk storage
  * fix premature finalisation on database backend
  * source2encoder
  * universal source to encoder converter
  * reorganisation
  * Tests and cleanup
  * Removing unnecessary storage flags + tests
  * delete state
  * add dump converter tests
  * move dump converter to convert pkg
  * renamerage
  * fix dump source file storage
  * dump converter
  * move source related types into source
  * Attachment support for dump conversion
  * go mod tidy
  * implementing dump conversion
  * Bump golang.org/x/net from 0.35.0 to 0.36.0
  * conversion
  * Add messageRepository_Sorted
  * Fix user sorting for channel users
  * copy files and avatars for chunk-&gt;database
  * on conversion
  * Clean up database source
  * Fix typo in README.md: s/::/:/
  * update encoder
  * conversion to database format
  * add repository tests
  * Fix V_LATEST_THREAD
  * implement database-&gt;chunk archive conversion
  * chunk reconstruction
  * channel users for db source
  * Stabilise
  * migrate from control.NewDir
  * directory encoder
  * add tests and remove old directory search
  * search controller
  * add todo
  * more control tests
  * rename db_control to control
  * more control tests
  * bb codeql
  * i wish you weren't so fucken special, windows
  * force add database assets
  * more control tests
  * remove residual field
  * control tests
  * control workers tests
  * add control processors tests
  * add some tests
  * tailor controller for resume, + simplify and doc
  * database resume
  * bump sqlite version
  * network retry with context and WAL mode
  * Dealing with concurerncy here, stand back
  * make linter happier
  * make linter happier
  * prepare to replace the dump controller
  * cleanup
  * Unify dump converter, partial.
  * fix the missing parent for the thread in cthreadmessages
  * make codespell happy
  * bump gha go versions
  * fix source detection, add tests, convert dump to universal source
  * align export timezone to slack (America/Los_Angeles)
  * db backend for export
  * Feature parity between db and dir controllers + linter complaints
  * organise controller functions, reusable options
  * errgroup with Context
  * bug fixes and performance optimisation
  * Fix export
  * fix export conversion and viewing
  * variadic chunkID
  * cherrypick changes to file and chunk from i174-multichunk
  * AllMessages to use "Sorted" method
  * universal converter
  * generalising
  * Source updated to use iterators
  * brush up
  * extractiong options
  * more repository tests
  * adding tests
  * add repo basic fn test
  * cleanup of a duplicate test
  * fix repository tests and channel getter
  * fix subtle bug where half of the SQL statement is ignored :-D
  * user keys, add file columns
  * Implementing workspace and source
  * fix spelling mistakes
  * backport #449
  * implementing sourcer + tests
  * fix repository tests
  * split repository into composable interfaces
  * fix generic tests
  * non-pointer type params
  * tests
  * rename readonly to source.go
  * source skeleton
  * implementing generic getter methods
  * fix database structure
  * add username and displayname fields to users
  * files and avatar download for db target
  * db command and db controller
  * move dbproc under chunk
  * move dbproc under chunk
  * fix marshalling in tests
  * Fix panic in session.Insert
  * Decouple directory storage from search workers
  * rename residue
  * split logically into files
  * decouple worker logic from directory controller
  * experimental flate
  * fix query building
  * sqlite repo, first draft
  * man update
  * Readme update
  * fix fs path:
  * ignore irrelevant json files in dumps #455
  * Bump github.com/go-jose/go-jose/v3 from 3.0.3 to 3.0.4
  * update the test
  * download gifs as gifs
  * better trace init
  * add main tests and conditional env loading
  * set secrets from environment only if instructed
  * Add a 500 error test case for search
  * fix slog debug args
  * fix DMs not downloading when member-only is requested
  * shut up, will you
  * this is starting to get annoying
  * fix spellcheck in all scripts
  * Shell scripts fixes (checkout from v2.6.2)
  * fix last spelling error
  * Spell check results
  * add codespell resource file
  * add spellcheck back from v2
  * Doc update
  * add terminal check into UI
  * ux fixes
  * update transfer doc
  * bump deps
  * add tests for workspace
  * -no-encryption flag
  * update export and dump documentation
  * Courageously run as root, but warn.
  * Add troubleshooting help section and `unzip` command.
  * undeprecate std storage, it`s used by slack-export-viewer
  * add getUsers test
  * Repoint workspace URLs for supported URLs in viewer.
  * fix transform test
  * update quickstart
  * fix arguments test
  * Update docs to reflect the new date format
  * add some tests
  * support just date input instead of requiring dttm
  * process thread message where only parent is returned.
  * Add ErrRetryPlease error to network
  * add msg counter and comments
  * replace users with atomic in converter
  * encrypt parameter parsing
  * fix reversal of messages on thread link and thread link
  * Update quickstart.md to disambiguate login step
  * path check in handler
  * add zip files
  * test coverage for source detection
  * fix source detection
  * disable resume for now
  * resume logic
  * fix time parsing
  * disable resume for now
  * update redownload with the latest fileproc functions
  * fix minor archive issues, deprecate old download formats
  * update naming in file  processor
  * fix writeindex not being able to find channels
  * controller to close the downloaders
  * latest and resume skeleton
  * escape RTSE text
  * controller to close the downloaders
  * latest and resume skeleton
  * fix file tests
  * update chunk visualiser
  * convertor fixes + avatar detection
  * async channel info scan
  * consolidate and organise source reading
  * extract chunk related source functions to chunk pkg
  * move source package to internal/
  * Update converter to support avatars
  * commit progress
  * implement avatar download in export and archive
  * Update documentation to describe machine ID override
  * PR review
  * Machine ID Override
  * Configuration entry for machine ID
  * Update tests
  * custom machine ID
  * fix windows build
  * add slack divider and update tests
  * fix polly messages parsing
  * sort messages
  * thread-only dumps support
  * Change the default listener address for viewer
  * fix typo in readme README.md
  * Add docker deployment workflow
  * Update docker build
  * disable 500-error test on windows due to flaky timing
  * add a flag to record file chunks in archives
  * add canvas test
  * Channel canvas support
  * add EOF network retry test
  * add a long description
  * add redownload tool and treat EOF as retriable error
  * update doc
  * Token patterns fix
  * add test
  * fix file browsing on windows
  * windows hax
  * verbose errors
  * add windows path tests
  * improve shorten logic
  * display current directory
  * Honour rate limit error while streaming Channels
  * define apiconfig exts globally
  * clarify syntax
  * global config file picker expected yaml
  * brush up docs
  * update chunk doc and add quickstart
  * fix downloader test
  * break downloader test
  * Fix tests
  * Commit progress (win)
  * error-&gt;fatal
  * add 5 sec timeout
  * enable debug output
  * implement export hydrator
  * Add docs and "hydrate" tool to hydrate official slack exports with files
  * error-&gt;fatal
  * add 5 sec timeout
  * enable debug output
  * implement export hydrator
  * Add docs and "hydrate" tool to hydrate official slack exports with files
  * dev container
  * fix diag tests
  * Do not close stdout
  * Fix tests on windows
  * fixing windows tests 1
  * remove catalogue check on windows build
  * cmd syntax
  * add windows build
  * add tests
  * change time separator from / to ,
  * fix for windows paths
  * Updating docs
  * add more doc
  * documentation
  * fixing the cookie display and add unwrap to oserr
  * unwrapper for controller error to properly propagate context cancellation
  * startWorkers to initialise internal variables instead of spaghetti
  * fix downloader startup
  * members only + minor fixes
  * bump deps
  * cleanup and comments
  * Search concurrency fixes
  * fix processor test
  * deep clean
  * rip out compatibility mode
  * fix race in network tests
  * update slackauth
  * who's not deferring? me.
  * make playwright init beautiful
  * stop spinner if challenge code is requested in headless flow
  * bumping deps
  * implement #283 in stream
  * graceful handling of empty message slices
  * add last updated to csv output
  * entity list ported + tests
  * rename BrowserAuth to PlaywrightAuth
  * allow to specify BUILD_DATE
  * implement #220 in v3
  * fix mock generation and update tests
  * remove old Makefile entries
  * fix network tests
  * misspelled command names
  * emojis, progress etc.
  * switch renderer to glamour, add emoji long help
  * add legacy emoji dump back, as it is faster
  * emoji on edge
  * rollback emoji test
  * emoji experiment
  * html is hard
  * readme update
  * error handling in WithRetry
  * disable useless tools
  * more uninstall flags
  * man update
  * patch list output display logic
  * fix new enterprise workspace wizardry
  * replace rst to md in goreleaser
  * add macos 15 instructions
  * update readme
  * fix log messages
  * update readme
  * fix links in README
  * finish switching to slog
  * json logging and ironing kinks
  * switch to slog
  * replace image with v3
  * replace README.rst with README.md and update
  * update gitignore
  * move to toml
  * fix tests
  * explicit loadSecrets+some tidying up
  * workspace select
  * workspace selection
  * workspace selection logic
  * use new workspace/new by default
  * move env logic to auth package
  * create CreateAndSelect
  * help update
  * tests
  * workspace-&gt;new fixes
  * dropped into exclusions
  * new workspace wizard
  * token/cookie new auth flow
  * break dep cycle, workspace new
  * unicode-aware capitalisation
  * linter
  * stfu linter
  * brush up listing users and channels
  * list wizardry
  * menu brush up
  * --amend
  * per-menuitem preview
  * Add brew instruction to readme (#351)
  * add archived suffix
  * #324 fix for archived channels
  * update tests and build
  * update file test
  * make a menu bubble
  * picklist conquest
  * search wiz + workspace select fixes
  * search wiz
  * wizard unification
  * add picklist updater
  * cleanup
  * fix spelling
  * spelling
  * add slackauth browser removal
  * login ux
  * add edge tests and use external tagops instead of tagmagic
  * bump deps
  * update slackauth
  * browser selection, rename auth menu items
  * add local export configuration
  * date control help
  * batch commands
  * fix ui glitches
  * more ui
  * wizard model draft
  * Wizard model
  * move updaters to ui pkg
  * wording
  * UI
  * more ui
  * fix tests
  * plug archive runner into wizard
  * fuck you styles
  * ironing time control kinks
  * formatting
  * date-time component
  * time bubble
  * convoluted time entry model
  * rename
  * new file picker
  * move updaters to a separate package
  * some lame tests
  * fix bool updater and cursor movement
  * file picker
  * move under ui
  * configuration ui
  * archive wizard
  * add archive wizard stub
  * add archive wizard stub
  * fix flag name
  * rename -fast to -no-channel-users
  * fix edge userinfo method
  * fixing chunk file channel id collection
  * add fast search option
  * fix count of results not populated for search
  * final filemgr tests, close decompressor
  * more file manager tests
  * fix memory leak in file manager
  * more tests
  * add rpi benchmark
  * add m2 pro benchmark
  * update benchmark
  * for the lulz
  * for the lulz
  * add provider.go
  * add tests, optimise fasttime
  * add build and version to the info tool
  * sane version reporting
  * move session init into bootstrap
  * Adding tests
  * fix google auth
  * auth test update
  * user agent and headless timeout
  * bump deps
  * Force default height/width for videos and allow wide images to stretch across the screen more
  * Add AURTEST target
  * deps bump and osext tests
  * Update README.rst
  * workspace refactor, tests
  * bump slackauth and its deps
  * workspace command code brush up
  * test coverage
  * workspace fixes + new test
  * tests
  * fix auth flow when no workspaces present
  * add "io.Writer" to print functions in list
  * add a shortcut for go run ./cmd/slackdump
  * fix workspace list to use custom cache dir
  * leave a note to look later
  * fix some legit test failures
  * skip more tests
  * bump action versions
  * skip some tests in CI
  * add tests
  * fix -no-user-cache/-no-resolve logic
  * Fix list channels (partially)
  * implement "closing" tags, add color and usergroup support
  * bump go version in CI files
  * bump even further
  * update auth, tools/info, playwright and rod
  * Switch to GITHUB_TOKEN
  * Improvements added, will review locally
  * Github actions version bump
  * More output formats + include man page
  * update docs from v2
  * field functions
  * I'll blow my own bubble with blackjack and hookers
  * update filemgr
  * fix test and spelling
  * show the last error to the user if retry fails
  * emoji model
  * borders for browser
  * file manager
  * config checker ui
  * filepicker
  * move UI under main executable dir
  * central theme for ui components
  * workspace selection wizard
  * use model
  * skip empty messages
  * rename residual record files into archive
  * clarification of search interfaces
  * cut spaghetti into macaroni
  * StreamResult -&gt; Result
  * extract stream into a separate package
  * record-&gt;archive, auth-&gt;workspace
  * aligning edge errors with slack
  * add edge search test
  * tests for initialisation logic
  * add user conversion to experimental search
  * search conversion
  * tests fixes
  * straighten dodgy initialisation logic in Session, remove global logger from network (use context)
  * implementing search all
  * brush up and comment
  * file search
  * move search under controller and init file downloaded that does nothing because there's no files
  * search messages with channel info
  * Optimise limits
  * unify output logic record/search
  * add stream search funcs files and all
  * adding search controller, directory processor and command
  * adding search support
  * fix username display for older users
  * update record doc
  * cosmetic changes
  * update comments
  * dirprocessor tests
  * tracker -&gt; filetracker
  * use join errors
  * split spaghetti and add tests
  * update public key
  * tracker
  * fix the logic error in ref counting
  * simplify recorder, add micros to logger
  * added tracing
  * reogranise and add tests
  * add some missing types
  * update status codes
  * Fix the name display for edge channels
  * default initialisation for the slackdump.Session
  * remove the rest of the fallback logic
  * drop fallback client
  * detect enterprise
  * extract limits to a separate file
  * use edge for conversation info
  * use cursor to paginate the channel search results
  * basic fallback tests
  * cosmetics
  * thread safe fallback
  * add limiter to the search tool
  * search
  * add verbose fallback error message w/type
  * log the fallbacks
  * make tests pass
  * fallback to edge
  * maybe another day.
  * test fixture
  * minor tweaks+client.userBoot endpoint
  * add another call into the edge tool
  * mpim and populating user for dms
  * some more edge apis
  * time parsing
  * moar edge
  * more edge
  * fix edge auth
  * add DMs, but nothing works
  * edge api, add channels search
  * bump go mod
  * optimised export source + message deep links
  * thread deep linking, ignore html errors, css has templating logic
  * deep linking support for channels
  * finish export index tests and fix num_members and members generation
  * index tests + fix dm generation
  * generics
  * add fixtures and fix function names
  * add some tests
  * fix user display in export renders
  * implement file storage
  * file template
  * chunk files
  * attachments
  * add type and support for dark theme
  * add support for dump files
  * export viewing
  * source type detection
  * generalise export implementation
  * first incomplete export source implementation
  * move template funcs
  * decouple chunk.Directory
  * organise data
  * working parser
  * handle context blocks and better error reporting
  * fix unknown message types
  * first draft of the renderer
  * renderer
  * tidy
  * user profile display
  * add user handler
  * viewer.. well, sort of
  * name display
  * fixes for the user display
  * add viewer draft
  * tool info auth
  * fix race condition in converter
  * fix fileproc.IsValid
  * remove accidently committed file
  * fix test
  * port the fileproc.IsValid from master
  * manager tests
  * more verbose info on chunk indexing
  * fixing race condition in the downloader
  * fix hax in mpim parsing
  * minor improvements to entity_list (make it concurrency-safe)
  * Fix ordering of messages in the standard dump
  * update comments in dump
  * bump modules and replace slack-go/slack with rusq/slack
  * fix channel users test
  * siwtch to fork
  * rename -base to -output/-o
  * fix channelinfo
  * align retrieved channel info between v2 and v3
  * bump deps and compare script
  * sundry
  * fix auth tests
  * update slackauth to prevent hangup if the browser download is interrupted
  * legacy-browser flag
  * browser uninstall
  * update dump.sh from master
  * comments and naming
  * sundry
  * notify user when creds expired, instead of just shitting to trace
  * nil pointer fix
  * fix potential issue with closed chunk directory
  * commenting stuff
  * backport emoji flags, and remove app/
  * cache fixes
  * sundry
  * add processLink test
  * fix race conditions
  * get rid of auth.Type
  * v2 -&gt; v3
  * was in master, but not in v3
  * deprioritise headless login
  * add placeholders to prompts
  * correct return codes in record tool
  * move info tools
  * finish the info
  * remove pii from errors
  * corrections for win
  * add info
  * fix funky workspace selection logic
  * export Slacker interface, remove Type form Provider
  * getting back to it
  * documentalise auth
  * update funding from master
  * update from master
  * merge from #260
  * add easter egg
  * LoginCancel
  * wizard choices
  * static menu items defined in the global package scope
  * cleanup
  * better main menu
  * renaming workspace to auth
  * rename "workspace" to "auth"
  * bump deps
  * regenerate files
  * survey -&gt; ui, disable tests as they were using core/terminal
  * survey -&gt; huh, remove v2 app
  * survey -&gt; huh
  * replace input with huh
  * get rid of survey in wizard
  * replace main prompt with huh
  * get rid of v1
  * merge auth from master
  * switch default flow to CLI
  * add rod
  * go.sum update
  * Update playwright sync w/master
  * bump deps and sync issue template with master
  * lowercase workspace name
  * propagate login timeout to workspace command
  * manually merge master and cli-remake changes
  * bump go version
  * update auth from master
  * port network from master (#234)
  * tests and doc
  * test convoluted arg parsing
  * some convoluted parsing of args
  * obfuscation and gpg encryption
  * better input/output detection
  * directory obfuscation
  * implement #202
  * fixing tests
  * file logic and concurrency fuckery
  * channel users chunk
  * #202 channel members
  * doc update: flags
  * initial support for starred and bookmarks
  * add starred and bookmarks to the interface
  * chunk/index cache
  * implement chunk caching
  * channel directory cache
  * add tracing to chunk.FIle
  * race condition
  * rename formatter.Converter to Formatter to avoid confusion
  * parallel channel processing in converter
  * error handling and skipping tombstone files
  * rewrite "writeMessages"
  * code org
  * remove cryptic literals
  * pre-refactor writeMessages
  * converter
  * man update
  * update man page
  * implement convert command
  * move slackdump manual to the root of the project
  * rename convert to format and update man
  * Update chttp
  * implement converter
  * begin work on converter
  * simplify files subprocessor package
  * result func is a property of Stream now + add files support to "record"
  * fix incorrect extension for listings
  * use lightweight markdown renderer and stop using export package
  * make processor external
  * naming
  * recorder
  * some docs and 'record' dummy
  * do not rely on chunks in user processing.
  * use chunkdir in the processor
  * remame ctrl to control
  * controller
  * extract stream controller into a separate package
  * file_id tests
  * fix automatic tests
  * fix config and downloader tests
  * code reogranisation, comments, and brushing up
  * fix file download location and duplicate detection
  * break subproc/downloader hard dep
  * move expproc out of cmd
  * extract file processors to a spearate transform/ package
  * link updater
  * purge the draft version of standard processor
  * introduce chunk.FileID
  * dump transform and some chunk pkg optimisations + tests
  * dump transforms
  * graceful error handling (sort of)
  * threadTS instead of isThread
  * allow for thread finalisation
  * channel info caching
  * threadOnly flag
  * extract file processing
  * brush up
  * continue on error in stream
  * race condition and some other stuff
  * dumpv3 rev 2 draft
  * token updater function
  * extract user related code to a user worker
  * run time measurement
  * propagating the slack channel to Files processor
  * fix chunktest to return all channels
  * auth test from file in the chunktest
  * implement workspace info support in processor and export
  * implement workspace info
  * fix channel transform
  * fix channel streamer
  * retry on 408 error
  * add tracing
  * fix
  * huntin daemons
  * concurrency fuckery
  * testing harness and exportV3 test
  * Fix custom limiter config not applying zero values. Drawback is that the full config is now required.
  * catching edge cases
  * simplify transform
  * my life is so successful, i got everything a man could ever need
  * chunk directory
  * export transformer
  * some stardartisation of interfaces
  * deprecate v1 downloader
  * scaffolding in v1 downloader around v2, fix tests (partly)
  * generalise downloader
  * bump dependencies
  * docker stuff
  * diagram update
  * open chunk file wronly
  * files download
  * filter external files #206
  * onFiles processor function
  * Someone forgot to close the fsa.  Who that was is not important.
  * count channel references to avoid premature closure
  * transform in a goroutine + tracing to catch the race condition
  * wonky users logic
  * replace literal with const
  * split player and chunk file
  * load users if necessary in transform
  * transform to export messages
  * context and asc/desc control
  * context and tracing
  * export transform
  * fix tests and minor things
  * []string -&gt; []int64
  * prior to index opt
  * Player.Sorted - returns messages in a chronological order
  * time logic
  * align adapter naming across filed
  * ensure all adapters are closed
  * use the built-in silent progress bar in case of debugging
  * close adapter in list
  * some cosmetic and usability changes
  * api cleanup
  * refactor the way we handle config
  * remove implicit fs logic from slackdump
  * externalise user cache
  * bump deps
  * extract stream functions from clienter
  * progress bar and fix race condition
  * move finalising logic to processor
  * extract conversations worker into a separate function
  * fix some inconsistent signatures and debug messages wording
  * v3 export diagram
  * export chunk compression
  * v3 export processor and streamer
  * get concurrency right (that fucking errorsx)
  * automatic switching of the files
  * export processor and last message
  * reorganise stream.go
  * results
  * retry on channel info
  * organise goroutines init
  * user cache tests
  * fix player race condition
  * fixing stream test
  * extract processing in standalone funcs
  * brush up threads/channels
  * remove emoji.Dl
  * fix filesystem corruption on emoji download
  * comment update
  * rollback downloader changes - regressed
  * fix parallel processing
  * async stream
  * export v3 early draft
  * swap Conversations parameters
  * first draft
  * move fetch to the chunks/transform
  * lazy user caching
  * use atomic.Bool in downloader
  * skip hidden_by_limit files
  * global timeframe parameters
  * remove version reporting from v1 command
  * better State and Stream API
  * conversation list and user list test server methods
  * one team one dump
  * remove team info
  * add users channels and team.info chunks
  * user streaming
  * optimise modules
  * unify formatters between v2 and v3
  * add description for tools
  * remove redundant namer
  * async transform
  * add description for tools
  * move nametmpl and account for no files in transformer
  * cleanup auth
  * finish dump (tests and optimisation needed)
  * incorporate channel_info throughout the streaming funcs
  * update obfuscation
  * add channel_info
  * rename diag to tools
  * browser auth fix for changed slack auth api
  * correct the file directory name and dedup
  * add tmp/Makefile
  * off by one fix
  * where did that file go?
  * give the test streaming server some love
  * rename events to chunks to avoid confusion with slack events
  * context handling and event timestamp everywhere
  * update deps
  * make state main repository for the saved event during dump
  * transforms
  * about fucking time this shit finally does something
  * rename processors to event
  * move fsadapter into a separate repo
  * brushing up
  * shorten event JSON field name
  * add filename variable to the State
  * state and tests
  * default to standard export format
  * simplify thread check condition
  * event iterator
  * make record stats tool a bit friendlier
  * fix redundant thread calls and a bunch of bugs
  * simplify player
  * recorder tests
  * obfuscate tests
  * add event recording diag command
  * obfuscator
  * account for channel_id in requests
  * tidy
  * add trace and raise test limits
  * fix parameter parsing in test server
  * replay server
  * player draft
  * event recorder
  * add a closer
  * processor draft
  * add workaround for node not being executable
  * cleanup generators and chttp update
  * extract chttp to github.com/rusq/chttp
  * []http.Cookie -&gt; []*http.Cookie
  * cleanup chttp
  * use OptionHTTPClient to propagate client with cookies
  * align channel and user cache flags and document them
  * restore help command (regressed in 78ea432)
  * better list commands logic
  * add openLogger and openFS tests
  * replace the discarding silent logger with noop logger
  * reduce wait time for network test
  * remove Logger from slackdump.Config
  * add comments on the auth/browser/client
  * add comments to fsadapter
  * fixes after rebase
  * fs logic refactoring
  * regenerate mockfs
  * fs logic refactoring
  * get rid of UserIndex
  * options -&gt; config rename
  * options -&gt; config
  * organise cache options
  * channel test functions
  * move dump back to dump
  * Goreleaser
  * add schema.json for api config files
  * move ui package from app into top level internal
  * remove pre-rendering of the markdown
  * move dump to list convo
  * streamline range and add confirm help
  * some tests and better ui.Time logic
  * prepare for manager rigging in tests
  * export wizard
  * date input
  * move relevant ui functions to corresponding packages
  * add list convo alias for dump
  * comments and some logic improvement
  * unify listing formatters
  * better list behaviour
  * make list actually list, not save json
  * emoji wizard update
  * update slack lib (fork)
  * finish config tests
  * config check wizard
  * ui.FileSelector logic and tests
  * overwrite test
  * some ui tests
  * fix wizard error handling and config new wizard
  * "config new" tests
  * extract writeLimits from apiconfig.runNew and add tests
  * fix config tags
  * extract encio to a separate package
  * do not remove thirdparty cookies
  * finish user cache routines and use them in the converter
  * extract user cache into separate files
  * rename appauth =&gt; cache
  * fix auth test
  * rename mock_app =&gt; mock_appauth
  * rework how auth options work + add browser flag
  * cleanup
  * add csv formatter
  * converter
  * converter, list, fsadapter changes
  * format help for workspace
  * finish-ish dump
  * extract template logic into a separate package
  * take on dump
  * refactor Options
  * dump command help
  * finish validation, emoji wizard, fix cache dir
  * modify Run funcs to return an error
  * workspace management (continued)
  * workspace logic
  * deprecate initauth
  * workspace management
  * add thread util and unify help for custom and non-custom flags
  * remove custom flag parsing
  * diagnostics
  * workspace management and auth
  * wizard
  * add man
  * complete the skeleton of new cmdline
  * use parts of go internals to recreate command functionality
  * add command map
  * interactive
  * commit progress</changelog>
  <changelog author="Dennis Knorr &lt;dennis.knorr@suse.com&gt;" date="1762171200">- Update to version 3.1.8:
  * add a standard storage test
  * Rollback changes to standard fs from #522
  * tidy
  * bump deps
  * optimise checks, again
  * Add RunNoTransform test
  * disable transformer in the archive mode
  * seconds is seconds
  * fix for slow threads #543
  * Update cmd/slackdump/internal/workspace/assets/new.md
  * add enterprise steps to workspace new doc
  * Quick fix for list commands not having YesMan flag enabled
  * fix for AskOverwrite on dumb terminals
  * copilot CR
  * fix spelling
  * flags flags review
  * ask before overwriting
  * Common AskOverwrite function
  * Document how to run from a repo checkout
  * clarifying on src2enc logic</changelog>
</package>
<package pkgid="6dfae79d863d79fedf0d31f18d04e2bd7cc7bdacaa42339775bdfa06c5112bab9caa9b3510ae920f3cc494610930f35f803c832257fb9c02eb4f35563919b15e" name="slackdump" arch="x86_64">
  <version epoch="0" ver="3.1.8" rel="3.10"/>
  <changelog author="Dennis Knorr &lt;dennis.knorr@suse.com&gt;" date="1732536000">- Initial package import</changelog>
  <changelog author="dennis.knorr@suse.com" date="1732536001">- Update to version 2.6.0:
  * backport
  * backport auth ui from v3
  * google auth support
  * update auth_ui
  * Include brew installation instructions
  * bump dependencies</changelog>
  <changelog author="Dennis Knorr &lt;dennis.knorr@suse.com&gt;" date="1752667200">- Update to version 3.1.6:
  * fix comments
  * test for #533
  * readme update
  * Bump github.com/go-chi/chi/v5 from 5.2.1 to 5.2.2
  * simplify format.All implementation
  * replace context.Background with t.Context in tests
  * correct typos across multiple files
  * correct typos in a few filenames
  * copilot review
  * test coverage for #521
  * replace unsafe characters in the filename before saving
  * cookie-only authentication
  * Token from Cookie
  * Adding custom HTTP client UA
  * retract v3.1.2
  * exclude freebsd-386 from the build
  * bump deps
  * import tzdata for dumb environments
  * Cleanup
  * update documentation
  * add types table
  * get rid of threadOnly param
  * intermediate step in getting rid of FileID
  * remove html transform stub for later
  * brushing up transform
  * error message update
  * link to GH issue
  * update message counter
  * fix thread-only for archive/convert to dump/view
  * add channel test
  * Thread count test
  * thread-only logic fixes
  * fix database side
  * Thread only
  * add an additional context check to avoid sending anything when context is cancelled
  * add ignoreCopyErrors and enable channel list scrolling
  * disable walk test on windows
  * additional logging for the test
  * windows, whats up
  * copilot CR
  * test for export source
  * skip invalid json and traverse only top level of the channel for the export source
  * doc update
  * skips invalid JSON on dump source
  * skip nested dirs when processing chunk dir
  * add a test for invalid json
  * skip invalid json during direct database conversion
  * treat json errors as warnings
  * Bump golang.org/x/net from 0.37.0 to 0.38.0 (#502)
  * print filename along with the error (#503)
  * Viewer: display userpics from online source (#500)
  * propagate channel topic to the UI (#499)
  * reenable thread scrolling
  * align dms appearance in channel list
  * Add text wrapping on system messages
  * Do basic styling of profile sidebar
  * Tidy up file attachments
  * Progress styling + add placeholder icon
  * source improvements
  * export "source" package
  * Fix renaming residue and remove unused functions
  * Simple tests
  * add a license header template
  * use client.Slack where possible
  * move to using client.Slack, instead of slackdump.Session
  * update todo
  * Pool struct comment
  * value receiver for Result
  * consistency in receivers (Result type)
  * better streaming errors
  * udpate the slack lib to handle string attachment id
  * apply nitpick recommendation of our future overlords out of fear
  * add bare output format
  * brush up client pkg
  * update stream
  * abstract slack.Client away
  * implement simple pool with RR strategy
  * fix tests
  * reuse WithFiles flag
  * implement nodownload flag
  * additional info on conversion
  * fix double json extension for dumps
  * formatter for any source
  * human friendly format error message
  * align error handling and fix to-export converter
  * fix bot messages display in viewer
  * add ToChunk test
  * chunk assy test
  * Fix error values returned from the chunk source
  * modernise
  * basic src2enc tests
  * nit comment from copilot
  * tests + small fixes
  * rename dbproc-&gt;dbase
  * add some dbase tests
  * add dbase tests
  * defer wait to ensure it synchronises even if the error happens
  * mishandled error
  * fix unhandled walk err
  * fix for groups and rename to convertv1
  * cleanup
  * implement source v1 and use the converter
  * conversion v1-&gt;database
  * skip files starting with "." when reading chunk dir
  * Fix for unexpected EOF #468
  * revert conversations test as the concurrency issue is fixed
  * add synchronisation with the generator
  * lax the test expectations
  * Colorful logs (peeked in https://github.com/marcus-crane/khinsider)
  * bump deps (#465)
  * Declutter global flags (#464)
  * File duplicates, resolve user_not_found, etc. (#462)
  * Improve comment a little
  * Add placeholder static folder + fix static server check
  * Resume wizard and parsing of enterprise URLs (#461)
  * spelling checker
  * upgrade htmx
  * Add header block support
  * clear naming for user ID collector
  * channel-users
  * UserBulk Stream method
  * add tests
  * update thread generator to use the client credentials
  * fix stream tests
  * fix chunk tests
  * wire avatar support to src2enc
  * complete source2encoder conversion + resolve inconsistency with thread chunk storage
  * fix premature finalisation on database backend
  * source2encoder
  * universal source to encoder converter
  * reorganisation
  * Tests and cleanup
  * Removing unnecessary storage flags + tests
  * delete state
  * add dump converter tests
  * move dump converter to convert pkg
  * renamerage
  * fix dump source file storage
  * dump converter
  * move source related types into source
  * Attachment support for dump conversion
  * go mod tidy
  * implementing dump conversion
  * Bump golang.org/x/net from 0.35.0 to 0.36.0
  * conversion
  * Add messageRepository_Sorted
  * Fix user sorting for channel users
  * copy files and avatars for chunk-&gt;database
  * on conversion
  * Clean up database source
  * Fix typo in README.md: s/::/:/
  * update encoder
  * conversion to database format
  * add repository tests
  * Fix V_LATEST_THREAD
  * implement database-&gt;chunk archive conversion
  * chunk reconstruction
  * channel users for db source
  * Stabilise
  * migrate from control.NewDir
  * directory encoder
  * add tests and remove old directory search
  * search controller
  * add todo
  * more control tests
  * rename db_control to control
  * more control tests
  * bb codeql
  * i wish you weren't so fucken special, windows
  * force add database assets
  * more control tests
  * remove residual field
  * control tests
  * control workers tests
  * add control processors tests
  * add some tests
  * tailor controller for resume, + simplify and doc
  * database resume
  * bump sqlite version
  * network retry with context and WAL mode
  * Dealing with concurerncy here, stand back
  * make linter happier
  * make linter happier
  * prepare to replace the dump controller
  * cleanup
  * Unify dump converter, partial.
  * fix the missing parent for the thread in cthreadmessages
  * make codespell happy
  * bump gha go versions
  * fix source detection, add tests, convert dump to universal source
  * align export timezone to slack (America/Los_Angeles)
  * db backend for export
  * Feature parity between db and dir controllers + linter complaints
  * organise controller functions, reusable options
  * errgroup with Context
  * bug fixes and performance optimisation
  * Fix export
  * fix export conversion and viewing
  * variadic chunkID
  * cherrypick changes to file and chunk from i174-multichunk
  * AllMessages to use "Sorted" method
  * universal converter
  * generalising
  * Source updated to use iterators
  * brush up
  * extractiong options
  * more repository tests
  * adding tests
  * add repo basic fn test
  * cleanup of a duplicate test
  * fix repository tests and channel getter
  * fix subtle bug where half of the SQL statement is ignored :-D
  * user keys, add file columns
  * Implementing workspace and source
  * fix spelling mistakes
  * backport #449
  * implementing sourcer + tests
  * fix repository tests
  * split repository into composable interfaces
  * fix generic tests
  * non-pointer type params
  * tests
  * rename readonly to source.go
  * source skeleton
  * implementing generic getter methods
  * fix database structure
  * add username and displayname fields to users
  * files and avatar download for db target
  * db command and db controller
  * move dbproc under chunk
  * move dbproc under chunk
  * fix marshalling in tests
  * Fix panic in session.Insert
  * Decouple directory storage from search workers
  * rename residue
  * split logically into files
  * decouple worker logic from directory controller
  * experimental flate
  * fix query building
  * sqlite repo, first draft
  * man update
  * Readme update
  * fix fs path:
  * ignore irrelevant json files in dumps #455
  * Bump github.com/go-jose/go-jose/v3 from 3.0.3 to 3.0.4
  * update the test
  * download gifs as gifs
  * better trace init
  * add main tests and conditional env loading
  * set secrets from environment only if instructed
  * Add a 500 error test case for search
  * fix slog debug args
  * fix DMs not downloading when member-only is requested
  * shut up, will you
  * this is starting to get annoying
  * fix spellcheck in all scripts
  * Shell scripts fixes (checkout from v2.6.2)
  * fix last spelling error
  * Spell check results
  * add codespell resource file
  * add spellcheck back from v2
  * Doc update
  * add terminal check into UI
  * ux fixes
  * update transfer doc
  * bump deps
  * add tests for workspace
  * -no-encryption flag
  * update export and dump documentation
  * Courageously run as root, but warn.
  * Add troubleshooting help section and `unzip` command.
  * undeprecate std storage, it`s used by slack-export-viewer
  * add getUsers test
  * Repoint workspace URLs for supported URLs in viewer.
  * fix transform test
  * update quickstart
  * fix arguments test
  * Update docs to reflect the new date format
  * add some tests
  * support just date input instead of requiring dttm
  * process thread message where only parent is returned.
  * Add ErrRetryPlease error to network
  * add msg counter and comments
  * replace users with atomic in converter
  * encrypt parameter parsing
  * fix reversal of messages on thread link and thread link
  * Update quickstart.md to disambiguate login step
  * path check in handler
  * add zip files
  * test coverage for source detection
  * fix source detection
  * disable resume for now
  * resume logic
  * fix time parsing
  * disable resume for now
  * update redownload with the latest fileproc functions
  * fix minor archive issues, deprecate old download formats
  * update naming in file  processor
  * fix writeindex not being able to find channels
  * controller to close the downloaders
  * latest and resume skeleton
  * escape RTSE text
  * controller to close the downloaders
  * latest and resume skeleton
  * fix file tests
  * update chunk visualiser
  * convertor fixes + avatar detection
  * async channel info scan
  * consolidate and organise source reading
  * extract chunk related source functions to chunk pkg
  * move source package to internal/
  * Update converter to support avatars
  * commit progress
  * implement avatar download in export and archive
  * Update documentation to describe machine ID override
  * PR review
  * Machine ID Override
  * Configuration entry for machine ID
  * Update tests
  * custom machine ID
  * fix windows build
  * add slack divider and update tests
  * fix polly messages parsing
  * sort messages
  * thread-only dumps support
  * Change the default listener address for viewer
  * fix typo in readme README.md
  * Add docker deployment workflow
  * Update docker build
  * disable 500-error test on windows due to flaky timing
  * add a flag to record file chunks in archives
  * add canvas test
  * Channel canvas support
  * add EOF network retry test
  * add a long description
  * add redownload tool and treat EOF as retriable error
  * update doc
  * Token patterns fix
  * add test
  * fix file browsing on windows
  * windows hax
  * verbose errors
  * add windows path tests
  * improve shorten logic
  * display current directory
  * Honour rate limit error while streaming Channels
  * define apiconfig exts globally
  * clarify syntax
  * global config file picker expected yaml
  * brush up docs
  * update chunk doc and add quickstart
  * fix downloader test
  * break downloader test
  * Fix tests
  * Commit progress (win)
  * error-&gt;fatal
  * add 5 sec timeout
  * enable debug output
  * implement export hydrator
  * Add docs and "hydrate" tool to hydrate official slack exports with files
  * error-&gt;fatal
  * add 5 sec timeout
  * enable debug output
  * implement export hydrator
  * Add docs and "hydrate" tool to hydrate official slack exports with files
  * dev container
  * fix diag tests
  * Do not close stdout
  * Fix tests on windows
  * fixing windows tests 1
  * remove catalogue check on windows build
  * cmd syntax
  * add windows build
  * add tests
  * change time separator from / to ,
  * fix for windows paths
  * Updating docs
  * add more doc
  * documentation
  * fixing the cookie display and add unwrap to oserr
  * unwrapper for controller error to properly propagate context cancellation
  * startWorkers to initialise internal variables instead of spaghetti
  * fix downloader startup
  * members only + minor fixes
  * bump deps
  * cleanup and comments
  * Search concurrency fixes
  * fix processor test
  * deep clean
  * rip out compatibility mode
  * fix race in network tests
  * update slackauth
  * who's not deferring? me.
  * make playwright init beautiful
  * stop spinner if challenge code is requested in headless flow
  * bumping deps
  * implement #283 in stream
  * graceful handling of empty message slices
  * add last updated to csv output
  * entity list ported + tests
  * rename BrowserAuth to PlaywrightAuth
  * allow to specify BUILD_DATE
  * implement #220 in v3
  * fix mock generation and update tests
  * remove old Makefile entries
  * fix network tests
  * misspelled command names
  * emojis, progress etc.
  * switch renderer to glamour, add emoji long help
  * add legacy emoji dump back, as it is faster
  * emoji on edge
  * rollback emoji test
  * emoji experiment
  * html is hard
  * readme update
  * error handling in WithRetry
  * disable useless tools
  * more uninstall flags
  * man update
  * patch list output display logic
  * fix new enterprise workspace wizardry
  * replace rst to md in goreleaser
  * add macos 15 instructions
  * update readme
  * fix log messages
  * update readme
  * fix links in README
  * finish switching to slog
  * json logging and ironing kinks
  * switch to slog
  * replace image with v3
  * replace README.rst with README.md and update
  * update gitignore
  * move to toml
  * fix tests
  * explicit loadSecrets+some tidying up
  * workspace select
  * workspace selection
  * workspace selection logic
  * use new workspace/new by default
  * move env logic to auth package
  * create CreateAndSelect
  * help update
  * tests
  * workspace-&gt;new fixes
  * dropped into exclusions
  * new workspace wizard
  * token/cookie new auth flow
  * break dep cycle, workspace new
  * unicode-aware capitalisation
  * linter
  * stfu linter
  * brush up listing users and channels
  * list wizardry
  * menu brush up
  * --amend
  * per-menuitem preview
  * Add brew instruction to readme (#351)
  * add archived suffix
  * #324 fix for archived channels
  * update tests and build
  * update file test
  * make a menu bubble
  * picklist conquest
  * search wiz + workspace select fixes
  * search wiz
  * wizard unification
  * add picklist updater
  * cleanup
  * fix spelling
  * spelling
  * add slackauth browser removal
  * login ux
  * add edge tests and use external tagops instead of tagmagic
  * bump deps
  * update slackauth
  * browser selection, rename auth menu items
  * add local export configuration
  * date control help
  * batch commands
  * fix ui glitches
  * more ui
  * wizard model draft
  * Wizard model
  * move updaters to ui pkg
  * wording
  * UI
  * more ui
  * fix tests
  * plug archive runner into wizard
  * fuck you styles
  * ironing time control kinks
  * formatting
  * date-time component
  * time bubble
  * convoluted time entry model
  * rename
  * new file picker
  * move updaters to a separate package
  * some lame tests
  * fix bool updater and cursor movement
  * file picker
  * move under ui
  * configuration ui
  * archive wizard
  * add archive wizard stub
  * add archive wizard stub
  * fix flag name
  * rename -fast to -no-channel-users
  * fix edge userinfo method
  * fixing chunk file channel id collection
  * add fast search option
  * fix count of results not populated for search
  * final filemgr tests, close decompressor
  * more file manager tests
  * fix memory leak in file manager
  * more tests
  * add rpi benchmark
  * add m2 pro benchmark
  * update benchmark
  * for the lulz
  * for the lulz
  * add provider.go
  * add tests, optimise fasttime
  * add build and version to the info tool
  * sane version reporting
  * move session init into bootstrap
  * Adding tests
  * fix google auth
  * auth test update
  * user agent and headless timeout
  * bump deps
  * Force default height/width for videos and allow wide images to stretch across the screen more
  * Add AURTEST target
  * deps bump and osext tests
  * Update README.rst
  * workspace refactor, tests
  * bump slackauth and its deps
  * workspace command code brush up
  * test coverage
  * workspace fixes + new test
  * tests
  * fix auth flow when no workspaces present
  * add "io.Writer" to print functions in list
  * add a shortcut for go run ./cmd/slackdump
  * fix workspace list to use custom cache dir
  * leave a note to look later
  * fix some legit test failures
  * skip more tests
  * bump action versions
  * skip some tests in CI
  * add tests
  * fix -no-user-cache/-no-resolve logic
  * Fix list channels (partially)
  * implement "closing" tags, add color and usergroup support
  * bump go version in CI files
  * bump even further
  * update auth, tools/info, playwright and rod
  * Switch to GITHUB_TOKEN
  * Improvements added, will review locally
  * Github actions version bump
  * More output formats + include man page
  * update docs from v2
  * field functions
  * I'll blow my own bubble with blackjack and hookers
  * update filemgr
  * fix test and spelling
  * show the last error to the user if retry fails
  * emoji model
  * borders for browser
  * file manager
  * config checker ui
  * filepicker
  * move UI under main executable dir
  * central theme for ui components
  * workspace selection wizard
  * use model
  * skip empty messages
  * rename residual record files into archive
  * clarification of search interfaces
  * cut spaghetti into macaroni
  * StreamResult -&gt; Result
  * extract stream into a separate package
  * record-&gt;archive, auth-&gt;workspace
  * aligning edge errors with slack
  * add edge search test
  * tests for initialisation logic
  * add user conversion to experimental search
  * search conversion
  * tests fixes
  * straighten dodgy initialisation logic in Session, remove global logger from network (use context)
  * implementing search all
  * brush up and comment
  * file search
  * move search under controller and init file downloaded that does nothing because there's no files
  * search messages with channel info
  * Optimise limits
  * unify output logic record/search
  * add stream search funcs files and all
  * adding search controller, directory processor and command
  * adding search support
  * fix username display for older users
  * update record doc
  * cosmetic changes
  * update comments
  * dirprocessor tests
  * tracker -&gt; filetracker
  * use join errors
  * split spaghetti and add tests
  * update public key
  * tracker
  * fix the logic error in ref counting
  * simplify recorder, add micros to logger
  * added tracing
  * reogranise and add tests
  * add some missing types
  * update status codes
  * Fix the name display for edge channels
  * default initialisation for the slackdump.Session
  * remove the rest of the fallback logic
  * drop fallback client
  * detect enterprise
  * extract limits to a separate file
  * use edge for conversation info
  * use cursor to paginate the channel search results
  * basic fallback tests
  * cosmetics
  * thread safe fallback
  * add limiter to the search tool
  * search
  * add verbose fallback error message w/type
  * log the fallbacks
  * make tests pass
  * fallback to edge
  * maybe another day.
  * test fixture
  * minor tweaks+client.userBoot endpoint
  * add another call into the edge tool
  * mpim and populating user for dms
  * some more edge apis
  * time parsing
  * moar edge
  * more edge
  * fix edge auth
  * add DMs, but nothing works
  * edge api, add channels search
  * bump go mod
  * optimised export source + message deep links
  * thread deep linking, ignore html errors, css has templating logic
  * deep linking support for channels
  * finish export index tests and fix num_members and members generation
  * index tests + fix dm generation
  * generics
  * add fixtures and fix function names
  * add some tests
  * fix user display in export renders
  * implement file storage
  * file template
  * chunk files
  * attachments
  * add type and support for dark theme
  * add support for dump files
  * export viewing
  * source type detection
  * generalise export implementation
  * first incomplete export source implementation
  * move template funcs
  * decouple chunk.Directory
  * organise data
  * working parser
  * handle context blocks and better error reporting
  * fix unknown message types
  * first draft of the renderer
  * renderer
  * tidy
  * user profile display
  * add user handler
  * viewer.. well, sort of
  * name display
  * fixes for the user display
  * add viewer draft
  * tool info auth
  * fix race condition in converter
  * fix fileproc.IsValid
  * remove accidently committed file
  * fix test
  * port the fileproc.IsValid from master
  * manager tests
  * more verbose info on chunk indexing
  * fixing race condition in the downloader
  * fix hax in mpim parsing
  * minor improvements to entity_list (make it concurrency-safe)
  * Fix ordering of messages in the standard dump
  * update comments in dump
  * bump modules and replace slack-go/slack with rusq/slack
  * fix channel users test
  * siwtch to fork
  * rename -base to -output/-o
  * fix channelinfo
  * align retrieved channel info between v2 and v3
  * bump deps and compare script
  * sundry
  * fix auth tests
  * update slackauth to prevent hangup if the browser download is interrupted
  * legacy-browser flag
  * browser uninstall
  * update dump.sh from master
  * comments and naming
  * sundry
  * notify user when creds expired, instead of just shitting to trace
  * nil pointer fix
  * fix potential issue with closed chunk directory
  * commenting stuff
  * backport emoji flags, and remove app/
  * cache fixes
  * sundry
  * add processLink test
  * fix race conditions
  * get rid of auth.Type
  * v2 -&gt; v3
  * was in master, but not in v3
  * deprioritise headless login
  * add placeholders to prompts
  * correct return codes in record tool
  * move info tools
  * finish the info
  * remove pii from errors
  * corrections for win
  * add info
  * fix funky workspace selection logic
  * export Slacker interface, remove Type form Provider
  * getting back to it
  * documentalise auth
  * update funding from master
  * update from master
  * merge from #260
  * add easter egg
  * LoginCancel
  * wizard choices
  * static menu items defined in the global package scope
  * cleanup
  * better main menu
  * renaming workspace to auth
  * rename "workspace" to "auth"
  * bump deps
  * regenerate files
  * survey -&gt; ui, disable tests as they were using core/terminal
  * survey -&gt; huh, remove v2 app
  * survey -&gt; huh
  * replace input with huh
  * get rid of survey in wizard
  * replace main prompt with huh
  * get rid of v1
  * merge auth from master
  * switch default flow to CLI
  * add rod
  * go.sum update
  * Update playwright sync w/master
  * bump deps and sync issue template with master
  * lowercase workspace name
  * propagate login timeout to workspace command
  * manually merge master and cli-remake changes
  * bump go version
  * update auth from master
  * port network from master (#234)
  * tests and doc
  * test convoluted arg parsing
  * some convoluted parsing of args
  * obfuscation and gpg encryption
  * better input/output detection
  * directory obfuscation
  * implement #202
  * fixing tests
  * file logic and concurrency fuckery
  * channel users chunk
  * #202 channel members
  * doc update: flags
  * initial support for starred and bookmarks
  * add starred and bookmarks to the interface
  * chunk/index cache
  * implement chunk caching
  * channel directory cache
  * add tracing to chunk.FIle
  * race condition
  * rename formatter.Converter to Formatter to avoid confusion
  * parallel channel processing in converter
  * error handling and skipping tombstone files
  * rewrite "writeMessages"
  * code org
  * remove cryptic literals
  * pre-refactor writeMessages
  * converter
  * man update
  * update man page
  * implement convert command
  * move slackdump manual to the root of the project
  * rename convert to format and update man
  * Update chttp
  * implement converter
  * begin work on converter
  * simplify files subprocessor package
  * result func is a property of Stream now + add files support to "record"
  * fix incorrect extension for listings
  * use lightweight markdown renderer and stop using export package
  * make processor external
  * naming
  * recorder
  * some docs and 'record' dummy
  * do not rely on chunks in user processing.
  * use chunkdir in the processor
  * remame ctrl to control
  * controller
  * extract stream controller into a separate package
  * file_id tests
  * fix automatic tests
  * fix config and downloader tests
  * code reogranisation, comments, and brushing up
  * fix file download location and duplicate detection
  * break subproc/downloader hard dep
  * move expproc out of cmd
  * extract file processors to a spearate transform/ package
  * link updater
  * purge the draft version of standard processor
  * introduce chunk.FileID
  * dump transform and some chunk pkg optimisations + tests
  * dump transforms
  * graceful error handling (sort of)
  * threadTS instead of isThread
  * allow for thread finalisation
  * channel info caching
  * threadOnly flag
  * extract file processing
  * brush up
  * continue on error in stream
  * race condition and some other stuff
  * dumpv3 rev 2 draft
  * token updater function
  * extract user related code to a user worker
  * run time measurement
  * propagating the slack channel to Files processor
  * fix chunktest to return all channels
  * auth test from file in the chunktest
  * implement workspace info support in processor and export
  * implement workspace info
  * fix channel transform
  * fix channel streamer
  * retry on 408 error
  * add tracing
  * fix
  * huntin daemons
  * concurrency fuckery
  * testing harness and exportV3 test
  * Fix custom limiter config not applying zero values. Drawback is that the full config is now required.
  * catching edge cases
  * simplify transform
  * my life is so successful, i got everything a man could ever need
  * chunk directory
  * export transformer
  * some stardartisation of interfaces
  * deprecate v1 downloader
  * scaffolding in v1 downloader around v2, fix tests (partly)
  * generalise downloader
  * bump dependencies
  * docker stuff
  * diagram update
  * open chunk file wronly
  * files download
  * filter external files #206
  * onFiles processor function
  * Someone forgot to close the fsa.  Who that was is not important.
  * count channel references to avoid premature closure
  * transform in a goroutine + tracing to catch the race condition
  * wonky users logic
  * replace literal with const
  * split player and chunk file
  * load users if necessary in transform
  * transform to export messages
  * context and asc/desc control
  * context and tracing
  * export transform
  * fix tests and minor things
  * []string -&gt; []int64
  * prior to index opt
  * Player.Sorted - returns messages in a chronological order
  * time logic
  * align adapter naming across filed
  * ensure all adapters are closed
  * use the built-in silent progress bar in case of debugging
  * close adapter in list
  * some cosmetic and usability changes
  * api cleanup
  * refactor the way we handle config
  * remove implicit fs logic from slackdump
  * externalise user cache
  * bump deps
  * extract stream functions from clienter
  * progress bar and fix race condition
  * move finalising logic to processor
  * extract conversations worker into a separate function
  * fix some inconsistent signatures and debug messages wording
  * v3 export diagram
  * export chunk compression
  * v3 export processor and streamer
  * get concurrency right (that fucking errorsx)
  * automatic switching of the files
  * export processor and last message
  * reorganise stream.go
  * results
  * retry on channel info
  * organise goroutines init
  * user cache tests
  * fix player race condition
  * fixing stream test
  * extract processing in standalone funcs
  * brush up threads/channels
  * remove emoji.Dl
  * fix filesystem corruption on emoji download
  * comment update
  * rollback downloader changes - regressed
  * fix parallel processing
  * async stream
  * export v3 early draft
  * swap Conversations parameters
  * first draft
  * move fetch to the chunks/transform
  * lazy user caching
  * use atomic.Bool in downloader
  * skip hidden_by_limit files
  * global timeframe parameters
  * remove version reporting from v1 command
  * better State and Stream API
  * conversation list and user list test server methods
  * one team one dump
  * remove team info
  * add users channels and team.info chunks
  * user streaming
  * optimise modules
  * unify formatters between v2 and v3
  * add description for tools
  * remove redundant namer
  * async transform
  * add description for tools
  * move nametmpl and account for no files in transformer
  * cleanup auth
  * finish dump (tests and optimisation needed)
  * incorporate channel_info throughout the streaming funcs
  * update obfuscation
  * add channel_info
  * rename diag to tools
  * browser auth fix for changed slack auth api
  * correct the file directory name and dedup
  * add tmp/Makefile
  * off by one fix
  * where did that file go?
  * give the test streaming server some love
  * rename events to chunks to avoid confusion with slack events
  * context handling and event timestamp everywhere
  * update deps
  * make state main repository for the saved event during dump
  * transforms
  * about fucking time this shit finally does something
  * rename processors to event
  * move fsadapter into a separate repo
  * brushing up
  * shorten event JSON field name
  * add filename variable to the State
  * state and tests
  * default to standard export format
  * simplify thread check condition
  * event iterator
  * make record stats tool a bit friendlier
  * fix redundant thread calls and a bunch of bugs
  * simplify player
  * recorder tests
  * obfuscate tests
  * add event recording diag command
  * obfuscator
  * account for channel_id in requests
  * tidy
  * add trace and raise test limits
  * fix parameter parsing in test server
  * replay server
  * player draft
  * event recorder
  * add a closer
  * processor draft
  * add workaround for node not being executable
  * cleanup generators and chttp update
  * extract chttp to github.com/rusq/chttp
  * []http.Cookie -&gt; []*http.Cookie
  * cleanup chttp
  * use OptionHTTPClient to propagate client with cookies
  * align channel and user cache flags and document them
  * restore help command (regressed in 78ea432)
  * better list commands logic
  * add openLogger and openFS tests
  * replace the discarding silent logger with noop logger
  * reduce wait time for network test
  * remove Logger from slackdump.Config
  * add comments on the auth/browser/client
  * add comments to fsadapter
  * fixes after rebase
  * fs logic refactoring
  * regenerate mockfs
  * fs logic refactoring
  * get rid of UserIndex
  * options -&gt; config rename
  * options -&gt; config
  * organise cache options
  * channel test functions
  * move dump back to dump
  * Goreleaser
  * add schema.json for api config files
  * move ui package from app into top level internal
  * remove pre-rendering of the markdown
  * move dump to list convo
  * streamline range and add confirm help
  * some tests and better ui.Time logic
  * prepare for manager rigging in tests
  * export wizard
  * date input
  * move relevant ui functions to corresponding packages
  * add list convo alias for dump
  * comments and some logic improvement
  * unify listing formatters
  * better list behaviour
  * make list actually list, not save json
  * emoji wizard update
  * update slack lib (fork)
  * finish config tests
  * config check wizard
  * ui.FileSelector logic and tests
  * overwrite test
  * some ui tests
  * fix wizard error handling and config new wizard
  * "config new" tests
  * extract writeLimits from apiconfig.runNew and add tests
  * fix config tags
  * extract encio to a separate package
  * do not remove thirdparty cookies
  * finish user cache routines and use them in the converter
  * extract user cache into separate files
  * rename appauth =&gt; cache
  * fix auth test
  * rename mock_app =&gt; mock_appauth
  * rework how auth options work + add browser flag
  * cleanup
  * add csv formatter
  * converter
  * converter, list, fsadapter changes
  * format help for workspace
  * finish-ish dump
  * extract template logic into a separate package
  * take on dump
  * refactor Options
  * dump command help
  * finish validation, emoji wizard, fix cache dir
  * modify Run funcs to return an error
  * workspace management (continued)
  * workspace logic
  * deprecate initauth
  * workspace management
  * add thread util and unify help for custom and non-custom flags
  * remove custom flag parsing
  * diagnostics
  * workspace management and auth
  * wizard
  * add man
  * complete the skeleton of new cmdline
  * use parts of go internals to recreate command functionality
  * add command map
  * interactive
  * commit progress</changelog>
  <changelog author="Dennis Knorr &lt;dennis.knorr@suse.com&gt;" date="1762171200">- Update to version 3.1.8:
  * add a standard storage test
  * Rollback changes to standard fs from #522
  * tidy
  * bump deps
  * optimise checks, again
  * Add RunNoTransform test
  * disable transformer in the archive mode
  * seconds is seconds
  * fix for slow threads #543
  * Update cmd/slackdump/internal/workspace/assets/new.md
  * add enterprise steps to workspace new doc
  * Quick fix for list commands not having YesMan flag enabled
  * fix for AskOverwrite on dumb terminals
  * copilot CR
  * fix spelling
  * flags flags review
  * ask before overwriting
  * Common AskOverwrite function
  * Document how to run from a repo checkout
  * clarifying on src2enc logic</changelog>
</package>
<package pkgid="ef16493d1d29a77ee3cff1b9c22ba89b366254cbccb0b9f135a3e52937c9e0e61fa01562cab817dae57f5bf4f30df5b980fceb744f4449a5f8a68fee91425af1" name="sudo" arch="src">
  <version epoch="0" ver="1.9.17p2" rel="291.1"/>
  <changelog author="Jason Sikes &lt;jsikes@suse.com&gt;" date="1676462400">- Update to 1.9.13:
  * Changes in 1.9.13:
    Fixed a bug running relative commands via sudo when log_subcmds
    is enabled. GitHub issue #194.
    Fixed a signal handling bug when running sudo commands in a shell
    script. Signals were not being forwarded to the command when the
    sudo process was not run in its own process group.
    Fixed a bug in the cvtsudoers LDIF parsing when the file ends without
    a newline and a backslash is the last character of the file.
    Fixed a potential use-after-free bug with cvtsudoers filtering.
    GitHub issue #198.
    Added a reminder to the default lecture that the password will not
    echo. This line is only displayed when the pwfeedback option is
    disabled. GitHub issue #195.
    Fixed potential memory leaks in error paths. GitHub issue #199.
    GitHub issue #202.
    Fixed potential NULL dereferences on memory allocation failure.
    GitHub issue #204. GitHub issue #211.
    Sudo now uses C23-style attributes in function prototypes instead
    of gcc-style attributes if supported.
    Added a new list pseudo-command in sudoers to allow a user to list
    another user’s privileges. Previously, only root or a user with
    the ability to run any command as either root or the target user
    on the current host could use the -U option. This also includes a
    fix to the log entry when a user lacks permission to run
    sudo -U otheruser -l command. Previously, the logs would indicate
    that the user tried to run the actual command, now the log entry
    includes the list operation.
    JSON logging now escapes control characters if they happen to
    appear in the command or environment.
    New Albanian translation from translationproject.org.
    Regular expressions in sudoers or logsrvd.conf may no longer contain
    consecutive repetition operators. This is implementation- specific
    behavior according to POSIX, but some implementations will allocate
    excessive amounts of memory. This mainly affects the fuzzers.
    Sudo now builds AIX-style shared libraries and dynamic shared
    objects by default instead of svr4-style. This means that the
    default sudo plugins are now .a (archive) files that contain a .so
    shared object file instead of bare .so files. This was done to
    improve compatibility with the AIX Freeware ecosystem, specifically,
    the AIX Freeware build of OpenSSL. Sudo will still load
    svr4-style .so plugins and if a .so file is requested, either via
    sudo.conf or the sudoers file, and only the .a file is present,
    sudo will convert the path from plugin.so to plugin.a(plugin.so)
    when loading it. This ensures compatibility with existing
    configurations. To restore the old, pre-1.9.13 behavior, run
    configure using the –with-aix-soname=svr4 option.
    Sudo no longer checks the ownership and mode of the plugins that
    it loads. Plugins are configured via either the sudo.conf or
    sudoers file which are trusted configuration files. These checks
    suffered from time-of-check vs. time-of-use race conditions and
    complicate loading plugins that are not simple paths. Ownership
    and mode checks are still performed when loading the sudo.conf
    and sudoers files, which do not suffer from race conditions.
    The sudo.conf developer_mode setting is no longer used.
    Control characters in sudo log messages and sudoreplay -l output
    are now escaped in octal format. Space characters in the command
    path are also escaped. Command line arguments that contain spaces
    are surrounded by single quotes and any literal single quote or
    backslash characters are escaped with a backslash. This makes it
    possible to distinguish multiple command line arguments from a
    single argument that contains spaces.
    Improved support for DragonFly BSD which uses a different
    struct procinfo than either FreeBSD or 4.4BSD.
    Fixed a compilation error on Linux arm systems running older
    kernels that may not define EM_ARM in linux/elf-em.h.
    GitHub issue #232.
    Fixed a compilation error when LDFLAGS contains -Wl,–no-undefined.
    Sudo will now link using -Wl,–no-undefined by default if possible.
    GitHub issue #234.
    Fixed a bug executing a command with a very long argument vector
    when log_subcmds or intercept is enabled on a system where
    intercept_type is set to trace. GitHub issue #194.
    When sudo is configured to run a command in a pseudo-terminal but
    the standard input is not connected to a terminal, the command
    will now be run as a background process. This works around a problem
    running sudo commands in the background from a shell script where
    changing the terminal to raw mode could interfere with the interactive
    shell that ran the script. GitHub issue #237.
    A missing include file in sudoers is no longer a fatal error unless
    the error_recovery plugin argument has been set to false.</changelog>
  <changelog author="Jason Sikes &lt;jsikes@suse.com&gt;" date="1676808000">- Update to 1.9.13p1:
    Fixed a typo in the configure script that resulted in a line like
    “]: command not found” in the output. GitHub issue #238.
    Corrected the order of the C23 [[noreturn]] attribute in function
    prototypes. This fixes a build error with GCC 13. GitHub issue #239.
    The check make target misbehaved when there was more than one
    version of the UTF-8 C locale in the output of locale -a.
    GitHub issue #241.
    Removed a dependency on the AC_SYS_YEAR2038 macro in configure.ac.
    This was added in autoconf 2.72 but sudo’s configure.ac only
    required autoconf 2.70. GitHub issue #242.
    Relaxed the autoconf version requirement to version 2.69.</changelog>
  <changelog author="Jason Sikes &lt;jsikes@suse.com&gt;" date="1677585600">- Update to 1.9.13p2 (bsc#1208595, CVE-2023-27320):
    Fixed the --enable-static-sudoers option, broken in sudo 1.9.13.
    GitHub issue #245.
    Fixed a potential double-free bug when matching a sudoers rule
    that contains a per-command chroot directive (CHROOT=dir).
    This bug was introduced in sudo 1.9.8.</changelog>
  <changelog author="Jason Sikes &lt;jsikes@suse.com&gt;" date="1678363200">- Update to 1.9.13p3:
    Fixed a bug introduced in sudo 1.9.13 that caused a syntax error
    when list was used as a user or host name. GitHub issue #246.
    Fixed a bug that could cause sudo to hang when running a command
    in a pseudo-terminal when there is still input buffered after a
    command has exited. [bsc#1203201]
    Fixed sudo -U otheruser -l command. This is a regression in
    sudo 1.9.13. GitHub issue #248.
    Fixed sudo -l command args when matching a command in sudoers
    with command line arguments. This is a regression in sudo 1.9.13.
    GitHub issue #249.</changelog>
  <changelog author="Michal Koutn&#xFD; &lt;mkoutny@suse.com&gt;" date="1680264000">- sudo.pamd: Use common-session-nonlogin for &gt;15 codestreams
  More info in https://github.com/SUSE/pam-config/pull/16</changelog>
  <changelog author="Paolo Stivanin &lt;info@paolostivanin.com&gt;" date="1689163200">- Update to 1.9.14p1:
  * Fixed an invalid free bug in sudo_logsrvd that was introduced
    in version 1.9.14 which could cause sudo_logsrvd to crash.
  * The sudoers plugin no longer tries to send the terminal name
    to the log server when no terminal is present.  This bug was
    introduced in version 1.9.14.
  * Fixed a bug where if the "intercept" or "log_subcmds" sudoers
    option was enabled and a sub-command was run where the first
    entry of the argument vector didn't match the command being run.
    This resulted in commands like "sudo su -" being killed due to
    the mismatch.  Bug #1050.
  * The sudoers plugin now canonicalizes command path names before
    matching (where possible).  This fixes a bug where sudo could
    execute the wrong path if there are multiple symbolic links with
    the same target and the same base name in sudoers that a user is
    allowed to run.  GitHub issue #228.
  * Improved command matching when a chroot is specified in sudoers.
    The sudoers plugin will now change the root directory id needed
    before performing command matching.  Previously, the root directory
    was simply prepended to the path that was being processed.
  * When NETGROUP_BASE is set in the ldap.conf file, sudo will now
    perform its own netgroup lookups of the host name instead of
    using the system innetgr(3) function.  This guarantees that user
    and host netgroup lookups are performed using  the same LDAP
    server (or servers).
  * Fixed a bug introduced in sudo 1.9.13 that resulted in a missing
    " ; " separator between environment variables and the command
    in log entries.
  * The visudo utility now displays a warning when it ignores a file
    in an include dir such as /etc/sudoers.d.
  * When running a command in a pseudo-terminal, sudo will initialize
    the terminal settings even if it is the background process.
    Previously, sudo only initialized the pseudo-terminal when running
    in the foreground.  This fixes an issue where a program that
    checks the window size would read the wrong value when sudo was
    running in the background.
  * Fixed a bug where only the first two digits of the TSID field
    being was logged.  Bug #1046.
  * The "log_pty" sudoers option is now enabled by default.  To
    restore the historic behavior where a command is run in the
    user's terminal, add "Defaults !use_pty" to the sudoers file.
    GitHub issue #258.
  * Sudo's "-b" option now works when the command is run in a
    pseudo-terminal.
  * When disabling core dumps, sudo now only modifies the soft limit
    and leaves the hard limit as-is.  This avoids problems on Linux
    when sudo does not have CAP_SYS_RESOURCE, which may be the case
    when run inside a container.  GitHub issue #42.
  * Sudo configuration file paths have been converted to colon-separated
    lists of paths.  This makes it possible to have configuration
    files on a read-only file system while still allowing for local
    modifications in a different (writable) directory.  The new
  - -enable-adminconf configure option can be used to specify a
    directory that is searched for configuration files in preference
    to the sysconfdir (which is usually /etc).
  * The "intercept_verify" sudoers option is now only applied when
    the "intercept" option is set in sudoers.  Previously, it was
    also applied when "log_subcmds" was enabled.
  * The NETGROUP_QUERY ldap.conf parameter can now be disabled for
    LDAP servers that do not support querying the nisNetgroup object
    by its nisNetgroupTriple attribute, while still allowing sudo to
    query the LDAP server directly to determine netgroup membership.
  * Fixed a long-standing bug where a sudoers rule without an explicit
    runas list allowed the user to run a command as root and any
    group instead of just one of the groups that root is a member
    of.  For example, a rule such as "myuser ALL = ALL" would permit
    "sudo -u root -g othergroup" even if root did not belong to
    "othergroup".
  * Fixed a bug where a sudoers rule with an explicit runas list
    allowed a user to run sudo commands as themselves.  For example,
    a rule such as "myuser ALL = (root) ALL", "myuser" should only
    allow commands to be run as root (optionally using one of root's
    groups).  However, the rule also allowed the user to run
    "sudo -u myuser -g myuser command".
  * Fixed a bug that prevented the user from specifying a group on
    the command line via "sudo -g" if the rule's Runas_Spec contained
    a Runas_Alias.
  * Sudo now requires a C compiler that conforms to ISO C99 or higher
    to build.</changelog>
  <changelog author="Otto Hollmann &lt;otto.hollmann@suse.com&gt;" date="1694520000">- Update to 1.9.14p3:
  * Fixed a crash with Python 3.12 when the sudo Python python is unloaded.
    This only affects make check for the Python plugin.
  * Adapted the sudo Python plugin test output to match Python 3.12.
- Update to 1.9.14p2:
  * Fixed a crash on Linux systems introduced in version 1.9.14 when running a
    command with a NULL argv[0] if log_subcmds or intercept is enabled in
    sudoers.
  * Fixed a problem with "stair-stepped" output when piping or redirecting the
    output of a sudo command that takes user input when running a command in
    a pseudo-terminal.
  * Fixed a bug introduced in sudo 1.9.14 that affects matching sudoers rules
    containing a Runas_Spec with an empty Runas user. These rules should only
    match when sudo’s -g option is used but were matching even without the -g
    option. #290.</changelog>
  <changelog author="Otto Hollmann &lt;otto.hollmann@suse.com&gt;" date="1694692800">- Install config files into /usr/etc and read from both location:
  /etc and /usr/etc (bsc#1205118)</changelog>
  <changelog author="Ludwig Nussel &lt;lnussel@suse.com&gt;" date="1695211200">- Introduce optional wheel and sudo group policies as separate packages
  (bsc#1203978, jsc#PED-260)</changelog>
  <changelog author="Dominique Leuenberger &lt;dimstar@opensuse.org&gt;" date="1700568000">- Package/ship empty /etc/sudoers.d directory for admins to
  discover where to put their won config.</changelog>
  <changelog author="Otto Hollmann &lt;otto.hollmann@suse.com&gt;" date="1700654400">- Update to 1.9.15p2:
  * Fixed a bug on BSD systems where sudo would not restore the
    terminal settings on exit if the terminal had parity enabled.
    GitHub issue #326.
- Update to 1.9.15p1:
  * Fixed a bug introduced in sudo 1.9.15 that prevented LDAP-based
    sudoers from being able to read the ldap.conf file.
    GitHub issue #325.
- Update to 1.9.15:
  * Fixed an undefined symbol problem on older versions of macOS
    when "intercept" or "log_subcmds" are enabled in sudoers.
    GitHub issue #276.
  * Fixed "make check" failure related to getpwent(3) wrapping
    on NetBSD.
  * Fixed the warning message for "sudo -l command" when the command
    is not permitted.  There was a missing space between "list" and
    the actual command due to changes in sudo 1.9.14.
  * Fixed a bug where output could go to the wrong terminal if
    "use_pty" is enabled (the default) and the standard input, output
    or error is redirected to a different terminal.  Bug #1056.
  * The visudo utility will no longer create an empty file when the
    specified sudoers file does not exist and the user exits the
    editor without making any changes.  GitHub issue #294.
  * The AIX and Solaris sudo packages on www.sudo.ws now support
    "log_subcmds" and "intercept" with both 32-bit and 64-bit
    binaries.  Previously, they only worked when running binaries
    with the same word size as the sudo binary.  GitHub issue #289.
  * The sudoers source is now logged in the JSON event log.  This
    makes it possible to tell which rule resulted in a match.
  * Running "sudo -ll command" now produces verbose output that
    includes matching rule as well as the path to the sudoers file
    the matching rule came from.  For LDAP sudoers, the name of the
    matching sudoRole is printed instead.
  * The embedded copy of zlib has been updated to version 1.3.
  * The sudoers plugin has been modified to make it more resilient
    to ROWHAMMER attacks on authentication and policy matching.
    This addresses CVE-2023-42465.
  * The sudoers plugin now constructs the user time stamp file path
    name using the user-ID instead of the user name.  This avoids a
    potential problem with user names that contain a path separator
    ('/') being interpreted as part of the path name.  A similar
    issue in sudo-rs has been assigned CVE-2023-42456.
  * A path separator ('/') in a user, group or host name is now
    replaced with an underbar character ('_') when expanding escapes
    in @include and @includedir directives as well as the "iolog_file"
    and "iolog_dir" sudoers Default settings.
  * The "intercept_verify" sudoers option is now only applied when
    the "intercept" option is set in sudoers.  Previously, it was
    also applied when "log_subcmds" was enabled.  Sudo 1.9.14
    contained an incorrect fix for this.  Bug #1058.
  * Changes to terminal settings are now performed atomically, where
    possible.  If the command is being run in a pseudo-terminal and
    the user's terminal is already in raw mode, sudo will not change
    the user's terminal settings.  This prevents concurrent sudo
    processes from restoring the terminal settings to the wrong values.
    GitHub issue #312.
  * Reverted a change from sudo 1.9.4 that resulted in PAM session
    modules being called with the environment of the command to be
    run instead of the environment of the invoking user.
    GitHub issue #318.
  * New Indonesian translation from translationproject.org.
  * The sudo_logsrvd server will now raise its open file descriptor
    limit to the maximum allowed value when it starts up.  Each
    connection can require up to nine open file descriptors so the
    default soft limit may be too low.
  * Better log message when rejecting a command if the "intercept"
    option is enabled and the "intercept_allow_setid" option is
    disabled.  Previously, "command not allowed" would be logged and
    the user had no way of knowing what the actual problem was.
  * Sudo will now log the invoking user's environment as "submitenv"
    in the JSON logs.  The command's environment ("runenv") is no
    longer logged for commands rejected by the sudoers file or an
    approval plugin.</changelog>
  <changelog author="Otto Hollmann &lt;otto.hollmann@suse.com&gt;" date="1702900800">- Update to 1.9.15p4:
  * Fixed a bug introduced in sudo 1.9.15 that could prevent a user’s
    privileges from being listed by sudo -l if the sudoers entry
    in /etc/nsswitch.conf contains [SUCCESS=return]. This did not affect the
    ability to run commands via sudo. Bug #1063.
- Update to 1.9.15p3:
  * Always disable core dumps when sudo sends itself a fatal signal. Fixes a
    problem where sudo could potentially dump core dump when it re-sends the
    fatal signal to itself. This is only an issue if the command   * received
    a signal that would normally result in a core dump but the command did
    not actually dump core.
  * Fixed a bug matching a command with a relative path name when the sudoers
    rule uses shell globbing rules for the path name. Bug #1062.
  * Permit visudo to be run even if the local host name is not set. GitHub
    issue #332.
  * Fixed an editing error introduced in sudo 1.9.15 that could prevent
    sudoreplay from replaying sessions correctly. GitHub issue #334.
  * Fixed a bug introduced in sudo 1.9.15 where sudo -l &gt; /dev/null could hang
    on Linux systems. GitHub issue #335.
  * Fixed a bug introduced in sudo 1.9.15 where Solaris privileges specified
    in sudoers were not applied to the command being run.</changelog>
  <changelog author="Otto Hollmann &lt;otto.hollmann@suse.com&gt;" date="1702900801">- For existing products (SLE15-SP* and older) keep using /etc and don't
  switch to /usr/etc. So only SLES16/ALP, Tumbleweed and newer products
  will use both /etc and /usr/etc locations.</changelog>
  <changelog author="Otto Hollmann &lt;otto.hollmann@suse.com&gt;" date="1704196800">- Update to 1.9.15p5:
  * Fixed evaluation of the lecture, listpw, verifypw, and fdexec sudoers
    Defaults settings when used without an explicit value. Previously, if
    specified without a value they were evaluated as boolean false, even when
    the negation operator ('!') was not present.
  * Fixed a bug introduced in sudo 1.9.14 that prevented LDAP netgroup queries
    using the NETGROUP_BASE setting from being performed.
  * Sudo will now transparently rename a user's lecture file from the older
    name-based path to the newer user-ID-based path. GitHub issue #342.
  * Fixed a bug introduced in sudo 1.9.15 that could cause a memory allocation
    failure if sysconf(_SC_LOGIN_NAME_MAX) fails. Bug #1066.</changelog>
  <changelog author="Simon Lees &lt;sflees@suse.de&gt;" date="1722254400">- A quick note that bsc#1227574 is expected behavior in this
  version of sudo. It was a regression in 15.6 which doesn't have
  the /etc/ split for pam.d yet.</changelog>
  <changelog author="Simon Lees &lt;sflees@suse.de&gt;" date="1744804800">- Update to 1.9.16p2:
  * Sudo now passes the terminal device number to the policy plugin
  even if it cannot resolve it to a path name. This allows sudo to
  run without warnings in a chroot jail when the terminal device
  files are not present. GitHub issue #421.
  * On Linux systems, sudo will now attempt to use the symbolic links
  in /proc/self/fd/{0,1,2} when resolving the terminal device number.
  This can allow sudo to map a terminal device to its path name even
  when /dev/pts is not mounted in a chroot jail.
  * Fixed compilation errors with gcc and clang in C23 mode. C23 no
  longer supports functions with unspecified arguments. GitHub issue
  [#420].
  * Fixed the test for cross-compiling when checking for C99 snprintf().
  The changes made to the test in sudo 1.9.16 resulted in a different
  problem. GitHub issue #386.
  * Fixed the date used by the exit record in sudo-format log files.
  This was a regression introduced in sudo 1.9.16 and only affected
  file-based logs, not syslog. GitHub issue #405.
  * Fixed the root cause of the “unable to find terminal name for device”
  message when running sudo on AIX when no terminal is present. In
  sudo 1.9.16 this was turned from a debug message into a warning.
  GitHub issue #408.
  * When a duplicate alias is found in the sudoers file, the warning
  message now includes the file and line number of the previous
  definition.
  * Added support for the --with-secure-path-value=no configure option
  to allow packagers to ship the default sudoers file with the secure
  path line commented out.
  * Sudo no longer sends mail when a user runs sudo -nv or sudo -nl,
  even if mail_badpass or mail_always are set. Sudo already avoids
  logging to a file or syslog in this case. Bug #1072.
  * Added the cmddenial_message sudoers option to provide additional
  information to the user when a command is denied by the sudoers
  policy. The default message is still displayed.
  * The time stamp used for file-based logs is now more consistent
  with the time stamp produced by syslog. GitHub issue #327.
  * Sudo will now warn the user if it can detect the user’s terminal but
  cannot determine the path to the terminal device. The sudoers time
  stamp file will now use the terminal device number directly.
  GitHub issue #329.
  * The embedded copy of zlib has been updated to version 1.3.1.
  * Improved error handling if generating the list of signals and signal
  names fails at build time.
  * Fixed a compilation issue on Linux systems without process_vm_readv().
  * Fixed cross-compilation with WolfSSL.
  * Added a json_compact value for the sudoers log_format option which can
  be used when logging to a file. The existing json value has been aliased
  to json_pretty. In a future release, json will be an alias for
  json_compact. GitHub issue #357.
  * A new pam_silent sudoers option has been added which may be negated to
  avoid suppressing output from PAM authentication modules. GitHub issue #216.
  * Fixed several cvtsudoers JSON output problems. GitHub issues #369, #370,
  [#371], #373, #381.
  * When sudo runs a command in a pseudo-terminal and the user’s terminal is
  revoked, the pseudo-terminal’s foreground process group will now receive
  SIGHUP before the terminal is revoked. This emulates the behavior of the
  session leader exiting and is consistent with what happens when,
  for example, an ssh session is closed. GitHub issue #367.
  * Fixed make test with Python 3.12. GitHub issue #374.
  * In schema.ActiveDirectory, fixed the quoting in the example command.
  GitHub issue #376.
  * Paths specified via a Chdir_Spec or Chroot_Spec in sudoers may now
  be double-quoted.
  * Sudo insults are now included by default, but disabled unless the
  - -with-insults configure option is specified or the insults sudoers
  option is enabled.
  * The default sudoers file now enables the secure_path option by
  default and preserves the EDITOR, VISUAL, and SUDO_EDITOR environment
  variables when running visudo. The new --with-secure-path-value
  configure option can be used to set the value of secure_path in
  the default sudoers file. GitHub issue #387.
  * A sudoers schema for IBM Directory Server (aka IBM Tivoli Directory
  Server, IBM Security Directory Server, and IBM Security Verify
  Directory) is now included.
  * When cross-compiling sudo, the configure script now assumes that
  the snprintf() function is C99-compliant if the C compiler
  supports the C99 standard. Previously, configure would use sudo’s
  own snprintf() when cross-compiling. GitHub issue #386.</changelog>
  <changelog author="Simon Lees &lt;sflees@suse.de&gt;" date="1751284800">- Update to 1.9.17p1
  * Fix a possible local privilege escalation via the --host option
    [bsc#1245274, CVE-2025-32462]
  * Fix a possible local privilege Escalation via chroot option
    [bsc#1245275, CVE-2025-32463]
- Update to 1.9.17
  * Sudo now uses the NODEV macro consistently. Bug #1074.
    Fixed a bug where the ALL command in a sudoers rule would
    override a previous NOSETENV tag. Command tags are inherited from
    previous Cmnds in a Cmnd_Spec_List. There is a special case for
    the SETENV tag with the ALL command, where SETENV is implied if
    no explicit SETENV or NOSETENV tag is specified. This special
    case did not take into account that a NOSETENV tag that was inherited
    should override this behavior.
  * If sudo is run via ssh without a terminal and a password is required,
    it now suggest using ssh’s -t option.
  * Fixed the display of timeout values in the sudo -V output on systems
    without a C99-compliant snprintf() function.
  * Quieted a number of minor Coverity warnings.
  * Fixed a problem running sudo from a serial console on Linux when the
    command is run in a pseudo-terminal (the default).
  * Fixed a crash in sudo which could occur if there was a fatal error
    after the user was validated but before the command was actually run.
  * Fixed a number of man page style warnings. The “lint” make target in
    the docs directory will now run groff with warnings enabled if it is
    available. Bug #1075.
  * The ignore_dot sudoers setting is now on by default. There is now a
  - -disable-ignore-dot configure option to disable it. The
  - -with-ignore-dot configure option has been deprecated.
  * Fixed a problem with the pwfeedback option where an initial backspace
    would reduce the maximum length allowed for the password.
    GitHub issue #439.
  * Fixed minor grammar and spelling problems in the man pages.
  * Fixed a bug where a user could avoid entering a password for sudo -l
    command if they specified their own user or group name via the -u or
  - g options.
  * Avoid potential password guessing based on timing attacks on the
    strcmp() function on systems without PAM or a crypt() function where
    plaintext passwords are stored in the shadow password file.
  * Fixed a potential information leak where sudo -l command could be used
    to determine whether an executable exists in a directory that they do
    not have search access to.
  * Sudo uses TCSAFLUSH, not TCSADRAIN, when disabling echo once again.
    A long time ago sudo changed from using TCSAFLUSH to TCSADRAIN due
    to some systems having bugs related to TCSAFLUSH. That should no longer
    be a concern. Using TCSAFLUSH ensures that password input that has been
    received by the kernel, but not yet read by sudo, will be discarded and
    not echoed.
  * Added the SUDO_TTY environment variable if the user has a terminal.
    This can be used to find the user’s original tty device when sudo runs
    the command in its own pseudo-terminal. GitHub issue #447.
  * New Cantonese translation for sudo.</changelog>
  <changelog author="Simon Lees &lt;sflees@suse.de&gt;" date="1757937600">- Update to 1.9.17p2
  * Fixed a bug introduced in sudo 1.9.16 that could result in sudo
    sending SIGHUP to all processes on the system in certain rare
    cases. The bug could manifest if sudo is running a command in
    a pseudo-terminal, sudo terminates the command due to an
    internal error, and the user’s terminal is revoked. GitHub
    issue #458.
  * Fixed a bug introduced in sudo 1.9.12 that caused sudo to
    abort when the intercept and intercept_verify options are
    enabled in sudoers and either the command line arguments or
    the environment contains a string larger than the page size
    (usually 4096). This only Linux affects systems that support
    the ptrace_readv_string() function. GitHub issue #453.
  * Fixed a bug in sudo’s configure script introduced in sudo
    1.9.17 that prevented mdoc-format man pages from being used
    on systems without the mandoc utility. Bug #1077.
- /usr/etc/sudoers and file /usr/etc/sudoers.d/50-wheel-auth-self
  both have permissions 0644, while visudo -c complains that they
  should be 0440. (bsc#1249447)
- Policy and Groups subpackages can be noarch</changelog>
  <changelog author="Simon Lees &lt;sflees@suse.de&gt;" date="1775563200">- CVE-2026-35535: potential privilege escalation when running
  the mailer (bsc#1261420)
  * fix-CVE-2026-35535.patch
- Move tests under /usr/share for transactional system support
  (jsc#PED-14830)</changelog>
  <changelog author="Simon Lees &lt;sflees@suse.de&gt;" date="1781179200">- Fix missing %verify(not mode) %{_bindir}/sudo (bsc#1263098)</changelog>
</package>
<package pkgid="01ee6bec8fce1df6fc6bc10ac115bedfd309690170470fb4cddd4d248330c5ebe719373cc96f20c382cbfc17bbdf44f8f765a25a1c744c10d34a6e36fb7b8e9d" name="sudo" arch="x86_64">
  <version epoch="0" ver="1.9.17p2" rel="291.1"/>
  <changelog author="Jason Sikes &lt;jsikes@suse.com&gt;" date="1676462400">- Update to 1.9.13:
  * Changes in 1.9.13:
    Fixed a bug running relative commands via sudo when log_subcmds
    is enabled. GitHub issue #194.
    Fixed a signal handling bug when running sudo commands in a shell
    script. Signals were not being forwarded to the command when the
    sudo process was not run in its own process group.
    Fixed a bug in the cvtsudoers LDIF parsing when the file ends without
    a newline and a backslash is the last character of the file.
    Fixed a potential use-after-free bug with cvtsudoers filtering.
    GitHub issue #198.
    Added a reminder to the default lecture that the password will not
    echo. This line is only displayed when the pwfeedback option is
    disabled. GitHub issue #195.
    Fixed potential memory leaks in error paths. GitHub issue #199.
    GitHub issue #202.
    Fixed potential NULL dereferences on memory allocation failure.
    GitHub issue #204. GitHub issue #211.
    Sudo now uses C23-style attributes in function prototypes instead
    of gcc-style attributes if supported.
    Added a new list pseudo-command in sudoers to allow a user to list
    another user’s privileges. Previously, only root or a user with
    the ability to run any command as either root or the target user
    on the current host could use the -U option. This also includes a
    fix to the log entry when a user lacks permission to run
    sudo -U otheruser -l command. Previously, the logs would indicate
    that the user tried to run the actual command, now the log entry
    includes the list operation.
    JSON logging now escapes control characters if they happen to
    appear in the command or environment.
    New Albanian translation from translationproject.org.
    Regular expressions in sudoers or logsrvd.conf may no longer contain
    consecutive repetition operators. This is implementation- specific
    behavior according to POSIX, but some implementations will allocate
    excessive amounts of memory. This mainly affects the fuzzers.
    Sudo now builds AIX-style shared libraries and dynamic shared
    objects by default instead of svr4-style. This means that the
    default sudo plugins are now .a (archive) files that contain a .so
    shared object file instead of bare .so files. This was done to
    improve compatibility with the AIX Freeware ecosystem, specifically,
    the AIX Freeware build of OpenSSL. Sudo will still load
    svr4-style .so plugins and if a .so file is requested, either via
    sudo.conf or the sudoers file, and only the .a file is present,
    sudo will convert the path from plugin.so to plugin.a(plugin.so)
    when loading it. This ensures compatibility with existing
    configurations. To restore the old, pre-1.9.13 behavior, run
    configure using the –with-aix-soname=svr4 option.
    Sudo no longer checks the ownership and mode of the plugins that
    it loads. Plugins are configured via either the sudo.conf or
    sudoers file which are trusted configuration files. These checks
    suffered from time-of-check vs. time-of-use race conditions and
    complicate loading plugins that are not simple paths. Ownership
    and mode checks are still performed when loading the sudo.conf
    and sudoers files, which do not suffer from race conditions.
    The sudo.conf developer_mode setting is no longer used.
    Control characters in sudo log messages and sudoreplay -l output
    are now escaped in octal format. Space characters in the command
    path are also escaped. Command line arguments that contain spaces
    are surrounded by single quotes and any literal single quote or
    backslash characters are escaped with a backslash. This makes it
    possible to distinguish multiple command line arguments from a
    single argument that contains spaces.
    Improved support for DragonFly BSD which uses a different
    struct procinfo than either FreeBSD or 4.4BSD.
    Fixed a compilation error on Linux arm systems running older
    kernels that may not define EM_ARM in linux/elf-em.h.
    GitHub issue #232.
    Fixed a compilation error when LDFLAGS contains -Wl,–no-undefined.
    Sudo will now link using -Wl,–no-undefined by default if possible.
    GitHub issue #234.
    Fixed a bug executing a command with a very long argument vector
    when log_subcmds or intercept is enabled on a system where
    intercept_type is set to trace. GitHub issue #194.
    When sudo is configured to run a command in a pseudo-terminal but
    the standard input is not connected to a terminal, the command
    will now be run as a background process. This works around a problem
    running sudo commands in the background from a shell script where
    changing the terminal to raw mode could interfere with the interactive
    shell that ran the script. GitHub issue #237.
    A missing include file in sudoers is no longer a fatal error unless
    the error_recovery plugin argument has been set to false.</changelog>
  <changelog author="Jason Sikes &lt;jsikes@suse.com&gt;" date="1676808000">- Update to 1.9.13p1:
    Fixed a typo in the configure script that resulted in a line like
    “]: command not found” in the output. GitHub issue #238.
    Corrected the order of the C23 [[noreturn]] attribute in function
    prototypes. This fixes a build error with GCC 13. GitHub issue #239.
    The check make target misbehaved when there was more than one
    version of the UTF-8 C locale in the output of locale -a.
    GitHub issue #241.
    Removed a dependency on the AC_SYS_YEAR2038 macro in configure.ac.
    This was added in autoconf 2.72 but sudo’s configure.ac only
    required autoconf 2.70. GitHub issue #242.
    Relaxed the autoconf version requirement to version 2.69.</changelog>
  <changelog author="Jason Sikes &lt;jsikes@suse.com&gt;" date="1677585600">- Update to 1.9.13p2 (bsc#1208595, CVE-2023-27320):
    Fixed the --enable-static-sudoers option, broken in sudo 1.9.13.
    GitHub issue #245.
    Fixed a potential double-free bug when matching a sudoers rule
    that contains a per-command chroot directive (CHROOT=dir).
    This bug was introduced in sudo 1.9.8.</changelog>
  <changelog author="Jason Sikes &lt;jsikes@suse.com&gt;" date="1678363200">- Update to 1.9.13p3:
    Fixed a bug introduced in sudo 1.9.13 that caused a syntax error
    when list was used as a user or host name. GitHub issue #246.
    Fixed a bug that could cause sudo to hang when running a command
    in a pseudo-terminal when there is still input buffered after a
    command has exited. [bsc#1203201]
    Fixed sudo -U otheruser -l command. This is a regression in
    sudo 1.9.13. GitHub issue #248.
    Fixed sudo -l command args when matching a command in sudoers
    with command line arguments. This is a regression in sudo 1.9.13.
    GitHub issue #249.</changelog>
  <changelog author="Michal Koutn&#xFD; &lt;mkoutny@suse.com&gt;" date="1680264000">- sudo.pamd: Use common-session-nonlogin for &gt;15 codestreams
  More info in https://github.com/SUSE/pam-config/pull/16</changelog>
  <changelog author="Paolo Stivanin &lt;info@paolostivanin.com&gt;" date="1689163200">- Update to 1.9.14p1:
  * Fixed an invalid free bug in sudo_logsrvd that was introduced
    in version 1.9.14 which could cause sudo_logsrvd to crash.
  * The sudoers plugin no longer tries to send the terminal name
    to the log server when no terminal is present.  This bug was
    introduced in version 1.9.14.
  * Fixed a bug where if the "intercept" or "log_subcmds" sudoers
    option was enabled and a sub-command was run where the first
    entry of the argument vector didn't match the command being run.
    This resulted in commands like "sudo su -" being killed due to
    the mismatch.  Bug #1050.
  * The sudoers plugin now canonicalizes command path names before
    matching (where possible).  This fixes a bug where sudo could
    execute the wrong path if there are multiple symbolic links with
    the same target and the same base name in sudoers that a user is
    allowed to run.  GitHub issue #228.
  * Improved command matching when a chroot is specified in sudoers.
    The sudoers plugin will now change the root directory id needed
    before performing command matching.  Previously, the root directory
    was simply prepended to the path that was being processed.
  * When NETGROUP_BASE is set in the ldap.conf file, sudo will now
    perform its own netgroup lookups of the host name instead of
    using the system innetgr(3) function.  This guarantees that user
    and host netgroup lookups are performed using  the same LDAP
    server (or servers).
  * Fixed a bug introduced in sudo 1.9.13 that resulted in a missing
    " ; " separator between environment variables and the command
    in log entries.
  * The visudo utility now displays a warning when it ignores a file
    in an include dir such as /etc/sudoers.d.
  * When running a command in a pseudo-terminal, sudo will initialize
    the terminal settings even if it is the background process.
    Previously, sudo only initialized the pseudo-terminal when running
    in the foreground.  This fixes an issue where a program that
    checks the window size would read the wrong value when sudo was
    running in the background.
  * Fixed a bug where only the first two digits of the TSID field
    being was logged.  Bug #1046.
  * The "log_pty" sudoers option is now enabled by default.  To
    restore the historic behavior where a command is run in the
    user's terminal, add "Defaults !use_pty" to the sudoers file.
    GitHub issue #258.
  * Sudo's "-b" option now works when the command is run in a
    pseudo-terminal.
  * When disabling core dumps, sudo now only modifies the soft limit
    and leaves the hard limit as-is.  This avoids problems on Linux
    when sudo does not have CAP_SYS_RESOURCE, which may be the case
    when run inside a container.  GitHub issue #42.
  * Sudo configuration file paths have been converted to colon-separated
    lists of paths.  This makes it possible to have configuration
    files on a read-only file system while still allowing for local
    modifications in a different (writable) directory.  The new
  - -enable-adminconf configure option can be used to specify a
    directory that is searched for configuration files in preference
    to the sysconfdir (which is usually /etc).
  * The "intercept_verify" sudoers option is now only applied when
    the "intercept" option is set in sudoers.  Previously, it was
    also applied when "log_subcmds" was enabled.
  * The NETGROUP_QUERY ldap.conf parameter can now be disabled for
    LDAP servers that do not support querying the nisNetgroup object
    by its nisNetgroupTriple attribute, while still allowing sudo to
    query the LDAP server directly to determine netgroup membership.
  * Fixed a long-standing bug where a sudoers rule without an explicit
    runas list allowed the user to run a command as root and any
    group instead of just one of the groups that root is a member
    of.  For example, a rule such as "myuser ALL = ALL" would permit
    "sudo -u root -g othergroup" even if root did not belong to
    "othergroup".
  * Fixed a bug where a sudoers rule with an explicit runas list
    allowed a user to run sudo commands as themselves.  For example,
    a rule such as "myuser ALL = (root) ALL", "myuser" should only
    allow commands to be run as root (optionally using one of root's
    groups).  However, the rule also allowed the user to run
    "sudo -u myuser -g myuser command".
  * Fixed a bug that prevented the user from specifying a group on
    the command line via "sudo -g" if the rule's Runas_Spec contained
    a Runas_Alias.
  * Sudo now requires a C compiler that conforms to ISO C99 or higher
    to build.</changelog>
  <changelog author="Otto Hollmann &lt;otto.hollmann@suse.com&gt;" date="1694520000">- Update to 1.9.14p3:
  * Fixed a crash with Python 3.12 when the sudo Python python is unloaded.
    This only affects make check for the Python plugin.
  * Adapted the sudo Python plugin test output to match Python 3.12.
- Update to 1.9.14p2:
  * Fixed a crash on Linux systems introduced in version 1.9.14 when running a
    command with a NULL argv[0] if log_subcmds or intercept is enabled in
    sudoers.
  * Fixed a problem with "stair-stepped" output when piping or redirecting the
    output of a sudo command that takes user input when running a command in
    a pseudo-terminal.
  * Fixed a bug introduced in sudo 1.9.14 that affects matching sudoers rules
    containing a Runas_Spec with an empty Runas user. These rules should only
    match when sudo’s -g option is used but were matching even without the -g
    option. #290.</changelog>
  <changelog author="Otto Hollmann &lt;otto.hollmann@suse.com&gt;" date="1694692800">- Install config files into /usr/etc and read from both location:
  /etc and /usr/etc (bsc#1205118)</changelog>
  <changelog author="Ludwig Nussel &lt;lnussel@suse.com&gt;" date="1695211200">- Introduce optional wheel and sudo group policies as separate packages
  (bsc#1203978, jsc#PED-260)</changelog>
  <changelog author="Dominique Leuenberger &lt;dimstar@opensuse.org&gt;" date="1700568000">- Package/ship empty /etc/sudoers.d directory for admins to
  discover where to put their won config.</changelog>
  <changelog author="Otto Hollmann &lt;otto.hollmann@suse.com&gt;" date="1700654400">- Update to 1.9.15p2:
  * Fixed a bug on BSD systems where sudo would not restore the
    terminal settings on exit if the terminal had parity enabled.
    GitHub issue #326.
- Update to 1.9.15p1:
  * Fixed a bug introduced in sudo 1.9.15 that prevented LDAP-based
    sudoers from being able to read the ldap.conf file.
    GitHub issue #325.
- Update to 1.9.15:
  * Fixed an undefined symbol problem on older versions of macOS
    when "intercept" or "log_subcmds" are enabled in sudoers.
    GitHub issue #276.
  * Fixed "make check" failure related to getpwent(3) wrapping
    on NetBSD.
  * Fixed the warning message for "sudo -l command" when the command
    is not permitted.  There was a missing space between "list" and
    the actual command due to changes in sudo 1.9.14.
  * Fixed a bug where output could go to the wrong terminal if
    "use_pty" is enabled (the default) and the standard input, output
    or error is redirected to a different terminal.  Bug #1056.
  * The visudo utility will no longer create an empty file when the
    specified sudoers file does not exist and the user exits the
    editor without making any changes.  GitHub issue #294.
  * The AIX and Solaris sudo packages on www.sudo.ws now support
    "log_subcmds" and "intercept" with both 32-bit and 64-bit
    binaries.  Previously, they only worked when running binaries
    with the same word size as the sudo binary.  GitHub issue #289.
  * The sudoers source is now logged in the JSON event log.  This
    makes it possible to tell which rule resulted in a match.
  * Running "sudo -ll command" now produces verbose output that
    includes matching rule as well as the path to the sudoers file
    the matching rule came from.  For LDAP sudoers, the name of the
    matching sudoRole is printed instead.
  * The embedded copy of zlib has been updated to version 1.3.
  * The sudoers plugin has been modified to make it more resilient
    to ROWHAMMER attacks on authentication and policy matching.
    This addresses CVE-2023-42465.
  * The sudoers plugin now constructs the user time stamp file path
    name using the user-ID instead of the user name.  This avoids a
    potential problem with user names that contain a path separator
    ('/') being interpreted as part of the path name.  A similar
    issue in sudo-rs has been assigned CVE-2023-42456.
  * A path separator ('/') in a user, group or host name is now
    replaced with an underbar character ('_') when expanding escapes
    in @include and @includedir directives as well as the "iolog_file"
    and "iolog_dir" sudoers Default settings.
  * The "intercept_verify" sudoers option is now only applied when
    the "intercept" option is set in sudoers.  Previously, it was
    also applied when "log_subcmds" was enabled.  Sudo 1.9.14
    contained an incorrect fix for this.  Bug #1058.
  * Changes to terminal settings are now performed atomically, where
    possible.  If the command is being run in a pseudo-terminal and
    the user's terminal is already in raw mode, sudo will not change
    the user's terminal settings.  This prevents concurrent sudo
    processes from restoring the terminal settings to the wrong values.
    GitHub issue #312.
  * Reverted a change from sudo 1.9.4 that resulted in PAM session
    modules being called with the environment of the command to be
    run instead of the environment of the invoking user.
    GitHub issue #318.
  * New Indonesian translation from translationproject.org.
  * The sudo_logsrvd server will now raise its open file descriptor
    limit to the maximum allowed value when it starts up.  Each
    connection can require up to nine open file descriptors so the
    default soft limit may be too low.
  * Better log message when rejecting a command if the "intercept"
    option is enabled and the "intercept_allow_setid" option is
    disabled.  Previously, "command not allowed" would be logged and
    the user had no way of knowing what the actual problem was.
  * Sudo will now log the invoking user's environment as "submitenv"
    in the JSON logs.  The command's environment ("runenv") is no
    longer logged for commands rejected by the sudoers file or an
    approval plugin.</changelog>
  <changelog author="Otto Hollmann &lt;otto.hollmann@suse.com&gt;" date="1702900800">- Update to 1.9.15p4:
  * Fixed a bug introduced in sudo 1.9.15 that could prevent a user’s
    privileges from being listed by sudo -l if the sudoers entry
    in /etc/nsswitch.conf contains [SUCCESS=return]. This did not affect the
    ability to run commands via sudo. Bug #1063.
- Update to 1.9.15p3:
  * Always disable core dumps when sudo sends itself a fatal signal. Fixes a
    problem where sudo could potentially dump core dump when it re-sends the
    fatal signal to itself. This is only an issue if the command   * received
    a signal that would normally result in a core dump but the command did
    not actually dump core.
  * Fixed a bug matching a command with a relative path name when the sudoers
    rule uses shell globbing rules for the path name. Bug #1062.
  * Permit visudo to be run even if the local host name is not set. GitHub
    issue #332.
  * Fixed an editing error introduced in sudo 1.9.15 that could prevent
    sudoreplay from replaying sessions correctly. GitHub issue #334.
  * Fixed a bug introduced in sudo 1.9.15 where sudo -l &gt; /dev/null could hang
    on Linux systems. GitHub issue #335.
  * Fixed a bug introduced in sudo 1.9.15 where Solaris privileges specified
    in sudoers were not applied to the command being run.</changelog>
  <changelog author="Otto Hollmann &lt;otto.hollmann@suse.com&gt;" date="1702900801">- For existing products (SLE15-SP* and older) keep using /etc and don't
  switch to /usr/etc. So only SLES16/ALP, Tumbleweed and newer products
  will use both /etc and /usr/etc locations.</changelog>
  <changelog author="Otto Hollmann &lt;otto.hollmann@suse.com&gt;" date="1704196800">- Update to 1.9.15p5:
  * Fixed evaluation of the lecture, listpw, verifypw, and fdexec sudoers
    Defaults settings when used without an explicit value. Previously, if
    specified without a value they were evaluated as boolean false, even when
    the negation operator ('!') was not present.
  * Fixed a bug introduced in sudo 1.9.14 that prevented LDAP netgroup queries
    using the NETGROUP_BASE setting from being performed.
  * Sudo will now transparently rename a user's lecture file from the older
    name-based path to the newer user-ID-based path. GitHub issue #342.
  * Fixed a bug introduced in sudo 1.9.15 that could cause a memory allocation
    failure if sysconf(_SC_LOGIN_NAME_MAX) fails. Bug #1066.</changelog>
  <changelog author="Simon Lees &lt;sflees@suse.de&gt;" date="1722254400">- A quick note that bsc#1227574 is expected behavior in this
  version of sudo. It was a regression in 15.6 which doesn't have
  the /etc/ split for pam.d yet.</changelog>
  <changelog author="Simon Lees &lt;sflees@suse.de&gt;" date="1744804800">- Update to 1.9.16p2:
  * Sudo now passes the terminal device number to the policy plugin
  even if it cannot resolve it to a path name. This allows sudo to
  run without warnings in a chroot jail when the terminal device
  files are not present. GitHub issue #421.
  * On Linux systems, sudo will now attempt to use the symbolic links
  in /proc/self/fd/{0,1,2} when resolving the terminal device number.
  This can allow sudo to map a terminal device to its path name even
  when /dev/pts is not mounted in a chroot jail.
  * Fixed compilation errors with gcc and clang in C23 mode. C23 no
  longer supports functions with unspecified arguments. GitHub issue
  [#420].
  * Fixed the test for cross-compiling when checking for C99 snprintf().
  The changes made to the test in sudo 1.9.16 resulted in a different
  problem. GitHub issue #386.
  * Fixed the date used by the exit record in sudo-format log files.
  This was a regression introduced in sudo 1.9.16 and only affected
  file-based logs, not syslog. GitHub issue #405.
  * Fixed the root cause of the “unable to find terminal name for device”
  message when running sudo on AIX when no terminal is present. In
  sudo 1.9.16 this was turned from a debug message into a warning.
  GitHub issue #408.
  * When a duplicate alias is found in the sudoers file, the warning
  message now includes the file and line number of the previous
  definition.
  * Added support for the --with-secure-path-value=no configure option
  to allow packagers to ship the default sudoers file with the secure
  path line commented out.
  * Sudo no longer sends mail when a user runs sudo -nv or sudo -nl,
  even if mail_badpass or mail_always are set. Sudo already avoids
  logging to a file or syslog in this case. Bug #1072.
  * Added the cmddenial_message sudoers option to provide additional
  information to the user when a command is denied by the sudoers
  policy. The default message is still displayed.
  * The time stamp used for file-based logs is now more consistent
  with the time stamp produced by syslog. GitHub issue #327.
  * Sudo will now warn the user if it can detect the user’s terminal but
  cannot determine the path to the terminal device. The sudoers time
  stamp file will now use the terminal device number directly.
  GitHub issue #329.
  * The embedded copy of zlib has been updated to version 1.3.1.
  * Improved error handling if generating the list of signals and signal
  names fails at build time.
  * Fixed a compilation issue on Linux systems without process_vm_readv().
  * Fixed cross-compilation with WolfSSL.
  * Added a json_compact value for the sudoers log_format option which can
  be used when logging to a file. The existing json value has been aliased
  to json_pretty. In a future release, json will be an alias for
  json_compact. GitHub issue #357.
  * A new pam_silent sudoers option has been added which may be negated to
  avoid suppressing output from PAM authentication modules. GitHub issue #216.
  * Fixed several cvtsudoers JSON output problems. GitHub issues #369, #370,
  [#371], #373, #381.
  * When sudo runs a command in a pseudo-terminal and the user’s terminal is
  revoked, the pseudo-terminal’s foreground process group will now receive
  SIGHUP before the terminal is revoked. This emulates the behavior of the
  session leader exiting and is consistent with what happens when,
  for example, an ssh session is closed. GitHub issue #367.
  * Fixed make test with Python 3.12. GitHub issue #374.
  * In schema.ActiveDirectory, fixed the quoting in the example command.
  GitHub issue #376.
  * Paths specified via a Chdir_Spec or Chroot_Spec in sudoers may now
  be double-quoted.
  * Sudo insults are now included by default, but disabled unless the
  - -with-insults configure option is specified or the insults sudoers
  option is enabled.
  * The default sudoers file now enables the secure_path option by
  default and preserves the EDITOR, VISUAL, and SUDO_EDITOR environment
  variables when running visudo. The new --with-secure-path-value
  configure option can be used to set the value of secure_path in
  the default sudoers file. GitHub issue #387.
  * A sudoers schema for IBM Directory Server (aka IBM Tivoli Directory
  Server, IBM Security Directory Server, and IBM Security Verify
  Directory) is now included.
  * When cross-compiling sudo, the configure script now assumes that
  the snprintf() function is C99-compliant if the C compiler
  supports the C99 standard. Previously, configure would use sudo’s
  own snprintf() when cross-compiling. GitHub issue #386.</changelog>
  <changelog author="Simon Lees &lt;sflees@suse.de&gt;" date="1751284800">- Update to 1.9.17p1
  * Fix a possible local privilege escalation via the --host option
    [bsc#1245274, CVE-2025-32462]
  * Fix a possible local privilege Escalation via chroot option
    [bsc#1245275, CVE-2025-32463]
- Update to 1.9.17
  * Sudo now uses the NODEV macro consistently. Bug #1074.
    Fixed a bug where the ALL command in a sudoers rule would
    override a previous NOSETENV tag. Command tags are inherited from
    previous Cmnds in a Cmnd_Spec_List. There is a special case for
    the SETENV tag with the ALL command, where SETENV is implied if
    no explicit SETENV or NOSETENV tag is specified. This special
    case did not take into account that a NOSETENV tag that was inherited
    should override this behavior.
  * If sudo is run via ssh without a terminal and a password is required,
    it now suggest using ssh’s -t option.
  * Fixed the display of timeout values in the sudo -V output on systems
    without a C99-compliant snprintf() function.
  * Quieted a number of minor Coverity warnings.
  * Fixed a problem running sudo from a serial console on Linux when the
    command is run in a pseudo-terminal (the default).
  * Fixed a crash in sudo which could occur if there was a fatal error
    after the user was validated but before the command was actually run.
  * Fixed a number of man page style warnings. The “lint” make target in
    the docs directory will now run groff with warnings enabled if it is
    available. Bug #1075.
  * The ignore_dot sudoers setting is now on by default. There is now a
  - -disable-ignore-dot configure option to disable it. The
  - -with-ignore-dot configure option has been deprecated.
  * Fixed a problem with the pwfeedback option where an initial backspace
    would reduce the maximum length allowed for the password.
    GitHub issue #439.
  * Fixed minor grammar and spelling problems in the man pages.
  * Fixed a bug where a user could avoid entering a password for sudo -l
    command if they specified their own user or group name via the -u or
  - g options.
  * Avoid potential password guessing based on timing attacks on the
    strcmp() function on systems without PAM or a crypt() function where
    plaintext passwords are stored in the shadow password file.
  * Fixed a potential information leak where sudo -l command could be used
    to determine whether an executable exists in a directory that they do
    not have search access to.
  * Sudo uses TCSAFLUSH, not TCSADRAIN, when disabling echo once again.
    A long time ago sudo changed from using TCSAFLUSH to TCSADRAIN due
    to some systems having bugs related to TCSAFLUSH. That should no longer
    be a concern. Using TCSAFLUSH ensures that password input that has been
    received by the kernel, but not yet read by sudo, will be discarded and
    not echoed.
  * Added the SUDO_TTY environment variable if the user has a terminal.
    This can be used to find the user’s original tty device when sudo runs
    the command in its own pseudo-terminal. GitHub issue #447.
  * New Cantonese translation for sudo.</changelog>
  <changelog author="Simon Lees &lt;sflees@suse.de&gt;" date="1757937600">- Update to 1.9.17p2
  * Fixed a bug introduced in sudo 1.9.16 that could result in sudo
    sending SIGHUP to all processes on the system in certain rare
    cases. The bug could manifest if sudo is running a command in
    a pseudo-terminal, sudo terminates the command due to an
    internal error, and the user’s terminal is revoked. GitHub
    issue #458.
  * Fixed a bug introduced in sudo 1.9.12 that caused sudo to
    abort when the intercept and intercept_verify options are
    enabled in sudoers and either the command line arguments or
    the environment contains a string larger than the page size
    (usually 4096). This only Linux affects systems that support
    the ptrace_readv_string() function. GitHub issue #453.
  * Fixed a bug in sudo’s configure script introduced in sudo
    1.9.17 that prevented mdoc-format man pages from being used
    on systems without the mandoc utility. Bug #1077.
- /usr/etc/sudoers and file /usr/etc/sudoers.d/50-wheel-auth-self
  both have permissions 0644, while visudo -c complains that they
  should be 0440. (bsc#1249447)
- Policy and Groups subpackages can be noarch</changelog>
  <changelog author="Simon Lees &lt;sflees@suse.de&gt;" date="1775563200">- CVE-2026-35535: potential privilege escalation when running
  the mailer (bsc#1261420)
  * fix-CVE-2026-35535.patch
- Move tests under /usr/share for transactional system support
  (jsc#PED-14830)</changelog>
  <changelog author="Simon Lees &lt;sflees@suse.de&gt;" date="1781179200">- Fix missing %verify(not mode) %{_bindir}/sudo (bsc#1263098)</changelog>
</package>
<package pkgid="129f5dd13249438e94c20729402cab1cc83042d225956758ed44ea8bdce6fd72339d81552763b6289c9bb513967f1d8e2b21d4a2952521a9e0ca027285721a5d" name="sudo-devel" arch="x86_64">
  <version epoch="0" ver="1.9.17p2" rel="291.1"/>
  <changelog author="Jason Sikes &lt;jsikes@suse.com&gt;" date="1676462400">- Update to 1.9.13:
  * Changes in 1.9.13:
    Fixed a bug running relative commands via sudo when log_subcmds
    is enabled. GitHub issue #194.
    Fixed a signal handling bug when running sudo commands in a shell
    script. Signals were not being forwarded to the command when the
    sudo process was not run in its own process group.
    Fixed a bug in the cvtsudoers LDIF parsing when the file ends without
    a newline and a backslash is the last character of the file.
    Fixed a potential use-after-free bug with cvtsudoers filtering.
    GitHub issue #198.
    Added a reminder to the default lecture that the password will not
    echo. This line is only displayed when the pwfeedback option is
    disabled. GitHub issue #195.
    Fixed potential memory leaks in error paths. GitHub issue #199.
    GitHub issue #202.
    Fixed potential NULL dereferences on memory allocation failure.
    GitHub issue #204. GitHub issue #211.
    Sudo now uses C23-style attributes in function prototypes instead
    of gcc-style attributes if supported.
    Added a new list pseudo-command in sudoers to allow a user to list
    another user’s privileges. Previously, only root or a user with
    the ability to run any command as either root or the target user
    on the current host could use the -U option. This also includes a
    fix to the log entry when a user lacks permission to run
    sudo -U otheruser -l command. Previously, the logs would indicate
    that the user tried to run the actual command, now the log entry
    includes the list operation.
    JSON logging now escapes control characters if they happen to
    appear in the command or environment.
    New Albanian translation from translationproject.org.
    Regular expressions in sudoers or logsrvd.conf may no longer contain
    consecutive repetition operators. This is implementation- specific
    behavior according to POSIX, but some implementations will allocate
    excessive amounts of memory. This mainly affects the fuzzers.
    Sudo now builds AIX-style shared libraries and dynamic shared
    objects by default instead of svr4-style. This means that the
    default sudo plugins are now .a (archive) files that contain a .so
    shared object file instead of bare .so files. This was done to
    improve compatibility with the AIX Freeware ecosystem, specifically,
    the AIX Freeware build of OpenSSL. Sudo will still load
    svr4-style .so plugins and if a .so file is requested, either via
    sudo.conf or the sudoers file, and only the .a file is present,
    sudo will convert the path from plugin.so to plugin.a(plugin.so)
    when loading it. This ensures compatibility with existing
    configurations. To restore the old, pre-1.9.13 behavior, run
    configure using the –with-aix-soname=svr4 option.
    Sudo no longer checks the ownership and mode of the plugins that
    it loads. Plugins are configured via either the sudo.conf or
    sudoers file which are trusted configuration files. These checks
    suffered from time-of-check vs. time-of-use race conditions and
    complicate loading plugins that are not simple paths. Ownership
    and mode checks are still performed when loading the sudo.conf
    and sudoers files, which do not suffer from race conditions.
    The sudo.conf developer_mode setting is no longer used.
    Control characters in sudo log messages and sudoreplay -l output
    are now escaped in octal format. Space characters in the command
    path are also escaped. Command line arguments that contain spaces
    are surrounded by single quotes and any literal single quote or
    backslash characters are escaped with a backslash. This makes it
    possible to distinguish multiple command line arguments from a
    single argument that contains spaces.
    Improved support for DragonFly BSD which uses a different
    struct procinfo than either FreeBSD or 4.4BSD.
    Fixed a compilation error on Linux arm systems running older
    kernels that may not define EM_ARM in linux/elf-em.h.
    GitHub issue #232.
    Fixed a compilation error when LDFLAGS contains -Wl,–no-undefined.
    Sudo will now link using -Wl,–no-undefined by default if possible.
    GitHub issue #234.
    Fixed a bug executing a command with a very long argument vector
    when log_subcmds or intercept is enabled on a system where
    intercept_type is set to trace. GitHub issue #194.
    When sudo is configured to run a command in a pseudo-terminal but
    the standard input is not connected to a terminal, the command
    will now be run as a background process. This works around a problem
    running sudo commands in the background from a shell script where
    changing the terminal to raw mode could interfere with the interactive
    shell that ran the script. GitHub issue #237.
    A missing include file in sudoers is no longer a fatal error unless
    the error_recovery plugin argument has been set to false.</changelog>
  <changelog author="Jason Sikes &lt;jsikes@suse.com&gt;" date="1676808000">- Update to 1.9.13p1:
    Fixed a typo in the configure script that resulted in a line like
    “]: command not found” in the output. GitHub issue #238.
    Corrected the order of the C23 [[noreturn]] attribute in function
    prototypes. This fixes a build error with GCC 13. GitHub issue #239.
    The check make target misbehaved when there was more than one
    version of the UTF-8 C locale in the output of locale -a.
    GitHub issue #241.
    Removed a dependency on the AC_SYS_YEAR2038 macro in configure.ac.
    This was added in autoconf 2.72 but sudo’s configure.ac only
    required autoconf 2.70. GitHub issue #242.
    Relaxed the autoconf version requirement to version 2.69.</changelog>
  <changelog author="Jason Sikes &lt;jsikes@suse.com&gt;" date="1677585600">- Update to 1.9.13p2 (bsc#1208595, CVE-2023-27320):
    Fixed the --enable-static-sudoers option, broken in sudo 1.9.13.
    GitHub issue #245.
    Fixed a potential double-free bug when matching a sudoers rule
    that contains a per-command chroot directive (CHROOT=dir).
    This bug was introduced in sudo 1.9.8.</changelog>
  <changelog author="Jason Sikes &lt;jsikes@suse.com&gt;" date="1678363200">- Update to 1.9.13p3:
    Fixed a bug introduced in sudo 1.9.13 that caused a syntax error
    when list was used as a user or host name. GitHub issue #246.
    Fixed a bug that could cause sudo to hang when running a command
    in a pseudo-terminal when there is still input buffered after a
    command has exited. [bsc#1203201]
    Fixed sudo -U otheruser -l command. This is a regression in
    sudo 1.9.13. GitHub issue #248.
    Fixed sudo -l command args when matching a command in sudoers
    with command line arguments. This is a regression in sudo 1.9.13.
    GitHub issue #249.</changelog>
  <changelog author="Michal Koutn&#xFD; &lt;mkoutny@suse.com&gt;" date="1680264000">- sudo.pamd: Use common-session-nonlogin for &gt;15 codestreams
  More info in https://github.com/SUSE/pam-config/pull/16</changelog>
  <changelog author="Paolo Stivanin &lt;info@paolostivanin.com&gt;" date="1689163200">- Update to 1.9.14p1:
  * Fixed an invalid free bug in sudo_logsrvd that was introduced
    in version 1.9.14 which could cause sudo_logsrvd to crash.
  * The sudoers plugin no longer tries to send the terminal name
    to the log server when no terminal is present.  This bug was
    introduced in version 1.9.14.
  * Fixed a bug where if the "intercept" or "log_subcmds" sudoers
    option was enabled and a sub-command was run where the first
    entry of the argument vector didn't match the command being run.
    This resulted in commands like "sudo su -" being killed due to
    the mismatch.  Bug #1050.
  * The sudoers plugin now canonicalizes command path names before
    matching (where possible).  This fixes a bug where sudo could
    execute the wrong path if there are multiple symbolic links with
    the same target and the same base name in sudoers that a user is
    allowed to run.  GitHub issue #228.
  * Improved command matching when a chroot is specified in sudoers.
    The sudoers plugin will now change the root directory id needed
    before performing command matching.  Previously, the root directory
    was simply prepended to the path that was being processed.
  * When NETGROUP_BASE is set in the ldap.conf file, sudo will now
    perform its own netgroup lookups of the host name instead of
    using the system innetgr(3) function.  This guarantees that user
    and host netgroup lookups are performed using  the same LDAP
    server (or servers).
  * Fixed a bug introduced in sudo 1.9.13 that resulted in a missing
    " ; " separator between environment variables and the command
    in log entries.
  * The visudo utility now displays a warning when it ignores a file
    in an include dir such as /etc/sudoers.d.
  * When running a command in a pseudo-terminal, sudo will initialize
    the terminal settings even if it is the background process.
    Previously, sudo only initialized the pseudo-terminal when running
    in the foreground.  This fixes an issue where a program that
    checks the window size would read the wrong value when sudo was
    running in the background.
  * Fixed a bug where only the first two digits of the TSID field
    being was logged.  Bug #1046.
  * The "log_pty" sudoers option is now enabled by default.  To
    restore the historic behavior where a command is run in the
    user's terminal, add "Defaults !use_pty" to the sudoers file.
    GitHub issue #258.
  * Sudo's "-b" option now works when the command is run in a
    pseudo-terminal.
  * When disabling core dumps, sudo now only modifies the soft limit
    and leaves the hard limit as-is.  This avoids problems on Linux
    when sudo does not have CAP_SYS_RESOURCE, which may be the case
    when run inside a container.  GitHub issue #42.
  * Sudo configuration file paths have been converted to colon-separated
    lists of paths.  This makes it possible to have configuration
    files on a read-only file system while still allowing for local
    modifications in a different (writable) directory.  The new
  - -enable-adminconf configure option can be used to specify a
    directory that is searched for configuration files in preference
    to the sysconfdir (which is usually /etc).
  * The "intercept_verify" sudoers option is now only applied when
    the "intercept" option is set in sudoers.  Previously, it was
    also applied when "log_subcmds" was enabled.
  * The NETGROUP_QUERY ldap.conf parameter can now be disabled for
    LDAP servers that do not support querying the nisNetgroup object
    by its nisNetgroupTriple attribute, while still allowing sudo to
    query the LDAP server directly to determine netgroup membership.
  * Fixed a long-standing bug where a sudoers rule without an explicit
    runas list allowed the user to run a command as root and any
    group instead of just one of the groups that root is a member
    of.  For example, a rule such as "myuser ALL = ALL" would permit
    "sudo -u root -g othergroup" even if root did not belong to
    "othergroup".
  * Fixed a bug where a sudoers rule with an explicit runas list
    allowed a user to run sudo commands as themselves.  For example,
    a rule such as "myuser ALL = (root) ALL", "myuser" should only
    allow commands to be run as root (optionally using one of root's
    groups).  However, the rule also allowed the user to run
    "sudo -u myuser -g myuser command".
  * Fixed a bug that prevented the user from specifying a group on
    the command line via "sudo -g" if the rule's Runas_Spec contained
    a Runas_Alias.
  * Sudo now requires a C compiler that conforms to ISO C99 or higher
    to build.</changelog>
  <changelog author="Otto Hollmann &lt;otto.hollmann@suse.com&gt;" date="1694520000">- Update to 1.9.14p3:
  * Fixed a crash with Python 3.12 when the sudo Python python is unloaded.
    This only affects make check for the Python plugin.
  * Adapted the sudo Python plugin test output to match Python 3.12.
- Update to 1.9.14p2:
  * Fixed a crash on Linux systems introduced in version 1.9.14 when running a
    command with a NULL argv[0] if log_subcmds or intercept is enabled in
    sudoers.
  * Fixed a problem with "stair-stepped" output when piping or redirecting the
    output of a sudo command that takes user input when running a command in
    a pseudo-terminal.
  * Fixed a bug introduced in sudo 1.9.14 that affects matching sudoers rules
    containing a Runas_Spec with an empty Runas user. These rules should only
    match when sudo’s -g option is used but were matching even without the -g
    option. #290.</changelog>
  <changelog author="Otto Hollmann &lt;otto.hollmann@suse.com&gt;" date="1694692800">- Install config files into /usr/etc and read from both location:
  /etc and /usr/etc (bsc#1205118)</changelog>
  <changelog author="Ludwig Nussel &lt;lnussel@suse.com&gt;" date="1695211200">- Introduce optional wheel and sudo group policies as separate packages
  (bsc#1203978, jsc#PED-260)</changelog>
  <changelog author="Dominique Leuenberger &lt;dimstar@opensuse.org&gt;" date="1700568000">- Package/ship empty /etc/sudoers.d directory for admins to
  discover where to put their won config.</changelog>
  <changelog author="Otto Hollmann &lt;otto.hollmann@suse.com&gt;" date="1700654400">- Update to 1.9.15p2:
  * Fixed a bug on BSD systems where sudo would not restore the
    terminal settings on exit if the terminal had parity enabled.
    GitHub issue #326.
- Update to 1.9.15p1:
  * Fixed a bug introduced in sudo 1.9.15 that prevented LDAP-based
    sudoers from being able to read the ldap.conf file.
    GitHub issue #325.
- Update to 1.9.15:
  * Fixed an undefined symbol problem on older versions of macOS
    when "intercept" or "log_subcmds" are enabled in sudoers.
    GitHub issue #276.
  * Fixed "make check" failure related to getpwent(3) wrapping
    on NetBSD.
  * Fixed the warning message for "sudo -l command" when the command
    is not permitted.  There was a missing space between "list" and
    the actual command due to changes in sudo 1.9.14.
  * Fixed a bug where output could go to the wrong terminal if
    "use_pty" is enabled (the default) and the standard input, output
    or error is redirected to a different terminal.  Bug #1056.
  * The visudo utility will no longer create an empty file when the
    specified sudoers file does not exist and the user exits the
    editor without making any changes.  GitHub issue #294.
  * The AIX and Solaris sudo packages on www.sudo.ws now support
    "log_subcmds" and "intercept" with both 32-bit and 64-bit
    binaries.  Previously, they only worked when running binaries
    with the same word size as the sudo binary.  GitHub issue #289.
  * The sudoers source is now logged in the JSON event log.  This
    makes it possible to tell which rule resulted in a match.
  * Running "sudo -ll command" now produces verbose output that
    includes matching rule as well as the path to the sudoers file
    the matching rule came from.  For LDAP sudoers, the name of the
    matching sudoRole is printed instead.
  * The embedded copy of zlib has been updated to version 1.3.
  * The sudoers plugin has been modified to make it more resilient
    to ROWHAMMER attacks on authentication and policy matching.
    This addresses CVE-2023-42465.
  * The sudoers plugin now constructs the user time stamp file path
    name using the user-ID instead of the user name.  This avoids a
    potential problem with user names that contain a path separator
    ('/') being interpreted as part of the path name.  A similar
    issue in sudo-rs has been assigned CVE-2023-42456.
  * A path separator ('/') in a user, group or host name is now
    replaced with an underbar character ('_') when expanding escapes
    in @include and @includedir directives as well as the "iolog_file"
    and "iolog_dir" sudoers Default settings.
  * The "intercept_verify" sudoers option is now only applied when
    the "intercept" option is set in sudoers.  Previously, it was
    also applied when "log_subcmds" was enabled.  Sudo 1.9.14
    contained an incorrect fix for this.  Bug #1058.
  * Changes to terminal settings are now performed atomically, where
    possible.  If the command is being run in a pseudo-terminal and
    the user's terminal is already in raw mode, sudo will not change
    the user's terminal settings.  This prevents concurrent sudo
    processes from restoring the terminal settings to the wrong values.
    GitHub issue #312.
  * Reverted a change from sudo 1.9.4 that resulted in PAM session
    modules being called with the environment of the command to be
    run instead of the environment of the invoking user.
    GitHub issue #318.
  * New Indonesian translation from translationproject.org.
  * The sudo_logsrvd server will now raise its open file descriptor
    limit to the maximum allowed value when it starts up.  Each
    connection can require up to nine open file descriptors so the
    default soft limit may be too low.
  * Better log message when rejecting a command if the "intercept"
    option is enabled and the "intercept_allow_setid" option is
    disabled.  Previously, "command not allowed" would be logged and
    the user had no way of knowing what the actual problem was.
  * Sudo will now log the invoking user's environment as "submitenv"
    in the JSON logs.  The command's environment ("runenv") is no
    longer logged for commands rejected by the sudoers file or an
    approval plugin.</changelog>
  <changelog author="Otto Hollmann &lt;otto.hollmann@suse.com&gt;" date="1702900800">- Update to 1.9.15p4:
  * Fixed a bug introduced in sudo 1.9.15 that could prevent a user’s
    privileges from being listed by sudo -l if the sudoers entry
    in /etc/nsswitch.conf contains [SUCCESS=return]. This did not affect the
    ability to run commands via sudo. Bug #1063.
- Update to 1.9.15p3:
  * Always disable core dumps when sudo sends itself a fatal signal. Fixes a
    problem where sudo could potentially dump core dump when it re-sends the
    fatal signal to itself. This is only an issue if the command   * received
    a signal that would normally result in a core dump but the command did
    not actually dump core.
  * Fixed a bug matching a command with a relative path name when the sudoers
    rule uses shell globbing rules for the path name. Bug #1062.
  * Permit visudo to be run even if the local host name is not set. GitHub
    issue #332.
  * Fixed an editing error introduced in sudo 1.9.15 that could prevent
    sudoreplay from replaying sessions correctly. GitHub issue #334.
  * Fixed a bug introduced in sudo 1.9.15 where sudo -l &gt; /dev/null could hang
    on Linux systems. GitHub issue #335.
  * Fixed a bug introduced in sudo 1.9.15 where Solaris privileges specified
    in sudoers were not applied to the command being run.</changelog>
  <changelog author="Otto Hollmann &lt;otto.hollmann@suse.com&gt;" date="1702900801">- For existing products (SLE15-SP* and older) keep using /etc and don't
  switch to /usr/etc. So only SLES16/ALP, Tumbleweed and newer products
  will use both /etc and /usr/etc locations.</changelog>
  <changelog author="Otto Hollmann &lt;otto.hollmann@suse.com&gt;" date="1704196800">- Update to 1.9.15p5:
  * Fixed evaluation of the lecture, listpw, verifypw, and fdexec sudoers
    Defaults settings when used without an explicit value. Previously, if
    specified without a value they were evaluated as boolean false, even when
    the negation operator ('!') was not present.
  * Fixed a bug introduced in sudo 1.9.14 that prevented LDAP netgroup queries
    using the NETGROUP_BASE setting from being performed.
  * Sudo will now transparently rename a user's lecture file from the older
    name-based path to the newer user-ID-based path. GitHub issue #342.
  * Fixed a bug introduced in sudo 1.9.15 that could cause a memory allocation
    failure if sysconf(_SC_LOGIN_NAME_MAX) fails. Bug #1066.</changelog>
  <changelog author="Simon Lees &lt;sflees@suse.de&gt;" date="1722254400">- A quick note that bsc#1227574 is expected behavior in this
  version of sudo. It was a regression in 15.6 which doesn't have
  the /etc/ split for pam.d yet.</changelog>
  <changelog author="Simon Lees &lt;sflees@suse.de&gt;" date="1744804800">- Update to 1.9.16p2:
  * Sudo now passes the terminal device number to the policy plugin
  even if it cannot resolve it to a path name. This allows sudo to
  run without warnings in a chroot jail when the terminal device
  files are not present. GitHub issue #421.
  * On Linux systems, sudo will now attempt to use the symbolic links
  in /proc/self/fd/{0,1,2} when resolving the terminal device number.
  This can allow sudo to map a terminal device to its path name even
  when /dev/pts is not mounted in a chroot jail.
  * Fixed compilation errors with gcc and clang in C23 mode. C23 no
  longer supports functions with unspecified arguments. GitHub issue
  [#420].
  * Fixed the test for cross-compiling when checking for C99 snprintf().
  The changes made to the test in sudo 1.9.16 resulted in a different
  problem. GitHub issue #386.
  * Fixed the date used by the exit record in sudo-format log files.
  This was a regression introduced in sudo 1.9.16 and only affected
  file-based logs, not syslog. GitHub issue #405.
  * Fixed the root cause of the “unable to find terminal name for device”
  message when running sudo on AIX when no terminal is present. In
  sudo 1.9.16 this was turned from a debug message into a warning.
  GitHub issue #408.
  * When a duplicate alias is found in the sudoers file, the warning
  message now includes the file and line number of the previous
  definition.
  * Added support for the --with-secure-path-value=no configure option
  to allow packagers to ship the default sudoers file with the secure
  path line commented out.
  * Sudo no longer sends mail when a user runs sudo -nv or sudo -nl,
  even if mail_badpass or mail_always are set. Sudo already avoids
  logging to a file or syslog in this case. Bug #1072.
  * Added the cmddenial_message sudoers option to provide additional
  information to the user when a command is denied by the sudoers
  policy. The default message is still displayed.
  * The time stamp used for file-based logs is now more consistent
  with the time stamp produced by syslog. GitHub issue #327.
  * Sudo will now warn the user if it can detect the user’s terminal but
  cannot determine the path to the terminal device. The sudoers time
  stamp file will now use the terminal device number directly.
  GitHub issue #329.
  * The embedded copy of zlib has been updated to version 1.3.1.
  * Improved error handling if generating the list of signals and signal
  names fails at build time.
  * Fixed a compilation issue on Linux systems without process_vm_readv().
  * Fixed cross-compilation with WolfSSL.
  * Added a json_compact value for the sudoers log_format option which can
  be used when logging to a file. The existing json value has been aliased
  to json_pretty. In a future release, json will be an alias for
  json_compact. GitHub issue #357.
  * A new pam_silent sudoers option has been added which may be negated to
  avoid suppressing output from PAM authentication modules. GitHub issue #216.
  * Fixed several cvtsudoers JSON output problems. GitHub issues #369, #370,
  [#371], #373, #381.
  * When sudo runs a command in a pseudo-terminal and the user’s terminal is
  revoked, the pseudo-terminal’s foreground process group will now receive
  SIGHUP before the terminal is revoked. This emulates the behavior of the
  session leader exiting and is consistent with what happens when,
  for example, an ssh session is closed. GitHub issue #367.
  * Fixed make test with Python 3.12. GitHub issue #374.
  * In schema.ActiveDirectory, fixed the quoting in the example command.
  GitHub issue #376.
  * Paths specified via a Chdir_Spec or Chroot_Spec in sudoers may now
  be double-quoted.
  * Sudo insults are now included by default, but disabled unless the
  - -with-insults configure option is specified or the insults sudoers
  option is enabled.
  * The default sudoers file now enables the secure_path option by
  default and preserves the EDITOR, VISUAL, and SUDO_EDITOR environment
  variables when running visudo. The new --with-secure-path-value
  configure option can be used to set the value of secure_path in
  the default sudoers file. GitHub issue #387.
  * A sudoers schema for IBM Directory Server (aka IBM Tivoli Directory
  Server, IBM Security Directory Server, and IBM Security Verify
  Directory) is now included.
  * When cross-compiling sudo, the configure script now assumes that
  the snprintf() function is C99-compliant if the C compiler
  supports the C99 standard. Previously, configure would use sudo’s
  own snprintf() when cross-compiling. GitHub issue #386.</changelog>
  <changelog author="Simon Lees &lt;sflees@suse.de&gt;" date="1751284800">- Update to 1.9.17p1
  * Fix a possible local privilege escalation via the --host option
    [bsc#1245274, CVE-2025-32462]
  * Fix a possible local privilege Escalation via chroot option
    [bsc#1245275, CVE-2025-32463]
- Update to 1.9.17
  * Sudo now uses the NODEV macro consistently. Bug #1074.
    Fixed a bug where the ALL command in a sudoers rule would
    override a previous NOSETENV tag. Command tags are inherited from
    previous Cmnds in a Cmnd_Spec_List. There is a special case for
    the SETENV tag with the ALL command, where SETENV is implied if
    no explicit SETENV or NOSETENV tag is specified. This special
    case did not take into account that a NOSETENV tag that was inherited
    should override this behavior.
  * If sudo is run via ssh without a terminal and a password is required,
    it now suggest using ssh’s -t option.
  * Fixed the display of timeout values in the sudo -V output on systems
    without a C99-compliant snprintf() function.
  * Quieted a number of minor Coverity warnings.
  * Fixed a problem running sudo from a serial console on Linux when the
    command is run in a pseudo-terminal (the default).
  * Fixed a crash in sudo which could occur if there was a fatal error
    after the user was validated but before the command was actually run.
  * Fixed a number of man page style warnings. The “lint” make target in
    the docs directory will now run groff with warnings enabled if it is
    available. Bug #1075.
  * The ignore_dot sudoers setting is now on by default. There is now a
  - -disable-ignore-dot configure option to disable it. The
  - -with-ignore-dot configure option has been deprecated.
  * Fixed a problem with the pwfeedback option where an initial backspace
    would reduce the maximum length allowed for the password.
    GitHub issue #439.
  * Fixed minor grammar and spelling problems in the man pages.
  * Fixed a bug where a user could avoid entering a password for sudo -l
    command if they specified their own user or group name via the -u or
  - g options.
  * Avoid potential password guessing based on timing attacks on the
    strcmp() function on systems without PAM or a crypt() function where
    plaintext passwords are stored in the shadow password file.
  * Fixed a potential information leak where sudo -l command could be used
    to determine whether an executable exists in a directory that they do
    not have search access to.
  * Sudo uses TCSAFLUSH, not TCSADRAIN, when disabling echo once again.
    A long time ago sudo changed from using TCSAFLUSH to TCSADRAIN due
    to some systems having bugs related to TCSAFLUSH. That should no longer
    be a concern. Using TCSAFLUSH ensures that password input that has been
    received by the kernel, but not yet read by sudo, will be discarded and
    not echoed.
  * Added the SUDO_TTY environment variable if the user has a terminal.
    This can be used to find the user’s original tty device when sudo runs
    the command in its own pseudo-terminal. GitHub issue #447.
  * New Cantonese translation for sudo.</changelog>
  <changelog author="Simon Lees &lt;sflees@suse.de&gt;" date="1757937600">- Update to 1.9.17p2
  * Fixed a bug introduced in sudo 1.9.16 that could result in sudo
    sending SIGHUP to all processes on the system in certain rare
    cases. The bug could manifest if sudo is running a command in
    a pseudo-terminal, sudo terminates the command due to an
    internal error, and the user’s terminal is revoked. GitHub
    issue #458.
  * Fixed a bug introduced in sudo 1.9.12 that caused sudo to
    abort when the intercept and intercept_verify options are
    enabled in sudoers and either the command line arguments or
    the environment contains a string larger than the page size
    (usually 4096). This only Linux affects systems that support
    the ptrace_readv_string() function. GitHub issue #453.
  * Fixed a bug in sudo’s configure script introduced in sudo
    1.9.17 that prevented mdoc-format man pages from being used
    on systems without the mandoc utility. Bug #1077.
- /usr/etc/sudoers and file /usr/etc/sudoers.d/50-wheel-auth-self
  both have permissions 0644, while visudo -c complains that they
  should be 0440. (bsc#1249447)
- Policy and Groups subpackages can be noarch</changelog>
  <changelog author="Simon Lees &lt;sflees@suse.de&gt;" date="1775563200">- CVE-2026-35535: potential privilege escalation when running
  the mailer (bsc#1261420)
  * fix-CVE-2026-35535.patch
- Move tests under /usr/share for transactional system support
  (jsc#PED-14830)</changelog>
  <changelog author="Simon Lees &lt;sflees@suse.de&gt;" date="1781179200">- Fix missing %verify(not mode) %{_bindir}/sudo (bsc#1263098)</changelog>
</package>
<package pkgid="5877a0d85ec97e3e939a9bf89e898a77ac23f1bf34efbfdc1735ff24dbd2f4d1916df934169a3bc0fa13e0fac3e1d2f7450a1e41672e39d55fbc35e2e51fba07" name="sudo-plugin-python" arch="x86_64">
  <version epoch="0" ver="1.9.17p2" rel="291.1"/>
  <changelog author="Jason Sikes &lt;jsikes@suse.com&gt;" date="1676462400">- Update to 1.9.13:
  * Changes in 1.9.13:
    Fixed a bug running relative commands via sudo when log_subcmds
    is enabled. GitHub issue #194.
    Fixed a signal handling bug when running sudo commands in a shell
    script. Signals were not being forwarded to the command when the
    sudo process was not run in its own process group.
    Fixed a bug in the cvtsudoers LDIF parsing when the file ends without
    a newline and a backslash is the last character of the file.
    Fixed a potential use-after-free bug with cvtsudoers filtering.
    GitHub issue #198.
    Added a reminder to the default lecture that the password will not
    echo. This line is only displayed when the pwfeedback option is
    disabled. GitHub issue #195.
    Fixed potential memory leaks in error paths. GitHub issue #199.
    GitHub issue #202.
    Fixed potential NULL dereferences on memory allocation failure.
    GitHub issue #204. GitHub issue #211.
    Sudo now uses C23-style attributes in function prototypes instead
    of gcc-style attributes if supported.
    Added a new list pseudo-command in sudoers to allow a user to list
    another user’s privileges. Previously, only root or a user with
    the ability to run any command as either root or the target user
    on the current host could use the -U option. This also includes a
    fix to the log entry when a user lacks permission to run
    sudo -U otheruser -l command. Previously, the logs would indicate
    that the user tried to run the actual command, now the log entry
    includes the list operation.
    JSON logging now escapes control characters if they happen to
    appear in the command or environment.
    New Albanian translation from translationproject.org.
    Regular expressions in sudoers or logsrvd.conf may no longer contain
    consecutive repetition operators. This is implementation- specific
    behavior according to POSIX, but some implementations will allocate
    excessive amounts of memory. This mainly affects the fuzzers.
    Sudo now builds AIX-style shared libraries and dynamic shared
    objects by default instead of svr4-style. This means that the
    default sudo plugins are now .a (archive) files that contain a .so
    shared object file instead of bare .so files. This was done to
    improve compatibility with the AIX Freeware ecosystem, specifically,
    the AIX Freeware build of OpenSSL. Sudo will still load
    svr4-style .so plugins and if a .so file is requested, either via
    sudo.conf or the sudoers file, and only the .a file is present,
    sudo will convert the path from plugin.so to plugin.a(plugin.so)
    when loading it. This ensures compatibility with existing
    configurations. To restore the old, pre-1.9.13 behavior, run
    configure using the –with-aix-soname=svr4 option.
    Sudo no longer checks the ownership and mode of the plugins that
    it loads. Plugins are configured via either the sudo.conf or
    sudoers file which are trusted configuration files. These checks
    suffered from time-of-check vs. time-of-use race conditions and
    complicate loading plugins that are not simple paths. Ownership
    and mode checks are still performed when loading the sudo.conf
    and sudoers files, which do not suffer from race conditions.
    The sudo.conf developer_mode setting is no longer used.
    Control characters in sudo log messages and sudoreplay -l output
    are now escaped in octal format. Space characters in the command
    path are also escaped. Command line arguments that contain spaces
    are surrounded by single quotes and any literal single quote or
    backslash characters are escaped with a backslash. This makes it
    possible to distinguish multiple command line arguments from a
    single argument that contains spaces.
    Improved support for DragonFly BSD which uses a different
    struct procinfo than either FreeBSD or 4.4BSD.
    Fixed a compilation error on Linux arm systems running older
    kernels that may not define EM_ARM in linux/elf-em.h.
    GitHub issue #232.
    Fixed a compilation error when LDFLAGS contains -Wl,–no-undefined.
    Sudo will now link using -Wl,–no-undefined by default if possible.
    GitHub issue #234.
    Fixed a bug executing a command with a very long argument vector
    when log_subcmds or intercept is enabled on a system where
    intercept_type is set to trace. GitHub issue #194.
    When sudo is configured to run a command in a pseudo-terminal but
    the standard input is not connected to a terminal, the command
    will now be run as a background process. This works around a problem
    running sudo commands in the background from a shell script where
    changing the terminal to raw mode could interfere with the interactive
    shell that ran the script. GitHub issue #237.
    A missing include file in sudoers is no longer a fatal error unless
    the error_recovery plugin argument has been set to false.</changelog>
  <changelog author="Jason Sikes &lt;jsikes@suse.com&gt;" date="1676808000">- Update to 1.9.13p1:
    Fixed a typo in the configure script that resulted in a line like
    “]: command not found” in the output. GitHub issue #238.
    Corrected the order of the C23 [[noreturn]] attribute in function
    prototypes. This fixes a build error with GCC 13. GitHub issue #239.
    The check make target misbehaved when there was more than one
    version of the UTF-8 C locale in the output of locale -a.
    GitHub issue #241.
    Removed a dependency on the AC_SYS_YEAR2038 macro in configure.ac.
    This was added in autoconf 2.72 but sudo’s configure.ac only
    required autoconf 2.70. GitHub issue #242.
    Relaxed the autoconf version requirement to version 2.69.</changelog>
  <changelog author="Jason Sikes &lt;jsikes@suse.com&gt;" date="1677585600">- Update to 1.9.13p2 (bsc#1208595, CVE-2023-27320):
    Fixed the --enable-static-sudoers option, broken in sudo 1.9.13.
    GitHub issue #245.
    Fixed a potential double-free bug when matching a sudoers rule
    that contains a per-command chroot directive (CHROOT=dir).
    This bug was introduced in sudo 1.9.8.</changelog>
  <changelog author="Jason Sikes &lt;jsikes@suse.com&gt;" date="1678363200">- Update to 1.9.13p3:
    Fixed a bug introduced in sudo 1.9.13 that caused a syntax error
    when list was used as a user or host name. GitHub issue #246.
    Fixed a bug that could cause sudo to hang when running a command
    in a pseudo-terminal when there is still input buffered after a
    command has exited. [bsc#1203201]
    Fixed sudo -U otheruser -l command. This is a regression in
    sudo 1.9.13. GitHub issue #248.
    Fixed sudo -l command args when matching a command in sudoers
    with command line arguments. This is a regression in sudo 1.9.13.
    GitHub issue #249.</changelog>
  <changelog author="Michal Koutn&#xFD; &lt;mkoutny@suse.com&gt;" date="1680264000">- sudo.pamd: Use common-session-nonlogin for &gt;15 codestreams
  More info in https://github.com/SUSE/pam-config/pull/16</changelog>
  <changelog author="Paolo Stivanin &lt;info@paolostivanin.com&gt;" date="1689163200">- Update to 1.9.14p1:
  * Fixed an invalid free bug in sudo_logsrvd that was introduced
    in version 1.9.14 which could cause sudo_logsrvd to crash.
  * The sudoers plugin no longer tries to send the terminal name
    to the log server when no terminal is present.  This bug was
    introduced in version 1.9.14.
  * Fixed a bug where if the "intercept" or "log_subcmds" sudoers
    option was enabled and a sub-command was run where the first
    entry of the argument vector didn't match the command being run.
    This resulted in commands like "sudo su -" being killed due to
    the mismatch.  Bug #1050.
  * The sudoers plugin now canonicalizes command path names before
    matching (where possible).  This fixes a bug where sudo could
    execute the wrong path if there are multiple symbolic links with
    the same target and the same base name in sudoers that a user is
    allowed to run.  GitHub issue #228.
  * Improved command matching when a chroot is specified in sudoers.
    The sudoers plugin will now change the root directory id needed
    before performing command matching.  Previously, the root directory
    was simply prepended to the path that was being processed.
  * When NETGROUP_BASE is set in the ldap.conf file, sudo will now
    perform its own netgroup lookups of the host name instead of
    using the system innetgr(3) function.  This guarantees that user
    and host netgroup lookups are performed using  the same LDAP
    server (or servers).
  * Fixed a bug introduced in sudo 1.9.13 that resulted in a missing
    " ; " separator between environment variables and the command
    in log entries.
  * The visudo utility now displays a warning when it ignores a file
    in an include dir such as /etc/sudoers.d.
  * When running a command in a pseudo-terminal, sudo will initialize
    the terminal settings even if it is the background process.
    Previously, sudo only initialized the pseudo-terminal when running
    in the foreground.  This fixes an issue where a program that
    checks the window size would read the wrong value when sudo was
    running in the background.
  * Fixed a bug where only the first two digits of the TSID field
    being was logged.  Bug #1046.
  * The "log_pty" sudoers option is now enabled by default.  To
    restore the historic behavior where a command is run in the
    user's terminal, add "Defaults !use_pty" to the sudoers file.
    GitHub issue #258.
  * Sudo's "-b" option now works when the command is run in a
    pseudo-terminal.
  * When disabling core dumps, sudo now only modifies the soft limit
    and leaves the hard limit as-is.  This avoids problems on Linux
    when sudo does not have CAP_SYS_RESOURCE, which may be the case
    when run inside a container.  GitHub issue #42.
  * Sudo configuration file paths have been converted to colon-separated
    lists of paths.  This makes it possible to have configuration
    files on a read-only file system while still allowing for local
    modifications in a different (writable) directory.  The new
  - -enable-adminconf configure option can be used to specify a
    directory that is searched for configuration files in preference
    to the sysconfdir (which is usually /etc).
  * The "intercept_verify" sudoers option is now only applied when
    the "intercept" option is set in sudoers.  Previously, it was
    also applied when "log_subcmds" was enabled.
  * The NETGROUP_QUERY ldap.conf parameter can now be disabled for
    LDAP servers that do not support querying the nisNetgroup object
    by its nisNetgroupTriple attribute, while still allowing sudo to
    query the LDAP server directly to determine netgroup membership.
  * Fixed a long-standing bug where a sudoers rule without an explicit
    runas list allowed the user to run a command as root and any
    group instead of just one of the groups that root is a member
    of.  For example, a rule such as "myuser ALL = ALL" would permit
    "sudo -u root -g othergroup" even if root did not belong to
    "othergroup".
  * Fixed a bug where a sudoers rule with an explicit runas list
    allowed a user to run sudo commands as themselves.  For example,
    a rule such as "myuser ALL = (root) ALL", "myuser" should only
    allow commands to be run as root (optionally using one of root's
    groups).  However, the rule also allowed the user to run
    "sudo -u myuser -g myuser command".
  * Fixed a bug that prevented the user from specifying a group on
    the command line via "sudo -g" if the rule's Runas_Spec contained
    a Runas_Alias.
  * Sudo now requires a C compiler that conforms to ISO C99 or higher
    to build.</changelog>
  <changelog author="Otto Hollmann &lt;otto.hollmann@suse.com&gt;" date="1694520000">- Update to 1.9.14p3:
  * Fixed a crash with Python 3.12 when the sudo Python python is unloaded.
    This only affects make check for the Python plugin.
  * Adapted the sudo Python plugin test output to match Python 3.12.
- Update to 1.9.14p2:
  * Fixed a crash on Linux systems introduced in version 1.9.14 when running a
    command with a NULL argv[0] if log_subcmds or intercept is enabled in
    sudoers.
  * Fixed a problem with "stair-stepped" output when piping or redirecting the
    output of a sudo command that takes user input when running a command in
    a pseudo-terminal.
  * Fixed a bug introduced in sudo 1.9.14 that affects matching sudoers rules
    containing a Runas_Spec with an empty Runas user. These rules should only
    match when sudo’s -g option is used but were matching even without the -g
    option. #290.</changelog>
  <changelog author="Otto Hollmann &lt;otto.hollmann@suse.com&gt;" date="1694692800">- Install config files into /usr/etc and read from both location:
  /etc and /usr/etc (bsc#1205118)</changelog>
  <changelog author="Ludwig Nussel &lt;lnussel@suse.com&gt;" date="1695211200">- Introduce optional wheel and sudo group policies as separate packages
  (bsc#1203978, jsc#PED-260)</changelog>
  <changelog author="Dominique Leuenberger &lt;dimstar@opensuse.org&gt;" date="1700568000">- Package/ship empty /etc/sudoers.d directory for admins to
  discover where to put their won config.</changelog>
  <changelog author="Otto Hollmann &lt;otto.hollmann@suse.com&gt;" date="1700654400">- Update to 1.9.15p2:
  * Fixed a bug on BSD systems where sudo would not restore the
    terminal settings on exit if the terminal had parity enabled.
    GitHub issue #326.
- Update to 1.9.15p1:
  * Fixed a bug introduced in sudo 1.9.15 that prevented LDAP-based
    sudoers from being able to read the ldap.conf file.
    GitHub issue #325.
- Update to 1.9.15:
  * Fixed an undefined symbol problem on older versions of macOS
    when "intercept" or "log_subcmds" are enabled in sudoers.
    GitHub issue #276.
  * Fixed "make check" failure related to getpwent(3) wrapping
    on NetBSD.
  * Fixed the warning message for "sudo -l command" when the command
    is not permitted.  There was a missing space between "list" and
    the actual command due to changes in sudo 1.9.14.
  * Fixed a bug where output could go to the wrong terminal if
    "use_pty" is enabled (the default) and the standard input, output
    or error is redirected to a different terminal.  Bug #1056.
  * The visudo utility will no longer create an empty file when the
    specified sudoers file does not exist and the user exits the
    editor without making any changes.  GitHub issue #294.
  * The AIX and Solaris sudo packages on www.sudo.ws now support
    "log_subcmds" and "intercept" with both 32-bit and 64-bit
    binaries.  Previously, they only worked when running binaries
    with the same word size as the sudo binary.  GitHub issue #289.
  * The sudoers source is now logged in the JSON event log.  This
    makes it possible to tell which rule resulted in a match.
  * Running "sudo -ll command" now produces verbose output that
    includes matching rule as well as the path to the sudoers file
    the matching rule came from.  For LDAP sudoers, the name of the
    matching sudoRole is printed instead.
  * The embedded copy of zlib has been updated to version 1.3.
  * The sudoers plugin has been modified to make it more resilient
    to ROWHAMMER attacks on authentication and policy matching.
    This addresses CVE-2023-42465.
  * The sudoers plugin now constructs the user time stamp file path
    name using the user-ID instead of the user name.  This avoids a
    potential problem with user names that contain a path separator
    ('/') being interpreted as part of the path name.  A similar
    issue in sudo-rs has been assigned CVE-2023-42456.
  * A path separator ('/') in a user, group or host name is now
    replaced with an underbar character ('_') when expanding escapes
    in @include and @includedir directives as well as the "iolog_file"
    and "iolog_dir" sudoers Default settings.
  * The "intercept_verify" sudoers option is now only applied when
    the "intercept" option is set in sudoers.  Previously, it was
    also applied when "log_subcmds" was enabled.  Sudo 1.9.14
    contained an incorrect fix for this.  Bug #1058.
  * Changes to terminal settings are now performed atomically, where
    possible.  If the command is being run in a pseudo-terminal and
    the user's terminal is already in raw mode, sudo will not change
    the user's terminal settings.  This prevents concurrent sudo
    processes from restoring the terminal settings to the wrong values.
    GitHub issue #312.
  * Reverted a change from sudo 1.9.4 that resulted in PAM session
    modules being called with the environment of the command to be
    run instead of the environment of the invoking user.
    GitHub issue #318.
  * New Indonesian translation from translationproject.org.
  * The sudo_logsrvd server will now raise its open file descriptor
    limit to the maximum allowed value when it starts up.  Each
    connection can require up to nine open file descriptors so the
    default soft limit may be too low.
  * Better log message when rejecting a command if the "intercept"
    option is enabled and the "intercept_allow_setid" option is
    disabled.  Previously, "command not allowed" would be logged and
    the user had no way of knowing what the actual problem was.
  * Sudo will now log the invoking user's environment as "submitenv"
    in the JSON logs.  The command's environment ("runenv") is no
    longer logged for commands rejected by the sudoers file or an
    approval plugin.</changelog>
  <changelog author="Otto Hollmann &lt;otto.hollmann@suse.com&gt;" date="1702900800">- Update to 1.9.15p4:
  * Fixed a bug introduced in sudo 1.9.15 that could prevent a user’s
    privileges from being listed by sudo -l if the sudoers entry
    in /etc/nsswitch.conf contains [SUCCESS=return]. This did not affect the
    ability to run commands via sudo. Bug #1063.
- Update to 1.9.15p3:
  * Always disable core dumps when sudo sends itself a fatal signal. Fixes a
    problem where sudo could potentially dump core dump when it re-sends the
    fatal signal to itself. This is only an issue if the command   * received
    a signal that would normally result in a core dump but the command did
    not actually dump core.
  * Fixed a bug matching a command with a relative path name when the sudoers
    rule uses shell globbing rules for the path name. Bug #1062.
  * Permit visudo to be run even if the local host name is not set. GitHub
    issue #332.
  * Fixed an editing error introduced in sudo 1.9.15 that could prevent
    sudoreplay from replaying sessions correctly. GitHub issue #334.
  * Fixed a bug introduced in sudo 1.9.15 where sudo -l &gt; /dev/null could hang
    on Linux systems. GitHub issue #335.
  * Fixed a bug introduced in sudo 1.9.15 where Solaris privileges specified
    in sudoers were not applied to the command being run.</changelog>
  <changelog author="Otto Hollmann &lt;otto.hollmann@suse.com&gt;" date="1702900801">- For existing products (SLE15-SP* and older) keep using /etc and don't
  switch to /usr/etc. So only SLES16/ALP, Tumbleweed and newer products
  will use both /etc and /usr/etc locations.</changelog>
  <changelog author="Otto Hollmann &lt;otto.hollmann@suse.com&gt;" date="1704196800">- Update to 1.9.15p5:
  * Fixed evaluation of the lecture, listpw, verifypw, and fdexec sudoers
    Defaults settings when used without an explicit value. Previously, if
    specified without a value they were evaluated as boolean false, even when
    the negation operator ('!') was not present.
  * Fixed a bug introduced in sudo 1.9.14 that prevented LDAP netgroup queries
    using the NETGROUP_BASE setting from being performed.
  * Sudo will now transparently rename a user's lecture file from the older
    name-based path to the newer user-ID-based path. GitHub issue #342.
  * Fixed a bug introduced in sudo 1.9.15 that could cause a memory allocation
    failure if sysconf(_SC_LOGIN_NAME_MAX) fails. Bug #1066.</changelog>
  <changelog author="Simon Lees &lt;sflees@suse.de&gt;" date="1722254400">- A quick note that bsc#1227574 is expected behavior in this
  version of sudo. It was a regression in 15.6 which doesn't have
  the /etc/ split for pam.d yet.</changelog>
  <changelog author="Simon Lees &lt;sflees@suse.de&gt;" date="1744804800">- Update to 1.9.16p2:
  * Sudo now passes the terminal device number to the policy plugin
  even if it cannot resolve it to a path name. This allows sudo to
  run without warnings in a chroot jail when the terminal device
  files are not present. GitHub issue #421.
  * On Linux systems, sudo will now attempt to use the symbolic links
  in /proc/self/fd/{0,1,2} when resolving the terminal device number.
  This can allow sudo to map a terminal device to its path name even
  when /dev/pts is not mounted in a chroot jail.
  * Fixed compilation errors with gcc and clang in C23 mode. C23 no
  longer supports functions with unspecified arguments. GitHub issue
  [#420].
  * Fixed the test for cross-compiling when checking for C99 snprintf().
  The changes made to the test in sudo 1.9.16 resulted in a different
  problem. GitHub issue #386.
  * Fixed the date used by the exit record in sudo-format log files.
  This was a regression introduced in sudo 1.9.16 and only affected
  file-based logs, not syslog. GitHub issue #405.
  * Fixed the root cause of the “unable to find terminal name for device”
  message when running sudo on AIX when no terminal is present. In
  sudo 1.9.16 this was turned from a debug message into a warning.
  GitHub issue #408.
  * When a duplicate alias is found in the sudoers file, the warning
  message now includes the file and line number of the previous
  definition.
  * Added support for the --with-secure-path-value=no configure option
  to allow packagers to ship the default sudoers file with the secure
  path line commented out.
  * Sudo no longer sends mail when a user runs sudo -nv or sudo -nl,
  even if mail_badpass or mail_always are set. Sudo already avoids
  logging to a file or syslog in this case. Bug #1072.
  * Added the cmddenial_message sudoers option to provide additional
  information to the user when a command is denied by the sudoers
  policy. The default message is still displayed.
  * The time stamp used for file-based logs is now more consistent
  with the time stamp produced by syslog. GitHub issue #327.
  * Sudo will now warn the user if it can detect the user’s terminal but
  cannot determine the path to the terminal device. The sudoers time
  stamp file will now use the terminal device number directly.
  GitHub issue #329.
  * The embedded copy of zlib has been updated to version 1.3.1.
  * Improved error handling if generating the list of signals and signal
  names fails at build time.
  * Fixed a compilation issue on Linux systems without process_vm_readv().
  * Fixed cross-compilation with WolfSSL.
  * Added a json_compact value for the sudoers log_format option which can
  be used when logging to a file. The existing json value has been aliased
  to json_pretty. In a future release, json will be an alias for
  json_compact. GitHub issue #357.
  * A new pam_silent sudoers option has been added which may be negated to
  avoid suppressing output from PAM authentication modules. GitHub issue #216.
  * Fixed several cvtsudoers JSON output problems. GitHub issues #369, #370,
  [#371], #373, #381.
  * When sudo runs a command in a pseudo-terminal and the user’s terminal is
  revoked, the pseudo-terminal’s foreground process group will now receive
  SIGHUP before the terminal is revoked. This emulates the behavior of the
  session leader exiting and is consistent with what happens when,
  for example, an ssh session is closed. GitHub issue #367.
  * Fixed make test with Python 3.12. GitHub issue #374.
  * In schema.ActiveDirectory, fixed the quoting in the example command.
  GitHub issue #376.
  * Paths specified via a Chdir_Spec or Chroot_Spec in sudoers may now
  be double-quoted.
  * Sudo insults are now included by default, but disabled unless the
  - -with-insults configure option is specified or the insults sudoers
  option is enabled.
  * The default sudoers file now enables the secure_path option by
  default and preserves the EDITOR, VISUAL, and SUDO_EDITOR environment
  variables when running visudo. The new --with-secure-path-value
  configure option can be used to set the value of secure_path in
  the default sudoers file. GitHub issue #387.
  * A sudoers schema for IBM Directory Server (aka IBM Tivoli Directory
  Server, IBM Security Directory Server, and IBM Security Verify
  Directory) is now included.
  * When cross-compiling sudo, the configure script now assumes that
  the snprintf() function is C99-compliant if the C compiler
  supports the C99 standard. Previously, configure would use sudo’s
  own snprintf() when cross-compiling. GitHub issue #386.</changelog>
  <changelog author="Simon Lees &lt;sflees@suse.de&gt;" date="1751284800">- Update to 1.9.17p1
  * Fix a possible local privilege escalation via the --host option
    [bsc#1245274, CVE-2025-32462]
  * Fix a possible local privilege Escalation via chroot option
    [bsc#1245275, CVE-2025-32463]
- Update to 1.9.17
  * Sudo now uses the NODEV macro consistently. Bug #1074.
    Fixed a bug where the ALL command in a sudoers rule would
    override a previous NOSETENV tag. Command tags are inherited from
    previous Cmnds in a Cmnd_Spec_List. There is a special case for
    the SETENV tag with the ALL command, where SETENV is implied if
    no explicit SETENV or NOSETENV tag is specified. This special
    case did not take into account that a NOSETENV tag that was inherited
    should override this behavior.
  * If sudo is run via ssh without a terminal and a password is required,
    it now suggest using ssh’s -t option.
  * Fixed the display of timeout values in the sudo -V output on systems
    without a C99-compliant snprintf() function.
  * Quieted a number of minor Coverity warnings.
  * Fixed a problem running sudo from a serial console on Linux when the
    command is run in a pseudo-terminal (the default).
  * Fixed a crash in sudo which could occur if there was a fatal error
    after the user was validated but before the command was actually run.
  * Fixed a number of man page style warnings. The “lint” make target in
    the docs directory will now run groff with warnings enabled if it is
    available. Bug #1075.
  * The ignore_dot sudoers setting is now on by default. There is now a
  - -disable-ignore-dot configure option to disable it. The
  - -with-ignore-dot configure option has been deprecated.
  * Fixed a problem with the pwfeedback option where an initial backspace
    would reduce the maximum length allowed for the password.
    GitHub issue #439.
  * Fixed minor grammar and spelling problems in the man pages.
  * Fixed a bug where a user could avoid entering a password for sudo -l
    command if they specified their own user or group name via the -u or
  - g options.
  * Avoid potential password guessing based on timing attacks on the
    strcmp() function on systems without PAM or a crypt() function where
    plaintext passwords are stored in the shadow password file.
  * Fixed a potential information leak where sudo -l command could be used
    to determine whether an executable exists in a directory that they do
    not have search access to.
  * Sudo uses TCSAFLUSH, not TCSADRAIN, when disabling echo once again.
    A long time ago sudo changed from using TCSAFLUSH to TCSADRAIN due
    to some systems having bugs related to TCSAFLUSH. That should no longer
    be a concern. Using TCSAFLUSH ensures that password input that has been
    received by the kernel, but not yet read by sudo, will be discarded and
    not echoed.
  * Added the SUDO_TTY environment variable if the user has a terminal.
    This can be used to find the user’s original tty device when sudo runs
    the command in its own pseudo-terminal. GitHub issue #447.
  * New Cantonese translation for sudo.</changelog>
  <changelog author="Simon Lees &lt;sflees@suse.de&gt;" date="1757937600">- Update to 1.9.17p2
  * Fixed a bug introduced in sudo 1.9.16 that could result in sudo
    sending SIGHUP to all processes on the system in certain rare
    cases. The bug could manifest if sudo is running a command in
    a pseudo-terminal, sudo terminates the command due to an
    internal error, and the user’s terminal is revoked. GitHub
    issue #458.
  * Fixed a bug introduced in sudo 1.9.12 that caused sudo to
    abort when the intercept and intercept_verify options are
    enabled in sudoers and either the command line arguments or
    the environment contains a string larger than the page size
    (usually 4096). This only Linux affects systems that support
    the ptrace_readv_string() function. GitHub issue #453.
  * Fixed a bug in sudo’s configure script introduced in sudo
    1.9.17 that prevented mdoc-format man pages from being used
    on systems without the mandoc utility. Bug #1077.
- /usr/etc/sudoers and file /usr/etc/sudoers.d/50-wheel-auth-self
  both have permissions 0644, while visudo -c complains that they
  should be 0440. (bsc#1249447)
- Policy and Groups subpackages can be noarch</changelog>
  <changelog author="Simon Lees &lt;sflees@suse.de&gt;" date="1775563200">- CVE-2026-35535: potential privilege escalation when running
  the mailer (bsc#1261420)
  * fix-CVE-2026-35535.patch
- Move tests under /usr/share for transactional system support
  (jsc#PED-14830)</changelog>
  <changelog author="Simon Lees &lt;sflees@suse.de&gt;" date="1781179200">- Fix missing %verify(not mode) %{_bindir}/sudo (bsc#1263098)</changelog>
</package>
<package pkgid="b2ed0431420f7f999533ee7ebc219fb9a10eac134d066d8f8b686c553f90ea7bf164877208eec475fd9acbda1029249f488a1699f5b5831bee8bdf28346c0ea1" name="sudo-policy-sudo-auth-self" arch="noarch">
  <version epoch="0" ver="1.9.17p2" rel="291.1"/>
  <changelog author="Jason Sikes &lt;jsikes@suse.com&gt;" date="1676462400">- Update to 1.9.13:
  * Changes in 1.9.13:
    Fixed a bug running relative commands via sudo when log_subcmds
    is enabled. GitHub issue #194.
    Fixed a signal handling bug when running sudo commands in a shell
    script. Signals were not being forwarded to the command when the
    sudo process was not run in its own process group.
    Fixed a bug in the cvtsudoers LDIF parsing when the file ends without
    a newline and a backslash is the last character of the file.
    Fixed a potential use-after-free bug with cvtsudoers filtering.
    GitHub issue #198.
    Added a reminder to the default lecture that the password will not
    echo. This line is only displayed when the pwfeedback option is
    disabled. GitHub issue #195.
    Fixed potential memory leaks in error paths. GitHub issue #199.
    GitHub issue #202.
    Fixed potential NULL dereferences on memory allocation failure.
    GitHub issue #204. GitHub issue #211.
    Sudo now uses C23-style attributes in function prototypes instead
    of gcc-style attributes if supported.
    Added a new list pseudo-command in sudoers to allow a user to list
    another user’s privileges. Previously, only root or a user with
    the ability to run any command as either root or the target user
    on the current host could use the -U option. This also includes a
    fix to the log entry when a user lacks permission to run
    sudo -U otheruser -l command. Previously, the logs would indicate
    that the user tried to run the actual command, now the log entry
    includes the list operation.
    JSON logging now escapes control characters if they happen to
    appear in the command or environment.
    New Albanian translation from translationproject.org.
    Regular expressions in sudoers or logsrvd.conf may no longer contain
    consecutive repetition operators. This is implementation- specific
    behavior according to POSIX, but some implementations will allocate
    excessive amounts of memory. This mainly affects the fuzzers.
    Sudo now builds AIX-style shared libraries and dynamic shared
    objects by default instead of svr4-style. This means that the
    default sudo plugins are now .a (archive) files that contain a .so
    shared object file instead of bare .so files. This was done to
    improve compatibility with the AIX Freeware ecosystem, specifically,
    the AIX Freeware build of OpenSSL. Sudo will still load
    svr4-style .so plugins and if a .so file is requested, either via
    sudo.conf or the sudoers file, and only the .a file is present,
    sudo will convert the path from plugin.so to plugin.a(plugin.so)
    when loading it. This ensures compatibility with existing
    configurations. To restore the old, pre-1.9.13 behavior, run
    configure using the –with-aix-soname=svr4 option.
    Sudo no longer checks the ownership and mode of the plugins that
    it loads. Plugins are configured via either the sudo.conf or
    sudoers file which are trusted configuration files. These checks
    suffered from time-of-check vs. time-of-use race conditions and
    complicate loading plugins that are not simple paths. Ownership
    and mode checks are still performed when loading the sudo.conf
    and sudoers files, which do not suffer from race conditions.
    The sudo.conf developer_mode setting is no longer used.
    Control characters in sudo log messages and sudoreplay -l output
    are now escaped in octal format. Space characters in the command
    path are also escaped. Command line arguments that contain spaces
    are surrounded by single quotes and any literal single quote or
    backslash characters are escaped with a backslash. This makes it
    possible to distinguish multiple command line arguments from a
    single argument that contains spaces.
    Improved support for DragonFly BSD which uses a different
    struct procinfo than either FreeBSD or 4.4BSD.
    Fixed a compilation error on Linux arm systems running older
    kernels that may not define EM_ARM in linux/elf-em.h.
    GitHub issue #232.
    Fixed a compilation error when LDFLAGS contains -Wl,–no-undefined.
    Sudo will now link using -Wl,–no-undefined by default if possible.
    GitHub issue #234.
    Fixed a bug executing a command with a very long argument vector
    when log_subcmds or intercept is enabled on a system where
    intercept_type is set to trace. GitHub issue #194.
    When sudo is configured to run a command in a pseudo-terminal but
    the standard input is not connected to a terminal, the command
    will now be run as a background process. This works around a problem
    running sudo commands in the background from a shell script where
    changing the terminal to raw mode could interfere with the interactive
    shell that ran the script. GitHub issue #237.
    A missing include file in sudoers is no longer a fatal error unless
    the error_recovery plugin argument has been set to false.</changelog>
  <changelog author="Jason Sikes &lt;jsikes@suse.com&gt;" date="1676808000">- Update to 1.9.13p1:
    Fixed a typo in the configure script that resulted in a line like
    “]: command not found” in the output. GitHub issue #238.
    Corrected the order of the C23 [[noreturn]] attribute in function
    prototypes. This fixes a build error with GCC 13. GitHub issue #239.
    The check make target misbehaved when there was more than one
    version of the UTF-8 C locale in the output of locale -a.
    GitHub issue #241.
    Removed a dependency on the AC_SYS_YEAR2038 macro in configure.ac.
    This was added in autoconf 2.72 but sudo’s configure.ac only
    required autoconf 2.70. GitHub issue #242.
    Relaxed the autoconf version requirement to version 2.69.</changelog>
  <changelog author="Jason Sikes &lt;jsikes@suse.com&gt;" date="1677585600">- Update to 1.9.13p2 (bsc#1208595, CVE-2023-27320):
    Fixed the --enable-static-sudoers option, broken in sudo 1.9.13.
    GitHub issue #245.
    Fixed a potential double-free bug when matching a sudoers rule
    that contains a per-command chroot directive (CHROOT=dir).
    This bug was introduced in sudo 1.9.8.</changelog>
  <changelog author="Jason Sikes &lt;jsikes@suse.com&gt;" date="1678363200">- Update to 1.9.13p3:
    Fixed a bug introduced in sudo 1.9.13 that caused a syntax error
    when list was used as a user or host name. GitHub issue #246.
    Fixed a bug that could cause sudo to hang when running a command
    in a pseudo-terminal when there is still input buffered after a
    command has exited. [bsc#1203201]
    Fixed sudo -U otheruser -l command. This is a regression in
    sudo 1.9.13. GitHub issue #248.
    Fixed sudo -l command args when matching a command in sudoers
    with command line arguments. This is a regression in sudo 1.9.13.
    GitHub issue #249.</changelog>
  <changelog author="Michal Koutn&#xFD; &lt;mkoutny@suse.com&gt;" date="1680264000">- sudo.pamd: Use common-session-nonlogin for &gt;15 codestreams
  More info in https://github.com/SUSE/pam-config/pull/16</changelog>
  <changelog author="Paolo Stivanin &lt;info@paolostivanin.com&gt;" date="1689163200">- Update to 1.9.14p1:
  * Fixed an invalid free bug in sudo_logsrvd that was introduced
    in version 1.9.14 which could cause sudo_logsrvd to crash.
  * The sudoers plugin no longer tries to send the terminal name
    to the log server when no terminal is present.  This bug was
    introduced in version 1.9.14.
  * Fixed a bug where if the "intercept" or "log_subcmds" sudoers
    option was enabled and a sub-command was run where the first
    entry of the argument vector didn't match the command being run.
    This resulted in commands like "sudo su -" being killed due to
    the mismatch.  Bug #1050.
  * The sudoers plugin now canonicalizes command path names before
    matching (where possible).  This fixes a bug where sudo could
    execute the wrong path if there are multiple symbolic links with
    the same target and the same base name in sudoers that a user is
    allowed to run.  GitHub issue #228.
  * Improved command matching when a chroot is specified in sudoers.
    The sudoers plugin will now change the root directory id needed
    before performing command matching.  Previously, the root directory
    was simply prepended to the path that was being processed.
  * When NETGROUP_BASE is set in the ldap.conf file, sudo will now
    perform its own netgroup lookups of the host name instead of
    using the system innetgr(3) function.  This guarantees that user
    and host netgroup lookups are performed using  the same LDAP
    server (or servers).
  * Fixed a bug introduced in sudo 1.9.13 that resulted in a missing
    " ; " separator between environment variables and the command
    in log entries.
  * The visudo utility now displays a warning when it ignores a file
    in an include dir such as /etc/sudoers.d.
  * When running a command in a pseudo-terminal, sudo will initialize
    the terminal settings even if it is the background process.
    Previously, sudo only initialized the pseudo-terminal when running
    in the foreground.  This fixes an issue where a program that
    checks the window size would read the wrong value when sudo was
    running in the background.
  * Fixed a bug where only the first two digits of the TSID field
    being was logged.  Bug #1046.
  * The "log_pty" sudoers option is now enabled by default.  To
    restore the historic behavior where a command is run in the
    user's terminal, add "Defaults !use_pty" to the sudoers file.
    GitHub issue #258.
  * Sudo's "-b" option now works when the command is run in a
    pseudo-terminal.
  * When disabling core dumps, sudo now only modifies the soft limit
    and leaves the hard limit as-is.  This avoids problems on Linux
    when sudo does not have CAP_SYS_RESOURCE, which may be the case
    when run inside a container.  GitHub issue #42.
  * Sudo configuration file paths have been converted to colon-separated
    lists of paths.  This makes it possible to have configuration
    files on a read-only file system while still allowing for local
    modifications in a different (writable) directory.  The new
  - -enable-adminconf configure option can be used to specify a
    directory that is searched for configuration files in preference
    to the sysconfdir (which is usually /etc).
  * The "intercept_verify" sudoers option is now only applied when
    the "intercept" option is set in sudoers.  Previously, it was
    also applied when "log_subcmds" was enabled.
  * The NETGROUP_QUERY ldap.conf parameter can now be disabled for
    LDAP servers that do not support querying the nisNetgroup object
    by its nisNetgroupTriple attribute, while still allowing sudo to
    query the LDAP server directly to determine netgroup membership.
  * Fixed a long-standing bug where a sudoers rule without an explicit
    runas list allowed the user to run a command as root and any
    group instead of just one of the groups that root is a member
    of.  For example, a rule such as "myuser ALL = ALL" would permit
    "sudo -u root -g othergroup" even if root did not belong to
    "othergroup".
  * Fixed a bug where a sudoers rule with an explicit runas list
    allowed a user to run sudo commands as themselves.  For example,
    a rule such as "myuser ALL = (root) ALL", "myuser" should only
    allow commands to be run as root (optionally using one of root's
    groups).  However, the rule also allowed the user to run
    "sudo -u myuser -g myuser command".
  * Fixed a bug that prevented the user from specifying a group on
    the command line via "sudo -g" if the rule's Runas_Spec contained
    a Runas_Alias.
  * Sudo now requires a C compiler that conforms to ISO C99 or higher
    to build.</changelog>
  <changelog author="Otto Hollmann &lt;otto.hollmann@suse.com&gt;" date="1694520000">- Update to 1.9.14p3:
  * Fixed a crash with Python 3.12 when the sudo Python python is unloaded.
    This only affects make check for the Python plugin.
  * Adapted the sudo Python plugin test output to match Python 3.12.
- Update to 1.9.14p2:
  * Fixed a crash on Linux systems introduced in version 1.9.14 when running a
    command with a NULL argv[0] if log_subcmds or intercept is enabled in
    sudoers.
  * Fixed a problem with "stair-stepped" output when piping or redirecting the
    output of a sudo command that takes user input when running a command in
    a pseudo-terminal.
  * Fixed a bug introduced in sudo 1.9.14 that affects matching sudoers rules
    containing a Runas_Spec with an empty Runas user. These rules should only
    match when sudo’s -g option is used but were matching even without the -g
    option. #290.</changelog>
  <changelog author="Otto Hollmann &lt;otto.hollmann@suse.com&gt;" date="1694692800">- Install config files into /usr/etc and read from both location:
  /etc and /usr/etc (bsc#1205118)</changelog>
  <changelog author="Ludwig Nussel &lt;lnussel@suse.com&gt;" date="1695211200">- Introduce optional wheel and sudo group policies as separate packages
  (bsc#1203978, jsc#PED-260)</changelog>
  <changelog author="Dominique Leuenberger &lt;dimstar@opensuse.org&gt;" date="1700568000">- Package/ship empty /etc/sudoers.d directory for admins to
  discover where to put their won config.</changelog>
  <changelog author="Otto Hollmann &lt;otto.hollmann@suse.com&gt;" date="1700654400">- Update to 1.9.15p2:
  * Fixed a bug on BSD systems where sudo would not restore the
    terminal settings on exit if the terminal had parity enabled.
    GitHub issue #326.
- Update to 1.9.15p1:
  * Fixed a bug introduced in sudo 1.9.15 that prevented LDAP-based
    sudoers from being able to read the ldap.conf file.
    GitHub issue #325.
- Update to 1.9.15:
  * Fixed an undefined symbol problem on older versions of macOS
    when "intercept" or "log_subcmds" are enabled in sudoers.
    GitHub issue #276.
  * Fixed "make check" failure related to getpwent(3) wrapping
    on NetBSD.
  * Fixed the warning message for "sudo -l command" when the command
    is not permitted.  There was a missing space between "list" and
    the actual command due to changes in sudo 1.9.14.
  * Fixed a bug where output could go to the wrong terminal if
    "use_pty" is enabled (the default) and the standard input, output
    or error is redirected to a different terminal.  Bug #1056.
  * The visudo utility will no longer create an empty file when the
    specified sudoers file does not exist and the user exits the
    editor without making any changes.  GitHub issue #294.
  * The AIX and Solaris sudo packages on www.sudo.ws now support
    "log_subcmds" and "intercept" with both 32-bit and 64-bit
    binaries.  Previously, they only worked when running binaries
    with the same word size as the sudo binary.  GitHub issue #289.
  * The sudoers source is now logged in the JSON event log.  This
    makes it possible to tell which rule resulted in a match.
  * Running "sudo -ll command" now produces verbose output that
    includes matching rule as well as the path to the sudoers file
    the matching rule came from.  For LDAP sudoers, the name of the
    matching sudoRole is printed instead.
  * The embedded copy of zlib has been updated to version 1.3.
  * The sudoers plugin has been modified to make it more resilient
    to ROWHAMMER attacks on authentication and policy matching.
    This addresses CVE-2023-42465.
  * The sudoers plugin now constructs the user time stamp file path
    name using the user-ID instead of the user name.  This avoids a
    potential problem with user names that contain a path separator
    ('/') being interpreted as part of the path name.  A similar
    issue in sudo-rs has been assigned CVE-2023-42456.
  * A path separator ('/') in a user, group or host name is now
    replaced with an underbar character ('_') when expanding escapes
    in @include and @includedir directives as well as the "iolog_file"
    and "iolog_dir" sudoers Default settings.
  * The "intercept_verify" sudoers option is now only applied when
    the "intercept" option is set in sudoers.  Previously, it was
    also applied when "log_subcmds" was enabled.  Sudo 1.9.14
    contained an incorrect fix for this.  Bug #1058.
  * Changes to terminal settings are now performed atomically, where
    possible.  If the command is being run in a pseudo-terminal and
    the user's terminal is already in raw mode, sudo will not change
    the user's terminal settings.  This prevents concurrent sudo
    processes from restoring the terminal settings to the wrong values.
    GitHub issue #312.
  * Reverted a change from sudo 1.9.4 that resulted in PAM session
    modules being called with the environment of the command to be
    run instead of the environment of the invoking user.
    GitHub issue #318.
  * New Indonesian translation from translationproject.org.
  * The sudo_logsrvd server will now raise its open file descriptor
    limit to the maximum allowed value when it starts up.  Each
    connection can require up to nine open file descriptors so the
    default soft limit may be too low.
  * Better log message when rejecting a command if the "intercept"
    option is enabled and the "intercept_allow_setid" option is
    disabled.  Previously, "command not allowed" would be logged and
    the user had no way of knowing what the actual problem was.
  * Sudo will now log the invoking user's environment as "submitenv"
    in the JSON logs.  The command's environment ("runenv") is no
    longer logged for commands rejected by the sudoers file or an
    approval plugin.</changelog>
  <changelog author="Otto Hollmann &lt;otto.hollmann@suse.com&gt;" date="1702900800">- Update to 1.9.15p4:
  * Fixed a bug introduced in sudo 1.9.15 that could prevent a user’s
    privileges from being listed by sudo -l if the sudoers entry
    in /etc/nsswitch.conf contains [SUCCESS=return]. This did not affect the
    ability to run commands via sudo. Bug #1063.
- Update to 1.9.15p3:
  * Always disable core dumps when sudo sends itself a fatal signal. Fixes a
    problem where sudo could potentially dump core dump when it re-sends the
    fatal signal to itself. This is only an issue if the command   * received
    a signal that would normally result in a core dump but the command did
    not actually dump core.
  * Fixed a bug matching a command with a relative path name when the sudoers
    rule uses shell globbing rules for the path name. Bug #1062.
  * Permit visudo to be run even if the local host name is not set. GitHub
    issue #332.
  * Fixed an editing error introduced in sudo 1.9.15 that could prevent
    sudoreplay from replaying sessions correctly. GitHub issue #334.
  * Fixed a bug introduced in sudo 1.9.15 where sudo -l &gt; /dev/null could hang
    on Linux systems. GitHub issue #335.
  * Fixed a bug introduced in sudo 1.9.15 where Solaris privileges specified
    in sudoers were not applied to the command being run.</changelog>
  <changelog author="Otto Hollmann &lt;otto.hollmann@suse.com&gt;" date="1702900801">- For existing products (SLE15-SP* and older) keep using /etc and don't
  switch to /usr/etc. So only SLES16/ALP, Tumbleweed and newer products
  will use both /etc and /usr/etc locations.</changelog>
  <changelog author="Otto Hollmann &lt;otto.hollmann@suse.com&gt;" date="1704196800">- Update to 1.9.15p5:
  * Fixed evaluation of the lecture, listpw, verifypw, and fdexec sudoers
    Defaults settings when used without an explicit value. Previously, if
    specified without a value they were evaluated as boolean false, even when
    the negation operator ('!') was not present.
  * Fixed a bug introduced in sudo 1.9.14 that prevented LDAP netgroup queries
    using the NETGROUP_BASE setting from being performed.
  * Sudo will now transparently rename a user's lecture file from the older
    name-based path to the newer user-ID-based path. GitHub issue #342.
  * Fixed a bug introduced in sudo 1.9.15 that could cause a memory allocation
    failure if sysconf(_SC_LOGIN_NAME_MAX) fails. Bug #1066.</changelog>
  <changelog author="Simon Lees &lt;sflees@suse.de&gt;" date="1722254400">- A quick note that bsc#1227574 is expected behavior in this
  version of sudo. It was a regression in 15.6 which doesn't have
  the /etc/ split for pam.d yet.</changelog>
  <changelog author="Simon Lees &lt;sflees@suse.de&gt;" date="1744804800">- Update to 1.9.16p2:
  * Sudo now passes the terminal device number to the policy plugin
  even if it cannot resolve it to a path name. This allows sudo to
  run without warnings in a chroot jail when the terminal device
  files are not present. GitHub issue #421.
  * On Linux systems, sudo will now attempt to use the symbolic links
  in /proc/self/fd/{0,1,2} when resolving the terminal device number.
  This can allow sudo to map a terminal device to its path name even
  when /dev/pts is not mounted in a chroot jail.
  * Fixed compilation errors with gcc and clang in C23 mode. C23 no
  longer supports functions with unspecified arguments. GitHub issue
  [#420].
  * Fixed the test for cross-compiling when checking for C99 snprintf().
  The changes made to the test in sudo 1.9.16 resulted in a different
  problem. GitHub issue #386.
  * Fixed the date used by the exit record in sudo-format log files.
  This was a regression introduced in sudo 1.9.16 and only affected
  file-based logs, not syslog. GitHub issue #405.
  * Fixed the root cause of the “unable to find terminal name for device”
  message when running sudo on AIX when no terminal is present. In
  sudo 1.9.16 this was turned from a debug message into a warning.
  GitHub issue #408.
  * When a duplicate alias is found in the sudoers file, the warning
  message now includes the file and line number of the previous
  definition.
  * Added support for the --with-secure-path-value=no configure option
  to allow packagers to ship the default sudoers file with the secure
  path line commented out.
  * Sudo no longer sends mail when a user runs sudo -nv or sudo -nl,
  even if mail_badpass or mail_always are set. Sudo already avoids
  logging to a file or syslog in this case. Bug #1072.
  * Added the cmddenial_message sudoers option to provide additional
  information to the user when a command is denied by the sudoers
  policy. The default message is still displayed.
  * The time stamp used for file-based logs is now more consistent
  with the time stamp produced by syslog. GitHub issue #327.
  * Sudo will now warn the user if it can detect the user’s terminal but
  cannot determine the path to the terminal device. The sudoers time
  stamp file will now use the terminal device number directly.
  GitHub issue #329.
  * The embedded copy of zlib has been updated to version 1.3.1.
  * Improved error handling if generating the list of signals and signal
  names fails at build time.
  * Fixed a compilation issue on Linux systems without process_vm_readv().
  * Fixed cross-compilation with WolfSSL.
  * Added a json_compact value for the sudoers log_format option which can
  be used when logging to a file. The existing json value has been aliased
  to json_pretty. In a future release, json will be an alias for
  json_compact. GitHub issue #357.
  * A new pam_silent sudoers option has been added which may be negated to
  avoid suppressing output from PAM authentication modules. GitHub issue #216.
  * Fixed several cvtsudoers JSON output problems. GitHub issues #369, #370,
  [#371], #373, #381.
  * When sudo runs a command in a pseudo-terminal and the user’s terminal is
  revoked, the pseudo-terminal’s foreground process group will now receive
  SIGHUP before the terminal is revoked. This emulates the behavior of the
  session leader exiting and is consistent with what happens when,
  for example, an ssh session is closed. GitHub issue #367.
  * Fixed make test with Python 3.12. GitHub issue #374.
  * In schema.ActiveDirectory, fixed the quoting in the example command.
  GitHub issue #376.
  * Paths specified via a Chdir_Spec or Chroot_Spec in sudoers may now
  be double-quoted.
  * Sudo insults are now included by default, but disabled unless the
  - -with-insults configure option is specified or the insults sudoers
  option is enabled.
  * The default sudoers file now enables the secure_path option by
  default and preserves the EDITOR, VISUAL, and SUDO_EDITOR environment
  variables when running visudo. The new --with-secure-path-value
  configure option can be used to set the value of secure_path in
  the default sudoers file. GitHub issue #387.
  * A sudoers schema for IBM Directory Server (aka IBM Tivoli Directory
  Server, IBM Security Directory Server, and IBM Security Verify
  Directory) is now included.
  * When cross-compiling sudo, the configure script now assumes that
  the snprintf() function is C99-compliant if the C compiler
  supports the C99 standard. Previously, configure would use sudo’s
  own snprintf() when cross-compiling. GitHub issue #386.</changelog>
  <changelog author="Simon Lees &lt;sflees@suse.de&gt;" date="1751284800">- Update to 1.9.17p1
  * Fix a possible local privilege escalation via the --host option
    [bsc#1245274, CVE-2025-32462]
  * Fix a possible local privilege Escalation via chroot option
    [bsc#1245275, CVE-2025-32463]
- Update to 1.9.17
  * Sudo now uses the NODEV macro consistently. Bug #1074.
    Fixed a bug where the ALL command in a sudoers rule would
    override a previous NOSETENV tag. Command tags are inherited from
    previous Cmnds in a Cmnd_Spec_List. There is a special case for
    the SETENV tag with the ALL command, where SETENV is implied if
    no explicit SETENV or NOSETENV tag is specified. This special
    case did not take into account that a NOSETENV tag that was inherited
    should override this behavior.
  * If sudo is run via ssh without a terminal and a password is required,
    it now suggest using ssh’s -t option.
  * Fixed the display of timeout values in the sudo -V output on systems
    without a C99-compliant snprintf() function.
  * Quieted a number of minor Coverity warnings.
  * Fixed a problem running sudo from a serial console on Linux when the
    command is run in a pseudo-terminal (the default).
  * Fixed a crash in sudo which could occur if there was a fatal error
    after the user was validated but before the command was actually run.
  * Fixed a number of man page style warnings. The “lint” make target in
    the docs directory will now run groff with warnings enabled if it is
    available. Bug #1075.
  * The ignore_dot sudoers setting is now on by default. There is now a
  - -disable-ignore-dot configure option to disable it. The
  - -with-ignore-dot configure option has been deprecated.
  * Fixed a problem with the pwfeedback option where an initial backspace
    would reduce the maximum length allowed for the password.
    GitHub issue #439.
  * Fixed minor grammar and spelling problems in the man pages.
  * Fixed a bug where a user could avoid entering a password for sudo -l
    command if they specified their own user or group name via the -u or
  - g options.
  * Avoid potential password guessing based on timing attacks on the
    strcmp() function on systems without PAM or a crypt() function where
    plaintext passwords are stored in the shadow password file.
  * Fixed a potential information leak where sudo -l command could be used
    to determine whether an executable exists in a directory that they do
    not have search access to.
  * Sudo uses TCSAFLUSH, not TCSADRAIN, when disabling echo once again.
    A long time ago sudo changed from using TCSAFLUSH to TCSADRAIN due
    to some systems having bugs related to TCSAFLUSH. That should no longer
    be a concern. Using TCSAFLUSH ensures that password input that has been
    received by the kernel, but not yet read by sudo, will be discarded and
    not echoed.
  * Added the SUDO_TTY environment variable if the user has a terminal.
    This can be used to find the user’s original tty device when sudo runs
    the command in its own pseudo-terminal. GitHub issue #447.
  * New Cantonese translation for sudo.</changelog>
  <changelog author="Simon Lees &lt;sflees@suse.de&gt;" date="1757937600">- Update to 1.9.17p2
  * Fixed a bug introduced in sudo 1.9.16 that could result in sudo
    sending SIGHUP to all processes on the system in certain rare
    cases. The bug could manifest if sudo is running a command in
    a pseudo-terminal, sudo terminates the command due to an
    internal error, and the user’s terminal is revoked. GitHub
    issue #458.
  * Fixed a bug introduced in sudo 1.9.12 that caused sudo to
    abort when the intercept and intercept_verify options are
    enabled in sudoers and either the command line arguments or
    the environment contains a string larger than the page size
    (usually 4096). This only Linux affects systems that support
    the ptrace_readv_string() function. GitHub issue #453.
  * Fixed a bug in sudo’s configure script introduced in sudo
    1.9.17 that prevented mdoc-format man pages from being used
    on systems without the mandoc utility. Bug #1077.
- /usr/etc/sudoers and file /usr/etc/sudoers.d/50-wheel-auth-self
  both have permissions 0644, while visudo -c complains that they
  should be 0440. (bsc#1249447)
- Policy and Groups subpackages can be noarch</changelog>
  <changelog author="Simon Lees &lt;sflees@suse.de&gt;" date="1775563200">- CVE-2026-35535: potential privilege escalation when running
  the mailer (bsc#1261420)
  * fix-CVE-2026-35535.patch
- Move tests under /usr/share for transactional system support
  (jsc#PED-14830)</changelog>
  <changelog author="Simon Lees &lt;sflees@suse.de&gt;" date="1781179200">- Fix missing %verify(not mode) %{_bindir}/sudo (bsc#1263098)</changelog>
</package>
<package pkgid="268236b877be48415b73b04e2e25313ce4002c467683209edecbf38ea94708fbe4d65edb4abbe7f03527e8c3222c735bcae97536938befb5efb735ff2cacb2e8" name="sudo-policy-wheel-auth-self" arch="noarch">
  <version epoch="0" ver="1.9.17p2" rel="291.1"/>
  <changelog author="Jason Sikes &lt;jsikes@suse.com&gt;" date="1676462400">- Update to 1.9.13:
  * Changes in 1.9.13:
    Fixed a bug running relative commands via sudo when log_subcmds
    is enabled. GitHub issue #194.
    Fixed a signal handling bug when running sudo commands in a shell
    script. Signals were not being forwarded to the command when the
    sudo process was not run in its own process group.
    Fixed a bug in the cvtsudoers LDIF parsing when the file ends without
    a newline and a backslash is the last character of the file.
    Fixed a potential use-after-free bug with cvtsudoers filtering.
    GitHub issue #198.
    Added a reminder to the default lecture that the password will not
    echo. This line is only displayed when the pwfeedback option is
    disabled. GitHub issue #195.
    Fixed potential memory leaks in error paths. GitHub issue #199.
    GitHub issue #202.
    Fixed potential NULL dereferences on memory allocation failure.
    GitHub issue #204. GitHub issue #211.
    Sudo now uses C23-style attributes in function prototypes instead
    of gcc-style attributes if supported.
    Added a new list pseudo-command in sudoers to allow a user to list
    another user’s privileges. Previously, only root or a user with
    the ability to run any command as either root or the target user
    on the current host could use the -U option. This also includes a
    fix to the log entry when a user lacks permission to run
    sudo -U otheruser -l command. Previously, the logs would indicate
    that the user tried to run the actual command, now the log entry
    includes the list operation.
    JSON logging now escapes control characters if they happen to
    appear in the command or environment.
    New Albanian translation from translationproject.org.
    Regular expressions in sudoers or logsrvd.conf may no longer contain
    consecutive repetition operators. This is implementation- specific
    behavior according to POSIX, but some implementations will allocate
    excessive amounts of memory. This mainly affects the fuzzers.
    Sudo now builds AIX-style shared libraries and dynamic shared
    objects by default instead of svr4-style. This means that the
    default sudo plugins are now .a (archive) files that contain a .so
    shared object file instead of bare .so files. This was done to
    improve compatibility with the AIX Freeware ecosystem, specifically,
    the AIX Freeware build of OpenSSL. Sudo will still load
    svr4-style .so plugins and if a .so file is requested, either via
    sudo.conf or the sudoers file, and only the .a file is present,
    sudo will convert the path from plugin.so to plugin.a(plugin.so)
    when loading it. This ensures compatibility with existing
    configurations. To restore the old, pre-1.9.13 behavior, run
    configure using the –with-aix-soname=svr4 option.
    Sudo no longer checks the ownership and mode of the plugins that
    it loads. Plugins are configured via either the sudo.conf or
    sudoers file which are trusted configuration files. These checks
    suffered from time-of-check vs. time-of-use race conditions and
    complicate loading plugins that are not simple paths. Ownership
    and mode checks are still performed when loading the sudo.conf
    and sudoers files, which do not suffer from race conditions.
    The sudo.conf developer_mode setting is no longer used.
    Control characters in sudo log messages and sudoreplay -l output
    are now escaped in octal format. Space characters in the command
    path are also escaped. Command line arguments that contain spaces
    are surrounded by single quotes and any literal single quote or
    backslash characters are escaped with a backslash. This makes it
    possible to distinguish multiple command line arguments from a
    single argument that contains spaces.
    Improved support for DragonFly BSD which uses a different
    struct procinfo than either FreeBSD or 4.4BSD.
    Fixed a compilation error on Linux arm systems running older
    kernels that may not define EM_ARM in linux/elf-em.h.
    GitHub issue #232.
    Fixed a compilation error when LDFLAGS contains -Wl,–no-undefined.
    Sudo will now link using -Wl,–no-undefined by default if possible.
    GitHub issue #234.
    Fixed a bug executing a command with a very long argument vector
    when log_subcmds or intercept is enabled on a system where
    intercept_type is set to trace. GitHub issue #194.
    When sudo is configured to run a command in a pseudo-terminal but
    the standard input is not connected to a terminal, the command
    will now be run as a background process. This works around a problem
    running sudo commands in the background from a shell script where
    changing the terminal to raw mode could interfere with the interactive
    shell that ran the script. GitHub issue #237.
    A missing include file in sudoers is no longer a fatal error unless
    the error_recovery plugin argument has been set to false.</changelog>
  <changelog author="Jason Sikes &lt;jsikes@suse.com&gt;" date="1676808000">- Update to 1.9.13p1:
    Fixed a typo in the configure script that resulted in a line like
    “]: command not found” in the output. GitHub issue #238.
    Corrected the order of the C23 [[noreturn]] attribute in function
    prototypes. This fixes a build error with GCC 13. GitHub issue #239.
    The check make target misbehaved when there was more than one
    version of the UTF-8 C locale in the output of locale -a.
    GitHub issue #241.
    Removed a dependency on the AC_SYS_YEAR2038 macro in configure.ac.
    This was added in autoconf 2.72 but sudo’s configure.ac only
    required autoconf 2.70. GitHub issue #242.
    Relaxed the autoconf version requirement to version 2.69.</changelog>
  <changelog author="Jason Sikes &lt;jsikes@suse.com&gt;" date="1677585600">- Update to 1.9.13p2 (bsc#1208595, CVE-2023-27320):
    Fixed the --enable-static-sudoers option, broken in sudo 1.9.13.
    GitHub issue #245.
    Fixed a potential double-free bug when matching a sudoers rule
    that contains a per-command chroot directive (CHROOT=dir).
    This bug was introduced in sudo 1.9.8.</changelog>
  <changelog author="Jason Sikes &lt;jsikes@suse.com&gt;" date="1678363200">- Update to 1.9.13p3:
    Fixed a bug introduced in sudo 1.9.13 that caused a syntax error
    when list was used as a user or host name. GitHub issue #246.
    Fixed a bug that could cause sudo to hang when running a command
    in a pseudo-terminal when there is still input buffered after a
    command has exited. [bsc#1203201]
    Fixed sudo -U otheruser -l command. This is a regression in
    sudo 1.9.13. GitHub issue #248.
    Fixed sudo -l command args when matching a command in sudoers
    with command line arguments. This is a regression in sudo 1.9.13.
    GitHub issue #249.</changelog>
  <changelog author="Michal Koutn&#xFD; &lt;mkoutny@suse.com&gt;" date="1680264000">- sudo.pamd: Use common-session-nonlogin for &gt;15 codestreams
  More info in https://github.com/SUSE/pam-config/pull/16</changelog>
  <changelog author="Paolo Stivanin &lt;info@paolostivanin.com&gt;" date="1689163200">- Update to 1.9.14p1:
  * Fixed an invalid free bug in sudo_logsrvd that was introduced
    in version 1.9.14 which could cause sudo_logsrvd to crash.
  * The sudoers plugin no longer tries to send the terminal name
    to the log server when no terminal is present.  This bug was
    introduced in version 1.9.14.
  * Fixed a bug where if the "intercept" or "log_subcmds" sudoers
    option was enabled and a sub-command was run where the first
    entry of the argument vector didn't match the command being run.
    This resulted in commands like "sudo su -" being killed due to
    the mismatch.  Bug #1050.
  * The sudoers plugin now canonicalizes command path names before
    matching (where possible).  This fixes a bug where sudo could
    execute the wrong path if there are multiple symbolic links with
    the same target and the same base name in sudoers that a user is
    allowed to run.  GitHub issue #228.
  * Improved command matching when a chroot is specified in sudoers.
    The sudoers plugin will now change the root directory id needed
    before performing command matching.  Previously, the root directory
    was simply prepended to the path that was being processed.
  * When NETGROUP_BASE is set in the ldap.conf file, sudo will now
    perform its own netgroup lookups of the host name instead of
    using the system innetgr(3) function.  This guarantees that user
    and host netgroup lookups are performed using  the same LDAP
    server (or servers).
  * Fixed a bug introduced in sudo 1.9.13 that resulted in a missing
    " ; " separator between environment variables and the command
    in log entries.
  * The visudo utility now displays a warning when it ignores a file
    in an include dir such as /etc/sudoers.d.
  * When running a command in a pseudo-terminal, sudo will initialize
    the terminal settings even if it is the background process.
    Previously, sudo only initialized the pseudo-terminal when running
    in the foreground.  This fixes an issue where a program that
    checks the window size would read the wrong value when sudo was
    running in the background.
  * Fixed a bug where only the first two digits of the TSID field
    being was logged.  Bug #1046.
  * The "log_pty" sudoers option is now enabled by default.  To
    restore the historic behavior where a command is run in the
    user's terminal, add "Defaults !use_pty" to the sudoers file.
    GitHub issue #258.
  * Sudo's "-b" option now works when the command is run in a
    pseudo-terminal.
  * When disabling core dumps, sudo now only modifies the soft limit
    and leaves the hard limit as-is.  This avoids problems on Linux
    when sudo does not have CAP_SYS_RESOURCE, which may be the case
    when run inside a container.  GitHub issue #42.
  * Sudo configuration file paths have been converted to colon-separated
    lists of paths.  This makes it possible to have configuration
    files on a read-only file system while still allowing for local
    modifications in a different (writable) directory.  The new
  - -enable-adminconf configure option can be used to specify a
    directory that is searched for configuration files in preference
    to the sysconfdir (which is usually /etc).
  * The "intercept_verify" sudoers option is now only applied when
    the "intercept" option is set in sudoers.  Previously, it was
    also applied when "log_subcmds" was enabled.
  * The NETGROUP_QUERY ldap.conf parameter can now be disabled for
    LDAP servers that do not support querying the nisNetgroup object
    by its nisNetgroupTriple attribute, while still allowing sudo to
    query the LDAP server directly to determine netgroup membership.
  * Fixed a long-standing bug where a sudoers rule without an explicit
    runas list allowed the user to run a command as root and any
    group instead of just one of the groups that root is a member
    of.  For example, a rule such as "myuser ALL = ALL" would permit
    "sudo -u root -g othergroup" even if root did not belong to
    "othergroup".
  * Fixed a bug where a sudoers rule with an explicit runas list
    allowed a user to run sudo commands as themselves.  For example,
    a rule such as "myuser ALL = (root) ALL", "myuser" should only
    allow commands to be run as root (optionally using one of root's
    groups).  However, the rule also allowed the user to run
    "sudo -u myuser -g myuser command".
  * Fixed a bug that prevented the user from specifying a group on
    the command line via "sudo -g" if the rule's Runas_Spec contained
    a Runas_Alias.
  * Sudo now requires a C compiler that conforms to ISO C99 or higher
    to build.</changelog>
  <changelog author="Otto Hollmann &lt;otto.hollmann@suse.com&gt;" date="1694520000">- Update to 1.9.14p3:
  * Fixed a crash with Python 3.12 when the sudo Python python is unloaded.
    This only affects make check for the Python plugin.
  * Adapted the sudo Python plugin test output to match Python 3.12.
- Update to 1.9.14p2:
  * Fixed a crash on Linux systems introduced in version 1.9.14 when running a
    command with a NULL argv[0] if log_subcmds or intercept is enabled in
    sudoers.
  * Fixed a problem with "stair-stepped" output when piping or redirecting the
    output of a sudo command that takes user input when running a command in
    a pseudo-terminal.
  * Fixed a bug introduced in sudo 1.9.14 that affects matching sudoers rules
    containing a Runas_Spec with an empty Runas user. These rules should only
    match when sudo’s -g option is used but were matching even without the -g
    option. #290.</changelog>
  <changelog author="Otto Hollmann &lt;otto.hollmann@suse.com&gt;" date="1694692800">- Install config files into /usr/etc and read from both location:
  /etc and /usr/etc (bsc#1205118)</changelog>
  <changelog author="Ludwig Nussel &lt;lnussel@suse.com&gt;" date="1695211200">- Introduce optional wheel and sudo group policies as separate packages
  (bsc#1203978, jsc#PED-260)</changelog>
  <changelog author="Dominique Leuenberger &lt;dimstar@opensuse.org&gt;" date="1700568000">- Package/ship empty /etc/sudoers.d directory for admins to
  discover where to put their won config.</changelog>
  <changelog author="Otto Hollmann &lt;otto.hollmann@suse.com&gt;" date="1700654400">- Update to 1.9.15p2:
  * Fixed a bug on BSD systems where sudo would not restore the
    terminal settings on exit if the terminal had parity enabled.
    GitHub issue #326.
- Update to 1.9.15p1:
  * Fixed a bug introduced in sudo 1.9.15 that prevented LDAP-based
    sudoers from being able to read the ldap.conf file.
    GitHub issue #325.
- Update to 1.9.15:
  * Fixed an undefined symbol problem on older versions of macOS
    when "intercept" or "log_subcmds" are enabled in sudoers.
    GitHub issue #276.
  * Fixed "make check" failure related to getpwent(3) wrapping
    on NetBSD.
  * Fixed the warning message for "sudo -l command" when the command
    is not permitted.  There was a missing space between "list" and
    the actual command due to changes in sudo 1.9.14.
  * Fixed a bug where output could go to the wrong terminal if
    "use_pty" is enabled (the default) and the standard input, output
    or error is redirected to a different terminal.  Bug #1056.
  * The visudo utility will no longer create an empty file when the
    specified sudoers file does not exist and the user exits the
    editor without making any changes.  GitHub issue #294.
  * The AIX and Solaris sudo packages on www.sudo.ws now support
    "log_subcmds" and "intercept" with both 32-bit and 64-bit
    binaries.  Previously, they only worked when running binaries
    with the same word size as the sudo binary.  GitHub issue #289.
  * The sudoers source is now logged in the JSON event log.  This
    makes it possible to tell which rule resulted in a match.
  * Running "sudo -ll command" now produces verbose output that
    includes matching rule as well as the path to the sudoers file
    the matching rule came from.  For LDAP sudoers, the name of the
    matching sudoRole is printed instead.
  * The embedded copy of zlib has been updated to version 1.3.
  * The sudoers plugin has been modified to make it more resilient
    to ROWHAMMER attacks on authentication and policy matching.
    This addresses CVE-2023-42465.
  * The sudoers plugin now constructs the user time stamp file path
    name using the user-ID instead of the user name.  This avoids a
    potential problem with user names that contain a path separator
    ('/') being interpreted as part of the path name.  A similar
    issue in sudo-rs has been assigned CVE-2023-42456.
  * A path separator ('/') in a user, group or host name is now
    replaced with an underbar character ('_') when expanding escapes
    in @include and @includedir directives as well as the "iolog_file"
    and "iolog_dir" sudoers Default settings.
  * The "intercept_verify" sudoers option is now only applied when
    the "intercept" option is set in sudoers.  Previously, it was
    also applied when "log_subcmds" was enabled.  Sudo 1.9.14
    contained an incorrect fix for this.  Bug #1058.
  * Changes to terminal settings are now performed atomically, where
    possible.  If the command is being run in a pseudo-terminal and
    the user's terminal is already in raw mode, sudo will not change
    the user's terminal settings.  This prevents concurrent sudo
    processes from restoring the terminal settings to the wrong values.
    GitHub issue #312.
  * Reverted a change from sudo 1.9.4 that resulted in PAM session
    modules being called with the environment of the command to be
    run instead of the environment of the invoking user.
    GitHub issue #318.
  * New Indonesian translation from translationproject.org.
  * The sudo_logsrvd server will now raise its open file descriptor
    limit to the maximum allowed value when it starts up.  Each
    connection can require up to nine open file descriptors so the
    default soft limit may be too low.
  * Better log message when rejecting a command if the "intercept"
    option is enabled and the "intercept_allow_setid" option is
    disabled.  Previously, "command not allowed" would be logged and
    the user had no way of knowing what the actual problem was.
  * Sudo will now log the invoking user's environment as "submitenv"
    in the JSON logs.  The command's environment ("runenv") is no
    longer logged for commands rejected by the sudoers file or an
    approval plugin.</changelog>
  <changelog author="Otto Hollmann &lt;otto.hollmann@suse.com&gt;" date="1702900800">- Update to 1.9.15p4:
  * Fixed a bug introduced in sudo 1.9.15 that could prevent a user’s
    privileges from being listed by sudo -l if the sudoers entry
    in /etc/nsswitch.conf contains [SUCCESS=return]. This did not affect the
    ability to run commands via sudo. Bug #1063.
- Update to 1.9.15p3:
  * Always disable core dumps when sudo sends itself a fatal signal. Fixes a
    problem where sudo could potentially dump core dump when it re-sends the
    fatal signal to itself. This is only an issue if the command   * received
    a signal that would normally result in a core dump but the command did
    not actually dump core.
  * Fixed a bug matching a command with a relative path name when the sudoers
    rule uses shell globbing rules for the path name. Bug #1062.
  * Permit visudo to be run even if the local host name is not set. GitHub
    issue #332.
  * Fixed an editing error introduced in sudo 1.9.15 that could prevent
    sudoreplay from replaying sessions correctly. GitHub issue #334.
  * Fixed a bug introduced in sudo 1.9.15 where sudo -l &gt; /dev/null could hang
    on Linux systems. GitHub issue #335.
  * Fixed a bug introduced in sudo 1.9.15 where Solaris privileges specified
    in sudoers were not applied to the command being run.</changelog>
  <changelog author="Otto Hollmann &lt;otto.hollmann@suse.com&gt;" date="1702900801">- For existing products (SLE15-SP* and older) keep using /etc and don't
  switch to /usr/etc. So only SLES16/ALP, Tumbleweed and newer products
  will use both /etc and /usr/etc locations.</changelog>
  <changelog author="Otto Hollmann &lt;otto.hollmann@suse.com&gt;" date="1704196800">- Update to 1.9.15p5:
  * Fixed evaluation of the lecture, listpw, verifypw, and fdexec sudoers
    Defaults settings when used without an explicit value. Previously, if
    specified without a value they were evaluated as boolean false, even when
    the negation operator ('!') was not present.
  * Fixed a bug introduced in sudo 1.9.14 that prevented LDAP netgroup queries
    using the NETGROUP_BASE setting from being performed.
  * Sudo will now transparently rename a user's lecture file from the older
    name-based path to the newer user-ID-based path. GitHub issue #342.
  * Fixed a bug introduced in sudo 1.9.15 that could cause a memory allocation
    failure if sysconf(_SC_LOGIN_NAME_MAX) fails. Bug #1066.</changelog>
  <changelog author="Simon Lees &lt;sflees@suse.de&gt;" date="1722254400">- A quick note that bsc#1227574 is expected behavior in this
  version of sudo. It was a regression in 15.6 which doesn't have
  the /etc/ split for pam.d yet.</changelog>
  <changelog author="Simon Lees &lt;sflees@suse.de&gt;" date="1744804800">- Update to 1.9.16p2:
  * Sudo now passes the terminal device number to the policy plugin
  even if it cannot resolve it to a path name. This allows sudo to
  run without warnings in a chroot jail when the terminal device
  files are not present. GitHub issue #421.
  * On Linux systems, sudo will now attempt to use the symbolic links
  in /proc/self/fd/{0,1,2} when resolving the terminal device number.
  This can allow sudo to map a terminal device to its path name even
  when /dev/pts is not mounted in a chroot jail.
  * Fixed compilation errors with gcc and clang in C23 mode. C23 no
  longer supports functions with unspecified arguments. GitHub issue
  [#420].
  * Fixed the test for cross-compiling when checking for C99 snprintf().
  The changes made to the test in sudo 1.9.16 resulted in a different
  problem. GitHub issue #386.
  * Fixed the date used by the exit record in sudo-format log files.
  This was a regression introduced in sudo 1.9.16 and only affected
  file-based logs, not syslog. GitHub issue #405.
  * Fixed the root cause of the “unable to find terminal name for device”
  message when running sudo on AIX when no terminal is present. In
  sudo 1.9.16 this was turned from a debug message into a warning.
  GitHub issue #408.
  * When a duplicate alias is found in the sudoers file, the warning
  message now includes the file and line number of the previous
  definition.
  * Added support for the --with-secure-path-value=no configure option
  to allow packagers to ship the default sudoers file with the secure
  path line commented out.
  * Sudo no longer sends mail when a user runs sudo -nv or sudo -nl,
  even if mail_badpass or mail_always are set. Sudo already avoids
  logging to a file or syslog in this case. Bug #1072.
  * Added the cmddenial_message sudoers option to provide additional
  information to the user when a command is denied by the sudoers
  policy. The default message is still displayed.
  * The time stamp used for file-based logs is now more consistent
  with the time stamp produced by syslog. GitHub issue #327.
  * Sudo will now warn the user if it can detect the user’s terminal but
  cannot determine the path to the terminal device. The sudoers time
  stamp file will now use the terminal device number directly.
  GitHub issue #329.
  * The embedded copy of zlib has been updated to version 1.3.1.
  * Improved error handling if generating the list of signals and signal
  names fails at build time.
  * Fixed a compilation issue on Linux systems without process_vm_readv().
  * Fixed cross-compilation with WolfSSL.
  * Added a json_compact value for the sudoers log_format option which can
  be used when logging to a file. The existing json value has been aliased
  to json_pretty. In a future release, json will be an alias for
  json_compact. GitHub issue #357.
  * A new pam_silent sudoers option has been added which may be negated to
  avoid suppressing output from PAM authentication modules. GitHub issue #216.
  * Fixed several cvtsudoers JSON output problems. GitHub issues #369, #370,
  [#371], #373, #381.
  * When sudo runs a command in a pseudo-terminal and the user’s terminal is
  revoked, the pseudo-terminal’s foreground process group will now receive
  SIGHUP before the terminal is revoked. This emulates the behavior of the
  session leader exiting and is consistent with what happens when,
  for example, an ssh session is closed. GitHub issue #367.
  * Fixed make test with Python 3.12. GitHub issue #374.
  * In schema.ActiveDirectory, fixed the quoting in the example command.
  GitHub issue #376.
  * Paths specified via a Chdir_Spec or Chroot_Spec in sudoers may now
  be double-quoted.
  * Sudo insults are now included by default, but disabled unless the
  - -with-insults configure option is specified or the insults sudoers
  option is enabled.
  * The default sudoers file now enables the secure_path option by
  default and preserves the EDITOR, VISUAL, and SUDO_EDITOR environment
  variables when running visudo. The new --with-secure-path-value
  configure option can be used to set the value of secure_path in
  the default sudoers file. GitHub issue #387.
  * A sudoers schema for IBM Directory Server (aka IBM Tivoli Directory
  Server, IBM Security Directory Server, and IBM Security Verify
  Directory) is now included.
  * When cross-compiling sudo, the configure script now assumes that
  the snprintf() function is C99-compliant if the C compiler
  supports the C99 standard. Previously, configure would use sudo’s
  own snprintf() when cross-compiling. GitHub issue #386.</changelog>
  <changelog author="Simon Lees &lt;sflees@suse.de&gt;" date="1751284800">- Update to 1.9.17p1
  * Fix a possible local privilege escalation via the --host option
    [bsc#1245274, CVE-2025-32462]
  * Fix a possible local privilege Escalation via chroot option
    [bsc#1245275, CVE-2025-32463]
- Update to 1.9.17
  * Sudo now uses the NODEV macro consistently. Bug #1074.
    Fixed a bug where the ALL command in a sudoers rule would
    override a previous NOSETENV tag. Command tags are inherited from
    previous Cmnds in a Cmnd_Spec_List. There is a special case for
    the SETENV tag with the ALL command, where SETENV is implied if
    no explicit SETENV or NOSETENV tag is specified. This special
    case did not take into account that a NOSETENV tag that was inherited
    should override this behavior.
  * If sudo is run via ssh without a terminal and a password is required,
    it now suggest using ssh’s -t option.
  * Fixed the display of timeout values in the sudo -V output on systems
    without a C99-compliant snprintf() function.
  * Quieted a number of minor Coverity warnings.
  * Fixed a problem running sudo from a serial console on Linux when the
    command is run in a pseudo-terminal (the default).
  * Fixed a crash in sudo which could occur if there was a fatal error
    after the user was validated but before the command was actually run.
  * Fixed a number of man page style warnings. The “lint” make target in
    the docs directory will now run groff with warnings enabled if it is
    available. Bug #1075.
  * The ignore_dot sudoers setting is now on by default. There is now a
  - -disable-ignore-dot configure option to disable it. The
  - -with-ignore-dot configure option has been deprecated.
  * Fixed a problem with the pwfeedback option where an initial backspace
    would reduce the maximum length allowed for the password.
    GitHub issue #439.
  * Fixed minor grammar and spelling problems in the man pages.
  * Fixed a bug where a user could avoid entering a password for sudo -l
    command if they specified their own user or group name via the -u or
  - g options.
  * Avoid potential password guessing based on timing attacks on the
    strcmp() function on systems without PAM or a crypt() function where
    plaintext passwords are stored in the shadow password file.
  * Fixed a potential information leak where sudo -l command could be used
    to determine whether an executable exists in a directory that they do
    not have search access to.
  * Sudo uses TCSAFLUSH, not TCSADRAIN, when disabling echo once again.
    A long time ago sudo changed from using TCSAFLUSH to TCSADRAIN due
    to some systems having bugs related to TCSAFLUSH. That should no longer
    be a concern. Using TCSAFLUSH ensures that password input that has been
    received by the kernel, but not yet read by sudo, will be discarded and
    not echoed.
  * Added the SUDO_TTY environment variable if the user has a terminal.
    This can be used to find the user’s original tty device when sudo runs
    the command in its own pseudo-terminal. GitHub issue #447.
  * New Cantonese translation for sudo.</changelog>
  <changelog author="Simon Lees &lt;sflees@suse.de&gt;" date="1757937600">- Update to 1.9.17p2
  * Fixed a bug introduced in sudo 1.9.16 that could result in sudo
    sending SIGHUP to all processes on the system in certain rare
    cases. The bug could manifest if sudo is running a command in
    a pseudo-terminal, sudo terminates the command due to an
    internal error, and the user’s terminal is revoked. GitHub
    issue #458.
  * Fixed a bug introduced in sudo 1.9.12 that caused sudo to
    abort when the intercept and intercept_verify options are
    enabled in sudoers and either the command line arguments or
    the environment contains a string larger than the page size
    (usually 4096). This only Linux affects systems that support
    the ptrace_readv_string() function. GitHub issue #453.
  * Fixed a bug in sudo’s configure script introduced in sudo
    1.9.17 that prevented mdoc-format man pages from being used
    on systems without the mandoc utility. Bug #1077.
- /usr/etc/sudoers and file /usr/etc/sudoers.d/50-wheel-auth-self
  both have permissions 0644, while visudo -c complains that they
  should be 0440. (bsc#1249447)
- Policy and Groups subpackages can be noarch</changelog>
  <changelog author="Simon Lees &lt;sflees@suse.de&gt;" date="1775563200">- CVE-2026-35535: potential privilege escalation when running
  the mailer (bsc#1261420)
  * fix-CVE-2026-35535.patch
- Move tests under /usr/share for transactional system support
  (jsc#PED-14830)</changelog>
  <changelog author="Simon Lees &lt;sflees@suse.de&gt;" date="1781179200">- Fix missing %verify(not mode) %{_bindir}/sudo (bsc#1263098)</changelog>
</package>
<package pkgid="fb246a2cfe6bc82512c5482c07017e3aa234845a3ed7c113c0e6d6b1e6350df3f94abaee6acc8d62c351cc2432ac1dd9ec59efc979a682cfe9cfefee0fd4b5cd" name="sudo-test" arch="x86_64">
  <version epoch="0" ver="1.9.17p2" rel="291.1"/>
  <changelog author="Jason Sikes &lt;jsikes@suse.com&gt;" date="1676462400">- Update to 1.9.13:
  * Changes in 1.9.13:
    Fixed a bug running relative commands via sudo when log_subcmds
    is enabled. GitHub issue #194.
    Fixed a signal handling bug when running sudo commands in a shell
    script. Signals were not being forwarded to the command when the
    sudo process was not run in its own process group.
    Fixed a bug in the cvtsudoers LDIF parsing when the file ends without
    a newline and a backslash is the last character of the file.
    Fixed a potential use-after-free bug with cvtsudoers filtering.
    GitHub issue #198.
    Added a reminder to the default lecture that the password will not
    echo. This line is only displayed when the pwfeedback option is
    disabled. GitHub issue #195.
    Fixed potential memory leaks in error paths. GitHub issue #199.
    GitHub issue #202.
    Fixed potential NULL dereferences on memory allocation failure.
    GitHub issue #204. GitHub issue #211.
    Sudo now uses C23-style attributes in function prototypes instead
    of gcc-style attributes if supported.
    Added a new list pseudo-command in sudoers to allow a user to list
    another user’s privileges. Previously, only root or a user with
    the ability to run any command as either root or the target user
    on the current host could use the -U option. This also includes a
    fix to the log entry when a user lacks permission to run
    sudo -U otheruser -l command. Previously, the logs would indicate
    that the user tried to run the actual command, now the log entry
    includes the list operation.
    JSON logging now escapes control characters if they happen to
    appear in the command or environment.
    New Albanian translation from translationproject.org.
    Regular expressions in sudoers or logsrvd.conf may no longer contain
    consecutive repetition operators. This is implementation- specific
    behavior according to POSIX, but some implementations will allocate
    excessive amounts of memory. This mainly affects the fuzzers.
    Sudo now builds AIX-style shared libraries and dynamic shared
    objects by default instead of svr4-style. This means that the
    default sudo plugins are now .a (archive) files that contain a .so
    shared object file instead of bare .so files. This was done to
    improve compatibility with the AIX Freeware ecosystem, specifically,
    the AIX Freeware build of OpenSSL. Sudo will still load
    svr4-style .so plugins and if a .so file is requested, either via
    sudo.conf or the sudoers file, and only the .a file is present,
    sudo will convert the path from plugin.so to plugin.a(plugin.so)
    when loading it. This ensures compatibility with existing
    configurations. To restore the old, pre-1.9.13 behavior, run
    configure using the –with-aix-soname=svr4 option.
    Sudo no longer checks the ownership and mode of the plugins that
    it loads. Plugins are configured via either the sudo.conf or
    sudoers file which are trusted configuration files. These checks
    suffered from time-of-check vs. time-of-use race conditions and
    complicate loading plugins that are not simple paths. Ownership
    and mode checks are still performed when loading the sudo.conf
    and sudoers files, which do not suffer from race conditions.
    The sudo.conf developer_mode setting is no longer used.
    Control characters in sudo log messages and sudoreplay -l output
    are now escaped in octal format. Space characters in the command
    path are also escaped. Command line arguments that contain spaces
    are surrounded by single quotes and any literal single quote or
    backslash characters are escaped with a backslash. This makes it
    possible to distinguish multiple command line arguments from a
    single argument that contains spaces.
    Improved support for DragonFly BSD which uses a different
    struct procinfo than either FreeBSD or 4.4BSD.
    Fixed a compilation error on Linux arm systems running older
    kernels that may not define EM_ARM in linux/elf-em.h.
    GitHub issue #232.
    Fixed a compilation error when LDFLAGS contains -Wl,–no-undefined.
    Sudo will now link using -Wl,–no-undefined by default if possible.
    GitHub issue #234.
    Fixed a bug executing a command with a very long argument vector
    when log_subcmds or intercept is enabled on a system where
    intercept_type is set to trace. GitHub issue #194.
    When sudo is configured to run a command in a pseudo-terminal but
    the standard input is not connected to a terminal, the command
    will now be run as a background process. This works around a problem
    running sudo commands in the background from a shell script where
    changing the terminal to raw mode could interfere with the interactive
    shell that ran the script. GitHub issue #237.
    A missing include file in sudoers is no longer a fatal error unless
    the error_recovery plugin argument has been set to false.</changelog>
  <changelog author="Jason Sikes &lt;jsikes@suse.com&gt;" date="1676808000">- Update to 1.9.13p1:
    Fixed a typo in the configure script that resulted in a line like
    “]: command not found” in the output. GitHub issue #238.
    Corrected the order of the C23 [[noreturn]] attribute in function
    prototypes. This fixes a build error with GCC 13. GitHub issue #239.
    The check make target misbehaved when there was more than one
    version of the UTF-8 C locale in the output of locale -a.
    GitHub issue #241.
    Removed a dependency on the AC_SYS_YEAR2038 macro in configure.ac.
    This was added in autoconf 2.72 but sudo’s configure.ac only
    required autoconf 2.70. GitHub issue #242.
    Relaxed the autoconf version requirement to version 2.69.</changelog>
  <changelog author="Jason Sikes &lt;jsikes@suse.com&gt;" date="1677585600">- Update to 1.9.13p2 (bsc#1208595, CVE-2023-27320):
    Fixed the --enable-static-sudoers option, broken in sudo 1.9.13.
    GitHub issue #245.
    Fixed a potential double-free bug when matching a sudoers rule
    that contains a per-command chroot directive (CHROOT=dir).
    This bug was introduced in sudo 1.9.8.</changelog>
  <changelog author="Jason Sikes &lt;jsikes@suse.com&gt;" date="1678363200">- Update to 1.9.13p3:
    Fixed a bug introduced in sudo 1.9.13 that caused a syntax error
    when list was used as a user or host name. GitHub issue #246.
    Fixed a bug that could cause sudo to hang when running a command
    in a pseudo-terminal when there is still input buffered after a
    command has exited. [bsc#1203201]
    Fixed sudo -U otheruser -l command. This is a regression in
    sudo 1.9.13. GitHub issue #248.
    Fixed sudo -l command args when matching a command in sudoers
    with command line arguments. This is a regression in sudo 1.9.13.
    GitHub issue #249.</changelog>
  <changelog author="Michal Koutn&#xFD; &lt;mkoutny@suse.com&gt;" date="1680264000">- sudo.pamd: Use common-session-nonlogin for &gt;15 codestreams
  More info in https://github.com/SUSE/pam-config/pull/16</changelog>
  <changelog author="Paolo Stivanin &lt;info@paolostivanin.com&gt;" date="1689163200">- Update to 1.9.14p1:
  * Fixed an invalid free bug in sudo_logsrvd that was introduced
    in version 1.9.14 which could cause sudo_logsrvd to crash.
  * The sudoers plugin no longer tries to send the terminal name
    to the log server when no terminal is present.  This bug was
    introduced in version 1.9.14.
  * Fixed a bug where if the "intercept" or "log_subcmds" sudoers
    option was enabled and a sub-command was run where the first
    entry of the argument vector didn't match the command being run.
    This resulted in commands like "sudo su -" being killed due to
    the mismatch.  Bug #1050.
  * The sudoers plugin now canonicalizes command path names before
    matching (where possible).  This fixes a bug where sudo could
    execute the wrong path if there are multiple symbolic links with
    the same target and the same base name in sudoers that a user is
    allowed to run.  GitHub issue #228.
  * Improved command matching when a chroot is specified in sudoers.
    The sudoers plugin will now change the root directory id needed
    before performing command matching.  Previously, the root directory
    was simply prepended to the path that was being processed.
  * When NETGROUP_BASE is set in the ldap.conf file, sudo will now
    perform its own netgroup lookups of the host name instead of
    using the system innetgr(3) function.  This guarantees that user
    and host netgroup lookups are performed using  the same LDAP
    server (or servers).
  * Fixed a bug introduced in sudo 1.9.13 that resulted in a missing
    " ; " separator between environment variables and the command
    in log entries.
  * The visudo utility now displays a warning when it ignores a file
    in an include dir such as /etc/sudoers.d.
  * When running a command in a pseudo-terminal, sudo will initialize
    the terminal settings even if it is the background process.
    Previously, sudo only initialized the pseudo-terminal when running
    in the foreground.  This fixes an issue where a program that
    checks the window size would read the wrong value when sudo was
    running in the background.
  * Fixed a bug where only the first two digits of the TSID field
    being was logged.  Bug #1046.
  * The "log_pty" sudoers option is now enabled by default.  To
    restore the historic behavior where a command is run in the
    user's terminal, add "Defaults !use_pty" to the sudoers file.
    GitHub issue #258.
  * Sudo's "-b" option now works when the command is run in a
    pseudo-terminal.
  * When disabling core dumps, sudo now only modifies the soft limit
    and leaves the hard limit as-is.  This avoids problems on Linux
    when sudo does not have CAP_SYS_RESOURCE, which may be the case
    when run inside a container.  GitHub issue #42.
  * Sudo configuration file paths have been converted to colon-separated
    lists of paths.  This makes it possible to have configuration
    files on a read-only file system while still allowing for local
    modifications in a different (writable) directory.  The new
  - -enable-adminconf configure option can be used to specify a
    directory that is searched for configuration files in preference
    to the sysconfdir (which is usually /etc).
  * The "intercept_verify" sudoers option is now only applied when
    the "intercept" option is set in sudoers.  Previously, it was
    also applied when "log_subcmds" was enabled.
  * The NETGROUP_QUERY ldap.conf parameter can now be disabled for
    LDAP servers that do not support querying the nisNetgroup object
    by its nisNetgroupTriple attribute, while still allowing sudo to
    query the LDAP server directly to determine netgroup membership.
  * Fixed a long-standing bug where a sudoers rule without an explicit
    runas list allowed the user to run a command as root and any
    group instead of just one of the groups that root is a member
    of.  For example, a rule such as "myuser ALL = ALL" would permit
    "sudo -u root -g othergroup" even if root did not belong to
    "othergroup".
  * Fixed a bug where a sudoers rule with an explicit runas list
    allowed a user to run sudo commands as themselves.  For example,
    a rule such as "myuser ALL = (root) ALL", "myuser" should only
    allow commands to be run as root (optionally using one of root's
    groups).  However, the rule also allowed the user to run
    "sudo -u myuser -g myuser command".
  * Fixed a bug that prevented the user from specifying a group on
    the command line via "sudo -g" if the rule's Runas_Spec contained
    a Runas_Alias.
  * Sudo now requires a C compiler that conforms to ISO C99 or higher
    to build.</changelog>
  <changelog author="Otto Hollmann &lt;otto.hollmann@suse.com&gt;" date="1694520000">- Update to 1.9.14p3:
  * Fixed a crash with Python 3.12 when the sudo Python python is unloaded.
    This only affects make check for the Python plugin.
  * Adapted the sudo Python plugin test output to match Python 3.12.
- Update to 1.9.14p2:
  * Fixed a crash on Linux systems introduced in version 1.9.14 when running a
    command with a NULL argv[0] if log_subcmds or intercept is enabled in
    sudoers.
  * Fixed a problem with "stair-stepped" output when piping or redirecting the
    output of a sudo command that takes user input when running a command in
    a pseudo-terminal.
  * Fixed a bug introduced in sudo 1.9.14 that affects matching sudoers rules
    containing a Runas_Spec with an empty Runas user. These rules should only
    match when sudo’s -g option is used but were matching even without the -g
    option. #290.</changelog>
  <changelog author="Otto Hollmann &lt;otto.hollmann@suse.com&gt;" date="1694692800">- Install config files into /usr/etc and read from both location:
  /etc and /usr/etc (bsc#1205118)</changelog>
  <changelog author="Ludwig Nussel &lt;lnussel@suse.com&gt;" date="1695211200">- Introduce optional wheel and sudo group policies as separate packages
  (bsc#1203978, jsc#PED-260)</changelog>
  <changelog author="Dominique Leuenberger &lt;dimstar@opensuse.org&gt;" date="1700568000">- Package/ship empty /etc/sudoers.d directory for admins to
  discover where to put their won config.</changelog>
  <changelog author="Otto Hollmann &lt;otto.hollmann@suse.com&gt;" date="1700654400">- Update to 1.9.15p2:
  * Fixed a bug on BSD systems where sudo would not restore the
    terminal settings on exit if the terminal had parity enabled.
    GitHub issue #326.
- Update to 1.9.15p1:
  * Fixed a bug introduced in sudo 1.9.15 that prevented LDAP-based
    sudoers from being able to read the ldap.conf file.
    GitHub issue #325.
- Update to 1.9.15:
  * Fixed an undefined symbol problem on older versions of macOS
    when "intercept" or "log_subcmds" are enabled in sudoers.
    GitHub issue #276.
  * Fixed "make check" failure related to getpwent(3) wrapping
    on NetBSD.
  * Fixed the warning message for "sudo -l command" when the command
    is not permitted.  There was a missing space between "list" and
    the actual command due to changes in sudo 1.9.14.
  * Fixed a bug where output could go to the wrong terminal if
    "use_pty" is enabled (the default) and the standard input, output
    or error is redirected to a different terminal.  Bug #1056.
  * The visudo utility will no longer create an empty file when the
    specified sudoers file does not exist and the user exits the
    editor without making any changes.  GitHub issue #294.
  * The AIX and Solaris sudo packages on www.sudo.ws now support
    "log_subcmds" and "intercept" with both 32-bit and 64-bit
    binaries.  Previously, they only worked when running binaries
    with the same word size as the sudo binary.  GitHub issue #289.
  * The sudoers source is now logged in the JSON event log.  This
    makes it possible to tell which rule resulted in a match.
  * Running "sudo -ll command" now produces verbose output that
    includes matching rule as well as the path to the sudoers file
    the matching rule came from.  For LDAP sudoers, the name of the
    matching sudoRole is printed instead.
  * The embedded copy of zlib has been updated to version 1.3.
  * The sudoers plugin has been modified to make it more resilient
    to ROWHAMMER attacks on authentication and policy matching.
    This addresses CVE-2023-42465.
  * The sudoers plugin now constructs the user time stamp file path
    name using the user-ID instead of the user name.  This avoids a
    potential problem with user names that contain a path separator
    ('/') being interpreted as part of the path name.  A similar
    issue in sudo-rs has been assigned CVE-2023-42456.
  * A path separator ('/') in a user, group or host name is now
    replaced with an underbar character ('_') when expanding escapes
    in @include and @includedir directives as well as the "iolog_file"
    and "iolog_dir" sudoers Default settings.
  * The "intercept_verify" sudoers option is now only applied when
    the "intercept" option is set in sudoers.  Previously, it was
    also applied when "log_subcmds" was enabled.  Sudo 1.9.14
    contained an incorrect fix for this.  Bug #1058.
  * Changes to terminal settings are now performed atomically, where
    possible.  If the command is being run in a pseudo-terminal and
    the user's terminal is already in raw mode, sudo will not change
    the user's terminal settings.  This prevents concurrent sudo
    processes from restoring the terminal settings to the wrong values.
    GitHub issue #312.
  * Reverted a change from sudo 1.9.4 that resulted in PAM session
    modules being called with the environment of the command to be
    run instead of the environment of the invoking user.
    GitHub issue #318.
  * New Indonesian translation from translationproject.org.
  * The sudo_logsrvd server will now raise its open file descriptor
    limit to the maximum allowed value when it starts up.  Each
    connection can require up to nine open file descriptors so the
    default soft limit may be too low.
  * Better log message when rejecting a command if the "intercept"
    option is enabled and the "intercept_allow_setid" option is
    disabled.  Previously, "command not allowed" would be logged and
    the user had no way of knowing what the actual problem was.
  * Sudo will now log the invoking user's environment as "submitenv"
    in the JSON logs.  The command's environment ("runenv") is no
    longer logged for commands rejected by the sudoers file or an
    approval plugin.</changelog>
  <changelog author="Otto Hollmann &lt;otto.hollmann@suse.com&gt;" date="1702900800">- Update to 1.9.15p4:
  * Fixed a bug introduced in sudo 1.9.15 that could prevent a user’s
    privileges from being listed by sudo -l if the sudoers entry
    in /etc/nsswitch.conf contains [SUCCESS=return]. This did not affect the
    ability to run commands via sudo. Bug #1063.
- Update to 1.9.15p3:
  * Always disable core dumps when sudo sends itself a fatal signal. Fixes a
    problem where sudo could potentially dump core dump when it re-sends the
    fatal signal to itself. This is only an issue if the command   * received
    a signal that would normally result in a core dump but the command did
    not actually dump core.
  * Fixed a bug matching a command with a relative path name when the sudoers
    rule uses shell globbing rules for the path name. Bug #1062.
  * Permit visudo to be run even if the local host name is not set. GitHub
    issue #332.
  * Fixed an editing error introduced in sudo 1.9.15 that could prevent
    sudoreplay from replaying sessions correctly. GitHub issue #334.
  * Fixed a bug introduced in sudo 1.9.15 where sudo -l &gt; /dev/null could hang
    on Linux systems. GitHub issue #335.
  * Fixed a bug introduced in sudo 1.9.15 where Solaris privileges specified
    in sudoers were not applied to the command being run.</changelog>
  <changelog author="Otto Hollmann &lt;otto.hollmann@suse.com&gt;" date="1702900801">- For existing products (SLE15-SP* and older) keep using /etc and don't
  switch to /usr/etc. So only SLES16/ALP, Tumbleweed and newer products
  will use both /etc and /usr/etc locations.</changelog>
  <changelog author="Otto Hollmann &lt;otto.hollmann@suse.com&gt;" date="1704196800">- Update to 1.9.15p5:
  * Fixed evaluation of the lecture, listpw, verifypw, and fdexec sudoers
    Defaults settings when used without an explicit value. Previously, if
    specified without a value they were evaluated as boolean false, even when
    the negation operator ('!') was not present.
  * Fixed a bug introduced in sudo 1.9.14 that prevented LDAP netgroup queries
    using the NETGROUP_BASE setting from being performed.
  * Sudo will now transparently rename a user's lecture file from the older
    name-based path to the newer user-ID-based path. GitHub issue #342.
  * Fixed a bug introduced in sudo 1.9.15 that could cause a memory allocation
    failure if sysconf(_SC_LOGIN_NAME_MAX) fails. Bug #1066.</changelog>
  <changelog author="Simon Lees &lt;sflees@suse.de&gt;" date="1722254400">- A quick note that bsc#1227574 is expected behavior in this
  version of sudo. It was a regression in 15.6 which doesn't have
  the /etc/ split for pam.d yet.</changelog>
  <changelog author="Simon Lees &lt;sflees@suse.de&gt;" date="1744804800">- Update to 1.9.16p2:
  * Sudo now passes the terminal device number to the policy plugin
  even if it cannot resolve it to a path name. This allows sudo to
  run without warnings in a chroot jail when the terminal device
  files are not present. GitHub issue #421.
  * On Linux systems, sudo will now attempt to use the symbolic links
  in /proc/self/fd/{0,1,2} when resolving the terminal device number.
  This can allow sudo to map a terminal device to its path name even
  when /dev/pts is not mounted in a chroot jail.
  * Fixed compilation errors with gcc and clang in C23 mode. C23 no
  longer supports functions with unspecified arguments. GitHub issue
  [#420].
  * Fixed the test for cross-compiling when checking for C99 snprintf().
  The changes made to the test in sudo 1.9.16 resulted in a different
  problem. GitHub issue #386.
  * Fixed the date used by the exit record in sudo-format log files.
  This was a regression introduced in sudo 1.9.16 and only affected
  file-based logs, not syslog. GitHub issue #405.
  * Fixed the root cause of the “unable to find terminal name for device”
  message when running sudo on AIX when no terminal is present. In
  sudo 1.9.16 this was turned from a debug message into a warning.
  GitHub issue #408.
  * When a duplicate alias is found in the sudoers file, the warning
  message now includes the file and line number of the previous
  definition.
  * Added support for the --with-secure-path-value=no configure option
  to allow packagers to ship the default sudoers file with the secure
  path line commented out.
  * Sudo no longer sends mail when a user runs sudo -nv or sudo -nl,
  even if mail_badpass or mail_always are set. Sudo already avoids
  logging to a file or syslog in this case. Bug #1072.
  * Added the cmddenial_message sudoers option to provide additional
  information to the user when a command is denied by the sudoers
  policy. The default message is still displayed.
  * The time stamp used for file-based logs is now more consistent
  with the time stamp produced by syslog. GitHub issue #327.
  * Sudo will now warn the user if it can detect the user’s terminal but
  cannot determine the path to the terminal device. The sudoers time
  stamp file will now use the terminal device number directly.
  GitHub issue #329.
  * The embedded copy of zlib has been updated to version 1.3.1.
  * Improved error handling if generating the list of signals and signal
  names fails at build time.
  * Fixed a compilation issue on Linux systems without process_vm_readv().
  * Fixed cross-compilation with WolfSSL.
  * Added a json_compact value for the sudoers log_format option which can
  be used when logging to a file. The existing json value has been aliased
  to json_pretty. In a future release, json will be an alias for
  json_compact. GitHub issue #357.
  * A new pam_silent sudoers option has been added which may be negated to
  avoid suppressing output from PAM authentication modules. GitHub issue #216.
  * Fixed several cvtsudoers JSON output problems. GitHub issues #369, #370,
  [#371], #373, #381.
  * When sudo runs a command in a pseudo-terminal and the user’s terminal is
  revoked, the pseudo-terminal’s foreground process group will now receive
  SIGHUP before the terminal is revoked. This emulates the behavior of the
  session leader exiting and is consistent with what happens when,
  for example, an ssh session is closed. GitHub issue #367.
  * Fixed make test with Python 3.12. GitHub issue #374.
  * In schema.ActiveDirectory, fixed the quoting in the example command.
  GitHub issue #376.
  * Paths specified via a Chdir_Spec or Chroot_Spec in sudoers may now
  be double-quoted.
  * Sudo insults are now included by default, but disabled unless the
  - -with-insults configure option is specified or the insults sudoers
  option is enabled.
  * The default sudoers file now enables the secure_path option by
  default and preserves the EDITOR, VISUAL, and SUDO_EDITOR environment
  variables when running visudo. The new --with-secure-path-value
  configure option can be used to set the value of secure_path in
  the default sudoers file. GitHub issue #387.
  * A sudoers schema for IBM Directory Server (aka IBM Tivoli Directory
  Server, IBM Security Directory Server, and IBM Security Verify
  Directory) is now included.
  * When cross-compiling sudo, the configure script now assumes that
  the snprintf() function is C99-compliant if the C compiler
  supports the C99 standard. Previously, configure would use sudo’s
  own snprintf() when cross-compiling. GitHub issue #386.</changelog>
  <changelog author="Simon Lees &lt;sflees@suse.de&gt;" date="1751284800">- Update to 1.9.17p1
  * Fix a possible local privilege escalation via the --host option
    [bsc#1245274, CVE-2025-32462]
  * Fix a possible local privilege Escalation via chroot option
    [bsc#1245275, CVE-2025-32463]
- Update to 1.9.17
  * Sudo now uses the NODEV macro consistently. Bug #1074.
    Fixed a bug where the ALL command in a sudoers rule would
    override a previous NOSETENV tag. Command tags are inherited from
    previous Cmnds in a Cmnd_Spec_List. There is a special case for
    the SETENV tag with the ALL command, where SETENV is implied if
    no explicit SETENV or NOSETENV tag is specified. This special
    case did not take into account that a NOSETENV tag that was inherited
    should override this behavior.
  * If sudo is run via ssh without a terminal and a password is required,
    it now suggest using ssh’s -t option.
  * Fixed the display of timeout values in the sudo -V output on systems
    without a C99-compliant snprintf() function.
  * Quieted a number of minor Coverity warnings.
  * Fixed a problem running sudo from a serial console on Linux when the
    command is run in a pseudo-terminal (the default).
  * Fixed a crash in sudo which could occur if there was a fatal error
    after the user was validated but before the command was actually run.
  * Fixed a number of man page style warnings. The “lint” make target in
    the docs directory will now run groff with warnings enabled if it is
    available. Bug #1075.
  * The ignore_dot sudoers setting is now on by default. There is now a
  - -disable-ignore-dot configure option to disable it. The
  - -with-ignore-dot configure option has been deprecated.
  * Fixed a problem with the pwfeedback option where an initial backspace
    would reduce the maximum length allowed for the password.
    GitHub issue #439.
  * Fixed minor grammar and spelling problems in the man pages.
  * Fixed a bug where a user could avoid entering a password for sudo -l
    command if they specified their own user or group name via the -u or
  - g options.
  * Avoid potential password guessing based on timing attacks on the
    strcmp() function on systems without PAM or a crypt() function where
    plaintext passwords are stored in the shadow password file.
  * Fixed a potential information leak where sudo -l command could be used
    to determine whether an executable exists in a directory that they do
    not have search access to.
  * Sudo uses TCSAFLUSH, not TCSADRAIN, when disabling echo once again.
    A long time ago sudo changed from using TCSAFLUSH to TCSADRAIN due
    to some systems having bugs related to TCSAFLUSH. That should no longer
    be a concern. Using TCSAFLUSH ensures that password input that has been
    received by the kernel, but not yet read by sudo, will be discarded and
    not echoed.
  * Added the SUDO_TTY environment variable if the user has a terminal.
    This can be used to find the user’s original tty device when sudo runs
    the command in its own pseudo-terminal. GitHub issue #447.
  * New Cantonese translation for sudo.</changelog>
  <changelog author="Simon Lees &lt;sflees@suse.de&gt;" date="1757937600">- Update to 1.9.17p2
  * Fixed a bug introduced in sudo 1.9.16 that could result in sudo
    sending SIGHUP to all processes on the system in certain rare
    cases. The bug could manifest if sudo is running a command in
    a pseudo-terminal, sudo terminates the command due to an
    internal error, and the user’s terminal is revoked. GitHub
    issue #458.
  * Fixed a bug introduced in sudo 1.9.12 that caused sudo to
    abort when the intercept and intercept_verify options are
    enabled in sudoers and either the command line arguments or
    the environment contains a string larger than the page size
    (usually 4096). This only Linux affects systems that support
    the ptrace_readv_string() function. GitHub issue #453.
  * Fixed a bug in sudo’s configure script introduced in sudo
    1.9.17 that prevented mdoc-format man pages from being used
    on systems without the mandoc utility. Bug #1077.
- /usr/etc/sudoers and file /usr/etc/sudoers.d/50-wheel-auth-self
  both have permissions 0644, while visudo -c complains that they
  should be 0440. (bsc#1249447)
- Policy and Groups subpackages can be noarch</changelog>
  <changelog author="Simon Lees &lt;sflees@suse.de&gt;" date="1775563200">- CVE-2026-35535: potential privilege escalation when running
  the mailer (bsc#1261420)
  * fix-CVE-2026-35535.patch
- Move tests under /usr/share for transactional system support
  (jsc#PED-14830)</changelog>
  <changelog author="Simon Lees &lt;sflees@suse.de&gt;" date="1781179200">- Fix missing %verify(not mode) %{_bindir}/sudo (bsc#1263098)</changelog>
</package>
<package pkgid="d9a7841f1f2beaa1e237a8d4a6b4697ba7e51b8807f897dc81b69b1e66eabdbb8497c113113bf789f01aebbc9c5783f176a146bbe2593f2ec5fc2d37733da359" name="system-group-sudo" arch="noarch">
  <version epoch="0" ver="1.9.17p2" rel="291.1"/>
  <changelog author="Jason Sikes &lt;jsikes@suse.com&gt;" date="1676462400">- Update to 1.9.13:
  * Changes in 1.9.13:
    Fixed a bug running relative commands via sudo when log_subcmds
    is enabled. GitHub issue #194.
    Fixed a signal handling bug when running sudo commands in a shell
    script. Signals were not being forwarded to the command when the
    sudo process was not run in its own process group.
    Fixed a bug in the cvtsudoers LDIF parsing when the file ends without
    a newline and a backslash is the last character of the file.
    Fixed a potential use-after-free bug with cvtsudoers filtering.
    GitHub issue #198.
    Added a reminder to the default lecture that the password will not
    echo. This line is only displayed when the pwfeedback option is
    disabled. GitHub issue #195.
    Fixed potential memory leaks in error paths. GitHub issue #199.
    GitHub issue #202.
    Fixed potential NULL dereferences on memory allocation failure.
    GitHub issue #204. GitHub issue #211.
    Sudo now uses C23-style attributes in function prototypes instead
    of gcc-style attributes if supported.
    Added a new list pseudo-command in sudoers to allow a user to list
    another user’s privileges. Previously, only root or a user with
    the ability to run any command as either root or the target user
    on the current host could use the -U option. This also includes a
    fix to the log entry when a user lacks permission to run
    sudo -U otheruser -l command. Previously, the logs would indicate
    that the user tried to run the actual command, now the log entry
    includes the list operation.
    JSON logging now escapes control characters if they happen to
    appear in the command or environment.
    New Albanian translation from translationproject.org.
    Regular expressions in sudoers or logsrvd.conf may no longer contain
    consecutive repetition operators. This is implementation- specific
    behavior according to POSIX, but some implementations will allocate
    excessive amounts of memory. This mainly affects the fuzzers.
    Sudo now builds AIX-style shared libraries and dynamic shared
    objects by default instead of svr4-style. This means that the
    default sudo plugins are now .a (archive) files that contain a .so
    shared object file instead of bare .so files. This was done to
    improve compatibility with the AIX Freeware ecosystem, specifically,
    the AIX Freeware build of OpenSSL. Sudo will still load
    svr4-style .so plugins and if a .so file is requested, either via
    sudo.conf or the sudoers file, and only the .a file is present,
    sudo will convert the path from plugin.so to plugin.a(plugin.so)
    when loading it. This ensures compatibility with existing
    configurations. To restore the old, pre-1.9.13 behavior, run
    configure using the –with-aix-soname=svr4 option.
    Sudo no longer checks the ownership and mode of the plugins that
    it loads. Plugins are configured via either the sudo.conf or
    sudoers file which are trusted configuration files. These checks
    suffered from time-of-check vs. time-of-use race conditions and
    complicate loading plugins that are not simple paths. Ownership
    and mode checks are still performed when loading the sudo.conf
    and sudoers files, which do not suffer from race conditions.
    The sudo.conf developer_mode setting is no longer used.
    Control characters in sudo log messages and sudoreplay -l output
    are now escaped in octal format. Space characters in the command
    path are also escaped. Command line arguments that contain spaces
    are surrounded by single quotes and any literal single quote or
    backslash characters are escaped with a backslash. This makes it
    possible to distinguish multiple command line arguments from a
    single argument that contains spaces.
    Improved support for DragonFly BSD which uses a different
    struct procinfo than either FreeBSD or 4.4BSD.
    Fixed a compilation error on Linux arm systems running older
    kernels that may not define EM_ARM in linux/elf-em.h.
    GitHub issue #232.
    Fixed a compilation error when LDFLAGS contains -Wl,–no-undefined.
    Sudo will now link using -Wl,–no-undefined by default if possible.
    GitHub issue #234.
    Fixed a bug executing a command with a very long argument vector
    when log_subcmds or intercept is enabled on a system where
    intercept_type is set to trace. GitHub issue #194.
    When sudo is configured to run a command in a pseudo-terminal but
    the standard input is not connected to a terminal, the command
    will now be run as a background process. This works around a problem
    running sudo commands in the background from a shell script where
    changing the terminal to raw mode could interfere with the interactive
    shell that ran the script. GitHub issue #237.
    A missing include file in sudoers is no longer a fatal error unless
    the error_recovery plugin argument has been set to false.</changelog>
  <changelog author="Jason Sikes &lt;jsikes@suse.com&gt;" date="1676808000">- Update to 1.9.13p1:
    Fixed a typo in the configure script that resulted in a line like
    “]: command not found” in the output. GitHub issue #238.
    Corrected the order of the C23 [[noreturn]] attribute in function
    prototypes. This fixes a build error with GCC 13. GitHub issue #239.
    The check make target misbehaved when there was more than one
    version of the UTF-8 C locale in the output of locale -a.
    GitHub issue #241.
    Removed a dependency on the AC_SYS_YEAR2038 macro in configure.ac.
    This was added in autoconf 2.72 but sudo’s configure.ac only
    required autoconf 2.70. GitHub issue #242.
    Relaxed the autoconf version requirement to version 2.69.</changelog>
  <changelog author="Jason Sikes &lt;jsikes@suse.com&gt;" date="1677585600">- Update to 1.9.13p2 (bsc#1208595, CVE-2023-27320):
    Fixed the --enable-static-sudoers option, broken in sudo 1.9.13.
    GitHub issue #245.
    Fixed a potential double-free bug when matching a sudoers rule
    that contains a per-command chroot directive (CHROOT=dir).
    This bug was introduced in sudo 1.9.8.</changelog>
  <changelog author="Jason Sikes &lt;jsikes@suse.com&gt;" date="1678363200">- Update to 1.9.13p3:
    Fixed a bug introduced in sudo 1.9.13 that caused a syntax error
    when list was used as a user or host name. GitHub issue #246.
    Fixed a bug that could cause sudo to hang when running a command
    in a pseudo-terminal when there is still input buffered after a
    command has exited. [bsc#1203201]
    Fixed sudo -U otheruser -l command. This is a regression in
    sudo 1.9.13. GitHub issue #248.
    Fixed sudo -l command args when matching a command in sudoers
    with command line arguments. This is a regression in sudo 1.9.13.
    GitHub issue #249.</changelog>
  <changelog author="Michal Koutn&#xFD; &lt;mkoutny@suse.com&gt;" date="1680264000">- sudo.pamd: Use common-session-nonlogin for &gt;15 codestreams
  More info in https://github.com/SUSE/pam-config/pull/16</changelog>
  <changelog author="Paolo Stivanin &lt;info@paolostivanin.com&gt;" date="1689163200">- Update to 1.9.14p1:
  * Fixed an invalid free bug in sudo_logsrvd that was introduced
    in version 1.9.14 which could cause sudo_logsrvd to crash.
  * The sudoers plugin no longer tries to send the terminal name
    to the log server when no terminal is present.  This bug was
    introduced in version 1.9.14.
  * Fixed a bug where if the "intercept" or "log_subcmds" sudoers
    option was enabled and a sub-command was run where the first
    entry of the argument vector didn't match the command being run.
    This resulted in commands like "sudo su -" being killed due to
    the mismatch.  Bug #1050.
  * The sudoers plugin now canonicalizes command path names before
    matching (where possible).  This fixes a bug where sudo could
    execute the wrong path if there are multiple symbolic links with
    the same target and the same base name in sudoers that a user is
    allowed to run.  GitHub issue #228.
  * Improved command matching when a chroot is specified in sudoers.
    The sudoers plugin will now change the root directory id needed
    before performing command matching.  Previously, the root directory
    was simply prepended to the path that was being processed.
  * When NETGROUP_BASE is set in the ldap.conf file, sudo will now
    perform its own netgroup lookups of the host name instead of
    using the system innetgr(3) function.  This guarantees that user
    and host netgroup lookups are performed using  the same LDAP
    server (or servers).
  * Fixed a bug introduced in sudo 1.9.13 that resulted in a missing
    " ; " separator between environment variables and the command
    in log entries.
  * The visudo utility now displays a warning when it ignores a file
    in an include dir such as /etc/sudoers.d.
  * When running a command in a pseudo-terminal, sudo will initialize
    the terminal settings even if it is the background process.
    Previously, sudo only initialized the pseudo-terminal when running
    in the foreground.  This fixes an issue where a program that
    checks the window size would read the wrong value when sudo was
    running in the background.
  * Fixed a bug where only the first two digits of the TSID field
    being was logged.  Bug #1046.
  * The "log_pty" sudoers option is now enabled by default.  To
    restore the historic behavior where a command is run in the
    user's terminal, add "Defaults !use_pty" to the sudoers file.
    GitHub issue #258.
  * Sudo's "-b" option now works when the command is run in a
    pseudo-terminal.
  * When disabling core dumps, sudo now only modifies the soft limit
    and leaves the hard limit as-is.  This avoids problems on Linux
    when sudo does not have CAP_SYS_RESOURCE, which may be the case
    when run inside a container.  GitHub issue #42.
  * Sudo configuration file paths have been converted to colon-separated
    lists of paths.  This makes it possible to have configuration
    files on a read-only file system while still allowing for local
    modifications in a different (writable) directory.  The new
  - -enable-adminconf configure option can be used to specify a
    directory that is searched for configuration files in preference
    to the sysconfdir (which is usually /etc).
  * The "intercept_verify" sudoers option is now only applied when
    the "intercept" option is set in sudoers.  Previously, it was
    also applied when "log_subcmds" was enabled.
  * The NETGROUP_QUERY ldap.conf parameter can now be disabled for
    LDAP servers that do not support querying the nisNetgroup object
    by its nisNetgroupTriple attribute, while still allowing sudo to
    query the LDAP server directly to determine netgroup membership.
  * Fixed a long-standing bug where a sudoers rule without an explicit
    runas list allowed the user to run a command as root and any
    group instead of just one of the groups that root is a member
    of.  For example, a rule such as "myuser ALL = ALL" would permit
    "sudo -u root -g othergroup" even if root did not belong to
    "othergroup".
  * Fixed a bug where a sudoers rule with an explicit runas list
    allowed a user to run sudo commands as themselves.  For example,
    a rule such as "myuser ALL = (root) ALL", "myuser" should only
    allow commands to be run as root (optionally using one of root's
    groups).  However, the rule also allowed the user to run
    "sudo -u myuser -g myuser command".
  * Fixed a bug that prevented the user from specifying a group on
    the command line via "sudo -g" if the rule's Runas_Spec contained
    a Runas_Alias.
  * Sudo now requires a C compiler that conforms to ISO C99 or higher
    to build.</changelog>
  <changelog author="Otto Hollmann &lt;otto.hollmann@suse.com&gt;" date="1694520000">- Update to 1.9.14p3:
  * Fixed a crash with Python 3.12 when the sudo Python python is unloaded.
    This only affects make check for the Python plugin.
  * Adapted the sudo Python plugin test output to match Python 3.12.
- Update to 1.9.14p2:
  * Fixed a crash on Linux systems introduced in version 1.9.14 when running a
    command with a NULL argv[0] if log_subcmds or intercept is enabled in
    sudoers.
  * Fixed a problem with "stair-stepped" output when piping or redirecting the
    output of a sudo command that takes user input when running a command in
    a pseudo-terminal.
  * Fixed a bug introduced in sudo 1.9.14 that affects matching sudoers rules
    containing a Runas_Spec with an empty Runas user. These rules should only
    match when sudo’s -g option is used but were matching even without the -g
    option. #290.</changelog>
  <changelog author="Otto Hollmann &lt;otto.hollmann@suse.com&gt;" date="1694692800">- Install config files into /usr/etc and read from both location:
  /etc and /usr/etc (bsc#1205118)</changelog>
  <changelog author="Ludwig Nussel &lt;lnussel@suse.com&gt;" date="1695211200">- Introduce optional wheel and sudo group policies as separate packages
  (bsc#1203978, jsc#PED-260)</changelog>
  <changelog author="Dominique Leuenberger &lt;dimstar@opensuse.org&gt;" date="1700568000">- Package/ship empty /etc/sudoers.d directory for admins to
  discover where to put their won config.</changelog>
  <changelog author="Otto Hollmann &lt;otto.hollmann@suse.com&gt;" date="1700654400">- Update to 1.9.15p2:
  * Fixed a bug on BSD systems where sudo would not restore the
    terminal settings on exit if the terminal had parity enabled.
    GitHub issue #326.
- Update to 1.9.15p1:
  * Fixed a bug introduced in sudo 1.9.15 that prevented LDAP-based
    sudoers from being able to read the ldap.conf file.
    GitHub issue #325.
- Update to 1.9.15:
  * Fixed an undefined symbol problem on older versions of macOS
    when "intercept" or "log_subcmds" are enabled in sudoers.
    GitHub issue #276.
  * Fixed "make check" failure related to getpwent(3) wrapping
    on NetBSD.
  * Fixed the warning message for "sudo -l command" when the command
    is not permitted.  There was a missing space between "list" and
    the actual command due to changes in sudo 1.9.14.
  * Fixed a bug where output could go to the wrong terminal if
    "use_pty" is enabled (the default) and the standard input, output
    or error is redirected to a different terminal.  Bug #1056.
  * The visudo utility will no longer create an empty file when the
    specified sudoers file does not exist and the user exits the
    editor without making any changes.  GitHub issue #294.
  * The AIX and Solaris sudo packages on www.sudo.ws now support
    "log_subcmds" and "intercept" with both 32-bit and 64-bit
    binaries.  Previously, they only worked when running binaries
    with the same word size as the sudo binary.  GitHub issue #289.
  * The sudoers source is now logged in the JSON event log.  This
    makes it possible to tell which rule resulted in a match.
  * Running "sudo -ll command" now produces verbose output that
    includes matching rule as well as the path to the sudoers file
    the matching rule came from.  For LDAP sudoers, the name of the
    matching sudoRole is printed instead.
  * The embedded copy of zlib has been updated to version 1.3.
  * The sudoers plugin has been modified to make it more resilient
    to ROWHAMMER attacks on authentication and policy matching.
    This addresses CVE-2023-42465.
  * The sudoers plugin now constructs the user time stamp file path
    name using the user-ID instead of the user name.  This avoids a
    potential problem with user names that contain a path separator
    ('/') being interpreted as part of the path name.  A similar
    issue in sudo-rs has been assigned CVE-2023-42456.
  * A path separator ('/') in a user, group or host name is now
    replaced with an underbar character ('_') when expanding escapes
    in @include and @includedir directives as well as the "iolog_file"
    and "iolog_dir" sudoers Default settings.
  * The "intercept_verify" sudoers option is now only applied when
    the "intercept" option is set in sudoers.  Previously, it was
    also applied when "log_subcmds" was enabled.  Sudo 1.9.14
    contained an incorrect fix for this.  Bug #1058.
  * Changes to terminal settings are now performed atomically, where
    possible.  If the command is being run in a pseudo-terminal and
    the user's terminal is already in raw mode, sudo will not change
    the user's terminal settings.  This prevents concurrent sudo
    processes from restoring the terminal settings to the wrong values.
    GitHub issue #312.
  * Reverted a change from sudo 1.9.4 that resulted in PAM session
    modules being called with the environment of the command to be
    run instead of the environment of the invoking user.
    GitHub issue #318.
  * New Indonesian translation from translationproject.org.
  * The sudo_logsrvd server will now raise its open file descriptor
    limit to the maximum allowed value when it starts up.  Each
    connection can require up to nine open file descriptors so the
    default soft limit may be too low.
  * Better log message when rejecting a command if the "intercept"
    option is enabled and the "intercept_allow_setid" option is
    disabled.  Previously, "command not allowed" would be logged and
    the user had no way of knowing what the actual problem was.
  * Sudo will now log the invoking user's environment as "submitenv"
    in the JSON logs.  The command's environment ("runenv") is no
    longer logged for commands rejected by the sudoers file or an
    approval plugin.</changelog>
  <changelog author="Otto Hollmann &lt;otto.hollmann@suse.com&gt;" date="1702900800">- Update to 1.9.15p4:
  * Fixed a bug introduced in sudo 1.9.15 that could prevent a user’s
    privileges from being listed by sudo -l if the sudoers entry
    in /etc/nsswitch.conf contains [SUCCESS=return]. This did not affect the
    ability to run commands via sudo. Bug #1063.
- Update to 1.9.15p3:
  * Always disable core dumps when sudo sends itself a fatal signal. Fixes a
    problem where sudo could potentially dump core dump when it re-sends the
    fatal signal to itself. This is only an issue if the command   * received
    a signal that would normally result in a core dump but the command did
    not actually dump core.
  * Fixed a bug matching a command with a relative path name when the sudoers
    rule uses shell globbing rules for the path name. Bug #1062.
  * Permit visudo to be run even if the local host name is not set. GitHub
    issue #332.
  * Fixed an editing error introduced in sudo 1.9.15 that could prevent
    sudoreplay from replaying sessions correctly. GitHub issue #334.
  * Fixed a bug introduced in sudo 1.9.15 where sudo -l &gt; /dev/null could hang
    on Linux systems. GitHub issue #335.
  * Fixed a bug introduced in sudo 1.9.15 where Solaris privileges specified
    in sudoers were not applied to the command being run.</changelog>
  <changelog author="Otto Hollmann &lt;otto.hollmann@suse.com&gt;" date="1702900801">- For existing products (SLE15-SP* and older) keep using /etc and don't
  switch to /usr/etc. So only SLES16/ALP, Tumbleweed and newer products
  will use both /etc and /usr/etc locations.</changelog>
  <changelog author="Otto Hollmann &lt;otto.hollmann@suse.com&gt;" date="1704196800">- Update to 1.9.15p5:
  * Fixed evaluation of the lecture, listpw, verifypw, and fdexec sudoers
    Defaults settings when used without an explicit value. Previously, if
    specified without a value they were evaluated as boolean false, even when
    the negation operator ('!') was not present.
  * Fixed a bug introduced in sudo 1.9.14 that prevented LDAP netgroup queries
    using the NETGROUP_BASE setting from being performed.
  * Sudo will now transparently rename a user's lecture file from the older
    name-based path to the newer user-ID-based path. GitHub issue #342.
  * Fixed a bug introduced in sudo 1.9.15 that could cause a memory allocation
    failure if sysconf(_SC_LOGIN_NAME_MAX) fails. Bug #1066.</changelog>
  <changelog author="Simon Lees &lt;sflees@suse.de&gt;" date="1722254400">- A quick note that bsc#1227574 is expected behavior in this
  version of sudo. It was a regression in 15.6 which doesn't have
  the /etc/ split for pam.d yet.</changelog>
  <changelog author="Simon Lees &lt;sflees@suse.de&gt;" date="1744804800">- Update to 1.9.16p2:
  * Sudo now passes the terminal device number to the policy plugin
  even if it cannot resolve it to a path name. This allows sudo to
  run without warnings in a chroot jail when the terminal device
  files are not present. GitHub issue #421.
  * On Linux systems, sudo will now attempt to use the symbolic links
  in /proc/self/fd/{0,1,2} when resolving the terminal device number.
  This can allow sudo to map a terminal device to its path name even
  when /dev/pts is not mounted in a chroot jail.
  * Fixed compilation errors with gcc and clang in C23 mode. C23 no
  longer supports functions with unspecified arguments. GitHub issue
  [#420].
  * Fixed the test for cross-compiling when checking for C99 snprintf().
  The changes made to the test in sudo 1.9.16 resulted in a different
  problem. GitHub issue #386.
  * Fixed the date used by the exit record in sudo-format log files.
  This was a regression introduced in sudo 1.9.16 and only affected
  file-based logs, not syslog. GitHub issue #405.
  * Fixed the root cause of the “unable to find terminal name for device”
  message when running sudo on AIX when no terminal is present. In
  sudo 1.9.16 this was turned from a debug message into a warning.
  GitHub issue #408.
  * When a duplicate alias is found in the sudoers file, the warning
  message now includes the file and line number of the previous
  definition.
  * Added support for the --with-secure-path-value=no configure option
  to allow packagers to ship the default sudoers file with the secure
  path line commented out.
  * Sudo no longer sends mail when a user runs sudo -nv or sudo -nl,
  even if mail_badpass or mail_always are set. Sudo already avoids
  logging to a file or syslog in this case. Bug #1072.
  * Added the cmddenial_message sudoers option to provide additional
  information to the user when a command is denied by the sudoers
  policy. The default message is still displayed.
  * The time stamp used for file-based logs is now more consistent
  with the time stamp produced by syslog. GitHub issue #327.
  * Sudo will now warn the user if it can detect the user’s terminal but
  cannot determine the path to the terminal device. The sudoers time
  stamp file will now use the terminal device number directly.
  GitHub issue #329.
  * The embedded copy of zlib has been updated to version 1.3.1.
  * Improved error handling if generating the list of signals and signal
  names fails at build time.
  * Fixed a compilation issue on Linux systems without process_vm_readv().
  * Fixed cross-compilation with WolfSSL.
  * Added a json_compact value for the sudoers log_format option which can
  be used when logging to a file. The existing json value has been aliased
  to json_pretty. In a future release, json will be an alias for
  json_compact. GitHub issue #357.
  * A new pam_silent sudoers option has been added which may be negated to
  avoid suppressing output from PAM authentication modules. GitHub issue #216.
  * Fixed several cvtsudoers JSON output problems. GitHub issues #369, #370,
  [#371], #373, #381.
  * When sudo runs a command in a pseudo-terminal and the user’s terminal is
  revoked, the pseudo-terminal’s foreground process group will now receive
  SIGHUP before the terminal is revoked. This emulates the behavior of the
  session leader exiting and is consistent with what happens when,
  for example, an ssh session is closed. GitHub issue #367.
  * Fixed make test with Python 3.12. GitHub issue #374.
  * In schema.ActiveDirectory, fixed the quoting in the example command.
  GitHub issue #376.
  * Paths specified via a Chdir_Spec or Chroot_Spec in sudoers may now
  be double-quoted.
  * Sudo insults are now included by default, but disabled unless the
  - -with-insults configure option is specified or the insults sudoers
  option is enabled.
  * The default sudoers file now enables the secure_path option by
  default and preserves the EDITOR, VISUAL, and SUDO_EDITOR environment
  variables when running visudo. The new --with-secure-path-value
  configure option can be used to set the value of secure_path in
  the default sudoers file. GitHub issue #387.
  * A sudoers schema for IBM Directory Server (aka IBM Tivoli Directory
  Server, IBM Security Directory Server, and IBM Security Verify
  Directory) is now included.
  * When cross-compiling sudo, the configure script now assumes that
  the snprintf() function is C99-compliant if the C compiler
  supports the C99 standard. Previously, configure would use sudo’s
  own snprintf() when cross-compiling. GitHub issue #386.</changelog>
  <changelog author="Simon Lees &lt;sflees@suse.de&gt;" date="1751284800">- Update to 1.9.17p1
  * Fix a possible local privilege escalation via the --host option
    [bsc#1245274, CVE-2025-32462]
  * Fix a possible local privilege Escalation via chroot option
    [bsc#1245275, CVE-2025-32463]
- Update to 1.9.17
  * Sudo now uses the NODEV macro consistently. Bug #1074.
    Fixed a bug where the ALL command in a sudoers rule would
    override a previous NOSETENV tag. Command tags are inherited from
    previous Cmnds in a Cmnd_Spec_List. There is a special case for
    the SETENV tag with the ALL command, where SETENV is implied if
    no explicit SETENV or NOSETENV tag is specified. This special
    case did not take into account that a NOSETENV tag that was inherited
    should override this behavior.
  * If sudo is run via ssh without a terminal and a password is required,
    it now suggest using ssh’s -t option.
  * Fixed the display of timeout values in the sudo -V output on systems
    without a C99-compliant snprintf() function.
  * Quieted a number of minor Coverity warnings.
  * Fixed a problem running sudo from a serial console on Linux when the
    command is run in a pseudo-terminal (the default).
  * Fixed a crash in sudo which could occur if there was a fatal error
    after the user was validated but before the command was actually run.
  * Fixed a number of man page style warnings. The “lint” make target in
    the docs directory will now run groff with warnings enabled if it is
    available. Bug #1075.
  * The ignore_dot sudoers setting is now on by default. There is now a
  - -disable-ignore-dot configure option to disable it. The
  - -with-ignore-dot configure option has been deprecated.
  * Fixed a problem with the pwfeedback option where an initial backspace
    would reduce the maximum length allowed for the password.
    GitHub issue #439.
  * Fixed minor grammar and spelling problems in the man pages.
  * Fixed a bug where a user could avoid entering a password for sudo -l
    command if they specified their own user or group name via the -u or
  - g options.
  * Avoid potential password guessing based on timing attacks on the
    strcmp() function on systems without PAM or a crypt() function where
    plaintext passwords are stored in the shadow password file.
  * Fixed a potential information leak where sudo -l command could be used
    to determine whether an executable exists in a directory that they do
    not have search access to.
  * Sudo uses TCSAFLUSH, not TCSADRAIN, when disabling echo once again.
    A long time ago sudo changed from using TCSAFLUSH to TCSADRAIN due
    to some systems having bugs related to TCSAFLUSH. That should no longer
    be a concern. Using TCSAFLUSH ensures that password input that has been
    received by the kernel, but not yet read by sudo, will be discarded and
    not echoed.
  * Added the SUDO_TTY environment variable if the user has a terminal.
    This can be used to find the user’s original tty device when sudo runs
    the command in its own pseudo-terminal. GitHub issue #447.
  * New Cantonese translation for sudo.</changelog>
  <changelog author="Simon Lees &lt;sflees@suse.de&gt;" date="1757937600">- Update to 1.9.17p2
  * Fixed a bug introduced in sudo 1.9.16 that could result in sudo
    sending SIGHUP to all processes on the system in certain rare
    cases. The bug could manifest if sudo is running a command in
    a pseudo-terminal, sudo terminates the command due to an
    internal error, and the user’s terminal is revoked. GitHub
    issue #458.
  * Fixed a bug introduced in sudo 1.9.12 that caused sudo to
    abort when the intercept and intercept_verify options are
    enabled in sudoers and either the command line arguments or
    the environment contains a string larger than the page size
    (usually 4096). This only Linux affects systems that support
    the ptrace_readv_string() function. GitHub issue #453.
  * Fixed a bug in sudo’s configure script introduced in sudo
    1.9.17 that prevented mdoc-format man pages from being used
    on systems without the mandoc utility. Bug #1077.
- /usr/etc/sudoers and file /usr/etc/sudoers.d/50-wheel-auth-self
  both have permissions 0644, while visudo -c complains that they
  should be 0440. (bsc#1249447)
- Policy and Groups subpackages can be noarch</changelog>
  <changelog author="Simon Lees &lt;sflees@suse.de&gt;" date="1775563200">- CVE-2026-35535: potential privilege escalation when running
  the mailer (bsc#1261420)
  * fix-CVE-2026-35535.patch
- Move tests under /usr/share for transactional system support
  (jsc#PED-14830)</changelog>
  <changelog author="Simon Lees &lt;sflees@suse.de&gt;" date="1781179200">- Fix missing %verify(not mode) %{_bindir}/sudo (bsc#1263098)</changelog>
</package>
</otherdata>