Use script to generate list of coreutils commands

- On EPEL 9, reduce the list of obsoletes to packages actually built

Signed-off-by: Michel Lind <salimma@fedoraproject.org>
This commit is contained in:
Michel Lind 2024-08-03 21:08:00 -05:00
commit 7ca26bcc71
No known key found for this signature in database
GPG key ID: 8B229D2F7CCC04F2
3 changed files with 35 additions and 181 deletions

7
coreutils-ls-commands.sh Executable file
View file

@ -0,0 +1,7 @@
#!/bin/sh
if [ $# -ge 1 ]; then
BIN=$1
else
BIN=uutils-coreutils
fi
$BIN --help | grep , | paste -s | tr -d '[:space:]' | tr ',' ' '

View file

@ -13,6 +13,8 @@ URL: https://crates.io/crates/coreutils
Source: %{crates_source}
# * Wrapper to invoke coreutils multicall via individual libexec symlink
Source: coreutils-wrapper.sh
# * Script to list available coreutils commands
Source: coreutils-ls-commands.sh
# Manually created patch for downstream crate metadata changes
# * drop uudoc, unneeded
# * temporarily lower rstest from 0.21.0 to 0.18.0
@ -49,10 +51,22 @@ Summary: %{summary}
License: MIT AND (MIT OR Apache-2.0) AND Unicode-DFS-2016 AND Apache-2.0 AND (Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT) AND BSD-2-Clause AND (BSD-2-Clause OR Apache-2.0 OR MIT) AND CC0-1.0 AND ISC AND (MIT-0 OR Apache-2.0) AND (Unlicense OR MIT)
# LICENSE.dependencies contains a full license breakdown
%if (0%{?fedora} && 0%{?fedora} < 43) || (0%{?rhel} && 0%{?rhel} < 11)
# Fedora up to 40 and EPEL up to 9 has individual uu_* packages
# support upgrading Fedora from 40->42 and EL 9->10
%if 0%{?rhel} && 0%{?rhel} < 11
%global obsolete_uu_nvr 0.0.23-2
Obsoletes: uu_cp < %{obsolete_uu_nvr}
Obsoletes: uu_mkdir < %{obsolete_uu_nvr}
Obsoletes: uu_mktemp < %{obsolete_uu_nvr}
Obsoletes: uu_mv < %{obsolete_uu_nvr}
Obsoletes: uu_whoami < %{obsolete_uu_nvr}
%endif
%if 0%{?fedora} && 0%{?fedora} < 43
%global obsolete_uu_nvr 0.0.23-5
Obsoletes: uu_base32 < %{obsolete_uu_nvr}
Obsoletes: uu_base64 < %{obsolete_uu_nvr}
Obsoletes: uu_basename < %{obsolete_uu_nvr}
@ -138,7 +152,7 @@ Obsoletes: uu_yes < %{obsolete_uu_nvr}
%{_bindir}/uutils-coreutils
%{_bindir}/uu_*
%{_libexecdir}/uutils-coreutils/*
%{_mandir}/man1/uu_*
%{_mandir}/man1/*
%{bash_completions_dir}/*
%{fish_completions_dir}/*
%{zsh_completions_dir}/*
@ -148,6 +162,8 @@ Obsoletes: uu_yes < %{obsolete_uu_nvr}
%cargo_prep
# coreutils-wrapper.sh script
cp -p %{SOURCE1} .
# coreutils-ls-commands.sh script
cp -p %{SOURCE2} .
%generate_buildrequires
%cargo_generate_buildrequires
@ -159,7 +175,7 @@ cp -p %{SOURCE1} .
mkdir -p data/man/man1
mkdir -p data/completions/{bash,fish,zsh}
for utility in b2sum b3sum base32 base64 basename basenc cat cksum comm cp csplit cut date dd df dir dircolors dirname du echo env expand expr factor false fmt fold hashsum head join link ln ls md5sum mkdir mktemp more mv nl numfmt od paste pr printenv printf ptx pwd readlink realpath rm rmdir seq sha1sum sha224sum sha256sum sha3-224sum sha3-256sum sha3-384sum sha3-512sum sha384sum sha3sum sha512sum shake128sum shake256sum shred shuf sleep sort split sum tac tail tee test touch tr true truncate tsort unexpand uniq unlink vdir wc yes ; do
for utility in $(./coreutils-ls-commands.sh target/rpm/coreutils); do
target/rpm/coreutils manpage $utility > data/man/man1/uu_${utility}.1
for s in bash zsh; do
target/rpm/coreutils completion $utility $s > data/completions/$s/uu_${utility}
@ -178,12 +194,12 @@ target/rpm/coreutils completion coreutils fish > data/completions/fish/uutils-co
mv %{buildroot}/%{_bindir}/coreutils %{buildroot}/%{_bindir}/uutils-coreutils
mkdir -p %{buildroot}%{_libexecdir}/uutils-coreutils/misc
cp -p coreutils-wrapper.sh %{buildroot}%{_libexecdir}/uutils-coreutils/misc/
for utility in b2sum b3sum base32 base64 basename basenc cat cksum comm cp csplit cut date dd df dir dircolors dirname du echo env expand expr factor false fmt fold hashsum head join link ln ls md5sum mkdir mktemp more mv nl numfmt od paste pr printenv printf ptx pwd readlink realpath rm rmdir seq sha1sum sha224sum sha256sum sha3-224sum sha3-256sum sha3-384sum sha3-512sum sha384sum sha3sum sha512sum shake128sum shake256sum shred shuf sleep sort split sum tac tail tee test touch tr true truncate tsort unexpand uniq unlink vdir wc yes ; do
for utility in $(./coreutils-ls-commands.sh target/rpm/coreutils); do
ln -sr %{buildroot}%{_bindir}/uutils-coreutils %{buildroot}%{_libexecdir}/uutils-coreutils/$utility
ln -sr %{buildroot}%{_libexecdir}/uutils-coreutils/misc/coreutils-wrapper.sh %{buildroot}%{_bindir}/uu_$utility
done
mkdir -p %{buildroot}%{_mandir}/man1
cp -p data/man/man1/uu_* %{buildroot}%{_mandir}/man1/
cp -p data/man/man1/* %{buildroot}%{_mandir}/man1/
mkdir -p %{buildroot}%{bash_completions_dir}
mkdir -p %{buildroot}%{fish_completions_dir}
mkdir -p %{buildroot}%{zsh_completions_dir}

View file

@ -10,6 +10,7 @@ cargo-toml-patch-comments = [
]
extra-sources = [
{ "number" = 1, "file" = "coreutils-wrapper.sh", "comments" = ["Wrapper to invoke coreutils multicall via individual libexec symlink"] },
{ "number" = 2, "file" = "coreutils-ls-commands.sh", "comments" = ["Script to list available coreutils commands"] },
]
extra-patches = [
{ "number" = 2, "file" = "coreutils-fix-seq-neg-num-tests.diff", "comments" = ["Fix seq tests that pass negative numbers"] },
@ -32,99 +33,15 @@ coreutils = "uutils-coreutils"
[scripts]
prep.post = ["""\
# coreutils-wrapper.sh script
cp -p %{SOURCE1} ."""]
cp -p %{SOURCE1} .
# coreutils-ls-commands.sh script
cp -p %{SOURCE2} ."""]
build.post = ["""\
mkdir -p data/man/man1
mkdir -p data/completions/{bash,fish,zsh}
for utility in \
b2sum \
b3sum \
base32 \
base64 \
basename \
basenc \
cat \
cksum \
comm \
cp \
csplit \
cut \
date \
dd \
df \
dir \
dircolors \
dirname \
du \
echo \
env \
expand \
expr \
factor \
false \
fmt \
fold \
hashsum \
head \
join \
link \
ln \
ls \
md5sum \
mkdir \
mktemp \
more \
mv \
nl \
numfmt \
od \
paste \
pr \
printenv \
printf \
ptx \
pwd \
readlink \
realpath \
rm \
rmdir \
seq \
sha1sum \
sha224sum \
sha256sum \
sha3-224sum \
sha3-256sum \
sha3-384sum \
sha3-512sum \
sha384sum \
sha3sum \
sha512sum \
shake128sum \
shake256sum \
shred \
shuf \
sleep \
sort \
split \
sum \
tac \
tail \
tee \
test \
touch \
tr \
true \
truncate \
tsort \
unexpand \
uniq \
unlink \
vdir \
wc \
yes \
; do
for utility in $(./coreutils-ls-commands.sh target/rpm/coreutils); do
target/rpm/coreutils manpage $utility > data/man/man1/uu_${utility}.1
for s in bash zsh; do
target/rpm/coreutils completion $utility $s > data/completions/$s/uu_${utility}
@ -141,98 +58,12 @@ target/rpm/coreutils completion coreutils fish > data/completions/fish/uutils-co
install.post = ["""\
mkdir -p %{buildroot}%{_libexecdir}/uutils-coreutils/misc
cp -p coreutils-wrapper.sh %{buildroot}%{_libexecdir}/uutils-coreutils/misc/
for utility in \
b2sum \
b3sum \
base32 \
base64 \
basename \
basenc \
cat \
cksum \
comm \
cp \
csplit \
cut \
date \
dd \
df \
dir \
dircolors \
dirname \
du \
echo \
env \
expand \
expr \
factor \
false \
fmt \
fold \
hashsum \
head \
join \
link \
ln \
ls \
md5sum \
mkdir \
mktemp \
more \
mv \
nl \
numfmt \
od \
paste \
pr \
printenv \
printf \
ptx \
pwd \
readlink \
realpath \
rm \
rmdir \
seq \
sha1sum \
sha224sum \
sha256sum \
sha3-224sum \
sha3-256sum \
sha3-384sum \
sha3-512sum \
sha384sum \
sha3sum \
sha512sum \
shake128sum \
shake256sum \
shred \
shuf \
sleep \
sort \
split \
sum \
tac \
tail \
tee \
test \
touch \
tr \
true \
truncate \
tsort \
unexpand \
uniq \
unlink \
vdir \
wc \
yes \
; do
for utility in $(./coreutils-ls-commands.sh target/rpm/coreutils); do
ln -sr %{buildroot}%{_bindir}/uutils-coreutils %{buildroot}%{_libexecdir}/uutils-coreutils/$utility
ln -sr %{buildroot}%{_libexecdir}/uutils-coreutils/misc/coreutils-wrapper.sh %{buildroot}%{_bindir}/uu_$utility
done
mkdir -p %{buildroot}%{_mandir}/man1
cp -p data/man/man1/uu_* %{buildroot}%{_mandir}/man1/
cp -p data/man/man1/* %{buildroot}%{_mandir}/man1/
mkdir -p %{buildroot}%{bash_completions_dir}
mkdir -p %{buildroot}%{fish_completions_dir}
mkdir -p %{buildroot}%{zsh_completions_dir}