diff --git a/volpack-1.0c7-fix-casts.patch b/volpack-1.0c7-fix-casts.patch
new file mode 100644
index 0000000..618dbe5
--- /dev/null
+++ b/volpack-1.0c7-fix-casts.patch
@@ -0,0 +1,12 @@
+diff -up volpack-1.0c7/examples/rendervolume.c.fix-casts volpack-1.0c7/examples/rendervolume.c
+--- volpack-1.0c7/examples/rendervolume.c.fix-casts 2024-02-03 09:26:03.308261471 -0500
++++ volpack-1.0c7/examples/rendervolume.c 2024-02-03 09:26:09.395311653 -0500
+@@ -207,7 +207,7 @@ char **argv;
+ strcpy(filename, "brainsmall.ppm");
+ else
+ sprintf(filename, "brainsmall_%d.ppm", n + 1000);
+- StorePGM(image, IMAGE_WIDTH, IMAGE_HEIGHT, filename);
++ StorePGM((char *)image, IMAGE_WIDTH, IMAGE_HEIGHT, filename);
+
+ /* rotate by 5 degrees for next image */
+ vpRotate(vpc, VP_Y_AXIS, 5.0);
diff --git a/volpack-c99.patch b/volpack-c99.patch
new file mode 100644
index 0000000..5d6f41c
--- /dev/null
+++ b/volpack-c99.patch
@@ -0,0 +1,162 @@
+This patch adds missing #include directives, prototypes, and int types,
+to improve compatibility with strict(er) C99 compilers
+
+Submitted upstream:
+
+diff --git a/examples/classifyvolume.c b/examples/classifyvolume.c
+index 59e1353ed48cfdd0..2333fe055239f5a5 100644
+--- a/examples/classifyvolume.c
++++ b/examples/classifyvolume.c
+@@ -37,6 +37,11 @@
+
+ #include "volume.h"
+
++#include
++#include
++#include
++
++int
+ main(argc, argv)
+ int argc;
+ char **argv;
+diff --git a/examples/denfile.c b/examples/denfile.c
+index 91d5ea19d6b52c87..750e9c186d30bcd3 100644
+--- a/examples/denfile.c
++++ b/examples/denfile.c
+@@ -8,6 +8,9 @@
+ #include
+ #include
+
++#include
++#include
++
+ #ifndef MIN
+ #define MIN(a, b) ((a) > (b) ? (b) : (a))
+ #endif
+@@ -18,6 +21,11 @@
+
+ #define MAX_READ_SIZE 8192 /* maximum # of bytes per read(2) call */
+
++int read_bytes(int fd, char *buf, int bytecount);
++int read_shorts(int fd, short *sbuf, int shortcount, int swap);
++int read_words(int fd, int *wbuf, int wordcount, int swap);
++int write_bytes(int fd, char *buf, int bytecount);
++
+ /*
+ * read_den
+ *
+@@ -211,6 +219,7 @@ int xlen, ylen, zlen; /* volume dimensions */
+ * error or the full number of bytes could not be read.
+ */
+
++int
+ read_bytes(fd, buf, bytecount)
+ int fd; /* file descriptor to read from */
+ char *buf; /* memory in which to store data */
+@@ -239,6 +248,7 @@ int bytecount; /* number of bytes to read */
+ * error or the full number of shorts could not be read.
+ */
+
++int
+ read_shorts(fd, sbuf, shortcount, swap)
+ int fd; /* file descriptor to read from */
+ short *sbuf; /* memory in which to store data */
+@@ -287,6 +297,7 @@ int swap; /* if nonzero then swap bytes */
+ * error or the full number of words could not be read.
+ */
+
++int
+ read_words(fd, wbuf, wordcount, swap)
+ int fd; /* file descriptor to read from */
+ int *wbuf; /* memory in which to store data */
+@@ -335,6 +346,7 @@ int swap; /* if nonzero then swap bytes */
+ * Return value is 1 if the write was succesful or 0 if there was an error.
+ */
+
++int
+ write_bytes(fd, buf, bytecount)
+ int fd; /* file descriptor to write to */
+ char *buf; /* memory containing data */
+diff --git a/examples/makeoctree.c b/examples/makeoctree.c
+index b605d26605471f04..dba9e8dd27704415 100644
+--- a/examples/makeoctree.c
++++ b/examples/makeoctree.c
+@@ -37,6 +37,10 @@
+
+ #include "volume.h"
+
++#include
++#include
++
++int
+ main()
+ {
+ vpContext *vpc; /* rendering context */
+diff --git a/examples/makevolume.c b/examples/makevolume.c
+index 86484584c396e40c..f58c50fde38a23fa 100644
+--- a/examples/makevolume.c
++++ b/examples/makevolume.c
+@@ -38,6 +38,9 @@
+ #include
+ #include "volume.h"
+
++#include
++#include
++
+ int main()
+ {
+ vpContext *vpc; /* rendering context */
+diff --git a/examples/rendervolume.c b/examples/rendervolume.c
+index a2173d30e894cc62..88fe162e8c84e152 100644
+--- a/examples/rendervolume.c
++++ b/examples/rendervolume.c
+@@ -38,6 +38,12 @@
+ #include
+ #include "volume.h"
+
++#include
++#include
++
++void StorePGM(char *image, int width, int height, char *filename);
++
++int
+ main(argc, argv)
+ int argc;
+ char **argv;
+@@ -210,6 +216,7 @@ char **argv;
+ return(0);
+ }
+
++void
+ StorePGM(image, width, height, filename)
+ char *image;
+ int width, height;
+diff --git a/examples/scalevolume.c b/examples/scalevolume.c
+index a326f6aaab140871..0773c7a7d394e7c9 100644
+--- a/examples/scalevolume.c
++++ b/examples/scalevolume.c
+@@ -44,8 +44,12 @@
+
+ #include
+ #include
++#include
+ #include
+
++int write_den(char *filename, unsigned char *, int xlen, int ylen, int zlen);
++
++int
+ main(argc, argv)
+ int argc;
+ char **argv;
+diff --git a/src/makeopts.c b/src/makeopts.c
+index 5cb954b1e7cdf04f..cf7794ed6f2df0c6 100644
+--- a/src/makeopts.c
++++ b/src/makeopts.c
+@@ -43,6 +43,7 @@
+ * Usage: makeopts output_file [compiler_options ...]
+ */
+
++int
+ main(argc, argv)
+ int argc;
+ char **argv;
diff --git a/volpack.spec b/volpack.spec
index 36a03f7..415a590 100644
--- a/volpack.spec
+++ b/volpack.spec
@@ -1,13 +1,19 @@
+# This code is old and ugly.
+%global optflags %{optflags} -std=gnu17
+
Name: volpack
Version: 1.0c7
-Release: 21%{?dist}
+Release: 37%{?dist}
Summary: Portable library for fast volume rendering
-License: BSD
+License: BSD-3-Clause
URL: http://amide.sourceforge.net
Source0: http://downloads.sourceforge.net/amide/%{name}/%{name}-%{version}.tgz
Patch0: volpack-aarch64.patch
+Patch1: volpack-c99.patch
+Patch2: volpack-1.0c7-fix-casts.patch
-BuildRequires: gcc
+BuildRequires: make
+BuildRequires: gcc
BuildRequires: m4
%description
@@ -36,7 +42,9 @@ programs using the volpack volume rendering library.
%prep
%setup -q
-%patch0 -p1 -b .aarch64
+%patch -P0 -p1 -b .aarch64
+%patch -P1 -p1 -b .c99
+%patch -P2 -p1 -b .fix-casts
%build
@@ -79,6 +87,54 @@ popd
%changelog
+* Fri Jul 17 2026 Fedora Release Engineering - 1.0c7-37
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_45_Mass_Rebuild
+
+* Sat Jan 17 2026 Fedora Release Engineering - 1.0c7-36
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_44_Mass_Rebuild
+
+* Fri Jul 25 2025 Fedora Release Engineering - 1.0c7-35
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild
+
+* Tue Feb 25 2025 Tom Callaway - 1.0c7-34
+- force -std=gnu17 for compilation, this code is old and nasty
+
+* Sun Jan 19 2025 Fedora Release Engineering - 1.0c7-33
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild
+
+* Sat Jul 20 2024 Fedora Release Engineering - 1.0c7-32
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild
+
+* Sat Feb 3 2024 Tom Callaway - 1.0c7-31
+- fix casts to resolve FTBFS
+
+* Sat Jan 27 2024 Fedora Release Engineering - 1.0c7-30
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
+
+* Sat Jul 22 2023 Fedora Release Engineering - 1.0c7-29
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
+
+* Sat Jan 21 2023 Fedora Release Engineering - 1.0c7-28
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
+
+* Sat Dec 3 2022 Florian Weimer - 1.0c7-27
+- Port to C99
+
+* Sat Jul 23 2022 Fedora Release Engineering - 1.0c7-26
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
+
+* Sat Jan 22 2022 Fedora Release Engineering - 1.0c7-25
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
+
+* Fri Jul 23 2021 Fedora Release Engineering - 1.0c7-24
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
+
+* Wed Jan 27 2021 Fedora Release Engineering - 1.0c7-23
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
+
+* Wed Jul 29 2020 Fedora Release Engineering - 1.0c7-22
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
+
* Fri Jan 31 2020 Fedora Release Engineering - 1.0c7-21
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild