Date: Mon, 04 May 2026 16:35:38 +0000 Message-ID: <69f8cada.2584e.72ff7bd2@gitrepo.freebsd.org>
index | next in thread | raw e-mail
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 ***home | help
Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?69f8cada.2584e.72ff7bd2>
