diff --git a/.cvsignore b/.cvsignore new file mode 100644 index 0000000..2adcf2b --- /dev/null +++ b/.cvsignore @@ -0,0 +1 @@ +bc-1.06.95.tar.bz2 diff --git a/.fmf/version b/.fmf/version deleted file mode 100644 index d00491f..0000000 --- a/.fmf/version +++ /dev/null @@ -1 +0,0 @@ -1 diff --git a/.gitignore b/.gitignore deleted file mode 100644 index cdad827..0000000 --- a/.gitignore +++ /dev/null @@ -1,8 +0,0 @@ -bc-1.06.95.tar.bz2 -/bc-1.07.tar.gz -/bc-1.07.1.tar.gz -/bc-1.08.1.tar.gz -/bc-1.08.1.tar.xz -/bc-1.08.1.tar.xz.sig -/bc-1.08.2.tar.gz -/bc-1.08.2.tar.gz.sig diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..2f13892 --- /dev/null +++ b/Makefile @@ -0,0 +1,21 @@ +# Makefile for source rpm: bc +# $Id: Makefile,v 1.1 2004/09/09 03:26:42 cvsdist Exp $ +NAME := bc +SPECFILE = $(firstword $(wildcard *.spec)) + +define find-makefile-common +for d in common ../common ../../common ; do if [ -f $$d/Makefile.common ] ; then if [ -f $$d/CVS/Root -a -w $$/Makefile.common ] ; then cd $$d ; cvs -Q update ; fi ; echo "$$d/Makefile.common" ; break ; fi ; done +endef + +MAKEFILE_COMMON := $(shell $(find-makefile-common)) + +ifeq ($(MAKEFILE_COMMON),) +# attempt a checkout +define checkout-makefile-common +test -f CVS/Root && { cvs -Q -d $$(cat CVS/Root) checkout common && echo "common/Makefile.common" ; } || { echo "ERROR: I can't figure out how to checkout the 'common' module." ; exit -1 ; } >&2 +endef + +MAKEFILE_COMMON := $(shell $(checkout-makefile-common)) +endif + +include $(MAKEFILE_COMMON) diff --git a/bc-1.06.95-doc.patch b/bc-1.06.95-doc.patch deleted file mode 100644 index b75f56e..0000000 --- a/bc-1.06.95-doc.patch +++ /dev/null @@ -1,24 +0,0 @@ -diff -up wrk/doc/bc.1.wrk wrk/doc/bc.1 ---- wrk/doc/bc.1.wrk 2013-10-02 13:36:52.066295450 +0200 -+++ wrk/doc/bc.1 2013-10-02 13:35:22.738553712 +0200 -@@ -174,6 +174,8 @@ The result of the expression is the sum - The result of the expression is the difference of the two expressions. - .IP "expr * expr" - The result of the expression is the product of the two expressions. -+If a and b are the scales of the two expressions, then the scale of the result is: -+min(a+b,max(scale,a,b)) - .IP "expr / expr" - The result of the expression is the quotient of the two expressions. - The scale of the result is the value of the variable \fBscale\fR. -diff -up wrk/doc/bc.texi.wrk wrk/doc/bc.texi ---- wrk/doc/bc.texi.wrk 2013-10-02 13:17:01.743765518 +0200 -+++ wrk/doc/bc.texi 2013-10-02 13:21:04.479870656 +0200 -@@ -290,6 +290,8 @@ The result of the expression is the diff - - @item expr * expr - The result of the expression is the product of the two expressions. -+If a and b are the scales of the two expressions, then the scale of the result is: -+min(a+b,max(@var{scale},a,b)) - - @item expr / expr - The result of the expression is the quotient of the two expressions. diff --git a/bc-1.06.95-memleak.patch b/bc-1.06.95-memleak.patch new file mode 100644 index 0000000..0b8fc5b --- /dev/null +++ b/bc-1.06.95-memleak.patch @@ -0,0 +1,26 @@ +diff --git a/bc/bc.y b/bc/bc.y +index 14dc4be..bd91c38 100644 +--- a/bc/bc.y ++++ b/bc/bc.y +@@ -569,6 +569,7 @@ expression : named_expression ASSIGN_OP + generate (">"); + break; + } ++ free($2); + } + | expression '+' expression + { +diff --git a/bc/util.c b/bc/util.c +index 30beaf9..26e2e85 100644 +--- a/bc/util.c ++++ b/bc/util.c +@@ -602,8 +602,7 @@ lookup (name, namekind) + case FUNCTDEF: + if (id->f_name != 0) + { +- if (namekind != FUNCT) +- free(name); ++ free(name); + /* Check to see if we are redefining a math lib function. */ + if (use_math && namekind == FUNCTDEF && id->f_name <= 6) + id->f_name = next_func++; diff --git a/bc-1.07.1-readline-echo-empty.diff b/bc-1.07.1-readline-echo-empty.diff deleted file mode 100644 index 1b2c034..0000000 --- a/bc-1.07.1-readline-echo-empty.diff +++ /dev/null @@ -1,14 +0,0 @@ -diff -Naur bc-1.07.1/bc/scan.l bc-1.07.1-new/bc/scan.l ---- bc-1.07.1/bc/scan.l 2017-04-07 22:20:02.000000000 +0000 -+++ bc-1.07.1-new/bc/scan.l 2021-08-14 12:12:33.860991777 +0000 -@@ -170,6 +170,10 @@ - if (rl_len != 1) - add_history (rl_line); - rl_line[rl_len-1] = '\n'; -+ /* readline doesn't echo empty lines without a prompt, -+ so do so here. */ -+ if (rl_len == 1) -+ putchar ('\n'); - fflush (stdout); - } - diff --git a/bc.spec b/bc.spec index fe06d1e..d105560 100644 --- a/bc.spec +++ b/bc.spec @@ -1,24 +1,17 @@ Summary: GNU's bc (a numeric processing language) and dc (a calculator) Name: bc -Version: 1.08.2 -Release: 2%{?dist} -License: GPL-3.0-or-later -URL: https://www.gnu.org/software/bc/ -Source0: https://ftp.gnu.org/gnu/bc/bc-%{version}.tar.gz -Source1: https://ftp.gnu.org/gnu/bc/bc-%{version}.tar.gz.sig -Source2: kevin_pizzini.asc +Version: 1.06.95 +Release: 1%{?dist} +License: GPLv2+ +URL: http://www.gnu.org/software/bc/ +Group: Applications/Engineering +Source: ftp://alpha.gnu.org/pub/gnu/bc/bc-%{version}.tar.bz2 Patch1: bc-1.06-dc_ibase.patch -Patch2: bc-1.06.95-doc.patch -Patch3: bc-1.07.1-readline-echo-empty.diff -BuildRequires: bison -BuildRequires: ed -BuildRequires: flex -BuildRequires: gcc -BuildRequires: make -BuildRequires: readline-devel -BuildRequires: texinfo -# for gpg verification -BuildRequires: gnupg2 +Patch2: bc-1.06.95-memleak.patch +Requires(post): /sbin/install-info +Requires(preun): /sbin/install-info +Buildroot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) +BuildRequires: readline-devel, flex, bison, texinfo %description The bc package includes bc and dc. Bc is an arbitrary precision @@ -30,174 +23,49 @@ Install the bc package if you need its number handling capabilities or if you would like to use its text mode calculator. %prep -%{gpgverify} --keyring='%{SOURCE2}' --signature='%{SOURCE1}' --data='%{SOURCE0}' -%autosetup -p1 +%setup -q +%patch1 -p1 -b .dc_ibase +%patch2 -p1 -b .memleak %build %configure --with-readline -%make_build +make %{?_smp_mflags} %install -%make_install -rm -f %{buildroot}/%{_infodir}/dir +rm -rf $RPM_BUILD_ROOT + +make install DESTDIR=$RPM_BUILD_ROOT +rm -f $RPM_BUILD_ROOT/%{_infodir}/dir + +%clean +rm -rf $RPM_BUILD_ROOT + +%post +if [ -e %{_infodir}/bc.info.gz -a -e %{_infodir}/dc.info.gz ]; then + /sbin/install-info %{_infodir}/bc.info.gz %{_infodir}/dir \ + --entry="* bc: (bc). The GNU calculator language." || : + /sbin/install-info %{_infodir}/dc.info.gz %{_infodir}/dir \ + --entry="* dc: (dc). The GNU RPN calculator." || : +fi + +%preun +if [ $1 = 0 -a -e %{_infodir}/bc.info.gz -a -e %{_infodir}/dc.info.gz ]; then + /sbin/install-info --delete %{_infodir}/bc.info.gz %{_infodir}/dir \ + --entry="* bc: (bc). The GNU calculator language." || : + /sbin/install-info --delete %{_infodir}/dc.info.gz %{_infodir}/dir \ + --entry="* dc: (dc). The GNU RPN calculator." || : +fi %files -%license COPYING COPYING.LIB -%doc FAQ AUTHORS NEWS README Examples/ +%defattr(-,root,root,-) +%doc COPYING COPYING.LIB FAQ AUTHORS NEWS README Examples/ %{_bindir}/dc %{_bindir}/bc -%{_mandir}/man1/bc.1* -%{_mandir}/man1/dc.1* -%{_infodir}/bc.info* -%{_infodir}/dc.info* +%{_mandir}/*/* +%{_infodir}/* %changelog -* Wed Jul 23 2025 Fedora Release Engineering - 1.08.2-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild - -* Thu Jun 26 2025 Mikel Olasagasti Uranga - 1.08.2-1 -- Update to 1.08.2 - rhbz#2368486 - -* Wed Mar 05 2025 Mikel Olasagasti Uranga - 1.08.1-3 -- Verify gpg signature -- Change to https links -- Misc changes - -* Thu Jan 16 2025 Fedora Release Engineering - 1.08.1-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild - -* Mon Jan 06 2025 Fedora Release Monitoring - 1.08.1-1 -- Update to 1.08.1 (#2335123) - -* Wed Jul 17 2024 Fedora Release Engineering - 1.07.1-22 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild - -* Tue Jan 23 2024 Fedora Release Engineering - 1.07.1-21 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild - -* Fri Jan 19 2024 Fedora Release Engineering - 1.07.1-20 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild - -* Wed Jul 19 2023 Fedora Release Engineering - 1.07.1-19 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild - -* Sun Jun 25 2023 Sérgio Basto - 1.07.1-18 -- Migrate to SPDX license format - -* Wed Jan 18 2023 Fedora Release Engineering - 1.07.1-17 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild - -* Wed Jul 20 2022 Fedora Release Engineering - 1.07.1-16 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild - -* Wed Jan 19 2022 Fedora Release Engineering - 1.07.1-15 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild - -* Sat Aug 14 2021 Pádraig Brady - 1.07.1-14 -- Echo empty lines, useful for delimiting work - -* Wed Jul 21 2021 Fedora Release Engineering - 1.07.1-13 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild - -* Tue Jan 26 2021 Fedora Release Engineering - 1.07.1-12 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild - -* Mon Jul 27 2020 Fedora Release Engineering - 1.07.1-11 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild - -* Tue Jan 28 2020 Fedora Release Engineering - 1.07.1-10 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild - -* Wed Jul 24 2019 Fedora Release Engineering - 1.07.1-9 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild - -* Sun Feb 17 2019 Igor Gnatenko - 1.07.1-8 -- Rebuild for readline 8.0 - -* Thu Jan 31 2019 Fedora Release Engineering - 1.07.1-7 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild - -* Thu Jul 12 2018 Fedora Release Engineering - 1.07.1-6 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild - -* Wed Feb 07 2018 Fedora Release Engineering - 1.07.1-5 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild - -* Wed Sep 13 2017 Vasiliy N. Glazov - 1.07.1-4 -- Cleanup spec - -* Wed Aug 02 2017 Fedora Release Engineering - 1.07.1-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild - -* Wed Jul 26 2017 Fedora Release Engineering - 1.07.1-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild - -* Mon May 15 2017 Kevin Fenzi - 1.07.1-1https://bugs.archlinux.org/task/53546 -- Update to 1.07.1 -- Fixes a bug that breaks kernel builds ( https://bugs.archlinux.org/task/53546 ) - -* Mon May 15 2017 Ondrej Vasik - 1.07-2 -- build seems to be racy now, removing parallel build for now -- add build dep on "ed" - -* Wed May 10 2017 Ondrej Vasik - 1.07-1 -- new upstream version 1.07, dropped patches already appllied - in usptream version - -* Wed Feb 01 2017 Stephen Gallagher - 1.06.95-18 -- Install COPYING[.*] using the %%license macro - -* Thu Jan 12 2017 Igor Gnatenko - 1.06.95-17 -- Rebuild for readline 7.x - -* Wed Feb 03 2016 Fedora Release Engineering - 1.06.95-16 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild - -* Wed Jun 17 2015 Fedora Release Engineering - 1.06.95-15 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild - -* Sat Feb 21 2015 Till Maas - 1.06.95-14 -- Rebuilt for Fedora 23 Change - https://fedoraproject.org/wiki/Changes/Harden_all_packages_with_position-independent_code - -* Fri Aug 15 2014 Fedora Release Engineering - 1.06.95-13 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild - -* Sat Jun 07 2014 Fedora Release Engineering - 1.06.95-12 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild - -* Wed Oct 02 2013 Frantisek Kluknavsky - 1.06.95-11 -- man and info patched - clarified scale after multiplication - -* Sat Aug 03 2013 Fedora Release Engineering - 1.06.95-10 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild - -* Wed Feb 13 2013 Fedora Release Engineering - 1.06.95-9 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild - -* Tue Oct 20 2012 Fedora Release Engineering - 1.06.95-8 -- Minor spec cleanup - -* Wed Jul 18 2012 Fedora Release Engineering - 1.06.95-7 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild - -* Thu Jan 12 2012 Fedora Release Engineering - 1.06.95-6 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild - -* Wed Oct 26 2011 Fedora Release Engineering - 1.06.95-5 -- Rebuilt for glibc bug#747377 - -* Thu Sep 08 2011 Ondrej Vasik 1.06.95-4 -- do not mask SIGINT in dc when reading from stdin (#697340) - -* Mon Feb 07 2011 Fedora Release Engineering - 1.06.95-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild - -* Wed Dec 22 2010 Ondrej Vasik 1.06.95-2 -- fix possible segfault in arrays handling(debbug #586969) -- initialize f_void to work with math lib again(#664080) - -* Thu Sep 24 2009 Ondrej Vasik 1.06.95-1 +* Thu Sep 24 2009 Ondrej Vasik 1.06-95-1 - update to upstream alpha 1.06.95 (in use in Gentoo, Slackware for quite a long time, marked stable there) - removed already applied patches, fix small memory leak diff --git a/kevin_pizzini.asc b/kevin_pizzini.asc deleted file mode 100644 index 49b4a73..0000000 --- a/kevin_pizzini.asc +++ /dev/null @@ -1,30 +0,0 @@ ------BEGIN PGP PUBLIC KEY BLOCK----- - -mQENBEum60cBCADIZ/am0d96/2Is86VRUkNi4DReLYDzQqpuI1cCtCHKbBel6uYL -ERsTJUxgqEtYAzjQOaOOr8k7X/U8NzmmjAk/GR/coHFbGLVUI3O/TWZZ4u3bZLpC -4lhe303PZZDHMGGcUEmzhU9LDxeCYF2LfQQYWQNmc674VgOt+fcJJkty3tjWHag0 -YWOPvugOg5SfqDtGPfnmoeSbdKmVgbmXLX5ab68jIRHfcQNlKgfQbkLN7CYi7ou7 -f8aNIO/DQ1mFzzNc6fuP6i5zznL4FcKTzvx1z6+gtjUXWmqWuVw6qqiND7V1tjJd -b0cjl4BNoXPk3btKfYwHd9I9tTfilmWm5KNtABEBAAG0GUtlbiBQaXp6aW5pIDxr -ZW5AZ251Lm9yZz6JAVUEEwEKAD8CGwMGCwkIBwMCBhUIAgkKCwQWAgMBAh4BAheA -FiEEMltU5GU/k1olzzK9oYYnjUJqOOkFAmclQjUFCSEh8W4ACgkQoYYnjUJqOOmj -vgf/QRqbDPdfm3+JcEQBZKjBby0syw70FrxL8oJpthTapN7vljyL1/QmrFukhScD -98mns1OJsbud11Qbdab5d3MGD9agQ4H7OGm48h4MAkkd7ekJR2ISxrNGw8pQiir8 -Sr0+LsS+5l/W16GaGUegmNyirKv2//mb9IDBBmZ0Ui13x85fIwxe7PrjcLw5vIB9 -qPr7bcCZaKrzuWygpbzUQwXtW1ipKierEk4C780QV3jJFw8wkTB6ul1Kk221oMo/ -OeAOnLk5+d5tOtUMonyYSZmvkbEhFDpOF3J3qNomwmnBBUA+bn0hEsNjhmy3h4jS -SRRIuqRrMFF1GiFNuHa67uBI0bkBDQRLputHAQgAtCX015BdwVGX9IaO1Iv2FBkt -JSg4A/GV+0iZXVqafi5pe/oLQY7gXQUV/AuTqjj7168sb9s8ZJjzrE0CsBrcUtOU -eSKBQiCL81L6eO91tKBpwuPACEyzxiW5Bfh/dn3jiZikXBi9u7NSsLaDDj4AK6W7 -6/fWz9984elxeIqZSiRuae0xTs+kaEw49ha8wrv6sE4H9CbWoz4276raGQmBJLky -NQlCZMxq6Z/a6NXTNiNNrVMueCCQmbW6iu8fV8W1IRMBnbWZjTcBBZztzW5T6mOE -3weuvYkuwy6yNcgrafG2WeW+wrYzQ38yYIH7o27pgQKySZHjZxaeoqRysW42gwAR -AQABiQE8BBgBCgAmAhsMFiEEMltU5GU/k1olzzK9oYYnjUJqOOkFAmclQkMFCSEh -8XwACgkQoYYnjUJqOOk55wf/W3p31v5zZtRyalRohfxUn9rrbucye38W+LzZGGoz -BU4CCcZhwtumkFgd3bB3t50e26VDBB3D3cVPyLDLU182eibKbgv4/6bjk09l1PRl -UhTHpWTqiz+lkmMEMsSFXWJjXssmAo5XOL4OxX/bgHUK5NgvaRg7WL1CVuLAL91s -VTasLP1XoOpZ85ec5YmzNciCU41XfGSIrkG+PbE7MJmjlUT0w4/Q59/5CiIv/XoM -UAiiIDozgvzDinVUBP8+Kl5QexEe3E3dHSNPRc4xlPsx5KTOCWJHEe00XgZgMuTZ -bzVD5uvJm95WssY37wZ2bt58iufB9sBsw2NFPr3eQIo12A== -=L3fP ------END PGP PUBLIC KEY BLOCK----- diff --git a/plans/ci.fmf b/plans/ci.fmf deleted file mode 100644 index c1627f9..0000000 --- a/plans/ci.fmf +++ /dev/null @@ -1,5 +0,0 @@ -summary: Basic smoke test -discover: - how: fmf -execute: - how: tmt diff --git a/sources b/sources index 4cc1018..686ab4f 100644 --- a/sources +++ b/sources @@ -1,2 +1 @@ -SHA512 (bc-1.08.2.tar.gz) = 0876a4c5bfc23da79479519c6a8e03ac9f59ae54077eb71ffdcc6ddaccb76c4b7595b088e89e6ad82d833c072eeff5b378178084276584813c00eedace4c6f8c -SHA512 (bc-1.08.2.tar.gz.sig) = 5987363ae617b46136d5fec45e302045d55ec43db1005d175ff78d4c9a8450a7a95c4ebce22a1f810c64f21a7a6f5eee764bfe84aa084cfe439c2f04775f4939 +5126a721b73f97d715bb72c13c889035 bc-1.06.95.tar.bz2 diff --git a/tests/sanity/main.fmf b/tests/sanity/main.fmf deleted file mode 100644 index 911d9ad..0000000 --- a/tests/sanity/main.fmf +++ /dev/null @@ -1,9 +0,0 @@ -summary: Basic sanity test -component: - - bc -test: python3 ./runtests.py -v -framework: shell -recommend: - - bc - - python3 -duration: 1m diff --git a/tests/sanity/runtests.py b/tests/sanity/runtests.py deleted file mode 100644 index 0839015..0000000 --- a/tests/sanity/runtests.py +++ /dev/null @@ -1,45 +0,0 @@ -import unittest - -import os -import subprocess - - -def call_command(command_to_call): - result = subprocess.check_output(command_to_call, shell=True) - return result[:-1].decode("utf-8") - - -class TestBC(unittest.TestCase): - - def test_divide(self): - result = call_command("echo '6.5 / 2.7' | bc") - self.assertEqual( result, '2') - - def test_sum(self): - result = call_command("echo '2 + 5' | bc") - self.assertEqual( result, '7') - - def test_difference(self): - result = call_command("echo '10 - 4' | bc") - self.assertEqual( result, '6') - - def test_multiplying(self): - result = call_command("echo '3 * 8' | bc") - self.assertEqual( result, '24') - - def test_scale(self): - result = call_command("echo 'scale = 2; 2 / 3' | bc") - self.assertEqual( result, '.66') - - def test_remainder(self): - result = call_command("echo '6 % 4' | bc") - self.assertEqual( result, '2') - - def test_exponent(self): - result = call_command("echo '10^2' | bc") - self.assertEqual( result, '100') - - -if __name__ == '__main__': - unittest.main() -