public inbox for gcc-patches@gcc.gnu.org
 help / color / mirror / Atom feed
* [v3] libstdc++/47145
@ 2011-03-08  0:15 Benjamin Kosnik
  2011-03-08  9:19 ` Jonathan Wakely
  0 siblings, 1 reply; 4+ messages in thread
From: Benjamin Kosnik @ 2011-03-08  0:15 UTC (permalink / raw)
  To: gcc-patches, libstdc++, doko

[-- Attachment #1: Type: text/plain, Size: 824 bytes --]


Conditionally set XSL_STYLE_DIR at configure time for either debian or
fedora/RHEL based systems. As discussed in bugzilla. 

For convenience, this patch steps around the STYLESHEET_FLAG question by
just punting to the net for validation only. STYLESHEET_FLAG is only
used in the validation makefile rules, and these are not in the
critical path for things like "make html" where local docbook
stylesheet files are required. So a bit of a hit time-wise is not a
major negative, whereas all developers being on the same page with
respect to validation and being able to do it even w/o the rest of the
stylesheets seems like a clear win. 

Matthias, this should allow you to kill

libstdc++-stylesheets:
  Fix libstdc++ stylesheet detection

from your 4.6.0 patchset

-benjamin

tested x86/linux
tested x86/linux -x- arm-eabi

[-- Attachment #2: 20110307-1.patch --]
[-- Type: text/x-patch, Size: 4561 bytes --]

2011-03-04  Benjamin Kosnik  <bkoz@chula>

	    PR libstdc++/47145
	    * acinclude.m4 (GLIBCXX_CONFIGURE_DOCBOOK): Define.
	    * configure.ac: Use it.
	    * doc/Makefile.am (XSL_STYLE_DIR): Set at configure time.
	    * configure: Regenerate.
	    * doc/Makefile.in: Regenerate.


Index: configure.ac
===================================================================
--- configure.ac	(revision 170762)
+++ configure.ac	(working copy)
@@ -344,12 +344,8 @@
 # Check for docbook
 AC_CHECK_PROG([XSLTPROC], xsltproc, yes, no)
 AC_CHECK_PROG([XMLLINT], xmllint, yes, no)
+GLIBCXX_CONFIGURE_DOCBOOK
 
-glibcxx_stylesheets=no
-if test -f /usr/share/sgml/docbook/xsl-ns-stylesheets/VERSION; then
-  glibcxx_stylesheets=yes
-fi
-
 # Check for xml/html dependencies.
 AM_CONDITIONAL(BUILD_XML,
 	       test $ac_cv_prog_DOXYGEN = "yes" &&
@@ -378,7 +374,7 @@
 	       test $ac_cv_prog_PDFLATEX = "yes")
 
 AC_CHECK_PROG([RUBY], ruby, yes, no)
-AC_CHECK_PROG([DBTOEPUB], dbtoepubm, yes, no)
+AC_CHECK_PROG([DBTOEPUB], dbtoepub, yes, no)
 AM_CONDITIONAL(BUILD_EPUB,
 	       test $ac_cv_prog_RUBY = "yes" &&
 	       test $ac_cv_prog_DBTOEPUB = "yes")
Index: acinclude.m4
===================================================================
--- acinclude.m4	(revision 170762)
+++ acinclude.m4	(working copy)
@@ -622,5 +621,48 @@
 
 
+dnl
+dnl Does any necessary configuration of the documentation directory.
+dnl
+dnl XSLTPROC must be set before this
+dnl
+dnl Sets:
+dnl  glibcxx_stylesheets
+dnl Substs:
+dnl  XSL_STYLE_DIR
+dnl
+AC_DEFUN([GLIBCXX_CONFIGURE_DOCBOOK], [
+
+AC_MSG_CHECKING([for stylesheets used in generation of documentation])
+glibcxx_stylesheets=no
+if test x${XSLTPROC} = xyes && echo '<title/>' | xsltproc --noout --nonet --xinclude http://docbook.sourceforge.net/release/xsl-ns/current/xhtml-1_1/docbook.xsl - 2>/dev/null; then
+  glibcxx_stylesheets=yes
+fi
+AC_MSG_RESULT($glibcxx_stylesheets)
+
+AC_MSG_CHECKING([for local stylesheet directory])
+glibcxx_local_stylesheets=no
+if test x"$glibcxx_stylesheets" = x"yes"; then
+  if test -d /usr/share/sgml/docbook/xsl-ns-stylesheets; then
+    glibcxx_local_stylesheets=yes
+    XSL_STYLE_DIR=/usr/share/sgml/docbook/xsl-ns-stylesheets
+  fi
+  if test -d /usr/share/xml/docbook/stylesheet/docbook-xsl-ns; then
+    glibcxx_local_stylesheets=yes
+    XSL_STYLE_DIR=/usr/share/xml/docbook/stylesheet/docbook-xsl-ns
+  fi
+fi
+AC_MSG_RESULT($glibcxx_local_stylesheets)
+
+if test x"$glibcxx_local_stylesheets" = x"yes"; then
+  AC_SUBST(XSL_STYLE_DIR)
+  AC_MSG_NOTICE($XSL_STYLE_DIR)
+else
+  glibcxx_stylesheets=no
+fi
+])
+
+
+dnl
 dnl Set up *_INCLUDES variables for all sundry Makefile.am's.
 dnl
 dnl Substs:
Index: doc/Makefile.am
===================================================================
--- doc/Makefile.am	(revision 170762)
+++ doc/Makefile.am	(working copy)
@@ -368,12 +368,9 @@
 
 XSLTPROC       = xsltproc
 XSLTPROC_FLAGS = --nonet --xinclude
-#XSL_STYLE_DIR = /usr/share/sgml/docbook/xsl-stylesheets
-XSL_STYLE_DIR = /usr/share/sgml/docbook/xsl-ns-stylesheets
+#XSL_STYLE_DIR = /usr/share/xml/docbook/stylesheet/docbook-xsl-ns
+#XSL_STYLE_DIR = /usr/share/sgml/docbook/xsl-ns-stylesheets
 XSL_FO_STYLE = $(XSL_STYLE_DIR)/fo/docbook.xsl
-#XSL_HTML_STYLE = $(XSL_STYLE_DIR)/xhtml/chunk.xsl
-#XSL_HTML_SINGLE_STYLE = $(XSL_STYLE_DIR)/xhtml/onechunk.xsl
-#XSL_HTML_SINGLE_STYLE = $(XSL_STYLE_DIR)/xhtml/docbook.xsl
 XSL_HTML_STYLE = $(XSL_STYLE_DIR)/xhtml-1_1/chunk.xsl
 XSL_HTML_SINGLE_STYLE = $(XSL_STYLE_DIR)/xhtml-1_1/docbook.xsl
 XSL_EPUB_STYLE = $(XSL_STYLE_DIR)/epub/docbook.xsl
@@ -398,13 +395,11 @@
 
 # Validate existing XML structure.
 XMLLINT = xmllint
-#LINT_FLAGS = --debug --xinclude --nsclean --postvalid --nowarning --nonet
-#LINT_FLAGS = --xinclude --postvalid --noent --noblanks --noout
-LINT_FLAGS = --debug --xinclude --noent --noblanks  --nonet --noout
-#SCHEMA_FLAGS = --relaxng /usr/share/xml/docbook5/schema/rng/5.0/docbookxi.rng
-SCHEMA_FLAGS = --dtdvalid /usr/share/xml/docbook5/schema/dtd/5.0/docbook.dtd
+LINT_FLAGS = --debug --xinclude --noent --noblanks --noout
+SCHEMA_FLAGS = http://www.docbook.org/xml/5.0/dtd/docbook.dtd
+#SCHEMA_FLAGS = --nonet /usr/share/xml/docbook5/schema/dtd/5.0/docbook.dtd
+XMLLINT_VALID_FLAGS = $(LINT_FLAGS) --dtdvalid $(SCHEMA_FLAGS)
 XMLLINT_FLAGS = --xinclude --nsclean --c14n --noent --noblanks --nocdata
-XMLLINT_VALID_FLAGS = $(LINT_FLAGS) $(SCHEMA_FLAGS)
 doc-xml-validate-docbook: $(xml_sources)
 	@echo "Generating XML validation log..."
 	$(XMLLINT) $(XMLLINT_VALID_FLAGS) ${top_srcdir}/doc/xml/spine.xml

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [v3] libstdc++/47145
  2011-03-08  0:15 [v3] libstdc++/47145 Benjamin Kosnik
@ 2011-03-08  9:19 ` Jonathan Wakely
  2011-03-08 17:31   ` Benjamin Kosnik
  0 siblings, 1 reply; 4+ messages in thread
From: Jonathan Wakely @ 2011-03-08  9:19 UTC (permalink / raw)
  To: Benjamin Kosnik; +Cc: gcc-patches, libstdc++, doko

On 8 March 2011 00:14, Benjamin Kosnik wrote:
>
> Conditionally set XSL_STYLE_DIR at configure time for either debian or
> fedora/RHEL based systems. As discussed in bugzilla.
>
> For convenience, this patch steps around the STYLESHEET_FLAG question by
> just punting to the net for validation only.

But it still uses --nonet in that step, right? So it doesn't use the
network at all, the mapping from the canonical stylesheet URL to a
local file is done by the system's XML catalog, /etc/xml/catalog on my
Fedora box.

I thought we could do the same for the actual transformation rules
too, using the canonical URL with --nonet and letting the system map
it to a local file, and failing if the file is not present, because
--nonet prevents it fetching a remote stylesheet.

I suspect this is fine for the majority of people now and good enough for 4.6

Jonathan

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [v3] libstdc++/47145
  2011-03-08  9:19 ` Jonathan Wakely
@ 2011-03-08 17:31   ` Benjamin Kosnik
  2011-03-08 21:31     ` Jonathan Wakely
  0 siblings, 1 reply; 4+ messages in thread
From: Benjamin Kosnik @ 2011-03-08 17:31 UTC (permalink / raw)
  To: Jonathan Wakely; +Cc: gcc-patches, libstdc++, doko


> > For convenience, this patch steps around the STYLESHEET_FLAG
> > question by just punting to the net for validation only.
> 
> But it still uses --nonet in that step, right? So it doesn't use the
> network at all, the mapping from the canonical stylesheet URL to a
> local file is done by the system's XML catalog, /etc/xml/catalog on my
> Fedora box.

No, for validation only I took out --nonet. Meaning, 'make
doc-validate-docbook' searches for a schema on the net and validates
against that, not a local thing. It takes longer now to validate, but I
don't think it is onerous.

At least, that was my intent. Double check my work please.

Ideally we could move to RelaxNG anyway, at some point. uBut we will
probably have to do something similar about finding the canonical thing,
regardless of the specific schema used to validate.
 
> I thought we could do the same for the actual transformation rules
> too, using the canonical URL with --nonet and letting the system map
> it to a local file, and failing if the file is not present, because
> --nonet prevents it fetching a remote stylesheet.

I couldn't figure out how to make that work. I tried setting
XSL_STYLE_DIR to the docbook 5 URL but.... no dice. I'm not quite sure
what the problem is.

> I suspect this is fine for the majority of people now and good enough
> for 4.6

Yeah, me too.

It seems to be the way we need to go, at the very least. Baby steps.
Let's see if this at least unifies the linux users.

-benjamin

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [v3] libstdc++/47145
  2011-03-08 17:31   ` Benjamin Kosnik
@ 2011-03-08 21:31     ` Jonathan Wakely
  0 siblings, 0 replies; 4+ messages in thread
From: Jonathan Wakely @ 2011-03-08 21:31 UTC (permalink / raw)
  To: Benjamin Kosnik; +Cc: gcc-patches, libstdc++, doko

On 8 March 2011 17:30, Benjamin Kosnik wrote:
>
>> > For convenience, this patch steps around the STYLESHEET_FLAG
>> > question by just punting to the net for validation only.
>>
>> But it still uses --nonet in that step, right? So it doesn't use the
>> network at all, the mapping from the canonical stylesheet URL to a
>> local file is done by the system's XML catalog, /etc/xml/catalog on my
>> Fedora box.
>
> No, for validation only I took out --nonet. Meaning, 'make
> doc-validate-docbook' searches for a schema on the net and validates
> against that, not a local thing. It takes longer now to validate, but I
> don't think it is onerous.
>
> At least, that was my intent. Double check my work please.

Ah, sorry, I missed that bit of the change, will take another look.

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2011-03-08 21:31 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2011-03-08  0:15 [v3] libstdc++/47145 Benjamin Kosnik
2011-03-08  9:19 ` Jonathan Wakely
2011-03-08 17:31   ` Benjamin Kosnik
2011-03-08 21:31     ` Jonathan Wakely

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).