Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package f2c for openSUSE:Factory checked in at 2026-04-07 16:32:47 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/f2c (Old) and /work/SRC/openSUSE:Factory/.f2c.new.21863 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "f2c" Tue Apr 7 16:32:47 2026 rev:23 rq:1344692 version:20240504 Changes: -------- --- /work/SRC/openSUSE:Factory/f2c/f2c.changes 2024-02-27 22:48:23.250607455 +0100 +++ /work/SRC/openSUSE:Factory/.f2c.new.21863/f2c.changes 2026-04-07 16:47:49.337850368 +0200 @@ -1,0 +2,14 @@ +Mon Oct 6 10:52:28 UTC 2025 - Markéta Machová <[email protected]> + +- update to 20240504 + * proc.c: fix another allocation glitch in proc.c + * New command-line options -I8 and -cf + * Minor updates to makefile.u and addition of fio.h0 in libf2c.zip + * Tweaks for pedants who compile with -Werror=strict-aliasing + * Tweak sysdep.c to work with newer versions of mingw +- use tarball from the GitHub mirror to simplify packaging +- Drop no-longer-needed patches: + * f2c-20110801.patch + * libf2c-20110801-format-security.patch + +------------------------------------------------------------------- Old: ---- f2c-20110801.patch f2c.pdf f2c.ps fc libf2c-20110801-format-security.patch src.tgz New: ---- 20240504.tar.gz ----------(Old B)---------- Old:- Drop no-longer-needed patches: * f2c-20110801.patch * libf2c-20110801-format-security.patch Old: * f2c-20110801.patch * libf2c-20110801-format-security.patch ----------(Old E)---------- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ f2c.spec ++++++ --- /var/tmp/diff_new_pack.O82Jzr/_old 2026-04-07 16:47:50.085881048 +0200 +++ /var/tmp/diff_new_pack.O82Jzr/_new 2026-04-07 16:47:50.089881212 +0200 @@ -1,7 +1,7 @@ # # spec file for package f2c # -# Copyright (c) 2023 SUSE LLC +# Copyright (c) 2025 SUSE LLC and contributors # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -20,19 +20,14 @@ %global sover 0.23 Name: f2c # -Version: 20210928 +Version: 20240504 Release: 0 Summary: A Fortran-77 to C Translator License: MIT Group: Development/Languages/Fortran URL: https://www.netlib.org/f2c/ -Source0: https://www.netlib.org/f2c/src.tgz +Source0: https://github.com/barak/f2c/archive/refs/tags/upstream/%{version}.tar.gz Source1: https://www.netlib.org/f2c/libf2c.zip -Source2: https://www.netlib.org/f2c/f2c.pdf -Source3: https://www.netlib.org/f2c/f2c.ps -Source4: https://www.netlib.org/f2c/fc -Patch0: f2c-20110801.patch -Patch1: libf2c-20110801-format-security.patch Patch2: f2c-20180821.patch Patch3: riscv-no-fpu-excp.patch BuildRequires: tcsh @@ -58,35 +53,28 @@ %prep -%setup -q -c %{name}-%{version} +%setup -q -n %{name}-upstream-%{version} mkdir libf2c unzip -qq %{SOURCE1} -d libf2c -%patch -P 0 -p1 -%patch -P 1 -p1 %patch -P 2 -p1 %patch -P 3 -p1 -# Set library soversion -sed -i "s/@SOVER@/%{sover}/" libf2c/makefile.u - -# PDF and PS documentation -cp %{SOURCE2} %{SOURCE3} %{SOURCE4} . - %build %make_build -C src -f makefile.u CFLAGS="%{optflags} -fno-strict-aliasing" f2c +# rather build .so than .a +sed -i 's/\(all: .*\) libf2c.a/\1 libf2c.so/' libf2c/makefile.u %make_build -C libf2c -f makefile.u CFLAGS="%{optflags} -fPIC -fno-strict-aliasing" %install install -D -p -m 644 src/f2c.h %{buildroot}%{_includedir}/f2c.h install -D -p -m 755 src/f2c %{buildroot}%{_bindir}/f2c install -D -p -m 644 src/f2c.1t %{buildroot}%{_mandir}/man1/f2c.1 -install -D -p -m 755 libf2c/libf2c.so.%{sover} %{buildroot}%{_libdir}/libf2c.so.%{sover} +install -D -p -m 755 libf2c/libf2c.so %{buildroot}%{_libdir}/libf2c.so.%{sover} ln -sr %{buildroot}%{_libdir}/libf2c.so.%{sover} %{buildroot}%{_libdir}/libf2c.so.0 ln -sr %{buildroot}%{_libdir}/libf2c.so.%{sover} %{buildroot}%{_libdir}/libf2c.so # Setup f77 script -sed -i "s/@lib@/%{_lib}/" fc install -Dpm 0755 fc %{buildroot}%{_bindir}/f77 %files -n %{libname} ++++++ f2c-20180821.patch ++++++ --- /var/tmp/diff_new_pack.O82Jzr/_old 2026-04-07 16:47:50.133883016 +0200 +++ /var/tmp/diff_new_pack.O82Jzr/_new 2026-04-07 16:47:50.145883509 +0200 @@ -1,5 +1,7 @@ ---- a/libf2c/makefile.u 2018-08-21 11:18:51.000000000 -0800 -+++ b/libf2c/makefile.u 2018-08-21 11:17:43.000000000 -0800 +Index: f2c-upstream-20240504/libf2c/makefile.u +=================================================================== +--- f2c-upstream-20240504.orig/libf2c/makefile.u ++++ f2c-upstream-20240504/libf2c/makefile.u @@ -80,6 +80,7 @@ libf2c.a: $(OFILES) ## must appear in the CFLAGS assignment when making libf2c.so. ## Under Solaris, use -Kpic in CFLAGS and use "ld -G" instead @@ -12,11 +14,11 @@ ### If your system lacks ranlib, you don't need it; see README. f77vers.o: f77vers.c -- $(CC) -c f77vers.c +- $(CC) -c $(CFLAGS) f77vers.c + $(CC) -c -DSkip_f2c_Undefs $(CFLAGS) -o f77vers.o f77vers.c i77vers.o: i77vers.c -- $(CC) -c i77vers.c +- $(CC) -c $(CFLAGS) i77vers.c + $(CC) -c -DSkip_f2c_Undefs $(CFLAGS) -o i77vers.o i77vers.c # To get an "f2c.h" for use with "f2c -C++", first "make hadd" ++++++ libf2c.zip ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/arithchk.c new/arithchk.c --- old/arithchk.c 2013-07-03 19:16:09.000000000 +0200 +++ new/arithchk.c 2016-02-18 21:28:27.000000000 +0100 @@ -49,6 +49,23 @@ int kind; } Akind; + typedef struct +ErrnoTest { + double (*f)(double); + double *x; + } ErrnoTest; + + static double Big = 1e10, Two = 2., t_nan; + + static ErrnoTest Entest[] = { + { log, &t_nan }, + { exp, &Big }, + { asin, &Two }, + { acos, &Two }, + { sqrt, &t_nan }}; + + static int nEntest = sizeof(Entest)/sizeof(ErrnoTest); + static Akind IEEE_8087 = { "IEEE_8087", 1 }, IEEE_MC68k = { "IEEE_MC68k", 2 }, @@ -56,8 +73,6 @@ VAX = { "VAX", 4 }, CRAY = { "CRAY", 5}; - static double t_nan; - static Akind * Lcheck(void) { @@ -112,10 +127,8 @@ return 0; } -char *emptyfmt = ""; /* avoid possible warning message with printf("") */ - static Akind * -ccheck(void) +ccheck(int ac, char **av) { union { double d; @@ -124,10 +137,11 @@ long Cray1; /* Cray1 = 4617762693716115456 -- without overflow on non-Crays */ - Cray1 = printf(emptyfmt) < 0 ? 0 : 4617762; - if (printf(emptyfmt, Cray1) >= 0) + /* The next three tests should always be true. */ + Cray1 = ac >= -2 ? 4617762 : 0; + if (ac >= -1) Cray1 = 1000000*Cray1 + 693716; - if (printf(emptyfmt, Cray1) >= 0) + if (av || ac >= 0) Cray1 = 1000000*Cray1 + 115456; u.d = 1e13; if (u.L == Cray1) @@ -154,20 +168,6 @@ return b == 0.; } - static int -need_nancheck(void) -{ - double t; - - errno = 0; - t = log(t_nan); - if (errno == 0) - return 1; - errno = 0; - t = sqrt(t_nan); - return errno == 0; - } - void get_nanbits(unsigned int *b, int k) { @@ -182,14 +182,17 @@ } int -main(void) +main(int argc, char **argv) { FILE *f; - Akind *a = 0; - int Ldef = 0; - size_t sa, sb; + Akind *a; + ErrnoTest *et, *ete; + int Ldef, goodbits, gooderrno, w0; + union { double d; unsigned int u[2]; } u; unsigned int nanbits[2]; + a = 0; + Ldef = 0; fpinit_ASL(); #ifdef WRITE_ARITH_H /* for Symantec's buggy "make" */ f = fopen("arith.h", "w"); @@ -208,7 +211,7 @@ a = icheck(); } else if (sizeof(double) == sizeof(long)) - a = ccheck(); + a = ccheck(argc, argv); if (a) { fprintf(f, "#define %s\n#define Arith_Kind_ASL %d\n", a->name, a->kind); @@ -245,13 +248,28 @@ if (fzcheck()) fprintf(f, "#define Sudden_Underflow\n"); t_nan = -a->kind; - if (need_nancheck()) - fprintf(f, "#define NANCHECK\n"); if (sizeof(double) == 2*sizeof(unsigned int)) { get_nanbits(nanbits, a->kind); fprintf(f, "#define QNaN0 0x%x\n", nanbits[0]); fprintf(f, "#define QNaN1 0x%x\n", nanbits[1]); } + w0 = 2 - a->kind; + goodbits = gooderrno = 0; + ete = Entest + nEntest; + for(et = Entest; et < ete; ++et) { + errno = 0; + u.d = et->f(*et->x); + if (errno) + ++gooderrno; + if ((u.u[w0] & 0x7ff00000) == 0x7ff00000) + ++goodbits; + } + if (goodbits) { + if (goodbits < nEntest && gooderrno) + fprintf(f, "#define ALSO_CHECK_ERRNO\n"); + } + else if (gooderrno) + fprintf(f, "#define CHECK_ERRNO\n"); } return 0; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fio.h0 new/fio.h0 --- old/fio.h0 1970-01-01 01:00:00.000000000 +0100 +++ new/fio.h0 2008-04-06 04:54:16.000000000 +0200 @@ -0,0 +1,141 @@ +#ifndef SYSDEP_H_INCLUDED +#include "sysdep1.h" +#endif +#include "stdio.h" +#include "errno.h" +#ifndef NULL +/* ANSI C */ +#include "stddef.h" +#endif + +#ifndef SEEK_SET +#define SEEK_SET 0 +#define SEEK_CUR 1 +#define SEEK_END 2 +#endif + +#ifndef FOPEN +#define FOPEN fopen +#endif + +#ifndef FREOPEN +#define FREOPEN freopen +#endif + +#ifndef FSEEK +#define FSEEK fseek +#endif + +#ifndef FSTAT +#define FSTAT fstat +#endif + +#ifndef FTELL +#define FTELL ftell +#endif + +#ifndef OFF_T +#define OFF_T long +#endif + +#ifndef STAT_ST +#define STAT_ST stat +#endif + +#ifndef STAT +#define STAT stat +#endif + +#ifdef MSDOS +#ifndef NON_UNIX_STDIO +#define NON_UNIX_STDIO +#endif +#endif + +#ifdef UIOLEN_int +typedef int uiolen; +#else +typedef long uiolen; +#endif + +/*units*/ +typedef struct +{ FILE *ufd; /*0=unconnected*/ + char *ufnm; +#ifndef MSDOS + long uinode; + int udev; +#endif + int url; /*0=sequential*/ + flag useek; /*true=can backspace, use dir, ...*/ + flag ufmt; + flag urw; /* (1 for can read) | (2 for can write) */ + flag ublnk; + flag uend; + flag uwrt; /*last io was write*/ + flag uscrtch; +} unit; + +#undef Void +#ifdef KR_headers +#define Void /*void*/ +extern int (*f__getn)(); /* for formatted input */ +extern void (*f__putn)(); /* for formatted output */ +extern void x_putc(); +extern long f__inode(); +extern VOID sig_die(); +extern int (*f__donewrec)(), t_putc(), x_wSL(); +extern int c_sfe(), err__fl(), xrd_SL(), f__putbuf(); +#else +#define Void void +#ifdef __cplusplus +extern "C" { +#endif +extern int (*f__getn)(void); /* for formatted input */ +extern void (*f__putn)(int); /* for formatted output */ +extern void x_putc(int); +extern long f__inode(char*,int*); +extern void sig_die(const char*,int); +extern void f__fatal(int, const char*); +extern int t_runc(alist*); +extern int f__nowreading(unit*), f__nowwriting(unit*); +extern int fk_open(int,int,ftnint); +extern int en_fio(void); +extern void f_init(void); +extern int (*f__donewrec)(void), t_putc(int), x_wSL(void); +extern void b_char(const char*,char*,ftnlen), g_char(const char*,ftnlen,char*); +extern int c_sfe(cilist*), z_rnew(void); +extern int err__fl(int,int,const char*); +extern int xrd_SL(void); +extern int f__putbuf(int); +#endif +extern flag f__init; +extern cilist *f__elist; /*active external io list*/ +extern flag f__reading,f__external,f__sequential,f__formatted; +extern int (*f__doend)(Void); +extern FILE *f__cf; /*current file*/ +extern unit *f__curunit; /*current unit*/ +extern unit f__units[]; +#define err(f,m,s) {if(f) errno= m; else f__fatal(m,s); return(m);} +#define errfl(f,m,s) return err__fl((int)f,m,s) + +/*Table sizes*/ +#define MXUNIT 100 + +extern int f__recpos; /*position in current record*/ +extern OFF_T f__cursor; /* offset to move to */ +extern OFF_T f__hiwater; /* so TL doesn't confuse us */ +#ifdef __cplusplus + } +#endif + +#define WRITE 1 +#define READ 2 +#define SEQ 3 +#define DIR 4 +#define FMT 5 +#define UNF 6 +#define EXT 7 +#define INT 8 + +#define buf_end(x) (x->_flag & _IONBF ? x->_ptr : x->_base + BUFSIZ) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/makefile.u new/makefile.u --- old/makefile.u 2008-11-27 07:20:03.000000000 +0100 +++ new/makefile.u 2024-01-31 00:55:28.000000000 +0100 @@ -86,15 +86,15 @@ ## arrange for $DYLD_LIBRARY_PATH to include the directory containing libf2c.so. libf2c.so: $(OFILES) - $(CC) -shared -o libf2c.so $(OFILES) + $(CC) $(LDFLAGS) -shared -o libf2c.so $(OFILES) ### If your system lacks ranlib, you don't need it; see README. f77vers.o: f77vers.c - $(CC) -c f77vers.c + $(CC) -c $(CFLAGS) f77vers.c i77vers.o: i77vers.c - $(CC) -c i77vers.c + $(CC) -c $(CFLAGS) i77vers.c # To get an "f2c.h" for use with "f2c -C++", first "make hadd" hadd: f2c.h0 f2ch.add @@ -111,6 +111,9 @@ sysdep1.h: sysdep1.h0 cp sysdep1.h0 sysdep1.h +fio.h: fio.h0 sysdep1.h + cp fio.h0 fio.h + # If your system lacks onexit() and you are not using an # ANSI C compiler, then you should uncomment the following # two lines (for compiling main.o): @@ -197,7 +200,7 @@ d_nint.c d_prod.c d_sign.c d_sin.c d_sinh.c d_sqrt.c d_tan.c \ d_tanh.c derf_.c derfc_.c dfe.c dolio.c dtime_.c due.c ef1asc_.c \ ef1cmc_.c endfile.c erf_.c erfc_.c err.c etime_.c exit_.c f2c.h0 \ - f2ch.add f77_aloc.c f77vers.c fio.h fmt.c fmt.h fmtlib.c \ + f2ch.add f77_aloc.c f77vers.c fio.h0 fmt.c fmt.h fmtlib.c \ fp.h ftell_.c ftell64_.c \ getarg_.c getenv_.c h_abs.c h_dim.c h_dnnt.c h_indx.c h_len.c \ h_mod.c h_nint.c h_sign.c hl_ge.c hl_gt.c hl_le.c hl_lt.c \ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/xsum0.out new/xsum0.out --- old/xsum0.out 2013-09-27 00:12:02.000000000 +0200 +++ new/xsum0.out 2024-01-31 01:30:48.000000000 +0100 @@ -1,7 +1,7 @@ Notice 76f23b4 1212 README 19870416 16866 abort_.c f51c808 304 -arithchk.c 91ee1e0 5988 +arithchk.c 63b0185 6532 backspac.c 10ebf554 1328 c_abs.c fec22c59 272 c_cos.c 18fc0ea3 354 @@ -12,7 +12,7 @@ c_sqrt.c f1ee88d5 605 cabs.c f3d3b5f2 494 close.c 173f01de 1393 -comptry.bat f8a8a0d5 125 +comptry.bat e40861e9 209 ctype.c f553a125 40 ctype.h 1e54977d 1139 d_abs.c e58094ef 218 @@ -56,7 +56,7 @@ f2ch.add ef66bf17 6060 f77_aloc.c f8daf96e 684 f77vers.c ed1c96fa 4933 -fio.h e41d245e 2939 +fio.h0 e41d245e 2939 fmt.c f9a1bb94 8566 fmt.h ec84ce17 2006 fmtlib.c eefc6a27 865 @@ -103,7 +103,7 @@ lwrite.c f80da63f 4616 main.c 371f60f 2230 makefile.sy 174ccb83 2990 -makefile.u ed8e28fa 7379 +makefile.u 16c94802 7453 makefile.vc 18a3c2ce 2954 makefile.wat 18b044ac 2936 math.hvc 19bb2d07 50
