File virglrenderer.spec of Package virglrenderer-1.0.1-45.4

#
# spec file for package virglrenderer
#
# 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/
#


%if 0%{?suse_version} > 1500
%bcond_without vulkan
%else
%bcond_with vulkan
%endif
%define         libname lib%{name}1
Name:           virglrenderer
Version:        1.0.1
Release:        45.4
Summary:        Virgl Rendering library
License:        MIT
Group:          Development/Libraries/C and C++
URL:            https://docs.mesa3d.org/drivers/virgl/
Source0:        https://gitlab.freedesktop.org/virgl/%{name}/-/archive/%{name}-%{version}/%{name}-%{name}-%{version}.tar.gz
BuildRequires:  Mesa-devel
BuildRequires:  meson >= 0.46
BuildRequires:  pkgconfig >= 0.9.0
BuildRequires:  python3-base
BuildRequires:  pkgconfig(epoxy) >= 1.5.4
BuildRequires:  pkgconfig(gbm) >= 18.0.0
BuildRequires:  pkgconfig(libdrm) >= 2.4.50
BuildRequires:  pkgconfig(libva)
%if %{with vulkan}
BuildRequires:  pkgconfig(vulkan)
%endif
BuildRequires:  pkgconfig(x11)

%description
The virgil3d rendering library is a library used by
qemu to implement 3D GPU support for the virtio GPU.

%package -n %{libname}
Summary:        Virgil3D renderer
Group:          System/Libraries

%description -n %{libname}
The virgil3d rendering library is a library used by
qemu to implement 3D GPU support for the virtio GPU.

%package devel
Summary:        Virgil3D renderer development files
Group:          Development/Libraries/C and C++
Requires:       %{libname} = %{version}

%description devel
The virgil3d rendering library is a library used by
qemu to implement 3D GPU support for the virtio GPU.
This package contains the virgil3d renderer development
files.

%package test-server
Summary:        Virgil3D renderer development files
Group:          Development/Libraries/C and C++
Requires:       %{libname} = %{version}

%description test-server
The virgil3d rendering library is a library used by
qemu to implement 3D GPU support for the virtio GPU.
This package contains a server to test virgl rendering
without GL.

%prep
%autosetup -n %{name}-%{name}-%{version} -p1

%build
%meson \
%if %{with vulkan}
    -Dvenus=true \
    -Dvenus-validate=true \
%endif
    -Dvideo=true
%meson_build

%install
%meson_install

%post -n %{libname} -p /sbin/ldconfig
%postun -n %{libname} -p /sbin/ldconfig

%files -n %{libname}
%license COPYING
%{_libdir}/lib*.so.*
%if %{with vulkan}
%{_libexecdir}/virgl_render_server
%endif

%files devel
%dir %{_includedir}/virgl/
%{_includedir}/virgl/*
%{_libdir}/lib*.so
%{_libdir}/pkgconfig/*.pc

%files test-server
%{_bindir}/virgl_test_server

%changelog
* Sun Mar 17 2024 Dirk Müller <dmueller@suse.com>
- update to 1.0.1:
  * Fix 17 bugs, most of them securety related
  * Fix a number of issues uncovered by Coverity
  * Add meson option to enable unstable APIs and add the info
    to pkg-config
  * vtest: Stabilize protocol version 3
* Wed Nov 15 2023 Muhammad Akbar Yanuar Mantari <mantarimay@pm.me>
- Add pkgconfig(libva) BuildRequires: Enable support for hardware
  video acceleration
- Add pkgconfig(vulkan) BuildRequires: Enable support for venus on
  Tumbleweed (build failed on leap)
* Wed Oct 18 2023 Dominique Leuenberger <dimstar@opensuse.org>
- Update to version 1.0.0:
  + Switch to Venus protocol version 1.0.0
  + Drop experimental tag from Venus configuration flag and update
    API.
  + Support passing fences from guest to host for waiting
    and inter-context fence sharing/syncing.
- Drop virglrenderer-CVE-2022-0175.patch and
  virglrenderer-CVE-2022-0135.patch: fixed upstream.
* Wed Feb  2 2022 Michael Vetter <mvetter@suse.com>
- security update
  * Fix OOB in read_transfer_data() (CVE-2022-0135 bsc#1195389)
    Add virglrenderer-CVE-2022-0135.patch
* Fri Jan 21 2022 Dario Faggioli <dfaggioli@suse.com>
- Pick up the full upstream patch for bsc#1194601, so we know from where it comes
  * No functional change intended
* Mon Jan 17 2022 pgajdos@suse.com
- security update
- added patches
  fix CVE-2022-0175 [bsc#1194601], VUL-0: CVE-2022-0175: virglrenderer: Missing initialization of res->ptr
  + virglrenderer-CVE-2022-0175.patch
* Thu Apr 29 2021 Martin Pluskal <mpluskal@suse.com>
- Update to version 0.9.1:
  * Various small bugfixes
* Sun Apr  4 2021 Bruce Rogers <brogers@suse.com>
- Update package to 0.9.0
  Highlights include:
  + multi-client support
  + supports newer glsl version
  + add ETC2 compressed formats
  + performance improvements
  + misc. bug fixes
* Wed Feb 12 2020 Bruce Rogers <brogers@suse.com>
- Update package to 0.8.2
  Release is all bug fixes it seems. It includes these patches in
  the release tarball:
  vrend-Don-t-free-resource-struct-in-_resource_alloca.patch
  vrend-Don-t-try-launching-a-grid-if-no-CS-is-availab.patch
  vrend-Use-the-original-context-to-delete-objects.patch
  vrend-Don-t-switch-to-ctx0-when-deleting-ctx0.patch
* Tue Feb  4 2020 Bruce Rogers <brogers@suse.com>
- Avoid potential DoS in texture allocation (CVE-2020-8003
  boo#1162521)
  vrend-Don-t-free-resource-struct-in-_resource_alloca.patch
- Avoid potential DoS if grid launched without prior Compute Shader
  (CVE-2020-8002 boo#1162519)
  vrend-Don-t-try-launching-a-grid-if-no-CS-is-availab.patch
- Avoid deleting wrong object, in use by others
  vrend-Use-the-original-context-to-delete-objects.patch
- Avoid potential use after free when deleting context
  vrend-Don-t-switch-to-ctx0-when-deleting-ctx0.patch
* Mon Jan  6 2020 Bruce Rogers <brogers@suse.com>
- Update package to 0.8.1
  Requires very recent libepoxy, which is currently only available
  in Factory. Accordingly also switch to meson build, which also
  excludes older releases.
  Other highlights include:
  + support emulating planar image sampling
  + Add all formats to VIRGL_FORMAT that are referenced in Gallium
  + deprecation of the autotools build system
  + miscellaneous bug and performance fixes
  + drop the following patches, which are included in this release:
    0001-5d03711-vrend-Keep-the-max-texture-sizes-in-the-vrend_state.patch
    0002-0d9a2c8-vrend-Check-resource-creation-more-thoroughly.patch
    0003-24f67de-vrend-check-info-formats-in-blits.patch
    0004-cbc8d8b-vrend-check-transfer-bounds-for-negative-values-too-.patch
    0005-2abeb18-vrend-check-that-the-transfer-iov-holds-enough-data-.patch
    0006-164d758-vrend-Add-an-assert-for-allocating-the-intermediate-.patch
* Mon Dec 23 2019 lma@suse.com
- Add 5 security fixes
  * Check resource creation more thoroughly (CVE-2019-18388 bsc#1159479)
  0001-5d03711-vrend-Keep-the-max-texture-sizes-in-the-vrend_state.patch
  0002-0d9a2c8-vrend-Check-resource-creation-more-thoroughly.patch
  * check info formats in blits (CVE-2019-18390 bsc#1159478)
  0003-24f67de-vrend-check-info-formats-in-blits.patch
  * check transfer bounds for negative values too (CVE-2019-18389 bsc#1159482)
  0004-cbc8d8b-vrend-check-transfer-bounds-for-negative-values-too-.patch
  * check transfer iov holds enough data for the data upload (CVE-2019-18391 bsc#1159486)
  0005-2abeb18-vrend-check-that-the-transfer-iov-holds-enough-data-.patch
  * Add an assert for allocating the intermediate texture (CVE-2019-18392 bsc#1159454)
  0006-164d758-vrend-Add-an-assert-for-allocating-the-intermediate-.patch
* Tue Nov 26 2019 Bruce Rogers <brogers@suse.com>
- Update package to 0.8.0
  Note: not switching to meson build system yet since it would
  exclude distos with older meson (seems meson v0.49+ is required)
  Highlights include:
  + guest support for GL 4.3 on hosts with GLES 3.2 + certain
    extensions,
  + major performance improvements, and
  + lots of bug fixes.
- The shared object (SO) version changes from 0 to 1 with this
  package update
* Wed Sep 19 2018 minava@t-online.de
- Update package to 0.7.0
- Brings the renderer up to GL4.3/GLES3.1 capability and most of GLES3.2
- Make EGL optional at configure time
- The following patches will be removed:
  0001-737c3350-renderer-fix-memory-leak-in-vertex-elements-state-cr.patch
  0002-1fdafd62-vrend-Increase-VREND_MAX_CTX-to-64.patch
  They are included in 0.7.0
* Thu Jul 26 2018 vliaskovitis@suse.com
- vrend: Increase VREND_MAX_CTX to 64. (bsc#1102749)
  0002-1fdafd62-vrend-Increase-VREND_MAX_CTX-to-64.patch
* Wed Nov  1 2017 mpluskal@suse.com
- Clean up spec file with spec-cleaner
- Use source url
- Add gpg signature
- Make building more verbose
- Explicitly require python2
* Fri Mar 10 2017 lma@suse.com
- Fix memory leak in vertex elements state create (CVE-2017-6386 bsc#1027376)
  0001-737c3350-renderer-fix-memory-leak-in-vertex-elements-state-cr.patch
* Thu Mar  2 2017 jengelh@inai.de
- Fix RPM groups
* Fri Feb 24 2017 lma@suse.com
- Update package to 0.6.0
  The following patches will be removed:
  0001-48f67f60-renderer-fix-NULL-pointer-deref-in-vrend_clear.patch
  0002-40b0e781-renderer-fix-a-leak-in-resource-attach.patch
  0003-6eb13f7a-vrend-fix-memory-leak-in-int-blit-context.patch
  0004-114688c5-renderer-fix-heap-overflow-in-vertex-elements-state-.patch
  0005-926b9b34-vrend-fix-a-stack-overflow-in-set-framebuffer-state.patch
  All of the removed patches were already included in 0.6.0,
  So we dont need them any more.
* Fri Feb 17 2017 lma@suse.com
- Address various security issues
  * Fix null pointer dereference in vrend_clear (CVE-2017-5937 bsc#1024232)
  0001-48f67f60-renderer-fix-NULL-pointer-deref-in-vrend_clear.patch
  * Fix host memory leak issue in virgl_resource_attach_backing (CVE-2016-10214 bsc#1024244)
  0002-40b0e781-renderer-fix-a-leak-in-resource-attach.patch
  * Fix memory leak in int blit context (CVE-2017-5993 bsc#1025505)
  0003-6eb13f7a-vrend-fix-memory-leak-in-int-blit-context.patch
  * Fix heap overflow in vertex elements state create (CVE-2017-5994 bsc#1025507)
  0004-114688c5-renderer-fix-heap-overflow-in-vertex-elements-state-.patch
  * Fix a stack overflow in set framebuffer state (CVE-2017-5957 bsc#1024993)
  0005-926b9b34-vrend-fix-a-stack-overflow-in-set-framebuffer-state.patch
* Fri Jun  3 2016 brogers@suse.com
- Further tweaks to package layout, including splitting out
  the test server into it's own package.
* Wed Jun  1 2016 brogers@suse.com
- Refine BuildRequires tags
* Thu Apr 14 2016 brogers@suse.com
- Fixed url in spec file
* Wed Apr 13 2016 lma@suse.com
- Fixed epoxy dependency
* Tue Apr 12 2016 lma@suse.com
- Initial package, based upon virglrenderer upstream sources
  (git tag: 0.5.0)
openSUSE Build Service is sponsored by