Where to find the `pkgbuild` script for `plasma-nm` 5.26.5-1.1 (updated today)?

Hi, trying to find what the latest plasma-nm update is about (maybe removing the lo network from the applet?).

Because there is no changelog, I have tried to look for the corresponding pkgbuild, but it seems to be nowhere. The manjaro gitlab repo has the pkgbuild script for plasma-nm only up to 5.19.5 (two years ago!). The package does not seem to be taken from arch, though, because the latter has no 5.26.5-1.1.

Would be great if for any package the pkgbuild was available and easy to find, otherwise it is not possible to reproduce any package build nor to understand what an update is about. Am I missing something about where to look for these scripts? IMHO, ideally, pamac would include an option to download the pkgbuild script for all the available packages, is there something similar?

plasma-nm is packaged by Arch.

package 5.27.1-1 in unstable repo.

 $ pamac info plasma-nm
Name                  : plasma-nm
Version               : 5.27.1-1
Description           : Plasma applet written in QML for managing network connections
URL                   : https://kde.org/plasma-desktop/
Licenses              : GPL2
Repository            : extra
Installed Size        : 9,3 MB
Groups                : plasma
Depends On            : plasma-workspace modemmanager-qt networkmanager-qt
Optional Dependencies : openconnect: Cisco AnyConnect VPN plugin [Installed]
Required By           : --
Optional For          : plasma-desktop
Provides              : --
Replaces              : --
Conflicts With        : --
Packager              : Antonio Rojas <arojas@archlinux.org>
Build Date            : tir 21 feb 2023 14:26:39 CET
Install Date          : ons 22 feb 2023 09:23:48 CET
Install Reason        : Explicitly installed
Validated By          : Signature
Backup files          : --

And yes it hides the lo interface - the new config options for lo is still accessible in the system settings

Arch Linux - plasma-nm 6.0.4-1 (x86_64)

Top right → Package Actions → Source Files
leads you to it

Unfortunately, 5.27.1-1 is not the version in manjaro stable. That is 5.26.5-1.1 and does not hide the lo interface.

In fact, 5.26.5-1.1 is not tagged in the arch vcs, it seems to be Manjaro specific (or maybe it is the untagged Drop options=(debug)/options=('debug') from trunk · archlinux/svntogit-packages@99c8126 · GitHub, who can say).

In fact, what is the actual source corresponding to the 5.26.5-1.1 binary remains a mystery (if not a bit of an involuntary violation of the GPL2 license).

Then - either switch to unstable branch or wait until next snap is done.

When a package has a decimal point it is usually a temporary package created by a maintainer - an overlay package - which is created to prevent an issue from propagating.

5.26.5-1.1 includes the lo patch backported to 5.26 series:

# Maintainer: Felix Yan <felixonmars@archlinux.org>
# Maintainer: Antonio Rojas <arojas@archlinux.org>
# Contributor: Andrea Scarpino <andrea@archlinux.org>

pkgname=plasma-nm
pkgver=5.26.5
pkgrel=1.1
pkgdesc='Plasma applet written in QML for managing network connections'
arch=(x86_64)
url='https://kde.org/plasma-desktop/'
license=(GPL2)
depends=(plasma-workspace modemmanager-qt networkmanager-qt qca-qt5)
makedepends=(extra-cmake-modules openconnect)
optdepends=('openconnect: Cisco AnyConnect VPN plugin')
groups=(plasma)
source=(https://download.kde.org/stable/plasma/$pkgver/$pkgname-$pkgver.tar.xz{,.sig}
        https://invent.kde.org/plasma/plasma-nm/-/commit/f8a864ebbb36866a3c25ca58ba5059b4a5272b5a.patch)
sha256sums=('c4cc53ce708bf5373f44c3fdbff346191c2dd3adb84fee0c4c625d38214d51d7'
            'SKIP'
            'fc6f0f22fe0f1f74c6d7db5a8c08f3c4a6d88e42cf85c8dae0d44b914c365e47')
validpgpkeys=('E0A3EB202F8E57528E13E72FD7574483BB57B18D'  # Jonathan Esk-Riddell <jr@jriddell.org>
              '0AAC775BB6437A8D9AF7A3ACFE0784117FBCE11D'  # Bhushan Shah <bshah@kde.org>
              'D07BD8662C56CB291B316EB2F5675605C74E02CF'  # David Edmundson <davidedmundson@kde.org>
              '1FA881591C26B276D7A5518EEAAF29B42A678C20') # Marco Martin <notmart@gmail.com>

prepare() {
  cd $pkgname-$pkgver
  patch -p1 -i ../f8a864ebbb36866a3c25ca58ba5059b4a5272b5a.patch
}

build() {
  cmake -B build -S $pkgname-$pkgver \
    -DBUILD_TESTING=OFF
  cmake --build build
}

package() {
  DESTDIR="$pkgdir" cmake --install build
}

Patch

From f8a864ebbb36866a3c25ca58ba5059b4a5272b5a Mon Sep 17 00:00:00 2001
From: David Redondo <kde@david-redondo.de>
Date: Wed, 15 Feb 2023 14:07:34 +0100
Subject: [PATCH] Filter out the loopback device

Quick fix so we can backport it.
BUG:465655
FIXED-IN:5.27.1


(cherry picked from commit 57bbd8a07ec7a37071eede01ef399ab2f8fc24f1)
---
 libs/declarative/networkstatus.cpp | 3 ++-
 libs/models/networkmodel.cpp       | 5 +++++
 2 files changed, 7 insertions(+), 1 deletion(-)

diff --git a/libs/declarative/networkstatus.cpp b/libs/declarative/networkstatus.cpp
index b0ed3ea3..e1c60250 100644
--- a/libs/declarative/networkstatus.cpp
+++ b/libs/declarative/networkstatus.cpp
@@ -160,7 +160,8 @@ void NetworkStatus::changeActiveConnections()
             NetworkManager::Device::Ptr device = NetworkManager::findNetworkInterface(active->devices().first());
             if (device
                 && ((device->type() != NetworkManager::Device::Generic && device->type() <= NetworkManager::Device::Team)
-                    || device->type() == 29)) { // TODO: Change to WireGuard enum value when it is added
+                    || device->type() == 29) // TODO: Change to WireGuard enum value when it is added
+                && device->interfaceName() != QLatin1String("lo")) { // TODO change to comparison with LocalHost enum value when it is added
                 bool connecting = false;
                 bool connected = false;
                 QString conType;
diff --git a/libs/models/networkmodel.cpp b/libs/models/networkmodel.cpp
index b2b4774f..59fff801 100644
--- a/libs/models/networkmodel.cpp
+++ b/libs/models/networkmodel.cpp
@@ -15,6 +15,7 @@
 #if WITH_MODEMMANAGER_SUPPORT
 #include <ModemManagerQt/Manager>
 #endif
+#include <NetworkManagerQt/GenericDevice>
 #include <NetworkManagerQt/Settings>
 
 NetworkModel::NetworkModel(QObject *parent)
@@ -211,6 +212,10 @@ void NetworkModel::initialize()
         if (!dev->managed()) {
             continue;
         }
+        // TODO implement loopback device in NetowrkManagerQt
+        if (dev->interfaceName() == QLatin1String("lo")) {
+            continue;
+        }
         addDevice(dev);
     }
 
-- 
GitLab

@philm thank you very much for including the pkgbuild! Also the link to the backported patch was useful!

Extra reasonable and the maintainer effort is obviously very much appreciated! Still the pkgbuild needs to be made available somewhere otherwise you end up distributing a binary for which the corresponding source is not available. Not only this may involuntary be an issue license wise, more substantially it makes it impossible to understand what is being installed and what might be the cause if there is some issue with the system after the package installation.

Whenever there is a package that is not taken from arch as is, I think that it is important to assure that the corresponding pkgbuild is pushed to the manjaro gitlab repo for packages. In fact, it would be extra great if something like arch’s asp was available to seek manjaro source packages in that repo!

1 Like