From 7ca26bcc716163b1f9feb7f963c65a2dc28e64fd Mon Sep 17 00:00:00 2001 From: Michel Lind Date: Sat, 3 Aug 2024 21:08:00 -0500 Subject: [PATCH] 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 --- coreutils-ls-commands.sh | 7 ++ rust-coreutils.spec | 26 ++++-- rust2rpm.toml | 183 ++------------------------------------- 3 files changed, 35 insertions(+), 181 deletions(-) create mode 100755 coreutils-ls-commands.sh diff --git a/coreutils-ls-commands.sh b/coreutils-ls-commands.sh new file mode 100755 index 0000000..80bc1cc --- /dev/null +++ b/coreutils-ls-commands.sh @@ -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 ',' ' ' diff --git a/rust-coreutils.spec b/rust-coreutils.spec index 40b4938..780a6a6 100644 --- a/rust-coreutils.spec +++ b/rust-coreutils.spec @@ -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} diff --git a/rust2rpm.toml b/rust2rpm.toml index 43ba7cd..cf6f080 100644 --- a/rust2rpm.toml +++ b/rust2rpm.toml @@ -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}