Bug 54883 - Add ports infrastructure for info files
Summary: Add ports infrastructure for info files
Status: Closed FIXED
Alias: None
Product: Ports & Packages
Classification: Unclassified
Component: Individual Port(s) (show other bugs)
Version: Latest
Hardware: Any Any
: Normal Affects Only Me
Assignee: Port Management Team
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2003-07-26 16:00 UTC by pfeifer
Modified: 2003-08-04 02:18 UTC (History)
0 users

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description pfeifer 2003-07-26 16:00:15 UTC
	The ports collection has had support for man pages for a long
	time, but lacks direct support for info files (as generated by
	GNU makeinfo).

	This means that for every file, pkg-plist needs to include one
	@exec and one @unexec entry per file, and one or more entries
	for the individual pieces of that file.

	Furthermore, and this is a serious problem since the recent 
	updates of texinfo/makeinfo, one texinfo file may be split
	into different numbers of .info and .info-* files.

Fix: The patch below adds support for a new entry INFO in ports
	Makefiles that accepts a list of info-files and handles pkg-plist
	fully automatically.

	We can only determine the actual number/names of the
	.info-{1,2,3,...} files _after_ installation, so we cannot
	add the new functionality to the generate-plist target.

	(Given that David O'Brien's similar machinery in the lang/gcc3x
	ports has been tested in the field for a long time, and my tests
	with the cfengine2 port which has info documentations consisting
	both of single and multiple files also worked fine, I hope this
	is acceptable.)



${TMPPLIST}:
 	@cd ${.CURDIR} && ${MAKE} ${__softMAKEFLAGS} generate-plist
+
+add-plist-info:
+.for i in ${INFO}
+	@${ECHO_CMD} "@unexec install-info --delete %D/info/$i.info %D/info/dir" \
+		>> ${TMPPLIST}
+	@${LS} ${PREFIX}/info/$i.info* | ${SED} -e s:${PREFIX}/::g >> ${TMPPLIST}
+	@${ECHO_CMD} "@exec install-info %D/info/$i.info %D/info/dir" \
+		>> ${TMPPLIST}
+.endfor

 # Compress (or uncompress) and symlink manpages.
 .if !target(compress-man)--edaZReAUHct0aoif64ZhqrZlfUIHRq3ZyQHmiwSwB7kHsV2t
Content-Type: text/plain; name="file.diff"
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment; filename="file.diff"

Index: bsd.port.mk
===================================================================
RCS file: /sw/FreeBSD/CVSUP/ports/Mk/bsd.port.mk,v
retrieving revision 1.457
diff -u -3 -p -r1.457 bsd.port.mk
--- bsd.port.mk	22 Jul 2003 03:51:15 -0000	1.457
+++ bsd.port.mk	23 Jul 2003 23:10:07 -0000
@@ -526,6 +526,11 @@ FreeBSD_MAINTAINER=	portmgr@FreeBSD.org
 #				  is set and NO_INSTALL_MANPAGES is not set, and
 #				  "no" otherwise.
 #
+# Set the following to specify all .info files your port installs.
+#
+# INFO			- A list of .info files (omitting the trailing ".info");
+#				  only one entry per document!
+#
 # Default targets and their behaviors:
 #
 # fetch			- Retrieves ${DISTFILES} (and ${PATCHFILES} if defined)
@@ -3212,7 +3217,7 @@ _INSTALL_SEQ=	install-message check-cate
 			    run-depends lib-depends pre-install pre-install-script \
 				generate-plist check-already-installed
 _INSTALL_SUSEQ= check-umask install-mtree pre-su-install \
-				pre-su-install-script do-install post-install \
+				pre-su-install-script do-install add-plist-info post-install \
 				post-install-script compress-man run-ldconfig fake-pkg \
 				security-check
 _PACKAGE_DEP=	install
@@ -4251,6 +4256,15 @@ generate-plist:
Comment 1 Gerald Pfeifer freebsd_committer freebsd_triage 2003-07-26 16:08:38 UTC
Responsible Changed
From-To: freebsd-ports-bugs->portmgr

This is portmgr stuff (and Kris will take care of it to help address the 
recent makeinfo "breakage").
Comment 2 Kris Kennaway freebsd_committer freebsd_triage 2003-07-28 02:00:56 UTC
State Changed
From-To: open->analyzed

A modified version of this patch (folded the add-plist-info 
target into generate-plist) is being tested on the current 
package run.
Comment 3 Kris Kennaway 2003-08-04 02:07:03 UTC
On Mon, Jul 28, 2003 at 03:36:12PM +0200, Gerald Pfeifer wrote:
> On Sun, 27 Jul 2003, Kris Kennaway wrote:
> > State-Changed-Why:
> > A modified version of this patch (folded the add-plist-info
> > target into generate-plist) is being tested on the current
> > package run.
> 
> Did you also make other changes (such as running generate-plist after
> do-install) along the way?
> 
> If not, I'm afraid the patch won't work with your change for the reasons
> I had noted in the PR (where "won't work" means that it will pass the
> current round of testing, as this feature is never used there, but will
> fail when used).
> 
> Or am I missing something?

OK, I hadn't noticed the ls there.  I'm not sure that's the best way
to obtain the information about which info files were installed, but
it will do for now.  I restored your original patch and tested it a
bit more with the plwm port as a test-case.  This port seems to
install the info files in post-install, which causes the info file to
fail to register.  This might be possible to work around.

Kris
Comment 4 Kris Kennaway freebsd_committer freebsd_triage 2003-08-04 02:17:56 UTC
State Changed
From-To: analyzed->closed

Patch committed, thanks!