On Tue, 3 Aug 2021 13:41:42 +0200
Markus Wipp <mw@wipp.bayern> wrote:

> Sure. I attached you the diff.
> 
> 
> > On 3. Aug 2021, at 13:35, Michael Gmelin <free...@grem.de> wrote:
> > 
> > 
> >   
> >> On 3. Aug 2021, at 13:29, Markus Wipp <mw@wipp.bayern> wrote:
> >> 
> >> Hi all, 
> >> 
> >> I’m the maintainer of the security/step-cli port and I’m currently
> >> facing some issues, I seem to be unable to fix.
> >> 
> >> I currently try to create the patch for the latest version 0.16.1
> >> 
> >> I did the following:
> >> 
> >> 1) I removed all files in /usr/ports/distfiles
> >> 2) I did a make clean makesum stage (which ran fine)
> >> 3) I did a make clean package (which always runs into the
> >> following error: => Attempting to fetch
> >> https://codeload.github.com/etcd-io/etcd/tar.gz/v3.5.0?dummy=/etcd-io-etcd-v3.5.0_GH0.tar.gz
> >> fetch: 4020010: No such file or directory fetch: 4020010: No such
> >> file or directory fetch: 4020010: No such file or directory
> >> fetch: 4020010: No such file or directory
> >> fetch: 4020010: No such file or directory
> >> fetch: 4020010: No such file or directory
> >> fetch: 4020010: No such file or directory
> >> fetch: 4020010: No such file or directory
> >> fetch: 4020010: No such file or directory
> >> fetch:
> >> https://codeload.github.com/etcd-io/etcd/tar.gz/v3.5.0?dummy=/etcd-io-etcd-v3.5.0_GH0.tar.gz:
> >> size unknown fetch:
> >> https://codeload.github.com/etcd-io/etcd/tar.gz/v3.5.0?dummy=/etcd-io-etcd-v3.5.0_GH0.tar.gz:
> >> size of remote file is not known etcd-io-etcd-v3.5.0_GH0.tar.gz
> >>                     3925 kB   10 MBps    00s => Attempting to
> >> fetch
> >> http://distcache.FreeBSD.org/ports-distfiles/etcd-io-etcd-v3.5.0_GH0.tar.gz
> >> fetch: 4020010: No such file or directory fetch: 4020010: No such
> >> file or directory fetch: 4020010: No such file or directory fetch:
> >> 4020010: No such file or directory fetch: 4020010: No such file or
> >> directory fetch: 4020010: No such file or directory fetch:
> >> 4020010: No such file or directory fetch: 4020010: No such file or
> >> directory fetch: 4020010: No such file or directory fetch:
> >> http://distcache.FreeBSD.org/ports-distfiles/etcd-io-etcd-v3.5.0_GH0.tar.gz:
> >> Not Found => Couldn't fetch it - please try to retrieve this =>
> >> port manually into /usr/ports/distfiles/ and try again. *** Error
> >> code 1
> >> 
> >> Is there anything I did wrong? Anything I can do to fix this issue?
> >>   
> > 
> > Unless someone else knows what’s wrong anyway: Could you share your
> > port skeleton? (at least the files that changed or the output of
> > `git diff’)
> > 
> >   
> >> Thanks in advance
> >> Markus  
> 

distinfo contains the entry for etcd-io-etcd-v3.5.0_GH0.tar.gz multiple
times (due to it being listed multiple times in GH_TUPLE).

It seems to build okay when getting rid of the duplicates in distinfo.
I don't know if what you're doing is officially supported, but if it
is, we should probably adapt tooling. Also, portlint didn't
complain and `make makesum' re-creates the duplicates.

@portmgr Please find attached an example of a patch that dedups distinfo
on `make makesum', it might more sense to fix this somewhere else in
the framework (so that e.g., checksums aren't validated multiple times
etc.), up to you.

Cheers,
Michael

-- 
Michael Gmelin
diff --git a/Mk/Scripts/makesum.sh b/Mk/Scripts/makesum.sh
index 1d09b7ffb..69bb6012e 100644
--- a/Mk/Scripts/makesum.sh
+++ b/Mk/Scripts/makesum.sh
@@ -31,7 +31,8 @@ if [ -f "${dp_DISTINFO_FILE}" ] && grep -q "^TIMESTAMP " ${dp_DISTINFO_FILE}; th
 	grep -v "^TIMESTAMP " ${dp_DISTINFO_FILE} > ${DISTINFO_OLD}
 fi
 
-for file in ${dp_CKSUMFILES}; do
+for file in $(${dp_ECHO_CMD} ${dp_CKSUMFILES} |\
+	      ${dp_TR} " " "\n" | ${dp_SORT} -u); do
 	for alg in ${dp_CHECKSUM_ALGORITHMS}; do
 		eval "alg_executable=\$dp_$alg"
 
diff --git a/Mk/bsd.port.mk b/Mk/bsd.port.mk
index 5bdaf10ce..68f1322af 100644
--- a/Mk/bsd.port.mk
+++ b/Mk/bsd.port.mk
@@ -3968,8 +3968,11 @@ makesum: check-sanity
 			dp_CKSUMFILES='${_CKSUMFILES}' \
 			dp_DISTDIR='${DISTDIR}' \
 			dp_DISTINFO_FILE='${DISTINFO_FILE}' \
+			dp_ECHO_CMD=${ECHO_CMD} \
 			dp_ECHO_MSG='${ECHO_MSG}' \
 			dp_SCRIPTSDIR='${SCRIPTSDIR}' \
+			dp_SORT="${SORT}" \
+			dp_TR="${TR}" \
 			${SH} ${SCRIPTSDIR}/makesum.sh ${DISTFILES:C/.*/'&'/}
 .endif
 

Reply via email to