summaryrefslogtreecommitdiff
path: root/app-admin
diff options
context:
space:
mode:
authorV3n3RiX <venerix@rogentos.ro>2015-06-11 15:39:49 +0100
committerV3n3RiX <venerix@rogentos.ro>2015-06-11 15:39:49 +0100
commitec268627ad2cd8390ab7c6a203c31cc624476363 (patch)
treeaebf0c80be7eb8d7790762903d10b49252bf9afb /app-admin
parentcde34b808013d6b2f265aa72daed957b3a52b14b (diff)
massive overhaul of calamares ebuild, ready to be upstreamed to gentoo
Diffstat (limited to 'app-admin')
-rw-r--r--app-admin/calamares/calamares-999.ebuild50
-rw-r--r--app-admin/calamares/files/calamares-disable-debug-window.patch342
-rw-r--r--app-admin/calamares/files/calamares-kogaion-system-defaults.patch126
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