New upstream version 3.5.99.27

This commit is contained in:
geos_one
2025-08-08 20:00:36 +02:00
commit bc8d10cc33
4267 changed files with 1757978 additions and 0 deletions

126
.github/workflows/linters.yml vendored Normal file
View File

@@ -0,0 +1,126 @@
name: linters
on:
push:
branches: [ 3.6.x ]
pull_request:
branches: [ 3.6.x ]
jobs:
# see https://github.com/koalaman/shellcheck
shellcheck:
runs-on: ubuntu-20.04
steps:
- name: Checkout repository
uses: actions/checkout@v2
- name: Install linters on ubuntu
run: |
sudo apt-get update -q -y
sudo apt-get install shellcheck
- name: run Shellcheck
run: |
shellcheck --version
find . -name "*.sh" | xargs shellcheck -e SC1004,SC2010,SC2035,SC2086
# see https://pylint.org/
pylint:
runs-on: ubuntu-20.04
steps:
- name: Checkout repository
uses: actions/checkout@v2
- name: Install linters on ubuntu
run: |
sudo apt-get update -q -y
sudo apt-get install pylint
# dependencies
sudo apt-get install --reinstall python-gi
sudo apt-get install python-dbus python-gobject
- name: run Pylint
run: |
pylint --version
cd nxdialog/; find . -name "nxdialog" -type f | xargs pylint --exit-zero
# see https://github.com/danmar/cppcheck
cppcheck:
runs-on: ubuntu-20.04
steps:
- name: Checkout repository
uses: actions/checkout@v2
- name: Install linters on ubuntu
run: |
sudo apt-get update -q -y
sudo apt-get install cppcheck
- name: run cppcheck
run: |
# cppcheck
if ! [ -x "$(command -v cppcheck)" ]; then
echo 'Error: cppcheck is not installed.' >&2
exit 1
fi
CPPCHECK_OPTS='--error-exitcode=0 --force --quiet --suppressions-list=./static-analysis-suppressions'
# we exclude some external projects
CPPCHECK_EXCLUDES='-i ./nx-X11/extras/ -i nx-X11/programs/Xserver/GL/mesa* -i ./.pc -i ./nx-X11/.build-exports -i ./nx-X11/exports -i ./doc'
echo "$(cppcheck --version):";
cppcheck $CPPCHECK_OPTS $CPPCHECK_EXCLUDES .;
# see https://www.viva64.com/en/pvs-studio/
pvs:
environment: pvs
runs-on: ubuntu-20.04
steps:
- name: Checkout repository
uses: actions/checkout@v2
- name: Install linters on ubuntu
env:
DEBIAN_FRONTEND: noninteractive
run: |
sudo apt-get update -qq -y
# compiler
sudo apt-get install -qq -y gcc g++
# basic packages
sudo apt-get install -qq -y \
autoconf libtool make pkg-config
# imake deps
sudo apt-get install -qq -y \
libxkbfile-dev xfonts-utils xutils-dev
# X11 libraries deps
sudo apt-get install -qq -y \
libpixman-1-dev libjpeg-dev libxcomposite-dev libxdamage-dev \
libxml2-dev libxfont-dev libxinerama-dev libxpm-dev libxrandr-dev \
libxtst-dev x11proto-fonts-dev
# soft requirements
sudo apt-get install -qq -y \
quilt x11-xkb-utils
# PVS
sudo wget -q -O - https://files.viva64.com/etc/pubkey.txt | sudo apt-key add -
sudo wget -O /etc/apt/sources.list.d/viva64.list https://files.viva64.com/etc/viva64.list
sudo apt-get update -qq
sudo apt-get install -qq pvs-studio
- name: Run PVS-Studio Analyzer
shell: bash
env:
PVS_USERNAME: ${{ secrets.PVS_USERNAME }}
PVS_KEY: ${{ secrets.PVS_KEY }}
run: |
# check environment variables
if [[ -z "${PVS_USERNAME}" ]]; then
echo '"PVS_USERNAME" environment variable not set'
exit 0
elif [[ -z "${PVS_KEY}" ]]; then
echo '"PVS_KEY" environment variable not set'
exit 0
else
pvs-studio-analyzer credentials -o "PVS-Studio.lic" "${PVS_USERNAME}" "${PVS_KEY}"
pvs-studio-analyzer trace -- make
pvs-studio-analyzer analyze --quiet --lic-file "PVS-Studio.lic" --output-file "PVS-Studio-${CC}.log"
plog-converter -a "GA:1,2" -t tasklist -o "PVS-Studio-${CC}.tasks" "PVS-Studio-${CC}.log"
cat "PVS-Studio-${CC}.tasks"
fi

81
.github/workflows/nx-libs-archs.yml vendored Normal file
View File

@@ -0,0 +1,81 @@
name: nx-libs CI diff archs
on:
push:
branches: [ 3.6.x ]
pull_request:
branches: [ 3.6.x ]
jobs:
build:
runs-on: ubuntu-20.04
name: Build on ${{ matrix.distro }} ${{ matrix.arch }} with gcc
# Run steps on a matrix of 4 arch/distro combinations
strategy:
fail-fast: false
matrix:
include:
- arch: aarch64
distro: ubuntu20.04
- arch: ppc64le
distro: ubuntu20.04
- arch: s390x
distro: ubuntu20.04
- arch: armv7
distro: ubuntu20.04
steps:
- name: Checkout repository
uses: actions/checkout@v2
- uses: uraimo/run-on-arch-action@v2.0.8
name: Build artifact
id: build
with:
arch: ${{ matrix.arch }}
distro: ${{ matrix.distro }}
# Not required, but speeds up builds
githubToken: ${{ github.token }}
# Pass some environment variables to the container
env: |
CC: gcc
CXX: g++
DEBIAN_FRONTEND: noninteractive
# The shell to run commands with in the container
shell: /bin/sh
# Install some dependencies in the container. This speeds up builds if
# you are also using githubToken. Any dependencies installed here will
# be part of the container image that gets cached, so subsequent
# builds don't have to re-install them. The image layer is cached
# publicly in your project's package repository, so it is vital that
# no secrets are present in the container state or logs.
install: |
case "${{ matrix.distro }}" in
ubuntu*)
cat /etc/debian_version
apt-get update -q -y
apt-get install -q -y gcc g++
gcc --version
# basic packages
apt-get install -q -y \
autoconf libtool make pkg-config
# imake deps
apt-get install -q -y \
libxkbfile-dev xfonts-utils xutils-dev
# X11 libraries deps
apt-get install -q -y \
libpixman-1-dev libjpeg-dev libxcomposite-dev libxdamage-dev \
libxml2-dev libxfont-dev libxinerama-dev libxpm-dev libxrandr-dev \
libxtst-dev x11proto-fonts-dev
# soft requirements
apt-get install -q -y \
quilt x11-xkb-utils
;;
esac
run: |
make

216
.github/workflows/nx-libs.yml vendored Normal file
View File

@@ -0,0 +1,216 @@
name: nx-libs CI
on:
push:
branches: [ 3.6.x ]
pull_request:
branches: [ 3.6.x ]
jobs:
build:
name: Build on ${{ matrix.cfg.container }} - ${{ matrix.cfg.cc-version }}
runs-on: ubuntu-20.04
container: ${{ matrix.cfg.container }}
strategy:
fail-fast: false
matrix:
cfg:
- { container: 'ubuntu:16.04', cc-version: gcc }
- { container: 'ubuntu:16.04', cc-version: clang }
- { container: 'ubuntu:20.04', cc-version: gcc }
- { container: 'ubuntu:20.04', cc-version: clang }
- { container: 'ubuntu:22.04', cc-version: gcc }
- { container: 'ubuntu:22.04', cc-version: clang }
- { container: 'debian:stable', cc-version: gcc }
- { container: 'debian:stable', cc-version: clang }
- { container: 'debian:sid', cc-version: gcc }
- { container: 'debian:sid', cc-version: clang }
- { container: 'quay.io/centos/centos:7', cc-version: gcc }
- { container: 'quay.io/centos/centos:7', cc-version: clang }
- { container: 'quay.io/centos/centos:stream8', cc-version: gcc }
- { container: 'quay.io/centos/centos:stream8', cc-version: clang }
- { container: 'quay.io/centos/centos:stream9', cc-version: gcc }
- { container: 'quay.io/centos/centos:stream9', cc-version: clang }
- { container: 'fedora:latest', cc-version: gcc }
- { container: 'fedora:latest', cc-version: clang }
steps:
- name: Install compiler ${{ matrix.cfg.cc-version }}
shell: sh
env:
DEBIAN_FRONTEND: noninteractive
run: |
case "${{ matrix.cfg.container }}" in
ubuntu*|debian*)
cat /etc/debian_version
apt-get update -q -y
apt-get install -q -y ${{ matrix.cfg.cc-version }}
${{ matrix.cfg.cc-version }} --version
case "${{ matrix.cfg.cc-version }}" in
gcc)
apt-get install -q -y g++
;;
clang)
apt-get install -q -y build-essential
esac
;;
fedora*)
cat /etc/fedora-release
dnf -y update
dnf -y install ${{ matrix.cfg.cc-version }}
${{ matrix.cfg.cc-version }} --version
;;
*/centos:7)
cat /etc/centos-release
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
yum -y update
yum -y install ${{ matrix.cfg.cc-version }}
${{ matrix.cfg.cc-version }} --version
;;
*/centos:stream8)
cat /etc/centos-release
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial
dnf -y update --nobest --allowerasing
dnf -y install ${{ matrix.cfg.cc-version }}
${{ matrix.cfg.cc-version }} --version
;;
*/centos:stream9)
cat /etc/centos-release
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial
dnf -y update
dnf -y install ${{ matrix.cfg.cc-version }}
${{ matrix.cfg.cc-version }} --version
;;
esac
- name: Install nx-libs dependencies ${{ matrix.cfg.cc-version }}
shell: sh
env:
DEBIAN_FRONTEND: noninteractive
run: |
case "${{ matrix.cfg.container }}" in
ubuntu*|debian*)
# basic packages
apt-get install -q -y \
autoconf libtool make pkg-config
# imake deps
apt-get install -q -y \
libxkbfile-dev xfonts-utils xutils-dev
# X11 libraries deps
apt-get install -q -y \
libpixman-1-dev libjpeg-dev libxcomposite-dev libxdamage-dev \
libxml2-dev libxfont-dev libxinerama-dev libxpm-dev libxrandr-dev \
libxtst-dev x11proto-fonts-dev
# soft requirements
apt-get install -q -y \
quilt x11-xkb-utils
;;
fedora*)
# basic packages
dnf -y install \
autoconf automake gcc-c++ libtool make imake pkgconfig which
# imake deps
dnf -y install \
xorg-x11-proto-devel zlib-devel
# X11 libraries deps
dnf -y install \
libjpeg-devel expat-devel libpng-devel libxml2-devel pixman-devel \
libX11-devel libXext-devel libXpm-devel libXfont2-devel \
libXdmcp-devel libXdamage-devel libXcomposite-devel \
libXrandr-devel libXfixes-devel libXtst-devel libXinerama-devel \
xorg-x11-font-utils libtirpc-devel xkeyboard-config
# soft requirements
dnf -y install \
quilt xkbcomp-devel
;;
*/centos:7)
# enable epel repository for quilt
yum -y install epel-release
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
# basic packages
yum -y install \
autoconf automake gcc-c++ libtool make imake pkgconfig which
# imake deps
yum -y install \
xorg-x11-proto-devel zlib-devel
# X11 libraries deps
yum -y install \
libjpeg-devel expat-devel libpng-devel libxml2-devel pixman-devel \
libX11-devel libXext-devel libXpm-devel libXfont-devel \
libXdmcp-devel libXdamage-devel libXcomposite-devel \
libXrandr-devel libXfixes-devel libXtst-devel libXinerama-devel \
xorg-x11-font-utils libtirpc-devel xkeyboard-config
# soft requirements
yum -y --enablerepo=epel install \
quilt xorg-x11-xkb-utils-devel
;;
*/centos:stream8)
# Enable powertools repository for imake
dnf -y install dnf-plugins-core epel-release
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-8
dnf config-manager --set-enabled powertools
# basic packages
dnf -y install \
autoconf automake gcc-c++ libtool make imake pkgconfig which
# imake deps
dnf -y install \
xorg-x11-proto-devel zlib-devel
# X11 libraries deps
dnf -y install \
libjpeg-devel expat-devel libpng-devel libxml2-devel pixman-devel \
libX11-devel libXext-devel libXpm-devel libXfont2-devel \
libXdmcp-devel libXdamage-devel libXcomposite-devel \
libXrandr-devel libXfixes-devel libXtst-devel libXinerama-devel \
xorg-x11-font-utils libtirpc-devel xkeyboard-config
# soft requirements
dnf --enablerepo="epel" -y install \
quilt xorg-x11-xkb-utils-devel
;;
*/centos:stream9)
dnf -y install dnf-plugins-core epel-release
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-9
# CodeReady Linux Builder, replacement for PowerTools
dnf config-manager --set-enabled crb
# basic packages
dnf -y install \
autoconf automake gcc-c++ libtool make imake pkgconfig which
# imake deps
dnf -y install \
xorg-x11-proto-devel zlib-devel
# X11 libraries deps
dnf -y install \
libjpeg-devel expat-devel libpng-devel libxml2-devel pixman-devel \
libX11-devel libXext-devel libXpm-devel libXfont2-devel \
libXdmcp-devel libXdamage-devel libXcomposite-devel \
libXrandr-devel libXfixes-devel libXtst-devel libXinerama-devel \
libtirpc-devel mkfontscale xkeyboard-config
# soft requirements
dnf -y install \
quilt setxkbmap xkbcomp
;;
esac
- name: Checkout repository
uses: actions/checkout@v2
- name: Build nx-libs with ${{ matrix.cfg.cc-version }}
shell: sh
env:
DEBIAN_FRONTEND: noninteractive
run: |
case "${{ matrix.cfg.cc-version }}" in
gcc)
export CC=gcc
export CXX=g++
;;
clang)
export CC=clang
export CXX=clang++
;;
esac
case "${{ matrix.cfg.container }}" in
fedora*|*/centos*|debian*|ubuntu*)
export IMAKE_DEFINES="-DUseTIRPC=YES"
make VERBOSE=1 IMAKE_DEFINES="${IMAKE_DEFINES}"
;;
esac