Date: Sun, 14 May 2017 16:03:55 +0900 From: Tomoaki AOKI <junchoon@dec.sakura.ne.jp> To: freebsd-current@freebsd.org Cc: bapt@FreeBSD.org, alexander@wittig.name Subject: ports-mgmt/pkg_rmleaves stops working properly on -head after bsdiff became default diff (r317209) Message-ID: <20170514160355.5da31fb2f3c8a163e024acdf@dec.sakura.ne.jp>
next in thread | raw e-mail | index | archive | help
[-- Attachment #1 --]
Hi.
Posting on freebsd-current as this only affects -head.
I recently noticed ports-mgmt/pkg_rmleaves failes to process
new leaf ports after removal of leaf ports on -head with error
messages below.
> diff: unrecognized option `--unchanged-line-format='
> usage: diff [-abdilpTtw] [-c | -e | -f | -n | -q | -u] [--ignore-case]
> [--no-ignore-case] [--normal] [--strip-trailing-cr]
> [--tabsize] [-I pattern] [-L label] file1 file2
> diff [-abdilpTtw] [-I pattern] [-L label] [--ignore-case]
> [--no-ignore-case] [--normal] [--strip-trailing-cr]
> [--tabsize] -C number file1 file2
> diff [-abdiltw] [-I pattern] [--ignore-case] [--no-ignore-case]
> [--normal] [--strip-trailing-cr] [--tabsize] -D string
> file1 file2 diff [-abdilpTtw] [-I pattern] [-L label] [--ignore-case]
> [--no-ignore-case] [--normal] [--tabsize]
> [--strip-trailing-cr] -U number file1 file2
> diff [-abdilNPprsTtw] [-c | -e | -f | -n | -q | -u]
> [--ignore-case] [--no-ignore-case] [--normal] [--tabsize] [-I pattern]
> [-L label] [-S name] [-X file] [-x pattern] dir1 dir2
stable/11 was OK, and the difference is that stable/11 has gnu diff
as diff, while -head has bsdiff as diff.
There's 2 (or possibly 3) options.
a) Let pkg_rmleaves use gnu diff via textprocs/diffutils.
This is easiest (Minimal diff is attached), but doesn't help
any other ports affected. Just change diff to gdiff and RUN_DEPENDS
on textproc/diffutils.
b) Update bsdiff to support missing options below.
This is over my hand, but if possible, would help others.
c) If the missing options below are implemented as different
(non-documented) options on bsdiff, use them for bsdiff instead.
Will need OSVERSION check in ports Makefile.
Please note that attached diff is really MINIMAL to work on -head.
No OSVERSION switching is implemented and no bumps so forcibly
installs textproc/diffutils on revisions with gnu diff is /usr/bin/diff.
And patch wouldn't work properly as files directory doesn't exist
in pkg-mgmt/pkg_rmleaves. (At least system patch.)
I wonder which option should be taken, so not yet filed PR on bugzilla.
It should be filed differently with which option is taken.
--
Tomoaki AOKI <junchoon@dec.sakura.ne.jp>
[-- Attachment #2 --]
diff -u -r -P -p ports-mgmt/pkg_rmleaves/Makefile.orig ports-mgmt/pkg_rmleaves/Makefile
--- ports-mgmt/pkg_rmleaves/Makefile.orig 2015-09-09 02:00:03.629555000 +0900
+++ ports-mgmt/pkg_rmleaves/Makefile 2017-05-14 02:20:31.547549000 +0900
@@ -13,6 +13,8 @@ LICENSE= BSD2CLAUSE
NO_BUILD= yes
+RUN_DEPENDS= gdiff:textproc/diffutils
+
WRKSRC= ${WRKDIR}
PLIST_FILES= sbin/pkg_rmleaves man/man1/pkg_rmleaves.1.gz
diff -u -r -P -p ports-mgmt/pkg_rmleaves/files/patch-pkg_rmleaves.orig ports-mgmt/pkg_rmleaves/files/patch-pkg_rmleaves
--- ports-mgmt/pkg_rmleaves/files/patch-pkg_rmleaves.orig 1970-01-01 09:00:00.000000000 +0900
+++ ports-mgmt/pkg_rmleaves/files/patch-pkg_rmleaves 2017-05-14 02:22:57.050609000 +0900
@@ -0,0 +1,11 @@
+--- pkg_rmleaves.orig 2014-02-22 21:21:47.000000000 +0900
++++ pkg_rmleaves 2017-05-14 02:16:55.751443000 +0900
+@@ -74,7 +74,7 @@ checkLeafs() {
+ fi | sort | sed -e "y/\"/'/" -e 's/#"#/"/g' > "$PKGFILE"
+
+ if [ -f "$PREV" ]; then
+- diff --unchanged-line-format='' --old-line-format='' --new-line-format='%L' "$PREV" "$PKGFILE" > "$TMPFILE"
++ gdiff --unchanged-line-format='' --old-line-format='' --new-line-format='%L' "$PREV" "$PKGFILE" > "$TMPFILE"
+ else
+ cp "$PKGFILE" "$TMPFILE"
+ fi
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20170514160355.5da31fb2f3c8a163e024acdf>
