Date: prev next · Thread: first prev next last
2010 Archives by date, by thread · List index


Hi all,
I found the issue "build out of git repos" intresting & and planning to work on it As the first steps tried some small hack to bin/unpack with following changes,please check the attached patch
           - Eliminate rawbuild directory completely
- create symlinks for each subdir(like inc, source etc) of every module from CLONEDIR to OOBUILDDIR directly - so that except unxlngi6.pro every other directory in each module is a symlink - few direct files under bootstrap repo copied to OOBUILDDIR ( as noticed in rawbuild dir),yet to think on direct files under extensions repo

Some more issues are yet to figure out
- cleaning up, updating symlinks if some sub directories added/removed in cloned repos. - Eventhough able to build few modules with above hack, at some point build process entering CLONEDIR escaping from OOBUILDDIR.

Please add your suggestions/comments on above changes..of course hacking build.pl (without symlinks, clean sources under some location like CLONEDIR/RAWBUILDDR and built outcome in another location like OOBUILDDIR) would be an ultimate solution i think, just like to know whether its a good idea to tweak unpack script with symlinks or drop it out.

Also planning to work on "build progress tracker in system tray" as it involves some similar understanding of build process as above,how about choosing cmake in build process,AFIK some build progress status is hown in cmake enabled ones,any cons and pros? i.e flexibility vs difficulty in converting each and other impacts,please add some pointers.


Thanks & Regards,
Rajesh Sola.

diff --git a/bin/unpack b/bin/unpack
index 1740ec3..cda3908 100755
--- a/bin/unpack
+++ b/bin/unpack
@@ -303,31 +303,40 @@ if test "z$OOO_GIT" = "z" ; then
        fi
     fi
 else
-    if test -d "$RAWBUILDDIR" ; then
-        echo "* removing old nonsplit dir: $RAWBUILDDIR"
-        rm -rf "$RAWBUILDDIR"
+    if test -d "$OOBUILDDIR" ; then
+        echo "* removing old build dir: $OOBUILDDIR"
+        rm -rf "$OOBUILDDIR"
     fi
-    mkdir "$RAWBUILDDIR"
-    echo "* creating symlinks in $RAWBUILDDIR"
+    # mkdir -p "$OOBUILDDIR"
+    echo "* creating direct symlinks in $RAWBUILDDIR"
     for pkg in $CORE_PKGS; do
        if test "$pkg" != "l10n" ; then
            # l10n cannot be easily handled in nonsplit/, we only copy it to
            # build dir (the one with the applied patches)
-           ln -s "$CLONEDIR/$pkg"/* "$RAWBUILDDIR/"
+           for subpkg in `ls $CLONEDIR/$pkg`; do
+                if test -d "$CLONEDIR/$pkg/$subpkg";then
+                        mkdir -p $OOBUILDDIR/$subpkg
+                        ln -s "$CLONEDIR/$pkg/$subpkg"/* "$OOBUILDDIR/$subpkg/"
+                else
+                        #test -d $OOBUILDDIR/$pkg || mkdir -p $OOBUILDDIR/$pkg  #an ugly 
tweak,right now applicable for bootstrap,extensions only
+                        ln -s "$CLONEDIR/$pkg/$subpkg" "$OOBUILDDIR/"   #need some more study on 
this,special case for extensions dir needed
+                fi
+           done
        fi
     done
-    if test -d $OOBUILDDIR; then
-        echo "* removing old build dir: $OOBUILDDIR"
-        rm -rf $OOBUILDDIR
-    fi
-    echo "* copying $RAWBUILDDIR into $OOBUILDDIR..."
-    #cp -pLR "$RAWBUILDDIR" "$OOBUILDDIR"
     touch "$CLONEDIR/repos_changed"
-    rsync -prLt --exclude .git --exclude 'unx*.pro' --exclude 'wnt*.pro' "$RAWBUILDDIR/" 
"$OOBUILDDIR/"
     touch "$TOOLSDIR/stamp/refresh"
     if test -d "$CLONEDIR/l10n" ; then
        echo "* copying translations into $OOBUILDDIR..."
-       rsync -a --exclude .git $CLONEDIR/l10n/* $OOBUILDDIR/
+       for subpkg in `ls $CLONEDIR/l10n`; do
+               if test -d "$CLONEDIR/l10n/$subpkg";then
+                       mkdir -p $OOBUILDDIR/$subpkg
+                       ln -s "$CLONEDIR/$pkg/$subpkg"/* "$OOBUILDDIR/$subpkg/"
+               else
+                               #mkdir $OOBUILDDIR/$pkg # right now applicable for 
bootstrap,extensions only
+               ln -s "$CLONEDIR/l10n/$subpkg" "$OOBUILDDIR/l10n/"
+               fi
+        done
     fi
 fi
 


Context


Privacy Policy | Impressum (Legal Info) | Copyright information: Unless otherwise specified, all text and images on this website are licensed under the Creative Commons Attribution-Share Alike 3.0 License. This does not include the source code of LibreOffice, which is licensed under the Mozilla Public License (MPLv2). "LibreOffice" and "The Document Foundation" are registered trademarks of their corresponding registered owners or are in actual use as trademarks in one or more countries. Their respective logos and icons are also subject to international copyright laws. Use thereof is explained in our trademark policy.