diff --git a/media-libs/devil/Manifest b/media-libs/devil/Manifest index b24481edd75c51..29b7b9684e2228 100644 --- a/media-libs/devil/Manifest +++ b/media-libs/devil/Manifest @@ -1 +1,2 @@ DIST DevIL-1.7.8.tar.gz 2051993 BLAKE2B 7c06549f7d90965fe6dcd7c6b460119a8491ca50f3103c745195fa5483885878717e9ae417eda51f25cbb60c0a96be180b12727115212709199ded13156ecb3e SHA512 a67e1488d6cb366431d9fcb460b8fe5b8a1dd79426ac77f8abd0db4a5aad7512697f72ef0c49ddb0e806469cc37ba1319e10ccd2ebd73942332df2c3c507458e +DIST DevIL-1.8.0.tar.gz 3084833 BLAKE2B 74257355ef5d1374eedfdbe7a7d4eb23538119e5194041c2c368db0537d927aa120fdbf8d38f12ea23666cfdd9cd2ff83a73f7e1770b92dc9b5d015c05b08afb SHA512 103fa51f4094af0fe988bf9520e1b9178900f980b72226e64ede60b6b0938a646c670a37372214edb557e492947cd5af5012a3ac906734a5ea83e072f81db583 diff --git a/media-libs/devil/devil-1.8.0.ebuild b/media-libs/devil/devil-1.8.0.ebuild new file mode 100644 index 00000000000000..88a11c132f6473 --- /dev/null +++ b/media-libs/devil/devil-1.8.0.ebuild @@ -0,0 +1,55 @@ +# Copyright 1999-2023 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit cmake flag-o-matic + +MY_P=DevIL-${PV} + +DESCRIPTION="DevIL image library" +HOMEPAGE="https://openil.sourceforge.net/" +SRC_URI="mirror://sourceforge/openil/${MY_P}.tar.gz" +S="${WORKDIR}/DevIL/DevIL" + +LICENSE="LGPL-2.1" +SLOT="0" +KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~x86" +IUSE="jasper jpeg lcms mng png tiff" + +# jasper isn't required but is automagic +RDEPEND=" + jasper? media-libs/jasper:= ) + jpeg? ( media-libs/libjpeg-turbo:= ) + lcms? ( media-libs/lcms ) + mng? ( media-libs/libmng:= ) + png? ( + media-libs/libpng:= + sys-libs/zlib:= + ) + tiff? ( media-libs/tiff:= ) +" +DEPEND="${RDEPEND}" + +PATCHES=( + "${FILESDIR}/devil-1.8.0-jasper-function-signatures.patch" +) + +src_configure() { + local mycmakeargs=( + -DIL_NO_JP2=$(usex !jasper) + -DIL_NO_JPG=$(usex !jpeg) + -DIL_NO_LCMS=$(usex !lcms) + -DIL_NO_MNG=$(usex !mng) + -DIL_NO_PNG=$(usex !png) + -DIL_NO_TIF=$(usex !tiff) + ) + + # Taken from Alpine which also has the following comment: + # "register" storage class specifier is no longer allowed in modern C++ + # standards. Until upstream removes the qualifier, we can just ignore the + # warning. + append-cxxflags -Wno-register + + cmake_src_configure +} diff --git a/media-libs/devil/files/devil-1.8.0-jasper-function-signatures.patch b/media-libs/devil/files/devil-1.8.0-jasper-function-signatures.patch new file mode 100644 index 00000000000000..e5136b61c1318b --- /dev/null +++ b/media-libs/devil/files/devil-1.8.0-jasper-function-signatures.patch @@ -0,0 +1,21 @@ +This fixes mismatching function signatures when using function pointers to +iJp2_file_read and iJp2_file_write in jas_stream_opts_t. + +--- a/src-IL/src/il_jp2.cpp ++++ b/src-IL/src/il_jp2.cpp +@@ -314,13 +314,13 @@ + + + +-static int iJp2_file_read(jas_stream_obj_t *obj, char *buf, int cnt) ++static ssize_t iJp2_file_read(jas_stream_obj_t *obj, char *buf, size_t cnt) + { + obj; + return iread(buf, 1, cnt); + } + +-static int iJp2_file_write(jas_stream_obj_t *obj, char *buf, int cnt) ++static ssize_t iJp2_file_write(jas_stream_obj_t *obj, const char *buf, size_t cnt) + { + obj; + return iwrite(buf, 1, cnt); diff --git a/media-libs/devil/metadata.xml b/media-libs/devil/metadata.xml index ffed35c22f6a88..5295f31d80e8de 100644 --- a/media-libs/devil/metadata.xml +++ b/media-libs/devil/metadata.xml @@ -7,6 +7,7 @@ Add support for Allegro + Add support for media-libs/jasper DentonW/DevIL