Compare commits

...

No commits in common. "c8" and "c9s" have entirely different histories.
c8 ... c9s

11 changed files with 292 additions and 56 deletions

6
.gitignore vendored
View File

@ -1,2 +1,4 @@
SOURCES/mpc-0.9.tar.gz
SOURCES/mpc-1.1.0.tar.gz
*.rpm
.build-*
mpc-*/
/mpc-*.tar.gz

View File

@ -1,2 +0,0 @@
229722d553030734d49731844abfef7617b64f1a SOURCES/mpc-0.9.tar.gz
b019d9e1d27ec5fb99497159d43a3164995de2d0 SOURCES/mpc-1.1.0.tar.gz

View File

@ -1,37 +0,0 @@
From aed9d68b2a7e6622a7d0037d25d69d486a33825c Mon Sep 17 00:00:00 2001
From: Marek Polacek <polacek@redhat.com>
Date: Thu, 8 Oct 2020 16:27:55 -0400
Subject: [PATCH] Fix reading uninitialized value. Remove dead assignment.
* src/atan.c (mpc_atan): Initialize OK to zero.
* src/pow.c (mpc_pow): Remove dead assignment.
---
src/atan.c | 2 +-
src/pow.c | 1 -
2 files changed, 1 insertion(+), 2 deletions(-)
diff --git a/src/atan.c b/src/atan.c
index cc1922b..4e71f6f 100644
--- a/src/atan.c
+++ b/src/atan.c
@@ -143,7 +143,7 @@ mpc_atan (mpc_ptr rop, mpc_srcptr op, mpc_rnd_t rnd)
mpfr_rnd_t rnd_im, rnd_away;
mpfr_t y, z;
mpfr_prec_t p, p_im;
- int ok;
+ int ok = 0;
rnd_im = MPC_RND_IM (rnd);
mpfr_init (y);
diff --git a/src/pow.c b/src/pow.c
index 4fc90ae..0fc6932 100644
--- a/src/pow.c
+++ b/src/pow.c
@@ -685,7 +685,6 @@ mpc_pow (mpc_ptr z, mpc_srcptr x, mpc_sr
int inex_re, inex_im;
/* under- and overflow flags are set by mpc_exp */
mpc_set (z, u, MPC_RNDNN);
- ret = ret_exp;
inex_re = MPC_INEX_RE(ret_exp);
inex_im = MPC_INEX_IM(ret_exp);
if (mpfr_inf_p (mpc_realref (z)))

6
gating.yaml Normal file
View File

@ -0,0 +1,6 @@
--- !Policy
product_versions:
- rhel-9
decision_context: osci_compose_gate
rules:
- !PassingTestCaseRule {test_case_name: baseos-ci.brew-build.tier1.functional}

8
libmpc.rpmlintrc Normal file
View File

@ -0,0 +1,8 @@
# THIS FILE IS FOR WHITELISTING RPMLINT ERRORS AND WARNINGS IN TASKOTRON
# https://fedoraproject.org/wiki/Taskotron/Tasks/dist.rpmlint#Whitelisting_errors
# The dictionary lacks some technical words
addFilter(r'spelling-error .* symlinks')
# Documentation is in the -doc subpackage
addFilter(r'^libmpc.*-devel\.[^:]+: W: no-documentation')

View File

@ -1,26 +1,33 @@
# build compat-libmpc for bootstrapping purposes
%global bootstrap 1
%global bootstrap 0
%global bootstrap_version 0.9
Summary: C library for multiple precision complex arithmetic
Name: libmpc
Version: 1.1.0
Release: 9.1%{?dist}
Version: 1.2.1
Release: 4%{?dist}
License: LGPLv3+
URL: http://www.multiprecision.org/mpc/
Source0: https://ftp.gnu.org/gnu/mpc/mpc-%{version}.tar.gz
%if 0%{?bootstrap}
Source1: http://www.multiprecision.org/downloads/mpc-%{bootstrap_version}.tar.gz
Source1: https://ftp.gnu.org/gnu/mpc/mpc-%{bootstrap_version}.tar.gz
%endif
BuildRequires: gcc
BuildRequires: gmp-devel >= 5.0.0
BuildRequires: mpfr-devel
BuildRequires: mpfr-devel >= 4.1.0
BuildRequires: make
Patch0: libmpc-fix-uninit-var.patch
# This can be removed when F32 reaches EOL
Obsoletes: libmpc-mpfr3 < 1.1.0-7
Provides: libmpc-mpfr3 = %{version}-%{release}
%if 0%{?bootstrap} == 0
Obsoletes: compat-libmpc < %{version}-1
Provides: compat-libmpc = %{version}-%{release}
%endif
%description
MPC is a C library for the arithmetic of complex numbers with
arbitrarily high precision and correct rounding of the result. It is
built upon and follows the same principles as Mpfr.
@ -31,6 +38,10 @@ Requires: %{name}%{?_isa} = %{version}-%{release}
Requires: gmp-devel%{?_isa}
Requires: mpfr-devel%{?_isa}
# This can be removed when F32 reaches EOL
Obsoletes: libmpc-mpfr3-devel < 1.1.0-7
Provides: libmpc-mpfr3-devel = %{version}-%{release}
%description devel
Header files and shared library symlinks for the MPC library.
@ -55,7 +66,6 @@ Contains the .so files for mpc version %{bootstrap-version}.
%if 0%{?bootstrap}
%setup -q -n mpc-%{version} -a 1
%endif
%patch0 -p1 -b .uninit~
%build
%configure --disable-static
@ -91,8 +101,8 @@ rm -fv %{buildroot}%{_infodir}/*
%endif
%make_install
rm -f %{buildroot}/%{_libdir}/*.la
rm -f %{buildroot}/%{_infodir}/dir
rm -f %{buildroot}%{_libdir}/*.la
rm -f %{buildroot}%{_infodir}/dir
%check
export LD_LIBRARY_PATH=%{buildroot}%{_libdir}
@ -117,12 +127,60 @@ make check
%endif
%changelog
* Fri Oct 09 2020 Marek Polacek <polacek@redhat.com> - 1.1.0-9.1
- apply my upstream patch to fix using an uninitialized value
* Mon Aug 09 2021 Mohan Boddu <mboddu@redhat.com> - 1.2.1-4
- Rebuilt for IMA sigs, glibc 2.34, aarch64 flags
Related: rhbz#1991688
* Thu Oct 08 2020 Marek Polacek <polacek@redhat.com> - 1.1.0-9
- mpc-1.1.0 (#1835193)
- update the specfile from Fedora
* Fri Apr 16 2021 Mohan Boddu <mboddu@redhat.com> - 1.2.1-3
- Rebuilt for RHEL 9 BETA on Apr 15th 2021. Related: rhbz#1947937
* Tue Jan 26 2021 Fedora Release Engineering <releng@fedoraproject.org> - 1.2.1-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
* Fri Nov 13 2020 Jerry James <loganjerry@gmail.com> - 1.2.1-1
- Upgrade to libmpc version 1.2.1
* Tue Jul 28 2020 Fedora Release Engineering <releng@fedoraproject.org> - 1.1.0-9
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
* Wed Jan 29 2020 Fedora Release Engineering <releng@fedoraproject.org> - 1.1.0-8
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
* Fri Oct 11 2019 Jerry James <loganjerry@gmail.com> - 1.1.0-7
- Drop the libmpc-mpfr3 and libmpc-mpfr3-devel subpackages
* Wed Oct 9 2019 Jerry James <loganjerry@gmail.com> - 1.1.0-6
- Build the main package against mpfr4
* Tue Oct 8 2019 Jerry James <loganjerry@gmail.com> - 1.1.0-5
- Make mpfr3 and mpfr3-devel subpackages
- Drop the compat-libmpc package; nothing in Fedora needs it
- Update project URL
- Add a -doc subpackage to hold the GFDL-licensed content
- Drop unnecessary texinfo BR
- Drop ldconfig_scriptlets; this version cannot appear in distros that need it
- Make sure there are no rpaths and that -Wl,--as-needed takes effect
* Thu Jul 25 2019 Fedora Release Engineering <releng@fedoraproject.org> - 1.1.0-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
* Fri Feb 01 2019 Fedora Release Engineering <releng@fedoraproject.org> - 1.1.0-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
* Fri Jul 13 2018 Fedora Release Engineering <releng@fedoraproject.org> - 1.1.0-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
* Fri Jun 15 2018 Serhii Turivnyi <sturivny@redhat.com> - 1.1.0-1
- Add tests according to the CI wiki. PR: https://src.fedoraproject.org/rpms/libmpc/pull-request/3
* Mon Feb 26 2018 Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> - 1.1.0-1
- Modernization of the spec file (remove Group, use new make and ldconfig macros,
add gcc to BuildRequires)
- Move build to %%build
* Mon Feb 26 2018 James Paul Turner <jamesturner246@fedoraproject.org> - 1.1.0-1
- Upgrade to libmpc version 1.1.0
- Fix broken compat package build
* Wed Feb 07 2018 Fedora Release Engineering <releng@fedoraproject.org> - 1.0.2-9
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild

1
sources Normal file
View File

@ -0,0 +1 @@
SHA512 (mpc-1.2.1.tar.gz) = 3279f813ab37f47fdcc800e4ac5f306417d07f539593ca715876e43e04896e1d5bceccfb288ef2908a3f24b760747d0dbd0392a24b9b341bc3e12082e5c836ee

View File

@ -0,0 +1,63 @@
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# Makefile of /tools/libmpc/Regression/internal-testsuite
# Description: internal-testsuite
# Author: Martin Coufal <mcoufal@redhat.com>
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# Copyright (c) 2016 Red Hat, Inc.
#
# This program is free software: you can redistribute it and/or
# modify it under the terms of the GNU General Public License as
# published by the Free Software Foundation, either version 2 of
# the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be
# useful, but WITHOUT ANY WARRANTY; without even the implied
# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
# PURPOSE. See the GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see http://www.gnu.org/licenses/.
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
export TEST=/tools/libmpc/Regression/internal-testsuite
export TESTVERSION=1.0
BUILT_FILES=
FILES=$(METADATA) runtest.sh Makefile PURPOSE
.PHONY: all install download clean
run: $(FILES) build
./runtest.sh
build: $(BUILT_FILES)
test -x runtest.sh || chmod a+x runtest.sh
clean:
rm -f *~ $(BUILT_FILES)
include /usr/share/rhts/lib/rhts-make.include
$(METADATA): Makefile
@echo "Owner: Martin Coufal <mcoufal@redhat.com>" > $(METADATA)
@echo "Name: $(TEST)" >> $(METADATA)
@echo "TestVersion: $(TESTVERSION)" >> $(METADATA)
@echo "Path: $(TEST_DIR)" >> $(METADATA)
@echo "Description: internal-testsuite" >> $(METADATA)
@echo "Type: Regression" >> $(METADATA)
@echo "TestTime: 30m" >> $(METADATA)
@echo "RunFor: libmpc" >> $(METADATA)
@echo "Requires: libmpc gmp-devel mpfr-devel texinfo rpm-build gcc gcc-c++" >> $(METADATA)
@echo "Priority: Normal" >> $(METADATA)
@echo "License: GPLv2+" >> $(METADATA)
@echo "Confidential: no" >> $(METADATA)
@echo "Destructive: no" >> $(METADATA)
@echo "Releases: -RHEL4 -RHELClient5 -RHELServer5" >> $(METADATA)
rhts-lint $(METADATA)

View File

@ -0,0 +1,60 @@
#!/bin/bash
# vim: dict+=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# runtest.sh of /tools/libmpc/Regression/internal-testsuite
# Description: internal-testsuite
# Author: Martin Coufal <mcoufal@redhat.com>
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# Copyright (c) 2016 Red Hat, Inc.
#
# This program is free software: you can redistribute it and/or
# modify it under the terms of the GNU General Public License as
# published by the Free Software Foundation, either version 2 of
# the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be
# useful, but WITHOUT ANY WARRANTY; without even the implied
# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
# PURPOSE. See the GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see http://www.gnu.org/licenses/.
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# Include Beaker environment
. /usr/bin/rhts-environment.sh || exit 1
. /usr/share/beakerlib/beakerlib.sh || exit 1
PACKAGE="${PACKAGE:-$(rpm -qf --qf='%{name}\n' /usr/lib64/libmpc.so.3)}"
export PACKAGE
rlJournalStart
rlPhaseStartSetup
rlRun "TmpDir=\$(mktemp -d)" 0 "Creating tmp directory"
rlRun "pushd $TmpDir"
rlFetchSrcForInstalled $PACKAGE
rlAssertRpm $PACKAGE
rlRun "dnf builddep -y $PACKAGE"
rlRun "rpm --define='_topdir $TmpDir' -Uvh *src.rpm"
rlRun "rpmbuild --define='_topdir $TmpDir' -bc SPECS/libmpc.spec"
rlPhaseEnd
rlPhaseStartTest
rlRun "pushd BUILD/mpc-*"
# test
rlRun "make RUNTESTFLAGS='--tool_exec=$BIN' check |& tee $TmpDir/check.log"
rlRun "popd"
# no unexpected results should appear
rlRun "grep '^# of unexpected' check.log" 1
rlPhaseEnd
rlPhaseStartCleanup
rlRun "popd"
rlRun "rm -r $TmpDir" 0 "Removing tmp directory"
rlPhaseEnd
rlJournalPrintText
rlJournalEnd

View File

@ -0,0 +1,60 @@
#!/bin/bash
# vim: dict+=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# runtest.sh of /tools/libmpc/Regression/internal-testsuite
# Description: internal-testsuite
# Author: Martin Coufal <mcoufal@redhat.com>
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# Copyright (c) 2016 Red Hat, Inc.
#
# This program is free software: you can redistribute it and/or
# modify it under the terms of the GNU General Public License as
# published by the Free Software Foundation, either version 2 of
# the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be
# useful, but WITHOUT ANY WARRANTY; without even the implied
# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
# PURPOSE. See the GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see http://www.gnu.org/licenses/.
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# Include Beaker environment
. /usr/bin/rhts-environment.sh || exit 1
. /usr/share/beakerlib/beakerlib.sh || exit 1
PACKAGE="${PACKAGE:-$(rpm -qf --qf='%{name}\n' /usr/lib64/libmpc.so.3)}"
export PACKAGE
rlJournalStart
rlPhaseStartSetup
rlRun "TmpDir=\$(mktemp -d)" 0 "Creating tmp directory"
rlRun "pushd $TmpDir"
rlFetchSrcForInstalled $PACKAGE
rlAssertRpm $PACKAGE
rlRun "dnf builddep -y $PACKAGE"
rlRun "rpm --define='_topdir $TmpDir' -Uvh *src.rpm"
rlRun "rpmbuild --define='_topdir $TmpDir' -bc SPECS/libmpc.spec"
rlPhaseEnd
rlPhaseStartTest
rlRun "pushd BUILD/mpc-*"
# test
rlRun "make RUNTESTFLAGS='--tool_exec=$BIN' check |& tee $TmpDir/check.log"
rlRun "popd"
# no unexpected results should appear
rlRun "grep '^# of unexpected' check.log" 1
rlPhaseEnd
rlPhaseStartCleanup
rlRun "popd"
rlRun "rm -r $TmpDir" 0 "Removing tmp directory"
rlPhaseEnd
rlJournalPrintText
rlJournalEnd

17
tests/tests.yml Normal file
View File

@ -0,0 +1,17 @@
---
# This first play always runs on the local staging system
- hosts: localhost
roles:
- role: standard-test-beakerlib
tags:
- classic
tests:
- internal-testsuite
required_packages:
- libmpc
- gmp-devel
- mpfr-devel
- texinfo
- rpm-build
- gcc
- gcc-c++