Hi Werner!
But building of lilypond-test fails.
./target/linux-64/build/lilypond-git.sv.gnu.org--lilypond.git-master/input/regression/lilypond-book/suffix-tely.texi2pdf.log:
/home/gub/NewGub/gub/target/tools/root/usr/bin/texi2dvi: texinfo.tex
appears to be broken.
This may be due to the environment variable TEX set to something
other than (plain) tex, a corrupt texinfo.tex file, or
to tex itself simply not working.
etex:
/home/gub/NewGub/gub/target/linux-64/root/usr/lib/libstdc++.so.6:
version `CXXABI_1.3.9' not found (required by etex)
Obviously another linking path issue: While executing the external TeX
binaries, DLL stuff from `target/...' must not be used.
The problem here is that our texi2* stuff needs LD_LIBRARY_PATH to find our
DLLs in target/..., but the system's etex binary, executed by texi2*, fails on
openSuSE Tumbleweed because it is incompatible to those libs in target/....
I think the easiest solution is a simple etex wrapper script in tools/root that
clears LD_LIBRARY_PATH and then executes the system's etex.
With the three patches attached on top of the waiting gub pull requests
rm -rf target
make lilypond
make LILYPOND_BRANCH=stable/2.20 lilypond
make LILYPOND_BRANCH=release/unstable lilypond
all succeed on openSuSE Tumbleweed.
ubuntu 18 is still broken, and the 0001-Fix... patch ignores that it breaks gub
on all systems that don't have a gcc-7. Obviously some polishing is needed, but
first I will spend some time on fixing the issues on ubuntu 18.
Knut
>From 336cc22535eea2450a0af19db4d8c8035f215a09 Mon Sep 17 00:00:00 2001
From: Knut Petersen <knut_peter...@t-online.de>
Date: Sun, 13 Jan 2019 17:01:46 +0100
Subject: [PATCH 1/3] Fix building python on openSuSE tumbleweed
Use gcc-7 as our ancient python seems to be incompatible
to the gcc v8.2.1 found on openSuSE Tumbleweed.
---
gub/specs/python.py | 2 ++
1 file changed, 2 insertions(+)
diff --git a/gub/specs/python.py b/gub/specs/python.py
index 049b26f2..631d260f 100644
--- a/gub/specs/python.py
+++ b/gub/specs/python.py
@@ -191,6 +191,8 @@ class Python__tools (tools.AutoBuild, Python):
]
force_autoupdate = True
parallel_build_broken = True
+ configure_command = ('LDFLAGS=-L%(system_prefix)s/lib CC=gcc-7 '
+ + tools.AutoBuild.configure_command)
make_flags = Python.make_flags + ' LIBC="-lcrypt -ldb"'
def patch (self):
Python.patch (self)
--
2.20.1
>From 91e080e2c1cefbc15abd1eb93bea85a9a0295140 Mon Sep 17 00:00:00 2001
From: Knut Petersen <knut_peter...@t-online.de>
Date: Wed, 16 Jan 2019 14:22:13 +0100
Subject: [PATCH 2/3] Install db libs in usr/lib as well as usr/lib64
On some build systems our libdb is expected in usr/lib,
on others it is expected to be found in usr/lib64.
Don't try to be smart, simply store libdb in usr/lib
and create symbolic links in usr/lib64.
---
gub/specs/db.py | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/gub/specs/db.py b/gub/specs/db.py
index 09abebfb..c7d7c0ae 100644
--- a/gub/specs/db.py
+++ b/gub/specs/db.py
@@ -88,3 +88,11 @@ class Db__tools (tools.AutoBuild, Db):
# FIXME: /usr/docs/ is full of invalid symlinks
self.system ('rm -rf %(install_prefix)s/docs')
self.system ('cd %(install_prefix)s/lib && ln -s libdb-*.la libdb.la')
+ self.system ('mkdir -p %(install_prefix)s/lib64')
+ self.system ('cd %(install_prefix)s/lib64 && ln -s ../lib/libdb.la libdb.la')
+ self.system ('cd %(install_prefix)s/lib64 && ln -s ../lib/libdb.so libdb.so')
+ self.system ('cd %(install_prefix)s/lib64 && ln -s ../lib/libdb-4.7.so libdb-4.7.so')
+ self.system ('cd %(install_prefix)s/lib64 && ln -s ../lib/libdb-4.so libdb-4.so')
+ self.system ('cd %(install_prefix)s/lib64 && ln -s ../lib/libdb.a libdb.a')
+ self.system ('cd %(install_prefix)s/lib64 && ln -s ../lib/libdb-4.7.la libdb-4.7.la')
+ self.system ('cd %(install_prefix)s/lib64 && ln -s ../lib/libdb-4.7.a libdb-4.7.a')
--
2.20.1
>From 6cb2f2eb369fa6267b71cf4b94cdcb5ec83d15e7 Mon Sep 17 00:00:00 2001
From: Knut Petersen <knut_peter...@t-online.de>
Date: Thu, 17 Jan 2019 01:35:42 +0100
Subject: [PATCH 3/3] Fix lilypond-test
lilypond-test uses our texi2dvi, and texi2dvi uses etex.
As we don't have an own etex, the system's etex binary
is used.
Our texi2dvi needs a proper LD_LIBRARY_PATH, but etex
might fail (and it does so on openSuSE tumbleweed)
if LD_LIBRARY_PATH is not empty.
To solve this problem a script etex is created in
./target/tools/root/usr/bin. This script simply clears
LD_LIBRARY_PATH and then executes the system's
etex binary.
---
gub/specs/lilypond-test.py | 9 +++++++++
1 file changed, 9 insertions(+)
diff --git a/gub/specs/lilypond-test.py b/gub/specs/lilypond-test.py
index a07b3f4b..14c8db7a 100644
--- a/gub/specs/lilypond-test.py
+++ b/gub/specs/lilypond-test.py
@@ -1,4 +1,5 @@
#
+import os
from gub import context
from gub import misc
from gub import target
@@ -45,6 +46,14 @@ LD_PRELOAD= tar -C %(builddir)s -cjf %(test_ball)s input/regression/out-test
self.file_sub ([('^EXTRACTPDFMARK = ([^L].*)$',
'EXTRACTPDFMARK = LD_LIBRARY_PATH=%(tools_prefix)s/lib \\1')],
'%(builddir)s/config.make')
+ # our texi2pdf uses system's etex, so create a script etex
+ # that calls /usr/bin/etex with empty LD_LIBRARY_PATH
+ foutname = './target/tools/root/usr/bin/etex'
+ fout = open (foutname, 'w+')
+ fout.write ('#!/bin/sh\n')
+ fout.write ('LD_LIBRARY_PATH= /usr/bin/etex $@\n')
+ fout.close
+ os.chmod(foutname,0700)
# The timestamp of these scripts should not be older than config.make.
# Otherwise, they will be regenerated from the source directory
# and the above substitutes will be lost.
--
2.20.1
_______________________________________________
lilypond-devel mailing list
lilypond-devel@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-devel