diff --git a/sysutils/debootstrap/Makefile b/sysutils/debootstrap/Makefile index 75b4fd2cd320..331caf5869d6 100644 --- a/sysutils/debootstrap/Makefile +++ b/sysutils/debootstrap/Makefile @@ -1,55 +1,47 @@ PORTNAME= debootstrap PORTVERSION= ${DEB_VERSION}n${DEB_NMU} -PORTREVISION= 3 +PORTREVISION= 4 CATEGORIES= sysutils MASTER_SITES= DEBIAN DISTNAME= ${PORTNAME}_${DEB_VERSION}+nmu${DEB_NMU} MAINTAINER= nc@FreeBSD.org COMMENT= Install Debian or Ubuntu base system into a directory WWW= https://wiki.debian.org/Debootstrap LICENSE= MIT LICENSE_FILE= ${WRKSRC}/debian/copyright RUN_DEPENDS= wget:ftp/wget \ bash:shells/bash \ - ${LOCALBASE}/bin/grep:textproc/gnugrep \ + pcregrep:devel/pcre \ gpgv2:security/gnupg \ gtar:archivers/gtar \ ${LOCALBASE}/share/keyrings/ubuntu-archive-keyring.gpg:security/ubuntu-keyring USES= gmake perl5 USE_PERL5= run MAKE_ENV= DATADIR="${DATADIR}" NO_ARCH= yes NO_BUILD= yes WRKSRC= ${WRKDIR}/${PORTNAME} # The +nmu suffix used by debian for "non maintainer uploads" of a Debian # native package doesn't play well with our versioning DEB_VERSION= 1.0.128 DEB_NMU= 2 post-patch: @${REINPLACE_CMD} \ -e 's,%%DATADIR%%,${DATADIR},g' \ -e 's,%%LOCALBASE%%,${LOCALBASE},g' \ ${WRKSRC}/debootstrap @${FIND} ${WRKSRC}/scripts -type f | \ ${XARGS} ${REINPLACE_CMD} -e 's,/usr/share/keyrings,${LOCALBASE}/share/keyrings,g' - # Workaround for bin/255525 - @${REINPLACE_CMD} -e 's,grep,${LOCALBASE}/bin/grep,g' \ - ${WRKSRC}/functions - - # ports/274298 - @${REINPLACE_CMD} -e 's, tar , ${LOCALBASE}/bin/gtar ,g' \ - ${WRKSRC}/functions - post-install: ${INSTALL_MAN} ${WRKSRC}/debootstrap.8 \ ${STAGEDIR}${PREFIX}/share/man/man8/debootstrap.8 .include diff --git a/sysutils/debootstrap/files/patch-functions b/sysutils/debootstrap/files/patch-functions index 4247a0cef7db..1fbffa87489c 100644 --- a/sysutils/debootstrap/files/patch-functions +++ b/sysutils/debootstrap/files/patch-functions @@ -1,20 +1,72 @@ ---- functions.orig 2023-02-24 08:27:34 UTC +--- functions.orig 2022-10-18 22:48:32 UTC +++ functions @@ -658,7 +658,7 @@ download_release_sig () { info RELEASESIG "Checking Release signature" # Don't worry about the exit status from gpgv; parsing the output will # take care of that. - (gpgv --status-fd 1 --keyring "$KEYRING" --ignore-time-conflict \ + (gpgv2 --status-fd 1 --keyring "$KEYRING" --ignore-time-conflict \ "$relsigdest" "$reldest" || true) | read_gpg_status progress 100 100 DOWNRELSIG "Downloading Release file signature" fi +@@ -978,7 +978,7 @@ extract_dpkg_deb_field () { + extract_dpkg_deb_data () { + local pkg="$1" + +- dpkg-deb --fsys-tarfile "$pkg" | tar $EXTRACT_DEB_TAR_OPTIONS -xf - || error 1 FILEEXIST "Tried to extract package, but file already exists. Exit..." ++ dpkg-deb --fsys-tarfile "$pkg" | gtar $EXTRACT_DEB_TAR_OPTIONS -xf - || error 1 FILEEXIST "Tried to extract package, but file already exists. Exit..." + } + + # Raw .deb extractors +@@ -998,7 +998,7 @@ extract_ar_deb_field () { + + if in_path $cat_cmd; then + ar -p "$pkg" "$tarball" | $cat_cmd | +- tar -O -xf - control ./control 2>/dev/null | ++ gtar -O -xf - control ./control 2>/dev/null | + grep -i "^$field:" | sed -e 's/[^:]*: *//' | head -n 1 + else + error 1 UNPACKCMDUNVL "Extracting %s requires the %s command, which is not available" "$pkg" "$cat_cmd" +@@ -1020,7 +1020,7 @@ extract_ar_deb_data () { + esac + + if in_path "$cat_cmd"; then +- ar -p "$pkg" "$tarball" | "$cat_cmd" | tar $EXTRACT_DEB_TAR_OPTIONS -xf - ++ ar -p "$pkg" "$tarball" | "$cat_cmd" | gtar $EXTRACT_DEB_TAR_OPTIONS -xf - + else + error 1 UNPACKCMDUNVL "Extracting %s requires the %s command, which is not available" "$pkg" "$cat_cmd" + fi +@@ -1515,7 +1515,7 @@ while (read STDIN, $x, 1) { + }' "$@" + elif [ "$1" = "GETDEPS" ]; then + local pkgdest="$2"; shift; shift +-LC_ALL=C grep "$gropt" '^$|^Package:|^Depends:|^Pre-Depends:' $pkgdest | perl -e ' ++LC_ALL=C pcregrep '^$|^Package:|^Depends:|^Pre-Depends:' $pkgdest | perl -e ' + %seen = map { $_ => 1 } @ARGV; + while () { + if (/^Package: (.*)$/) { +@@ -1543,13 +1543,13 @@ while () { + local m="$2" + local p="$3" + shift; shift; shift +- LC_ALL=C grep "$gropt" '^$|^Architecture:|^Filename:|^MD5sum:|^Package:|^Priority:|^SHA256:|^Size:|^Version:|^Depends:|^Pre-Depends:' "$p" | pkgdetails_field 1 Package: "$m" "$@" ++ LC_ALL=C pcregrep '^$|^Architecture:|^Filename:|^MD5sum:|^Package:|^Priority:|^SHA256:|^Size:|^Version:|^Depends:|^Pre-Depends:' "$p" | pkgdetails_field 1 Package: "$m" "$@" + elif [ "$1" = "FIELD" ]; then + local f="$2" + local m="$3" + local p="$4" + shift; shift; shift; shift +- LC_ALL=C grep "$gropt" '^$|^Package:|^Priority:' "$p" | pkgdetails_field 0 "$f" "$m" "$@" ++ LC_ALL=C pcregrep '^$|^Package:|^Priority:' "$p" | pkgdetails_field 0 "$f" "$m" "$@" + elif [ "$1" = "STANZAS" ]; then + local pkgdest="$2"; shift; shift + perl -e ' @@ -1706,7 +1706,7 @@ read_gpg_status () { elif [ "$unkkey" ]; then error 1 UNKNOWNRELSIG "Release signed by unknown key (key id %s)\n The specified keyring $KEYRING may be incorrect or out of date.\n You can find the latest Debian release key at https://ftp-master.debian.org/keys.html" "$unkkey" else - error 1 SIGCHECK "Error executing gpgv to check Release signature" + error 1 SIGCHECK "Error executing gpgv2 to check Release signature" fi }