git: 567616ad033f - main - ports-mgmt/portsnap: Remove expired port
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Mon, 04 May 2026 16:35:38 UTC
The branch main has been updated by rene:
URL: https://cgit.FreeBSD.org/ports/commit/?id=567616ad033f29a27c0330a59e0e48b16c8c5d3f
commit 567616ad033f29a27c0330a59e0e48b16c8c5d3f
Author: Rene Ladan <rene@FreeBSD.org>
AuthorDate: 2026-05-04 16:35:18 +0000
Commit: Rene Ladan <rene@FreeBSD.org>
CommitDate: 2026-05-04 16:35:18 +0000
ports-mgmt/portsnap: Remove expired port
2026-04-30 ports-mgmt/portsnap: portsnap infrastructure will be removed after the EOL of 13.x
---
MOVED | 1 +
ports-mgmt/Makefile | 1 -
ports-mgmt/portsnap/Makefile | 44 --
ports-mgmt/portsnap/distinfo | 3 -
ports-mgmt/portsnap/files/patch-Makefile | 12 -
ports-mgmt/portsnap/files/patch-make__index.c | 18 -
ports-mgmt/portsnap/files/patch-portsnap | 654 ------------------------
ports-mgmt/portsnap/files/patch-portsnap.8 | 183 -------
ports-mgmt/portsnap/files/patch-portsnap.conf | 21 -
ports-mgmt/portsnap/files/patch-portsnap.conf.5 | 65 ---
ports-mgmt/portsnap/files/pkg-message.in | 28 -
ports-mgmt/portsnap/pkg-descr | 13 -
12 files changed, 1 insertion(+), 1042 deletions(-)
diff --git a/MOVED b/MOVED
index 30c582a1d5d8..f07d6643d92a 100644
--- a/MOVED
+++ b/MOVED
@@ -5265,3 +5265,4 @@ emulators/virtualbox-ose-nox11-71|emulators/virtualbox-ose-71@nox11|2026-04-30|C
emulators/virtualbox-ose-nox11-72|emulators/virtualbox-ose-72@nox11|2026-04-30|Converted to a flavorized port
databases/kuzu|databases/ladybug|2026-05-03|Upstream abandoned, project continuing under new name
lang/elm||2026-05-04|Has expired: Depends on a deprecated compiler's version
+ports-mgmt/portsnap||2026-05-04|Has expired: portsnap infrastructure will be removed after the EOL of 13.x
diff --git a/ports-mgmt/Makefile b/ports-mgmt/Makefile
index 1803545359c4..66f5ca6d7af0 100644
--- a/ports-mgmt/Makefile
+++ b/ports-mgmt/Makefile
@@ -61,7 +61,6 @@
SUBDIR += portsearch
SUBDIR += portshaker
SUBDIR += portshaker-config
- SUBDIR += portsnap
SUBDIR += portsreinstall
SUBDIR += porttools
SUBDIR += porttree
diff --git a/ports-mgmt/portsnap/Makefile b/ports-mgmt/portsnap/Makefile
deleted file mode 100644
index ab02469e0629..000000000000
--- a/ports-mgmt/portsnap/Makefile
+++ /dev/null
@@ -1,44 +0,0 @@
-PORTNAME= portsnap
-PORTVERSION= 1.1
-PORTREVISION= 3
-CATEGORIES= ports-mgmt net
-MASTER_SITES= http://www.daemonology.net/portsnap/
-
-MAINTAINER= bofh@FreeBSD.org
-COMMENT= Provides secure snapshots of the ports directory
-WWW= http://www.daemonology.net/portsnap/
-
-LICENSE= BSD2CLAUSE
-
-DEPRECATED= portsnap infrastructure will be removed after the EOL of 13.x
-EXPIRATION_DATE=2026-04-30
-
-SUB_FILES= pkg-message
-
-PLIST_FILES= "@sample etc/portsnap.conf.sample" \
- libexec/make_index \
- sbin/portsnap \
- share/man/man5/portsnap.conf.5.gz \
- share/man/man8/portsnap.8.gz
-
-.include <bsd.port.pre.mk>
-
-.if ${OPSYS} == FreeBSD && ${OSVERSION} < 1400087
-IGNORE= portsnap is in base systems and has been removed from 14.0-RELEASE
-.endif
-
-post-patch:
- ${REINPLACE_CMD} -e "s,%%PREFIX%%,${PREFIX},g" \
- ${WRKSRC}/portsnap \
- ${WRKSRC}/portsnap.conf.5 \
- ${WRKSRC}/portsnap.8
-
-do-install:
- ${INSTALL_SCRIPT} ${WRKSRC}/portsnap ${STAGEDIR}/${PREFIX}/sbin
- ${INSTALL_PROGRAM} ${WRKSRC}/make_index ${STAGEDIR}/${PREFIX}/libexec
- ${INSTALL_MAN} ${WRKSRC}/portsnap.conf.5 ${STAGEDIR}/${PREFIX}/share/man/man5/
- ${INSTALL_MAN} ${WRKSRC}/portsnap.8 ${STAGEDIR}/${PREFIX}/share/man/man8/
- ${INSTALL_DATA} ${WRKSRC}/portsnap.conf \
- ${STAGEDIR}/${PREFIX}/etc/portsnap.conf.sample
-
-.include <bsd.port.post.mk>
diff --git a/ports-mgmt/portsnap/distinfo b/ports-mgmt/portsnap/distinfo
deleted file mode 100644
index 67c89c3ce981..000000000000
--- a/ports-mgmt/portsnap/distinfo
+++ /dev/null
@@ -1,3 +0,0 @@
-TIMESTAMP = 1681052114
-SHA256 (portsnap-1.1.tar.gz) = 08bf6db8738d5c4fe757737d97366e7e899a6d0cfb244a46055f97f4b116b36c
-SIZE (portsnap-1.1.tar.gz) = 20875
diff --git a/ports-mgmt/portsnap/files/patch-Makefile b/ports-mgmt/portsnap/files/patch-Makefile
deleted file mode 100644
index b12308591bf6..000000000000
--- a/ports-mgmt/portsnap/files/patch-Makefile
+++ /dev/null
@@ -1,12 +0,0 @@
---- Makefile.orig 2023-04-09 15:24:50 UTC
-+++ Makefile
-@@ -1,8 +1,6 @@
--all: make_index phttpget
-+all: make_index
-
- make_index: make_index.c
--
--phttpget: phttpget.c
-
- install:
- install -m 555 portsnap /usr/local/sbin
diff --git a/ports-mgmt/portsnap/files/patch-make__index.c b/ports-mgmt/portsnap/files/patch-make__index.c
deleted file mode 100644
index f24c013f0ea1..000000000000
--- a/ports-mgmt/portsnap/files/patch-make__index.c
+++ /dev/null
@@ -1,18 +0,0 @@
---- make_index.c.orig 2023-04-09 15:19:46 UTC
-+++ make_index.c
-@@ -1,4 +1,6 @@
- /*-
-+ * SPDX-License-Identifier: BSD-2-Clause-FreeBSD
-+ *
- * Copyright 2005 Colin Percival
- * All rights reserved
- *
-@@ -25,7 +27,7 @@
- */
-
- #include <sys/cdefs.h>
--__FBSDID("$FreeBSD: src/usr.sbin/portsnap/make_index/make_index.c,v 1.5 2005/12/01 22:14:44 cperciva Exp $");
-+__FBSDID("$FreeBSD$");
-
- #include <err.h>
- #include <stdio.h>
diff --git a/ports-mgmt/portsnap/files/patch-portsnap b/ports-mgmt/portsnap/files/patch-portsnap
deleted file mode 100644
index f6f95dd063d4..000000000000
--- a/ports-mgmt/portsnap/files/patch-portsnap
+++ /dev/null
@@ -1,654 +0,0 @@
---- portsnap.orig 2006-05-26 23:24:34 UTC
-+++ portsnap
-@@ -1,11 +1,13 @@
- #!/bin/sh
-
- #-
-+# SPDX-License-Identifier: BSD-2-Clause-FreeBSD
-+#
- # Copyright 2004-2005 Colin Percival
- # All rights reserved
- #
- # Redistribution and use in source and binary forms, with or without
--# modification, are permitted providing that the following conditions
-+# modification, are permitted providing that the following conditions
- # are met:
- # 1. Redistributions of source code must retain the above copyright
- # notice, this list of conditions and the following disclaimer.
-@@ -25,7 +27,7 @@
- # IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- # POSSIBILITY OF SUCH DAMAGE.
-
--# $FreeBSD: src/usr.sbin/portsnap/portsnap/portsnap.sh,v 1.24 2006/05/13 15:56:35 cperciva Exp $
-+# $FreeBSD$
-
- #### Usage function -- called from command-line handling code.
-
-@@ -38,7 +40,7 @@ usage: `basename $0` [options] command ... [path]
-
- Options:
- -d workdir -- Store working files in workdir
-- (default: ${PREFIX}/portsnap/)
-+ (default: /var/db/portsnap/)
- -f conffile -- Read configuration options from conffile
- (default: ${PREFIX}/etc/portsnap.conf)
- -I -- Update INDEX only. (update command only)
-@@ -48,6 +50,9 @@ Options:
- (default: /usr/ports/)
- -s server -- Server from which to fetch updates.
- (default: portsnap.FreeBSD.org)
-+ --interactive -- interactive: override auto-detection of calling process
-+ (use this when calling portsnap from an interactive, non-
-+ terminal application AND NEVER ELSE).
- path -- Extract only parts of the tree starting with the given
- string. (extract command only)
- Commands:
-@@ -58,6 +63,8 @@ Commands:
- files and directories.
- update -- Update ports tree to match current snapshot, replacing
- files and directories which have changed.
-+ auto -- Fetch updates, and either extract a new ports tree or
-+ update an existing tree.
- EOF
- exit 0
- }
-@@ -81,10 +88,11 @@ init_params() {
- NDEBUG=""
- DDSTATS=""
- INDEXONLY=""
-- PREFIX="/usr/local"
-+ PREFIX="%%PREFIX%%"
- SERVERNAME=""
- REFUSE=""
- LOCALDESC=""
-+ INTERACTIVE=""
- }
-
- # Parse the command line
-@@ -104,6 +112,9 @@ parse_cmdline() {
- XARGST="-t"
- DDSTATS=".."
- ;;
-+ --interactive)
-+ INTERACTIVE="YES"
-+ ;;
- -f)
- if [ $# -eq 1 ]; then usage; fi
- if [ ! -z "${CONFFILE}" ]; then usage; fi
-@@ -141,9 +152,15 @@ parse_cmdline() {
- if [ ! -z "${SERVERNAME}" ]; then usage; fi
- shift; SERVERNAME="$1"
- ;;
-- cron | extract | fetch | update)
-+ cron | extract | fetch | update | auto)
- COMMANDS="${COMMANDS} $1"
- ;;
-+ up)
-+ COMMANDS="${COMMANDS} update"
-+ ;;
-+ alfred)
-+ COMMANDS="${COMMANDS} auto"
-+ ;;
- *)
- if [ $# -gt 1 ]; then usage; fi
- if echo ${COMMANDS} | grep -vq extract; then
-@@ -200,6 +217,12 @@ parse_conffile() {
- cut -c 7- | xargs echo | tr ' ' '|'
- `)"
- fi
-+
-+ if grep -qE "^INDEX[[:space:]]" ${CONFFILE}; then
-+ INDEXPAIRS="`
-+ grep -E "^INDEX[[:space:]]" "${CONFFILE}" |
-+ cut -c 7- | tr ' ' '|' | xargs echo`"
-+ fi
- fi
- }
-
-@@ -208,7 +231,7 @@ default_params() {
- _QUIETREDIR="/dev/null"
- _QUIETFLAG="-q"
- _STATSREDIR="/dev/stdout"
-- _WORKDIR="${PREFIX}/portsnap"
-+ _WORKDIR="/var/db/portsnap"
- _PORTSDIR="/usr/ports"
- _NDEBUG="-n"
- _LOCALDESC="/dev/null"
-@@ -220,13 +243,20 @@ default_params() {
- eval ${X}=${__}
- fi
- done
-+ if [ -z "${INTERACTIVE}" ]; then
-+ if [ -t 0 ]; then
-+ INTERACTIVE="YES"
-+ else
-+ INTERACTIVE="NO"
-+ fi
-+ fi
- }
-
- # Perform sanity checks and set some final parameters
- # in preparation for fetching files. Also chdir into
- # the working directory.
- fetch_check_params() {
-- export HTTP_USER_AGENT="portsnap/1.1 (${COMMAND})"
-+ export HTTP_USER_AGENT="portsnap (${COMMAND}, `uname -r`)"
-
- _SERVERNAME_z=\
- "SERVERNAME must be given via command line or configuration file."
-@@ -258,28 +288,9 @@ fetch_check_params() {
- fi
- cd ${WORKDIR} || exit 1
-
-- BSPATCH=`which bspatch || echo ${PREFIX}/bin/bspatch`
-- SHA256=`which sha256 || echo ${PREFIX}/sbin/sha256`
-- PHTTPGET=${PREFIX}/libexec/phttpget
-- if ! [ -x ${BSPATCH} ]; then
-- echo -n "`basename $0`: "
-- echo "bspatch is needed but cannot be found."
-- echo -n "Please install it from the ports tree "
-- echo "(misc/bsdiff)."
-- exit 1
-- fi
-- if ! [ -x ${SHA256} ]; then
-- echo -n "`basename $0`: "
-- echo "sha256 is needed but cannot be found."
-- echo -n "Please install it from the ports tree "
-- echo "(sysutils/freebsd-sha256)."
-- exit 1
-- fi
-- if ! [ -x ${PHTTPGET} ]; then
-- echo -n "`basename $0`: "
-- echo "Cannot find ${PHTTPGET}."
-- exit 1
-- fi
-+ BSPATCH=/usr/bin/bspatch
-+ SHA256=/sbin/sha256
-+ PHTTPGET=/usr/libexec/phttpget
- }
-
- # Perform sanity checks and set some final parameters
-@@ -311,11 +322,6 @@ extract_check_params() {
- fi
-
- MKINDEX=${PREFIX}/libexec/make_index
-- if ! [ -x ${MKINDEX} ]; then
-- echo -n "`basename $0`: "
-- echo "Cannot find ${MKINDEX}."
-- exit 1
-- fi
- }
-
- # Perform sanity checks and set some final parameters
-@@ -364,7 +370,7 @@ fetch_pick_server_init() {
- # "$name server selection ..."; we allow either format.
- MLIST="_http._tcp.${SERVERNAME}"
- host -t srv "${MLIST}" |
-- sed -nE "s/${MLIST} (has SRV record|server selection) //p" |
-+ sed -nE "s/${MLIST} (has SRV record|server selection) //Ip" |
- cut -f 1,2,4 -d ' ' |
- sed -e 's/\.$//' |
- sort > serverlist_full
-@@ -406,7 +412,7 @@ fetch_pick_server() {
- SRV_PRIORITY=`cut -f 1 -d ' ' serverlist | sort -n | head -1`
-
- # Add up the weights of the response lines at that priority level.
-- SRV_WSUM=0;
-+ SRV_WSUM=0
- while read X; do
- case "$X" in
- ${SRV_PRIORITY}\ *)
-@@ -555,9 +561,9 @@ fetch_metadata() {
- rm -f ${SNAPSHOTHASH} tINDEX.new
-
- echo ${NDEBUG} "Fetching snapshot metadata... "
-- fetch ${QUIETFLAG} http://${SERVERNAME}/t/${SNAPSHOTHASH}
-+ fetch ${QUIETFLAG} http://${SERVERNAME}/t/${SNAPSHOTHASH} \
- 2>${QUIETREDIR} || return
-- if [ `${SHA256} -q ${SNAPSHOTHASH}` != ${SNAPSHOTHASH} ]; then
-+ if [ "`${SHA256} -q ${SNAPSHOTHASH}`" != ${SNAPSHOTHASH} ]; then
- echo "snapshot metadata corrupt."
- return 1
- fi
-@@ -589,14 +595,15 @@ fetch_metadata_sanity() {
-
- # Take a list of ${oldhash}|${newhash} and output a list of needed patches
- fetch_make_patchlist() {
-- grep -vE "^([0-9a-f]{64})\|\1$" |
-- while read LINE; do
-- X=`echo ${LINE} | cut -f 1 -d '|'`
-- Y=`echo ${LINE} | cut -f 2 -d '|'`
-- if [ -f "files/${Y}.gz" ]; then continue; fi
-- if [ ! -f "files/${X}.gz" ]; then continue; fi
-- echo "${LINE}"
-+ local IFS='|'
-+ echo "" 1>${QUIETREDIR}
-+ grep -vE "^([0-9a-f]{64})\|\1$" |
-+ while read X Y; do
-+ printf "Processing: $X $Y ...\r" 1>${QUIETREDIR}
-+ if [ -f "files/${Y}.gz" -o ! -f "files/${X}.gz" ]; then continue; fi
-+ echo "${X}|${Y}"
- done
-+ echo "" 1>${QUIETREDIR}
- }
-
- # Print user-friendly progress statistics
-@@ -613,6 +620,30 @@ fetch_progress() {
- echo -n " "
- }
-
-+pct_fmt()
-+{
-+ if [ $TOTAL -gt 0 ]; then
-+ printf " \r"
-+ printf "($1/$2) %02.2f%% " `echo "scale=4;$LNC / $TOTAL * 100"|bc`
-+ fi
-+}
-+
-+fetch_progress_percent() {
-+ TOTAL=$1
-+ LNC=0
-+ pct_fmt $LNC $TOTAL
-+ while read x; do
-+ LNC=$(($LNC + 1))
-+ if [ $(($LNC % 100)) = 0 ]; then
-+ pct_fmt $LNC $TOTAL
-+ elif [ $(($LNC % 10)) = 0 ]; then
-+ echo -n .
-+ fi
-+ done
-+ pct_fmt $LNC $TOTAL
-+ echo " done. "
-+}
-+
- # Sanity-check an index file
- fetch_index_sanity() {
- if grep -qvE "^[-_+./@0-9A-Za-z]+\|[0-9a-f]{64}$" INDEX.new ||
-@@ -625,7 +656,7 @@ fetch_index_sanity() {
- # Verify a list of files
- fetch_snapshot_verify() {
- while read F; do
-- if [ `gunzip -c snap/${F} | ${SHA256} -q` != ${F} ]; then
-+ if [ "`gunzip -c < snap/${F}.gz | ${SHA256} -q`" != ${F} ]; then
- echo "snapshot corrupt."
- return 1
- fi
-@@ -651,7 +682,7 @@ fetch_snapshot() {
- fetch -r http://${SERVERNAME}/s/${SNAPSHOTHASH}.tgz || return 1
-
- echo -n "Extracting snapshot... "
-- tar -xzf ${SNAPSHOTHASH}.tgz snap/ || return 1
-+ tar -xz --numeric-owner -f ${SNAPSHOTHASH}.tgz snap/ || return 1
- rm ${SNAPSHOTHASH}.tgz
- echo "done."
-
-@@ -660,11 +691,19 @@ fetch_snapshot() {
- cut -f 2 -d '|' tINDEX.new | fetch_snapshot_verify || return 1
- # Extract the index
- rm -f INDEX.new
-- gunzip -c snap/`look INDEX tINDEX.new |
-+ gunzip -c < snap/`look INDEX tINDEX.new |
- cut -f 2 -d '|'`.gz > INDEX.new
- fetch_index_sanity || return 1
- # Verify the snapshot contents
- cut -f 2 -d '|' INDEX.new | fetch_snapshot_verify || return 1
-+ cut -f 2 -d '|' tINDEX.new INDEX.new | sort -u |
-+ lam -s 'snap/' - -s '.gz' > files.expected
-+ find snap -mindepth 1 | sort > files.snap
-+ if ! cmp -s files.expected files.snap; then
-+ echo "unexpected files in snapshot."
-+ return 1
-+ fi
-+ rm files.expected files.snap
- echo "done."
-
- # Move files into their proper locations
-@@ -711,9 +750,8 @@ fetch_update() {
-
- # Attempt to apply metadata patches
- echo -n "Applying metadata patches... "
-- while read LINE; do
-- X=`echo ${LINE} | cut -f 1 -d '|'`
-- Y=`echo ${LINE} | cut -f 2 -d '|'`
-+ local oldifs="$IFS" IFS='|'
-+ while read X Y; do
- if [ ! -f "${X}-${Y}.gz" ]; then continue; fi
- gunzip -c < ${X}-${Y}.gz > diff
- gunzip -c < files/${X}.gz > OLD
-@@ -726,6 +764,7 @@ fetch_update() {
- fi
- rm -f diff OLD NEW ${X}-${Y}.gz ptmp
- done < patchlist 2>${QUIETREDIR}
-+ IFS="$oldifs"
- echo "done."
-
- # Update metadata without patches
-@@ -733,7 +772,7 @@ fetch_update() {
- cut -f 2 -d '|' /dev/stdin patchlist |
- while read Y; do
- if [ ! -f "files/${Y}.gz" ]; then
-- echo ${Y};
-+ echo ${Y}
- fi
- done > filelist
- echo -n "Fetching `wc -l < filelist | tr -d ' '` "
-@@ -743,17 +782,20 @@ fetch_update() {
- 2>${QUIETREDIR}
-
- while read Y; do
-+ echo -n "Verifying ${Y}... " 1>${QUIETREDIR}
- if [ `gunzip -c < ${Y}.gz | ${SHA256} -q` = ${Y} ]; then
- mv ${Y}.gz files/${Y}.gz
- else
- echo "metadata is corrupt."
- return 1
- fi
-+ echo "ok." 1>${QUIETREDIR}
- done < filelist
- echo "done."
-
- # Extract the index
-- gunzip -c files/`look INDEX tINDEX.new |
-+ echo -n "Extracting index... " 1>${QUIETREDIR}
-+ gunzip -c < files/`look INDEX tINDEX.new |
- cut -f 2 -d '|'`.gz > INDEX.new
- fetch_index_sanity || return 1
-
-@@ -773,23 +815,39 @@ fetch_update() {
- fi
-
- # Generate a list of wanted ports patches
-+ echo -n "Generating list of wanted patches..." 1>${QUIETREDIR}
- join -t '|' -o 1.2,2.2 INDEX INDEX.new |
- fetch_make_patchlist > patchlist
-+ echo " done." 1>${QUIETREDIR}
-
- # Attempt to fetch ports patches
-- echo -n "Fetching `wc -l < patchlist | tr -d ' '` "
-+ patchcnt=`wc -l < patchlist | tr -d ' '`
-+ echo -n "Fetching $patchcnt "
- echo ${NDEBUG} "patches.${DDSTATS}"
-+ echo " "
- tr '|' '-' < patchlist | lam -s "bp/" - |
- xargs ${XARGST} ${PHTTPGET} ${SERVERNAME} \
-- 2>${STATSREDIR} | fetch_progress
-+ 2>${STATSREDIR} | fetch_progress_percent $patchcnt
- echo "done."
-
- # Attempt to apply ports patches
-- echo -n "Applying patches... "
-- while read LINE; do
-- X=`echo ${LINE} | cut -f 1 -d '|'`
-- Y=`echo ${LINE} | cut -f 2 -d '|'`
-- if [ ! -f "${X}-${Y}" ]; then continue; fi
-+ PATCHCNT=`wc -l patchlist`
-+ echo "Applying patches... "
-+ local oldifs="$IFS" IFS='|'
-+ I=0
-+ while read X Y; do
-+ I=$(($I + 1))
-+ F="${X}-${Y}"
-+ if [ ! -f "${F}" ]; then
-+ XS=${X%[0-9a-f][0-9a-f][0-9a-f][0-9a-f]}
-+ XE=${X#[0-9a-f][0-9a-f][0-9a-f][0-9a-f]}
-+ YS=${Y%[0-9a-f][0-9a-f][0-9a-f][0-9a-f]}
-+ YE=${Y#[0-9a-f][0-9a-f][0-9a-f][0-9a-f]}
-+ F="${X%${XE}}...${X#${XS}}-${Y%${YE}}...${Y#${YS}}"
-+ printf " Skipping ${F} (${I} of ${PATCHCNT}).\r"
-+ continue
-+ fi
-+ echo " Processing ${F}..." 1>${QUIETREDIR}
- gunzip -c < files/${X}.gz > OLD
- ${BSPATCH} OLD NEW ${X}-${Y}
- if [ `${SHA256} -q NEW` = ${Y} ]; then
-@@ -798,6 +856,7 @@ fetch_update() {
- fi
- rm -f diff OLD NEW ${X}-${Y}
- done < patchlist 2>${QUIETREDIR}
-+ IFS="$oldifs"
- echo "done."
-
- # Update ports without patches
-@@ -805,7 +864,7 @@ fetch_update() {
- cut -f 2 -d '|' /dev/stdin patchlist |
- while read Y; do
- if [ ! -f "files/${Y}.gz" ]; then
-- echo ${Y};
-+ echo ${Y}
- fi
- done > filelist
- echo -n "Fetching `wc -l < filelist | tr -d ' '` "
-@@ -814,7 +873,10 @@ fetch_update() {
- xargs ${XARGST} ${PHTTPGET} ${SERVERNAME} \
- 2>${QUIETREDIR}
-
-+ I=0
- while read Y; do
-+ I=$(($I + 1))
-+ printf " Processing ${Y} (${I} of ${PATCHCNT}).\r" 1>${QUIETREDIR}
- if [ `gunzip -c < ${Y}.gz | ${SHA256} -q` = ${Y} ]; then
- mv ${Y}.gz files/${Y}.gz
- else
-@@ -825,8 +887,8 @@ fetch_update() {
- echo "done."
-
- # Remove files which are no longer needed
-- cut -f 2 -d '|' tINDEX INDEX | sort > oldfiles
-- cut -f 2 -d '|' tINDEX.new INDEX.new | sort | comm -13 - oldfiles |
-+ cut -f 2 -d '|' tINDEX INDEX | sort -u > oldfiles
-+ cut -f 2 -d '|' tINDEX.new INDEX.new | sort -u | comm -13 - oldfiles |
- lam -s "files/" - -s ".gz" | xargs rm -f
- rm patchlist filelist oldfiles
-
-@@ -854,18 +916,25 @@ fetch_run() {
-
- # Build a ports INDEX file
- extract_make_index() {
-- gunzip -c "${WORKDIR}/files/`look $1 ${WORKDIR}/tINDEX |
-+ if ! look $1 ${WORKDIR}/tINDEX > /dev/null; then
-+ echo -n "$1 not provided by portsnap server; "
-+ echo "$2 not being generated."
-+ else
-+ gunzip -c < "${WORKDIR}/files/`look $1 ${WORKDIR}/tINDEX |
- cut -f 2 -d '|'`.gz" |
- cat - ${LOCALDESC} |
- ${MKINDEX} /dev/stdin > ${PORTSDIR}/$2
-+ fi
- }
-
- # Create INDEX, INDEX-5, INDEX-6
- extract_indices() {
- echo -n "Building new INDEX files... "
-- extract_make_index DESCRIBE.4 INDEX || return 1
-- extract_make_index DESCRIBE.5 INDEX-5 || return 1
-- extract_make_index DESCRIBE.6 INDEX-6 || return 1
-+ for PAIR in ${INDEXPAIRS}; do
-+ INDEXFILE=`echo ${PAIR} | cut -f 1 -d '|'`
-+ DESCRIBEFILE=`echo ${PAIR} | cut -f 2 -d '|'`
-+ extract_make_index ${DESCRIBEFILE} ${INDEXFILE} || return 1
-+ done
- echo "done."
- }
-
-@@ -889,6 +958,7 @@ extract_metadata() {
-
- # Do the actual work involved in "extract"
- extract_run() {
-+ local oldifs="$IFS" IFS='|'
- mkdir -p ${PORTSDIR} || return 1
-
- if !
-@@ -898,25 +968,22 @@ extract_run() {
- grep -vE "${REFUSE}" ${WORKDIR}/INDEX
- else
- cat ${WORKDIR}/INDEX
-- fi | while read LINE; do
-- FILE=`echo ${LINE} | cut -f 1 -d '|'`
-- HASH=`echo ${LINE} | cut -f 2 -d '|'`
-+ fi | while read FILE HASH; do
- echo ${PORTSDIR}/${FILE}
-- if ! [ -r "${WORKDIR}/files/${HASH}.gz" ]; then
-+ if ! [ -s "${WORKDIR}/files/${HASH}.gz" ]; then
- echo "files/${HASH}.gz not found -- snapshot corrupt."
- return 1
- fi
- case ${FILE} in
- */)
-- DIR=`echo ${FILE} | sed -e 's|/$||'`
-- rm -rf ${PORTSDIR}/${DIR}
-+ rm -rf ${PORTSDIR}/${FILE%/}
- mkdir -p ${PORTSDIR}/${FILE}
-- tar -xzf ${WORKDIR}/files/${HASH}.gz \
-+ tar -xz --numeric-owner -f ${WORKDIR}/files/${HASH}.gz \
- -C ${PORTSDIR}/${FILE}
- ;;
- *)
- rm -f ${PORTSDIR}/${FILE}
-- tar -xzf ${WORKDIR}/files/${HASH}.gz \
-+ tar -xz --numeric-owner -f ${WORKDIR}/files/${HASH}.gz \
- -C ${PORTSDIR} ${FILE}
- ;;
- esac
-@@ -924,13 +991,49 @@ extract_run() {
- return 1
- fi
- if [ ! -z "${EXTRACTPATH}" ]; then
-- return 0;
-+ return 0
- fi
-
-+ IFS="$oldifs"
-+
- extract_metadata
- extract_indices
- }
-
-+update_run_extract() {
-+ local IFS='|'
-+
-+# Install new files
-+ echo "Extracting new files:"
-+ if !
-+ if ! [ -z "${REFUSE}" ]; then
-+ grep -vE "${REFUSE}" ${WORKDIR}/INDEX | sort
-+ else
-+ sort ${WORKDIR}/INDEX
-+ fi |
-+ comm -13 ${PORTSDIR}/.portsnap.INDEX - |
-+ while read FILE HASH; do
-+ echo ${PORTSDIR}/${FILE}
-+ if ! [ -s "${WORKDIR}/files/${HASH}.gz" ]; then
-+ echo "files/${HASH}.gz not found -- snapshot corrupt."
-+ return 1
-+ fi
-+ case ${FILE} in
-+ */)
-+ mkdir -p ${PORTSDIR}/${FILE}
-+ tar -xz --numeric-owner -f ${WORKDIR}/files/${HASH}.gz \
-+ -C ${PORTSDIR}/${FILE}
-+ ;;
-+ *)
-+ tar -xz --numeric-owner -f ${WORKDIR}/files/${HASH}.gz \
-+ -C ${PORTSDIR} ${FILE}
-+ ;;
-+ esac
-+ done; then
-+ return 1
-+ fi
-+}
-+
- # Do the actual work involved in "update"
- update_run() {
- if ! [ -z "${INDEXONLY}" ]; then
-@@ -947,7 +1050,7 @@ update_run() {
- # If we are REFUSEing to touch certain directories, don't remove files
- # from those directories (even if they are out of date)
- echo -n "Removing old files and directories... "
-- if ! [ -z "${REFUSE}" ]; then
-+ if ! [ -z "${REFUSE}" ]; then
- sort ${WORKDIR}/INDEX |
- comm -23 ${PORTSDIR}/.portsnap.INDEX - | cut -f 1 -d '|' |
- grep -vE "${REFUSE}" |
-@@ -961,38 +1064,7 @@ update_run() {
- fi
- echo "done."
-
--# Install new files
-- echo "Extracting new files:"
-- if !
-- if ! [ -z "${REFUSE}" ]; then
-- grep -vE "${REFUSE}" ${WORKDIR}/INDEX | sort
-- else
-- sort ${WORKDIR}/INDEX
-- fi |
-- comm -13 ${PORTSDIR}/.portsnap.INDEX - |
-- while read LINE; do
-- FILE=`echo ${LINE} | cut -f 1 -d '|'`
-- HASH=`echo ${LINE} | cut -f 2 -d '|'`
-- echo ${PORTSDIR}/${FILE}
-- if ! [ -r "${WORKDIR}/files/${HASH}.gz" ]; then
-- echo "files/${HASH}.gz not found -- snapshot corrupt."
-- return 1
-- fi
-- case ${FILE} in
-- */)
-- mkdir -p ${PORTSDIR}/${FILE}
-- tar -xzf ${WORKDIR}/files/${HASH}.gz \
-- -C ${PORTSDIR}/${FILE}
-- ;;
-- *)
-- tar -xzf ${WORKDIR}/files/${HASH}.gz \
-- -C ${PORTSDIR} ${FILE}
-- ;;
-- esac
-- done; then
-- return 1
-- fi
--
-+ update_run_extract || return 1
- extract_metadata
- extract_indices
- }
-@@ -1013,10 +1085,10 @@ get_params() {
- # Fetch command. Make sure that we're being called
- # interactively, then run fetch_check_params and fetch_run
- cmd_fetch() {
-- if [ ! -t 0 ]; then
-+ if [ "${INTERACTIVE}" != "YES" ]; then
- echo -n "`basename $0` fetch should not "
- echo "be run non-interactively."
-- echo "Run `basename $0` cron instead."
-+ echo "Run `basename $0` cron instead"
- exit 1
- fi
- fetch_check_params
-@@ -1055,10 +1127,29 @@ cmd_update() {
- update_run || exit 1
- }
-
-+# Auto command. Run 'fetch' or 'cron' depending on
-+# whether stdin is a terminal; then run 'update' or
-+# 'extract' depending on whether ${PORTSDIR} exists.
-+cmd_auto() {
-+ if [ "${INTERACTIVE}" = "YES" ]; then
-+ cmd_fetch
-+ else
-+ cmd_cron
-+ fi
-+ if [ -r ${PORTSDIR}/.portsnap.INDEX ]; then
-+ cmd_update
-+ else
-+ cmd_extract
-+ fi
-+}
-+
- #### Entry point
-
- # Make sure we find utilities from the base system
- export PATH=/sbin:/bin:/usr/sbin:/usr/bin:${PATH}
-+
-+# Set LC_ALL in order to avoid problems with character ranges like [A-Z].
-+export LC_ALL=C
-
- get_params $@
- for COMMAND in ${COMMANDS}; do
diff --git a/ports-mgmt/portsnap/files/patch-portsnap.8 b/ports-mgmt/portsnap/files/patch-portsnap.8
deleted file mode 100644
index 7bfff3f09e80..000000000000
--- a/ports-mgmt/portsnap/files/patch-portsnap.8
+++ /dev/null
@@ -1,183 +0,0 @@
---- portsnap.8.orig 2006-05-26 23:21:29 UTC
-+++ portsnap.8
-@@ -23,9 +23,9 @@
- .\" IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- .\" POSSIBILITY OF SUCH DAMAGE.
- .\"
--.\" $FreeBSD: src/usr.sbin/portsnap/portsnap/portsnap.8,v 1.9 2006/05/13 18:04:48 cperciva Exp $
-+.\" $FreeBSD$
- .\"
--.Dd August 13, 2005
-+.Dd July 1, 2018
- .Dt PORTSNAP 8
- .Os FreeBSD
- .Sh NAME
-@@ -50,20 +50,25 @@ of the
- .Fx
- ports tree, and extract and update an
- uncompressed ports tree.
-+.Pp
-+In a normal update operation,
-+.Nm
-+will routinely restore modified files to their unmodified state and
-+delete unrecognized local files.
- .Sh OPTIONS
- The following options are supported:
- .Bl -tag -width "-f conffile"
- .It Fl d Ar workdir
--Store working files (e.g. downloaded updates) in
-+Store working files (e.g.\& downloaded updates) in
- .Ar workdir .
- (default:
--.Pa $PREFIX/portsnap ,
-+.Pa /var/db/portsnap ,
- or as given in the configuration file.)
- .It Fl f Ar conffile
--Read the configuration from from
-+Read the configuration from
- .Ar conffile .
- (default:
--.Pa $PREFIX/etc/portsnap.conf )
-+.Pa %%PREFIX%%/etc/portsnap.conf )
- .It Fl I
- For the
- .Cm update
-@@ -72,7 +77,7 @@ command, update INDEX files, but not the rest of the p
- Expect a public key with given SHA256 hash.
- (default: read value from configuration file.)
- .It Fl l Ar descfile
--Merge the specified local describes file into the INDEX files being
-+Merge the specified local describes file into the INDEX files being
- built.
- The
- .Ar descfile
-@@ -88,25 +93,30 @@ operate on the directory
- or as given in the configuration file.)
- .It Fl s Ar server
- Fetch files from the specified server or server pool.
--(default: portsnap.FreeBSD.org , or as given in the
-+(default: portsnap.FreeBSD.org, or as given in the
- configuration file.)
- .It path
- For
- .Cm extract
- command only, operate only on parts of the ports tree starting with
- .Ar path .
--(e.g.
-+(e.g.\&
- .Nm
--.cm extract
-+.Cm extract
- .Ar sysutils/port
- would extract sysutils/portsman, sysutils/portsnap,
- sysutils/portupgrade, etc.)
-+.It Fl Fl interactive
-+override auto-detection of calling process.
-+Only use this when calling portsnap from an
-+.Sy interactive, non-terminal application.
-+(Cron jobs are particularly bad since they cause
-+load spikes on the Portsnap mirrors.)
- .El
- .Sh COMMANDS
- The
- .Cm command
- can be any one of the following:
--.Pp
- .Bl -tag -width "-f conffile"
- .It fetch
- Fetch a compressed snapshot of the ports tree, or update
-@@ -151,21 +161,52 @@ or
- commands.
- Again, note that in the parts of the ports tree which are being
- updated, any local changes or additions will be removed.
-+.It auto
-+Run
-+.Cm fetch
-+or
-+.Cm cron
-+depending on whether stdin is a terminal; then run
-+.Cm update
-+or
-+.Cm extract
-+depending on whether
-+.Ar portsdir
-+exists.
- .El
- .Sh TIPS
- .Bl -bullet
- .It
- If your clock is set to local time, adding the line
- .Pp
--.Dl 0 3 * * * root /usr/local/sbin/portsnap cron
-+.Dl 0 3 * * * root %%PREFIX%%/sbin/portsnap cron
- .Pp
--to /etc/crontab is a good way to make sure you always have
-+to
-+.Pa /etc/crontab
-+is a good way to make sure you always have
- an up-to-date snapshot of the ports tree available which
- can quickly be extracted into
- .Pa /usr/ports .
- If your clock is set to UTC, please pick a random time other
- than 3AM, to avoid overly imposing an uneven load on the
- server(s) hosting the snapshots.
-+.Pp
-+Note that running
-+.Nm
-+.Cm cron
-+or
-+.Nm
-+.Cm fetch
-+does not apply the changes that were received: they only download
-+them.
-+To apply the changes, you must follow these commands with
-+.Nm
-+.Cm update .
-+The
-+.Nm
-+.Cm update
-+command is normally run by hand at a time when you are sure that
-+no one is manually working in the ports tree.
- .It
- Running
- .Nm
-@@ -183,7 +224,7 @@ However, running
- .Fl I
- .Cm update
- is probably safe, and can be used together with
--.Xr portversion 1
-+.Xr pkg-version 8
- to identify installed software which is out of date.
- .It
- If you wish to use
-@@ -206,22 +247,22 @@ of files are not needed by any particular client.
- .Sh PRIVACY NOTICE
- As an unavoidable part of its operation, a machine running
- .Nm
--will make its public IP address and the list of files it fetches
-+will make its public IP address and the list of files it fetches
- available to the server from which it fetches updates.
--Using these it may be possible to recognize a machine over an extended
--period of time, determine when it is updated, and identify which
--portions of the FreeBSD ports tree, if any, are being ignored using
-+Using these it may be possible to recognize a machine over an extended
-+period of time, determine when it is updated, and identify which
-+portions of the FreeBSD ports tree, if any, are being ignored using
- "REFUSE" directives in
- .Pa portsnap.conf .
- .Pp
--Statistical data generated from information collected in this manner
-+Statistical data generated from information collected in this manner
- may be published, but only in aggregate and after anonymizing the
*** 163 LINES SKIPPED ***