Add gimp & dependent packages (#34558)

* exiv2: add new versions

* babl: new package required to build GIMP

* gegl: new package required to build GIMP

* gexiv2: new package required to build GIMP

* libmypaint: new package required to build GIMP

* mypaint-brushes: new package required to build GIMP

* vala: new package required to build GIMP

* GIMP: new package definition for building GIMP-2.10 from source

* libjxl: update for 0.7.0

* libwmf: a library for reading vector images in Windows Metafile Format (WMF)

* libde265: an open source implementation of the h.265 video codec

* libwebp: add new versions

* GIMP: additional variants for building GIMP-2.10 from source

* libde265: remove boilerplate

* fixes for style precheck

* updates based on feedback

* fixes for style precheck
This commit is contained in:
Benjamin S. Kirk 2022-12-17 03:52:56 -07:00 committed by GitHub
parent 7ed53cf083
commit cec3da61d2
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
12 changed files with 395 additions and 0 deletions

View File

@ -0,0 +1,36 @@
# Copyright 2013-2022 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
from spack.package import *
class Babl(MesonPackage):
"""babl is pixel encoding and color space conversion engine in C.
It allows converting between different methods of storing pixels
known as pixel formats that have with different bitdepths and
other data representations, color models, color spaces and
component permutations."""
homepage = "https://gegl.org/babl"
url = "https://download.gimp.org/babl/0.1/babl-0.1.98.tar.xz"
maintainers = ["benkirk"]
version("0.1.98", sha256="f3b222f84e462735de63fa9c3651942f2b78fd314c73a22e05ff7c73afd23af1")
version("0.1.96", sha256="33673fe459a983f411245a49f81fd7f1966af1ea8eca9b095a940c542b8545f6")
version("0.1.94", sha256="b6a8b28f55e0c17f5031fb7959e72ffe0fbf8196d1968ad6efc98d1b492c3bbe")
version("0.1.92", sha256="f667735028944b6375ad18f160a64ceb93f5c7dccaa9d8751de359777488a2c1")
version("0.1.90", sha256="6e2ebb636f37581588e3d02499b3d2f69f9ac73e34a262f42911d7f5906a9243")
depends_on("cmake@3.4:", type="build")
depends_on("lcms")
depends_on("gobject-introspection")
def setup_dependent_build_environment(self, env, dependent_spec):
env.prepend_path("XDG_DATA_DIRS", self.prefix.share)
def setup_dependent_run_environment(self, env, dependent_spec):
env.prepend_path("XDG_DATA_DIRS", self.prefix.share)

View File

@ -14,6 +14,9 @@ class Exiv2(CMakePackage):
homepage = "https://www.exiv2.org/"
url = "https://github.com/Exiv2/exiv2/archive/v0.27.2.tar.gz"
version("0.27.5", sha256="1da1721f84809e4d37b3f106adb18b70b1b0441c860746ce6812bb3df184ed6c")
version("0.27.4", sha256="9fb2752c92f63c9853e0bef9768f21138eeac046280f40ded5f37d06a34880d9")
version("0.27.3", sha256="6398bc743c32b85b2cb2a604273b8c90aa4eb0fd7c1700bf66cbb2712b4f00c1")
version("0.27.2", sha256="3dbcaf01fbc5b98d42f091d1ff0d4b6cd9750dc724de3d9c0d113948570b2934")
depends_on("zlib", type="link")

View File

@ -0,0 +1,40 @@
# Copyright 2013-2022 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
from spack.package import *
class Gegl(MesonPackage):
"""GEGL (Generic Graphics Library) is a data flow based image
processing framework, providing floating point processing and
non-destructive image processing capabilities to GNU Image
Manipulation Program and other projects (imgflo, GNOME Photos,
iconographer, ...)"""
homepage = "https://gegl.org/"
url = "https://download.gimp.org/gegl/0.4/gegl-0.4.40.tar.xz"
maintainers = ["benkirk"]
version("0.4.40", sha256="cdde80d15a49dab9a614ef98f804c8ce6e4cfe1339a3c240c34f3fb45436b85d")
version("0.4.38", sha256="e4a33c8430a5042fba8439b595348e71870f0d95fbf885ff553f9020c1bed750")
version("0.4.36", sha256="6fd58a0cdcc7702258adaeffb573a389228ae8f0eff47578efda2309b61b2ca6")
version("0.4.34", sha256="ef63f0bca5b431c6119addd834ca7fbb507c900c4861c57b3667b6f4ccfcaaaa")
version("0.4.32", sha256="668e3c6b9faf75fb00512701c36274ab6f22a8ba05ec62dbf187d34b8d298fa1")
depends_on("pkgconfig", type="build")
depends_on("cmake@3.4:", type="build")
depends_on("babl")
depends_on("glib")
depends_on("gobject-introspection")
depends_on("json-glib")
def setup_dependent_build_environment(self, env, dependent_spec):
env.prepend_path("XDG_DATA_DIRS", self.prefix.share)
env.prepend_path("GI_TYPELIB_PATH", join_path(self.prefix.lib, "girepository-1.0"))
def setup_dependent_run_environment(self, env, dependent_spec):
env.prepend_path("XDG_DATA_DIRS", self.prefix.share)
env.prepend_path("GI_TYPELIB_PATH", join_path(self.prefix.lib, "girepository-1.0"))

View File

@ -0,0 +1,37 @@
# Copyright 2013-2022 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
from spack.package import *
class Gexiv2(MesonPackage):
"""gexiv2 is a GObject wrapper around the Exiv2 photo metadata library.
It allows for GNOME applications to easily inspect and update EXIF, IPTC,
and XMP metadata in photo and video files of various formats."""
homepage = "https://gitlab.gnome.org/GNOME/gexiv2"
url = "https://download.gnome.org/sources/gexiv2/0.12/gexiv2-0.12.3.tar.xz"
maintainers = ["benkirk"]
version("0.12.3", sha256="d23b7972a2fc6f840150bad1ed79c1cbec672951e180c1e1ec33ca6c730c59f3")
version("0.12.2", sha256="2322b552aca330eef79724a699c51a302345d5e074738578b398b7f2ff97944c")
version("0.12.1", sha256="8aeafd59653ea88f6b78cb03780ee9fd61a2f993070c5f0d0976bed93ac2bd77")
version("0.12.0", sha256="58f539b0386f36300b76f3afea3a508de4914b27e78f58ee4d142486a42f926a")
depends_on("pkgconfig", type="build")
depends_on("cmake@3.4:", type="build")
depends_on("ninja@1.8.2:", type="build")
depends_on("exiv2")
depends_on("vala")
depends_on("gobject-introspection")
depends_on("glib")
depends_on("python")
def meson_args(self):
# disable python2
args = ["-Dpython2_girdir=no"]
return args

View File

@ -0,0 +1,104 @@
# Copyright 2013-2022 Lawrence Livermore National Security, LLC and otherargs
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
from spack.package import *
class Gimp(AutotoolsPackage):
"""GIMP is a cross-platform image editor available for GNU/Linux,
macOS, Windows and more operating systems. It is free software,
you can change its source code and distribute your changes.
Whether you are a graphic designer, photographer, illustrator, or
scientist, GIMP provides you with sophisticated tools to get your job
done. You can further enhance your productivity with GIMP thanks to
many customization options and 3rd party plugins."""
homepage = "https://www.gimp.org"
url = "https://download.gimp.org/gimp/v2.10/gimp-2.10.32.tar.bz2"
maintainers = ["benkirk"]
conflicts("platform=darwin", msg="spack/GIMP currently requires Linux")
conflicts("platform=windows", msg="spack/GIMP currently requires Linux")
version("2.10.32", sha256="3f15c70554af5dcc1b46e6dc68f3d8f0a6cc9fe56b6d78ac08c0fd859ab89a25")
version("2.10.30", sha256="88815daa76ed7d4277eeb353358bafa116cd2fcd2c861d95b95135c1d52b67dc")
version("2.10.28", sha256="4f4dc22cff1ab5f026feaa2ab55e05775b3a11e198186b47bdab79cbfa078826")
version("2.10.26", sha256="5ddbccf1db462a41df9a26197fcb0d24c7152753a36b3c8b8a9506b4136395f7")
version("2.10.24", sha256="bd1bb762368c0dd3175cf05006812dd676949c3707e21f4e6857435cb435989e")
variant("doc", default=True, description="Build documentation with gtk-doc")
variant("ghostscript", default=True, description="Build with ghostscript support")
variant("jpegxl", default=True, description="Build with JPEG XL image format support")
# variant(
# "libheif",
# default=False,
# description="Build with the libheif HEIF and AVIF file format decoder and encoder."
# )
variant(
"libmng", default=True, description="Build with Multiple-Image Network Graphics support"
)
variant(
"libwmf",
default=True,
description="Build with libwmf Windows Windows Metafile Format (WMF) support",
)
variant("libxpm", default=True, description="Build with libxpm support")
variant("webp", default=True, description="Build with WebP support")
# variant("python", default=False, description="Build with Python bindings")
# ref. https://www.gimp.org/source/
depends_on("pkgconfig", type="build")
depends_on("babl")
depends_on("fontconfig@2.12.4:")
depends_on("gegl")
depends_on("gexiv2")
depends_on("ghostscript", when="+ghostscript")
depends_on("glib")
depends_on("glib-networking")
depends_on("gtk-doc", when="+doc")
depends_on("gtkplus@2.24.32:2.24.100")
depends_on("intltool")
depends_on("jpeg")
depends_on("libexif")
# depends_on("libheif+libde265", when="+libheif")
depends_on("libjxl", when="+jpegxl")
depends_on("libmng", when="+libmng")
depends_on("libmypaint@1.4")
depends_on("libpng")
depends_on("librsvg")
depends_on("libtiff")
depends_on("libwmf", when="+libwmf")
depends_on("libwebp+libwebpmux+libwebpdemux+libwebpdecoder+gif+jpeg+png+tiff", when="+webp")
depends_on("libxcursor")
depends_on("libxpm", when="+libxpm")
depends_on("mypaint-brushes@1.3")
depends_on("openexr")
depends_on("openjpeg")
# depends_on("python@3.6:", when="+python") # coming in 2.99
depends_on("pango@1.29.4:")
depends_on("poppler+glib")
depends_on("poppler-data@0.4.7:")
depends_on("zlib")
def url_for_version(self, version):
# ref: https://download.gimp.org/gimp/v2.10/gimp-2.10.32.tar.bz2"
url = "https://download.gimp.org/gimp/v{0}/gimp-{1}.tar.bz2"
return url.format(version.up_to(2), version)
def configure_args(self):
args = [
"--disable-python",
"--without-webkit",
"GIO_USE_TLS=gnutls",
"GIO_EXTRA_MODULES={0}/lib/gio/modules".format(self.spec["glib-networking"].prefix),
]
if "+libxpm" in self.spec:
args.append("--with-libxpm={0}".format(self.spec["libxpm"].prefix))
return args
def check(self):
"""All build time checks open windows in the X server, don't do that"""
pass

View File

@ -0,0 +1,22 @@
# Copyright 2013-2022 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
from spack.package import *
class Libde265(CMakePackage):
"""libde265 is an open source implementation of the h.265 video codec.
It is written from scratch and has a plain C API to enable
a simple integration into other software."""
homepage = "https://www.libde265.org"
url = "https://github.com/strukturag/libde265/archive/refs/tags/v1.0.9.tar.gz"
maintainers = ["benkirk"]
version("1.0.9", sha256="153554f407718a75f1e0ae197d35b43147ce282118a54f894554dbe27c32163d")
depends_on("cmake@3.13:", type="build")

View File

@ -14,6 +14,7 @@ class Libjxl(CMakePackage):
git = "https://github.com/libjxl/libjxl.git"
version("main", branch="main", submodules=True)
version("0.7.0", tag="v0.7.0", submodules=True)
version("0.6.1", tag="v0.6.1", submodules=True)
depends_on("cmake@3.10:", type="build")

View File

@ -0,0 +1,50 @@
# Copyright 2013-2022 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
from spack.package import *
class Libmypaint(AutotoolsPackage):
"""libmypaint - MyPaint brush engine library.
This is the brush library used by MyPaint. A number of other painting programs use it too."""
homepage = "https://github.com/mypaint/libmypaint"
url = "https://github.com/mypaint/libmypaint/releases/download/v1.6.1/libmypaint-1.6.1.tar.xz"
maintainers = ["benkirk"]
version("1.6.1", sha256="741754f293f6b7668f941506da07cd7725629a793108bb31633fb6c3eae5315f")
version("1.6.0", sha256="a5ec3624ba469b7b35fd66b6fbee7f07285b7a7813d02291ac9b10e46618140e")
version("1.5.1", sha256="aef8150a0c84ce2ff6fb24de8d5ffc564845d006f8bad7ed84ee32ed1dd90c2b")
version("1.4.0", sha256="59d13b14c6aca0497095f29ee7228ca2499a923ba8e1dd718a2f2ecb45a9cbff")
version("1.3.0", sha256="6a07d9d57fea60f68d218a953ce91b168975a003db24de6ac01ad69dcc94a671")
variant("gegl", default=False, description="Enable GEGL based code in build")
variant("introspection", default=True, description="Enable introspection for this build")
depends_on("json-c")
depends_on("perl@5.8.1:")
depends_on("perl-xml-parser")
depends_on("babl", when="+gegl")
depends_on("gegl", when="+gegl")
depends_on("gobject-introspection", when="+introspection")
depends_on("glib", when="+introspection")
def configure_args(self):
args = []
if "+gegl" in self.spec:
args.extend("--enable-gegl=yes")
if "+introspection" in self.spec:
args.extend(
[
"--enable-introspection=yes",
"--with-glib={0}".format(self.spec["glib"].prefix),
]
)
return args

View File

@ -14,6 +14,8 @@ class Libwebp(AutotoolsPackage):
homepage = "https://developers.google.com/speed/webp/"
url = "https://storage.googleapis.com/downloads.webmproject.org/releases/webp/libwebp-1.0.3.tar.gz"
version("1.2.4", sha256="7bf5a8a28cc69bcfa8cb214f2c3095703c6b73ac5fba4d5480c205331d9494df")
version("1.2.3", sha256="f5d7ab2390b06b8a934a4fc35784291b3885b557780d099bd32f09241f9d83f9")
version("1.2.2", sha256="7656532f837af5f4cec3ff6bafe552c044dc39bf453587bd5b77450802f4aee6")
version("1.2.0", sha256="2fc8bbde9f97f2ab403c0224fb9ca62b2e6852cbc519e91ceaa7c153ffd88a0c")
version("1.0.3", sha256="e20a07865c8697bba00aebccc6f54912d6bc333bb4d604e6b07491c1a226b34f")

View File

@ -0,0 +1,35 @@
# Copyright 2013-2022 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
from spack.package import *
class Libwmf(AutotoolsPackage):
"""libwmf is a library for reading vector images in Microsft's
native Windows Metafile Format (WMF)"""
homepage = "https://github.com/caolanm/libwmf"
url = "https://github.com/caolanm/libwmf/archive/refs/tags/v0.2.12.tar.gz"
maintainers = ["benkirk"]
parallel = False
version("0.2.12", sha256="464ff63605d7eaf61a4a12dbd420f7a41a4d854675d8caf37729f5bc744820e2")
version("0.2.11", sha256="e2a2664afd5abc71a42be7ad3c200f64de2b8889bf088eac1d32e205ce843803")
depends_on("pkgconfig", type="build")
depends_on("expat")
depends_on("freetype")
depends_on("gdk-pixbuf")
depends_on("ghostscript-fonts")
depends_on("libxml2")
depends_on("libpng")
depends_on("libjpeg")
depends_on("zlib")
def configure_args(self):
args = ["--disable-static"]
return args

View File

@ -0,0 +1,18 @@
# Copyright 2013-2022 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
from spack.package import *
class MypaintBrushes(AutotoolsPackage):
"""Brushes used by MyPaint and other software using libmypaint."""
homepage = "https://github.com/mypaint/mypaint-brushes"
url = "https://github.com/mypaint/mypaint-brushes/releases/download/v2.0.2/mypaint-brushes-2.0.2.tar.xz"
maintainers = ["benkirk"]
version("2.0.2", sha256="7984a74edef94571d872d0629b224abaa956a36f632f5c5516b33d22e49eb566")
version("1.3.1", sha256="fef66ffc241b7c5cd29e9c518e933c739618cb51c4ed4d745bf648a1afc3fe70")

View File

@ -0,0 +1,47 @@
# Copyright 2013-2022 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
from spack.package import *
class Vala(AutotoolsPackage):
"""Vala is a programming language that aims to bring modern programming
language features to GNOME developers without imposing any additional
runtime requirements and without using a different ABI compared to
applications and libraries written in C."""
homepage = "https://gitlab.gnome.org/GNOME/vala"
url = "https://download.gnome.org/sources/vala/0.48/vala-0.48.25.tar.xz"
maintainers = ["benkirk"]
version("0.48.25", sha256="50cb3c5eccddc7fd4368bfa96414a556045e79d2b15a68918c727b8c83b18a24")
version("0.48.24", sha256="3649ef84573b6865fc3470640ee603720099eb915b39faad19b7498de1a7df24")
version("0.48.23", sha256="de3cc858d995e07474219e25a3e1f0ed998070d2e206d3a313d4379a5f77a06a")
version("0.48.22", sha256="dbb3478c4be366f093164ac61cd3aedbdcf3e44404d9e36414ae15124e76e68b")
version("0.48.21", sha256="305455aeb768d6ed9b018360b55182e48b16db1bc163a4e5b81420f98d21d998")
version("0.48.20", sha256="46b1c817f74851fbcc395fc4f9ea119502cf87b9333cc9656e1cdccc0bd3376e")
version("0.48.19", sha256="80b7658a37d9844fcd1b431dafc5804de616a58196e4f1f119e5b2aeb68b4a01")
version("0.48.18", sha256="9e0f28f46f081d3bad4f3aab5a2078441752fa677a947433ba3cb99cbd257fdd")
version("0.48.17", sha256="f26b8656aa2958884da26093c6fdec5f3ee6e0a2efda0434080f9a79da268bf2")
version("0.48.16", sha256="4553663bfca3fa8a48c434e3fab18b6dabd429cfdec47ee25b957b6d2e20d390")
version("0.48.15", sha256="5f64283f8e69a48c73256cb93578c7db4c35c0b7df079568a4d5b6065b602a50")
version("0.48.14", sha256="dca57de29f4ce18ee8c6b1e4f1b37ca3843d19dae5c455fceebccc5ae3ffe347")
variant("doc", default=False, description="build valadoc")
depends_on("pkgconfig", type="build")
depends_on("glib@2.48:")
depends_on("flex")
depends_on("bison")
depends_on("graphviz", when="+doc")
def configure_args(self):
args = []
if "+doc" not in self.spec:
args.append("--disable-valadoc")
return args