diff options
Diffstat (limited to 'postprocess')
-rw-r--r-- | postprocess/checkdeliver/checkdeliver.pl | 307 | ||||
-rw-r--r-- | postprocess/checkdeliver/makefile.mk | 44 | ||||
-rw-r--r-- | postprocess/checkxml/checkxml.pl | 140 | ||||
-rw-r--r-- | postprocess/checkxml/makefile.mk | 42 | ||||
-rw-r--r-- | postprocess/packcomponents/makefile.mk | 391 | ||||
-rw-r--r-- | postprocess/packconfig/macosx/macosx_menubar_modification.xsl | 26 | ||||
-rw-r--r-- | postprocess/packconfig/makefile.mk | 42 | ||||
-rwxr-xr-x | postprocess/packconfig/packconfig.pl | 291 | ||||
-rw-r--r-- | postprocess/packregistry/makefile.mk | 548 | ||||
-rw-r--r-- | postprocess/prj/build.lst | 9 | ||||
-rw-r--r-- | postprocess/prj/d.lst | 7 | ||||
-rw-r--r-- | postprocess/rebase/coffbase.txt | 400 | ||||
-rw-r--r-- | postprocess/rebase/makefile.mk | 59 | ||||
-rw-r--r-- | postprocess/rebase/no_rebase.txt | 33 | ||||
-rwxr-xr-x | postprocess/rebase/rebase.pl | 302 | ||||
-rw-r--r-- | postprocess/signing/makefile.mk | 60 | ||||
-rw-r--r-- | postprocess/signing/no_signing.txt | 13 | ||||
-rw-r--r-- | postprocess/signing/signing.pl | 273 |
18 files changed, 2987 insertions, 0 deletions
diff --git a/postprocess/checkdeliver/checkdeliver.pl b/postprocess/checkdeliver/checkdeliver.pl new file mode 100644 index 000000000000..de240f7de32e --- /dev/null +++ b/postprocess/checkdeliver/checkdeliver.pl @@ -0,0 +1,307 @@ +: +eval 'exec perl -wS $0 ${1+"$@"}' + if 0; +#************************************************************************* +# +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +# +# Copyright 2000, 2010 Oracle and/or its affiliates. +# +# OpenOffice.org - a multi-platform office productivity suite +# +# This file is part of OpenOffice.org. +# +# OpenOffice.org is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License version 3 +# only, as published by the Free Software Foundation. +# +# OpenOffice.org is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Lesser General Public License version 3 for more details +# (a copy is included in the LICENSE file that accompanied this code). +# +# You should have received a copy of the GNU Lesser General Public License +# version 3 along with OpenOffice.org. If not, see +# <http://www.openoffice.org/license.html> +# for a copy of the LGPLv3 License. +# +#************************************************************************* +# +# +# checkdeliver.pl - compare delivered files on solver with those on SRC_ROOT +# + +use strict; +use Getopt::Long; +use File::stat; +use IO::Handle; + +use lib ("$ENV{SOLARENV}/bin/modules"); + +#### globals ##### + +my $err = 0; +my $srcrootdir = ''; +my $solverdir = ''; +my $platform = ''; +my $logfile = ''; +my $milestoneext = ''; +my $local_env = 0; +my @exceptionmodlist = ( + "postprocess", + "instset.*native", + "smoketest.*native", + "testautomation", + "testgraphical" + ); # modules not yet delivered + +#### main ##### + +print_logged("checkdeliver.pl - checking delivered binaries\n"); + +get_globals(); # get global variables +my $deliverlists_ref = get_deliver_lists(); # get deliver log files +foreach my $listfile ( @$deliverlists_ref ) { + $err += check( $listfile ); # check delivered files +} +print_logged("OK\n") if ( ! $err ); +exit $err; + +#### subroutines #### + +sub get_globals +# set global variables using environment variables and command line options +{ + my $help; + + # set global variables according to environnment + $platform = $ENV{INPATH}; + $srcrootdir = "$ENV{SRC_ROOT}/clone"; + $solverdir = $ENV{SOLARVERSION}; + $milestoneext = $ENV{UPDMINOREXT}; + + # override environment with command line options + GetOptions('help' => \$help, + 'l=s' => \$logfile, + 'p=s' => \$platform + ) or usage (1); + + if ( $help ) { + usage(0); + } + + #do some sanity checks + if ( ! ( $platform && $srcrootdir && $solverdir ) ) { + die "Error: please set environment\n"; + } + if ( ! -d $solverdir ) { + die "Error: cannot find solver directory '$solverdir'\n"; + } + + # Check for local env., taken from solenv/bin/modules/installer/control.pm + # In this case the content of SOLARENV starts with the content of SOL_TMP + my $solarenv = ""; + my $sol_tmp; + if ( $ENV{'SOLARENV'} ) { + $solarenv = $ENV{'SOLARENV'}; + } + if ( $ENV{'SOL_TMP'} ) { + $sol_tmp = $ENV{'SOL_TMP'}; + } + if ( defined $sol_tmp && ( $solarenv =~ /^\s*\Q$sol_tmp\E/ )) { + # Content of SOLARENV starts with the content of SOL_TMP: Local environment + $local_env = 1; + } +} + +sub get_deliver_lists +# find deliver log files on solver +{ + my @files; + my $pattern = "$solverdir/$platform/inc"; + $pattern .= "$milestoneext" if ( $milestoneext ); + $pattern .= "/*/deliver.log"; + + @files = glob( $pattern ); + # do not check modules not yet built + foreach my $exceptionpattern ( @exceptionmodlist ) { + @files = grep ! /\/$exceptionpattern\//, @files; + } + if ( ! @files ) { + print_logged( "Error: cannot find deliver log files\n" ); + exit 1; + } + return \@files; +} + +sub check +# reads deliver log file given as parameter and compares pairs of files listed there. +{ + my $listname = shift; + my $error = 0; + my %delivered; + my $module; + my $repository; + STDOUT->autoflush(1); + # which module are we checking? + if ( $listname =~ /\/([\w-]+?)\/deliver\.log$/o) { + $module = $1; + } else { + print_logged( "Error: cannot determine module name from \'$listname\'\n" ); + return 1; + } + + if ( -z $listname ) { + print_logged( "Warning: empty deliver log file \'$listname\'. Module '$module' not delivered correctly?\n\n" ); + return 0; + } + + # read deliver log file + if ( ! open( DELIVERLOG, "< $listname" ) ) { + print_logged( "Error: cannot open file \'$listname\'\n$!" ); + exit 2; + } + while ( <DELIVERLOG> ) { + next if ( /^LINK / ); + # What's this modules' repository? + if ( /COPY\s+(.+?)\/$module\/prj\/build.lst/ ) { +# if ( /COPY (\w[\w\s-]*?)\/$module\/prj\/build.lst/ ) { + $repository = $1; + } + # For now we concentrate on binaries, located in 'bin' or 'lib' and 'misc/build/<...>/[bin|lib]'. + next if ( (! /\/$module\/$platform\/[bl]i[nb]\//) && (! /\/$module\/$platform\/misc\/build\//)); + next if (! /[bl]i[nb]/); + next if ( /\.html$/ ); + chomp; + if ( /^\w+? (\S+) (\S+)\s*$/o ) { + my $origin = $1; + $delivered{$origin} = $2; + } else { + print_logged( "Warning: cannot parse \'$listname\' line\n\'$_\'\n" ); + } + } + close( DELIVERLOG ); + + if ( ! $repository ) { + print_logged( "Error parsing \'$listname\': cannot determine repository. Module '$module' not delivered correctly?\n\n" ); + $error ++; + return $error; + } + + my $path = "$srcrootdir/$repository/$module"; + # is module physically accessible? + # there are valid use cases where we build against a prebuild solver whithout having + # all modules at disk + my $canread = is_moduledirectory( $path ); + if ( ! $canread ) { + # do not bother about non existing modules in local environment + # or on childworkspaces + if (( $local_env ) || ( $ENV{CWS_WORK_STAMP} )) { + return $error; + } + # in a master build it is considered an error to have deliver leftovers + # from non exising (removed) modules + print_logged( "Error: module '$module' not found.\n" ); + $error++; + return $error; + } + if ( $canread == 2 ) { + # module is linked and not built, no need for checking + # should not happen any more nowadays ... + return $error; + } + + # compare all delivered files with their origin + # no strict 'diff' allowed here, as deliver may alter files (hedabu, strip, ...) + foreach my $file ( sort keys %delivered ) { + my $ofile = "$srcrootdir/$file"; + my $sfile = "$solverdir/$delivered{$file}"; + if ( $milestoneext ) { + # deliver log files do not contain milestone extension on solver + $sfile =~ s/\/$platform\/(...)\//\/$platform\/$1$milestoneext\//; + } + my $orgfile_stats = stat($ofile); + next if ( -d _ ); # compare files, not directories + my $delivered_stats = lstat($sfile); + next if ( -d _ ); # compare files, not directories + if ( $^O !~ /^MSWin/ ) { + # windows does not know about links. + # Therefore lstat() is not a lstat, and the following check would break + next if ( -l _ ); # compare files, not links + } + + if ( $orgfile_stats && $delivered_stats ) { + # Stripping (on unix like platforms) and signing (for windows) + # changes file size. Therefore we have to compare for file dates. + # File modification time also can change after deliver, f.e. by + # rebasing, but only increase. It must not happen that a file on + # solver is older than it's source. + if ( ( $orgfile_stats->mtime - $delivered_stats->mtime ) gt 1 ) { + print_logged( "Error: " ); + print_logged( "delivered file is older than it's source '$ofile' '$sfile'\n" ); + $error ++; + } + } elsif ( !$orgfile_stats && $delivered_stats ) { + # This is not an error if we have a solver and did not build the + # module! + } elsif ( !$orgfile_stats && !$delivered_stats ) { + # This is not necessarily an error. + # Instead, this seems to be an error of the deliver.log file. + } else { + print_logged( "Error: no such file '$ofile'\n" ) if ( ! $orgfile_stats ); + print_logged( "Error: no such file '$sfile'\n" ) if ( ! $delivered_stats ); + $error ++; + } + } + if ( $error ) { + print_logged( "$error errors found: Module '$module' not delivered correctly?\n\n" ); + } + STDOUT->autoflush(0); + return $error; +} + +sub is_moduledirectory +# Test whether we find a module having a d.lst file at a given path. +# Return value: 1: path is valid directory +# 2: path.link is a valid link +# 0: module not found +{ + my $dirname = shift; + if ( -e "$dirname/prj/d.lst" ) { + return 1; + } elsif ( -e "$dirname.link/prj/d.lst" ) { + return 2 + } else { + return 0; + } +} + +sub print_logged +# Print routine. +# If a log file name is specified with '-l' option, print_logged() prints to that file +# as well as to STDOUT. If '-l' option is not set, print_logged() just writes to STDOUT +{ + my $message = shift; + print "$message"; + if ( $logfile ) { + open ( LOGFILE, ">> $logfile" ) or die "Can't open logfile '$logfile'\n"; + print LOGFILE "$message"; + close ( LOGFILE) ; + } +} + + +sub usage +# print usage message and exit +{ + my $retval = shift; + print STDERR "Usage: checkdeliver.pl [-h] [-p <platform>]\n"; + print STDERR "Compares delivered files on solver with original ones in build tree\n"; + print STDERR "Options:\n"; + print STDERR " -h print this usage message\n"; + print STDERR " -p platform specify platform\n"; + + exit $retval; +} + diff --git a/postprocess/checkdeliver/makefile.mk b/postprocess/checkdeliver/makefile.mk new file mode 100644 index 000000000000..ad6f5c0db524 --- /dev/null +++ b/postprocess/checkdeliver/makefile.mk @@ -0,0 +1,44 @@ +#************************************************************************* +# +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +# +# Copyright 2000, 2010 Oracle and/or its affiliates. +# +# OpenOffice.org - a multi-platform office productivity suite +# +# This file is part of OpenOffice.org. +# +# OpenOffice.org is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License version 3 +# only, as published by the Free Software Foundation. +# +# OpenOffice.org is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Lesser General Public License version 3 for more details +# (a copy is included in the LICENSE file that accompanied this code). +# +# You should have received a copy of the GNU Lesser General Public License +# version 3 along with OpenOffice.org. If not, see +# <http://www.openoffice.org/license.html> +# for a copy of the LGPLv3 License. +# +#************************************************************************* +PRJ=.. + + + +PRJNAME=postprocess +TARGET=checkdeliver + +.INCLUDE : settings.mk + +.INCLUDE : target.mk + +ALLTAR : $(MISC)$/checkdeliver.done + +$(MISC)$/checkdeliver.done .PHONY: + # FIXME: the output was always ignored until ooo320-m15; it would be nice to check it though + # $(PERL) checkdeliver.pl && $(TOUCH) $@ + $(TOUCH) $@ + diff --git a/postprocess/checkxml/checkxml.pl b/postprocess/checkxml/checkxml.pl new file mode 100644 index 000000000000..385784a019e9 --- /dev/null +++ b/postprocess/checkxml/checkxml.pl @@ -0,0 +1,140 @@ +: +eval 'exec perl -wS $0 ${1+"$@"}' + if 0; +#************************************************************************* +# +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +# +# Copyright 2000, 2010 Oracle and/or its affiliates. +# +# OpenOffice.org - a multi-platform office productivity suite +# +# This file is part of OpenOffice.org. +# +# OpenOffice.org is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License version 3 +# only, as published by the Free Software Foundation. +# +# OpenOffice.org is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Lesser General Public License version 3 for more details +# (a copy is included in the LICENSE file that accompanied this code). +# +# You should have received a copy of the GNU Lesser General Public License +# version 3 along with OpenOffice.org. If not, see +# <http://www.openoffice.org/license.html> +# for a copy of the LGPLv3 License. +# +#************************************************************************* +# +# +# check_xml.pl - check xml,xcs,xcu files size, NULL character +# + +my +$is_debug=0; +my $err = 0; +my $path = $ENV{'SOLARVERSION'} . '/' . $ENV{'INPATH'} . '/xml' . "$ENV{'UPDMINOREXT'}/"; +my $pck_path = $ENV{'SOLARVERSION'} . '/' . $ENV{'INPATH'} . '/pck' . "$ENV{'UPDMINOREXT'}/"; +my $unzipexe="unzip"; + +#Path of the directory from which the recursion starts (must have ending '/'). +print "Checking:$path\n"; +# Initiate the recursion +&RecurseDirs($path); +$err += &check_registry_zips($pck_path); +if ($err > 0) +{ + print "Error: $err damaged files encountered\n"; + exit(1); # stop dmake +} else +{ + print "ok.\n"; +} +exit; + +#### SUBROUTINES SECTION #### + +# Function that recurses through the directory tree calling FileFunction on all files +sub RecurseDirs { + my ($path) = @_; + my $file; #Variable for a file + + opendir (DIRECTORY, $path) or + die "Can't read $path\n"; + my @all_files = grep (!/^\.\.?$/, readdir (DIRECTORY)); #Read all the files except for '.' and '..' + closedir (DIRECTORY); + + foreach $file (@all_files) { + if (-d "$path$file/") { + &RecurseDirs("$path$file/"); + } else { + &check($path, $file); + } + } +} + +############################################################################ +sub check #04.02.2005 13:40 +############################################################################ + { + my $path = shift; + my $file = shift; + print "$path$file\n" if ((-e "$path$file") && $is_debug); + return if ( $file !~ /.+\.(xcu|xml|xcs)/ ); #check xml and xcu files only + if ( -z "$path$file" ) { + print "Error: $path$file 0 Bytes!\n"; + $err++; + } else + { + open( FH, "<$path$file" ); + while ( $line = <FH> ) { + #print $line; + if ( $line =~ /\000+/ ) { + print "Error: NULL characters detected in $path$file\n"; + $err++; + } + } + close(FH); + } + } + + ############################################################################ + sub check_registry_zips #20.04.2005 18:47 + ############################################################################ + { + my $path = shift; + my $error = 0; + my $commandargs; + opendir (DIRECTORY, $path) or + die "Can't read $path\n"; + my @all_files = grep (!/^\.\.?$/, readdir (DIRECTORY)); #Read all the files except for '.' and '..' + closedir (DIRECTORY); + foreach $file (@all_files) { + if ( $file =~ /registry_.+\.zip$/ ) { + $commandargs="$path$file"; + # Cygwin's perl needs escaped \ in system() and open( COMMAND ... ) + if ( "$^O" eq "cygwin" ) { $commandargs =~ s/\\/\\\\/g; } + print "file=$commandargs\n" if ($is_debug); + open(UNZIP,"$unzipexe -l $commandargs |"); + my $ferror = 0; + while ( $line = <UNZIP> ) { + #print $line; + my @param = split(" ",$line); + if ( $param[0] =~ /\d+/ ) { + if ( $param[0] == 0 && $param[3] =~ /.+\.xcu$/) + { + $error++; $ferror=1; + } + } + } + if ( $ferror ) { + print "Error: $commandargs contains files with 0 byte size\n"; + } + close(UNZIP); + } + } + + ($error); + } ##check_registry_zips diff --git a/postprocess/checkxml/makefile.mk b/postprocess/checkxml/makefile.mk new file mode 100644 index 000000000000..37843406f241 --- /dev/null +++ b/postprocess/checkxml/makefile.mk @@ -0,0 +1,42 @@ +#************************************************************************* +# +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +# +# Copyright 2000, 2010 Oracle and/or its affiliates. +# +# OpenOffice.org - a multi-platform office productivity suite +# +# This file is part of OpenOffice.org. +# +# OpenOffice.org is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License version 3 +# only, as published by the Free Software Foundation. +# +# OpenOffice.org is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Lesser General Public License version 3 for more details +# (a copy is included in the LICENSE file that accompanied this code). +# +# You should have received a copy of the GNU Lesser General Public License +# version 3 along with OpenOffice.org. If not, see +# <http://www.openoffice.org/license.html> +# for a copy of the LGPLv3 License. +# +#************************************************************************* +PRJ=.. + + + +PRJNAME=postprocess +TARGET=checkxml + +.INCLUDE : settings.mk + +.INCLUDE : target.mk + +ALLTAR : $(MISC)$/checkxml.done + +$(MISC)$/checkxml.done .PHONY: + $(PERL) checkxml.pl + diff --git a/postprocess/packcomponents/makefile.mk b/postprocess/packcomponents/makefile.mk new file mode 100644 index 000000000000..0f97b77864fa --- /dev/null +++ b/postprocess/packcomponents/makefile.mk @@ -0,0 +1,391 @@ +#************************************************************************* +# +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +# +# Copyright 2000, 2010 Oracle and/or its affiliates. +# +# OpenOffice.org - a multi-platform office productivity suite +# +# This file is part of OpenOffice.org. +# +# OpenOffice.org is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License version 3 +# only, as published by the Free Software Foundation. +# +# OpenOffice.org is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Lesser General Public License version 3 for more details +# (a copy is included in the LICENSE file that accompanied this code). +# +# You should have received a copy of the GNU Lesser General Public License +# version 3 along with OpenOffice.org. If not, see +# <http://www.openoffice.org/license.html> +# for a copy of the LGPLv3 License. +# +#***********************************************************************/ + +PRJ = .. +PRJNAME = postprocess +TARGET = packcomponents + +.INCLUDE: settings.mk + +#TODO (copied from scp2/source/ooo/makefile.mk): +.IF "$(OS)" != "MACOSX" && "$(OS)" != "WNT" && "$(ENABLE_GTK)" != "" +PKGCONFIG_MODULES=gtk+-2.0 +.INCLUDE: pkg_config.mk +GTK_TWO_FOUR=$(shell @+-$(PKG_CONFIG) --exists 'gtk+-2.0 >= 2.4.0' && echo YES) +.END + +.IF "$(USE_GMAKE)" != "1" +SM_COMPONENTS:=sm smd +.ELSE +SM_COMPONENTS:= component/starmath/util/sm component/starmath/util/smd +.END + +my_components = \ + abp \ + adabasui \ + analysis \ + animcore \ + avmedia \ + basctl \ + basprov \ + bib \ + cached1 \ + calc \ + canvasfactory \ + chartcontroller \ + chartmodel \ + charttools \ + chartview \ + component/comphelper/util/comphelp \ + component/framework/util/fwk \ + component/framework/util/fwl \ + component/framework/util/fwm \ + component/vbahelper/util/msforms \ + component/sc/util/sc \ + component/sc/util/scd \ + component/sc/util/scfilt \ + component/sc/util/vbaobj \ + component/sfx2/util/sfx \ + component/sot/util/sot \ + component/svl/source/fsstor/fsstorage \ + component/svl/source/passwordcontainer/passwordcontainer \ + component/svl/util/svl \ + component/svtools/source/hatchwindow/hatchwindowfactory \ + component/svtools/source/productregistration/productregistration.uno \ + component/svtools/util/svt \ + component/svx/util/svx \ + component/svx/util/svxcore \ + component/svx/util/textconversiondlgs \ + component/sw/util/msword \ + component/sw/util/sw \ + component/sw/util/swd \ + component/sw/util/vbaswobj \ + component/toolkit/util/tk \ + component/unoxml/source/rdf/unordf \ + component/unoxml/source/service/unoxml \ + component/xmloff/source/transform/xof \ + component/xmloff/util/xo \ + configmgr \ + ctl \ + date \ + dba \ + dbase \ + dbaxml \ + dbmm \ + dbp \ + dbpool2 \ + dbtools \ + dbu \ + deployment \ + deploymentgui \ + dlgprov \ + embobj \ + evtatt \ + fastsax \ + fileacc \ + filterconfig1 \ + flash \ + flat \ + for \ + fpicker \ + fps_office \ + frm \ + guesslang \ + hwp \ + hyphen \ + i18npool \ + i18nsearch \ + lng \ + lnth \ + localebe1 \ + log \ + lwpfilter \ + mcnttype \ + migrationoo2 \ + msfilter \ + msworksfilter \ + mysql \ + odbc \ + odfflatxml \ + offacc \ + oooimprovecore \ + oox \ + package2 \ + pcr \ + pdffilter \ + placeware \ + preload \ + protocolhandler \ + pythonloader \ + res \ + rpt \ + rptui \ + rptxml \ + sax \ + sb \ + scn \ + scriptframe \ + sd \ + sdbc2 \ + sdbt \ + sdd \ + simplecanvas \ + slideshow \ + $(SM_COMPONENTS)\ + solver \ + spell \ + spl \ + srtrs1 \ + stringresource \ + svgfilter \ + syssh \ + t602filter \ + tvhlp1 \ + ucb1 \ + ucpchelp1 \ + ucpexpand1 \ + ucpext \ + ucpfile1 \ + ucpftp1 \ + ucphier1 \ + ucppkg1 \ + ucptdoc1 \ + updatefeed \ + updchk \ + updchk.uno \ + utl \ + uui \ + vbaevents \ + vcl \ + vclcanvas \ + wpft \ + wpgfilter \ + writerfilter \ + xcr \ + xmlfa \ + xmlfd \ + xmx \ + xsltdlg \ + xsltfilter \ + xstor + +.IF "$(OS)" != "WNT" && "$(OS)" != "MACOSX" +my_components += splash +.ENDIF + +.IF "$(BUILD_SPECIAL)" != "" +my_components += oooimprovement +.END + +.IF "$(DISABLE_ATL)" == "" +my_components += emboleobj +.END + +.IF "$(DISABLE_NEON)" != "TRUE" +my_components += ucpdav1 +.END + +.IF "$(ENABLE_CAIRO)" == "TRUE" +my_components += cairocanvas +.END + +.IF "$(ENABLE_GCONF)" != "" +my_components += gconfbe1 +.END + +.IF "$(ENABLE_GIO)" != "" +my_components += ucpgio +.END + +.IF "$(ENABLE_GNOMEVFS)" != "" +my_components += ucpgvfs +.END + +.IF "$(ENABLE_KAB)" != "" +my_components += kab1 +.END + +.IF "$(ENABLE_KDE)" != "" +my_components += kdebe1 +.END + +.IF "$(ENABLE_KDE4)" != "" +my_components += kde4be1 +.END + +.IF "$(ENABLE_OGL)" == "TRUE" +my_components += ogltrans +.END + +.IF "$(ENABLE_SVCTAGS)" == "YES" +my_components += productregistration.jar +.END + +.IF "$(SOLAR_JAVA)" == "TRUE" +my_components += \ + LuceneHelpWrapper \ + ScriptFramework \ + ScriptProviderForJava \ + XMergeBridge \ + XSLTFilter.jar \ + XSLTValidate \ + agenda \ + fax \ + form \ + hsqldb \ + jdbc \ + letter \ + query \ + report \ + table \ + web +.END + +.IF "$(WITH_BINFILTER)" != "NO" +my_components += \ + bf_migratefilter \ + bindet +.END + +.IF "$(WITH_LDAP)" == "YES" +my_components += ldapbe2 +.END + +.IF "$(WITH_MOZILLA)" != "NO" +my_components += \ + xmlsecurity \ + xsec_fw \ + xsec_xmlsec \ + pl +.END + +.IF "$(OS)" == "MACOSX" +my_components += \ + MacOSXSpell \ + avmediaQuickTime \ + fps_aqua \ + macab1 \ + macbe1 +.END + +.IF "$(OS)" == "WNT" +my_components += \ + ado \ + dnd \ + dtrans \ + fop \ + fps \ + ftransl \ + java_uno_accessbridge \ + smplmail \ + sysdtrans \ + wininetbe1 +.END + +.IF "$(OS)" == "WNT" && "$(DISABLE_ATL)" == "" +my_components += \ + emser \ + oleautobridge +.END + +.IF "$(OS)" == "WNT" && "$(ENABLE_DIRECTX)" != "" +my_components += \ + avmediawin \ + directx9canvas \ + gdipluscanvas +.END + +.IF "$(OS)" == "WNT" && "$(ENABLE_DIRECTX)" != "" && "$(USE_DIRECTX5)" != "" +my_components += directx5canvas +.END + +.IF "$(OS)" == "LINUX" || "$(OS)" == "NETBSD" || \ + ("$(OS)" == "SOLARIS" && "$(CPU)" == "S") || "$(OS)" == "WNT" +my_components += adabas +.END + +.IF "$(OS)" != "MACOSX" && "$(SYSTEM_MOZILLA)" != "YES" && \ + "$(WITH_MOZILLA)" != "NO" +my_components += mozab +.ELSE +my_components += mozbootstrap +.END + +.IF "$(OS)" != "MACOSX" && "$(OS)" != "WNT" +my_components += desktopbe1 +.END + +.IF "$(GTK_TWO_FOUR)" != "" +my_components += fps_gnome +.END + +.IF "$(OS)" != "MACOSX" && "$(OS)" != "WNT" && "$(ENABLE_KDE4)" != "" +my_components += fps_kde4 +.END + +.IF "$(OS)" != "WNT" +my_components += cmdmail +.END + +.IF "$(OS)" != "WNT" && "$(ENABLE_EVOAB2)" != "" +my_components += evoab +.END + +.IF "$(OS)" != "WNT" && "$(ENABLE_GSTREAMER)" != "" +my_components += avmediagstreamer +.END + +.IF "$(OS)" != "WNT" && "$(SOLAR_JAVA)" == "TRUE" +my_components += avmedia.jar +.END + +my_ooo_components = mailmerge + +.INCLUDE: target.mk + +ALLTAR : $(MISC)/services.rdb $(MISC)/ooo-services.rdb + +$(MISC)/services.rdb .ERRREMOVE : $(SOLARENV)/bin/packcomponents.xslt \ + $(MISC)/services.input $(my_components:^"$(SOLARXMLDIR)/":+".component") + $(XSLTPROC) --nonet --stringparam prefix $(SOLARXMLDIR)/ -o $@ \ + $(SOLARENV)/bin/packcomponents.xslt $(MISC)/services.input + +$(MISC)/services.input : makefile.mk + echo \ + '<list>$(my_components:^"<filename>":+".component</filename>")</list>' \ + > $@ + +$(MISC)/ooo-services.rdb .ERRREMOVE : $(SOLARENV)/bin/packcomponents.xslt \ + $(MISC)/ooo-services.input \ + $(my_ooo_components:^"$(SOLARXMLDIR)/":+".component") + $(XSLTPROC) --nonet --stringparam prefix $(SOLARXMLDIR)/ -o $@ \ + $(SOLARENV)/bin/packcomponents.xslt $(MISC)/ooo-services.input + +$(MISC)/ooo-services.input : makefile.mk + echo '<list>' \ + '$(my_ooo_components:^"<filename>":+".component</filename>")' \ + '</list>' > $@ diff --git a/postprocess/packconfig/macosx/macosx_menubar_modification.xsl b/postprocess/packconfig/macosx/macosx_menubar_modification.xsl new file mode 100644 index 000000000000..91c1d6fc2522 --- /dev/null +++ b/postprocess/packconfig/macosx/macosx_menubar_modification.xsl @@ -0,0 +1,26 @@ +<?xml version="1.0" encoding="utf-8"?> +<xsl:stylesheet version='1.0' + xmlns:menu="http://openoffice.org/2001/menu" + xmlns:xsl='http://www.w3.org/1999/XSL/Transform' > + + <!-- identity template, does reproduce every IN node on the output --> + <xsl:template match="node()|@*"> + <xsl:copy> + <xsl:apply-templates select="node()|@*"/> + </xsl:copy> + </xsl:template> + + <!-- filtering template : removes the concerned nodes --> + <!-- removes the separator just before the expected item --> + <xsl:template match="menu:menuseparator[following-sibling::menu:menuitem[1]/@menu:id='.uno:Quit']"/> + <!-- suppression of the Quit item --> + <xsl:template match="menu:menuitem[@menu:id='.uno:Quit']"/> + + <xsl:template match="menu:menuseparator[following-sibling::menu:menuitem[1]/@menu:id='.uno:About']"/> + <!-- suppression of the About item --> + <xsl:template match="menu:menuitem[@menu:id='.uno:About']"/> + + <!-- suppression of the OptionsTreeDialog item --> + <xsl:template match="menu:menuitem[@menu:id='.uno:OptionsTreeDialog']"/> + +</xsl:stylesheet> diff --git a/postprocess/packconfig/makefile.mk b/postprocess/packconfig/makefile.mk new file mode 100644 index 000000000000..c7c4d2b47b18 --- /dev/null +++ b/postprocess/packconfig/makefile.mk @@ -0,0 +1,42 @@ +#************************************************************************* +# +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +# +# Copyright 2000, 2010 Oracle and/or its affiliates. +# +# OpenOffice.org - a multi-platform office productivity suite +# +# This file is part of OpenOffice.org. +# +# OpenOffice.org is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License version 3 +# only, as published by the Free Software Foundation. +# +# OpenOffice.org is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Lesser General Public License version 3 for more details +# (a copy is included in the LICENSE file that accompanied this code). +# +# You should have received a copy of the GNU Lesser General Public License +# version 3 along with OpenOffice.org. If not, see +# <http://www.openoffice.org/license.html> +# for a copy of the LGPLv3 License. +# +#************************************************************************* +PRJ=.. + + + +PRJNAME=postprocess +TARGET=uiconfig + +.INCLUDE : settings.mk + +.INCLUDE : target.mk + +ALLTAR : $(BIN)$/uiconfig.zip + +$(BIN)$/uiconfig.zip .PHONY: + $(PERL) packconfig.pl -i $(SOLARXMLDIR)$/uiconfig -o $@ + diff --git a/postprocess/packconfig/packconfig.pl b/postprocess/packconfig/packconfig.pl new file mode 100755 index 000000000000..5dcb48fa8c0a --- /dev/null +++ b/postprocess/packconfig/packconfig.pl @@ -0,0 +1,291 @@ +: +eval 'exec perl -wS $0 ${1+"$@"}' + if 0; +#************************************************************************* +# +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +# +# Copyright 2000, 2010 Oracle and/or its affiliates. +# +# OpenOffice.org - a multi-platform office productivity suite +# +# This file is part of OpenOffice.org. +# +# OpenOffice.org is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License version 3 +# only, as published by the Free Software Foundation. +# +# OpenOffice.org is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Lesser General Public License version 3 for more details +# (a copy is included in the LICENSE file that accompanied this code). +# +# You should have received a copy of the GNU Lesser General Public License +# version 3 along with OpenOffice.org. If not, see +# <http://www.openoffice.org/license.html> +# for a copy of the LGPLv3 License. +# +#************************************************************************* + +# +# packconfig.pl - pack xml configuration into archives +# + +use strict; +use Getopt::Long; +use File::Find; +use File::Basename; +use Archive::Zip qw(:ERROR_CODES :CONSTANTS); + +#### globals #### + +my $out_file; # path to output archive +my $tmp_out_file; # path to temporary output file +my $files_path; # path to look for desired files +my $verbose; # be verbose +my $extra_verbose; # be extra verbose +my $do_rebuild = 0; # is rebuilding zipfile required? + +#### script id ##### + +( my $script_name = $0 ) =~ s/^.*\b(\w+)\.pl$/$1/; + +my $script_rev; +my $id_str = ' $Revision: 1.3.24.2 $ '; +$id_str =~ /Revision:\s+(\S+)\s+\$/ + ? ($script_rev = $1) : ($script_rev = "-"); + +#print "$script_name -- version: $script_rev\n"; + +#### main ##### + +parse_options(); +my %files_hash; +my $file_ref = get_files(); + +$do_rebuild = is_file_newer(\%files_hash) if $do_rebuild == 0; + +if ( $do_rebuild == 1 ) { + create_zip_archive(\%files_hash); + replace_file($tmp_out_file, $out_file); + print_message("packing $out_file finished."); +} else { + print_message("$out_file up to date. nothing to do."); +} + +exit(0); + +#### subroutines #### + +sub parse_options +{ + my $opt_help; + my $p = Getopt::Long::Parser->new(); + my $success =$p->getoptions( + '-h' => \$opt_help, + '-o=s' => \$out_file, + '-i=s' => \$files_path, + '-v' => \$verbose, + '-vv' => \$extra_verbose + ); + + if ( $opt_help || !$success || !$out_file || !$files_path ) + { + usage(); + exit(1); + } + + #define intermediate output file + $tmp_out_file="$out_file"."$$".$ENV{INPATH}; + # Sanity checks. + + # Check if out_file can be written. + my $out_dir = dirname($out_file); + print_error("no such directory: '$out_dir'", 2) if ! -d $out_dir; + print_error("can't search directory: '$out_dir'", 2) if ! -x $out_dir; + print_error("directory is not writable: '$out_dir'", 2) if ! -w $out_dir; + + # Check paths. + foreach ($files_path) { + print_error("no such directory: '$_'", 2) if ! -d $_; + print_error("can't search directory: '$_'", 2) if ! -x $_; + } +} + +sub get_files +{ + local @main::file_list; + + find_files(\%files_hash); + + if ( !keys %files_hash ) { + print_error("can't find any image lists in '$files_path'", 3); + } + + return wantarray ? @main::file_list : \@main::file_list; +} + +sub find_files +{ + my $files_hash_ref = shift; + find({ wanted => \&wanted, no_chdir => 0 }, "$files_path"); + foreach ( @main::file_list ) { + /^\Q$files_path\E\/(.*)$/o; + $files_hash_ref->{$1}++; + } +} + +sub wanted +{ + my $file = $_; + + if ( $file =~ /.*\.xml$/ && -f $file ) { + push @main::file_list, $File::Find::name; + } +} + +sub is_file_newer +{ + my $test_hash_ref = shift; + my $reference_stamp = 0; + + print_message("checking timestamps ...") if $verbose; + if ( -e $out_file ) { + $reference_stamp = (stat($out_file))[9]; + print_message("found $out_file with $reference_stamp ...") if $verbose; + } + return 1 if $reference_stamp == 0; + + foreach ( sort keys %{$test_hash_ref} ) { + my $path = $files_path; + $path .= "/" if "$path" ne ""; + $path .= "$_"; + print_message("checking '$path' ...") if $extra_verbose; + my $mtime = (stat($path))[9]; + return 1 if $reference_stamp < $mtime; + } + return 0; +} + +sub create_zip_archive +{ + my $zip_hash_ref = shift; + print_message("creating config archive ...") if $verbose; + my $zip = Archive::Zip->new(); + + # on Mac OS X Intel we have unxmacxi.pro, on Mac OS X PowerPC unxmacxp.pro .. and so on + my $platform = $ENV{INPATH}; + + foreach ( sort keys %{$zip_hash_ref} ) { + my $path = "$files_path/$_"; + # only Mac OS X Aqua is concerned here + # but changes for other platforms can easely be added following the same principle + if ( ( $platform =~ /^.*macx*/) && ($path =~ /^.*menubar.xml/ ) ) { + $path = modify_mac_menus($path); + } + print_message("zipping '$path' ...") if $extra_verbose; + if ( !$zip->addFile($path, $_) ) { + print_error("can't add file '$path' to config zip archive: $!", 5); + } + } + my $status = $zip->writeToFileNamed($tmp_out_file); + if ( $status != AZ_OK ) { + print_error("write image zip archive '$tmp_out_file' failed. Reason: $status", 6); + } + return; +} + +sub modify_mac_menus +{ + my $path_base = "$ENV{'SOLARENV'}"; + $path_base =~ s/solenv//; + + my $new_file_name = "$path_base"."postprocess"."\/"."$ENV{INPATH}"."\/"."misc"."\/"."$_"; + + my $new_directory = $new_file_name; + $new_directory =~ s/\/menubar.xml//; + if ( ! -e $new_directory) { + `mkdir -p "$new_directory"`; + } + + my $old_file_name = "$files_path/$_"; + + `cp $old_file_name $new_file_name`; + + my $temp_file_name = "$new_file_name"."_tmp"; + my $xsl_file = "macosx/macosx_menubar_modification.xsl"; + + my $result = `xsltproc $xsl_file $new_file_name > $temp_file_name`; + + if ( $result != 0) { + print_error("xsltproc '$xsl_file' '$new_file_name'> '$temp_file_name' failed",1) + } + + replace_file( $temp_file_name, $new_file_name ); + return $new_file_name; +} + +sub replace_file +{ + my $source_file = shift; + my $dest_file = shift; + my $result = 0; + + $result = unlink($dest_file) if -f $dest_file; + if ( $result != 1 && -f $dest_file ) { + unlink $source_file; + print_error("couldn't remove '$dest_file'",1); + } else { + if ( !rename($source_file, $dest_file)) { + unlink $source_file; + print_error("couldn't rename '$source_file'",1); + } + } + return; +} + +sub usage +{ + print STDERR "Usage: packimages.pl [-h] -o out_file -i file_path\n"; + print STDERR "Creates archive of images\n"; + print STDERR "Options:\n"; + print STDERR " -h print this help\n"; + print STDERR " -o out_file path to output archive\n"; + print STDERR " -i file_path path to directory containing the config files\n"; + print STDERR " -v verbose\n"; + print STDERR " -vv very verbose\n"; +} + +sub print_message +{ + my $message = shift; + + print "$script_name: "; + print "$message\n"; + return; +} + +sub print_warning +{ + my $message = shift; + + print STDERR "$script_name: "; + print STDERR "WARNING $message\n"; + return; +} + +sub print_error +{ + my $message = shift; + my $error_code = shift; + + print STDERR "$script_name: "; + print STDERR "ERROR: $message\n"; + + if ( $error_code ) { + print STDERR "\nFAILURE: $script_name aborted.\n"; + exit($error_code); + } + return; +} diff --git a/postprocess/packregistry/makefile.mk b/postprocess/packregistry/makefile.mk new file mode 100644 index 000000000000..335639d3a0d9 --- /dev/null +++ b/postprocess/packregistry/makefile.mk @@ -0,0 +1,548 @@ +#************************************************************************* +# +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +# +# Copyright 2000, 2010 Oracle and/or its affiliates. +# +# OpenOffice.org - a multi-platform office productivity suite +# +# This file is part of OpenOffice.org. +# +# OpenOffice.org is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License version 3 +# only, as published by the Free Software Foundation. +# +# OpenOffice.org is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Lesser General Public License version 3 for more details +# (a copy is included in the LICENSE file that accompanied this code). +# +# You should have received a copy of the GNU Lesser General Public License +# version 3 along with OpenOffice.org. If not, see +# <http://www.openoffice.org/license.html> +# for a copy of the LGPLv3 License. +# +#***********************************************************************/ + +PRJ = .. +PRJNAME = postprocess +TARGET = packregistry + +MY_XCS = registry/schema/org/openoffice +MY_XCU = registry/data/org/openoffice +MY_MOD = registry/spool + +MY_XCDS = \ + $(MISC)/base.xcd \ + $(MISC)/brand.xcd \ + $(MISC)/calc.xcd \ + $(MISC)/cjk.xcd \ + $(MISC)/ctl.xcd \ + $(MISC)/draw.xcd \ + $(MISC)/graphicfilter.xcd \ + $(MISC)/impress.xcd \ + $(MISC)/korea.xcd \ + $(MISC)/lingucomponent.xcd \ + $(MISC)/main.xcd \ + $(MISC)/math.xcd \ + $(MISC)/onlineupdate.xcd \ + $(MISC)/oooimprovement.xcd \ + $(MISC)/palm.xcd \ + $(MISC)/pocketexcel.xcd \ + $(MISC)/pocketword.xcd \ + $(MISC)/pyuno.xcd \ + $(MISC)/w4w.xcd \ + $(MISC)/writer.xcd \ + $(MISC)/xsltfilter.xcd + +MY_DEPS_base = main +MY_FILES_base = \ + $(MY_MOD)/fcfg_database_filters.xcu \ + $(MY_MOD)/fcfg_database_others.xcu \ + $(MY_MOD)/fcfg_database_types.xcu \ + $(MY_MOD)/org/openoffice/Office/Common-base.xcu \ + $(MY_MOD)/org/openoffice/Setup-base.xcu + +MY_FILES_brand = \ + $(MY_XCU)/Office/Compatibility.xcu \ + $(MY_MOD)/org/openoffice/Office/Common-brand.xcu \ + $(MY_MOD)/org/openoffice/Office/UI-brand.xcu \ + $(MY_MOD)/org/openoffice/Setup-brand.xcu +.IF "$(ENABLE_SVCTAGS)" == "YES" +MY_FILES_brand += \ + $(MY_MOD)/org/openoffice/Office/Jobs/Jobs-registration.xcu +.END + +MY_DEPS_calc = main +MY_FILES_calc = \ + $(MY_XCS)/Office/UI/CalcCommands.xcs \ + $(MY_XCS)/Office/UI/CalcWindowState.xcs \ + $(MY_XCU)/Office/UI/CalcCommands.xcu \ + $(MY_XCU)/Office/UI/CalcWindowState.xcu \ + $(MY_MOD)/DataAccess/calc.xcu \ + $(MY_MOD)/fcfg_calc_filters.xcu \ + $(MY_MOD)/fcfg_calc_types.xcu \ + $(MY_MOD)/org/openoffice/Office/Common-calc.xcu \ + $(MY_MOD)/org/openoffice/Office/Embedding-calc.xcu \ + $(MY_MOD)/org/openoffice/Setup-calc.xcu + +MY_FILES_cjk = \ + $(MY_MOD)/org/openoffice/Office/Common-cjk.xcu \ + $(MY_MOD)/org/openoffice/Office/Writer-cjk.xcu + +MY_DEPS_ctl = main +MY_FILES_ctl = \ + $(MY_MOD)/org/openoffice/Office/Common-ctl.xcu + +MY_DEPS_draw = main +MY_FILES_draw = \ + $(MY_XCS)/Office/UI/DrawWindowState.xcs \ + $(MY_XCU)/Office/UI/DrawWindowState.xcu \ + $(MY_MOD)/fcfg_draw_filters.xcu \ + $(MY_MOD)/fcfg_draw_types.xcu \ + $(MY_MOD)/org/openoffice/Office/Common-draw.xcu \ + $(MY_MOD)/org/openoffice/Office/Embedding-draw.xcu \ + $(MY_MOD)/org/openoffice/Setup-draw.xcu + +MY_DEPS_graphicfilter = main +MY_FILES_graphicfilter = \ + $(MY_MOD)/fcfg_drawgraphics_filters.xcu \ + $(MY_MOD)/fcfg_drawgraphics_types.xcu \ + $(MY_MOD)/fcfg_impressgraphics_filters.xcu \ + $(MY_MOD)/fcfg_impressgraphics_types.xcu + +MY_DEPS_impress = main +MY_FILES_impress = \ + $(MY_XCS)/Office/UI/Effects.xcs \ + $(MY_XCS)/Office/UI/ImpressWindowState.xcs \ + $(MY_XCU)/Office/UI/Effects.xcu \ + $(MY_XCU)/Office/UI/ImpressWindowState.xcu \ + $(MY_MOD)/fcfg_impress_filters.xcu \ + $(MY_MOD)/fcfg_impress_types.xcu \ + $(MY_MOD)/org/openoffice/Office/Common-impress.xcu \ + $(MY_MOD)/org/openoffice/Office/Embedding-impress.xcu \ + $(MY_MOD)/org/openoffice/Setup-impress.xcu + +MY_FILES_korea = \ + $(MY_MOD)/org/openoffice/Office/Common-korea.xcu + +MY_DEPS_lingucomponent = main +MY_FILES_lingucomponent = \ + $(MY_XCU)/Office/Linguistic-lingucomponent-hyphenator.xcu \ + $(MY_XCU)/Office/Linguistic-lingucomponent-spellchecker.xcu \ + $(MY_XCU)/Office/Linguistic-lingucomponent-thesaurus.xcu \ + +MY_FILES_main = \ + $(MY_XCS)/FirstStartWizard.xcs \ + $(MY_XCS)/Inet.xcs \ + $(MY_XCS)/Interaction.xcs \ + $(MY_XCS)/LDAP.xcs \ + $(MY_XCS)/Office/Accelerators.xcs \ + $(MY_XCS)/Office/Addons.xcs \ + $(MY_XCS)/Office/Calc.xcs \ + $(MY_XCS)/Office/CalcAddIns.xcs \ + $(MY_XCS)/Office/Canvas.xcs \ + $(MY_XCS)/Office/Chart.xcs \ + $(MY_XCS)/Office/Commands.xcs \ + $(MY_XCS)/Office/Common.xcs \ + $(MY_XCS)/Office/Compatibility.xcs \ + $(MY_XCS)/Office/DataAccess/Drivers.xcs \ + $(MY_XCS)/Office/DataAccess.xcs \ + $(MY_XCS)/Office/Draw.xcs \ + $(MY_XCS)/Office/Embedding.xcs \ + $(MY_XCS)/Office/Events.xcs \ + $(MY_XCS)/Office/ExtendedColorScheme.xcs \ + $(MY_XCS)/Office/ExtensionManager.xcs \ + $(MY_XCS)/Office/FormWizard.xcs \ + $(MY_XCS)/Office/Histories.xcs \ + $(MY_XCS)/Office/Impress.xcs \ + $(MY_XCS)/Office/Java.xcs \ + $(MY_XCS)/Office/Jobs.xcs \ + $(MY_XCS)/Office/Labels.xcs \ + $(MY_XCS)/Office/Linguistic.xcs \ + $(MY_XCS)/Office/Logging.xcs \ + $(MY_XCS)/Office/Math.xcs \ + $(MY_XCS)/Office/OOoImprovement/Settings.xcs \ + $(MY_XCS)/Office/OptionsDialog.xcs \ + $(MY_XCS)/Office/Paths.xcs \ + $(MY_XCS)/Office/ProtocolHandler.xcs \ + $(MY_XCS)/Office/Recovery.xcs \ + $(MY_XCS)/Office/SFX.xcs \ + $(MY_XCS)/Office/Scripting.xcs \ + $(MY_XCS)/Office/Security.xcs \ + $(MY_XCS)/Office/Substitution.xcs \ + $(MY_XCS)/Office/TabBrowse.xcs \ + $(MY_XCS)/Office/TableWizard.xcs \ + $(MY_XCS)/Office/TypeDetection.xcs \ + $(MY_XCS)/Office/UI/BaseWindowState.xcs \ + $(MY_XCS)/Office/UI/BasicIDECommands.xcs \ + $(MY_XCS)/Office/UI/BasicIDEWindowState.xcs \ + $(MY_XCS)/Office/UI/BibliographyCommands.xcs \ + $(MY_XCS)/Office/UI/BibliographyWindowState.xcs \ + $(MY_XCS)/Office/UI/Category.xcs \ + $(MY_XCS)/Office/UI/ChartCommands.xcs \ + $(MY_XCS)/Office/UI/ChartWindowState.xcs \ + $(MY_XCS)/Office/UI/Commands.xcs \ + $(MY_XCS)/Office/UI/Controller.xcs \ + $(MY_XCS)/Office/UI/DbBrowserWindowState.xcs \ + $(MY_XCS)/Office/UI/DbQueryWindowState.xcs \ + $(MY_XCS)/Office/UI/DbRelationWindowState.xcs \ + $(MY_XCS)/Office/UI/DbTableDataWindowState.xcs \ + $(MY_XCS)/Office/UI/DbTableWindowState.xcs \ + $(MY_XCS)/Office/UI/DbuCommands.xcs \ + $(MY_XCS)/Office/UI/DrawImpressCommands.xcs \ + $(MY_XCS)/Office/UI/Factories.xcs \ + $(MY_XCS)/Office/UI/GenericCategories.xcs \ + $(MY_XCS)/Office/UI/GenericCommands.xcs \ + $(MY_XCS)/Office/UI/GlobalSettings.xcs \ + $(MY_XCS)/Office/UI/StartModuleCommands.xcs \ + $(MY_XCS)/Office/UI/StartModuleWindowState.xcs \ + $(MY_XCS)/Office/UI/WindowContentFactories.xcs \ + $(MY_XCS)/Office/UI/WindowState.xcs \ + $(MY_XCS)/Office/UI.xcs \ + $(MY_XCS)/Office/Views.xcs \ + $(MY_XCS)/Office/WebWizard.xcs \ + $(MY_XCS)/Office/Writer.xcs \ + $(MY_XCS)/Office/WriterWeb.xcs \ + $(MY_XCS)/Setup.xcs \ + $(MY_XCS)/System.xcs \ + $(MY_XCS)/TypeDetection/Filter.xcs \ + $(MY_XCS)/TypeDetection/GraphicFilter.xcs \ + $(MY_XCS)/TypeDetection/Misc.xcs \ + $(MY_XCS)/TypeDetection/Types.xcs \ + $(MY_XCS)/TypeDetection/UISort.xcs \ + $(MY_XCS)/UserProfile.xcs \ + $(MY_XCS)/VCL.xcs \ + $(MY_XCS)/ucb/Configuration.xcs \ + $(MY_XCS)/ucb/Hierarchy.xcs \ + $(MY_XCS)/ucb/InteractionHandler.xcs \ + $(MY_XCS)/ucb/Store.xcs \ + $(MY_XCU)/FirstStartWizard.xcu \ + $(MY_XCU)/Inet.xcu \ + $(MY_XCU)/Interaction.xcu \ + $(MY_XCU)/Office/Accelerators.xcu \ + $(MY_XCU)/Office/Calc.xcu \ + $(MY_XCU)/Office/Canvas.xcu \ + $(MY_XCU)/Office/Common.xcu \ + $(MY_XCU)/Office/DataAccess.xcu \ + $(MY_XCU)/Office/Embedding.xcu \ + $(MY_XCU)/Office/ExtensionManager.xcu \ + $(MY_XCU)/Office/FormWizard.xcu \ + $(MY_XCU)/Office/Histories.xcu \ + $(MY_XCU)/Office/Impress.xcu \ + $(MY_XCU)/Office/Jobs.xcu \ + $(MY_XCU)/Office/Labels.xcu \ + $(MY_XCU)/Office/Logging.xcu \ + $(MY_XCU)/Office/Math.xcu \ + $(MY_XCU)/Office/Paths.xcu \ + $(MY_XCU)/Office/ProtocolHandler.xcu \ + $(MY_XCU)/Office/SFX.xcu \ + $(MY_XCU)/Office/Scripting.xcu \ + $(MY_XCU)/Office/Security.xcu \ + $(MY_XCU)/Office/TableWizard.xcu \ + $(MY_XCU)/Office/UI/BaseWindowState.xcu \ + $(MY_XCU)/Office/UI/BasicIDECommands.xcu \ + $(MY_XCU)/Office/UI/BasicIDEWindowState.xcu \ + $(MY_XCU)/Office/UI/BibliographyCommands.xcu \ + $(MY_XCU)/Office/UI/ChartCommands.xcu \ + $(MY_XCU)/Office/UI/ChartWindowState.xcu \ + $(MY_XCU)/Office/UI/Controller.xcu \ + $(MY_XCU)/Office/UI/DbBrowserWindowState.xcu \ + $(MY_XCU)/Office/UI/DbQueryWindowState.xcu \ + $(MY_XCU)/Office/UI/DbRelationWindowState.xcu \ + $(MY_XCU)/Office/UI/DbTableDataWindowState.xcu \ + $(MY_XCU)/Office/UI/DbTableWindowState.xcu \ + $(MY_XCU)/Office/UI/DbuCommands.xcu \ + $(MY_XCU)/Office/UI/DrawImpressCommands.xcu \ + $(MY_XCU)/Office/UI/Factories.xcu \ + $(MY_XCU)/Office/UI/GenericCategories.xcu \ + $(MY_XCU)/Office/UI/GenericCommands.xcu \ + $(MY_XCU)/Office/UI/StartModuleCommands.xcu \ + $(MY_XCU)/Office/UI/StartModuleWindowState.xcu \ + $(MY_XCU)/Office/UI.xcu \ + $(MY_XCU)/Office/Views.xcu \ + $(MY_XCU)/Office/WebWizard.xcu \ + $(MY_XCU)/Office/Writer.xcu \ + $(MY_XCU)/Setup.xcu \ + $(MY_XCU)/System.xcu \ + $(MY_XCU)/TypeDetection/UISort.xcu \ + $(MY_XCU)/UserProfile.xcu \ + $(MY_XCU)/VCL.xcu \ + $(MY_XCU)/ucb/Configuration.xcu \ + $(MY_MOD)/DataAccess/dbase.xcu \ + $(MY_MOD)/DataAccess/flat.xcu \ + $(MY_MOD)/DataAccess/mysql.xcu \ + $(MY_MOD)/DataAccess/odbc.xcu \ + $(MY_MOD)/fcfg_base_filters.xcu \ + $(MY_MOD)/fcfg_base_others.xcu \ + $(MY_MOD)/fcfg_base_types.xcu \ + $(MY_MOD)/fcfg_chart_filters.xcu \ + $(MY_MOD)/fcfg_chart_others.xcu \ + $(MY_MOD)/fcfg_chart_types.xcu \ + $(MY_MOD)/fcfg_internalgraphics_filters.xcu \ + $(MY_MOD)/fcfg_internalgraphics_types.xcu \ + $(MY_MOD)/org/openoffice/Office/Embedding-chart.xcu \ + $(MY_MOD)/org/openoffice/Setup-start.xcu \ + $(MY_MOD)/org/openoffice/TypeDetection/UISort-calc.xcu \ + $(MY_MOD)/org/openoffice/TypeDetection/UISort-draw.xcu \ + $(MY_MOD)/org/openoffice/TypeDetection/UISort-impress.xcu \ + $(MY_MOD)/org/openoffice/TypeDetection/UISort-math.xcu \ + $(MY_MOD)/org/openoffice/TypeDetection/UISort-writer.xcu +.IF "$(GUIBASE)" == "aqua" +MY_FILES_main += \ + $(MY_MOD)/DataAccess/macab.xcu \ + $(MY_MOD)/org/openoffice/Inet-macosx.xcu \ + $(MY_MOD)/org/openoffice/Office/Accelerators-macosx.xcu \ + $(MY_MOD)/org/openoffice/Office/Common-macosx.xcu \ + $(MY_MOD)/org/openoffice/Office/Paths-macosx.xcu + # Inet-macosx.xcu must come after Inet.xcu +.ELIF "$(GUIBASE)" == "unx" +MY_FILES_main += \ + $(MY_MOD)/org/openoffice/Inet-unixdesktop.xcu \ + $(MY_MOD)/org/openoffice/Office/Accelerators-unxwnt.xcu \ + $(MY_MOD)/org/openoffice/Office/Common-UseOOoFileDialogs.xcu \ + $(MY_MOD)/org/openoffice/Office/Common-unixdesktop.xcu \ + $(MY_MOD)/org/openoffice/Office/Common-unx.xcu \ + $(MY_MOD)/org/openoffice/Office/Paths-unixdesktop.xcu \ + $(MY_MOD)/org/openoffice/Office/Paths-unxwnt.xcu \ + $(MY_MOD)/org/openoffice/VCL-unixdesktop.xcu + # Inet-unixdesktop.xcu must come after Inet.xcu + # VCL-unixdesktop.xcu must come after VCL.xcu +.ELIF "$(GUIBASE)" == "WIN" +MY_FILES_main += \ + $(MY_MOD)/DataAccess/ado.xcu \ + $(MY_MOD)/org/openoffice/Inet-wnt.xcu \ + $(MY_MOD)/org/openoffice/Office/Accelerators-unxwnt.xcu \ + $(MY_MOD)/org/openoffice/Office/Common-wnt.xcu \ + $(MY_MOD)/org/openoffice/Office/Paths-unxwnt.xcu + # Inet-wnt.xcu must come after Inet.xcu +.ELSE +ERROR : unknown-GUIBASE +.END +.IF "$(OS)" == "WNT" || "$(OS)" == "LINUX" || \ + ("$(OS)" == "SOLARIS" && "$(CPU)" == "S") || "$(OS)" == "NETBSD" +MY_FILES_main += $(MY_MOD)/DataAccess/adabas.xcu +.END +.IF "$(ENABLE_EVOAB2)" == "TRUE" +MY_FILES_main += $(MY_MOD)/DataAccess/evoab2.xcu +MY_FILES_main += $(MY_MOD)/org/openoffice/Office/DataAccess-evoab2.xcu +.END +.IF "$(SOLAR_JAVA)" == "TRUE" +MY_FILES_main += \ + $(MY_MOD)/DataAccess/hsqldb.xcu \ + $(MY_MOD)/DataAccess/jdbc.xcu +.END +.IF "$(ENABLE_KAB)" == "TRUE" +MY_FILES_main += $(MY_MOD)/DataAccess/kab.xcu +.END +.IF "$(SYSTEM_MOZILLA)" != "YES" && "$(WITH_MOZILLA)" != "NO" && \ + "$(OS)" != "MACOSX" +.IF "$(OS)" == "WNT" +MY_FILES_main += $(MY_MOD)/DataAccess/mozab.xcu +.ELSE +MY_FILES_main += $(MY_MOD)/DataAccess/mozab2.xcu +.END +.END +.IF "$(SYSTEM_LIBTEXTCAT_DATA)" != "" +MY_FILES_main += $(MY_MOD)/org/openoffice/Office/Paths-externallibtextcatdata.xcu +.ELSE +MY_FILES_main += $(MY_MOD)/org/openoffice/Office/Paths-internallibtextcatdata.xcu +.END + +MY_DEPS_math = main +MY_FILES_math = \ + $(MY_XCS)/Office/UI/MathCommands.xcs \ + $(MY_XCS)/Office/UI/MathWindowState.xcs \ + $(MY_XCU)/Office/UI/MathCommands.xcu \ + $(MY_XCU)/Office/UI/MathWindowState.xcu \ + $(MY_MOD)/fcfg_math_filters.xcu \ + $(MY_MOD)/fcfg_math_types.xcu \ + $(MY_MOD)/org/openoffice/Office/Common-math.xcu \ + $(MY_MOD)/org/openoffice/Office/Embedding-math.xcu \ + $(MY_MOD)/org/openoffice/Setup-math.xcu + +MY_DEPS_onlineupdate = main +MY_FILES_onlineupdate = \ + $(MY_MOD)/org/openoffice/Office/Addons/Addons-onlineupdate.xcu \ + $(MY_MOD)/org/openoffice/Office/Jobs/Jobs-onlineupdate.xcu + +MY_DEPS_oooimprovement = main +MY_FILES_oooimprovement = \ + $(MY_MOD)/org/openoffice/Office/Jobs/Jobs-oooimprovement.xcu \ + $(MY_MOD)/org/openoffice/Office/Logging/Logging-oooimprovement.xcu + +MY_DEPS_palm = main +MY_FILES_palm = \ + $(MY_MOD)/fcfg_palm_filters.xcu \ + $(MY_MOD)/fcfg_palm_types.xcu + +MY_DEPS_pocketexcel = main +MY_FILES_pocketexcel = \ + $(MY_MOD)/fcfg_pocketexcel_filters.xcu \ + $(MY_MOD)/fcfg_pocketexcel_types.xcu + +MY_DEPS_pocketword = main +MY_FILES_pocketword = \ + $(MY_MOD)/fcfg_pocketword_filters.xcu \ + $(MY_MOD)/fcfg_pocketword_types.xcu + +MY_DEPS_pyuno = main +MY_FILES_pyuno = \ + $(MY_MOD)/org/openoffice/Office/Scripting-python.xcu + +MY_DEPS_w4w = main +MY_FILES_w4w = \ + $(MY_MOD)/fcfg_w4w_filters.xcu \ + $(MY_MOD)/fcfg_w4w_types.xcu + +MY_DEPS_writer = main +MY_FILES_writer = \ + $(MY_XCS)/Office/UI/WriterCommands.xcs \ + $(MY_XCS)/Office/UI/WriterFormWindowState.xcs \ + $(MY_XCS)/Office/UI/WriterGlobalWindowState.xcs \ + $(MY_XCS)/Office/UI/WriterReportWindowState.xcs \ + $(MY_XCS)/Office/UI/WriterWebWindowState.xcs \ + $(MY_XCS)/Office/UI/WriterWindowState.xcs \ + $(MY_XCS)/Office/UI/XFormsWindowState.xcs \ + $(MY_XCU)/Office/UI/WriterCommands.xcu \ + $(MY_XCU)/Office/UI/WriterFormWindowState.xcu \ + $(MY_XCU)/Office/UI/WriterGlobalWindowState.xcu \ + $(MY_XCU)/Office/UI/WriterReportWindowState.xcu \ + $(MY_XCU)/Office/UI/WriterWebWindowState.xcu \ + $(MY_XCU)/Office/UI/WriterWindowState.xcu \ + $(MY_XCU)/Office/UI/XFormsWindowState.xcu \ + $(MY_MOD)/fcfg_global_filters.xcu \ + $(MY_MOD)/fcfg_global_types.xcu \ + $(MY_MOD)/fcfg_web_filters.xcu \ + $(MY_MOD)/fcfg_web_types.xcu \ + $(MY_MOD)/fcfg_writer_filters.xcu \ + $(MY_MOD)/fcfg_writer_types.xcu \ + $(MY_MOD)/org/openoffice/Office/Common-writer.xcu \ + $(MY_MOD)/org/openoffice/Office/Embedding-writer.xcu \ + $(MY_MOD)/org/openoffice/Setup-writer.xcu + +MY_DEPS_xsltfilter = main +MY_FILES_xsltfilter = \ + $(MY_MOD)/fcfg_xslt_filters.xcu \ + $(MY_MOD)/fcfg_xslt_types.xcu + +.IF "$(WITH_BINFILTER)" != "NO" +MY_XCDS += $(MISC)/binfilter.xcd +MY_DEPS_binfilter = main +MY_FILES_binfilter = \ + $(MY_MOD)/fcfg_chart_bf_filters.xcu \ + $(MY_MOD)/fcfg_chart_bf_types.xcu \ + $(MY_MOD)/fcfg_calc_bf_filters.xcu \ + $(MY_MOD)/fcfg_calc_bf_types.xcu \ + $(MY_MOD)/fcfg_draw_bf_filters.xcu \ + $(MY_MOD)/fcfg_draw_bf_types.xcu \ + $(MY_MOD)/fcfg_global_bf_filters.xcu \ + $(MY_MOD)/fcfg_global_bf_types.xcu \ + $(MY_MOD)/fcfg_impress_bf_filters.xcu \ + $(MY_MOD)/fcfg_impress_bf_types.xcu \ + $(MY_MOD)/fcfg_math_bf_filters.xcu \ + $(MY_MOD)/fcfg_math_bf_types.xcu \ + $(MY_MOD)/fcfg_web_bf_filters.xcu \ + $(MY_MOD)/fcfg_web_bf_types.xcu \ + $(MY_MOD)/fcfg_writer_bf_filters.xcu \ + $(MY_MOD)/fcfg_writer_bf_types.xcu +.END + +.IF "$(GUIBASE)" == "unx" && \ + (("$(ENABLE_GCONF)" == "TRUE" && "$(ENABLE_LOCKDOWN)" == "YES") || \ + "$(ENABLE_GIO)" == "TRUE") +MY_XCDS += $(MISC)/gnome.xcd +MY_DEPS_gnome = main +.IF "$(ENABLE_GCONF)" == "TRUE" && "$(ENABLE_LOCKDOWN)" == "YES" +MY_FILES_gnome += \ + $(MY_MOD)/org/openoffice/Office/Common-gconflockdown.xcu \ + $(MY_MOD)/org/openoffice/Office/Recovery-gconflockdown.xcu \ + $(MY_MOD)/org/openoffice/UserProfile-gconflockdown.xcu \ + $(MY_MOD)/org/openoffice/VCL-gconflockdown.xcu +.END +.IF "$(ENABLE_GIO)" == "TRUE" +MY_FILES_gnome += \ + $(MY_MOD)/org/openoffice/ucb/Configuration-gio.xcu +.END +.END + +.IF "$(ENABLE_OPENGL)" == "TRUE" +MY_XCDS += $(MISC)/ogltrans.xcd +MY_DEPS_ogltrans = main +MY_FILES_ogltrans = \ + $(MY_MOD)/org/openoffice/Office/Impress-ogltrans.xcu +.END + +.IF "$(GUIBASE)" == "WIN" +MY_XCDS += $(MISC)/forcedefault.xcd +MY_DEPS_forcedefault = main +MY_FILES_forcedefault = \ + $(MY_MOD)/org/openoffice/Office/Linguistic-ForceDefaultLanguage.xcu +.END + +.INCLUDE : settings.mk +.INCLUDE : target.mk + +ALLTAR : \ + $(MY_XCDS) \ + $(MISC)/lang/Langpack-{$(alllangiso)}.xcd \ + $(MISC)/lang/fcfg_langpack_{$(alllangiso)}.xcd \ + $(MISC)/lang/registry_{$(alllangiso)}.xcd + +{$(MY_XCDS)} : $$(MY_FILES_$$(@:b):^"$(SOLARXMLDIR)/") + +$(MISC)/%.xcd .ERRREMOVE : $(MISC)/%.list + $(XSLTPROC) --nonet --stringparam prefix $(SOLARXMLDIR)/ -o $@ \ + $(SOLARENV)/bin/packregistry.xslt $< + +$(MISC)/%.list : makefile.mk + - $(RM) $@ + echo '<list>' $(foreach,i,$(MY_DEPS_$(@:b)) '<dependency file="$i"/>') \ + $(foreach,i,$(MY_FILES_$(@:b)) '<filename>$i</filename>') '</list>' > $@ + +$(MISC)/lang/Langpack-{$(alllangiso)}.xcd : $(SOLARXMLDIR)/$(MY_MOD)/$$(@:b).xcu + +$(MISC)/lang/Langpack-%.xcd .ERRREMOVE : + $(MKDIRHIER) $(@:d) + - $(RM) $(MISC)/$(@:b).list + echo '<list><dependency file="main"/>' \ + '<filename>$(MY_MOD)/$(@:b).xcu</filename></list>' > $(MISC)/$(@:b).list + $(XSLTPROC) --nonet --stringparam prefix $(SOLARXMLDIR)/ -o $@ \ + $(SOLARENV)/bin/packregistry.xslt $(MISC)/$(@:b).list + +$(MISC)/lang/fcfg_langpack_{$(alllangiso)}.xcd : $(SOLARPCKDIR)/$$(@:b).zip + +# It can happen that localized $(SOLARPCKDIR)/fcfg_langpack_*.zip contain +# zero-sized org/openoffice/TypeDectection/Filter.xcu; filter them out in the +# find shell command below (see issue 110041): +$(MISC)/lang/fcfg_langpack_%.xcd .ERRREMOVE : + $(MKDIRHIER) $(@:d) + rm -rf $(MISC)/$(@:b).unzip + mkdir $(MISC)/$(@:b).unzip + cd $(MISC)/$(@:b).unzip && unzip $(SOLARPCKDIR)/$(@:b).zip + - $(RM) $(MISC)/$(@:b).list + echo '<list>' $(foreach,i,$(shell cd $(MISC) && \ + find $(@:b).unzip -name \*.xcu -size +0c -print) \ + '<filename>$i</filename>') '</list>' > $(MISC)/$(@:b).list + $(XSLTPROC) --nonet --stringparam prefix $(PWD)/$(MISC)/ -o $@ \ + $(SOLARENV)/bin/packregistry.xslt $(MISC)/$(@:b).list + +$(MISC)/lang/registry_{$(alllangiso)}.xcd : $(SOLARPCKDIR)/$$(@:b).zip \ + $(SOLARPCKDIR)/fcfg_drivers_$$(@:b:s/registry_//).zip + +$(MISC)/lang/registry_%.xcd .ERRREMOVE : + $(MKDIRHIER) $(@:d) + rm -rf $(MISC)/$(@:b).unzip + mkdir $(MISC)/$(@:b).unzip + cd $(MISC)/$(@:b).unzip && unzip $(SOLARPCKDIR)/$(@:b).zip + rm -rf $(MISC)/fcfg_drivers_$*.unzip + mkdir $(MISC)/fcfg_drivers_$*.unzip + cd $(MISC)/fcfg_drivers_$*.unzip && \ + unzip $(SOLARPCKDIR)/fcfg_drivers_$*.zip + - $(RM) $(MISC)/$(@:b).list + echo '<list>' $(foreach,i,$(shell cd $(MISC) && \ + find $(@:b).unzip fcfg_drivers_$*.unzip -name \*.xcu -print) \ + '<filename>$i</filename>') '</list>' > $(MISC)/$(@:b).list + $(XSLTPROC) --nonet --stringparam prefix $(PWD)/$(MISC)/ -o $@ \ + $(SOLARENV)/bin/packregistry.xslt $(MISC)/$(@:b).list diff --git a/postprocess/prj/build.lst b/postprocess/prj/build.lst new file mode 100644 index 000000000000..207907350650 --- /dev/null +++ b/postprocess/prj/build.lst @@ -0,0 +1,9 @@ +po postprocess :: accessibility automation basctl bean BINFILTER:binfilter chart2 configmgr CRASHREP:crashrep CT2N:ct2n cui dbaccess desktop dtrans embeddedobj embedserv EPM:epm eventattacher extensions extras fileaccess filter forms fpicker helpcontent2 hwpfilter io lingucomponent MATHMLDTD:MathMLDTD ODK:odk officecfg package padmin psprint_config remotebridges sc scaddins sccomp scp2 scripting sd setup_native slideshow starmath sw sysui testtools ucb UnoControls unoxml ure wizards xmerge xmlsecurity MORE_FONTS:more_fonts DICTIONARIES:dictionaries PYUNO:pyuno readlicense_oo unodevtools JFREEREPORT:jfreereport REPORTBUILDER:reportbuilder reportdesign LANGUAGETOOL:languagetool SDEXT:sdext SWEXT:swext uui writerfilter oox MYSQLC:mysqlc NLPSOLVER:nlpsolver STLPORT:stlport LIBXSLT:libxslt NULL +po postprocess usr1 - all po_mkout NULL +po postprocess\checkxml nmake - all po_checkxml NULL +po postprocess\checkdeliver nmake - all po_checkdlv NULL +po postprocess\packconfig nmake - all po_packconfig po_checkxml NULL +po postprocess\packregistry nmake - all po_packregistry NULL +po postprocess\packcomponents nmake - all po_packcomponents NULL +po postprocess\rebase nmake - w po_rebase NULL +po postprocess\signing nmake - w,sign po_signing po_rebase.w NULL diff --git a/postprocess/prj/d.lst b/postprocess/prj/d.lst new file mode 100644 index 000000000000..9bfe12b9ac8f --- /dev/null +++ b/postprocess/prj/d.lst @@ -0,0 +1,7 @@ +mkdir: %_DEST%\xml%_EXT%\ooo +..\%__SRC%\bin\uiconfig.zip %_DEST%\bin%_EXT%\uiconfig.zip +..\%__SRC%\misc\*.xcd %_DEST%\xml%_EXT%\ +..\%__SRC%\misc\lang\*.xcd %_DEST%\xml%_EXT%\ +..\%__SRC%\misc\ooo-services.rdb %_DEST%\xml%_EXT%\ooo\services.rdb +..\%__SRC%\misc\services.input %_DEST%\xml%_EXT%\services.input +..\%__SRC%\misc\services.rdb %_DEST%\xml%_EXT%\services.rdb diff --git a/postprocess/rebase/coffbase.txt b/postprocess/rebase/coffbase.txt new file mode 100644 index 000000000000..199a8944be24 --- /dev/null +++ b/postprocess/rebase/coffbase.txt @@ -0,0 +1,400 @@ +abpmi.dll 0x0000000067fd0000 0x00020000 +acceptor.uno.dll 0x0000000067fb0000 0x00010000 +accmi.dll 0x0000000067f00000 0x000a0000 +adabasmi.dll 0x0000000067e90000 0x00060000 +adabasuimi.dll 0x0000000067e60000 0x00020000 +ado2.dll 0x0000000067dd0000 0x00080000 +affine_uno_uno.dll 0x0000000067db0000 0x00010000 +aggmi.dll 0x0000000067d70000 0x00030000 +analysismi.dll 0x0000000067d20000 0x00040000 +animcore.dll 0x0000000067cf0000 0x00020000 +avmediami.dll 0x0000000067ca0000 0x00040000 +avmediawin.dll 0x0000000067c70000 0x00020000 +basctlmi.dll 0x0000000067ba0000 0x000c0000 +basebmpmi.dll 0x00000000678a0000 0x002f0000 +basegfxmi.dll 0x0000000067820000 0x00070000 +basprovmi.uno.dll 0x00000000677f0000 0x00020000 +behelper.uno.dll 0x00000000677a0000 0x00010000 +bf_frmmi.dll 0x00000000676b0000 0x000e0000 +bf_gomi.dll 0x0000000067680000 0x00020000 +bf_migratefiltermi.dll 0x0000000067660000 0x00010000 +bf_ofami.dll 0x0000000067640000 0x00010000 +bf_sbmi.dll 0x00000000675b0000 0x00080000 +bf_schmi.dll 0x0000000067500000 0x000a0000 +bf_scmi.dll 0x00000000672a0000 0x00250000 +bf_sdmi.dll 0x00000000671f0000 0x000a0000 +bf_smmi.dll 0x0000000067190000 0x00050000 +bf_somi.dll 0x00000000670f0000 0x00090000 +bf_svtmi.dll 0x0000000066f30000 0x001b0000 +bf_svxmi.dll 0x0000000066b50000 0x003d0000 +bf_swmi.dll 0x00000000668b0000 0x00290000 +bf_wrappermi.dll 0x0000000066880000 0x00020000 +bf_xomi.dll 0x0000000066480000 0x003f0000 +bibmi.dll 0x0000000066430000 0x00040000 +bindetmi.dll 0x0000000066410000 0x00010000 +bootstrap.uno.dll 0x0000000066380000 0x00080000 +bootstrpdtmi.dll 0x0000000066350000 0x00020000 +bridgefac.uno.dll 0x0000000066330000 0x00010000 +cached1.dll 0x00000000662b0000 0x00030000 +calcmi.dll 0x0000000066260000 0x00040000 +canvasfactory.uno.dll 0x0000000066240000 0x00010000 +canvastoolsmi.dll 0x00000000661b0000 0x00080000 +chartcontrollermi.dll 0x0000000066030000 0x00170000 +chartmodelmi.dll 0x0000000065f70000 0x000b0000 +charttoolsmi.dll 0x0000000065dd0000 0x00190000 +chartviewmi.dll 0x0000000065c60000 0x00160000 +cli_uno.dll 0x0000000065c20000 0x00030000 +collator_data.dll 0x0000000065aa0000 0x00170000 +communimi.dll 0x0000000065a80000 0x00010000 +comphelp4msc.dll 0x0000000065980000 0x000f0000 +configmgr.uno.dll 0x000000005adb0000 0x00070000 +connector.uno.dll 0x00000000657e0000 0x00010000 +cppcanvasmi.dll 0x0000000065780000 0x00050000 +cppu3.dll 0x0000000065740000 0x00030000 +cppuhelper3msc.dll 0x00000000656c0000 0x00070000 +ctlmi.dll 0x0000000065680000 0x00030000 +cuimi.dll 0x00000000654a0000 0x001d0000 +datemi.dll 0x0000000065470000 0x00020000 +dbami.dll 0x00000000652e0000 0x00150000 +dbasemi.dll 0x0000000065280000 0x00050000 +dbaxmlmi.dll 0x0000000065230000 0x00040000 +dbmmmi.dll 0x0000000065200000 0x00020000 +dbpmi.dll 0x00000000651c0000 0x00030000 +dbpool2.dll 0x0000000065190000 0x00020000 +dbtoolsmi.dll 0x0000000064f60000 0x00220000 +dbumi.dll 0x0000000064ce0000 0x00270000 +deploymentguimi.uno.dll 0x0000000064c60000 0x00070000 +deploymentmi.uno.dll 0x0000000064be0000 0x00070000 +deploymentmiscmi.dll 0x0000000064bb0000 0x00020000 +dfami.dll 0x0000000064b40000 0x00010000 +dict_ja.dll 0x0000000064a20000 0x00110000 +dict_zh.dll 0x00000000647e0000 0x00230000 +directx5canvas.uno.dll 0x0000000064760000 0x00070000 +directx9canvas.uno.dll 0x00000000646e0000 0x00070000 +dlgprovmi.uno.dll 0x00000000646b0000 0x00020000 +dnd.dll 0x0000000064680000 0x00020000 +doctok.dll 0x00000000645c0000 0x000b0000 +dtrans.dll 0x00000000645a0000 0x00010000 +dynamicloader.uno.dll 0x0000000064570000 0x00020000 +egimi.dll 0x0000000064550000 0x00010000 +embobj.dll 0x00000000644d0000 0x00070000 +emboleobj.dll 0x0000000064480000 0x00040000 +ememi.dll 0x0000000064460000 0x00010000 +empmi.dll 0x0000000064410000 0x00040000 +emsermi.dll 0x00000000643d0000 0x00030000 +epbmi.dll 0x00000000643b0000 0x00010000 +epgmi.dll 0x0000000064390000 0x00010000 +eppmi.dll 0x0000000064370000 0x00010000 +epsmi.dll 0x0000000064340000 0x00020000 +eptmi.dll 0x0000000064320000 0x00010000 +erami.dll 0x0000000064300000 0x00010000 +etimi.dll 0x00000000642e0000 0x00010000 +evtatt.dll 0x00000000642c0000 0x00010000 +expmi.dll 0x0000000064280000 0x00010000 +fastsax.uno.dll 0x0000000064240000 0x00030000 +fileacc.dll 0x0000000064220000 0x00010000 +filemi.dll 0x0000000064140000 0x000d0000 +filterconfig1.dll 0x00000000640f0000 0x00040000 +filtertracermi.dll 0x00000000640d0000 0x00010000 +flashmi.dll 0x0000000064090000 0x00030000 +flatmi.dll 0x0000000064040000 0x00040000 +fop.dll 0x0000000064020000 0x00010000 +fpicker.uno.dll 0x0000000064000000 0x00010000 +fps.dll 0x0000000063fc0000 0x00030000 +fps_office.uno.dll 0x0000000063f70000 0x00040000 +frmmi.dll 0x0000000063dd0000 0x00190000 +fsstorage.uno.dll 0x0000000063da0000 0x00020000 +ftransl.dll 0x0000000063d80000 0x00010000 +fwemi.dll 0x0000000063c90000 0x000e0000 +fwimi.dll 0x0000000063c30000 0x00050000 +fwkmi.dll 0x0000000063a50000 0x001d0000 +fwlmi.dll 0x0000000063a20000 0x00020000 +fwmmi.dll 0x00000000639f0000 0x00020000 +gdipluscanvas.uno.dll 0x0000000063980000 0x00060000 +gomi.dll 0x00000000638b0000 0x00060000 +guesslangmi.dll 0x0000000063890000 0x00010000 +hatchwindowfactory.uno.dll 0x0000000063860000 0x00020000 +helplinkermi.dll 0x0000000063820000 0x00030000 +hsqldb2.dll 0x00000000637d0000 0x00040000 +hwp.dll 0x0000000063740000 0x00080000 +hyphenmi.dll 0x0000000063710000 0x00020000 +i18nisolang1msc.dll 0x00000000636f0000 0x00010000 +i18npool.uno.dll 0x00000000635b0000 0x00130000 +i18nregexpmsc.dll 0x0000000063590000 0x00010000 +i18nsearch.uno.dll 0x0000000063570000 0x00010000 +i18nutilmsc.dll 0x0000000063540000 0x00020000 +icdmi.dll 0x0000000063520000 0x00010000 +icgmi.dll 0x00000000634f0000 0x00020000 +icudt40.dll 0x0000000059bb0000 0x00d50000 +icuin40.dll 0x0000000059a90000 0x00110000 +icule40.dll 0x0000000059a40000 0x00040000 +icutu40.dll 0x0000000059a10000 0x00020000 +icuuc40.dll 0x0000000059910000 0x000f0000 +idxmi.dll 0x0000000062880000 0x00020000 +imemi.dll 0x0000000062860000 0x00010000 +index_data.dll 0x00000000627c0000 0x00090000 +instooofiltmsi.dll 0x0000000062790000 0x00020000 +introspection.uno.dll 0x0000000062760000 0x00020000 +invocadapt.uno.dll 0x0000000062740000 0x00010000 +invocation.uno.dll 0x0000000062720000 0x00010000 +ipbmi.dll 0x0000000062700000 0x00010000 +ipdmi.dll 0x00000000626e0000 0x00010000 +ipsmi.dll 0x00000000626c0000 0x00010000 +iptmi.dll 0x00000000626a0000 0x00010000 +ipxmi.dll 0x0000000062680000 0x00010000 +irami.dll 0x0000000062660000 0x00010000 +itgmi.dll 0x0000000062640000 0x00010000 +itimi.dll 0x0000000062620000 0x00010000 +java_uno.dll 0x00000000625f0000 0x00020000 +java_uno_accessbridge.dll 0x00000000625d0000 0x00010000 +javaloader.uno.dll 0x00000000625b0000 0x00010000 +javavm.uno.dll 0x0000000062580000 0x00020000 +jdbc2.dll 0x0000000062510000 0x00060000 +jfregca.dll 0x00000000624d0000 0x00030000 +jmi_g.dll 0x00000000624b0000 0x00010000 +jpipe.dll 0x0000000062490000 0x00010000 +juh.dll 0x00000000623b0000 0x00010000 +juhx.dll 0x0000000062380000 0x00020000 +jvmaccess3msc.dll 0x0000000062360000 0x00010000 +jvmfwk3.dll 0x0000000062330000 0x00020000 +ldapbe2.uno.dll 0x0000000062300000 0x00020000 +legacy_binfiltersmi.dll 0x00000000622d0000 0x00020000 +libcurl.dll 0x0000000062290000 0x00030000 +libdb47.dll 0x00000000621f0000 0x00090000 +libeay32.dll 0x00000000620d0000 0x00110000 +libexslt.dll 0x00000000620a0000 0x00020000 +librdf.dll 0x0000000062070000 0x00020000 +libtextcat.dll 0x0000000062050000 0x00010000 +libxml2.dll 0x0000000061f50000 0x000f0000 +libxmlsec-mscrypto.dll 0x0000000061f10000 0x00030000 +libxmlsec.dll 0x0000000061eb0000 0x00050000 +libxslt.dll 0x0000000061e70000 0x00030000 +lngpckinsthlp.dll 0x0000000061cc0000 0x00040000 +lnthmi.dll 0x0000000061c90000 0x00020000 +localebe1.uno.dll 0x0000000061c70000 0x00010000 +localedata_en.dll 0x0000000061c40000 0x00020000 +localedata_es.dll 0x0000000061c10000 0x00020000 +localedata_euro.dll 0x0000000061b60000 0x000a0000 +localedata_others.dll 0x0000000061aa0000 0x000b0000 +logmi.dll 0x0000000061a70000 0x00020000 +lpsolve55.dll 0x0000000061970000 0x00070000 +mcnttype.dll 0x0000000061950000 0x00010000 +mozabmi.dll 0x00000000597a0000 0x00020000 +mozabdrvmi.dll 0x00000000597d0000 0x00070000 +msci_uno.dll 0x0000000061860000 0x00010000 +mysql2.dll 0x0000000061820000 0x00030000 +namingservice.uno.dll 0x0000000061800000 0x00010000 +npsoplugin.dll 0x00000000617e0000 0x00010000 +npsoplugin_so.dll 0x00000000617c0000 0x00010000 +nullcanvas.uno.dll 0x0000000061770000 0x00040000 +odbc2.dll 0x0000000061750000 0x00010000 +odbcbase2.dll 0x0000000061690000 0x000b0000 +offaccmi.dll 0x0000000061670000 0x00010000 +officebean.dll 0x0000000061650000 0x00010000 +oleautobridge.uno.dll 0x00000000615f0000 0x00050000 +oleautobridge2.uno.dll 0x0000000061590000 0x00050000 +onlinecheck.dll 0x0000000061570000 0x00010000 +ooofilt.dll 0x0000000061530000 0x00030000 +ooofiltproxy.dll 0x0000000061500000 0x00020000 +oooimprovecoremi.dll 0x00000000614e0000 0x00010000 +ooxmi.dll 0x0000000061190000 0x00340000 +ooxml.dll 0x0000000060f20000 0x00260000 +package2.dll 0x0000000060ec0000 0x00050000 +passwordcontainer.uno.dll 0x0000000060e90000 0x00020000 +patchmsi.dll 0x0000000060e30000 0x00050000 +pcrmi.dll 0x0000000060d40000 0x000e0000 +pdffiltermi.dll 0x0000000060d00000 0x00030000 +pdfimport.uno.dll 0x0000000060bf0000 0x000a0000 +placewaremi.dll 0x0000000060bd0000 0x00010000 +plmi.dll 0x0000000060b90000 0x00030000 +pptimportermi.dll 0x0000000060b70000 0x00010000 +preloadmi.dll 0x0000000060b40000 0x00020000 +productregistration.uno.dll 0x0000000060b20000 0x00010000 +protocolhandlermi.dll 0x0000000060b00000 0x00010000 +proxyfac.uno.dll 0x0000000060ae0000 0x00010000 +purpenvhelper3msc.dll 0x0000000060ac0000 0x00010000 +python23.dll 0x00000000609b0000 0x00100000 +pythonloader.uno.dll 0x0000000060990000 0x00010000 +pyuno.dll 0x0000000060930000 0x00050000 +qslnkmsi.dll 0x00000000608e0000 0x00040000 +raptor.dll 0x0000000060880000 0x00050000 +rasqal.dll 0x0000000060840000 0x00030000 +reflection.uno.dll 0x0000000060810000 0x00020000 +reg3.dll 0x00000000607e0000 0x00020000 +reg4allmsdoc.dll 0x0000000060790000 0x00040000 +regactivex.dll 0x0000000060710000 0x00020000 +regpatchactivex.dll 0x0000000060690000 0x00020000 +remotebridge.uno.dll 0x0000000060640000 0x00010000 +resmi.dll 0x0000000060610000 0x00020000 +resourcemodel.dll 0x0000000060580000 0x00080000 +rmcxt3.dll 0x00000000604f0000 0x00010000 +rotmi.dll 0x00000000604d0000 0x00010000 +rptmi.dll 0x0000000060400000 0x000c0000 +rptuimi.dll 0x0000000060320000 0x000d0000 +rptxmlmi.dll 0x00000000602c0000 0x00050000 +sal3.dll 0x0000000060100000 0x001b0000 +salhelper3msc.dll 0x00000000600e0000 0x00010000 +sax.uno.dll 0x00000000600a0000 0x00030000 +saxmi.dll 0x0000000060080000 0x00010000 +sbmi.dll 0x000000005ff20000 0x00150000 +scdmi.dll 0x000000005ff00000 0x00010000 +scmi.dll 0x000000005f820000 0x006d0000 +scnmi.dll 0x000000005f800000 0x00010000 +scriptframe.dll 0x000000005f7c0000 0x00030000 +scuimi.dll 0x000000005f760000 0x00050000 +sdbc2.dll 0x000000005f730000 0x00020000 +sdbtmi.dll 0x000000005f700000 0x00020000 +sddmi.dll 0x000000005f6e0000 0x00010000 +sdmi.dll 0x000000005f2a0000 0x00430000 +sdqsmsi.dll 0x000000005f250000 0x00040000 +sduimi.dll 0x000000005f1d0000 0x00070000 +sfxmi.dll 0x000000005eed0000 0x002f0000 +shlxthdl.dll 0x000000005ee60000 0x00060000 +shlxtmsi.dll 0x000000005ee00000 0x00050000 +simplecanvas.uno.dll 0x000000005ede0000 0x00010000 +simplecmmi.dll 0x000000005edc0000 0x00010000 +slideshow.uno.dll 0x000000005ec60000 0x00150000 +slideshowtestmi.dll 0x000000005e8b0000 0x003a0000 +smdmi.dll 0x000000005e890000 0x00010000 +smmi.dll 0x000000005e7f0000 0x00090000 +smplmail.uno.dll 0x000000005e7d0000 0x00010000 +sn_tools.dll 0x000000005e7a0000 0x00020000 +so_activex.dll 0x000000005e770000 0x00020000 +socomp.dll 0x000000005e750000 0x00010000 +sofficeapp.dll 0x000000005e6e0000 0x00060000 +soldepmi.dll 0x000000005e6a0000 0x00030000 +solvermi.dll 0x000000005e680000 0x00010000 +sotmi.dll 0x000000005e620000 0x00050000 +spellmi.dll 0x000000005e5e0000 0x00030000 +splmi.dll 0x000000005e5a0000 0x00030000 +srtrs1.dll 0x000000005e570000 0x00020000 +ssleay32.dll 0x000000005e520000 0x00040000 +stlport_vc7145.dll 0x000000005e470000 0x000a0000 +stlport_vc71_stldebug45.dll 0x000000005e340000 0x00120000 +stocservices.uno.dll 0x000000005e310000 0x00020000 +store3.dll 0x000000005e2e0000 0x00020000 +streams.uno.dll 0x000000005e2b0000 0x00020000 +stringresourcemi.uno.dll 0x000000005e280000 0x00020000 +stsmi.dll 0x000000005e1f0000 0x00080000 +sunjavaplugin.dll 0x000000005e1c0000 0x00020000 +svgfiltermi.dll 0x000000005e190000 0x00020000 +svgmi.dll 0x000000005e160000 0x00020000 +svlmi.dll 0x000000005e090000 0x000c0000 +svtmi.dll 0x000000005ddc0000 0x002c0000 +svtmisc.uno.dll 0x000000005dd90000 0x00020000 +svxmi.dll 0x000000005d4c0000 0x008c0000 +swdmi.dll 0x000000005d490000 0x00020000 +swmi.dll 0x000000005cd00000 0x00780000 +swuimi.dll 0x000000005cbc0000 0x00130000 +sysdtrans.dll 0x000000005cb90000 0x00020000 +sysmgr1.uno.dll 0x000000005cb70000 0x00010000 +syssh.uno.dll 0x000000005cb50000 0x00010000 +t602filtermi.dll 0x000000005cb20000 0x00020000 +textconv_dict.dll 0x000000005c9e0000 0x00040000 +textconversiondlgsmi.dll 0x000000005c9b0000 0x00020000 +textinstream.uno.dll 0x000000005c990000 0x00010000 +textoutstream.uno.dll 0x000000005c970000 0x00010000 +tfumi.dll 0x000000005c950000 0x00010000 +tkmi.dll 0x000000005c7c0000 0x00180000 +tlmi.dll 0x000000005c730000 0x00080000 +tvhlp1.dll 0x000000005c6f0000 0x00030000 +ucb1.dll 0x000000005c6a0000 0x00040000 +ucbhelper4msc.dll 0x000000005c630000 0x00060000 +ucpchelp1.dll 0x000000005c5e0000 0x00040000 +ucpdav1.dll 0x000000005c570000 0x00060000 +ucpexpand1.uno.dll 0x000000005c550000 0x00010000 +ucpfile1.dll 0x000000005c500000 0x00040000 +ucpftp1.dll 0x000000005c4c0000 0x00030000 +ucphier1.dll 0x000000005c480000 0x00030000 +ucppkg1.dll 0x000000005c440000 0x00030000 +ucptdoc1.uno.dll 0x000000005c3f0000 0x00040000 +udlgmi.dll 0x000000005c3d0000 0x00010000 +unopkgapp.dll 0x000000005c3a0000 0x00020000 +unordfmi.dll 0x000000005c360000 0x00030000 +unowinreg.dll 0x000000005c340000 0x00010000 +unoxmlmi.dll 0x000000005c2e0000 0x00050000 +unsafe_uno_uno.dll 0x000000005c2c0000 0x00010000 +updatefeed.uno.dll 0x000000005c290000 0x00020000 +updchk.uno.dll 0x000000005c250000 0x00030000 +updchkmi.dll 0x000000005c230000 0x00010000 +urp_uno.dll 0x000000005c200000 0x00020000 +utlmi.dll 0x000000005c170000 0x00080000 +uuimi.dll 0x000000005c130000 0x00030000 +uuresolver.uno.dll 0x000000005c110000 0x00010000 +uwinapi.dll 0x000000005c0e0000 0x00020000 +vbaobjmi.uno.dll 0x000000005bfd0000 0x00100000 +vclcanvas.uno.dll 0x000000005bf50000 0x00070000 +vclmi.dll 0x000000005bc50000 0x002f0000 +vos3msc.dll 0x000000005bc20000 0x00020000 +wininetbe1.uno.dll 0x000000005bc00000 0x00010000 +writerfilter.uno.dll 0x000000005bb30000 0x00010000 +writerfiltermi.dll 0x000000005b760000 0x003c0000 +xcrmi.dll 0x000000005b6c0000 0x00090000 +xmergesync.dll 0x000000005b690000 0x00020000 +xmlfami.dll 0x000000005b670000 0x00010000 +xmlfdmi.dll 0x000000005b650000 0x00010000 +xmlsecurity.dll 0x000000005b600000 0x00040000 +xmxmi.dll 0x000000005b5e0000 0x00010000 +xofmi.dll 0x000000005b580000 0x00050000 +xomi.dll 0x000000005b2b0000 0x002c0000 +xsec_fw.dll 0x000000005b280000 0x00020000 +xsec_xmlsec.dll 0x000000005b250000 0x00020000 +xsltdlgmi.dll 0x000000005b200000 0x00040000 +xsltfiltermi.dll 0x000000005b1e0000 0x00010000 +xstor.dll 0x000000005b190000 0x00040000 +npsoplugin.dll 0x000000005b0b0000 0x00010000 +migrationoo2.uno.dll 0x000000005b080000 0x00020000 +inprocserv.dll 0x000000005b060000 0x00010000 +lngmi.dll 0x000000005af50000 0x00100000 +adomi.dll 0x000000005aea0000 0x00080000 +cppunit_dll.dll 0x000000005ad60000 0x00040000 +drawinglayermi.dll 0x000000005ac00000 0x00100000 +editengmi.dll 0x000000005aa80000 0x00170000 +formi.dll 0x000000005aa30000 0x00020000 +foruimi.dll 0x000000005a9f0000 0x00030000 +freebl3.dll 0x000000005a9a0000 0x00040000 +hsqldb.dll 0x000000005a950000 0x00040000 +i18npapermi.dll 0x000000005a930000 0x00010000 +jdbcmi.dll 0x00000000598b0000 0x00050000 +jpipx.dll 0x0000000059890000 0x00010000 +log_uno_uno.dll 0x0000000059870000 0x00010000 +migrationoo3.uno.dll 0x0000000059850000 0x00010000 +msfiltermi.dll 0x00000000596e0000 0x000b0000 +msformsmi.uno.dll 0x0000000059680000 0x00050000 +mswordmi.dll 0x0000000059560000 0x00110000 +mysqlcppconn.dll 0x00000000594c0000 0x00090000 +mysqlmi.dll 0x0000000059480000 0x00030000 +neon.dll 0x0000000059450000 0x00020000 +nspr4.dll 0x0000000059410000 0x00030000 +nss3.dll 0x0000000059330000 0x000d0000 +nssckbi.dll 0x00000000592c0000 0x00060000 +nssdbm3.dll 0x0000000059290000 0x00020000 +nssutil3.dll 0x0000000059260000 0x00020000 +odbcbasemi.dll 0x00000000591f0000 0x00060000 +odbcmi.dll 0x00000000591d0000 0x00010000 +ooofilt_x64.dll 0x0000000059130000 0x00090000 +oooimprovementmi.dll 0x0000000059100000 0x00020000 +plc4.dll 0x00000000590e0000 0x00010000 +plds4.dll 0x00000000590c0000 0x00010000 +propertyhdl.dll 0x0000000059070000 0x00040000 +propertyhdl_x64.dll 0x0000000058fe0000 0x00080000 +python26.dll 0x0000000058da0000 0x00230000 +rebase.dll 0x0000000058d50000 0x00040000 +reg64msi.dll 0x0000000058cc0000 0x00030000 +scfiltmi.dll 0x0000000058aa0000 0x001c0000 +sdfiltmi.dll 0x0000000058a20000 0x00070000 +shlxthdl_x64.dll 0x0000000058940000 0x000d0000 +smime3.dll 0x0000000058910000 0x00020000 +so_activex_x64.dll 0x00000000588c0000 0x00040000 +softokn3.dll 0x0000000058880000 0x00030000 +sqlite3.dll 0x00000000587c0000 0x00070000 +ssl3.dll 0x0000000058780000 0x00030000 +svxcoremi.dll 0x0000000058230000 0x00540000 +test.dll 0x0000000058120000 0x00010000 +test_converter.dll 0x0000000058100000 0x00010000 +ucpext.uno.dll 0x00000000580d0000 0x00020000 +ucpmyucp1.uno.dll 0x00000000580a0000 0x00020000 +vbaeventsmi.uno.dll 0x0000000058070000 0x00020000 +vbahelpermi.dll 0x0000000057fc0000 0x000a0000 +vbaswobjmi.uno.dll 0x0000000057ef0000 0x000c0000 +wpftmi.dll 0x0000000057e50000 0x00060000 diff --git a/postprocess/rebase/makefile.mk b/postprocess/rebase/makefile.mk new file mode 100644 index 000000000000..0ccfa6bf49a0 --- /dev/null +++ b/postprocess/rebase/makefile.mk @@ -0,0 +1,59 @@ +#*********************************************************************** +# +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +# +# Copyright 2000, 2010 Oracle and/or its affiliates. +# +# OpenOffice.org - a multi-platform office productivity suite +# +# This file is part of OpenOffice.org. +# +# OpenOffice.org is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License version 3 +# only, as published by the Free Software Foundation. +# +# OpenOffice.org is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Lesser General Public License version 3 for more details +# (a copy is included in the LICENSE file that accompanied this code). +# +# You should have received a copy of the GNU Lesser General Public License +# version 3 along with OpenOffice.org. If not, see +# <http://www.openoffice.org/license.html> +# for a copy of the LGPLv3 License. +# +#************************************************************************* + +PRJ=.. + + +PRJNAME=postprocess +TARGET=rebase + +.INCLUDE : settings.mk + +.INCLUDE : target.mk + +STARTADDRESS=0x68000000 +BASEADDRESSES=$(MISC)$/coffbase.txt +EXCLUDELIST=no_rebase.txt +LOGFILE=$(MISC)$/rebase_log.txt +IMAGENAMES=$(SOLARBINDIR)$/*.dll $(SOLARBINDIR)$/so$/*.dll + +ALLTAR : REBASE + +REBASE .PHONY : $(BASEADDRESSES) +.IF "$(GUI)$(CPU)"=="WNTI" +.IF "$(product)"=="full" + $(PERL) rebase.pl -C $(BASEADDRESSES) -b $(STARTADDRESS) -d -e 10000 -l $(LOGFILE) -m $(MISC) -v -R $(SOLARBINDIR) -N $(EXCLUDELIST) $(IMAGENAMES) +.ELSE # "$(product)"=="full" + @echo Doing nothing on non product builds ... +.ENDIF # "$(product)"=="full" +.ELSE # "$(GUI)"=="WNTI" + @echo We do rebasing on 32-bit Windows only. +.ENDIF + +$(BASEADDRESSES) : coffbase.txt + $(COPY) coffbase.txt $@ + diff --git a/postprocess/rebase/no_rebase.txt b/postprocess/rebase/no_rebase.txt new file mode 100644 index 000000000000..7d40ba3e031d --- /dev/null +++ b/postprocess/rebase/no_rebase.txt @@ -0,0 +1,33 @@ +cli_basetypes.dll +cli_cppuhelper.dll +cli_uretypes.dll +cli_oootypes.dll +cli_ure.dll +policy.1.0.cli_uretypes.dll +policy.1.0.cli_oootypes.dll +policy.1.0.cli_ure.dll +policy.1.0.cli_cppuhelper.dll +policy.1.0.cli_basetypes.dll +unicows.dll +gdiplus.dll +mingwm10.dll +msvcm80d.dll +msvcm80.dll +msvcm90d.dll +msvcm90.dll +msvcp70d.dll +msvcp70.dll +msvcp71d.dll +msvcp71.dll +msvcp80d.dll +msvcp80.dll +msvcp90d.dll +msvcp90.dll +msvcr70d.dll +msvcr70.dll +msvcr71d.dll +msvcr71.dll +msvcr80d.dll +msvcr80.dll +msvcr90d.dll +msvcr90.dll diff --git a/postprocess/rebase/rebase.pl b/postprocess/rebase/rebase.pl new file mode 100755 index 000000000000..5d40668dec73 --- /dev/null +++ b/postprocess/rebase/rebase.pl @@ -0,0 +1,302 @@ +: +eval 'exec perl -wS $0 ${1+"$@"}' + if 0; +#************************************************************************* +# +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +# +# Copyright 2000, 2010 Oracle and/or its affiliates. +# +# OpenOffice.org - a multi-platform office productivity suite +# +# This file is part of OpenOffice.org. +# +# OpenOffice.org is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License version 3 +# only, as published by the Free Software Foundation. +# +# OpenOffice.org is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Lesser General Public License version 3 for more details +# (a copy is included in the LICENSE file that accompanied this code). +# +# You should have received a copy of the GNU Lesser General Public License +# version 3 along with OpenOffice.org. If not, see +# <http://www.openoffice.org/license.html> +# for a copy of the LGPLv3 License. +# +#************************************************************************* + +# +# rebase.pl - rebase windows dlls +# +# This perl script is to rebase all windows dlls. In principle this could +# be done with one simple command line like f.e. +# rebase -b 0x68000000 -d -R foo_dir -N bar.txt $(SOLARBINDIR)$/*.dll +# That would work fine for creating complete office install sets, but it +# could fail as soon as we are going to ship single dlls for a product +# patch. Therefore, this wrapper perl script is used. It reads a given base +# address file and rebases all files mentioned to the same address as +# previously. New dlls get appended to the list. + +use strict; + +#### globals ##### + +my $myname = ''; +my $options_string = ''; # order of options is important +my %options_hash; +my $rebase_files; +my $misc_dir = $ENV{TEMP}; +my $lastaddress; +my @old_files; +my @new_files; + +#### main ##### + +$myname = script_id(); +parse_options(); +my %lastrun = read_coffbase( \$lastaddress ); +# Get files specified on command line. Differ between those already +# listed in coffbase (%options_hash{'C'}) and additional ones. +get_files( \@old_files, \@new_files ); +# Rebase libraries already listed in coffbase to the addresses given there. +rebase_again( \@old_files, \@new_files ) if ( @old_files ); +# Rebase additional files. +rebase_initially( \@new_files, $lastaddress ) if ( @new_files ); + +exit 0; + + +#### subroutines #### + +sub script_id +{ + ( my $script_name = $0 ) =~ s/^.*[\\\/]([\w\.]+)$/$1/; + + my $script_rev; + my $id_str = ' $Revision$ '; + $id_str =~ /Revision:\s+(\S+)\s+\$/ + ? ($script_rev = $1) : ($script_rev = "-"); +# print "\n$script_name -- version: $script_rev\n"; + return $script_name; +} + + +sub parse_options +{ + use Getopt::Std; + if ( !getopts('C:b:de:l:m:R:N:v', \%options_hash) || ($#ARGV < 0) ) { + print STDERR "Error: invalid command line.\n\n"; + usage (); + exit 1; + } + # create options string (we cannot rely on a hash because for some options the + # order is important. -R option has to be specified before -N!) + foreach my $var ( 'C', 'b', 'e', 'l', 'R', 'N' ) { + if ($options_hash{$var} ) { + $options_string .= "-$var $options_hash{$var} "; + } + } + $options_string .= "-d " if $options_hash{"d"}; + $options_string .= "-v " if $options_hash{"v"}; + # some basic tests + if ( ! $options_hash{'C'}) { + print STDERR "Error: no coffbase specified\n\n"; + usage (); + exit 2; + } + if ( ! $options_hash{'b'}) { + print STDERR "Error: no initial base address specified\n\n"; + usage (); + exit 2; + } + if ($options_hash{"m"}) { + $misc_dir = $options_hash{"m"}; + } + if ( ! -d $misc_dir ) { + print STDERR "Error: no directory to write work files. Please specify with -m\n"; + usage (); + exit 3; + } + if ( $misc_dir !~ /[\/\\]$/ ) { + # append finishing path separator: + if ( $misc_dir =~ /([\/\\])/ ) { + $misc_dir .= $1; + } + } + $rebase_files = join " ", @ARGV; + # Cygwin's perl in a W32-4nt configuration wants / instead of \ . + $rebase_files =~ s/\\/\//g; + return; +} + + +sub read_coffbase +{ + my ($addref) = shift; + my %baseaddresses; + my @entry; + if ( $options_hash{'C'} ) { + my $filename = $options_hash{'C'}; + if ( -e $filename ) { + print "Repeated run, $filename present\n"; + open( COFFBASE, $filename) or die "Error: cannot open $filename"; + while ( my $line = <COFFBASE> ) { + # each row consists of three entries, separated by white space: + # dll-name base-address size + @entry = split /\s+/ , $line ; + if ( $entry[3] || ( ! $entry[2] ) ) { + print STDERR "Warning: coffbase file structure invalid?\n"; + } + $baseaddresses{$entry[0]} = $entry[1]; + if ( $entry[3] ) { + print STDERR "Warning: coffbase file structure invalid?\n"; + } + } + close( COFFBASE ); + $$addref = $entry[1]; + } else { + print "Initial run, $filename not yet present\n"; + } + } else { + die "Error: no coffbase specified."; + } + return %baseaddresses; +} + + +sub get_files +{ + use File::Basename; + my ( $oldfiles_ref, $newfiles_ref ) = @_; + my @target = split / /, $rebase_files; + foreach my $pattern ( @target ) { + foreach my $i ( glob( $pattern ) ) { + my $lib = File::Basename::basename $i; + $lib =~ s/\+/\\\+/g; + if ( grep /^$lib$/i, (keys %lastrun) ) { + push @$oldfiles_ref, $i; + } else { + push @$newfiles_ref, $i; + } + } + } + return; +} + + +sub rebase_again +# rebase using given coffbase file +{ + my $oldfiles_ref = shift; + my $newfiles_ref = shift; + my @grownfiles; + my $solarbin ="$ENV{SOLARVERSION}/$ENV{INPATH}/bin$ENV{UPDMINOREXT}"; + my $command = "rebase " . $options_string; + if ( $ENV{WRAPCMD} ) { + $command = $ENV{WRAPCMD} . " " . $command; + } + $command =~ s/-C /-i /; + $command =~ s/-d//; + $command =~ s/-b $options_hash{'b'}//; + my $fname = $misc_dir . "rebase_again.txt"; + open ( FILES, "> $fname") or die "Error: cannot open file $fname"; + my $filesstring = join " ", @$oldfiles_ref; + print FILES "$filesstring\n"; + close FILES; + $command .= "\@$fname"; + # Cygwin's perl needs escaped \ in system() and open( COMMAND ... ) + if ( "$^O" eq "cygwin" ) { $command =~ s/\\/\\\\/g; } + print "\n$command\n"; + open( COMMAND, "$command 2>&1 |") or die "Error: Can't execute $command\n"; + if ( $? ) { + die "Error: rebase failed: $?!\n"; + } + while( <COMMAND> ) { + print; + # evaluate error messages + if ( /REBASE: ([^\s]+).*Grew too large/ ) { + my $toobig_name = $1; + if ( -e "$solarbin/so/$toobig_name" ) { + push @grownfiles, "$solarbin/so/$toobig_name"; + print "name was : $toobig_name\n"; + print "push $solarbin/so/$toobig_name\n"; + } else { + push @grownfiles, "$solarbin/$toobig_name"; + } + } + } + close( COMMAND ); + if ( @grownfiles ) { + # Some files are larger than expected and therefore could not be rebased. + # Remove respective entries from coffbase and schedule rebase in 'rebase_initially'. + push @$newfiles_ref, @grownfiles; + my $coffbase = $options_hash{'C'}; + my $coffbase_new = $options_hash{'C'} . ".new"; + open( COFFBASENEW, "> $coffbase_new") or die "Error: cannot open $coffbase_new"; + open( COFFBASE, $coffbase) or die "Error: cannot open $coffbase"; + my @entry; + while ( my $line = <COFFBASE> ) { + @entry = split /\s+/ , $line ; + if ( $entry[3] ) { + print STDERR "Warning: coffbase file structure invalid?\n"; + } + grep /^$entry[0]$/, @grownfiles or print COFFBASENEW $line; + } + close( COFFBASE ); + close( COFFBASENEW ); + rename $coffbase, $coffbase . ".old" or warn "Error: cannot rename $coffbase"; + rename $coffbase_new, $coffbase or warn "Error: cannot rename $coffbase_new"; + } +} + + +sub rebase_initially +{ + my ($files_ref, $start_address) = @_; + my $command = "rebase "; + if ( $ENV{WRAPCMD} ) { + $command = $ENV{WRAPCMD} . " " . $command; + } + $command .= $options_string; + if ( $start_address ) { + $command =~ s/-b $options_hash{'b'}/ -b $start_address/; + } + my $fname = $misc_dir . "rebase_new.txt"; + open ( FILES, "> $fname") or die "Error: cannot open file $fname"; + my $filesstring = join " ", @$files_ref; + print FILES "$filesstring\n"; + close FILES; + $command .= "\@$fname"; + # Cygwin's perl needs escaped \ in system() and open( COMMAND ... ) + if ( "$^O" eq "cygwin" ) { $command =~ s/\\/\\\\/g; } + print "\n$command\n"; + my $error = system("$command"); + if ($error) { + $error /= 256; + die "Error: rebase failed with exit code $error!\n"; + } +} + + +sub usage +{ + print "Usage:\t $myname <-C filename> <-b address> [-d] [-e <Size>] [-l <filename>] [-v] [-m dir] [-R <roordir>] [-N <filename>] <file[list]> \n"; + # Options similar to rebase binary. Additional options: -m misc-directory + print "Options:\n"; + print "\t -C coffbase_filename Write the list of base adresses to file coffbase_filename. "; + print "Mandatory.\n"; + print "\t -b address Initial base address. Mandatory.\n"; + print "\t -e SizeAdjustment Extra size to allow for image growth.\n"; + print "\t -d Top down rebase.\n"; + print "\t -l filename Write logfile filename.\n"; + print "\t -m directory Directory to write work files.\n"; + print "\t -R directory Root directory.\n"; + print "\t -N filename Specify list of files not to be rebased.\n"; + print "\t -v Verbose.\n"; + return; +} + + diff --git a/postprocess/signing/makefile.mk b/postprocess/signing/makefile.mk new file mode 100644 index 000000000000..d6b26ac9c8f3 --- /dev/null +++ b/postprocess/signing/makefile.mk @@ -0,0 +1,60 @@ +#*********************************************************************** +# +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +# +# Copyright 2000, 2010 Oracle and/or its affiliates. +# +# OpenOffice.org - a multi-platform office productivity suite +# +# This file is part of OpenOffice.org. +# +# OpenOffice.org is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License version 3 +# only, as published by the Free Software Foundation. +# +# OpenOffice.org is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Lesser General Public License version 3 for more details +# (a copy is included in the LICENSE file that accompanied this code). +# +# You should have received a copy of the GNU Lesser General Public License +# version 3 along with OpenOffice.org. If not, see +# <http://www.openoffice.org/license.html> +# for a copy of the LGPLv3 License. +# +#************************************************************************* + +PRJ=.. + + +PRJNAME=postprocess +TARGET=signing + +.INCLUDE : settings.mk + +# PFXFILE has to be set elsewhere +# PFXPASSWORD has to be set elsewhere + +EXCLUDELIST=no_signing.txt +LOGFILE=$(MISC)$/signing_log.txt +IMAGENAMES=$(SOLARBINDIR)$/*.dll $(SOLARBINDIR)$/so$/*.dll $(SOLARBINDIR)$/*.exe $(SOLARBINDIR)$/so$/*.exe +TIMESTAMPURL*="http://timestamp.verisign.com/scripts/timstamp.dll" + +signing.done : +.IF "$(VISTA_SIGNING)"!="" +.IF "$(COM)"=="MSC" +.IF "$(product)"=="full" + $(PERL) signing.pl -e $(EXCLUDELIST) -f $(PFXFILE) -p $(PFXPASSWORD) -t $(TIMESTAMPURL) $(IMAGENAMES) && $(TOUCH) $(MISC)$/signing.done +.ELSE # "$(product)"=="full" + @echo Doing nothing on non product builds ... +.ENDIF # "$(product)"=="full" +.ELSE # "$(GUI)"=="MSC" + @echo Nothing to do, signing is Windows \(MSC\) only. +.ENDIF # "$(GUI)"=="MSC" +.ELSE # "$(VISTA_SIGNING)"!="" + @echo Doing nothing. To switch on signing set VISTA_SIGNING=TRUE ... +.ENDIF # "$(VISTA_SIGNING)"!="" + +.INCLUDE : target.mk + diff --git a/postprocess/signing/no_signing.txt b/postprocess/signing/no_signing.txt new file mode 100644 index 000000000000..7c663ccfc773 --- /dev/null +++ b/postprocess/signing/no_signing.txt @@ -0,0 +1,13 @@ +cli_basetypes.dll +cli_cppuhelper.dll +cli_uretypes.dll +cli_oootypes.dll +cli_ure.dll +policy.1.0.cli_uretypes.dll +policy.1.0.cli_oootypes.dll +policy.1.0.cli_ure.dll +policy.1.0.cli_cppuhelper.dll +policy.1.0.cli_basetypes.dll +unicows.dll +gdiplus.dll +mingwm10.dll diff --git a/postprocess/signing/signing.pl b/postprocess/signing/signing.pl new file mode 100644 index 000000000000..f28d348a022f --- /dev/null +++ b/postprocess/signing/signing.pl @@ -0,0 +1,273 @@ +: +eval 'exec perl -wS $0 ${1+"$@"}' + if 0; +#************************************************************************* +# +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +# +# Copyright 2000, 2010 Oracle and/or its affiliates. +# +# OpenOffice.org - a multi-platform office productivity suite +# +# This file is part of OpenOffice.org. +# +# OpenOffice.org is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License version 3 +# only, as published by the Free Software Foundation. +# +# OpenOffice.org is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Lesser General Public License version 3 for more details +# (a copy is included in the LICENSE file that accompanied this code). +# +# You should have received a copy of the GNU Lesser General Public License +# version 3 along with OpenOffice.org. If not, see +# <http://www.openoffice.org/license.html> +# for a copy of the LGPLv3 License. +# +#************************************************************************* + +use strict; +use Getopt::Long; + +my $debug = 0; +my $max_files = 20; # sign $max_files with one command line + +#### globals ##### +my $myname = ""; +my $opt_dir = ""; +my $opt_exclude = ""; # file with a list of not signable dll and exe files +my $opt_verbose = 0; +my $opt_help = 0; +my $opt_log = ""; # for logging +my $opt_pass = ""; # password for signing +my $opt_pfxfile = ""; # Personal Information Exchange file +my $opt_timestamp_url = ""; # timestamp url +my %exclude_files = (); # list of not signable dll and exe files +my $signtool = "signtool.exe sign"; +my @args = (); +my @files_to_sign = (); + +#### main ##### +$myname = script_id(); +if ( $#ARGV < 2 ) { + usage(); + exit(1); +} +@args = parse_options(); +get_exclude_files(); +@files_to_sign = get_files(\@args); +if ( $opt_log ) { # logging + open(LOG,">$opt_log") || die "Can't open log file $opt_log\n"; +} +sign_files(\@files_to_sign); +close LOG if ($opt_log); # logging +exit 0; + + +#### subroutines #### + +sub script_id +{ + ( my $script_name = $0 ) =~ s/^.*[\\\/]([\w\.]+)$/$1/; + + my $script_rev; + my $id_str = ' $Revision$ '; + $id_str =~ /Revision:\s+(\S+)\s+\$/ + ? ($script_rev = $1) : ($script_rev = "-"); +# print "\n$script_name -- version: $script_rev\n"; + return $script_name; +} + +############################################################################ +sub parse_options #09.07.2007 08:13 +############################################################################ +{ + # e exclude list file + # v verbose + my $success = GetOptions('h' => \$opt_help, + 'd=s' => \$opt_dir, 'e=s'=>\$opt_exclude, 'f=s'=>\$opt_pfxfile, 'l=s'=>\$opt_log, + 'p=s'=>\$opt_pass,'v'=>\$opt_verbose, 't=s'=>\$opt_timestamp_url); + if ( !$success || $opt_help ) { + usage(); + exit(1); + } + if ( !$opt_exclude || !$opt_pfxfile || !$opt_pass || !$opt_timestamp_url) { + print "ERROR: Parameter missing!\n!"; + usage(); + exit(1); + } + return @ARGV; +} ##parse_options + +############################################################################ +sub get_exclude_files #09.07.2007 10:12 +############################################################################ +{ + if ( -e $opt_exclude ) { + # get data from cache file + open( IN, "<$opt_exclude") || die "Can't open exclude file $opt_exclude\n"; + while ( my $line = <IN> ) { + chomp($line); + $exclude_files{$line} = 1; # fill hash + print "$line - $exclude_files{$line}\n" if ($debug); + } + } else + { + print_error("Can't open $opt_exclude file!\n"); + } +} ##get_exclude_files + +############################################################################ +sub get_files #10.07.2007 10:19 +############################################################################ + { + use File::Basename; + my $target = shift; + my $file_pattern; + my $file; + my @files = (); + print "\n"; + foreach $file_pattern ( @$target ) + { + print "Files: $file_pattern\n"; + foreach $file ( glob( $file_pattern ) ) + { + my $lib = File::Basename::basename $file; + if ( ! $exclude_files{$lib} ) { + push @files,$file; + } + else + { + print "exclude=$lib\n" if ($opt_verbose); + } + } + } + print "\n"; + return @files; +} ##get_files + +############################################################################ +sub sign_files #09.07.2007 10:36 +############################################################################ +{ + my $files_to_sign = shift; + my $commandline_base = ""; # contains whole stuff without the file name + my $file = ""; + my $result = ""; + + print_error("Can't open PFX file: $opt_pfxfile\n") if ( ! -e $opt_pfxfile ); + print_error("Password is empty\n") if ( !$opt_pass ); + if ( $opt_pass =~ /\.exe$/ ) { + # get password by tool + open(PIPE, "$opt_pass 2>&1 |") || die "Can't open PIPE!\n"; + my $pass = <PIPE>; + close PIPE; + print_error("Can't get password!\n") if ( !$pass ); # exit here + $opt_pass = $pass; + } + $signtool .= " -v" if ($opt_verbose); + $commandline_base = $signtool . " " . "-f $opt_pfxfile -p $opt_pass -t $opt_timestamp_url"; + + # Here switch between: + # one command line for muliple files (all doesn't work, too much) / for each file one command line + if ( $max_files > 1 ) { + exec_multi_sign($files_to_sign, $commandline_base); + } else + { + exec_single_sign($files_to_sign, $commandline_base); + } +} ##sign_files + +############################################################################ +sub exec_single_sign #11.07.2007 09:05 +############################################################################ +{ + my $files_to_sign = shift; + my $commandline_base = shift; # contains whole stuff without the file name + my $file = ""; + my $commandline = ""; + + foreach $file (@$files_to_sign) + { + $commandline = $commandline_base . " $file"; + print "$commandline\n" if ($debug); + execute($commandline); + } #foreach +} ##exec_single_sign + +############################################################################ +sub exec_multi_sign #11.07.2007 08:56 +############################################################################ + { + # sign multiple file with one command line + my $files_to_sign = shift; + my $commandline_base = shift; # contains whole stuff without the file name + my $commandline = $commandline_base; # contains stuff which will be executed + my $file = ""; + my $counter = 0; + + foreach $file (@$files_to_sign) + { + $commandline .= " $file"; + ++$counter; + if ( $counter >= $max_files ) { + execute($commandline); + $counter = 0; # reset counter + $commandline = $commandline_base; # reset command line + } + } + execute($commandline) if ($counter > 0); +} ##exec_multi_sign + +############################################################################ +sub execute #11.07.2007 10:02 +############################################################################ +{ + my $commandline = shift; + my $result = ""; + + print "$commandline\n" if ($debug); + open(PIPE, "$commandline 2>&1 |") || die "Error: Cant open pipe!\n"; + while ( $result = <PIPE> ) { + print LOG "$result" if ($opt_log); # logging + if ( $result =~ /SignTool Error\:/ ) { + close PIPE; + print_error( "$result\n" ); + } # if error + } # while + close PIPE; +} ##execute + +############################################################################ +sub print_error #09.07.2007 11:21 +############################################################################ + { + my $text = shift; + print "ERROR: $text\n"; + print LOG "ERROR: $text\n" if ($opt_log); # logging + close LOG if ($opt_log); # logging + exit(1); +} ##print_error + +############################################################################ +sub usage #09.07.2007 08:39 +############################################################################ + { + print "Usage:\t $myname <-e filename> <-f filename> <-p password> <-t timestamp> [-l filename] [-v] <file[list]> \n"; + print "Options:\n"; + print "\t -e filename\t\t\tFile which contains a list of files which don't have to be signed.\n"; + print "Mandatory.\n"; + print "\t -f pfx_filename\t\t\"Personal Information Exchange\" file. "; + print "Mandatory.\n"; + print "\t -p password\t\t\tPassword for \"Personal Information Exchange\" file. Mandatory.\n"; + print "\t -t timestamp\t\t\tTimestamp URL e.g. \"http://timestamp.verisign.com/scripts/timstamp.dll\"\n"; + print "\t\t\t\t\tMandatory.\n"; + print "\t -l log_filename\t\tFile for logging.\n"; + print "\t -v\t\t\t\tVerbose.\n"; +} ##usage + + + + |