diff --git a/print/Makefile b/print/Makefile index 6c7eb2cbd963..8ea4dbd46fc2 100644 --- a/print/Makefile +++ b/print/Makefile @@ -201,6 +201,7 @@ SUBDIR += p5-PostScript-Simple SUBDIR += p5-Text-PDF SUBDIR += p5-XML-ApacheFOP + SUBDIR += pkg-texinfo SUBDIR += panda SUBDIR += papersize-default-a4 SUBDIR += papersize-default-letter diff --git a/print/pkg-texinfo/Makefile b/print/pkg-texinfo/Makefile new file mode 100644 index 000000000000..0600b2af290c --- /dev/null +++ b/print/pkg-texinfo/Makefile @@ -0,0 +1,34 @@ +# $FreeBSD$ + +PORTNAME= texinfo +PORTVERSION= 5.2 +CATEGORIES= ports-mgmt +MASTER_SITES= GNU +PKGNAMEPREFIX= pkg- + +MAINTAINER= bapt@FreeBSD.org +COMMENT= Minimal version of texinfo + +LICENSE= GPLv3 +LICENSE_FILE= ${WRKSRC}/COPYING + +USES= tar:xz + +PLIST_FILES= bin/ginstall-info \ + bin/ginfo + +GNU_CONFIGURE= yes +CONFIGURE_ARGS= --disable-nls +CONFIGURE_ENV= PERL=${TRUE} ac_cv_path_PERL=${TRUE} + +BUILD_WRKSRC= ${WRKSRC}/gnulib/lib + +post-build: + cd ${WRKSRC}/install-info; ${SETENV} ${MAKE_ENV} ${MAKE_CMD} ${MAKE_FLAGS} ${MAKEFILE} ${_MAKE_JOBS} ${MAKE_ARGS} + cd ${WRKSRC}/info; ${SETENV} ${MAKE_ENV} ${MAKE_CMD} ${MAKE_FLAGS} ${MAKEFILE} ${_MAKE_JOBS} ${MAKE_ARGS} + +do-install: + ${INSTALL_PROGRAM} ${WRKSRC}/install-info/ginstall-info ${STAGEDIR}${PREFIX}/bin/ginstall-info + ${INSTALL_PROGRAM} ${WRKSRC}/info/ginfo ${STAGEDIR}${PREFIX}/bin/ginfo + +.include diff --git a/print/pkg-texinfo/distinfo b/print/pkg-texinfo/distinfo new file mode 100644 index 000000000000..49716d4d2c3e --- /dev/null +++ b/print/pkg-texinfo/distinfo @@ -0,0 +1,2 @@ +SHA256 (texinfo-5.2.tar.xz) = 5471ef683a64588a7cfef46ef2bdd3fbcbca89d847e10832612293f105e44eda +SIZE (texinfo-5.2.tar.xz) = 3812944 diff --git a/print/pkg-texinfo/files/patch-install-info_install-info.c b/print/pkg-texinfo/files/patch-install-info_install-info.c new file mode 100644 index 000000000000..c9252d8193ad --- /dev/null +++ b/print/pkg-texinfo/files/patch-install-info_install-info.c @@ -0,0 +1,89 @@ +--- install-info/install-info.c.orig 2013-01-07 00:18:56.000000000 +0100 ++++ install-info/install-info.c 2013-02-19 09:15:24.000000000 +0100 +@@ -26,6 +26,7 @@ + #define TAB_WIDTH 8 + + static char *progname = "install-info"; ++static char *default_section = NULL; + + struct spec_entry; + struct spec_section; +@@ -146,6 +147,8 @@ struct option longopts[] = + { "calign", required_argument, NULL, 'C'}, + { "debug", no_argument, NULL, 'g' }, + { "delete", no_argument, NULL, 'r' }, ++ { "defentry", required_argument, NULL, 'E' }, ++ { "defsection", required_argument, NULL, 'S' }, + { "dir-file", required_argument, NULL, 'd' }, + { "entry", required_argument, NULL, 'e' }, + { "name", required_argument, NULL, 't' }, +@@ -543,6 +546,10 @@ Options:\n\ + --debug report what is being done.\n\ + --delete delete existing entries for INFO-FILE from DIR-FILE;\n\ + don't insert any new entries.\n\ ++ --defentry=TEXT like --entry, but only use TEXT if an entry\n\ ++ is not present in INFO-FILE.\n\ ++ --defsection=TEXT like --section, but only use TEXT if a section\n\ ++ is not present in INFO-FILE.\n\ + --description=TEXT the description of the entry is TEXT; used with\n\ + the --name option to become synonymous with the\n\ + --entry option.\n\ +@@ -1857,6 +1864,8 @@ main (int argc, char *argv[]) + struct spec_entry *entries_to_add = NULL; + struct spec_entry *entries_to_add_from_file = NULL; + int n_entries_to_add = 0; ++ struct spec_entry *default_entries_to_add = NULL; ++ int n_default_entries_to_add = 0; + + /* Record the old text of the dir file, as plain characters, + as lines, and as nodes. */ +@@ -2041,6 +2050,7 @@ main (int argc, char *argv[]) + } + break; + ++ case 'E': + case 'e': + { + struct spec_entry *next +@@ -2055,12 +2065,18 @@ main (int argc, char *argv[]) + next->text_len = olen; + next->entry_sections = NULL; + next->entry_sections_tail = NULL; +- next->next = entries_to_add; + next->missing_name = 0; + next->missing_basename = 0; + next->missing_description = 0; +- entries_to_add = next; +- n_entries_to_add++; ++ if (opt == 'e') { ++ next->next = entries_to_add; ++ entries_to_add = next; ++ n_entries_to_add++; ++ } else { ++ next->next = default_entries_to_add; ++ default_entries_to_add = next; ++ n_default_entries_to_add++; ++ } + } + break; + +@@ -2127,6 +2143,10 @@ main (int argc, char *argv[]) + } + break; + ++ case 'S': ++ default_section = optarg; ++ break; ++ + case 's': + { + struct spec_section *next +@@ -2315,7 +2335,7 @@ There is NO WARRANTY, to the extent perm + { + input_sections = (struct spec_section *) + xmalloc (sizeof (struct spec_section)); +- input_sections->name = "Miscellaneous"; ++ input_sections->name = default_section ? default_section : "Miscellaneous"; + input_sections->next = NULL; + input_sections->missing = 1; + } diff --git a/print/pkg-texinfo/pkg-descr b/print/pkg-texinfo/pkg-descr new file mode 100644 index 000000000000..aaa6e657f89f --- /dev/null +++ b/print/pkg-texinfo/pkg-descr @@ -0,0 +1,4 @@ +Stripped down version of texinfo (only install-info part) to handle installation +of GNU info files + +WWW: http://www.gnu.org/software/texinfo/