diff options
author | V3n3RiX <venerix@rogentos.ro> | 2015-06-11 15:39:49 +0100 |
---|---|---|
committer | V3n3RiX <venerix@rogentos.ro> | 2015-06-11 15:39:49 +0100 |
commit | ec268627ad2cd8390ab7c6a203c31cc624476363 (patch) | |
tree | aebf0c80be7eb8d7790762903d10b49252bf9afb /app-admin/calamares | |
parent | cde34b808013d6b2f265aa72daed957b3a52b14b (diff) |
massive overhaul of calamares ebuild, ready to be upstreamed to gentoo
Diffstat (limited to 'app-admin/calamares')
3 files changed, 482 insertions, 36 deletions
diff --git a/app-admin/calamares/calamares-999.ebuild b/app-admin/calamares/calamares-999.ebuild index 4373bc4c..6cf48d0e 100644 --- a/app-admin/calamares/calamares-999.ebuild +++ b/app-admin/calamares/calamares-999.ebuild @@ -7,8 +7,8 @@ PYTHON_COMPAT=( python3_3 ) inherit eutils cmake-utils python-r1 git-2 -EGIT_BRANCH="kogaion" -EGIT_COMMIT="4aa0f9e1f24bf4700d4998627893344a2511051c" +EGIT_BRANCH="master" +EGIT_COMMIT="01cf42c2f9112687bc3928eeabbb426e7de84877" EGIT_REPO_URI="https://github.com/Rogentos/calamares.git" DESCRIPTION="Distribution-independent installer framework" @@ -17,12 +17,15 @@ HOMEPAGE="http://calamares.io" LICENSE="GPL-3" SLOT="0" KEYWORDS="~amd64 ~x86" -IUSE="" +IUSE="+python" S="${WORKDIR}/${PN}-${PV}" DEPEND="dev-vcs/git - >=dev-libs/boost-1.55.0-r2[python_targets_python3_3] + python? ( + >=dev-lang/python-3.3.5-r1:3.3 + >=dev-libs/boost-1.55.0-r2[python_targets_python3_3] + ) >=dev-qt/designer-5.4.0:5 >=dev-qt/linguist-tools-5.4.0:5 >=dev-qt/qtconcurrent-5.4.0:5 @@ -42,38 +45,7 @@ DEPEND="dev-vcs/git >=dev-cpp/yaml-cpp-0.5.1 >=kde-frameworks/extra-cmake-modules-5.10.0" -RDEPEND=">=dev-libs/boost-1.55.0-r2[python_targets_python3_3] - >=dev-qt/designer-5.4.0:5 - >=dev-qt/linguist-tools-5.4.0:5 - >=dev-qt/qtconcurrent-5.4.0:5 - >=dev-qt/qtcore-5.4.0:5 - >=dev-qt/qtdbus-5.4.0:5 - >=dev-qt/qtdeclarative-5.4.0:5 - >=dev-qt/qtgui-5.4.0:5 - >=dev-qt/qtnetwork-5.4.0:5 - >=dev-qt/qtopengl-5.4.0:5 - >=dev-qt/qtprintsupport-5.4.0:5 - >=dev-qt/qtscript-5.4.0:5 - >=dev-qt/qtsvg-5.4.0:5 - >=dev-qt/qttest-5.4.0:5 - >=dev-qt/qtwidgets-5.4.0:5 - >=dev-qt/qtxml-5.4.0:5 - >=dev-qt/qtxmlpatterns-5.4.0:5 - >=dev-cpp/yaml-cpp-0.5.1 - >=dev-libs/libatasmart-0.19 - >=kde-frameworks/kconfig-5.10.0 - >=kde-frameworks/ki18n-5.10.0 - >=kde-frameworks/kcoreaddons-5.10.0 - >=kde-frameworks/solid-5.10.0 - >=net-misc/rsync-3.1[xattr] - >=sys-block/parted-3.0 - >=sys-apps/gptfdisk-0.8.10 - >=sys-apps/dmidecode-2.12-r1 - >=sys-fs/squashfs-tools-4.3:0[xattr] - >=sys-power/upower-0.99.0-r1 - sys-auth/polkit-qt[qt5] - sys-fs/udisks:2[systemd] - virtual/udev[systemd]" +RDEPEND=">=app-misc/calamares-runtime-2.0[branding]" src_prepare() { # by default, python support is optional and calamares builds fine if is not found @@ -86,6 +58,12 @@ src_prepare() { # no longer needed, but keep it around, just in case # default interpretor must be set to python3.3 for calamares to find required libs + # debug window causes a build failure with GCC 4.8.4 so disable it + epatch "${FILESDIR}/${PN}-disable-debug-window.patch" + + # configure calamares with Kogaion specific paths, binary names && system defaults + epatch "${FILESDIR}/${PN}-kogaion-system-defaults.patch" + # If qtchooser is installed, it may break the build, because moc,rcc and uic binaries for wrong qt version may be used. # Setting QT_SELECT environment variable will enforce correct binaries (fix taken from vlc ebuild) export QT_SELECT=qt5 diff --git a/app-admin/calamares/files/calamares-disable-debug-window.patch b/app-admin/calamares/files/calamares-disable-debug-window.patch new file mode 100644 index 00000000..13309b2c --- /dev/null +++ b/app-admin/calamares/files/calamares-disable-debug-window.patch @@ -0,0 +1,342 @@ +diff --git a/src/calamares/CalamaresWindow.cpp b/src/calamares/CalamaresWindow.cpp +index c9f4df3..873f026 100644 +--- a/src/calamares/CalamaresWindow.cpp ++++ b/src/calamares/CalamaresWindow.cpp +@@ -22,9 +22,7 @@ + #include "progresstree/ProgressTreeView.h" + #include "utils/CalamaresUtilsGui.h" + #include "utils/Logger.h" +-#include "utils/DebugWindow.h" + #include "utils/Retranslator.h" +-#include "Settings.h" + #include "Branding.h" + + #include <QApplication> +@@ -35,7 +33,6 @@ + + CalamaresWindow::CalamaresWindow( QWidget* parent ) + : QWidget( parent ) +- , m_debugWindow( nullptr ) + { + // Hide close button + setWindowFlags( Qt::Window | Qt::WindowTitleHint | Qt::CustomizeWindowHint ); +@@ -90,40 +87,6 @@ CalamaresWindow::CalamaresWindow( QWidget* parent ) + ProgressTreeView* tv = new ProgressTreeView( sideBox ); + sideLayout->addWidget( tv ); + tv->setFocusPolicy( Qt::NoFocus ); +- +- if ( Calamares::Settings::instance()->debugMode() ) +- { +- QPushButton* debugWindowBtn = new QPushButton; +- CALAMARES_RETRANSLATE( +- debugWindowBtn->setText( tr( "Show debug information" ) ); +- ) +- sideLayout->addWidget( debugWindowBtn ); +- debugWindowBtn->setFlat( true ); +- debugWindowBtn->setCheckable( true ); +- connect( debugWindowBtn, &QPushButton::clicked, +- [ this, debugWindowBtn ]( bool checked ) +- { +- if ( checked ) +- { +- m_debugWindow = new Calamares::DebugWindow(); +- m_debugWindow->show(); +- connect( m_debugWindow, &Calamares::DebugWindow::closed, +- [ this, debugWindowBtn ] +- { +- m_debugWindow->deleteLater(); +- debugWindowBtn->setChecked( false ); +- } ); +- } +- else +- { +- if ( m_debugWindow ) +- { +- m_debugWindow->deleteLater(); +- } +- } +- } ); +- } +- + CalamaresUtils::unmarginLayout( sideLayout ); + CalamaresUtils::unmarginLayout( mainLayout ); + +diff --git a/src/calamares/CalamaresWindow.h b/src/calamares/CalamaresWindow.h +index 6ea9602..763c11f 100644 +--- a/src/calamares/CalamaresWindow.h ++++ b/src/calamares/CalamaresWindow.h +@@ -19,14 +19,8 @@ + #ifndef CALAMARESWINDOW_H + #define CALAMARESWINDOW_H + +-#include <QPointer> + #include <QWidget> + +-namespace Calamares +-{ +-class DebugWindow; +-} +- + class CalamaresWindow : public QWidget + { + Q_OBJECT +@@ -34,8 +28,6 @@ public: + CalamaresWindow( QWidget* parent = nullptr ); + virtual ~CalamaresWindow() {} + +-private: +- QPointer< Calamares::DebugWindow > m_debugWindow; + }; + + #endif //CALAMARESWINDOW_H +diff --git a/src/libcalamaresui/CMakeLists.txt b/src/libcalamaresui/CMakeLists.txt +index df36f3b..49ccb7f 100644 +--- a/src/libcalamaresui/CMakeLists.txt ++++ b/src/libcalamaresui/CMakeLists.txt +@@ -7,7 +7,6 @@ list( APPEND ${CALAMARESUI_LIBRARY_TARGET}_SOURCES + modulesystem/ViewModule.cpp + + utils/CalamaresUtilsGui.cpp +- utils/DebugWindow.cpp + utils/ImageRegistry.cpp + utils/YamlUtils.cpp + +@@ -28,7 +27,6 @@ list( APPEND ${CALAMARESUI_LIBRARY_TARGET}_SOURCES + ) + + list( APPEND ${CALAMARESUI_LIBRARY_TARGET}_UI +- utils/DebugWindow.ui + ) + + if( WITH_PYTHON ) +diff --git a/src/libcalamaresui/utils/DebugWindow.cpp b/src/libcalamaresui/utils/DebugWindow.cpp +deleted file mode 100644 +index d94a539..0000000 +--- a/src/libcalamaresui/utils/DebugWindow.cpp ++++ /dev/null +@@ -1,107 +0,0 @@ +-/* === This file is part of Calamares - <http://github.com/calamares> === +- * +- * Copyright 2015, Teo Mrnjavac <teo@kde.org> +- * +- * Calamares is free software: you can redistribute it and/or modify +- * it under the terms of the GNU General Public License as published by +- * the Free Software Foundation, either version 3 of the License, or +- * (at your option) any later version. +- * +- * Calamares is distributed in the hope that it will be useful, +- * but WITHOUT ANY WARRANTY; without even the implied warranty of +- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +- * GNU General Public License for more details. +- * +- * You should have received a copy of the GNU General Public License +- * along with Calamares. If not, see <http://www.gnu.org/licenses/>. +- */ +- +-#include "DebugWindow.h" +-#include "utils/Retranslator.h" +-#include "utils/qjsonmodel.h" +-#include "JobQueue.h" +-#include "Job.h" +-#include "GlobalStorage.h" +-#include "modulesystem/ModuleManager.h" +-#include "modulesystem/Module.h" +- +-#include <QJsonDocument> +-#include <QSplitter> +-#include <QStringListModel> +-#include <QTreeView> +- +-namespace Calamares { +- +-DebugWindow::DebugWindow() +- : QWidget( nullptr ) +-{ +- setupUi( this ); +- +- // GlobalStorage page +- QJsonModel* jsonModel = new QJsonModel( this ); +- +- globalStorageView->setModel( jsonModel ); +- GlobalStorage* gs = JobQueue::instance()->globalStorage(); +- +- connect( gs, &GlobalStorage::changed, [ = ] +- { +- jsonModel->loadJson( QJsonDocument::fromVariant( gs->m ).toJson() ); +- globalStorageView->expandAll(); +- } ); +- jsonModel->loadJson( QJsonDocument::fromVariant( gs->m ).toJson() ); +- globalStorageView->expandAll(); +- +- // JobQueue page +- jobQueueText->setReadOnly( true ); +- connect( JobQueue::instance(), &JobQueue::queueChanged, +- [ this ]( const QList< Calamares::job_ptr >& jobs ) +- { +- QStringList text; +- foreach( auto job, jobs ) +- { +- text.append( job->prettyName() ); +- } +- +- jobQueueText->setText( text.join( '\n' ) ); +- } ); +- +- // Modules page +- QSplitter* splitter = new QSplitter( modulesTab ); +- modulesTab->layout()->addWidget( splitter ); +- splitter->addWidget( modulesListView ); +- splitter->addWidget( moduleConfigView ); +- +- QStringListModel* modulesModel = new QStringListModel( ModuleManager::instance()->availableModules() ); +- modulesListView->setModel( modulesModel ); +- modulesListView->setSelectionMode( QAbstractItemView::SingleSelection ); +- +- QJsonModel* moduleConfigModel = new QJsonModel( this ); +- moduleConfigView->setModel( moduleConfigModel ); +- +- connect( modulesListView->selectionModel(), &QItemSelectionModel::selectionChanged, +- [ this, moduleConfigModel ] +- { +- QString moduleName = modulesListView->currentIndex().data().toString(); +- Module* module = ModuleManager::instance()->module( moduleName ); +- if ( module ) +- { +- moduleConfigModel->loadJson( QJsonDocument::fromVariant( module->configurationMap() ).toJson() ); +- moduleConfigView->expandAll(); +- } +- } ); +- +- CALAMARES_RETRANSLATE( +- retranslateUi( this ); +- setWindowTitle( tr( "Debug information" ) ); +- ) +-} +- +- +-void +-DebugWindow::closeEvent( QCloseEvent* e ) +-{ +- Q_UNUSED( e ) +- emit closed(); +-} +- +-} // namespace Calamares +diff --git a/src/libcalamaresui/utils/DebugWindow.h b/src/libcalamaresui/utils/DebugWindow.h +deleted file mode 100644 +index ee06199..0000000 +--- a/src/libcalamaresui/utils/DebugWindow.h ++++ /dev/null +@@ -1,45 +0,0 @@ +-/* === This file is part of Calamares - <http://github.com/calamares> === +- * +- * Copyright 2015, Teo Mrnjavac <teo@kde.org> +- * +- * Calamares is free software: you can redistribute it and/or modify +- * it under the terms of the GNU General Public License as published by +- * the Free Software Foundation, either version 3 of the License, or +- * (at your option) any later version. +- * +- * Calamares is distributed in the hope that it will be useful, +- * but WITHOUT ANY WARRANTY; without even the implied warranty of +- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +- * GNU General Public License for more details. +- * +- * You should have received a copy of the GNU General Public License +- * along with Calamares. If not, see <http://www.gnu.org/licenses/>. +- */ +- +-#ifndef CALAMARES_DEBUGWINDOW_H +-#define CALAMARES_DEBUGWINDOW_H +- +-#include "ui_DebugWindow.h" +- +-#include <QWidget> +- +-namespace Calamares { +- +-class DebugWindow : public QWidget, private Ui::DebugWindow +-{ +- Q_OBJECT +- +-public: +- explicit DebugWindow(); +- +-signals: +- void closed(); +- +-protected: +- void closeEvent( QCloseEvent* e ) override; +- +-}; +- +- +-} // namespace Calamares +-#endif // CALAMARES_DEBUGWINDOW_H +diff --git a/src/libcalamaresui/utils/DebugWindow.ui b/src/libcalamaresui/utils/DebugWindow.ui +deleted file mode 100644 +index a445e8a..0000000 +--- a/src/libcalamaresui/utils/DebugWindow.ui ++++ /dev/null +@@ -1,61 +0,0 @@ +-<?xml version="1.0" encoding="UTF-8"?> +-<ui version="4.0"> +- <class>Calamares::DebugWindow</class> +- <widget class="QWidget" name="Calamares::DebugWindow"> +- <property name="geometry"> +- <rect> +- <x>0</x> +- <y>0</y> +- <width>632</width> +- <height>497</height> +- </rect> +- </property> +- <property name="windowTitle"> +- <string>Form</string> +- </property> +- <layout class="QVBoxLayout" name="verticalLayout"> +- <item> +- <widget class="QTabWidget" name="tabWidget"> +- <property name="currentIndex"> +- <number>0</number> +- </property> +- <widget class="QWidget" name="globalStorageTab"> +- <attribute name="title"> +- <string>GlobalStorage</string> +- </attribute> +- <layout class="QVBoxLayout" name="verticalLayout_2"> +- <item> +- <widget class="QTreeView" name="globalStorageView"/> +- </item> +- </layout> +- </widget> +- <widget class="QWidget" name="jobQueueTab"> +- <attribute name="title"> +- <string>JobQueue</string> +- </attribute> +- <layout class="QVBoxLayout" name="verticalLayout_3"> +- <item> +- <widget class="QTextEdit" name="jobQueueText"/> +- </item> +- </layout> +- </widget> +- <widget class="QWidget" name="modulesTab"> +- <attribute name="title"> +- <string>Modules</string> +- </attribute> +- <layout class="QHBoxLayout" name="horizontalLayout"> +- <item> +- <widget class="QListView" name="modulesListView"/> +- </item> +- <item> +- <widget class="QTreeView" name="moduleConfigView"/> +- </item> +- </layout> +- </widget> +- </widget> +- </item> +- </layout> +- </widget> +- <resources/> +- <connections/> +-</ui> diff --git a/app-admin/calamares/files/calamares-kogaion-system-defaults.patch b/app-admin/calamares/files/calamares-kogaion-system-defaults.patch new file mode 100644 index 00000000..7d2d0bee --- /dev/null +++ b/app-admin/calamares/files/calamares-kogaion-system-defaults.patch @@ -0,0 +1,126 @@ +diff -Nur a/calamares.desktop b/calamares.desktop +--- a/calamares.desktop 2015-06-11 14:31:51.840916810 +0100 ++++ b/calamares.desktop 2015-06-11 14:35:11.936914561 +0100 +@@ -2,10 +2,10 @@ + Type=Application + Version=1.0 + Name=Calamares +-GenericName=System Installer ++GenericName=Kogaion Linux System Installer + TryExec=calamares + Exec=pkexec /usr/bin/calamares +-Comment=Calamares — System Installer ++Comment=Calamares — Kogaion Linux System Installer + Icon=calamares + Terminal=false + StartupNotify=false +diff -Nur a/settings.conf b/settings.conf +--- a/settings.conf 2015-06-11 14:31:51.855916810 +0100 ++++ b/settings.conf 2015-06-11 14:35:52.658914103 +0100 +@@ -4,7 +4,7 @@ + # Modules can be job modules (with different interfaces) and QtWidgets view modules. + # They could all be placed in a number of different paths. + # "local" is LIBDIR/calamares/modules with settings in SHARE/calamares/modules +-modules-search: [ local, /path/to/dir/with/more/modules ] ++modules-search: [ local ] + + # We define the module names in the order they should show up (QtWidget view modules, + # with one or more pages) OR be executed if enqueued (all other modules). +@@ -38,8 +38,6 @@ + - locale + - keyboard + - localecfg +-- initcpiocfg +-- initcpio + - users + - displaymanager + - networkcfg +@@ -65,7 +63,7 @@ + # paths relative to the current directory. + # Only the name of the branding component (directory) should be specified here, Calamares + # then takes care of finding it and loading the contents. +-branding: default ++branding: kogaion_branding + + # If this is set to true, Calamares will show an "are you sure?" prompt right before the + # install phase, i.e. at the point of no return. If it's false, no prompt is shown. +diff -Nur a/src/modules/bootloader/bootloader.conf b/src/modules/bootloader/bootloader.conf +--- a/src/modules/bootloader/bootloader.conf 2015-06-11 14:31:51.861916810 +0100 ++++ b/src/modules/bootloader/bootloader.conf 2015-06-11 14:37:03.310913309 +0100 +@@ -5,9 +5,8 @@ + + # systemd-boot configuration files settings, set kernel and initramfs file names + # and amount of time before default selection boots +-kernel: "/vmlinuz-linux" +-img: "/initramfs-linux.img" +-fallback: "/initramfs-linux-fallback.img" ++kernel: "/bzImage" ++img: "/Initrd" + timeout: "10" + # Optionally set the menu entry name and kernel name to use in systemd-boot. + # If not specified here, these settings will be taken from branding.desc. +@@ -17,8 +16,8 @@ + + # GRUB 2 binary names and boot directory + # Some distributions (e.g. Fedora) use grub2-* (resp. /boot/grub2/) names. +-grubInstall: "grub-install" +-grubMkconfig: "grub-mkconfig" ++grubInstall: "grub2-install" ++grubMkconfig: "grub2-mkconfig" + grubCfg: "/boot/grub/grub.cfg" + # Optionally set the --bootloader-id to use for EFI. If not set, this defaults + # to the bootloaderEntryName from branding.desc with problematic characters +diff -Nur a/src/modules/keyboard/keyboard.conf b/src/modules/keyboard/keyboard.conf +--- a/src/modules/keyboard/keyboard.conf 2015-06-11 14:31:51.863916810 +0100 ++++ b/src/modules/keyboard/keyboard.conf 2015-06-11 14:37:41.437912881 +0100 +@@ -2,7 +2,7 @@ + # The name of the file to write X11 keyboard settings to + # The default value is the name used by upstream systemd-localed. + # Relative paths are assumed to be relative to /etc/X11/xorg.conf.d +-xOrgConfFileName: "/etc/X11/xorg.conf.d/00-keyboard.conf" ++xOrgConfFileName: "/usr/share/X11/xorg.conf.d/00-keyboard.conf" + # The path to search for keymaps converted from X11 to kbd format + # Leave this empty if the setting does not make sense on your distribution. +-convertedKeymapPath: "/lib/kbd/keymaps/xkb" ++convertedKeymapPath: "/usr/share/keymaps" +diff -Nur a/src/modules/packages/packages.conf b/src/modules/packages/packages.conf +--- a/src/modules/packages/packages.conf 2015-06-11 14:31:51.871916810 +0100 ++++ b/src/modules/packages/packages.conf 2015-06-11 14:38:00.537912666 +0100 +@@ -11,7 +11,7 @@ + # - portage - Gentoo package manager + # - entropy - Sabayon package manager + # +-backend: packagekit ++backend: entropy + # + # List of maps with package operations such as install or remove. + # Distro developers can provide a list of packages to remove +diff -Nur a/src/modules/removeuser/removeuser.conf b/src/modules/removeuser/removeuser.conf +--- a/src/modules/removeuser/removeuser.conf 2015-06-11 14:31:51.875916810 +0100 ++++ b/src/modules/removeuser/removeuser.conf 2015-06-11 14:38:13.451912521 +0100 +@@ -1,2 +1,2 @@ + --- +-username: live ++username: kogaionuser +diff -Nur a/src/modules/unpackfs/unpackfs.conf b/src/modules/unpackfs/unpackfs.conf +--- a/src/modules/unpackfs/unpackfs.conf 2015-06-11 14:31:51.876916810 +0100 ++++ b/src/modules/unpackfs/unpackfs.conf 2015-06-11 14:38:46.549912149 +0100 +@@ -1,8 +1,5 @@ + --- + unpack: +- - source: "/path/to/filesystem.img" +- sourcefs: "ext4" +- destination: "" +- - source: "/path/to/another/filesystem.sqfs" ++ - source: "/livecd.squashfs" + sourcefs: "squashfs" + destination: "" +diff -Nur a/src/modules/users/users.conf b/src/modules/users/users.conf +--- a/src/modules/users/users.conf 2015-06-11 14:31:51.892916809 +0100 ++++ b/src/modules/users/users.conf 2015-06-11 14:39:01.648911979 +0100 +@@ -8,5 +8,4 @@ + - wheel + - audio + autologinGroup: autologin +-sudoersGroup: wheel + setRootPassword: true |