Commit Graph

277 Commits

Author SHA1 Message Date
Adriaan de Groot
34761c4214 Clang: reduce 0-as-nullptr warnings 2017-09-20 09:24:22 -04:00
Adriaan de Groot
337903db09 Clang: reduce warnings about overriden destructors 2017-09-20 09:11:18 -04:00
Adriaan de Groot
9693d7a5bd Memory: clean up interface used to get memory (RAM) size 2017-09-20 09:11:02 -04:00
Adriaan de Groot
0c129f2460 Reduce third-part warnings a better way.
Thanks to Kevin Kofler for pointing out what I'd forgotten about
source-file flags. While at it, introduce a generic mechanism for
suppressing warnings in third-party code.

Mostly reverts 4930484931
2017-09-19 16:49:14 +02:00
Adriaan de Groot
13807ceabf Licensing: add self
- to all the files I've touched recently
 - to (very incomplete) AUTHORS list

Licensing: add license info to top-level CMakeLists.txt
2017-09-19 15:57:25 +02:00
Adriaan de Groot
6d880b5631 Replace memory-size detection.
- drop use of dmidecode to determine exact physical memory size
 - use sysinfo() to find memory size (assumes linux 2.3.48 or later)
2017-09-19 15:57:25 +02:00
Adriaan de Groot
ddb6455365 Revert be2338ff0 (intended just to reduce warnings)
- keep the calamaresstyle formatting changes,
 - drop shadowing and nullptr changes.

FIXES #805
2017-09-18 15:11:18 +02:00
Adriaan de Groot
4930484931 CMake: massage build of libcalamares
- Build also two OBJECT libraries,
 - Allow changing Clang warnings for third-party code.
2017-09-18 14:59:53 +02:00
Adriaan de Groot
eede92646d CMake: shuffle includes, drop useless (empty) QT_INCLUDE_DIR 2017-09-18 12:32:37 +02:00
Adriaan de Groot
a266ecb133 CMake: simplify definitions, distinguish kinds of sources 2017-09-17 06:48:07 -04:00
Adriaan de Groot
03d9dbe099 Clean up CMakeLists, linking 2017-09-13 18:29:56 +02:00
Adriaan de Groot
be2338ff08 Clang: reduce warnings 2017-09-13 08:03:18 -04:00
Adriaan de Groot
297e97da19 Clang: tidy up warnings in logger 2017-09-11 11:03:25 +02:00
Adriaan de Groot
9116718448 Clang: warnings-reduction 2017-09-10 15:19:36 -04:00
Adriaan de Groot
a06911e9aa Clang: refactor units-converters, reduce warnings 2017-09-10 13:22:32 -04:00
Adriaan de Groot
106f18e074 Log process output of failed commands
FIXES #612
2017-08-23 16:44:09 -04:00
Adriaan de Groot
2c81fceacb Python: KeyError because pretty_name may not exist 2017-08-23 04:59:04 -04:00
Adriaan de Groot
5dc70ac261 Python-i18n: apply C++-coding style 2017-08-21 12:36:04 -04:00
Adriaan de Groot
538c59adb9 Python-i18n: add /usr/local/share/locale to search 2017-08-21 12:34:38 -04:00
Adriaan de Groot
d6d5f54d00 Python-i18n: clarify debugging 2017-08-21 10:37:35 -04:00
Adriaan de Groot
22fd428664 Python-i18: avoid duplicate path entries 2017-08-18 14:22:59 -04:00
Adriaan de Groot
3a1d5ed533 Python-i18n: (inefficiently) search for suitable gettext dirs 2017-08-18 13:06:44 -04:00
Adriaan de Groot
78b3c8ed32 Python-i18n: allow None as a gettext path (searches default) 2017-08-16 16:45:34 +02:00
Adriaan de Groot
74be2fd098 Python-i18n: implement gettext functions in libcalamares.utils
- remove Job.gettextPath
 - add libcalamares.utils.gettext_path()
 - add libcalamares.utils.gettext_lang()
 - modify examples in main.py
 - add some gettext debug-output from dummypython
 - correct namespace mis-labeling
 - provide two forms of GlobalStorage
   - regular use, has a JobQueue with storage
   - testing use, creates GlobalStorage separately, provide
     independent access to that for Python.
2017-08-16 10:53:11 +02:00
Adriaan de Groot
d4c714c400 Python: fix up testing script
- Didn't run at all (at least since v3.1) because of mismatch between
  GlobalStorage constructor arguments and use; special-case None
  in the C++ code to allocate a new GlobalStorage object.
2017-08-15 13:58:43 +02:00
Adriaan de Groot
6370898154 Python-i18n: make it compile again 2017-08-15 13:21:17 +02:00
Adriaan de Groot
cbfdd8690d Python-i18n: WIP, moving API to libcalamares.utils 2017-08-15 12:31:47 +02:00
Adriaan de Groot
b922d88b0f Python-i18n: add a gettext_path for python job modules 2017-08-10 15:39:24 -04:00
Adriaan de Groot
34b96148ae Python: at beginning of job, if pretty status has changed, emit progress to update it in the UI. 2017-07-10 11:58:57 -04:00
Adriaan de Groot
11e5a6cbe0 Python: trim description to the first line of run.__doc__ 2017-07-10 11:58:57 -04:00
Adriaan de Groot
a72cc0eeb4 Python: use the module run().__doc__ as a pretty description. 2017-07-05 06:46:29 -04:00
Adriaan de Groot
f12ae5db3b Python: get docstring from run() method 2017-07-05 06:46:29 -04:00
Adriaan de Groot
75b5303b49 i18n: stop trying to install Qt translations 2017-06-29 06:29:29 -04:00
Adriaan de Groot
5cd328dad3 Clang: if we're going to crash on purpose, crash the C++ way 2017-06-28 08:44:59 -04:00
Adriaan de Groot
0d884869e5 Clang: reduce warnings about code-documentation 2017-06-27 07:17:40 -04:00
Adriaan de Groot
f2d2218070 Clang: fix warning about implict copy-ctor with explicit move-ctor 2017-06-27 07:15:31 -04:00
Adriaan de Groot
8ea14d7957 Release: add copyright to files I've touched 2017-06-21 08:27:10 -04:00
Adriaan de Groot
2148538fac Clang: reduce warnings 2017-06-21 07:28:38 -04:00
Adriaan de Groot
d29acf4a06 Logging: add a global storage dump method 2017-06-06 09:22:21 -04:00
Teo Mrnjavac
6c7cdb5f50 Documentation++ 2017-03-01 13:35:06 +01:00
Teo Mrnjavac
b1c67f429f Update headers. 2016-12-16 17:03:13 +01:00
Teo Mrnjavac
99ca3d768d Expose translator locale name. 2016-12-16 17:03:13 +01:00
Teo Mrnjavac
3170067089 Make JobResult inheritable and remove obsolete Status enum. 2016-12-16 17:03:00 +01:00
Teo Mrnjavac
0f734c8c5c Make sure to only call Py_Initialize if Python is not initialized. 2016-12-16 17:03:00 +01:00
Teo Mrnjavac
2c3b56c803 Link against PythonQt; new PythonQtViewModule stub. 2016-12-16 17:03:00 +01:00
Teo Mrnjavac
ada620effc Find PythonQt. 2016-12-16 17:03:00 +01:00
Kevin Kofler
00d9f211f5 Add support for C++/Qt batch job plugins
These job plugins work similarly to view modules, with the following
differences:

* These jobs need to link only libcalamares, not libcalamaresui. For
  this reason, PluginFactory was moved from libcalamaresui to
  libcalamares. (It depends only on QtCore.)

* Instead of deriving from ViewModule, derive from CppJob (which is a
  subclass of Job).

* Like process and Python jobs, a job plugin is a single job, whereas a
  ViewModule can generate a whole list of jobs.

The CppJob and CppJobModule classes are new. In Module::fromDescriptor,
the combination type=job, intf=qtplugin is now supported and mapped to
CppJobModule.
2016-09-27 17:25:09 +02:00
Jonathan Carter
c83ca9af44 Fix spelling mistake in kdsingleapplicationguard.cpp (#257)
s/emty/empty/g.
2016-09-12 07:56:13 +02:00
Andrius Štikonas
9f0ca042fe Port away from most cases of Q_FOREACH to C++11 ranged for loop.
In order to avoid deep copies, Qt containers over which we iterate must be const
The remaining unported cases require qAsConst (Qt 5.7) or std::as_const (C++17)
2016-09-01 16:46:14 +01:00
Teo Mrnjavac
0684a761bd Copyright. 2016-08-19 12:49:36 +02:00
Teo Mrnjavac
d99d7bfdff Expose CalamaresUtils::obscure as libcalamares.utils.obscure. 2016-08-19 12:49:36 +02:00
Teo Mrnjavac
f8078be2fd Wrap CalamaresUtils::obscure in CalamaresPython. 2016-08-19 12:49:36 +02:00
shainer
2349f7125e Add conversion utilities from QHash to py dict. When translating from pydict, however, translate into a QMap as before to keep current behaviour. 2016-07-04 22:30:45 +01:00
Teo Mrnjavac
9fb9aaf6e4 Install CrashReporter handler. 2016-03-23 18:48:08 +01:00
Teo Mrnjavac
fe1e1cb3c0 Export WITH_KCRASH in CalamaresConfig.h.in. 2016-03-16 12:19:19 +01:00
Teo Mrnjavac
576fdcc7a0 Print log file path. 2016-01-14 15:32:52 +01:00
Teo Mrnjavac
e59418e880 Add crash utility to CalamaresUtils. 2015-12-30 17:27:02 +01:00
Teo Mrnjavac
baa3553db5 Add CalamaresUtils::obscure. 2015-09-25 15:24:59 +02:00
Teo Mrnjavac
834299f785 There are no Phases any more, just a ModuleAction for a module. 2015-09-15 16:48:42 +02:00
Teo Mrnjavac
9cb4e60b31 Namespace fixage. 2015-09-15 16:48:42 +02:00
Teo Mrnjavac
1534b0a27c Try to fix dontChroot command execution. 2015-09-15 16:48:41 +02:00
Teo Mrnjavac
a4ea7e65a2 Try running no-chroot commands in env rather than sh -c. 2015-09-15 16:48:41 +02:00
Rohan Garg
ca393d0a44 Set the default rootMountPoint when not chroot'ing 2015-09-15 16:48:41 +02:00
Teo Mrnjavac
7212aaec74 Fix the last fix. 2015-09-15 16:48:41 +02:00
Teo Mrnjavac
d8818e0280 Fix non-chroot target env call. 2015-09-15 16:48:41 +02:00
Teo Mrnjavac
42e465aa10 CalamaresUtils::System is now a class. 2015-09-15 16:48:41 +02:00
Teo Mrnjavac
0803d86c40 Don't duplicate code. 2015-09-15 16:48:41 +02:00
Teo Mrnjavac
2e3751ffa7 If dont-chroot is set, don't chroot target env calls. 2015-09-15 16:48:41 +02:00
Teo Mrnjavac
bf885d65db chroot calls are now generic "target env" calls. 2015-09-15 16:48:41 +02:00
Teo Mrnjavac
326671a3d6 Remove dead (unreachable) code. 2015-06-13 21:31:32 +02:00
Teo Mrnjavac
b9dbf668f3 Initialize previously uninitialized scalar. 2015-06-13 21:31:06 +02:00
Teo Mrnjavac
30a840ceb0 Fix issue with changed() never being emitted on remove in GS. 2015-06-13 21:30:25 +02:00
Teo Mrnjavac
eae237211f Add prettyStatusMessage to {Python,Process}Job. 2015-06-13 02:23:11 +02:00
Teo Mrnjavac
b0d52fb928 Use it in JobQueue. 2015-06-13 02:03:57 +02:00
Teo Mrnjavac
18a9e0db48 Add optional prettyStatusMessage to Job. 2015-06-13 02:03:35 +02:00
Teo Mrnjavac
659a388688 Improve job status reporting. 2015-06-13 01:16:11 +02:00
Teo Mrnjavac
5e2f6ff2b8 Detect physical memory, with dmidecode and meminfo as backup. 2015-06-10 00:06:45 +02:00
Teo Mrnjavac
09ae0bcbd6 Add branding translations support to CalamaresUtils::installTranslator. 2015-05-07 16:10:42 +02:00
Teo Mrnjavac
8a02522d60 Add CALAMARES_RETRANSLATE_WIDGET 2015-05-07 16:10:42 +02:00
Teo Mrnjavac
d45d436161 Add optional prettyDescription to Job. 2015-04-13 14:58:33 +02:00
Teo Mrnjavac
8b98b1cc24 Do not filter out LanguageChange events when in a RETRANSLATE functor. 2015-04-08 18:25:03 +02:00
Teo Mrnjavac
52528f650c JobQueue emits queueChanged. 2015-03-10 19:51:08 +01:00
Teo Mrnjavac
edb21e05af New GlobalStoragePythonWrapper is passed to the Python API.
This allows us to make GlobalStorage a QObject, with disabled copy
constructor. And thanks to this change, GlobalStorage now emits
changed() every time an insert or remove is performed.
2015-03-10 19:51:08 +01:00
Teo Mrnjavac
d1c4976ee6 Copyright. 2015-03-10 19:51:08 +01:00
Teo Mrnjavac
d8ca5eee5b Friend DebugWindow to GlobalStorage for future use. 2015-03-10 19:51:08 +01:00
Gormogon
e2d05cb9f2 Align Pointers 2015-02-25 19:57:19 -05:00
Teo Mrnjavac
b8b41bdfdd Fix execution environment and error reporting in ProcessJob. 2015-02-25 13:44:55 +01:00
Teo Mrnjavac
9622888d1d Load QML modules in a central place + dummy QML slideshow. 2015-01-23 20:24:45 +01:00
Kevin Kofler
00604a8bca PythonHelper: Add support for bool.
Convert Python bool type from/to C++/QVariant bool (QVariant::Bool) in
PythonHelper::variantToPyObject and PythonHelper::variantFromPyObject.

This fixes the "override" option and any booleans in the "defaults" list
in grubcfg.conf.
2014-11-18 05:34:01 +01:00
Kevin Kofler
7478c1266b Point the lib/calamares/libcalamares.so symlink to the versioned so.
Point the lib/calamares/libcalamares.so symlink for the Python modules
directly to the versioned lib/libcalamares.so.VERSION library rather
than to the lib/libcalamares.so symlink. This allows distributions to
install the lib/libcalamares.so symlink to a development package and
only ship lib/libcalamares.so.VERSION and lib/calamares/libcalamares.so
in the runtime package. It is also marginally faster (because only one
level of symlinks has to be resolved instead of two).

(I know this works because I have been manually fixing up this symlink
in the Fedora specfile so far.)
2014-11-14 12:30:56 +01:00
Teo Mrnjavac
8575240b95 Capture by-val in Retranslator macro. 2014-11-11 17:05:56 +01:00
Teo Mrnjavac
e5c3888be2 Allow multiple CALAMARES_RETRANSLATE blocks in the same widget. 2014-11-11 15:12:44 +01:00
Teo Mrnjavac
945b59748a Add RETRANSLATE macro to CalamaresUtils::Retranslator. 2014-11-11 15:12:44 +01:00
Teo Mrnjavac
08b90e975b Add retranslator class to CalamaresUtils. 2014-11-11 12:44:32 +01:00
Teo Mrnjavac
8b343ace4a QTranslator switching in CalamaresUtils. 2014-11-10 12:26:03 +01:00
Teo Mrnjavac
8026a287d3 Shut up Qt lupdate warnings. 2014-10-29 13:06:52 +01:00
Teo Mrnjavac
633c8512c2 Try to make compile on Qt 5.4 2014-10-28 18:20:28 +01:00
Teo Mrnjavac
a97297a3fe Attempt to fix #125 2014-10-28 12:02:08 +01:00
Teo Mrnjavac
d97bb47f09 Add proper QResrouce system to libcalamaresui, finish up prepare checks
This also adds ImageRegistry, a SVG cache, a bunch of utility functions
for shared pixmaps in CalamaresUtilsGui and renames several qrc files
in viewmodules.
2014-08-26 18:24:51 +02:00
Pier Luigi Fiorini
f0921a41b2 Try to find settings.conf from SYSCONFDIR
Honor SYSCONFDIR as specified by CMake arguments instead of
using a hard-coded path.

Since GNUInstallDirs set CMAKE_INSTALL_FULL_SYSCONFDIR to
CMAKE_INSTALL_PREFIX/etc we need to change the default ourselves.
2014-08-20 11:48:30 +02:00
Teo Mrnjavac
ec7edc4b83 Improve diacritics transliteration. 2014-08-19 11:14:26 +02:00
Teo Mrnjavac
6295f48ab7 Add removeDiacritics function to CalamaresUtils. 2014-08-13 17:15:56 +02:00
Teo Mrnjavac
7a3ce363b3 Add option to run process jobmodules in chroot. 2014-08-12 14:26:10 +02:00
Teo Mrnjavac
eb6b8ac613 Add check_chroot_output to Python interface. 2014-08-08 14:20:09 +02:00
Teo Mrnjavac
f90bf469dd Add chrootOutput/check_chroot_output to libcalamares utils API. 2014-08-08 14:17:34 +02:00
Aurélien Gâteau
1c9265cd21 Merge branch 'wip/resize-partition' 2014-08-07 17:40:03 +02:00
Teo Mrnjavac
5400afa540 Fix settings.conf loading. 2014-08-06 17:23:40 +02:00
Aurélien Gâteau
249a28910a Make it possible to update message and details fields of a JobResult 2014-08-05 17:37:24 +02:00
Teo Mrnjavac
84ec430729 Add some Python API docs. 2014-08-05 13:23:04 +02:00
Teo Mrnjavac
01efeda801 Utils, not util. 2014-08-04 17:06:16 +02:00
Teo Mrnjavac
c964093d7c Make libcalamares a proper package and utils a proper submodule. 2014-08-04 17:05:00 +02:00
Teo Mrnjavac
c64e229142 By default, chrootCall should never time out. 2014-08-04 16:23:12 +02:00
Teo Mrnjavac
45ac91c784 Add check_chroot_call to libcalamares Python interface. 2014-08-04 16:06:29 +02:00
Aurélien Gâteau
26e5500e33 chrootCall: Log messages on failure, as well as command outputs 2014-08-01 17:26:18 +02:00
Aurélien Gâteau
6376e1daef Start the process before calling waitForStarted() 2014-08-01 17:26:18 +02:00
Aurélien Gâteau
70a13fc588 Make logging more useful
- Do not log progress percent but log job names.
- Log install failures.
2014-08-01 17:26:18 +02:00
Aurélien Gâteau
45101d15b0 Store log in ~/.cache by default 2014-08-01 11:36:22 +02:00
Aurélien Gâteau
1b695b7355 Fix crash when logging at exit time 2014-08-01 10:56:30 +02:00
Aurélien Gâteau
90670f8b46 Improve formatting of error messages 2014-08-01 09:56:40 +02:00
Teo Mrnjavac
e7e57689d8 Make sure chrootCall with args list actually passes the args as list. 2014-07-30 12:43:15 +02:00
Teo Mrnjavac
63534f7154 Add mount and chrootCall utilities to libcalamares + Python wrappers. 2014-07-29 20:21:40 +02:00
Teo Mrnjavac
fb328494b3 Make the libcalamares Python API better for PEP8 2014-07-29 13:16:46 +02:00
Teo Mrnjavac
845ae05f7e Added debug( str ) to the Python API. 2014-07-28 18:56:00 +02:00
Aurélien Gâteau
d30b6300ab Unbreak locating of config file when run without --config 2014-07-28 18:36:24 +02:00
Aurélien Gâteau
289704ab90 Make it possible to override the config dir from the command line 2014-07-28 18:12:08 +02:00
Teo Mrnjavac
87ee2b8b8c Improve error reporting for Python jobs. 2014-07-28 17:40:57 +02:00
Teo Mrnjavac
beafcd9cc4 Consistency: calamares_main ==> run; global_storage => globalStorage 2014-07-25 16:46:12 +02:00
Teo Mrnjavac
2a231b3532 Try to avoid passing GlobalStorage to Python by value. 2014-07-24 12:19:14 +02:00
Teo Mrnjavac
da83ecfb13 libcalamares.job is of type libcalamares.Job 2014-07-23 13:02:42 +02:00
Teo Mrnjavac
78de11a412 Emit job progress from Python jobs. 2014-07-23 12:54:53 +02:00
Aurélien Gâteau
89fd6a950b Add support for per-job progress 2014-07-23 12:04:27 +02:00
Aurélien Gâteau
e9da5cb6cb Change signature of JobQueue::progress, add finished() signal
Now uses a qreal for progress instead of current and total
Also added a finished() signal because determining whether the queue is
finished should not be done by comparing a qreal with 1.0 as this is not
precise.
2014-07-23 10:58:08 +02:00
Teo Mrnjavac
2636a1273f Add job.setprogress to Python API. 2014-07-22 18:05:58 +02:00
Teo Mrnjavac
c6c2c67560 Rewrite Python error handling to show meaningful messages. 2014-07-22 17:48:56 +02:00
Teo Mrnjavac
0753e6ccde New GlobalStorage map. With Python API support. 2014-07-21 17:09:23 +02:00
Teo Mrnjavac
d9f4c74537 Add support for config map to Python job API.
Rename PythonJobHelper ==> CalamaresPython::Helper.
Add QVariant to boost::python::object conversion functions.
Rename some constants in the libcalamares Python API.
2014-07-18 14:36:30 +02:00
Teo Mrnjavac
2f03dfa43b CalamaresPrivate ==> CalamaresPython 2014-07-18 14:36:30 +02:00
Aurélien Gâteau
43f29b8058 Start working on tests for partition jobs 2014-07-18 10:51:54 +02:00
Teo Mrnjavac
e33e9de6f6 Symlink lib/calamares/libcalamares.so to lib/libcalamares.so for Python. 2014-07-17 19:42:16 +02:00
Teo Mrnjavac
a61a36d99d We have a Python API for jobmodules!
Created a Boost.Python module interface in libcalamares.
Added a PythonJob wrapper and exposed it in the Python module.
Rename target calamareslib ==> calamares so in Python it's libcalamares.
Python-related classes in libcalamares that aren't exported as C++
symbols are now in a CalamaresPrivate namespace.
Import the libcalamares python module into every Python script before
running it.
Added Python error handling to PythonJobHelper.
Added some more testing code to dummypython module.
2014-07-17 19:42:16 +02:00
Teo Mrnjavac
b924aeef2b Add optional Python jobs support to libcalamares. 2014-07-16 16:07:32 +02:00
Teo Mrnjavac
754ef7dbbc Fix prettyName. 2014-07-16 16:02:14 +02:00
Aurélien Gâteau
7096213206 Move partitionmanager code to src/modules/partition 2014-07-15 11:54:09 +02:00
Teo Mrnjavac
51e5976a99 Better error message. 2014-07-14 14:28:52 +02:00
Teo Mrnjavac
2e47c248ac Load modules by phase, in preparation for actually using new settings. 2014-07-11 14:40:15 +02:00
Aurélien Gâteau
22ff18f2cc Update partitionmanager submodule, fixing build without KIO 2014-07-11 14:11:51 +02:00
Aurélien Gâteau
784f07cbbc Update partitionmanager submodule: latest commits from the frameworks branch
@demm: This includes the btrfs fix
2014-07-10 20:00:53 +02:00
Aurélien Gâteau
2e3f1c655c Update partitionmanager submodule, necessary for next commit 2014-07-10 19:54:23 +02:00
Aurélien Gâteau
b1ce4afc8c Update partitionmanager submodule 2014-07-10 18:27:51 +02:00
Teo Mrnjavac
b3aae75bed Add working directory to ProcessJob 2014-07-10 16:45:13 +02:00