[oe] [meta-oe][PATCH 01/16] boinc: Add recipe for boinc-client

Khem Raj raj.khem at gmail.com
Tue Oct 25 13:49:37 UTC 2016


> On Oct 25, 2016, at 6:32 AM, Martin Jansa <martin.jansa at gmail.com> wrote:
> 
> On Tue, Oct 18, 2016 at 10:38:19PM -0700, Khem Raj wrote:
>> Signed-off-by: Khem Raj <raj.khem at gmail.com>
> 
> boinc-client-7.6.33: boinc-client rdepends on libxscrnsaver, but it
> isn't a build dependency, missing libxscrnsaver in DEPENDS or
> PACKAGECONFIG? [build-deps]

thanks, drop this one for now. I will send a v2 with feedback addressed.

> 
>> ---
>> .../boinc/boinc-client/boinc-AM_CONDITIONAL.patch  | 19 +++++
>> .../boinc/boinc-client/cross-compile.patch         | 92 ++++++++++++++++++++++
>> .../boinc/boinc-client/opengl_m4_check.patch       | 13 +++
>> .../recipes-extended/boinc/boinc-client_7.6.33.bb  | 60 ++++++++++++++
>> 4 files changed, 184 insertions(+)
>> create mode 100644 meta-oe/recipes-extended/boinc/boinc-client/boinc-AM_CONDITIONAL.patch
>> create mode 100644 meta-oe/recipes-extended/boinc/boinc-client/cross-compile.patch
>> create mode 100644 meta-oe/recipes-extended/boinc/boinc-client/opengl_m4_check.patch
>> create mode 100644 meta-oe/recipes-extended/boinc/boinc-client_7.6.33.bb
>> 
>> diff --git a/meta-oe/recipes-extended/boinc/boinc-client/boinc-AM_CONDITIONAL.patch b/meta-oe/recipes-extended/boinc/boinc-client/boinc-AM_CONDITIONAL.patch
>> new file mode 100644
>> index 0000000..3ebf7c8
>> --- /dev/null
>> +++ b/meta-oe/recipes-extended/boinc/boinc-client/boinc-AM_CONDITIONAL.patch
>> @@ -0,0 +1,19 @@
>> +--- A/configure.ac
>> ++++ B/configure.ac
>> +@@ -39,6 +39,7 @@ AC_PROG_CC
>> + AC_PROG_CXX
>> + AC_PROG_F77
>> + AC_PROG_CPP
>> ++AC_PROG_OBJCXX
>> + AC_PROG_MAKE_SET
>> + SAH_LINKS
>> + AC_LANG_PUSH(C)
>> +@@ -744,6 +745,8 @@ AM_CONDITIONAL(ENABLE_LIBRARIES, [test "
>> + AM_CONDITIONAL(INSTALL_HEADERS, [test "${enable_install_headers}" = yes])
>> + AM_CONDITIONAL(HAVE_CUDA_LIB, [test "${enable_client}" = yes -a -f ./coprocs/CUDA/posix/${boinc_platform}/libcudart.so])
>> +
>> ++PKG_CHECK_MODULES([GTK2], [gtk+-2.0])
>> ++
>> + dnl ======================================================================
>> + dnl some more vodoo required for building portable client-binary (client, clientgui)
>> + dnl ======================================================================
>> diff --git a/meta-oe/recipes-extended/boinc/boinc-client/cross-compile.patch b/meta-oe/recipes-extended/boinc/boinc-client/cross-compile.patch
>> new file mode 100644
>> index 0000000..3d29558
>> --- /dev/null
>> +++ b/meta-oe/recipes-extended/boinc/boinc-client/cross-compile.patch
>> @@ -0,0 +1,92 @@
>> +Index: boinc-client_release-7.6-7.6.33/api/Makefile.am
>> +===================================================================
>> +--- boinc-client_release-7.6-7.6.33.orig/api/Makefile.am
>> ++++ boinc-client_release-7.6-7.6.33/api/Makefile.am
>> +@@ -43,18 +43,18 @@ endif
>> +
>> + lib_LTLIBRARIES = libboinc_api.la
>> + libboinc_api_la_SOURCES = $(api_files)
>> +-libboinc_api_la_LDFLAGS = -L$(libdir) -rpath $(libdir) -version-number $(LIBBOINC_VERSION)
>> ++libboinc_api_la_LDFLAGS = -version-number $(LIBBOINC_VERSION)
>> +
>> + if BUILD_GRAPHICS_API
>> + lib_LTLIBRARIES += libboinc_graphics2.la
>> + libboinc_graphics2_la_SOURCES = $(graphics2_files)
>> + libboinc_graphics2_la_CPPFLAGS = -I$(top_srcdir) -I$(top_srcdir)/lib -I$(top_srcdir)/samples/image_libs
>> +-libboinc_graphics2_la_LDFLAGS = -L$(libdir) -rpath $(libdir) -version-number $(LIBBOINC_VERSION) -ljpeg
>> ++libboinc_graphics2_la_LDFLAGS = -version-number $(LIBBOINC_VERSION) -ljpeg
>> + endif #BUILD_GRAPHICS_API
>> +
>> + lib_LTLIBRARIES += libboinc_opencl.la
>> + libboinc_opencl_la_SOURCES = $(opencl_files)
>> +-libboinc_opencl_la_LDFLAGS = -L$(libdir) -rpath $(libdir) -version-number $(LIBBOINC_VERSION)
>> ++libboinc_opencl_la_LDFLAGS = -version-number $(LIBBOINC_VERSION)
>> +
>> + if INSTALL_HEADERS
>> + ## install only headers that are meant for exporting the API !!
>> +Index: boinc-client_release-7.6-7.6.33/lib/Makefile.am
>> +===================================================================
>> +--- boinc-client_release-7.6-7.6.33.orig/lib/Makefile.am
>> ++++ boinc-client_release-7.6-7.6.33/lib/Makefile.am
>> +@@ -173,7 +173,7 @@ lib_LTLIBRARIES = libboinc.la
>> + libboinc_la_SOURCES = $(generic_sources) $(mac_sources) $(win_sources)
>> + libboinc_la_CFLAGS = $(AM_CFLAGS) $(PICFLAGS) $(PTHREAD_CFLAGS)
>> + libboinc_la_CXXFLAGS = $(AM_CXXFLAGS) $(PICFLAGS) $(PTHREAD_CFLAGS)
>> +-libboinc_la_LDFLAGS = -L$(libdir) -rpath $(libdir) -static -version-number $(LIBBOINC_VERSION)
>> ++libboinc_la_LDFLAGS = -static -version-number $(LIBBOINC_VERSION)
>> + libboinc_la_LIBADD =
>> +
>> + if ENABLE_BOINCCRYPT
>> +@@ -181,7 +181,7 @@ lib_LTLIBRARIES += libboinc_crypt.la
>> + libboinc_crypt_la_SOURCES = crypt.cpp
>> + libboinc_crypt_la_CFLAGS = $(AM_CFLAGS) $(PICFLAGS) $(PTHREAD_CFLAGS) $(SSL_CFLAGS)
>> + libboinc_crypt_la_CXXFLAGS = $(AM_CXXFLAGS) $(PICFLAGS) $(PTHREAD_CFLAGS) $(SSL_CXXFLAGS)
>> +-libboinc_crypt_la_LDFLAGS = -L$(libdir) -rpath $(libdir) -static -version-number $(LIBBOINC_VERSION)
>> ++libboinc_crypt_la_LDFLAGS = -static -version-number $(LIBBOINC_VERSION)
>> + libboinc_crypt_la_LIBADD =
>> + endif
>> +
>> +@@ -190,7 +190,7 @@ lib_LTLIBRARIES += libboinc_fcgi.la
>> + libboinc_fcgi_la_SOURCES = $(libfcgi_sources) $(mac_sources) $(win_sources)
>> + libboinc_fcgi_la_CFLAGS = -D_USING_FCGI_ $(AM_CFLAGS) $(PICFLAGS) $(PTHREAD_CFLAGS)
>> + libboinc_fcgi_la_CXXFLAGS = -D_USING_FCGI_ $(AM_CXXFLAGS) $(PICFLAGS) $(PTHREAD_CFLAGS)
>> +-libboinc_fcgi_la_LDFLAGS = -L$(libdir) -rpath $(libdir) -version-number $(LIBBOINC_VERSION)
>> ++libboinc_fcgi_la_LDFLAGS = -version-number $(LIBBOINC_VERSION)
>> + libboinc_fcgi_la_LIBADD =
>> + endif
>> + # end of "if ENABLE_FCGI"
>> +Index: boinc-client_release-7.6-7.6.33/sched/Makefile.am
>> +===================================================================
>> +--- boinc-client_release-7.6-7.6.33.orig/sched/Makefile.am
>> ++++ boinc-client_release-7.6-7.6.33/sched/Makefile.am
>> +@@ -26,7 +26,7 @@ lib_LTLIBRARIES = libsched.la
>> + libsched_la_SOURCES = $(libsched_sources)
>> + libsched_la_CFLAGS = $(AM_CPPFLAGS)
>> + libsched_la_CXXFLAGS = $(AM_CPPFLAGS)
>> +-libsched_la_LDFLAGS= -L$(libdir) -rpath $(libdir) -version-number $(LIBBOINC_VERSION)
>> ++libsched_la_LDFLAGS= -version-number $(LIBBOINC_VERSION)
>> + libsched_la_LIBADD= $(SSL_LIBS)
>> +
>> + ## install only headers that are meant for exporting the API !!
>> +@@ -48,7 +48,7 @@ lib_LTLIBRARIES += libsched_fcgi.la
>> + libsched_fcgi_la_SOURCES = $(libsched_sources)
>> + libsched_fcgi_la_CFLAGS = -D_USING_FCGI_ $(AM_CPPFLAGS)
>> + libsched_fcgi_la_CXXFLAGS = -D_USING_FCGI_ $(AM_CPPFLAGS)
>> +-libsched_fcgi_la_LDFLAGS= -L$(libdir) -rpath $(libdir) -version-number $(LIBBOINC_VERSION)
>> ++libsched_fcgi_la_LDFLAGS= -version-number $(LIBBOINC_VERSION)
>> + libsched_fcgi_la_LIBADD=
>> +
>> + endif
>> +Index: boinc-client_release-7.6-7.6.33/zip/Makefile.am
>> +===================================================================
>> +--- boinc-client_release-7.6-7.6.33.orig/zip/Makefile.am
>> ++++ boinc-client_release-7.6-7.6.33/zip/Makefile.am
>> +@@ -61,7 +61,7 @@ endif
>> +
>> + lib_LTLIBRARIES = libboinc_zip.la
>> + libboinc_zip_la_SOURCES = $(libboinc_zip_sources)
>> +-libboinc_zip_la_LDFLAGS = -L$(libdir) -rpath $(libdir) -version-number $(LIBBOINC_VERSION)
>> ++libboinc_zip_la_LDFLAGS = -version-number $(LIBBOINC_VERSION)
>> + libboinc_zip_la_LIBADD =
>> +
>> + # Some OSs may not prefix libraries with lib.
>> diff --git a/meta-oe/recipes-extended/boinc/boinc-client/opengl_m4_check.patch b/meta-oe/recipes-extended/boinc/boinc-client/opengl_m4_check.patch
>> new file mode 100644
>> index 0000000..f7295c1
>> --- /dev/null
>> +++ b/meta-oe/recipes-extended/boinc/boinc-client/opengl_m4_check.patch
>> @@ -0,0 +1,13 @@
>> +Index: boinc-client_release-7.6-7.6.33/m4/ax_check_gl.m4
>> +===================================================================
>> +--- boinc-client_release-7.6-7.6.33.orig/m4/ax_check_gl.m4
>> ++++ boinc-client_release-7.6-7.6.33/m4/ax_check_gl.m4
>> +@@ -58,7 +58,7 @@ else
>> +     else
>> +       ax_try_lib="${ax_lib}"
>> +     fi
>> +-    LIBS="-L${prefix}/lib ${ax_try_lib} ${GL_LIBS} ${ax_save_LIBS}"
>> ++    LIBS="${ax_try_lib} ${GL_LIBS} ${ax_save_LIBS}"
>> +     AC_LINK_IFELSE(
>> +     [AC_LANG_PROGRAM([[
>> + # if HAVE_WINDOWS_H && defined(_WIN32)
>> diff --git a/meta-oe/recipes-extended/boinc/boinc-client_7.6.33.bb b/meta-oe/recipes-extended/boinc/boinc-client_7.6.33.bb
>> new file mode 100644
>> index 0000000..34472e0
>> --- /dev/null
>> +++ b/meta-oe/recipes-extended/boinc/boinc-client_7.6.33.bb
>> @@ -0,0 +1,60 @@
>> +# Copyright (C) 2016 Khem Raj <raj.khem at gmail.com>
>> +# Released under the MIT license (see COPYING.MIT for the terms)
>> +
>> +SUMMARY = "Open-source software for volunteer computing"
>> +DESCRIPTION = "The Berkeley Open Infrastructure for Network Computing (BOINC) is an open- \
>> +source software platform which supports distributed computing, primarily in \
>> +the form of volunteer computing and desktop Grid computing.  It is well \
>> +suited for problems which are often described as trivially parallel.  BOINC \
>> +is the underlying software used by projects such as SETI at home, Einstein at Home, \
>> +ClimatePrediciton.net, the World Community Grid, and many other distributed \
>> +computing projects. \
>> +This package installs the BOINC client software, which will allow your \
>> +computer to participate in one or more BOINC projects, using your spare \
>> +computer time to search for cures for diseases, model protein folding, study \
>> +global warming, discover sources of gravitational waves, and many other types \
>> +of scientific and mathematical research."
>> +
>> +HOMEPAGE = "http://boinc.berkeley.edu/"
>> +LICENSE = "LGPLv2+ & GPLv3"
>> +LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504 \
>> +                    file://COPYING.LESSER;md5=6a6a8e020838b23406c81b19c1d46df6"
>> +SECTION = "applications"
>> +DEPENDS = "curl jpeg openssl xcb-util sqlite3 virtual/libgl libnotify gtk+ nettle"
>> +
>> +SRC_URI = "https://github.com/BOINC/boinc/archive/client_release/7.6/${PV}.tar.gz \
>> +           file://boinc-AM_CONDITIONAL.patch \
>> +           file://opengl_m4_check.patch \
>> +           file://cross-compile.patch \
>> +"
>> +SRC_URI[md5sum] = "437b4b98e384b4bda4ef7056e68166ac"
>> +SRC_URI[sha256sum] = "c4b1c29b9655013e0ac61dddf47ad7f30f38c46159f02a9d9dc8ab854e99aa6d"
>> +
>> +inherit gettext autotools-brokensep pkgconfig
>> +
>> +S = "${WORKDIR}/${BPN}_release-7.6-${PV}"
>> +
>> +EXTRA_OECONF += "\
>> +    --enable-libraries \
>> +    --enable-unicode \
>> +    --enable-shared \
>> +    --enable-dynamic-client-linkage \
>> +    --enable-client \
>> +    --disable-server \
>> +    --disable-static \
>> +    --disable-manager \
>> +    --with-ssl=${STAGING_EXECPREFIXDIR} \
>> +    --without-wxdir \
>> +    --without-x \
>> +    --with-boinc-platform=${TARGET_SYS} \
>> +"
>> +export PKG_CONFIG = "${STAGING_BINDIR_NATIVE}/pkg-config"
>> +
>> +do_compile_prepend () {
>> +	# Disable rpaths
>> +	sed -i -e 's|^hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=""|g' ${B}/${TARGET_SYS}-libtool
>> +	sed -i -e 's|^sys_lib_dlsearch_path_spec=.*|sys_lib_dlsearch_path_spec=""|g' ${B}/${TARGET_SYS}-libtool
>> +	sed -i -e 's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|g' ${B}/${TARGET_SYS}-libtool
>> +}
>> +
>> +SECURITY_CFLAGS = "${SECURITY_NO_PIE_CFLAGS}"
>> --
>> 2.10.0
>> 
>> --
>> _______________________________________________
>> Openembedded-devel mailing list
>> Openembedded-devel at lists.openembedded.org
>> http://lists.openembedded.org/mailman/listinfo/openembedded-devel
> 
> --
> Martin 'JaMa' Jansa     jabber: Martin.Jansa at gmail.com
> --
> _______________________________________________
> Openembedded-devel mailing list
> Openembedded-devel at lists.openembedded.org
> http://lists.openembedded.org/mailman/listinfo/openembedded-devel

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 204 bytes
Desc: Message signed with OpenPGP using GPGMail
URL: <http://lists.openembedded.org/pipermail/openembedded-devel/attachments/20161025/973cb98f/attachment-0002.sig>


More information about the Openembedded-devel mailing list