Bug#951398: Rebuild pax
control: tags -1 + patch
control: severity -1 serious
Hi,
For rebuilding pax you need to apply this patch then from
source/pax/latex/pax run ant
It will create the whole stuff under script directory.
You will need to add depends to pdfbox and common-logging java package
but it work
When I will upload the TDS package you will need to remove the
latex/pax/ .jar files and remove the ant file.
Could you apply the patch, rebuild and test ?
Thanks
Bastien
diff --git a/scripts/pax/pax.jar b/scripts/pax/pax.jar
deleted file mode 100644
index 36371e2..0000000
Binary files a/scripts/pax/pax.jar and /dev/null differ
diff --git a/scripts/pax/pdfannotextractor.pl b/scripts/pax/pdfannotextractor.pl
index 085dc43..fd5dc30 100755
--- a/scripts/pax/pdfannotextractor.pl
+++ b/scripts/pax/pdfannotextractor.pl
@@ -39,18 +39,15 @@ ${title}Syntax: $program [options] <PDF files[.pdf]>
Options:
--help print usage
--version print version number
- --install try installing PDFBox library
--debug debug informations
END_OF_USAGE
my $help = 0;
my $debug = 0;
-my $install = 0;
my $opt_version = 0;
use Getopt::Long;
GetOptions(
'debug!' => \$debug,
- 'install!' => \$install,
'help!' => \$help,
'version!' => \$opt_version,
) or die $usage;
@@ -59,24 +56,13 @@ if ($opt_version) {
print "$name $date v$version\n";
exit(0);
}
-!$install and (@ARGV >= 1 or die $usage);
+(@ARGV >= 1 or die $usage);
print $title;
my $error = '!!! Error:';
-my $url_pdfbox = 'http://prdownloads.sourceforge.net/pdfbox/PDFBox-0.7.3.zip?download';
-my $size_pdfbox_zip = 22769102;
-my $size_pdfbox_jar = 3321771;
-my $name_pdfbox_jar = 'PDFBox-0.7.3.jar';
-my $entry_pdfbox = "PDFBox-0.7.3/lib/$name_pdfbox_jar";
my $pdfbox = 'PDFBox';
-
my $prg_kpsewhich = 'kpsewhich';
-my $prg_wget = 'wget';
-my $prg_curl = 'curl';
-my $prg_unzip = 'unzip';
-my $prg_texhash = 'texhash';
-my $prg_mktexlsr = 'mktexlsr';
my $prg_java = 'java';
my %prg;
@@ -193,16 +179,11 @@ sub find_jar_pdfbox () {
}
}
+
sub launch_pax () {
check_prg $prg_java, 1;
my @cmd = ($prg_java);
- my $sep = $is_win ? ';' : ':';
- my $cp = "$path_jar_pax";
- $cp .= "$sep$path_jar_pdfbox" if $path_jar_pdfbox;
- $cp .= "$sep$classpath" if $classpath;
- push @cmd, '-cp';
- push @cmd, $cp;
- push @cmd, $main_class;
+ push @cmd, $path_jar_pax;
push @cmd, @ARGV;
debug 'System', "@cmd";
system @cmd;
@@ -222,200 +203,6 @@ sub launch_pax () {
return $exit_code;
}
-# install part
-
-sub expand_var ($) {
- my $var = shift;
- check_prg $prg_kpsewhich, 1;
- my $cmd = $prg_kpsewhich
- . " --progname $program"
- . ' --expand-var';
- $cmd .= $is_win ? " \$$var" : " \\\$$var";
- debug 'Backticks', $cmd;
- my $path = `$cmd`;
- if ($? == 0) {
- chomp $path;
- debug 'Exit code', '0/success';
- debug "\$$var", $path;
- return $path;
- }
- if ($? == -1) {
- die "!!! Error: Cannot execute `$prg_kpsewhich' ($!)!\n";
- }
- if ($? & 127) {
- die "!!! Error: `$prg_kpsewhich' died with signal " . ($? & 127)
- . (($? & 128) ? ' with coredump' : '') . "!\n";
- }
- debug 'Exit code', ($? >> 8);
- return '';
-}
-
-sub ensure_dir ($) {
- my $dir = shift;
- return if -d $dir;
- mkdir $dir or die "$error Cannot create directory `$dir'!\n";
- debug 'mkdir', $dir;
-}
-
-sub file_size ($) {
- my $file = shift;
- return -1 unless -f $file;
- return (stat $file)[7];
-}
-
-if ($install) {
- # Can PDFBox already be found?
- find_jar_pdfbox;
- if ($path_jar_pdfbox) {
- print "* Nothing to do, because $pdfbox is already found:\n"
- . " $path_jar_pdfbox\n";
- exit(0);
- }
-
- # Find TEXMFVAR
- my $tds_root;
- foreach my $var ('TEXMFVAR', 'VARTEXMF') {
- $tds_root = expand_var $var;
- last if $tds_root;
- }
- $tds_root or die "$error Cannot find settings for `TEXMFVAR' or `VARTEXMF'!\n";
-
- # Create directories
- ensure_dir $tds_root;
- my $tds_pax = $tds_root;
- $tds_pax =~ s/(\/*)$/\/scripts/;
- ensure_dir $tds_pax;
- $tds_pax .= '/pax';
- ensure_dir $tds_pax;
- my $tds_pax_lib = "$tds_pax/lib";
- ensure_dir $tds_pax_lib;
-
- # Download
- my $dest_file = "$tds_pax/PDFBox-0.7.3.zip";
- if (file_size $dest_file == $size_pdfbox_zip) {
- debug "$pdfbox archive found", $dest_file;
- }
- else {
- my @cmd;
- my $prg_download;
- check_prg $prg_wget, 0;
- if ($prg{$prg_wget}) {
- $prg_download = $prg_wget;
- push @cmd, $prg_wget;
- push @cmd, '-O';
- }
- else {
- check_prg $prg_curl, 0;
- $prg{$prg_curl} or die "$error Cannot find programs `wget' or `curl'"
- . " for downloading!\n";
- $prg_download = $prg_curl;
- push @cmd, $prg_curl;
- push @cmd, '-L';
- push @cmd, '-o';
- }
- push @cmd, $dest_file;
- push @cmd, $url_pdfbox;
- debug 'System', "@cmd";
- system @cmd;
- if ($? == 0) {
- debug 'Result', 'ok';
- }
- elsif ($? == -1) {
- die "$error Cannot execute `$prg_download' ($!)!\n";
- }
- elsif ($? & 127) {
- die "$error `$prg_download' died with signal " . ($? & 127)
- . (($? & 128) ? ' with coredump' : '') . "!\n";
- }
- else {
- my $exit_code = $? >> 8;
- die "$error `$prg_download' returns error code `$exit_code'!\n";
- }
- -f $dest_file or die "$error Download failed!\n";
- my $size = file_size $dest_file;
- $size == $size_pdfbox_zip
- or die "$error File size of $dest_file is $size,\n"
- . "but expected size is $size_pdfbox_zip!\n";
- }
- print "* Downloaded: $dest_file\n";
-
- # Unpack jar file
- check_prg $prg_unzip, 0;
- if ($prg{$prg_unzip}) {
- my @cmd = (
- $prg_unzip,
- '-j',
- '-d',
- $tds_pax_lib,
- $dest_file,
- $entry_pdfbox
- );
- debug 'System', "@cmd";
- system @cmd;
- if ($? == 0) {
- debug 'Result', 'ok';
- }
- elsif ($? == -1) {
- die "$error Cannot execute `$prg_unzip' ($!)!\n";
- }
- elsif ($? & 127) {
- die "$error `$prg_unzip' died with signal " . ($? & 127)
- . (($? & 128) ? ' with coredump' : '') . "!\n";
- }
- else {
- my $exit_code = $? >> 8;
- die "$error `$prg_unzip' returns error code `$exit_code'!\n";
- }
- }
- else {
- die "$error `$prg_unzip' not found!\n";
- }
- my $dest_jar = "$tds_pax_lib/$name_pdfbox_jar";
- -f $dest_jar or die "$error Unpacking failed!\n";
- my $size = file_size $dest_jar;
- $size == $size_pdfbox_jar
- or die "$error File size of $dest_jar is $size,\n"
- . "but expected size is $size_pdfbox_jar!\n";
-
- print "* Unpacked: $dest_jar\n";
-
- # Update TDS data base
- my $prg_tds_update;
- check_prg $prg_texhash, 0;
- if ($prg{$prg_texhash}) {
- $prg_tds_update = $prg_texhash;
- }
- else {
- check_prg $prg_mktexlsr, 0;
- $prg{$prg_mktexlsr} or die "$error Neither `$prg_texhash' nor `$prg_mktexlsr' found!\n";
- $prg_tds_update = $prg_mktexlsr;
- }
- my @cmd = ($prg_tds_update, $tds_root);
- debug 'System', "@cmd";
- system @cmd;
- if ($? == 0) {
- debug 'Result', 'ok';
- }
- elsif ($? == -1) {
- die "$error Cannot execute `$prg_tds_update' ($!)!\n";
- }
- elsif ($? & 127) {
- die "$error `$prg_tds_update' died with signal " . ($? & 127)
- . (($? & 128) ? ' with coredump' : '') . "!\n";
- }
- else {
- my $exit_code = $? >> 8;
- die "$error `$prg_tds_update' returns error code `$exit_code'!\n";
- }
-
- # Check installation result
- find_jar_pdfbox;
- if ($path_jar_pdfbox) {
- exit(0);
- }
- die "$error Installation failed, because $pdfbox library cannot be found!\n";
-}
-
# main program
my $ret = 0;
diff --git a/source/latex/pax/build.xml b/source/latex/pax/build.xml
index 230cd3e..16fbfd5 100644
--- a/source/latex/pax/build.xml
+++ b/source/latex/pax/build.xml
@@ -6,44 +6,68 @@
<property name="src" location="src"/>
<property name="build" location="build"/>
- <property name="dist" location="."/>
+ <property name="dist" location="../../../tex/latex/pax/"/>
<property name="pdfbox.home" location="${basedir}"/> <!-- or somewhere else -->
- <property name="pdfbox.name" value="PDFBox-0.7.2.jar"/>
<target name="init">
<mkdir dir="${build}"/>
</target>
<target name="compile"
- depends="init"
- description="compile the source"
- >
- <javac srcdir="${src}" destdir="${build}" target="1.4" source="1.4">
+ depends="init"
+ description="compile the source"
+ >
+ <javac srcdir="${src}" destdir="${build}">
<classpath>
- <!-- try with and without subdirectory `lib' -->
- <pathelement location="${pdfbox.home}/lib/${pdfbox.name}"/>
- <pathelement location="${pdfbox.home}/${pdfbox.name}"/>
+ <pathelement location="${basedir}/lib/pdfbox.jar"/>
+ <pathelement location="${basedir}/lib/commons-logging.jar"/>
</classpath>
</javac>
</target>
+ <path id="build.classpath">
+ <fileset dir="${basedir}">
+ <include name="lib/*.jar"/>
+ </fileset>
+ </path>
+
+ <pathconvert property="manifest.classpath" pathsep=" ">
+ <path refid="build.classpath"/>
+ <mapper>
+ <chainedmapper>
+ <flattenmapper/>
+ <globmapper from="*.jar" to="lib/*.jar"/>
+ </chainedmapper>
+ </mapper>
+ </pathconvert>
+
<target name="dist"
- depends="compile"
- description="generate the distribution"
- >
+ depends="compile"
+ description="generate the distribution"
+ >
<mkdir dir="${dist}"/>
+ <mkdir dir="${dist}/lib"/>
+ <copy todir="${dist}/lib" flatten="true">
+ <fileset dir="lib">
+ <include name="*.jar" />
+ </fileset>
+ </copy>
<jar jarfile="${dist}/${ant.project.name}.jar"
- manifest="${src}/MANIFEST.MF"
- basedir="${build}"
- includes="pax/**"
- />
+ manifest="${src}/MANIFEST.MF"
+ basedir="${build}"
+ includes="pax/**" >
+ <manifest>
+ <attribute name="Class-Path" value="${manifest.classpath}" />
+ </manifest>
+ </jar>
</target>
<target name="clean"
- description="clean up"
- >
+ description="clean up"
+ >
<delete dir="${build}"/>
- <delete file="${dist}/${ant.project.name}.jar"/>
+ <delete dir="${dist}/lib"/>
+ <delete file="${dist}/pax.jar" />
</target>
</project>
diff --git a/source/latex/pax/lib/commons-logging.jar b/source/latex/pax/lib/commons-logging.jar
new file mode 120000
index 0000000..3f5cb56
--- /dev/null
+++ b/source/latex/pax/lib/commons-logging.jar
@@ -0,0 +1 @@
+/usr/share/java/commons-logging.jar
\ No newline at end of file
diff --git a/source/latex/pax/lib/pdfbox.jar b/source/latex/pax/lib/pdfbox.jar
new file mode 120000
index 0000000..9927915
--- /dev/null
+++ b/source/latex/pax/lib/pdfbox.jar
@@ -0,0 +1 @@
+/usr/share/java/pdfbox.jar
\ No newline at end of file
diff --git a/source/latex/pax/src/PDFAnnotExtractor.java b/source/latex/pax/src/PDFAnnotExtractor.java
index 868dada..d135057 100644
--- a/source/latex/pax/src/PDFAnnotExtractor.java
+++ b/source/latex/pax/src/PDFAnnotExtractor.java
@@ -24,14 +24,14 @@ import java.io.*;
import java.text.*;
import java.util.*;
-import org.pdfbox.cos.*;
-import org.pdfbox.pdfparser.*;
-import org.pdfbox.pdmodel.*;
-import org.pdfbox.pdmodel.common.*;
-import org.pdfbox.pdmodel.interactive.action.*;
-import org.pdfbox.pdmodel.interactive.action.type.*;
-import org.pdfbox.pdmodel.interactive.annotation.*;
-import org.pdfbox.pdmodel.interactive.documentnavigation.destination.*;
+import org.apache.pdfbox.cos.*;
+import org.apache.pdfbox.pdfparser.*;
+import org.apache.pdfbox.pdmodel.*;
+import org.apache.pdfbox.pdmodel.common.*;
+import org.apache.pdfbox.pdmodel.interactive.action.*;
+import org.apache.pdfbox.pdmodel.interactive.action.type.*;
+import org.apache.pdfbox.pdmodel.interactive.annotation.*;
+import org.apache.pdfbox.pdmodel.interactive.documentnavigation.destination.*;
public class PDFAnnotExtractor implements Constants {
diff --git a/source/latex/pax/src/StringVisitor.java b/source/latex/pax/src/StringVisitor.java
index 485757e..1460ade 100644
--- a/source/latex/pax/src/StringVisitor.java
+++ b/source/latex/pax/src/StringVisitor.java
@@ -22,8 +22,8 @@ package pax;
import java.io.*;
import java.util.*;
-import org.pdfbox.cos.*;
-import org.pdfbox.exceptions.*;
+import org.apache.pdfbox.cos.*;
+import org.apache.pdfbox.exceptions.*;
public class StringVisitor implements ICOSVisitor {
Reply to: