diff options
author | 2021-11-26 22:58:22 +0100 | |
---|---|---|
committer | 2021-11-26 23:02:03 +0100 | |
commit | 781f20b60cc838a868e597c0145d9fb146591e34 (patch) | |
tree | 0146de81a2d528a3362455d3b1dd4742940cefe9 /sci-libs/coinor-csdp | |
parent | dev-python/autopep8: Remove old (diff) | |
download | gentoo-781f20b60cc838a868e597c0145d9fb146591e34.tar.gz gentoo-781f20b60cc838a868e597c0145d9fb146591e34.tar.bz2 gentoo-781f20b60cc838a868e597c0145d9fb146591e34.zip |
sci-libs/coinor-csdp: add 6.2.0, drop 6.1.1-r1
EAPI 8 + quite a few bug fixes, both ones with open Bugzilla tickets and
some that were not reported.
Closes: https://bugs.gentoo.org/710520
Closes: https://bugs.gentoo.org/731878
Closes: https://bugs.gentoo.org/792897
Signed-off-by: Marek Szuba <marecki@gentoo.org>
Diffstat (limited to 'sci-libs/coinor-csdp')
-rw-r--r-- | sci-libs/coinor-csdp/Manifest | 2 | ||||
-rw-r--r-- | sci-libs/coinor-csdp/coinor-csdp-6.2.0.ebuild (renamed from sci-libs/coinor-csdp/coinor-csdp-6.1.1-r1.ebuild) | 82 | ||||
-rw-r--r-- | sci-libs/coinor-csdp/files/coinor-csdp-6.2.0_toolchain-vars.patch | 63 |
3 files changed, 112 insertions, 35 deletions
diff --git a/sci-libs/coinor-csdp/Manifest b/sci-libs/coinor-csdp/Manifest index c1b820c5a266..c116a33ba755 100644 --- a/sci-libs/coinor-csdp/Manifest +++ b/sci-libs/coinor-csdp/Manifest @@ -1 +1 @@ -DIST Csdp-6.1.1.tgz 441574 BLAKE2B 0f8dbea26e64c5854a877e89b51d6b0c7a19af31c967f665bb27b20df872c32905882703537b67c6df3dd5f3335afdb30f9145a620f4176acb73b90204e626a2 SHA512 ba5dc0faea223bad6293f131ee63daee0a395a6e84c76fe108dbbefb3ab0696b2a59f435766c78a2d22244801a9abda2719798cbfe30dd9e1c32317e0283fd2e +DIST coinor-csdp-6.2.0.tar.gz 526179 BLAKE2B af2ac8cb4268aef006cf68fb85d344a0f9eb9f47b78c38e176c24f87ac1c88059cf47eb40cf638d131e093b6d469b6a458a1eb59fa8eb33c53b49d1a4c50aae2 SHA512 6362e174f2935645dac359c48879c42cfd387c403fc264974922322de2f02f5ffac5a35f991eb793cf8ba5516a144f5e107d1cddd0ec0da79e7ebb9c1375269f diff --git a/sci-libs/coinor-csdp/coinor-csdp-6.1.1-r1.ebuild b/sci-libs/coinor-csdp/coinor-csdp-6.2.0.ebuild index bc7b2d55620f..a00b0d8e16f1 100644 --- a/sci-libs/coinor-csdp/coinor-csdp-6.1.1-r1.ebuild +++ b/sci-libs/coinor-csdp/coinor-csdp-6.2.0.ebuild @@ -1,33 +1,43 @@ -# Copyright 1999-2014 Gentoo Foundation +# Copyright 1999-2021 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 -EAPI=5 +EAPI=8 -inherit versionator toolchain-funcs flag-o-matic multilib +inherit flag-o-matic multilib toolchain-funcs -MYPN=Csdp +MY_PN="Csdp" +MY_P="${MY_PN}-${PV}" DESCRIPTION="COIN-OR C Library for Semi-Definite Programming" HOMEPAGE="https://projects.coin-or.org/Csdp/" -SRC_URI="http://www.coin-or.org/download/source/${MYPN}/${MYPN}-${PV}.tgz" +SRC_URI="https://www.coin-or.org/download/source/${MY_PN}/${MY_P}.tgz -> ${P}.tar.gz" -LICENSE="CPL-1.0" +LICENSE="EPL-2.0" SLOT="0" KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux" -IUSE="doc examples openmp static-libs" +IUSE="doc examples openmp" -RDEPEND=" - virtual/blas +RDEPEND="virtual/blas virtual/lapack" -DEPEND="${RDEPEND} - virtual/pkgconfig" +DEPEND="${RDEPEND}" +BDEPEND="virtual/pkgconfig" -S="${WORKDIR}/${MYPN}-${PV}" +PATCHES=( + "${FILESDIR}"/${PN}-6.2.0_toolchain-vars.patch +) + +S="${WORKDIR}"/${MY_P} + +_get_version_component_count() { + local cnt=( $(ver_rs 1- ' ') ) + echo ${#cnt[@]} || die +} static_to_shared() { - local libstatic=${1}; shift + local libstatic=${1} + shift local libname=$(basename ${libstatic%.a}) - local soname=${libname}$(get_libname $(get_version_component_range 1-2)) + local soname=${libname}$(get_libname $(ver_cut 1-2)) local libdir=$(dirname ${libstatic}) einfo "Making ${soname} from ${libstatic}" @@ -41,43 +51,48 @@ static_to_shared() { -shared -Wl,-soname=${soname} \ -Wl,--whole-archive ${libstatic} -Wl,--no-whole-archive \ "$@" -o ${libdir}/${soname} || die "${soname} failed" - [[ $(get_version_component_count) -gt 1 ]] && \ - ln -s ${soname} ${libdir}/${libname}$(get_libname $(get_major_version)) - ln -s ${soname} ${libdir}/${libname}$(get_libname) + + if [[ $(_get_version_component_count) -ge 1 ]] ; then + ln -s ${soname} ${libdir}/${libname}$(get_libname $(ver_cut 1)) || die + fi + + ln -s ${soname} ${libdir}/${libname}$(get_libname) || die fi } pkg_setup() { - if use openmp && [[ $(tc-getCC) == *gcc* ]] && ! tc-has-openmp; then - eerror "Your selected gcc compiler does not support OpenMP" - die "OpenMP non capable gcc" + if [[ ${MERGE_TYPE} != binary ]]; then + use openmp && tc-check-openmp fi } src_prepare() { - find . -name Makefile -exec sed -i -e 's:make:$(MAKE):g' '{}' + || die + default + append-cflags -DNOSHORTS -DUSEGETTIME -I../include + if use openmp; then - [[ $(tc-getCC) == *gcc* ]] && append-cflags -fopenmp \ - && append-ldflags -fopenmp - [[ $(tc-getCC) == *icc* ]] && append-cflags -openmp - append-cflags -DUSEOPENMP + append-cflags -DUSEOPENMP + + if [[ $(tc-getCC) == *icc* ]]; then + append-cflags -openmp + else + append-cflags -fopenmp + append-ldflags -fopenmp + fi fi + use amd64 && append-cflags -DBIT64 + [[ $($(tc-getPKG_CONFIG) --libs blas) =~ atlas ]] && append-cflags -DUSEATLAS - sed -i \ - -e "s:-O3:${CFLAGS} ${LDFLAGS}:" \ - -e "s:ar :$(tc-getAR) :" \ - */Makefile || die tc-export CC } src_compile() { emake CFLAGS="${CFLAGS} -fPIC" -C lib - local libs="$($(tc-getPKG_CONFIG) --libs blas lapack)" + local libs="$($(tc-getPKG_CONFIG) --libs blas lapack)" || die static_to_shared lib/libsdp.a ${libs} - use static-libs && emake -C lib clean && emake -C lib emake -C solver LIBS="${libs} -L../lib -lsdp -lm" emake -C theta LIBS="${libs} -L../lib -lsdp -lm" } @@ -89,13 +104,12 @@ src_test() { src_install() { dobin solver/csdp theta/{theta,graphtoprob,complement,rand_graph} dolib.so lib/libsdp$(get_libname)* - use static-libs && dolib.a lib/libsdp.a insinto /usr/include/${PN} doins include/* dodoc AUTHORS README use doc && dodoc doc/csdpuser.pdf if use examples; then - insinto /usr/share/doc/${PF}/examples - doins example/* + docinto examples + dodoc example/* fi } diff --git a/sci-libs/coinor-csdp/files/coinor-csdp-6.2.0_toolchain-vars.patch b/sci-libs/coinor-csdp/files/coinor-csdp-6.2.0_toolchain-vars.patch new file mode 100644 index 000000000000..d00528f66fe1 --- /dev/null +++ b/sci-libs/coinor-csdp/files/coinor-csdp-6.2.0_toolchain-vars.patch @@ -0,0 +1,63 @@ +--- a/example/Makefile ++++ b/example/Makefile +@@ -6,7 +6,7 @@ + # This builds the example code. + # + example: example.o +- $(CC) $(CFLAGS) example.o $(LIBS) -o example ++ $(CC) $(CFLAGS) $(LDFLAGS) example.o $(LIBS) -o example + # + # To clean up the directory. + # +--- a/lib/Makefile ++++ b/lib/Makefile +@@ -2,7 +2,7 @@ + # Build the library. + # + libsdp.a: readprob.o sdp.o op_o.o psd_feas.o op_a.o op_at.o Fnorm.o calc_pobj.o calc_dobj.o trace_prod.o zero_mat.o mat_mult.o sym_mat.o copy_mat.o addscaledmat.o user_exit.o make_i.o allocmat.o initsoln.o initparams.o add_mat.o writesol.o readsol.o easysdp.o writeprob.o solvesys.o makefill.o mat_multsp.o norms.o linesearch.o matvec.o chol.o qreig.o tweakgap.o freeprob.o packed.o sortentries.o +- ar cr libsdp.a readprob.o sdp.o op_o.o psd_feas.o op_a.o op_at.o Fnorm.o calc_pobj.o calc_dobj.o trace_prod.o zero_mat.o mat_mult.o sym_mat.o copy_mat.o addscaledmat.o user_exit.o make_i.o allocmat.o initsoln.o initparams.o add_mat.o writesol.o readsol.o easysdp.o writeprob.o solvesys.o makefill.o mat_multsp.o norms.o linesearch.o matvec.o chol.o qreig.o tweakgap.o freeprob.o packed.o sortentries.o ++ $(AR) cr libsdp.a readprob.o sdp.o op_o.o psd_feas.o op_a.o op_at.o Fnorm.o calc_pobj.o calc_dobj.o trace_prod.o zero_mat.o mat_mult.o sym_mat.o copy_mat.o addscaledmat.o user_exit.o make_i.o allocmat.o initsoln.o initparams.o add_mat.o writesol.o readsol.o easysdp.o writeprob.o solvesys.o makefill.o mat_multsp.o norms.o linesearch.o matvec.o chol.o qreig.o tweakgap.o freeprob.o packed.o sortentries.o + # + # On some systems, you might need to add after "ar cr libsdp.a ..." + # ranlib libsdp.a +--- a/solver/Makefile ++++ b/solver/Makefile +@@ -2,7 +2,7 @@ + # This builds the stand alone solver. + # + csdp: csdp.o +- $(CC) $(CFLAGS) csdp.o $(LIBS) -o csdp ++ $(CC) $(CFLAGS) $(LDFLAGS) csdp.o $(LIBS) -o csdp + # + # To clean out the directory: + # +--- a/theta/Makefile ++++ b/theta/Makefile +@@ -6,23 +6,23 @@ + # This builds the theta number code. + # + theta: theta.o +- $(CC) $(CFLAGS) theta.o $(LIBS) -o theta ++ $(CC) $(CFLAGS) $(LDFLAGS) theta.o $(LIBS) -o theta + # + # Complement computes the complement of a graph. + # + complement: complement.o +- $(CC) $(CFLAGS) complement.o $(LIBS) -o complement ++ $(CC) $(CFLAGS) $(LDFLAGS) complement.o $(LIBS) -o complement + # + # rand_graph generates a random graph. + # + rand_graph: rand_graph.o +- $(CC) $(CFLAGS) rand_graph.o $(LIBS) -o rand_graph ++ $(CC) $(CFLAGS) $(LDFLAGS) rand_graph.o $(LIBS) -o rand_graph + # + # graphtoprob converts a file in the graph format to an SDP problem in our + # SDP format. + # + graphtoprob: graphtoprob.o +- $(CC) $(CFLAGS) graphtoprob.o $(LIBS) -o graphtoprob ++ $(CC) $(CFLAGS) $(LDFLAGS) graphtoprob.o $(LIBS) -o graphtoprob + # + # To clean up the directory. + # |