Compare commits

..

No commits in common. "rawhide" and "f27" have entirely different histories.

6 changed files with 32 additions and 369 deletions

View file

@ -1 +0,0 @@
1

18
.gitignore vendored
View file

@ -10,21 +10,3 @@
/chkconfig-1.8.tar.bz2
/chkconfig-1.9.tar.gz
/chkconfig-1.10.tar.gz
/chkconfig-1.11.tar.gz
/chkconfig-1.14.tar.gz
/chkconfig-1.15.tar.gz
/chkconfig-1.18.tar.gz
/chkconfig-1.19.tar.gz
/chkconfig-1.21.tar.gz
/chkconfig-1.22.tar.gz
/chkconfig-1.23.tar.gz
/chkconfig-1.24.tar.gz
/chkconfig-1.25.tar.gz
/chkconfig-1.26.tar.gz
/chkconfig-1.27.tar.gz
/chkconfig-1.28.tar.gz
/chkconfig-1.29.tar.gz
/chkconfig-1.30.tar.gz
/chkconfig-1.31.tar.gz
/chkconfig-1.32.tar.gz
/chkconfig-1.33.tar.gz

View file

@ -1,49 +0,0 @@
From 1cdf46d6c5d0fa094f46ecef7e4294144d956988 Mon Sep 17 00:00:00 2001
From: Adam Williamson <awilliam@redhat.com>
Date: Fri, 24 Oct 2025 12:05:00 -0700
Subject: [PATCH] Ignore alternatives that are binary-identical to existing
ones
In https://bugzilla.redhat.com/show_bug.cgi?id=2363937 we found
a problem that is ultimately triggered by alternatives configs
having multiple entries that point to the same binary, or the
same *effective* binary after /usr and /sbin merges (which is
what streq_bin handles). I can't see a reason why we'd ever want
to support this as a real thing, so when reading the config,
let's just skip ingesting any alternative whose leader target is
the same effective binary as an alternative we've already read.
Signed-off-by: Adam Williamson <awilliam@redhat.com>
---
alternatives.c | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)
diff --git a/alternatives.c b/alternatives.c
index 61a95ad..75d3a54 100644
--- a/alternatives.c
+++ b/alternatives.c
@@ -520,6 +520,12 @@ static int readConfig(struct alternativeSet *set, const char *title,
newAlt.followers[i - 1].target = (line && strlen(line)) ? strsteal(&line) : NULL;
}
+ for (i = 0; i < set->numAlts; i++) {
+ if (streq_bin(newAlt.leader.target, set->alts[i].leader.target)) {
+ goto nextalt;
+ }
+ }
+
set->alts = realloc(set->alts, (set->numAlts + 1) * sizeof(*set->alts));
set->alts[set->numAlts] = newAlt;
@@ -527,7 +533,7 @@ static int readConfig(struct alternativeSet *set, const char *title,
set->best = set->numAlts;
set->numAlts++;
-
+nextalt:
memset(&newAlt, 0, sizeof(struct alternative));
nextLine(&buf, &line);
--
2.51.0

View file

@ -1,37 +1,24 @@
Summary: A system tool for maintaining the /etc/rc*.d hierarchy
Name: chkconfig
Version: 1.33
Version: 1.10
Release: 3%{?dist}
License: GPL-2.0-only
License: GPLv2
Group: System Environment/Base
URL: https://github.com/fedora-sysv/chkconfig
Source: https://github.com/fedora-sysv/chkconfig/archive/%{version}.tar.gz#/%{name}-%{version}.tar.gz
# https://github.com/fedora-sysv/chkconfig/pull/157
# https://bugzilla.redhat.com/show_bug.cgi?id=2363937
# ignore 'duplicate' entries in config file (same effective binary)
# avoids issue where package install/update disables service
Patch: 0001-Ignore-alternatives-that-are-binary-identical-to-exi.patch
BuildRequires: gcc gettext libselinux-devel make newt-devel popt-devel pkgconfig(systemd)
# beakerlib might not be available on CentOS Stream any more
%if 0%{?fedora}
BuildRequires: beakerlib
%endif
%global merged_sbin %["%{_sbindir}" == "%{_bindir}"]
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
BuildRequires: newt-devel gettext popt-devel libselinux-devel
Conflicts: initscripts <= 5.30-1
Provides: /sbin/chkconfig
%description
Chkconfig is a basic system utility. It updates and queries runlevel
information for system services. Chkconfig manipulates the numerous
symbolic links in /etc/rc.d, to relieve system administrators of some
symbolic links in /etc/rc.d, to relieve system administrators of some
of the drudgery of manually editing the symbolic links.
%package -n ntsysv
Summary: A tool to set the stop/start of system services in a runlevel
Group: System Environment/Base
Requires: chkconfig = %{version}-%{release}
%description -n ntsysv
@ -41,35 +28,18 @@ manipulating the numerous symbolic links in /etc/rc.d). Unless you
specify a runlevel or runlevels on the command line (see the man
page), ntsysv configures the current runlevel (5 if you're using X).
%package -n alternatives
Summary: A tool to maintain symbolic links determining default commands
%if %{merged_sbin}
Provides: /usr/sbin/alternatives
Provides: /usr/sbin/update-alternatives
Requires: filesystem(unmerged-sbin-symlinks)
%endif
%description -n alternatives
alternatives creates, removes, maintains and displays information about the
symbolic links comprising the alternatives system. It is possible for several
programs fulfilling the same or similar functions to be installed on a single
system at the same time.
%prep
%autosetup -p1
%setup -q
%build
%make_build RPM_OPT_FLAGS="$RPM_OPT_FLAGS" LDFLAGS="$RPM_LD_FLAGS" MERGED_SBIN=%{merged_sbin}
make RPM_OPT_FLAGS="$RPM_OPT_FLAGS" LDFLAGS="$RPM_LD_FLAGS" %{?_smp_mflags}
# tests are executed using tmt and tf on CentOS Stream and RHEL
%if 0%{?fedora}
%check
make check
%endif
%install
rm -rf $RPM_BUILD_ROOT
%make_install MANDIR=%{_mandir} SBINDIR=%{_sbindir}
make DESTDIR=$RPM_BUILD_ROOT MANDIR=%{_mandir} SBINDIR=%{_sbindir} install
mkdir -p $RPM_BUILD_ROOT/etc/rc.d/init.d
ln -s rc.d/init.d $RPM_BUILD_ROOT/etc/init.d
@ -81,18 +51,27 @@ mkdir -p $RPM_BUILD_ROOT/etc/chkconfig.d
%find_lang %{name}
%clean
rm -rf $RPM_BUILD_ROOT
%files -f %{name}.lang
%defattr(-,root,root)
%{!?_licensedir:%global license %%doc}
%license COPYING
%{_sbindir}/chkconfig
%{_sysconfdir}/chkconfig.d
%{_sysconfdir}/init.d
%{_sysconfdir}/rc.d
%{_sysconfdir}/rc.d/init.d
%{_sysconfdir}/rc[0-6].d
%{_sysconfdir}/rc.d/rc[0-6].d
%dir /etc/alternatives
/sbin/chkconfig
%{_sbindir}/update-alternatives
%{_sbindir}/alternatives
/etc/chkconfig.d
/etc/init.d
/etc/rc.d
/etc/rc.d/init.d
/etc/rc[0-6].d
/etc/rc.d/rc[0-6].d
%dir /var/lib/alternatives
%{_mandir}/*/chkconfig*
%{_mandir}/*/update-alternatives*
%{_mandir}/*/alternatives*
%{_prefix}/lib/systemd/systemd-sysv-install
%files -n ntsysv
@ -100,251 +79,12 @@ mkdir -p $RPM_BUILD_ROOT/etc/chkconfig.d
%{_sbindir}/ntsysv
%{_mandir}/*/ntsysv.8*
%files -n alternatives
%license COPYING
%dir /etc/alternatives
%ghost %dir %attr(755, root, root) /etc/alternatives.admindir
%ghost %dir %attr(755, root, root) /var/lib/alternatives
%{_sbindir}/update-alternatives
%{_sbindir}/alternatives
%{_mandir}/*/update-alternatives*
%{_mandir}/*/alternatives*
%changelog
* Fri Oct 24 2025 Adam Williamson <awilliam@redhat.com> - 1.33-3
- Backport PR #157 to fix MTA service disablement on package update (#2363937)
* Wed Aug 02 2017 Fedora Release Engineering <releng@fedoraproject.org> - 1.10-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild
* Wed Jul 23 2025 Fedora Release Engineering <releng@fedoraproject.org> - 1.33-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild
* Fri May 09 2025 Lukas Nykryn <lnykryn@redhat.com> - 1.33-1
- alternatives: ignore all bin/sbin differences on systems with merged bin/sbin
* Thu Mar 13 2025 Jan Macku <jamacku@redhat.com> - 1.32-1
- Allow paths with /usr/sbin and /usr/bin as equivalent
- mkosi: update conf to match latest mkosi version
- Translated using Weblate (Italian)
* Sun Jan 12 2025 Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> - 1.31-2
- Rebuilt for the bin-sbin merge (2nd attempt)
* Wed Dec 18 2024 Jan Macku <jamacku@redhat.com> - 1.31-1
- Translated using Weblate (Ukrainian)
- Translated using Weblate (Ukrainian)
- Translated using Weblate (French)
- Update translation files
- Translated using Weblate (Turkish)
* Wed Aug 07 2024 Jan Macku <jamacku@redhat.com> - 1.30-1
- ostree: move admindir to /etc/alternatives.admindir
- update po/chkconfig.pot
* Tue Jul 30 2024 Jan Macku <jamacku@redhat.com> - 1.29-1
- add basic mkosi config
- remove not used directory from makefile
- ntsysv: fix leaks
- leveldb: security_context_t is deprecated
- leveldb: fix leak
- leveldb: fix leak
- leveldb: fix leak
- leveldb: fix leak
- leveldb: fix leak
- chkconfig: fix leak
- chkconfig: fix leak
- chkconfig: fix memory leak when deleting a service
- leveldb: add destructors for service
- leveldb: fix memory leak
- leveldb.c: fix memory leak
- chkconfig: fix leak
- leveldb: fix memory leak
- alternatives: ensure the current alt. is freed if parsing fails
- alternatives: ensure the current group is freed
- Translated using Weblate (English (United Kingdom))
- Translated using Weblate (Turkish)
* Fri Jun 21 2024 Jan Macku <jamacku@redhat.com> - 1.28-1
- Prepare for bin-sbin merge
- tests: fix integration with github actions
* Tue May 14 2024 Jan Macku <jamacku@redhat.com> - 1.27-1
- alternatives: properly handle chars with const in normalize_path
- alternatives: use exit in main instead of return for critical failures
- alternatives: fix leak
- alternatives: fix leak
- alternatives: fix possible overrun
- alternatives: fix all the leaks of groups in readConfig
- alternatives: fix all the leaks of read line in readConfig
- alternatives: fix leak
- alternatives: fix memory leak
- alternatives: fix memory leak
- alternatives: initialize parameters in main to NULL
- alternatives: fix memory leak
- Translated using Weblate (Korean)
- Translated using Weblate (English (United Kingdom))
- Translated using Weblate (Finnish)
- Translated using Weblate (Finnish)
- Translated using Weblate (Japanese)
- Translated using Weblate (Swedish)
- Translated using Weblate (Japanese)
- Translated using Weblate (Polish)
- Translated using Weblate (Korean)
- Translated using Weblate (Georgian)
- Update translation files
- Translated using Weblate (Japanese)
- Fix systemd dependency
* Wed Jan 17 2024 Jan Macku <jamacku@redhat.com> - 1.26-1
- fix(test): dot't call `basename` with empty string
- spec: sort BuildRequires alphabetically
- fix(test): remove dangling `rlPhase` fn call
- ci: run tests using Packit and Testing Farm
- build: update `.pot` file
- ci: fix typo in test workflow
- test: add support for running using tmt
- Translated using Weblate (Czech)
- Translated using Weblate (Punjabi)
- build(deps): bump actions/upload-artifact from 3 to 4
- build(deps): bump github/codeql-action from 2 to 3
- leveldb: fix systemdActive()
- build(deps): bump redhat-plumbers-in-action/differential-shellcheck
- Translated using Weblate (Hungarian)
- build(deps): bump actions/checkout from 3 to 4
* Wed Aug 02 2023 Jan Macku <jamacku@redhat.com> - 1.25-1
- alternatives: fix possible buffer overrun
- Translated using Weblate (Korean)
- Translated using Weblate (Chinese (Simplified) (zh_CN))
* Thu May 04 2023 Jan Macku <jamacku@redhat.com> - 1.24-1
- ci: fix `NEXT_VERSION` in Makefile
- revert: releng: Enable Packit to handle Fedora updates
- revert: releng: Convert to rpmautospec
* Thu May 04 2023 Jan Macku <jamacku@redhat.com> - 1.23-1
- Translated using Weblate (Korean)
- Translated using Weblate (English (United Kingdom))
- alternatives: --keep-foreign incorrectly handles non-existent files
- alternatives: isLink should return 0 in case of lstat error
- Translated using Weblate (Swedish)
- Translated using Weblate (Korean)
- Translated using Weblate (Georgian)
- Translated using Weblate (Finnish)
- Translated using Weblate (Ukrainian)
- Translated using Weblate (Polish)
- Update translation files
- Translated using Weblate (German)
- doc: update translations
- spec: remote changelog
* Thu Mar 23 2023 Jan Macku <jamacku@redhat.com> - 1.22-1
- migrate to SPDX license
- Translated using Weblate (English (United Kingdom))
- Translated using Weblate (Japanese)
- ci: Add locale linter
- ci: update workflows
- test: fix ShellCheck error[SC2070]
- Bump redhat-plumbers-in-action/differential-shellcheck from 3 to 4 (#94)
- releng: Packit remove extra job trigger
- releng: Enable Packit to handle Fedora updates
- releng: Convert to rpmautospec
* Wed Oct 05 2022 Jan Macku <jamacku@redhat.com> - 1.21-1
- ci: Add CodeQL to replace LGTM
- alternatives: replace master/slave with leader/follower
- chkconfig: use correct cmp function
- Bump redhat-plumbers-in-action/differential-shellcheck from 2 to 3
- ci: Add Shell linter - Differential ShellCheck
- ci: Use more inclusive terminology in workflows
- ci: Update workflows, packit and dependabot
- Translated using Weblate (Friulian)
- Translated using Weblate (Swedish)
- Translated using Weblate (Estonian)
- Translated using Weblate (Georgian)
- Translated using Weblate (Polish)
- Translated using Weblate (Korean)
- Translated using Weblate (Czech)
- Translations update from Fedora Weblate (#77)
- Translations update from Fedora Weblate (#75)
- Translations update from Fedora Weblate (#74)
- Translations update from Fedora Weblate (#73)
- Translated using Weblate (Ukrainian)
- Update translation files
- Family mentioned for --set in both man and help
- Translated using Weblate (French)
- build-sys: Ensure `systemd-sysv-install` symlink does not have `//`
- Translated using Weblate (German)
- Add LGTM badges to README
- Merge remote-tracking branch 'weblate/master'
- Translated using Weblate (Indonesian)
- Translated using Weblate (Finnish)
- Translated using Weblate (Korean)
- Translated using Weblate (Ukrainian)
- Translated using Weblate (Turkish)
- Translated using Weblate (Polish)
- Translated using Weblate (Norwegian Nynorsk)
- Update translation files
- Translated using Weblate (Finnish)
- Translated using Weblate (Czech)
- Translated using Weblate (Swedish)
- Translated using Weblate (Italian)
- Translated using Weblate (Spanish)
- Translated using Weblate (Chinese (Simplified))
* Wed Jul 28 2021 Jan Macku <jamacku@redhat.com> - 1.20-1
- spec: Replace not working awk command with sed (#62)
* Fri Jul 23 2021 Jan Macku <jamacku@redhat.com> - 1.19-1
- spec: Add Provides /sbin/chkconfig in order to stay backwards compatible (#60)
* Fri Jul 23 2021 Jan Macku <jamacku@redhat.com> - 1.18-1
- spec: /sbin/chkconfig -> /usr/sbin/chkconfig (#59)
* Thu Jul 22 2021 Jan Macku <jamacku@redhat.com> - 1.17-1
- alternatives: tweak manpage to match the real 'remove' behavior (#58)
* Thu Jul 15 2021 Jan Macku <jamacku@redhat.com> - 1.16-1
- alternatives: add --keep-foreign (#57)
- Translations update from Weblate
- ci: Onboard chkconfig to Packit
- zanata: remove zanata related stuff
- Use make macros
- alternatives: use one function for path cleaning
- CI: specify more closely when to run CI
- Add basic CI and README
- spec: sync specfile with Fedora
* Thu Jan 21 2021 Jan Macku <jamacku@redhat.com> - 1.15-1
- spec: sync specfile with Fedora
- makefile: Use rpmdev-bumpspec's legacy date option
- Add feature to generate specfile entry, commit and archive
* Tue Jul 21 2020 Tom Stellard <tstellar@redhat.com> - 1.14-2
- Use make macros
- https://fedoraproject.org/wiki/Changes/UseMakeBuildInstallMacro
* Fri Jul 17 2020 Jan Macku <jamacku@redhat.com> - 1.14-1
- Fix spelling of SELinux
- Remove hardcoded systemd path
* Tue Apr 14 2020 Jan Macku <jamacku@redhat.com> - 1.13-1
- fix typo in translations and fix bogus dates in changelog
* Mon Apr 06 2020 Jan Macku <jamacku@redhat.com> - 1.12-1
- alternatives setService(): Add missing error mesg - (#1820089)
- po: update translations
- rebase
* Thu Mar 14 2019 Peter Robinson <pbrobinson@fedoraproject.org> 1.11-4
- Split out alternatives into it's own package
* Mon Oct 08 2018 Lukas Nykryn <lnykryn@redhat.com> - 1.11-2
- add Provides: alternatives
* Mon Sep 10 2018 Lukas Nykryn <lnykryn@redhat.com> - 1.11-1
- Add tests for --add/remove-slave and use beakerlib
- alternatives: add-slave and remove-slave
- leveldb: don't crash on long names
- alternatives: prettier --list output
* Wed Jul 26 2017 Fedora Release Engineering <releng@fedoraproject.org> - 1.10-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild
* Fri Apr 21 2017 Lukáš Nykrýn <lnykryn@redhat.com> - 1.10-1
- Introduce --remove-all option
@ -520,7 +260,7 @@ mkdir -p $RPM_BUILD_ROOT/etc/chkconfig.d
- translation updates: as, bg, bn_IN, bs, ca, de, fr, hi, hu, id, ja,
ka, ml, ms, nb, or, sk, sl
- add resetpriorities to the man page (#197399)
* Tue Feb 6 2007 Bill Nottingham <notting@redhat.com> 1.3.33-1
- various changes from review - support alternate %%{_sbindir}, fix
summaries, add version to requires, assorted other bits

View file

@ -1,9 +0,0 @@
summary: Public (upstream) beakerlib tests
discover:
- name: fedora
how: fmf
url: https://github.com/fedora-sysv/chkconfig.git
execute:
how: tmt

View file

@ -1 +1 @@
SHA512 (chkconfig-1.33.tar.gz) = 82a7a5e7d62537843cd81fa0c29a0f481ff8fe2798e0143fc409c028f02f01585b6c5d60faf5ce4a4c6dea11c4bba766dbd28e29978447f56708def65421739d
SHA512 (chkconfig-1.10.tar.gz) = 933024f1a630c7b1e5d4488c5ddc9d65571b175c4f94dc5598d1b704e394a54cefa24914b390ac51290b430db45fe3e83db209883b5c6d65351ef491f22ba40f