Thu Feb 24 05:50:40 UTC 2022

a/aaa_libraries-15.1-x86_64-1.txz:  Upgraded.
  Upgraded: libnsl-2.35.so, libexpat.so.1.8.6, libglib-2.0.so.0.7000.4,
  libgmodule-2.0.so.0.7000.4, libgthread-2.0.so.0.7000.4.
  Added: libicudata.so.69.1, libicui18n.so.69.1, libicuio.so.69.1,
  libicutest.so.69.1, libicutu.so.69.1, libicuuc.so.69.1.
a/kernel-generic-5.16.11-x86_64-1.txz:  Upgraded.
a/kernel-huge-5.16.11-x86_64-1.txz:  Upgraded.
a/kernel-modules-5.16.11-x86_64-1.txz:  Upgraded.
a/xfsprogs-5.13.0-x86_64-2.txz:  Rebuilt.
  Recompiled against icu4c-70.1.
ap/sqlite-3.38.0-x86_64-1.txz:  Upgraded.
  Compiled against icu4c-70.1.
d/kernel-headers-5.16.11-x86-1.txz:  Upgraded.
k/kernel-source-5.16.11-noarch-1.txz:  Upgraded.
kde/bluedevil-5.24.2-x86_64-1.txz:  Upgraded.
kde/breeze-5.24.2-x86_64-1.txz:  Upgraded.
kde/breeze-grub-5.24.2-x86_64-1.txz:  Upgraded.
kde/breeze-gtk-5.24.2-x86_64-1.txz:  Upgraded.
kde/drkonqi-5.24.2-x86_64-1.txz:  Upgraded.
kde/kactivitymanagerd-5.24.2-x86_64-1.txz:  Upgraded.
kde/kde-cli-tools-5.24.2-x86_64-1.txz:  Upgraded.
kde/kde-gtk-config-5.24.2-x86_64-1.txz:  Upgraded.
kde/kdecoration-5.24.2-x86_64-1.txz:  Upgraded.
kde/kdeplasma-addons-5.24.2-x86_64-1.txz:  Upgraded.
kde/kgamma5-5.24.2-x86_64-1.txz:  Upgraded.
kde/khotkeys-5.24.2-x86_64-1.txz:  Upgraded.
kde/kinfocenter-5.24.2-x86_64-1.txz:  Upgraded.
kde/kmenuedit-5.24.2-x86_64-1.txz:  Upgraded.
kde/kscreen-5.24.2-x86_64-1.txz:  Upgraded.
kde/kscreenlocker-5.24.2-x86_64-1.txz:  Upgraded.
kde/ksshaskpass-5.24.2-x86_64-1.txz:  Upgraded.
kde/ksystemstats-5.24.2-x86_64-1.txz:  Upgraded.
kde/kwallet-pam-5.24.2-x86_64-1.txz:  Upgraded.
kde/kwayland-integration-5.24.2-x86_64-1.txz:  Upgraded.
kde/kwayland-server-5.24.2-x86_64-1.txz:  Upgraded.
kde/kwin-5.24.2-x86_64-1.txz:  Upgraded.
kde/kwrited-5.24.2-x86_64-1.txz:  Upgraded.
kde/layer-shell-qt-5.24.2-x86_64-1.txz:  Upgraded.
kde/libkscreen-5.24.2-x86_64-1.txz:  Upgraded.
kde/libksysguard-5.24.2-x86_64-1.txz:  Upgraded.
kde/milou-5.24.2-x86_64-1.txz:  Upgraded.
kde/okteta-0.26.7-x86_64-1.txz:  Upgraded.
kde/oxygen-5.24.2-x86_64-1.txz:  Upgraded.
kde/plasma-browser-integration-5.24.2-x86_64-1.txz:  Upgraded.
kde/plasma-desktop-5.24.2-x86_64-1.txz:  Upgraded.
kde/plasma-disks-5.24.2-x86_64-1.txz:  Upgraded.
kde/plasma-firewall-5.24.2-x86_64-1.txz:  Upgraded.
kde/plasma-integration-5.24.2-x86_64-1.txz:  Upgraded.
kde/plasma-nm-5.24.2-x86_64-1.txz:  Upgraded.
kde/plasma-pa-5.24.2-x86_64-1.txz:  Upgraded.
kde/plasma-sdk-5.24.2-x86_64-1.txz:  Upgraded.
kde/plasma-systemmonitor-5.24.2-x86_64-1.txz:  Upgraded.
kde/plasma-vault-5.24.2-x86_64-1.txz:  Upgraded.
kde/plasma-workspace-5.24.2-x86_64-1.txz:  Upgraded.
kde/plasma-workspace-wallpapers-5.24.2-x86_64-1.txz:  Upgraded.
kde/polkit-kde-agent-1-5.24.2-x86_64-1.txz:  Upgraded.
kde/powerdevil-5.24.2-x86_64-1.txz:  Upgraded.
kde/qqc2-breeze-style-5.24.2-x86_64-1.txz:  Upgraded.
kde/sddm-kcm-5.24.2-x86_64-1.txz:  Upgraded.
kde/systemsettings-5.24.2-x86_64-1.txz:  Upgraded.
kde/xdg-desktop-portal-kde-5.24.2-x86_64-1.txz:  Upgraded.
l/babl-0.1.90-x86_64-1.txz:  Upgraded.
l/boost-1.78.0-x86_64-2.txz:  Rebuilt.
  Recompiled against icu4c-70.1.
l/gegl-0.4.36-x86_64-1.txz:  Upgraded.
l/harfbuzz-3.4.0-x86_64-2.txz:  Rebuilt.
  Recompiled against icu4c-70.1.
l/icu4c-70.1-x86_64-1.txz:  Upgraded.
  Shared library .so-version bump.
l/libical-3.0.14-x86_64-2.txz:  Rebuilt.
  Recompiled against icu4c-70.1.
l/libqalculate-4.0.0-x86_64-2.txz:  Rebuilt.
  Recompiled against icu4c-70.1.
l/libvisio-0.1.7-x86_64-8.txz:  Rebuilt.
  Recompiled against icu4c-70.1.
l/qt5-5.15.3_20220222_08720135-x86_64-1.txz:  Upgraded.
  Compiled against icu4c-70.1.
  Thanks to Heinz Wiesinger for updating the fetch_sources.sh script to make
  sure that the QtWebEngine version matches the rest of Qt, which got the
  latest git pull compiling again.
l/qt5-webkit-5.212.0_alpha4-x86_64-8.txz:  Rebuilt.
  Recompiled against icu4c-70.1.
l/vte-0.66.2-x86_64-2.txz:  Rebuilt.
  Recompiled against icu4c-70.1.
n/dovecot-2.3.18-x86_64-2.txz:  Rebuilt.
  Recompiled against icu4c-70.1.
n/php-7.4.28-x86_64-2.txz:  Rebuilt.
  Recompiled against icu4c-70.1.
n/postfix-3.7.0-x86_64-2.txz:  Rebuilt.
  Recompiled against icu4c-70.1.
n/samba-4.15.5-x86_64-2.txz:  Rebuilt.
  Recompiled against icu4c-70.1.
n/tin-2.6.1-x86_64-2.txz:  Rebuilt.
  Recompiled against icu4c-70.1.
t/texlive-2021.210418-x86_64-3.txz:  Rebuilt.
  Recompiled against icu4c-70.1.
extra/php80/php80-8.0.16-x86_64-2.txz:  Rebuilt.
  Recompiled against icu4c-70.1.
extra/php81/php81-8.1.3-x86_64-2.txz:  Rebuilt.
  Recompiled against icu4c-70.1.
isolinux/initrd.img:  Rebuilt.
kernels/*:  Upgraded.
usb-and-pxe-installers/usbboot.img:  Rebuilt.
This commit is contained in:
Patrick J Volkerding 2022-02-24 05:50:40 +00:00 committed by Eric Hameleers
parent cd1ecf258b
commit 9b8196890b
42 changed files with 725 additions and 1273 deletions

View file

@ -11,9 +11,122 @@
<description>Tracking Slackware development in git.</description>
<language>en-us</language>
<id xmlns="http://www.w3.org/2005/Atom">urn:uuid:c964f45e-6732-11e8-bbe5-107b4450212f</id>
<pubDate>Tue, 22 Feb 2022 21:24:29 GMT</pubDate>
<lastBuildDate>Wed, 23 Feb 2022 05:59:40 GMT</lastBuildDate>
<pubDate>Thu, 24 Feb 2022 05:50:40 GMT</pubDate>
<lastBuildDate>Thu, 24 Feb 2022 21:59:46 GMT</lastBuildDate>
<generator>maintain_current_git.sh v 1.17</generator>
<item>
<title>Thu, 24 Feb 2022 05:50:40 GMT</title>
<pubDate>Thu, 24 Feb 2022 05:50:40 GMT</pubDate>
<link>https://git.slackware.nl/current/tag/?h=20220224055040</link>
<guid isPermaLink="false">20220224055040</guid>
<description>
<![CDATA[<pre>
a/aaa_libraries-15.1-x86_64-1.txz: Upgraded.
Upgraded: libnsl-2.35.so, libexpat.so.1.8.6, libglib-2.0.so.0.7000.4,
libgmodule-2.0.so.0.7000.4, libgthread-2.0.so.0.7000.4.
Added: libicudata.so.69.1, libicui18n.so.69.1, libicuio.so.69.1,
libicutest.so.69.1, libicutu.so.69.1, libicuuc.so.69.1.
a/kernel-generic-5.16.11-x86_64-1.txz: Upgraded.
a/kernel-huge-5.16.11-x86_64-1.txz: Upgraded.
a/kernel-modules-5.16.11-x86_64-1.txz: Upgraded.
a/xfsprogs-5.13.0-x86_64-2.txz: Rebuilt.
Recompiled against icu4c-70.1.
ap/sqlite-3.38.0-x86_64-1.txz: Upgraded.
Compiled against icu4c-70.1.
d/kernel-headers-5.16.11-x86-1.txz: Upgraded.
k/kernel-source-5.16.11-noarch-1.txz: Upgraded.
kde/bluedevil-5.24.2-x86_64-1.txz: Upgraded.
kde/breeze-5.24.2-x86_64-1.txz: Upgraded.
kde/breeze-grub-5.24.2-x86_64-1.txz: Upgraded.
kde/breeze-gtk-5.24.2-x86_64-1.txz: Upgraded.
kde/drkonqi-5.24.2-x86_64-1.txz: Upgraded.
kde/kactivitymanagerd-5.24.2-x86_64-1.txz: Upgraded.
kde/kde-cli-tools-5.24.2-x86_64-1.txz: Upgraded.
kde/kde-gtk-config-5.24.2-x86_64-1.txz: Upgraded.
kde/kdecoration-5.24.2-x86_64-1.txz: Upgraded.
kde/kdeplasma-addons-5.24.2-x86_64-1.txz: Upgraded.
kde/kgamma5-5.24.2-x86_64-1.txz: Upgraded.
kde/khotkeys-5.24.2-x86_64-1.txz: Upgraded.
kde/kinfocenter-5.24.2-x86_64-1.txz: Upgraded.
kde/kmenuedit-5.24.2-x86_64-1.txz: Upgraded.
kde/kscreen-5.24.2-x86_64-1.txz: Upgraded.
kde/kscreenlocker-5.24.2-x86_64-1.txz: Upgraded.
kde/ksshaskpass-5.24.2-x86_64-1.txz: Upgraded.
kde/ksystemstats-5.24.2-x86_64-1.txz: Upgraded.
kde/kwallet-pam-5.24.2-x86_64-1.txz: Upgraded.
kde/kwayland-integration-5.24.2-x86_64-1.txz: Upgraded.
kde/kwayland-server-5.24.2-x86_64-1.txz: Upgraded.
kde/kwin-5.24.2-x86_64-1.txz: Upgraded.
kde/kwrited-5.24.2-x86_64-1.txz: Upgraded.
kde/layer-shell-qt-5.24.2-x86_64-1.txz: Upgraded.
kde/libkscreen-5.24.2-x86_64-1.txz: Upgraded.
kde/libksysguard-5.24.2-x86_64-1.txz: Upgraded.
kde/milou-5.24.2-x86_64-1.txz: Upgraded.
kde/okteta-0.26.7-x86_64-1.txz: Upgraded.
kde/oxygen-5.24.2-x86_64-1.txz: Upgraded.
kde/plasma-browser-integration-5.24.2-x86_64-1.txz: Upgraded.
kde/plasma-desktop-5.24.2-x86_64-1.txz: Upgraded.
kde/plasma-disks-5.24.2-x86_64-1.txz: Upgraded.
kde/plasma-firewall-5.24.2-x86_64-1.txz: Upgraded.
kde/plasma-integration-5.24.2-x86_64-1.txz: Upgraded.
kde/plasma-nm-5.24.2-x86_64-1.txz: Upgraded.
kde/plasma-pa-5.24.2-x86_64-1.txz: Upgraded.
kde/plasma-sdk-5.24.2-x86_64-1.txz: Upgraded.
kde/plasma-systemmonitor-5.24.2-x86_64-1.txz: Upgraded.
kde/plasma-vault-5.24.2-x86_64-1.txz: Upgraded.
kde/plasma-workspace-5.24.2-x86_64-1.txz: Upgraded.
kde/plasma-workspace-wallpapers-5.24.2-x86_64-1.txz: Upgraded.
kde/polkit-kde-agent-1-5.24.2-x86_64-1.txz: Upgraded.
kde/powerdevil-5.24.2-x86_64-1.txz: Upgraded.
kde/qqc2-breeze-style-5.24.2-x86_64-1.txz: Upgraded.
kde/sddm-kcm-5.24.2-x86_64-1.txz: Upgraded.
kde/systemsettings-5.24.2-x86_64-1.txz: Upgraded.
kde/xdg-desktop-portal-kde-5.24.2-x86_64-1.txz: Upgraded.
l/babl-0.1.90-x86_64-1.txz: Upgraded.
l/boost-1.78.0-x86_64-2.txz: Rebuilt.
Recompiled against icu4c-70.1.
l/gegl-0.4.36-x86_64-1.txz: Upgraded.
l/harfbuzz-3.4.0-x86_64-2.txz: Rebuilt.
Recompiled against icu4c-70.1.
l/icu4c-70.1-x86_64-1.txz: Upgraded.
Shared library .so-version bump.
l/libical-3.0.14-x86_64-2.txz: Rebuilt.
Recompiled against icu4c-70.1.
l/libqalculate-4.0.0-x86_64-2.txz: Rebuilt.
Recompiled against icu4c-70.1.
l/libvisio-0.1.7-x86_64-8.txz: Rebuilt.
Recompiled against icu4c-70.1.
l/qt5-5.15.3_20220222_08720135-x86_64-1.txz: Upgraded.
Compiled against icu4c-70.1.
Thanks to Heinz Wiesinger for updating the fetch_sources.sh script to make
sure that the QtWebEngine version matches the rest of Qt, which got the
latest git pull compiling again.
l/qt5-webkit-5.212.0_alpha4-x86_64-8.txz: Rebuilt.
Recompiled against icu4c-70.1.
l/vte-0.66.2-x86_64-2.txz: Rebuilt.
Recompiled against icu4c-70.1.
n/dovecot-2.3.18-x86_64-2.txz: Rebuilt.
Recompiled against icu4c-70.1.
n/php-7.4.28-x86_64-2.txz: Rebuilt.
Recompiled against icu4c-70.1.
n/postfix-3.7.0-x86_64-2.txz: Rebuilt.
Recompiled against icu4c-70.1.
n/samba-4.15.5-x86_64-2.txz: Rebuilt.
Recompiled against icu4c-70.1.
n/tin-2.6.1-x86_64-2.txz: Rebuilt.
Recompiled against icu4c-70.1.
t/texlive-2021.210418-x86_64-3.txz: Rebuilt.
Recompiled against icu4c-70.1.
extra/php80/php80-8.0.16-x86_64-2.txz: Rebuilt.
Recompiled against icu4c-70.1.
extra/php81/php81-8.1.3-x86_64-2.txz: Rebuilt.
Recompiled against icu4c-70.1.
isolinux/initrd.img: Rebuilt.
kernels/*: Upgraded.
usb-and-pxe-installers/usbboot.img: Rebuilt.
</pre>]]>
</description>
</item>
<item>
<title>Tue, 22 Feb 2022 21:24:29 GMT</title>
<pubDate>Tue, 22 Feb 2022 21:24:29 GMT</pubDate>

View file

@ -1,3 +1,108 @@
Thu Feb 24 05:50:40 UTC 2022
a/aaa_libraries-15.1-x86_64-1.txz: Upgraded.
Upgraded: libnsl-2.35.so, libexpat.so.1.8.6, libglib-2.0.so.0.7000.4,
libgmodule-2.0.so.0.7000.4, libgthread-2.0.so.0.7000.4.
Added: libicudata.so.69.1, libicui18n.so.69.1, libicuio.so.69.1,
libicutest.so.69.1, libicutu.so.69.1, libicuuc.so.69.1.
a/kernel-generic-5.16.11-x86_64-1.txz: Upgraded.
a/kernel-huge-5.16.11-x86_64-1.txz: Upgraded.
a/kernel-modules-5.16.11-x86_64-1.txz: Upgraded.
a/xfsprogs-5.13.0-x86_64-2.txz: Rebuilt.
Recompiled against icu4c-70.1.
ap/sqlite-3.38.0-x86_64-1.txz: Upgraded.
Compiled against icu4c-70.1.
d/kernel-headers-5.16.11-x86-1.txz: Upgraded.
k/kernel-source-5.16.11-noarch-1.txz: Upgraded.
kde/bluedevil-5.24.2-x86_64-1.txz: Upgraded.
kde/breeze-5.24.2-x86_64-1.txz: Upgraded.
kde/breeze-grub-5.24.2-x86_64-1.txz: Upgraded.
kde/breeze-gtk-5.24.2-x86_64-1.txz: Upgraded.
kde/drkonqi-5.24.2-x86_64-1.txz: Upgraded.
kde/kactivitymanagerd-5.24.2-x86_64-1.txz: Upgraded.
kde/kde-cli-tools-5.24.2-x86_64-1.txz: Upgraded.
kde/kde-gtk-config-5.24.2-x86_64-1.txz: Upgraded.
kde/kdecoration-5.24.2-x86_64-1.txz: Upgraded.
kde/kdeplasma-addons-5.24.2-x86_64-1.txz: Upgraded.
kde/kgamma5-5.24.2-x86_64-1.txz: Upgraded.
kde/khotkeys-5.24.2-x86_64-1.txz: Upgraded.
kde/kinfocenter-5.24.2-x86_64-1.txz: Upgraded.
kde/kmenuedit-5.24.2-x86_64-1.txz: Upgraded.
kde/kscreen-5.24.2-x86_64-1.txz: Upgraded.
kde/kscreenlocker-5.24.2-x86_64-1.txz: Upgraded.
kde/ksshaskpass-5.24.2-x86_64-1.txz: Upgraded.
kde/ksystemstats-5.24.2-x86_64-1.txz: Upgraded.
kde/kwallet-pam-5.24.2-x86_64-1.txz: Upgraded.
kde/kwayland-integration-5.24.2-x86_64-1.txz: Upgraded.
kde/kwayland-server-5.24.2-x86_64-1.txz: Upgraded.
kde/kwin-5.24.2-x86_64-1.txz: Upgraded.
kde/kwrited-5.24.2-x86_64-1.txz: Upgraded.
kde/layer-shell-qt-5.24.2-x86_64-1.txz: Upgraded.
kde/libkscreen-5.24.2-x86_64-1.txz: Upgraded.
kde/libksysguard-5.24.2-x86_64-1.txz: Upgraded.
kde/milou-5.24.2-x86_64-1.txz: Upgraded.
kde/okteta-0.26.7-x86_64-1.txz: Upgraded.
kde/oxygen-5.24.2-x86_64-1.txz: Upgraded.
kde/plasma-browser-integration-5.24.2-x86_64-1.txz: Upgraded.
kde/plasma-desktop-5.24.2-x86_64-1.txz: Upgraded.
kde/plasma-disks-5.24.2-x86_64-1.txz: Upgraded.
kde/plasma-firewall-5.24.2-x86_64-1.txz: Upgraded.
kde/plasma-integration-5.24.2-x86_64-1.txz: Upgraded.
kde/plasma-nm-5.24.2-x86_64-1.txz: Upgraded.
kde/plasma-pa-5.24.2-x86_64-1.txz: Upgraded.
kde/plasma-sdk-5.24.2-x86_64-1.txz: Upgraded.
kde/plasma-systemmonitor-5.24.2-x86_64-1.txz: Upgraded.
kde/plasma-vault-5.24.2-x86_64-1.txz: Upgraded.
kde/plasma-workspace-5.24.2-x86_64-1.txz: Upgraded.
kde/plasma-workspace-wallpapers-5.24.2-x86_64-1.txz: Upgraded.
kde/polkit-kde-agent-1-5.24.2-x86_64-1.txz: Upgraded.
kde/powerdevil-5.24.2-x86_64-1.txz: Upgraded.
kde/qqc2-breeze-style-5.24.2-x86_64-1.txz: Upgraded.
kde/sddm-kcm-5.24.2-x86_64-1.txz: Upgraded.
kde/systemsettings-5.24.2-x86_64-1.txz: Upgraded.
kde/xdg-desktop-portal-kde-5.24.2-x86_64-1.txz: Upgraded.
l/babl-0.1.90-x86_64-1.txz: Upgraded.
l/boost-1.78.0-x86_64-2.txz: Rebuilt.
Recompiled against icu4c-70.1.
l/gegl-0.4.36-x86_64-1.txz: Upgraded.
l/harfbuzz-3.4.0-x86_64-2.txz: Rebuilt.
Recompiled against icu4c-70.1.
l/icu4c-70.1-x86_64-1.txz: Upgraded.
Shared library .so-version bump.
l/libical-3.0.14-x86_64-2.txz: Rebuilt.
Recompiled against icu4c-70.1.
l/libqalculate-4.0.0-x86_64-2.txz: Rebuilt.
Recompiled against icu4c-70.1.
l/libvisio-0.1.7-x86_64-8.txz: Rebuilt.
Recompiled against icu4c-70.1.
l/qt5-5.15.3_20220222_08720135-x86_64-1.txz: Upgraded.
Compiled against icu4c-70.1.
Thanks to Heinz Wiesinger for updating the fetch_sources.sh script to make
sure that the QtWebEngine version matches the rest of Qt, which got the
latest git pull compiling again.
l/qt5-webkit-5.212.0_alpha4-x86_64-8.txz: Rebuilt.
Recompiled against icu4c-70.1.
l/vte-0.66.2-x86_64-2.txz: Rebuilt.
Recompiled against icu4c-70.1.
n/dovecot-2.3.18-x86_64-2.txz: Rebuilt.
Recompiled against icu4c-70.1.
n/php-7.4.28-x86_64-2.txz: Rebuilt.
Recompiled against icu4c-70.1.
n/postfix-3.7.0-x86_64-2.txz: Rebuilt.
Recompiled against icu4c-70.1.
n/samba-4.15.5-x86_64-2.txz: Rebuilt.
Recompiled against icu4c-70.1.
n/tin-2.6.1-x86_64-2.txz: Rebuilt.
Recompiled against icu4c-70.1.
t/texlive-2021.210418-x86_64-3.txz: Rebuilt.
Recompiled against icu4c-70.1.
extra/php80/php80-8.0.16-x86_64-2.txz: Rebuilt.
Recompiled against icu4c-70.1.
extra/php81/php81-8.1.3-x86_64-2.txz: Rebuilt.
Recompiled against icu4c-70.1.
isolinux/initrd.img: Rebuilt.
kernels/*: Upgraded.
usb-and-pxe-installers/usbboot.img: Rebuilt.
+--------------------------+
Tue Feb 22 21:24:29 UTC 2022
a/aaa_glibc-solibs-2.35-x86_64-2.txz: Rebuilt.
l/glibc-2.35-x86_64-2.txz: Rebuilt.

File diff suppressed because it is too large Load diff

View file

@ -1,7 +1,7 @@
Slackware initrd mini HOWTO
by Patrick Volkerding, volkerdi@slackware.com
Fri Feb 18 05:17:08 UTC 2022
Thu Feb 24 05:34:06 UTC 2022
This document describes how to create and install an initrd, which may be
required to use the 4.x kernel. Also see "man mkinitrd".
@ -33,15 +33,15 @@ flexible to ship a generic kernel and a set of kernel modules for it.
The easiest way to make the initrd is to use the mkinitrd script included
in Slackware's mkinitrd package. We'll walk through the process of
upgrading to the generic 5.16.10 Linux kernel using the packages
upgrading to the generic 5.16.11 Linux kernel using the packages
found in Slackware's slackware/a/ directory.
First, make sure the kernel, kernel modules, and mkinitrd package are
installed (the current version numbers might be a little different, so
this is just an example):
installpkg kernel-generic-5.16.10-x86_64-1.txz
installpkg kernel-modules-5.16.10-x86_64-1.txz
installpkg kernel-generic-5.16.11-x86_64-1.txz
installpkg kernel-modules-5.16.11-x86_64-1.txz
installpkg mkinitrd-1.4.11-x86_64-28.txz
Change into the /boot directory:
@ -52,7 +52,7 @@ Now you'll want to run "mkinitrd". I'm using ext4 for my root filesystem,
and since the disk controller requires no special support the ext4 module
will be the only one I need to load:
mkinitrd -c -k 5.16.10 -m ext4
mkinitrd -c -k 5.16.11 -m ext4
This should do two things. First, it will create a directory
/boot/initrd-tree containing the initrd's filesystem. Then it will
@ -61,10 +61,10 @@ you could make some additional changes in /boot/initrd-tree/ and
then run mkinitrd again without options to rebuild the image. That's
optional, though, and only advanced users will need to think about that.
Here's another example: Build an initrd image using Linux 5.16.10
Here's another example: Build an initrd image using Linux 5.16.11
kernel modules for a system with an ext4 root partition on /dev/sdb3:
mkinitrd -c -k 5.16.10 -m ext4 -f ext4 -r /dev/sdb3
mkinitrd -c -k 5.16.11 -m ext4 -f ext4 -r /dev/sdb3
4. Now that I've built an initrd, how do I use it?

View file

@ -28,7 +28,7 @@ cd $(dirname $0) ; CWD=$(pwd)
PKGNAM=php
VERSION=${VERSION:-$(echo php-*.tar.xz | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
ALPINE=2.25
BUILD=${BUILD:-1}
BUILD=${BUILD:-2}
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then

View file

@ -28,7 +28,7 @@ cd $(dirname $0) ; CWD=$(pwd)
PKGNAM=php
VERSION=${VERSION:-$(echo php-*.tar.xz | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
ALPINE=2.25
BUILD=${BUILD:-1}
BUILD=${BUILD:-2}
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then

View file

@ -1,5 +1,5 @@
Welcome to 09Slackware6407 version 15.1 (Linux kernel 5.16.10)!
Welcome to 09Slackware6407 version 15.1 (Linux kernel 5.16.11)!
If you need to pass extra parameters to the kernel, enter them at the prompt
below after the name of the kernel to boot (e.g., huge.s).

View file

@ -1,3 +1,3 @@
These kernels are version 5.16.10.
These kernels are version 5.16.11.

View file

@ -921,14 +921,11 @@ gzip ./source/l/dconf-editor/doinst.sh
gzip ./source/l/dconf-editor/dconf-editor.ftbfs.diff
gzip ./source/l/serf/serf.SConstruct.python3.diff
gzip ./source/l/glib-networking/doinst.sh
gzip ./source/l/qt5/patches/24.diff
gzip ./source/l/qt5/patches/qt5-glibc-2.34.patch
gzip ./source/l/qt5/patches/qt5-qtbase-gcc11.patch
gzip ./source/l/qt5/patches/qt5-qtwebsockets-gcc11.patch
gzip ./source/l/qt5/patches/qt5.qtbase_cmake_isystem_includes.patch
gzip ./source/l/qt5/patches/qt5.mysql.h.diff
gzip ./source/l/qt5/patches/qt5-qtwebengine-gcc11.patch
gzip ./source/l/qt5/patches/qtwebengine-everywhere-src-5.15.2-%231904652.patch
gzip ./source/l/qt5/doinst.sh
gzip ./source/l/mozjs78/autoconf/autoconf-2.13-consolidated_fixes-1.patch
gzip ./source/l/mozjs78/patches/fix-soname.patch

View file

@ -65,9 +65,9 @@ system. :^) Press ENTER when you are done." 21 76 10 \
"jfsutils" "Utilities for IBM's Journaled Filesystem" "on" \
"kbd" "Change keyboard and console mappings" "on" \
"kernel-firmware" "Linux kernel firmware -- REQUIRED" "on" \
"kernel-generic" "Generic 5.16.10 kernel (needs an initrd)" "on" \
"kernel-huge" "Loaded 5.16.10 Linux kernel" "on" \
"kernel-modules" "Linux 5.16.10 kernel modules -- REQUIRED" "on" \
"kernel-generic" "Generic 5.16.11 kernel (needs an initrd)" "on" \
"kernel-huge" "Loaded 5.16.11 Linux kernel" "on" \
"kernel-modules" "Linux 5.16.11 kernel modules -- REQUIRED" "on" \
"kmod" "Kernel module utilities -- REQUIRED" "on" \
"lbzip2" "Parallel bzip2 compressor" "on" \
"less" "A text pager utility - REQUIRED" "on" \

View file

@ -65,9 +65,9 @@ system. :^) Press ENTER when you are done." 21 76 10 \
"jfsutils" "Utilities for IBM's Journaled Filesystem" "on" \
"kbd" "Change keyboard and console mappings" "on" \
"kernel-firmware" "Linux kernel firmware -- REQUIRED" "on" \
"kernel-generic" "Generic 5.16.10 kernel (needs an initrd)" "on" \
"kernel-huge" "Loaded 5.16.10 Linux kernel" "on" \
"kernel-modules" "Linux 5.16.10 kernel modules -- REQUIRED" "on" \
"kernel-generic" "Generic 5.16.11 kernel (needs an initrd)" "on" \
"kernel-huge" "Loaded 5.16.11 Linux kernel" "on" \
"kernel-modules" "Linux 5.16.11 kernel modules -- REQUIRED" "on" \
"kmod" "Kernel module utilities -- REQUIRED" "on" \
"lbzip2" "Parallel bzip2 compressor" "on" \
"less" "A text pager utility - REQUIRED" "on" \

View file

@ -21,7 +21,7 @@ from series K. Use the UP/DOWN keys to scroll through the list, and \
the SPACE key to deselect any items you don't want to install. \
Press ENTER when you are \
done." 11 70 1 \
"kernel-source" "Linux 5.16.10 kernel source" "on" \
"kernel-source" "Linux 5.16.11 kernel source" "on" \
2> $TMP/SeTpkgs
if [ $? = 1 -o $? = 255 ]; then
rm -f $TMP/SeTpkgs

View file

@ -21,7 +21,7 @@ from series K. Use the UP/DOWN keys to scroll through the list, and \
the SPACE key to deselect any items you don't want to install. \
Press ENTER when you are \
done." 11 70 1 \
"kernel-source" "Linux 5.16.10 kernel source" "on" \
"kernel-source" "Linux 5.16.11 kernel source" "on" \
2> $TMP/SeTpkgs
if [ $? = 1 -o $? = 255 ]; then
rm -f $TMP/SeTpkgs

View file

@ -22,8 +22,8 @@
cd $(dirname $0) ; CWD=$(pwd)
PKGNAM=aaa_libraries
VERSION=${VERSION:-15.0}
BUILD=${BUILD:-19}
VERSION=${VERSION:-15.1}
BUILD=${BUILD:-1}
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then

View file

@ -0,0 +1,7 @@
# We'll keep these around for a little while... probably remove on 2022-03-22 or thereabouts
/usr/lib/libicudata.so.69
/usr/lib/libicui18n.so.69
/usr/lib/libicuio.so.69
/usr/lib/libicutest.so.69
/usr/lib/libicutu.so.69
/usr/lib/libicuuc.so.69

View file

@ -24,7 +24,7 @@ cd $(dirname $0) ; CWD=$(pwd)
PKGNAM=xfsprogs
VERSION=${VERSION:-$(echo xfsprogs-*.tar.xz | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
BUILD=${BUILD:-1}
BUILD=${BUILD:-2}
NUMJOBS=${NUMJOBS:-" -j$(expr $(nproc) + 1) "}

View file

@ -1,6 +1,6 @@
#
# Automatically generated file; DO NOT EDIT.
# Linux/x86 5.16.10 Kernel Configuration
# Linux/x86 5.16.11 Kernel Configuration
#
CONFIG_CC_VERSION_TEXT="gcc (GCC) 11.2.0"
CONFIG_CC_IS_GCC=y
@ -3628,7 +3628,6 @@ CONFIG_IWLWIFI_LEDS=y
CONFIG_IWLDVM=m
CONFIG_IWLMVM=m
CONFIG_IWLWIFI_OPMODE_MODULAR=y
# CONFIG_IWLWIFI_BCAST_FILTERING is not set
#
# Debugging Options

View file

@ -1,6 +1,6 @@
#
# Automatically generated file; DO NOT EDIT.
# Linux/x86 5.16.10 Kernel Configuration
# Linux/x86 5.16.11 Kernel Configuration
#
CONFIG_CC_VERSION_TEXT="gcc (GCC) 11.2.0"
CONFIG_CC_IS_GCC=y
@ -3681,7 +3681,6 @@ CONFIG_IWLWIFI_LEDS=y
CONFIG_IWLDVM=m
CONFIG_IWLMVM=m
CONFIG_IWLWIFI_OPMODE_MODULAR=y
# CONFIG_IWLWIFI_BCAST_FILTERING is not set
#
# Debugging Options

View file

@ -1,6 +1,6 @@
#
# Automatically generated file; DO NOT EDIT.
# Linux/x86 5.16.10 Kernel Configuration
# Linux/x86 5.16.11 Kernel Configuration
#
CONFIG_CC_VERSION_TEXT="gcc (GCC) 11.2.0"
CONFIG_CC_IS_GCC=y
@ -3675,7 +3675,6 @@ CONFIG_IWLWIFI_LEDS=y
CONFIG_IWLDVM=m
CONFIG_IWLMVM=m
CONFIG_IWLWIFI_OPMODE_MODULAR=y
# CONFIG_IWLWIFI_BCAST_FILTERING is not set
#
# Debugging Options

View file

@ -1,6 +1,6 @@
#
# Automatically generated file; DO NOT EDIT.
# Linux/x86 5.16.10 Kernel Configuration
# Linux/x86 5.16.11 Kernel Configuration
#
CONFIG_CC_VERSION_TEXT="gcc (GCC) 11.2.0"
CONFIG_CC_IS_GCC=y
@ -3628,7 +3628,6 @@ CONFIG_IWLWIFI_LEDS=y
CONFIG_IWLDVM=m
CONFIG_IWLMVM=m
CONFIG_IWLWIFI_OPMODE_MODULAR=y
# CONFIG_IWLWIFI_BCAST_FILTERING is not set
#
# Debugging Options

View file

@ -1,6 +1,6 @@
#
# Automatically generated file; DO NOT EDIT.
# Linux/x86 5.16.10 Kernel Configuration
# Linux/x86 5.16.11 Kernel Configuration
#
CONFIG_CC_VERSION_TEXT="gcc (GCC) 11.2.0"
CONFIG_CC_IS_GCC=y
@ -3681,7 +3681,6 @@ CONFIG_IWLWIFI_LEDS=y
CONFIG_IWLDVM=m
CONFIG_IWLMVM=m
CONFIG_IWLWIFI_OPMODE_MODULAR=y
# CONFIG_IWLWIFI_BCAST_FILTERING is not set
#
# Debugging Options

View file

@ -1,6 +1,6 @@
#
# Automatically generated file; DO NOT EDIT.
# Linux/x86 5.16.10 Kernel Configuration
# Linux/x86 5.16.11 Kernel Configuration
#
CONFIG_CC_VERSION_TEXT="gcc (GCC) 11.2.0"
CONFIG_CC_IS_GCC=y
@ -3675,7 +3675,6 @@ CONFIG_IWLWIFI_LEDS=y
CONFIG_IWLDVM=m
CONFIG_IWLMVM=m
CONFIG_IWLWIFI_OPMODE_MODULAR=y
# CONFIG_IWLWIFI_BCAST_FILTERING is not set
#
# Debugging Options

View file

@ -1 +1 @@
2
1

View file

@ -30,7 +30,7 @@ cd $(dirname $0) ; CWD=$(pwd)
PKGNAM=boost
VERSION=${VERSION:-$(echo $PKGNAM_*.tar.?z | rev | cut -f 3- -d . | rev | cut -f 2- -d _)}
BUILD=${BUILD:-1}
BUILD=${BUILD:-2}
PKG_VERSION=$(echo $VERSION | tr _ .) # Leave this alone
NUMJOBS=${NUMJOBS:-" -j$(expr $(nproc) + 1) "}

View file

@ -25,7 +25,7 @@ cd $(dirname $0) ; CWD=$(pwd)
PKGNAM=gegl
VERSION=${VERSION:-$(echo gegl-*.tar.?z | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
BUILD=${BUILD:-3}
BUILD=${BUILD:-1}
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then

View file

@ -24,7 +24,7 @@ cd $(dirname $0) ; CWD=$(pwd)
PKGNAM=harfbuzz
VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
BUILD=${BUILD:-1}
BUILD=${BUILD:-2}
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then

View file

@ -25,7 +25,7 @@ cd $(dirname $0) ; CWD=$(pwd)
PKGNAM=libical
VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
BUILD=${BUILD:-1}
BUILD=${BUILD:-2}
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then

View file

@ -25,7 +25,7 @@ cd $(dirname $0) ; CWD=$(pwd)
PKGNAM=libqalculate
VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
BUILD=${BUILD:-1}
BUILD=${BUILD:-2}
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then

View file

@ -27,7 +27,7 @@ cd $(dirname $0) ; CWD=$(pwd)
PKGNAM=libvisio
VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z* | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
BUILD=${BUILD:-7}
BUILD=${BUILD:-8}
NUMJOBS=${NUMJOBS:-" -j$(expr $(nproc) + 1) "}

View file

@ -28,7 +28,7 @@ PKGNAM=qt5-webkit
SRCNAM=qtwebkit
SRCVER=${SRCVER:-5.212.0-alpha4}
VERSION=$(echo $SRCVER | tr - _)
BUILD=${BUILD:-7}
BUILD=${BUILD:-8}
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then

View file

@ -30,6 +30,9 @@ cd qt5
git checkout kde/5.15
./init-repository
# Sync qtwebengine version with the rest of qt5
sed -i -E "s/5.15.(.*)/5.15.3/" qtwebengine/.qmake.conf
for i in $(find . -type d -name "qt*" -maxdepth 1); do
cd $i
../qtbase/bin/syncqt.pl -version $BRANCH

View file

@ -1,585 +0,0 @@
diff --git a/src/client/qwaylanddisplay.cpp b/src/client/qwaylanddisplay.cpp
index ea344c61c3a4643f7c725a6287f20d742b210d24..a7ce280a5df538917758e50ba8d2ee117378d546 100644
--- a/src/client/qwaylanddisplay.cpp
+++ b/src/client/qwaylanddisplay.cpp
@@ -85,10 +85,203 @@
#include <errno.h>
+#include <tuple> // for std::tie
+
+static void checkWaylandError(struct wl_display *display)
+{
+ int ecode = wl_display_get_error(display);
+ if ((ecode == EPIPE || ecode == ECONNRESET)) {
+ // special case this to provide a nicer error
+ qWarning("The Wayland connection broke. Did the Wayland compositor die?");
+ } else {
+ qWarning("The Wayland connection experienced a fatal error: %s", strerror(ecode));
+ }
+ _exit(1);
+}
+
QT_BEGIN_NAMESPACE
namespace QtWaylandClient {
+class EventThread : public QThread
+{
+ Q_OBJECT
+public:
+ enum OperatingMode {
+ EmitToDispatch, // Emit the signal, allow dispatching in a differnt thread.
+ SelfDispatch, // Dispatch the events inside this thread.
+ };
+
+ EventThread(struct wl_display * wl, struct wl_event_queue * ev_queue,
+ OperatingMode mode)
+ : m_fd(wl_display_get_fd(wl))
+ , m_pipefd{ -1, -1 }
+ , m_wldisplay(wl)
+ , m_wlevqueue(ev_queue)
+ , m_mode(mode)
+ , m_reading(true)
+ , m_quitting(false)
+ {
+ setObjectName(QStringLiteral("WaylandEventThread"));
+ }
+
+ void readAndDispatchEvents()
+ {
+ /*
+ * Dispatch pending events and flush the requests at least once. If the event thread
+ * is not reading, try to call _prepare_read() to allow the event thread to poll().
+ * If that fails, re-try dispatch & flush again until _prepare_read() is successful.
+ *
+ * This allow any call to readAndDispatchEvents() to start event thread's polling,
+ * not only the one issued from event thread's waitForReading(), which means functions
+ * called from dispatch_pending() can safely spin an event loop.
+ */
+ for (;;) {
+ if (dispatchQueuePending() < 0) {
+ checkWaylandError(m_wldisplay);
+ return;
+ }
+
+ wl_display_flush(m_wldisplay);
+
+ // We have to check if event thread is reading every time we dispatch
+ // something, as that may recursively call this function.
+ if (m_reading.loadAcquire())
+ break;
+
+ if (prepareReadQueue() == 0) {
+ QMutexLocker l(&m_mutex);
+ m_reading.storeRelease(true);
+ m_cond.wakeOne();
+ break;
+ }
+ }
+ }
+
+ void stop()
+ {
+ // We have to both write to the pipe and set the flag, as the thread may be
+ // either in the poll() or waiting for _prepare_read().
+ if (m_pipefd[1] != -1 && write(m_pipefd[1], "\0", 1) == -1)
+ qWarning("Failed to write to the pipe: %s.", strerror(errno));
+
+ {
+ QMutexLocker l(&m_mutex);
+ m_quitting = true;
+ m_cond.wakeOne();
+ }
+
+ wait();
+ }
+
+Q_SIGNALS:
+ void needReadAndDispatch();
+
+protected:
+ void run() override
+ {
+ // we use this pipe to make the loop exit otherwise if we simply used a flag on the loop condition, if stop() gets
+ // called while poll() is blocking the thread will never quit since there are no wayland messages coming anymore.
+ struct Pipe
+ {
+ Pipe(int *fds)
+ : fds(fds)
+ {
+ if (qt_safe_pipe(fds) != 0)
+ qWarning("Pipe creation failed. Quitting may hang.");
+ }
+ ~Pipe()
+ {
+ if (fds[0] != -1) {
+ close(fds[0]);
+ close(fds[1]);
+ }
+ }
+
+ int *fds;
+ } pipe(m_pipefd);
+
+ // Make the main thread call wl_prepare_read(), dispatch the pending messages and flush the
+ // outbound ones. Wait until it's done before proceeding, unless we're told to quit.
+ while (waitForReading()) {
+ pollfd fds[2] = { { m_fd, POLLIN, 0 }, { m_pipefd[0], POLLIN, 0 } };
+ poll(fds, 2, -1);
+
+ if (fds[1].revents & POLLIN) {
+ // we don't really care to read the byte that was written here since we're closing down
+ wl_display_cancel_read(m_wldisplay);
+ break;
+ }
+
+ if (fds[0].revents & POLLIN)
+ wl_display_read_events(m_wldisplay);
+ // The polll was succesfull and the event thread did the wl_display_read_events(). On the next iteration of the loop
+ // the event sent to the main thread will cause it to dispatch the messages just read, unless the loop exits in which
+ // case we don't care anymore about them.
+ else
+ wl_display_cancel_read(m_wldisplay);
+ }
+ }
+
+private:
+ bool waitForReading()
+ {
+ Q_ASSERT(QThread::currentThread() == this);
+
+ m_reading.storeRelease(false);
+
+ if (m_mode == SelfDispatch) {
+ readAndDispatchEvents();
+ } else {
+ Q_EMIT needReadAndDispatch();
+
+ QMutexLocker lock(&m_mutex);
+ // m_reading might be set from our emit or some other invocation of
+ // readAndDispatchEvents().
+ while (!m_reading.loadRelaxed() && !m_quitting)
+ m_cond.wait(&m_mutex);
+ }
+
+ return !m_quitting;
+ }
+
+ int dispatchQueuePending()
+ {
+ if (m_wlevqueue)
+ return wl_display_dispatch_queue_pending(m_wldisplay, m_wlevqueue);
+ else
+ return wl_display_dispatch_pending(m_wldisplay);
+ }
+
+ int prepareReadQueue()
+ {
+ if (m_wlevqueue)
+ return wl_display_prepare_read_queue(m_wldisplay, m_wlevqueue);
+ else
+ return wl_display_prepare_read(m_wldisplay);
+ }
+
+ int m_fd;
+ int m_pipefd[2];
+ wl_display *m_wldisplay;
+ wl_event_queue *m_wlevqueue;
+ OperatingMode m_mode;
+
+ /* Concurrency note when operating in EmitToDispatch mode:
+ * m_reading is set to false inside event thread's waitForReading(), and is
+ * set to true inside main thread's readAndDispatchEvents().
+ * The lock is not taken when setting m_reading to false, as the main thread
+ * is not actively waiting for it to turn false. However, the lock is taken
+ * inside readAndDispatchEvents() before setting m_reading to true,
+ * as the event thread is actively waiting for it under the wait condition.
+ */
+
+ QAtomicInteger<bool> m_reading;
+ bool m_quitting;
+ QMutex m_mutex;
+ QWaitCondition m_cond;
+};
+
Q_LOGGING_CATEGORY(lcQpaWayland, "qt.qpa.wayland"); // for general (uncategorized) Wayland platform logging
struct wl_surface *QWaylandDisplay::createSurface(void *handle)
@@ -158,17 +351,16 @@ QWaylandDisplay::QWaylandDisplay(QWaylandIntegration *waylandIntegration)
if (!mXkbContext)
qCWarning(lcQpaWayland, "failed to create xkb context");
#endif
-
- forceRoundTrip();
-
- if (!mWaitingScreens.isEmpty()) {
- // Give wl_output.done and zxdg_output_v1.done events a chance to arrive
- forceRoundTrip();
- }
}
QWaylandDisplay::~QWaylandDisplay(void)
{
+ if (m_eventThread)
+ m_eventThread->stop();
+
+ if (m_frameEventQueueThread)
+ m_frameEventQueueThread->stop();
+
if (mSyncCallback)
wl_callback_destroy(mSyncCallback);
@@ -189,6 +381,18 @@ QWaylandDisplay::~QWaylandDisplay(void)
wl_display_disconnect(mDisplay);
}
+// Steps which is called just after constructor. This separates registry_global() out of the constructor
+// so that factory functions in integration can be overridden.
+void QWaylandDisplay::initialize()
+{
+ forceRoundTrip();
+
+ if (!mWaitingScreens.isEmpty()) {
+ // Give wl_output.done and zxdg_output_v1.done events a chance to arrive
+ forceRoundTrip();
+ }
+}
+
void QWaylandDisplay::ensureScreen()
{
if (!mScreens.empty() || mPlaceholderScreen)
@@ -203,98 +407,37 @@ void QWaylandDisplay::ensureScreen()
void QWaylandDisplay::checkError() const
{
- int ecode = wl_display_get_error(mDisplay);
- if ((ecode == EPIPE || ecode == ECONNRESET)) {
- // special case this to provide a nicer error
- qWarning("The Wayland connection broke. Did the Wayland compositor die?");
- } else {
- qWarning("The Wayland connection experienced a fatal error: %s", strerror(ecode));
- }
- _exit(1);
+ checkWaylandError(mDisplay);
}
+// Called in main thread, either from queued signal or directly.
void QWaylandDisplay::flushRequests()
{
- if (wl_display_prepare_read(mDisplay) == 0) {
- wl_display_read_events(mDisplay);
- }
-
- if (wl_display_dispatch_pending(mDisplay) < 0)
- checkError();
-
- {
- QReadLocker locker(&m_frameQueueLock);
- for (const FrameQueue &q : mExternalQueues) {
- QMutexLocker locker(q.mutex);
- while (wl_display_prepare_read_queue(mDisplay, q.queue) != 0)
- wl_display_dispatch_queue_pending(mDisplay, q.queue);
- wl_display_read_events(mDisplay);
- wl_display_dispatch_queue_pending(mDisplay, q.queue);
- }
- }
-
- wl_display_flush(mDisplay);
-}
-
-void QWaylandDisplay::blockingReadEvents()
-{
- if (wl_display_dispatch(mDisplay) < 0)
- checkError();
-}
-
-void QWaylandDisplay::destroyFrameQueue(const QWaylandDisplay::FrameQueue &q)
-{
- QWriteLocker locker(&m_frameQueueLock);
- auto it = std::find_if(mExternalQueues.begin(),
- mExternalQueues.end(),
- [&q] (const QWaylandDisplay::FrameQueue &other){ return other.queue == q.queue; });
- Q_ASSERT(it != mExternalQueues.end());
- mExternalQueues.erase(it);
- if (q.queue != nullptr)
- wl_event_queue_destroy(q.queue);
- delete q.mutex;
+ m_eventThread->readAndDispatchEvents();
}
-QWaylandDisplay::FrameQueue QWaylandDisplay::createFrameQueue()
+// We have to wait until we have an eventDispatcher before creating the eventThread,
+// otherwise forceRoundTrip() may block inside _events_read() because eventThread is
+// polling.
+void QWaylandDisplay::initEventThread()
{
- QWriteLocker locker(&m_frameQueueLock);
- FrameQueue q{createEventQueue()};
- mExternalQueues.append(q);
- return q;
-}
+ m_eventThread.reset(
+ new EventThread(mDisplay, /* default queue */ nullptr, EventThread::EmitToDispatch));
+ connect(m_eventThread.get(), &EventThread::needReadAndDispatch, this,
+ &QWaylandDisplay::flushRequests, Qt::QueuedConnection);
+ m_eventThread->start();
-wl_event_queue *QWaylandDisplay::createEventQueue()
-{
- return wl_display_create_queue(mDisplay);
+ // wl_display_disconnect() free this.
+ m_frameEventQueue = wl_display_create_queue(mDisplay);
+ m_frameEventQueueThread.reset(
+ new EventThread(mDisplay, m_frameEventQueue, EventThread::SelfDispatch));
+ m_frameEventQueueThread->start();
}
-void QWaylandDisplay::dispatchQueueWhile(wl_event_queue *queue, std::function<bool ()> condition, int timeout)
+void QWaylandDisplay::blockingReadEvents()
{
- if (!condition())
- return;
-
- QElapsedTimer timer;
- timer.start();
- struct pollfd pFd = qt_make_pollfd(wl_display_get_fd(mDisplay), POLLIN);
- while (timeout == -1 || timer.elapsed() < timeout) {
- while (wl_display_prepare_read_queue(mDisplay, queue) != 0)
- wl_display_dispatch_queue_pending(mDisplay, queue);
-
- wl_display_flush(mDisplay);
-
- const int remaining = qMax(timeout - timer.elapsed(), 0ll);
- const int pollTimeout = timeout == -1 ? -1 : remaining;
- if (qt_poll_msecs(&pFd, 1, pollTimeout) > 0)
- wl_display_read_events(mDisplay);
- else
- wl_display_cancel_read(mDisplay);
-
- if (wl_display_dispatch_queue_pending(mDisplay, queue) < 0)
- checkError();
-
- if (!condition())
- break;
- }
+ if (wl_display_dispatch(mDisplay) < 0)
+ checkWaylandError(mDisplay);
}
QWaylandScreen *QWaylandDisplay::screenForOutput(struct wl_output *output) const
@@ -669,4 +812,6 @@ QWaylandCursorTheme *QWaylandDisplay::loadCursorTheme(const QString &name, int p
} // namespace QtWaylandClient
+#include "qwaylanddisplay.moc"
+
QT_END_NAMESPACE
diff --git a/src/client/qwaylanddisplay_p.h b/src/client/qwaylanddisplay_p.h
index 09a1736a267d2816873667e9f1ecb4f4892f0ed0..42bc661d3064d770aa9fde8bd62ecdbbc89732a2 100644
--- a/src/client/qwaylanddisplay_p.h
+++ b/src/client/qwaylanddisplay_p.h
@@ -109,6 +109,7 @@ class QWaylandSurface;
class QWaylandShellIntegration;
class QWaylandCursor;
class QWaylandCursorTheme;
+class EventThread;
typedef void (*RegistryListener)(void *data,
struct wl_registry *registry,
@@ -120,15 +121,11 @@ class Q_WAYLAND_CLIENT_EXPORT QWaylandDisplay : public QObject, public QtWayland
Q_OBJECT
public:
- struct FrameQueue {
- FrameQueue(wl_event_queue *q = nullptr) : queue(q), mutex(new QMutex) {}
- wl_event_queue *queue;
- QMutex *mutex;
- };
-
QWaylandDisplay(QWaylandIntegration *waylandIntegration);
~QWaylandDisplay(void) override;
+ void initialize();
+
#if QT_CONFIG(xkbcommon)
struct xkb_context *xkbContext() const { return mXkbContext.get(); }
#endif
@@ -210,12 +207,11 @@ public:
void handleKeyboardFocusChanged(QWaylandInputDevice *inputDevice);
void handleWindowDestroyed(QWaylandWindow *window);
- wl_event_queue *createEventQueue();
- FrameQueue createFrameQueue();
- void destroyFrameQueue(const FrameQueue &q);
- void dispatchQueueWhile(wl_event_queue *queue, std::function<bool()> condition, int timeout = -1);
+ wl_event_queue *frameEventQueue() { return m_frameEventQueue; };
bool isKeyboardAvailable() const;
+
+ void initEventThread();
public slots:
void blockingReadEvents();
void flushRequests();
@@ -238,6 +234,9 @@ private:
};
struct wl_display *mDisplay = nullptr;
+ QScopedPointer<EventThread> m_eventThread;
+ wl_event_queue *m_frameEventQueue = nullptr;
+ QScopedPointer<EventThread> m_frameEventQueueThread;
QtWayland::wl_compositor mCompositor;
QScopedPointer<QWaylandShm> mShm;
QList<QWaylandScreen *> mWaitingScreens;
@@ -274,11 +273,9 @@ private:
QWaylandInputDevice *mLastInputDevice = nullptr;
QPointer<QWaylandWindow> mLastInputWindow;
QPointer<QWaylandWindow> mLastKeyboardFocus;
- QVector<QWaylandWindow *> mActiveWindows;
- QVector<FrameQueue> mExternalQueues;
+ QList<QWaylandWindow *> mActiveWindows;
struct wl_callback *mSyncCallback = nullptr;
static const wl_callback_listener syncCallbackListener;
- QReadWriteLock m_frameQueueLock;
bool mClientSideInputContextRequested = !QPlatformInputContextFactory::requested().isNull();
diff --git a/src/client/qwaylandintegration.cpp b/src/client/qwaylandintegration.cpp
index e5e7dd42c9b0145f4c9852f7e15dcc83106c321d..3b876047293887d17eeb28819c7386ded9e1f131 100644
--- a/src/client/qwaylandintegration.cpp
+++ b/src/client/qwaylandintegration.cpp
@@ -192,14 +192,18 @@ QAbstractEventDispatcher *QWaylandIntegration::createEventDispatcher() const
void QWaylandIntegration::initialize()
{
+ mDisplay->initEventThread();
+
+ // Call after eventDispatcher is fully connected, for QWaylandDisplay::forceRoundTrip()
+ mDisplay->initialize();
+
+ // But the aboutToBlock() and awake() should be connected after initializePlatform().
+ // Otherwise the connected flushRequests() may consumes up all events before processEvents starts to wait,
+ // so that processEvents(QEventLoop::WaitForMoreEvents) may be blocked in the forceRoundTrip().
QAbstractEventDispatcher *dispatcher = QGuiApplicationPrivate::eventDispatcher;
QObject::connect(dispatcher, SIGNAL(aboutToBlock()), mDisplay.data(), SLOT(flushRequests()));
QObject::connect(dispatcher, SIGNAL(awake()), mDisplay.data(), SLOT(flushRequests()));
- int fd = wl_display_get_fd(mDisplay->wl_display());
- QSocketNotifier *sn = new QSocketNotifier(fd, QSocketNotifier::Read, mDisplay.data());
- QObject::connect(sn, SIGNAL(activated(QSocketDescriptor)), mDisplay.data(), SLOT(flushRequests()));
-
// Qt does not support running with no screens
mDisplay->ensureScreen();
}
diff --git a/src/client/qwaylandwindow.cpp b/src/client/qwaylandwindow.cpp
index 1597f67e63ae7834ded50e25b0acf86b71abcd73..7de19a742b6d3f6a3ce0955f59a5bf2879d29c9e 100644
--- a/src/client/qwaylandwindow.cpp
+++ b/src/client/qwaylandwindow.cpp
@@ -76,7 +76,6 @@ QWaylandWindow *QWaylandWindow::mMouseGrab = nullptr;
QWaylandWindow::QWaylandWindow(QWindow *window, QWaylandDisplay *display)
: QPlatformWindow(window)
, mDisplay(display)
- , mFrameQueue(mDisplay->createFrameQueue())
, mResizeAfterSwap(qEnvironmentVariableIsSet("QT_WAYLAND_RESIZE_AFTER_SWAP"))
{
{
@@ -95,8 +94,6 @@ QWaylandWindow::QWaylandWindow(QWindow *window, QWaylandDisplay *display)
QWaylandWindow::~QWaylandWindow()
{
- mDisplay->destroyFrameQueue(mFrameQueue);
-
delete mWindowDecoration;
if (mSurface)
@@ -635,6 +632,8 @@ const wl_callback_listener QWaylandWindow::callbackListener = {
void QWaylandWindow::handleFrameCallback()
{
+ QMutexLocker locker(&mFrameSyncMutex);
+
mWaitingForFrameCallback = false;
mFrameCallbackElapsedTimer.invalidate();
@@ -656,12 +655,16 @@ void QWaylandWindow::handleFrameCallback()
mWaitingForUpdateDelivery = true;
QMetaObject::invokeMethod(this, doHandleExpose, Qt::QueuedConnection);
}
+
+ mFrameSyncWait.notify_all();
}
bool QWaylandWindow::waitForFrameSync(int timeout)
{
- QMutexLocker locker(mFrameQueue.mutex);
- mDisplay->dispatchQueueWhile(mFrameQueue.queue, [&]() { return mWaitingForFrameCallback; }, timeout);
+ QMutexLocker locker(&mFrameSyncMutex);
+
+ QDeadlineTimer deadline(timeout);
+ while (mWaitingForFrameCallback && mFrameSyncWait.wait(&mFrameSyncMutex, deadline)) { }
if (mWaitingForFrameCallback) {
qCDebug(lcWaylandBackingstore) << "Didn't receive frame callback in time, window should now be inexposed";
@@ -1157,8 +1160,11 @@ void QWaylandWindow::requestUpdate()
Q_ASSERT(hasPendingUpdateRequest()); // should be set by QPA
// If we have a frame callback all is good and will be taken care of there
- if (mWaitingForFrameCallback)
- return;
+ {
+ QMutexLocker locker(&mFrameSyncMutex);
+ if (mWaitingForFrameCallback)
+ return;
+ }
// If we've already called deliverUpdateRequest(), but haven't seen any attach+commit/swap yet
// This is a somewhat redundant behavior and might indicate a bug in the calling code, so log
@@ -1171,7 +1177,12 @@ void QWaylandWindow::requestUpdate()
// so use invokeMethod to delay the delivery a bit.
QMetaObject::invokeMethod(this, [this] {
// Things might have changed in the meantime
- if (hasPendingUpdateRequest() && !mWaitingForFrameCallback)
+ {
+ QMutexLocker locker(&mFrameSyncMutex);
+ if (mWaitingForFrameCallback)
+ return;
+ }
+ if (hasPendingUpdateRequest())
deliverUpdateRequest();
}, Qt::QueuedConnection);
}
@@ -1191,9 +1202,10 @@ void QWaylandWindow::handleUpdate()
if (!mSurface)
return;
- QMutexLocker locker(mFrameQueue.mutex);
+ QMutexLocker locker(&mFrameSyncMutex);
+
struct ::wl_surface *wrappedSurface = reinterpret_cast<struct ::wl_surface *>(wl_proxy_create_wrapper(mSurface->object()));
- wl_proxy_set_queue(reinterpret_cast<wl_proxy *>(wrappedSurface), mFrameQueue.queue);
+ wl_proxy_set_queue(reinterpret_cast<wl_proxy *>(wrappedSurface), mDisplay->frameEventQueue());
mFrameCallback = wl_surface_frame(wrappedSurface);
wl_proxy_wrapper_destroy(wrappedSurface);
wl_callback_add_listener(mFrameCallback, &QWaylandWindow::callbackListener, this);
@@ -1203,6 +1215,8 @@ void QWaylandWindow::handleUpdate()
// Start a timer for handling the case when the compositor stops sending frame callbacks.
if (mFrameCallbackTimeout > 0) {
QMetaObject::invokeMethod(this, [this] {
+ QMutexLocker locker(&mFrameSyncMutex);
+
if (mWaitingForFrameCallback) {
if (mFrameCallbackCheckIntervalTimerId < 0)
mFrameCallbackCheckIntervalTimerId = startTimer(mFrameCallbackTimeout);
diff --git a/src/client/qwaylandwindow_p.h b/src/client/qwaylandwindow_p.h
index e06879620c3d033f093b0866f018ec80a72a97c3..d45980a80e9ecc9c5003fa2144de63e6337bda8a 100644
--- a/src/client/qwaylandwindow_p.h
+++ b/src/client/qwaylandwindow_p.h
@@ -232,7 +232,7 @@ protected:
int mFrameCallbackCheckIntervalTimerId = -1;
QElapsedTimer mFrameCallbackElapsedTimer;
struct ::wl_callback *mFrameCallback = nullptr;
- QWaylandDisplay::FrameQueue mFrameQueue;
+ QMutex mFrameSyncMutex;
QWaitCondition mFrameSyncWait;
// True when we have called deliverRequestUpdate, but the client has not yet attached a new buffer

View file

@ -1,24 +0,0 @@
diff -aurN qt-everywhere-src-5.15.3_20210826_21ea9c12/qtwebengine/src/3rdparty/chromium/third_party/abseil-cpp/absl/debugging/failure_signal_handler.cc qt-everywhere-src-5.15.3_20210826_21ea9c12-mod/qtwebengine/src/3rdparty/chromium/third_party/abseil-cpp/absl/debugging/failure_signal_handler.cc
--- qt-everywhere-src-5.15.3_20210826_21ea9c12/qtwebengine/src/3rdparty/chromium/third_party/abseil-cpp/absl/debugging/failure_signal_handler.cc 2021-08-29 05:12:01.000000000 +0200
+++ qt-everywhere-src-5.15.3_20210826_21ea9c12-mod/qtwebengine/src/3rdparty/chromium/third_party/abseil-cpp/absl/debugging/failure_signal_handler.cc 2021-09-25 12:52:13.032957704 +0200
@@ -135,7 +135,7 @@
#else
const size_t page_mask = sysconf(_SC_PAGESIZE) - 1;
#endif
- size_t stack_size = (std::max(SIGSTKSZ, 65536) + page_mask) & ~page_mask;
+ size_t stack_size = (std::max<size_t>(SIGSTKSZ, 65536) + page_mask) & ~page_mask;
#if defined(ADDRESS_SANITIZER) || defined(MEMORY_SANITIZER) || \
defined(THREAD_SANITIZER)
// Account for sanitizer instrumentation requiring additional stack space.
diff -aurN qt-everywhere-src-5.15.3_20210826_21ea9c12/qtwebengine/src/3rdparty/chromium/third_party/breakpad/breakpad/src/client/linux/handler/exception_handler.cc qt-everywhere-src-5.15.3_20210826_21ea9c12-mod/qtwebengine/src/3rdparty/chromium/third_party/breakpad/breakpad/src/client/linux/handler/exception_handler.cc
--- qt-everywhere-src-5.15.3_20210826_21ea9c12/qtwebengine/src/3rdparty/chromium/third_party/breakpad/breakpad/src/client/linux/handler/exception_handler.cc 2021-08-29 05:12:02.000000000 +0200
+++ qt-everywhere-src-5.15.3_20210826_21ea9c12-mod/qtwebengine/src/3rdparty/chromium/third_party/breakpad/breakpad/src/client/linux/handler/exception_handler.cc 2021-09-25 12:53:59.282947757 +0200
@@ -138,7 +138,7 @@
// SIGSTKSZ may be too small to prevent the signal handlers from overrunning
// the alternative stack. Ensure that the size of the alternative stack is
// large enough.
- static const unsigned kSigStackSize = std::max(16384, SIGSTKSZ);
+ static const unsigned kSigStackSize = std::max<size_t>(16384, SIGSTKSZ);
// Only set an alternative stack if there isn't already one, or if the current
// one is too small.

View file

@ -1,141 +0,0 @@
diff -ur qtwebengine-everywhere-src-5.15.2/src/3rdparty/chromium/sandbox/linux/seccomp-bpf-helpers/baseline_policy.cc qtwebengine-everywhere-src-5.15.2-#1904652/src/3rdparty/chromium/sandbox/linux/seccomp-bpf-helpers/baseline_policy.cc
--- qtwebengine-everywhere-src-5.15.2/src/3rdparty/chromium/sandbox/linux/seccomp-bpf-helpers/baseline_policy.cc 2020-11-07 02:22:36.000000000 +0100
+++ qtwebengine-everywhere-src-5.15.2-#1904652/src/3rdparty/chromium/sandbox/linux/seccomp-bpf-helpers/baseline_policy.cc 2021-01-20 02:14:53.066223906 +0100
@@ -248,6 +248,18 @@
return RestrictKillTarget(current_pid, sysno);
}
+#if defined(__NR_newfstatat)
+ if (sysno == __NR_newfstatat) {
+ return RewriteFstatatSIGSYS();
+ }
+#endif
+
+#if defined(__NR_fstatat64)
+ if (sysno == __NR_fstatat64) {
+ return RewriteFstatatSIGSYS();
+ }
+#endif
+
if (SyscallSets::IsFileSystem(sysno) ||
SyscallSets::IsCurrentDirectory(sysno)) {
return Error(fs_denied_errno);
diff -ur qtwebengine-everywhere-src-5.15.2/src/3rdparty/chromium/sandbox/linux/seccomp-bpf-helpers/sigsys_handlers.cc qtwebengine-everywhere-src-5.15.2-#1904652/src/3rdparty/chromium/sandbox/linux/seccomp-bpf-helpers/sigsys_handlers.cc
--- qtwebengine-everywhere-src-5.15.2/src/3rdparty/chromium/sandbox/linux/seccomp-bpf-helpers/sigsys_handlers.cc 2020-11-07 02:22:36.000000000 +0100
+++ qtwebengine-everywhere-src-5.15.2-#1904652/src/3rdparty/chromium/sandbox/linux/seccomp-bpf-helpers/sigsys_handlers.cc 2021-01-22 19:02:55.651668257 +0100
@@ -6,6 +6,8 @@
#include "sandbox/linux/seccomp-bpf-helpers/sigsys_handlers.h"
+#include <errno.h>
+#include <fcntl.h>
#include <stddef.h>
#include <stdint.h>
#include <sys/syscall.h>
@@ -353,6 +355,35 @@
return -ENOSYS;
}
+intptr_t SIGSYSFstatatHandler(const struct arch_seccomp_data& args,
+ void* aux) {
+ switch (args.nr) {
+#if defined(__NR_newfstatat)
+ case __NR_newfstatat:
+#endif
+#if defined(__NR_fstatat64)
+ case __NR_fstatat64:
+#endif
+#if defined(__NR_newfstatat) || defined(__NR_fstatat64)
+ if (*reinterpret_cast<const char *>(args.args[1]) == '\0'
+ && args.args[3] == static_cast<uint64_t>(AT_EMPTY_PATH)) {
+ return sandbox::sys_fstat64(static_cast<int>(args.args[0]),
+ reinterpret_cast<struct stat64 *>(args.args[2]));
+ } else {
+ errno = EACCES;
+ return -1;
+ }
+ break;
+#endif
+ }
+
+ CrashSIGSYS_Handler(args, aux);
+
+ // Should never be reached.
+ RAW_CHECK(false);
+ return -ENOSYS;
+}
+
bpf_dsl::ResultExpr CrashSIGSYS() {
return bpf_dsl::Trap(CrashSIGSYS_Handler, NULL);
}
@@ -385,6 +416,10 @@
return bpf_dsl::Trap(SIGSYSSchedHandler, NULL);
}
+bpf_dsl::ResultExpr RewriteFstatatSIGSYS() {
+ return bpf_dsl::Trap(SIGSYSFstatatHandler, NULL);
+}
+
void AllocateCrashKeys() {
#if !defined(OS_NACL_NONSFI)
if (seccomp_crash_key)
diff -ur qtwebengine-everywhere-src-5.15.2/src/3rdparty/chromium/sandbox/linux/seccomp-bpf-helpers/sigsys_handlers.h qtwebengine-everywhere-src-5.15.2-#1904652/src/3rdparty/chromium/sandbox/linux/seccomp-bpf-helpers/sigsys_handlers.h
--- qtwebengine-everywhere-src-5.15.2/src/3rdparty/chromium/sandbox/linux/seccomp-bpf-helpers/sigsys_handlers.h 2020-11-07 02:22:36.000000000 +0100
+++ qtwebengine-everywhere-src-5.15.2-#1904652/src/3rdparty/chromium/sandbox/linux/seccomp-bpf-helpers/sigsys_handlers.h 2021-01-20 02:11:04.583714199 +0100
@@ -62,6 +62,10 @@
// sched_setparam(), sched_setscheduler()
SANDBOX_EXPORT intptr_t
SIGSYSSchedHandler(const struct arch_seccomp_data& args, void* aux);
+// If the fstatat syscall is actually a disguised fstat, calls the regular fstat
+// syscall, otherwise, crashes in the same way as CrashSIGSYS_Handler.
+SANDBOX_EXPORT intptr_t
+ SIGSYSFstatatHandler(const struct arch_seccomp_data& args, void* aux);
// Variants of the above functions for use with bpf_dsl.
SANDBOX_EXPORT bpf_dsl::ResultExpr CrashSIGSYS();
@@ -72,6 +76,7 @@
SANDBOX_EXPORT bpf_dsl::ResultExpr CrashSIGSYSFutex();
SANDBOX_EXPORT bpf_dsl::ResultExpr CrashSIGSYSPtrace();
SANDBOX_EXPORT bpf_dsl::ResultExpr RewriteSchedSIGSYS();
+SANDBOX_EXPORT bpf_dsl::ResultExpr RewriteFstatatSIGSYS();
// Allocates a crash key so that Seccomp information can be recorded.
void AllocateCrashKeys();
diff -ur qtwebengine-everywhere-src-5.15.2/src/3rdparty/chromium/sandbox/linux/services/syscall_wrappers.cc qtwebengine-everywhere-src-5.15.2-#1904652/src/3rdparty/chromium/sandbox/linux/services/syscall_wrappers.cc
--- qtwebengine-everywhere-src-5.15.2/src/3rdparty/chromium/sandbox/linux/services/syscall_wrappers.cc 2020-11-07 02:22:36.000000000 +0100
+++ qtwebengine-everywhere-src-5.15.2-#1904652/src/3rdparty/chromium/sandbox/linux/services/syscall_wrappers.cc 2021-01-20 02:41:12.033133269 +0100
@@ -261,4 +261,13 @@
#endif // defined(MEMORY_SANITIZER)
+SANDBOX_EXPORT int sys_fstat64(int fd, struct stat64 *buf)
+{
+#if defined(__NR_fstat64)
+ return syscall(__NR_fstat64, fd, buf);
+#else
+ return syscall(__NR_fstat, fd, buf);
+#endif
+}
+
} // namespace sandbox
diff -ur qtwebengine-everywhere-src-5.15.2/src/3rdparty/chromium/sandbox/linux/services/syscall_wrappers.h qtwebengine-everywhere-src-5.15.2-#1904652/src/3rdparty/chromium/sandbox/linux/services/syscall_wrappers.h
--- qtwebengine-everywhere-src-5.15.2/src/3rdparty/chromium/sandbox/linux/services/syscall_wrappers.h 2020-11-07 02:22:36.000000000 +0100
+++ qtwebengine-everywhere-src-5.15.2-#1904652/src/3rdparty/chromium/sandbox/linux/services/syscall_wrappers.h 2021-01-20 02:40:26.499827829 +0100
@@ -17,6 +17,7 @@
struct rlimit64;
struct cap_hdr;
struct cap_data;
+struct stat64;
namespace sandbox {
@@ -84,6 +85,9 @@
const struct sigaction* act,
struct sigaction* oldact);
+// Recent glibc rewrites fstat to fstatat.
+SANDBOX_EXPORT int sys_fstat64(int fd, struct stat64 *buf);
+
} // namespace sandbox
#endif // SANDBOX_LINUX_SERVICES_SYSCALL_WRAPPERS_H_

View file

@ -31,7 +31,7 @@ cd $(dirname $0) ; CWD=$(pwd)
PKGNAM=qt5
VERSION=$(ls qt-*.tar.?z | rev | cut -f 3- -d . | cut -f 1 -d - | rev)
BUILD=${BUILD:-3}
BUILD=${BUILD:-1}
PKGSRC=$(echo $VERSION | cut -d - -f 1)
PKGVER=$(echo $VERSION | tr - _)
@ -143,21 +143,6 @@ cd qtbase
zcat $CWD/patches/qt5.qtbase_cmake_isystem_includes.patch.gz | patch -p1 --verbose || exit 1
cd - 1>/dev/null
# Fix sandbox functions for glibc-2.33:
cd qtwebengine
zcat $CWD/patches/qtwebengine-everywhere-src-5.15.2-%231904652.patch.gz | patch -p1 --verbose || exit 1
cd - 1>/dev/null
# Fix for glibc-2.34+:
zcat $CWD/patches/qt5-glibc-2.34.patch.gz | patch -p1 --verbose || exit 1
# Apply upstream patch to move the wayland socket polling to a separate event
# thread. This greatly improves the behavior of Plasma Wayland sessions, fixing
# (for example) stuttering that was occuring on multimedia applications.
cd qtwayland
zcat $CWD/patches/24.diff.gz | patch -p1 --verbose || exit 1
cd - 1>/dev/null
# If PulseAudio is not found, use the _alsa $TAG and disable it in the build:
if ! pkg-config --exists libpulse 2>/dev/null ; then
PULSEAUDIO_OPTION="-no-pulseaudio -no-webengine-pulseaudio"

View file

@ -24,7 +24,7 @@ cd $(dirname $0) ; CWD=$(pwd)
PKGNAM=vte
VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
BUILD=${BUILD:-1}
BUILD=${BUILD:-2}
NUMJOBS=${NUMJOBS:-" -j$(expr $(nproc) + 1) "}

View file

@ -26,7 +26,7 @@ cd $(dirname $0) ; CWD=$(pwd)
PKGNAM=dovecot
VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
BUILD=${BUILD:-1}
BUILD=${BUILD:-2}
if [ -z "$ARCH" ]; then
case "$( uname -m )" in

View file

@ -28,7 +28,7 @@ cd $(dirname $0) ; CWD=$(pwd)
PKGNAM=php
VERSION=${VERSION:-$(echo php-*.tar.xz | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
ALPINE=2.25
BUILD=${BUILD:-1}
BUILD=${BUILD:-2}
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then

View file

@ -28,7 +28,7 @@ cd $(dirname $0) ; CWD=$(pwd)
PKGNAM=postfix
VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
BUILD=${BUILD:-1}
BUILD=${BUILD:-2}
if [ -z "$ARCH" ]; then
case "$( uname -m )" in

View file

@ -26,7 +26,7 @@ cd $(dirname $0) ; CWD=$(pwd)
PKGNAM=samba
VERSION=${VERSION:-$(echo samba-*.tar.?z | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
BUILD=${BUILD:-1}
BUILD=${BUILD:-2}
if [ -e $CWD/machine.conf ]; then
. $CWD/machine.conf ]

View file

@ -24,7 +24,7 @@ cd $(dirname $0) ; CWD=$(pwd)
PKGNAM=tin
VERSION=${VERSION:-$(echo $PKGNAM-*.tar.xz | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
BUILD=${BUILD:-1}
BUILD=${BUILD:-2}
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then

View file

@ -34,7 +34,7 @@ PKGNAM=texlive
SOURCEVERSION=${SOURCEVERSION:-20210324}
TEXMFVERSION=${TEXMFVERSION:-210418}
VERSION=${VERSION:-2021.$TEXMFVERSION}
BUILD=${BUILD:-2}
BUILD=${BUILD:-3}
TMP=${TMP:-/tmp}
PKG=$TMP/package-texlive