{"thread":{"id":"9425","subject":"[install info (using perl) 1/2] Add support for an info version of the user manual","startedAt":"2007-08-06T10:22:57Z","lastAt":"2007-08-07T10:49:22Z","messageCount":3,"participants":["David Kastrup"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"50113","messageId":"f61195c2c46468565b52f86e285cfda8c4ae9a3e.1186483533.git.dak@gnu.org","threadId":"9425","inReplyTo":null,"subject":"[install info (using perl) 1/2] Add support for an info version of the user manual","fromName":"David Kastrup","fromEmail":"dak@gnu.org","sentAt":"2007-08-06T10:22:57Z","receivedAt":"2007-08-06T10:22:57Z","isPatch":false,"sender":{"key":"dak@gnu.org","avatar":"https://avatars.githubusercontent.com/u/52141349?v=4"},"body":"These patches use docbook2x in order to create an info version of the\ngit user manual.  No existing Makefile targets (including \"all\") are\ntouched, so you need to explicitly say\n\nmake info\nsudo make install-info\n\nto get git.info created and installed.  If the info target directory\ndoes not already contain a \"dir\" file, no directory entry is created.\nThis facilitates $(DESTDIR)-based installations.  The same could be\nachieved with\n\nsudo make INSTALL_INFO=: install-info\n\nexplicitly.\n\nperl is used for patching up sub-par file and directory information in\nthe Texinfo file.  It would be cleaner to place the respective info\nstraight into user-manual.txt or the conversion configurations, but I\nfind myself unable to find out how to do this with Asciidoc/Texinfo.\n\nSigned-off-by: David Kastrup <dak@gnu.org>\n---\n COMMIT_EDITMSG         |   57 ++++++++++++++++++++++++++++++++++++++++++++++++\n Documentation/Makefile |   27 ++++++++++++++++++++++\n Makefile               |    6 +++++\n 3 files changed, 90 insertions(+), 0 deletions(-)\n create mode 100644 COMMIT_EDITMSG\n\ndiff --git a/COMMIT_EDITMSG b/COMMIT_EDITMSG\nnew file mode 100644\nindex 0000000..1718ad5\n--- /dev/null\n+++ b/COMMIT_EDITMSG\n@@ -0,0 +1,57 @@\n+Add support for an info version of the user manual\n+\n+These patches use docbook2x in order to create an info version of the\n+git user manual.  No existing Makefile targets (including \"all\") are\n+touched, so you need to explicitly say\n+\n+make info\n+sudo make install-info\n+\n+to get git.info created and installed.  If the info target directory\n+does not already contain a \"dir\" file, no directory entry is created.\n+This facilitates $(DESTDIR)-based installations.  The same could be\n+achieved with\n+\n+sudo make INSTALL_INFO=: install-info\n+\n+explicitly.\n+\n+perl is used for patching up sub-par file and directory information in\n+the Texinfo file.  It would be cleaner to place the respective info\n+straight into user-manual.txt or the conversion configurations, but I\n+find myself unable to find out how to do this with Asciidoc/Texinfo.\n+\n+# Please enter the commit message for your changes.\n+# (Comment lines starting with '#' will not be included)\n+# On branch master\n+# Changes to be committed:\n+#   (use \"git reset HEAD^1 <file>...\" to unstage)\n+#\n+#\tmodified:   Documentation/Makefile\n+#\tmodified:   Makefile\n+#\n+# Untracked files:\n+#   (use \"git add <file>...\" to include in what will be committed)\n+#\n+#\t0001-Add-support-for-an-info-version-of-the-user-manual.patch\n+#\t0001-Documentation-git-commit.txt-correct-bad-list-forma.patch\n+#\t0001-Introduce-ediff-option-for-mergetool.patch\n+#\t0002-Documentation-Makefile-remove-cmd-list.made-before.patch\n+#\tDocumentation/git.info\n+#\tDocumentation/git.texi\n+#\tTAGS\n+#\tcontrib/emacs/0010-vc-git-previous-version-vc-git-next-version.patch\n+#\tcontrib/emacs/0011-contrib-emacs-vc-git.el-a-few-more-tentative-change.patch\n+#\tcontrib/emacs/0012-contrib-emacs-vc-git.el-further-improvements.patch\n+#\tcontrib/emacs/ChangeLog\n+#\tcontrib/emacs/ChangeLog~\n+#\tcontrib/emacs/Makefile.orig\n+#\tcontrib/emacs/vc-git.el.BACKUP.17026\n+#\tcontrib/emacs/vc-git.el.BASE.17026\n+#\tcontrib/emacs/vc-git.el.LOCAL.17026\n+#\tcontrib/emacs/vc-git.el.REMOTE.17026\n+#\tcontrib/emacs/vc-git.el.rej\n+#\tcontrib/emacs/vc-git.el.rej~\n+#\tcontrib/emacs/vc-git.el~\n+#\tsvn-commit.tmp~\n+#\ttexput.log\ndiff --git a/Documentation/Makefile b/Documentation/Makefile\nindex 91a437d..71b7056 100644\n--- a/Documentation/Makefile\n+++ b/Documentation/Makefile\n@@ -44,6 +44,11 @@ INSTALL?=install\n RM ?= rm -f\n DOC_REF = origin/man\n \n+infodir?=$(prefix)/share/info\n+MAKEINFO=makeinfo\n+INSTALL_INFO=install-info\n+DOCBOOK2X_TEXI=docbook2x-texi\n+\n -include ../config.mak.autogen\n -include ../config.mak\n \n@@ -67,6 +72,8 @@ man1: $(DOC_MAN1)\n man5: $(DOC_MAN5)\n man7: $(DOC_MAN7)\n \n+info: git.info\n+\n install: man\n \t$(INSTALL) -d -m755 $(DESTDIR)$(man1dir)\n \t$(INSTALL) -d -m755 $(DESTDIR)$(man5dir)\n@@ -75,6 +82,14 @@ install: man\n \t$(INSTALL) -m644 $(DOC_MAN5) $(DESTDIR)$(man5dir)\n \t$(INSTALL) -m644 $(DOC_MAN7) $(DESTDIR)$(man7dir)\n \n+install-info: info\n+\t$(INSTALL) -d -m755 $(DESTDIR)$(infodir)\n+\t$(INSTALL) -m644 git.info $(DESTDIR)$(infodir)\n+\tif test -r $(DESTDIR)$(infodir)/dir; then \\\n+\t  $(INSTALL_INFO) --info-dir=$(DESTDIR)$(infodir) git.info ;\\\n+\telse \\\n+\t  echo \"No directory found in $(DESTDIR)$(infodir)\" >&2 ; \\\n+\tfi\n \n ../GIT-VERSION-FILE: .FORCE-GIT-VERSION-FILE\n \t$(MAKE) -C ../ GIT-VERSION-FILE\n@@ -139,6 +154,18 @@ XSLTOPTS = --xinclude --stringparam html.stylesheet docbook-xsl.css\n user-manual.html: user-manual.xml\n \txsltproc $(XSLTOPTS) -o $@ $(XSLT) $<\n \n+git.info: user-manual.xml\n+\t$(RM) $@ $*.texi\n+\t$(DOCBOOK2X_TEXI) user-manual.xml --to-stdout | \\\n+\tperl -ne 'if (/^\\@setfilename/) {$$_=\"\\@setfilename git.info\\\n+\"} elsif (/^\\@direntry/) {print \"\\@dircategory Development\\\n+\\@direntry\\\n+* Git: (git).           A fast distributed revision control system\\\n+\\@end direntry\\\n+\"} print unless (/^\\@direntry/ .. /^\\@end direntry/)' > $*.texi\n+\t$(MAKEINFO) --no-split $*.texi\n+\t$(RM) $*.texi\n+\n howto-index.txt: howto-index.sh $(wildcard howto/*.txt)\n \t$(RM) $@+ $@\n \tsh ./howto-index.sh $(wildcard howto/*.txt) >$@+\ndiff --git a/Makefile b/Makefile\nindex 2f3b9b2..b685c7e 100644\n--- a/Makefile\n+++ b/Makefile\n@@ -913,6 +913,9 @@ perl/Makefile: perl/Git.pm perl/Makefile.PL GIT-CFLAGS\n doc:\n \t$(MAKE) -C Documentation all\n \n+info:\n+\t$(MAKE) -C Documentation info\n+\n TAGS:\n \t$(RM) TAGS\n \t$(FIND) . -name '*.[hcS]' -print | xargs etags -a\n@@ -1005,6 +1008,9 @@ endif\n install-doc:\n \t$(MAKE) -C Documentation install\n \n+install-info:\n+\t$(MAKE) -C Documentation install-info\n+\n quick-install-doc:\n \t$(MAKE) -C Documentation quick-install\n \n-- \n1.5.3.rc4.21.ga63eb\n"},{"id":"50114","messageId":"33de826d1e02499b856553edad0643f96b85c2a6.1186483533.git.dak@gnu.org","threadId":"9425","inReplyTo":"f61195c2c46468565b52f86e285cfda8c4ae9a3e.1186483533.git.dak@gnu.org","subject":"[install info (using perl) 2/2] INSTALL: explain info installation and dependencies.","fromName":"David Kastrup","fromEmail":"dak@gnu.org","sentAt":"2007-08-07T10:02:12Z","receivedAt":"2007-08-07T10:02:12Z","isPatch":false,"sender":{"key":"dak@gnu.org","avatar":"https://avatars.githubusercontent.com/u/52141349?v=4"},"body":"\nSigned-off-by: David Kastrup <dak@gnu.org>\n---\n INSTALL |   14 +++++++++-----\n 1 files changed, 9 insertions(+), 5 deletions(-)\n\ndiff --git a/INSTALL b/INSTALL\nindex c62b12c..289b046 100644\n--- a/INSTALL\n+++ b/INSTALL\n@@ -5,8 +5,8 @@ Normally you can just do \"make\" followed by \"make install\", and that\n will install the git programs in your own ~/bin/ directory.  If you want\n to do a global install, you can do\n \n-\t$ make prefix=/usr all doc ;# as yourself\n-\t# make prefix=/usr install install-doc ;# as root\n+\t$ make prefix=/usr all doc info ;# as yourself\n+\t# make prefix=/usr install install-doc install-info ;# as root\n \n (or prefix=/usr/local, of course).  Just like any program suite\n that uses $prefix, the built results have some paths encoded,\n@@ -91,9 +91,13 @@ Issues of note:\n  - To build and install documentation suite, you need to have\n    the asciidoc/xmlto toolchain.  Because not many people are\n    inclined to install the tools, the default build target\n-   (\"make all\") does _not_ build them.  The documentation is\n-   written for AsciiDoc 7, but \"make ASCIIDOC8=YesPlease doc\"\n-   will let you format with AsciiDoc 8.\n+   (\"make all\") does _not_ build them.\n+\n+   Building and installing the info file additionally requires\n+   makeinfo and docbook2X.  Version 0.8.3 is known to work.\n+\n+   The documentation is written for AsciiDoc 7, but \"make\n+   ASCIIDOC8=YesPlease doc\" will let you format with AsciiDoc 8.\n \n    Alternatively, pre-formatted documentation are available in\n    \"html\" and \"man\" branches of the git repository itself.  For\n-- \n1.5.3.rc4.21.ga63eb\n"},{"id":"50115","messageId":"86sl6v7h71.fsf@lola.quinscape.zz","threadId":"9425","inReplyTo":"f61195c2c46468565b52f86e285cfda8c4ae9a3e.1186483533.git.dak@gnu.org","subject":"Re: [install info (using perl) 1/2] Add support for an info version of the user manual","fromName":"David Kastrup","fromEmail":"dak@gnu.org","sentAt":"2007-08-07T10:49:22Z","receivedAt":"2007-08-07T10:49:22Z","isPatch":false,"sender":{"key":"dak@gnu.org","avatar":"https://avatars.githubusercontent.com/u/52141349?v=4"},"body":"David Kastrup <dak@gnu.org> writes:\n\n\n>  COMMIT_EDITMSG         |   57 ++++++++++++++++++++++++++++++++++++++++++++++++\n>  Documentation/Makefile |   27 ++++++++++++++++++++++\n>  Makefile               |    6 +++++\n>  3 files changed, 90 insertions(+), 0 deletions(-)\n\nI hate life.  Fixing this.\n\n-- \nDavid Kastrup\n"}]}