Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 8 Oct 2015 14:12:53 +0000 (UTC)
From:      Dmitry Marakasov <amdmi3@FreeBSD.org>
To:        ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org
Subject:   svn commit: r398827 - in head: Keywords Mk Mk/Scripts Mk/Uses devel/ncurses sysutils/jfbterm x11/rxvt-unicode x11/rxvt-unicode/files
Message-ID:  <201510081412.t98ECrS5074142@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: amdmi3
Date: Thu Oct  8 14:12:53 2015
New Revision: 398827
URL: https://svnweb.freebsd.org/changeset/ports/398827

Log:
  Add a way to cleanly handle terminfo.db file used by devel/ncurses
  
  This database contains compiled terminfo entries and is merged from
  a large part which comes with ncurses themselves and compiled
  .terminfo files installed by other ports (currently only rxvt-unicode
  and jfbterm)
  
  - Now the database is always kept up to date, regardless of port
    installation order (both ncurses installed before .terminfo files
    and the other way around work as expected)
  - All affected ports now support clean deinstallation and do not
    produce stage-qa errors
  - Affected ports are simplified, as they now only need to define
    USES=terminfo
  - rxvt-unicode no longer pulls in ncurses: the dependency is not
    really needed for anything beside updating it's own database
  - The patch contains Q/A test to check whether a port needs, or
    needs not USES=terminfo
  
  Approved by:	portmgr (mat, bapt)
  Differential Revision:	D3747

Added:
  head/Keywords/terminfo.ucl   (contents, props changed)
  head/Mk/Uses/terminfo.mk   (contents, props changed)
  head/x11/rxvt-unicode/files/patch-doc_Makefile.in   (contents, props changed)
Modified:
  head/Mk/Scripts/qa.sh
  head/Mk/bsd.port.mk
  head/devel/ncurses/Makefile
  head/devel/ncurses/pkg-plist
  head/sysutils/jfbterm/Makefile
  head/sysutils/jfbterm/pkg-plist
  head/x11/rxvt-unicode/Makefile
  head/x11/rxvt-unicode/pkg-plist

Added: head/Keywords/terminfo.ucl
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/Keywords/terminfo.ucl	Thu Oct  8 14:12:53 2015	(r398827)
@@ -0,0 +1,22 @@
+# $FreeBSD$
+#
+
+actions: []
+post-install: <<EOD
+  terminfodir=%D/share/misc
+  terminfodb=${terminfodir}/terminfo.db
+  if [ -e ${terminfodb}.default ] && which -s tic; then
+    cp ${terminfodb}.default ${terminfodb}
+    find -s ${terminfodir} -name "*.terminfo" -exec tic {} \;
+  fi
+EOD
+post-deinstall: <<EOD
+  terminfodir=%D/share/misc
+  terminfodb=${terminfodir}/terminfo.db
+  if [ -e ${terminfodb}.default ] && which -s tic; then
+    cp ${terminfodb}.default ${terminfodb}
+    find -s ${terminfodir} -name "*.terminfo" -exec tic {} \;
+  else
+    rm -f ${terminfodb}
+  fi
+EOD

Modified: head/Mk/Scripts/qa.sh
==============================================================================
--- head/Mk/Scripts/qa.sh	Thu Oct  8 14:07:20 2015	(r398826)
+++ head/Mk/Scripts/qa.sh	Thu Oct  8 14:12:53 2015	(r398827)
@@ -293,7 +293,28 @@ prefixvar() {
 	fi
 }
 
-checks="shebang symlinks paths stripped desktopfileutils sharedmimeinfo suidfiles libtool libperl prefixvar baselibs"
+terminfo() {
+	local f found
+
+	for f in ${STAGEDIR}${PREFIX}/share/misc/*.terminfo; do
+		[ "${f}" = "${STAGEDIR}${PREFIX}/share/misc/*.terminfo" ] && break #no matches
+		found=1
+		break
+	done
+	for f in ${STAGEDIR}${PREFIX}/share/misc/terminfo.db*; do
+		[ "${f}" = "${STAGEDIR}${PREFIX}/share/misc/terminfo.db*" ] && break #no matches
+		found=1
+		break
+	done
+	if [ -z "${USESTERMINFO}" -a -n "${found}" ]; then
+		warn "you need USES=terminfo"
+	elif [ -n "${USESTERMINFO}" -a -z "${found}" ]; then
+		warn "you may not need USES=terminfo"
+	fi
+	return 0
+}
+
+checks="shebang symlinks paths stripped desktopfileutils sharedmimeinfo suidfiles libtool libperl prefixvar baselibs terminfo"
 
 ret=0
 cd ${STAGEDIR}

Added: head/Mk/Uses/terminfo.mk
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/Mk/Uses/terminfo.mk	Thu Oct  8 14:12:53 2015	(r398827)
@@ -0,0 +1,18 @@
+# $FreeBSD$
+#
+# handle terminfo.db and *.terminfo files used by ncurses
+#
+# Feature:	terminfo
+# Usage:	USES=terminfo
+# Valid ARGS:	does not require args
+
+.if !defined(_INCLUDE_USES_TERMINFO_MK)
+_INCLUDE_USES_TERMINFO_MK=	yes
+
+.if !empty(terminfo_ARGS)
+IGNORE=	USES=terminfo does not require args
+.endif
+
+PLIST_FILES+=	@terminfo
+
+.endif

Modified: head/Mk/bsd.port.mk
==============================================================================
--- head/Mk/bsd.port.mk	Thu Oct  8 14:07:20 2015	(r398826)
+++ head/Mk/bsd.port.mk	Thu Oct  8 14:12:53 2015	(r398827)
@@ -1539,6 +1539,9 @@ QA_ENV+=		USESLIBTOOL=yes
 .if !empty(USES:Mshared-mime-info)
 QA_ENV+=		USESSHAREDMIMEINFO=yes
 .endif
+.if !empty(USES:Mterminfo)
+QA_ENV+=		USESTERMINFO=yes
+.endif
 
 CO_ENV+=		STAGEDIR=${STAGEDIR} \
 				PREFIX=${PREFIX} \

Modified: head/devel/ncurses/Makefile
==============================================================================
--- head/devel/ncurses/Makefile	Thu Oct  8 14:07:20 2015	(r398826)
+++ head/devel/ncurses/Makefile	Thu Oct  8 14:12:53 2015	(r398827)
@@ -3,7 +3,7 @@
 
 PORTNAME=	ncurses
 DISTVERSION=	${RELEASE}-20150214
-PORTREVISION=	1
+PORTREVISION=	2
 CATEGORIES=	devel
 MASTER_SITES=	ftp://invisible-island.net/${PORTNAME}/current/
 DIST_SUBDIR=	${PORTNAME}
@@ -41,7 +41,7 @@ TRACE_DESC=	Add trace() function to all 
 CONFIGURE_ENV=	gnat_exists="no"
 
 USE_LDCONFIG=	yes
-USES=		shebangfix tar:tgz
+USES=		shebangfix tar:tgz terminfo
 SHEBANG_FILES=	test/tracemunch
 
 WIDEC_WRKSRC=	${WRKSRC}/build.widec
@@ -124,16 +124,20 @@ post-install:
 . endfor
 .endfor
 
-	@${MKDIR} ${STAGEDIR}${DOCSDIR}
-. for f in ${DOCS}
-	${INSTALL_DATA} ${WRKSRC}/${f} ${STAGEDIR}${DOCSDIR}/
-. endfor
-.if ${OPSYS} != FreeBSD || ${OSVERSION} > 900000
 	${RM} -f ${STAGEDIR}${PREFIX}/lib/libncurses.so \
 		${STAGEDIR}${PREFIX}/lib/libncursesw.so
 	${ECHO} "INPUT(libncurses.so.${RELEASE:R} AS_NEEDED(-ltinfo))" > ${STAGEDIR}${PREFIX}/lib/libncurses.so
 	${ECHO} "INPUT(libncursesw.so.${RELEASE:R} AS_NEEDED(-ltinfow))" > ${STAGEDIR}${PREFIX}/lib/libncursesw.so
-.endif
+
 	${STRIP_CMD} ${STAGEDIR}${PREFIX}/lib/*.so.5.9
 
+	${MV} ${STAGEDIR}${PREFIX}/share/misc/terminfo.db \
+		${STAGEDIR}${PREFIX}/share/misc/terminfo.db.default
+
+post-install-DOCS-on:
+	@${MKDIR} ${STAGEDIR}${DOCSDIR}
+.for f in ${DOCS}
+	${INSTALL_DATA} ${WRKSRC}/${f} ${STAGEDIR}${DOCSDIR}/
+.endfor
+
 .include <bsd.port.mk>

Modified: head/devel/ncurses/pkg-plist
==============================================================================
--- head/devel/ncurses/pkg-plist	Thu Oct  8 14:07:20 2015	(r398826)
+++ head/devel/ncurses/pkg-plist	Thu Oct  8 14:12:53 2015	(r398827)
@@ -977,5 +977,4 @@ share/misc/tabset/std
 share/misc/tabset/stdcrt
 share/misc/tabset/vt100
 share/misc/tabset/vt300
-share/misc/terminfo.db
-@exec find %D/share/misc -name "*.terminfo" -exec %D/bin/tic {} \;
+share/misc/terminfo.db.default

Modified: head/sysutils/jfbterm/Makefile
==============================================================================
--- head/sysutils/jfbterm/Makefile	Thu Oct  8 14:07:20 2015	(r398826)
+++ head/sysutils/jfbterm/Makefile	Thu Oct  8 14:12:53 2015	(r398827)
@@ -4,7 +4,7 @@
 PORTNAME=	jfbterm
 PORTVERSION=	0.6.1
 DISTVERSIONPREFIX=FreeBSD-
-PORTREVISION=	7
+PORTREVISION=	8
 CATEGORIES=	sysutils
 MASTER_SITES=	http://www.ac.auone-net.jp/~baba/jfbterm/
 
@@ -17,14 +17,13 @@ LICENSE_FILE=	${WRKSRC}/COPYING
 ONLY_FOR_ARCHS=	i386 amd64
 ONLY_FOR_ARCHS_REASON=	requires VESA support in kernel
 
+USES=		terminfo
 MAKEFILE=	${FILESDIR}/BSDmakefile
 MAKE_ENV+=	VERSION=${PORTVERSION} GUNZIP=${GUNZIP_CMD:N-*}
 PLIST_SUB+=	TERMCAP_ADD_RECORD="@exec ${TERMCAP_ADD_RECORD:S,^${PREFIX},%D,}" \
-		TERMCAP_DEL_RECORD="@unexec ${TERMCAP_DEL_RECORD}" \
-		TIC="@exec ${TIC} ${TERMINFO_FILE:S,^${PREFIX},%D,} 2>/dev/null || ${TRUE}"
+		TERMCAP_DEL_RECORD="@unexec ${TERMCAP_DEL_RECORD}"
 
 CAP_MKDB?=	/usr/bin/cap_mkdb
-TIC?=		${LOCALBASE}/bin/tic
 TERMINFO_FILE?=	${PREFIX}/share/misc/jfbterm.terminfo
 
 OPTIONS_DEFINE=		ICONV PNG SETUID TERMCAP UNIFONT
@@ -42,8 +41,6 @@ PLIST_SUB+=	SETUID=""
 PLIST_SUB+=	SETUID="@comment "
 .endif
 
-ONLY_FOR_ARCHS+=amd64
-
 .if !defined(INSTALL_AS_USER)
 TERMCAP_FILE?=	/usr/share/misc/termcap
 .else
@@ -101,13 +98,13 @@ post-extract:	.SILENT
 		${WRKSRC}/jfbterm.conf.sample
 
 post-patch:
-	${REINPLACE_CMD} -e 's|/usr/local|${PREFIX}|g' \
+	@${REINPLACE_CMD} -e 's|/usr/local|${PREFIX}|g' \
 		-e 's|\(share\)/jfbterm/\(fonts\)|\1/misc/\2|' \
 		${WRKSRC}/*.[0-9] ${WRKSRC}/*.conf.sample
-.if !${PORT_OPTIONS:MTERMCAP}
-	${REINPLACE_CMD} '/^term/s/:.*/: xterm/' \
+
+post-patch-TERMCAP-off:
+	@${REINPLACE_CMD} '/^term/s/:.*/: xterm/' \
 		${WRKSRC}/jfbterm.conf.sample
-.endif
 
 do-install:
 	${INSTALL_PROGRAM} ${WRKSRC}/jfbterm ${STAGEDIR}${PREFIX}/bin

Modified: head/sysutils/jfbterm/pkg-plist
==============================================================================
--- head/sysutils/jfbterm/pkg-plist	Thu Oct  8 14:07:20 2015	(r398826)
+++ head/sysutils/jfbterm/pkg-plist	Thu Oct  8 14:12:53 2015	(r398827)
@@ -9,4 +9,3 @@ share/misc/jfbterm.termcap
 share/misc/jfbterm.terminfo
 %%TERMCAP_ADD_RECORD%%
 %%TERMCAP_DEL_RECORD%%
-%%TIC%%

Modified: head/x11/rxvt-unicode/Makefile
==============================================================================
--- head/x11/rxvt-unicode/Makefile	Thu Oct  8 14:07:20 2015	(r398826)
+++ head/x11/rxvt-unicode/Makefile	Thu Oct  8 14:12:53 2015	(r398827)
@@ -3,6 +3,7 @@
 
 PORTNAME=	rxvt-unicode
 PORTVERSION=	9.21
+PORTREVISION=	1
 CATEGORIES=	x11
 MASTER_SITES=	http://dist.schmorp.de/rxvt-unicode/%SUBDIR%/
 MASTER_SITE_SUBDIR=	. Attic
@@ -12,12 +13,10 @@ COMMENT=	Clone of the terminal emulator 
 
 LICENSE=	GPLv2
 
-BUILD_DEPENDS=	tic:${PORTSDIR}/devel/ncurses	\
-		${LOCALBASE}/libdata/pkgconfig/fontconfig.pc:${PORTSDIR}/x11-fonts/fontconfig
-RUN_DEPENDS=	${LOCALBASE}/bin/fc-cache:${PORTSDIR}/x11-fonts/fontconfig	\
-		${LOCALBASE}/share/misc/terminfo.db:${PORTSDIR}/devel/ncurses
+BUILD_DEPENDS=	${LOCALBASE}/libdata/pkgconfig/fontconfig.pc:${PORTSDIR}/x11-fonts/fontconfig
+RUN_DEPENDS=	${LOCALBASE}/bin/fc-cache:${PORTSDIR}/x11-fonts/fontconfig
 
-USES=			cpe pkgconfig shebangfix tar:bzip2
+USES=			cpe pkgconfig shebangfix tar:bzip2 terminfo
 USE_XORG=		xpm xft xrender
 GNU_CONFIGURE=		yes
 CPPFLAGS+=		-I${LOCALBASE}/include

Added: head/x11/rxvt-unicode/files/patch-doc_Makefile.in
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/x11/rxvt-unicode/files/patch-doc_Makefile.in	Thu Oct  8 14:12:53 2015	(r398827)
@@ -0,0 +1,10 @@
+--- doc/Makefile.in.orig	2014-12-31 14:09:25 UTC
++++ doc/Makefile.in
+@@ -98,7 +98,6 @@ install: all
+ 	$(INSTALL_DATA) rxvtc.1.man $(DESTDIR)$(man1dir)/$(RXVTNAME)c.$(man1ext)
+ 	$(INSTALL_DATA) rxvtd.1.man $(DESTDIR)$(man1dir)/$(RXVTNAME)d.$(man1ext)
+ 	$(INSTALL_DATA) rxvt.7.man  $(DESTDIR)$(man7dir)/$(RXVTNAME).$(man7ext)
+-	@TIC@ $(srcdir)/etc/rxvt-unicode.terminfo
+ 
+ distdepend: alldoc
+ 

Modified: head/x11/rxvt-unicode/pkg-plist
==============================================================================
--- head/x11/rxvt-unicode/pkg-plist	Thu Oct  8 14:07:20 2015	(r398826)
+++ head/x11/rxvt-unicode/pkg-plist	Thu Oct  8 14:12:53 2015	(r398827)
@@ -58,5 +58,3 @@ man/man1/urxvtd.1.gz
 %%PERL%%man/man3/urxvtperl.3.gz
 man/man7/urxvt.7.gz
 share/misc/rxvt-unicode.terminfo
-@comment No unexec tic available
-@postexec tic %D/share/misc/rxvt-unicode.terminfo



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