summaryrefslogtreecommitdiff
path: root/source
diff options
context:
space:
mode:
Diffstat (limited to 'source')
-rw-r--r--source/l/gnu-efi/gnu-efi.url2
-rw-r--r--source/x/mesa/amber/patches-revert/72566fd92c27b39abe2057f6f23388ec40793dd9.patch (renamed from source/x/mesa/patches-revert/72566fd92c27b39abe2057f6f23388ec40793dd9.patch)0
-rw-r--r--source/x/mesa/amber/patches-revert/80817b6e344258ac9b955f824ebf9019a0fc1610.patch (renamed from source/x/mesa/patches-revert/80817b6e344258ac9b955f824ebf9019a0fc1610.patch)0
-rwxr-xr-xsource/x/mesa/mesa-amber.build91
-rwxr-xr-xsource/x/mesa/mesa-demos.build40
-rwxr-xr-xsource/x/mesa/mesa.SlackBuild58
-rw-r--r--source/x/x11/build/xf86-input-acecad2
-rw-r--r--source/x/x11/build/xf86-input-evdev2
-rw-r--r--source/x/x11/build/xf86-input-joystick2
-rw-r--r--source/x/x11/build/xf86-input-keyboard2
-rw-r--r--source/x/x11/build/xf86-input-libinput2
-rw-r--r--source/x/x11/build/xf86-input-mouse2
-rw-r--r--source/x/x11/build/xf86-input-penmount2
-rw-r--r--source/x/x11/build/xf86-input-synaptics2
-rw-r--r--source/x/x11/build/xf86-input-vmmouse2
-rw-r--r--source/x/x11/build/xf86-input-void2
-rw-r--r--source/x/x11/build/xf86-input-wacom2
-rw-r--r--source/x/x11/build/xf86-video-amdgpu2
-rw-r--r--source/x/x11/build/xf86-video-apm2
-rw-r--r--source/x/x11/build/xf86-video-ark2
-rw-r--r--source/x/x11/build/xf86-video-ast2
-rw-r--r--source/x/x11/build/xf86-video-ati2
-rw-r--r--source/x/x11/build/xf86-video-chips2
-rw-r--r--source/x/x11/build/xf86-video-cirrus2
-rw-r--r--source/x/x11/build/xf86-video-dummy2
-rw-r--r--source/x/x11/build/xf86-video-geode2
-rw-r--r--source/x/x11/build/xf86-video-glint2
-rw-r--r--source/x/x11/build/xf86-video-i1282
-rw-r--r--source/x/x11/build/xf86-video-i7402
-rw-r--r--source/x/x11/build/xf86-video-intel2
-rw-r--r--source/x/x11/build/xf86-video-mach642
-rw-r--r--source/x/x11/build/xf86-video-mga2
-rw-r--r--source/x/x11/build/xf86-video-neomagic2
-rw-r--r--source/x/x11/build/xf86-video-nouveau2
-rw-r--r--source/x/x11/build/xf86-video-nv2
-rw-r--r--source/x/x11/build/xf86-video-omap2
-rw-r--r--source/x/x11/build/xf86-video-openchrome2
-rw-r--r--source/x/x11/build/xf86-video-r1282
-rw-r--r--source/x/x11/build/xf86-video-rendition2
-rw-r--r--source/x/x11/build/xf86-video-s32
-rw-r--r--source/x/x11/build/xf86-video-s3virge2
-rw-r--r--source/x/x11/build/xf86-video-savage2
-rw-r--r--source/x/x11/build/xf86-video-siliconmotion2
-rw-r--r--source/x/x11/build/xf86-video-sis2
-rw-r--r--source/x/x11/build/xf86-video-sisusb2
-rw-r--r--source/x/x11/build/xf86-video-tdfx2
-rw-r--r--source/x/x11/build/xf86-video-tga2
-rw-r--r--source/x/x11/build/xf86-video-trident2
-rw-r--r--source/x/x11/build/xf86-video-tseng2
-rw-r--r--source/x/x11/build/xf86-video-v4l2
-rw-r--r--source/x/x11/build/xf86-video-vboxvideo2
-rw-r--r--source/x/x11/build/xf86-video-vesa2
-rw-r--r--source/x/x11/build/xf86-video-vmware2
-rw-r--r--source/x/x11/build/xf86-video-voodoo2
-rw-r--r--source/x/x11/build/xorg-server2
-rw-r--r--source/x/x11/configure/xf86-video-ati13
-rw-r--r--source/x/x11/configure/xf86-video-glint13
-rw-r--r--source/x/x11/configure/xf86-video-nouveau2
-rw-r--r--source/x/x11/configure/xf86-video-s313
-rw-r--r--source/x/x11/configure/xf86-video-vmware13
-rw-r--r--source/x/x11/package-blacklist69
-rw-r--r--source/x/x11/patch/xf86-video-vmware.patch2
-rw-r--r--source/x/x11/patch/xf86-video-vmware/50ab008cb965dc9e47e0a84a1950e2485bbd3c44.patch60
-rw-r--r--source/x/x11/patch/xorg-server.patch20
-rw-r--r--source/x/x11/patch/xorg-server/0001-autobind-GPUs-to-the-screen.patch293
-rw-r--r--source/x/x11/patch/xorg-server/0001-f1070c01d616c5f21f939d5ebc533738779451ac.patch75
-rw-r--r--source/x/x11/patch/xorg-server/0001-render-Fix-build-with-gcc-12.patch90
-rw-r--r--source/x/x11/patch/xorg-server/0002-dd8caf39e9e15d8f302e54045dd08d8ebf1025dc.patch178
-rw-r--r--source/x/x11/patch/xorg-server/0003-6907b6ea2b4ce949cb07271f5b678d5966d9df42.patch181
-rw-r--r--source/x/x11/patch/xorg-server/failed/0001-Always-install-vbe-and-int10-sdk-headers.patch (renamed from source/x/x11/patch/xorg-server/0001-Always-install-vbe-and-int10-sdk-headers.patch)0
-rw-r--r--source/x/x11/patch/xorg-server/fix-pci-segfault.diff12
-rwxr-xr-xsource/x/x11/src/get-xf86-video-vmware.sh49
-rwxr-xr-xsource/x/xorg-server-xwayland/xorg-server-xwayland.SlackBuild2
-rwxr-xr-xsource/xap/geeqie/geeqie.SlackBuild49
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