Compare commits

...
Sign in to create a new pull request.

27 commits

Author SHA1 Message Date
Adam Williamson
8358faf640 Backport PR #157 to fix MTA service disablement on package update (#2363937) 2025-10-27 12:46:42 -07:00
Fedora Release Engineering
7a61cc3a35 Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild 2025-07-23 18:16:40 +00:00
Lukas Nykryn
5199d7e760 1.33 2025-05-09 17:51:26 +02:00
Jan Macku
9b0f83924e 1.32 2025-03-13 17:17:27 +01:00
Fedora Release Engineering
04d6edc7a4 Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild 2025-01-16 13:40:54 +00:00
Zbigniew Jędrzejewski-Szmek
8a0753dab8 Rebuilt for the bin-sbin merge (2nd attempt)
https://fedoraproject.org/wiki/Changes/Unify_bin_and_sbin
2025-01-12 14:20:05 +01:00
Jan Macku
e3ed99a50d 1.31 2024-12-18 16:13:11 +01:00
Jan Macku
7923a0ce5a tests: remove old STI tests 2024-09-13 15:45:05 +02:00
Jan Macku
33664db71d 1.30 2024-08-07 14:07:43 +02:00
Jan Macku
c8949ebd08 1.29 2024-07-30 16:00:06 +02:00
Fedora Release Engineering
50f43d31f2 Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild 2024-07-17 19:15:47 +00:00
Zbigniew Jędrzejewski-Szmek
ab912e8b3a Rebuilt for the bin-sbin merge
https://fedoraproject.org/wiki/Changes/Unify_bin_and_sbin
2024-07-09 12:37:14 +02:00
Jan Macku
372a2922f5 1.28 2024-06-21 14:35:24 +02:00
Jan Macku
f72cdb0433 1.27 2024-05-14 12:55:19 +02:00
Fedora Release Engineering
3897cd3b7c Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild 2024-01-23 01:33:39 +00:00
Fedora Release Engineering
edf022b275 Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild 2024-01-19 15:23:32 +00:00
Yaakov Selkowitz
c0cbf24c06 Fix systemd dependency
systemd is used during the build only to get systemunitdir from
systemd.pc. That pkgconfig file is now part of systemd, and
systemd-devel does not provide that, even indirectly.  While beakerlib
ends up pulling in systemd, that should not be relied upon, and does not
help for RHEL/ELN where beakerlib is now disabled.
2024-01-19 03:37:19 -05:00
Jan Macku
8a4a5b5f3f 1.26 2024-01-17 15:31:27 +01:00
Jan Macku
89a105fb62 ci: enable upstream beakerlib tests 2024-01-17 14:53:45 +01:00
Jan Macku
ff4cf928ae 1.25 2023-08-02 13:34:58 +02:00
Fedora Release Engineering
7766eb004e Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2023-07-19 15:36:38 +00:00
Jan Macku
6111ad3c0a 1.24 2023-05-04 17:18:15 +02:00
Jan Macku
728977c628 1.23 2023-05-04 13:00:57 +02:00
Jan Macku
499fc91b50 1.22 2023-03-23 12:51:18 +01:00
Jan Macku
e2683add9a Convert to %autorelease and %autochangelog
[skip changelog]
2023-03-23 12:28:57 +01:00
Fedora Release Engineering
66258c28ca Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2023-01-18 23:48:43 +00:00
Jan Macku
3fb6bb1d40 1.21 2022-10-05 10:34:01 +02:00
20 changed files with 284 additions and 475 deletions

1
.fmf/version Normal file
View file

@ -0,0 +1 @@
1

13
.gitignore vendored
View file

@ -15,3 +15,16 @@
/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

@ -0,0 +1,49 @@
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,11 +1,25 @@
Summary: A system tool for maintaining the /etc/rc*.d hierarchy
Name: chkconfig
Version: 1.19
Version: 1.33
Release: 3%{?dist}
License: GPLv2
License: GPL-2.0-only
URL: https://github.com/fedora-sysv/chkconfig
Source: https://github.com/fedora-sysv/chkconfig/archive/%{version}.tar.gz#/%{name}-%{version}.tar.gz
BuildRequires: newt-devel gettext popt-devel libselinux-devel beakerlib gcc systemd-devel make
# 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}"]
Conflicts: initscripts <= 5.30-1
Provides: /sbin/chkconfig
@ -13,7 +27,7 @@ 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
@ -29,6 +43,11 @@ 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
@ -37,13 +56,16 @@ programs fulfilling the same or similar functions to be installed on a single
system at the same time.
%prep
%setup -q
%autosetup -p1
%build
%make_build RPM_OPT_FLAGS="$RPM_OPT_FLAGS" LDFLAGS="$RPM_LD_FLAGS"
%make_build RPM_OPT_FLAGS="$RPM_OPT_FLAGS" LDFLAGS="$RPM_LD_FLAGS" MERGED_SBIN=%{merged_sbin}
# 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
@ -81,18 +103,195 @@ mkdir -p $RPM_BUILD_ROOT/etc/chkconfig.d
%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*
%dir /var/lib/alternatives
%changelog
* Wed Jul 20 2022 Fedora Release Engineering <releng@fedoraproject.org> - 1.19-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
* 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 Jan 19 2022 Fedora Release Engineering <releng@fedoraproject.org> - 1.19-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_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)
@ -114,12 +313,6 @@ mkdir -p $RPM_BUILD_ROOT/etc/chkconfig.d
- Add basic CI and README
- spec: sync specfile with Fedora
* Wed Jul 21 2021 Fedora Release Engineering <releng@fedoraproject.org> - 1.15-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
* Tue Jan 26 2021 Fedora Release Engineering <releng@fedoraproject.org> - 1.15-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
* 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
@ -327,7 +520,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

9
plans/public.fmf Normal file
View file

@ -0,0 +1,9 @@
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.19.tar.gz) = a7ff0a79f99317224500ec36a5aca710676a229144bdac4a883871036bb3ce20121d1aed55b37be83c17f616de3822d87d264ec3e5767c085419e7f0340705f9
SHA512 (chkconfig-1.33.tar.gz) = 82a7a5e7d62537843cd81fa0c29a0f481ff8fe2798e0143fc409c028f02f01585b6c5d60faf5ce4a4c6dea11c4bba766dbd28e29978447f56708def65421739d

View file

@ -1,62 +0,0 @@
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# Makefile of /CoreOS/chkconfig/Regression/alternatives-doesn-t-update-slave-links-with
# Description: Test for BZ#1347541 (alternatives doesn't update slave links with)
# Author: Jan Scotka <jscotka@redhat.com>
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# Copyright (c) 2016 Red Hat, Inc.
#
# This copyrighted material is made available to anyone wishing
# to use, modify, copy, or redistribute it subject to the terms
# and conditions of the GNU General Public License version 2.
#
# This program is distributed in the hope that it will be
# useful, but WITHOUT ANY WARRANTY; without even the implied
# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
# PURPOSE. See the GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public
# License along with this program; if not, write to the Free
# Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
# Boston, MA 02110-1301, USA.
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
export TEST=/CoreOS/chkconfig/Regression/alternatives-doesn-t-update-slave-links-with
export TESTVERSION=1.0
BUILT_FILES=
FILES=$(METADATA) runtest.sh Makefile PURPOSE
.PHONY: all install download clean
run: $(FILES) build
./runtest.sh
build: $(BUILT_FILES)
test -x runtest.sh || chmod a+x runtest.sh
clean:
rm -f *~ $(BUILT_FILES)
$(METADATA): Makefile
@echo "Owner: Jan Scotka <jscotka@redhat.com>" > $(METADATA)
@echo "Name: $(TEST)" >> $(METADATA)
@echo "TestVersion: $(TESTVERSION)" >> $(METADATA)
@echo "Path: $(TEST_DIR)" >> $(METADATA)
@echo "Description: Test for BZ#1347541 (alternatives doesn't update slave links with)" >> $(METADATA)
@echo "Type: Regression" >> $(METADATA)
@echo "TestTime: 10m" >> $(METADATA)
@echo "RunFor: chkconfig" >> $(METADATA)
@echo "Requires: chkconfig" >> $(METADATA)
@echo "Priority: Normal" >> $(METADATA)
@echo "License: GPLv2" >> $(METADATA)
@echo "Confidential: no" >> $(METADATA)
@echo "Destructive: no" >> $(METADATA)
@echo "Bug: 1347541" >> $(METADATA)
@echo "Releases: -RHEL4 -RHELClient5 -RHELServer5" >> $(METADATA)
rhts-lint $(METADATA)

View file

@ -1,5 +0,0 @@
PURPOSE of /CoreOS/chkconfig/Regression/alternatives-doesn-t-update-slave-links-with
Description: Test for BZ#1347541 (alternatives doesn't update slave links with)
Author: Jan Scotka <jscotka@redhat.com>
Bug summary: alternatives doesn't update slave links with --install in manual mode
Bugzilla link: https://bugzilla.redhat.com/show_bug.cgi?id=1347541

View file

@ -1,50 +0,0 @@
#!/bin/bash
# vim: dict+=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# runtest.sh of /CoreOS/chkconfig/Regression/alternatives-doesn-t-update-slave-links-with
# Description: Test for BZ#1347541 (alternatives doesn't update slave links with)
# Author: Jan Scotka <jscotka@redhat.com>
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# Copyright (c) 2016 Red Hat, Inc.
#
# This copyrighted material is made available to anyone wishing
# to use, modify, copy, or redistribute it subject to the terms
# and conditions of the GNU General Public License version 2.
#
# This program is distributed in the hope that it will be
# useful, but WITHOUT ANY WARRANTY; without even the implied
# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
# PURPOSE. See the GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public
# License along with this program; if not, write to the Free
# Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
# Boston, MA 02110-1301, USA.
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# Include Beaker environment
. /usr/share/beakerlib/beakerlib.sh || exit 1
PACKAGE="chkconfig"
rlJournalStart
rlPhaseStartSetup
rlAssertRpm $PACKAGE
rlPhaseEnd
rlPhaseStartTest
rlRun "alternatives --install /usr/bin/xxx xxx /usr/bin/true 1 --slave /usr/bin/yyy yyy /usr/bin/true"
rlRun "alternatives --set xxx /usr/bin/true"
rlRun "alternatives --install /usr/bin/xxx xxx /usr/bin/true 1 --slave /usr/bin/yyy yyy /usr/bin/false"
rlRun "readlink /etc/alternatives/yyy | grep /usr/bin/false"
rlPhaseEnd
rlPhaseStartCleanup
rlRun "update-alternatives --remove xxx /usr/bin/true"
rlPhaseEnd
rlJournalPrintText
rlJournalEnd

View file

@ -1,63 +0,0 @@
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# Makefile of /CoreOS/chkconfig/Sanity/backport-family-option-from-upstream
# Description: Test for BZ#1291340 (Backport --family option from upstream)
# Author: Jan Scotka <jscotka@redhat.com>
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# Copyright (c) 2016 Red Hat, Inc.
#
# This copyrighted material is made available to anyone wishing
# to use, modify, copy, or redistribute it subject to the terms
# and conditions of the GNU General Public License version 2.
#
# This program is distributed in the hope that it will be
# useful, but WITHOUT ANY WARRANTY; without even the implied
# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
# PURPOSE. See the GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public
# License along with this program; if not, write to the Free
# Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
# Boston, MA 02110-1301, USA.
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
export TEST=/CoreOS/chkconfig/Sanity/backport-family-option-from-upstream
export TESTVERSION=1.0
BUILT_FILES=
FILES=$(METADATA) runtest.sh Makefile PURPOSE
.PHONY: all install download clean
run: $(FILES) build
./runtest.sh
build: $(BUILT_FILES)
test -x runtest.sh || chmod a+x runtest.sh
clean:
rm -f *~ $(BUILT_FILES)
$(METADATA): Makefile
@echo "Owner: Jan Scotka <jscotka@redhat.com>" > $(METADATA)
@echo "Name: $(TEST)" >> $(METADATA)
@echo "TestVersion: $(TESTVERSION)" >> $(METADATA)
@echo "Path: $(TEST_DIR)" >> $(METADATA)
@echo "Description: Test for BZ#1291340 (Backport --family option from upstream)" >> $(METADATA)
@echo "Type: Sanity" >> $(METADATA)
@echo "TestTime: 10m" >> $(METADATA)
@echo "RunFor: chkconfig" >> $(METADATA)
@echo "Requires: chkconfig" >> $(METADATA)
@echo "Priority: Normal" >> $(METADATA)
@echo "License: GPLv2" >> $(METADATA)
@echo "Confidential: no" >> $(METADATA)
@echo "Destructive: no" >> $(METADATA)
@echo "Bug: 1291340" >> $(METADATA)
@echo "Releases: -RHEL4 -RHELClient5 -RHELServer5" >> $(METADATA)
rhts-lint $(METADATA)

View file

@ -1,5 +0,0 @@
PURPOSE of /CoreOS/chkconfig/Sanity/backport-family-option-from-upstream
Description: Test for BZ#1291340 (Backport --family option from upstream)
Author: Jan Scotka <jscotka@redhat.com>
Bug summary: Backport --family option from upstream
Bugzilla link: https://bugzilla.redhat.com/show_bug.cgi?id=1291340

View file

@ -1,58 +0,0 @@
#!/bin/bash
# vim: dict+=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# runtest.sh of /CoreOS/chkconfig/Sanity/backport-family-option-from-upstream
# Description: Test for BZ#1291340 (Backport --family option from upstream)
# Author: Jan Scotka <jscotka@redhat.com>
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# Copyright (c) 2016 Red Hat, Inc.
#
# This copyrighted material is made available to anyone wishing
# to use, modify, copy, or redistribute it subject to the terms
# and conditions of the GNU General Public License version 2.
#
# This program is distributed in the hope that it will be
# useful, but WITHOUT ANY WARRANTY; without even the implied
# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
# PURPOSE. See the GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public
# License along with this program; if not, write to the Free
# Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
# Boston, MA 02110-1301, USA.
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# Include Beaker environment
. /usr/share/beakerlib/beakerlib.sh || exit 1
PACKAGE="chkconfig"
rlJournalStart
rlPhaseStartSetup
rlAssertRpm $PACKAGE
rlRun "TmpDir=\$(mktemp -d)" 0 "Creating tmp directory"
rlRun "touch $TmpDir/a"
rlRun "touch $TmpDir/b"
rlRun "ln -s $TmpDir/a $TmpDir/link"
rlPhaseEnd
rlPhaseStartTest
rlRun "alternatives --install $TmpDir/link testname $TmpDir/a 1 --family testfamily"
rlRun "alternatives --install $TmpDir/link testname $TmpDir/b 2 --family testfamily"
rlRun "alternatives --display testname |grep 'link.*$TmpDir/b'"
rlRun "alternatives --display testname |grep 'link.*$TmpDir/a'" 1
rlRun "alternatives --display testname |grep '$TmpDir/a.*testfamily priority 1'"
rlRun "alternatives --list | grep 'testname.*$TmpDir/b'"
rlPhaseEnd
rlPhaseStartCleanup
rlRun " alternatives --remove testname $TmpDir/a"
rlRun " alternatives --remove testname $TmpDir/b"
rlRun "rm -rf $TmpDir"
rlPhaseEnd
rlJournalPrintText
rlJournalEnd

View file

@ -1,61 +0,0 @@
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# Makefile of /CoreOS/chkconfig/Regression/chkconfig-prioritory-set-inconsistently
# Description: chkconfig-prioritory-set-inconsistently
# Author: Martin Cermak <mcermak@redhat.com>
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# Copyright (c) 2012 Red Hat, Inc. All rights reserved.
#
# This copyrighted material is made available to anyone wishing
# to use, modify, copy, or redistribute it subject to the terms
# and conditions of the GNU General Public License version 2.
#
# This program is distributed in the hope that it will be
# useful, but WITHOUT ANY WARRANTY; without even the implied
# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
# PURPOSE. See the GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public
# License along with this program; if not, write to the Free
# Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
# Boston, MA 02110-1301, USA.
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
export TEST=/CoreOS/chkconfig/Regression/chkconfig-prioritory-set-inconsistently
export TESTVERSION=1.0
BUILT_FILES=
FILES=$(METADATA) runtest.sh Makefile PURPOSE service-a-fake service-b-fake service-c-fake
.PHONY: all install download clean
run: $(FILES) build
./runtest.sh
build: $(BUILT_FILES)
test -x runtest.sh || chmod a+x runtest.sh
clean:
rm -f *~ $(BUILT_FILES)
$(METADATA): Makefile
@echo "Owner: Martin Cermak <mcermak@redhat.com>" > $(METADATA)
@echo "Name: $(TEST)" >> $(METADATA)
@echo "TestVersion: $(TESTVERSION)" >> $(METADATA)
@echo "Path: $(TEST_DIR)" >> $(METADATA)
@echo "Description: chkconfig-prioritory-set-inconsistently" >> $(METADATA)
@echo "Type: Regression" >> $(METADATA)
@echo "TestTime: 5m" >> $(METADATA)
@echo "RunFor: chkconfig" >> $(METADATA)
@echo "Requires: chkconfig" >> $(METADATA)
@echo "Priority: Normal" >> $(METADATA)
@echo "License: GPLv2" >> $(METADATA)
@echo "Confidential: no" >> $(METADATA)
@echo "Destructive: no" >> $(METADATA)
@echo "Bug: 771455" >> $(METADATA)
rhts-lint $(METADATA)

View file

@ -1,5 +0,0 @@
PURPOSE of /CoreOS/chkconfig/Regression/chkconfig-prioritory-set-inconsistently
Description: chkconfig-prioritory-set-inconsistently
Author: Martin Cermak <mcermak@redhat.com>
Bug summary: chkconfig S## prioritory set inconsistently for initscript with Requires-Start: $network
Bugzilla link: https://bugzilla.redhat.com/show_bug.cgi?id=771455

View file

@ -1,82 +0,0 @@
#!/bin/bash
# vim: dict=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# runtest.sh of /CoreOS/chkconfig/Regression/chkconfig-prioritory-set-inconsistently
# Description: chkconfig-prioritory-set-inconsistently
# Author: Martin Cermak <mcermak@redhat.com>
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# Copyright (c) 2012 Red Hat, Inc. All rights reserved.
#
# This copyrighted material is made available to anyone wishing
# to use, modify, copy, or redistribute it subject to the terms
# and conditions of the GNU General Public License version 2.
#
# This program is distributed in the hope that it will be
# useful, but WITHOUT ANY WARRANTY; without even the implied
# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
# PURPOSE. See the GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public
# License along with this program; if not, write to the Free
# Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
# Boston, MA 02110-1301, USA.
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# Include Beaker environment
. /usr/lib/beakerlib/beakerlib.sh
PACKAGE="chkconfig"
myGetPriority() {
SERVICE=$1
basename $( ls /etc/rc.d/rc3.d/S[0-9][0-9]$SERVICE ) | tr -d "[a-zA-Z\-]"
}
# Test scenario:
# https://bugzilla.redhat.com/show_bug.cgi?id=771455#c0
rlJournalStart
rlPhaseStartSetup
rlAssertRpm $PACKAGE
rlRun "cp service-{a,b,c}-fake /etc/rc.d/init.d/"
# A has Required-Start on B or C, thus the reversed order:
rlRun "/usr/lib/lsb/install_initd service-c-fake"
rlRun "/usr/lib/lsb/install_initd service-b-fake"
rlRun "/usr/lib/lsb/install_initd service-a-fake"
rlRun "chkconfig service-a-fake off"
rlRun "chkconfig service-b-fake off"
rlRun "chkconfig service-c-fake off"
rlPhaseEnd
rlPhaseStartTest
rlRun "chkconfig service-b-fake on"
rlRun "chkconfig service-a-fake on"
rlRun "PRIO=$( myGetPriority service-a-fake )"
# now, the priority of A should be >= 40 (should be = 40 in ideal world)
# and hopefully it is < 80
rlRun "[ $PRIO -ge 40 ]"
rlRun "[ $PRIO -lt 80 ]"
rlRun "chkconfig service-c-fake on"
rlRun "PRIO=$( myGetPriority service-a-fake )"
# MAIN TEST:
# right after enabling C, A should raise its priority above 80
# this should fail with unpatched package (e.g. chkconfig-1.3.47-1.el6)
# ... and pass with patched one (e.g. chkconfig-1.3.49.3-2.el6)
rlRun "[ $PRIO -gt 80 ]"
rlPhaseEnd
rlPhaseStartCleanup
rlRun "/usr/lib/lsb/remove_initd service-a-fake"
rlRun "/usr/lib/lsb/remove_initd service-b-fake"
rlRun "/usr/lib/lsb/remove_initd service-c-fake"
rlRun "rm -rf /etc/rc.d/init.d/service-{a,b,c}-fake"
rlPhaseEnd
#rlJournalPrintText
rlJournalEnd

View file

@ -1,17 +0,0 @@
#!/bin/sh
#
# service-a-fake
# chkconfig: 2345 40 89
# description: Fake service a
#
### BEGIN INIT INFO
# Provides: service-a-fake
# Default-Start: 2 3 4 5
# Default-Stop: 0 6
# Required-Start: bz771455fakeservice
# Short-Description: Fake service a
# Description: Fake service a
### END INIT INFO

View file

@ -1,16 +0,0 @@
#!/bin/sh
#
# service-b-fake
# chkconfig: 2345 14 89
# description: Fake service b
#
### BEGIN INIT INFO
# Provides: bz771455fakeservice
# Default-Start: 2 3 4 5
# Default-Stop: 0 6
# Short-Description: Fake service b
# Description: Fake service b
### END INIT INFO

View file

@ -1,16 +0,0 @@
#!/bin/sh
#
# service-c-fake
# chkconfig: 2345 80 89
# description: Fake service c
#
### BEGIN INIT INFO
# Provides: bz771455fakeservice
# Default-Start: 2 3 4 5
# Default-Stop: 0 6
# Short-Description: Fake service c
# Description: Fake service c
### END INIT INFO

View file

@ -1 +0,0 @@
localhost

View file

@ -1,15 +0,0 @@
---
# This first play always runs on the local staging system
- hosts: localhost
roles:
- role: standard-test-beakerlib
tags:
- classic
- container
tests:
- alternatives-doesn-t-update-slave-links-with
- backport-family-option-from-upstream
- chkconfig-prioritory-set-inconsistently
required_packages:
- chkconfig
- lsb