Nothin' but Slackware

バイクとLinuxに戯れる日々

Slackware

MEGAsync-5.8.0.2_Linux

[Update: Mar. 06. 2025]
Version bump to "5.8.0.2"
------------------------------------
- We’ve enhanced the interface and behaviour of the transfer manager feature.
- You can now create sync exclusions using wildcards.
- There are new releases available now for the Raspberry Pi OS.
- We’ve fixed crashes that were occurring due to missing or broken OpenGL drivers on Windows.
- Qt has been upgraded to a newer version.
- Other bugs have been fixed and numerous improvements made.

------------------------------------


MEGAsync.SlackBuild
[code]
#!/bin/sh

# Slackware build script for MEGASync input plugin

# Copyright 2017,2018 Felipe Bugno <capent@yahoo.com>
#
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, 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.
#
#

PRGNAM=
MEGAsync
VERSION=${VERSION:-
5.8.0.2}
SDK=${SDK:-
8.3.1}
BUILD=${BUILD:-1}
TAG=${TAG:-jw}

if [ -z "$ARCH" ]; then
  case "$( uname -m )" in
    i?86) ARCH=i586 ;;
    arm*) ARCH=arm ;;
       *) ARCH=$( uname -m ) ;;
  esac
fi

CWD=$(pwd)
TMP=${TMP:-/tmp/SBo}
PKG=$TMP/package-$PRGNAM
OUTPUT=${OUTPUT:-/tmp}

if [ "$ARCH" = "i586" ]; then
  SLKCFLAGS="-O2 -march=i586 -mtune=i686"
  LIBDIRSUFFIX=""
elif [ "$ARCH" = "i686" ]; then
  SLKCFLAGS="-O2 -march=i686 -mtune=i686"
  LIBDIRSUFFIX=""
elif [ "$ARCH" = "x86_64" ]; then
  SLKCFLAGS="-O2 -fPIC"
  LIBDIRSUFFIX="64"
else
  SLKCFLAGS="-O2"
  LIBDIRSUFFIX=""
fi

set -e

rm -rf $PKG
mkdir -p $TMP $PKG $OUTPUT
cd $TMP
rm -rf $PRGNAM-$VERSION\_Linux
tar xvf $CWD/$PRGNAM-$VERSION\_Linux.tar.gz
cd $PRGNAM-$VERSION\_Linux/src/MEGASync/mega
tar --strip-components=1 -xvf $CWD/sdk-$SDK.tar.gz
cd ../../../
chown -R root:root .
find -L . \
 \( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \
  -o -perm 511 \) -exec chmod 755 {} \; -o \
 \( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \
  -o -perm 440 -o -perm 400 \) -exec chmod 644 {} \;

cd src/MEGASync/mega
patch -p1 < $CWD/
010-megasync-freeimage-remove-obsolete-ffmpeg-macros.patch
cd ../../../
patch -p1 < $CWD/
030-megasync-app-fix-cmake-dependencies-detection.patch

cd $TMP
rm -rf vcpkg
# Now.. we will use microsoft VCPKG build system for MEGAsync desktop apps
git clone https://github.com/microsoft/vcpkg

CFLAGS="$SLKCFLAGS" \
CXXFLAGS="$SLKCFLAGS"
export CXXFLAGS+=' -DNDEBUG'

cmake -DVCPKG_ROOT=$TMP/vcpkg  -B build -S $PRGNAM-$VERSION\_Linux -DCMAKE_BUILD_TYPE=Release \
-G 'Unix Makefiles' \
-DCMAKE_MODULE_PATH:PATH="$TMP/$PRGNAM-$VERSION\_Linux/src/MEGASync/mega/contrib/cmake/modules/packages" \
-DCMAKE_SKIP_INSTALL_RPATH:BOOL='YES' \
-Wno-dev


cmake --build build --target MEGAsync

#Install
DESTDIR=$PKG cmake --install build
install -d "$PKG/usr/lib${LIBDIRSUFFIX}"
# Do Not overwrite *.so of default ffmpeg-7.x's libraries.
rm $PKG/opt/megasync/lib/*.so
# Now move ffmpeg related libs to STD lib64 dir
mv $PKG/opt/megasync/lib/* $PKG/usr/lib${LIBDIRSUFFIX}/

install -D -m644 $PRGNAM-$VERSION\_Linux/LICENCE.md -t "$PKG/usr/share/licenses/megasync"
install -D -m644 $PRGNAM-$VERSION\_Linux/installer/terms.txt -t "$PKG/usr/share/licenses/megasync"
install -D -m644 $PRGNAM-$VERSION\_Linux/src/MEGASync/mega/LICENSE "$PKG/usr/share/licenses/megasync/LICENCE-SDK"
rm -d "$PKG/opt"{/megasync{/lib,},}

find $PKG -print0 | xargs -0 file | grep -e "executable" -e "shared object" | grep ELF \
  | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true

mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
cd $TMP/$PRGNAM-$VERSION\_Linux
cp -a  README.md LICENCE.md CREDITS.md $PKG/usr/doc/$PRGNAM-$VERSION
cp $CWD/010-megasync-freeimage-remove-obsolete-ffmpeg-macros.patch \
 $CWD/030-megasync-app-fix-cmake-dependencies-detection.patch \
 $PKG/usr/doc/$PRGNAM-$VERSION
cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild

mkdir -p $PKG/install
cat $CWD/slack-desc > $PKG/install/slack-desc
cat $CWD/doinst.sh > $PKG/install/doinst.sh

cd $PKG
/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.${PKGTYPE:-txz}

MEGAsync.info
[code]
PRGNAM="MEGAsync"
VERSION="5.8.0.2"
HOMEPAGE="https://github.com/meganz/MEGAsync/"
DOWNLOAD="https://github.com/meganz/MEGAsync/archive/v5.8.0.2_Linux/MEGAsync-5.8.0.2_Linux.tar.gz \
 https://github.com/meganz/sdk/archive/v8.3.1/sdk-8.3.1.tar.gz"
MD5SUM="1d454c162ed5f2ca85a84783774aa99a \
 8e2c0573310cdb99294626b0ca3e3438"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES="FreeImage libmediainfo"
MAINTAINER=""
EMAIL=""

010-megasync-freeimage-remove-obsolete-ffmpeg-macros.patch
[code]
--- a/src/gfx/freeimage.cpp
+++ b/src/gfx/freeimage.cpp
@@ -200,12 +200,6 @@ bool GfxProviderFreeImage::readbitmapFreeimage(const LocalPath& imagePath, int s
 
 #ifdef HAVE_FFMPEG
 
-#ifdef AV_CODEC_CAP_TRUNCATED
-#define CAP_TRUNCATED AV_CODEC_CAP_TRUNCATED
-#else
-#define CAP_TRUNCATED CODEC_CAP_TRUNCATED
-#endif
-
 const char *GfxProviderFreeImage::supportedformatsFfmpeg()
 {
     return  ".264.265.3g2.3gp.3gpa.3gpp.3gpp2.mp3"
@@ -321,10 +315,6 @@ bool GfxProviderFreeImage::readbitmapFfmpeg(const LocalPath& imagePath, int size
 
     // Force seeking to key frames
     formatContext->seek2any = false;
-    if (decoder->capabilities & CAP_TRUNCATED)
-    {
-        codecContext->flags |= CAP_TRUNCATED;
-    }
 
     AVPixelFormat sourcePixelFormat = static_cast<AVPixelFormat>(codecParm->format);
     AVPixelFormat targetPixelFormat = AV_PIX_FMT_BGR24; //raw data expected by freeimage is in this format


030-megasync-app-fix-cmake-dependencies-detection.patch
[code]
--- a/src/MEGAUpdateGenerator/CMakeLists.txt
+++ b/src/MEGAUpdateGenerator/CMakeLists.txt
@@ -15,10 +15,11 @@ target_sources(MEGAUpdateGenerator
 )
 
 # Load and link needed libraries for the CHATlib target
-find_package(cryptopp CONFIG REQUIRED)
+find_package(PkgConfig REQUIRED)
+pkg_check_modules(cryptopp REQUIRED IMPORTED_TARGET libcryptopp)
 target_link_libraries(MEGAUpdateGenerator
     PRIVATE
-    cryptopp::cryptopp
+    PkgConfig::cryptopp
     MEGA::SDKlib
 )


slack-desc
[code]
# HOW TO EDIT THIS FILE:
# The "handy ruler" below makes it easier to edit a package description.
# Line up the first '|' above the ':' following the base package name, and
# the '|' on the right side marks the last column you can put a character in.
# You must make exactly 11 lines for the formatting to be correct.  It's also
# customary to leave one space after the ':' except on otherwise blank lines.

        |-----handy-ruler------------------------------------------------------|
MEGAsync: MEGAsync (mega cloud storage service)
MEGAsync:
MEGAsync: MEGAsync open source release for MEGA cloud storage services
MEGAsync:
MEGAsync:
MEGAsync: Compiled using default Slackware Qt4.
MEGAsync:
MEGAsync: Homepage: https://github.com/meganz/MEGAsync
MEGAsync: Service: https://mega.nz/
MEGAsync:
MEGAsync:

doinst.sh
[code]
if [ -x /usr/bin/update-desktop-database ]; then
  /usr/bin/update-desktop-database -q usr/share/applications >/dev/null 2>&1
fi

if [ -e usr/share/icons/hicolor/icon-theme.cache ]; then
  if [ -x /usr/bin/gtk-update-icon-cache ]; then
    /usr/bin/gtk-update-icon-cache -f usr/share/icons/hicolor >/dev/null 2>&1
  fi
fi

---
[Update] Mar.06,2025

UFR II/UFRII LT Printer Driver for Linux V6.00

Slackware フォーラムに書き込んだ成り行きで作った Canon UFR II/UFRII LT Printer の Slackware向けドライバーパッケージ作成スクリプト.
スクリプト見れば解る通り、Debianのコンパイル済みバイナリパッケージをSlackware用に再配置してるだけの手抜きパッケージです。


Canonサイトから元ソースファイルをダウンロードしてきて、アーカイブ中に含まれている Debian パッケージを取り出して作業ディレクトリに置き、
下記スクリプトを実行すればパッケージが出来上がる。

こんな感じで取り出す
[code] 
# tar xvf linux-UFRII-drv-v600-m17n-06.tar.gz
# cp linux-UFRII-drv-v600-m17n/x64/Debian/cnrdrvcups-ufr2-uk_6.00-1.06_amd64.deb .

# rm -rf linux-UFRII-drv-v600-m17n/
# rm linux-UFRII-drv-v600-m17n-06.tar.gz

# ls -al
canon-ufrii-printer-driver.SlackBuild
cnrdrvcups-ufr2-uk_6.00-1.06_amd64.deb
slack-desc



[code]  canon-ufrii-printer-driver.info
PRGNAM="canon-ufrii-printer-driver"
VERSION="6.00_1.06"
HOMEPAGE="https://asia.canon/en/support/0100924010"
DOWNLOAD="wget https://gdlp01.c-wss.com/gds/0/0100009240/36/linux-UFRII-drv-v600-m17n-06.tar.gz"
MD5SUM="cc957d0824c53c24c878057e0e96e9e2"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES=""
MAINTAINER="JW(Shinichi Abe)"
EMAIL=""


[code]  canon-ufrii-printer-driver.SlackBuild
#!/bin/bash

# Slackware build script for skypeforlinux

# Copyright 2017, 2023  Mario Preksavec, Zagreb, Croatia
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, 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.

cd $(dirname $0) ; CWD=$(pwd)

PRGNAM=canon-ufrii-printer-driver
SRCNAM=cnrdrvcups-ufr2-uk
SRCVER=${SRCVER:-6.00-1.06}
VERSION=${VERSION:-6.00_1.06}
BUILD=${BUILD:-1}
TAG=${TAG:-jw}
PKGTYPE=${PKGTYPE:-txz}

if [ -z "$ARCH" ]; then
  case "$( uname -m )" in
    i?86) ARCH=i586 ;;
    arm*) ARCH=arm ;;
       *) ARCH=$( uname -m ) ;;
  esac
fi

# If the variable PRINT_PACKAGE_NAME is set, then this script will report what
# the name of the created package would be, and then exit. This information
# could be useful to other scripts.
if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then
  echo "$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE"
  exit 0
fi

TMP=${TMP:-/tmp/SBo}
PKG=$TMP/package-$PRGNAM
OUTPUT=${OUTPUT:-/tmp}

if [ "$ARCH" != "x86_64" ]; then
  echo "$ARCH is not supported."
  exit 1
fi

set -e

rm -rf $PKG
mkdir -p $TMP $PKG $OUTPUT
cd $PKG
if [ -f $CWD/${SRCNAM}_${SRCVER}_amd64.deb ]; then
  ar p $CWD/${SRCNAM}_${SRCVER}_amd64.deb data.tar.xz | tar -xvJ
elif [ -f $CWD/${SRCNAM}-64.deb ]; then
  # Support the website download
  ar p $CWD/${SRCNAM}_${SRCVER}_amd64.deb data.tar.xz | tar -xvJ
  VERSION=$(ar p $CWD/${SRCNAM}_${SRCVER}_amd64.deb control.tar.xz \
            | tar -Ozxf - ./control | awk '/^Version:/{print $NF}')
fi
chown -R root:root .
find -L . \
 \( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \
  -o -perm 511 \) -exec chmod 755 {} \; -o \
 \( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \
  -o -perm 440 -o -perm 400 \) -exec chmod 644 {} \;

#Rename "lib" to "lib64"
mv $PKG/usr/lib $PKG/usr/lib64

mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
#mv $PKG/usr/share/$PRGNAM/LICENSE* $PKG/usr/doc/$PRGNAM-$VERSION
mv $PKG/usr/share/doc/$SRCNAM/* $PKG/usr/doc/$PRGNAM-$VERSION
rm -rf $PKG/usr/share/doc

cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild

mkdir -p $PKG/install
cat $CWD/slack-desc > $PKG/install/slack-desc
touch $CWD/doinst.sh
cat $CWD/doinst.sh > $PKG/install/doinst.sh

cd $PKG
/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE

[code]  slack-desc
# HOW TO EDIT THIS FILE:
# The "handy ruler" below makes it easier to edit a package description.  Line
# up the first '|' above the ':' following the base package name, and the '|'
# on the right side marks the last column you can put a character in.  You must
# make exactly 11 lines for the formatting to be correct.  It's also
# customary to leave one space after the ':'.

                          |-----handy-ruler------------------------------------------------------|
canon-ufrii-printer-driver: canon-ufrii-printer-driver (UFR II/UFRII LT Printer Driver)
canon-ufrii-printer-driver:
canon-ufrii-printer-driver: UFR II/UFRII LT Printer Driver for Linux V6.00
canon-ufrii-printer-driver: Install the official Canon UFRII/UFRII LT driver made for Debian
canon-ufrii-printer-driver: on Slackware.
canon-ufrii-printer-driver:
canon-ufrii-printer-driver:
canon-ufrii-printer-driver:
canon-ufrii-printer-driver:
canon-ufrii-printer-driver: Home: https://asia.canon/en/support/0100924010
canon-ufrii-printer-driver:



nvidia-driver 570.124.04 for Kernel-6.13.x

NVIDIA-Linux-x86_64-570.124.04.run was released.
This version is able to be installed against Kernel-6.13.x.

Here is a slackbuild which based on SBo's original script.
[Note] There is nothing special. We do not need any specific patches for kernel-6.13.

nvidia-driver.SlackBuild
[code]
#!/bin/bash

# Slackware build script for nvidia-driver

# Copyright 2012-2019 Edward W. Koenig, Vancouver, WA, US
# Copyright 2020-2024 Lenard Spencer, Orlando, FL, USA
#
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, 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.

cd $(dirname $0) ; CWD=$(pwd)

PRGNAM=
nvidia-driver
VERSION=${VERSION:-
570.124.04}
BUILD=${BUILD:-1}
TAG=${TAG:-jw}
PKGTYPE=${PKGTYPE:-txz}

set -e

if [ -z "$ARCH" ]; then
  case "$( uname -m )" in
    i?86) ARCH=i586 ;;
    arm*) ARCH=arm ;;
       *) ARCH=$( uname -m ) ;;
  esac
fi

TMP=${TMP:-/tmp/SBo}
PKG=$TMP/package-$PRGNAM
OUTPUT=${OUTPUT:-/tmp}

if [ "$ARCH" = "x86_64" ]; then
  SLKCFLAGS="-O2 -fPIC"
  TARGET="x86_64"
  LIBDIRSUFFIX="64"
# Set 32-bit compatibility flag default
  COMPAT32=${COMPAT32:-no}
else
  echo "$ARCH is not supported."
  exit 1
fi

if [ "${COMPAT32}" = "yes" ]; then
    MULTI="_multilib"
else
    MULTI=""
fi

# If the variable PRINT_PACKAGE_NAME is set, then this script will report what
# the name of the created package would be, and then exit. This information
# could be useful to other scripts.
if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then
  echo "$PRGNAM-$VERSION$MULTI-$TARGET-$BUILD$TAG.$PKGTYPE"
  exit 0
fi

if [ "${PERSISTENCED:-no}" = "yes" ]; then
  # 20240715 bkw: this test was borked, fixed.
  if [ "$( getent group nvidia )" = "" -o "$( getent passwd nvidia )" = "" ]; then
    echo "User and/or group nvidia do not exist!"
    echo "Please create user and group nvidia and rerun this script."
    exit 1
  fi
fi

SRCNAM=NVIDIA-Linux-$TARGET-${VERSION}
NUMJOBS=${NUMJOBS:-" -j$(expr $(nproc) + 1) "}

# make a clean package directory tree
rm -rf $PKG
rm -rf $TMP/$SRCNAM
mkdir -p $TMP $PKG $OUTPUT $PKG/install
mkdir -p $PKG/usr/lib$LIBDIRSUFFIX/xorg/modules/{drivers,extensions} \
  $PKG/etc/OpenCL/vendors/ $PKG/usr/{bin,doc,man/man1} \
  $PKG/usr/share/{applications,nvidia,pixmaps,egl/egl_external_platform.d} \
  $PKG/etc/X11/glvnd/egl_vendor.d $PKG/var/log

if [ "$COMPAT32" = "yes" ]; then
  mkdir -p $PKG/usr/lib/tls
fi

# Extract all the sources
cd $TMP
rm -rf nvidia-installer-$VERSION
tar xvf $CWD/nvidia-installer-$VERSION.tar.bz2
rm -rf nvidia-settings-$VERSION
tar xvf $CWD/nvidia-settings-$VERSION.tar.bz2
rm -rf nvidia-xconfig-$VERSION
tar xvf $CWD/nvidia-xconfig-$VERSION.tar.bz2
rm -rf nvidia-modprobe-$VERSION
tar xvf $CWD/nvidia-modprobe-$VERSION.tar.bz2
sh $CWD/$SRCNAM.run --extract-only
cd $SRCNAM
chown -R root:root .
find -L . \
 \( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \
  -o -perm 511 \) -exec chmod 755 {} \; -o \
 \( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \
  -o -perm 440 -o -perm 400 \) -exec chmod 644 {} \;

# Compiling the various open source apps instead of using the precompiled binaries
# Compiling nvidia-installer from source

cd $TMP/nvidia-installer-$VERSION

# Install various files in $PKG instead of the root filesystem:
  sed -i "s|/etc/vulkan|$PKG/etc/vulkan|" files.c
  sed -i "s|/lib/firmware/nvidia|$PKG/lib/firmware/nvidia|" files.c
  sed -i "s|\"/etc\"|\"$PKG/etc\"|" nvidia-installer.h
  sed -i "s|/var/lib/nvidia|$PKG/var/lib/nvidia|" backup.c
  sed -i "s|/usr/lib/nvidia|$PKG/usr/lib/nvidia|" files.c
  sed -i "s|/usr/lib/nvidia|$PKG/usr/lib/nvidia|" misc.c

  chown -R root:root .
  find -L . \
   \( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \
    -o -perm 511 \) -exec chmod 755 {} \; -o \
   \( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \
    -o -perm 440 -o -perm 400 \) -exec chmod 644 {} \;

  CFLAGS="$SLKCFLAGS" LDFLAGS="-lz" make $NUMJOBS

  install -m 755 _out/Linux_$TARGET/nvidia-installer $PKG/usr/bin/
  install -m 644 _out/Linux_$TARGET/nvidia-installer.1.gz $PKG/usr/man/man1/

cd -

# Now we need to copy the newly patched and compiled nvidia-installer
# to the driver source tree for use
mv -f $PKG/usr/bin/nvidia-installer $TMP/$SRCNAM
mv -f $PKG/usr/man/man1/nvidia-installer.1.gz $TMP/$SRCNAM

if [ "$ARCH" = "x86_64" -a "${COMPAT32}" = "yes" ]; then
    COMP32="--install-compat32-libs --compat32-prefix=$PKG/usr"
else
    if [ ! "$ARCH" = "x86_64" ]; then
        COMP32=""
    else
        COMP32="--no-install-compat32-libs"
    fi
fi

# Install the binary libs using nvidia-installer compiled above
cd $TMP/$SRCNAM
./nvidia-installer -s --no-kernel-module --no-drm --no-unified-memory \
  -z -n -b --no-rpms --no-distro-scripts \
  --no-kernel-module-source --no-x-check --force-libglx-indirect \
  --x-prefix=$PKG/usr \
  --x-module-path=$PKG/usr/lib${LIBDIRSUFFIX}/xorg/modules \
  --x-library-path=$PKG/usr/lib${LIBDIRSUFFIX} \
  --x-sysconfig-path=$PKG/etc/X11/xorg.conf.d \
  --opengl-prefix=$PKG/usr \
  --utility-prefix=$PKG/usr \
  --utility-libdir=lib${LIBDIRSUFFIX} \
  --documentation-prefix=$PKG/usr \
  --application-profile-path=$PKG/usr/share/nvidia \
  --glvnd-egl-config-path=$PKG/etc/X11/glvnd/egl_vendor.d \
  --log-file-name=$PKG/var/log/nvidia-installer.log \
  --egl-external-platform-config-path=$PKG/usr/share/egl/egl_external_platform.d \
  --no-nvidia-modprobe \
  --no-install-libglvnd \
  --no-wine-files \
  --no-systemd \
  --no-peermem \
  $COMP32

# If we are using Wine, then:
if [ "${WINE:-no}" != "no" ]; then
  mkdir -p $PKG/usr/lib$LIBDIRSUFFIX/nvidia/wine
  install -m 755 _nvngx.dll $PKG/usr/lib$LIBDIRSUFFIX/nvidia/wine
  install -m 755 nvngx.dll $PKG/usr/lib$LIBDIRSUFFIX/nvidia/wine
fi
# libOpenCL.so is now included in 15.0 (in ocl-icd),
# so we don't need this one.
rm -f $PKG/usr/lib${LIBDIRSUFFIX}/libOpenCL.so*
if [ "${COMPAT32}" = "yes" ]; then
    rm -f $PKG/usr/lib/libOpenCL.so*
fi
# remove a pair of folders installed and used by nvidia-installer but
# no longer needed (caused the "failed to remove some directories"
# warning message):
rm -rf $PKG/usr/lib/nvidia || true
rm -rf $PKG/var/lib || true

# if not multilib, remove the unneeded /usr/lib folder:
if [ "${COMPAT32}" != "yes" ]; then
  rm -rf $PKG/usr/lib || true
fi

# Mitigate a bug in nvidia-installer that misplaces a symlink
# (Thanks to marco70 on LQ for catching this)
( cd $PKG/usr/lib${LIBDIRSUFFIX}/gbm
rm -f nvidia-drm_gbm.so
  ln -sf ../libnvidia-allocator.so.1 nvidia-drm_gbm.so
)
# Compile utilites from source, replacing the precompiled versions
#
# Compiling nvidia-settings
cd $TMP/nvidia-settings-$VERSION
  chown -R root:root .
  find -L . \
   \( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \
    -o -perm 511 \) -exec chmod 755 {} \; -o \
   \( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \
    -o -perm 440 -o -perm 400 \) -exec chmod 644 {} \;

  cd src/libXNVCtrl
    make clean
    CFLAGS="$SLKCFLAGS" \
    make
  cd ../../

  CFLAGS="$SLKCFLAGS" \
  make

  install -m 755 src/_out/Linux_$TARGET/nvidia-settings $PKG/usr/bin/
  install -m 644 doc/_out/Linux_$TARGET/nvidia-settings.1.gz $PKG/usr/man/man1/
  install -m 644 doc/nvidia-settings.desktop $PKG/usr/share/applications/
  install -m 644 doc/nvidia-settings.png $PKG/usr/share/pixmaps/
# For nvidia-settings GUI support
  install -m 755 src/_out/Linux_$TARGET/libnvidia-gtk2.so $PKG/usr/lib$LIBDIRSUFFIX/libnvidia-gtk2.so.$VERSION
  install -m 755 src/_out/Linux_$TARGET/libnvidia-gtk3.so $PKG/usr/lib$LIBDIRSUFFIX/libnvidia-gtk3.so.$VERSION
cd -

# Compiling nvidia-xconfig
cd $TMP/nvidia-xconfig-$VERSION
  chown -R root:root .
  find -L . \
   \( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \
    -o -perm 511 \) -exec chmod 755 {} \; -o \
   \( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \
    -o -perm 440 -o -perm 400 \) -exec chmod 644 {} \;

  CFLAGS="$SLKCFLAGS" \
  make

  install -m 755 _out/Linux_$TARGET/nvidia-xconfig $PKG/usr/bin/
  install -m 644 _out/Linux_$TARGET/nvidia-xconfig.1.gz $PKG/usr/man/man1/
cd -

# Some optional utilities, such as laptop for possible GPU switching and
# nvidia-modprobe needed to create device nodes

# Compiling nvidia-modprobe
  cd $TMP/nvidia-modprobe-$VERSION
    chown -R root:root .
    find -L . \
     \( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \
      -o -perm 511 \) -exec chmod 755 {} \; -o \
     \( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \
      -o -perm 440 -o -perm 400 \) -exec chmod 644 {} \;

    CFLAGS="$SLKCFLAGS" make
# must be installed suid root for nvidia-persistenced to work properly
    install -m 4755 _out/Linux_$TARGET/nvidia-modprobe $PKG/usr/bin/
    install -m 644 _out/Linux_$TARGET/nvidia-modprobe.1.gz $PKG/usr/man/man1/
  cd -

# These update the paths in nvidia-settings.desktop
sed -i "s|__UTILS_PATH__|/usr/bin|" $PKG/usr/share/applications/nvidia-settings.desktop
sed -i "s|__PIXMAP_PATH__|/usr/share/pixmaps|" $PKG/usr/share/applications/nvidia-settings.desktop
sed -i "s|__NVIDIA_SETTINGS_DESKTOP_CATEGORIES__|Settings;|" $PKG/usr/share/applications/nvidia-settings.desktop
# Remove depcrecated entry in nvidia-settings.desktop
sed -i '/Encoding/d' $PKG/usr/share/applications/nvidia-settings.desktop

# Remove xorg conf folder since we handle that in nvidia-kernel
rm -rf $PKG/etc/X11/xorg.conf.d

cd $TMP/$SRCNAM
# put docs in the right place
mv $PKG/usr/share/man/man1/nvidia-* $PKG/usr/man/man1
rm -rf $PKG/usr/share/man
mv $PKG/usr/share/doc/NVIDIA_GLX-1.0 $PKG/usr/doc/$PRGNAM-$VERSION
rm -rf $PKG/usr/share/doc
cp -a LICENSE NVIDIA_Changelog README.txt $PKG/usr/doc/$PRGNAM-$VERSION
cat $CWD/README > $PKG/usr/doc/$PRGNAM-$VERSION/README.Slackware
cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
cat $CWD/fetch-sources.sh > $PKG/usr/doc/$PRGNAM-$VERSION/fetch-sources.sh

sed "s/PKGVERSION/$VERSION/g" $CWD/slack-desc > $PKG/install/slack-desc
if [ "$COMPAT32" = "yes" ]; then
   sed -i "s|nvidia-driver: @MULTILIB@|nvidia-driver: This package includes the 32-bit libraries.|" $PKG/install/slack-desc
else
   sed -i "s|nvidia-driver: @MULTILIB@|nvidia-driver:|" $PKG/install/slack-desc
fi

cat $CWD/doinst.sh > $PKG/install/doinst.sh

# Add nvidia-persistenced:
if [ "${PERSISTENCED:-no}" = "yes" ]; then
  cd $TMP
  rm -rf nvidia-persistenced-$VERSION.tar.bz2
  tar xvf $CWD/nvidia-persistenced-$VERSION.tar.bz2
# Compiling nvidia-persistenced
  cd $TMP/nvidia-persistenced-$VERSION
  chown -R root:root .
  find -L . \
   \( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \
    -o -perm 511 \) -exec chmod 755 {} \; -o \
   \( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \
    -o -perm 440 -o -perm 400 \) -exec chmod 644 {} \;

  CFLAGS="$SLKCFLAGS" make
  install -m 755 _out/Linux_$TARGET/nvidia-persistenced $PKG/usr/bin/
  install -m 644 _out/Linux_$TARGET/nvidia-persistenced.1.gz $PKG/usr/man/man1/
# install rc.nvidia-perstistenced:
  mkdir -p $PKG/etc/rc.d $PKG/var/run/nvidia-persistenced
  install -m 755 $CWD/rc.nvidia-persistenced $PKG/etc/rc.d/rc.nvidia-persistenced
  sed -i "s|__USER__|nvidia|" $PKG/etc/rc.d/rc.nvidia-persistenced
  chown nvidia:nvidia $PKG/var/run/nvidia-persistenced
fi

# We must now remove our custom nvidia-installer as it will no longer
# work on an installed driver:
rm -f $PKG/usr/bin/nvidia-{installer,uninstall}

# Flag multilib as needed and build package.
cd $PKG
/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION$MULTI-$TARGET-$BUILD$TAG.$PKGTYPE


doinst.sh
[code]
# Add nvidia-persistenced:
if [ "${PERSISTENCED:-no}" = "yes" ]; then
  cd $TMP
  rm -rf nvidia-persistenced-$VERSION.tar.bz2
  tar xvf $CWD/nvidia-persistenced-$VERSION.tar.bz2
# Compiling nvidia-persistenced
  cd $TMP/nvidia-persistenced-$VERSION
  chown -R root:root .
  find -L . \
   \( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \
    -o -perm 511 \) -exec chmod 755 {} \; -o \
   \( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \
    -o -perm 440 -o -perm 400 \) -exec chmod 644 {} \;

  CFLAGS="$SLKCFLAGS" make
  install -m 755 _out/Linux_$TARGET/nvidia-persistenced $PKG/usr/bin/
  install -m 644 _out/Linux_$TARGET/nvidia-persistenced.1.gz $PKG/usr/man/man1/
# install rc.nvidia-perstistenced:
  mkdir -p $PKG/etc/rc.d $PKG/var/run/nvidia-persistenced
  install -m 755 $CWD/rc.nvidia-persistenced $PKG/etc/rc.d/rc.nvidia-persistenced
  sed -i "s|__USER__|nvidia|" $PKG/etc/rc.d/rc.nvidia-persistenced
  chown nvidia:nvidia $PKG/var/run/nvidia-persistenced
fi

# We must now remove our custom nvidia-installer as it will no longer
# work on an installed driver:
rm -f $PKG/usr/bin/nvidia-{installer,uninstall}

# Flag multilib as needed and build package.
cd $PKG
/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION$MULTI-$TARGET-$BUILD$TAG.$PKGTYPE
root@jw-slackware:/usr/src/001_NVIDIA-kernel_and_drivers/02_nvidia-driver# cat doinst.sh
if [ -x /usr/bin/update-desktop-database ]; then
  /usr/bin/update-desktop-database -q usr/share/applications
fi

if [ -e usr/share/icons/hicolor/icon-theme.cache ]; then
  if [ -x /usr/bin/gtk-update-icon-cache ]; then
    /usr/bin/gtk-update-icon-cache -f usr/share/icons/hicolor >/dev/null 2>&1
  fi
fi


slack-desc
[code]
# HOW TO EDIT THIS FILE:
# The "handy ruler" below makes it easier to edit a package description.
# Line up the first '|' above the ':' following the base package name, and
# the '|' on the right side marks the last column you can put a character in.
# You must make exactly 11 lines for the formatting to be correct.  It's also
# customary to leave one space after the ':' except on otherwise blank lines.

             |-----handy-ruler------------------------------------------------------|
nvidia-driver: nvidia-driver (Proprietary Binary Nvidia Video Driver)
nvidia-driver:
nvidia-driver: This is the proprietary binary video driver from nvidia for
nvidia-driver: the x.org X server. This package does not include the kernel
nvidia-driver: module - it is included in the nvidia-kernel package.
nvidia-driver:
nvidia-driver: See /usr/doc/nvidia-driver-PKGVERSION/README.Slackware
nvidia-driver: for more information.
nvidia-driver:
nvidia-driver: https://www.nvidia.com
nvidia-driver:


nvidia-kernel.info
[code]
PRGNAM="nvidia-driver"
VERSION="
570.124.04"
HOMEPAGE="https://www.nvidia.com"
DOWNLOAD="UNSUPPORTED"
MD5SUM=""
DOWNLOAD_x86_64="
https://download.nvidia.com/XFree86/Linux-x86_64/570.124.04/NVIDIA-Linux-x86_64-570.124.04.run \
                
https://download.nvidia.com/XFree86/nvidia-installer/nvidia-installer-570.124.04.tar.bz2 \
                
https://download.nvidia.com/XFree86/nvidia-modprobe/nvidia-modprobe-570.124.04.tar.bz2 \
                
https://download.nvidia.com/XFree86/nvidia-persistenced/nvidia-persistenced-570.124.04.tar.bz2 \
                
https://download.nvidia.com/XFree86/nvidia-settings/nvidia-settings-570.124.04.tar.bz2 \
                
https://download.nvidia.com/XFree86/nvidia-xconfig/nvidia-xconfig-570.124.04.tar.bz2"
MD5SUM_x86_64="3db4c7546e72893e076fffcff2568329 \
               e552a6a70f555b347c8dd4dd259d8d8a \
               07d62f807e9592bd76ea179c9c8ae2eb \
               f9442f54d7a0ba19f46382430112e7b9 \
               2640bd2bf2bdfb32777ffb792a996158 \
               8c54afe6c29972949ec06554fff4babf"
REQUIRES="
nvidia-kernel"
MAINTAINER=""
EMAIL=""

fetch-sources.sh
[code]
#!/bin/sh

echo -n VERSION:
read VERSION

#wget https://download.nvidia.com/XFree86/Linux-x86_64/$VERSION/NVIDIA-Linux-x86_64-${VERSION}.run
wget https://download.nvidia.com/XFree86/nvidia-installer/nvidia-installer-${VERSION}.tar.bz2
wget https://download.nvidia.com/XFree86/nvidia-modprobe/nvidia-modprobe-${VERSION}.tar.bz2
wget https://download.nvidia.com/XFree86/nvidia-persistenced/nvidia-persistenced-${VERSION}.tar.bz2
wget https://download.nvidia.com/XFree86/nvidia-settings/nvidia-settings-${VERSION}.tar.bz2
wget https://download.nvidia.com/XFree86/nvidia-xconfig/nvidia-xconfig-${VERSION}.tar.bz2

echo "...DONE!"





===


nvidia-kernel 570.124.04 for Kernel-6.13.x

NVIDIA-Linux-x86_64-570.124.04.run was released.
This version is able to be installed against Kernel-6.13.x.

Here is a slackbuild which based on SBo's original script.
[Note] There is nothing special. We do not need any specific patches for kernel-6.13.

nvidia-kernel.SlackBuild
[code]
#!/bin/bash

# Slackware build script for nvidia-kernel

# Copyright 2007-2011 Heinz Wiesinger, Amsterdam, The Netherlands
# Copyright 2012-2019 Edward W. Koenig, Vancouver, WA, USA
# Updates copyright 2020-2024 Lenard Spencer, Orlando, FL, USA
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, 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.

# Thanks to Robby Workman for suggestions to improve this script.

cd $(dirname $0) ; CWD=$(pwd)

PRGNAM=
nvidia-kernel
VERSION=${VERSION:-
570.124.04}
BUILD=${BUILD:-1}
TAG=${TAG:-jw}
PKGTYPE=${PKGTYPE:-txz}

KERNEL=${KERNEL:-$(uname -r)}
KERNELPATH=${KERNELPATH:-/lib/modules/${KERNEL}/build}

if [ "${OPEN:-yes}" = "yes" ]; then
  OPEN1="-open"
  OPEN2="_OPEN"
  DESC="OPEN"
else
  unset OPEN1
  unset OPEN2
  DESC="PROPRIETARY"
fi

set -e

PKGVER=${VERSION}${OPEN2}_$(echo $KERNEL | tr - _)

if [ -z "$ARCH" ]; then
  case "$( uname -m )" in
    i?86) ARCH=i586 ;;
    arm*) ARCH=arm ;;
       *) ARCH=$( uname -m ) ;;
  esac
fi

if [ "$ARCH" = "x86_64" ]; then
  TARGET="x86_64"
else
  echo "$ARCH is not supported."
  exit 1
fi

unset ARCH

SRCNAM=NVIDIA-Linux-$TARGET-${VERSION}

if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then
  echo "$PRGNAM-$PKGVER-$TARGET-$BUILD$TAG.$PKGTYPE"
  exit 0
fi

TMP=${TMP:-/tmp/SBo}
PKG=$TMP/package-$PRGNAM
OUTPUT=${OUTPUT:-/tmp}

rm -rf $PKG
mkdir -p $TMP $PKG $OUTPUT
cd $TMP || exit 1
rm -rf $SRCNAM
sh $CWD/$SRCNAM.run --extract-only || exit 1
cd $SRCNAM || exit 1
chown -R root:root .
find -L . \
 \( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \
  -o -perm 511 \) -exec chmod 755 {} \; -o \
 \( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \
  -o -perm 440 -o -perm 400 \) -exec chmod 644 {} \;

NUMJOBS=${NUMJOBS:-" -j$(expr $(nproc) + 1) "}

( cd kernel$OPEN1  || exit 1

# CC=${CC:-gcc} suppresses an otherwise harmless "compiler mismatch"
# message.  If you custom-build your kernel with clang,
# then pass CC=clang to this script.
  CC=${CC:-gcc} make ${NUMJOBS} SYSSRC=$KERNELPATH module || exit 1
)

mkdir -p $PKG/lib/modules/$KERNEL/kernel/drivers/video
install -m 0664 kernel$OPEN1/nvidia.ko $PKG/lib/modules/$KERNEL/kernel/drivers/video/
install -m 0664 kernel$OPEN1/nvidia-modeset.ko $PKG/lib/modules/$KERNEL/kernel/drivers/video/
install -m 0664 kernel$OPEN1/nvidia-drm.ko $PKG/lib/modules/$KERNEL/kernel/drivers/video/
install -m 0664 kernel$OPEN1/nvidia-uvm.ko $PKG/lib/modules/$KERNEL/kernel/drivers/video/

mkdir -p $PKG/usr/share/X11/xorg.conf.d/
cat $TMP/$SRCNAM/nvidia-drm-outputclass.conf > $PKG/usr/share/X11/xorg.conf.d/10-nvidia.conf

mkdir -p $PKG/usr/doc/$PRGNAM-$PKGVER
cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$PKGVER/$PRGNAM.SlackBuild

mkdir -p $PKG/install
sed "s%@DESC@%$DESC%" $CWD/slack-desc > $PKG/install/slack-desc
sed "s%@KERNEL@%$KERNEL%" $CWD/doinst.sh > $PKG/install/doinst.sh

cd $PKG
/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$PKGVER-$TARGET-$BUILD$TAG.$PKGTYPE


doinst.sh
[code]
chroot . /sbin/depmod -a @KERNEL@ 2>/dev/null


slack-desc
[code]
# HOW TO EDIT THIS FILE:
# The "handy ruler" below makes it easier to edit a package description.
# Line up the first '|' above the ':' following the base package name, and
# the '|' on the right side marks the last column you can put a character in.
# You must make exactly 11 lines for the formatting to be correct.  It's also
# customary to leave one space after the ':' except on otherwise blank lines.

             |-----handy-ruler------------------------------------------------------|
nvidia-kernel: nvidia-kernel (Kernel Interface for the nvidia driver)
nvidia-kernel:
nvidia-kernel: This is the @DESC@ version of the kernel module needed by the
nvidia-kernel: binary nvidia-driver.
nvidia-kernel:
nvidia-kernel:
nvidia-kernel:
nvidia-kernel:
nvidia-kernel:
nvidia-kernel:
nvidia-kernel:


nvidia-kernel.info
[code]
PRGNAM="nvidia-kernel"
VERSION="
570.124.04"
HOMEPAGE="https://www.nvidia.com"
DOWNLOAD="UNSUPPORTED"
MD5SUM=""
DOWNLOAD_x86_64="
https://download.nvidia.com/XFree86/Linux-x86_64/570.124.04/NVIDIA-Linux-x86_64-570.124.04.run"
MD5SUM_x86_64="3db4c7546e72893e076fffcff2568329"
REQUIRES=""
MAINTAINER=""



===


AMF-headers-1.4.35 for the latest FFmpeg Git

2025/02/02 slackware64-current公式に AMF-headers-1.4.35 パッケージが入ってきた。
Thanks to Patrick !

Patのパッケージソースは AMF-headers-v1.4.35.tar.gz であるため、自前の同パッケージも
同じソースからリビルドしたので、ここに記す。

また、最新FFmpeg.git 向けのパッチ  001_AV1_B-frame-support.patch を
ソース AMF-headers-v1.4.35.tar.gz 用に作り直した。

[ 背景 ]
FFmpeg7.xを " --enable-amf " 付きでコンパイルする場合、amf-headers がインストールされている
必要があるが、2025年1月19日現在のFFmpeg最新Gitをコンパイルすると、avcodec/amfenc の 
B-Frame support 関連でエラーになり、コンパイルに失敗する。

これを回避するには AMF-headers-1.4.35 に対策パッチをあてて更新する必要がある。
以下は、その AMF-headers-1.4.35 対策パッケージの詳細。


Here is a patch to AMF-headers-1.4.35

[code]  001_AV1_B-frame-support.patch
diff -Nru a/AMF/components/VideoEncoderAV1.h b/AMF/components/VideoEncoderAV1.h
--- a/AMF/components/VideoEncoderAV1.h    2024-12-30 22:01:35.454080599 +0900
+++ b/AMF/components/VideoEncoderAV1.h    2024-12-30 21:52:36.161034517 +0900
@@ -356,6 +356,7 @@
 #define AMF_VIDEO_ENCODER_AV1_CAP_MAX_NUM_TEMPORAL_LAYERS           L"Av1CapMaxNumTemporalLayers"       // amf_int64; default = N/A; The cap of maximum number of temporal layers
 #define AMF_VIDEO_ENCODER_AV1_CAP_MAX_NUM_LTR_FRAMES                L"Av1CapMaxNumLTRFrames"            // amf_int64; default = N/A; The cap of maximum number of LTR frames. This value is calculated based on current value of AMF_VIDEO_ENCODER_AV1_MAX_NUM_TEMPORAL_LAYERS.
 #define AMF_VIDEO_ENCODER_AV1_CAP_SUPPORT_TILE_OUTPUT               L"AV1SupportTileOutput"             // amf_bool; if tile output is supported
+#define AMF_VIDEO_ENCODER_AV1_CAP_BFRAMES                           L"AV1BFrames"                       // amf_bool; if b frames are supported for AV1
 
 #define AMF_VIDEO_ENCODER_AV1_CAP_SUPPORT_SMART_ACCESS_VIDEO        L"Av1EncoderSupportSmartAccessVideo"    // amf_bool; returns true if system supports SmartAccess Video
 #define AMF_VIDEO_ENCODER_AV1_CAP_WIDTH_ALIGNMENT_FACTOR            L"Av1WidthAlignmentFactor"          // amf_int64; default = 1; The encoder capability for width alignment
@@ -363,4 +364,9 @@
 
 #define AMF_VIDEO_ENCODER_AV1_MULTI_HW_INSTANCE_ENCODE              L"Av1MultiHwInstanceEncode"             // amf_bool; flag to enable AV1 multi VCN encode.
 
+// properties for Picture Management (VCN5 feature)
+#define AMF_VIDEO_ENCODER_AV1_MAX_CONSECUTIVE_BPICTURES             L"Av1MaxConsecutiveBPictures"        // amf_int64; default 0 or 127, determined by AMF_VIDEO_ENCODER_AV1_CAP_BFRAMES. Maximum number of consecutive B frames for B frame encoding
+#define AMF_VIDEO_ENCODER_AV1_B_PIC_PATTERN                         L"Av1BPicturesPattern"               // amf_int64; default 0. Number of B frames for B frame encoding
+#define AMF_VIDEO_ENCODER_AV1_ADAPTIVE_MINIGOP                      L"Av1AdaptiveMiniGop"                // amf_bool; default false. Adaptive miniGOP size for B frame encoding
+
 #endif //#ifndef AMF_VideoEncoderAV1_h


[code]  AMF-headers.info (source file)
PRGNAM="AMF-headers"
VERSION="1.4.35"
HOMEPAGE="https://github.com/GPUOpen-LibrariesAndSDKs/AMF"
DOWNLOAD="https://github.com/GPUOpen-LibrariesAndSDKs/AMF/releases/download/v1.4.35/AMF-headers-v1.4.35.tar.gz"
MD5SUM="ee23bff88cbdbc03ec1ff0b8a5f92da9"
DOWNLOAD_x86_64="direct download link(s) of application source tarball(s), x86_64 only"
MD5SUM_x86_64="MD5SUM_x86_64@"
REQUIRES="%README%"
MAINTAINER="JW(Shinichi Abe)"
EMAIL=""


[code]  AMF-headers.SlackBuild
#!/bin/bash

# Copyright 2025  Patrick J. Volkerding, Sebeka, Minnesota, USA
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, 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.

cd $(dirname $0) ; CWD=$(pwd)

PKGNAM=AMF-headers
SRCDIR=amf-headers
SRCVER=${SRCVER:-$(echo $PKGNAM-*.tar.?z | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
VERSION=$(echo $SRCVER | tr -d v)
BUILD=${BUILD:-2jw}

# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
  case "$(uname -m)" in
    i?86) ARCH=i686 ;;
    arm*) readelf /usr/bin/file -A | egrep -q "Tag_CPU.*[4,5]" && ARCH=arm || ARCH=armv7hl ;;
    # Unless $ARCH is already set, use uname -m for all other archs:
    *) ARCH=$(uname -m) ;;
  esac
  export ARCH
fi

# This is a noarch package:
ARCH=noarch

# If the variable PRINT_PACKAGE_NAME is set, then this script will report what
# the name of the created package would be, and then exit. This information
# could be useful to other scripts.
if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then
  echo "$PKGNAM-$VERSION-$ARCH-$BUILD.txz"
  exit 0
fi

TMP=${TMP:-/tmp}
PKG=$TMP/package-$PKGNAM

rm -rf $PKG
mkdir -p $TMP $PKG

cd $TMP
rm -rf $SRCDIR-$SRCVER
tar xvf $CWD/$PKGNAM-$SRCVER.tar.?z || exit 1
cd $SRCDIR-$SRCVER || exit 1

# Add Interface for AV1 B-frame Support
patch -p1 < $CWD/001_AV1_B-frame-support.patch --verbose || exit 1


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 {} \+

# Install header files into package:
mkdir -p $PKG/usr/include
cp -a * $PKG/usr/include

# Add a documentation directory:
mkdir -p $PKG/usr/doc/${PKGNAM}-$VERSION
cp -a \
  $CWD/LICENSE.txt $CWD/README.md \
  $PKG/usr/doc/${PKGNAM}-$VERSION
# Copy slackbuild and patches
cp -a \
  $CWD/${PKGNAM}.SlackBuild $CWD/001_AV1_B-frame-support.patch \
  $PKG/usr/doc/${PKGNAM}-$VERSION

chown root:root $PKG/usr/doc/${PKGNAM}-$VERSION/*
chmod 644 $PKG/usr/doc/${PKGNAM}-$VERSION/*

mkdir -p $PKG/install
cat $CWD/slack-desc > $PKG/install/slack-desc

cd $PKG
/sbin/makepkg -l y -c n $TMP/$PKGNAM-$VERSION-$ARCH-$BUILD.txz

[code]  slack-desc
# HOW TO EDIT THIS FILE:
# The "handy ruler" below makes it easier to edit a package description. Line
# up the first '|' above the ':' following the base package name, and the '|'
# on the right side marks the last column you can put a character in. You must
# make exactly 11 lines for the formatting to be correct. It's also
# customary to leave one space after the ':'.

           |-----handy-ruler------------------------------------------------------|
AMF-headers: AMF-headers (Advanced Media Framework headers)
AMF-headers:
AMF-headers: AMF is a light-weight, portable multimedia framework that abstracts
AMF-headers: away most of the platform and API-specific details and allows for easy
AMF-headers: implementation of multimedia applications using a variety of
AMF-headers: technologies, such as DirectX 11, OpenGL, and OpenCL and facilitates
AMF-headers: an efficient interop between them. AMF targets AMD GPUs.
AMF-headers:
AMF-headers: Homepage: https://github.com/GPUOpen-LibrariesAndSDKs/AMF/wiki
AMF-headers:
AMF-headers:



RTL88x2bu_chipset-driver with kernel-6.13 support

RTL88x2bu_chipset-driver-build with kernel-6.13 support

 Linux Driver for USB WiFi Adapters that are based on the RTL8812BU and RTL8822BU Chipsets

Thanks to morrownr

RTL88x2bu.SlackBuild
[code]
#!/bin/sh

# Slackware build script for RTL88x2bu driver

# Copyright 2025 JW(Shinichi Abe) <shin1.abe@nifty.com>
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, 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.

PRGNAM=RTL88x2bu
VERSION=${VERSION:-5.13.1}
GIT_SHORTVER=${GIT_SHORTVER:-20241206_139e4fc}
COMMIT=${COMMIT:-139e4fc2eeea7a140239d34c73b6bf4f69c1f74d}
KERNEL=${KERNEL:-$(uname -r)}
#KSHORT_VER=`uname -r | sed -e "s/-jw//"`
BUILD=${BUILD:-
2}
TAG=${TAG:-jw}

if [ -z "$ARCH" ]; then
  case "$( uname -m )" in
    i?86) ARCH=i586 ;;
    arm*) ARCH=arm ;;
       *) ARCH=$( uname -m ) ;;
  esac
fi

CWD=$(pwd)
TMP=${TMP:-/tmp/SBo}
PKG=$TMP/package-$PRGNAM
OUTPUT=${OUTPUT:-/tmp}

if [ "$ARCH" = "i586" ]; then
  SLKCFLAGS="-O2 -march=i586 -mtune=i686"
  LIBDIRSUFFIX=""
elif [ "$ARCH" = "i686" ]; then
  SLKCFLAGS="-O2 -march=i686 -mtune=i686"
  LIBDIRSUFFIX=""
elif [ "$ARCH" = "x86_64" ]; then
  SLKCFLAGS="-O2 -fPIC"
  LIBDIRSUFFIX="64"
else
  SLKCFLAGS="-O2"
  LIBDIRSUFFIX=""
fi

set -e

rm -rf $PKG
mkdir -p $TMP $PKG $OUTPUT
cd $TMP

# Download source
# sh $CWD/fetch-RTL8812au-git_commit-source.sh
#
# fetch the commit git source
wget https://github.com/morrownr/88x2bu-20210702/archive/${COMMIT}/88x2bu-20210702-${COMMIT}.tar.gz

# Rename original git source name to "RTL88x2bu-${GIT_SHORTVER}"
tar xvf 88x2bu-20210702-${COMMIT}.tar.gz && mv 88x2bu-20210702-${COMMIT} RTL88x2bu-${GIT_SHORTVER}
rm 88x2bu-20210702-${COMMIT}.tar.gz

# Create tar.xz file for my packaging work
tar cJvf RTL88x2bu-${GIT_SHORTVER}.tar.xz RTL88x2bu-${GIT_SHORTVER}/ && rm -rf RTL88x2bu-${GIT_SHORTVER}/

echo "...DONE!"

rm -rf $PRGNAM-$GIT_SHORTVER
tar xvf $PRGNAM-${GIT_SHORTVER}.tar.xz

cd $PRGNAM-$GIT_SHORTVER
chown -R root:root .
find -L . \
 \( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \
  -o -perm 511 \) -exec chmod 755 {} \; -o \
 \( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \
  -o -perm 440 -o -perm 400 \) -exec chmod 644 {} \;

# Fix build for linux-6.13
zcat $CWD/001_RTL88x2bu_fix-build_for_linux-6.13.patch.gz | patch -p1 --verbose || exit 1


NUMJOBS=${NUMJOBS:-" -j$(expr $(nproc) + 1) "}

CFLAGS="$SLKCFLAGS" \
CXXFLAGS="$SLKCFLAGS" \
make $NUMJOBS

mkdir -p $PKG/lib/modules/$KERNEL/kernel/drivers/net/wireless
install -m 0664 88x2bu.ko $PKG/lib/modules/$KERNEL/kernel/drivers/net/wireless/

mkdir -p $PKG/install
sed "s%@KERNEL@%$KERNEL%" $CWD/doinst.sh > $PKG/install/doinst.sh

find $PKG -print0 | xargs -0 file | grep -e "executable" -e "shared object" | grep ELF \
  | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true

find $PKG -name perllocal.pod \
  -o -name ".packlist" \
  -o -name "*.bs" \
  | xargs rm -f

mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
cp -a \
  docs LICENSE README.md supported-device-IDs \
  $PKG/usr/doc/$PRGNAM-$VERSION
cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild

mkdir -p $PKG/install
cat $CWD/slack-desc > $PKG/install/slack-desc

cd $PKG
#/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-${VERSION}_${KSHORT_VER}-$ARCH-$BUILD$TAG.${PKGTYPE:-txz}
/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-${VERSION}_${KERNEL}-$ARCH-$BUILD$TAG.${PKGTYPE:-txz}

001_RTL88x2bu_fix-build_for_linux-6.13.patch
[code]
diff -Nru a/os_dep/linux/ioctl_cfg80211.c b/os_dep/linux/ioctl_cfg80211.c
--- a/os_dep/linux/ioctl_cfg80211.c    2025-01-21 17:47:07.510188310 +0900
+++ b/os_dep/linux/ioctl_cfg80211.c    2025-01-21 17:44:01.076172380 +0900
@@ -6911,7 +6911,10 @@
 #endif /* (LINUX_VERSION_CODE >= KERNEL_VERSION(3, 8, 0)) */
 
 static int cfg80211_rtw_set_monitor_channel(struct wiphy *wiphy
-#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3, 8, 0))
+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(6, 13, 0))
+    , struct net_device *dev
+    , struct cfg80211_chan_def *chandef
+#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3, 8, 0))
     , struct cfg80211_chan_def *chandef
 #else
     , struct ieee80211_channel *chan
diff -Nru a/os_dep/linux/os_intfs.c b/os_dep/linux/os_intfs.c
--- a/os_dep/linux/os_intfs.c    2025-01-21 17:47:25.157189818 +0900
+++ b/os_dep/linux/os_intfs.c    2025-01-21 17:44:47.921176382 +0900
@@ -31,7 +31,7 @@
  * This declaration was created to resolve an error on Rockchip.
  * You can modify or add flags in the fs/Makefile.
  */
-#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 10, 0)
+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5, 10, 0) && LINUX_VERSION_CODE < KERNEL_VERSION(6, 13, 0))
     MODULE_IMPORT_NS(VFS_internal_I_am_really_a_filesystem_and_am_NOT_a_driver);
 #endif

doinst.sh
[code]
chroot . /sbin/depmod -a @KERNEL@ 2>/dev/null


slack-desc
[code]
# HOW TO EDIT THIS FILE:
# The "handy ruler" below makes it easier to edit a package description.
# Line up the first '|' above the ':' following the base package name, and
# the '|' on the right side marks the last column you can put a character in.
# You must make exactly 11 lines for the formatting to be correct.  It's also
# customary to leave one space after the ':' except on otherwise blank lines.

         |-----handy-ruler------------------------------------------------------|
RTL88x2bu: RTL88x2bu (88x2bu.ko)
RTL88x2bu:
RTL88x2bu: Linux Driver for USB WiFi Adapters that are based on the RTL8812BU
RTL88x2bu: and RTL8822BU Chipsets
RTL88x2bu:
RTL88x2bu: HOME:https://github.com/morrownr/88x2bu-20210702
RTL88x2bu:
RTL88x2bu:
RTL88x2bu:
RTL88x2bu:
RTL88x2bu:


supported-device-IDs
[code]
USB Vendor and Device ID List for rtl8812bu and rtl8822bu chipset based USB WiFi Adapters

To determine your Device ID:

$ lsusb

Example output:

Bus 003 Device 011: ID 0bda:b812 Realtek Semiconductor Corp.

ID VendorID:DeviceID = 0bda:b812

We can search the list of driver supported IDs shown below.

Realtek default IDs (3)

ID 0BDA:B812 - Default ID for USB Single-function, WiFi only
ID 0BDA:B81A - Default ID
ID 0BDA:B82C - Default ID for USB multi-function (such as WiFi plus bluetooth)

Seller specific IDs (29)

ID 04CA:8602  /* LiteOn */
ID 056E:4011  /* Elecom */
ID 0846:9055  /* Netgear A6150 */
ID 0B05:1841  /* ASUS AC1300 USB-AC55 B1 */
ID 0B05:184C  /* ASUS U2 */
ID 0B05:1870  /* ASUS */
ID 0B05:1874  /* ASUS */
ID 0B05:19AA  /* ASUS - USB-AC58 rev A1 */
ID 0BDA:2102  /* CCNC */
ID 0E66:0025  /* Hawking HW12ACU */
ID 13B1:0043  /* Alpha - Linksys */
ID 13B1:0045  /* Linksys WUSB3600 v2 */
ID 2001:331E  /* Dlink - DWA-182 - D1 */
ID 2001:331C  /* Dlink - DWA-181 */
ID 2001:331F  /* Dlink - DWA-183 - D */
ID 20F4:805A  /* TRENDnet TEW-805UBH */
ID 20F4:808A  /* TRENDnet TEW-808UBM */
ID 2357:0115  /* TP-Link Archer T4U V3 */
ID 2357:0116  /* TP-LINK */
ID 2357:0117  /* TP-LINK */
ID 2357:012D  /* TP-Link Archer T3U v1 */
ID 2357:012E  /* TP-LINK */
ID 2357:0138  /* TP-Link Archer T3U Plus v1 */
ID 2C4E:0107  /* Mercusys MA30H */
ID 7392:B822  /* Edimax */
ID 7392:C822  /* Edimax */
ID 7392:D822  /* Edimax */
ID 7392:E822  /* Edimax */
ID 7392:F822  /* Edimax */

If your adapter matches one of the default or seller specific
IDs then this is the driver to use.

Info: location of file that contains the IDs: /os_dep/linux/usb_intf.c

If you are sure that your adapter contains either a rtl8812bu
or rtl8822bu chipset and the ID is not shown above, please provide
the follow information so that I can include your adapter in the
driver source code so that the driver will work with your adapter:

1. VendorID:DeviceID
2. Link to device on internet



===


RTL8812au_chipset-driver with kernel-6.13 support

RTL8812au_chipset-driver-build with kernel-6.13 support

This driver supports RTL8812AU/21AU and RTL8814AU Wireless drivers

Thanks to Aircrack-ng

RTL8812au.SlackBuild
[code]
#!/bin/sh

# Slackware build script for RTL8821au

# Copyright 2025 JW(Shinichi Abe) <shin1.abe@nifty.com>
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, 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.

PRGNAM=RTL8812au
VERSION=${VERSION:-5.6.4.2}
GIT_SHORTVER=${GIT_SHORTVER:-20240510_b44d288}
COMMIT=${COMMIT:-b44d288f423ede0fc7cdbf92d07a7772cd727de4}
KERNEL=${KERNEL:-$(uname -r)}
#KSHORT_VER=`uname -r | sed -e "s/-jw//"`
BUILD=${BUILD:-
2}
TAG=${TAG:-jw}

if [ -z "$ARCH" ]; then
  case "$( uname -m )" in
    i?86) ARCH=i586 ;;
    arm*) ARCH=arm ;;
       *) ARCH=$( uname -m ) ;;
  esac
fi

CWD=$(pwd)
TMP=${TMP:-/tmp/SBo}
PKG=$TMP/package-$PRGNAM
OUTPUT=${OUTPUT:-/tmp}

if [ "$ARCH" = "i586" ]; then
  SLKCFLAGS="-O2 -march=i586 -mtune=i686"
  LIBDIRSUFFIX=""
elif [ "$ARCH" = "i686" ]; then
  SLKCFLAGS="-O2 -march=i686 -mtune=i686"
  LIBDIRSUFFIX=""
elif [ "$ARCH" = "x86_64" ]; then
  SLKCFLAGS="-O2 -fPIC"
  LIBDIRSUFFIX="64"
else
  SLKCFLAGS="-O2"
  LIBDIRSUFFIX=""
fi

set -e

rm -rf $PKG
mkdir -p $TMP $PKG $OUTPUT
cd $TMP

# Download source
# sh $CWD/fetch-RTL8812au-git_commit-source.sh
#
# fetch the commit git source
wget https://github.com/aircrack-ng/rtl8812au/archive/${COMMIT}/rtl8812au-${COMMIT}.tar.gz

# Rename original git source name to "RTL8812au-${BASE_VER}.${COMMIT_SHORT_VER}"
tar xvf rtl8812au-${COMMIT}.tar.gz && mv rtl8812au-${COMMIT} RTL8812au-${GIT_SHORTVER}
rm rtl8812au-${COMMIT}.tar.gz

# Create tar.xz file for my packaging work
tar cJvf RTL8812au-${GIT_SHORTVER}.tar.xz RTL8812au-${GIT_SHORTVER}/ && rm -rf RTL8812au-${GIT_SHORTVER}/

echo "...DONE!"

rm -rf $PRGNAM-$GIT_SHORTVER
tar xvf $PRGNAM-${GIT_SHORTVER}.tar.xz

cd $PRGNAM-$GIT_SHORTVER
chown -R root:root .
find -L . \
 \( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \
  -o -perm 511 \) -exec chmod 755 {} \; -o \
 \( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \
  -o -perm 440 -o -perm 400 \) -exec chmod 644 {} \;

# Fix build for linux-6.13
zcat $CWD/001_RTL8812au_fix-build_for_linux-6.13.patch.gz | patch -p1 --verbose || exit 1


NUMJOBS=${NUMJOBS:-" -j$(expr $(nproc) + 1) "}

CFLAGS="$SLKCFLAGS" \
CXXFLAGS="$SLKCFLAGS" \
make $NUMJOBS

mkdir -p $PKG/lib/modules/$KERNEL/kernel/drivers/net/wireless
install -m 0664 88XXau.ko $PKG/lib/modules/$KERNEL/kernel/drivers/net/wireless/

mkdir -p $PKG/install
sed "s%@KERNEL@%$KERNEL%" $CWD/doinst.sh > $PKG/install/doinst.sh

find $PKG -print0 | xargs -0 file | grep -e "executable" -e "shared object" | grep ELF \
  | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true

find $PKG -name perllocal.pod \
  -o -name ".packlist" \
  -o -name "*.bs" \
  | xargs rm -f

mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
cp -a \
  $CWD/supported-device-IDs docs LICENSE README.md ReleaseNotes.pdf \
  $PKG/usr/doc/$PRGNAM-$VERSION
cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild

mkdir -p $PKG/install
cat $CWD/slack-desc > $PKG/install/slack-desc

cd $PKG
#/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-${VERSION}_${KSHORT_VER}-$ARCH-$BUILD$TAG.${PKGTYPE:-txz}
/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-${VERSION}_${KERNEL}-$ARCH-$BUILD$TAG.${PKGTYPE:-txz}

001_RTL8812au_fix-build_for_linux-6.13.patch
[code]
diff -Nru a/os_dep/linux/ioctl_cfg80211.c b/os_dep/linux/ioctl_cfg80211.c
--- a/os_dep/linux/ioctl_cfg80211.c    2025-01-21 18:06:21.269286898 +0900
+++ b/os_dep/linux/ioctl_cfg80211.c    2025-01-21 18:40:55.274464120 +0900
@@ -6306,7 +6306,10 @@
 }
 
 static int cfg80211_rtw_set_monitor_channel(struct wiphy *wiphy
-#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3, 8, 0))
+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(6, 13, 0))
+    , struct net_device *dev
+    , struct cfg80211_chan_def *chandef
+#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3, 8, 0))
     , struct cfg80211_chan_def *chandef
 #else
     , struct ieee80211_channel *chan
diff -Nru a/os_dep/linux/usb_intf.c b/os_dep/linux/usb_intf.c
--- a/os_dep/linux/usb_intf.c    2025-01-21 18:47:13.545496443 +0900
+++ b/os_dep/linux/usb_intf.c    2025-01-21 18:42:02.357469852 +0900
@@ -1640,7 +1640,7 @@
     rtw_mstat_dump(RTW_DBGDUMP);
 }
 
-#ifdef MODULE_IMPORT_NS
+#if (defined MODULE_IMPORT_NS && LINUX_VERSION_CODE >= KERNEL_VERSION(5, 4, 0) && LINUX_VERSION_CODE < KERNEL_VERSION(6, 13, 0))
 MODULE_IMPORT_NS(VFS_internal_I_am_really_a_filesystem_and_am_NOT_a_driver);
 #endif
 
diff -Nru a/os_dep/osdep_service.c b/os_dep/osdep_service.c
--- a/os_dep/osdep_service.c    2025-01-21 18:46:30.546492769 +0900
+++ b/os_dep/osdep_service.c    2025-01-21 18:42:51.308474035 +0900
@@ -26,7 +26,7 @@
 #endif
 #endif /* DBG_MEMORY_LEAK */
 
-#if defined(MODULE_IMPORT_NS)
+#if (defined(MODULE_IMPORT_NS) && LINUX_VERSION_CODE >= KERNEL_VERSION(5, 4, 0) && LINUX_VERSION_CODE < KERNEL_VERSION(6, 13, 0))
 MODULE_IMPORT_NS(VFS_internal_I_am_really_a_filesystem_and_am_NOT_a_driver);
 #endif

doinst.sh
[code]
chroot . /sbin/depmod -a @KERNEL@ 2>/dev/null


slack-desc
[code]
# HOW TO EDIT THIS FILE:
# The "handy ruler" below makes it easier to edit a package description.
# Line up the first '|' above the ':' following the base package name, and
# the '|' on the right side marks the last column you can put a character in.
# You must make exactly 11 lines for the formatting to be correct.  It's also
# customary to leave one space after the ':' except on otherwise blank lines.

         |-----handy-ruler------------------------------------------------------|
RTL8812au: RTL8812au (RTL8812AU/21AU and RTL8814AU Wireless drivers)
RTL8812au:
RTL8812au: RTL8812AU/21AU and RTL8814AU Wireless drivers
RTL8812au:
RTL8812au: HOME: https://github.com/aircrack-ng/rtl8812au
RTL8812au:
RTL8812au:
RTL8812au:
RTL8812au:
RTL8812au:
RTL8812au:


supported-device-IDs
[code]
#define USB_VENDER_ID_REALTEK        0x0BDA

/* DID_USB_v916_20130116 */
static struct usb_device_id rtw_usb_id_tbl[] = {
#ifdef CONFIG_RTL8188E
    /*=== Realtek demoboard ===*/
    {USB_DEVICE(USB_VENDER_ID_REALTEK, 0x8179), .driver_info = RTL8188E}, /* 8188EUS */
    {USB_DEVICE(USB_VENDER_ID_REALTEK, 0x0179), .driver_info = RTL8188E}, /* 8188ETV */
    /*=== Customer ID ===*/
    /****** 8188EUS ********/
    {USB_DEVICE(0x07B8, 0x8179), .driver_info = RTL8188E}, /* Abocom - Abocom */
#endif

#ifdef CONFIG_RTL8812A
    /*=== Realtek demoboard ===*/
    {USB_DEVICE(USB_VENDER_ID_REALTEK, 0x8812), .driver_info = RTL8812}, /* Default ID */
    {USB_DEVICE(USB_VENDER_ID_REALTEK, 0x881A), .driver_info = RTL8812}, /* Default ID */
    {USB_DEVICE(USB_VENDER_ID_REALTEK, 0x881B), .driver_info = RTL8812}, /* Default ID */
    {USB_DEVICE(USB_VENDER_ID_REALTEK, 0x881C), .driver_info = RTL8812}, /* Default ID */
    /*=== Customer ID ===*/
    {USB_DEVICE(0x0409, 0x0408), .driver_info = RTL8812}, /* NEC - */
    {USB_DEVICE(0x0411, 0x025D), .driver_info = RTL8812}, /* Buffalo - WI-U3-866D */
    {USB_DEVICE(0x04BB, 0x0952), .driver_info = RTL8812}, /* I-O DATA - Edimax */
    {USB_DEVICE(0x050D, 0x1106), .driver_info = RTL8812}, /* Belkin - sercomm */
    {USB_DEVICE(0x050D, 0x1109), .driver_info = RTL8812}, /* Belkin F9L1109 - SerComm */
    {USB_DEVICE(0x0586, 0x3426), .driver_info = RTL8812}, /* ZyXEL - */
    {USB_DEVICE(0x0789, 0x016E), .driver_info = RTL8812}, /* Logitec - Edimax */
    {USB_DEVICE(0x07B8, 0x8812), .driver_info = RTL8812}, /* Abocom - Abocom */
    {USB_DEVICE(0x0846, 0x9051), .driver_info = RTL8812}, /* Netgear A6200 v2 */
    {USB_DEVICE(0x0B05, 0x17D2), .driver_info = RTL8812}, /* ASUS - Edimax */
    {USB_DEVICE(0x0DF6, 0x0074), .driver_info = RTL8812}, /* Sitecom - Edimax */
    {USB_DEVICE(0x0E66, 0x0022), .driver_info = RTL8812}, /* HAWKING - Edimax */
    {USB_DEVICE(0x1058, 0x0632), .driver_info = RTL8812}, /* WD - Cybertan */
    {USB_DEVICE(0x13B1, 0x003F), .driver_info = RTL8812}, /* Linksys - WUSB6300 */
    {USB_DEVICE(0x148F, 0x9097), .driver_info = RTL8812}, /* Amped Wireless ACA1 */
    {USB_DEVICE(0x1740, 0x0100), .driver_info = RTL8812}, /* EnGenius - EnGenius */
    {USB_DEVICE(0x2001, 0x330E), .driver_info = RTL8812}, /* D-Link - ALPHA */
    {USB_DEVICE(0x2001, 0x3313), .driver_info = RTL8812}, /* D-Link - ALPHA */
    {USB_DEVICE(0x2001, 0x3315), .driver_info = RTL8812}, /* D-Link - Cameo */
    {USB_DEVICE(0x2001, 0x3316), .driver_info = RTL8812}, /* D-Link - Cameo */
    {USB_DEVICE(0x2019, 0xAB30), .driver_info = RTL8812}, /* Planex - Abocom */
    {USB_DEVICE(0x20F4, 0x805B), .driver_info = RTL8812}, /* TRENDnet - */
    {USB_DEVICE(0x2357, 0x0101), .driver_info = RTL8812}, /* TP-Link - Archer T4U AC1200 */
    {USB_DEVICE(0x2357, 0x0103), .driver_info = RTL8812}, /* TP-Link - T4UH */
    {USB_DEVICE(0x2357, 0x010D), .driver_info = RTL8812}, /* TP-Link - Archer T4U AC1300 */
    {USB_DEVICE(0x2357, 0x010E), .driver_info = RTL8812}, /* TP-Link - Archer T4UH AC1300 */
    {USB_DEVICE(0x2357, 0x010F), .driver_info = RTL8812}, /* TP-Link - T4UHP */
    {USB_DEVICE(0x2357, 0x0122), .driver_info = RTL8812}, /* TP-Link - T4UHP (other) */
    {USB_DEVICE(0x2604, 0x0012), .driver_info = RTL8812}, /* Tenda U12 */
    {USB_DEVICE(0x7392, 0xA822), .driver_info = RTL8812}, /* Edimax - Edimax */
#endif

#ifdef CONFIG_RTL8821A
    /*=== Realtek demoboard ===*/
    {USB_DEVICE(USB_VENDER_ID_REALTEK, 0x0811), .driver_info = RTL8821}, /* Default ID */
    {USB_DEVICE(USB_VENDER_ID_REALTEK, 0x0821), .driver_info = RTL8821}, /* Default ID */
    {USB_DEVICE(USB_VENDER_ID_REALTEK, 0x8822), .driver_info = RTL8821}, /* Default ID */
    {USB_DEVICE(USB_VENDER_ID_REALTEK, 0xA811) , .driver_info = RTL8821},/* Default ID */
    {USB_DEVICE_AND_INTERFACE_INFO(USB_VENDER_ID_REALTEK, 0x0820, 0xff, 0xff, 0xff), .driver_info = RTL8821}, /* 8821AU */
    {USB_DEVICE_AND_INTERFACE_INFO(USB_VENDER_ID_REALTEK, 0x0823, 0xff, 0xff, 0xff), .driver_info = RTL8821}, /* 8821AU */
    /*=== Customer ID ===*/
    {USB_DEVICE(0x0411, 0x0242), .driver_info = RTL8821}, /* ELECOM - WDC-433DU2H */
    {USB_DEVICE(0x0411, 0x029B), .driver_info = RTL8821}, /* Buffalo - WI-U2-433DHP */
    {USB_DEVICE(0x04BB, 0x0953), .driver_info = RTL8821}, /* I-O DATA - Edimax */
    {USB_DEVICE(0x056E, 0x4007), .driver_info = RTL8821}, /* Elecom - WDC-433DU2HBK */
    {USB_DEVICE(0x056E, 0x400E), .driver_info = RTL8821}, /* ELECOM -  ELECOM */
    {USB_DEVICE(0x056E, 0x400F), .driver_info = RTL8821}, /* ELECOM -  ELECOM */
    {USB_DEVICE(0x056E, 0x4010), .driver_info = RTL8821}, /* ELECOM -  ELECOM */
    {USB_DEVICE(0x0846, 0x9052), .driver_info = RTL8821}, /* Netgear - A6100 */
    {USB_DEVICE(0x0E66, 0x0023), .driver_info = RTL8821}, /* HAWKING - Edimax */
    {USB_DEVICE(0x2001, 0x3314), .driver_info = RTL8821}, /* D-Link - Cameo */
    {USB_DEVICE(0x2001, 0x3318), .driver_info = RTL8821}, /* D-Link - Cameo */
    {USB_DEVICE(0x2019, 0xAB32), .driver_info = RTL8821}, /* Planex - GW-450S */
    {USB_DEVICE(0x2357, 0x011E), .driver_info = RTL8821}, /* TP Link - T2U Nano */
    {USB_DEVICE(0x2357, 0x011F), .driver_info = RTL8821}, /* TP-Link - Archer AC600 T2U Nano */
    {USB_DEVICE(0x2357, 0x0120), .driver_info = RTL8821}, /* TP Link - T2U Plus */
    {USB_DEVICE(0x3823, 0x6249), .driver_info = RTL8821}, /* Obihai - OBiWiFi */
    {USB_DEVICE(0x7392, 0xA811), .driver_info = RTL8821}, /* Edimax - Edimax */
     {USB_DEVICE(0x7392, 0xA812), .driver_info = RTL8821}, /* Edimax - EW-7811UTC */
    {USB_DEVICE(0x7392, 0xA813), .driver_info = RTL8821}, /* Edimax - EW-7811UAC */
    {USB_DEVICE(0x7392, 0xB611), .driver_info = RTL8821}, /* Edimax - EW-7811UCB */
#endif

#ifdef CONFIG_RTL8814A
    {USB_DEVICE(USB_VENDER_ID_REALTEK, 0x8813), .driver_info = RTL8814A},
    {USB_DEVICE(0x0B05, 0x1817), .driver_info = RTL8814A}, /* ASUS - ASUSTeK */
    {USB_DEVICE(0x0B05, 0x1852), .driver_info = RTL8814A}, /* ASUS - ASUSTeK */
    {USB_DEVICE(0x0B05, 0x1853), .driver_info = RTL8814A}, /* ASUS - ASUSTeK */
    {USB_DEVICE(0x056E, 0x400B), .driver_info = RTL8814A}, /* ELECOM - ELECOM */
    {USB_DEVICE(0x056E, 0x400D), .driver_info = RTL8814A}, /* ELECOM - ELECOM */
    {USB_DEVICE(0x0846, 0x9054), .driver_info = RTL8814A}, /* Netgear A7000 */
    {USB_DEVICE(0x0E66, 0x0026), .driver_info = RTL8814A}, /* Hawking Technologies - HW17ACU*/
    {USB_DEVICE(0x2001, 0x331A), .driver_info = RTL8814A}, /* D-Link - D-Link */
    {USB_DEVICE(0x20F4, 0x809A), .driver_info = RTL8814A}, /* TRENDnet - TRENDnet */
    {USB_DEVICE(0x20F4, 0x809B), .driver_info = RTL8814A}, /* TRENDnet TEW-809UB */
    {USB_DEVICE(0x2357, 0x0106), .driver_info = RTL8814A}, /* TP-LINK Archer T9UH */
    {USB_DEVICE(0x7392, 0xA834), .driver_info = RTL8814A}, /* Edimax - Edimax */
    {USB_DEVICE(0x7392, 0xA833), .driver_info = RTL8814A}, /* Edimax - AC1750 */



===


MEGAsync-5.7.1.0_Linux

[Update: Jan. 21. 2025]
Version bump to "5.7.1.0"
------------------------------------
- Enhanced stability with isolated graphics processing: We’ve upgraded our app to run the graphics processor (GFX) in a separate process. This means that if any third-party graphics libraries encounter issues, the app remains stable and unaffected, ensuring a smoother, uninterrupted experience.
- End of support for macOS 10.13 and 10.14: This update no longer supports MacOS 10.13 and 10.14. To continue receiving updates and support, please upgrade to a more recent version of macOS.
- The Settings dialogue has been redesigned.
- Improved app issue detection and resolution.
- Other bugs have been fixed and numerous improvements made.
------------------------------------


MEGAsync.SlackBuild
[code]
#!/bin/sh

# Slackware build script for MEGASync input plugin

# Copyright 2017,2018 Felipe Bugno <capent@yahoo.com>
#
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, 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.
#
# 2023-04-14 : 4.9.1.0 (2jw) -- version bump to 4.9.1.0_linux
# 2023-09-16 : 4.9.1.0 (3jw) -- Recompiled against libsodium-1.0.19 (libsodium.so.26.1.0)
# 2024-01-30 : 4.9.1.0 (4jw) -- Recompiled against ffmpeg-6.1.1
# 2024-07-06 : 5.3.0.0 (1jw) -- version bump to 5.3.0.0 with sdk-7.1.2
# 2024-07-07 : 5.3.0.0 (2jw) -- Fix overwriting default FFmpeg6's soft-links in /usr/lib64/
# 2024-07-27 : 5.4.0.0 (1jw) -- version bump to 5.4.0.0 with sdk-7.3.0
# 2024-07-27 : 5.4.0.0 (2jw) -- Fix overwriting default FFmpeg6's libswresample.so.4
# 2024-08-14 : 5.4.0.0 (3jw) -- Recompiled against FFmpeg-7.0.2
# 2024-08-15 : 5.4.1.0 (1jw) -- version bump to 5.4.1.0 with sdk-7.6.0.eafa851
# 2024-10-28 : 5.6.0.0 (1jw) -- version bump to 5.6.0.0 with sdk-7.12.0
# 2024-11-19 : 5.6.1.0 (1jw) -- version bump to 5.6.1.0
# 2024-11-22 : 5.6.1.0 (2jw) -- Recompiled with sdk-7.12.1
#
2025-01-21 : 5.7.1.0 (1jw) -- version bump to 5.7.1.0 with sdk-8.0.1

PRGNAM=MEGAsync
VERSION=${VERSION:-
5.7.1.0}
SDK=${SDK:-
8.0.1}
BUILD=${BUILD:-1}
TAG=${TAG:-jw}

if [ -z "$ARCH" ]; then
  case "$( uname -m )" in
    i?86) ARCH=i586 ;;
    arm*) ARCH=arm ;;
       *) ARCH=$( uname -m ) ;;
  esac
fi

CWD=$(pwd)
TMP=${TMP:-/tmp/SBo}
PKG=$TMP/package-$PRGNAM
OUTPUT=${OUTPUT:-/tmp}

if [ "$ARCH" = "i586" ]; then
  SLKCFLAGS="-O2 -march=i586 -mtune=i686"
  LIBDIRSUFFIX=""
elif [ "$ARCH" = "i686" ]; then
  SLKCFLAGS="-O2 -march=i686 -mtune=i686"
  LIBDIRSUFFIX=""
elif [ "$ARCH" = "x86_64" ]; then
  SLKCFLAGS="-O2 -fPIC"
  LIBDIRSUFFIX="64"
else
  SLKCFLAGS="-O2"
  LIBDIRSUFFIX=""
fi

set -e

rm -rf $PKG
mkdir -p $TMP $PKG $OUTPUT
cd $TMP
rm -rf $PRGNAM-$VERSION\_Linux
tar xvf $CWD/$PRGNAM-$VERSION\_Linux.tar.gz
cd $PRGNAM-$VERSION\_Linux/src/MEGASync/mega
tar --strip-components=1 -xvf $CWD/sdk-$SDK.tar.gz
cd ../../../
chown -R root:root .
find -L . \
 \( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \
  -o -perm 511 \) -exec chmod 755 {} \; -o \
 \( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \
  -o -perm 440 -o -perm 400 \) -exec chmod 644 {} \;

cd src/MEGASync/mega
patch -p1 < $CWD/010-megasync-freeimage-remove-obsolete-ffmpeg-macros.patch
cd ../../../
patch -p1 < $CWD/030-megasync-app-fix-cmake-dependencies-detection.patch

cd $TMP
rm -rf vcpkg
# Now.. we will use microsoft VCPKG build system for MEGAsync desktop apps
git clone https://github.com/microsoft/vcpkg

CFLAGS="$SLKCFLAGS" \
CXXFLAGS="$SLKCFLAGS"
export CXXFLAGS+=' -DNDEBUG'

cmake -DVCPKG_ROOT=$TMP/vcpkg  -B build -S $PRGNAM-$VERSION\_Linux -DCMAKE_BUILD_TYPE=Release \
-G 'Unix Makefiles' \
-DCMAKE_MODULE_PATH:PATH="$TMP/$PRGNAM-$VERSION\_Linux/src/MEGASync/mega/contrib/cmake/modules/packages" \
-DCMAKE_SKIP_INSTALL_RPATH:BOOL='YES' \
-Wno-dev

cmake --build build --target MEGAsync

#Install
DESTDIR=$PKG cmake --install build
install -d "$PKG/usr/lib${LIBDIRSUFFIX}"
# Do Not overwrite *.so of default ffmpeg-7.x's libraries.
rm $PKG/opt/megasync/lib/*.so
# Now move ffmpeg related libs to STD lib64 dir
mv $PKG/opt/megasync/lib/* $PKG/usr/lib${LIBDIRSUFFIX}/

install -D -m644 $PRGNAM-$VERSION\_Linux/LICENCE.md -t "$PKG/usr/share/licenses/megasync"
install -D -m644 $PRGNAM-$VERSION\_Linux/installer/terms.txt -t "$PKG/usr/share/licenses/megasync"
install -D -m644 $PRGNAM-$VERSION\_Linux/src/MEGASync/mega/LICENSE "$PKG/usr/share/licenses/megasync/LICENCE-SDK"
rm -d "$PKG/opt"{/megasync{/lib,},}

find $PKG -print0 | xargs -0 file | grep -e "executable" -e "shared object" | grep ELF \
  | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true

mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
cd $TMP/$PRGNAM-$VERSION\_Linux
cp -a  README.md LICENCE.md CREDITS.md $PKG/usr/doc/$PRGNAM-$VERSION
cp $CWD/010-megasync-freeimage-remove-obsolete-ffmpeg-macros.patch \
 $CWD/030-megasync-app-fix-cmake-dependencies-detection.patch \
 $PKG/usr/doc/$PRGNAM-$VERSION
cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild

mkdir -p $PKG/install
cat $CWD/slack-desc > $PKG/install/slack-desc
cat $CWD/doinst.sh > $PKG/install/doinst.sh

cd $PKG
/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.${PKGTYPE:-txz}

MEGAsync.info
[code]
PRGNAM="MEGAsync"
VERSION="5.7.1.0"
HOMEPAGE="https://github.com/meganz/MEGAsync/"
DOWNLOAD="https://github.com/meganz/MEGAsync/archive/v5.7.1.0_Linux/MEGAsync-5.7.1.0_Linux.tar.gz \
 https://github.com/meganz/sdk/archive/v8.0.1/sdk-8.0.1.tar.gz"
MD5SUM="f8dd53f08b43644959c97e9e938ae415 \
 c9926b7f9c4198e34ba37500c7ca98cb"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES="FreeImage libmediainfo"
MAINTAINER=""
EMAIL=""

010-megasync-freeimage-remove-obsolete-ffmpeg-macros.patch
[code]
--- a/src/gfx/freeimage.cpp
+++ b/src/gfx/freeimage.cpp
@@ -200,12 +200,6 @@ bool GfxProviderFreeImage::readbitmapFreeimage(const LocalPath& imagePath, int s
 
 #ifdef HAVE_FFMPEG
 
-#ifdef AV_CODEC_CAP_TRUNCATED
-#define CAP_TRUNCATED AV_CODEC_CAP_TRUNCATED
-#else
-#define CAP_TRUNCATED CODEC_CAP_TRUNCATED
-#endif
-
 const char *GfxProviderFreeImage::supportedformatsFfmpeg()
 {
     return  ".264.265.3g2.3gp.3gpa.3gpp.3gpp2.mp3"
@@ -321,10 +315,6 @@ bool GfxProviderFreeImage::readbitmapFfmpeg(const LocalPath& imagePath, int size
 
     // Force seeking to key frames
     formatContext->seek2any = false;
-    if (decoder->capabilities & CAP_TRUNCATED)
-    {
-        codecContext->flags |= CAP_TRUNCATED;
-    }
 
     AVPixelFormat sourcePixelFormat = static_cast<AVPixelFormat>(codecParm->format);
     AVPixelFormat targetPixelFormat = AV_PIX_FMT_BGR24; //raw data expected by freeimage is in this format


030-megasync-app-fix-cmake-dependencies-detection.patch
[code]
--- a/src/MEGAUpdateGenerator/CMakeLists.txt
+++ b/src/MEGAUpdateGenerator/CMakeLists.txt
@@ -15,10 +15,11 @@ target_sources(MEGAUpdateGenerator
 )
 
 # Load and link needed libraries for the CHATlib target
-find_package(cryptopp CONFIG REQUIRED)
+find_package(PkgConfig REQUIRED)
+pkg_check_modules(cryptopp REQUIRED IMPORTED_TARGET libcryptopp)
 target_link_libraries(MEGAUpdateGenerator
     PRIVATE
-    cryptopp::cryptopp
+    PkgConfig::cryptopp
     MEGA::SDKlib
 )


slack-desc
[code]
# HOW TO EDIT THIS FILE:
# The "handy ruler" below makes it easier to edit a package description.
# Line up the first '|' above the ':' following the base package name, and
# the '|' on the right side marks the last column you can put a character in.
# You must make exactly 11 lines for the formatting to be correct.  It's also
# customary to leave one space after the ':' except on otherwise blank lines.

        |-----handy-ruler------------------------------------------------------|
MEGAsync: MEGAsync (mega cloud storage service)
MEGAsync:
MEGAsync: MEGAsync open source release for MEGA cloud storage services
MEGAsync:
MEGAsync:
MEGAsync: Compiled using default Slackware Qt4.
MEGAsync:
MEGAsync: Homepage: https://github.com/meganz/MEGAsync
MEGAsync: Service: https://mega.nz/
MEGAsync:
MEGAsync:

doinst.sh
[code]
if [ -x /usr/bin/update-desktop-database ]; then
  /usr/bin/update-desktop-database -q usr/share/applications >/dev/null 2>&1
fi

if [ -e usr/share/icons/hicolor/icon-theme.cache ]; then
  if [ -x /usr/bin/gtk-update-icon-cache ]; then
    /usr/bin/gtk-update-icon-cache -f usr/share/icons/hicolor >/dev/null 2>&1
  fi
fi

---
[Update] Jan.21,2025

amf-headers-1.4.35 for the latest FFmpeg Git

[ 背景 ]
FFmpeg7.xを " --enable-amf " 付きでコンパイルする場合、amf-headers がインストールされている
必要があるが、2025年1月19日現在のFFmpeg最新Gitをコンパイルすると、avcodec/amfenc の 
B-Frame support 関連でエラーになり、コンパイルに失敗する。

これを回避するには amf-headers-1.4.35 に対策パッチをあてて更新する必要がある。
以下は、その amf-headers-1.4.35 対策パッケージの詳細。


Here is a patch to amf-headers-1.4.35

[code]  001_AV1_B-frame-support.patch
diff -Nru a/amf/public/include/components/VideoEncoderAV1.h b/amf/public/include/components/VideoEncoderAV1.h
--- a/amf/public/include/components/VideoEncoderAV1.h    2024-12-30 22:01:35.454080599 +0900
+++ b/amf/public/include/components/VideoEncoderAV1.h    2024-12-30 21:52:36.161034517 +0900
@@ -356,6 +356,7 @@
 #define AMF_VIDEO_ENCODER_AV1_CAP_MAX_NUM_TEMPORAL_LAYERS           L"Av1CapMaxNumTemporalLayers"       // amf_int64; default = N/A; The cap of maximum number of temporal layers
 #define AMF_VIDEO_ENCODER_AV1_CAP_MAX_NUM_LTR_FRAMES                L"Av1CapMaxNumLTRFrames"            // amf_int64; default = N/A; The cap of maximum number of LTR frames. This value is calculated based on current value of AMF_VIDEO_ENCODER_AV1_MAX_NUM_TEMPORAL_LAYERS.
 #define AMF_VIDEO_ENCODER_AV1_CAP_SUPPORT_TILE_OUTPUT               L"AV1SupportTileOutput"             // amf_bool; if tile output is supported
+#define AMF_VIDEO_ENCODER_AV1_CAP_BFRAMES                           L"AV1BFrames"                       // amf_bool; if b frames are supported for AV1
 
 #define AMF_VIDEO_ENCODER_AV1_CAP_SUPPORT_SMART_ACCESS_VIDEO        L"Av1EncoderSupportSmartAccessVideo"    // amf_bool; returns true if system supports SmartAccess Video
 #define AMF_VIDEO_ENCODER_AV1_CAP_WIDTH_ALIGNMENT_FACTOR            L"Av1WidthAlignmentFactor"          // amf_int64; default = 1; The encoder capability for width alignment
@@ -363,4 +364,9 @@
 
 #define AMF_VIDEO_ENCODER_AV1_MULTI_HW_INSTANCE_ENCODE              L"Av1MultiHwInstanceEncode"             // amf_bool; flag to enable AV1 multi VCN encode.
 
+// properties for Picture Management (VCN5 feature)
+#define AMF_VIDEO_ENCODER_AV1_MAX_CONSECUTIVE_BPICTURES             L"Av1MaxConsecutiveBPictures"        // amf_int64; default 0 or 127, determined by AMF_VIDEO_ENCODER_AV1_CAP_BFRAMES. Maximum number of consecutive B frames for B frame encoding
+#define AMF_VIDEO_ENCODER_AV1_B_PIC_PATTERN                         L"Av1BPicturesPattern"               // amf_int64; default 0. Number of B frames for B frame encoding
+#define AMF_VIDEO_ENCODER_AV1_ADAPTIVE_MINIGOP                      L"Av1AdaptiveMiniGop"                // amf_bool; default false. Adaptive miniGOP size for B frame encoding
+
 #endif //#ifndef AMF_VideoEncoderAV1_h


[code]  amf-headers.info (source file)
PRGNAM="amf-headers"
VERSION="1.4.35"
HOMEPAGE="https://github.com/GPUOpen-LibrariesAndSDKs/AMF"
DOWNLOAD="https://github.com/GPUOpen-LibrariesAndSDKs/AMF/archive/v1.4.35/AMF-1.4.35.tar.gz"
MD5SUM="c00b426ef66b6015470f6496664e609e"
DOWNLOAD_x86_64="direct download link(s) of application source tarball(s), x86_64 only"
MD5SUM_x86_64="MD5SUM_x86_64@"
REQUIRES="%README%"
MAINTAINER="JW(Shinichi Abe)"
EMAIL="Fake_shin1-dot-abe_AT_nifty-dot-com


[code]  amf-headers.SlackBuild
#!/bin/bash

# Slackware build script for AMF

# Copyright 2024 JW(Shinichi Abe) <shin1.abe@nifty.com>
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, 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.

cd $(dirname $0) ; CWD=$(pwd)

PRGNAM=amf-headers
SRCNAM=AMF
VERSION=${VERSION:-1.4.35}
BUILD=${BUILD:-2}
TAG=${TAG:-jw}
PKGTYPE=${PKGTYPE:-txz}

if [ -z "$ARCH" ]; then
  case "$( uname -m )" in
    i?86) ARCH=i586 ;;
    arm*) ARCH=arm ;;
    *) ARCH=$( uname -m ) ;;
  esac
fi

if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then
  echo "$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE"
  exit 0
fi

TMP=${TMP:-/tmp/SBo}
PKG=$TMP/package-$PRGNAM
OUTPUT=${OUTPUT:-/tmp}

if [ "$ARCH" = "i586" ]; then
  SLKCFLAGS="-O2 -march=i586 -mtune=i686"
  LIBDIRSUFFIX=""
elif [ "$ARCH" = "i686" ]; then
  SLKCFLAGS="-O2 -march=i686 -mtune=i686"
  LIBDIRSUFFIX=""
elif [ "$ARCH" = "x86_64" ]; then
  SLKCFLAGS="-O2 -fPIC"
  LIBDIRSUFFIX="64"
else
  SLKCFLAGS="-O2"
  LIBDIRSUFFIX=""
fi

set -e

rm -rf $PKG
mkdir -p $TMP $PKG $OUTPUT
cd $TMP
rm -rf $PRGNAM-$VERSION
tar xvf $CWD/$SRCNAM-$VERSION.tar.gz
cd $SRCNAM-$VERSION
# Add Interface for AV1 B-frame Support
patch -p1 < $CWD/001_AV1_B-frame-support.patch --verbose || exit 1


chown -R root:root .
find -L . \
 \( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \
  -o -perm 511 \) -exec chmod 755 {} \; -o \
 \( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \
  -o -perm 440 -o -perm 400 \) -exec chmod 644 {} \;

CFLAGS="$SLKCFLAGS" \
CXXFLAGS="$SLKCFLAGS" \

install -dm 755 $PKG/usr/include
cp -dr --no-preserve=ownership amf/public/include $PKG/usr/include/AMF
install -Dm 644 LICENSE.txt -t $PKG/usr/share/licenses/amf-headers/

find $PKG -print0 | xargs -0 file | grep -e "executable" -e "shared object" | grep ELF \
  | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true

find $PKG -name perllocal.pod \
  -o -name ".packlist" \
  -o -name "*.bs" \
  | xargs rm -f

mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
cp -a \
  *.txt $PKG/usr/doc/$PRGNAM-$VERSION
cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild

# Copy the slack-desc (and a custom doinst.sh if necessary) into ./install
mkdir -p $PKG/install
cat $CWD/slack-desc > $PKG/install/slack-desc

cd $PKG
/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE

[code]  slack-desc
# HOW TO EDIT THIS FILE:
# The "handy ruler" below makes it easier to edit a package description.
# Line up the first '|' above the ':' following the base package name, and
# the '|' on the right side marks the last column you can put a character in.
# You must make exactly 11 lines for the formatting to be correct.  It's also
# customary to leave one space after the ':' except on otherwise blank lines.

           |-----handy-ruler------------------------------------------------------|
amf-headers: amf-headers (Header files for Advanced Media Framework (AMF) SDK)
amf-headers:
amf-headers: AMF is a light-weight, portable multimedia framework that abstracts
amf-headers: away most of the platform and API-specific details and allows for
amf-headers: easy implementation of multimedia applications using a variety of
amf-headers: technologies, such as DirectX 11,OpenGL, and OpenCL and facilitates
amf-headers: an efficient interop between them.
amf-headers:
amf-headers: HOME: https://github.com/GPUOpen-LibrariesAndSDKs/AMF
amf-headers:
amf-headers:



RTL88x2bu_chipset-driver

RTL88x2bu_chipset-driver-build

 Linux Driver for USB WiFi Adapters that are based on the RTL8812BU and RTL8822BU Chipsets

Thanks to morrownr

RTL88x2bu.SlackBuild
[code]
#!/bin/sh

# Slackware build script for RTL88x2bu driver

# Copyright 2025 JW(Shinichi Abe) <shin1.abe@nifty.com>
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, 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.

PRGNAM=RTL88x2bu
VERSION=${VERSION:-5.13.1}
GIT_SHORTVER=${GIT_SHORTVER:-20241206_139e4fc}
COMMIT=${COMMIT:-139e4fc2eeea7a140239d34c73b6bf4f69c1f74d}
KERNEL=${KERNEL:-$(uname -r)}
#KSHORT_VER=`uname -r | sed -e "s/-jw//"`
BUILD=${BUILD:-1}
TAG=${TAG:-jw}

if [ -z "$ARCH" ]; then
  case "$( uname -m )" in
    i?86) ARCH=i586 ;;
    arm*) ARCH=arm ;;
       *) ARCH=$( uname -m ) ;;
  esac
fi

CWD=$(pwd)
TMP=${TMP:-/tmp/SBo}
PKG=$TMP/package-$PRGNAM
OUTPUT=${OUTPUT:-/tmp}

if [ "$ARCH" = "i586" ]; then
  SLKCFLAGS="-O2 -march=i586 -mtune=i686"
  LIBDIRSUFFIX=""
elif [ "$ARCH" = "i686" ]; then
  SLKCFLAGS="-O2 -march=i686 -mtune=i686"
  LIBDIRSUFFIX=""
elif [ "$ARCH" = "x86_64" ]; then
  SLKCFLAGS="-O2 -fPIC"
  LIBDIRSUFFIX="64"
else
  SLKCFLAGS="-O2"
  LIBDIRSUFFIX=""
fi

set -e

rm -rf $PKG
mkdir -p $TMP $PKG $OUTPUT
cd $TMP

# Download source
# sh $CWD/fetch-RTL8812au-git_commit-source.sh
#
# fetch the commit git source
wget https://github.com/morrownr/88x2bu-20210702/archive/${COMMIT}/88x2bu-20210702-${COMMIT}.tar.gz

# Rename original git source name to "RTL88x2bu-${GIT_SHORTVER}"
tar xvf 88x2bu-20210702-${COMMIT}.tar.gz && mv 88x2bu-20210702-${COMMIT} RTL88x2bu-${GIT_SHORTVER}
rm 88x2bu-20210702-${COMMIT}.tar.gz

# Create tar.xz file for my packaging work
tar cJvf RTL88x2bu-${GIT_SHORTVER}.tar.xz RTL88x2bu-${GIT_SHORTVER}/ && rm -rf RTL88x2bu-${GIT_SHORTVER}/

echo "...DONE!"

rm -rf $PRGNAM-$GIT_SHORTVER
tar xvf $PRGNAM-${GIT_SHORTVER}.tar.xz

cd $PRGNAM-$GIT_SHORTVER
chown -R root:root .
find -L . \
 \( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \
  -o -perm 511 \) -exec chmod 755 {} \; -o \
 \( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \
  -o -perm 440 -o -perm 400 \) -exec chmod 644 {} \;

NUMJOBS=${NUMJOBS:-" -j$(expr $(nproc) + 1) "}

CFLAGS="$SLKCFLAGS" \
CXXFLAGS="$SLKCFLAGS" \
make $NUMJOBS

mkdir -p $PKG/lib/modules/$KERNEL/kernel/drivers/net/wireless
install -m 0664 88x2bu.ko $PKG/lib/modules/$KERNEL/kernel/drivers/net/wireless/

mkdir -p $PKG/install
sed "s%@KERNEL@%$KERNEL%" $CWD/doinst.sh > $PKG/install/doinst.sh

find $PKG -print0 | xargs -0 file | grep -e "executable" -e "shared object" | grep ELF \
  | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true

find $PKG -name perllocal.pod \
  -o -name ".packlist" \
  -o -name "*.bs" \
  | xargs rm -f

mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
cp -a \
  docs LICENSE README.md supported-device-IDs \
  $PKG/usr/doc/$PRGNAM-$VERSION
cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild

mkdir -p $PKG/install
cat $CWD/slack-desc > $PKG/install/slack-desc

cd $PKG
#/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-${VERSION}_${KSHORT_VER}-$ARCH-$BUILD$TAG.${PKGTYPE:-txz}
/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-${VERSION}_${KERNEL}-$ARCH-$BUILD$TAG.${PKGTYPE:-txz}

doinst.sh
[code]
chroot . /sbin/depmod -a @KERNEL@ 2>/dev/null


slack-desc
[code]
# HOW TO EDIT THIS FILE:
# The "handy ruler" below makes it easier to edit a package description.
# Line up the first '|' above the ':' following the base package name, and
# the '|' on the right side marks the last column you can put a character in.
# You must make exactly 11 lines for the formatting to be correct.  It's also
# customary to leave one space after the ':' except on otherwise blank lines.

         |-----handy-ruler------------------------------------------------------|
RTL88x2bu: RTL88x2bu (88x2bu.ko)
RTL88x2bu:
RTL88x2bu: Linux Driver for USB WiFi Adapters that are based on the RTL8812BU
RTL88x2bu: and RTL8822BU Chipsets
RTL88x2bu:
RTL88x2bu: HOME:https://github.com/morrownr/88x2bu-20210702
RTL88x2bu:
RTL88x2bu:
RTL88x2bu:
RTL88x2bu:
RTL88x2bu:


supported-device-IDs
[code]
USB Vendor and Device ID List for rtl8812bu and rtl8822bu chipset based USB WiFi Adapters

To determine your Device ID:

$ lsusb

Example output:

Bus 003 Device 011: ID 0bda:b812 Realtek Semiconductor Corp.

ID VendorID:DeviceID = 0bda:b812

We can search the list of driver supported IDs shown below.

Realtek default IDs (3)

ID 0BDA:B812 - Default ID for USB Single-function, WiFi only
ID 0BDA:B81A - Default ID
ID 0BDA:B82C - Default ID for USB multi-function (such as WiFi plus bluetooth)

Seller specific IDs (29)

ID 04CA:8602  /* LiteOn */
ID 056E:4011  /* Elecom */
ID 0846:9055  /* Netgear A6150 */
ID 0B05:1841  /* ASUS AC1300 USB-AC55 B1 */
ID 0B05:184C  /* ASUS U2 */
ID 0B05:1870  /* ASUS */
ID 0B05:1874  /* ASUS */
ID 0B05:19AA  /* ASUS - USB-AC58 rev A1 */
ID 0BDA:2102  /* CCNC */
ID 0E66:0025  /* Hawking HW12ACU */
ID 13B1:0043  /* Alpha - Linksys */
ID 13B1:0045  /* Linksys WUSB3600 v2 */
ID 2001:331E  /* Dlink - DWA-182 - D1 */
ID 2001:331C  /* Dlink - DWA-181 */
ID 2001:331F  /* Dlink - DWA-183 - D */
ID 20F4:805A  /* TRENDnet TEW-805UBH */
ID 20F4:808A  /* TRENDnet TEW-808UBM */
ID 2357:0115  /* TP-Link Archer T4U V3 */
ID 2357:0116  /* TP-LINK */
ID 2357:0117  /* TP-LINK */
ID 2357:012D  /* TP-Link Archer T3U v1 */
ID 2357:012E  /* TP-LINK */
ID 2357:0138  /* TP-Link Archer T3U Plus v1 */
ID 2C4E:0107  /* Mercusys MA30H */
ID 7392:B822  /* Edimax */
ID 7392:C822  /* Edimax */
ID 7392:D822  /* Edimax */
ID 7392:E822  /* Edimax */
ID 7392:F822  /* Edimax */

If your adapter matches one of the default or seller specific
IDs then this is the driver to use.

Info: location of file that contains the IDs: /os_dep/linux/usb_intf.c

If you are sure that your adapter contains either a rtl8812bu
or rtl8822bu chipset and the ID is not shown above, please provide
the follow information so that I can include your adapter in the
driver source code so that the driver will work with your adapter:

1. VendorID:DeviceID
2. Link to device on internet



===


ギャラリー
  • deepl-clip.sh で簡単翻訳 [更新:2025-04-29]
  • Avidemux 2.8.2_20250323_7cf15b3
  • Avidemux 2.8.2_20250323_7cf15b3
  • Avidemux 2.8.x with Qt6 GUI
  • Avidemux 2.8.x with Qt6 GUI
  • MEGAcmd-2.0.0_Linux
  • gcolor3 with Japanese menu and LC_MESSAGES
  • avidemux2 TEST package from the latest git source (on jul.23.2024)
  • fcitx5-mozc-2.29.5135.102.1 (15jw) -- Added "merge-ut-dictionaries"