diff --git a/scrub.spec b/scrub.spec index d5f7996..1dec418 100644 --- a/scrub.spec +++ b/scrub.spec @@ -1,10 +1,14 @@ Name: scrub Version: 2.5.2 -Release: 14 +Release: 15 Summary: A disk overwrite utility License: GPLv2+ URL: https://github.com/chaos/scrub Source0: http://bbgentoo.ilb.ru/distfiles/scrub-2.5.2.tar.bz2 +# https://github.com/chaos/scrub/commit/006fd942abd78d3128d427f1ede9786abe14c65f +Patch0: usage-Exit-with-status-code-0-for-help.patch +# https://github.com/chaos/scrub/commit/bd88864d8ee15a65d5ecdb3818afa4d5193d2455 +Patch1: usage-Output-to-stdout-on-exit-code-0.patch %description Scrub writes patterns on files or disk devices to make @@ -32,5 +36,8 @@ retrieving the data more difficult. It operates in one of three modes: %{_mandir}/man1/scrub.1* %changelog +* Tue Jan 30 2024 yaoxin - 2.5.2-15 +- Fix exit with status code 0 for --help + * Thu Nov 28 2019 Jiangping Hu - 2.5.2-14 - Package init diff --git a/usage-Exit-with-status-code-0-for-help.patch b/usage-Exit-with-status-code-0-for-help.patch new file mode 100644 index 0000000..d589dfc --- /dev/null +++ b/usage-Exit-with-status-code-0-for-help.patch @@ -0,0 +1,51 @@ +From 006fd942abd78d3128d427f1ede9786abe14c65f Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Ville=20Skytt=C3=A4?= +Date: Thu, 12 Apr 2018 08:07:29 +0300 +Subject: [PATCH 1/2] usage: Exit with status code 0 for --help + +--- + src/scrub.c | 10 ++++++---- + 1 file changed, 6 insertions(+), 4 deletions(-) + +diff --git a/src/scrub.c b/src/scrub.c +index dec71f3..b2d98e5 100644 +--- a/src/scrub.c ++++ b/src/scrub.c +@@ -98,7 +98,7 @@ static struct option longopts[] = { + char *prog; + + static void +-usage(void) ++usage(int rc) + { + fprintf(stderr, + "Usage: %s [OPTIONS] file\n" +@@ -119,7 +119,7 @@ usage(void) + + fprintf(stderr, "Available patterns are:\n"); + seq_list (); +- exit(1); ++ exit(rc); + } + + int +@@ -217,12 +217,14 @@ main(int argc, char *argv[]) + topt = true; + break; + case 'h': /* --help */ ++ usage(0); ++ break; + default: +- usage(); ++ usage(1); + } + } + if (argc - optind != 1) +- usage(); ++ usage(1); + filename = argv[optind]; + + if (!seq) +-- +2.27.0 + diff --git a/usage-Output-to-stdout-on-exit-code-0.patch b/usage-Output-to-stdout-on-exit-code-0.patch new file mode 100644 index 0000000..3f0ed1a --- /dev/null +++ b/usage-Output-to-stdout-on-exit-code-0.patch @@ -0,0 +1,86 @@ +From bd88864d8ee15a65d5ecdb3818afa4d5193d2455 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Ville=20Skytt=C3=A4?= +Date: Thu, 12 Apr 2018 08:39:20 +0300 +Subject: [PATCH] usage: Output to stdout on exit code 0 + +--- + src/pattern.c | 6 +++--- + src/pattern.h | 3 ++- + src/scrub.c | 7 ++++--- + 3 files changed, 9 insertions(+), 7 deletions(-) + +diff --git a/src/pattern.c b/src/pattern.c +index 9cc258c..9926d84 100644 +--- a/src/pattern.c ++++ b/src/pattern.c +@@ -414,7 +414,7 @@ seq2str(const sequence_t *sp, char *buf, int len) + } + + void +-seq_list(void) ++seq_list(FILE *fp) + { + const int len = seq_count(); + char buf[80]; +@@ -422,10 +422,10 @@ seq_list(void) + + for (i = 0; i < len; i++) { + seq2str(sequences[i], buf, sizeof(buf)); +- fprintf(stderr, "%s\n", buf); ++ fprintf(fp, "%s\n", buf); + } + seq2str(&custom_seq, buf, sizeof(buf)); +- fprintf(stderr, "%s\n", buf); ++ fprintf(fp, "%s\n", buf); + } + + /* +diff --git a/src/pattern.h b/src/pattern.h +index 8b6e7ab..e29a9af 100644 +--- a/src/pattern.h ++++ b/src/pattern.h +@@ -23,6 +23,7 @@ + * with Scrub; if not, write to the Free Software Foundation, Inc., + * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. + \*****************************************************************************/ ++#include + + #define MAXPATBYTES 16 + #define MAXSEQPATTERNS 35 +@@ -45,7 +46,7 @@ typedef struct { + } sequence_t; + + const sequence_t *seq_lookup(char *name); +-void seq_list(void); ++void seq_list(FILE *fp); + char *pat2str(pattern_t p); + void memset_pat(void *s, pattern_t p, size_t n); + +diff --git a/src/scrub.c b/src/scrub.c +index b2d98e5..8c3490f 100644 +--- a/src/scrub.c ++++ b/src/scrub.c +@@ -100,7 +100,8 @@ char *prog; + static void + usage(int rc) + { +- fprintf(stderr, ++ FILE *fp = rc ? stderr : stdout; ++ fprintf(fp, + "Usage: %s [OPTIONS] file\n" + " -v, --version display scrub version and exit\n" + " -p, --pattern pat select scrub pattern sequence\n" +@@ -117,8 +118,8 @@ usage(int rc) + " -h, --help display this help message\n" + , prog); + +- fprintf(stderr, "Available patterns are:\n"); +- seq_list (); ++ fprintf(fp, "Available patterns are:\n"); ++ seq_list (fp); + exit(rc); + } + +-- +2.27.0 +