diff options
Diffstat (limited to 'source')
-rwxr-xr-x | source/a/aaa_libraries/aaa_libraries.SlackBuild | 2 | ||||
-rw-r--r-- | source/installer/ChangeLog.txt | 13 | ||||
-rwxr-xr-x | source/installer/sources/initrd/sbin/probe | 45 | ||||
-rw-r--r-- | source/kde/kde/build/kio | 2 | ||||
-rw-r--r-- | source/kde/kde/patch/kio.patch | 1 | ||||
-rw-r--r-- | source/kde/kde/patch/kio/c801571f.patch | 229 | ||||
-rw-r--r-- | source/xap/libnma/gschema-Remove-path-from-eap-schema.patch | 28 | ||||
-rwxr-xr-x | source/xap/libnma/libnma.SlackBuild | 6 |
8 files changed, 281 insertions, 45 deletions
diff --git a/source/a/aaa_libraries/aaa_libraries.SlackBuild b/source/a/aaa_libraries/aaa_libraries.SlackBuild index 489087d64..e94dccc20 100755 --- a/source/a/aaa_libraries/aaa_libraries.SlackBuild +++ b/source/a/aaa_libraries/aaa_libraries.SlackBuild @@ -23,7 +23,7 @@ cd $(dirname $0) ; CWD=$(pwd) PKGNAM=aaa_libraries VERSION=${VERSION:-15.1} -BUILD=${BUILD:-15} +BUILD=${BUILD:-16} # Automatically determine the architecture we're building on: if [ -z "$ARCH" ]; then diff --git a/source/installer/ChangeLog.txt b/source/installer/ChangeLog.txt index b81fb8d36..d1671e1e4 100644 --- a/source/installer/ChangeLog.txt +++ b/source/installer/ChangeLog.txt @@ -1,3 +1,16 @@ +Mon Jan 9 09:37:40 UTC 2023 + /sbin/probe: Removed old mmc discovery code. + Filter devices that contain reserved file system labels for Slackware + ARM/AArch64 and the A-i-O (All in One Offline) Installer. + This prevents the installation media and Slackware ARM system partitions from + appearing as candidates for formatting/mounting during setup. + Reserved labels: + SLKins = Media (usually a USB stick) containing the Slackware install media. + SLKboot = Slackware OS /boot partition; only reserved only on ARM/AArch64. + SLKhwm_bw = Hardware Model Bootware - native Bootware firmware/assets. + SLKins_aio-pkgs = A-i-O Installer's partition containing Slackware packages. + Thanks to Stuart Winter. ++--------------------------+ Thu Oct 13 12:29:18 UTC 2022 Moved libpcre2 from /usr/lib(64) to /lib(64). Thanks to Stuart Winter. +--------------------------+ diff --git a/source/installer/sources/initrd/sbin/probe b/source/installer/sources/initrd/sbin/probe index 2ba2e0f2a..d30920125 100755 --- a/source/installer/sources/initrd/sbin/probe +++ b/source/installer/sources/initrd/sbin/probe @@ -140,17 +140,6 @@ list_amiraid() { fi } -#list_mmc() { -# # find drive -# DRV=`expr $2 / 8` -# NUM=`expr $2 % 8` -# if [ "$NUM" = "0" ]; then -# fdisk -l /dev/mmcblk$DRV >> $TMP/SeTfdisk -# #output_gpt_partitions /dev/mmcblk$DRV >> $TMP/SeTfdisk -# else -# return -# fi -#} list_mmc() { local device # Filter out any partitions on the block device, as we'll use @@ -445,4 +434,38 @@ sed -i -e "s/Linux filesystem/Linux/g" $TMP/SeTfdisk sed -i -e "s/EFI System/EFI System Partition/g" $TMP/SeTfdisk sed -i -e "s,EFI (FAT-12/16/32),EFI System Partition,g" $TMP/SeTfdisk +# Filter out reserved file system labels for Slackware ARM/AArch64 and the +# Slackware A-i-O (All in One Offline) Installer file systems. +# This prevents them from being offered as candidates for formatting/mounting +# during the installation. +# +# Labels: +# SLKins = Media (usually a USB stick) containing the Slackware install media +# This FS label isn't required to locate the media, but it's helpful +# as a way to exclude the media from the list of candidates. +# This label is included within the Installation Guide for the USB +# media installation option. +# SLKins_aio-pkgs = +# The label of the partition on the All-In-One Installer that contains the +# Slackware packages. +# SLKhwm_bw = Hardware Model Bootware - native Bootware for the RPi +# +# 'SLKroot' is used to identify the OS root file system on ARM, but we don't +# filter it out because it's *supposed* to appear as a candidate within the +# menu. Whilst we don't ship any images that contain a file system with this label, +# the user might be reinstalling, thus would never be presented with the partition. +# +# SLKboot = Slackware OS /boot partition, but is only reserved only on ARM/AArch64: +[[ "$( uname -m )" =~ a(rm*|arch64) ]] && aexc="boot|" + +awk '/^\/dev\// {print $1}' /var/log/setup/tmp/SeTfdisk | while read device; do + # The wrapping of e2label is because whilst it handles other file system types, + # it includes verbosity about the filesystem type; where as for ext filesystems + # it outputs only the label. + { ( e2label ${device} 2>/dev/null | tail -n1 | rev \ + | awk '{print $1}' | rev | tr -d "'" | \ + grep -Eq "^SLK(${aexc}ins|ins_aio-pkgs|hwm_bw)$" ) && sed -i '\|^'"${device}\s"'|d' $TMP/SeTfdisk ;} +done + +# Dump the discovered storage: cat $TMP/SeTfdisk diff --git a/source/kde/kde/build/kio b/source/kde/kde/build/kio index d00491fd7..0cfbf0888 100644 --- a/source/kde/kde/build/kio +++ b/source/kde/kde/build/kio @@ -1 +1 @@ -1 +2 diff --git a/source/kde/kde/patch/kio.patch b/source/kde/kde/patch/kio.patch new file mode 100644 index 000000000..8c9550642 --- /dev/null +++ b/source/kde/kde/patch/kio.patch @@ -0,0 +1 @@ +cat $CWD/patch/kio/c801571f.patch | patch -p1 --verbose || { touch ${SLACK_KDE_BUILD_DIR}/${PKGNAME}.failed ; continue ; } diff --git a/source/kde/kde/patch/kio/c801571f.patch b/source/kde/kde/patch/kio/c801571f.patch new file mode 100644 index 000000000..1045ac4be --- /dev/null +++ b/source/kde/kde/patch/kio/c801571f.patch @@ -0,0 +1,229 @@ +From c801571f78136692873ea3d2d22e35ac7e5fa530 Mon Sep 17 00:00:00 2001 +From: Nicolas Fella <nicolas.fella@gmx.de> +Date: Wed, 28 Dec 2022 21:32:14 +0100 +Subject: [PATCH] Restore old behavior for KFileFilterCombo::setFilter + +fb2a2268dbb2033bb8483d9bee63cb11f914573e refactored it to use the newly introduced KFileFilter +class to parse the input. However, it actually allows input that is not a valid filter string expression. + +For example K3B uses filters like "audio/x-wav |Wave Sound Files", which are now parsed incorrectly. + +Also, contrary to KFileWidget's filter strings slashes were allowed unescapted, which broke Krita. + +K3B's usage of KFileFilterCombo for this is somewhat questionable, but we should not break it regardless. + +Longer-term setFilter should be replaced with API that takes a KFileFilter object to avoid such confusion + +Revert the implementation of setFilter to the original one. For setMimeFilter the usage of KFileFilter is fine. +That means we now have separate codepaths for when setFilter and setMimeFilter was called. Longer-term there will +be only one using KFileFilter + +BUG: 463309 +--- + autotests/kfilefiltercombotest.cpp | 20 +++++++++ + src/filewidgets/kfilefiltercombo.cpp | 64 +++++++++++++++++++--------- + 2 files changed, 65 insertions(+), 19 deletions(-) + +diff --git a/autotests/kfilefiltercombotest.cpp b/autotests/kfilefiltercombotest.cpp +index bb155f2de..22a042020 100644 +--- a/autotests/kfilefiltercombotest.cpp ++++ b/autotests/kfilefiltercombotest.cpp +@@ -65,6 +65,15 @@ void KFileFilterComboTest::testSetFilter_data() + QTest::addRow("mutiple_extension_multiple_filter") + << "*.cpp *.cc *.C|C++ Source Files\n*.h *.H|Header files" << QStringList{"C++ Source Files", "Header files"}; + QTest::addRow("pattern_only") << "*.cpp" << QStringList{"*.cpp"}; ++ ++ // must handle an unescaped slash https://bugs.kde.org/show_bug.cgi?id=463309 ++ QTest::addRow("slash") << "*.c *.cpp|C/C++ Files" << QStringList{"C/C++ Files"}; ++ ++ QString k3bFilter = ++ "*|All Files\naudio/x-mp3 audio/x-wav application/x-ogg |Sound Files\naudio/x-wav |Wave Sound Files\naudio/x-mp3 |MP3 Sound Files\napplication/x-ogg " ++ "|Ogg Vorbis Sound Files\nvideo/mpeg |MPEG Video Files"; ++ QTest::addRow("k3b") << k3bFilter ++ << QStringList{"All Files", "Sound Files", "Wave Sound Files", "MP3 Sound Files", "Ogg Vorbis Sound Files", "MPEG Video Files"}; + } + + void KFileFilterComboTest::testDefaultFilter() +@@ -177,6 +186,17 @@ void KFileFilterComboTest::testFilters_data() + QTest::addRow("mutiple_extension_multiple_filter") + << "*.cpp *.cc *.C|C++ Source Files\n*.h *.H|Header files" << QStringList{"*.cpp *.cc *.C|C++ Source Files", "*.h *.H|Header files"}; + QTest::addRow("pattern_only") << "*.cpp" << QStringList{"*.cpp"}; ++ ++ QString k3bFilter = ++ "*|All Files\naudio/x-mp3 audio/x-wav application/x-ogg |Sound Files\naudio/x-wav |Wave Sound Files\naudio/x-mp3 |MP3 Sound Files\napplication/x-ogg " ++ "|Ogg Vorbis Sound Files\nvideo/mpeg |MPEG Video Files"; ++ QTest::addRow("k3b") << k3bFilter ++ << QStringList{"*|All Files", ++ "audio/x-mp3 audio/x-wav application/x-ogg |Sound Files", ++ "audio/x-wav |Wave Sound Files", ++ "audio/x-mp3 |MP3 Sound Files", ++ "application/x-ogg |Ogg Vorbis Sound Files", ++ "video/mpeg |MPEG Video Files"}; + } + + void KFileFilterComboTest::testFilters() +diff --git a/src/filewidgets/kfilefiltercombo.cpp b/src/filewidgets/kfilefiltercombo.cpp +index 3d93af643..e751f0c25 100644 +--- a/src/filewidgets/kfilefiltercombo.cpp ++++ b/src/filewidgets/kfilefiltercombo.cpp +@@ -41,7 +41,8 @@ public: + QString m_lastFilter; + QString m_defaultFilter = i18nc("Default mime type filter that shows all file types", "*|All Files"); + +- QVector<KFileFilter> m_filters; ++ QVector<KFileFilter> m_fileFilters; ++ QStringList m_filters; + bool m_allTypes; + }; + +@@ -62,22 +63,31 @@ KFileFilterCombo::KFileFilterCombo(QWidget *parent) + + KFileFilterCombo::~KFileFilterCombo() = default; + +-void KFileFilterCombo::setFilter(const QString &filterString) ++void KFileFilterCombo::setFilter(const QString &filter) + { + clear(); + d->m_filters.clear(); ++ d->m_fileFilters.clear(); + d->m_hasAllSupportedFiles = false; + +- const QVector<KFileFilter> filters = KFileFilter::fromFilterString(filterString); +- +- if (!filters.isEmpty()) { +- d->m_filters = filters; ++ if (!filter.isEmpty()) { ++ QString tmp = filter; ++ int index = tmp.indexOf(QLatin1Char('\n')); ++ while (index > 0) { ++ d->m_filters.append(tmp.left(index)); ++ tmp.remove(0, index + 1); ++ index = tmp.indexOf(QLatin1Char('\n')); ++ } ++ d->m_filters.append(tmp); + } else { +- d->m_filters = KFileFilter::fromFilterString(d->m_defaultFilter); ++ d->m_filters.append(d->m_defaultFilter); + } + +- for (const KFileFilter &filter : std::as_const(d->m_filters)) { +- addItem(filter.label()); ++ QStringList::ConstIterator it; ++ QStringList::ConstIterator end(d->m_filters.constEnd()); ++ for (it = d->m_filters.constBegin(); it != end; ++it) { ++ int tab = (*it).indexOf(QLatin1Char('|')); ++ addItem((tab < 0) ? *it : (*it).mid(tab + 1)); + } + + d->m_lastFilter = currentText(); +@@ -88,7 +98,13 @@ QString KFileFilterCombo::currentFilter() const + { + QString f = currentText(); + if (f == itemText(currentIndex())) { // user didn't edit the text +- f = d->m_filters.value(currentIndex()).toFilterString(); ++ ++ if (!d->m_filters.isEmpty()) { ++ f = d->m_filters.value(currentIndex()); ++ } else { ++ f = d->m_fileFilters.value(currentIndex()).toFilterString(); ++ } ++ + if (d->m_isMimeFilter || (currentIndex() == 0 && d->m_hasAllSupportedFiles)) { + return f; // we have a MIME type as filter + } +@@ -109,9 +125,13 @@ bool KFileFilterCombo::showsAllTypes() const + + QStringList KFileFilterCombo::filters() const + { ++ if (!d->m_filters.isEmpty()) { ++ return d->m_filters; ++ } ++ + QStringList result; + +- for (const KFileFilter &filter : std::as_const(d->m_filters)) { ++ for (const KFileFilter &filter : std::as_const(d->m_fileFilters)) { + result << filter.toFilterString(); + } + +@@ -120,18 +140,23 @@ QStringList KFileFilterCombo::filters() const + + void KFileFilterCombo::setCurrentFilter(const QString &filterString) + { +- auto it = std::find_if(d->m_filters.cbegin(), d->m_filters.cend(), [filterString](const KFileFilter &filter) { ++ if (!d->m_filters.isEmpty()) { ++ setCurrentIndex(d->m_filters.indexOf(filterString)); ++ return; ++ } ++ ++ auto it = std::find_if(d->m_fileFilters.cbegin(), d->m_fileFilters.cend(), [filterString](const KFileFilter &filter) { + return filterString == filter.toFilterString(); + }); + +- if (it == d->m_filters.cend()) { ++ if (it == d->m_fileFilters.cend()) { + qCWarning(KIO_KFILEWIDGETS_KFILEFILTERCOMBO) << "Could not find filter" << filterString; + setCurrentIndex(-1); + Q_EMIT filterChanged(); + return; + } + +- setCurrentIndex(std::distance(d->m_filters.cbegin(), it)); ++ setCurrentIndex(std::distance(d->m_fileFilters.cbegin(), it)); + Q_EMIT filterChanged(); + } + +@@ -139,6 +164,7 @@ void KFileFilterCombo::setMimeFilter(const QStringList &types, const QString &de + { + clear(); + d->m_filters.clear(); ++ d->m_fileFilters.clear(); + QString delim = QStringLiteral(", "); + d->m_hasAllSupportedFiles = false; + bool hasAllFilesFilter = false; +@@ -181,7 +207,7 @@ void KFileFilterCombo::setMimeFilter(const QStringList &types, const QString &de + filter = KFileFilter::fromMimeType(*it); + } + +- d->m_filters.append(filter); ++ d->m_fileFilters.append(filter); + addItem(filter.label()); + + if (type.name() == defaultType) { +@@ -195,7 +221,7 @@ void KFileFilterCombo::setMimeFilter(const QStringList &types, const QString &de + + if (d->m_allTypes) { + QStringList allTypes; +- for (const KFileFilter &filter : std::as_const(d->m_filters)) { ++ for (const KFileFilter &filter : std::as_const(d->m_fileFilters)) { + allTypes << filter.mimePatterns().join(QLatin1Char(' ')); + } + +@@ -203,7 +229,7 @@ void KFileFilterCombo::setMimeFilter(const QStringList &types, const QString &de + + if (count() <= 3) { // show the MIME type comments of at max 3 types + QStringList allComments; +- for (const KFileFilter &filter : std::as_const(d->m_filters)) { ++ for (const KFileFilter &filter : std::as_const(d->m_fileFilters)) { + allComments << filter.label(); + } + +@@ -214,13 +240,13 @@ void KFileFilterCombo::setMimeFilter(const QStringList &types, const QString &de + } + + insertItem(0, allSupportedFilesFilter.label()); +- d->m_filters.prepend(allSupportedFilesFilter); ++ d->m_fileFilters.prepend(allSupportedFilesFilter); + setCurrentIndex(0); + } + + if (hasAllFilesFilter) { + addItem(i18n("All Files")); +- d->m_filters.append(KFileFilter(i18n("All Files"), {}, {QStringLiteral("application/octet-stream")})); ++ d->m_fileFilters.append(KFileFilter(i18n("All Files"), {}, {QStringLiteral("application/octet-stream")})); + } + + d->m_lastFilter = currentText(); +-- +GitLab + diff --git a/source/xap/libnma/gschema-Remove-path-from-eap-schema.patch b/source/xap/libnma/gschema-Remove-path-from-eap-schema.patch deleted file mode 100644 index f855a885c..000000000 --- a/source/xap/libnma/gschema-Remove-path-from-eap-schema.patch +++ /dev/null @@ -1,28 +0,0 @@ -From: "Jan Alexander Steffens (heftig)" <heftig@archlinux.org> -Date: Wed, 9 Nov 2022 08:00:19 +0000 -Subject: gschema: Remove path from eap schema - -This one needs to be relocatable, otherwise creating a new VPN -connection will fail with: - - settings object created with schema 'org.gnome.nm-applet.eap' - and path '/org/gnome/nm-applet/eap/<uuid>/', - but path '/org/gnome/nm-applet/eap/' is specified by schema - -Fixes: https://bugs.archlinux.org/task/76490 ---- - org.gnome.nm-applet.eap.gschema.xml.in | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/org.gnome.nm-applet.eap.gschema.xml.in b/org.gnome.nm-applet.eap.gschema.xml.in -index 0fc3ca9..f4a56ea 100644 ---- a/org.gnome.nm-applet.eap.gschema.xml.in -+++ b/org.gnome.nm-applet.eap.gschema.xml.in -@@ -1,6 +1,6 @@ - <?xml version="1.0" encoding="UTF-8"?> - <schemalist> -- <schema id="org.gnome.nm-applet.eap" path="/org/gnome/nm-applet/eap/" gettext-domain="nm-applet"> -+ <schema id="org.gnome.nm-applet.eap" gettext-domain="nm-applet"> - <key name="ignore-ca-cert" type="b"> - <default>false</default> - <summary>Ignore CA certificate</summary> diff --git a/source/xap/libnma/libnma.SlackBuild b/source/xap/libnma/libnma.SlackBuild index 5a0504275..2e2cc8c60 100755 --- a/source/xap/libnma/libnma.SlackBuild +++ b/source/xap/libnma/libnma.SlackBuild @@ -1,6 +1,6 @@ #!/bin/bash -# Copyright 2020, 2022 Patrick J. Volkerding, Sebeka, Minnesota, USA +# Copyright 2020, 2022, 2023 Patrick J. Volkerding, Sebeka, Minnesota, USA # All rights reserved. # # Redistribution and use of this script, with or without modification, is @@ -24,7 +24,7 @@ cd $(dirname $0) ; CWD=$(pwd) PKGNAM=libnma VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z* | rev | cut -f 3- -d . | cut -f 1 -d - | rev)} -BUILD=${BUILD:-2} +BUILD=${BUILD:-1} NUMJOBS=${NUMJOBS:-" -j$(expr $(nproc) + 1) "} @@ -74,8 +74,6 @@ find . \ \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ -exec chmod 644 {} \+ -zcat $CWD/gschema-Remove-path-from-eap-schema.patch.gz | patch -p1 --verbose || exit 1 - export CFLAGS="$SLKCFLAGS" export CXXFLAGS="$SLKCFLAGS" mkdir build |