summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorbill-auger <mr.j.spam.me@gmail.com>2017-11-01 04:01:03 -0400
committerbill-auger <mr.j.spam.me@gmail.com>2017-11-01 06:38:37 -0400
commit28b713e0364ebb6f7ae850f348b544a16f9e2d2a (patch)
tree360b5cbb28ba357f68b65ee4613cbc6e660524a4
parentf5d3cbce4d329352a8e861d3a7ad5798a6a646ba (diff)
-rw-r--r--src/libcalamares/JobQueue.cpp8
-rw-r--r--src/libcalamares/PacstrapCppJob.cpp140
-rw-r--r--src/libcalamares/PacstrapCppJob.h25
-rw-r--r--src/modules/users/CreateUserJob.cpp32
-rw-r--r--src/modules/welcome/checker/RequirementsChecker.cpp7
5 files changed, 107 insertions, 105 deletions
diff --git a/src/libcalamares/JobQueue.cpp b/src/libcalamares/JobQueue.cpp
index 35d5f8b89..0ef5eb6e2 100644
--- a/src/libcalamares/JobQueue.cpp
+++ b/src/libcalamares/JobQueue.cpp
@@ -111,10 +111,10 @@ private:
if (m_jobIndex < jobCount)
{
- cLog() << "Progress for Job[" << m_jobIndex << "]: " << ( jobPercent * 100 ) << "% completed";
- cLog() << "Progress Overall: " << ( cumulativeProgress * 100 ) << "% (accumulated) + "
- << ( ( ( m_jobWeights.at( m_jobIndex ) ) * jobPercent ) * 100 ) << "% (this job) = "
- << ( percent * 100 ) << "% (total)";
+ cDebug(LOGINFO) << "[JOBQUEUE]: Progress for Job[" << m_jobIndex << "]: " << ( jobPercent * 100 ) << "% completed";
+ cDebug(LOGINFO) << "[JOBQUEUE]: Progress Overall: " << ( cumulativeProgress * 100 ) << "% (accumulated) + "
+ << ( ( ( m_jobWeights.at( m_jobIndex ) ) * jobPercent ) * 100 ) << "% (this job) = "
+ << ( percent * 100 ) << "% (total)";
}
QMetaObject::invokeMethod( m_queue, "progress", Qt::QueuedConnection,
Q_ARG( qreal, percent ),
diff --git a/src/libcalamares/PacstrapCppJob.cpp b/src/libcalamares/PacstrapCppJob.cpp
index 01d1db350..91c1f142d 100644
--- a/src/libcalamares/PacstrapCppJob.cpp
+++ b/src/libcalamares/PacstrapCppJob.cpp
@@ -25,6 +25,64 @@
#include "utils/Logger.h"
+/* PacstrapCppJob public class constants */
+
+const QString PacstrapCppJob::BASE_PACKAGES_KEY = "base" ;
+const QString PacstrapCppJob::BOOTLODER_PACKAGES_KEY = "bootloader" ;
+const QString PacstrapCppJob::KERNEL_PACKAGES_KEY = "kernel" ;
+const QString PacstrapCppJob::APPLICATIONS_PACKAGES_KEY = "applications" ;
+const QString PacstrapCppJob::MULTIMEDIA_PACKAGES_KEY = "multimedia" ;
+const QString PacstrapCppJob::NETWORK_PACKAGES_KEY = "network" ;
+const QString PacstrapCppJob::THEMES_PACKAGES_KEY = "themes" ;
+const QString PacstrapCppJob::UTILITIES_PACKAGES_KEY = "utilities" ;
+const QString PacstrapCppJob::XSERVER_PACKAGES_KEY = "x-server" ;
+const QString PacstrapCppJob::MATE_PACKAGES_KEY = "mate" ;
+const QString PacstrapCppJob::LXDE_PACKAGES_KEY = "lxde" ;
+
+
+/* PacstrapCppJob protected class constants */
+
+const QString PacstrapCppJob::MOUNTPOINT = "/tmp/pacstrap" ;
+const char* PacstrapCppJob::BASE_JOB_NAME = "Pacstrap Base C++ Job" ;
+const char* PacstrapCppJob::GUI_JOB_NAME = "Pacstrap Desktop C++ Job" ;
+const char* PacstrapCppJob::BASE_STATUS_MSG = "Installing root filesystem" ;
+const char* PacstrapCppJob::GUI_STATUS_MSG = "Installing graphical desktop environment" ;
+const qreal PacstrapCppJob::BASE_JOB_WEIGHT = 20.0 ; // progress-bar job weight (1.0 normal)
+const qreal PacstrapCppJob::GUI_JOB_WEIGHT = 57.0 ; // progress-bar job weight (1.0 normal)
+const qreal PacstrapCppJob::PACMAN_SYNC_PROPORTION = 0.05 ; // per task progress-bar proportion
+const qreal PacstrapCppJob::LIST_PACKAGES_PROPORTION = 0.05 ; // per task progress-bar proportion
+const qreal PacstrapCppJob::CHROOT_TASK_PROPORTION = 0.9 ; // per task progress-bar proportion
+const QString PacstrapCppJob::PACSTRAP_FMT = "pacstrap -C %1 %2 %3" ;
+const QString PacstrapCppJob::PACSTRAP_ERROR_MSG = "Failed to install packages in chroot." ;
+
+
+/* PacstrapCppJob private class constants */
+
+const QDir PacstrapCppJob::PACKAGES_CACHE_DIR = QDir(MOUNTPOINT + "/var/cache/pacman/pkg") ;
+const QDir PacstrapCppJob::PACKAGES_METADATA_DIR = QDir(MOUNTPOINT + "/var/lib/pacman/local") ;
+const QString PacstrapCppJob::DEFAULT_CONF_FILENAME = "/etc/pacman.conf" ;
+const QString PacstrapCppJob::ONLINE_CONF_FILENAME = "/etc/pacman-online.conf" ;
+const QString PacstrapCppJob::OFFLINE_CONF_FILENAME = "/etc/pacman-offline.conf" ;
+const QString PacstrapCppJob::SYSTEM_EXEC_FMT = "/bin/sh -c \"%1\"" ;
+// const QString PacstrapCppJob::KEYRING_CMD = "pacman -Sy --noconfirm parabola-keyring" ;
+// const QString PacstrapCppJob::KEYRING_CMD = "pacman -Sy --noconfirm parabola-keyring && \
+// pacman-key --populate parabola && \
+// pacman-key --refresh-keys " ;
+const QString PacstrapCppJob::MOUNT_FMT = "mkdir %2 2> /dev/null || true && mount %1 %2" ;
+const QString PacstrapCppJob::CHROOT_PREP_FMT = "mkdir -m 0755 -p {%1,%2}" ;
+const QString PacstrapCppJob::PACKAGES_SYNC_FMT = "pacman --print --config %1 --root %2 -Sy" ;
+const QString PacstrapCppJob::LIST_PACKAGES_FMT = "pacman --print --config %1 --root %2 -S %3" ;
+const QString PacstrapCppJob::UMOUNT_FMT = "umount %1" ;
+const QString PacstrapCppJob::CONFIG_ERROR_MSG = "Invalid configuration map." ;
+const QString PacstrapCppJob::TARGET_ERROR_MSG = "Target device for root filesystem is unspecified." ;
+const QString PacstrapCppJob::CONFFILE_ERROR_MSG = "Pacman configuration not found: '%1'." ;
+// const QString PacstrapCppJob::KEYRING_ERROR_MSG = "Failed to update the pacman keyring." ;
+const QString PacstrapCppJob::MOUNT_ERROR_MSG = "Failed to mount the pacstrap chroot." ;
+const QString PacstrapCppJob::CHROOT_PREP_ERROR_MSG = "Failed to prepare the pacstrap chroot." ;
+const QString PacstrapCppJob::PACMAN_SYNC_ERROR_MSG = "Failed to syncronize packages in the pacstrap chroot." ;
+const QString PacstrapCppJob::UMOUNT_ERROR_MSG = "Failed to unmount the pacstrap chroot." ;
+
+
/* PacstrapCppJob public constructors/destructors */
PacstrapCppJob::PacstrapCppJob(QString job_name , QString status_msg ,
@@ -60,13 +118,15 @@ QString PacstrapCppJob::prettyStatusMessage() const { return thi
Calamares::JobResult PacstrapCppJob::exec()
{
- QVariantList partitions = this->globalStorage->value(GS::PARTITIONS_KEY ).toList() ;
- bool has_isorepo = this->globalStorage->value(GS::HAS_ISOREPO_KEY).toBool() ;
- bool has_internet = this->globalStorage->value(GS::IS_ONLINE_KEY ).toBool() ;
- this->targetDevice = FindTargetDevice(partitions) ;
- this->confFile = (!has_isorepo) ? DEFAULT_CONF_FILENAME :
- (has_internet) ? ONLINE_CONF_FILENAME : OFFLINE_CONF_FILENAME ;
- this->packages = getPackageList() ;
+ QVariantList partitions = this->globalStorage->value(GS::PARTITIONS_KEY ).toList() ;
+ bool has_isorepo = this->globalStorage->value(GS::HAS_ISOREPO_KEY).toBool() ;
+ bool is_online = this->globalStorage->value(GS::IS_ONLINE_KEY ).toBool() ;
+ this->targetDevice = FindTargetDevice(partitions) ;
+ this->confFile = (!has_isorepo) ? DEFAULT_CONF_FILENAME :
+ (is_online ) ? ONLINE_CONF_FILENAME : OFFLINE_CONF_FILENAME ;
+ this->packages = getPackageList() ;
+
+DEBUG_TRACE_EXEC
if (this->localStorage.empty() ) return JobError(CONFIG_ERROR_MSG) ;
if (this->targetDevice.isEmpty() ) return JobError(TARGET_ERROR_MSG) ;
@@ -89,8 +149,6 @@ Calamares::JobResult PacstrapCppJob::exec()
{
QString new_packages = execOutput(list_packages_cmd , LIST_PACKAGES_PROPORTION) ;
this->nPreviousPackages = NPackagesInstalled() ;
-// this->nPendingPackages = (has_isorepo) ? new_packages.count(QChar::LineFeed) :
-// new_packages.count(QChar::LineFeed) * 2 ;
this->nPendingPackages = new_packages.count(QChar::LineFeed) ;
if (this->nPendingPackages > 0)
@@ -183,10 +241,10 @@ DEBUG_TRACE_FINDTARGETDEVICE
qint16 PacstrapCppJob::NPackagesInstalled()
{
- int n_packages_downloaded = PACKAGES_CACHE_DIR .entryList(QDir::Files).count() - 2 ;
- int n_packages_installed = PACKAGES_METADATA_DIR.entryList(QDir::Dirs ).count() - 2 ;
+ int n_downloaded = PACKAGES_CACHE_DIR .entryList(QDir::Files | QDir::NoDotAndDotDot).count() ;
+ int n_installed = PACKAGES_METADATA_DIR.entryList(QDir::Dirs | QDir::NoDotAndDotDot).count() ;
- return (n_packages_downloaded + n_packages_installed) / 2 ;
+ return (n_downloaded + n_installed) / 2 ;
}
Calamares::JobResult PacstrapCppJob::JobError(QString error_msg)
@@ -224,61 +282,3 @@ DEBUG_TRACE_GETTASKCOMPLETION
return completion_percent ;
}
-
-
-/* PacstrapCppJob public class constants */
-
-const QString PacstrapCppJob::BASE_PACKAGES_KEY = "base" ;
-const QString PacstrapCppJob::BOOTLODER_PACKAGES_KEY = "bootloader" ;
-const QString PacstrapCppJob::KERNEL_PACKAGES_KEY = "kernel" ;
-const QString PacstrapCppJob::APPLICATIONS_PACKAGES_KEY = "applications" ;
-const QString PacstrapCppJob::MULTIMEDIA_PACKAGES_KEY = "multimedia" ;
-const QString PacstrapCppJob::NETWORK_PACKAGES_KEY = "network" ;
-const QString PacstrapCppJob::THEMES_PACKAGES_KEY = "themes" ;
-const QString PacstrapCppJob::UTILITIES_PACKAGES_KEY = "utilities" ;
-const QString PacstrapCppJob::XSERVER_PACKAGES_KEY = "x-server" ;
-const QString PacstrapCppJob::MATE_PACKAGES_KEY = "mate" ;
-const QString PacstrapCppJob::LXDE_PACKAGES_KEY = "lxde" ;
-
-
-/* PacstrapCppJob protected class constants */
-
-const QString PacstrapCppJob::MOUNTPOINT = "/tmp/pacstrap" ;
-const char* PacstrapCppJob::BASE_JOB_NAME = "Pacstrap Base C++ Job" ;
-const char* PacstrapCppJob::GUI_JOB_NAME = "Pacstrap Desktop C++ Job" ;
-const char* PacstrapCppJob::BASE_STATUS_MSG = "Installing root filesystem" ;
-const char* PacstrapCppJob::GUI_STATUS_MSG = "Installing graphical desktop environment" ;
-const qreal PacstrapCppJob::BASE_JOB_WEIGHT = 20.0 ; // progress-bar job weight (1.0 normal)
-const qreal PacstrapCppJob::GUI_JOB_WEIGHT = 57.0 ; // progress-bar job weight (1.0 normal)
-const qreal PacstrapCppJob::PACMAN_SYNC_PROPORTION = 0.05 ; // per task progress-bar proportion
-const qreal PacstrapCppJob::LIST_PACKAGES_PROPORTION = 0.05 ; // per task progress-bar proportion
-const qreal PacstrapCppJob::CHROOT_TASK_PROPORTION = 0.9 ; // per task progress-bar proportion
-const QString PacstrapCppJob::PACSTRAP_FMT = "pacstrap -C %1 %2 %3" ;
-const QString PacstrapCppJob::PACSTRAP_ERROR_MSG = "Failed to install packages in chroot." ;
-
-
-/* PacstrapCppJob private class constants */
-
-const QDir PacstrapCppJob::PACKAGES_CACHE_DIR = QDir(MOUNTPOINT + "/var/cache/pacman/pkg") ;
-const QDir PacstrapCppJob::PACKAGES_METADATA_DIR = QDir(MOUNTPOINT + "/var/lib/pacman/local") ;
-const QString PacstrapCppJob::DEFAULT_CONF_FILENAME = "/etc/pacman.conf" ;
-const QString PacstrapCppJob::ONLINE_CONF_FILENAME = "/etc/pacman-online.conf" ;
-const QString PacstrapCppJob::OFFLINE_CONF_FILENAME = "/etc/pacman-offline.conf" ;
-const QString PacstrapCppJob::SYSTEM_EXEC_FMT = "/bin/sh -c \"%1\"" ;
-// const QString PacstrapCppJob::KEYRING_CMD = "pacman -Sy --noconfirm parabola-keyring" ;
-// const QString PacstrapCppJob::KEYRING_CMD = "pacman -Sy --noconfirm parabola-keyring && \
-// pacman-key --populate parabola && \
-// pacman-key --refresh-keys " ;
-const QString PacstrapCppJob::MOUNT_FMT = "mkdir %2 2> /dev/null || true && mount %1 %2" ;
-const QString PacstrapCppJob::CHROOT_PREP_FMT = "mkdir -m 0755 -p {%1,%2}" ;
-const QString PacstrapCppJob::PACKAGES_SYNC_FMT = "pacman --print --config %1 --root %2 -Sy" ;
-const QString PacstrapCppJob::LIST_PACKAGES_FMT = "pacman --print --config %1 --root %2 -S %3" ;
-const QString PacstrapCppJob::UMOUNT_FMT = "umount %1" ;
-const QString PacstrapCppJob::CONFIG_ERROR_MSG = "Invalid configuration map." ;
-const QString PacstrapCppJob::TARGET_ERROR_MSG = "Target device for root filesystem is unspecified." ;
-const QString PacstrapCppJob::CONFFILE_ERROR_MSG = "Pacman configuration not found: '%1'." ;
-// const QString PacstrapCppJob::KEYRING_ERROR_MSG = "Failed to update the pacman keyring." ;
-const QString PacstrapCppJob::MOUNT_ERROR_MSG = "Failed to mount the pacstrap chroot." ;
-const QString PacstrapCppJob::CHROOT_PREP_ERROR_MSG = "Failed to prepare the pacstrap chroot." ;
-const QString PacstrapCppJob::PACMAN_SYNC_ERROR_MSG = "Failed to syncronize packages in the pacstrap chroot." ;
-const QString PacstrapCppJob::UMOUNT_ERROR_MSG = "Failed to unmount the pacstrap chroot." ;
diff --git a/src/libcalamares/PacstrapCppJob.h b/src/libcalamares/PacstrapCppJob.h
index 4a05a32e8..6efc2f71f 100644
--- a/src/libcalamares/PacstrapCppJob.h
+++ b/src/libcalamares/PacstrapCppJob.h
@@ -140,13 +140,21 @@ private:
} ;
-/* debug */
-
-
-#define DEBUG_TRACE_EXECWITHPROGRESS \
- cDebug(LOGVERBOSE) << "[PACSTRAP]: status=" , status ; \
- cDebug(LOGVERBOSE) << "[PACSTRAP]: stdout=" , stdout ; \
- cDebug(LOGVERBOSE) << "[PACSTRAP]: stderr=" , stderr ;
+/* DEBUG */
+
+#define DEBUG_TRACE_EXEC cDebug() << "[PACSTRAP]: exec()" \
+ << " job_name=" << this->jobName \
+ << " has_isorepo=" << has_isorepo \
+ << " is_online=" << is_online \
+ << " targetDevice=" << this->targetDevice \
+ << " confFile=" << this->confFile \
+ << " n_packages=" << this->packages.count() ;
+
+#define DEBUG_TRACE_EXECWITHPROGRESS \
+ cDebug() << "[PACSTRAP]: shell command exited=" << command_line ; \
+ cDebug() << "[PACSTRAP]: status=" << status ; \
+ cDebug(LOGVERBOSE) << "[PACSTRAP]: stdout=" << stdout ; \
+ cDebug(LOGVERBOSE) << "[PACSTRAP]: stderr=" << stderr ;
#define DEBUG_TRACE_FINDTARGETDEVICE if (!target_device.isEmpty()) \
cDebug() << "[PACSTRAP]: mounting target_device: " << target_device ;
@@ -159,7 +167,8 @@ private:
#define DEBUG_TRACE_GETTASKCOMPLETION cDebug() << "[PACSTRAP]: " << \
"this->nPreviousPackages=" << this->nPreviousPackages << \
" NPackagesInstalled()=" << NPackagesInstalled() << \
- "\nn_new_packages=" << (int)n_new_packages << \
+ "\n " << \
+ "n_new_packages=" << (int)n_new_packages << \
" this->nPendingPackages=" << this->nPendingPackages << \
" completion_percent=" << completion_percent ;
diff --git a/src/modules/users/CreateUserJob.cpp b/src/modules/users/CreateUserJob.cpp
index 7a07bfb5c..9a79623c7 100644
--- a/src/modules/users/CreateUserJob.cpp
+++ b/src/modules/users/CreateUserJob.cpp
@@ -82,25 +82,23 @@ CreateUserJob::exec()
else
sudoersFilename += QStringLiteral( "10-parabola-installer" );
*/
- QMap<QString, QVariant> brandingMap = gs->value( "branding" ).toMap();
- QString distroName = brandingMap.value( "shortProductName" ).toString();
- distroName = distroName.toLower().replace( QRegExp( "[^a-z0-9]" ), "-" );
- QString sudoersFilename = QString( "etc/sudoers.d/10-%1-installer" ).arg( distroName );
- QFileInfo sudoersFi( destDir.absoluteFilePath( sudoersFilename ) );
+ QMap<QString, QVariant> brandingMap = gs->value( "branding" ).toMap();
+ QString distroName = brandingMap.value( "shortProductName" ).toString();
+ distroName = distroName.toLower().replace( QRegExp( "[^a-z0-9]" ), "-" );
+ QString sudoersFilename = QString( "etc/sudoers.d/10-%1-installer" ).arg( distroName );
+ QFileInfo sudoersFi( destDir.absoluteFilePath( sudoersFilename ) );
- cDebug() << QString("[CREATEUSER]: preparing sudoers") ;
+ cDebug() << QString("[CREATEUSER]: preparing sudoers") ;
-cDebug() << QString("[CREATEUSER]: CreateUserJob::exec() distroName=%1").arg(distroName);
-cDebug() << QString("[CREATEUSER]: CreateUserJob::exec() sudoersFilename=%1").arg(sudoersFilename);
-cDebug() << QString("[CREATEUSER]: CreateUserJob::exec() sudoersFi=%1").arg(sudoersFi.filePath());
-cDebug() << QString("[CREATEUSER]: CreateUserJob::exec() isAbsolute=%2").arg(sudoersFi.isAbsolute());
-cDebug() << QString("[CREATEUSER]: CreateUserJob::exec() isWritable=%3").arg(sudoersFi.isWritable());
QString etcdir = gs->value( "rootMountPoint" ).toString() + "/etc" ;
-cDebug() << QString("[CREATEUSER]: CreateUserJob::exec() ls -l %1").arg(etcdir) ;
- QProcess::execute( QString( "/bin/sh -c \"ls -l %1\"" ).arg( etcdir ) );
-cDebug() << QString("[CREATEUSER]: CreateUserJob::exec() ls -l %1").arg(sudoersFi.filePath()) ;
- QProcess::execute( QString( "/bin/sh -c \"ls -l %1\"" ).arg( sudoersFi.filePath() ) );
-
+cDebug() << QString("[CREATEUSER]: CreateUserJob::exec() distroName=%1" ).arg(distroName);
+cDebug() << QString("[CREATEUSER]: CreateUserJob::exec() sudoersFilename=%1").arg(sudoersFilename);
+cDebug() << QString("[CREATEUSER]: CreateUserJob::exec() sudoersFi=%1" ).arg(sudoersFi.filePath());
+cDebug() << QString("[CREATEUSER]: CreateUserJob::exec() isAbsolute=%1" ).arg(sudoersFi.isAbsolute());
+cDebug() << QString("[CREATEUSER]: CreateUserJob::exec() exists=%1" ).arg(sudoersFi.absoluteDir().exists());
+cDebug() << QString("[CREATEUSER]: CreateUserJob::exec() isWritable=%1" ).arg(sudoersFi.isWritable());
+cDebug() << QString("[CREATEUSER]: CreateUserJob::exec() ls -l %1").arg(etcdir) ; QProcess::execute( QString( "/bin/sh -c \"ls -l %1\"" ).arg( etcdir ) ) ;
+cDebug() << QString("[CREATEUSER]: CreateUserJob::exec() ls -l %1").arg(sudoersFi.filePath()) ; QProcess::execute( QString( "/bin/sh -c \"ls -l %1\"" ).arg( sudoersFi.filePath() ) ) ;
if ( !sudoersFi.absoluteDir().exists() )
return Calamares::JobResult::error( tr( "Sudoers dir is not writable." ) );
@@ -229,7 +227,7 @@ cDebug() << QString("[CREATEUSER]: CreateUserJob::exec() ls -al /home/%1/ - targ
/* parabola-specific configuration */
// Calamares::GlobalStorage* globalStorage = Calamares::JobQueue::instance()->globalStorage();
- QString default_desktop = gs->value("default-desktop").toString();
+ QString default_desktop = gs->value(GS::DESKTOP_PACKAGES_KEY).toString();
/*
if [ -x /usr/bin/setxkbmap ]; then
echo "setxkbmap $(cat /.codecheck | grep XKBMAP= | cut -d '=' -f 2)" >> /home/${user#*=}/.bashrc
diff --git a/src/modules/welcome/checker/RequirementsChecker.cpp b/src/modules/welcome/checker/RequirementsChecker.cpp
index ab36aef4f..751b411a4 100644
--- a/src/modules/welcome/checker/RequirementsChecker.cpp
+++ b/src/modules/welcome/checker/RequirementsChecker.cpp
@@ -279,15 +279,10 @@ RequirementsChecker::setConfigurationMap( const QVariantMap& configurationMap )
bool has_isorepo = QDir("/isorepo").exists("isorepo.db.tar.gz");
globalStorage->insert( GS::HAS_ISOREPO_KEY, has_isorepo );
if ( has_isorepo )
- {
- m_entriesToCheck.removeAll("internet") ;
m_entriesToRequire.removeAll("internet") ;
- }
else
- {
- m_entriesToCheck.append("internet") ;
m_entriesToRequire.append("internet") ;
- }
+ m_entriesToCheck.append("internet") ;
m_entriesToCheck.removeDuplicates() ;
m_entriesToRequire.removeDuplicates() ;
}