From nobody Wed Mar 11 01:31:34 2026 X-Original-To: dev-commits-ports-main@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4fVtWV3KSgz6VV0n for ; Wed, 11 Mar 2026 01:31:34 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fVtWV1wh9z41cK for ; Wed, 11 Mar 2026 01:31:34 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1773192694; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=ZaLoJmYWxYx9V9Yv/27y/gEZVmduxx/TgbOg4lPnz6g=; b=BVIVV2mBHgxfT8Wikw649WHaR8wYxrQGraVZbaWQDkKH9aVqRtMnnACixuDddBhMQMmVYu CAqNjXl1LIS+i7YywNgV1Bu7dwcdnhsCjYDx648haxqc2KPcKllAnqA0wJHDj4x/o6xtko GUIeRW0rpugC7CU9NQWELR5VmgDtDXxEgIC0Jw7DvZ3nyTw96UZkYLE+qTzLtzBS0iFO6T JBT0NGqiYATiv2Q6g0EFOgChr2Zh4yKbyhyPrR4rPRELw68C5WGR5hqs/gh015W8pttzAQ bWMRwqwLv5K5kRxiWorGlUh89Wv/d6ujfXgd1ce0mqy15fDEL4NJfRRyVITOhg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1773192694; a=rsa-sha256; cv=none; b=nIOv27q5irDWanL71bCaVKOipWUgC9AwIc+V79+E774Hs/q9AruFiPXm8eArBAzy6K9J63 i8LuAdblkt63vx+1gnYfnA3MwuXwLcwJWO4xwhpT3AB/raP1JbkhMcWuMdf0RMFNT+bUNP fCqvGmgCbN8EYa6er59KNOlARXwwd1nZqB+EUYslZKY5xrTelvX4OxqdmW1lgD9Zbp1VwL vObgLljWMy8fbAHFeFqLnfUKixaKMx8ztBsnSzFkuXSMvdVJpcNM5tgr7nNL45V8Q/taEX wz4Uug0OmT68tL1u1gCBdNgITM5cGOuKdcoSQXVbihppSYEej5H6JN5Ku3k/Ow== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1773192694; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=ZaLoJmYWxYx9V9Yv/27y/gEZVmduxx/TgbOg4lPnz6g=; b=P7siHJIpWbxnZ4bt5kgzU07WtO3lQXU8l1kGQBY+ypVD46Y2IfsYqiHen7TlveWZYa6FgR EAuuCY0pPI8aaIr27Jryfb1s/A26gOuW7I4tL853XPrNhI0Cqjbm74ry85uHh9bCXkPsSf CDZ77iT3hMNiIpcIzdXy0ExIBQqz0h7QcI/wH0Lj3PhJ4HTSAg9+G75V8J5/dMmviV9snd Zt39zQEBpcnx0PeO5XpC4hbQxr8OZ2Y54/Mcw+PJKxMB6UMH4B0x34eNt3ark3Vk3bYerC LsfHg8NkSxEguDl4pQ4QBEFeMj94sNTIBLdBepsYUDgSUv8vFVfZWvue+CDU2g== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fVtWV1XLDzdNr for ; Wed, 11 Mar 2026 01:31:34 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 237d3 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Wed, 11 Mar 2026 01:31:34 +0000 To: ports-committers@FreeBSD.org, dev-commits-ports-all@FreeBSD.org, dev-commits-ports-main@FreeBSD.org From: Alexey Dokuchaev Subject: git: edb0110477ad - main - devel/patch: update GNU patch to the latest version 2.8 List-Id: Commits to the main branch of the FreeBSD ports repository List-Archive: https://lists.freebsd.org/archives/dev-commits-ports-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-ports-main@freebsd.org Sender: owner-dev-commits-ports-main@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: danfe X-Git-Repository: ports X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: edb0110477ad8ecf2f1f9e5ee71a89188cab1f97 Auto-Submitted: auto-generated Date: Wed, 11 Mar 2026 01:31:34 +0000 Message-Id: <69b0c5f6.237d3.5aa958e2@gitrepo.freebsd.org> The branch main has been updated by danfe: URL: https://cgit.FreeBSD.org/ports/commit/?id=edb0110477ad8ecf2f1f9e5ee71a89188cab1f97 commit edb0110477ad8ecf2f1f9e5ee71a89188cab1f97 Author: Alexey Dokuchaev AuthorDate: 2026-03-11 01:29:52 +0000 Commit: Alexey Dokuchaev CommitDate: 2026-03-11 01:29:52 +0000 devel/patch: update GNU patch to the latest version 2.8 - GC previous Debian patches, backport new upstream fixes: add missing filename quoting, enable merge, skip read-only check when output file specified, reject empty filenames - On i386, apply the same fix as Debian for Hurd/i386 - The port now seemingly builds fine with BSD make(1) - Install some standard documentation files PR: 285796 --- devel/patch/Makefile | 27 +++++--- devel/patch/distinfo | 8 +-- devel/patch/files/patch-lib__Makefile.in | 43 ------------ devel/patch/files/patch-lib__localcharset.c | 98 --------------------------- devel/patch/files/patch-src_patch.c | 42 ++++++++++++ devel/patch/files/patch-src_safe.c | 11 +++ devel/patch/files/patch-tests_bad-filenames | 14 ++++ devel/patch/files/patch-tests_read-only-files | 11 +++ 8 files changed, 97 insertions(+), 157 deletions(-) diff --git a/devel/patch/Makefile b/devel/patch/Makefile index 306d44745c9c..fde3be88ffac 100644 --- a/devel/patch/Makefile +++ b/devel/patch/Makefile @@ -1,10 +1,7 @@ PORTNAME= patch -PORTVERSION= 2.7.6 -PORTREVISION= 2 +PORTVERSION= 2.8 CATEGORIES= devel -MASTER_SITES= GNU DEBIAN_POOL:dp -DISTFILES= ${DISTNAME}${EXTRACT_SUFX} \ - ${PORTNAME}_${PORTVERSION}-7.debian${EXTRACT_SUFX}:dp +MASTER_SITES= GNU MAINTAINER= danfe@FreeBSD.org COMMENT= GNU patch utility @@ -12,24 +9,32 @@ WWW= https://savannah.gnu.org/projects/patch/ LICENSE= GPLv3+ -EXTRA_PATCHES= ${WRKDIR}/debian/patches/[^0]*.patch \ - ${WRKDIR}/debian/patches/0*.patch -PATCH_STRIP= -p1 - TEST_DEPENDS= bash:shells/bash -USES= cpe charsetfix gmake tar:xz +USES= charsetfix cpe tar:xz GNU_CONFIGURE= yes -GNU_CONFIGURE_MANPREFIX= ${PREFIX}/share CONFIGURE_ARGS= --program-prefix=g CPE_VENDOR= gnu TEST_TARGET= check PLIST_FILES= bin/gpatch share/man/man1/gpatch.1.gz +PORTDOCS= AUTHORS NEWS README + +OPTIONS_DEFINE= DOCS + +.include + +.if ${ARCH} == i386 +CONFIGURE_ARGS+= --disable-year2038 +.endif post-patch: @${REINPLACE_CMD} -e '/^LOG_COMPILER =/,+1s|$$(SHELL)|bash|' \ ${WRKSRC}/tests/Makefile.in +post-install-DOCS-on: + @${MKDIR} ${STAGEDIR}${DOCSDIR} + ${INSTALL_DATA} ${PORTDOCS:S,^,${WRKSRC}/,} ${STAGEDIR}${DOCSDIR} + .include diff --git a/devel/patch/distinfo b/devel/patch/distinfo index 040c48268c31..13484191763d 100644 --- a/devel/patch/distinfo +++ b/devel/patch/distinfo @@ -1,5 +1,3 @@ -TIMESTAMP = 1518689812 -SHA256 (patch-2.7.6.tar.xz) = ac610bda97abe0d9f6b7c963255a11dcb196c25e337c61f94e4778d632f1d8fd -SIZE (patch-2.7.6.tar.xz) = 783756 -SHA256 (patch_2.7.6-7.debian.tar.xz) = 7725f30b042d8cf63516e480036e93ca2ff0ce5ad3754db4a4e69d33e96a2624 -SIZE (patch_2.7.6-7.debian.tar.xz) = 15084 +TIMESTAMP = 1743267130 +SHA256 (patch-2.8.tar.xz) = f87cee69eec2b4fcbf60a396b030ad6aa3415f192aa5f7ee84cad5e11f7f5ae3 +SIZE (patch-2.8.tar.xz) = 907208 diff --git a/devel/patch/files/patch-lib__Makefile.in b/devel/patch/files/patch-lib__Makefile.in deleted file mode 100644 index b003f55b4db3..000000000000 --- a/devel/patch/files/patch-lib__Makefile.in +++ /dev/null @@ -1,43 +0,0 @@ ---- ./lib/Makefile.in.orig 2018-02-03 13:33:56 UTC -+++ ./lib/Makefile.in -@@ -1603,7 +1603,7 @@ install-data: install-data-am - uninstall: uninstall-am - - install-am: all-am -- @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am -+ @$(MAKE) $(AM_MAKEFLAGS) install-data-am - - installcheck: installcheck-am - install-strip: -@@ -1966,11 +1966,11 @@ install-exec-localcharset: all-local - if test $(GLIBC21) = no; then \ - case '$(host_os)' in \ - darwin[56]*) \ -- need_charset_alias=true ;; \ -+ need_charset_alias=false ;; \ - darwin* | cygwin* | mingw* | pw32* | cegcc*) \ - need_charset_alias=false ;; \ - *) \ -- need_charset_alias=true ;; \ -+ need_charset_alias=false ;; \ - esac ; \ - else \ - need_charset_alias=false ; \ -@@ -1978,7 +1978,7 @@ install-exec-localcharset: all-local - if $$need_charset_alias; then \ - $(mkinstalldirs) $(DESTDIR)$(libdir) ; \ - fi ; \ -- if test -f $(charset_alias); then \ -+ if false; then \ - sed -f ref-add.sed $(charset_alias) > $(charset_tmp) ; \ - $(INSTALL_DATA) $(charset_tmp) $(charset_alias) ; \ - rm -f $(charset_tmp) ; \ -@@ -1992,7 +1992,7 @@ install-exec-localcharset: all-local - - uninstall-local: uninstall-localcharset - uninstall-localcharset: all-local -- if test -f $(charset_alias); then \ -+ if false; then \ - sed -f ref-del.sed $(charset_alias) > $(charset_tmp); \ - if grep '^# Packages using this file: $$' $(charset_tmp) \ - > /dev/null; then \ diff --git a/devel/patch/files/patch-lib__localcharset.c b/devel/patch/files/patch-lib__localcharset.c deleted file mode 100644 index adc0bc917244..000000000000 --- a/devel/patch/files/patch-lib__localcharset.c +++ /dev/null @@ -1,98 +0,0 @@ ---- ./lib/localcharset.c.orig 2018-02-03 12:42:20 UTC -+++ ./lib/localcharset.c -@@ -129,7 +129,7 @@ get_charset_aliases (void) - cp = charset_aliases; - if (cp == NULL) - { --#if !(defined DARWIN7 || defined VMS || defined WINDOWS_NATIVE || defined __CYGWIN__ || defined OS2) -+#if !(defined DARWIN7 || defined VMS || defined WINDOWS_NATIVE || defined __CYGWIN__ || defined OS2 || defined __FreeBSD__) - char *malloc_dir = NULL; - const char *dir; - const char *base = "charset.alias"; -@@ -259,6 +259,86 @@ get_charset_aliases (void) - - #else - -+# if defined __FreeBSD__ -+ /* To avoid the trouble of installing a file that is shared by many -+ GNU packages -- many packaging systems have problems with this --, -+ simply inline the aliases here. */ -+ cp = "US-ASCII" "\0" "ASCII" "\0" -+ "la_LN.ASCII" "\0" "ASCII" "\0" -+ "lt_LN.ASCII" "\0" "ASCII" "\0" -+ "da_DK.ISO_8859-1" "\0" "ISO-8859-1" "\0" -+ "da_DK.DIS_8859-15" "\0" "ISO-8859-15" "\0" -+ "de_AT.ISO_8859-1" "\0" "ISO-8859-1" "\0" -+ "de_AT.DIS_8859-15" "\0" "ISO-8859-15" "\0" -+ "de_CH.ISO_8859-1" "\0" "ISO-8859-1" "\0" -+ "de_CH.DIS_8859-15" "\0" "ISO-8859-15" "\0" -+ "de_DE.ISO_8859-1" "\0" "ISO-8859-1" "\0" -+ "de_DE.DIS_8859-15" "\0" "ISO-8859-15" "\0" -+ "en_AU.ISO_8859-1" "\0" "ISO-8859-1" "\0" -+ "en_AU.DIS_8859-15" "\0" "ISO-8859-15" "\0" -+ "en_CA.ISO_8859-1" "\0" "ISO-8859-1" "\0" -+ "en_CA.DIS_8859-15" "\0" "ISO-8859-15" "\0" -+ "en_GB.ISO_8859-1" "\0" "ISO-8859-1" "\0" -+ "en_GB.DIS_8859-15" "\0" "ISO-8859-15" "\0" -+ "en_US.ISO_8859-1" "\0" "ISO-8859-1" "\0" -+ "en_US.DIS_8859-15" "\0" "ISO-8859-15" "\0" -+ "es_ES.ISO_8859-1" "\0" "ISO-8859-1" "\0" -+ "es_ES.DIS_8859-15" "\0" "ISO-8859-15" "\0" -+ "fi_FI.ISO_8859-1" "\0" "ISO-8859-1" "\0" -+ "fi_FI.DIS_8859-15" "\0" "ISO-8859-15" "\0" -+ "fr_BE.ISO_8859-1" "\0" "ISO-8859-1" "\0" -+ "fr_BE.DIS_8859-15" "\0" "ISO-8859-15" "\0" -+ "fr_CA.ISO_8859-1" "\0" "ISO-8859-1" "\0" -+ "fr_CA.DIS_8859-15" "\0" "ISO-8859-15" "\0" -+ "fr_CH.ISO_8859-1" "\0" "ISO-8859-1" "\0" -+ "fr_CH.DIS_8859-15" "\0" "ISO-8859-15" "\0" -+ "fr_FR.ISO_8859-1" "\0" "ISO-8859-1" "\0" -+ "fr_FR.DIS_8859-15" "\0" "ISO-8859-15" "\0" -+ "is_IS.ISO_8859-1" "\0" "ISO-8859-1" "\0" -+ "is_IS.DIS_8859-15" "\0" "ISO-8859-15" "\0" -+ "it_CH.ISO_8859-1" "\0" "ISO-8859-1" "\0" -+ "it_CH.DIS_8859-15" "\0" "ISO-8859-15" "\0" -+ "it_IT.ISO_8859-1" "\0" "ISO-8859-1" "\0" -+ "it_IT.DIS_8859-15" "\0" "ISO-8859-15" "\0" -+ "la_LN.ISO_8859-1" "\0" "ISO-8859-1" "\0" -+ "la_LN.DIS_8859-15" "\0" "ISO-8859-15" "\0" -+ "lt_LN.ISO_8859-1" "\0" "ISO-8859-1" "\0" -+ "lt_LN.DIS_8859-15" "\0" "ISO-8859-15" "\0" -+ "nl_BE.ISO_8859-1" "\0" "ISO-8859-1" "\0" -+ "nl_BE.DIS_8859-15" "\0" "ISO-8859-15" "\0" -+ "nl_NL.ISO_8859-1" "\0" "ISO-8859-1" "\0" -+ "nl_NL.DIS_8859-15" "\0" "ISO-8859-15" "\0" -+ "no_NO.ISO_8859-1" "\0" "ISO-8859-1" "\0" -+ "no_NO.DIS_8859-15" "\0" "ISO-8859-15" "\0" -+ "pt_PT.ISO_8859-1" "\0" "ISO-8859-1" "\0" -+ "pt_PT.DIS_8859-15" "\0" "ISO-8859-15" "\0" -+ "sv_SE.ISO_8859-1" "\0" "ISO-8859-1" "\0" -+ "sv_SE.DIS_8859-15" "\0" "ISO-8859-15" "\0" -+ "cs_CZ.ISO_8859-2" "\0" "ISO-8859-2" "\0" -+ "hr_HR.ISO_8859-2" "\0" "ISO-8859-2" "\0" -+ "hu_HU.ISO_8859-2" "\0" "ISO-8859-2" "\0" -+ "la_LN.ISO_8859-2" "\0" "ISO-8859-2" "\0" -+ "lt_LN.ISO_8859-2" "\0" "ISO-8859-2" "\0" -+ "pl_PL.ISO_8859-2" "\0" "ISO-8859-2" "\0" -+ "sl_SI.ISO_8859-2" "\0" "ISO-8859-2" "\0" -+ "la_LN.ISO_8859-4" "\0" "ISO-8859-4" "\0" -+ "lt_LT.ISO_8859-4" "\0" "ISO-8859-4" "\0" -+ "ru_RU.KOI8-R" "\0" "KOI8-R" "\0" -+ "ru_RU.ISO_8859-5" "\0" "ISO-8859-5" "\0" -+ "ru_RU.CP866" "\0" "CP866" "\0" -+ "ru_SU.KOI8-R" "\0" "KOI8-R" "\0" -+ "ru_SU.ISO_8859-5" "\0" "ISO-8859-5" "\0" -+ "ru_SU.CP866" "\0" "CP866" "\0" -+ "uk_UA.KOI8-U" "\0" "KOI8-U" "\0" -+ "zh_TW.BIG5" "\0" "BIG5" "\0" -+ "zh_TW.Big5" "\0" "BIG5" "\0" -+ "zh_CN.EUC" "\0" "GB2312" "\0" -+ "ja_JP.EUC" "\0" "EUC-JP" "\0" -+ "ja_JP.SJIS" "\0" "SHIFT_JIS" "\0" -+ "ja_JP.Shift_JIS" "\0" "SHIFT_JIS" "\0" -+ "ko_KR.EUC" "\0" "EUC-KR" "\0"; -+# endif -+ - # if defined DARWIN7 - /* To avoid the trouble of installing a file that is shared by many - GNU packages -- many packaging systems have problems with this --, diff --git a/devel/patch/files/patch-src_patch.c b/devel/patch/files/patch-src_patch.c new file mode 100644 index 000000000000..c73213852bd2 --- /dev/null +++ b/devel/patch/files/patch-src_patch.c @@ -0,0 +1,42 @@ +--- src/patch.c.orig 2025-02-27 13:33:25 UTC ++++ src/patch.c +@@ -204,7 +204,10 @@ main (int argc, char **argv) + + init_output (&outstate); + if (outfile) +- outstate.ofp = open_outfile (outfile); ++ { ++ outstate.ofp = open_outfile (outfile); ++ read_only_behavior = RO_IGNORE; ++ } + + /* Make sure we clean up in case of disaster. */ + init_signals (); +@@ -323,7 +326,8 @@ main (int argc, char **argv) + } + } + +- if (read_only_behavior != RO_IGNORE ++ if (! skip_rest_of_patch ++ && read_only_behavior != RO_IGNORE + && ! inerrno && ! S_ISLNK (instat.st_mode) + && safe_access (inname, W_OK) != 0) + { +@@ -616,7 +620,7 @@ main (int argc, char **argv) + struct stat outstat; + + if (stat_file (outname, &outstat) != 0) +- say ("Cannot stat file %s, skipping backup\n", outname); ++ say ("Cannot stat file %s, skipping backup\n", quotearg (outname)); + else + output_file (&(struct outfile) { .name = outname }, + &outstat, nullptr, nullptr, +@@ -750,7 +754,7 @@ reinitialize_almost_everything (void) + } + + static char const shortopts[] = "bB:cd:D:eEfF:g:i:l" +-#if 0 && defined ENABLE_MERGE ++#if defined ENABLE_MERGE + "m" + #endif + "nNo:p:r:RstTuvV:x:Y:z:Z"; diff --git a/devel/patch/files/patch-src_safe.c b/devel/patch/files/patch-src_safe.c new file mode 100644 index 000000000000..30c727e8bb69 --- /dev/null +++ b/devel/patch/files/patch-src_safe.c @@ -0,0 +1,11 @@ +--- src/safe.c.orig 2025-02-27 13:33:25 UTC ++++ src/safe.c +@@ -571,6 +571,8 @@ safe_xstat (char *pathname, struct stat *buf, int flag + int dirfd = traverse_path (&pathname, false); + if (dirfd == DIRFD_INVALID) + return -1; ++ if (! strcmp (pathname, "")) ++ return EINVAL; + return fstatat (dirfd, pathname, buf, flags); + } + diff --git a/devel/patch/files/patch-tests_bad-filenames b/devel/patch/files/patch-tests_bad-filenames new file mode 100644 index 000000000000..717200056ce7 --- /dev/null +++ b/devel/patch/files/patch-tests_bad-filenames @@ -0,0 +1,14 @@ +--- tests/bad-filenames.orig 2025-02-27 13:33:25 UTC ++++ tests/bad-filenames +@@ -200,3 +200,11 @@ No file to patch. Skipping patch. + 1 out of 1 hunk ignored + status: 1 + EOF ++ ++# Empty filenames are not allowed: ++ ++check 'emit_patch f | patch -r- "" || echo status: $?' <