File xf86-video-nouveau.spec of Package xf86-video-nouveau-1.0.18-62.2

#
# spec file for package xf86-video-nouveau
#
# 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/
#


Name:           xf86-video-nouveau
Version:        1.0.18
Release:        62.2
Summary:        Accelerated Open Source driver for nVidia cards
License:        MIT
Group:          System/X11/Servers/XF86_4
URL:            https://nouveau.freedesktop.org/
Source0:        http://xorg.freedesktop.org/releases/individual/driver/%{name}-%{version}.tar.xz
Patch0:         N_xf86-video-nouveau_nva3-noaccel-info.patch
BuildRequires:  libtool
BuildRequires:  pciutils-devel
BuildRequires:  pkgconfig
BuildRequires:  xorg-x11-sdk
BuildRequires:  pkgconfig(gl)
BuildRequires:  pkgconfig(libdrm) >= 2.4.25
BuildRequires:  pkgconfig(libdrm_nouveau) >= 2.4.25
BuildRequires:  pkgconfig(libudev)
BuildRequires:  pkgconfig(xorg-macros)
Requires:       xorg-x11-server
Provides:       xorg-x11-driver-video-nouveau = %{version}
Obsoletes:      xorg-x11-driver-video-nouveau < %{version}
ExclusiveArch:  %{ix86} x86_64 ppc ppc64 ppc64le %{arm} aarch64
%{x11_abi_videodrv_req}

%description
The nouveau project aims to build high-quality, open source drivers for nVidia
cards. “Nouveau” [nuvo] is the French word for “new”.

%prep
%setup -q
%patch -P 0 -p1 -F 1 -b .nva3info

%build
# We have some -z now related errors during X default startup (boo#1197994):
# this is directly visible on startup, so easy to test later on.
export SUSE_ZNOW=0
# Workaround for boo#1225956
export CFLAGS="%optflags -fpermissive"
autoreconf -fi
%configure
%make_build

%install
%make_install
find %{buildroot} -type f -name "*.la" -delete -print

%files
%dir %{_libdir}/xorg/modules/drivers
%{_libdir}/xorg/modules/drivers/*_drv.so
%{_mandir}/man4/*

%changelog
* Fri Nov  8 2024 Stefan Dirsch <sndirsch@suse.com>
- update to 1.0.18
  * Build xz tarballs instead of bzip2
  * Update Sun license notices to current X.Org standard form
  * gitlab CI: add a basic build test
  * gitlab CI: stop requiring Signed-off-by in commits
  * gitlab CI: ensure libtool is installed in build container
  * nouveau: fixup driver for new X server ABI
  * bump minimal xorg version to 1.18
  * drop check for xorg_list_init()
  * drop compat for ancient server versions
  * drop obsolete check for HAS_DIXREGISTERPRIVATEKEY
  * drop compat with ancient ABI_VIDEODRV_VERSION < 20
  * use XNFalloc() instead of xnfalloc
  * use XNFcallocarray() instead of xnfcalloc macro
  * use dixDestroyPixmap() instead of direct driver call
  * remove sarea.h usage
  * Fix implicit declaration of wfbScreenInit
  * nouveau: Rename functions that has origin from modesetting
  * nouveau: fixup driver for new X server ABI
  * nouveau: Remove consider_disabled from nouveau_pick_best_crtc
  * nouveau: Use randr_crtc_covering_drawable used in modesetting
  * nouveau: use modesetting randr_crtc_covering_drawable implementation
  * nouveau: Implement nouveau_pick_best_crtc using rr_crtc_covering_box
- supersedes U_nouveau-fixup-driver-for-new-X-server-ABI.patch
* Mon Jul  8 2024 Stefan Dirsch <sndirsch@suse.com>
- added "-fpermissive" to optflags to workaround fatal warnings
  with gcc14 (boo#1225956)
* Mon Feb 26 2024 Dominique Leuenberger <dimstar@opensuse.org>
- Use %%patch -P N instead of deprecated %%patchN.
* Sat May 14 2022 Stefan Dirsch <sndirsch@suse.com>
- set SUSE_ZNOW to 0 (boo#1197994)
* Thu Oct 28 2021 Stefan Dirsch <sndirsch@suse.com>
- U_nouveau-fixup-driver-for-new-X-server-ABI.patch
  * fixes build aginst xorg-server 21.1
* Wed Jun  2 2021 Stefan Dirsch <sndirsch@suse.com>
- no longer autoinstall the package depending on PCI ID; we have
  modesetting driver for X since a long time now (boo#1186721)
* Mon Jan 25 2021 Stefan Dirsch <sndirsch@suse.com>
- no longer set CFLAGS, because "%%optflags" is already included in
  %%configure macro
* Sun Jan 24 2021 Dirk Müller <dmueller@suse.com>
- update to 1.0.17:
  * present: fix handling of drmWaitVBlank failures
  * drmmode: make event handler leave a note that there are stuck events
  * present: don't enable if there's no acceleration
  * drmmode: fix screen resize without acceleration
  * make error when failing to allocate surface more descriptive
  * dri2,present: move in pixmap before getting addresses
  * nv4/exa: tiling is unsupported pre-nv10, reduce alignment requirements
  * Don't advertise any PRIME offloading capabilities without acceleration
- spec-cleaner cleanups
* Mon May 25 2020 Callum Farmer <callumjfarmer13@gmail.com>
- Update to version 1.0.16:
  * Many updates since 1.0.15 in 2017
* Thu Oct 18 2018 Michal Suchanek <msuchanek@suse.de>
- Add ppc64le to ExclusiveArch. No need to exclude (poo#39998).
* Sun Apr 23 2017 sndirsch@suse.com
- Update to version 1.0.15:
  * fix null pointer deref when building against >=libdrm 2.4.78
  * Add Pascal family support, identical to Maxwell
  * Do not register hotplug without RandR
* Wed Apr 12 2017 sndirsch@suse.com
- SLE merge
  * latest driver changes for sle12 (fate #315643-315645, 319159-319161, 319618)
  * adding missing fate entry: FATE#316743
* Tue Mar 14 2017 sndirsch@suse.com
- Update to version 1.0.14:
  * exa: add GM10x acceleration support
  * hwdefs: update nvc0_3d, add gm107_texture for new TIC format
  * nvc0: make use of the new hwdefs for TEX_CB_INDEX
  * nvc0: rename BEGIN_IMC0 to IMMED_NVC0
  * nvc0: refactor TIC uploads to allow different specifics per generation
  * copy: add maxwell/pascal copy engine classes
  * recognize and accelerate GM20x
  * Consider CRTCs disabled when DPMS is off
* Wed Nov  2 2016 sndirsch@suse.com
- remove Supplements: xorg-x11-server; we do have conditional
  supplements depending on NVIDIA GPUs since some time (bnc#1007703)
* Fri Sep 23 2016 tobias.johannes.klausmann@mni.thm.de
- Update to version 1.0.13:
  New Nouveau ddx release. Included in this release are fixes for
  reverse prime and the upcoming XServer 1.19.
* Tue Dec 15 2015 sndirsch@suse.com
- Update to version 1.0.12
  * New nouveau DDX release
* Thu Nov 12 2015 sndirsch@suse.com
- fixed "osc service localrun download_files" run
* Wed Nov 11 2015 sndirsch@suse.com
- updated to latest git commit 1ff13a9 of 2015-09-13, which removes
  GLAMOR support among other things, which changed as well
* Sun Feb  8 2015 zaitor@opensuse.org
- Add pkgconfig(libudev) BuildRequires, and stop passing
  - -without-libudev to configure. Build libudev support.
* Mon Jan 26 2015 afaerber@suse.de
- Enable arm and aarch64 builds (for Tegra K1 and later)
* Thu Sep  4 2014 sndirsch@suse.com
- Update to version 1.0.11
  - Support for server managed fd's.
  - Glamor support.
  - Maxwell support.
  - DRI3 and initial Present support.
  - vsync'ed kms pageflip performance fixes when running on Linux 3.13+
  - Multi-display vsync, vblank, swap scheduling, timestamping fixes.
  - Multi x-screen support fixes.
  - ZaphodHead support on for multiple outputs per x-screen.
  - EXA nv-10 fixes.
  - Enable sync of swaps to vblank by default (Option GLXVblank "on").
  - Disable pseudo-triplebuffering by default (Option SwapLimit "1").
- forward ported patch N_xf86-video-nouveau_nva3-noaccel-info.patch
* Fri Aug 29 2014 eich@suse.com
- Don't install .la file.
* Fri Apr 25 2014 tobias.johannes.klausmann@mni.thm.de
- Add missing BuildRequires
* Fri Dec 20 2013 sndirsch@suse.com
- package renamed to xf86-video-nouveau
* Thu Nov  7 2013 tobias.johannes.klausmann@mni.thm.de
- Update to version 1.0.10:
  + recognise GK208 as a Kepler board
  + nouveau: fix build on ppc by wrapping immintrin include.
  + nouveau: add gpu identifier to connector names for secondary gpus
  + nouveau: fix build against older servers.
- Remove upstream patches:
  + U_xf86-video-nouveau-fix-build-on-ppc-by-wrapping-immintrin-inclu.patch
  + U_xf86-video-nouveau-add-gpu-identifier-to-connector-names-for-se.patch
* Mon Sep  9 2013 dvaleev@suse.com
- fix build on ppc
    U_xf86-video-nouveau-fix-build-on-ppc-by-wrapping-immintrin-inclu.patch
    U_xf86-video-nouveau-add-gpu-identifier-to-connector-names-for-se.patch
  upstream commits 1df177f35a05db505577cdc929e63fde906a704b and
  27323ce68d58fcb82a648ab14abbc99acdc36f44
* Tue Jul 30 2013 tobias.johannes.klausmann@mni.thm.de
- Update to version 1.0.9:
  This release adds NVF0 support along with XV speedups,
  and reverse optimus fixes for use with new X server.
* Wed Jun 12 2013 tobias.johannes.klausmann@mni.thm.de
- Update to version 1.0.8:
  + nve0: explicitly ask kernel for copy2 object
  + nvf0: recognise as supported chipset
  + nvc0-nve0: split shader code from their headers
  + nvc0-nve0: decompile shaders into their source, add basic build system
  + nve0: envyas isn't overly clever.. avoid short-form instructions
  + nouveau: attempt to fix zaphod since dri1 code removal
  + nouveau: clean up nv entity index declarations.
  + configure: require xorg-macros 1.8
  + nouveau: stop using dri1 function DRICreatePCIBusID
  + nouveau: Do not load dri {sub,}module
  + dri1: purge the final references
  + nouveau: mandate dri2 build
  + configure: printout the configuration info
  + nouveau_xv: Avoid reading off the end of the source image on NV50+
  + nouveau: enable support for normal optimus configuration
  + fix a xfree from previous patch
  + update makefiles for make distcheck
  + nouveau: Allow 3D accelerators with output ports
* Fri Apr  5 2013 idonmez@suse.com
- Add Source URL, see https://en.opensuse.org/SourceUrls
* Fri Mar 29 2013 sndirsch@suse.com
- Update to version 1.0.7
  + dri2: fix missing frame throttle on copy_region buffer swaps
  + nouveau: add reverse prime support
  + nouveau: create shared pixmaps in GART
  + nouveau: fix regression in PRIME since 58284cf32778d54cde139423450bc33360784503
  + nouveau: align shared buffers to 256
  + nouveau: make prime regression fix more robust.
  + nouveau: fix build on older X servers
  + nouveau: fix build against old servers (part 2)
  + Clean up some errors on closing.
  + nouveau: put cursor BO in GART
  + nv30/exa: fix shaders on big-endian machines
* Sat Mar 16 2013 schwab@linux-m68k.org
- Also build on powerpc
* Mon Jan  7 2013 tobias.johannes.klausmann@mni.thm.de
- Update to version 1.0.6:
  + fixes some misrendering on rendercheck, and edid.
* Fri Nov  9 2012 tobias.johannes.klausmann@mni.thm.de
- Update to version 1.0.4:
  Release to fix Zaphod mode, a rendering regression, and drop some
  old DRI interface usage.
  + nouveau: fix regression in virtualbox drawing hopefully.
  + nouveau: drop DRI1 device open interface.
  + nouveau: drop unused nv private members.
  + nouveau: Remove unneeded xf86GetEntityInfo()
  + nouveau: introduce NVInitScrn()
  + nouveau: Factor out common code to NVHasKMS()
  + nouveau: NVPlatformProbe, handle shareable entities
* Thu Oct 25 2012 tobias.johannes.klausmann@mni.thm.de
- Update to version 1.0.3:
  + Remove mibstore.h
  + shadowfb: fix segfault due to reading outside of shadow buffer
  + nouveau/dri2: fix pixmap/window offset calcs.
  + nvc0/exa: make solid fill actually work
  + remove unused members from nv_type.h
  + exa: fix up download_from/upload_to screen
  + exa: fix comparison in download_from_screen
  + exa: remove exaMarkSync from download/upload screen
  + dri2: Fix potential race and crash for swap at next vblank.
  + exa: use CLAMP_TO_EDGE for RepeatPad
* Wed Sep 12 2012 tobias.johannes.klausmann@mni.thm.de
- Update to version 1.0.2:
  + nv40/exa: fix shaders on big-endian machines
  + nvc0/nve0: support sync-to-vblank if kernel is new enough
  + nouveau: add platform bus support
  + nouveau/exa: add support for shared pixmaps.
  + nouveau: add pixmap tracking/updating support.
  + nouveau/dri2: add support for DRI2 offload
  + nouveau: enable provider/capabilities
* Tue Jul 17 2012 tobias.johannes.klausmann@mni.thm.de
- Remove U_xf86-video-nouveau_dri-debug-spam.patch: is included in version 1.0.1.
* Tue Jul 17 2012 fcrozat@suse.com
- Add U_xf86-video-nouveau_dri-debug-spam.patch: reduce debug spam.
* Mon Jul  2 2012 tobias.johannes.klausmann@mni.thm.de
- Update to version 1.0.1
* Mon Jun  4 2012 sndirsch@suse.com
- removed unnecessary git-core buildrequires
* Thu May 31 2012 coolo@suse.com
- make the hardware supplements conditional on x11-xorg-server
* Tue May 29 2012 sndirsch@suse.com
- back to git commit before rewrite of libdrm
* Mon May 28 2012 sndirsch@suse.com
- nouveau driver 0.0.16_20120523_7041e30
* Tue May 22 2012 crrodriguez@opensuse.org
- Add proper "Supplements" so the package manager picks drivers
  individually according to the user's hardware.
* Tue Feb 14 2012 sndirsch@suse.com
- Update package BuildRequires to use pkgconfig symbols
* Fri Nov 25 2011 coolo@suse.com
- add libtool as buildrequire to avoid implicit dependency
* Tue Sep 13 2011 sndirsch@suse.com
- renamed nouveau-nva3-noaccel-info.patch to
  N_xf86-video-nouveau_nva3-noaccel-info.patch due to new X11:XOrg
  patch name format
* Tue Sep 13 2011 dmacvicar@suse.de
- nouveau driver 0.0.16_20110720_b806e3f
  * nvc0: merge initial acceleration support
  * dri2: allow page flipping to be disabled in xorg.conf
  * nv50: attempt to allocate compressed Z buffers
  * dri2: disable page flipping if any crtc is rotated
  * dri2: return an error rather than crashing if we can't allocate a buffer
  * kms: clear new fb to black on fb resize
  * nvc0: assume 0x9097's presence on all chipsets
  * nvc0: accept 0xdx chipsets
  * kms: fix multiple rotations in noaccel mode
  * g3dvl: update for compatibility with latest pipe-video branch in Mesa
  * nvc0/accel: allow nvc1,nvc3,nvc4 in 3D engine init and use 9097
  * drmmode_display: Resolve missing brackets
  * Update configure.ac with autoupdate
  * Page flipping man page update
  * Fix gcc 4.6.0 set but unused variable warnings
  * exa: Flush (S)IFC to the frontbuffer immediately.
  * Also flush from the BlockHandler.
  * fix drmSetMaster error reporting
- Add patch nouveau-nva3-noaccel-info.patch from git
  (97d0bd96c536349f21f6b6bc1f148f7ba58f2990)
  * Add info to logs as to likely reason why acceleration
    isn't available on NVA3+ chipsets.
* Tue Jan 25 2011 dmueller@suse.de
- disable udev support as it causes screens to blank every 10 seconds
- update to slightly newer git for small bugfixes (no new features)
- remove nouveau-bgnr.patch which is already upstream
* Mon Dec 20 2010 sndirsch@novell.com
- nouveau driver 0.0.16_20101216_1fc564f
  * Update to the last libdrm API.
  * kms: Register a wakeup handler to poll vblank/pageflip/udev events.
  * Make the sync-to-vblank helpers more consistent.
  * nv04-nv40/exa: Make the copy hook blit downwards for non-overlapping regions.
  * dri2: Add sync-to-vblank support.
  * Restructure tiled pixmap allocation in a single place.
  * dri2: Give out buffers ready for scanout.
  * Allocate a tiled scanout on pre-nv50 too.
  * dri2: Add pageflip/exchange support.
  * dri2: Implement the ScheduleWaitMSC/GetMSC hooks.
  * Make the sync-to-vblank helpers take a box as argument.
  * dri2: Report damage on page-flipped drawables.
  * Bump the required X server version to 1.8.
  * dri2: Fix build on X server 1.8.
  * kms: initial pass at supporting zaphod-mode
  * dri2: Fix throttling on occluded drawables.
  * Purge cvs tags.
  * dri2: Don't return failure from schedule_wait if sync-to-vblank is unavailable.
  * dri2: don't return failure from get_msc if sync-to-vblank isn't available
  * dri2: fix certain clients blocking forever when sync-to-vblank unavailable
  * nv50/xv: kick csc parameters out into a constant buffer
  * nv50/xv: implement brightness/contrast/saturation/hue controls
  * set canDoBGNoneRoot if building against new enough server
  * nv50/xv: use mad in nv12 shader, rather than mul+add
* Thu Nov 25 2010 sndirsch@novell.com
- Add background none root for nouveau (see
  xserver-bg-none-root.patch of x11-server package)
* Sat Oct 16 2010 sndirsch@novell.com
- nouveau driver 0.0.16_20101010_8c8f15c
  * noaccel: fix rotation, as well as an assert during server
    shutdown
  * nv50: use 0x8697 on NVAF
  * dri2: Throttle frontbuffer flushes.
  * nv50/exa: Stop using wfb by default, but add an option to
    enable it.
  * Fix for the last xserver ABI.
  * nv10-nv40/exa: Fix tiled pixmap pitch alignment calculation.
* Sun Aug 29 2010 sndirsch@novell.com
- nouveau driver 0.0.16_20100826_065576d
  * Revert "nv04-nv40/exa: Match the blob behavior more closely on
    PrepareCopy."
  * nv10/exa: Bump maxX/maxY to 4096/4096.
  * nvc0: recognise these chipsets, and allow NoAccel mode on them
  * nouveau_exa.c: move line_count logic out of UTS/DFS loop
  * nv50/xv: We have 18 relocs, not 16, adjust MARK_RING.
  * nv50/xv: Fix the uncommon codepath to use width/height variable.
  * nv50/xv: support UYVY
  * kickoff from the flush callback chain
  * dri2: remove explit flush from copy_region()
* Wed Jul  7 2010 sndirsch@suse.de
- nouveau driver 0.0.16_20100615_db98ad2
  * Import latest nouveau_class.h from renouveau
  * Add uevent support
  * Bump version number to 0.0.16
  * wfb: use 28 bits instead of 32 bits for multiply_factor
    optimisation
  * Handle startup without monitor attached more gracefully
  * update nouveau_class.h
  * nv50/exa: new nouveau_class.h has correct blend func defines
  * nv50/exa: rip out compat defines, we depend on 1.7 anyway
  * use libc directly for [cm]alloc/free
  * nv50/accel: fix perspective interps in YUV to RGB shader
  * fix for server 1.9
  * call NVEnterVT from CreateScreenResources
  * dri2: Fix for the last DRI2InfoRec ABI.
* Fri Apr  9 2010 sndirsch@suse.de
- nouveau driver 0.0.15_20100401_bfb95cc
  * kms: Don't try to copy fbcon contents when there's no
    framebuffer bound.
  * Remove leftover in man page and nv_const.h
  * nv50: fix texturing from >=4GiB mark
  * Fix for the latest nouveau_class.h
  * xv: only use bicubic filtering when scaling >=2x
  * Fix "make dist".
* Fri Mar 26 2010 sndirsch@suse.de
- added Supplements to xorg-x11-server
* Sun Feb 28 2010 sndirsch@suse.de
- nouveau driver 0.0.15_20100225_efd7a52
openSUSE Build Service is sponsored by