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

Martin Jansa martin.jansa at gmail.com
Tue Oct 25 13:32:11 UTC 2016


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]

> ---
>  .../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
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 163 bytes
Desc: Digital signature
URL: <http://lists.openembedded.org/pipermail/openembedded-devel/attachments/20161025/02a18225/attachment-0002.sig>


More information about the Openembedded-devel mailing list