Merge branch 'master' of https://github.com/calamares/calamares into development

This commit is contained in:
Philip 2017-11-14 10:44:33 -05:00
commit 5cbc2273de
10 changed files with 179 additions and 35 deletions

26
AUTHORS
View File

@ -1,2 +1,24 @@
Teo Mrnjavac <teo@kde.org>
Adriaan de Groot <groot@kde.org>
# MAINTAINER
Teo Mrnjavac <teo@kde.org> (maintainer -2017)
Adriaan de Groot <groot@kde.org> (maintainer 2017-)
# CONTRIBUTORS
Alf Gaida
Allen Welkie
Andrius Štikonas
Bernhard Landauer
Bezzy1999
bill-auger
crispg72
demmm
Gabriel Craciunescu
Kai Dohmen
Kevin Kofler
Kyle Robertze
Lisa Vitolo
n3rdopolis
Philip Müller
Ramon Buldó
Rohan Garg

View File

@ -113,12 +113,22 @@ set( QT_VERSION 5.6.0 )
find_package( Qt5 ${QT_VERSION} CONFIG REQUIRED Core Gui Widgets LinguistTools Svg Quick QuickWidgets )
find_package( YAMLCPP 0.5.1 REQUIRED )
find_package( PolkitQt5-1 REQUIRED )
find_package(ECM 5.18 NO_MODULE)
if( ECM_FOUND )
set(CMAKE_MODULE_PATH ${ECM_MODULE_PATH} ${CMAKE_MODULE_PATH})
endif()
option( INSTALL_CONFIG "Install configuration files" ON )
option( WITH_PYTHON "Enable Python modules API (requires Boost.Python)." ON )
option( WITH_PYTHONQT "Enable next generation Python modules API (experimental, requires PythonQt)." OFF )
option( WITH_KF5Crash "Enable crash reporting with KCrash." ON )
option( BUILD_TESTING "Build the testing tree." ON )
find_package( KF5 COMPONENTS CoreAddons Crash )
if( NOT KF5Crash_FOUND )
set( WITH_KF5Crash OFF )
endif()
if( BUILD_TESTING )
enable_testing()
endif ()
@ -277,6 +287,7 @@ add_subdirectory( src )
add_feature_info(Python ${WITH_PYTHON} "Python job modules")
add_feature_info(PythonQt ${WITH_PYTHONQT} "Python view modules")
add_feature_info(Config ${INSTALL_CONFIG} "Install Calamares configuration")
add_feature_info(KCrash ${WITH_KF5Crash} "Crash dumps via KCrash")
feature_summary(WHAT ALL)

View File

@ -9,12 +9,19 @@ if(NOT PYTHONLIBS_FOUND)
message(FATAL_ERROR "error: Python is required to build PythonQt")
endif()
# Cut X.Y[.Z] down to just X.Y
string(REGEX REPLACE
"^([0-9][0-9]*)\.([0-9][0-9]*)"
"\\1"
PYTHONLIBS_MAJMIN
"\\1.\\2@"
_PYTHONLIBS_MAJMIN
${PYTHONLIBS_VERSION_STRING}
)
string(REGEX REPLACE
"@.*"
""
PYTHONLIBS_MAJMIN
${_PYTHONLIBS_MAJMIN}
)
if(NOT EXISTS "${PYTHONQT_INSTALL_DIR}")
find_path(PYTHONQT_INSTALL_DIR include/PythonQt/PythonQt.h DOC "Directory where PythonQt was installed.")
@ -30,7 +37,7 @@ find_path(PYTHONQT_INCLUDE_DIR PythonQt.h
DOC "Path to the PythonQt include directory")
if ( NOT PythonQt_FIND_QUIETLY )
message( STATUS "Searching for PythonQt (Python ${PYTHONLIBS_MAJMIN}) .." )
message( STATUS "Searching for PythonQt (PythonLibs ${PYTHONLIBS_MAJMIN}) .." )
if ( PYTHONQT_INCLUDE_DIR )
message( STATUS " .. found include ${PYTHONQT_INCLUDE_DIR}" )
endif()
@ -99,9 +106,13 @@ if(PYTHONQT_QTALL_LIBRARY_DEBUG)
endif()
if ( NOT PythonQt_FIND_QUIETLY )
if ( PYTHONQT_LIBRARY )
message( STATUS " .. found library ${PYTHONQT_LIBRARY}" )
endif()
if ( PYTHONQT_QTALL_LIBRARY )
message( STATUS " .. found qtall ${PYTHONQT_QTALL_LIBRARY}" )
endif()
endif()
mark_as_advanced(PYTHONQT_INSTALL_DIR)

View File

@ -19,16 +19,15 @@ Main:
* yaml-cpp >= 0.5.1
* Python >= 3.3
* Boost.Python >= 1.55.0
* dmidecode
* extra-cmake-modules (recommended; required for some modules)
Modules:
* welcome:
* NetworkManager
* UPower
* UPower (optional, runtime)
* partition:
* extra-cmake-modules
* KF5: KCoreAddons, KConfig, KI18n, KIconThemes, KIO, KService
* KPMcore >= 3.0.3
* KPMcore >= 3.0.2
* bootloader:
* systemd-boot or GRUB
* unpackfs:
@ -37,4 +36,7 @@ Modules:
### Building
See [wiki](https://github.com/calamares/calamares/wiki) for up to date building and deployment instructions.
See [wiki](https://github.com/calamares/calamares/wiki) for up to date
[building](https://github.com/calamares/calamares/wiki/Developer's-Guide)
and [deployment](https://github.com/calamares/calamares/wiki/Deployer's-Guide)
instructions.

View File

@ -1,9 +1,15 @@
Hacking on Calamares
====================
These are the guidelines for hacking on Calamares. Except for the licensing,
which **must** be GPLv3+, these are guidelines and -- like PEP8 -- the most
important thing is to know when you can ignore them.
Licensing
---------
Calamares is released under the terms of the GNU GPL, version 3 or later. Every source file must have a license header, with a list of copyright holders and years.
Calamares is released under the terms of the GNU GPL, version 3 or later.
Every source file must have a license header, with a list of copyright holders and years.
Example:
```
@ -34,9 +40,9 @@ organization, etc.
Please add your name to files you touch when making any contribution (even if
it's just a typo-fix which might not be copyrightable in all jurisdictions).
Formatting
----------
Formatting C++
--------------
This formatting guide applies to C++ code only; for Python modules, we use
[pycodestyle][https://github.com/PyCQA/pycodestyle] to apply a check of
some PEP8 guidelines.
@ -48,10 +54,10 @@ some PEP8 guidelines.
* No space before brackets, except for keywords, for example `function( argument )` but
`if ( condition )`.
* For pointer and reference variable declarations, put a space before the variable name
and no space between the type and the `*` or `&`.
* `for`, `if`, `else`, `while` and similar statements put the brackets on the next line,
although brackets are not needed for single statements.
* Function and class definitions have their brackets on separate lines.
and no space between the type and the `*` or `&`, e.g. `int* p`.
* `for`, `if`, `else`, `while` and similar statements put the braces on the next line,
if the following block is more than one statement. Use no braces for single statements.
* Function and class definitions have their braces on separate lines.
* A function implementation's return type is on its own line.
* `CamelCase.{cpp,h}` style file names.
@ -63,8 +69,9 @@ MyClass::myMethod( QStringList list, const QString& name )
if ( list.isEmpty() )
return false;
cDebug() << "Items in list ..";
foreach ( const QString& string, list )
cDebug() << "Current string is " << string;
cDebug() << " .." << string;
switch ( m_enumValue )
{
@ -77,7 +84,7 @@ MyClass::myMethod( QStringList list, const QString& name )
}
```
You can use the `hacking/calamaresstyle` script to run
You can use the `ci/calamaresstyle` script to run
[astyle](http://astyle.sf.net) on your code and have it formatted the right
way.
@ -85,6 +92,7 @@ way.
order to take advantage of this functionality you will need to acquire the
[EditorConfig](http://editorconfig.org/#download) plug-in for your editor.
Naming
------
* Use CamelCase for everything.
@ -97,6 +105,7 @@ Naming
* If it's a getter for a boolean, prefix with 'is', so `isCondition()`.
* A setter is `setVariable( arg )`.
Includes
--------
Header includes should be listed in the following order:
@ -109,8 +118,9 @@ Header includes should be listed in the following order:
They should also be sorted alphabetically for ease of locating them.
Includes in a header file should be kept to the absolute minimum, as to keep compile times short. This can be achieved by using forward declarations instead of includes,
like `class QListView;`.
Includes in a header file should be kept to the absolute minimum, as to keep
compile times short. This can be achieved by using forward declarations
instead of includes, like `class QListView;`.
Example:
```
@ -129,6 +139,7 @@ Example:
Use include guards, not `#pragma once`.
C++ tips
--------
All C++11 features are acceptable, and the use of new C++11 features is encouraged when
@ -160,10 +171,31 @@ connect( m_moduleManager, &Calamares::ModuleManager::modulesLoaded, [this]
});
```
Debugging
---------
Use `cDebug()` and `cLog()` from `utils/Logger.h`.
[1]: http://blog.qt.digia.com/blog/2011/05/26/cpp0x-in-qt/
[2]: http://qt-project.org/wiki/New_Signal_Slot_Syntax
Debugging
---------
Use `cDebug()` and `cLog()` from `utils/Logger.h`. You can pass a debug-level to
either macro (1 is debugging, higher is less important). Use `cLog()` for warning
messages. It is recommended to add *WARNING* as the first part of a warning
message.
For log messages that are continued across multiple calls to `cDebug()`,
in particular listing things, conventional formatting is as follows:
* End the first debug message with ` ..`
* Indent following lines with ` ..`
Commit Messages
---------------
Keep commit messages short(-ish) and try to describe what is being changed
*as well as why*. Use the commit keywords for GitHub, especially *FIXES:*
to auto-close issues when they are resolved.
For functional changes to Calamares modules or libraries, try to put
*[modulename]* in front of the first line of the commit message.
For non-functional changes to infrastructure, try to label the change
with the kind of change, e.g. *CMake* or *i18n* or *Documentation*.

View File

@ -49,6 +49,13 @@ SET_TARGET_PROPERTIES(calamares_bin
RUNTIME_OUTPUT_NAME calamares
)
if( WITH_KF5Crash )
set( LINK_LIBRARIES
KF5::CoreAddons
KF5::Crash
)
endif()
target_link_libraries( calamares_bin
PRIVATE
${CALAMARES_LIBRARIES}

View File

@ -1,6 +1,7 @@
/* === This file is part of Calamares - <http://github.com/calamares> ===
*
* Copyright 2014, Teo Mrnjavac <teo@kde.org>
* Copyright 2017, Adriaan de Groot <groot@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
@ -19,11 +20,17 @@
#include "CalamaresApplication.h"
#include "CalamaresConfig.h"
#include "kdsingleapplicationguard/kdsingleapplicationguard.h"
#include "utils/CalamaresUtils.h"
#include "utils/Logger.h"
#include "CalamaresConfig.h"
#ifdef WITH_KCRASH
#include <KF5/KCrash/KCrash>
#include <KF5/KCoreAddons/KAboutData>
#endif
#include <QCommandLineParser>
#include <QDebug>
#include <QDir>
@ -33,6 +40,24 @@ main( int argc, char* argv[] )
{
CalamaresApplication a( argc, argv );
#ifdef WITH_KCRASH
KAboutData aboutData( "calamares",
"Calamares",
a.applicationVersion(),
"The universal system installer",
KAboutLicense::GPL_V3,
QString(),
QString(),
"https://calamares.io",
"https://github.com/calamares/calamares/issues" );
KAboutData::setApplicationData( aboutData );
KCrash::initialize();
// KCrash::setCrashHandler();
KCrash::setDrKonqiEnabled( true );
KCrash::setFlags( KCrash::SaferDialog | KCrash::AlwaysDirectly );
// TODO: umount anything in /tmp/calamares-... as an emergency save function
#endif
QCommandLineParser parser;
parser.setApplicationDescription( "Distribution-independent installer framework" );
parser.addHelpOption();

View File

@ -10,6 +10,12 @@
//cmakedefines for CMake variables (e.g. for optdepends) go here
#cmakedefine WITH_PYTHON
#cmakedefine WITH_KF5Crash
#ifdef WITH_KF5Crash
#define WITH_KCRASH
#endif
#cmakedefine WITH_PYTHONQT
#endif // CALAMARESCONFIG_H

View File

@ -88,7 +88,9 @@ NetInstallPage::dataIsHere( QNetworkReply* reply )
// even if the reply is corrupt or missing.
if ( reply->error() != QNetworkReply::NoError )
{
cDebug() << reply->errorString();
cDebug() << "WARNING: unable to fetch netinstall package lists.";
cDebug() << " ..Netinstall reply error: " << reply->error();
cDebug() << " ..Request for url: " << reply->url().toString() << " failed with: " << reply->errorString();
ui->netinst_status->setText( tr( "Network Installation. (Disabled: Unable to fetch package lists, check your network connection)" ) );
emit checkReady( !m_required );
return;
@ -96,7 +98,9 @@ NetInstallPage::dataIsHere( QNetworkReply* reply )
if ( !readGroups( reply->readAll() ) )
{
cDebug() << "Netinstall groups data was received, but invalid.";
cDebug() << "WARNING: netinstall groups data was received, but invalid.";
cDebug() << " ..Url: " << reply->url().toString();
cDebug() << " ..Headers: " << reply->rawHeaderList();
ui->netinst_status->setText( tr( "Network Installation. (Disabled: Received invalid groups data)" ) );
reply->deleteLater();
emit checkReady( !m_required );

View File

@ -1,4 +1,28 @@
# Plymouth Configuration Module
#
# This module can be used to setup the default plymouth theme to
# be used with your distribution
#
# You should only use this module if the plymouth package is installed
# on the build configurations of your distribution & the plymouth
# theme you want to configure is installed as well. If the unpacked
# filesystem configures a plymouth theme already, there is no need
# to change it here.
---
# The plymouth theme to be set if plymouth binary is present
# leave commented if packaged default theme should be used
# plymouth_theme: spinfinity
# Leave this commented if you want to use the default theme
# shipped with your distribution configurations. Make sure that
# the theme exists in the themes directory of plymouth path.
# Debian / Ubuntu comes with themes "joy", "script", "softwaves",
# possibly others. Look in /usr/share/plymouth/themes for more.
#
# Specifying a non-existent theme will leave the plymouth
# configuration set to that theme. It is up to plymouth to
# deal with that.
plymouth_theme: spinfinity