daps/daps-fetch-source-svn

84 lines
1.8 KiB
Plaintext
Raw Normal View History

#!/bin/bash
#
#
# Create DAPS source tarball from SVN
#
# Copyright (C) 2004 - 2011 SUSE Linux Products GmbH
#
# Author:
# Frank Sundermeyer <fsundermeyer at opensuse dot org>
#
Version 1.0beta1: * Rebuild large parts to make DAPS distribution-independent. - rewrote Makefile for automake/autoconf => configure; make; make install is now supported - thorough cross-distribution testing is still needed, basic tests have been run on RedHat, Debian and Ubuntu * removal of custom stylesheets DAPS no longer uses the SUSE stylesheets as a default. It even no longer contains the SUSE stylesheets - they are now available as a separate package (suse-xsl-stylesheets in Documentation:Tools). - By default DAPS uses the generic DocBook stylesheets now - Custom stylesheets such as the SUSE stylesheets can be used by specifying up to four parameters on the command line/the config files: * Styleroot: Directory containing the custom stylesheets. Must have the same directory structure as the original DocBook stylesheet root directory. Does _not_ need to contain stylesheets for all output formats. If stylesheets are not found, DAPS will automatically fall back to the DocBook stylesheets. - Variable: STYLEROOT - Parameter: --styleroot - Value: absolute path to directory * Fallback styleroot Custom fallback styleroot. If DAPS cannot find styles for the given output format, it will automatically fall back to the DocBook stylesheets. This config option will add a custom fallback directory with higher priority. The DocBook stylesheets will remain as a last resort, however. - Variable: FALLBACK_STYLEROOT OBS-URL: https://build.opensuse.org/package/show/Documentation:Tools/daps?expand=0&rev=79
2012-03-08 12:17:04 +01:00
#set -x
NAME=daps
VERSION=
SPECFILE=${NAME}.spec
Version DAPS 2.0~beta1: - First beta for a new major release Output targets: --------------- * the number of subcommands has been significantly reduced, see "daps --commands", "daps help" and "daps help <SUBCOMMAND>" for more information - "html-single" has been replaced by "html --single" - "jsp" has been replaced with "html --jsp" - "color-pdf" has been replaced by "pdf" (now produces color PDFS) - "pdf" has been replaced by "pdf --grayscale --cropmarks" - "projectfiles" and "projectgraphics" have been replaced with "list-srcfiles" (see daps help "list-srcfiles" for more options) - all dist-* commands have been removed - when calling deprecated targets, an error message hinting at a valid alternative (is existing) is shown * subcommand bigfile now generates a bigfile for the given rootid (rather than for the complate set); target bigfile-reduced has been dropped * subbcommands package-pdf and package-html now have switches --dcoumentfiles, --desktopfiles and --pagefiles which generate the resource files for GNOME and KDE * new subcommands - "clean-package" removes all generated package data for the given DC-file. Generated images and profiled sources will _not_ be deleted. - "dapsenv" shows a list of the most important make variables and their values - "images" generates images only for a given rootid. Intended for debugging purposes - "package-src" (creates a tarball with profiled XML sources and images); switch --set-date allows to specify a build date (default date is "now") * ePUB generation has been completely rewritten (pure make solution, no longer uses the ruby script from upstream); generated ePUBs now validate with epubcheck3. - added support for .mobi (Amzon Kindle format). Requires calibre. (ticket #98) * replaced support for HTML4 with support for HTML5 (--html5) xhtml remains the default, html4 is no longer supported * to nullify a CSS-file definition for HTML or EPUB (HTML_CSS or EPUB_CSS) from the DC-file, specify "--css none" Miscellaneous: -------------- * now supports XSLT processor saxon6 (in addition to xsltproc), specify with --xsltprocessor (default: xsltproc) * improved verbosity handling: - if output is not a terminal (e.g. pipe) only prints the resulting filename (-v0) - default verbosity shows a result message plus filename (-v1) - -v2 shows additional messages - -v3 shows the complete make output from make -j1 (commands are executed successively, not parallel) - --debug shows the complete make output from make -j1+x (commands are executed parallel; this also shows in the debug output) * added support for JPG images (ticket #101) * added support for a "static/" directory in STYLEROOT containing css, js and images taht are reference in the CSS and the stylesheets for HTML * New general switch --commands shows all available subcommands * if the XML sources are not well-formed, a meaningful error message is shown * xsltparameters have to be submitted as --param PARAM=VALUE or --stringparam PARAM=VALUE (the "=" is mandatory, used to be a "space2 with DAPS 1.x) * output formats are only re-generated when the source files (xml, entity files or images) have changed. To force a rebuild run DAPS with --force or run a suitable clean command * added switches --author and --productname switches to daps-init Config file changes: -------------------- * New config file variables: COVERT_OPS_JPG: command-line options for "convert" for converting jpg images to grayscale FOP_STACKSIZE: set stacksize for fop (ticket #82) META, META_STR: permanently run html and PDF builds with --meta STATIC_DIR: custom static directory XML_USER_CATALOGS: add custom catalogs to XML_CATALOG_FILES (ticket #99) XSLTPROCESSOR: Use the specified XSLT processor (saxon6 or xsltproc) Code changes: ------------- * big makefile (common.mk) has been split into several small files - easier to maintain - improved performance by only loading makefiles that are needed for the given subcommand * added a comprehensive test suite to ensure better quality when releasing * no longer requires Bash 4--Bash 3 is sufficient Documentation: -------------- * Quickstart has been updated to cover DAPS 2.0 * Update of User Guide is WIP * new Tutorial "How to Write an Article with DocBook and DAPS" Bugfixes: --------- Numerous bugfixes and improvements, among them: * #64 Split Makefiles * #66 daps: DC Files and Platform Dependant Paths * #73 Create PDFs for target locdrop if --def-file is specified * #82 Add config parameter for FOP (XEP?) stacksize * #85 Set a fixed <date/> date with package-src target * #98 Adjust EPUB Stylesheet to Suppot Kindle * #99 Support User Definied Catalogs by Setting XML_CATALOG_FILES... * #101 DAPS should support JPEG as a source file format * #103 Exit target package-source when there are missing images * #105 DAPS's sub-commands are somewhat inconsistent * #106 Enable overwriting xsltproc params * #108 Support FOP 1.1 * #115 --css/HTML_CSS parameter is completely ignored if styleroot... * #116 Move font requirements from daps specfile to ... * #126 Add --show switch to checklink * #127 productinfo sometimes fails and is slow * #129 Get rid of native xsltproc calls * #136 daps Ignores Language in Document for Spell Checking * #138 DAPS makes it easier to create black/white PDFs than ... * #139 When trying to create a PDF file with malformed XSLT files... * #142 Saxon seems to have problems with NovDoc documents * #146 EPUB CRITICAL Error: No manual specific tmp dir * #147 EPUB validation error on callouts * #148 --meta only works when profiling * #159 Fatal Error in ePUB stylesheets * #163 JSP Stylesheets fail with saxon6 * #165 FOP config file is unnecessary * #166 Reduce Logging Output of Apache's FOP * #171 Remove unnecessary "eval" statements in the DAPS code * #192 Create filenames in a single place * #196 EPUB does not build with saxon Known Issues: ------------- * the webhelp code hasn't been touched at all; webhelp will most likely not work OBS-URL: https://build.opensuse.org/package/show/Documentation:Tools/daps?expand=0&rev=133
2013-12-11 10:05:58 +01:00
SVNPATH=svn://svn.code.sf.net/p/daps/svn/trunk/daps
TMPDIR=$(mktemp -q -d --tmpdir daps_XXXXXXXX)
EXCLUDES=${TMPDIR}/${NAME}/packaging/exclude-files_for_daps_package.txt
#----------
# Functions
#----------
# exit on error
#
function exit_on_error {
echo -e "$1"
rm -rf $TMPDIR
exit 1
}
#-----
# MAIN
#-----
#
# This script needs to be called from the daps osc checkout directory, so
# lets check whethter we are in the correct directory
#
if [[ ! -s daps.spec && ! -d .osc ]]; then
echo "Looks like you are not in the daps checkout directory."
read -p "Continue anyway (y/n) [n]: " CONT
if [[ n = $CONT || N = $CONT ]]; then
exit_on_error "Aborted by user."
fi
fi
#
# Export daps from SVN
#
Version 1.0beta1: * Rebuild large parts to make DAPS distribution-independent. - rewrote Makefile for automake/autoconf => configure; make; make install is now supported - thorough cross-distribution testing is still needed, basic tests have been run on RedHat, Debian and Ubuntu * removal of custom stylesheets DAPS no longer uses the SUSE stylesheets as a default. It even no longer contains the SUSE stylesheets - they are now available as a separate package (suse-xsl-stylesheets in Documentation:Tools). - By default DAPS uses the generic DocBook stylesheets now - Custom stylesheets such as the SUSE stylesheets can be used by specifying up to four parameters on the command line/the config files: * Styleroot: Directory containing the custom stylesheets. Must have the same directory structure as the original DocBook stylesheet root directory. Does _not_ need to contain stylesheets for all output formats. If stylesheets are not found, DAPS will automatically fall back to the DocBook stylesheets. - Variable: STYLEROOT - Parameter: --styleroot - Value: absolute path to directory * Fallback styleroot Custom fallback styleroot. If DAPS cannot find styles for the given output format, it will automatically fall back to the DocBook stylesheets. This config option will add a custom fallback directory with higher priority. The DocBook stylesheets will remain as a last resort, however. - Variable: FALLBACK_STYLEROOT OBS-URL: https://build.opensuse.org/package/show/Documentation:Tools/daps?expand=0&rev=79
2012-03-08 12:17:04 +01:00
svn export -q $SVNPATH ${TMPDIR}/${NAME} || exit_on_error "SVN export failed"
#
# Get the version number
#
VERSION=$(egrep "^Version:\s*" ${TMPDIR}/${NAME}/packaging/$SPECFILE | sed 's/^Version:\s*//')
if [[ -z $VERSION ]]; then
exit_on_error "Couldn't get version number from spec-file."
fi
#
# Create the tarball
#
export BZIP2=--best
Version DAPS 2.0~beta1: - First beta for a new major release Output targets: --------------- * the number of subcommands has been significantly reduced, see "daps --commands", "daps help" and "daps help <SUBCOMMAND>" for more information - "html-single" has been replaced by "html --single" - "jsp" has been replaced with "html --jsp" - "color-pdf" has been replaced by "pdf" (now produces color PDFS) - "pdf" has been replaced by "pdf --grayscale --cropmarks" - "projectfiles" and "projectgraphics" have been replaced with "list-srcfiles" (see daps help "list-srcfiles" for more options) - all dist-* commands have been removed - when calling deprecated targets, an error message hinting at a valid alternative (is existing) is shown * subcommand bigfile now generates a bigfile for the given rootid (rather than for the complate set); target bigfile-reduced has been dropped * subbcommands package-pdf and package-html now have switches --dcoumentfiles, --desktopfiles and --pagefiles which generate the resource files for GNOME and KDE * new subcommands - "clean-package" removes all generated package data for the given DC-file. Generated images and profiled sources will _not_ be deleted. - "dapsenv" shows a list of the most important make variables and their values - "images" generates images only for a given rootid. Intended for debugging purposes - "package-src" (creates a tarball with profiled XML sources and images); switch --set-date allows to specify a build date (default date is "now") * ePUB generation has been completely rewritten (pure make solution, no longer uses the ruby script from upstream); generated ePUBs now validate with epubcheck3. - added support for .mobi (Amzon Kindle format). Requires calibre. (ticket #98) * replaced support for HTML4 with support for HTML5 (--html5) xhtml remains the default, html4 is no longer supported * to nullify a CSS-file definition for HTML or EPUB (HTML_CSS or EPUB_CSS) from the DC-file, specify "--css none" Miscellaneous: -------------- * now supports XSLT processor saxon6 (in addition to xsltproc), specify with --xsltprocessor (default: xsltproc) * improved verbosity handling: - if output is not a terminal (e.g. pipe) only prints the resulting filename (-v0) - default verbosity shows a result message plus filename (-v1) - -v2 shows additional messages - -v3 shows the complete make output from make -j1 (commands are executed successively, not parallel) - --debug shows the complete make output from make -j1+x (commands are executed parallel; this also shows in the debug output) * added support for JPG images (ticket #101) * added support for a "static/" directory in STYLEROOT containing css, js and images taht are reference in the CSS and the stylesheets for HTML * New general switch --commands shows all available subcommands * if the XML sources are not well-formed, a meaningful error message is shown * xsltparameters have to be submitted as --param PARAM=VALUE or --stringparam PARAM=VALUE (the "=" is mandatory, used to be a "space2 with DAPS 1.x) * output formats are only re-generated when the source files (xml, entity files or images) have changed. To force a rebuild run DAPS with --force or run a suitable clean command * added switches --author and --productname switches to daps-init Config file changes: -------------------- * New config file variables: COVERT_OPS_JPG: command-line options for "convert" for converting jpg images to grayscale FOP_STACKSIZE: set stacksize for fop (ticket #82) META, META_STR: permanently run html and PDF builds with --meta STATIC_DIR: custom static directory XML_USER_CATALOGS: add custom catalogs to XML_CATALOG_FILES (ticket #99) XSLTPROCESSOR: Use the specified XSLT processor (saxon6 or xsltproc) Code changes: ------------- * big makefile (common.mk) has been split into several small files - easier to maintain - improved performance by only loading makefiles that are needed for the given subcommand * added a comprehensive test suite to ensure better quality when releasing * no longer requires Bash 4--Bash 3 is sufficient Documentation: -------------- * Quickstart has been updated to cover DAPS 2.0 * Update of User Guide is WIP * new Tutorial "How to Write an Article with DocBook and DAPS" Bugfixes: --------- Numerous bugfixes and improvements, among them: * #64 Split Makefiles * #66 daps: DC Files and Platform Dependant Paths * #73 Create PDFs for target locdrop if --def-file is specified * #82 Add config parameter for FOP (XEP?) stacksize * #85 Set a fixed <date/> date with package-src target * #98 Adjust EPUB Stylesheet to Suppot Kindle * #99 Support User Definied Catalogs by Setting XML_CATALOG_FILES... * #101 DAPS should support JPEG as a source file format * #103 Exit target package-source when there are missing images * #105 DAPS's sub-commands are somewhat inconsistent * #106 Enable overwriting xsltproc params * #108 Support FOP 1.1 * #115 --css/HTML_CSS parameter is completely ignored if styleroot... * #116 Move font requirements from daps specfile to ... * #126 Add --show switch to checklink * #127 productinfo sometimes fails and is slow * #129 Get rid of native xsltproc calls * #136 daps Ignores Language in Document for Spell Checking * #138 DAPS makes it easier to create black/white PDFs than ... * #139 When trying to create a PDF file with malformed XSLT files... * #142 Saxon seems to have problems with NovDoc documents * #146 EPUB CRITICAL Error: No manual specific tmp dir * #147 EPUB validation error on callouts * #148 --meta only works when profiling * #159 Fatal Error in ePUB stylesheets * #163 JSP Stylesheets fail with saxon6 * #165 FOP config file is unnecessary * #166 Reduce Logging Output of Apache's FOP * #171 Remove unnecessary "eval" statements in the DAPS code * #192 Create filenames in a single place * #196 EPUB does not build with saxon Known Issues: ------------- * the webhelp code hasn't been touched at all; webhelp will most likely not work OBS-URL: https://build.opensuse.org/package/show/Documentation:Tools/daps?expand=0&rev=133
2013-12-11 10:05:58 +01:00
tar cf ${NAME}-${VERSION}.tar -C ${TMPDIR} \
--exclude-from=$EXCLUDES ${NAME} || exit_on_error "Failed to create the tarball."
Version 1.0beta1: * Rebuild large parts to make DAPS distribution-independent. - rewrote Makefile for automake/autoconf => configure; make; make install is now supported - thorough cross-distribution testing is still needed, basic tests have been run on RedHat, Debian and Ubuntu * removal of custom stylesheets DAPS no longer uses the SUSE stylesheets as a default. It even no longer contains the SUSE stylesheets - they are now available as a separate package (suse-xsl-stylesheets in Documentation:Tools). - By default DAPS uses the generic DocBook stylesheets now - Custom stylesheets such as the SUSE stylesheets can be used by specifying up to four parameters on the command line/the config files: * Styleroot: Directory containing the custom stylesheets. Must have the same directory structure as the original DocBook stylesheet root directory. Does _not_ need to contain stylesheets for all output formats. If stylesheets are not found, DAPS will automatically fall back to the DocBook stylesheets. - Variable: STYLEROOT - Parameter: --styleroot - Value: absolute path to directory * Fallback styleroot Custom fallback styleroot. If DAPS cannot find styles for the given output format, it will automatically fall back to the DocBook stylesheets. This config option will add a custom fallback directory with higher priority. The DocBook stylesheets will remain as a last resort, however. - Variable: FALLBACK_STYLEROOT OBS-URL: https://build.opensuse.org/package/show/Documentation:Tools/daps?expand=0&rev=79
2012-03-08 12:17:04 +01:00
bzip2 -9f ${NAME}-${VERSION}.tar
Version 1.0beta1: * Rebuild large parts to make DAPS distribution-independent. - rewrote Makefile for automake/autoconf => configure; make; make install is now supported - thorough cross-distribution testing is still needed, basic tests have been run on RedHat, Debian and Ubuntu * removal of custom stylesheets DAPS no longer uses the SUSE stylesheets as a default. It even no longer contains the SUSE stylesheets - they are now available as a separate package (suse-xsl-stylesheets in Documentation:Tools). - By default DAPS uses the generic DocBook stylesheets now - Custom stylesheets such as the SUSE stylesheets can be used by specifying up to four parameters on the command line/the config files: * Styleroot: Directory containing the custom stylesheets. Must have the same directory structure as the original DocBook stylesheet root directory. Does _not_ need to contain stylesheets for all output formats. If stylesheets are not found, DAPS will automatically fall back to the DocBook stylesheets. - Variable: STYLEROOT - Parameter: --styleroot - Value: absolute path to directory * Fallback styleroot Custom fallback styleroot. If DAPS cannot find styles for the given output format, it will automatically fall back to the DocBook stylesheets. This config option will add a custom fallback directory with higher priority. The DocBook stylesheets will remain as a last resort, however. - Variable: FALLBACK_STYLEROOT OBS-URL: https://build.opensuse.org/package/show/Documentation:Tools/daps?expand=0&rev=79
2012-03-08 12:17:04 +01:00
echo "Successfully wrote source tarball ${NAME}-${VERSION}.tar.bz2"
#
# Copy the spec file if necessary
#
diff -q $SPECFILE ${TMPDIR}/${NAME}/packaging/$SPECFILE >/dev/null
if [[ 0 = $? ]]; then
echo "Spec file is up-to-date."
else
cp ${TMPDIR}/${NAME}/packaging/$SPECFILE . || exit_on_error "Failed to copy the specfile."
echo "Successfully updated the spec file."
fi
rm -rf ${TMPDIR}
exit 0