Commit Graph

1100 Commits

Author SHA1 Message Date
Adriaan de Groot
00a5baa3d9 [libcalamares] Improve process logging
- Don't insert a space before the output of a process
 - To do this, suppress space and quoting on the output, and to do
   that move the labeling-output for warnings and errors into
   the constructor (so that an idiomatic .nospace() does the right thing).
2018-04-05 05:17:21 -04:00
Adriaan de Groot
b5c3fc8cf6 [libcalamares] Improve process logging
- Log output on crash
 - If debugging is on (-d) then also log output on success

FIXES #925
2018-04-05 04:51:51 -04:00
Adriaan de Groot
4d459f7fc0 [libcalamares] Move non-UI stuff from libcalamaresui
- Settings is just a settings class, no UI involved, so
   move to libcalamares where it can be used also from
   system helpers.
 - YAML utilities are useful at a lower level of the stack, too.
2018-04-05 04:31:13 -04:00
Adriaan de Groot
240efd30f1 [libcalamares] Add support for formatted, table-like output
- Use DebugRow for one-row-at-a-time output with continuations.
 - Use DebugList for one-item-per-line with continuations.
 - Use DebugMap for one-row-at-a-time output of a QVariantMap.
2018-03-30 17:18:45 -04:00
Adriaan de Groot
6bb72d173d [libcalamares] Drop generic cLog()
- Use cWarning or cError() for errors
 - Use cDebug(level) for other uses (but there aren't any)
2018-03-28 09:31:45 -04:00
Adriaan de Groot
ad6227ce21 [libcalamares] Remove internal functions from the logging API 2018-03-28 09:27:11 -04:00
Adriaan de Groot
cdf80615b8 [libcalamares] Rename the log file 2018-03-28 07:20:19 -04:00
Adriaan de Groot
0f289e2552 [calamares]: Improve startup logging
- Don't bother with the address of the main thread
 - Do put a marker on restart into the log file
 - Do put the Calamares version into the log file (previously, the version
   was printed through cDebug() before the log file was opened, so it was
   lost to the on-disk log).
2018-03-28 05:01:07 -04:00
Adriaan de Groot
09f30194d7 CMake: revert un-versioning of libcalamares*.so
The install-bits branch commit 83639b182b
dropped .so-versioning for libcalamares and the creation of the Python-
support symlink. This broke KDE Neon dev-unstable because the embedded
Python can no longer find libcalamares.

Installing unversioned .so's straight to LIBDIR is also not a good thing
(according to Debian), so revert to the original scheme with versioned
.so and a Python-support symlink.

Medium-term fix is to install unversioned straight into LIBDIR/calamares
and fix up the RPATH for the executable.
2018-03-01 12:37:52 +01:00
Adriaan de Groot
73a5e0bbcd [libcalamares] Fix up debugging
Using plain cLog() is weird, it doesn't attach a debugging level
so it seems like it's level 0, beyond-critical.
2018-02-27 01:09:43 +01:00
Adriaan de Groot
36ef4556b4 Merge branch 'install-bits'
FIXES #729
2018-02-21 10:15:58 -05:00
Adriaan de Groot
db0c1ffd6d CMake: just install unversioned .so
- Applies to libcalamares and libcalamaresui.so, install with no
   version, just the bare .so. Since Calamares doesn't do versioning
   anyway, and its plugins should be re-compiled for any change,
   putting them in lib as unversioned .so's should make Calamares
   happy and silence lintian.
2018-02-21 09:52:56 -05:00
Adriaan de Groot
a1cbb161ee [libcalamares] Make setup of log-level explicit
- Replace the implicit setting of a logging level
   (the first time logging is called) with explicit
   setupLogLevel().
2018-02-20 07:47:06 -05:00
Adriaan de Groot
84d599625f [libcalamares] Give Python jobs a warning()
- Add libcalamares.utils.warning() alongside debug() for
   Python modules to output warnings.
2018-02-20 04:28:45 -05:00
Adriaan de Groot
dbbec4f76d [libcalamares] Use cDebug, polish messages 2018-02-19 17:23:05 -05:00
Adriaan de Groot
d62c7b93c6 [libcalamares] Polish weird namespace use 2018-02-19 17:17:03 -05:00
Adriaan de Groot
cf02f7aab5 [libcalamares] Avoid nullptr crashes
- The Python testmodule script can end up calling in to System
   methods (via System::instance()). This is unusual, and the
   System instance has not been created at that point.
   Now, create an instance and warn about it.
2018-02-19 09:47:15 -05:00
Adriaan de Groot
83639b182b CMake: try installing outside of regular lib/
- Install unversioned libraries
 - Install to lib/calamares instead of directly to lib/
2018-02-14 08:55:30 -05:00
Adriaan de Groot
df0d9dcb88 [libcalamares] Provide convenience functions for warning and error 2018-02-12 11:58:34 -05:00
Adriaan de Groot
79d81700b3 [libcalamares] Use -D for just debug-level setting
- Original flag -d sets debugging but also changes behavior
 - New -D just sets debugging
 - Simplify QStringList (use C++ 11)
2018-02-12 10:39:09 -05:00
Adriaan de Groot
ae5511c2f3 [libcalamares] Rationalize logging
- Move logging-levels to an enum
 - (re-)Order logging-levels so that the normal debug statement is
   not the most-important (lowest level).
 - Drop using namespace std;
2018-02-12 10:37:25 -05:00
Adriaan de Groot
874514a4e4 i18n: drop orphaned #undefs (thanks Kevin Kofler) 2018-02-08 10:33:40 +01:00
Adriaan de Groot
d27675d660 i18n: drop superfluous QObject* parent
These additional pointers were introduced for translations,
and needed their own tricks to get lupdate to recognize the
strings. Using QCoreApplication::translate() removes the
need to a QObject to provide context. Drop the now-unneeded
parameters.
2018-02-07 17:43:26 +01:00
Adriaan de Groot
c71385e93f i18n: fix broken translation in CommandList 2018-02-07 17:43:26 +01:00
Adriaan de Groot
f954496acf i18n: avoid translation tricks, use QCoreApplication::translate
Instead of using tr and some macro hacks to get lupdate to
recognize the translation, instead use QCoreApplication::translate()
which takes its own context for translation.
2018-02-07 17:43:26 +01:00
Adriaan de Groot
aed904e3b4 Merge branch 'i897-timeout'
FIXES #897
2018-01-29 22:12:36 +01:00
Adriaan de Groot
2da430fa36 [libcalamares] Allow CommandLine to have unset timeout
- Introduce enum for the appropriate constant
 - If the timeout isn't set, then defer to the timeout set
   on the commandlist when running the commands.
2018-01-29 21:25:18 +01:00
Adriaan de Groot
c641f5dec6 [libcalamares] Implement object-style command line
- handle command: and timeout: entries
 - test for setting the values
2018-01-29 21:08:42 +01:00
Adriaan de Groot
fe2be46d3f [libcalamares] Extend command-list with timeouts
- Replace plain StringList with a list of <String, timeout> pairs,
   and run that instead. All code paths still use the default 10sec
   timeout and there's no way to change that.
2018-01-29 17:10:56 +01:00
Adriaan de Groot
778feb50e8 [libcalamares] Additional convenience for doubles 2018-01-29 14:45:42 +01:00
Adriaan de Groot
54a9bbb949 [libcalamares] Don't eat output on timeout.
- Copy stdout from timed-out process into the output variable,
   instead of just dumping it into the log file. This will
   improve the user experience, too, because they will get some
   feedback / explanation of what the process has done.
2018-01-26 18:19:38 +01:00
Adriaan de Groot
26dfd56f6d [libcalamares] Additional convenience function extracting int 2018-01-24 16:19:22 +01:00
Adriaan de Groot
b828580464 Merge remote-tracking branch 'origin/simplify-plugin' 2018-01-24 14:22:35 +01:00
Adriaan de Groot
9a9c6da6db i18n: try to trick Transifex into recognizing these strings 2018-01-23 12:11:34 +01:00
Adriaan de Groot
97fb83c743 [libcalamares] Change debug logging of how job name is derived 2018-01-17 09:17:36 -05:00
Adriaan de Groot
abc6914528 [libcalamares] Enforce singleton-ness of CalamaresPython::Helper
- unset instance pointer on destruction
 - make constructor private, and the instance accessor
   should create an instance if there isn't one.
2018-01-17 06:18:43 -05:00
Adriaan de Groot
86b899566e [libcalamares] Silence compiler warnings about PluginFactories
- d_ptr shadows QObject d_ptr, which clang complains about
 - rename, and don't use Q_D and similar because it messes with internals.
2018-01-16 13:23:51 +01:00
Adriaan de Groot
510af704d8 [libcalamares] Improve documentation
- reference to _WITH_JSON is bogus copy-replace from other code
 - fix style of sample code.
2018-01-16 13:23:51 +01:00
Adriaan de Groot
0020fd885c [libcalamares] Remove unused extern declaration 2018-01-16 13:23:51 +01:00
Adriaan de Groot
a2bdc12f25 [libcalamares] Drop unused plugin defines
- Remove some superfluous intermediate defines
 - baseFactory was not used (always Calamares::PluginFactory)
 - Move DECLARATION and DEFINITIONS apart
 - CALAMARES_PLUGIN_FACTORY_DEFINITION was redefined (identically)
 - CALAMARES_PLUGIN_FACTORY_DECLARATION was redefined (identically)
 - __VA_ARGS__ was constant
2018-01-16 13:23:09 +01:00
Adriaan de Groot
f01c7cda6b [libcalamares] Fix debug output classname 2018-01-15 08:41:24 -05:00
Adriaan de Groot
913690650f [libcalamares] Move CommandList into libcalamares
- Move CommandList so it can be used from more modules than
   just ShellProcess
 - Allow a CommandList to run itself. This centralizes
   code for executing one or more commands and simplifies
   the ShellProcess module.

Various small cleanups:
 - mention instance id in log message
 - code formatting / style
2018-01-15 06:52:55 -05:00
Adriaan de Groot
60f4dd7b3b [libcalamares] Improve explanation of failed processes. 2018-01-15 05:51:58 -05:00
Adriaan de Groot
4ff1a0d5ea [libcalamares] another convenience for running commands
Back targetEnvCommand() with a more general runCommand()
that takes an argument selecting the location to run
the command in. This allows us also to use the same
API for running processes in the host during install,
as we do for running them in the target system.

One reason for this change is wanting to run (user-specified)
commands and independently from the global dontChroot setting,
run those commands in the live system or the target.

This changes the ABI of the DLL, since targetEnvCommand()
is no longer exported. Plugins will need to be recompiled.

 - refactor targetEnvCommand() into more general runCommand().
 - While here, allow host system commands to run even if
   there is no global storage.
 - provide convenience accessors for ProcessResult members
 - Move explanation of process errors out of ProcessJob
   - Move from ProcessJob to ProcessResult, so it can be
     reused outside of ProcessJob (e.g. from ShellProcessJob).
   - Add some convenience functions, too.
2018-01-12 10:32:42 -05:00
Adriaan de Groot
f8a53f9646 [libcalamares] Refactor explanation of process-job errors 2017-12-21 16:30:13 +01:00
Adriaan de Groot
762ad54344 Documentation: change http links to GitHub to https 2017-12-20 08:39:09 -05:00
Adriaan de Groot
8a053f3c9b [libcalamares] Allow retrieving chroot mode from system (as well as settings) 2017-12-03 10:09:00 -05:00
Adriaan de Groot
298ff0cbeb Merge branch '3.1.x-stable' 2017-12-03 04:43:23 -05:00
Adriaan de Groot
517dbfab06 [libcalamares] The script namespace is actually a dict
Use dict methods, in particular d.get(k, v), to retrieve
the pretty_name() function (or None if it isn't there).
Using getattr() on a dict will not return values in the
dict.
2017-12-01 16:42:56 -05:00
Adriaan de Groot
0d413ba750 Merge branch '3.1.x-stable' 2017-11-29 08:58:32 -05:00
Adriaan de Groot
12369abaa4 [libcalamares] Refactor to reduce compiler warnings 2017-11-29 08:49:44 -05:00
Adriaan de Groot
c284304872 [libcalamares] Adjust copyright lines 2017-11-28 11:41:17 -05:00
Adriaan de Groot
cc195eb3d4 [libcalamares] Improve reporting of CalledProcessError
For called processes, replace the not-very-useful type message
with the command-explanation, and replace the value (previously
command-explanation) by the stderr of the failed command.

FIXES #865
2017-11-28 11:38:26 -05:00
Adriaan de Groot
9df796a3fd [libcalamares] Log earlier, warnings-- 2017-11-28 11:26:59 -05:00
Adriaan de Groot
1e27c6438a [libcalamares] Special-case CalledProcessError 2017-11-28 11:21:42 -05:00
Adriaan de Groot
a0a8ab0048 [libcalamares] Refactor Python target_env calls
This is why the whole refactoring started: to get the process output
and exit code in one spot so we can attach the process output
to the (Python exception) CalledProcessError in all the code
paths, not just those that are explicitly looking for output.
2017-11-28 10:55:53 -05:00
Adriaan de Groot
6693d91152 [libcalamares] Refactor bp:list -> QStringList 2017-11-28 10:42:00 -05:00
Adriaan de Groot
9d31380980 [libcalamares] Refactor target-environment calls
- Add a more general targetEnvCommand() that returns both
   error code and process output.
 - Change existing targetEnvCall() and targetEnvOutput()
   to use general form while discarding some data.
2017-11-28 10:27:24 -05:00
Adriaan de Groot
f5aec1ad8a [libcalamares] Add output to CalledProcessError
- Refactor, internal _handle_check_target_env_call_error doesn't need
   to be in header or visible.
 - Add optional output (of the command) to the Python exception.
2017-11-28 08:53:40 -05:00
Adriaan de Groot
1f3f6111f7 [libcalamares] Log output from failed commands 2017-11-28 08:40:12 -05:00
Adriaan de Groot
b4d4351825 [libcalamares] Better Python traceback handling:
- log the whole error message as plain text
 - convert to HTML only for the ui
2017-11-28 08:33:32 -05:00
Adriaan de Groot
188050a77c Merge branch 'master' into usertracking 2017-11-21 07:29:49 -05:00
Adriaan de Groot
e8e284f724 Merge remote-tracking branch 'origin/kcrash' 2017-11-13 13:18:53 +01:00
Adriaan de Groot
7a7e2b16cb [libcalamares] Some extra system-information functions 2017-11-08 09:51:46 -05:00
Adriaan de Groot
e83b4d33f8 [libcalamares] Another convenience config-extraction function 2017-11-08 07:40:44 -05:00
Adriaan de Groot
f3eb557fdb [libcalamares] Provide some convenience functions for extracting configuration data 2017-11-03 11:02:06 -04:00
Adriaan de Groot
2d31e987c0 [libcalamaresui] Unrelated typedef for JobList 2017-11-03 11:02:06 -04:00
Adriaan de Groot
33f78b375d Merge branch 'master' into kcrash 2017-09-27 09:52:01 -04:00
Adriaan de Groot
dcc66c2793 Clang: for gcc, don't produce empty COMPILE_FLAGS 2017-09-25 17:08:09 +02:00
Adriaan de Groot
6924bd7d23 Clang: produce fewer warnings (all caused by boost headers) 2017-09-25 16:33:48 +02:00
Adriaan de Groot
7f00073e7f Clang: warnings-- 2017-09-25 16:23:47 +02:00
Adriaan de Groot
a4a05acc61 Remove more crashreporter references 2017-09-20 09:25:05 +02:00
Adriaan de Groot
40c49bd50d Clang: be more explicit about marking third-party code.
- This is only a partial solution to warnings caused by third-party
   code, since #including the headers from other sources won't apply
   the warning-suppressions.
 - Flags are not applied when building the source as part of a larger
   target, but are on re-building just one object (it seems -- CMake
   issue to track down).
2017-09-21 04:53:09 -04:00
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
Aurélien Gâteau
165d28fc23 Abort installation when a job fails 2014-07-10 14:47:06 +02:00
Teo Mrnjavac
fe7a64d5ab Add ProcessJob, a wrapper for external commands. 2014-07-10 12:08:43 +02:00
Teo Mrnjavac
dbadbf69ec Const correctness. 2014-07-10 12:06:23 +02:00
Teo Mrnjavac
d1151d87cf Move implementation to cpp file. 2014-07-09 19:08:53 +02:00
Aurélien Gâteau
6881fdab6e JobResult 2014-07-09 15:50:27 +02:00
Aurélien Gâteau
04743eb4be Basic JobQueue implementation 2014-07-08 19:21:55 +02:00
Aurélien Gâteau
f10f2026ad Update partitionmanager submodule 2014-07-07 14:52:25 +02:00
Teo Mrnjavac
4ec72f4afb Refactored calamares_bin into calamares_bin and libcalamaresui.
Now linking with -Wl,--no-undefined!
Moved find_package KF5 from the root CMakeLists.txt to the partitioning
module where it belongs. KF5 deps should be limited to plugins.
Lots of random fixage to make stuff link.
Removed CalamaresApplication reference from Settings.
Removed the use of AbstractPage, we don't need it right now.
2014-07-03 18:00:40 +02:00
Aurélien Gâteau
bcfbf3eda2 Dummy implementation of JobQueue so that I can call it 2014-06-30 18:02:19 +02:00
Teo Mrnjavac
f1da3373a8 Added Typedefs.h and Job/JobQueue interfaces. 2014-06-27 18:04:53 +02:00
Teo Mrnjavac
afa1d9dce0 To build with partitionmanager: cmake -DWITH_PARTITIONMANAGER=1 2014-06-27 15:55:25 +02:00
Teo Mrnjavac
6388171521 Stubs for JobQueue and Job. 2014-06-27 15:55:25 +02:00
Aurélien Gâteau
02af2dccb9 Introduce libcalapm
This adds a submodule pointing to a fork of KDE Partition Manager. All
Calamares-specific changes are in the "calamares" branch of this fork.
2014-06-26 16:46:06 +02:00
Aurélien Gâteau
3cc7fe3245 Rename config.h to CalamaresConfig.h
Avoid name clashes with partitionmanager's config.h
2014-06-26 14:22:13 +02:00
Teo Mrnjavac
6324feb2f3 Probably best to not even try to mkdir /usr/lib 2014-06-24 13:38:01 +02:00
Teo Mrnjavac
ef48f36445 Add modules path in build dir if --debug.
Also fix config.h location.
2014-06-24 13:35:21 +02:00
Teo Mrnjavac
ab5c818f4f Fix -Wnarrowing warnings in KDSingleApplicationGuard 2014-06-19 11:13:02 +02:00
Teo Mrnjavac
d20e3ce598 Add DLLEXPORT_PRO definitions. 2014-06-18 18:42:01 +02:00
Teo Mrnjavac
13fcf387c7 A bunch of work on loading plugins.
Also switched to C++11.
2014-06-18 18:05:04 +02:00
Aurélien Gâteau
1da7ba446d Fix link error on Qt5 libs 2014-06-17 14:59:49 +02:00
Teo Mrnjavac
05d355f21f Config files are YAML, not JSON. We depend on yaml-cpp for parsing. 2014-06-13 16:40:42 +02:00
Teo Mrnjavac
4e14ec7834 Fixed defines for Logger 2014-06-12 13:49:58 +02:00
Teo Mrnjavac
6899b1f0fa Added CMake magic for plugin infrastructure.
Added ViewManager.
Added dummy Settings class.
Added dummy plugin interface (UI plugins only).
Added dummy greeting plugin.
Added DLLEXPORT macros for UI plugin interface and plugins.
2014-06-11 13:39:20 +02:00
Teo Mrnjavac
b21dc4fe4c Added Utils, Logger, Translations, QCommandLineParser, init boilerplate 2014-06-06 17:19:59 +02:00
Teo Mrnjavac
2120685822 Fix error in headers. 2014-06-04 18:23:48 +02:00
Teo Mrnjavac
27cea281bc Added KDSingleApplicationGuard boilerplate because it's a singleton.
Also DllMacro.h
2014-06-04 18:19:05 +02:00
Teo Mrnjavac
b5ec7c4702 CMake skeleton. 2014-06-04 16:35:26 +02:00