commit:     86378c48a9e7862972b1ff0c4323f5766b2b7b78
Author:     Stephen L Arnold <nerdboy <AT> gentoo <DOT> org>
AuthorDate: Tue Jan  5 19:36:58 2016 +0000
Commit:     Steve Arnold <nerdboy <AT> gentoo <DOT> org>
CommitDate: Tue Jan  5 19:38:18 2016 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=86378c48

sci-libs/libbufr: Updated to latest release and removed old version

This fixes and/or obsoletes three open bugs on the old version
(bugs  370021, 478614, 513964) and adds lto USE flag to support
gold linker and -flto.  Also need to update package.mask.

Package-Manager: portage-2.2.26

 sci-libs/libbufr/Manifest                          |   2 +-
 .../libbufr/files/libbufr-000405-makefile.patch    |  80 ++++++++++++++++
 ...libbufr-000387.ebuild => libbufr-000405.ebuild} | 105 +++++++++++----------
 sci-libs/libbufr/metadata.xml                      |  15 ++-
 4 files changed, 150 insertions(+), 52 deletions(-)

diff --git a/sci-libs/libbufr/Manifest b/sci-libs/libbufr/Manifest
index da7f5f5..e0171be 100644
--- a/sci-libs/libbufr/Manifest
+++ b/sci-libs/libbufr/Manifest
@@ -1 +1 @@
-DIST bufr_000387.tar.gz 3673816 SHA256 
bb8c39f15b2d1661ef2d66de8ee1fcaaa195e8cb80023fc3112d3dd816c97745 SHA512 
906129809c92b22bd0a73524048128e4a44335eaf8c978bb4d0c3c5f5be7d01ce530e3248eec681b4662840e4ed0270089ddc801dca8f022e7d6cfbc5e4c2967
 WHIRLPOOL 
43af1997618c1f73fbd8ee6120c4ad8329f648d1bbb09165b5f750e30cd5d49e246cabb4a6b82341e8408ffb042cbd58cb82ed29e0c234a27fa44a684b89c169
+DIST bufrdc_000405.tar.gz 11873311 SHA256 
0c3ab33bdb3eea600c5af6f1e4064a000ec143f4c96a14b72ca09666ca3c3775 SHA512 
3355d6bac54ef152f9feb13ae13f3c94f4e01a665a4b9bc7f85f0c98f9aa37411170668ba9adfb6b62c2fe906d0dff67b03a708cdf1acd21a0037e327c7c6169
 WHIRLPOOL 
f97662c240e40086be2e2f7d33d446280576dd79ff119374d54d02af05bd51c9176a6592d965765baf549043ee80e8bb9e824e3149d4ce85599db1f5e3f42e10

diff --git a/sci-libs/libbufr/files/libbufr-000405-makefile.patch 
b/sci-libs/libbufr/files/libbufr-000405-makefile.patch
new file mode 100644
index 0000000..08b30de
--- /dev/null
+++ b/sci-libs/libbufr/files/libbufr-000405-makefile.patch
@@ -0,0 +1,80 @@
+--- Makefile.orig      2016-01-04 13:09:58.661150785 -0800
++++ Makefile   2016-01-04 13:17:12.707621825 -0800
+@@ -1,7 +1,7 @@
+ #                                Makefile for libbufrex
+ #
+ R64 = R64
+-TARGETS = all clean
++TARGETS = all clean test
+ LIBRARY = libbufr$(R64).a
+ SHELL=/bin/sh
+ SUBDIRS = fortranC bufrdc pbio bufrtables examples
+@@ -11,12 +11,14 @@
+       ( echo "*************************"; \
+         echo "*** Make in $$name "; \
+         echo "*************************"; \
+-      cd $$name ; make ; ) done
++      $(MAKE) -C $$name LIB=bufr ; ) done
++
++test :
+       ./test.sh
+       tables_tools/check_tables.sh bufrtables
+ 
+ clean   :
+       @for name in $(SUBDIRS); do\
+-      ( echo "*** Clean in $$name ***" ;cd $$name ; make clean ); \
++      ( echo "*** Clean in $$name ***" ;$(MAKE) -C $$name clean ); \
+       done
+       rm -f $(LIBRARY)
+--- examples/Makefile.in.orig  2016-01-04 13:42:39.790648703 -0800
++++ examples/Makefile.in       2016-01-04 13:45:02.384967830 -0800
+@@ -16,19 +16,19 @@
+ #
+ #
+ TARGETS  = all clean
+-EXECS    = decode_bufr decode_bufr_image bufr_decode_all tdexp tdexp 
create_bufr
++EXECS    = decode_bufr decode_bufr_image bufr_decode_all bufr_compress tdexp 
create_bufr
+ #
+ #
+ all :$(EXECS)
+ 
+-decode_bufr: decode_bufr.o 
++decode_bufr: decode_bufr.o
+       $(FC) $(FFLAGS) -o $@ decode_bufr.o -L$(PLACE) -l$(LIB)$(R64)
+ 
+-bufr_decode_all: bufr_decode_all.o 
+-      $(FC) $(FFLAGS) -o $@ bufr_decode_all.o -L$(PLACE) -l$(LIB)$(R64) 
++bufr_decode_all: bufr_decode_all.o
++      $(FC) $(FFLAGS) -o $@ bufr_decode_all.o -L$(PLACE) -l$(LIB)$(R64)
+ 
+-bufr_compress: bufr_compress.o 
+-      $(FC) $(FFLAGS) -o $@ bufr_compress.o -L$(PLACE) -l$(LIB)$(R64) 
++bufr_compress: bufr_compress.o
++      $(FC) $(FFLAGS) -o $@ bufr_compress.o -L$(PLACE) -l$(LIB)$(R64)
+ 
+ bufr2crex   : bufr2crex.o
+       $(FC) $(FFLAGS) -o $@ bufr2crex.o -L$(PLACE) -l$(LIB)$(R64) -lcrex$(R64)
+@@ -48,4 +48,4 @@
+ clean   :
+       @for name in $(EXECS); do\
+       (rm -f $$name *.o ); \
+-      done 
++      done
+--- bufrtables/Makefile.orig   2016-01-04 14:03:47.292850644 -0800
++++ bufrtables/Makefile        2016-01-04 14:05:22.242500485 -0800
+@@ -25,11 +25,14 @@
+ OBJECTS      = $(OBJECTS.F) $(OBJECTS.c) 
+ #
+ #
+-all:  links 
++all:  pgms links
+ 
+ links: 
+       ./clean.sh
+       ./links.sh
++
++pgms: bufr2txt_tables bufr_split_tables txt2bufr_tables
++
+ bufr2txt_tables: bufr2txt_tables.f
+       $(FC) $(FFLAGS) -o bufr2txt_tables bufr2txt_tables.f $(LIBRARY)
+ bufr_split_tables: bufr_split_tables.f

diff --git a/sci-libs/libbufr/libbufr-000387.ebuild 
b/sci-libs/libbufr/libbufr-000405.ebuild
similarity index 57%
rename from sci-libs/libbufr/libbufr-000387.ebuild
rename to sci-libs/libbufr/libbufr-000405.ebuild
index 8d949a0..96df106 100644
--- a/sci-libs/libbufr/libbufr-000387.ebuild
+++ b/sci-libs/libbufr/libbufr-000405.ebuild
@@ -1,27 +1,36 @@
-# Copyright 1999-2015 Gentoo Foundation
+# Copyright 1999-2016 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
 # $Id$
 
 EAPI=5
 
-inherit eutils fortran-2 flag-o-matic toolchain-funcs
+inherit eutils fortran-2 toolchain-funcs
 
-MY_P="${PN/lib/}_${PV}"
+MY_P="${PN/lib/}dc_${PV}"
 
 DESCRIPTION="ECMWF BUFR library - includes both C and Fortran example 
utilities"
-HOMEPAGE="http://www.ecmwf.int/products/data/software/bufr.html";
-SRC_URI="http://www.ecmwf.int/products/data/software/download/software_files/${MY_P}.tar.gz";
+HOMEPAGE="https://software.ecmwf.int/wiki/display/BUFR/BUFRDC+Home";
+SRC_URI="https://software.ecmwf.int/wiki/download/attachments/35752466/${MY_P}.tar.gz";
 
 LICENSE="LGPL-3"
 SLOT="0"
 KEYWORDS="~amd64 ~ppc ~ppc64 ~x86"
-IUSE="debug doc examples"
+# needs someone to test on these: ~alpha ~hppa ~ia64 ~sparc etc ...
+
+IUSE="debug doc examples lto"
+
+RDEPEND="
+       virtual/fortran
+       "
 
-RDEPEND=""
 DEPEND="sys-apps/findutils"
 
 S=${WORKDIR}/${MY_P}
 
+if use lto; then
+       RESTRICT="strip"
+fi
+
 pkg_setup() {
        fortran-2_pkg_setup
        case "$(tc-getFC)" in
@@ -40,7 +49,7 @@ pkg_setup() {
        esac
 
        elog "Note non-GNU compilers are not currently supported on non-x86"
-       elog "architectures. If you need it, please subit a patch..."
+       elog "architectures.  If you need it, please submit a patch..."
 
        export target="linux"
        export A64=""
@@ -63,43 +72,50 @@ pkg_setup() {
 
 src_prepare() {
        update_configs
-       epatch "${FILESDIR}"/${PN}-makefile.patch
+       epatch "${FILESDIR}"/${P}-makefile.patch
 
        local config="config/config.$target$CNAME$R64$A64"
 
        if [[ "${ARCH}" == "ppc" ]] ; then
-               sed -i -e "s|= -mcpu=G4 -mtune=G4|= |" $config
+               sed -i -e "s|= -mcpu=G4 -mtune=G4|= |" ${config}
        elif [[ "${ARCH}" == "ppc64" ]] ; then
-               sed -i -e "s|= -mcpu=G5 -mtune=G5|= |" $config
+               sed -i -e "s|= -mcpu=G5 -mtune=G5|= |" ${config}
+       else
+               cp ${config}.in ${config} || die "Error updating config!"
        fi
 
-       sed -i -e "s:DEBUG = -O2:DEBUG = -g:g" $config
+       sed -i -e "s:DEBUG = -O2:DEBUG = -g:g" ${config}
+       use debug || sed -i -e "s:DEBUG = -g:DEBUG =:g" ${config}
 
-       # add local CFLAGS to and build flags
-       use debug || sed -i -e "s|\$(DEBUG)|${CFLAGS}|" $config
+       # add local CFLAGS to build flags
+       sed -i -e "s|\$(DEBUG)|${CFLAGS} \$(DEBUG) -fPIC|" \
+               -e 's|emos|/usr/share/bufrtables|g' ${config}
 
-       # add local LDFLAGS to link commands
+       # add local LDFLAGS to bins
        sed -i \
-               -e "s|-o|${LDFLAGS} -o|" \
+               -e "s|-o|${LDFLAGS} -fPIC -o|" \
                examples/Makefile \
                bufrtables/Makefile
 }
 
 src_compile() {
+       export BUFR_TABLES="${S}"/bufrtables
        EBUILD_ARCH="${ARCH}"
        EBUILD_CFLAGS="${CFLAGS}"
        unset ARCH CFLAGS
-       tc-export CC
-       append-flags -DTABLE_PATH="/usr/share/bufrtables"
 
-       # emake won't work with this fossil...
-       make ARCH=$target || die "make failed"
+       tc-export CC FC AR NM STRIP RANLIB
+       TC_FLAGS="CC=$CC FC=$FC AR=$AR RANLIB=$RANLIB"
+       ARFLAGS="rv"
 
-       pushd examples > /dev/null
-       make ARCH=$target decode_bufr bufr_decode \
-               create_bufr decode_bufr_image tdexp \
-               || die "make examples failed"
-       popd > /dev/null
+       if use lto; then
+               PLUGIN_PATH="--plugin=$(gcc -print-prog-name=liblto_plugin.so)"
+               tc-ld-is-gold && ARFLAGS="rv ${PLUGIN_PATH}"
+       fi
+
+       # emake won't work with this fossil...
+       BUFRFLAGS="ARCH=$target R64=$R64 CNAME=$CNAME"
+       make $TC_FLAGS ARFLAGS="${ARFLAGS}" $BUFRFLAGS || die "make failed"
 
        generate_files
 
@@ -108,9 +124,12 @@ src_compile() {
 }
 
 src_test() {
-       cd "${S}"/examples
-       BUFR_TABLES="${S}/bufrtables/" ./decode_bufr -i \
-               ../data/ISMD01_OKPR.bufr < ../response_file
+       unset ARCH CFLAGS
+       BUFRFLAGS="ARCH=$target R64=$R64 CNAME=$CNAME"
+       make $BUFRFLAGS test || die "make test failed"
+
+       ARCH="${EBUILD_ARCH}"
+       CFLAGS="${EBUILD_CFLAGS}"
 }
 
 src_install() {
@@ -118,24 +137,24 @@ src_install() {
        dolib.a libbufr$R64.a
 
        dosbin bufrtables/{bufr2txt_tables,bufr_split_tables,txt2bufr_tables}
-       dobin examples/{create_bufr,decode_bufr,decode_bufr_image,tdexp}
+       dobin 
examples/{bufr_decode_all,create_bufr,decode_bufr,decode_bufr_image,tdexp}
 
        keepdir /usr/share/bufrtables
        insinto /usr/share/bufrtables
-       doins bufrtables/*000*
+       doins -r bufrtables/{B,C,D}*.*
 
        # files generated above
        doenvd 20${PN}
 
        dodoc README
        if use doc ; then
-               insinto /usr/share/doc/${P}
+               insinto /usr/share/doc/${PF}
                doins doc/*.pdf
        fi
 
        if use examples ; then
                newdoc examples/README README.examples
-               insinto /usr/share/doc/${P}/examples
+               insinto /usr/share/doc/${PF}/examples
                doins examples/{*.F,*.c,Makefile}
        fi
 }
@@ -161,30 +180,20 @@ generate_files() {
        ## Do not remove blank lines from the response file
        cat <<-EOF > 20${PN}
        BUFR_TABLES="/usr/share/bufrtables"
-       CONFIG_PROTECT="/usr/share/bufrtables"
-       EOF
-
-       cat <<-EOF > response_file
-       N
-       N
-       N
-       1
-
-       N
        EOF
 }
 
 update_configs() {
-       find . -type f | xargs chmod -x
-       chmod +x bufrtables/links.sh
+       find . -type f -name \*.distinct -o -name \*.f -o -name \*.in \
+                | xargs chmod -x
        cp options/options_linux options/options_ppc
        cp options/options_linux options/options_ppc_G5
        cp pbio/sources.linux pbio/sources.ppc
        cp pbio/sources.linux pbio/sources.ppc_G5
        pushd config > /dev/null
-               cp config.ppc config.ppc_gfortran
-               cp config.ppcR64 config.ppc_gfortranR64
-               cp config.ppc_G5 config.ppc_G5_gfortran
-               cp config.ppcR64_G5 config.ppc_G5_gfortranR64
+               cp config.ppc_gfortran.in config.ppc_gfortran
+               cp config.ppc_gfortranR64.in config.ppc_gfortranR64
+               cp config.ppc_gfortran_G5.in config.ppc_gfortran_G5
+               cp config.ppc_gfortranR64_G5.in config.ppc_gfortranR64_G5
        popd > /dev/null
 }

diff --git a/sci-libs/libbufr/metadata.xml b/sci-libs/libbufr/metadata.xml
index 69b4f2f..aae3622 100644
--- a/sci-libs/libbufr/metadata.xml
+++ b/sci-libs/libbufr/metadata.xml
@@ -2,7 +2,16 @@
 <!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd";>
 <pkgmetadata>
        <herd>sci-geosciences</herd>
-       <longdescription>This is mainly just an open source BUFR library from 
ECMWF
- that comes with a few example toolss (some of which are built and installed).
-</longdescription>
+       <maintainer>
+               <email>[email protected]</email>
+               <name>Steve Arnold</name>
+       </maintainer>
+       <longdescription lang="en">
+               This is mainly just an open source BUFR library from ECMWF that 
comes with a few example tools (some of which are built and installed).
+       </longdescription>
+       <use>
+               <flag name="lto">
+                       Use gold linker and -flto (requires existing env setup)
+               </flag>
+       </use>
 </pkgmetadata>

Reply via email to