ooo-build r12972 - in trunk: . bin doc



Author: michael
Date: Thu Jun 26 15:07:14 2008
New Revision: 12972
URL: http://svn.gnome.org/viewvc/ooo-build?rev=12972&view=rev

Log:
2008-06-26  Michael Meeks  <michael meeks novell com>

        * bin/src-pack2, doc/split.txt: new src packing script & some
        more ramblings.



Added:
   trunk/bin/src-pack2   (contents, props changed)
Modified:
   trunk/ChangeLog
   trunk/bin/src-pack
   trunk/doc/split.txt

Modified: trunk/bin/src-pack
==============================================================================
--- trunk/bin/src-pack	(original)
+++ trunk/bin/src-pack	Thu Jun 26 15:07:14 2008
@@ -82,7 +82,9 @@
 rm -Rf $src/sdk_oo || exit 1;
 
 echo "Packing system pieces ...";
+echo "tar $tar_opts -f $dest/$src-system.tar.bz2 $system_dirs";
 tar $tar_opts -f $dest/$src-system.tar.bz2 $system_dirs || exit 1;
+echo "Cleaning system pieces...";
 rm -Rf $system_dirs || exit 1;
 
 # This saves only 1.5Mb

Added: trunk/bin/src-pack2
==============================================================================
--- (empty file)
+++ trunk/bin/src-pack2	Thu Jun 26 15:07:14 2008
@@ -0,0 +1,183 @@
+#!/usr/bin/perl -w
+
+use strict;
+
+# Towards a more modular build ...
+
+my $tar_opts='cj';
+
+my $src;
+my $dest;
+
+sub print_help_and_exit()
+{
+    print "src-package: <src-directory-name> [<destination-directory>]\n";
+    print "   the src will be un-packed into several archives\n";
+    print "   prefixed by the last path element\n";
+    exit 0;
+}
+
+sub slurp_dir_to_hash($)
+{
+    my $src = shift;
+    my %entries;
+
+    opendir my $dirh, "$src" || die "Can't open $src: $!";
+    while (my $entry = readdir ($dirh)) {
+	$entries{$entry} = 1;
+    }
+    closedir ($dirh);
+    return \%entries;
+}
+
+sub verify_module_map($$)
+{
+    my $src = shift;
+    my $module_map = shift;
+
+    my $modules = slurp_dir_to_hash ($src);
+
+    print "Verifying module map ...";
+    
+    for my $section (keys %{$module_map}) {
+	for my $module (@{$module_map->{$section}}) {
+	    if (!defined $modules->{$module}) {
+		die "Error: section '$section' contains non-existent module '$module'\n";
+	    }
+	    delete $modules->{$module};
+	}
+    }
+    my @left_over = keys %{$modules};
+    if (@left_over) {
+	die "Modules not included in any section: @left_over";
+    }
+    print " done\n";
+}
+
+for my $arg (@ARGV) {
+    if ($arg eq "--help" || $arg eq '-h') {
+	print_help_and_exit();
+    } elsif (!defined $src) {
+	$src = $arg;
+    } elsif (!defined $dest) {
+	$dest = $arg;
+    } else {
+	die "Too many arguments '$arg'";
+    }
+}
+
+if (!defined $src) {
+    print_help_and_exit();
+}
+$dest = '.' if (!defined $dest);
+
+my %module_map = (
+    'ure' => [ 'bridges', 'cli_ure', 'codemaker', 'cppu', 'cppuhelper',
+	       'cpputools', 'idlc', 'io', 'javaunohelper', 'jurt', 'jut',
+	       'jvmaccess', 'jvmfwk', 'offapi', 'offuh', 'pyuno', 'rdbmaker',
+	       'registry', 'remotebridges', 'ridljar', 'sal', 'salhelper',
+	       'stoc', 'store', 'udkapi', 'unoil', 'ure', 'xml2cmp' ],
+    'sdk' => [ 'autodoc', 'cosv', 'odk', 'sdk_oo', 'udm', 'unodevtools' ],
+    'base' => [ 'dbaccess', 'reportdesign' ],
+    'calc' => [ 'sc', 'scaddins', 'chart2' ],
+    'l10n' => [ 'extras', 'helpcontent2', 'readlicense_oo' ],
+    'writer' => [ 'sw', 'starmath' ],
+    'impress' => [ 'sd', 'animations', 'slideshow' ],
+    'artwork' => [ 'default_images', 'external_images', 'ooo_custom_images' ],
+    'filters' => [ 'binfilter', 'filter', 'hwpfilter', 'unoxml',
+		   'writerfilter', 'writerperfect', 'xmerge' ],
+    'testing' => [ 'qadevOOo', 'smoketestoo_native', 'testshl2', 'testtools' ],
+    'bootstrap' => [ 'config_office', 'dmake', 'instsetoo_native', 'scp2',
+		     'solenv', 'soltools', 'stlport' ],
+    'libs-gui' => [ 'basebmp', 'basegfx', 'canvas', 'comphelper', 'cppcanvas',
+		    'dtrans', 'goodies', 'i18npool', 'i18nutil', 'o3tl',
+		    'padmin', 'psprint', 'psprint_config', 'regexp', 'rsc', 
+		    'sax', 'sot', 'svtools', 'toolkit', 'tools', 'transex3',
+		    'ucbhelper', 'unotools', 'vcl', 'vos' ],
+    'libs-core' => [ 'avmedia', 'basic', 'configmgr', 'connectivity',
+		     'desktop', 'embeddedobj', 'eventattacher', 'fileaccess',
+		     'fpicker', 'framework', 'idl', 'linguistic',
+		     'officecfg', 'oovbaapi', 'sandbox', 'scripting',
+		     'sfx2', 'shell', 'sj2', 'so3', 'svx', 'sysui',
+		     'ucb', 'uui', 'xmlhelp', 'xmloff', 'xmlscript',
+		     'XmlSearch' ],
+    'libs-contrib' => [ 'afms', 'agg', 'beanshell', 'berkeleydb', 'bitstream_vera_fonts',
+			'boost', 'curl', 'dictionaries', 'epm', 'expat', 'external',
+			'fondu', 'freetype', 'hsqldb', 'icu', 'jfreereport', 'jpeg',
+			'libegg', 'libtextcat', 'libwpd', 'libxml2', 'libxmlsec',
+			'libxslt', 'moz', 'msfontextract', 'nas', 'neon', 'np_sdk',
+			'portaudio', 'python', 'rhino', 'sane', 'sndfile', 'twain',
+			'unixODBC', 'vigra', 'xalan', 'xt', 'x11_extensions', 'zlib' ],
+    'extensions' => [ 'accessibility', 'automation', 'basctl', 'bean',
+		      'crashrep', 'embedserv', 'extensions', 'forms',
+		      'javainstaller2', 'lingucomponent', 'MathMLDTD',
+		      'package', 'setup_native', 'UnoControls', 'wizards',
+		      'xmlsecurity' ],
+    'postprocess' => [ 'postprocess' ]
+);
+
+verify_module_map ($src, \%module_map);
+
+for my $a (keys %module_map) {
+    print "module '$a' =>";
+    for my $b (@{$module_map{$a}}) {
+	print " $b";
+    }
+    print "\n";
+}
+
+#, 
+#echo "packing source in $src to directory $dest";, 
+#, 
+#if test ! -f "$src/vcl/source/gdi/outdev.cxx"; then, 
+#    echo "Doesn't look like an OO.o source tree";, 
+#    exit 1;, 
+#fi, 
+#, 
+#system_dirs="$src/python $src/bitstream_vera_fonts $src/freetype $src/jpeg";
+#system_dirs="$system_dirs $src/dictionaries $src/libxml2 $src/zlib $src/moz";
+#system_dirs="$system_dirs $src/curl $src/neon ";
+#
+## future system bits:
+#incomplete_modules="$src/curl $src/expat $src/icu $src/libxmlsec $src/neon";
+#incomplete_modules="$incomplete_modules $src/msfontextract $src/regexp $src/rhino ";
+#incomplete_modules="$incomplete_modules $src/sablot $src/sane $src/stlport $src/twain";
+#incomplete_modules="$incomplete_modules $src/unixODBC $src/x11_extensions $src/boost";
+#
+## FIXME - remove svdbt.dll with an unclear license; it looks unused anyway; http://www.openoffice.org/issues/show_bug.cgi?id=80408
+#rm -f $src/sfx2/util/svdbt.dll
+#
+#echo "Packing binfilter ...";
+#tar $tar_opts -f $dest/$src-binfilter.tar.bz2 $src/binfilter || exit 1;
+#rm -Rf $src/binfilter || exit 1;
+#
+#echo "Packing sdk_oo ...";
+#tar $tar_opts -f $dest/$src-sdk_oo.tar.bz2 $src/sdk_oo || exit 1;
+#rm -Rf $src/sdk_oo || exit 1;
+#
+#echo "Packing system pieces ...";
+#tar $tar_opts -f $dest/$src-system.tar.bz2 $system_dirs || exit 1;
+#rm -Rf $system_dirs || exit 1;
+#
+## This saves only 1.5Mb
+##
+## echo "Packing win32 bits ...";
+## tar $tar_opts -f $dest/$src-win32.tar.bz2 $win32_dirs || exit 1;
+## rm -Rf $win32_dirs || exit 1;
+#
+#echo "Packing i18n bits ...";
+#find $src -name localize.sdf > localize.lst || exit 1;
+#find $src/extras/source/templates -type f | grep -v 'CVS' | grep -v 'delzip' | grep -v 'makefile.mk' | grep -v '/de' | grep -v '/en-US' >> localize.lst || exit 1;
+#tar $tar_opts -f $dest/$src-lang.tar.bz2 --files-from=localize.lst || exit 1;
+#cat localize.lst | xargs rm -Rf || exit 1
+#rm localize.lst
+#
+#echo "Packing core source ...";
+#tar $tar_opts -f $dest/$src-core.tar.bz2 $src || exit 1;
+#rm -Rf $src
+#
+#echo "Generating md5 sums ...";
+#for suffix in binfilter sdk_oo system lang core; do # win32 cvs
+#	md5sum $dest/$src-$suffix.tar.bz2 > $dest/$src-$suffix.tar.bz2.md5 || exit 1;
+#done
+

Modified: trunk/doc/split.txt
==============================================================================
--- trunk/doc/split.txt	(original)
+++ trunk/doc/split.txt	Thu Jun 26 15:07:14 2008
@@ -1,3 +1,75 @@
+TODO:
+	+ split the source, as per kendy's instructions.
+	+ split postprocess into it's own bit.
+
+Build splitting notes:
+
+	+ we need the same environment, and we need to link against a
+	  given path instead of the solver.
+		+ so for 'sw' we need:
+			+ isolate it.
+		+ get include files out - into separate place.
+			+ do we need IDL ?
+
+	+ we can use "src-pack" to do the build explosion.
+
+	+ sw-dev300-m19/
+		- 
+	+ lib-dev300-m19/
+		+ needs a symlink to itself 'unxlngi6.pro' or somesuch
+		- bits we need from the solver:
+		+ bits we need from solenv/
+		- can we include LinuxIntelEnv.Set.sh in here ?
+			+ how much does that hard-code the cwd ?
+		+ bin: svidl, transex3, makedepend
+	+ libraries from:
+		+ /opt/OOInstall/basis3.0/program
+	
+
+
+	+ We need LinuxIntelEnv.Set.sh ...
+		+ source it & clobber bits ...
+
+* Major tasks:
+	+ incremental pieces:
+		+ hack bits out of scp2 as we go:
+		+ #ifndef EXTERNAL_SW
+		+ #endif // etc.
+
+	+ install static libraries too [somewhere] ?
+		+ basically we want 'deliver' really ...
+		+ can we create a boot-strapping OO.o without
+		  much pain otherwise: just bastardize make_installer.pl ?
+			+ how much does it do that is really useful ?
+			+ building component registry / rdbs (?)
+		+ need to do that on rpm install anyway ?
+			+ do it in one big rpm at the end ?
+		+ have file-install lists per module (d.lst) ... (?)
+			+ tag files "devel" vs. "non-devel"
+			+ or have some black-list in a 'deliver' script ?
+
+	+ possible deliver heuristics:
+		+ all libraries -> installed system
+			+ attempt to register each of them in registry.rdb
+			+ [ what RPM file contains that rdb ? ]
+				+ can we not do that at the end ?
+				+ meta 'OpenOffice' package that
+				  does registration.
+			+ make make_installer run against the
+			  final system
+		+ all uiconfig* -> install
+		+ all layout*.zip -> install
+		+ have a path mapping:
+			+ from solver -> inst image.
+
+
+	+ split the scp2 - move it into each module ... [!?] ...
+	+ Can we bootstrap from 'deliver' !?
+	+ *or* - add tags to the scp - annotating where it comes from ?
+		+ or run the make_installer in a minimal way that
+		  just installs what is there ;-)
+		+ [ we would need to accelerate that script ... ]
+
 Source splitting notes:
 
 icu		8236k
@@ -21,3 +93,86 @@
 dictionaries:	11858k
 libxml:		2995k
 zlib:		260k
+
+
+	@echo -n $(SHL1LINKER) $(SHL1LINKFLAGS) $(LINKFLAGSSHL) -L$(PRJ)$/$(ROUT)$/lib $(SOLARLIB) -o $@ \
+
+cannot find -luno_cppuhelpergcc3
+	+ we need symlinks for:
+	+ /opt/OOInstall/ure/lib/libuno_cppuhelpergcc3.so.3 -> .so [etc.]
+		+ a -devel RPM for this.
+
+	+ *or* ... something else (?)
+		+ just whack the symlinks in ure/lib itself ... (?)
+
+	for a in *.so.*; do ln -s $a `echo $a | sed 's/\.[0-9]*$//'`; done
+
+Common pieces we need in the "finish up" phase:
+	+ icon: ilst files
+	+ res: files [ translations ]
+
+TODO:
+	+ check for pre-requisite packages when we configure.
+
+
+	+ create a shell-script to clobber the bits we want
+	+ make configure do that clobbering ?
+	+ create a dummy Makefile to wrap the beastie.
+	+ get on with it ;-)
+
+
+	+ Translation [! -urgh- ]
+		+ ideas
+			+ duplicate all makefile.mk's into a separate lang-package
+			+ duplicate all .src files [etc.] into there
+				+ FIXME: if we patch things; what then ?
+				+ we need to be the canonical 'master' really.
+			+ include translation tools in there [ self contained ]
+			+ 
+
+			+ Allow parallel translation builds
+
+		+ insert dummy translation rules into the makefiles
+		  for writer etc. just 'touch' the files.
+		+ [ or? ]
+
+	+ Translation is spread all over the code
+		+ => we need two modes
+		+ "compile mode" and "translate mode"
+			+ do these exist already ?
+
+	+ or do we cheat ?
+		+ just whack the translation files into the -devel package ?
+		+ and copy from that (?)
+
+
+Resolved:
+	+ copy the translations into a known place in the -devel package and
+	  collate them later into the main OO.o binary.
+		+ allows developer to add new strings easily etc.
+		+ adding new / individual translations perhaps a big
+		  pain though.
+	+ same for ilst files [etc.]
+		+ hack this into 'deliver'
+		+ build the 'solver' much in the same way.
+		+ just minus the installable files.
+
+
+	+ sort out the ooo-build wrapper ...
+		+ urgh;
+	+ make 'sw' build standalone nicely ...
+		+ fix the wrapper later ?
+
+	+ 'postprocess' ...
+
+Kendy's take:
+	+ http://www.mail-archive.com/dev%40tools.openoffice.org/msg00786.html
+
+
+for a in  ../HEAD/src/dev300-m19*.tar.bz2; do tar -xjf $a; done
+
+
+FIXME:
+	+ do we wrap all the bits with ooo-build ?
+	+ can we adapt it's behavior based on what we see in src/ ? :-)
+



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]