diff options
-rw-r--r-- | misc/chm2pdf/README | 2 | ||||
-rw-r--r-- | misc/chm2pdf/chm2pdf.SlackBuild | 9 | ||||
-rw-r--r-- | misc/chm2pdf/chm2pdf.info | 6 | ||||
-rw-r--r-- | misc/chm2pdf/patches/tempdir.patch | 71 |
4 files changed, 83 insertions, 5 deletions
diff --git a/misc/chm2pdf/README b/misc/chm2pdf/README index 524e42cb278e2..a933c611a6d21 100644 --- a/misc/chm2pdf/README +++ b/misc/chm2pdf/README @@ -1,4 +1,4 @@ chm2pdf is a simple Python script that converts CHM files into PDF files. -It requires chmlib, pychm and htmldoc, all available at SlackBuilds.org. +It requires chmlib-examples, pychm and htmldoc, all available at SlackBuilds.org. diff --git a/misc/chm2pdf/chm2pdf.SlackBuild b/misc/chm2pdf/chm2pdf.SlackBuild index 9411605ee0627..0e60c0ea6f7fd 100644 --- a/misc/chm2pdf/chm2pdf.SlackBuild +++ b/misc/chm2pdf/chm2pdf.SlackBuild @@ -27,7 +27,7 @@ PRGNAM=chm2pdf VERSION=${VERSION:-0.9.1} ARCH=${ARCH:-i486} -BUILD=${BUILD:-1} +BUILD=${BUILD:-2} TAG=${TAG:-_SBo} CWD=$(pwd) @@ -50,6 +50,11 @@ find . \ \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ -exec chmod 644 {} \; +# Apply a patch againsts a security problem with temporary dirs. +# Bug report from Debian: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=501959 +# Patch from Gentoo: http://bugs.gentoo.org/205208 +cat $CWD/patches/tempdir.patch | patch -p1 + python setup.py build python setup.py install --root $PKG @@ -68,4 +73,4 @@ mkdir -p $PKG/install cat $CWD/slack-desc > $PKG/install/slack-desc cd $PKG -/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.tgz +/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.${PKGTYPE:-tgz} diff --git a/misc/chm2pdf/chm2pdf.info b/misc/chm2pdf/chm2pdf.info index fc0f0bc5a0041..77eb312faa6a8 100644 --- a/misc/chm2pdf/chm2pdf.info +++ b/misc/chm2pdf/chm2pdf.info @@ -3,6 +3,8 @@ VERSION="0.9.1" HOMEPAGE="http://code.google.com/p/chm2pdf" DOWNLOAD="http://chm2pdf.googlecode.com/files/chm2pdf-0.9.1.tar.gz" MD5SUM="2d5518e3284cca496270566c2554b713" -MAINTAINER="Joćo Felipe Santos" +DOWNLOAD_x86_64="" +MD5SUM_x86_64="" +MAINTAINER="JoĆ£o Felipe Santos" EMAIL="joao.eel[at]gmail.com" -APPROVED="rworkman" +APPROVED="dsomero" diff --git a/misc/chm2pdf/patches/tempdir.patch b/misc/chm2pdf/patches/tempdir.patch new file mode 100644 index 0000000000000..6bb5fe55d00de --- /dev/null +++ b/misc/chm2pdf/patches/tempdir.patch @@ -0,0 +1,71 @@ +--- chm2pdf-0.9.1.orig/chm2pdf 2008-07-09 12:42:26.000000000 +0200 ++++ chm2pdf-0.9.1/chm2pdf 2009-02-25 20:58:53.000000000 +0100 +@@ -27,6 +27,8 @@ + import os, os.path + import re, glob + import getopt ++import tempfile ++import shutil + # from BeautifulSoup import BeautifulSoup + + global version +@@ -39,8 +41,8 @@ + global filename #the input filename + + version = '0.9.1' +-CHM2PDF_TEMP_WORK_DIR='/tmp/chm2pdf/work' +-CHM2PDF_TEMP_ORIG_DIR='/tmp/chm2pdf/orig' ++CHM2PDF_TEMP_WORK_DIR=tempfile.mkdtemp() ++CHM2PDF_TEMP_ORIG_DIR=tempfile.mkdtemp() + + + +@@ -299,16 +301,6 @@ + # ########################### File extraction and correction: START ############################ + # + if options['dontextract'] == '': +- +- try: +- os.mkdir(CHM2PDF_TEMP_WORK_DIR) +- except OSError: # The directory already exists. +- pass +- +- try: +- os.mkdir(CHM2PDF_TEMP_ORIG_DIR) +- except OSError: # The directory already exists. +- pass + + try: + os.mkdir(CHM2PDF_ORIG_DIR) +@@ -620,7 +612,7 @@ + print '\t--continuous\n\t\tSpecifies that the HTML sources are unstructured (plain web pages).\n\t\tNo page breaks are inserted between each file or URL in the output.' + print '\t--cookies \'name="value with space"; name=value\'\n\t\t' + print '\t--datadir directory\n\t\tSpecifies the location of the HTMLDOC data files, usually /usr/share/htmldoc or C:\Program Files\HTMLDOC ' +- print "\t--dontextract \n\t\tIf given, %s will not extract the HTML files from the given CHM file, but will use previously extracted copies from the temporary directory " %name + '(i.e. ' + CHM2PDF_TEMP_ORIG_DIR + ' and ' + CHM2PDF_TEMP_WORK_DIR + '). Usually you will use this option after you have used the \'--extract-only\' option to extract the files in order to correct them manually (in ' + CHM2PDF_TEMP_WORK_DIR + '). After the correction, a call with \'--dontextract\' will not overwrite your changes, but will use the corrected files instead.' ++# print "\t--dontextract \n\t\tIf given, %s will not extract the HTML files from the given CHM file, but will use previously extracted copies from the temporary directory " %name + '(i.e. ' + CHM2PDF_TEMP_ORIG_DIR + ' and ' + CHM2PDF_TEMP_WORK_DIR + '). Usually you will use this option after you have used the \'--extract-only\' option to extract the files in order to correct them manually (in ' + CHM2PDF_TEMP_WORK_DIR + '). After the correction, a call with \'--dontextract\' will not overwrite your changes, but will use the corrected files instead.' + print '\t--duplex\n\t\tSpecifies that the output should be formatted for double-sided printing.' + print '\t--effectduration {0.1..10.0}\n\t\tSpecifies the duration in seconds of PDF page transition effects.' + print '\t--embedfonts\n\t\tSpecifies that fonts should be embedded in PDF output.' +@@ -1084,13 +1076,6 @@ + print 'CHM file "' + filename + '" not found!' + return + +- #remove temporary files +- if options['dontextract'] == '': +- if options['verbose']=='--verbose' and options['verbositylevel']=='high': +- print 'Removing any previous temporary files...' +- os.system('rm -r '+CHM2PDF_ORIG_DIR+'/*') +- os.system('rm -r '+CHM2PDF_WORK_DIR+'/*') +- + cfile = chm.CHMFile() + cfile.LoadCHM(filename) + +@@ -1105,6 +1090,8 @@ + os.system('extract_chmLib ' + filename + ' ' + CHM2PDF_ORIG_DIR + '&> /dev/null') + + convert_to_pdf(cfile, filename, outputfilename, options) ++ shutil.rmtree(CHM2PDF_TEMP_WORK_DIR) ++ shutil.rmtree(CHM2PDF_TEMP_ORIG_DIR) + + + if __name__ == '__main__': |