- version update to 1.6.44:
* Hardened calculations in chroma handling to prevent overflows, and relaxed a constraint in cHRM validation to accomodate the standard ACES AP1 set of color primaries. (Contributed by John Bowler) * Removed the ASM implementation of ARM Neon optimizations and updated the build accordingly. Only the remaining C implementation shall be used from now on, thus ensuring the support of the PAC/BTI security features on ARM64. (Contributed by Ross Burton and John Bowler) * Fixed the pickup of the PNG_HARDWARE_OPTIMIZATIONS option in the CMake build on FreeBSD/amd64. This is an important performance fix on this platform. * Applied various fixes and improvements to the CMake build. (Contributed by Eric Riff, Benjamin Buch and Erik Scholz) * Added fuzzing targets for the simplified read API. (Contributed by Mikhail Khachayants) * Fixed a build error involving pngtest.c under a custom config. This was a regression introduced in a code cleanup in libpng-1.6.43. (Contributed by Ben Wagner) * Fixed and improved the config files for AppVeyor CI and Travis CI. - Drop upstream patch: * 563.patch OBS-URL: https://build.opensuse.org/package/show/graphics/libpng16?expand=0&rev=150
This commit is contained in:
commit
b5be536f5e
23
.gitattributes
vendored
Normal file
23
.gitattributes
vendored
Normal file
@ -0,0 +1,23 @@
|
||||
## Default LFS
|
||||
*.7z filter=lfs diff=lfs merge=lfs -text
|
||||
*.bsp filter=lfs diff=lfs merge=lfs -text
|
||||
*.bz2 filter=lfs diff=lfs merge=lfs -text
|
||||
*.gem filter=lfs diff=lfs merge=lfs -text
|
||||
*.gz filter=lfs diff=lfs merge=lfs -text
|
||||
*.jar filter=lfs diff=lfs merge=lfs -text
|
||||
*.lz filter=lfs diff=lfs merge=lfs -text
|
||||
*.lzma filter=lfs diff=lfs merge=lfs -text
|
||||
*.obscpio filter=lfs diff=lfs merge=lfs -text
|
||||
*.oxt filter=lfs diff=lfs merge=lfs -text
|
||||
*.pdf filter=lfs diff=lfs merge=lfs -text
|
||||
*.png filter=lfs diff=lfs merge=lfs -text
|
||||
*.rpm filter=lfs diff=lfs merge=lfs -text
|
||||
*.tbz filter=lfs diff=lfs merge=lfs -text
|
||||
*.tbz2 filter=lfs diff=lfs merge=lfs -text
|
||||
*.tgz filter=lfs diff=lfs merge=lfs -text
|
||||
*.ttf filter=lfs diff=lfs merge=lfs -text
|
||||
*.txz filter=lfs diff=lfs merge=lfs -text
|
||||
*.whl filter=lfs diff=lfs merge=lfs -text
|
||||
*.xz filter=lfs diff=lfs merge=lfs -text
|
||||
*.zip filter=lfs diff=lfs merge=lfs -text
|
||||
*.zst filter=lfs diff=lfs merge=lfs -text
|
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
||||
.osc
|
98
563.patch
Normal file
98
563.patch
Normal file
@ -0,0 +1,98 @@
|
||||
From ceed2a3cf6af420a0782e7f6147d5965b01b772a Mon Sep 17 00:00:00 2001
|
||||
From: John Bowler <jbowler@acm.org>
|
||||
Date: Thu, 30 May 2024 07:53:42 -0700
|
||||
Subject: [PATCH] SECURITY: disable build of filter_neon.S on arm
|
||||
|
||||
This fixes the bug https://github.com/pnggroup/libpng/issues/505
|
||||
"libpng does not support PAC/BTI on aarch64 targets" which arises
|
||||
because the build mechanisms (both cmake and configure) assemble
|
||||
arm/filter_neon.S even though it ends up completely empty. The empty
|
||||
file effectively poisons the so that the PAC/BTI support gets disabled.
|
||||
|
||||
The fix is minimal; it simply removes arm/filter_neon.S from the list of
|
||||
sources included in the 64-bit ARM builds build. Note that this was
|
||||
already done in cmake for MSVC - it's not clear whether this change was
|
||||
a partial fix for the same issue.
|
||||
|
||||
This version of the fix ONLY affects aarch64 (arm64) builds; 32-bit ARM
|
||||
systems can still invoke the assembler if required and, indeed, there
|
||||
should be no change whatsover to those builds.
|
||||
|
||||
The assembler code could not be used on 64-bit systems in any case so
|
||||
in practice there is no material change to 64-bit builds either.
|
||||
|
||||
TESTING: pull the changes then type "autoreconf" if using configure (not
|
||||
required for cmake).
|
||||
|
||||
TESTS: cmake has not been tested because cross-builds with cmake
|
||||
currently fail to find the zlib installation from the cmake system root
|
||||
path. The following has been tested with configure cross builds:
|
||||
|
||||
armv7-linux-gnueabi [no neon support]
|
||||
armv7a-linux-gnueabi [no neon support]
|
||||
armv7a-hardfloat-linux-gnueabi [neon support not enabled]
|
||||
armv7a-hardfloat-linux-gnueabi -mfpu=neon [uses intrinics]
|
||||
armv7a-hardfloat-linux-gnueabi -mfpu=neon
|
||||
-DPNG_ARM_NEON_IMPLEMENTATION=2 [uses assembler]
|
||||
aarch64-linux-gnu [uses intrinsics]
|
||||
aarch64-linux-gnu -DPNG_ARM_NEON_OPT=0 [neon support disabled]
|
||||
|
||||
Signed-off-by: John Bowler <jbowler@acm.org>
|
||||
---
|
||||
CMakeLists.txt | 2 +-
|
||||
Makefile.am | 6 ++++--
|
||||
configure.ac | 10 ++++++++++
|
||||
3 files changed, 15 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
||||
index 77e5398b6a..11bbe36d2a 100644
|
||||
--- a/CMakeLists.txt
|
||||
+++ b/CMakeLists.txt
|
||||
@@ -153,7 +153,7 @@ if(TARGET_ARCH MATCHES "^(ARM|arm|aarch)")
|
||||
arm/arm_init.c
|
||||
arm/filter_neon_intrinsics.c
|
||||
arm/palette_neon_intrinsics.c)
|
||||
- if(NOT MSVC)
|
||||
+ if(NOT MSVC AND NOT TARGET_ARCH MATCHES "^(ARM64|arm64|aarch64)")
|
||||
list(APPEND libpng_arm_sources arm/filter_neon.S)
|
||||
endif()
|
||||
if(PNG_ARM_NEON STREQUAL "on")
|
||||
diff --git a/Makefile.am b/Makefile.am
|
||||
index 1f06c703a1..5cc27a4c8f 100644
|
||||
--- a/Makefile.am
|
||||
+++ b/Makefile.am
|
||||
@@ -107,9 +107,11 @@ libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la_SOURCES = png.c pngerror.c\
|
||||
png.h pngconf.h pngdebug.h pnginfo.h pngpriv.h pngstruct.h pngusr.dfa
|
||||
|
||||
if PNG_ARM_NEON
|
||||
+if PNG_ARM_NEON_ASM
|
||||
+libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la_SOURCES += arm/filter_neon.S
|
||||
+endif
|
||||
libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la_SOURCES += arm/arm_init.c\
|
||||
- arm/filter_neon.S arm/filter_neon_intrinsics.c \
|
||||
- arm/palette_neon_intrinsics.c
|
||||
+ arm/filter_neon_intrinsics.c arm/palette_neon_intrinsics.c
|
||||
endif
|
||||
|
||||
if PNG_MIPS_MSA
|
||||
diff --git a/configure.ac b/configure.ac
|
||||
index 2c6b3333c6..e3c1536f0c 100644
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -425,6 +425,16 @@ AM_CONDITIONAL([PNG_ARM_NEON],
|
||||
*) test "$enable_arm_neon" != '' ;;
|
||||
esac])
|
||||
|
||||
+# Add the assembler implementation source file. This only works on 32-bit
|
||||
+# ARM and causes problems even if empty on 64-bit ARM.
|
||||
+AM_CONDITIONAL([PNG_ARM_NEON_ASM],
|
||||
+ [test "$enable_arm_neon" != 'no' &&
|
||||
+ case "$host_cpu" in
|
||||
+ arm64*|aarch64*) false ;;
|
||||
+ arm*) true ;;
|
||||
+ *) test "$enable_arm_neon" != '' ;;
|
||||
+ esac])
|
||||
+
|
||||
# MIPS MSA
|
||||
# ========
|
||||
|
12
baselibs.conf
Normal file
12
baselibs.conf
Normal file
@ -0,0 +1,12 @@
|
||||
libpng16-16
|
||||
obsoletes "libpng-<targettype> < <version>"
|
||||
provides "libpng-<targettype> = <version>"
|
||||
libpng16-devel
|
||||
requires -libpng16-<targettype>
|
||||
requires "libpng16-16-<targettype> = <version>"
|
||||
libpng16-compat-devel
|
||||
requires -libpng16-compat-<targettype>
|
||||
requires "libpng16-devel-<targettype> = <version>"
|
||||
conflicts "libpng-devel-<targettype>"
|
||||
provides "libpng-devel-<targettype>"
|
||||
|
BIN
libpng-1.6.43.tar.xz
(Stored with Git LFS)
Normal file
BIN
libpng-1.6.43.tar.xz
(Stored with Git LFS)
Normal file
Binary file not shown.
3
libpng-1.6.44.tar.xz
Normal file
3
libpng-1.6.44.tar.xz
Normal file
@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:60c4da1d5b7f0aa8d158da48e8f8afa9773c1c8baa5d21974df61f1886b8ce8e
|
||||
size 1045640
|
1602
libpng16.changes
Normal file
1602
libpng16.changes
Normal file
File diff suppressed because it is too large
Load Diff
91
libpng16.keyring
Normal file
91
libpng16.keyring
Normal file
@ -0,0 +1,91 @@
|
||||
-----BEGIN PGP PUBLIC KEY BLOCK-----
|
||||
Version: GnuPG v2.0.20 (GNU/Linux)
|
||||
|
||||
mQINBFGn+ogBEAD6cK4C1MRIOUPToIxBZA1mwkiUYTimGEhmgHFle9h20GQWuuJ3
|
||||
sU34ptoljsmgeWChuC1PRtYm1mb/nrIC98Osu1MKwj1QQbHgGa/oK57LBx05bVZr
|
||||
GI36tkZXi9VC4aiilJ08c1bVYDh0WKx9ohH7VKlNiDiS5g5Fsk8fe3hj+nCBbRN1
|
||||
6VZjcVhWwhYYygTnTu/4KxkjgbE2QUP1CsE8UbeubFcInlSFmXAyoc3hXLbe0NqI
|
||||
Jxri1dQAwg/J/GtEqLfTDE9f+xuHgVVwUpGNDhf2Md4STW/5m0lzfOQXxN0AUwml
|
||||
wTNS6YNkb8WK0ab63wnVwP+4wAwVp3QjDYhrkApTdv3W5V/7oGL0Iw6o1XGbXLp2
|
||||
qLwgAhcWFeZWU6RbfT33ipeoYPmt4Cw8tGW6Zh1CEW4lj33hJoOTfrogtMFqPRSa
|
||||
sbz2tTGha3ZA3FKg84tfg1UaS7ZJ6MmrO2lXr7VcjR75xmeqjjQyQlhZ67Ew4mbw
|
||||
J456mG0fM9a7PPgCIJPAluNQvgUjoSfDFb/0klhnZeUULZqhBNQP05wisWjLinGB
|
||||
3QW4WKJlBpugSR8ymIgn0aU9gsbBppDHrF9Vzl/1oQAbcuiRM/GIiVvY8q5a8x1I
|
||||
KnSNH0/SXSdaHdhcfzOx1JG2wM5S5dS5LDkCchxbReD82DDr90dxBlxfnwARAQAB
|
||||
tDdHbGVubiBSYW5kZXJzLVBlaHJzb24gKG1vemlsbGEpIDxnbGVubnJwK2Jtb0Bn
|
||||
bWFpbC5jb20+iQI+BBMBAgAoBQJRr4XlAhsDBQkJbUKdBgsJCAcDAgYVCAIJCgsE
|
||||
FgIDAQIeAQIXgAAKCRD1SYS/oWxkD+AfEACgCTqUYZC4LvwPnaK0Y/Cjgwt6ToaJ
|
||||
t3dpziKibYR3fL0F8vzX153Ry++K7yRe6C+1oNgNwEtT3NcJ/LOESrQEv0VGMKNK
|
||||
IgETWGUoPL96X7huX5SJvWWzqjMwqiuGnxhh5zINKFdYEDemzclFgCld9NqMPObJ
|
||||
K9qnQY2VNl1enn6omXuX6uL9CkYxvAgEWeROLfFqaKv3pqERAegKPSMsLCVvBgOv
|
||||
LVKbt+Du/sRd2NfmfSBNhubCwegPNw6PW/G/w/IFu28L5FAessIqcPL5fqx0qIpm
|
||||
Eb+LWOTPb9UrlzVYJmyLZP11I4dTo7RUGcWyP4Pr+LAkYmfjjXMSvVXia3rsy7R6
|
||||
uhkiq1Ar6o4WHuDqbWfyM8FRT0IQaeJ2RgMxXx82bG7TYg+3jj/auR1cu77PDcp1
|
||||
kZbKS0TTmXnOVk8R3HmM4Nu7JzEgagyvGNZm43yPMk1Z6GyrW7vyF4rV+yC3C4FF
|
||||
yqL061DOgm/jA8JhRs0CxPpYgBeYKkfbk86cH/42ecCVCOqf59YkIRacQ/BZe8gL
|
||||
Na/9o9mhL36IXfkr7Y4zwLPeSzwQNewDobqjqxZx24hwXJDgw61khxWmZLc4TaSD
|
||||
ztYpUiwhzEApPpNPfiyKgemXW3AZas72t4sKcopsubildANMQCLeqnJnOwzA45Dj
|
||||
gM4isVqLMX0m9bQ+R2xlbm4gUmFuZGVycy1QZWhyc29uIChsaWJwbmcpIDxnbGVu
|
||||
bnJwQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD6JAj4EEwECACgCGwMGCwkIBwMCBhUI
|
||||
AgkKCwQWAgMBAh4BAheABQJRrzusBQkJbUKdAAoJEPVJhL+hbGQP65AP/0v4qqp9
|
||||
yrwJI1xc56iaB12sUVTUa1LKdFer6rN56Z757dRPrksbR4pQrpU9pjEETg7gn3TL
|
||||
kMusGeNWWPr86X4kVuAUhw9/SCZiT/MsRvYHNKyNzZBNpw5pPjn/AeQhuHoMER25
|
||||
M0e1/hExiwBrpNhyRyywO1NYDbuHFlPA9vlcb7vYF4EYimKyjPg0r1Qbq2rrwPGz
|
||||
KI6k+Zlhp3NfdAJKdXA50TL48nqCYu1uH18eYP9V4qRaXPto4rzNzlMPn0IILFl4
|
||||
zmrC+vrBqtDfcg1fYupDBupKdb54D9xExfx5w+eX7/VhzBesnBEkhOZJRpABW8NE
|
||||
P9/9ryraPiKyHyfpy1D/LzJXGcNDOwziv0R7LdmLECB714v9tSjie6EdZJYc9E1s
|
||||
VUG7iJ4te+B0iKohqQIpvuDwjmsJsViu/tHYYndoJd5DYt4QxewN17Vl/P48bV6E
|
||||
cTZWTnK2hI6/n0u0vfnQ6Zy2Hmkl9PRaDK/EQPaEJ68uk9bx8jiZ2quIDZkdMHZ0
|
||||
5hkQk2E4VdCOBPsmeH/kSXhUrhJLcP8wHInBV7Twtv3PR6MVv71Zvccydrqrz0W5
|
||||
JtbSA1pMKeDLh8zTL8ZwbvGPwB7qbeaD82babXQErAVkX6N5TX9pbPQU8EHnD/C4
|
||||
o8YYtMJ/TSSJQBFo0O3RNTroosHiWtzGQtH7iQI+BBMBAgAoBQJRp/qIAhsDBQkJ
|
||||
ZgGABgsJCAcDAgYVCAIJCgsEFgIDAQIeAQIXgAAKCRD1SYS/oWxkD0eUEAC2nqdB
|
||||
wpzGdUl4HlbdUTSgMSbCO+96rgVQCp5WvQniPaUB4DkHL2V4VDQW4oeDvTWxKC8t
|
||||
rG4MSgC6Oyjg4qQe9+p9UqxhWWxqajJxMUlBMS/Xn+cHO+FbDfSCOMmHkbmuMOkJ
|
||||
Z/4g8u4PgKOjnV+Hnmvo49CWkw549NmK4G3GOsoOVVNjz4IjJC1HJkLje662n1SV
|
||||
q2CqggjflqN90hE0x4n55ihQWsqC0dMYeYLzJXqWkDMavx6oJTVgSGHPSdKx3LPG
|
||||
UiuDytU1A93K8Ki97NuVOdvC+U3iEnUf1uMBasbDxaGSlIBrMDS3saVqMNDXpfXl
|
||||
XPyc5dxMz23vayjlWyQI6OO7Im4wpfdHsSQP5uvkkkyLWOz+ZZsASFstF52jfJLm
|
||||
53Q3agQS8lL1OCvy3rsgVl5OjEpfBwj9L4XF+Meu6EPv5Yk7WUV6+Uabt+KxvIuQ
|
||||
KqnZ0hlZ4R7ALOloe9yebmWpjW2WtBJS6RJHtJdsym2oVhUjk5NX/on0hAAJDAls
|
||||
udkFEw+pqtjdiWeyhNvWpTaVLxwwEv0+lHOEVwzC4eU2XOYPS1mzMYaNRjDU1Nf3
|
||||
vYV54tnomtr3WvmI9QHlXYU3xpg6F70PdfKoju9JUKoDYi3fwldwLacPEG83XGbf
|
||||
2r/g6viS5y2k4sOkx23O7L23OFcmoKhx9hibxLRAR2xlbm4gUmFuZGVycy1QZWhy
|
||||
c29uIChwbmdjcnVzaCkgPGdsZW5ucnBAdXNlcnMuc291cmNlZm9yZ2UubmV0PokC
|
||||
PgQTAQIAKAUCUa8+fAIbAwUJCW1CnQYLCQgHAwIGFQgCCQoLBBYCAwECHgECF4AA
|
||||
CgkQ9UmEv6FsZA/1lRAAmPj6tlVpbr9Nm7tENuWw18r/EkWqf485MMktMvC+ZNOh
|
||||
SUGTKVX/Snq2AsEvTHhuLv3YvLFRZ4to9veLA1vjXvBVYvdirfIznxfYjdmzLOZ7
|
||||
8CWRiRk8aC1j7K1czBUNhRgrTl4YN3GZNxnrmtSDm9A/uHE+RewcbXZsRv8PS9Bn
|
||||
LCkb2bGbHAJvfjkjDFKstjN0qCMFxFKiQm2QjY1Q8pkD0DtsJgtqirCxkyZvzmqZ
|
||||
mSIeGURL5l7WJnLiMOckk4V0z3/6BsO4WXJYWe0G1vnPZFJjBvauhKVZMZ75FaKe
|
||||
+O80dXIiQBblbxV6O/P+2D/V4HnSiENDowltFx2CGhvrf8QY9vvZIApa/qu9FTuF
|
||||
zMkpKTvODWTMXKKN8V4CAX8YvGJ4P7TU3iicRDG7ElE0v5ewH2DbcJyf9MTtCk+R
|
||||
zHpxElbkz5WWKEmHQZaVm95W9EWjOM19mvWNCZdgW7u8nGjnfJ+IwZCCYa+VycSg
|
||||
9sucH7YC9yEKWW2YpdrqbqnjBSEGnjq0MtyXUU5cQIHBgit61sPSBc2nbEsyP4a1
|
||||
2o/wF341HzwRQOyU4BSLRgLsnMSwfneOveoC6bFqKebZuMcMuYgzV81vDdGW2JEv
|
||||
qXsTuAWmiUyJbdVp0ofvAc1ZVCQjbPI5jgWAGSFA/IEES/VrXWwB1Beimk1EW5a5
|
||||
Ag0EUaf6iAEQAKx8uIVati92dJrTR1dQLDjcpvnjXdU59gbHZ7u2vC6o4lvNcjBn
|
||||
9sbS+20PE/bMcfJnYWirJSMSxYGvgfiDRz+LjAMNPtbde/5saqRRFmNOa9i1Kl5M
|
||||
HxC4LzM8TZOHqpay02GvhB3Uz+o4o4vm148N9dJRNhBiGO0Tmf0RL145FUr2OTDb
|
||||
Q/RVMIxx1xCqbQCabGKlL6g1ByM65S2s+3wYCqOJfdIAQJ01ohzEiLDToX06wqgI
|
||||
/zUG9J96Hxwy8GYOG3d5EXKlpZI9y8MdYIKgiTc7wjbrUvsW4H9KQBxm4CMfn24r
|
||||
/mdnpcDYRKPd7YZBhW7LpDrYXbAqH5OoQZwNXAvLq+iLzZNfgVlQNPup67JD0efO
|
||||
A9uCwVlSg145EVWBzwbhtd8K5NaEYqbbrK1IYlfsVVk9N1cs6zw/yh/P5TmHvkpH
|
||||
u2zyYhNaH8CKAmj+cR04eDqqn/ECQ14dA7qoUyADLm199ytpxzjOx1uAz153JnAg
|
||||
jnZz0cfGpg8oKptQ1j+PQcoy6PEYAE3zUz5PRPWEQr+8S4QSi/HUQQ87d0ysgLzU
|
||||
uMLHuV+0lOiZ/Jk8N7SOyNnpgkJaE+0NOPuPqH2YUAB3VuoJTxmLq5z49N8+rx0A
|
||||
P3F8W49dJ7RuA8w5QAGT9UpG3jRvBNkOqCpXyZKfUvSC7H/66HGy7x6rABEBAAGJ
|
||||
AiUEGAECAA8FAlGn+ogCGwwFCQlmAYAACgkQ9UmEv6FsZA8sehAAw1AAbcjRO6Zs
|
||||
ivgr3oBMxUcQRwCqhK4JrCXnA2j2LdPmNxVwabjuk/T95gEx/JaPrEN3aNyV6Psb
|
||||
ajBJ9OChvBjBZ3dib7HmUmKn/q3UDt/ZtOR2Y11rfFcd1WOD6xOzu+GH0Bq9/eN0
|
||||
YYZswppy0+s7uKKd2vPxKoCuCt0b0Aze/LpLn7+Az01xsLfHJ8tmwVklkNdT6g9u
|
||||
Xoxj27ibjOP7XsB/xugCcItxvIPu0kYLohqpSxcOrtAFuGyUm/pqYGFPKvs+4x8+
|
||||
oTomn68w2nyI4m3slHdbUfeRNq6uSxzw7a8VqwV4NeGBQLOwq0RCVgvyDKF3vVLR
|
||||
NkNXkNxRQ8WCOw31qFsAAuBtO2QPxj8KuUzOkMF5nTtyJravAOaSGkjMtBGlUbxS
|
||||
TSpIeiy8o1SOmj3Fd5fG8k8MlZ+LCzRoAjDREGgk9NZSCpA/kQB3lkv0RSYqgMB8
|
||||
nkcBOaCbXRBQ66iPg9KhkMwadUxLAK/i6jFir1HGzgjeSufk/8BJPzHWb5IQna4G
|
||||
VgGy5MP5iCup2WVyeEREw8p9IGZU+UAOdziD8OicCrMdkw24TqEKOCCREByiRgIf
|
||||
scWcJdpHlqFYCQhjKPXM79PWYCP600VFW/m1/gblHu3pB3n40NjMOC7Fi1gl96+q
|
||||
jbyUPEKA6rvduCBJHehOpTSTScWnA3U=
|
||||
=Rum9
|
||||
-----END PGP PUBLIC KEY BLOCK-----
|
163
libpng16.spec
Normal file
163
libpng16.spec
Normal file
@ -0,0 +1,163 @@
|
||||
#
|
||||
# spec file for package libpng16
|
||||
#
|
||||
# Copyright (c) 2024 SUSE LLC
|
||||
#
|
||||
# All modifications and additions to the file contributed by third parties
|
||||
# remain the property of their copyright owners, unless otherwise agreed
|
||||
# upon. The license for this file, and modifications and additions to the
|
||||
# file, is the same license as for the pristine package itself (unless the
|
||||
# license for the pristine package is not an Open Source License, in which
|
||||
# case the license is the MIT License). An "Open Source License" is a
|
||||
# license that conforms to the Open Source Definition (Version 1.9)
|
||||
# published by the Open Source Initiative.
|
||||
|
||||
# Please submit bugfixes or comments via https://bugs.opensuse.org/
|
||||
#
|
||||
|
||||
|
||||
%define debug_build 0
|
||||
%define asan_build 0
|
||||
%define major 1
|
||||
%define minor 6
|
||||
%define micro 44
|
||||
%define branch %{major}%{minor}
|
||||
%define libname libpng%{branch}-%{branch}
|
||||
%define debug_package_requires %{libname} = %{version}-%{release}
|
||||
Name: libpng16
|
||||
Version: %{major}.%{minor}.%{micro}
|
||||
Release: 0
|
||||
Summary: Library for the Portable Network Graphics Format (PNG)
|
||||
License: libpng-2.0
|
||||
URL: http://www.libpng.org/pub/png/libpng.html
|
||||
Source0: https://prdownloads.sourceforge.net/libpng/libpng-%{version}.tar.xz
|
||||
Source2: libpng16.keyring
|
||||
Source3: rpm-macros.libpng-tools
|
||||
Source4: baselibs.conf
|
||||
BuildRequires: libtool
|
||||
BuildRequires: pkgconfig
|
||||
BuildRequires: pkgconfig(zlib)
|
||||
%{?suse_build_hwcaps_libs}
|
||||
|
||||
%package -n %{libname}
|
||||
Summary: Library for the Portable Network Graphics Format (PNG)
|
||||
Provides: libpng = %{version}
|
||||
|
||||
%package devel
|
||||
Summary: Development tools for applications which will use libpng
|
||||
Requires: %{libname} = %{version}
|
||||
Requires: glibc-devel
|
||||
Requires: pkgconfig
|
||||
Requires: pkgconfig(zlib)
|
||||
Recommends: libpng%{branch}-compat-devel
|
||||
#
|
||||
|
||||
%package compat-devel
|
||||
Summary: Development tools for applications which will use libpng
|
||||
Requires: libpng%{branch}-devel = %{version}
|
||||
Conflicts: libpng-devel
|
||||
Provides: libpng-devel = %{version}
|
||||
Obsoletes: libpng-devel < 1.2.44
|
||||
|
||||
%package tools
|
||||
Summary: Tools for Manipulating PNG Images
|
||||
Conflicts: libpng-tools
|
||||
Provides: libpng-tools = %{version}
|
||||
|
||||
%description
|
||||
libpng is the official reference library for the Portable Network
|
||||
Graphics format (PNG).
|
||||
|
||||
%description -n %{libname}
|
||||
libpng is the official reference library for the Portable Network
|
||||
Graphics format (PNG).
|
||||
|
||||
%description devel
|
||||
The libpng%{branch}-devel package includes the header files, libraries,
|
||||
configuration files and development tools necessary for compiling and
|
||||
linking programs which will manipulate PNG files using libpng%{branch}.
|
||||
|
||||
libpng is the official reference library for the Portable Network
|
||||
Graphics (PNG) format.
|
||||
|
||||
%description compat-devel
|
||||
The libpng%{branch}-compat-devel package contains unversioned symlinks
|
||||
to the header files, libraries, configuration files and development
|
||||
tools necessary for compiling and linking programs that don't care
|
||||
about libpng version.
|
||||
|
||||
%description tools
|
||||
Package consists of low level tools for manipulating and fixing particular
|
||||
PNG files.
|
||||
|
||||
%prep
|
||||
%autosetup -p1 -n libpng-%{version}
|
||||
|
||||
%build
|
||||
# PNG_SAFE_LIMITS_SUPPORTED: http://www.openwall.com/lists/oss-security/2015/01/10/1
|
||||
export CFLAGS="%{optflags} -O3 -DPNG_SAFE_LIMITS_SUPPORTED -DPNG_SKIP_SETJMP_CHECK $(getconf LFS_CFLAGS)"
|
||||
%ifarch armv7l armv7hl
|
||||
export CFLAGS="$CFLAGS -mfpu=neon"
|
||||
%endif
|
||||
export LDFLAGS="-Wl,-z,relro,-z,now"
|
||||
%if %{debug_build}
|
||||
export CFLAGS="$CFLAGS -Og"
|
||||
%endif
|
||||
# autoreconf required by Patch1
|
||||
autoreconf -f
|
||||
%configure \
|
||||
--enable-hardware-optimizations=yes \
|
||||
%ifarch armv6l armv6hl
|
||||
--enable-arm-neon=no \
|
||||
%endif
|
||||
--disable-static
|
||||
%if %{asan_build}
|
||||
sed -i -e 's/^\(CFLAGS.*\)$/\1 -fsanitize=address/' \
|
||||
-e 's/\(^LIBS =.*\)/\1 -lasan/' Makefile
|
||||
%endif
|
||||
%make_build
|
||||
|
||||
%check
|
||||
%make_build -j1 check
|
||||
|
||||
%install
|
||||
%make_install
|
||||
find %{buildroot} -type f,l -name "*.la" -delete -print
|
||||
mkdir -p %{buildroot}%{_sysconfdir}/rpm
|
||||
install -D -m644 %{SOURCE3} %{buildroot}%{_rpmmacrodir}/macros.libpng-tools
|
||||
%if %{debug_build} ||%{asan_build}
|
||||
install -m755 .libs/pngcp %{buildroot}/%{_bindir}
|
||||
%endif
|
||||
|
||||
%post -n %{libname} -p /sbin/ldconfig
|
||||
%postun -n %{libname} -p /sbin/ldconfig
|
||||
|
||||
%files -n %{libname}
|
||||
%{_libdir}/libpng%{branch}.so.*
|
||||
|
||||
%files devel
|
||||
%{_bindir}/libpng%{branch}-config
|
||||
%{_includedir}/libpng%{branch}
|
||||
%{_libdir}/libpng%{branch}.so
|
||||
%{_libdir}/pkgconfig/libpng%{branch}.pc
|
||||
%license LICENSE
|
||||
%doc CHANGES README TODO ANNOUNCE libpng-*.txt
|
||||
|
||||
%files compat-devel
|
||||
%{_bindir}/libpng-config
|
||||
%{_includedir}/*.h
|
||||
%{_libdir}/libpng.so
|
||||
%{_libdir}/pkgconfig/libpng.pc
|
||||
%{_mandir}/man3/libpng.3%{?ext_man}
|
||||
%{_mandir}/man3/libpngpf.3%{?ext_man}
|
||||
%{_mandir}/man5/png.5%{?ext_man}
|
||||
|
||||
%files tools
|
||||
%{_bindir}/png-fix-itxt
|
||||
%{_bindir}/pngfix
|
||||
%if %{debug_build} || %{asan_build}
|
||||
%{_bindir}/pngcp
|
||||
%endif
|
||||
%{_rpmmacrodir}/macros.libpng-tools
|
||||
|
||||
%changelog
|
35
rpm-macros.libpng-tools
Normal file
35
rpm-macros.libpng-tools
Normal file
@ -0,0 +1,35 @@
|
||||
# macro: %png_fix path/to/name-of.png
|
||||
# for given png, fixes 'IDAT: invalid distance too far back', etc.,
|
||||
# see pngfix --help
|
||||
#
|
||||
# -q do not output if macro fixed something or find unrecoverable error
|
||||
#
|
||||
# this macro fails only if there is an unrecoverable error in the png
|
||||
# -- pngfix returns nonzero and $png.fixed doesn't exist; run pngfix
|
||||
# on that file, see return code and compare with pngfix --help output
|
||||
%png_fix(q) \
|
||||
if test "x%1" == "x%%1"; then \
|
||||
echo "Missing argument in call to %%png_fix: path and name of png file." \
|
||||
exit 1 \
|
||||
fi \
|
||||
/usr/bin/pngfix %{-q: -qq} --suffix='.fixed' "%1" || true \
|
||||
mv "%1.fixed" "%1" \
|
||||
%nil
|
||||
#
|
||||
# macro: %png_fix_dir
|
||||
# for given directory, search *.png (recursively) and potentionaly
|
||||
# fix 'IDAT: invalid distance too far back', etc., see pngfix --help
|
||||
#
|
||||
# -q do not output if pngfix fixed something or find unrecoverable error
|
||||
#
|
||||
%png_fix_dir(q) \
|
||||
if test "x%1" == "x%%1"; then \
|
||||
echo "Missing argument in call to %%png_fix_dir: dir where to search png files." \
|
||||
exit 1 \
|
||||
fi \
|
||||
for png in `find "%1" -iname '*.png'`; do \
|
||||
# -q will be propagated \
|
||||
%png_fix $png \
|
||||
done \
|
||||
%nil
|
||||
|
Loading…
Reference in New Issue
Block a user