[Libreoffice] Build problems (and some solutions) in Mac OSX

James C james.from.wellington at gmail.com
Mon Dec 19 22:04:00 PST 2011


Hello All,

I have burned about 1.5 GB of metered network bandwidth, so far,
following these instructions:

http://wiki.documentfoundation.org/Development/How_to_build#Getting_the_sources

I have found and, I think fixed, problems which occur on both
origin/master and origin/libreoffice-3-5, where the test for a
parallel build bug presumes that mktmp and the thing to do sha1 hash
sums look like they do on linux.  A patch is attached, which I *think*
will not break the linux builds.  I release this change under GPLv3
and MPL, as requested.  I hope that nobody has a software patent on
the idea of correctness in code :-)

There is also a human-sized problem, with some instructions on the
web-site being wrong:
https://bugs.freedesktop.org/show_bug.cgi?id=43920

I am now stuck, and have not yet built libre-office.  There are two
ways forward; one technical and one human.

The technical one is:
  - my builds of origin/master and origin/libreoffice-3-5 fail in
pango, because it depends on where cairo gets its fonts from, and on
Apple Aqua, cairo gets its fonts from quartz, for which the
corresponding parts of pango seem not to have been written

  - this bug records my journey:
    https://bugs.freedesktop.org/show_bug.cgi?id=43917

  - I expect that I will not complete it without help

  - how, if at all, is this software buildable under MacOS?

The human one is:
  - prebuilt LibreOffice 3.4.4 OOO340m1 (Build:402) from here:
    http://www.libreoffice.org/download/
    runs on my Mac, so it must be buildable

  - I cannot find the OOO340m1 tag in the git repository that I have
already invested resources in downloading

  - I do not understand which pieces of the source I would need, in
order to play with Writer, and how big they would be

  - please can there be a link on the download page, to an explanation
of how the various torrents relate to the various repositories?

  - better yet, please can the source for this version be put into the
repository, and I be told how to change to it?

Regards,
James,
Wellington, New Zealand.
-------------- next part --------------
diff --git a/configure.in b/configure.in
index 433c523..800c23c 100644
--- a/configure.in
+++ b/configure.in
@@ -2713,7 +2713,19 @@ if test "$_make_longver" -ge "038200" ; then
 elif test "$_make_longver" -ge "038100" ; then
     AC_MSG_RESULT([$GNUMAKE $_make_version])
     AC_MSG_CHECKING([for GNU make bug 20033])
-    TESTGMAKEBUG20033=`mktemp -d`
+    dnl
+    dnl FIXME: mktemp takes different arguments on different platforms:
+    dnl http://stackoverflow.com/questions/2792675/how-portable-is-mktemp1
+    dnl
+    dnl -t means either 'use $TMPDIR' (OK) or 'the following is a template'.
+    dnl and without 'the following is a template', a following template
+    dnl is allowed, so this *may* work on *most* platforms
+    dnl
+    TESTGMAKEBUG20033=`mktemp -d -t MakefileXX`
+    SHA1SUM=sha1sum
+    if test "$_os" = "Darwin"; then
+        SHA1SUM=shasum
+    fi
     cat > $TESTGMAKEBUG20033/Makefile << EOF
 A := \$(wildcard *.a)
 
@@ -2736,7 +2748,7 @@ define d2
 endef
 
 %.b : %.a
-	\$(eval CHECKSUM := \$(word 1,\$(shell cat \$^ | sha1sum))) \$(if \$(wildcard \$(CACHEDIR)/\$(CHECKSUM)),\
+	\$(eval CHECKSUM := \$(word 1,\$(shell cat \$^ | $SHA1SUM))) \$(if \$(wildcard \$(CACHEDIR)/\$(CHECKSUM)),\
 	\$(call d1,\$(CHECKSUM)),\
 	\$(call d2,\$(CHECKSUM)))
 EOF


More information about the LibreOffice mailing list