Subject: Re: pkg/16695: www/dillo-0.6.5 fetches (does not!) a distribution that unpacks as 0.6.2!
To: None <wiz@netbsd.org>
From: Greg A. Woods <woods@weird.com>
List: netbsd-bugs
Date: 05/08/2002 13:40:35
[ On , May 8, 2002 at 10:45:56 (-0000), wiz@netbsd.org wrote: ]
> Subject: Re: pkg/16695
>
> Synopsis: www/dillo-0.6.5 fetches a distribution that unpacks as 0.6.2!
> 
> State-Changed-From-To: open->feedback
> State-Changed-By: wiz
> State-Changed-When: Wed May 8 03:45:02 PDT 2002
> State-Changed-Why: 
> Irreproducible.
> My only guess is that you had a work directory from dillo-0.6.2 lying around.
> Could you please check that?

Pkgsrc itself checks for that....  Hmmm....  But not at the right time.  :-(

and indeed a "make clean ; make extract" shows the correct new version
having been extracted....  irreproducible indeed!  <wipes-egg-off-face>  :-)

I had seen this message before and assumed it was a generic check run
pretty much before anything happened:

	*)	${ECHO_MSG} "*** Warning: Package version $$extractname in ${WRKDIR}"; \
		${ECHO_MSG} "*** Current version ${PKGNAME} in pkgsrc directory"; \

but of course on deeper examination I see it only happens at
do-su-install time.

How about something like this change (elide the check-for-base-clashes
line -- that's for another discussion! :-):

***************
*** 2401,2425 ****
  build-cookie:
  	${_PKG_SILENT}${_PKG_DEBUG} ${TOUCH} ${TOUCH_FLAGS} ${BUILD_COOKIE}
  
! .ORDER: pre-fetch do-fetch post-fetch
! .ORDER: extract-message install-depends pre-extract do-extract post-extract extract-cookie
! .ORDER: patch-message pre-patch do-patch post-patch patch-cookie
! .ORDER: configure-message pre-configure do-configure post-configure configure-cookie
! .ORDER: build-message pre-build do-build post-build build-cookie
  
  # Please note that the order of the following targets is important, and
  # should not be modified (.ORDER is not recognised by make(1) in a serial
  # make i.e. without -j n)
! real-fetch: pre-fetch do-fetch post-fetch
! real-extract: extract-message install-depends pre-extract do-extract post-extract extract-cookie
! real-patch: patch-message pre-patch do-patch post-patch patch-cookie
! real-configure: configure-message pre-configure do-configure post-configure configure-cookie
! real-build: build-message pre-build do-build post-build build-cookie
! real-install: do-su-install
  real-package: do-su-package
  real-replace: do-su-replace
  real-undo-replace: do-su-undo-replace
  
  _SU_TARGET=								\
  	if [ `${ID} -u` = 0 ]; then					\
  		${MAKE} ${MAKEFLAGS} $$realtarget;			\
--- 2503,2545 ----
  build-cookie:
  	${_PKG_SILENT}${_PKG_DEBUG} ${TOUCH} ${TOUCH_FLAGS} ${BUILD_COOKIE}
  
! .ORDER: pre-fetch do-fetch post-fetch check-extract
! .ORDER: check-extract extract-message install-depends pre-extract do-extract post-extract extract-cookie
! .ORDER: check-extract patch-message pre-patch do-patch post-patch patch-cookie
! .ORDER: check-extract configure-message pre-configure do-configure post-configure configure-cookie
! .ORDER: check-extract build-message pre-build do-build post-build build-cookie
! .ORDER: check-extract do-su-install
  
  # Please note that the order of the following targets is important, and
  # should not be modified (.ORDER is not recognised by make(1) in a serial
  # make i.e. without -j n)
! real-fetch: pre-fetch do-fetch post-fetch check-extract
! real-extract: check-extract extract-message install-depends pre-extract do-extract post-extract extract-cookie
! real-patch: check-extract patch-message pre-patch do-patch post-patch patch-cookie
! real-configure: check-extract configure-message pre-configure do-configure post-configure configure-cookie
! real-build: check-extract build-message pre-build do-build post-build build-cookie
! real-install: check-extract do-su-install
! 	${_PKG_SILENT}${_PKG_DEBUG}${MAKE} ${MAKEFLAGS} check-for-base-clashes
  real-package: do-su-package
  real-replace: do-su-replace
  real-undo-replace: do-su-undo-replace
  
+ check-extract:
+ 	${_PKG_SILENT}${_PKG_DEBUG}					\
+ 	extractname=`${CAT} ${EXTRACT_COOKIE}`;				\
+ 	case "$$extractname" in						\
+ 	"")	${ECHO_MSG} "*** Warning: ${WRKDIR} may contain an older version of ${PKGBASE}"; \
+ 		${FALSE};						\
+ 		;;							\
+ 	"${PKGNAME}")							\
+ 		: ${DO_NADA} all is well;				\
+ 		;;							\
+ 	*)	${ECHO_MSG} "*** Warning: Package version $$extractname in ${WRKDIR}"; \
+ 		${ECHO_MSG} "*** Current version ${PKGNAME} in pkgsrc directory"; \
+ 		${FALSE};						\
+ 		;;							\
+ 	esac
+ 
  _SU_TARGET=								\
  	if [ `${ID} -u` = 0 ]; then					\
  		${MAKE} ${MAKEFLAGS} $$realtarget;			\
***************
*** 2444,2459 ****
  	fi
  
  do-su-install: 
- 	${_PKG_SILENT}${_PKG_DEBUG}					\
- 	extractname=`${CAT} ${EXTRACT_COOKIE}`;				\
- 	case "$$extractname" in						\
- 	"")	${ECHO_MSG} "*** Warning: ${WRKDIR} may contain an older version of ${PKGBASE}" ;; \
- 	"${PKGNAME}")	;;						\
- 	*)	${ECHO_MSG} "*** Warning: Package version $$extractname in ${WRKDIR}"; \
- 		${ECHO_MSG} "*** Current version ${PKGNAME} in pkgsrc directory"; \
- 		${ECHO_MSG} "*** Cleaning and rebuilding the newer version of the package..."; \
- 		${MAKE} clean && ${MAKE} build ;;			\
- 	esac
  	@${ECHO_MSG} "${_PKGSRC_IN}> Installing for ${PKGNAME}"
  	${_PKG_SILENT}${_PKG_DEBUG}					\
  	realtarget="real-su-install";					\
--- 2564,2569 ----

-- 
								Greg A. Woods

+1 416 218-0098;  <gwoods@acm.org>;  <g.a.woods@ieee.org>;  <woods@robohack.ca>
Planix, Inc. <woods@planix.com>; VE3TCP; Secrets of the Weird <woods@weird.com>