diff --git a/sysutils/debootstrap/Makefile b/sysutils/debootstrap/Makefile index 47dcc65a4b85..baff0b53bf40 100644 --- a/sysutils/debootstrap/Makefile +++ b/sysutils/debootstrap/Makefile @@ -1,56 +1,50 @@ PORTNAME= debootstrap PORTVERSION= ${DEB_VERSION}n${DEB_NMU} +PORTREVISION= 1 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 \ gpgv2:security/gnupg \ ${LOCALBASE}/share/keyrings/ubuntu-archive-keyring.gpg:security/ubuntu-keyring -WRKSRC= ${WRKDIR}/${PORTNAME} -NO_BUILD= yes -NO_ARCH= yes 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,%%PREFIX%%,${PREFIX},g' \ - ${WRKSRC}/Makefile \ - ${WRKSRC}/debootstrap - @${REINPLACE_CMD} -e 's,%%DATADIR%%,${DATADIR},g' \ - ${WRKSRC}/Makefile \ + @${REINPLACE_CMD} \ + -e 's,%%DATADIR%%,${DATADIR},g' \ + -e 's,%%LOCALBASE%%,${LOCALBASE},g' \ ${WRKSRC}/debootstrap - @${REINPLACE_CMD} -e 's,%%LOCALBASE%%,${LOCALBASE},g' \ - ${WRKSRC}/Makefile \ - ${WRKSRC}/debootstrap - @${REINPLACE_CMD} -e 's,gpgv,gpgv2,g' \ - ${WRKSRC}/Makefile \ - ${WRKSRC}/debootstrap \ - ${WRKSRC}/functions @${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 post-install: ${INSTALL_MAN} ${WRKSRC}/debootstrap.8 \ ${STAGEDIR}${MAN8PREFIX}/man/man8/debootstrap.8 .include diff --git a/sysutils/debootstrap/files/patch-Makefile b/sysutils/debootstrap/files/patch-Makefile index 8d55f3868d54..4627149a0e5a 100644 --- a/sysutils/debootstrap/files/patch-Makefile +++ b/sysutils/debootstrap/files/patch-Makefile @@ -1,22 +1,22 @@ --- Makefile.orig 2022-07-13 22:17:17 UTC +++ Makefile @@ -5,14 +5,13 @@ clean: clean: -DSDIR=$(DESTDIR)/usr/share/debootstrap -+DSDIR=$(DESTDIR)$(PREFIX)/share/debootstrap ++DSDIR=$(DESTDIR)$(DATADIR) install: mkdir -p $(DSDIR)/scripts - mkdir -p $(DESTDIR)/usr/sbin + mkdir -p $(DESTDIR)$(PREFIX)/sbin cp -a scripts/* $(DSDIR)/scripts/ - install -o root -g root -m 0644 functions $(DSDIR)/ + cp -a functions $(DSDIR)/ - sed 's/@VERSION@/$(VERSION)/g' debootstrap >$(DESTDIR)/usr/sbin/debootstrap - chown root:root $(DESTDIR)/usr/sbin/debootstrap - chmod 0755 $(DESTDIR)/usr/sbin/debootstrap + sed 's/@VERSION@/$(VERSION)/g' debootstrap >$(DESTDIR)$(PREFIX)/sbin/debootstrap + chmod 0755 $(DESTDIR)$(PREFIX)/sbin/debootstrap diff --git a/sysutils/debootstrap/files/patch-debootstrap b/sysutils/debootstrap/files/patch-debootstrap index 82733b633193..32e164a075f3 100644 --- a/sysutils/debootstrap/files/patch-debootstrap +++ b/sysutils/debootstrap/files/patch-debootstrap @@ -1,58 +1,58 @@ --- debootstrap.orig 2022-10-14 11:16:30 UTC +++ debootstrap @@ -1,4 +1,4 @@ -#!/bin/sh -+#!/usr/local/bin/bash ++#!%%LOCALBASE%%/bin/bash set -e VERSION='@VERSION@' @@ -14,7 +14,7 @@ if [ -z "$DEBOOTSTRAP_DIR" ]; then if [ -x /debootstrap/debootstrap ]; then DEBOOTSTRAP_DIR=/debootstrap else - DEBOOTSTRAP_DIR=/usr/share/debootstrap -+ DEBOOTSTRAP_DIR=/usr/local/share/debootstrap ++ DEBOOTSTRAP_DIR=%%DATADIR%% fi fi @@ -379,8 +379,8 @@ if [ $# != 0 ] ; then shift ;; --keyring|--keyring=?*) - if ! gpgv --version >/dev/null 2>&1; then - error 1 NEEDGPGV "gpgv not installed, but required for Release verification" + if ! gpgv2 --version >/dev/null 2>&1; then + error 1 NEEDGPGV "gpgv2 not installed, but required for Release verification" fi if [ "$1" = "--keyring" ] && [ -n "$2" ]; then KEYRING="$2" @@ -536,13 +536,7 @@ fi ########################################################################### -if in_path dpkg && \ - dpkg --print-architecture >/dev/null 2>&1; then - HOST_ARCH=$(/usr/bin/dpkg --print-architecture) -elif in_path udpkg && \ - udpkg --print-architecture >/dev/null 2>&1; then - HOST_ARCH=$(/usr/bin/udpkg --print-architecture) -elif [ -e "$DEBOOTSTRAP_DIR/arch" ]; then +if [ -e "$DEBOOTSTRAP_DIR/arch" ]; then HOST_ARCH=$(cat "$DEBOOTSTRAP_DIR/arch") fi HOST_OS="$HOST_ARCH" @@ -562,6 +556,14 @@ if [ -z "$HOST_OS" ]; then HOST_OS=freebsd ;; esac +fi + +if [ "$HOST_OS" = "freebsd" -a -z "$HOST_ARCH" ]; then + HOST_ARCH=`/sbin/sysctl -n hw.machine_arch` + if [ "$HOST_ARCH" = "aarch64" ]; then + HOST_ARCH=arm64 + fi + EXTRACTOR_OVERRIDE=ar fi if [ -z "$ARCH" ]; then diff --git a/sysutils/debootstrap/files/patch-functions b/sysutils/debootstrap/files/patch-functions new file mode 100644 index 000000000000..4247a0cef7db --- /dev/null +++ b/sysutils/debootstrap/files/patch-functions @@ -0,0 +1,20 @@ +--- functions.orig 2023-02-24 08:27:34 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 +@@ -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 + } +