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.