From 12a5edb63257d16e3037c2e86bd41503c6e43250dffd041a1c895f88097c24ca Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B8rn=20Lie?= Date: Mon, 6 Jan 2025 22:40:26 +0000 Subject: [PATCH] - Update to version 1.1.4: + Fixed: - image-rs: Support `image/qoi` mime-type for QOI in addition to `image/x-qoi`. - libglycin: . Include stdint.h. . Remove dependency on gtk in header and move it to libglycin-gtk4. - Update URL and git url to new upstream home (GNOME core). Following this, run all services, ensure the new url works as expected. OBS-URL: https://build.opensuse.org/package/show/GNOME:Factory/glycin-loaders?expand=0&rev=25 --- .gitattributes | 23 +++ .gitignore | 1 + _service | 23 +++ glycin-loaders-1.0.1.obscpio | 3 + glycin-loaders-1.1.1.obscpio | 3 + glycin-loaders-1.1.2.obscpio | 3 + glycin-loaders-1.1.4.obscpio | 3 + glycin-loaders-libheif-non-default.patch | 11 ++ glycin-loaders.changes | 240 +++++++++++++++++++++++ glycin-loaders.obsinfo | 4 + glycin-loaders.spec | 155 +++++++++++++++ vendor.tar.zst | 3 + 12 files changed, 472 insertions(+) create mode 100644 .gitattributes create mode 100644 .gitignore create mode 100644 _service create mode 100644 glycin-loaders-1.0.1.obscpio create mode 100644 glycin-loaders-1.1.1.obscpio create mode 100644 glycin-loaders-1.1.2.obscpio create mode 100644 glycin-loaders-1.1.4.obscpio create mode 100644 glycin-loaders-libheif-non-default.patch create mode 100644 glycin-loaders.changes create mode 100644 glycin-loaders.obsinfo create mode 100644 glycin-loaders.spec create mode 100644 vendor.tar.zst diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..9b03811 --- /dev/null +++ b/.gitattributes @@ -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 diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..57affb6 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.osc diff --git a/_service b/_service new file mode 100644 index 0000000..ee2ded2 --- /dev/null +++ b/_service @@ -0,0 +1,23 @@ + + + + https://gitlab.gnome.org/GNOME/glycin.git + git + 1.1.4 + @PARENT_TAG@+@TAG_OFFSET@ + v?(.*)\+0 + \1 + glycin-loaders + + + + + *.tar + zst + + + glycin + true + + + diff --git a/glycin-loaders-1.0.1.obscpio b/glycin-loaders-1.0.1.obscpio new file mode 100644 index 0000000..777c7fa --- /dev/null +++ b/glycin-loaders-1.0.1.obscpio @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:83d9f90052f0dfe3814d1711da5d811e3031fbfa293dac6c98e4ccc0ee9114ab +size 10424845 diff --git a/glycin-loaders-1.1.1.obscpio b/glycin-loaders-1.1.1.obscpio new file mode 100644 index 0000000..5bfc734 --- /dev/null +++ b/glycin-loaders-1.1.1.obscpio @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4d8a185438f053831c3b4db629a632d63b8b85280d3c367a5842a93e3b509b70 +size 11085837 diff --git a/glycin-loaders-1.1.2.obscpio b/glycin-loaders-1.1.2.obscpio new file mode 100644 index 0000000..29600ad --- /dev/null +++ b/glycin-loaders-1.1.2.obscpio @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f21cbe7c70f5081af57d9fb2a9110331d756e78cb3954a21a9c26fc3e5e60f2e +size 11112461 diff --git a/glycin-loaders-1.1.4.obscpio b/glycin-loaders-1.1.4.obscpio new file mode 100644 index 0000000..30b5091 --- /dev/null +++ b/glycin-loaders-1.1.4.obscpio @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c6400fa56b4d734f05309b2f55b57e2acdfd848f04a1c54fe19a207de6c62f88 +size 11116045 diff --git a/glycin-loaders-libheif-non-default.patch b/glycin-loaders-libheif-non-default.patch new file mode 100644 index 0000000..81cf9bd --- /dev/null +++ b/glycin-loaders-libheif-non-default.patch @@ -0,0 +1,11 @@ +diff --git a/loaders/glycin-heif/Cargo.toml b/loaders/glycin-heif/Cargo.toml +index 66f5019..4f07738 100644 +--- a/loaders/glycin-heif/Cargo.toml ++++ b/loaders/glycin-heif/Cargo.toml +@@ -11,5 +11,5 @@ rust-version.workspace = true + + [dependencies] + glycin-utils = { workspace = true, features = ["async-io", "loader-utils"] } +-libheif-rs = "1.0.2" ++libheif-rs = { version = "1.0.2", default-features = false } + safe-transmute.workspace = true diff --git a/glycin-loaders.changes b/glycin-loaders.changes new file mode 100644 index 0000000..0437d15 --- /dev/null +++ b/glycin-loaders.changes @@ -0,0 +1,240 @@ +------------------------------------------------------------------- +Sat Jan 4 08:16:56 UTC 2025 - Bjørn Lie + +- Update to version 1.1.4: + + Fixed: + - image-rs: Support `image/qoi` mime-type for QOI in addition + to `image/x-qoi`. + - libglycin: + . Include stdint.h. + . Remove dependency on gtk in header and move it to + libglycin-gtk4. + +------------------------------------------------------------------- +Tue Dec 17 08:46:52 UTC 2024 - Bjørn Lie + +- Update URL and git url to new upstream home (GNOME core). + Following this, run all services, ensure the new url works as + expected. + +------------------------------------------------------------------- +Wed Dec 11 08:45:45 UTC 2024 - Bjørn Lie + +- Update vendor tarball (fixes build for i586). + +------------------------------------------------------------------- +Sat Nov 23 11:17:09 UTC 2024 - Bjørn Lie + +- Update to version 1.1.2: + + Added: Output loader output as debug messages. The loader + output is captured and added to errors. But it's not accessible + if the loader doesn't return. In that case, this feature is useful. + + Fixed: + - Fix jpegxl-rs version to 0.10.3. Version 0.10.4 does not + build on arm64 and builds libjxl instead of using the system + library. + + Fix memory format mapping for RGBA 32bit float image from + image-rs. This fixes rendering for a lot of OpenEXR images. + + glycin-heif: Disable bindgen for libheif-rs since it won't + build with libheif 1.19 or newer otherwise. +- Drop glycin-loaders-libheif-non-default.patch: Upstream fixed the + build issue. + +------------------------------------------------------------------- +Wed Nov 13 10:23:40 UTC 2024 - Dominique Leuenberger + +- Update vendor tarball. +- Add glycin-loaders-libheif-non-default.patch: change setting to + rebuild libheif-rs create as a workaround + (gh#Cykooz/libheif-rs#28). + +------------------------------------------------------------------- +Wed Sep 25 07:28:00 UTC 2024 - Bjørn Lie + +- Temp disable update of vendors, stay with versions specified by + upstream to fix build on aarch64 and ppc64le. Following this, + "downgrade" the vendor tarball. + +------------------------------------------------------------------- +Mon Sep 16 11:08:00 UTC 2024 - Bjørn Lie + +- Update to version 1.1.1: + + Glycin failed to detect the SVGZ format since the files were + just detected as gzip files via the magic bytes. +- Bump maximum version of pkgconfig(libjxl) BuildRequires. + +------------------------------------------------------------------- +Fri Sep 13 15:28:21 UTC 2024 - Bjørn Lie + +- Update to version 1.1.0: + + Fixed: tests: Update to test image which uses an explicit font + name in SVG, not depending on the correct default font setting + on the system for the test to pass. + + Changed: glycin-utils: Don't use regex feature of env-logger to + save almost 1 MB binary size in each loader. +- Changes from version 1.1.beta: + + Add tests for animations + + Automatically detect if glycin is used inside a Flatpak + development environment and disable sandbox in that case. + Otherwise, flatpak-spawn wouldn't use the loaders from the + right Flatpak or might not find a installed Flatpak at all. + + Capture the stderr and stdout from loaders and editors and + included it in the new ErrorCtx type that the API now returns. + + Also include free swap as free memory in the calculation of how + much memory a loader can use. + + If the fontconfig cache was not up-to-date, rendering SVGs with + text would fail. There is now a loader config option to enable + passing a writable fontconfig cache dir into the loader + sandbox. This fixes the issue. The cache is per loader binary. + + Sealing memfds sometimes fails. Is is solved via retrying the + seal until it works. In the past this was limited to very short + time of retries. The interval is now much longer and properly + async. + + There was an error in the hardcoded limit for the texture size. + The limit is now fixed and 8GB as intended. +- Changes from version 1.1.alpha: + + A specific error if no loaders are configured instead of giving + an unknown format error. + + Bindings for C and other languages via GObject Introspection + under the name libglycin and libglycin-gtk4. + + Loaders are now accompanied by editors that can return an image + with image operations applied. + + Option to use tokio throughout instead of async-io. + + glycin: List of mime types `glycin::DEFAULT_MIME_TYPES` that + the default loaders support. + + glycin: New loader option to apply transformations like + rotate/mirror from metadata by default. + + loaders: Use specific OutOfMemory error type. + + glycin: Use a specific error type when no loaders are + configured. + + jxl: Libjxl version 0.10 is now required. + + svg: Use C bindings in SVG loader to reduce binary size. +- Stop exporting rustflags, no longer needed. +- Add pkgconfig(librsvg-2.0), pkgconfig(lcms2), pkgconfig(lcms2), + pkgconfig(gobject-introspection-1.0) and pkgconfig(vapigen) + BuildRequires: New dependencies. +- Add new sub-packages and needed macros and Requires for them: + + libglycin-1-0 + + libglycin-gtk4-1-0 + + typelib-1_0-Gly_1 + + typelib-1_0-GlyGtk4_1 + + glycin-loaders-devel + +------------------------------------------------------------------- +Thu Apr 4 08:02:58 UTC 2024 - Dominique Leuenberger + +- Update to version 1.0.1: + + loaders/utils: Register SIGSYS handler as early as possible for + better debugging for unallowed syscalls. + + sandbox: Allow membarrier, open, stat syscalls. + +------------------------------------------------------------------- +Mon Mar 18 08:06:39 UTC 2024 - Dominique Leuenberger + +- Update to version 1.0.0: + + glycin: Change to stable crate version. + + svg: Change to stable rsvg version. + +------------------------------------------------------------------- +Mon Mar 4 07:58:53 UTC 2024 - Dominique Leuenberger + +- Update to version 1.0.rc: + + glycin: Allow fstat syscall. + + glycin: Treat files detected as XML as SVG if they have .svg + file ending. + + jxl: Allow libjxl 0.10 as well. + +------------------------------------------------------------------- +Fri Feb 23 09:29:38 UTC 2024 - Dominique Leuenberger + +- Update to version 1.0.beta.2: + + api: Rename a few functions. + + api: Use memfds for larger metadata like Exif or ICC profiles. + + glycin/glycin-utils: Drop all uses of anyhow. + + glycin/glycin-utils: Use thiserror to define types. + + glycin: Check image width and height are not zero. + + loaders/image-rs: Disable memory limits since we have our own. + + loaders: Use new error utils tracking code location. + +------------------------------------------------------------------- +Mon Feb 19 17:53:15 UTC 2024 - Dominique Leuenberger + +- Update to version 1.0.beta.1: + + Update to zbus 4.0. + + glycin: Use more fine-tuned memory limits using max 80% + available memory. + +------------------------------------------------------------------- +Mon Feb 12 16:05:17 UTC 2024 - Dominique Leuenberger + +- Update to version 1.0.beta: + + Consitently use Loader instead of Decoder terminology in code. + + glycin: Add seccomp filter based on allow list for bwrap + sandboxes. + + jxl: Support Exif. +- Changes from version 1.0.alpha: + + Replace async-std with other crates + + Use a new D-Bus API version 1+ allowing for backward compatible + extendability. + +------------------------------------------------------------------- +Thu Nov 30 12:58:21 UTC 2023 - Bjørn Lie + +- Run service with new obs-service-cargo, drop cargo_config as + source and clean up spec and. Cargo_audit and cargo_config are + now part of the cargo_vendor tarball/service, but in this case, + since the sourcedir in _service is called glycin, we need to keep + the manual set cargo_audit in _service to clear validation. + +------------------------------------------------------------------- +Tue Nov 14 20:05:44 UTC 2023 - Bjørn Lie + +- Update to version 0.1.2: + + GIF/APNG/WEBP: Assume frame length of 100ms if provided frame + length is zero or invalid. + +------------------------------------------------------------------- +Mon Sep 18 22:31:36 UTC 2023 - Bjørn Lie + +- Update to version 0.1.1: + + Distribute correct Cargo.lock for glycin-loaders tarballs. + +------------------------------------------------------------------- +Fri Sep 15 09:31:16 UTC 2023 - Bjørn Lie + +- Switch to full cargo packaging, add service and setup vendoring. + +------------------------------------------------------------------- +Thu Sep 14 18:31:22 UTC 2023 - Bjørn Lie + +- Update to version 0.1.0: + + Update dependencies. + +------------------------------------------------------------------- +Sun Sep 3 21:28:52 UTC 2023 - Luciano Santos + +- Update to version 0.1.rc: + + No visible changes for the user. + +------------------------------------------------------------------- +Wed Aug 23 18:54:59 UTC 2023 - Bjørn Lie + +- Update to version 0.1.beta.4: + + Relicense under MPL-2.0 OR LGPL-2.1-or-later + + Add symlinks for license files in crates + + Add cairo dependency for svg loader + + HEIC: Fix filetype detection in config + + tests: + - Add HEIC tests + - Add option to skip image formats in tests + - Run required install before tests (can be disabled) +- Add pkgconfig(cairo) BuildRequires, new dependency. +- Pass explicit + loaders=glycin-heif,glycin-image-rs,glycin-jxl,glycin-svg to + meson, ensure we build all the loaders. +- Update License tag following upstreams relicense. + +------------------------------------------------------------------- +Tue Aug 22 14:01:24 UTC 2023 - Dominique Leuenberger + +- Initial package, version 0.1.beta.3. diff --git a/glycin-loaders.obsinfo b/glycin-loaders.obsinfo new file mode 100644 index 0000000..4896bc9 --- /dev/null +++ b/glycin-loaders.obsinfo @@ -0,0 +1,4 @@ +name: glycin-loaders +version: 1.1.4 +mtime: 1735945021 +commit: af015db81a0da146c4e56213baf9d1cc3eaa551e diff --git a/glycin-loaders.spec b/glycin-loaders.spec new file mode 100644 index 0000000..72851a6 --- /dev/null +++ b/glycin-loaders.spec @@ -0,0 +1,155 @@ +# +# spec file for package glycin-loaders +# +# Copyright (c) 2025 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/ +# + + +%bcond_without jxl + +Name: glycin-loaders +Version: 1.1.4 +Release: 0 +Summary: Sandboxed image rendering +License: LGPL-2.1-or-later OR MPL-2.0 +URL: https://gitlab.gnome.org/GNOME/glycin +Source0: %{name}-%{version}.tar.zst +Source1: vendor.tar.zst + +BuildRequires: cargo-packaging +BuildRequires: clang +BuildRequires: git +BuildRequires: meson +BuildRequires: pkgconfig +%if %{with jxl} +BuildRequires: (pkgconfig(libjxl) >= 0.8.2 with pkgconfig(libjxl) < 0.13.0) +%endif +BuildRequires: pkgconfig(cairo) +BuildRequires: pkgconfig(gobject-introspection-1.0) +BuildRequires: pkgconfig(gtk4) >= 4.12.0 +BuildRequires: pkgconfig(lcms2) +BuildRequires: pkgconfig(libheif) >= 1.17.4 +BuildRequires: pkgconfig(librsvg-2.0) +BuildRequires: pkgconfig(libseccomp) >= 2.5.0 +BuildRequires: pkgconfig(libxml-2.0) +BuildRequires: pkgconfig(vapigen) + +%description +Sandboxed and extendable image decoding. + +%package -n libglycin-1-0 +Summary: Shared library for %{name} + +%description -n libglycin-1-0 +Sandboxed and extendable image decoding. + +This package provides the shared library for %{name} + +%package -n libglycin-gtk4-1-0 +Summary: Shared library for %{name} + +%description -n libglycin-gtk4-1-0 +Sandboxed and extendable image decoding. + +This package provides the shared library for %{name} + +%package -n typelib-1_0-Gly_1 +Summary: Introspection bindings for %{name} + +%description -n typelib-1_0-Gly_1 +Sandboxed and extendable image decoding. + +This package provides introspection bindings for %{name} + +%package -n typelib-1_0-GlyGtk4_1 +Summary: Introspection bindings for %{name} + +%description -n typelib-1_0-GlyGtk4_1 +Sandboxed and extendable image decoding. + +This package provides introspection bindings for %{name} + +%package devel +Summary: Development Files for %{name} +Requires: libglycin-1-0 = %{version} +Requires: libglycin-gtk4-1-0 = %{version} +Requires: typelib-1_0-GlyGtk4_1 = %{version} +Requires: typelib-1_0-Gly_1 = %{version} + +%description devel +Sandboxed and extendable image decoding. + +This package provides developments files for %{name} + +%prep +%autosetup -p1 -a1 + +%build +%meson \ + -Dloaders=glycin-heif,glycin-image-rs,glycin-svg%[%{with jxl}?",glycin-jxl":""] \ + %{nil} +%meson_build + +%install +%meson_install + +%ldconfig_scriptlets -n libglycin-1-0 +%ldconfig_scriptlets -n libglycin-gtk4-1-0 + +%files +%dir %{_libexecdir}/glycin-loaders +%dir %{_libexecdir}/glycin-loaders/1+ +%{_libexecdir}/glycin-loaders/1+/glycin-heif +%{_libexecdir}/glycin-loaders/1+/glycin-image-rs +%{_libexecdir}/glycin-loaders/1+/glycin-svg +%dir %{_datadir}/glycin-loaders +%dir %{_datadir}/glycin-loaders/1+ +%dir %{_datadir}/glycin-loaders/1+/conf.d +%{_datadir}/glycin-loaders/1+/conf.d/glycin-heif.conf +%{_datadir}/glycin-loaders/1+/conf.d/glycin-image-rs.conf +%{_datadir}/glycin-loaders/1+/conf.d/glycin-svg.conf +%if %{with jxl} +%{_libexecdir}/glycin-loaders/1+/glycin-jxl +%{_datadir}/glycin-loaders/1+/conf.d/glycin-jxl.conf +%endif + +%files -n libglycin-1-0 +%{_libdir}/libglycin-1.so.0 + +%files -n libglycin-gtk4-1-0 +%{_libdir}/libglycin-gtk4-1.so.0 + +%files -n typelib-1_0-Gly_1 +%{_libdir}/girepository-1.0/Gly-1.typelib + +%files -n typelib-1_0-GlyGtk4_1 +%{_libdir}/girepository-1.0/GlyGtk4-1.typelib + +%files devel +%dir %{_includedir}/glycin-1 +%{_includedir}/glycin-1/glycin.h +%dir %{_includedir}/glycin-gtk4-1 +%{_includedir}/glycin-gtk4-1/glycin-gtk4.h +%{_libdir}/libglycin-1.so +%{_libdir}/libglycin-gtk4-1.so +%{_libdir}/pkgconfig/glycin-1.pc +%{_libdir}/pkgconfig/glycin-gtk4-1.pc +%{_datadir}/gir-1.0/Gly-1.gir +%{_datadir}/gir-1.0/GlyGtk4-1.gir +%{_datadir}/vala/vapi/libglycin-1.deps +%{_datadir}/vala/vapi/libglycin-1.vapi +%{_datadir}/vala/vapi/libglycin-gtk4-1.deps +%{_datadir}/vala/vapi/libglycin-gtk4-1.vapi + +%changelog diff --git a/vendor.tar.zst b/vendor.tar.zst new file mode 100644 index 0000000..7ff191c --- /dev/null +++ b/vendor.tar.zst @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ce3ba8597844034c8bbcd6565128e32284071ae1607f9d6f5d4818848ee4127f +size 24125780