Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 19 Dec 2017 16:23:48 +0000 (UTC)
From:      Mathieu Arnold <mat@FreeBSD.org>
To:        ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org
Subject:   svn commit: r456737 - in head: Mk/Uses mail/py-pymailq math/py-numpy www/py-ddgr www/py-ddgr/files
Message-ID:  <201712191623.vBJGNmlb098065@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: mat
Date: Tue Dec 19 16:23:48 2017
New Revision: 456737
URL: https://svnweb.freebsd.org/changeset/ports/456737

Log:
  Enhance USES=uniquefiles to be more generic.
  
  This allows to have more complex renaming schemes.  Until now, it could
  only add a prefix or a suffix, but this was not working at all for man
  pages, because it would give man/man1/pyfoo.1.gz-2.7 or
  man/man1/pyfoo-1-2.7.gz.  With this change, a man page will be correctly
  renamed to man/man1/pyfoo-2.7.1.gz.
  
  Unfix ports that were already handling man pages.
  
  PR:		220214
  Submitted by:	Fukang Chen (previous patch)
  Exp-run by:	antoine
  Sponsored by:	Absolight
  Differential Revision:	https://reviews.freebsd.org/D13444

Modified:
  head/Mk/Uses/python.mk
  head/Mk/Uses/uniquefiles.mk
  head/mail/py-pymailq/Makefile   (contents, props changed)
  head/math/py-numpy/Makefile   (contents, props changed)
  head/math/py-numpy/pkg-plist   (contents, props changed)
  head/www/py-ddgr/Makefile   (contents, props changed)
  head/www/py-ddgr/files/patch-Makefile   (contents, props changed)

Modified: head/Mk/Uses/python.mk
==============================================================================
--- head/Mk/Uses/python.mk	Tue Dec 19 16:23:37 2017	(r456736)
+++ head/Mk/Uses/python.mk	Tue Dec 19 16:23:48 2017	(r456737)
@@ -580,15 +580,19 @@ UNIQUE_DEFAULT_LINKS=	no
 .endif
 UNIQUE_PREFIX=		${PYTHON_PKGNAMEPREFIX}
 UNIQUE_SUFFIX=		-${PYTHON_VER}
+UNIQUE_SUFFIX_TYPES+=	SUFFIX_MAN
+UNIQUE_SUFFIX_MAN_WITH_EXT=	.[1-9ln]
+UNIQUE_SUFFIX_MAN_EXTRA_EXT=	.gz
 
 .if defined(_PYTHON_FEATURE_AUTOPLIST)
-UNIQUE_FIND_SUFFIX_FILES=	\
-	${SED} -e 's|^${PREFIX}/||' ${_PYTHONPKGLIST} ${TMPPLIST} | \
-	${EGREP} -e '^bin/.*$$|^sbin/.*$$|^libexec/.*$$'
+_UNIQUE_FIND_SUFFIX_FILES=	${SED} -e 's|^${PREFIX}/||' ${_PYTHONPKGLIST} ${TMPPLIST}
 .else
-UNIQUE_FIND_SUFFIX_FILES=	\
-	${EGREP} -he '^bin/.*$$|^sbin/.*$$|^libexec/.*$$' ${TMPPLIST} 2>/dev/null
+_UNIQUE_FIND_SUFFIX_FILES=	${SED} -e 's|^${PREFIX}/||' ${TMPPLIST} 2>/dev/null
 .endif
+UNIQUE_FIND_SUFFIX_FILES+=	${_UNIQUE_FIND_SUFFIX_FILES} | \
+				${EGREP} -he '^bin/.*$$|^sbin/.*$$|^libexec/.*$$'
+UNIQUE_FIND_SUFFIX_MAN_FILES+=	${_UNIQUE_FIND_SUFFIX_FILES} | \
+				${EGREP} -he '^man/man[1-9ln]/.*$$'
 .endif # defined(_PYTHON_FEATURE_CONCURRENT)
 
 _CURRENTPORT:=	${PKGNAMEPREFIX}${PORTNAME}${PKGNAMESUFFIX}

Modified: head/Mk/Uses/uniquefiles.mk
==============================================================================
--- head/Mk/Uses/uniquefiles.mk	Tue Dec 19 16:23:37 2017	(r456736)
+++ head/Mk/Uses/uniquefiles.mk	Tue Dec 19 16:23:48 2017	(r456737)
@@ -56,6 +56,19 @@
 #				  list of files to be iterated over.
 #				  Default: empty
 #
+# UNIQUE_SUFFIX_TYPES		- A list of TAGS to defined more complex unique
+#				  suffix handling.  It can, for example, handle
+#				  man pages by doing:
+#
+#		UNIQUE_SUFFIX_TYPES+=	SUFFIX_MAN
+#		UNIQUE_SUFFIX_MAN_WITH_EXT=	.[1-9ln]
+#		UNIQUE_SUFFIX_MAN_EXTRA_EXT=	.gz
+#		UNIQUE_FIND_SUFFIX_MAN_FILES=	${EGREP} -he '^man/man[1-9ln]/.*$$' ${TMPPLIST} 2>/dev/null
+#
+#				  The make(1) target that renames the files
+#				  runs before the man pages are compressed,
+#				  this is what the EXTRA_EXT bit is for.
+#
 # NOTE:	multiple logical instances are not supported by pkg and the original
 # pkg_tools at the moment.
 #
@@ -69,6 +82,8 @@ UNIQUE_SUFFIX?=		${PKGNAMESUFFIX}
 UNIQUE_PREFIX_FILES?=	# empty
 UNIQUE_SUFFIX_FILES?=	# empty
 
+UNIQUE_SUFFIX_TYPES+=	SUFFIX
+
 .if ${uniquefiles_ARGS:Mdirs}
 DOCSDIR=	${PREFIX}/share/doc/${UNIQUE_PREFIX}${PORTNAME}
 EXAMPLESDIR=	${PREFIX}/share/examples/${UNIQUE_PREFIX}${PORTNAME}
@@ -94,7 +109,7 @@ _DO_CONDITIONAL_SYMLINK=	\
 	if [ ! -e ${STAGEDIR}${PREFIX}/$${fname} -a ! -L ${STAGEDIR}${PREFIX}/$${fname} ]; then \
 		${ECHO_MSG} "Link: @$${fname} --> $${newf}"; \
 		${RLN} ${STAGEDIR}${PREFIX}/$${newf} ${STAGEDIR}${PREFIX}/$${fname}; \
-		${ECHO_CMD} LINKED:$${newf}:$${fname} >> ${_UNIQUEPKGLIST}; \
+		${ECHO_CMD} LINKED:$${newf}%%EXTRA_EXT%%:$${fname}%%EXTRA_EXT%% >> ${_UNIQUEPKGLIST}; \
 	fi
 .else
 # We are not symlinking the renamed binary.
@@ -113,7 +128,7 @@ move-uniquefiles:
 		${ECHO_MSG} "Move: $${fname} --> $${newf}" ; \
 		${MV} ${STAGEDIR}${PREFIX}/$${fname} ${STAGEDIR}${PREFIX}/$${newf}; \
 		${ECHO_CMD} MOVED:$${fname}:$${newf} >> ${_UNIQUEPKGLIST}; \
-		${_DO_CONDITIONAL_SYMLINK}; \
+		${_DO_CONDITIONAL_SYMLINK:S/%%EXTRA_EXT%%//g}; \
 	else \
 		${ECHO_MSG} "Makefile error: UNIQUE (prefix): $${fname} not found"; \
 		${FALSE}; \
@@ -126,7 +141,7 @@ move-uniquefiles:
 			${ECHO_MSG} "Move: $${fname} --> $${newf}" ; \
 			${MV} ${STAGEDIR}${PREFIX}/$${fname} ${STAGEDIR}${PREFIX}/$${newf}; \
 			${ECHO_CMD} MOVED:$${fname}:$${newf} >> ${_UNIQUEPKGLIST}; \
-			${_DO_CONDITIONAL_SYMLINK}; \
+			${_DO_CONDITIONAL_SYMLINK:S/%%EXTRA_EXT%%//g}; \
 		else \
 			${ECHO_MSG} "Makefile error: UNIQUE (prefix): $${fname} not found"; \
 			${FALSE}; \
@@ -134,36 +149,51 @@ move-uniquefiles:
 	done;
 .endif
 
-.if ${UNIQUE_SUFFIX_FILES} || ${UNIQUE_FIND_SUFFIX_FILES}
+.for sufxtype in ${UNIQUE_SUFFIX_TYPES}
+.  if (defined(UNIQUE_${sufxtype}_FILES) && ${UNIQUE_${sufxtype}_FILES}) || \
+     (defined(UNIQUE_FIND_${sufxtype}_FILES) && ${UNIQUE_FIND_${sufxtype}_FILES})
+.    if defined(UNIQUE_${sufxtype}_WITH_EXT) && ${UNIQUE_${sufxtype}_WITH_EXT}
+	@${ECHO_MSG} "===> Creating unique files: Move ${sufxtype:S|SUFFIX_||} files needing SUFFIX";
+.    else
 	@${ECHO_MSG} "===> Creating unique files: Move files needing SUFFIX";
-.endif
-.for entry in ${UNIQUE_SUFFIX_FILES}
+.    endif
+.  endif
+.  for entry in ${UNIQUE_${sufxtype}_FILES}
 	@fname=${entry}; \
+	if [ -n "${UNIQUE_${sufxtype}_EXTRA_EXT}" ]; then \
+		fname=$${fname%${UNIQUE_${sufxtype}_EXTRA_EXT}}; \
+	fi; \
 	if [ -e ${STAGEDIR}${PREFIX}/$${fname} -o -L ${STAGEDIR}${PREFIX}/$${fname} ]; then \
-		newf=$${fname%/*}/$${fname##*/}${UNIQUE_SUFFIX}; \
+		ofname=$${fname##*/}; \
+		newf=$${fname%/*}/$${ofname%${UNIQUE_${sufxtype}_WITH_EXT}}${UNIQUE_SUFFIX}$${ofname#$${ofname%${UNIQUE_${sufxtype}_WITH_EXT}}}; \
 		${ECHO_MSG} "Move: $${fname} --> $${newf}"; \
 		${MV} ${STAGEDIR}${PREFIX}/$${fname} ${STAGEDIR}${PREFIX}/$${newf}; \
-		${ECHO_CMD} MOVED:$${fname}:$${newf} >> ${_UNIQUEPKGLIST}; \
-		${_DO_CONDITIONAL_SYMLINK}; \
+		${ECHO_CMD} MOVED:$${fname}${UNIQUE_${sufxtype}_EXTRA_EXT}:$${newf}${UNIQUE_${sufxtype}_EXTRA_EXT} >> ${_UNIQUEPKGLIST}; \
+		${_DO_CONDITIONAL_SYMLINK:S/%%EXTRA_EXT%%/${UNIQUE_${sufxtype}_EXTRA_EXT}/g}; \
 	else \
 		${ECHO_MSG} "Makefile error: UNIQUE (suffix): $${fname} not found"; \
 		${FALSE}; \
 	fi;
-.endfor
-.if ${UNIQUE_FIND_SUFFIX_FILES}
-	@for fname in `${UNIQUE_FIND_SUFFIX_FILES}`; do \
+.  endfor
+.  if defined(UNIQUE_FIND_${sufxtype}_FILES) && ${UNIQUE_FIND_${sufxtype}_FILES}
+	@for fname in `${UNIQUE_FIND_${sufxtype}_FILES}`; do \
+		if [ -n "${UNIQUE_${sufxtype}_EXTRA_EXT}" ]; then \
+			fname=$${fname%${UNIQUE_${sufxtype}_EXTRA_EXT}}; \
+		fi; \
 		if [ -e ${STAGEDIR}${PREFIX}/$${fname} -o -L ${STAGEDIR}${PREFIX}/$${fname} ]; then \
-			newf=$${fname%/*}/$${fname##*/}${UNIQUE_SUFFIX}; \
+			ofname=$${fname##*/}; \
+			newf=$${fname%/*}/$${ofname%${UNIQUE_${sufxtype}_WITH_EXT}}${UNIQUE_SUFFIX}$${ofname#$${ofname%${UNIQUE_${sufxtype}_WITH_EXT}}}; \
 			${ECHO_MSG} "Move: $${fname} --> $${newf}"; \
 			${MV} ${STAGEDIR}${PREFIX}/$${fname} ${STAGEDIR}${PREFIX}/$${newf}; \
-			${ECHO_CMD} MOVED:$${fname}:$${newf} >> ${_UNIQUEPKGLIST}; \
-			${_DO_CONDITIONAL_SYMLINK}; \
+			${ECHO_CMD} MOVED:$${fname}${UNIQUE_${sufxtype}_EXTRA_EXT}:$${newf}${UNIQUE_${sufxtype}_EXTRA_EXT} >> ${_UNIQUEPKGLIST}; \
+			${_DO_CONDITIONAL_SYMLINK:S/%%EXTRA_EXT%%/${UNIQUE_${sufxtype}_EXTRA_EXT}/g}; \
 		else \
 			${ECHO_MSG} "Makefile error: UNIQUE (suffix): $${fname} not found"; \
 			${FALSE}; \
 		fi; \
 	done;
-.endif
+.  endif
+.endfor
 
 # Using .if exists(${_UNIQUEPKGPLIST} below instead of the sh test
 # does not work in poudriere. It works fine on the CLI, though...

Modified: head/mail/py-pymailq/Makefile
==============================================================================
--- head/mail/py-pymailq/Makefile	Tue Dec 19 16:23:37 2017	(r456736)
+++ head/mail/py-pymailq/Makefile	Tue Dec 19 16:23:48 2017	(r456737)
@@ -19,22 +19,14 @@ NO_ARCH=	yes
 USES=		python:2.7+
 USE_PYTHON=	autoplist distutils concurrent
 
-.include <bsd.port.pre.mk>
+PLIST_FILES=	man/man1/pqshell.1.gz
 
-PLIST_FILES+=	man/man1/pqshell-${PYTHON_VER}.1.gz
-.if ${PYTHON_VERSION} == ${PYTHON_DEFAULT_VERSION}
-PLIST_FILES+=	man/man1/pqshell.1.gz
-.endif
-
 post-patch:
 	@${REINPLACE_CMD} -e \
 		's|%%DOCSDIR%%|${DOCSDIR}|g; s|%%EXAMPLESDIR%%|${EXAMPLESDIR}|g' \
 		${WRKSRC}/setup.py
 
 post-install:
-	${INSTALL_MAN} ${WRKSRC}/man/pqshell.1 ${STAGEDIR}${MANPREFIX}/man/man1/pqshell-${PYTHON_VER}.1
-.if ${PYTHON_VERSION} == ${PYTHON_DEFAULT_VERSION}
-	${LN} -sf pqshell-${PYTHON_VER}.1 ${STAGEDIR}${MANPREFIX}/man/man1/pqshell.1
-.endif
+	${INSTALL_MAN} ${WRKSRC}/man/pqshell.1 ${STAGEDIR}${MANPREFIX}/man/man1/pqshell.1
 
-.include <bsd.port.post.mk>
+.include <bsd.port.mk>

Modified: head/math/py-numpy/Makefile
==============================================================================
--- head/math/py-numpy/Makefile	Tue Dec 19 16:23:37 2017	(r456736)
+++ head/math/py-numpy/Makefile	Tue Dec 19 16:23:48 2017	(r456737)
@@ -46,10 +46,6 @@ TESTS_RUN_DEPENDS=	${PYTHON_PKGNAMEPREFIX}nose>=0:deve
 
 .include <bsd.port.pre.mk>
 
-.if ${PYTHON_VERSION} == ${PYTHON_DEFAULT_VERSION}
-PLIST_FILES+=	man/man1/f2py.1.gz
-.endif
-
 post-patch:
 	@${REINPLACE_CMD} -e "s|%%FC%%|${FC}|" ${WRKSRC}/numpy/distutils/fcompiler/gnu.py
 	@${CP} ${FILESDIR}/site.cfg ${WRKSRC}/site.cfg
@@ -86,10 +82,7 @@ pre-configure-SUITESPARSE-off:
 	@${REINPLACE_CMD} -e "s|:%%LOCALBASE%%/include/suitesparse||" ${WRKSRC}/site.cfg
 
 post-install:
-	${INSTALL_MAN} ${WRKSRC}/doc/f2py/f2py.1 ${STAGEDIR}${MANPREFIX}/man/man1/f2py-${PYTHON_VER}.1
-.if ${PYTHON_VERSION} == ${PYTHON_DEFAULT_VERSION}
-	${LN} -sf f2py-${PYTHON_VER}.1 ${STAGEDIR}${MANPREFIX}/man/man1/f2py.1
-.endif
+	${INSTALL_MAN} ${WRKSRC}/doc/f2py/f2py.1 ${STAGEDIR}${MANPREFIX}/man/man1/f2py.1
 	${FIND} ${STAGEDIR}${PYTHON_SITELIBDIR} -name '*.so' | ${XARGS} ${STRIP_CMD}
 
 post-install-DOCS-on:

Modified: head/math/py-numpy/pkg-plist
==============================================================================
--- head/math/py-numpy/pkg-plist	Tue Dec 19 16:23:37 2017	(r456736)
+++ head/math/py-numpy/pkg-plist	Tue Dec 19 16:23:48 2017	(r456737)
@@ -771,4 +771,4 @@ bin/f2py
 %%PYTHON_SITELIBDIR%%/numpy/version.py
 %%PYTHON_SITELIBDIR%%/numpy/version.pyc
 %%PYTHON_SITELIBDIR%%/numpy/version.pyo
-man/man1/f2py-%%PYTHON_VER%%.1.gz
+man/man1/f2py.1.gz

Modified: head/www/py-ddgr/Makefile
==============================================================================
--- head/www/py-ddgr/Makefile	Tue Dec 19 16:23:37 2017	(r456736)
+++ head/www/py-ddgr/Makefile	Tue Dec 19 16:23:48 2017	(r456737)
@@ -28,7 +28,7 @@ MAKE_ARGS=	DOCDIR=${STAGEDIR}${DOCSDIR} FREEBSD_PYTHON
 OPTIONS_DEFINE=	DOCS
 
 PLIST_FILES=	bin/ddgr \
-		share/man/man1/ddgr-${PYTHON_VER}.1.gz
+		man/man1/ddgr.1.gz
 PORTDOCS=	README.md
 
 .include <bsd.port.mk>

Modified: head/www/py-ddgr/files/patch-Makefile
==============================================================================
--- head/www/py-ddgr/files/patch-Makefile	Tue Dec 19 16:23:37 2017	(r456736)
+++ head/www/py-ddgr/files/patch-Makefile	Tue Dec 19 16:23:48 2017	(r456737)
@@ -1,11 +1,21 @@
 --- Makefile.orig	2017-11-29 12:33:58 UTC
 +++ Makefile
-@@ -13,7 +13,7 @@ install:
+@@ -1,6 +1,6 @@
+ PREFIX ?= /usr/local
+ BINDIR = $(DESTDIR)$(PREFIX)/bin
+-MANDIR = $(DESTDIR)$(PREFIX)/share/man/man1
++MANDIR = $(DESTDIR)$(PREFIX)/man/man1
+ DOCDIR = $(DESTDIR)$(PREFIX)/share/doc/ddgr
+ 
+ .PHONY: all install uninstall
+@@ -11,9 +11,8 @@ install:
+ 	install -m755 -d $(BINDIR)
+ 	install -m755 -d $(MANDIR)
  	install -m755 -d $(DOCDIR)
- 	gzip -c ddgr.1 > ddgr.1.gz
+-	gzip -c ddgr.1 > ddgr.1.gz
  	install -m755 ddgr $(BINDIR)
 -	install -m644 ddgr.1.gz $(MANDIR)
-+	install -m644 ddgr.1.gz $(MANDIR)/ddgr-${FREEBSD_PYTHON_VER}.1.gz
++	install -m644 ddgr.1 $(MANDIR)
  	install -m644 README.md $(DOCDIR)
  	rm -f ddgr.1.gz
  



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201712191623.vBJGNmlb098065>