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
- [Libreoffice] build out of git repos - first steps · Rajesh Sola
 
   
 
  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.