Opened 6 years ago

Closed 6 years ago

#2063 closed defect (fixed)

ZOO Project package missing from Bionic

Reported by: kalxas Owned by: osgeolive@…
Priority: critical Milestone: OSGeoLive12.0
Component: OSGeoLive Keywords: zoo-project
Cc: osgeolive@…

Description

The following packages are missing from Bionic and need to be packaged in OSGeoLive ppa: zoo-kernel zoo-service-ogr zoo-service-status zoo-service-cgal zoo-service-otb zoo-api

Attachments (2)

osgeolive.patch (6.8 KB ) - added by djay 6 years ago.
Patch
osgeolive-services.patch (505 bytes ) - added by djay 6 years ago.
For building CGAL services, use the following patch from zoo-services.

Download all attachments as: .zip

Change history (19)

comment:1 by kalxas, 6 years ago

libmozjs-1.8.5 is missing from Ubuntu Bionic, last time available in Ubuntu Artful:

https://packages.ubuntu.com/search?suite=all&arch=any&searchon=names&keywords=libmozjs

comment:4 by djay, 6 years ago

I don't understand how we can get this message. Indeed, if we look in the configure.ac file that is used to build the ZOO-Kernel, we can see the following: http://www.zoo-project.org/trac/browser/tags/rel-1.6.0/zoo-project/zoo-kernel/configure.ac#L861 .

From the log you have provided we can see that the file otbWrapperApplicationRegistry.h have been correctly found. Nevertheless, from the line I gave earlier, we can easily see that we simply create a very basic C++ file that is including this specific header file and invoke the otb::Wrapper::ApplicationRegistry::GetAvailableApplications() static function.

I do apologize for this last minute issue.

comment:5 by kalxas, 6 years ago

Some progress has been made in building ZOO, but it seems that ZOO depends on libc++ xlocale.h header that has been removed:

https://sourceware.org/ml/libc-alpha/2017-08/msg00010.html

https://sourceware.org/glibc/wiki/Release/2.26#Removal_of_.27xlocale.h.27

make[2]: Leaving directory '/<<BUILDDIR>>/zoo-project-1.6.0~rc2+ds/thirds/cgic206'
make[2]: Entering directory '/<<BUILDDIR>>/zoo-project-1.6.0~rc2+ds/thirds/cgic206'
rm -f libcgic.a
ar rc libcgic.a cgic.o
ranlib libcgic.a
make[2]: Leaving directory '/<<BUILDDIR>>/zoo-project-1.6.0~rc2+ds/thirds/cgic206'
make[2]: Entering directory '/<<BUILDDIR>>/zoo-project-1.6.0~rc2+ds/thirds/cgic206'
gcc capture.o -o capture -L./ -lcgic /usr/lib/x86_64-linux-gnu/libfcgi.a
make[2]: Leaving directory '/<<BUILDDIR>>/zoo-project-1.6.0~rc2+ds/thirds/cgic206'
make[2]: Entering directory '/<<BUILDDIR>>/zoo-project-1.6.0~rc2+ds/thirds/cgic206'
gcc cgictest.o -o cgictest.cgi -L./ -lcgic /usr/lib/x86_64-linux-gnu/libfcgi.a
make[2]: Leaving directory '/<<BUILDDIR>>/zoo-project-1.6.0~rc2+ds/thirds/cgic206'
dh_auto_build --sourcedirectory=zoo-project/zoo-kernel \
              --builddirectory=zoo-project/zoo-kernel \
              --max-parallel=1
	cd zoo-project/zoo-kernel && make -j1
make[2]: Entering directory '/<<BUILDDIR>>/zoo-project-1.6.0~rc2+ds/zoo-project/zoo-kernel'
echo "#define ZOO_VERSION \"`dpkg-parsechangelog -l ../../debian/changelog | sed -ne 's/^Version: \(.*\)-.*/\1/p' | sed -e 's/.*+svn//; s/+ds[0-9]*//; s/^[0-9]://'`\"" > version.h
echo "#define ETC_DIR \"/etc/zoo-project\"" >> version.h
echo "#define LOCALEDIR \"/usr/share/locale\"" >>  version.h
gcc -I/usr/include/gdal -DUSE_JS -I/usr/include/js/ -I/usr/include/libxml2 -g -O2 -fdebug-prefix-map=/<<BUILDDIR>>/zoo-project-1.6.0~rc2+ds/zoo-project/zoo-kernel=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2  -DDEB -fpic -I/usr//include -I/usr/include   -DUSE_MS -I/usr/include/mapserver  -I../../thirds/cgic206 -I. -DLINUX_FREE_ISSUE  -fPIC -c service_internal.c
In file included from service_internal_ms.h:28:0,
                 from service_internal.c:27:
service_internal.h:84:10: fatal error: xlocale.h: No such file or directory
 #include <xlocale.h>
          ^~~~~~~~~~~
compilation terminated.
Makefile:56: recipe for target 'service_internal.o' failed
make[2]: *** [service_internal.o] Error 1

comment:6 by kalxas, 6 years ago

Just a note for ZOO developers.

In case you want to try building zoo in Ubuntu 18.04, use the following to add the missing libmozjs dependency:

sudo add-apt-repository ppa:gcpp-kalxas/osgeolive

sudo apt-get update

sudo apt-get install libmozjs185-dev

in reply to:  5 comment:7 by djay, 6 years ago

Many thanks for such a useful work for the ZOO-Project which will help us to fix this not only in the version you try to build but also the upcoming ones.

From what I can read from the links you have sent: "it was a strict subset of the standard header locale.h" so it should be worth to try replacing xlocale.h by locale.h in both service_internal.h and response_print.h.

I don't know if it is allowed, but it case it is, a simple sed "s:xlocale.h:local.h:g" -i {service_internal.h,response_print.h} before running make should solve the issue.

in reply to:  6 comment:8 by djay, 6 years ago

Thanks a lot for having provided this package, it will help people to build the ZOO-Kernel on newer Ubuntu distribution.

I still think that it will require that we upgrade the JavaScript support to the latest version of the libmozjs available.

comment:9 by kalxas, 6 years ago

Thanks, I will apply the patch to the source code and test.

comment:10 by kalxas, 6 years ago

https://launchpadlibrarian.net/384600355/buildlog_ubuntu-bionic-amd64.zoo-project_1.6.0~rc2+ds-1~bionic5_BUILDING.txt.gz

make[2]: Leaving directory '/<<BUILDDIR>>/zoo-project-1.6.0~rc2+ds/thirds/cgic206'
make[2]: Entering directory '/<<BUILDDIR>>/zoo-project-1.6.0~rc2+ds/thirds/cgic206'
rm -f libcgic.a
ar rc libcgic.a cgic.o
ranlib libcgic.a
make[2]: Leaving directory '/<<BUILDDIR>>/zoo-project-1.6.0~rc2+ds/thirds/cgic206'
make[2]: Entering directory '/<<BUILDDIR>>/zoo-project-1.6.0~rc2+ds/thirds/cgic206'
gcc capture.o -o capture -L./ -lcgic /usr/lib/x86_64-linux-gnu/libfcgi.a
make[2]: Leaving directory '/<<BUILDDIR>>/zoo-project-1.6.0~rc2+ds/thirds/cgic206'
make[2]: Entering directory '/<<BUILDDIR>>/zoo-project-1.6.0~rc2+ds/thirds/cgic206'
gcc cgictest.o -o cgictest.cgi -L./ -lcgic /usr/lib/x86_64-linux-gnu/libfcgi.a
make[2]: Leaving directory '/<<BUILDDIR>>/zoo-project-1.6.0~rc2+ds/thirds/cgic206'
dh_auto_build --sourcedirectory=zoo-project/zoo-kernel \
              --builddirectory=zoo-project/zoo-kernel \
              --max-parallel=1
	cd zoo-project/zoo-kernel && make -j1
make[2]: Entering directory '/<<BUILDDIR>>/zoo-project-1.6.0~rc2+ds/zoo-project/zoo-kernel'
echo "#define ZOO_VERSION \"`dpkg-parsechangelog -l ../../debian/changelog | sed -ne 's/^Version: \(.*\)-.*/\1/p' | sed -e 's/.*+svn//; s/+ds[0-9]*//; s/^[0-9]://'`\"" > version.h
echo "#define ETC_DIR \"/etc/zoo-project\"" >> version.h
echo "#define LOCALEDIR \"/usr/share/locale\"" >>  version.h
gcc -I/usr/include/gdal -DUSE_JS -I/usr/include/js/ -I/usr/include/libxml2 -g -O2 -fdebug-prefix-map=/<<BUILDDIR>>/zoo-project-1.6.0~rc2+ds/zoo-project/zoo-kernel=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2  -DDEB -fpic -I/usr//include -I/usr/include   -DUSE_MS -I/usr/include/mapserver  -I../../thirds/cgic206 -I. -DLINUX_FREE_ISSUE  -fPIC -c service_internal.c
In file included from service_internal_ms.h:28:0,
                 from service_internal.c:27:
service_internal.h:84:10: fatal error: local.h: No such file or directory
 #include <local.h>
          ^~~~~~~~~
compilation terminated.

in reply to:  10 comment:11 by djay, 6 years ago

Sorry, in my previous message local.h should be read locale.h.

It should solve the issue.

comment:12 by kalxas, 6 years ago

new build:

In file included from /usr/include/c++/7/cmath:42:0,
                 from /usr/include/c++/7/math.h:36,
                 from /usr/include/python2.7/pyport.h:325,
                 from /usr/include/python2.7/Python.h:61,
                 from service_internal_python.h:32,
                 from service_internal_python.c:25:
/usr/include/c++/7/bits/cpp_type_traits.h:205:12: error: redefinition of ‘struct std::__is_integer<int>’
     struct __is_integer<int>
            ^~~~~~~~~~~~~~~~~
/usr/include/c++/7/bits/cpp_type_traits.h:138:12: note: previous definition of ‘struct std::__is_integer<int>’
     struct __is_integer<bool>
            ^~~~~~~~~~~~~~~~~~

in reply to:  12 comment:13 by djay, 6 years ago

I guess this is due to a redefinition of bool from ulinet.h.

Can you please try to put the content from line 47 (http://www.zoo-project.org/trac/browser/branches/prototype-v0/zoo-project/zoo-kernel/ulinet.h#L47) to 53 into a #ifndef __cplusplus block?

by djay, 6 years ago

Attachment: osgeolive.patch added

Patch

comment:14 by djay, 6 years ago

I sucessfully built rel-6.0.0 using beta4 and the patch available here.

comment:15 by kalxas, 6 years ago

Thanks, I will apply this patch and try again.

by djay, 6 years ago

Attachment: osgeolive-services.patch added

For building CGAL services, use the following patch from zoo-services.

comment:17 by kalxas, 6 years ago

Resolution: fixed
Status: newclosed
Note: See TracTickets for help on using tickets.