Move uploading docs into build system.
authorWill Thompson <will.thompson@collabora.co.uk>
Thu, 9 Sep 2010 12:15:57 +0000 (13:15 +0100)
committerWill Thompson <will.thompson@collabora.co.uk>
Tue, 5 Oct 2010 10:46:00 +0000 (11:46 +0100)
This uploads a doc tarball, and its contents, to the appropriate
location on dbus.freedesktop.org. It also uploads the DTDs to the
appropriate location on specifications.freedesktop.org.

I believe this uploads the same files as the old update-dbus-docs.sh
script did.

configure.in
doc/.gitignore
doc/Makefile.am
update-dbus-docs.sh [deleted file]

index 6af0ca9..c603398 100644 (file)
@@ -1348,6 +1348,10 @@ AC_PATH_PROG([MAN2HTML], [man2html])
 AC_ARG_VAR([MAN2HTML], [Path to man2html (optional)])
 AM_CONDITIONAL(DBUS_HAVE_MAN2HTML, test x$MAN2HTML != x)
 
+AM_CONDITIONAL(DBUS_CAN_UPLOAD_DOCS,
+    test x$enable_doxygen_docs = xyes -a x$enable_xml_docs = xyes -a \
+         x$MAN2HTML != x)
+
 #### Have to go $localstatedir->$prefix/var->/usr/local/var
 
 #### find the actual value for $prefix that we'll end up with
index 8a38ca3..fd19357 100644 (file)
@@ -12,3 +12,5 @@ dbus-test-plan.html
 dbus-tutorial.html
 dbus-faq.html
 dbus-daemon.1
+dbus-docs
+dbus-docs.tar.gz
index ec37084..bc349f8 100644 (file)
@@ -16,19 +16,25 @@ MAN_HTML_FILES = \
        dbus-send.1.html \
        dbus-uuidgen.1.html
 
-EXTRA_DIST=                                    \
-       busconfig.dtd                           \
-       diagram.png                             \
-       diagram.svg                             \
-       introspect.dtd                          \
-       dbus-faq.xml                            \
-       dbus-specification.xml                  \
-       dbus-test-plan.xml                      \
-       dbus-tutorial.xml                       \
-       dcop-howto.txt                          \
-       file-boilerplate.c                      \
-       introspect.xsl                          \
-       system-activation.txt                   \
+DTDS = \
+       busconfig.dtd \
+       introspect.dtd
+
+STATIC_DOCS = \
+       diagram.png \
+       diagram.svg \
+       dbus-faq.xml \
+       dbus-specification.xml \
+       dbus-test-plan.xml \
+       dbus-tutorial.xml \
+       dcop-howto.txt \
+       introspect.xsl \
+       system-activation.txt \
+       $(DTDS)
+
+EXTRA_DIST = \
+       file-boilerplate.c \
+       $(STATIC_DOCS) \
        $(MAN_IN_FILES) $(man_MANS)
 
 HTML_FILES=                                    \
@@ -73,8 +79,49 @@ all-local:: $(MAN_HTML_FILES)
        $(AM_V_GEN)( $(MAN2HTML) $< > $@.tmp && mv $@.tmp $@ )
 endif
 
+if DBUS_CAN_UPLOAD_DOCS
+BONUS_FILES = \
+       $(top_srcdir)/README \
+       $(top_srcdir)/HACKING \
+       $(top_srcdir)/AUTHORS \
+       $(top_srcdir)/NEWS \
+       $(top_srcdir)/COPYING \
+       $(top_srcdir)/ChangeLog
+
+dbus-docs: $(STATIC_DOCS) $(HTML_FILES) $(MAN_HTML_FILES) $(BONUS_FILES) $(DOXYGEN_HTML_INDEX)
+       $(AM_V_at)rm -rf $@
+       $(AM_V_GEN)mkdir -p $@/api
+       $(AM_V_at)cp $(STATIC_DOCS) $@
+       $(AM_V_at)cp $(HTML_FILES) $@
+       $(AM_V_at)cp $(MAN_HTML_FILES) $@
+       $(AM_V_at)cp $(BONUS_FILES) $@
+       $(AM_V_at)cp -r api/html $@/api
+
+dbus-docs.tar.gz: dbus-docs
+       $(AM_V_GEN)tar czf $@ $<
+
+DOC_SERVER = dbus.freedesktop.org
+DOC_WWW_DIR = /srv/dbus.freedesktop.org/www
+
+SPECIFICATION_SERVER = specifications.freedesktop.org
+SPECIFICATION_PATH = /srv/specifications.freedesktop.org/www/dbus/1.0
+
+maintainer-upload-docs: dbus-docs.tar.gz dbus-docs
+       scp dbus-docs.tar.gz $(DOC_SERVER):$(DOC_WWW_DIR)
+       rsync -rvzP --chmod=Dg+s,ug+rwX,o=rX \
+               dbus-docs/ $(DOC_SERVER):$(DOC_WWW_DIR)/doc/
+       scp -p $(DTDS) $(SPECIFICATION_SERVER):$(SPECIFICATION_PATH)
+else
+maintainer-upload-docs:
+       @echo "Can't upload documentation! Re-run configure with"
+       @echo "  --enable-doxygen-docs --enable-xml-docs"
+       @echo "and ensure that man2html is installed."
+       @false
+endif
+
 clean-local:
        rm -rf api
+       rm -rf dbus-docs
        rm -f *.1.html
 
 maintainer-clean-local:
diff --git a/update-dbus-docs.sh b/update-dbus-docs.sh
deleted file mode 100755 (executable)
index 627f0a7..0000000
+++ /dev/null
@@ -1,56 +0,0 @@
-#! /bin/bash
-
-function die()
-{
-    echo $* 2>&1
-    exit 1
-}
-
-if test -n "$FDUSER" ; then
-    echo "Using freedesktop.org account $FDUSER"
-    user="$FDUSER@"
-else
-    echo "Using freedesktop.org account from ~/.ssh/config, or local username"
-fi
-
-CHECKOUTDIR=`mktemp -d || echo /tmp/dbus-for-docs`
-export CVSROOT=":ext:${user}cvs.freedesktop.org:/cvs/dbus"
-
-cd $CHECKOUTDIR || die "could not changedir to $CHECKOUTDIR"
-
-echo "Checking out to directory "`pwd`
-
-/bin/rm -rf dbus/doc || true ## get rid of old doxygen, etc.
-cvs co dbus || die "failed to cvs update"
-cd dbus || die "could not cd to dbus"
-
-echo "Configuring and building docs"
-
-## the configure flags are explicit so if you lack xmlto, etc. 
-## you won't fail to update those docs
-./autogen.sh --enable-xml-docs=yes --enable-doxygen-docs=yes || die "could not autogen"
-doxygen Doxyfile || die "could not run Doxygen"
-make -C doc || die "could not build docs"
-
-MANFILES=`find -name "dbus*.1"`
-for M in $MANFILES ; do
-    BASENAME=`basename $M`
-    echo "Converting $M to $BASENAME.html"
-    man2html $M > doc/$BASENAME.html
-done
-
-echo "Packing docs into tarball"
-cp README HACKING AUTHORS NEWS COPYING ChangeLog doc/ || die "could not copy in assorted files"
-tar cfz dbus-docs.tar.gz doc/*.dtd doc/*.xsl doc/*.xml doc/*.html doc/*.txt doc/api/html/*.html doc/api/html/*.css doc/api/html/*.png doc/api/html/*.gif doc/HACKING doc/AUTHORS doc/NEWS doc/ChangeLog doc/TODO doc/README doc/COPYING doc/*.png doc/*.svg || die "could not tar up docs"
-
-tar tfz dbus-docs.tar.gz | sort > tarball.list || die "could not list tarball contents"
-find doc -not -type d | grep -v CVS | grep -v -E '.~[0-9.]+~' | grep -v Makefile | grep -vE '.c$' | grep -v man3dbus | grep -v .cvsignore | sort > filesystem.list || die "could not list doc/* contents"
-
-diff -u filesystem.list tarball.list || die "some files were not included"
-
-echo "Uploading docs to server"
-scp dbus-docs.tar.gz "${user}"dbus.freedesktop.org:
-ssh "${user}"dbus.freedesktop.org '(cd /srv/dbus.freedesktop.org/www/ && /bin/cp -f ~/dbus-docs.tar.gz . && tar zxf dbus-docs.tar.gz && echo "Successfully unpacked tarball on server")'
-
-echo "Uploading DTD to server"
-scp -p doc/introspect.dtd "${user}"dbus.freedesktop.org:/srv/specifications.freedesktop.org/www/dbus/1.0/introspect.dtd