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
 

_______________________________________________
LibreOffice mailing list
LibreOffice@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/libreoffice

Reply via email to