* [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).