diff options
author | Patrick J Volkerding <volkerdi@slackware.com> | 2022-08-08 23:29:31 +0000 |
---|---|---|
committer | Eric Hameleers <alien@slackware.com> | 2022-08-09 07:00:15 +0200 |
commit | 2d7cee39612aff5630994ad4634733902c6f78db (patch) | |
tree | a2f87b530a6de9398ddedeffa31bff40d19615cf /source | |
parent | 581afe42faa86fbb4014e48913cc5183aee69203 (diff) | |
download | current-2d7cee39612aff5630994ad4634733902c6f78db.tar.gz |
Mon Aug 8 23:29:31 UTC 202220220808232931
Hey folks, here's that graphics stack upgrade that you've been waiting for!
After looking at what drivers are currently shipped by other projects, I took
an axe to the driver list. Some of the removed drivers will still compile even
though they are abandoned, and some of the others are still getting git commits
(which allows *some* of them to compile). The removed stuff mostly looks
obsolete to me (we really can't support ancient hardware forever). But if you
think I've gone too far with any of these removals, please make or contribute
to a thread about it on LQ and I'll take any comments there into consideration.
a/kernel-firmware-20220808_e6857b6-noarch-1.txz: Upgraded.
ap/vim-9.0.0174-x86_64-1.txz: Upgraded.
l/gnu-efi-3.0.15-x86_64-1.txz: Upgraded.
n/libtirpc-1.3.3-x86_64-1.txz: Upgraded.
n/mutt-2.2.7-x86_64-1.txz: Upgraded.
x/egl-wayland-1.1.10-x86_64-1.txz: Upgraded.
x/libdrm-2.4.112-x86_64-1.txz: Upgraded.
x/libglvnd-1.4.0-x86_64-1.txz: Upgraded.
x/mesa-22.1.5-x86_64-1.txz: Upgraded.
Includes Mesa amber 21.3.9 DRI drivers, and mesa-demos-8.5.0.
Thanks to LuckyCyborg for posting some valuable hints on LQ.
x/xcb-proto-1.15.2-x86_64-1.txz: Upgraded.
x/xf86-input-acecad-1.5.0-x86_64-14.txz: Removed.
x/xf86-input-evdev-2.10.6-x86_64-4.txz: Rebuilt.
x/xf86-input-joystick-1.6.3-x86_64-5.txz: Removed.
x/xf86-input-keyboard-1.9.0-x86_64-5.txz: Removed.
x/xf86-input-libinput-1.2.1-x86_64-2.txz: Rebuilt.
x/xf86-input-mouse-1.9.3-x86_64-3.txz: Removed.
x/xf86-input-penmount-1.5.0-x86_64-14.txz: Removed.
x/xf86-input-synaptics-1.9.2-x86_64-1.txz: Upgraded.
x/xf86-input-vmmouse-13.1.0-x86_64-9.txz: Removed.
x/xf86-input-void-1.4.1-x86_64-3.txz: Removed.
x/xf86-input-wacom-1.0.0-x86_64-2.txz: Rebuilt.
x/xf86-video-amdgpu-22.0.0-x86_64-2.txz: Rebuilt.
x/xf86-video-apm-1.3.0-x86_64-3.txz: Removed.
x/xf86-video-ark-0.7.5-x86_64-13.txz: Removed.
x/xf86-video-ast-1.1.5-x86_64-7.txz: Removed.
x/xf86-video-ati-20220730_7a6a34af-x86_64-1.txz: Upgraded.
x/xf86-video-chips-1.4.0-x86_64-3.txz: Removed.
x/xf86-video-cirrus-1.5.3-x86_64-7.txz: Removed.
x/xf86-video-dummy-0.4.0-x86_64-2.txz: Rebuilt.
x/xf86-video-glint-1.2.9-x86_64-5.txz: Removed.
x/xf86-video-i128-1.4.0-x86_64-3.txz: Removed.
x/xf86-video-i740-1.4.0-x86_64-3.txz: Removed.
x/xf86-video-intel-20210115_31486f40-x86_64-1.txz: Upgraded.
x/xf86-video-mach64-6.9.6-x86_64-3.txz: Removed.
x/xf86-video-mga-2.0.0-x86_64-3.txz: Removed.
x/xf86-video-neomagic-1.3.0-x86_64-3.txz: Removed.
x/xf86-video-nouveau-20220125_29cc528-x86_64-1.txz: Upgraded.
x/xf86-video-nv-2.1.21-x86_64-5.txz: Removed.
x/xf86-video-openchrome-0.6.0-x86_64-6.txz: Rebuilt.
x/xf86-video-r128-6.12.0-x86_64-3.txz: Removed.
x/xf86-video-rendition-4.2.7-x86_64-3.txz: Removed.
x/xf86-video-s3-0.7.0-x86_64-3.txz: Removed.
x/xf86-video-s3virge-1.11.0-x86_64-3.txz: Removed.
x/xf86-video-savage-20190128_8579718-x86_64-3.txz: Removed.
x/xf86-video-siliconmotion-1.7.9-x86_64-5.txz: Removed.
x/xf86-video-sis-0.12.0-x86_64-3.txz: Removed.
x/xf86-video-sisusb-0.9.7-x86_64-5.txz: Removed.
x/xf86-video-tdfx-1.5.0-x86_64-3.txz: Removed.
x/xf86-video-tga-1.2.2-x86_64-13.txz: Removed.
x/xf86-video-trident-1.3.8-x86_64-5.txz: Removed.
x/xf86-video-tseng-1.2.5-x86_64-13.txz: Removed.
x/xf86-video-v4l-0.3.0-x86_64-3.txz: Removed.
x/xf86-video-vboxvideo-1.0.0-x86_64-5.txz: Removed.
x/xf86-video-vesa-2.5.0-x86_64-4.txz: Rebuilt.
x/xf86-video-vmware-20220621_ff5637a-x86_64-1.txz: Upgraded.
x/xf86-video-voodoo-1.2.5-x86_64-14.txz: Removed.
x/xorg-server-21.1.4-x86_64-1.txz: Upgraded.
x/xorg-server-xephyr-21.1.4-x86_64-1.txz: Upgraded.
x/xorg-server-xnest-21.1.4-x86_64-1.txz: Upgraded.
x/xorg-server-xvfb-21.1.4-x86_64-1.txz: Upgraded.
x/xorg-server-xwayland-22.1.3-x86_64-1.txz: Upgraded.
x/xorgproto-2022.1-x86_64-1.txz: Upgraded.
xap/geeqie-2.0-x86_64-1.txz: Upgraded.
xap/mozilla-firefox-103.0.2-x86_64-1.txz: Upgraded.
This is a bugfix release.
For more information, see:
https://www.mozilla.org/en-US/firefox/103.0.2/releasenotes/
xap/vim-gvim-9.0.0174-x86_64-1.txz: Upgraded.
extra/xf86-video-fbdev/xf86-video-fbdev-0.5.0-x86_64-2.txz: Rebuilt.
Diffstat (limited to 'source')
74 files changed, 376 insertions, 1047 deletions
diff --git a/source/l/gnu-efi/gnu-efi.url b/source/l/gnu-efi/gnu-efi.url index 6c55abd3..d724cf7e 100644 --- a/source/l/gnu-efi/gnu-efi.url +++ b/source/l/gnu-efi/gnu-efi.url @@ -1 +1 @@ -https://downloads.sourceforge.net/gnu-efi/gnu-efi-3.0.14.tar.bz2 +https://downloads.sourceforge.net/gnu-efi/gnu-efi-3.0.15.tar.bz2 diff --git a/source/x/mesa/patches-revert/72566fd92c27b39abe2057f6f23388ec40793dd9.patch b/source/x/mesa/amber/patches-revert/72566fd92c27b39abe2057f6f23388ec40793dd9.patch index 0200efa3..0200efa3 100644 --- a/source/x/mesa/patches-revert/72566fd92c27b39abe2057f6f23388ec40793dd9.patch +++ b/source/x/mesa/amber/patches-revert/72566fd92c27b39abe2057f6f23388ec40793dd9.patch diff --git a/source/x/mesa/patches-revert/80817b6e344258ac9b955f824ebf9019a0fc1610.patch b/source/x/mesa/amber/patches-revert/80817b6e344258ac9b955f824ebf9019a0fc1610.patch index 13eec39c..13eec39c 100644 --- a/source/x/mesa/patches-revert/80817b6e344258ac9b955f824ebf9019a0fc1610.patch +++ b/source/x/mesa/amber/patches-revert/80817b6e344258ac9b955f824ebf9019a0fc1610.patch diff --git a/source/x/mesa/mesa-amber.build b/source/x/mesa/mesa-amber.build new file mode 100755 index 00000000..01ea2e88 --- /dev/null +++ b/source/x/mesa/mesa-amber.build @@ -0,0 +1,91 @@ +#!/bin/bash +# This script is not meant to be run directly: +if [ -z $AMBERVERS ]; then + exit 1 +fi + + +# Be sure this list is up-to-date: +DRI_DRIVERS="i915,i965,r100,r200,nouveau" + +cd $TMP +rm -rf ${PKGNAM}-${AMBERVERS} + +tar xvf $CWD/amber/${PKGNAM}-${AMBERVERS}.tar.?z || exit 1 +cd ${PKGNAM}-$AMBERVERS || exit 1 + +# Let's kill the warning about operating on a dangling symlink: +rm -f src/gallium/state_trackers/d3d1x/w32api + +# Make sure ownerships and permissions are sane: +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \+ -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \+ + +# Apply patches from git (and maybe elsewhere): +# Patches obtained by: +# git checkout origin/17.2 +# git format-patch 93c2beafc0a7fa2f210b006d22aba61caa71f773 # 17.2.6 release +if /bin/ls $CWD/patches/*.patch 1> /dev/null 2> /dev/null ; then + for patch in $CWD/patches/*.patch ; do + patch -p1 --verbose < $patch || exit 1 ; + done +fi + +# Revert these patches from git (and maybe elsewhere): +if /bin/ls $CWD/patches-revert/*.patch 1> /dev/null 2> /dev/null ; then + for patch in $CWD/patches-revert/*.patch ; do + patch -p1 -R --verbose < $patch || exit 1 ; + done +fi + +# Configure, build, and install: +export CFLAGS="$SLKCFLAGS" +export CXXFLAGS="$SLKCFLAGS" +mkdir meson-build +cd meson-build +meson setup \ + --prefix=/usr \ + --libdir=lib${LIBDIRSUFFIX} \ + --libexecdir=/usr/libexec \ + --bindir=/usr/bin \ + --sbindir=/usr/sbin \ + --includedir=/usr/include \ + --datadir=/usr/share \ + --mandir=/usr/man \ + --sysconfdir=/etc \ + --localstatedir=/var \ + --buildtype=release \ + -Dplatforms=x11,wayland \ + -Damber=true \ + -Ddri-drivers=$DRI_DRIVERS \ + -Dgallium-drivers='' \ + -Dvulkan-drivers='' \ + -Dosmesa=false \ + -Dglvnd=true \ + -Dllvm=enabled \ + -Dshared-llvm=enabled \ + -Dshared-glapi=enabled \ + -Degl=enabled \ + -Dgles1=enabled \ + -Dgles2=enabled \ + -Dopengl=true \ + -Dglx=dri \ + .. || exit 1 + "${NINJA:=ninja}" $NUMJOBS || exit 1 + DESTDIR=$PKG/cruft $NINJA install || exit 1 +cd .. + +# We will install only the DRI drivers: +mkdir -p $PKG/usr/lib${LIBDIRSUFFIX}/dri +rsync -lprvt $PKG/cruft/usr/lib${LIBDIRSUFFIX}/dri/ $PKG/usr/lib${LIBDIRSUFFIX}/dri/ +rm -rf $PKG/cruft + +rm -rf $PKG/usr/doc/$PKGNAM-$AMBERVERS +mkdir -p $PKG/usr/doc/$PKGNAM-amber-$AMBERVERS +cp -a \ + CODEOWNERS* README* docs/README* docs/license* docs/relnotes/${AMBERVERS}.* \ + $PKG/usr/doc/$PKGNAM-amber-$AMBERVERS diff --git a/source/x/mesa/mesa-demos.build b/source/x/mesa/mesa-demos.build new file mode 100755 index 00000000..67f460b3 --- /dev/null +++ b/source/x/mesa/mesa-demos.build @@ -0,0 +1,40 @@ +#!/bin/bash +# This script is not meant to be run directly: +if [ -z $DEMOVERS ]; then + exit 1 +fi + +# Now build/install a small subset of the demos: +export CWD SLKCFLAGS NUMJOBS PKG +( cd $TMP + rm -rf mesa-demos-$DEMOVERS + tar xvf $CWD/mesa-demos-$DEMOVERS.tar.?z* || exit 1 + cd mesa-demos-$DEMOVERS + chown -R root:root . + find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \+ -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \+ + CFLAGS="$SLKCFLAGS" \ + ./configure \ + --enable-autotools \ + --prefix=/usr \ + --build=$ARCH-slackware-linux || exit 1 + make $NUMJOBS || exit 1 + # Install all the demos (including the pointless ones) at first, in a + # temporary location: + make install DESTDIR=$PKG/cruft || exit 1 + # Install gears and glinfo, as well as a few other demos: + mkdir -p $PKG/usr/bin + for demo in eglinfo gears glinfo glthreads glxcontexts glxdemo glxgears \ + glxgears_fbconfig glxheads glxinfo glxpbdemo glxpixmap ; do + mv --verbose $PKG/cruft/usr/bin/$demo $PKG/usr/bin + done + # Remove cruft: + rm -rf $PKG/cruft + # Add the README file(s): + rm -rf $PKG/usr/doc/mesa-demos-$DEMOVERS + mkdir -p $PKG/usr/doc/mesa-demos-$DEMOVERS + cp -a README* $PKG/usr/doc/mesa-demos-$DEMOVERS +) || exit 1 diff --git a/source/x/mesa/mesa.SlackBuild b/source/x/mesa/mesa.SlackBuild index ecb37f0e..9467854f 100755 --- a/source/x/mesa/mesa.SlackBuild +++ b/source/x/mesa/mesa.SlackBuild @@ -1,6 +1,6 @@ #!/bin/bash -# Copyright 2006, 2007, 2008, 2009, 2010, 2011, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021 Patrick J. Volkerding, Sebeka, MN, USA +# Copyright 2006, 2007, 2008, 2009, 2010, 2011, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022 Patrick J. Volkerding, Sebeka, MN, USA # All rights reserved. # # Redistribution and use of this script, with or without modification, is @@ -24,14 +24,15 @@ cd $(dirname $0) ; CWD=$(pwd) PKGNAM=mesa VERSION=${VERSION:-$(echo $PKGNAM-[0-9]*.tar.?z | rev | cut -f 3- -d . | cut -f 1 -d - | rev)} -DEMOVERS=${DEMOVERS:-8.4.0} -BUILD=${BUILD:-3} +AMBERVERS=${DEMOVERS:-21.3.9} +DEMOVERS=${DEMOVERS:-8.5.0} +BUILD=${BUILD:-1} +BUILD_AMBER=${BUILD_AMBER:-YES} BUILD_DEMOS=${BUILD_DEMOS:-YES} NUMJOBS=${NUMJOBS:-" -j$(expr $(nproc) + 1) "} # Be sure this list is up-to-date: -DRI_DRIVERS="i915,i965,r100,r200,nouveau" GALLIUM_DRIVERS="nouveau,r300,r600,svga,radeonsi,swrast,virgl,iris,crocus,zink" if [ -z "$ARCH" ]; then @@ -130,7 +131,6 @@ meson setup \ -Dgallium-opencl=icd \ -Dgallium-nine=true \ -Dosmesa=true \ - -Ddri-drivers=$DRI_DRIVERS \ -Dgallium-drivers=$GALLIUM_DRIVERS \ -Dvulkan-drivers=amd,intel,swrast \ -Dvulkan-layers=device-select,intel-nullhw,overlay \ @@ -160,44 +160,23 @@ fi fi ) +if [ "$BUILD_AMBER" = "YES" ]; then + . $CWD/mesa-amber.build +fi + if [ "$BUILD_DEMOS" = "YES" ]; then - # Now build/install a small subset of the demos: - export CWD SLKCFLAGS NUMJOBS PKG - ( cd $TMP - rm -rf mesa-demos-$DEMOVERS - tar xvf $CWD/mesa-demos-$DEMOVERS.tar.?z* || exit 1 - cd mesa-demos-$DEMOVERS - chown -R root:root . - find . \ - \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ - -exec chmod 755 {} \+ -o \ - \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ - -exec chmod 644 {} \+ - CFLAGS="$SLKCFLAGS" \ - ./configure \ - --prefix=/usr \ - --build=$ARCH-slackware-linux || exit 1 - make $NUMJOBS || exit 1 - # Install all the demos (including the pointless ones) at first, in a - # temporary location: - make install DESTDIR=$PKG/cruft || exit 1 - # Install gears and glinfo, as well as a few other demos: - mkdir -p $PKG/usr/bin - for demo in eglinfo gears glinfo glthreads glxcontexts glxdemo glxgears \ - glxgears_fbconfig glxheads glxinfo glxpbdemo glxpixmap ; do - mv --verbose $PKG/cruft/usr/bin/$demo $PKG/usr/bin - done - # Remove cruft: - rm -rf $PKG/cruft - ) || exit 1 + . $CWD/mesa-demos.build fi # Strip binaries: find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null -find $PKG/usr/man -type f -exec gzip -9 {} \+ -for i in $( find $PKG/usr/man -type l ) ; do ln -s $( readlink $i ).gz $i.gz ; rm $i ; done +# Compress man pages, if any: +if [ -d $PKG/usr/man ]; then + find $PKG/usr/man -type f -exec gzip -9 {} \+ + for i in $( find $PKG/usr/man -type l ) ; do ln -s $( readlink $i ).gz $i.gz ; rm $i ; done +fi # Compress info files, if any: if [ -d $PKG/usr/info ]; then @@ -205,12 +184,10 @@ if [ -d $PKG/usr/info ]; then gzip -9 $PKG/usr/info/* fi -mkdir -p $PKG/usr/doc/$PKGNAM-$VERSION/html +mkdir -p $PKG/usr/doc/$PKGNAM-$VERSION cp -a \ - docs/COPYING* docs/relnotes/${VERSION}.html docs/README* docs/GL* \ + CODEOWNERS* README* docs/README* docs/license* docs/relnotes/${VERSION}.* \ $PKG/usr/doc/$PKGNAM-$VERSION -cp -a docs/*.html $PKG/usr/doc/$PKGNAM-$VERSION/html -rm -f $PKG/usr/doc/$PKGNAM-$VERSION/html/relnotes*.html mkdir -p $PKG/install cat $CWD/slack-desc > $PKG/install/slack-desc @@ -218,4 +195,3 @@ zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh cd $PKG /sbin/makepkg -l y -c n $TMP/${PKGNAM}-$VERSION-$ARCH-$BUILD.txz - diff --git a/source/x/x11/build/xf86-input-acecad b/source/x/x11/build/xf86-input-acecad index 8351c193..60d3b2f4 100644 --- a/source/x/x11/build/xf86-input-acecad +++ b/source/x/x11/build/xf86-input-acecad @@ -1 +1 @@ -14 +15 diff --git a/source/x/x11/build/xf86-input-evdev b/source/x/x11/build/xf86-input-evdev index 00750edc..b8626c4c 100644 --- a/source/x/x11/build/xf86-input-evdev +++ b/source/x/x11/build/xf86-input-evdev @@ -1 +1 @@ -3 +4 diff --git a/source/x/x11/build/xf86-input-joystick b/source/x/x11/build/xf86-input-joystick index 7ed6ff82..1e8b3149 100644 --- a/source/x/x11/build/xf86-input-joystick +++ b/source/x/x11/build/xf86-input-joystick @@ -1 +1 @@ -5 +6 diff --git a/source/x/x11/build/xf86-input-keyboard b/source/x/x11/build/xf86-input-keyboard index 7ed6ff82..d00491fd 100644 --- a/source/x/x11/build/xf86-input-keyboard +++ b/source/x/x11/build/xf86-input-keyboard @@ -1 +1 @@ -5 +1 diff --git a/source/x/x11/build/xf86-input-libinput b/source/x/x11/build/xf86-input-libinput index d00491fd..0cfbf088 100644 --- a/source/x/x11/build/xf86-input-libinput +++ b/source/x/x11/build/xf86-input-libinput @@ -1 +1 @@ -1 +2 diff --git a/source/x/x11/build/xf86-input-mouse b/source/x/x11/build/xf86-input-mouse index 00750edc..b8626c4c 100644 --- a/source/x/x11/build/xf86-input-mouse +++ b/source/x/x11/build/xf86-input-mouse @@ -1 +1 @@ -3 +4 diff --git a/source/x/x11/build/xf86-input-penmount b/source/x/x11/build/xf86-input-penmount index 8351c193..60d3b2f4 100644 --- a/source/x/x11/build/xf86-input-penmount +++ b/source/x/x11/build/xf86-input-penmount @@ -1 +1 @@ -14 +15 diff --git a/source/x/x11/build/xf86-input-synaptics b/source/x/x11/build/xf86-input-synaptics index 00750edc..d00491fd 100644 --- a/source/x/x11/build/xf86-input-synaptics +++ b/source/x/x11/build/xf86-input-synaptics @@ -1 +1 @@ -3 +1 diff --git a/source/x/x11/build/xf86-input-vmmouse b/source/x/x11/build/xf86-input-vmmouse index ec635144..f599e28b 100644 --- a/source/x/x11/build/xf86-input-vmmouse +++ b/source/x/x11/build/xf86-input-vmmouse @@ -1 +1 @@ -9 +10 diff --git a/source/x/x11/build/xf86-input-void b/source/x/x11/build/xf86-input-void index 00750edc..b8626c4c 100644 --- a/source/x/x11/build/xf86-input-void +++ b/source/x/x11/build/xf86-input-void @@ -1 +1 @@ -3 +4 diff --git a/source/x/x11/build/xf86-input-wacom b/source/x/x11/build/xf86-input-wacom index d00491fd..0cfbf088 100644 --- a/source/x/x11/build/xf86-input-wacom +++ b/source/x/x11/build/xf86-input-wacom @@ -1 +1 @@ -1 +2 diff --git a/source/x/x11/build/xf86-video-amdgpu b/source/x/x11/build/xf86-video-amdgpu index d00491fd..0cfbf088 100644 --- a/source/x/x11/build/xf86-video-amdgpu +++ b/source/x/x11/build/xf86-video-amdgpu @@ -1 +1 @@ -1 +2 diff --git a/source/x/x11/build/xf86-video-apm b/source/x/x11/build/xf86-video-apm index 00750edc..b8626c4c 100644 --- a/source/x/x11/build/xf86-video-apm +++ b/source/x/x11/build/xf86-video-apm @@ -1 +1 @@ -3 +4 diff --git a/source/x/x11/build/xf86-video-ark b/source/x/x11/build/xf86-video-ark index b1bd38b6..8351c193 100644 --- a/source/x/x11/build/xf86-video-ark +++ b/source/x/x11/build/xf86-video-ark @@ -1 +1 @@ -13 +14 diff --git a/source/x/x11/build/xf86-video-ast b/source/x/x11/build/xf86-video-ast index 7f8f011e..45a4fb75 100644 --- a/source/x/x11/build/xf86-video-ast +++ b/source/x/x11/build/xf86-video-ast @@ -1 +1 @@ -7 +8 diff --git a/source/x/x11/build/xf86-video-ati b/source/x/x11/build/xf86-video-ati index 00750edc..d00491fd 100644 --- a/source/x/x11/build/xf86-video-ati +++ b/source/x/x11/build/xf86-video-ati @@ -1 +1 @@ -3 +1 diff --git a/source/x/x11/build/xf86-video-chips b/source/x/x11/build/xf86-video-chips index 00750edc..b8626c4c 100644 --- a/source/x/x11/build/xf86-video-chips +++ b/source/x/x11/build/xf86-video-chips @@ -1 +1 @@ -3 +4 diff --git a/source/x/x11/build/xf86-video-cirrus b/source/x/x11/build/xf86-video-cirrus index 7f8f011e..d00491fd 100644 --- a/source/x/x11/build/xf86-video-cirrus +++ b/source/x/x11/build/xf86-video-cirrus @@ -1 +1 @@ -7 +1 diff --git a/source/x/x11/build/xf86-video-dummy b/source/x/x11/build/xf86-video-dummy index d00491fd..0cfbf088 100644 --- a/source/x/x11/build/xf86-video-dummy +++ b/source/x/x11/build/xf86-video-dummy @@ -1 +1 @@ -1 +2 diff --git a/source/x/x11/build/xf86-video-geode b/source/x/x11/build/xf86-video-geode index 00750edc..b8626c4c 100644 --- a/source/x/x11/build/xf86-video-geode +++ b/source/x/x11/build/xf86-video-geode @@ -1 +1 @@ -3 +4 diff --git a/source/x/x11/build/xf86-video-glint b/source/x/x11/build/xf86-video-glint index 7ed6ff82..d00491fd 100644 --- a/source/x/x11/build/xf86-video-glint +++ b/source/x/x11/build/xf86-video-glint @@ -1 +1 @@ -5 +1 diff --git a/source/x/x11/build/xf86-video-i128 b/source/x/x11/build/xf86-video-i128 index 00750edc..b8626c4c 100644 --- a/source/x/x11/build/xf86-video-i128 +++ b/source/x/x11/build/xf86-video-i128 @@ -1 +1 @@ -3 +4 diff --git a/source/x/x11/build/xf86-video-i740 b/source/x/x11/build/xf86-video-i740 index 00750edc..b8626c4c 100644 --- a/source/x/x11/build/xf86-video-i740 +++ b/source/x/x11/build/xf86-video-i740 @@ -1 +1 @@ -3 +4 diff --git a/source/x/x11/build/xf86-video-intel b/source/x/x11/build/xf86-video-intel index 00750edc..d00491fd 100644 --- a/source/x/x11/build/xf86-video-intel +++ b/source/x/x11/build/xf86-video-intel @@ -1 +1 @@ -3 +1 diff --git a/source/x/x11/build/xf86-video-mach64 b/source/x/x11/build/xf86-video-mach64 index 00750edc..d00491fd 100644 --- a/source/x/x11/build/xf86-video-mach64 +++ b/source/x/x11/build/xf86-video-mach64 @@ -1 +1 @@ -3 +1 diff --git a/source/x/x11/build/xf86-video-mga b/source/x/x11/build/xf86-video-mga index 00750edc..d00491fd 100644 --- a/source/x/x11/build/xf86-video-mga +++ b/source/x/x11/build/xf86-video-mga @@ -1 +1 @@ -3 +1 diff --git a/source/x/x11/build/xf86-video-neomagic b/source/x/x11/build/xf86-video-neomagic index 00750edc..b8626c4c 100644 --- a/source/x/x11/build/xf86-video-neomagic +++ b/source/x/x11/build/xf86-video-neomagic @@ -1 +1 @@ -3 +4 diff --git a/source/x/x11/build/xf86-video-nouveau b/source/x/x11/build/xf86-video-nouveau index 0cfbf088..d00491fd 100644 --- a/source/x/x11/build/xf86-video-nouveau +++ b/source/x/x11/build/xf86-video-nouveau @@ -1 +1 @@ -2 +1 diff --git a/source/x/x11/build/xf86-video-nv b/source/x/x11/build/xf86-video-nv index 7ed6ff82..d00491fd 100644 --- a/source/x/x11/build/xf86-video-nv +++ b/source/x/x11/build/xf86-video-nv @@ -1 +1 @@ -5 +1 diff --git a/source/x/x11/build/xf86-video-omap b/source/x/x11/build/xf86-video-omap index 7f8f011e..45a4fb75 100644 --- a/source/x/x11/build/xf86-video-omap +++ b/source/x/x11/build/xf86-video-omap @@ -1 +1 @@ -7 +8 diff --git a/source/x/x11/build/xf86-video-openchrome b/source/x/x11/build/xf86-video-openchrome index 7ed6ff82..1e8b3149 100644 --- a/source/x/x11/build/xf86-video-openchrome +++ b/source/x/x11/build/xf86-video-openchrome @@ -1 +1 @@ -5 +6 diff --git a/source/x/x11/build/xf86-video-r128 b/source/x/x11/build/xf86-video-r128 index 00750edc..b8626c4c 100644 --- a/source/x/x11/build/xf86-video-r128 +++ b/source/x/x11/build/xf86-video-r128 @@ -1 +1 @@ -3 +4 diff --git a/source/x/x11/build/xf86-video-rendition b/source/x/x11/build/xf86-video-rendition index 00750edc..b8626c4c 100644 --- a/source/x/x11/build/xf86-video-rendition +++ b/source/x/x11/build/xf86-video-rendition @@ -1 +1 @@ -3 +4 diff --git a/source/x/x11/build/xf86-video-s3 b/source/x/x11/build/xf86-video-s3 index 00750edc..d00491fd 100644 --- a/source/x/x11/build/xf86-video-s3 +++ b/source/x/x11/build/xf86-video-s3 @@ -1 +1 @@ -3 +1 diff --git a/source/x/x11/build/xf86-video-s3virge b/source/x/x11/build/xf86-video-s3virge index 00750edc..b8626c4c 100644 --- a/source/x/x11/build/xf86-video-s3virge +++ b/source/x/x11/build/xf86-video-s3virge @@ -1 +1 @@ -3 +4 diff --git a/source/x/x11/build/xf86-video-savage b/source/x/x11/build/xf86-video-savage index 00750edc..b8626c4c 100644 --- a/source/x/x11/build/xf86-video-savage +++ b/source/x/x11/build/xf86-video-savage @@ -1 +1 @@ -3 +4 diff --git a/source/x/x11/build/xf86-video-siliconmotion b/source/x/x11/build/xf86-video-siliconmotion index 7ed6ff82..1e8b3149 100644 --- a/source/x/x11/build/xf86-video-siliconmotion +++ b/source/x/x11/build/xf86-video-siliconmotion @@ -1 +1 @@ -5 +6 diff --git a/source/x/x11/build/xf86-video-sis b/source/x/x11/build/xf86-video-sis index 00750edc..b8626c4c 100644 --- a/source/x/x11/build/xf86-video-sis +++ b/source/x/x11/build/xf86-video-sis @@ -1 +1 @@ -3 +4 diff --git a/source/x/x11/build/xf86-video-sisusb b/source/x/x11/build/xf86-video-sisusb index 7ed6ff82..1e8b3149 100644 --- a/source/x/x11/build/xf86-video-sisusb +++ b/source/x/x11/build/xf86-video-sisusb @@ -1 +1 @@ -5 +6 diff --git a/source/x/x11/build/xf86-video-tdfx b/source/x/x11/build/xf86-video-tdfx index 00750edc..b8626c4c 100644 --- a/source/x/x11/build/xf86-video-tdfx +++ b/source/x/x11/build/xf86-video-tdfx @@ -1 +1 @@ -3 +4 diff --git a/source/x/x11/build/xf86-video-tga b/source/x/x11/build/xf86-video-tga index b1bd38b6..8351c193 100644 --- a/source/x/x11/build/xf86-video-tga +++ b/source/x/x11/build/xf86-video-tga @@ -1 +1 @@ -13 +14 diff --git a/source/x/x11/build/xf86-video-trident b/source/x/x11/build/xf86-video-trident index 7ed6ff82..1e8b3149 100644 --- a/source/x/x11/build/xf86-video-trident +++ b/source/x/x11/build/xf86-video-trident @@ -1 +1 @@ -5 +6 diff --git a/source/x/x11/build/xf86-video-tseng b/source/x/x11/build/xf86-video-tseng index b1bd38b6..8351c193 100644 --- a/source/x/x11/build/xf86-video-tseng +++ b/source/x/x11/build/xf86-video-tseng @@ -1 +1 @@ -13 +14 diff --git a/source/x/x11/build/xf86-video-v4l b/source/x/x11/build/xf86-video-v4l index 00750edc..b8626c4c 100644 --- a/source/x/x11/build/xf86-video-v4l +++ b/source/x/x11/build/xf86-video-v4l @@ -1 +1 @@ -3 +4 diff --git a/source/x/x11/build/xf86-video-vboxvideo b/source/x/x11/build/xf86-video-vboxvideo index 7ed6ff82..1e8b3149 100644 --- a/source/x/x11/build/xf86-video-vboxvideo +++ b/source/x/x11/build/xf86-video-vboxvideo @@ -1 +1 @@ -5 +6 diff --git a/source/x/x11/build/xf86-video-vesa b/source/x/x11/build/xf86-video-vesa index 00750edc..b8626c4c 100644 --- a/source/x/x11/build/xf86-video-vesa +++ b/source/x/x11/build/xf86-video-vesa @@ -1 +1 @@ -3 +4 diff --git a/source/x/x11/build/xf86-video-vmware b/source/x/x11/build/xf86-video-vmware index 1e8b3149..d00491fd 100644 --- a/source/x/x11/build/xf86-video-vmware +++ b/source/x/x11/build/xf86-video-vmware @@ -1 +1 @@ -6 +1 diff --git a/source/x/x11/build/xf86-video-voodoo b/source/x/x11/build/xf86-video-voodoo index 8351c193..60d3b2f4 100644 --- a/source/x/x11/build/xf86-video-voodoo +++ b/source/x/x11/build/xf86-video-voodoo @@ -1 +1 @@ -14 +15 diff --git a/source/x/x11/build/xorg-server b/source/x/x11/build/xorg-server index b8626c4c..d00491fd 100644 --- a/source/x/x11/build/xorg-server +++ b/source/x/x11/build/xorg-server @@ -1 +1 @@ -4 +1 diff --git a/source/x/x11/configure/xf86-video-ati b/source/x/x11/configure/xf86-video-ati new file mode 100644 index 00000000..291eb9b9 --- /dev/null +++ b/source/x/x11/configure/xf86-video-ati @@ -0,0 +1,13 @@ +CFLAGS=$SLKCFLAGS \ +CXXFLAGS=$SLKCFLAGS \ +./autogen.sh \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --sysconfdir=/etc \ + --localstatedir=/var \ + --infodir=/usr/info \ + --mandir=/usr/man \ + --docdir=/usr/doc/${PKGNAME}-${MODULAR_PACKAGE_VERSION} \ + --with-udev-rules-dir=/lib/udev/rules.d \ + --disable-static \ + --build=$ARCH-slackware-linux diff --git a/source/x/x11/configure/xf86-video-glint b/source/x/x11/configure/xf86-video-glint new file mode 100644 index 00000000..291eb9b9 --- /dev/null +++ b/source/x/x11/configure/xf86-video-glint @@ -0,0 +1,13 @@ +CFLAGS=$SLKCFLAGS \ +CXXFLAGS=$SLKCFLAGS \ +./autogen.sh \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --sysconfdir=/etc \ + --localstatedir=/var \ + --infodir=/usr/info \ + --mandir=/usr/man \ + --docdir=/usr/doc/${PKGNAME}-${MODULAR_PACKAGE_VERSION} \ + --with-udev-rules-dir=/lib/udev/rules.d \ + --disable-static \ + --build=$ARCH-slackware-linux diff --git a/source/x/x11/configure/xf86-video-nouveau b/source/x/x11/configure/xf86-video-nouveau index 0f3bccf2..7352247c 100644 --- a/source/x/x11/configure/xf86-video-nouveau +++ b/source/x/x11/configure/xf86-video-nouveau @@ -1,6 +1,6 @@ CFLAGS=$SLKCFLAGS \ CXXFLAGS=$SLKCFLAGS \ -./configure \ +./autogen.sh \ --prefix=/usr \ --libdir=/usr/lib${LIBDIRSUFFIX} \ --sysconfdir=/etc \ diff --git a/source/x/x11/configure/xf86-video-s3 b/source/x/x11/configure/xf86-video-s3 new file mode 100644 index 00000000..291eb9b9 --- /dev/null +++ b/source/x/x11/configure/xf86-video-s3 @@ -0,0 +1,13 @@ +CFLAGS=$SLKCFLAGS \ +CXXFLAGS=$SLKCFLAGS \ +./autogen.sh \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --sysconfdir=/etc \ + --localstatedir=/var \ + --infodir=/usr/info \ + --mandir=/usr/man \ + --docdir=/usr/doc/${PKGNAME}-${MODULAR_PACKAGE_VERSION} \ + --with-udev-rules-dir=/lib/udev/rules.d \ + --disable-static \ + --build=$ARCH-slackware-linux diff --git a/source/x/x11/configure/xf86-video-vmware b/source/x/x11/configure/xf86-video-vmware new file mode 100644 index 00000000..291eb9b9 --- /dev/null +++ b/source/x/x11/configure/xf86-video-vmware @@ -0,0 +1,13 @@ +CFLAGS=$SLKCFLAGS \ +CXXFLAGS=$SLKCFLAGS \ +./autogen.sh \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --sysconfdir=/etc \ + --localstatedir=/var \ + --infodir=/usr/info \ + --mandir=/usr/man \ + --docdir=/usr/doc/${PKGNAME}-${MODULAR_PACKAGE_VERSION} \ + --with-udev-rules-dir=/lib/udev/rules.d \ + --disable-static \ + --build=$ARCH-slackware-linux diff --git a/source/x/x11/package-blacklist b/source/x/x11/package-blacklist index 8e2f3eb5..8cf7aedc 100644 --- a/source/x/x11/package-blacklist +++ b/source/x/x11/package-blacklist @@ -6,38 +6,49 @@ # They also say in the README for this one that it is not yet ready: xf86-video-omap -# MacOS related packages: -applewmproto -windowswmproto -libAppleWM -libWindowsWM - -# Sun video cards: -xf86-video-sunbw2 -xf86-video-suncg14 -xf86-video-suncg3 -xf86-video-suncg6 -xf86-video-sunffb -xf86-video-sunleo -xf86-video-suntcx - # Obsolete packages: -liboldX -xf86-video-amd -xf86-video-via -xkbdata -xphelloworld -xrx - -# Not applicable to us -grandr -constype +xf86-input-acecad +xf86-input-aiptek +xf86-input-joystick +xf86-input-keyboard +xf86-input-mouse +xf86-input-penmount +xf86-input-vmmouse +xf86-input-void +xf86-video-apm +xf86-video-ark +xf86-video-ast +xf86-video-chips +xf86-video-cirrus +xf86-video-geode +xf86-video-glint +xf86-video-i128 +xf86-video-i740 +xf86-video-mach64 +xf86-video-mga +xf86-video-neomagic +xf86-video-nv +xf86-video-omap +xf86-video-qxl +xf86-video-r128 +xf86-video-rendition +xf86-video-s3 +xf86-video-s3virge +xf86-video-savage +xf86-video-siliconmotion +xf86-video-sis +xf86-video-sisusb +xf86-video-tdfx +xf86-video-tga +xf86-video-trident +xf86-video-tseng +xf86-video-v4l +xf86-video-vboxvideo +xf86-video-voodoo +xf86-video-xgi +xf86-video-xgixp # CAREFUL NOT TO "SHIP" THE STUFF BELOW IN THE MAIN X PACKAGES DIR! -# This is probably obsolete, and kills "X -configure" too -xf86-video-nsc - # We don't want this one, as it causes failure of X with no xorg.conf xf86-video-fbdev - diff --git a/source/x/x11/patch/xf86-video-vmware.patch b/source/x/x11/patch/xf86-video-vmware.patch deleted file mode 100644 index b7be82d9..00000000 --- a/source/x/x11/patch/xf86-video-vmware.patch +++ /dev/null @@ -1,2 +0,0 @@ -# Fix build with recent libdrm: -zcat $CWD/patch/xf86-video-vmware/50ab008cb965dc9e47e0a84a1950e2485bbd3c44.patch.gz | patch -p1 --verbose || { touch ${SLACK_X_BUILD_DIR}/${PKGNAME}.failed ; continue ; } diff --git a/source/x/x11/patch/xf86-video-vmware/50ab008cb965dc9e47e0a84a1950e2485bbd3c44.patch b/source/x/x11/patch/xf86-video-vmware/50ab008cb965dc9e47e0a84a1950e2485bbd3c44.patch deleted file mode 100644 index 35142b5b..00000000 --- a/source/x/x11/patch/xf86-video-vmware/50ab008cb965dc9e47e0a84a1950e2485bbd3c44.patch +++ /dev/null @@ -1,60 +0,0 @@ -From 50ab008cb965dc9e47e0a84a1950e2485bbd3c44 Mon Sep 17 00:00:00 2001 -From: Martin Krastev <krastevm@vmware.com> -Date: Tue, 30 Nov 2021 11:47:39 -0800 -Subject: vmwgfx: Change header inclusion order to avoid xorg headers catching - stdbool.h - -libdrm commit e641e2a632d779f638ac2ba983b9fceb20b3fac4 added -stdbool.h to the library headers which conflicts with xorg headers. - -Signed-off-by: Martin Krastev <krastevm@vmware.com> -Reviewed-by: Zack Rusin <zackr@vmware.com> -Signed-off-by: Zack Rusin <zackr@vmware.com> ---- - vmwgfx/vmwgfx_driver.h | 6 +++--- - vmwgfx/vmwgfx_saa.c | 2 +- - 2 files changed, 4 insertions(+), 4 deletions(-) - -diff --git a/vmwgfx/vmwgfx_driver.h b/vmwgfx/vmwgfx_driver.h -index fa8e308..467fb21 100644 ---- a/vmwgfx/vmwgfx_driver.h -+++ b/vmwgfx/vmwgfx_driver.h -@@ -36,15 +36,15 @@ - #include <stddef.h> - #include <stdint.h> - #include <errno.h> --#include <drm.h> --#include <xf86drm.h> --#include <xf86drmMode.h> - #include <xorg-server.h> - #include <xf86.h> - #include <xf86Crtc.h> - #include <xf86xv.h> - #include <xa_tracker.h> - #include <xf86Module.h> -+#include <drm.h> -+#include <xf86drm.h> -+#include <xf86drmMode.h> - - #include "../src/compat-api.h" - #ifdef DRI2 -diff --git a/vmwgfx/vmwgfx_saa.c b/vmwgfx/vmwgfx_saa.c -index 0881e2f..457f397 100644 ---- a/vmwgfx/vmwgfx_saa.c -+++ b/vmwgfx/vmwgfx_saa.c -@@ -29,11 +29,11 @@ - #include <xorgVersion.h> - #include <mi.h> - #include <fb.h> --#include <xf86drmMode.h> - #include <xa_context.h> - #include "vmwgfx_saa.h" - #include "vmwgfx_drmi.h" - #include "vmwgfx_saa_priv.h" -+#include <xf86drmMode.h> - - /* - * Damage to be added as soon as we attach storage to the pixmap. --- -cgit v1.2.1 - diff --git a/source/x/x11/patch/xorg-server.patch b/source/x/x11/patch/xorg-server.patch index a2df5194..791dfe15 100644 --- a/source/x/x11/patch/xorg-server.patch +++ b/source/x/x11/patch/xorg-server.patch @@ -9,13 +9,8 @@ zcat $CWD/patch/xorg-server/xorg-server.combo.mouse.keyboard.layout.patch.gz | p # the next xorg-server and will no longer apply then. zcat $CWD/patch/xorg-server/fix-nouveau-segfault.diff.gz | patch -p1 --verbose || { touch ${SLACK_X_BUILD_DIR}/${PKGNAME}.failed ; continue ; } -# From Fedora Rawhide 2018/7 (possibly useful, doesn't seem like it will hurt anything): -zcat $CWD/patch/xorg-server/0001-Always-install-vbe-and-int10-sdk-headers.patch.gz | patch -p1 --verbose || { touch ${SLACK_X_BUILD_DIR}/${PKGNAME}.failed ; continue ; } - -# From Fedora Rawhide 2018/7, looks like many other distributions have added -# this patch for a long time. Keep an eye out for newer versions though, and -# revisit this if any DE begin to manage secondary GPUs (although none do yet): -zcat $CWD/patch/xorg-server/0001-autobind-GPUs-to-the-screen.patch.gz | patch -p1 --verbose || { touch ${SLACK_X_BUILD_DIR}/${PKGNAME}.failed ; continue ; } +## From Fedora Rawhide 2018/7 (possibly useful, doesn't seem like it will hurt anything): +#zcat $CWD/patch/xorg-server/0001-Always-install-vbe-and-int10-sdk-headers.patch.gz | patch -p1 --verbose || { touch ${SLACK_X_BUILD_DIR}/${PKGNAME}.failed ; continue ; } # The upstream nouveau developers recommend this. On newer nvidia cards it works # better to use the generic modesetting ddx rather than nouveau. @@ -23,16 +18,5 @@ zcat $CWD/patch/xorg-server/0001-autobind-GPUs-to-the-screen.patch.gz | patch -p # Added here 2018/7. zcat $CWD/patch/xorg-server/0001-xfree86-use-modesetting-driver-by-default-on-GeForce.patch.gz | patch -p1 --verbose || { touch ${SLACK_X_BUILD_DIR}/${PKGNAME}.failed ; continue ; } -# Fix a PCI related segfault: -zcat $CWD/patch/xorg-server/fix-pci-segfault.diff.gz | patch -p1 --verbose || { touch ${SLACK_X_BUILD_DIR}/${PKGNAME}.failed ; continue ; } - # Only use Intel DDX with pre-gen4 hardware. Newer hardware will the the modesetting driver by default: zcat $CWD/patch/xorg-server/06_use-intel-only-on-pre-gen4.diff.gz | patch -p1 --verbose || { touch ${SLACK_X_BUILD_DIR}/${PKGNAME}.failed ; continue ; } - -# Fix build with gcc12: -zcat $CWD/patch/xorg-server/0001-render-Fix-build-with-gcc-12.patch.gz | patch -p1 --verbose || { touch ${SLACK_X_BUILD_DIR}/${PKGNAME}.failed ; continue ; } - -# Patch CVE-2022-2320 and CVE-2022-2319: -zcat $CWD/patch/xorg-server/0001-f1070c01d616c5f21f939d5ebc533738779451ac.patch.gz | patch -p1 --verbose || { touch ${SLACK_X_BUILD_DIR}/${PKGNAME}.failed ; continue ; } -zcat $CWD/patch/xorg-server/0002-dd8caf39e9e15d8f302e54045dd08d8ebf1025dc.patch.gz | patch -p1 --verbose || { touch ${SLACK_X_BUILD_DIR}/${PKGNAME}.failed ; continue ; } -zcat $CWD/patch/xorg-server/0003-6907b6ea2b4ce949cb07271f5b678d5966d9df42.patch.gz | patch -p1 --verbose || { touch ${SLACK_X_BUILD_DIR}/${PKGNAME}.failed ; continue ; } diff --git a/source/x/x11/patch/xorg-server/0001-autobind-GPUs-to-the-screen.patch b/source/x/x11/patch/xorg-server/0001-autobind-GPUs-to-the-screen.patch deleted file mode 100644 index 86b96a23..00000000 --- a/source/x/x11/patch/xorg-server/0001-autobind-GPUs-to-the-screen.patch +++ /dev/null @@ -1,293 +0,0 @@ -From 471289fa1dc359555ceed6302f7d9605ab6be3ea Mon Sep 17 00:00:00 2001 -From: Dave Airlie <airlied@redhat.com> -Date: Mon, 2 Apr 2018 16:49:02 -0400 -Subject: [PATCH] autobind GPUs to the screen - -This is a modified version of a patch we've been carry-ing in Fedora and -RHEL for years now. This patch automatically adds secondary GPUs to the -master as output sink / offload source making e.g. the use of -slave-outputs just work, with requiring the user to manually run -"xrandr --setprovideroutputsource" before he can hookup an external -monitor to his hybrid graphics laptop. - -There is one problem with this patch, which is why it was not upstreamed -before. What to do when a secondary GPU gets detected really is a policy -decission (e.g. one may want to autobind PCI GPUs but not USB ones) and -as such should be under control of the Desktop Environment. - -Unconditionally adding autobinding support to the xserver will result -in races between the DE dealing with the hotplug of a secondary GPU -and the server itself dealing with it. - -However we've waited for years for any Desktop Environments to actually -start doing some sort of autoconfiguration of secondary GPUs and there -is still not a single DE dealing with this, so I believe that it is -time to upstream this now. - -To avoid potential future problems if any DEs get support for doing -secondary GPU configuration themselves, the new autobind functionality -is made optional. Since no DEs currently support doing this themselves it -is enabled by default. When DEs grow support for doing this themselves -they can disable the servers autobinding through the servers cmdline or a -xorg.conf snippet. - -Signed-off-by: Dave Airlie <airlied@gmail.com> -[hdegoede@redhat.com: Make configurable, fix with nvidia, submit upstream] -Signed-off-by: Hans de Goede <hdegoede@redhat.com> ---- - hw/xfree86/common/xf86Config.c | 19 +++++++++++++++++++ - hw/xfree86/common/xf86Globals.c | 2 ++ - hw/xfree86/common/xf86Init.c | 20 ++++++++++++++++++++ - hw/xfree86/common/xf86Priv.h | 1 + - hw/xfree86/common/xf86Privstr.h | 1 + - hw/xfree86/common/xf86platformBus.c | 4 ++++ - hw/xfree86/man/Xorg.man | 7 +++++++ - hw/xfree86/man/xorg.conf.man | 6 ++++++ - randr/randrstr.h | 3 +++ - randr/rrprovider.c | 22 ++++++++++++++++++++++ - 10 files changed, 85 insertions(+) - -diff --git a/hw/xfree86/common/xf86Config.c b/hw/xfree86/common/xf86Config.c -index 2c1d335..d7d7c2e 100644 ---- a/hw/xfree86/common/xf86Config.c -+++ b/hw/xfree86/common/xf86Config.c -@@ -643,6 +643,7 @@ typedef enum { - FLAG_DRI2, - FLAG_USE_SIGIO, - FLAG_AUTO_ADD_GPU, -+ FLAG_AUTO_BIND_GPU, - FLAG_MAX_CLIENTS, - FLAG_IGLX, - FLAG_DEBUG, -@@ -699,6 +700,8 @@ static OptionInfoRec FlagOptions[] = { - {0}, FALSE}, - {FLAG_AUTO_ADD_GPU, "AutoAddGPU", OPTV_BOOLEAN, - {0}, FALSE}, -+ {FLAG_AUTO_BIND_GPU, "AutoBindGPU", OPTV_BOOLEAN, -+ {0}, FALSE}, - {FLAG_MAX_CLIENTS, "MaxClients", OPTV_INTEGER, - {0}, FALSE }, - {FLAG_IGLX, "IndirectGLX", OPTV_BOOLEAN, -@@ -779,6 +782,22 @@ configServerFlags(XF86ConfFlagsPtr flagsconf, XF86OptionPtr layoutopts) - } - xf86Msg(from, "%sutomatically adding GPU devices\n", - xf86Info.autoAddGPU ? "A" : "Not a"); -+ -+ if (xf86AutoBindGPUDisabled) { -+ xf86Info.autoBindGPU = FALSE; -+ from = X_CMDLINE; -+ } -+ else if (xf86IsOptionSet(FlagOptions, FLAG_AUTO_BIND_GPU)) { -+ xf86GetOptValBool(FlagOptions, FLAG_AUTO_BIND_GPU, -+ &xf86Info.autoBindGPU); -+ from = X_CONFIG; -+ } -+ else { -+ from = X_DEFAULT; -+ } -+ xf86Msg(from, "%sutomatically binding GPU devices\n", -+ xf86Info.autoBindGPU ? "A" : "Not a"); -+ - /* - * Set things up based on the config file information. Some of these - * settings may be overridden later when the command line options are -diff --git a/hw/xfree86/common/xf86Globals.c b/hw/xfree86/common/xf86Globals.c -index e890f05..7b27b4c 100644 ---- a/hw/xfree86/common/xf86Globals.c -+++ b/hw/xfree86/common/xf86Globals.c -@@ -131,6 +131,7 @@ xf86InfoRec xf86Info = { - #else - .autoAddGPU = FALSE, - #endif -+ .autoBindGPU = TRUE, - }; - - const char *xf86ConfigFile = NULL; -@@ -191,6 +192,7 @@ Bool xf86FlipPixels = FALSE; - Gamma xf86Gamma = { 0.0, 0.0, 0.0 }; - - Bool xf86AllowMouseOpenFail = FALSE; -+Bool xf86AutoBindGPUDisabled = FALSE; - - #ifdef XF86VIDMODE - Bool xf86VidModeDisabled = FALSE; -diff --git a/hw/xfree86/common/xf86Init.c b/hw/xfree86/common/xf86Init.c -index ea42ec9..ec255b6 100644 ---- a/hw/xfree86/common/xf86Init.c -+++ b/hw/xfree86/common/xf86Init.c -@@ -76,6 +76,7 @@ - #include "xf86DDC.h" - #include "xf86Xinput.h" - #include "xf86InPriv.h" -+#include "xf86Crtc.h" - #include "picturestr.h" - #include "randrstr.h" - #include "glxvndabi.h" -@@ -237,6 +238,19 @@ xf86PrivsElevated(void) - return PrivsElevated(); - } - -+static void -+xf86AutoConfigOutputDevices(void) -+{ -+ int i; -+ -+ if (!xf86Info.autoBindGPU) -+ return; -+ -+ for (i = 0; i < xf86NumGPUScreens; i++) -+ RRProviderAutoConfigGpuScreen(xf86ScrnToScreen(xf86GPUScreens[i]), -+ xf86ScrnToScreen(xf86Screens[0])); -+} -+ - static void - TrapSignals(void) - { -@@ -770,6 +784,8 @@ InitOutput(ScreenInfo * pScreenInfo, int argc, char **argv) - for (i = 0; i < xf86NumGPUScreens; i++) - AttachUnboundGPU(xf86Screens[0]->pScreen, xf86GPUScreens[i]->pScreen); - -+ xf86AutoConfigOutputDevices(); -+ - xf86VGAarbiterWrapFunctions(); - if (sigio_blocked) - input_unlock(); -@@ -1278,6 +1294,10 @@ ddxProcessArgument(int argc, char **argv, int i) - xf86Info.iglxFrom = X_CMDLINE; - return 0; - } -+ if (!strcmp(argv[i], "-noautoBindGPU")) { -+ xf86AutoBindGPUDisabled = TRUE; -+ return 1; -+ } - - /* OS-specific processing */ - return xf86ProcessArgument(argc, argv, i); -diff --git a/hw/xfree86/common/xf86Priv.h b/hw/xfree86/common/xf86Priv.h -index 4fe2b5f..6566622 100644 ---- a/hw/xfree86/common/xf86Priv.h -+++ b/hw/xfree86/common/xf86Priv.h -@@ -46,6 +46,7 @@ - extern _X_EXPORT const char *xf86ConfigFile; - extern _X_EXPORT const char *xf86ConfigDir; - extern _X_EXPORT Bool xf86AllowMouseOpenFail; -+extern _X_EXPORT Bool xf86AutoBindGPUDisabled; - - #ifdef XF86VIDMODE - extern _X_EXPORT Bool xf86VidModeDisabled; -diff --git a/hw/xfree86/common/xf86Privstr.h b/hw/xfree86/common/xf86Privstr.h -index 21c2e1f..6c71863 100644 ---- a/hw/xfree86/common/xf86Privstr.h -+++ b/hw/xfree86/common/xf86Privstr.h -@@ -98,6 +98,7 @@ typedef struct { - - Bool autoAddGPU; - const char *debug; -+ Bool autoBindGPU; - } xf86InfoRec, *xf86InfoPtr; - - /* ISC's cc can't handle ~ of UL constants, so explicitly type cast them. */ -diff --git a/hw/xfree86/common/xf86platformBus.c b/hw/xfree86/common/xf86platformBus.c -index cef47da..913a324 100644 ---- a/hw/xfree86/common/xf86platformBus.c -+++ b/hw/xfree86/common/xf86platformBus.c -@@ -49,6 +49,7 @@ - #include "Pci.h" - #include "xf86platformBus.h" - #include "xf86Config.h" -+#include "xf86Crtc.h" - - #include "randrstr.h" - int platformSlotClaimed; -@@ -665,6 +666,9 @@ xf86platformAddDevice(int index) - } - /* attach unbound to 0 protocol screen */ - AttachUnboundGPU(xf86Screens[0]->pScreen, xf86GPUScreens[i]->pScreen); -+ if (xf86Info.autoBindGPU) -+ RRProviderAutoConfigGpuScreen(xf86ScrnToScreen(xf86GPUScreens[i]), -+ xf86ScrnToScreen(xf86Screens[0])); - - RRResourcesChanged(xf86Screens[0]->pScreen); - RRTellChanged(xf86Screens[0]->pScreen); -diff --git a/hw/xfree86/man/Xorg.man b/hw/xfree86/man/Xorg.man -index 13a9dc3..745f986 100644 ---- a/hw/xfree86/man/Xorg.man -+++ b/hw/xfree86/man/Xorg.man -@@ -283,6 +283,13 @@ is a comma separated list of directories to search for - server modules. This option is only available when the server is run - as root (i.e, with real-uid 0). - .TP 8 -+.B \-noautoBindGPU -+Disable automatically setting secondary GPUs up as output sinks and offload -+sources. This is equivalent to setting the -+.B AutoBindGPU -+xorg.conf(__filemansuffix__) file option. To -+.B false. -+.TP 8 - .B \-nosilk - Disable Silken Mouse support. - .TP 8 -diff --git a/hw/xfree86/man/xorg.conf.man b/hw/xfree86/man/xorg.conf.man -index 9589262..8d51e06 100644 ---- a/hw/xfree86/man/xorg.conf.man -+++ b/hw/xfree86/man/xorg.conf.man -@@ -672,6 +672,12 @@ Enabled by default. - If this option is disabled, then no GPU devices will be added from the udev - backend. Enabled by default. (May need to be disabled to setup Xinerama). - .TP 7 -+.BI "Option \*qAutoBindGPU\*q \*q" boolean \*q -+If enabled then secondary GPUs will be automatically set up as output-sinks and -+offload-sources. Making e.g. laptop outputs connected only to the secondary -+GPU directly available for use without needing to run -+"xrandr --setprovideroutputsource". Enabled by default. -+.TP 7 - .BI "Option \*qLog\*q \*q" string \*q - This option controls whether the log is flushed and/or synced to disk after - each message. -diff --git a/randr/randrstr.h b/randr/randrstr.h -index f94174b..092d726 100644 ---- a/randr/randrstr.h -+++ b/randr/randrstr.h -@@ -1039,6 +1039,9 @@ RRProviderLookup(XID id, RRProviderPtr *provider_p); - extern _X_EXPORT void - RRDeliverProviderEvent(ClientPtr client, WindowPtr pWin, RRProviderPtr provider); - -+extern _X_EXPORT void -+RRProviderAutoConfigGpuScreen(ScreenPtr pScreen, ScreenPtr masterScreen); -+ - /* rrproviderproperty.c */ - - extern _X_EXPORT void -diff --git a/randr/rrprovider.c b/randr/rrprovider.c -index e4bc2bf..e04c18f 100644 ---- a/randr/rrprovider.c -+++ b/randr/rrprovider.c -@@ -485,3 +485,25 @@ RRDeliverProviderEvent(ClientPtr client, WindowPtr pWin, RRProviderPtr provider) - - WriteEventsToClient(client, 1, (xEvent *) &pe); - } -+ -+void -+RRProviderAutoConfigGpuScreen(ScreenPtr pScreen, ScreenPtr masterScreen) -+{ -+ rrScrPrivPtr pScrPriv = rrGetScrPriv(pScreen); -+ rrScrPrivPtr masterPriv = rrGetScrPriv(masterScreen); -+ RRProviderPtr provider = pScrPriv->provider; -+ RRProviderPtr master_provider = masterPriv->provider; -+ -+ if (!provider || !master_provider) -+ return; -+ -+ if ((provider->capabilities & RR_Capability_SinkOutput) && -+ (master_provider->capabilities & RR_Capability_SourceOutput)) { -+ pScrPriv->rrProviderSetOutputSource(pScreen, provider, master_provider); -+ RRInitPrimeSyncProps(pScreen); -+ } -+ -+ if ((provider->capabilities & RR_Capability_SourceOffload) && -+ (master_provider->capabilities & RR_Capability_SinkOffload)) -+ pScrPriv->rrProviderSetOffloadSink(pScreen, provider, master_provider); -+} --- -2.16.2 - diff --git a/source/x/x11/patch/xorg-server/0001-f1070c01d616c5f21f939d5ebc533738779451ac.patch b/source/x/x11/patch/xorg-server/0001-f1070c01d616c5f21f939d5ebc533738779451ac.patch deleted file mode 100644 index 0efddcf5..00000000 --- a/source/x/x11/patch/xorg-server/0001-f1070c01d616c5f21f939d5ebc533738779451ac.patch +++ /dev/null @@ -1,75 +0,0 @@ -From f1070c01d616c5f21f939d5ebc533738779451ac Mon Sep 17 00:00:00 2001 -From: Peter Hutterer <peter.hutterer@who-t.net> -Date: Tue, 5 Jul 2022 12:40:47 +1000 -Subject: [PATCH] xkb: switch to array index loops to moving pointers - -Most similar loops here use a pointer that advances with each loop -iteration, let's do the same here for consistency. - -No functional changes. - -Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> -Reviewed-by: Olivier Fourdan <ofourdan@redhat.com> ---- - xkb/xkb.c | 20 ++++++++++---------- - 1 file changed, 10 insertions(+), 10 deletions(-) - -diff --git a/xkb/xkb.c b/xkb/xkb.c -index a29262c24..64e52611e 100644 ---- a/xkb/xkb.c -+++ b/xkb/xkb.c -@@ -5368,16 +5368,16 @@ _CheckSetSections(XkbGeometryPtr geom, - row->left = rWire->left; - row->vertical = rWire->vertical; - kWire = (xkbKeyWireDesc *) &rWire[1]; -- for (k = 0; k < rWire->nKeys; k++) { -+ for (k = 0; k < rWire->nKeys; k++, kWire++) { - XkbKeyPtr key; - - key = XkbAddGeomKey(row); - if (!key) - return BadAlloc; -- memcpy(key->name.name, kWire[k].name, XkbKeyNameLength); -- key->gap = kWire[k].gap; -- key->shape_ndx = kWire[k].shapeNdx; -- key->color_ndx = kWire[k].colorNdx; -+ memcpy(key->name.name, kWire->name, XkbKeyNameLength); -+ key->gap = kWire->gap; -+ key->shape_ndx = kWire->shapeNdx; -+ key->color_ndx = kWire->colorNdx; - if (key->shape_ndx >= geom->num_shapes) { - client->errorValue = _XkbErrCode3(0x10, key->shape_ndx, - geom->num_shapes); -@@ -5389,7 +5389,7 @@ _CheckSetSections(XkbGeometryPtr geom, - return BadMatch; - } - } -- rWire = (xkbRowWireDesc *) &kWire[rWire->nKeys]; -+ rWire = (xkbRowWireDesc *)kWire; - } - wire = (char *) rWire; - if (sWire->nDoodads > 0) { -@@ -5454,16 +5454,16 @@ _CheckSetShapes(XkbGeometryPtr geom, - return BadAlloc; - ol->corner_radius = olWire->cornerRadius; - ptWire = (xkbPointWireDesc *) &olWire[1]; -- for (p = 0, pt = ol->points; p < olWire->nPoints; p++, pt++) { -- pt->x = ptWire[p].x; -- pt->y = ptWire[p].y; -+ for (p = 0, pt = ol->points; p < olWire->nPoints; p++, pt++, ptWire++) { -+ pt->x = ptWire->x; -+ pt->y = ptWire->y; - if (client->swapped) { - swaps(&pt->x); - swaps(&pt->y); - } - } - ol->num_points = olWire->nPoints; -- olWire = (xkbOutlineWireDesc *) (&ptWire[olWire->nPoints]); -+ olWire = (xkbOutlineWireDesc *)ptWire; - } - if (shapeWire->primaryNdx != XkbNoShape) - shape->primary = &shape->outlines[shapeWire->primaryNdx]; --- -GitLab - diff --git a/source/x/x11/patch/xorg-server/0001-render-Fix-build-with-gcc-12.patch b/source/x/x11/patch/xorg-server/0001-render-Fix-build-with-gcc-12.patch deleted file mode 100644 index 22f2e5a7..00000000 --- a/source/x/x11/patch/xorg-server/0001-render-Fix-build-with-gcc-12.patch +++ /dev/null @@ -1,90 +0,0 @@ -From 53173fdab492f0f638f6616fcf01af0b9ea6338d Mon Sep 17 00:00:00 2001 -From: Olivier Fourdan <ofourdan@redhat.com> -Date: Thu, 20 Jan 2022 10:20:38 +0100 -Subject: [PATCH xserver] render: Fix build with gcc 12 -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -The xserver fails to compile with the latest gcc 12: - - render/picture.c: In function ‘CreateSolidPicture’: - render/picture.c:874:26: error: array subscript ‘union _SourcePict[0]’ is partly outside array bounds of ‘unsigned char[16]’ [-Werror=array-bounds] - 874 | pPicture->pSourcePict->type = SourcePictTypeSolidFill; - | ^~ - render/picture.c:868:45: note: object of size 16 allocated by ‘malloc’ - 868 | pPicture->pSourcePict = (SourcePictPtr) malloc(sizeof(PictSolidFill)); - | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - render/picture.c: In function ‘CreateLinearGradientPicture’: - render/picture.c:906:26: error: array subscript ‘union _SourcePict[0]’ is partly outside array bounds of ‘unsigned char[32]’ [-Werror=array-bounds] - 906 | pPicture->pSourcePict->linear.type = SourcePictTypeLinear; - | ^~ - render/picture.c:899:45: note: object of size 32 allocated by ‘malloc’ - 899 | pPicture->pSourcePict = (SourcePictPtr) malloc(sizeof(PictLinearGradient)); - | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - render/picture.c: In function ‘CreateConicalGradientPicture’: - render/picture.c:989:26: error: array subscript ‘union _SourcePict[0]’ is partly outside array bounds of ‘unsigned char[32]’ [-Werror=array-bounds] - 989 | pPicture->pSourcePict->conical.type = SourcePictTypeConical; - | ^~ - render/picture.c:982:45: note: object of size 32 allocated by ‘malloc’ - 982 | pPicture->pSourcePict = (SourcePictPtr) malloc(sizeof(PictConicalGradient)); - | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - cc1: some warnings being treated as errors - ninja: build stopped: subcommand failed. - -This is because gcc 12 has become stricter and raises a warning now. - -Fix the warning/error by allocating enough memory to store the union -struct. - -Signed-off-by: Olivier Fourdan <ofourdan@redhat.com> -Acked-by: Michel Dänzer <mdaenzer@redhat.com> -Closes: https://gitlab.freedesktop.org/xorg/xserver/-/issues/1256 -(cherry picked from commit c6b0dcb82d4db07a2f32c09a8c09c85a5f57248e) ---- - render/picture.c | 8 ++++---- - 1 file changed, 4 insertions(+), 4 deletions(-) - -diff --git a/render/picture.c b/render/picture.c -index afa0d258f..2be4b1954 100644 ---- a/render/picture.c -+++ b/render/picture.c -@@ -865,7 +865,7 @@ CreateSolidPicture(Picture pid, xRenderColor * color, int *error) - } - - pPicture->id = pid; -- pPicture->pSourcePict = (SourcePictPtr) malloc(sizeof(PictSolidFill)); -+ pPicture->pSourcePict = (SourcePictPtr) malloc(sizeof(SourcePict)); - if (!pPicture->pSourcePict) { - *error = BadAlloc; - free(pPicture); -@@ -896,7 +896,7 @@ CreateLinearGradientPicture(Picture pid, xPointFixed * p1, xPointFixed * p2, - } - - pPicture->id = pid; -- pPicture->pSourcePict = (SourcePictPtr) malloc(sizeof(PictLinearGradient)); -+ pPicture->pSourcePict = (SourcePictPtr) malloc(sizeof(SourcePict)); - if (!pPicture->pSourcePict) { - *error = BadAlloc; - free(pPicture); -@@ -936,7 +936,7 @@ CreateRadialGradientPicture(Picture pid, xPointFixed * inner, - } - - pPicture->id = pid; -- pPicture->pSourcePict = (SourcePictPtr) malloc(sizeof(PictRadialGradient)); -+ pPicture->pSourcePict = (SourcePictPtr) malloc(sizeof(SourcePict)); - if (!pPicture->pSourcePict) { - *error = BadAlloc; - free(pPicture); -@@ -979,7 +979,7 @@ CreateConicalGradientPicture(Picture pid, xPointFixed * center, xFixed angle, - } - - pPicture->id = pid; -- pPicture->pSourcePict = (SourcePictPtr) malloc(sizeof(PictConicalGradient)); -+ pPicture->pSourcePict = (SourcePictPtr) malloc(sizeof(SourcePict)); - if (!pPicture->pSourcePict) { - *error = BadAlloc; - free(pPicture); --- -2.34.1 - diff --git a/source/x/x11/patch/xorg-server/0002-dd8caf39e9e15d8f302e54045dd08d8ebf1025dc.patch b/source/x/x11/patch/xorg-server/0002-dd8caf39e9e15d8f302e54045dd08d8ebf1025dc.patch deleted file mode 100644 index 72d30f36..00000000 --- a/source/x/x11/patch/xorg-server/0002-dd8caf39e9e15d8f302e54045dd08d8ebf1025dc.patch +++ /dev/null @@ -1,178 +0,0 @@ -From dd8caf39e9e15d8f302e54045dd08d8ebf1025dc Mon Sep 17 00:00:00 2001 -From: Peter Hutterer <peter.hutterer@who-t.net> -Date: Tue, 5 Jul 2022 09:50:41 +1000 -Subject: [PATCH] xkb: swap XkbSetDeviceInfo and XkbSetDeviceInfoCheck - -XKB often uses a FooCheck and Foo function pair, the former is supposed -to check all values in the request and error out on BadLength, -BadValue, etc. The latter is then called once we're confident the values -are good (they may still fail on an individual device, but that's a -different topic). - -In the case of XkbSetDeviceInfo, those functions were incorrectly -named, with XkbSetDeviceInfo ending up as the checker function and -XkbSetDeviceInfoCheck as the setter function. As a result, the setter -function was called before the checker function, accessing request -data and modifying device state before we ensured that the data is -valid. - -In particular, the setter function relied on values being already -byte-swapped. This in turn could lead to potential OOB memory access. - -Fix this by correctly naming the functions and moving the length checks -over to the checker function. These were added in 87c64fc5b0 to the -wrong function, probably due to the incorrect naming. - -Fixes ZDI-CAN 16070, CVE-2022-2320. - -This vulnerability was discovered by: -Jan-Niklas Sohn working with Trend Micro Zero Day Initiative - -Introduced in c06e27b2f6fd9f7b9f827623a48876a225264132 - -Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> ---- - xkb/xkb.c | 46 +++++++++++++++++++++++++--------------------- - 1 file changed, 25 insertions(+), 21 deletions(-) - -diff --git a/xkb/xkb.c b/xkb/xkb.c -index 64e52611e..34b2c290b 100644 ---- a/xkb/xkb.c -+++ b/xkb/xkb.c -@@ -6550,7 +6550,8 @@ ProcXkbGetDeviceInfo(ClientPtr client) - static char * - CheckSetDeviceIndicators(char *wire, - DeviceIntPtr dev, -- int num, int *status_rtrn, ClientPtr client) -+ int num, int *status_rtrn, ClientPtr client, -+ xkbSetDeviceInfoReq * stuff) - { - xkbDeviceLedsWireDesc *ledWire; - int i; -@@ -6558,6 +6559,11 @@ CheckSetDeviceIndicators(char *wire, - - ledWire = (xkbDeviceLedsWireDesc *) wire; - for (i = 0; i < num; i++) { -+ if (!_XkbCheckRequestBounds(client, stuff, ledWire, ledWire + 1)) { -+ *status_rtrn = BadLength; -+ return (char *) ledWire; -+ } -+ - if (client->swapped) { - swaps(&ledWire->ledClass); - swaps(&ledWire->ledID); -@@ -6585,6 +6591,11 @@ CheckSetDeviceIndicators(char *wire, - atomWire = (CARD32 *) &ledWire[1]; - if (nNames > 0) { - for (n = 0; n < nNames; n++) { -+ if (!_XkbCheckRequestBounds(client, stuff, atomWire, atomWire + 1)) { -+ *status_rtrn = BadLength; -+ return (char *) atomWire; -+ } -+ - if (client->swapped) { - swapl(atomWire); - } -@@ -6596,6 +6607,10 @@ CheckSetDeviceIndicators(char *wire, - mapWire = (xkbIndicatorMapWireDesc *) atomWire; - if (nMaps > 0) { - for (n = 0; n < nMaps; n++) { -+ if (!_XkbCheckRequestBounds(client, stuff, mapWire, mapWire + 1)) { -+ *status_rtrn = BadLength; -+ return (char *) mapWire; -+ } - if (client->swapped) { - swaps(&mapWire->virtualMods); - swapl(&mapWire->ctrls); -@@ -6647,11 +6662,6 @@ SetDeviceIndicators(char *wire, - xkbIndicatorMapWireDesc *mapWire; - XkbSrvLedInfoPtr sli; - -- if (!_XkbCheckRequestBounds(client, stuff, ledWire, ledWire + 1)) { -- *status_rtrn = BadLength; -- return (char *) ledWire; -- } -- - namec = mapc = statec = 0; - sli = XkbFindSrvLedInfo(dev, ledWire->ledClass, ledWire->ledID, - XkbXI_IndicatorMapsMask); -@@ -6670,10 +6680,6 @@ SetDeviceIndicators(char *wire, - memset((char *) sli->names, 0, XkbNumIndicators * sizeof(Atom)); - for (n = 0, bit = 1; n < XkbNumIndicators; n++, bit <<= 1) { - if (ledWire->namesPresent & bit) { -- if (!_XkbCheckRequestBounds(client, stuff, atomWire, atomWire + 1)) { -- *status_rtrn = BadLength; -- return (char *) atomWire; -- } - sli->names[n] = (Atom) *atomWire; - if (sli->names[n] == None) - ledWire->namesPresent &= ~bit; -@@ -6691,10 +6697,6 @@ SetDeviceIndicators(char *wire, - if (ledWire->mapsPresent) { - for (n = 0, bit = 1; n < XkbNumIndicators; n++, bit <<= 1) { - if (ledWire->mapsPresent & bit) { -- if (!_XkbCheckRequestBounds(client, stuff, mapWire, mapWire + 1)) { -- *status_rtrn = BadLength; -- return (char *) mapWire; -- } - sli->maps[n].flags = mapWire->flags; - sli->maps[n].which_groups = mapWire->whichGroups; - sli->maps[n].groups = mapWire->groups; -@@ -6730,13 +6732,17 @@ SetDeviceIndicators(char *wire, - } - - static int --_XkbSetDeviceInfo(ClientPtr client, DeviceIntPtr dev, -+_XkbSetDeviceInfoCheck(ClientPtr client, DeviceIntPtr dev, - xkbSetDeviceInfoReq * stuff) - { - char *wire; - - wire = (char *) &stuff[1]; - if (stuff->change & XkbXI_ButtonActionsMask) { -+ int sz = stuff->nBtns * SIZEOF(xkbActionWireDesc); -+ if (!_XkbCheckRequestBounds(client, stuff, wire, (char *) wire + sz)) -+ return BadLength; -+ - if (!dev->button) { - client->errorValue = _XkbErrCode2(XkbErr_BadClass, ButtonClass); - return XkbKeyboardErrorCode; -@@ -6747,13 +6753,13 @@ _XkbSetDeviceInfo(ClientPtr client, DeviceIntPtr dev, - dev->button->numButtons); - return BadMatch; - } -- wire += (stuff->nBtns * SIZEOF(xkbActionWireDesc)); -+ wire += sz; - } - if (stuff->change & XkbXI_IndicatorsMask) { - int status = Success; - - wire = CheckSetDeviceIndicators(wire, dev, stuff->nDeviceLedFBs, -- &status, client); -+ &status, client, stuff); - if (status != Success) - return status; - } -@@ -6764,8 +6770,8 @@ _XkbSetDeviceInfo(ClientPtr client, DeviceIntPtr dev, - } - - static int --_XkbSetDeviceInfoCheck(ClientPtr client, DeviceIntPtr dev, -- xkbSetDeviceInfoReq * stuff) -+_XkbSetDeviceInfo(ClientPtr client, DeviceIntPtr dev, -+ xkbSetDeviceInfoReq * stuff) - { - char *wire; - xkbExtensionDeviceNotify ed; -@@ -6789,8 +6795,6 @@ _XkbSetDeviceInfoCheck(ClientPtr client, DeviceIntPtr dev, - if (stuff->firstBtn + stuff->nBtns > nBtns) - return BadValue; - sz = stuff->nBtns * SIZEOF(xkbActionWireDesc); -- if (!_XkbCheckRequestBounds(client, stuff, wire, (char *) wire + sz)) -- return BadLength; - memcpy((char *) &acts[stuff->firstBtn], (char *) wire, sz); - wire += sz; - ed.reason |= XkbXI_ButtonActionsMask; --- -GitLab - diff --git a/source/x/x11/patch/xorg-server/0003-6907b6ea2b4ce949cb07271f5b678d5966d9df42.patch b/source/x/x11/patch/xorg-server/0003-6907b6ea2b4ce949cb07271f5b678d5966d9df42.patch deleted file mode 100644 index 11121070..00000000 --- a/source/x/x11/patch/xorg-server/0003-6907b6ea2b4ce949cb07271f5b678d5966d9df42.patch +++ /dev/null @@ -1,181 +0,0 @@ -From 6907b6ea2b4ce949cb07271f5b678d5966d9df42 Mon Sep 17 00:00:00 2001 -From: Peter Hutterer <peter.hutterer@who-t.net> -Date: Tue, 5 Jul 2022 11:11:06 +1000 -Subject: [PATCH] xkb: add request length validation for XkbSetGeometry - -No validation of the various fields on that report were done, so a -malicious client could send a short request that claims it had N -sections, or rows, or keys, and the server would process the request for -N sections, running out of bounds of the actual request data. - -Fix this by adding size checks to ensure our data is valid. - -ZDI-CAN 16062, CVE-2022-2319. - -This vulnerability was discovered by: -Jan-Niklas Sohn working with Trend Micro Zero Day Initiative - -Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> ---- - xkb/xkb.c | 43 ++++++++++++++++++++++++++++++++++++++----- - 1 file changed, 38 insertions(+), 5 deletions(-) - -diff --git a/xkb/xkb.c b/xkb/xkb.c -index 34b2c290b..4692895db 100644 ---- a/xkb/xkb.c -+++ b/xkb/xkb.c -@@ -5156,7 +5156,7 @@ _GetCountedString(char **wire_inout, ClientPtr client, char **str) - } - - static Status --_CheckSetDoodad(char **wire_inout, -+_CheckSetDoodad(char **wire_inout, xkbSetGeometryReq *req, - XkbGeometryPtr geom, XkbSectionPtr section, ClientPtr client) - { - char *wire; -@@ -5167,6 +5167,9 @@ _CheckSetDoodad(char **wire_inout, - Status status; - - dWire = (xkbDoodadWireDesc *) (*wire_inout); -+ if (!_XkbCheckRequestBounds(client, req, dWire, dWire + 1)) -+ return BadLength; -+ - any = dWire->any; - wire = (char *) &dWire[1]; - if (client->swapped) { -@@ -5269,7 +5272,7 @@ _CheckSetDoodad(char **wire_inout, - } - - static Status --_CheckSetOverlay(char **wire_inout, -+_CheckSetOverlay(char **wire_inout, xkbSetGeometryReq *req, - XkbGeometryPtr geom, XkbSectionPtr section, ClientPtr client) - { - register int r; -@@ -5280,6 +5283,9 @@ _CheckSetOverlay(char **wire_inout, - - wire = *wire_inout; - olWire = (xkbOverlayWireDesc *) wire; -+ if (!_XkbCheckRequestBounds(client, req, olWire, olWire + 1)) -+ return BadLength; -+ - if (client->swapped) { - swapl(&olWire->name); - } -@@ -5291,6 +5297,9 @@ _CheckSetOverlay(char **wire_inout, - xkbOverlayKeyWireDesc *kWire; - XkbOverlayRowPtr row; - -+ if (!_XkbCheckRequestBounds(client, req, rWire, rWire + 1)) -+ return BadLength; -+ - if (rWire->rowUnder > section->num_rows) { - client->errorValue = _XkbErrCode4(0x20, r, section->num_rows, - rWire->rowUnder); -@@ -5299,6 +5308,9 @@ _CheckSetOverlay(char **wire_inout, - row = XkbAddGeomOverlayRow(ol, rWire->rowUnder, rWire->nKeys); - kWire = (xkbOverlayKeyWireDesc *) &rWire[1]; - for (k = 0; k < rWire->nKeys; k++, kWire++) { -+ if (!_XkbCheckRequestBounds(client, req, kWire, kWire + 1)) -+ return BadLength; -+ - if (XkbAddGeomOverlayKey(ol, row, - (char *) kWire->over, - (char *) kWire->under) == NULL) { -@@ -5332,6 +5344,9 @@ _CheckSetSections(XkbGeometryPtr geom, - register int r; - xkbRowWireDesc *rWire; - -+ if (!_XkbCheckRequestBounds(client, req, sWire, sWire + 1)) -+ return BadLength; -+ - if (client->swapped) { - swapl(&sWire->name); - swaps(&sWire->top); -@@ -5357,6 +5372,9 @@ _CheckSetSections(XkbGeometryPtr geom, - XkbRowPtr row; - xkbKeyWireDesc *kWire; - -+ if (!_XkbCheckRequestBounds(client, req, rWire, rWire + 1)) -+ return BadLength; -+ - if (client->swapped) { - swaps(&rWire->top); - swaps(&rWire->left); -@@ -5371,6 +5389,9 @@ _CheckSetSections(XkbGeometryPtr geom, - for (k = 0; k < rWire->nKeys; k++, kWire++) { - XkbKeyPtr key; - -+ if (!_XkbCheckRequestBounds(client, req, kWire, kWire + 1)) -+ return BadLength; -+ - key = XkbAddGeomKey(row); - if (!key) - return BadAlloc; -@@ -5396,7 +5417,7 @@ _CheckSetSections(XkbGeometryPtr geom, - register int d; - - for (d = 0; d < sWire->nDoodads; d++) { -- status = _CheckSetDoodad(&wire, geom, section, client); -+ status = _CheckSetDoodad(&wire, req, geom, section, client); - if (status != Success) - return status; - } -@@ -5405,7 +5426,7 @@ _CheckSetSections(XkbGeometryPtr geom, - register int o; - - for (o = 0; o < sWire->nOverlays; o++) { -- status = _CheckSetOverlay(&wire, geom, section, client); -+ status = _CheckSetOverlay(&wire, req, geom, section, client); - if (status != Success) - return status; - } -@@ -5439,6 +5460,9 @@ _CheckSetShapes(XkbGeometryPtr geom, - xkbOutlineWireDesc *olWire; - XkbOutlinePtr ol; - -+ if (!_XkbCheckRequestBounds(client, req, shapeWire, shapeWire + 1)) -+ return BadLength; -+ - shape = - XkbAddGeomShape(geom, shapeWire->name, shapeWire->nOutlines); - if (!shape) -@@ -5449,12 +5473,18 @@ _CheckSetShapes(XkbGeometryPtr geom, - XkbPointPtr pt; - xkbPointWireDesc *ptWire; - -+ if (!_XkbCheckRequestBounds(client, req, olWire, olWire + 1)) -+ return BadLength; -+ - ol = XkbAddGeomOutline(shape, olWire->nPoints); - if (!ol) - return BadAlloc; - ol->corner_radius = olWire->cornerRadius; - ptWire = (xkbPointWireDesc *) &olWire[1]; - for (p = 0, pt = ol->points; p < olWire->nPoints; p++, pt++, ptWire++) { -+ if (!_XkbCheckRequestBounds(client, req, ptWire, ptWire + 1)) -+ return BadLength; -+ - pt->x = ptWire->x; - pt->y = ptWire->y; - if (client->swapped) { -@@ -5560,12 +5590,15 @@ _CheckSetGeom(XkbGeometryPtr geom, xkbSetGeometryReq * req, ClientPtr client) - return status; - - for (i = 0; i < req->nDoodads; i++) { -- status = _CheckSetDoodad(&wire, geom, NULL, client); -+ status = _CheckSetDoodad(&wire, req, geom, NULL, client); - if (status != Success) - return status; - } - - for (i = 0; i < req->nKeyAliases; i++) { -+ if (!_XkbCheckRequestBounds(client, req, wire, wire + XkbKeyNameLength)) -+ return BadLength; -+ - if (XkbAddGeomKeyAlias(geom, &wire[XkbKeyNameLength], wire) == NULL) - return BadAlloc; - wire += 2 * XkbKeyNameLength; --- -GitLab - diff --git a/source/x/x11/patch/xorg-server/0001-Always-install-vbe-and-int10-sdk-headers.patch b/source/x/x11/patch/xorg-server/failed/0001-Always-install-vbe-and-int10-sdk-headers.patch index c613eb8f..c613eb8f 100644 --- a/source/x/x11/patch/xorg-server/0001-Always-install-vbe-and-int10-sdk-headers.patch +++ b/source/x/x11/patch/xorg-server/failed/0001-Always-install-vbe-and-int10-sdk-headers.patch diff --git a/source/x/x11/patch/xorg-server/fix-pci-segfault.diff b/source/x/x11/patch/xorg-server/fix-pci-segfault.diff deleted file mode 100644 index 40037628..00000000 --- a/source/x/x11/patch/xorg-server/fix-pci-segfault.diff +++ /dev/null @@ -1,12 +0,0 @@ -diff --git a/hw/xfree86/common/xf86platformBus.c b/hw/xfree86/common/xf86platformBus.c -index cef47da03d0e91e6a56a5e3cb14a51d931633eff..dadbac6c8f0ae6f3d636fdfe245e61bc0c98581d 100644 ---- a/hw/xfree86/common/xf86platformBus.c -+++ b/hw/xfree86/common/xf86platformBus.c -@@ -289,7 +289,7 @@ xf86platformProbe(void) - for (i = 0; i < xf86_num_platform_devices; i++) { - char *busid = xf86_platform_odev_attributes(i)->busid; - -- if (pci && (strncmp(busid, "pci:", 4) == 0)) { -+ if (pci && busid && (strncmp(busid, "pci:", 4) == 0)) { - platform_find_pci_info(&xf86_platform_devices[i], busid); - } diff --git a/source/x/x11/src/get-xf86-video-vmware.sh b/source/x/x11/src/get-xf86-video-vmware.sh new file mode 100755 index 00000000..00fef209 --- /dev/null +++ b/source/x/x11/src/get-xf86-video-vmware.sh @@ -0,0 +1,49 @@ +#!/bin/sh + +# Copyright 2016, 2018, 2020 Patrick J. Volkerding, Sebeka, Minnesota, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modificvmwareon, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED +# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO +# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; +# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR +# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +# Pull a stable branch + patches +BRANCH=${1:-master} + +# Clear download area: +rm -rf xf86-video-vmware + +# Clone repository: +git clone https://gitlab.freedesktop.org/xorg/driver/xf86-video-vmware/ + +# checkout $BRANCH: +( cd xf86-video-vmware + git checkout $BRANCH || exit 1 +) + +HEADISAT="$( cd xf86-video-vmware && git log -1 --format=%h )" +DATE="$( cd xf86-video-vmware && git log -1 --format=%cd --date=format:%Y%m%d )" +LONGDATE="$( cd xf86-video-vmware && git log -1 --format=%cd --date=format:%c )" +# Cleanup. We're not packing up the whole git repo. +( cd xf86-video-vmware && find . -type d -name ".git*" -exec rm -rf {} \; 2> /dev/null ) +mv xf86-video-vmware xf86-video-vmware-${DATE}_${HEADISAT} +tar cf xf86-video-vmware-${DATE}_${HEADISAT}.tar xf86-video-vmware-${DATE}_${HEADISAT} +xz -9 -f xf86-video-vmware-${DATE}_${HEADISAT}.tar +rm -rf xf86-video-vmware-${DATE}_${HEADISAT} +touch -d "$LONGDATE" xf86-video-vmware-${DATE}_${HEADISAT}.tar.xz +echo +echo "xf86-video-vmware branch $BRANCH with HEAD at $HEADISAT packaged as xf86-video-vmware-${DATE}_${HEADISAT}.tar.xz" +echo diff --git a/source/x/xorg-server-xwayland/xorg-server-xwayland.SlackBuild b/source/x/xorg-server-xwayland/xorg-server-xwayland.SlackBuild index 1e94a6a4..6365e0c4 100755 --- a/source/x/xorg-server-xwayland/xorg-server-xwayland.SlackBuild +++ b/source/x/xorg-server-xwayland/xorg-server-xwayland.SlackBuild @@ -25,7 +25,7 @@ cd $(dirname $0) ; CWD=$(pwd) PKGNAM=xorg-server-xwayland SRCNAM=xwayland VERSION=${VERSION:-$(echo $SRCNAM-*.tar.?z | rev | cut -f 3- -d . | cut -f 1 -d - | rev)} -BUILD=${BUILD:-2} +BUILD=${BUILD:-1} # Default font paths to be used by the X server: DEF_FONTPATH="/usr/share/fonts/misc,/usr/share/fonts/local,/usr/share/fonts/TTF,/usr/share/fonts/OTF,/usr/share/fonts/Type1,/usr/share/fonts/CID,/usr/share/fonts/75dpi/:unscaled,/usr/share/fonts/100dpi/:unscaled,/usr/share/fonts/75dpi,/usr/share/fonts/100dpi,/usr/share/fonts/cyrillic" diff --git a/source/xap/geeqie/geeqie.SlackBuild b/source/xap/geeqie/geeqie.SlackBuild index 8d45fe6c..a4503107 100755 --- a/source/xap/geeqie/geeqie.SlackBuild +++ b/source/xap/geeqie/geeqie.SlackBuild @@ -1,6 +1,6 @@ #!/bin/bash -# Copyright 2010, 2011, 2012, 2015, 2016, 2018 Patrick Volkerding, Sebeka, MN, USA +# Copyright 2010, 2011, 2012, 2015, 2016, 2018, 2022 Patrick Volkerding, Sebeka, MN, USA # All rights reserved. # # Redistribution and use of this script, with or without modification, is @@ -87,26 +87,31 @@ find . \ \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ -exec chmod 644 {} \+ -zcat $CWD/fix-build-re-docs.diff.gz | patch -p1 --verbose || exit 1 mv ChangeLog.gqview ChangeLog -./autogen.sh - -CFLAGS="$SLKCFLAGS" \ -CXXFLAGS="$SLKCFLAGS" \ -./configure \ +# Configure, build, and install: +export CFLAGS="$SLKCFLAGS" +export CXXFLAGS="$SLKCFLAGS" +mkdir meson-build +cd meson-build +meson setup \ --prefix=/usr \ + --libdir=lib${LIBDIRSUFFIX} \ + --libexecdir=/usr/libexec \ + --bindir=/usr/bin \ + --sbindir=/usr/sbin \ + --includedir=/usr/include \ + --datadir=/usr/share \ + --mandir=/usr/man \ --sysconfdir=/etc \ --localstatedir=/var \ - --mandir=/usr/man \ - --with-readmedir=/usr/doc/geeqie-$VERSION \ - --with-htmldir=/usr/doc/geeqie-$VERSION/html \ - --program-prefix="" \ - --program-suffix="" \ - --build=$ARCH-slackware-linux || exit 1 - -make $NUMJOBS || make || exit 1 -make install-strip DESTDIR=$PKG || exit 1 + --buildtype=release \ + -Dgq_helpdir=/usr/doc/geeqie-$VERSION \ + -Dgq_htmldir=/usr/doc/geeqie-$VERSION/html \ + .. || exit 1 + "${NINJA:=ninja}" $NUMJOBS || exit 1 + DESTDIR=$PKG $NINJA install || exit 1 +cd .. mkdir -p $PKG/usr/doc/$PKGNAM-$VERSION cp -a \ @@ -121,6 +126,18 @@ if [ -r ChangeLog ]; then touch -r ChangeLog $DOCSDIR/ChangeLog fi +# Actually, this looks fairly useless: +rm -rf $PKG/usr/doc/$PKGNAM-$VERSION/html + +# Strip binaries: +find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +# Looks like mandir is ignored :/ +if [ -d $PKG/usr/share/man -a ! -d $PKG/usr/man ]; then + mv $PKG/usr/share/man $PKG/usr + rmdir $PKG/usr/share 2> /dev/null +fi + # Compress and if needed symlink the man pages: if [ -d $PKG/usr/man ]; then ( cd $PKG/usr/man |