Compare commits

..

No commits in common. "ubuntu/plucky" and "ubuntu/1%25.04.26" have entirely different histories.

8 changed files with 42 additions and 43 deletions

View File

@ -100,8 +100,7 @@ void PackageSelectViewStep::onActivate()
bool hasInternet = network.hasInternet(); bool hasInternet = network.hasInternet();
// Handle network unavailability // Handle network unavailability
//if (!hasInternet) { if (!hasInternet) {
// Disable almost all fancy features to avoid bugs, revert in 25.10 cycle
ui->full_button->setVisible(false); ui->full_button->setVisible(false);
ui->full_text->setVisible(false); ui->full_text->setVisible(false);
@ -115,7 +114,7 @@ void PackageSelectViewStep::onActivate()
ui->extraparty_scroll->setVisible(false); ui->extraparty_scroll->setVisible(false);
ui->extraparty_text->setVisible(false); ui->extraparty_text->setVisible(false);
ui->mandatory_warning_label->setVisible(false); ui->mandatory_warning_label->setVisible(false);
//} }
// Dynamically create package checkboxes only once // Dynamically create package checkboxes only once
if (m_packageCheckBoxes.isEmpty()) { if (m_packageCheckBoxes.isEmpty()) {

View File

@ -9,6 +9,10 @@ packages:
name: "Thunderbird" name: "Thunderbird"
description: "Email, newsfeed, chat, and calendaring client." description: "Email, newsfeed, chat, and calendaring client."
snap: true snap: true
- id: "virt-manager"
name: "Virtual Machine Manager"
description: "Desktop user interface for managing virtual machines through libvirt."
snap: false
- id: "krita" - id: "krita"
name: "Krita" name: "Krita"
description: "Graphics editor designed primarily for digital art and 2D animation." description: "Graphics editor designed primarily for digital art and 2D animation."

View File

@ -62,12 +62,9 @@ Calamares::JobResult PackageSelectProcess::runAptCommand(const QString& command,
QRegularExpression getRegex(R"(Get:\d+\s+[^ ]+\s+[^ ]+\s+(.+?)\s+\S+\s+(\S+)\s+\[(.*?)\])"); QRegularExpression getRegex(R"(Get:\d+\s+[^ ]+\s+[^ ]+\s+(.+?)\s+\S+\s+(\S+)\s+\[(.*?)\])");
connect(&aptProcess, &QProcess::readyReadStandardOutput, this, connect(&aptProcess, &QProcess::readyReadStandardOutput, this,
[this, &lineCount, progressPerLine, startProgress, endProgress, verboseProgress, commandHRPrefix, getRegex]() { [this, &aptProcess, &lineCount, progressPerLine, startProgress, endProgress, verboseProgress, commandHRPrefix, getRegex]() mutable {
QProcess *aptProcess = (QProcess *)(QObject::sender()); while (aptProcess.canReadLine()) {
if (aptProcess == NULL) return; QString line = QString::fromUtf8(aptProcess.readLine()).trimmed();
while (aptProcess->canReadLine()) {
QString line = QString::fromUtf8(aptProcess->readLine()).trimmed();
qDebug() << "Apt log line: " << line;
if (line.isEmpty()) { if (line.isEmpty()) {
continue; continue;
} }
@ -284,7 +281,7 @@ Calamares::JobResult PackageSelectProcess::exec()
const QVariantMap installationData = gs->value("installation_data").toMap(); const QVariantMap installationData = gs->value("installation_data").toMap();
const QString installationMode = installationData.value("installation_mode").toString(); const QString installationMode = installationData.value("installation_mode").toString();
const bool hasInternet = gs->value("hasInternet").toBool(); const bool hasInternet = installationData.value("hasInternet").toBool();
const bool downloadUpdates = (installationData.value("download_updates").toBool() && hasInternet); const bool downloadUpdates = (installationData.value("download_updates").toBool() && hasInternet);
const QVariantList packagesToInstall = installationData.value("packages_to_install").toList(); const QVariantList packagesToInstall = installationData.value("packages_to_install").toList();
const QVariantList packagesToRemove = installationData.value("packages_to_remove").toList(); const QVariantList packagesToRemove = installationData.value("packages_to_remove").toList();
@ -296,10 +293,6 @@ Calamares::JobResult PackageSelectProcess::exec()
rootMountPoint = gs->value("rootMountPoint").toString(); rootMountPoint = gs->value("rootMountPoint").toString();
} }
const QString checkpackage_path = "/usr/libexec/checkpackage-backend";
const QString chroot_checkpackage_path = rootMountPoint + checkpackage_path;
QFile* cpbe = new QFile(chroot_checkpackage_path);
static const QMap<QString, QVector<ProgressAllocation>> allocationMap = { static const QMap<QString, QVector<ProgressAllocation>> allocationMap = {
{ "minimal", { {0.0, 1.0} } }, { "minimal", { {0.0, 1.0} } },
{ "normal", { {0.0, 0.4}, {0.4, 1.0} } }, { "normal", { {0.0, 0.4}, {0.4, 1.0} } },
@ -396,6 +389,9 @@ Calamares::JobResult PackageSelectProcess::exec()
qDebug() << "Progress range: installStart:" << installStart << "installEnd:" << installEnd; qDebug() << "Progress range: installStart:" << installStart << "installEnd:" << installEnd;
if (!debPackages.isEmpty()) { if (!debPackages.isEmpty()) {
const QString checkpackage_path = "/usr/libexec/checkpackage-backend";
const QString chroot_checkpackage_path = rootMountPoint + checkpackage_path;
// Corresponding to the temporary hack in pkgselect adding calamares // Corresponding to the temporary hack in pkgselect adding calamares
// and kdialog to the list, we only want those two included in the // and kdialog to the list, we only want those two included in the
// final installation if we're actually in OEM mode. Otherwise, they // final installation if we're actually in OEM mode. Otherwise, they
@ -416,13 +412,13 @@ Calamares::JobResult PackageSelectProcess::exec()
// checkpackage-backend needs to be explicitly copied to the chroot // checkpackage-backend needs to be explicitly copied to the chroot
// and removed later for systems with stacked squashfses, or the // and removed later for systems with stacked squashfses, or the
// install command will fail. LP: #2104243 // install command will fail. LP: #2104243
QFile* cpbe = new QFile(chroot_checkpackage_path);
if (!cpbe->exists()) { if (!cpbe->exists()) {
QFile* parent_cpbe = new QFile(checkpackage_path); QFile* parent_cpbe = new QFile(checkpackage_path);
if (!parent_cpbe->copy(chroot_checkpackage_path)) { if (!parent_cpbe->copy(chroot_checkpackage_path)) {
return Calamares::JobResult::error(tr("Internal Error"), return Calamares::JobResult::error(tr("Internal Error"),
tr("Permission denied when copying checkpackage-backend, are you running Calamares correctly?")); tr("Permission denied when copying checkpackage-backend, are you running Calamares correctly?"));
} }
}
const QString packageList = debPackages.join(" "); const QString packageList = debPackages.join(" ");
const QString installCommand = QString("DEBIAN_FRONTEND=noninteractive apt-get -y install $(/usr/libexec/checkpackage-backend %1);").arg(packageList); const QString installCommand = QString("DEBIAN_FRONTEND=noninteractive apt-get -y install $(/usr/libexec/checkpackage-backend %1);").arg(packageList);
@ -432,9 +428,10 @@ Calamares::JobResult PackageSelectProcess::exec()
installStart, installStart,
installEnd, installEnd,
true); true);
if (!installResult) {
if (!cpbe->remove()) qDebug() << "Warning: failed to clean up /usr/libexec/checkpackage-backend"; if (!cpbe->remove()) qDebug() << "Warning: failed to clean up /usr/libexec/checkpackage-backend";
return std::move(installResult); if (!installResult) return std::move(installResult);
} else {
if (!cpbe->remove()) qDebug() << "Warning: failed to clean up /usr/libexec/checkpackage-backend";
} }
} }
else qDebug() << "No packages to install."; else qDebug() << "No packages to install.";
@ -567,7 +564,5 @@ Calamares::JobResult PackageSelectProcess::exec()
m_prettyStatus = tr("All selected packages installed successfully."); m_prettyStatus = tr("All selected packages installed successfully.");
emit prettyStatusMessageChanged(m_prettyStatus); emit prettyStatusMessageChanged(m_prettyStatus);
if (!cpbe->remove()) qDebug() << "Warning: failed to clean up /usr/libexec/checkpackage-backend";
return Calamares::JobResult::ok(); return Calamares::JobResult::ok();
} }

10
debian/changelog vendored
View File

@ -1,13 +1,3 @@
calamares-settings-ubuntu (1:25.04.27) plucky; urgency=medium
* Disable virt-manager installation in third-party software options, as the
package is broken when installed by pkgselect.
* Remove full installation and third-party software options from all
flavors.
* Fix segfaults during installation. (LP: #2107486)
-- Aaron Rainbolt <arraybolt3@ubuntu.com> Wed, 16 Apr 2025 18:23:56 -0500
calamares-settings-ubuntu (1:25.04.26) plucky; urgency=medium calamares-settings-ubuntu (1:25.04.26) plucky; urgency=medium
* [bootloader] Instead of utilizing a contextualprocess to only bind-mount * [bootloader] Instead of utilizing a contextualprocess to only bind-mount

1
debian/control vendored
View File

@ -7,7 +7,6 @@ Build-Depends: debhelper-compat (= 13),
dh-sequence-qmldeps, dh-sequence-qmldeps,
cmake, cmake,
extra-cmake-modules, extra-cmake-modules,
fakeroot,
intltool, intltool,
libapt-pkg-dev, libapt-pkg-dev,
libcalamares-dev (>= 3.3.13-0ubuntu4), libcalamares-dev (>= 3.3.13-0ubuntu4),

View File

@ -5,6 +5,10 @@ packages:
name: "Element" name: "Element"
description: "Matrix-based end-to-end encrypted messenger and secure collaboration app." description: "Matrix-based end-to-end encrypted messenger and secure collaboration app."
snap: true snap: true
- id: "virt-manager"
name: "Virtual Machine Manager"
description: "Desktop user interface for managing virtual machines through libvirt."
snap: false
- id: "krita" - id: "krita"
name: "Krita" name: "Krita"
description: "Graphics editor designed primarily for digital art and 2D animation." description: "Graphics editor designed primarily for digital art and 2D animation."

View File

@ -10,6 +10,10 @@ packages:
name: "Thunderbird" name: "Thunderbird"
description: "Email, newsfeed, chat, and calendaring client." description: "Email, newsfeed, chat, and calendaring client."
snap: true snap: true
- id: "virt-manager"
name: "Virtual Machine Manager"
description: "Desktop user interface for managing virtual machines through libvirt."
snap: false
- id: "krita" - id: "krita"
name: "Krita" name: "Krita"
description: "Graphics editor designed primarily for digital art and 2D animation." description: "Graphics editor designed primarily for digital art and 2D animation."

View File

@ -9,6 +9,10 @@ packages:
name: "Thunderbird" name: "Thunderbird"
description: "Email, newsfeed, chat, and calendaring client." description: "Email, newsfeed, chat, and calendaring client."
snap: true snap: true
- id: "virt-manager"
name: "Virtual Machine Manager"
description: "Desktop user interface for managing virtual machines through libvirt."
snap: false
- id: "krita" - id: "krita"
name: "Krita" name: "Krita"
description: "Graphics editor designed primarily for digital art and 2D animation." description: "Graphics editor designed primarily for digital art and 2D animation."