diff --git a/packages/calamares-branding-antergos-next/netinstall.yaml b/packages/calamares-branding-antergos-next/netinstall.yaml index 4073c10..dbdbdcf 100644 --- a/packages/calamares-branding-antergos-next/netinstall.yaml +++ b/packages/calamares-branding-antergos-next/netinstall.yaml @@ -79,6 +79,7 @@ - dhcpcd-dinit - syslog-ng-dinit - power-profiles-daemon-dinit + - ntp-dinit - name: "Utilities" description: "System Utilities" diff --git a/packages/calamares/PKGBUILD b/packages/calamares/PKGBUILD index 4be7e4e..3d1f6d5 100644 --- a/packages/calamares/PKGBUILD +++ b/packages/calamares/PKGBUILD @@ -5,7 +5,7 @@ _pkgname="calamares" pkgname="$_pkgname" pkgver=3.4.2 -pkgrel=8 +pkgrel=9 pkgdesc="Distribution-independent installer framework" url="https://codeberg.org/Calamares/calamares" license=("GPL-3.0-or-later") @@ -29,8 +29,15 @@ makedepends=( _pkgext="tar.gz" DLAGENTS=('https::/usr/bin/curl -gqb "" -fLC - --http1.1 --retry 5 --retry-delay 5 -o %o %u') -source=("$_pkgname-$pkgver.$_pkgext"::"$url/releases/download/v$pkgver/$_pkgname-$pkgver.$_pkgext") -sha256sums=('733bbbb00dc9f84874bd5c22960952f317ea2537565431179fa2152b2fbfdccc') +source=("$_pkgname-$pkgver.$_pkgext"::"$url/releases/download/v$pkgver/$_pkgname-$pkgver.$_pkgext" + 'multi-netinstall-add.patch') +sha256sums=('733bbbb00dc9f84874bd5c22960952f317ea2537565431179fa2152b2fbfdccc' + '18a0e1592b0f893256996f6071d539cbd692b920b4d3788e043442f3e707d795') + +prepare() { + cd "$srcdir/$_pkgname-$pkgver" + patch -Np1 -i "$srcdir/multi-netinstall-add.patch" +} build() { local _skip_modules=( diff --git a/packages/calamares/multi-netinstall-add.patch b/packages/calamares/multi-netinstall-add.patch new file mode 100755 index 0000000..1140777 --- /dev/null +++ b/packages/calamares/multi-netinstall-add.patch @@ -0,0 +1,76 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index d393726..6f6a5f4 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -51,7 +51,7 @@ + + cmake_minimum_required(VERSION 3.16 FATAL_ERROR) + +-set(CALAMARES_VERSION 3.4.2) ++set(CALAMARES_VERSION 3.4.2-w0k3) + set(CALAMARES_RELEASE_MODE ON) # Set to ON during a release + + if(CMAKE_SCRIPT_MODE_FILE) +diff --git a/src/modules/packagechooser/Config.cpp b/src/modules/packagechooser/Config.cpp +index 642311b..d0d6b11 100644 +--- a/src/modules/packagechooser/Config.cpp ++++ b/src/modules/packagechooser/Config.cpp +@@ -147,7 +147,12 @@ Config::updateGlobalStorage( const QStringList& selected ) const + } + else if ( m_method == PackageChooserMethod::NetAdd ) + { +- QVariantList netinstallDataList = m_model->getNetinstallDataForNames( selected ); ++ // Tag the data with our own instance id (e.g. "packagechooser@de") ++ // so that when multiple packagechooser instances use netinstall-add, ++ // each instance only prunes (and replaces) its own stale data and ++ // leaves the other instances' groups intact in global storage. ++ const QString source = m_defaultId.toString(); ++ QVariantList netinstallDataList = m_model->getNetinstallDataForNames( selected, source ); + if ( netinstallDataList.isEmpty() ) + { + cWarning() << "No netinstall information found for " << selected; +@@ -158,8 +163,7 @@ Config::updateGlobalStorage( const QStringList& selected ) const + auto* gs = Calamares::JobQueue::instance()->globalStorage(); + if ( gs->contains( "netinstallAdd" ) ) + { +- netinstallDataList +- += pruneNetinstallAdd( QStringLiteral( "packageChooser" ), gs->value( "netinstallAdd" ) ); ++ netinstallDataList += pruneNetinstallAdd( source, gs->value( "netinstallAdd" ) ); + } + gs->insert( "netinstallAdd", netinstallDataList ); + } +diff --git a/src/modules/packagechooser/PackageModel.cpp b/src/modules/packagechooser/PackageModel.cpp +index f2a0b43..b7e2996 100644 +--- a/src/modules/packagechooser/PackageModel.cpp ++++ b/src/modules/packagechooser/PackageModel.cpp +@@ -137,7 +137,7 @@ PackageListModel::getInstallPackagesForNames( const QStringList& ids ) const + } + + QVariantList +-PackageListModel::getNetinstallDataForNames( const QStringList& ids ) const ++PackageListModel::getNetinstallDataForNames( const QStringList& ids, const QString& sourceId ) const + { + QVariantList l; + for ( auto& p : m_packages ) +@@ -147,7 +147,7 @@ PackageListModel::getNetinstallDataForNames( const QStringList& ids ) const + if ( !p.netinstallData.isEmpty() ) + { + QVariantMap newData = p.netinstallData; +- newData[ "source" ] = QStringLiteral( "packageChooser" ); ++ newData[ "source" ] = sourceId; + l.append( newData ); + } + } +diff --git a/src/modules/packagechooser/PackageModel.h b/src/modules/packagechooser/PackageModel.h +index ed7ffcf..7c63647 100644 +--- a/src/modules/packagechooser/PackageModel.h ++++ b/src/modules/packagechooser/PackageModel.h +@@ -118,7 +118,7 @@ public: + * + * returns a list of netinstall data or an emply list if none is found + */ +- QVariantList getNetinstallDataForNames( const QStringList& ids ) const; ++ QVariantList getNetinstallDataForNames( const QStringList& ids, const QString& sourceId ) const; + + enum Roles : int + {