NOTE! Needs new babl also subbed (sr#710124) - Update to version 2.10.12: + Core: - Add an "Incremental" option to the Dodge/Burn tool, which, similarly to the Paintbrush, Pencil, and Eraser tools, applies the effect incrementally as the pointer moves. - Curves now have a concept of smooth vs corner points: smooth points produce a smooth curve, while corner points produce a sharp curve (previously, all points were smooth). - Search the user font directory path on Windows (since Windows 10, non-admin users have the ability to install fonts). This is only a temporary hack until fontconfig adds proper upstream support. - In gimp_brush_core_get_paint_buffer(), when allocating a new paint buffer, clear the old buffer *before* allocating the new one, to reduce the amount of simultaneously allocated memory. - In GimpPaintbrush, avoid refilling the paint buffer at each dab if the paint color/pixmap hasn't changed, hence allowing faster painting in some specific cases. - Add hygon cpu detection and enable MMX/SSE support. - Add a GimpSymmetry::get_transform() virtual function and a corresponding gimp_symmetry_get_transform() function which return the brush transform corresponding to a given symmetry stroke in terms of the rotation angle and reflection flag (in contrast to gimp_symmetry_get_operation() which returns the same transforation in terms of a GeglNode). This allows us to simplify, fix (artifact bugs, etc.), and improve the painting-code performance for several symmetry painting cases. - New gimp-brush-pipe-spacing parasite set by core code to preserve GIH brush's spacing across reloads. - Add a new Offset filter tool, as a front-end to gimp:offset. The tool replaces, and provides the same interface as the drawable-offset dialog while also providing live preview and on-canvas interaction. + Plug-ins: - Exported profile and data format strategy updated in several file plug-ins. - When not saving a profile, we always export as sRGB data, as most viewers would not display the image properly otherwise. - When saving a profile: . If a profile was manually assigned, we always export to the assigned format, hence pixel data is converted accordingly, whatever the work format. - If no profile was assigned: . If the export format support high-bit depth, we export the work format as-is. . If the export format is 8-bit max, we convert the work format to sRGB, except if the work format is 8-bit linear. + The following plug-ins were updated: JPEG, PNG, TIFF and WebP. + Tools: - Add input/output spin-buttons to the Curves tool, which allow setting the selected point's coordinates numerically. When the image precision is greater than 8-bpc, use a 0.00-100.00 range for the point-coordinate spin-buttons instead of a 0-255 range. - In the Curves tool, allow changing the curve's point types (cf. new curve corner points in Core section). Corner points are displayed with a diamond shape instead of a circle. - Free Select tool now creates a selection as soon as the polygon is closed. This selection is updated when the polygon, or the relevant tool-options, change, similarly to GimpRectangleSelectTool. - Derive GimpEraser from GimpPaintbrush, instead of directly from GimpBrushCore. This allows GimpEraser to reuse the paint-buffer content across dabs, improving performance. - Allow moving an intersecting pair of guides with the Move tool. + User interface: - In GimpCurveView, when dragging an existing curve point, don't immediately move the point to the cursor position upon button press, but rather move it relative to its current position as the cursor moves. This allows selecting a point without moving it, and adjusting its position more easily. - When the cursor hovers above a point in GimpCurveView, or when dragging a point, have the coordinate indicator show the point's position, rather than the cursor's. - In GimpCurveView, when holding down Ctrl while adding/dragging a point, snap the y-coordinate to the original curve (at the start of the drag). This is particularly useful for adding points along the curve. - In GimpDashboard, don't show legend for groups with no meter. - Add a tile-alloc-total variable to the dashboard's memory and misc groups, showing the total amount of memory used by the tile allocator. - Add a "Save Keyboard Shortcuts Now" button to the Configure Keyboard Shortcuts dialog. + Updated translations. OBS-URL: https://build.opensuse.org/request/show/710125 OBS-URL: https://build.opensuse.org/package/show/graphics/gimp?expand=0&rev=38
378 lines
13 KiB
RPMSpec
378 lines
13 KiB
RPMSpec
#
|
|
# spec file for package gimp
|
|
#
|
|
# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany.
|
|
#
|
|
# 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 http://bugs.opensuse.org/
|
|
#
|
|
|
|
|
|
%global abiver 4
|
|
%global apiver 2.0
|
|
Name: gimp
|
|
Version: 2.10.12
|
|
Release: 0
|
|
Summary: The GNU Image Manipulation Program
|
|
License: GPL-3.0-or-later
|
|
Group: Productivity/Graphics/Bitmap Editors
|
|
URL: http://www.gimp.org/
|
|
Source: http://download.gimp.org/pub/gimp/v2.10/%{name}-%{version}.tar.bz2
|
|
Source1: macros.gimp
|
|
# openSUSE palette file
|
|
Source2: openSUSE.gpl
|
|
Source99: baselibs.conf
|
|
|
|
BuildRequires: aalib-devel
|
|
BuildRequires: alsa-devel >= 1.0.0
|
|
BuildRequires: fdupes
|
|
BuildRequires: fontconfig-devel >= 2.12.4
|
|
%if 0%{?suse_version} < 1500
|
|
BuildRequires: gcc7
|
|
BuildRequires: gcc7-c++
|
|
%else
|
|
BuildRequires: gcc-c++
|
|
%endif
|
|
BuildRequires: gdk-pixbuf-loader-rsvg
|
|
# For some odd reason build needs gegl executable.
|
|
BuildRequires: gegl
|
|
BuildRequires: ghostscript-devel
|
|
# Explicitly needed, otherwise ghostscript-mini is used during the
|
|
# build, and it's not enough for gimp.
|
|
BuildRequires: ghostscript-library
|
|
BuildRequires: glib-networking
|
|
BuildRequires: intltool >= 0.40.1
|
|
BuildRequires: iso-codes-devel
|
|
BuildRequires: libbz2-devel
|
|
BuildRequires: libjpeg-devel
|
|
BuildRequires: libmng-devel
|
|
BuildRequires: librsvg-devel >= 2.40.6
|
|
BuildRequires: libtiff-devel
|
|
BuildRequires: libwmf-devel >= 0.2.8
|
|
BuildRequires: libxslt-tools
|
|
BuildRequires: pkgconfig
|
|
BuildRequires: python-gtk-devel >= 2.10.4
|
|
BuildRequires: translation-update-upstream
|
|
BuildRequires: update-desktop-files
|
|
BuildRequires: pkgconfig(atk) >= 2.2.0
|
|
BuildRequires: pkgconfig(babl) >= 0.1.66
|
|
BuildRequires: pkgconfig(cairo) >= 1.12.2
|
|
BuildRequires: pkgconfig(cairo-pdf) >= 1.12.2
|
|
BuildRequires: pkgconfig(dbus-glib-1) >= 0.70
|
|
BuildRequires: pkgconfig(gdk-pixbuf-2.0) >= 2.30.8
|
|
BuildRequires: pkgconfig(gegl-0.4) >= 0.4.14
|
|
BuildRequires: pkgconfig(gexiv2) >= 0.10.6
|
|
BuildRequires: pkgconfig(glib-2.0) >= 2.54.2
|
|
BuildRequires: pkgconfig(gtk+-2.0) >= 2.24.10
|
|
BuildRequires: pkgconfig(gudev-1.0) >= 167
|
|
BuildRequires: pkgconfig(lcms2) >= 2.8
|
|
BuildRequires: pkgconfig(libexif) >= 0.6.15
|
|
# TODO: BuildRequires: pkgconfig(libheif) >= 1.1.0
|
|
BuildRequires: pkgconfig(liblzma) >= 5.0.0
|
|
BuildRequires: pkgconfig(libmypaint) >= 1.3.0
|
|
BuildRequires: pkgconfig(libopenjp2) >= 2.1.0
|
|
BuildRequires: pkgconfig(libpng) >= 1.6.25
|
|
BuildRequires: pkgconfig(libwebp) >= 0.6.0
|
|
BuildRequires: pkgconfig(mypaint-brushes-1.0)
|
|
BuildRequires: pkgconfig(OpenEXR) >= 1.6.1
|
|
BuildRequires: pkgconfig(pango) >= 1.29.4
|
|
BuildRequires: pkgconfig(poppler-data) >= 0.4.7
|
|
BuildRequires: pkgconfig(poppler-glib) >= 0.44.0
|
|
BuildRequires: pkgconfig(xcursor)
|
|
BuildRequires: pkgconfig(xfixes)
|
|
BuildRequires: pkgconfig(xpm)
|
|
BuildRequires: pkgconfig(zlib)
|
|
BuildRequires: xdg-utils
|
|
# obs does not automaticaly add this
|
|
Requires: libglib-2_0-0 >= 2.54.2
|
|
Requires: libgexiv2-2 >= 0.10.6
|
|
Requires: libbabl-0_1-0 >= 0.1.46
|
|
# Explicitly declare the libgimp versions for upgrade purposes
|
|
Requires: libgimp-2_0-0 = %{version}
|
|
Requires: libgimpui-2_0-0 = %{version}
|
|
Requires: xdg-utils
|
|
Recommends: %{name}-lang
|
|
Recommends: %{name}-plugins-python = %{version}
|
|
Recommends: iso-codes
|
|
Suggests: AdobeICCProfiles
|
|
Suggests: gimp-2.0-scanner-plugin
|
|
Obsoletes: %{name}-help-browser
|
|
Provides: gimp-2.0 = %{version}
|
|
Provides: gimp(abi) = %{abiver}
|
|
Provides: gimp(api) = %{apiver}
|
|
|
|
%description
|
|
The GIMP is an image composition and editing program, which can be
|
|
used for creating logos and other graphics for Web pages. The GIMP
|
|
offers many tools and filters, and provides a large image
|
|
manipulation toolbox, including channel operations and layers,
|
|
effects, subpixel imaging and antialiasing, and conversions, together
|
|
with multilevel undo. The GIMP offers a scripting facility, but many
|
|
of the included scripts rely on fonts that we cannot distribute.
|
|
|
|
%package -n libgimp-2_0-0
|
|
Summary: The GNU Image Manipulation Program - Libraries
|
|
Group: System/Libraries
|
|
%requires_ge libbabl-0_1-0
|
|
%requires_ge libgegl-0_4-0
|
|
|
|
%description -n libgimp-2_0-0
|
|
The GIMP is an image composition and editing program. GIMP offers
|
|
many tools and filters, and provides a large image manipulation
|
|
toolbox and scripting.
|
|
|
|
This package provides GIMP libraries.
|
|
|
|
%package -n libgimpui-2_0-0
|
|
Summary: The GNU Image Manipulation Program - UI Libraries
|
|
Group: System/Libraries
|
|
|
|
%description -n libgimpui-2_0-0
|
|
The GIMP is an image composition and editing program. GIMP offers
|
|
many tools and filters, and provides a large image manipulation
|
|
toolbox and scripting.
|
|
|
|
This package provides GIMP UI libraries.
|
|
|
|
%package plugins-python
|
|
Summary: The GNU Image Manipulation Program - python-gtk based plugins
|
|
Group: Productivity/Graphics/Bitmap Editors
|
|
Requires: %{name} = %{version}
|
|
Requires: python-gtk
|
|
Supplements: %{name}
|
|
Provides: gimp-2.0-plugins-python = %{version}
|
|
Obsoletes: gimp-unstable-plugins-python < 2.6.0
|
|
# For update from <= 10.3 and SLED 10:
|
|
Provides: %{name}:%{_libdir}/gimp/2.0/plug-ins/pyconsole.py = %{version}
|
|
|
|
%description plugins-python
|
|
The GIMP is an image composition and editing program. GIMP offers
|
|
many tools and filters, and provides a large image manipulation
|
|
toolbox and scripting.
|
|
|
|
%package plugin-aa
|
|
Summary: The GNU Image Manipulation Program -- ASCII-Art output plugin
|
|
Group: Productivity/Graphics/Bitmap Editors
|
|
Requires: %{name} = %{version}
|
|
# Let's trigger automatic installation if the user already has libaa installed.
|
|
Supplements: packageand(%{name}:libaa1)
|
|
|
|
%description plugin-aa
|
|
The GIMP is an image composition and editing program. GIMP offers
|
|
many tools and filters, and provides a large image manipulation
|
|
toolbox and scripting.
|
|
|
|
%package devel
|
|
Summary: The GNU Image Manipulation Program
|
|
Group: Development/Libraries/Other
|
|
Requires: libgimp-2_0-0 = %{version}
|
|
Requires: libgimpui-2_0-0 = %{version}
|
|
Provides: gimp-2.0-devel = %{version}
|
|
Provides: gimp-doc = 2.6.4
|
|
Obsoletes: gimp-doc < 2.6.4
|
|
Obsoletes: gimp-unstable-devel < 2.6.0
|
|
|
|
%description devel
|
|
The GIMP is an image composition and editing program. GIMP offers
|
|
many tools and filters, and provides a large image manipulation
|
|
toolbox and scripting.
|
|
|
|
This subpackage contains libraries and header files for developing
|
|
applications that want to make use of the GIMP libraries.
|
|
|
|
%lang_package
|
|
|
|
%prep
|
|
%setup -q
|
|
|
|
export LC_ALL=en_US.UTF-8
|
|
export LANG=en_US.UTF-8
|
|
translation-update-upstream
|
|
translation-update-upstream po-libgimp gimp20-libgimp
|
|
translation-update-upstream po-python gimp20-python
|
|
translation-update-upstream po-script-fu gimp20-script-fu
|
|
translation-update-upstream po-plug-ins gimp20-std-plug-ins
|
|
translation-update-upstream po-tips gimp20-tips
|
|
# Safety check for ABI version change.
|
|
vabi=`printf "%d" $(sed -n '/#define GIMP_MODULE_ABI_VERSION/{s/.* //;p}' libgimpmodule/gimpmodule.h)`
|
|
if test "x${vabi}" != "x%{abiver}"; then
|
|
: Error: Upstream ABI version is now ${vabi}, expecting %{abiver}.
|
|
: Update the apiver macro and rebuild.
|
|
exit 1
|
|
fi
|
|
# Safety check for API version change.
|
|
vapi=`sed -n '/#define GIMP_API_VERSION/{s/.* //;p}' libgimpbase/gimpversion.h | sed -e 's@"@@g'`
|
|
if test "x${vapi}" != "x%{apiver}"; then
|
|
: Error: Upstream API version is now ${vapi}, expecting %{apiver}.
|
|
: Update the apiver macro and rebuild.
|
|
exit 1
|
|
fi
|
|
|
|
%build
|
|
%if 0%{?suse_version} < 1500
|
|
test -x "$(type -p %{_bindir}/gcc-7)" && export CC="%{_bindir}/gcc-7"
|
|
test -x "$(type -p %{_bindir}/g++-7)" && export CXX="%{_bindir}/g++-7"
|
|
%endif
|
|
export LC_ALL=en_US.UTF-8
|
|
export LANG=en_US.UTF-8
|
|
export CFLAGS="%{optflags} -fno-strict-aliasing"
|
|
%configure \
|
|
--disable-silent-rules \
|
|
--disable-static\
|
|
%if 0%{?suse_version} >= 1330
|
|
--without-webkit\
|
|
--with-lcms=lcms2\
|
|
%endif
|
|
--libexecdir=%{_prefix}/lib\
|
|
--enable-default-binary\
|
|
--enable-mp
|
|
|
|
make %{?_smp_mflags}
|
|
|
|
%install
|
|
%make_install
|
|
install -D -m 0644 %{SOURCE2} %{buildroot}%{_datadir}/gimp/2.0/palettes
|
|
%suse_update_desktop_file -N GIMP gimp
|
|
rm %{buildroot}%{_libdir}/gimp/2.0/*/*.*a
|
|
%find_lang gimp20 %{?no_lang_C}
|
|
%find_lang gimp20-libgimp %{?no_lang_C} gimp20.lang
|
|
%find_lang gimp20-python %{?no_lang_C} gimp20.lang
|
|
%find_lang gimp20-script-fu %{?no_lang_C} gimp20.lang
|
|
%find_lang gimp20-std-plug-ins %{?no_lang_C} gimp20.lang
|
|
%find_lang gimp20-tips %{?no_lang_C} gimp20.lang
|
|
echo "%%defattr(-,root,root)" >plugins.list
|
|
echo "%%defattr(-,root,root)" >plugins-python.list
|
|
for PLUGIN in %{buildroot}%{_libdir}/gimp/2.0/plug-ins/* ; do
|
|
if grep -q '^#!.*python' $PLUGIN ; then
|
|
echo "${PLUGIN#%{buildroot}}" >>plugins-python.list
|
|
else
|
|
echo "${PLUGIN#%{buildroot}}" >>plugins.list
|
|
fi
|
|
done
|
|
find %{buildroot} -type f -name "*.la" -delete -print
|
|
# Install the macros file:
|
|
install -d %{buildroot}%{_sysconfdir}/rpm
|
|
sed -e "s/@GIMP_APIVER@/%{apiver}/;s/@GIMP_ABIVER@/%{abiver}/" \
|
|
< $RPM_SOURCE_DIR/macros.gimp > macros.gimp
|
|
install -m 644 -c macros.gimp \
|
|
%{buildroot}%{_sysconfdir}/rpm/macros.gimp
|
|
%fdupes %{buildroot}%{_datadir}/gtk-doc/
|
|
%fdupes %{buildroot}%{_libdir}/gimp/2.0/python/
|
|
%fdupes %{buildroot}%{_datadir}/gimp/2.0/
|
|
|
|
%if 0%{?suse_version} < 1500
|
|
%post
|
|
%desktop_database_post
|
|
%icon_theme_cache_post
|
|
%endif
|
|
|
|
%if 0%{?suse_version} < 1500
|
|
%postun
|
|
%desktop_database_postun
|
|
%icon_theme_cache_postun
|
|
%endif
|
|
|
|
%post -n libgimp-2_0-0 -p /sbin/ldconfig
|
|
%postun -n libgimp-2_0-0 -p /sbin/ldconfig
|
|
%post -n libgimpui-2_0-0 -p /sbin/ldconfig
|
|
%postun -n libgimpui-2_0-0 -p /sbin/ldconfig
|
|
|
|
%files -f plugins.list
|
|
%license COPYING LICENSE
|
|
%doc AUTHORS ChangeLog NEWS* README
|
|
%{_bindir}/gimp
|
|
%{_bindir}/gimp-2.*
|
|
%{_bindir}/gimp-console
|
|
%{_bindir}/gimp-console-2.*
|
|
# should this maybe be in _libexecdir too?
|
|
%{_bindir}/gimp-test-clipboard-2.0
|
|
%{_libexecdir}/gimp-debug-tool-2.0
|
|
%dir %{_datadir}/metainfo
|
|
%{_datadir}/metainfo/gimp-data-extras.metainfo.xml
|
|
%{_datadir}/metainfo/org.gimp.GIMP.appdata.xml
|
|
%{_datadir}/applications/gimp.desktop
|
|
%{_datadir}/icons/hicolor/*/apps/*.png
|
|
%{_datadir}/gimp/
|
|
%{_datadir}/gimp/2.0/images/gimp-splash.png
|
|
%{_libdir}/gimp/2.0/environ/default.env
|
|
%{_libdir}/gimp/2.0/interpreters/default.interp
|
|
# Explicitly list modules so we don't lose one by accident
|
|
%{_libdir}/gimp/2.0/modules/libcolor-selector-cmyk.so
|
|
%{_libdir}/gimp/2.0/modules/libcolor-selector-water.so
|
|
%{_libdir}/gimp/2.0/modules/libcolor-selector-wheel.so
|
|
%{_libdir}/gimp/2.0/modules/libcontroller-linux-input.so
|
|
%{_libdir}/gimp/2.0/modules/libcontroller-midi.so
|
|
%{_libdir}/gimp/2.0/modules/libdisplay-filter-color-blind.so
|
|
%{_libdir}/gimp/2.0/modules/libdisplay-filter-gamma.so
|
|
%{_libdir}/gimp/2.0/modules/libdisplay-filter-high-contrast.so
|
|
%{_libdir}/gimp/2.0/modules/libdisplay-filter-clip-warning.so
|
|
%{_mandir}/man?/gimp.*
|
|
%{_mandir}/man?/gimp-2.*
|
|
%{_mandir}/man?/gimp-console.*
|
|
%{_mandir}/man?/gimp-console-2.*
|
|
%{_mandir}/man?/gimprc.*
|
|
%{_mandir}/man?/gimprc-2.*
|
|
%{_mandir}/man?/gimptool-2.*
|
|
%dir %{_sysconfdir}/gimp
|
|
%dir %{_sysconfdir}/gimp/2.0
|
|
%config %{_sysconfdir}/gimp/2.0/*rc
|
|
# split file-aa into own package (bnc#851509
|
|
%exclude %{_libdir}/gimp/2.0/plug-ins/file-aa
|
|
|
|
%files plugin-aa
|
|
%{_libdir}/gimp/2.0/plug-ins/file-aa
|
|
|
|
%files -n libgimp-2_0-0
|
|
%dir %{_datadir}/gimp
|
|
%dir %{_datadir}/gimp/2.0
|
|
%dir %{_libdir}/gimp
|
|
%dir %{_libdir}/gimp/2.0
|
|
%dir %{_libdir}/gimp/2.0/environ
|
|
%dir %{_libdir}/gimp/2.0/interpreters
|
|
%dir %{_libdir}/gimp/2.0/modules
|
|
%dir %{_libdir}/gimp/2.0/plug-ins
|
|
%{_libdir}/libgimp-2.0.so.*
|
|
%{_libdir}/libgimpbase-2.0.so.*
|
|
%{_libdir}/libgimpcolor-2.0.so.*
|
|
%{_libdir}/libgimpconfig-2.0.so.*
|
|
%{_libdir}/libgimpmath-2.0.so.*
|
|
%{_libdir}/libgimpmodule-2.0.so.*
|
|
|
|
%files -n libgimpui-2_0-0
|
|
%{_libdir}/libgimpthumb-2.0.so.*
|
|
%{_libdir}/libgimpui-2.0.so.*
|
|
%{_libdir}/libgimpwidgets-2.0.so.*
|
|
|
|
%files plugins-python -f plugins-python.list
|
|
%{_libdir}/gimp/2.0/environ/pygimp.env
|
|
%{_libdir}/gimp/2.0/interpreters/pygimp.interp
|
|
%{_libdir}/gimp/2.0/python/
|
|
# FIXME: Maybe split gimp-lang and gimp-plugins-python-lang
|
|
|
|
%files lang -f gimp20.lang
|
|
|
|
%files devel
|
|
%doc README.i18n
|
|
%{_bindir}/gimptool-2.0
|
|
#{_mandir}/man?/gimptool-2.0%%{?ext_man}
|
|
%{_includedir}/gimp-2.0/
|
|
%{_libdir}/*.so
|
|
%{_datadir}/aclocal/gimp-2.0.m4
|
|
%{_libdir}/pkgconfig/gimp-2.0.pc
|
|
%{_libdir}/pkgconfig/gimpthumb-2.0.pc
|
|
%{_libdir}/pkgconfig/gimpui-2.0.pc
|
|
# Own these repositories to not depend on gtk-doc while building:
|
|
%dir %{_datadir}/gtk-doc
|
|
%{_datadir}/gtk-doc/html/
|
|
%config %{_sysconfdir}/rpm/macros.gimp
|
|
|
|
%changelog
|