Compare commits

...

No commits in common. "c8s" and "c10s" have entirely different histories.
c8s ... c10s

7 changed files with 166 additions and 59 deletions

1
.fmf/version Normal file
View File

@ -0,0 +1 @@
1

3
.gitignore vendored
View File

@ -1,2 +1 @@
SOURCES/mksh-R56c.tgz /mksh-*.tgz
/mksh-R56c.tgz

View File

@ -1,7 +1,6 @@
--- !Policy --- !Policy
product_versions: product_versions:
- rhel-8 - rhel-10
decision_context: osci_compose_gate decision_context: osci_compose_gate
rules: rules:
- !PassingTestCaseRule {test_case_name: osci.brew-build.tier0.functional} - !PassingTestCaseRule {test_case_name: osci.brew-build.tier0.functional}

186
mksh.spec
View File

@ -1,23 +1,32 @@
Summary: MirBSD enhanced version of the Korn Shell Summary: MirBSD enhanced version of the Korn Shell
Name: mksh Name: mksh
Version: 56c Version: 59c
Release: 5%{?dist} Release: 12%{?dist}
# BSD (setmode.c), ISC (strlcpy.c), MirOS (the rest) # ISC (strlcpy.c) and MirOS (the rest)
License: MirOS and ISC and BSD License: MirOS AND ISC
Group: System Environment/Shells
URL: https://www.mirbsd.org/mksh.htm URL: https://www.mirbsd.org/mksh.htm
Source0: https://www.mirbsd.org/MirOS/dist/mir/%{name}/%{name}-R%{version}.tgz Source0: https://www.mirbsd.org/MirOS/dist/mir/%{name}/%{name}-R%{version}.tgz
Source1: dot-mkshrc Source1: dot-mkshrc
Source2: rtchecks.expected Source2: rtchecks.expected
%if 0%{?fedora} >= 17 || 0%{?rhel} >= 7
Conflicts: filesystem < 3 Conflicts: filesystem < 3
Provides: /bin/lksh, /bin/mksh Provides: /bin/ksh
Provides: /bin/lksh
Provides: /bin/mksh
%if 0%{?fedora} || 0%{?rhel} > 8
Provides: /bin/rksh
%endif %endif
Requires(post): grep, chkconfig Provides: /bin/rlksh
Requires(preun): chkconfig Provides: /bin/rmksh
BuildRequires: util-linux, ed Requires(post): grep
#for usage of alternatives Requires(post): %{_sbindir}/alternatives
Conflicts: ksh < 20120801-250 Requires(preun): %{_sbindir}/alternatives
Requires(postun): sed
BuildRequires: gcc
BuildRequires: util-linux
BuildRequires: ed
BuildRequires: perl-interpreter
BuildRequires: perl(Getopt::Std)
BuildRequires: sed
%description %description
mksh is the MirBSD enhanced version of the Public Domain Korn shell (pdksh), mksh is the MirBSD enhanced version of the Public Domain Korn shell (pdksh),
@ -60,35 +69,29 @@ print -r -- $((x++)):$sari=$uari. #9
EOF EOF
%build %build
# Work around RHBZ #922974 on Fedora 19 and later
%if 0%{?fedora} >= 19 || 0%{?rhel} >= 7
CFLAGS="$RPM_OPT_FLAGS -DMKSH_DISABLE_EXPERIMENTAL" LDFLAGS="$RPM_LD_FLAGS" sh Build.sh -r CFLAGS="$RPM_OPT_FLAGS -DMKSH_DISABLE_EXPERIMENTAL" LDFLAGS="$RPM_LD_FLAGS" sh Build.sh -r
%else
CFLAGS="$RPM_OPT_FLAGS -DMKSH_DISABLE_EXPERIMENTAL" LDFLAGS="$RPM_LD_FLAGS" sh Build.sh -r -c lto
%endif
cp test.sh test_mksh.sh cp test.sh test_mksh.sh
HAVE_PERSISTENT_HISTORY=0; export HAVE_PERSISTENT_HISTORY HAVE_PERSISTENT_HISTORY=0; export HAVE_PERSISTENT_HISTORY
# Work around RHBZ #922974 on Fedora 19 and later
%if 0%{?fedora} >= 19 || 0%{?rhel} >= 7
CFLAGS="$RPM_OPT_FLAGS -DMKSH_DISABLE_EXPERIMENTAL" LDFLAGS="$RPM_LD_FLAGS" sh Build.sh -L -r CFLAGS="$RPM_OPT_FLAGS -DMKSH_DISABLE_EXPERIMENTAL" LDFLAGS="$RPM_LD_FLAGS" sh Build.sh -L -r
%else
CFLAGS="$RPM_OPT_FLAGS -DMKSH_DISABLE_EXPERIMENTAL" LDFLAGS="$RPM_LD_FLAGS" sh Build.sh -L -r -c lto
%endif
cp -f test.sh test_lksh.sh cp -f test.sh test_lksh.sh
./mksh FAQ2HTML.sh
%install %install
rm -rf $RPM_BUILD_ROOT
mkdir -p $RPM_BUILD_ROOT{/bin,%{_bindir},%{_mandir}/man1}
install -D -m 755 %{name} $RPM_BUILD_ROOT%{_bindir}/%{name} install -D -m 755 %{name} $RPM_BUILD_ROOT%{_bindir}/%{name}
install -D -m 755 lksh $RPM_BUILD_ROOT%{_bindir}/lksh install -D -m 755 lksh $RPM_BUILD_ROOT%{_bindir}/lksh
install -D -m 644 %{name}.1 $RPM_BUILD_ROOT%{_mandir}/man1/%{name}.1 install -D -m 644 %{name}.1 $RPM_BUILD_ROOT%{_mandir}/man1/%{name}.1
install -D -m 644 lksh.1 $RPM_BUILD_ROOT%{_mandir}/man1/lksh.1 install -D -m 644 lksh.1 $RPM_BUILD_ROOT%{_mandir}/man1/lksh.1
install -D -p -m 644 dot.mkshrc $RPM_BUILD_ROOT%{_sysconfdir}/mkshrc install -D -p -m 644 dot.mkshrc $RPM_BUILD_ROOT%{_sysconfdir}/mkshrc
install -D -p -m 644 %{SOURCE1} $RPM_BUILD_ROOT%{_sysconfdir}/skel/.mkshrc install -D -p -m 644 %{SOURCE1} $RPM_BUILD_ROOT%{_sysconfdir}/skel/.mkshrc
ln -s %{name} $RPM_BUILD_ROOT%{_bindir}/rmksh
# fool rpmdiff about %ghost files ln -s lksh $RPM_BUILD_ROOT%{_bindir}/rlksh
touch $RPM_BUILD_ROOT/bin/ksh ln -s %{name}.1 $RPM_BUILD_ROOT%{_mandir}/man1/rmksh.1
touch $RPM_BUILD_ROOT%{_mandir}/man1/ksh.1.gz ln -s lksh.1 $RPM_BUILD_ROOT%{_mandir}/man1/rlksh.1
%if 0%{?fedora} || 0%{?rhel} > 8
touch $RPM_BUILD_ROOT{%{_bindir}/{ksh,rksh},%{_mandir}/man1/{ksh,rksh}.1}
%else
touch $RPM_BUILD_ROOT{%{_bindir}/ksh,%{_mandir}/man1/ksh.1}
%endif
%check %check
./mksh rtchecks >rtchecks.got 2>&1 ./mksh rtchecks >rtchecks.got 2>&1
@ -112,48 +115,123 @@ do
done done
%post %post
%if 0%{?fedora} >= 17 || 0%{?rhel} >= 7 for d in /bin %{_bindir}; do
grep -q "^/bin/%{name}$" %{_sysconfdir}/shells 2>/dev/null || \ %if 0%{?fedora} || 0%{?rhel} > 8
echo "/bin/%{name}" >> %{_sysconfdir}/shells for s in ksh %{name} rksh rmksh; do
%else
for s in ksh %{name} rmksh; do
%endif %endif
grep -q "^%{_bindir}/%{name}$" %{_sysconfdir}/shells 2>/dev/null || \ grep -q '^'"$d/$s"'$' %{_sysconfdir}/shells 2>/dev/null || echo "$d/$s" >> /etc/shells
echo "%{_bindir}/%{name}" >> %{_sysconfdir}/shells done
done
%{_sbindir}/alternatives --install /usr/bin/ksh ksh \ %{_sbindir}/alternatives --install %{_bindir}/ksh ksh %{_bindir}/%{name} 10 \
/usr/bin/mksh 10 \ %if 0%{?fedora} || 0%{?rhel} > 8
--slave %{_mandir}/man1/ksh.1.gz ksh-man \ --slave %{_bindir}/rksh rksh %{_bindir}/%{name} \
%{_mandir}/man1/mksh.1.gz %endif
--slave %{_mandir}/man1/ksh.1.gz ksh-man %{_mandir}/man1/%{name}.1.gz \
%if 0%{?fedora} || 0%{?rhel} > 8
--slave %{_mandir}/man1/rksh.1.gz rksh-man %{_mandir}/man1/%{name}.1.gz
%endif
%preun %preun
if [ $1 = 0 ]; then if [ $1 -eq 0 ]; then
%{_sbindir}/alternatives --remove ksh /usr/bin/mksh %{_sbindir}/alternatives --remove ksh %{_bindir}/%{name}
fi fi
%postun %postun
if [ ! -x %{_bindir}/%{name} ]; then for d in /bin %{_bindir}; do
%if 0%{?fedora} >= 17 || 0%{?rhel} >= 7 for s in ksh %{name} rksh rmksh; do
sed -e 's@^/bin/%{name}$@POSTUNREMOVE@' -e '/^POSTUNREMOVE$/d' -i %{_sysconfdir}/shells [ ! -x "$d/$s" ] && sed -e 's@^'"$d/$s"'$@POSTUNREMOVE@' -e '/^POSTUNREMOVE$/d' -i %{_sysconfdir}/shells
%endif done
sed -e 's@^%{_bindir}/%{name}$@POSTUNREMOVE@' -e '/^POSTUNREMOVE$/d' -i %{_sysconfdir}/shells done
fi
%files %files
%doc dot.mkshrc %doc dot.mkshrc FAQ.htm
%ghost /bin/ksh %ghost %{_bindir}/ksh
%ghost %{_mandir}/man1/ksh.1.gz
%{_bindir}/%{name}
%{_bindir}/lksh %{_bindir}/lksh
%{_bindir}/%{name}
%if 0%{?fedora} || 0%{?rhel} > 8
%ghost %{_bindir}/rksh
%endif
%{_bindir}/rlksh
%{_bindir}/rmksh
%config(noreplace) %{_sysconfdir}/mkshrc %config(noreplace) %{_sysconfdir}/mkshrc
%config(noreplace) %{_sysconfdir}/skel/.mkshrc %config(noreplace) %{_sysconfdir}/skel/.mkshrc
%{_mandir}/man1/%{name}.1* %ghost %{_mandir}/man1/ksh.1*
%{_mandir}/man1/lksh.1* %{_mandir}/man1/lksh.1*
%{_mandir}/man1/%{name}.1*
%if 0%{?fedora} || 0%{?rhel} > 8
%ghost %{_mandir}/man1/rksh.1*
%endif
%{_mandir}/man1/rlksh.1*
%{_mandir}/man1/rmksh.1*
%changelog %changelog
* Mon Oct 22 2018 Michal Hlavinka <mhlavink@redhat.com> - 56c-5 * Tue Oct 29 2024 Troy Dawson <tdawson@redhat.com> - 59c-12
- fix alternative paths (#1636076) - Bump release for October 2024 mass rebuild:
Resolves: RHEL-64018
* Mon Oct 15 2018 Michal Hlavinka <mhlavink@redhat.com> - 56c-4 * Mon Jun 24 2024 Troy Dawson <tdawson@redhat.com> - 59c-11
- add alternatives switching with ksh (#1636076) - Bump release for June 2024 mass rebuild
* Thu Jan 25 2024 Fedora Release Engineering <releng@fedoraproject.org> - 59c-10
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
* Sun Jan 21 2024 Fedora Release Engineering <releng@fedoraproject.org> - 59c-9
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
* Thu Jul 20 2023 Fedora Release Engineering <releng@fedoraproject.org> - 59c-8
- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
* Thu Jan 19 2023 Fedora Release Engineering <releng@fedoraproject.org> - 59c-7
- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
* Thu Jul 21 2022 Fedora Release Engineering <releng@fedoraproject.org> - 59c-6
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
* Thu Jan 20 2022 Fedora Release Engineering <releng@fedoraproject.org> - 59c-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
* Thu Jul 22 2021 Fedora Release Engineering <releng@fedoraproject.org> - 59c-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
* Wed Mar 24 2021 Robert Scheck <robert@fedoraproject.org> 59c-3
- Add alternatives switching for rksh
* Tue Jan 26 2021 Fedora Release Engineering <releng@fedoraproject.org> - 59c-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
* Mon Nov 02 2020 Robert Scheck <robert@fedoraproject.org> 59c-1
- Upgrade to 59c (#1893414)
- Add alternatives switching for ksh (#1879002)
* Tue Jul 28 2020 Fedora Release Engineering <releng@fedoraproject.org> - 59b-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
* Sun May 17 2020 Robert Scheck <robert@fedoraproject.org> 59b-1
- Upgrade to 59b (#1836572)
* Wed Apr 15 2020 Robert Scheck <robert@fedoraproject.org> 59-1
- Upgrade to 59 (#1823973)
* Fri Mar 27 2020 Robert Scheck <robert@fedoraproject.org> 58-1
- Upgrade to 58 (#1817981)
* Wed Jan 29 2020 Fedora Release Engineering <releng@fedoraproject.org> - 57-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
* Thu Jul 25 2019 Fedora Release Engineering <releng@fedoraproject.org> - 57-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
* Mon Mar 25 2019 Robert Scheck <robert@fedoraproject.org> 57-1
- Upgrade to 57 (#1684737)
* Fri Feb 01 2019 Fedora Release Engineering <releng@fedoraproject.org> - 56c-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
* Fri Jul 13 2018 Fedora Release Engineering <releng@fedoraproject.org> - 56c-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
* Sun Feb 18 2018 Robert Scheck <robert@fedoraproject.org> 56c-3 * Sun Feb 18 2018 Robert Scheck <robert@fedoraproject.org> 56c-3
- Build flags injection is only partially successful (#1543842) - Build flags injection is only partially successful (#1543842)

14
plans/shell.fmf Normal file
View File

@ -0,0 +1,14 @@
summary:
Run relevant tests from the shell tests repository
discover:
how: fmf
url: https://src.fedoraproject.org/tests/shell
filter: component:mksh
prepare:
how: install
package: mksh
execute:
how: tmt
environment:
PACKAGES: mksh
SH_BIN: mksh

16
plans/tier1.fmf Normal file
View File

@ -0,0 +1,16 @@
---
summary: Tier1 plan for mksh
discover:
how: fmf
url: https://pkgs.devel.redhat.com/git/tests/mksh
ref: master
filter: tier:1
execute:
how: tmt
adjust:
enabled: false
when: distro == centos-stream or distro == fedora

View File

@ -1 +1 @@
SHA512 (mksh-R56c.tgz) = 7e4cd2d24c6bca2ebad7c6b02d158188e766bd4693d93f5bed198d69238aef078d42ce911431ad4e419e4af55083047d823bfad53973db5c6d8a685482770135 SHA512 (mksh-R59c.tgz) = f56b6956f9e1dd88ddce2294301a5eb698050d9d4f49286fdcd8f9df8554eabbcc71d37e2bf3eb7234e3968a17231cc6de8aa7efbf17768834a90b14e8cdf340