Compare commits

...

5368 Commits

Author SHA1 Message Date
Adriaan de Groot
1c2cceb3b8 Mention both of the fixed bugs 2020-08-10 22:58:11 +02:00
Adriaan de Groot
9413b28209 [libcalamares] Improve logging - report correct number of jobs left 2020-08-10 20:22:48 +02:00
Adriaan de Groot
e9f2c57442 [users] Missing ! makes install always fail
FIXES #1483
2020-08-10 18:37:26 +02:00
Adriaan de Groot
31cfdf926c [libcalamares] Apply SPDX to utils/ 2020-08-10 18:21:42 +02:00
Adriaan de Groot
172859dc2d Changes: pre-release housekeeping 2020-08-10 18:21:36 +02:00
Adriaan de Groot
c48ec6bf94 Merge pull request #1481 from demmm/calamares
[welcomeq] language bar icon configurable
2020-08-10 17:02:58 +02:00
Adriaan de Groot
03871db597 [users] **keep** the create users job
- need to add the job to the list rather than just leaking it
2020-08-10 16:52:19 +02:00
Adriaan de Groot
cac3e042d8 [libcalamares] Improve logging in runCommand() (less chatty) 2020-08-10 16:41:19 +02:00
Adriaan de Groot
3a0155b69d [calamares] Fix up multiple-moc of KDSAG
- was getting multiple definitions of moc-related code due to automoc
  combined with KDSAG having its own #include moc, comment-out the include.
- while here, simplify the CMake bits for building KDSAG
2020-08-10 16:41:19 +02:00
demmm
01f0367459 [localeq] use image instead of theme icon 2020-08-10 12:30:55 +02:00
Adriaan de Groot
740d723ec0 CMake: add SPDX identifiers to top-level CMakeLists.txt
- This is kind of bogus, since the file has existed for much longer
  than the identifier says, but I don't want to do spelunking now.
2020-08-10 09:44:34 +02:00
Adriaan de Groot
a873badf87 [libcalamares] Update SPDX identifiers in locale/ 2020-08-10 09:43:13 +02:00
Adriaan de Groot
296146e4f8 [libcalamares] update SPDX licensing on generated files
- the scripts are BSD-2-clause,
- the generated files are CC0 (I'm not *100%* sure about the
  derived file CountryData_p.cpp, which lists countries and
  country codes -- it **is** extracted from CLDR data which
  is not CC0)
2020-08-10 09:32:50 +02:00
Adriaan de Groot
4a3378d8b9 [libcalamares] Repair tests around save/load YAML round-trip
- QStringList doesn't round-trip correctly; add a test to
  demonstrate that.
- Fix existing test to **not** use QStringList, but QVariantList
  (of strings), which is how other code would use it.

The above is **kind** of moot because nothing uses the YAML-save
function, but it might.

While here, fix another test: YAML-loading can load JSON just fine.
2020-08-09 23:01:59 +02:00
Adriaan de Groot
e2bf62a64b [libcalamares] Repair test for old Qt
- Qt 5.11 and early 5.12 just don't support Esperanto at all
2020-08-09 22:35:10 +02:00
Adriaan de Groot
c1d7d3daa6 ci: put a space after directory names in user-visible messages
- this makes is much easier to double-click-select the directory,
  since the . isn't attached and won't be selected along with the
  directory anymore.
2020-08-09 21:10:24 +02:00
Adriaan de Groot
4c8a624c0b ci: update the GPG key ID used for signing 2020-08-09 21:03:58 +02:00
Adriaan de Groot
afebe8211a Changes: pre-release housekeeping 2020-08-09 21:01:44 +02:00
Adriaan de Groot
f07c6ed876 i18n: drop pythonqt translations from the tooling 2020-08-09 21:00:40 +02:00
Adriaan de Groot
f08b4e502a i18n: update English source translations 2020-08-09 20:58:16 +02:00
Calamares CI
4808201944 i18n: [calamares] Automatic merge of Transifex translations 2020-08-09 20:49:43 +02:00
Adriaan de Groot
2b9b8bbbe8 Merge branch 'issue-1479' into calamares
Special case reiserfs (named "reiserfs" in /etc/fstab and as
a `mount -t` argument).

FIXES #1479
2020-08-09 09:43:01 +02:00
Adriaan de Groot
62a8ee9708 [libcalamares] Add name-for-partition-type method
- add apidox to all the untranslatedFS() methods
- add the most-basic of untranslatedFS(), which works on a given
  FileSystem::Type; this one can handle special cases where
  Cala needs a different untranslated name than what KPMCore provides.
2020-08-09 00:00:14 +02:00
Adriaan de Groot
537aad1222 [libcalamares] SPDX, DLLEXPORT on partition/FileSystem.h 2020-08-08 23:32:09 +02:00
Adriaan de Groot
fe3495ff97 [libcalamares] Expand KPMCore tests
- check on FS names as well
2020-08-08 22:54:59 +02:00
Adriaan de Groot
30335f27f0 Merge branch 'fix-joburg' into calamares
Resolve a long-standing annoyance. With the new model for TimeZones
and nicer data structures, along with consistent find-methods,
we can spot-patch TZ data to handle special cases of bad timezones
being assigned to obviously-otherwise locations.
2020-08-09 00:36:35 +10:00
Adriaan de Groot
5e5701363c [libcalamares] Test the spot-patch for Johannesburg
- Add a note about notation, degrees-minutes
2020-08-09 00:35:19 +10:00
Adriaan de Groot
e35992cf0b [libcalamares] Add spot-patches to timezone data
- for the purposes of Calamares's nearest-location selection algorithm
  for timezone selection, introduce spot patches: alternate markers
  on the map to indicate "things close to here belong in this timezone".
- hide the implementation detail in the find() methods.
2020-08-09 00:21:31 +10:00
Adriaan de Groot
028d424c73 [libcalamares] Expand testing of TZ location lookup
- Cape Town is in South Africa, so one might expect it to get South
  Africa's timezone -- which is Africa/Johannesburg -- but Windhoek
  is closer, so it gets that.
- Port Elisabeth is similar: Maseru lies between it an Johannesburg,
  so it gets the wrong timezone, too.

These both illustrate how the limited resolution of the map, together
with the "closest location" lookup, can give poor results. For most
of South Africa, the "wrong" timezone is closer than the right one.
2020-08-09 00:21:31 +10:00
Adriaan de Groot
6a33e72b58 [libcalamares] Refactor test to be data-driven
- this test is going to get a lot more cases, so prepare for that
2020-08-09 00:21:30 +10:00
Adriaan de Groot
00626fd96c [libcalamares] Refactor timezone loading
- load from a TextStream. This is prep-work for alternate TZ data
  sources.
2020-08-09 00:21:30 +10:00
Adriaan de Groot
0948963d86 [locale] Port TZ widget lookup to new find() method
- The TZ widget uses a different coordinate system (mapping lat and lon
  to pixel locations, and then calculating Manhattan distance from
  that), so needs a different distance function.
- Simplify code: there's just one "closest TZ" function.
2020-08-09 00:21:30 +10:00
Adriaan de Groot
2f871acbfd [libcalamares] Expose distanceFunc-find for timezones 2020-08-08 13:45:32 +02:00
Adriaan de Groot
0fda1dcf7d [libcalamares] Refactor finding-TZ algorithm
- introduce a distance function and use that, rather than coding it
  inside the find() function. This is prep-work for unifying the
  find() calls, based on various coordinate systems.
2020-08-08 13:26:39 +02:00
Adriaan de Groot
fdbc253623 Merge branch 'issue-1457' into calamares
Support /etc/default/grub.d/ -- keep in mind that the **rest** of the
logic in writing a grub configuration file is unchanged, so 00calamares
may roughly override "global" or top-level grub variables like
GRUB_TIMEOUT.

FIXES #1457
2020-08-07 13:59:41 +02:00
Adriaan de Groot
473daecdbf [grubcfg] expand config-testing for the new features
- create directories for new tests ahead of the tests themselves;
  this **can** still cause problems if a test is run standalone.
- if creating the grub-dir at runtime is necessary, be informative
  if it fails.
2020-08-07 13:58:28 +02:00
demmm
e2a5eb6840 [welcomeq] language bar icon configurable
similar functionality as in welcome module, set in welcomeq.conf
2020-08-07 12:44:07 +02:00
Adriaan de Groot
8bf95b6881 [grubcfg] Support prefer_grub_d settings 2020-08-07 12:13:51 +02:00
Adriaan de Groot
064fff0c12 [grubcfg] Drop default_dir
- the default_dir was only stored in modify_grub_default() to
  create the directory if needed; move that functionality to
  the get_grub_config_paths() function (and drop the "s",
  since it now returns just one).
2020-08-07 12:07:26 +02:00
Adriaan de Groot
aa50dfb8a1 [grubcfg] refactor finding-the-grub-paths into a function 2020-08-07 12:02:42 +02:00
Adriaan de Groot
f85c70d4d2 [grubcfg] Introduce prefer_grub_d
- new setting for using /etc/defaults/grub.d/ (SEE #1457), not implemented
- add missing fields to schema for config file
2020-08-07 11:55:16 +02:00
Adriaan de Groot
3fc23e3b07 [grubcfg] Fix config schema 2020-08-07 11:43:48 +02:00
Adriaan de Groot
43f9f2e2f4 Merge branch 'issue-1477' into calamares
FIXES #1477
2020-08-07 11:30:30 +02:00
Adriaan de Groot
463ea3c73f [displaymanager] Fix config schema 2020-08-07 10:50:33 +02:00
Adriaan de Groot
f324a055e5 CMake: put completions with the other "misc. installs" 2020-08-07 10:43:29 +02:00
Adriaan de Groot
2ce12d5368 Merge branch 'issue-1476' into calamares
Go over the locale module again:
- new models that avoid weird casts and inconvenient iteration
- shared timezone data
- simple sorting and filtering
- simplify the map / QML version

FIXES #1476
FIXES #1426
2020-08-07 08:33:44 +02:00
Adriaan de Groot
1eef6d69f2 Merge branch 'mt-gs' into calamares
Fix up potential thread-safety issues with GS, expand testing.
2020-08-07 01:12:18 +02:00
Adriaan de Groot
cb20ba6aba [libcalamares] More GS load/save testing
- failures elsewhere boil down to QStringList is not supported,
  but a QVariantList of QVariants of QStrings is.
2020-08-07 01:11:14 +02:00
Adriaan de Groot
0de98fe4c1 [libcalamares] Expand YAML testing a little
- load/save of a stringlist seems to work
2020-08-07 00:57:30 +02:00
Adriaan de Groot
dbc49f001e [libcalamares] Test GS
- test insert, remove, emitted signals
- test loading and saving of YAML and JSON

This shows up a big bug in the YAML saving code (which was never
used, it seems, anyway)
2020-08-07 00:45:36 +02:00
Adriaan de Groot
a44e6802e5 [libcalamares] Rename tests for consistency 2020-08-07 00:13:58 +02:00
Adriaan de Groot
3c618a9a19 [libcalamares] Fix GS load behavior
- the loadJson behavior did too many notifications, and was likely to
  deadlock; write directly to the map instead and emit only once.
- the loadYaml method did something very different from its
  documentation or intent.
2020-08-07 00:08:47 +02:00
Adriaan de Groot
ac713d8c4b [libcalamares] Apply locking to GS access 2020-08-07 00:06:13 +02:00
Adriaan de Groot
dc5d98af7d [libcalamares] Address outdates assumptions about thread-safety 2020-08-07 00:02:14 +02:00
Adriaan de Groot
0121e3755b [libcalamares] GS improve load/save
- save should be const
- rename save() to saveJson() for parity with saveYaml()
2020-08-07 00:02:14 +02:00
Adriaan de Groot
104452513b [libcalamares] Document GS
- write apidox for all of GlobalStorage
- while here, polish up the SPDX bits
2020-08-06 23:14:44 +02:00
Adriaan de Groot
527449a102 [libcalamares] Improve GS debugDump() formatting 2020-08-06 22:54:37 +02:00
Adriaan de Groot
c64aefe43c [libcalamares] Remove unused include, declaration 2020-08-06 22:53:32 +02:00
Adriaan de Groot
52d1c8f88a [locale] Explicitly update GS from the locale step
- refactor into some free functions (out of the lambda's for connecting)
- introduce new method to call from onLeave(), matching previous
  widget behavior
2020-08-06 18:32:51 +02:00
Adriaan de Groot
c69bd972e9 [localeq] Demonstrate "offline" lookups
- we can do GeoIP and GeoNames lookups, **or**
- use Calamares's internal GeoIP lookup and country / city hints.

The online version is much more accurate, but costs more lookups;
in these examples, set it all to "offline" and document what needs
to change (code edit) to use the online version.

It's probably a good beginner job to introduce a bool in localeq.qml
to switch the behaviors.
2020-08-06 16:09:41 +02:00
Adriaan de Groot
71ca1e1544 [localeq] Pick up Config changes before showing the module 2020-08-06 16:09:41 +02:00
Adriaan de Groot
32c8338a9c [locale] QML doesn't like const 2020-08-06 16:09:41 +02:00
Adriaan de Groot
91cc5a2b42 [locale] Update the map-QML implementation
- Config has suitable strings for displaying TZ information.
  Use them and automatic bindings. Don't update the strings manually.
- Suggest online or offline TZ lookups based on what the distro wants.
  Edit the QML to pick online lookups (needs access to the geonames
  service, though).
- Drop the variables that point at config and geoip: the Config
  object has a currentLocation, which is filled in by both the
  configuration and any GeoIP lookup -- it doesn't have city
  or country information though.
2020-08-06 16:09:41 +02:00
Adriaan de Groot
15a8d62986 [locale] Add a 'current timezone' strings to Config
- status is a longer phrase
- name is a short human-readable name
- code is the internal code

Code that writes its own "Timezone set to" messages can use
the name, rather than the status.
2020-08-06 16:09:41 +02:00
Adriaan de Groot
eda14ce548 [locale] Avoid nullptr deref
- when no location has been set at all, there's no sensible TZ
  to report; just leave it blank. In *practice* you won't hit this
  code from the Calamares UI before a location has been set, because
  the Config object is instantiated and then immediately configured,
  but from tests or unusual UIs it could be.
2020-08-06 16:09:41 +02:00
Adriaan de Groot
b36ad4c7f4 [locale] Add test for Config initialization
- needs some massaging because Config otherwise depends on
  ModuleManager which is a UI class (for the Reasons),
  but we already have a BUILD_AS_TEST define for that purpose.
- demonstrate a nullptr deref.
2020-08-06 16:09:41 +02:00
Adriaan de Groot
04e53be934 [locale] Repair test: don't re-init te occupied-pixels set each loop
- while here, merge Tests.h to the cpp file
- Fix build when debugging timezones (missed during earlier refactor)
2020-08-06 16:09:41 +02:00
Adriaan de Groot
21f97db8fd [libcalamares] Offer translation lookup of regions 2020-08-06 16:09:41 +02:00
Adriaan de Groot
ad3c0de936 [libcalamares] Reduce logging in POD manipulation 2020-08-06 14:27:55 +02:00
Adriaan de Groot
296337d45d [libcalamares] Implement nearest-TZ lookup
- This version, based on lat+lon lookup, handles wrap-around the
  globe at -180 W (which is very close to +180 E)
- Test wrap-around-the-globe lookups
2020-08-06 14:27:44 +02:00
Adriaan de Groot
9e274aac07 [libcalamares] Make ZonesModel more QML-friendly
- expose TZ lookup (as a QObject*, which QML needs)
- C++ code should use find(), which is safer
2020-08-06 14:27:09 +02:00
Adriaan de Groot
ab69e7c83a [libcalamares] Add API for geographical lookup
- find a zone given lat, lon -- with a failing test and a bogus
  implementation.
2020-08-06 01:52:50 +02:00
Adriaan de Groot
626dd038da [locale] Re-do locale module with new TZ data
- The Config object now uses the re-done models and timezone data
- most of the properties of the locale Config are unchanged
- much less complication in extracting data from the zones model
2020-08-06 01:34:55 +02:00
Adriaan de Groot
d814a3dba8 [libcalamares] Sort the models before use
- zones and regions alphabetically by key
2020-08-06 01:34:55 +02:00
Adriaan de Groot
37c211fd14 [libcalamares] Add an iterator for the full zones model 2020-08-06 01:34:55 +02:00
Adriaan de Groot
7ea2ad7dc6 [libcalamares] Add accessors for TZ data and region in the model
It's convenient when e.g. QComboBox::currentData() gets the key
"automatically", and the default role for that method is UserRole,
so let the value of KeyRole overlap.
2020-08-06 01:34:44 +02:00
Adriaan de Groot
245d4a8ef7 [libcalamares] Add a find() to ZonesModel
- Look up TZ data by region and zone name.
2020-08-06 01:33:25 +02:00
Adriaan de Groot
478a275764 [libcalamares] Make TimeZoneData public
- Also make it a QObject so we can add properties and make it useful
  for QML consumption.
2020-08-06 01:33:21 +02:00
Adriaan de Groot
10fb5b95c7 [libcalamares] Split out CStringPair into TranslatableString
The (renamed) class TranslatableString keeps a key value
(e.g. New_York) and a human-readable version around; the
human-readable one is passed through QObject::tr() for translation
on-the-fly.
2020-08-05 17:52:41 +02:00
Adriaan de Groot
3e32335511 [libcalamares] Introduce a filtering model per-region 2020-08-05 17:14:13 +02:00
Adriaan de Groot
1afdcc9c82 [libcalamares] Give zones data, too
- while here, fix bug in TimeZoneData that didn't munge names
  (so it reported "New_York")
2020-08-05 16:45:41 +02:00
Adriaan de Groot
33e39b92fb [libcalamares] Satisfy test, return region names 2020-08-05 16:36:00 +02:00
Adriaan de Groot
609ea8350c [libcalamares] Failing test: there is data in the regions model 2020-08-05 16:25:45 +02:00
Adriaan de Groot
82cc652f55 [libcalamares] Re-done zones loading
- just make one big list of zones, one short list of regions
- the models are non-functional right now
2020-08-05 16:21:05 +02:00
Adriaan de Groot
ca40d2e2d9 [libcalamares] Introduce a failing test for the number of regions 2020-08-05 15:17:09 +02:00
Adriaan de Groot
fce05acf1e [libcalamares] Rip out all the TZ models
- The models are overly complicated: **overall** there is just one
  list of timezones, and we need various views on that list.

Start over with an empty model of regions.
2020-08-05 15:11:52 +02:00
Adriaan de Groot
5066624a8e Merge branch 'issue-1471' into calamares
FIXES #1471
2020-08-05 14:25:49 +02:00
Adriaan de Groot
082770032f [hostinfo] Massage test to handle ARM
- there **is** another source of information about the CPU,
  so in the test use that to cross-check what hostCPU() says.

NB: it's probably a good idea to fall back on the same file
    in hostCPU() for better accuracy.
2020-08-05 14:24:28 +02:00
Adriaan de Groot
272cf099be [hostinfo] Try to recognize ARM as well
- /proc/cpuinfo is a terrible information source; it contains very
  different information on x86 from arm (testen on rpi4 and rock64).
2020-08-05 14:07:39 +02:00
Calamares CI
b8530c2c08 i18n: [python] Automatic merge of Transifex translations 2020-08-05 13:53:54 +02:00
Calamares CI
ee3f308686 i18n: [calamares] Automatic merge of Transifex translations 2020-08-05 13:53:54 +02:00
Adriaan de Groot
b49b9a66e6 [users] Drop data-access from the Page
- get username, password etc. from the config object, not the page
- jobs now depend entirely on config
- handle logic of "what's the root password" in Config
2020-08-05 13:42:18 +02:00
Adriaan de Groot
eb72d662d1 [users] Add password fields to Config
- no checking is done for validity, and there is no password-status
2020-08-05 13:29:12 +02:00
Adriaan de Groot
b2b9ae7799 [users] Add tests for moved password-check configuration
- link the PW checks to the test, and libpwquality if needed
- test only does very basic config-mungeing
2020-08-05 13:03:56 +02:00
Adriaan de Groot
900deb5dc8 [users] Move the configuration of password checks to Config
- the Widget (Page) does not need to know the password checks,
  that's business logic that belongs to Config.
2020-08-05 13:03:18 +02:00
Adriaan de Groot
7b87242107 [users] PW checking does not need widgets 2020-08-05 12:56:09 +02:00
Adriaan de Groot
0ecf1e1cc1 [users] Drop default parameter for badness 2020-08-05 12:24:39 +02:00
Adriaan de Groot
fcafe5db8f [users] Test the moved setHostname Config
- document that the default for writeHostsFile is *true*
2020-08-05 10:50:38 +02:00
Adriaan de Groot
2efce1ac7a [users] Move the hostname-setting config
- The configuration for writing the hostname (to /etc/hostname,
  to /etc/hosts and possibly to systemd-hostname) is read-only,
  because it comes from the config file and won't change after.
2020-08-05 10:29:13 +02:00
Adriaan de Groot
32e3933355 CMake: stop clobbering config files
When CMake runs, configure_file() will clobber the config files in
the build/ directory, which is annoying during testing: you need
to keep making the same edits, or edit the source.

- Introduce new behavior: the config file is **not** overwritten unless
  the source file is newer. This means that edits to config files
  in the build directory are preserved.
- If INSTALL_CONFIG is **on** then the files are clobbered anyway (the
  source is considered new regardless).
2020-08-05 10:03:35 +02:00
Adriaan de Groot
f7102527a8 CMake: stop clobbering config files
When CMake runs, configure_file() will clobber the config files in
the build/ directory, which is annoying during testing: you need
to keep making the same edits, or edit the source.

- Introduce new behavior: the config file is **not** overwritten unless
  the source file is newer. This means that edits to config files
  in the build directory are preserved.
- If INSTALL_CONFIG is **on** then the files are clobbered anyway (the
  source is considered new regardless).
2020-08-05 00:51:08 +02:00
Adriaan de Groot
a8c4f5b758 CMake: fix up warnings from the LibPWQuality module
- don't include other find modules
- pkgconfig isn't totally necessary, it might work without
2020-08-04 23:09:51 +02:00
Adriaan de Groot
35dff4d12c [users] Migrate reuse-password and password-strength to Config
- add the "reuse user password for root" setting to Config,
  make the UI page follow that setting.
- add the require-strong-password default and toggle settings to
  Config; this is not well-checked yet.

On the widget / UI side, connect checkboxes only if they are
visible; refactor reuse-user-password-for-root settings.
2020-08-04 22:40:27 +02:00
Adriaan de Groot
44bc61d4be [users] set up Config object before widget 2020-08-04 22:37:27 +02:00
Adriaan de Groot
05f3fbea05 [locale] Apply SPDX headers 2020-08-04 13:45:36 +02:00
Adriaan de Groot
3f1b31e352 [libcalamares] Explicit tests for Interlingue
- The language code "ie" is not recognized,
- "ia" is, and it seems to be the post-war variant of
  Interlingue, so we may want to rename / relabel.

The testEsperanto test -- now split into scripts and
esperanto -- would have picked "ie" out of the list
because it does map to C locale.
2020-08-04 13:26:37 +02:00
Adriaan de Groot
b27bc11975 [libcalamares] Merge locale tests files
- No need for a separate .h in most test cases
2020-08-04 12:59:55 +02:00
Adriaan de Groot
29cfcb01da i18n: suppress Interlingue
- like Esperanto before Qt 5.12, Interlingue does not
  seem to be supported by QLocale, so it gets turned into
  "C" locale, which then messes up the default language
  selection in the welcome page.

Move it to _incomplete until QLocale does support it.

FIXES #1475
2020-08-04 12:40:08 +02:00
Adriaan de Groot
b5c0158ec2 [libcalamares] Some if-method-exists trickery
This builds some machinery so that we can create
a detector for member-functions (methods) named <whatever>.
Use the macro to build the machinery:

DECLARE_HAS_METHOD(myFunction)

then after that,

has_myFunction<T>

is either std::true_type or std::false_type
depending on whether T has a method myFunction.
2020-08-03 21:52:47 +02:00
Adriaan de Groot
7b6ff8dd37 [libcalamares] Minor tests for parts of RAII 2020-08-03 15:13:51 +02:00
Adriaan de Groot
0902c74809 [hostinfo] Editorialize on the tests
- the implementation understands Intel and AMD, but the test
  was written for my desktop machine (which fails elsewhere).

SEE #1471
2020-08-03 11:36:44 +02:00
Adriaan de Groot
b1b81f27cc Merge branch 'issue-1297' into calamares
This does **not** result issue-1297, but brings in some
prep-work and pleasant clean-ups.
2020-07-31 23:21:23 +02:00
Adriaan de Groot
41ce42cd4b [partition] Drop InstallChoice enum from Page
- The enum for install choice was copied into PartitionActions and
  used in the Config object; its definition does not belong in the UI.
- Chase the renamings required.
2020-07-31 23:20:51 +02:00
Adriaan de Groot
e21a2f0676 [partition] Add InitialInstallChoice to Config
- add an option to select what button should be selected when the
  partitioning module is started; TODO: the actual functionality is
  **not** implemented.
- drop the previously suggested name, which didn't get beyond the
  comments-in-the-config-file stage (but which intended to do the
  same things as this one)
- add option to schema already, even if it's not implemented.

See #1297

FIXUP conf
2020-07-31 23:20:10 +02:00
Adriaan de Groot
380e2b3613 [partition] Fix up schema file 2020-07-31 23:12:49 +02:00
Adriaan de Groot
7e60ee059c Merge branch 'txstats' into calamares
Improve automation in handling translation-lists updates.
2020-07-31 12:48:57 +02:00
Adriaan de Groot
5380f8062d i18n: when editing CMakeLists in-place, be a little more verbose 2020-07-31 12:46:52 +02:00
Adriaan de Groot
1a87879f9b i18n: enable updating stats-in-place 2020-07-31 12:44:55 +02:00
Adriaan de Groot
dacd236f6a i18n: factor out output method for txstats 2020-07-31 12:22:40 +02:00
Adriaan de Groot
a66eabe9ef i18n: support bogus TX data for testing 2020-07-31 12:17:07 +02:00
Adriaan de Groot
3762d4df05 i18n: refactoring txstats 2020-07-31 12:07:01 +02:00
Adriaan de Groot
fad364993c i18n: use modern argument-handling in the TX statistics script 2020-07-31 10:46:54 +02:00
Adriaan de Groot
eacaa99609 Changes: welcome to a complete Tajik translation.
FIXES #1468
2020-07-31 10:32:46 +02:00
Calamares CI
40f5440517 i18n: [python] Automatic merge of Transifex translations 2020-07-31 10:29:03 +02:00
Calamares CI
eca56c7684 i18n: [desktop] Automatic merge of Transifex translations 2020-07-31 10:29:02 +02:00
Calamares CI
c6235d03e7 i18n: [calamares] Automatic merge of Transifex translations 2020-07-31 10:29:02 +02:00
Adriaan de Groot
42889b5d7f [users] Perhaps triggers the build failure
- This is the only use of STATICTEST together with , and is the only
  one failing to link.
2020-07-31 09:52:06 +02:00
Adriaan de Groot
fec8361ed5 [partition] Drop "convenience" functions
- the functions are used just once
- thin wrappers for named-enum methods that are just as convenient
2020-07-30 10:51:48 +02:00
Adriaan de Groot
824dac62d8 [partition] ChoicePage to use Config object 2020-07-30 10:44:10 +02:00
Adriaan de Groot
d103c42091 [partition] Fix build now swapChoices lives in config 2020-07-30 10:26:58 +02:00
Adriaan de Groot
baabcc5bb4 Merge branch 'calamares' into issue-1297 2020-07-29 22:35:23 +02:00
Adriaan de Groot
14df032803 CI: build verbose the first time, too 2020-07-29 22:32:52 +02:00
Adriaan de Groot
8f133fe113 Merge branch 'issue-1459' into calamares
FIXES #1459
2020-07-29 19:12:33 +02:00
Adriaan de Groot
33fd5a1fad [partition] Report a valid choice if a partition is selected 2020-07-29 17:58:13 +02:00
Adriaan de Groot
ef4c2666e1 [partition] Update icons on all state changes
The encryption widget (passphrase for disk encryption) should show
ok / warning / error whenever the state changes; this avoids
it showing up first with **no** icon (it should show a warning
when both passphrases are empty).
2020-07-29 14:46:11 +02:00
Adriaan de Groot
0eb1f002db [partition] defuse is-next-enabled
Both the KPMCore and the ChoicePage -- asynchronously -- were connected
to the nextStatusChanged() signal. So if the core said next was true,
that could end up communicated to the ViewManager, enabling the *next*
button in the UI.

Changing to the *erase* page generally triggers a KPMCore reload,
which later emits a `hasRootMountPointChanged()` signal, once the
layout is applied and the disk gets a root mount point. So we'd
get a `true` from KPMCore, which -- because it was connected directly
to the signal to the VM -- would override any other considerations.

Hook up both signals to an intermediate slot that just recalculates
whether the next button should be enabled, based on the state
both of the Choice page and whatever else.
2020-07-29 14:21:19 +02:00
Adriaan de Groot
f1c4caba48 [partition] Refactor checking next-enabled
- move the calculations to an own method (so it can use
  early-return and log things to explain why next is disabled)
2020-07-29 14:21:19 +02:00
Adriaan de Groot
43cd415d9a [partition] Switch to 'modern' Error/ok icons 2020-07-29 14:21:19 +02:00
Adriaan de Groot
892e9798f4 [users] Sanitize tests
- move the testing of config-object methods to its own tests
- simplify file structure for the password job tests
2020-07-29 13:31:39 +02:00
Adriaan de Groot
cc1136fb0e [users] Untangle tests
- name sources for tests consistently Test<something>
- chase some required source changes with the renaming
- name test targets consistently too
2020-07-29 13:23:41 +02:00
Adriaan de Groot
f75839340a [users] Drop QRegExpValidator
- QREValidator is a GUI part, so to avoid a dependency on GUI for the
  (non-GUI) Config object, port to the simpler QRE (which we had
  available anyway)
2020-07-29 12:27:56 +02:00
Adriaan de Groot
b9372ba432 [users] Move default groups setting to Config
- drop groups from the viewstep
- note that the Config object should also be in charge of creating
  Jobs (but then the de-tangling needs to be completed)
- add tests of default groups loading

Doesn't compile because QRegExpValidator is a gui thing.
2020-07-29 12:18:25 +02:00
Adriaan de Groot
33eab6e869 CMake: improve validator dependency-checking
The configvalidator has some extra Python dependencies. Cache
the restults of checking the dependencies (convenient for developers),
and also explain what's going on if the feature is switched off.
2020-07-29 10:58:07 +02:00
Adriaan de Groot
37c236cfe7 Merge branch 'reduce-version-deps' into calamares
This is a developers quality-of-life fix: reduce the amount
of recompilation that is done after running cmake. Since KDevelop
runs cmake in the background regularly, this was causing 4 files
to be rebuilt every run that don't *really* need to be rebuilt.
2020-07-29 10:09:46 +02:00
Adriaan de Groot
afb0b36f58 CMake: simplify QRC generation
Use configure_file() to avoid stomping on timestamps: if the list
of translations doesn't change, we don't need to rebuild the
translated QRC.
2020-07-29 10:07:57 +02:00
Adriaan de Groot
bfa1f618c7 CMake: Improve RCC version-checking
Previously, we check for RCC support every single time CMake runs.
This is slightly wasteful, and it wasn't being done right anyway.
But it's moot because:

- Calamares supports back to Qt 5.9
- Qt 5.9's version of rcc (at least, 5.9.7) **does** support the
  command-line argument `--format-version 1`
- Everything newer does too.

Simplify translations a little, too: just use autorcc rather than
building things by hand.
2020-07-29 10:05:01 +02:00
Adriaan de Groot
38b347f8f2 [libcalamares] Take ownership of the versioning headers
- The sources were in src/calamares but processed and generated
  in libcalamares, which is weird at best.
- Generate an "extended" version header.
- Use the extended version in the logger and nowhere else.
- While here, minor coding style cleanups

The overall change here means that after running CMake, only
Logger.cpp needs to be rebuilt (if the extended version has
changed) and not a handful of other files that don't need the
full version number, but do happen to include CalamaresVersion.h
2020-07-29 10:02:37 +02:00
Adriaan de Groot
9568fc082f [calamares] Try to reduce compile-churn with version header
- Very rarely do we need the full-git-version of Calamares,
  so split that into a separate header with a little trickery.
- In the "normal" version header, drop the full-git-version values.
2020-07-29 10:02:37 +02:00
Adriaan de Groot
b06498194e [machineid] Fix up schema
- schema didn't allow recent (2019) configuration entries
- remove mention of deprecated key from example config
2020-07-28 14:46:56 +02:00
Adriaan de Groot
506ea39508 Merge branch 'issue-1462' into calamares
This does about half of the move-settings-from-Widget-internals to Config.
By having the configuration **and** the business logic in a Config object,
we can hook up other UIs more easily while preserving the business logic.
(e.g. this is a prerequisite for QML uis, but also for scripting and
quickstart logic).

SEE #1462
2020-07-28 12:22:51 +02:00
Adriaan de Groot
cc2e3f79ff [users] Move job creation from widget to viewstep
- This is a half-step: the ViewStep shouldn't do job creation either,
  eventually it needs to be the Config object, but this is better
  than asking the widget (UI) to create some jobs.
- When updating login- or host-name, or the autologin setting,
  set it in GS as well. This is a minor improvement over doing
  it only when leaving the page.
- Since the Config object isn't complete, there are leftovers in
  the widget, which has a fillGlobalStorage() for the not-jobs-related
  bits previously in createJobs().
2020-07-28 12:16:03 +02:00
Adriaan de Groot
6a03bcb25e [users] Move setRootPassword to Config
- this really controls whether a root password is written during installtion,
  so rename to writeRootPassword in the code.
2020-07-28 11:59:53 +02:00
Adriaan de Groot
45b71c24e7 [users] Move autologin setting to Config 2020-07-28 11:41:52 +02:00
Adriaan de Groot
6c930af5cb [users] Use convenience method for labeling Full Name 2020-07-28 11:18:07 +02:00
Adriaan de Groot
0813ec3327 [users] Misc cleanups
- unused includes
- avoid "my--pc" .. the dash is inserted by makeHostnameSuggestion()
2020-07-28 10:49:12 +02:00
Adriaan de Groot
9018913af5 [users] Move hostname validation to Config 2020-07-28 10:45:38 +02:00
Adriaan de Groot
40d7d1baac [users] Move login validation to Config object
- add a loginNameStatus which is a QString (empty if things are ok)
  stating what's wrong with the loginName, if anything.
2020-07-28 10:21:23 +02:00
Adriaan de Groot
a564d7a753 [users] Fix build on Linux 2020-07-28 09:42:32 +02:00
Adriaan de Groot
d4a784f521 [users] Hook up full name to Config 2020-07-27 17:52:46 +02:00
Adriaan de Groot
630a508049 [users] Hack - create the widget anyway
- since the configuration is in the UI parts, we need the widget still
  to load the whole configuration (until the config object is complete).
  Create the widget before doing configuration; this is wrong. But now
  we don't hit nullptr derefs all over.
2020-07-27 17:29:46 +02:00
Adriaan de Groot
8a14cc7ffc [users] Move some configuration from Page to Config object
- make the HostName textbox just a view on the Config's HostName
- make the username and login textboxes view onto Config
- query the Config rather than the UI for job data
2020-07-27 17:26:46 +02:00
Adriaan de Groot
5ffa09000a [users] Add hostname guessing to Config 2020-07-27 17:26:46 +02:00
Adriaan de Groot
411a202ba5 [users] Do some login-name guessing 2020-07-27 17:26:46 +02:00
Adriaan de Groot
66ae1823a5 [users] Give Config object a user and login name
- This is incomplete, because the business logic of guessing
  a login from the username is not here.
2020-07-27 17:26:46 +02:00
Adriaan de Groot
35916eb20f [users] Move autologin and sudoers groups to Config 2020-07-27 17:26:46 +02:00
Adriaan de Groot
2f786079f3 [users] Move shell settings to the Config object
- this is a set-only property (as far as the current ViewStep is
  concerned) and is passed around in GS for non-obvious reasons.
2020-07-27 17:26:46 +02:00
Adriaan de Groot
8497aad7a1 [users] Apply coding style 2020-07-27 17:26:46 +02:00
Adriaan de Groot
f9b114a67a [users] Pass the Config object to the Page
- delay construction of the Page (widget) until it's needed
- hand the Config object to the Page on construction

This is prep-work for putting the configuration information into the
Config object, rather than in the UI elements.
2020-07-27 17:26:46 +02:00
Adriaan de Groot
4d85a64e4f [users] Fix build on Linux 2020-07-27 17:14:06 +02:00
Adriaan de Groot
dab831b2ff [users] Introduce a (stub) Config object 2020-07-27 15:55:04 +02:00
Adriaan de Groot
1e08ee084f [users] Actually add the test file 2020-07-27 15:35:24 +02:00
Adriaan de Groot
92938f63f8 Merge branch 'move-permissions' into calamares 2020-07-27 15:05:46 +02:00
Adriaan de Groot
8ce7457023 [users] Add test for create-users code
- just one test for groups-file loading
- while here fix bug that blank and comment lines were being
  kept as valid group names
2020-07-27 15:00:14 +02:00
Adriaan de Groot
8a6e4af511 [users] FreeBSD support creating user
- call pw useradd and pw usermod as needed; the code paths are basically
  the same in invoking a program in the target system to do the work.
2020-07-27 13:45:00 +02:00
Adriaan de Groot
26b8c82630 [users] Refactor user-creation and user-group-setting into methods
- This is prep-work for handling other tools for user- and group-
  creation as well.
2020-07-27 13:29:51 +02:00
Adriaan de Groot
1fddf723fe [users] FreeBSD support creating groups 2020-07-27 13:18:09 +02:00
Adriaan de Groot
b99b87f787 [users] Explain some weird internals 2020-07-27 12:37:04 +02:00
Adriaan de Groot
90a0605f38 [preservefiles] [users] Use the Permissions methods
- don't call out to tools (executables) when we have an API for it
  (which might call out to those tools, but that's abstracted)
2020-07-27 12:27:45 +02:00
Adriaan de Groot
59dff815fc [libcalamares] Additional apply() methods for Permissions 2020-07-27 12:27:38 +02:00
demmm
389e36303f Changes: document keyboardq changes 2020-07-27 11:17:00 +02:00
Adriaan de Groot
1babcd2aa4 [libcalamares] Put Permissions in CalamaresUtils namespace
- most of the things in utils/ are in the CalamaresUtils namespace,
  let Permissions follow suit. Chase the name change in the
  *preservefiles* module.
- add an `apply()` function for doing the most basic of chmod.
  Note that we don't use `QFile::setPermissions()` because the
  **values** used are different (0755 for chmod is 0x755 in the
  enum value passed to `setPermissions()`).
2020-07-27 10:57:15 +02:00
Adriaan de Groot
5e35bcc830 Changes: document new features, translations 2020-07-27 10:42:45 +02:00
Adriaan de Groot
d6910b47b5 Merge pull request #1464 from apt-ghetto/fixManualPartitionMsg
Revert Manual Partition instructions
2020-07-26 11:19:30 +02:00
Adriaan de Groot
d22f392609 CMake: update language lists
- welcome Tajik
- welcome Interlingue
2020-07-26 11:09:45 +02:00
Calamares CI
d0cdc8169e i18n: [python] Automatic merge of Transifex translations 2020-07-26 11:02:37 +02:00
Calamares CI
d5d2d2a1f1 i18n: [desktop] Automatic merge of Transifex translations 2020-07-26 11:02:36 +02:00
Calamares CI
e0bb7d9f6f i18n: [calamares] Automatic merge of Transifex translations 2020-07-26 11:02:36 +02:00
Adriaan de Groot
a01c428270 Merge pull request #1465 from apt-ghetto/fixRootUsername
[users] Do not allow 'root' as username
2020-07-25 17:22:34 +02:00
demmm
3a3507f2b2 [keyboardq] remove background image use
make the module more in line with the look of the rest of Calamares
2020-07-25 17:18:28 +02:00
apt-ghetto
01b22d27a8 Do not allow 'root' as username
On the "Users" tab, the user can choose a username. It was possible to
use 'root' as username, which led to an installation error, because
'root' exists already.

Added a new check to the username validation.

Fixes #1462.
2020-07-25 16:17:57 +02:00
apt-ghetto
2b3cc17782 Revert Manual Partition instructions
With PR calamares/calamares#1357 the label of the "Manual partitioning" option
was changed, which introduced several downsides:
  * The label is shown for UEFI and for BIOS installations.
  * The mountpoint of the ESP is and should be distro specific.
  * The label always mentioned GPT, which is irrelevant.
  * The label should explain, what the option does, and not, what
    problems can occur under certain circumstances.
2020-07-24 17:56:58 +02:00
demmm
d114c383fa [localeq] remove obsolete vars & comments
set index in i18n.qml to -1, old settings were just for reading from the bogus model
current model uses strings, so index fails to read from it.  This fixes cala crashing on loading i18n.qml
2020-07-24 17:34:14 +02:00
Adriaan de Groot
409ab6ee86 [users] Refactor writing sudoers file
- use existing convenience methods
2020-07-24 14:27:42 +02:00
Adriaan de Groot
bc484ae5da [users] Refactor /etc/group file handing 2020-07-24 14:27:42 +02:00
Adriaan de Groot
4d3422b931 [libcalamares] dox for Permissions
- Expand the documentation, emphasize octal-vs-decimal
- east-const consistently in this file (most of Calamares is west-const)
- shuffle the is-valid bool to the end of the data members,
  so sorting by size.
2020-07-24 14:24:03 +02:00
Adriaan de Groot
11482559ad [netinstall] There is no netinstall.qrc 2020-07-24 13:39:43 +02:00
Adriaan de Groot
2c110bfc66 Merge branch 'calamares' into move-permissions 2020-07-24 12:29:10 +02:00
Adriaan de Groot
a835bb9a10 Changes: document new locale features 2020-07-24 12:26:02 +02:00
Adriaan de Groot
682146aa9b [libcalamares] Expand dox on TimeZone pairs 2020-07-24 12:15:32 +02:00
Adriaan de Groot
09020d68b0 [libcalamaresui] Make dox of ModuleManager signals more explicit 2020-07-24 12:15:27 +02:00
Adriaan de Groot
a3e528aae3 Merge branch 'issue-1391' into calamares 2020-07-24 11:57:07 +02:00
Adriaan de Groot
a080e47f4b [locale] Add prettyStatus to Config
- this is present in the previous config, and helps make the modules
  consistent by returning prettyStatus in both ViewSteps.
2020-07-24 11:53:32 +02:00
Adriaan de Groot
23810aae3d CMake: switch to autorcc from manual futzing 2020-07-24 11:29:47 +02:00
Adriaan de Groot
07c096673d [localeq] Report summary before install 2020-07-24 11:10:56 +02:00
Adriaan de Groot
a4ed160060 [localeq] Offer a Config setting to set location from region/zone
- already had methods for various kinds of broken-up data, but
  not one for plain "region/zone" strings; having this makes
  it easier for QML to report a zone.
- use the region/zone method from QML, so that clicking on the
  world map updates the actual TZ in Config.
2020-07-24 11:07:58 +02:00
Adriaan de Groot
e78cde7ccb [locale] Update GS when the LC value changes (not just location) 2020-07-23 23:32:53 +02:00
Adriaan de Groot
00e9454344 [localeq] Hook up to Config object
- get network status from the global Network object; document that
- get the strings describing the language and LC settings from
  the config-object instead of roll-our-own
- use the model of supported locales from Config to populate listboxes
- connect selection of language or LC to the Config object
2020-07-23 23:32:53 +02:00
Adriaan de Groot
75da1bece4 [locale] Add properties for language and LC codes
- we already had the human-readable status strings, but also want the
  actual code (particularly for being able to **update** the code
  from QML)
2020-07-23 23:25:52 +02:00
Adriaan de Groot
fdbfbfe284 [localeq] Fix build, missed one case of removed member variable 2020-07-23 17:46:20 +02:00
Adriaan de Groot
fb927c9763 [localeq] Use network-connected property to direct map-loading 2020-07-23 12:57:26 +02:00
Adriaan de Groot
36fb1124be [libcalamares] Export network status as Q_PROPERTY and to QML 2020-07-23 12:57:01 +02:00
Adriaan de Groot
51e743a67f [libcalamares] Give GlobalStorage a parent 2020-07-23 12:48:18 +02:00
Adriaan de Groot
4b7403d115 [localeq] Re-do with new Config
- remove stray and useless TODOs
- remove unnecessary empty overrides
- clean up includes
- drop all the code that is now in Config

Since the business logic (setting locations, maintaining GS, ...)
is all in the Config object, the ViewStep is remarkably simple:
hook up a UI to the Config, which in the case of QML is done
automatically.
2020-07-23 11:11:18 +02:00
Adriaan de Groot
d90d451f42 [locale] Remove unnecessary includes 2020-07-23 10:43:31 +02:00
Adriaan de Groot
1f3cb32486 [locale] Apply coding style 2020-07-22 17:10:08 +02:00
Adriaan de Groot
824cb4d4b8 [locale] As the Page is constructed, it shouldn't change the location
- since the Page hooked up a model and changed the region-selection
  **after** connecting to signals, it would reset the location
  to Africa/Abijan (alphabetically the first timezone) during
  construction. Don't do that.
2020-07-22 17:06:14 +02:00
Adriaan de Groot
4f684be83d [locale] Avoid crashes in the map widget if there is no current location 2020-07-22 17:06:14 +02:00
Adriaan de Groot
42331f6e13 [locale] Move GeoIP lookup to config
- replace the weird synchronous-lookup-during-requirements-checking
  with a proper async lookup when the system is ready.
2020-07-22 17:06:14 +02:00
Adriaan de Groot
a25d61077f [locale] Add GeoIP settings to Config
- this doesn't do the lookup **yet**
- while here, refactor setConfigurationMap so it reads like a story,
  with chunks bitten out into a handful of static inline void methods.
2020-07-22 11:53:06 +02:00
Adriaan de Groot
f64a1eb16a [libcalamaresui] Document the signals from ModuleManager 2020-07-22 11:52:42 +02:00
Adriaan de Groot
b607cf3f98 [locale] Get starting TZ in Config
- read the *region* and *zone* settings; this duplicates what
  the ViewStep does and is currently unused, but ..
- add new support for using the system's TZ (rather than
  the fixed values from *region* and *zone*). This complements
  GeoIP lookup.

This is the actual feature that started the long rewrite of
the Config object (so that all the business logic would be in
one place, usable for both widgets and QML).

FIXES #1381
2020-07-22 01:28:10 +02:00
Adriaan de Groot
781d76c9e5 [locale] Avoid nullptr if there is no location 2020-07-22 00:32:29 +02:00
Adriaan de Groot
0c9480aa3f [locale] Move more business logic to Config
- writing *localeConf* settings to GS can be done always when the
  formats are set, rather than special-cased. The code
  that handles the "special case" of no widget existing for the ViewStep
  overlooks the other crashes that happen then.
- Since Config knows what jobs to create, just ask it rather than
  keeping a copy.
2020-07-22 00:23:50 +02:00
Adriaan de Groot
f6419d5de1 [locale] New setting *adjustLiveTimezone*
- allow finer-grained control over whether-or-not to adjust the
  timezone in the live system.
- handle some special cases at the point of loading-configuration.
- document the setting in locale.conf
- correct some documentation bugs
- adjust the YAML schema for locale.conf so it's legal YAML syntax
  **and** validates the current file.
2020-07-22 00:11:55 +02:00
Adriaan de Groot
995ebd5c83 [locale] Remove unused #includes 2020-07-21 17:44:44 +02:00
Adriaan de Groot
1de2210d29 [locale] Move the GS updating to the Config object
- since all locale changes need to be entered into GS anyway, this
  is something the Config object can do because it is the source
  of truth for locale settings.
- drop all the GS settings from the Page.
2020-07-21 17:38:22 +02:00
Adriaan de Groot
f7c2e4a3e7 [locale] Sanitize Config signals and slots
- remove the weirdly-structured prettyStatus and similar:
  the Config object has human-readable status strings (three,
  for location, language, and LC-formats) which can be
  normal properties with signals.
- Implement prettyStatus in the view step by querying the Config.
2020-07-21 17:38:22 +02:00
Adriaan de Groot
ef08ff6ac0 [locale] Move status strings from Page to Config
- the config knows the status and how to describe it,
  fetch the strings from there.
2020-07-21 15:51:49 +02:00
Adriaan de Groot
855b21a7db [locale] Remove redundant method
- configuration information lives in the Config object
2020-07-21 15:35:38 +02:00
Adriaan de Groot
abc98cfa79 [locale] Simplify allocation, guard against crashes if the dialog is deleted. 2020-07-21 14:57:09 +02:00
Adriaan de Groot
66eacce654 [locale] Move localeconfiguration to Config object
- the language and LC settings migrate from page to config
- add API for explicitly setting language (which is then preserved
  when clicking new locations)
2020-07-21 13:16:52 +02:00
Adriaan de Groot
a307217d83 [locale] Tidy LocaleConfiguration
- expand API documentation
- minor coding-style adjustments
2020-07-21 11:13:40 +02:00
Adriaan de Groot
81520bbbf9 [locale] Chase RAII conveniences
- several early-return paths would leave the TZ widget blocked
- use the zones data from config
2020-07-21 00:21:42 +02:00
Adriaan de Groot
0645a46b42 [libcalamares] Expand RAII conveniences 2020-07-21 00:21:16 +02:00
Adriaan de Groot
98f912f80a [locale] Drop LocalePage:;init
- setting the initial location is something the Config-object should do
- setting up the combo-boxes can be done in the constructor
2020-07-21 00:11:16 +02:00
Adriaan de Groot
726f882185 [locale] Move current-location to Config 2020-07-20 23:06:12 +02:00
Adriaan de Groot
5a6a9a0d45 [locale] Move job-creation to Config
- since Config knows what settings there are, it should create the
  jobs to run later -- not the Page.
- this doesn't work yet, because the Config does **not** know what
  the selected timezone is yet.
2020-07-20 22:21:29 +02:00
Adriaan de Groot
8c21b59853 [locale] Remove unused localegen (moved to Config earlier) 2020-07-20 18:13:33 +02:00
Adriaan de Groot
f0cac7d669 [locale] Hook tz widget up to the Config's data 2020-07-20 16:54:44 +02:00
Adriaan de Groot
4d5ff6d5c4 [locale] Make the Page use the region model from Config 2020-07-20 16:27:15 +02:00
Adriaan de Groot
88d1d255f6 [locale] Add regions & zones models to Config
- The models are constant pointers, even if their contents aren't.
- Make the top-level (region) model point to the global TZ list.
2020-07-20 16:16:53 +02:00
Adriaan de Groot
e8282f27a3 Docs: update RELEASE.md with some GPG-info and remove old steps 2020-07-20 14:06:21 +02:00
Adriaan de Groot
51b7ec875f [locale] Don't need own copy of zones list 2020-07-20 13:55:00 +02:00
Adriaan de Groot
439f828d9b [locale] Document TZ widget 2020-07-20 13:47:23 +02:00
Adriaan de Groot
931ce20f30 [locale] Reduce API surface
- getLocationPosition doesn't need to be a method, since it calls out
  to a static function of TimeZoneImageList anyway.
2020-07-20 13:38:20 +02:00
Adriaan de Groot
25ba1bb767 [locale] Remove localeGenLines from page
- the Config object took over loading of the string list
- expose the list as a property
- drop loading code from the page.
2020-07-20 13:24:31 +02:00
Adriaan de Groot
338635146f [locale] Hand the Config object also to the page 2020-07-20 12:58:35 +02:00
Adriaan de Groot
b6b5c44996 [locale] Load supported locales in Config 2020-07-20 12:55:07 +02:00
Adriaan de Groot
8119c7e72a [locale] Reset Config object
The Config object wasn't being used at all in the locale module;
reset it to empty and start using it in locale, so that
configuration functionality can be added to it as-needed,
and with the necessary refactoring built-in.
2020-07-20 12:37:27 +02:00
Adriaan de Groot
0d5db2dd06 [localeq] Config-handling is a total bodge-job, disable 2020-07-20 12:36:58 +02:00
Calamares CI
e1c85340e4 i18n: [calamares] Automatic merge of Transifex translations
FIXES #1455
2020-07-20 12:19:07 +02:00
Adriaan de Groot
4e4ffde604 Changes: post-release housekeeping 2020-07-11 17:00:36 +02:00
Adriaan de Groot
724b92ee60 [partition] Drop documentation of vanished parameter 2020-07-11 16:35:54 +02:00
Calamares CI
92a27a2c2d i18n: [python] Automatic merge of Transifex translations 2020-07-11 16:29:36 +02:00
Calamares CI
f5ada5e9ef i18n: [desktop] Automatic merge of Transifex translations 2020-07-11 16:29:35 +02:00
Calamares CI
97bdb9b4f7 i18n: [calamares] Automatic merge of Transifex translations 2020-07-11 16:29:35 +02:00
Adriaan de Groot
cfb0bebe0e Changes: pre-release housekeeping 2020-07-11 16:27:27 +02:00
Adriaan de Groot
e1f4224bed [libcalamaresui] Fix slideshowAPI loading
In 022045ae05 a regression was introduced: if no *slideshowAPI*
is specified in the branding file, Calamares refuses to start, with
a YAML failure.

Before the refactoring, we had `YAML::Node doc` and looked up
the *slideshowAPI* in it with `doc["slideshowAPI"]`. After the
refactoring, we had `const YAML::Node& doc`. The `const` makes
all the difference:
 - subscripting a non-existent key in a mutable Node silently
   returns a Null node (and possibly inserts the key);
 - subscripting a non-existent key in a const Node returns an
   invalid or undefined node.

Calling IsNull() or IsScalar() on a Null node works: the functions
return a bool. Calling them on an invalid node throws an exception.

So in the **const** case, this code can throws an exception that it
doesn't in the non-const case:
    `doc[ "slideshowAPI" ].IsScalar()`

- Massage the code to check for validity before checking for scalar
- Add a `get()` that produces more useful exception types when
  looking up an invalid key
- Use `get()` to lookup the slideshow node just once.
2020-07-09 11:28:09 +02:00
Adriaan de Groot
a58d59d86c [libcalamares] Minor documentation on Yaml.* 2020-07-09 10:45:28 +02:00
Adriaan de Groot
da1cc7c3a5 [libcalamaresui] Don't clear the map when inserting strings
- the documentation doesn't say the map is cleared, and the one
  place this function is used doesn't need that either.
- make type of config explicit
2020-07-09 08:46:16 +02:00
Adriaan de Groot
a91edfef89 [netinstall] auto-resize the columns
- previously, the first column (name) was sized to show the
  names **that were visible at startup**, which fails when
  there are long names hidden in groups that are not expanded
  immediately.
- change the columns to resize according to the contents; this makes
  the descriptions jump to the right as the name column gets wider.

FIXES #1448
2020-07-08 13:34:38 +02:00
Adriaan de Groot
80cad17e97 Merge branch 'issue-1393' into calamares 2020-07-08 13:11:28 +02:00
Adriaan de Groot
240c703549 [partition] Don't leak the PM core object 2020-07-08 13:11:10 +02:00
Adriaan de Groot
7f1a59f02b [partition] Fix typo 2020-07-08 13:11:10 +02:00
Adriaan de Groot
313531bc4b [partition] Remove unused parameter
- there are no consumers for checking-the-capacity-of-the-drive

This parameter was introduced in 3cd18fd285 as "preparatory work"
but never completed. The architecture of the PartitionCoreModule
makes it very difficult to get the necessary parameters to
the right place, and it would probably be better to put
a SortFilterProxyModel in front of a partitioning model anyway.

Since the display code can already filter on size, just drop this one.
2020-07-08 13:08:51 +02:00
Adriaan de Groot
948c078e1a [partition] winnow floppy drives
- don't list floppy drives

FIXES #1393
2020-07-07 23:03:12 +02:00
Adriaan de Groot
a78c368367 [calamares] Tweak default QML sidebar
- make the rectangles slightly larger
- align text to center of the rectangle
- make the rectangle fill out the column; without this, the
  width would collapse back to 0 after a change in the model,
  which would draw 0-width rectangles.

FIXES #1453
2020-07-07 16:11:18 +02:00
Adriaan de Groot
2b2a69631f [libcalamaresui] Suggestions for better naming of enum values 2020-07-07 15:29:13 +02:00
Adriaan de Groot
3565b6806a [libcalamares] Massage the logger output
- continuations, for the console, no longer print the date + level,
  which makes things easier to visually group and read.
- the file log is mostly unchanged, except it contains more spaces now.
2020-07-07 15:25:25 +02:00
Adriaan de Groot
631923abf8 [libcalamares] Console-logging follows -D flag exactly
- Don't always log LOGEXTRA and below.
2020-07-07 15:12:50 +02:00
Adriaan de Groot
67aa34c4a4 [calamares] Center the progress texts 2020-07-07 14:13:49 +02:00
Adriaan de Groot
37ce49b001 CMake: stop overwriting branding settings in the build dir
- Only copy over branding files if they are newer

Typically I have KDevelop open while working on Calamares; if I
am editing settings in `branding.desc` in the build directory,
then every time KDevelop runs CMake in the background, my
changes (for testing branding things!) would be overwritten.
Don't do that.

For normal builds with a clean build directory, this doesn't change
anything since the target is missing; changing a file in the
source directory **will** copy it over the build directory version.
2020-07-07 14:11:16 +02:00
Adriaan de Groot
14fbfa72d3 Changes: new contributions 2020-07-07 13:48:21 +02:00
Adriaan de Groot
43ebcf8b61 [packages] Keep package-manager list alphabetized 2020-07-07 13:48:07 +02:00
Adriaan de Groot
a923db0289 Merge pull request #1441 from codesardine/calamares
[packages] add pamac support
2020-07-07 07:45:04 -04:00
Vitor Lopes
c16866fb88 pep8 302 2020-07-05 08:37:28 +01:00
Vitor Lopes
e29462bc05 [pamac] rework db_lock 2020-07-05 08:35:52 +01:00
Vitor Lopes
d78cbfc644 update example configurations and schema 2020-07-05 08:18:38 +01:00
Vitor Lopes
2c76106a66 Merge branch 'calamares' of https://github.com/calamares/calamares into calamares 2020-07-05 08:14:32 +01:00
Adriaan de Groot
46ad704ede [partition] Fix build for old KPMCore
SEE #1444
2020-07-03 22:33:00 +02:00
Adriaan de Groot
36a9088480 Merge pull request #1444 from gportay/add-parttype-partattrs-to-global-storage
[partition] Add the GPT type and attributes to global storage
2020-07-03 16:18:56 -04:00
Adriaan de Groot
0be6f63d2a Merge pull request #1443 from gportay/add-default-value-to-variant-helpers
[libcalamares] Add default value to variant helpers
2020-07-03 16:12:34 -04:00
Adriaan de Groot
d3f9415bc1 [packages] Expand schema to cover the operations
- Not complete, since the items in the operations aren't done
2020-07-03 22:07:18 +02:00
Adriaan de Groot
8aa8ac2d26 [packages] Tidy up configuration
- fix the schema so the schema is valid json-schema
- the schema doesn't actually validate the *operations* yet
- sort the named backends (needs a double-check that the
  list covers all the ones we currently support)

SEE #1441
2020-07-03 21:51:39 +02:00
Adriaan de Groot
08aa362c5c [license] Warnings-reduction
- Don't do in code what is already done in the designer (.ui) file
- setFrameStyle() is difficult because it mixes different enums
  into an int, which causes the warning from clang.
2020-06-27 00:33:50 +02:00
Adriaan de Groot
3b5c4839e3 [libcalamaresui] Warnings-- 2020-06-26 20:34:33 +02:00
Adriaan de Groot
31a1b710bc Docs: say something about QML modules 2020-06-25 15:26:48 +02:00
Adriaan de Groot
6735ff1cd0 Docs: give up on PythonQt modules 2020-06-25 14:45:35 +02:00
Adriaan de Groot
fa2f91aa46 [libcalamaresui] Minor documentation improvements 2020-06-25 14:04:49 +02:00
Adriaan de Groot
3c48bbdb9c Merge branch 'issue-1446' into calamares
Improve margin handling.

There's a margin around the "central widget" in Calamares, which serves
to keep the contents away from window edges. This works for widgets,
which all have a content widget with a layout, but is a little weird for
QML components: the QML component probably has its own internal margins,
and the margin around it serves little purpose.

If there's panels (navigation, progress) around the central widget, the
margins also serve to keep the content away from those navigation
elements.

**But** if there are no panels, then a QML component still gets a margin
around it. Pretty much the only reason for a no-panel setup is that you
have a full-screen QML version of Calamares where the navigation is
"inside" each QML component. This could be the case in a customised OEM
tool built from Cala, for instance.

For this special case, improve overall margin handling by giving the
view steps some control over their own margins.

FIXES #1446
2020-06-25 00:00:41 +02:00
Adriaan de Groot
8ced67680d [calamares] Allow get/set of panel-sides
- Add access to the panel-sides membe of the view manager, and
  calculate which sides are populated by panels (if any).
- Pass the calculated panel-sides to the view manager before it
  starts adding viewpages, so they get consistent margins.
2020-06-25 00:00:13 +02:00
Adriaan de Groot
68aecf6a26 [libcalamaresui] Special margins for QML view steps
If there are no surrounding panels, drop the margin around the QML on
the assumption it needs to be full screen under special circumstances.
2020-06-24 23:41:20 +02:00
Adriaan de Groot
d952faf909 [libcalamaresui] Set margins based on viewstep suggestion 2020-06-24 22:12:59 +02:00
Adriaan de Groot
d7ed450dbf [libcalamaresui] Give ViewManager data about side-panels 2020-06-24 21:41:06 +02:00
Adriaan de Groot
1648f311fe [libcalamaresui] apidox touch-up 2020-06-24 21:26:22 +02:00
Adriaan de Groot
748d76df4f [libcalamaresui] Add support for steps with own margins 2020-06-24 21:15:37 +02:00
Adriaan de Groot
347a25d13d [libcalamaresui] Avoid nullptr deref
- there's a check already there, and probably this means things are hopelessly
  broken anyway, but let's not crash here.
2020-06-24 20:48:06 +02:00
Adriaan de Groot
4a6ee39f8b [libcalamaresui] Blanket unmargin the content area 2020-06-24 11:08:31 +02:00
Adriaan de Groot
bfbb0f1c49 [libcalamaresui] Mark some TODO for 3.3, in passing 2020-06-24 04:59:19 -04:00
Adriaan de Groot
8a9e85db71 Branding: shuffle around a bit, expand documentation 2020-06-24 04:53:22 -04:00
Adriaan de Groot
a4f9ac9aea CI: update signing key
The signing key expired some time ago, and while I made a
new signing key, there's no indication that a different
key is being used. Update the ID for future signatures.
2020-06-23 17:17:45 +02:00
Adriaan de Groot
e113c8cc9b Changes: fixup announcement 2020-06-23 17:05:25 +02:00
Adriaan de Groot
e206eb086b [partition] Missing includes for Qt-compatibility 2020-06-23 17:05:08 +02:00
Adriaan de Groot
c3ff9edfa2 [tracking] Add a test executable
- just a stub, hardly tests useful functionality
2020-06-23 14:43:26 +02:00
Adriaan de Groot
3ee53435c5 [libcalamares] Fix constness issue (gcc reported) 2020-06-23 14:30:12 +02:00
Adriaan de Groot
1dfb25372b [tracking] Warnings-reduction
- Give classes a virtual destructor that need them
- Remove spurious ;
- Refactor addJobs() because that doesn't need to be in a class
- Remove redundant intermediate base-classes
2020-06-23 13:37:56 +02:00
Adriaan de Groot
0bede0692a [locale] Warnings-- on static_cast with no message 2020-06-23 13:18:30 +02:00
Adriaan de Groot
daf9451e69 [welcome] Warnings-- 2020-06-23 13:16:56 +02:00
Adriaan de Groot
22fdca8f44 [libcalamares] Use Logger::Pointer for logging void-pointers 2020-06-23 13:02:06 +02:00
Adriaan de Groot
8a14316e16 [calamares] be less chatty in startup
- without the SubEntry part, the function name is printed each time.
2020-06-23 13:01:08 +02:00
Adriaan de Groot
916c10816b [libcalamares] Logging-convenience for pointers
- This reduces the amount of (void*) C-style casts in the code,
  and formats generic pointers more consistently.
2020-06-23 12:29:18 +02:00
Adriaan de Groot
192263cf9d [libcalamares][modules] Use compatibility for QString::split()
- Use the compatibility value, which has an enum value suitable
  for the Qt version in use.
2020-06-23 11:13:55 +02:00
Adriaan de Groot
d6b0583bad [libcalamares] Compatibility-layer for QString::split
- QString::split() api changed in 5.14, in 5.15 generates warnings,
  so introduce a compatibility value.
2020-06-23 11:08:55 +02:00
Adriaan de Groot
b8e30e201f CMake: drop reference to external os-* modules
- The USE_* infrastructure is only **inside** the Calamares build
  tree (see `src/modules/CMakeLists.txt`) so there is no point
  in referring to external repositories.
2020-06-23 10:45:11 +02:00
Adriaan de Groot
4cdb603580 Changes: pre-release housekeeping 2020-06-23 10:43:49 +02:00
Adriaan de Groot
45970fee27 Changes: pre-release housekeeping
- update the translations list, welcome Azerbaijani (in two variants)
- this is a hotfix release due to UB
2020-06-22 17:34:32 -04:00
Calamares CI
ba46a27b0f i18n: [python] Automatic merge of Transifex translations 2020-06-22 17:11:11 -04:00
Calamares CI
560095d6f4 i18n: [desktop] Automatic merge of Transifex translations 2020-06-22 17:11:11 -04:00
Calamares CI
7ae55b250c i18n: [calamares] Automatic merge of Transifex translations 2020-06-22 17:11:10 -04:00
Adriaan de Groot
203c389175 Merge pull request #1442 from gportay/fix-initialization-of-partattributes
[partition] Fix missing initialization of the attribute partAttributes
2020-06-22 17:04:28 -04:00
Gaël PORTAY
9392473fec [partition] Add the GPT type and attributes to global storage 2020-06-22 16:37:20 -04:00
Adriaan de Groot
e24f812b2d [libcalamares] Chase Permissions move
- Fix include names in *preservefiles*
- Tidy up include guards
- Fix CMakeLists in *perservefiles* and *libcalamares*
- Use SPDX license headers
2020-06-22 16:32:47 -04:00
Adriaan de Groot
4473d7f5dd [preservefiles] Move permissions classes to libcalamares 2020-06-22 16:22:59 -04:00
Gaël PORTAY
c9f942ad67 [libcalamares] Add default value to variant helpers
- Some variant helpers take a default parameter if the map does not
  contains the given key or if the type mismatches. Make all helpers
  behave the same.
2020-06-22 15:37:24 -04:00
Gaël PORTAY
4974d86932 [partition] Fix missing initialization of the attribute partAttributes
- Initialize the attribute partAttributes to 0; it is a primitive type
  and it is not initialized in some constructors.
  Fixes commit c1b5426c6 ([partition] Add support for partition attributes).
- Move implementation of default constructor to cpp.
2020-06-22 14:24:14 -04:00
Adriaan de Groot
fde1aad465 CMake: add support for USE_*=none (from the os-modules branch) 2020-06-22 13:39:36 +02:00
Adriaan de Groot
7f85781d99 Changes: post-release housekeeping 2020-06-22 13:22:37 +02:00
Adriaan de Groot
bff0bed07e [users] Apply coding style (only CreateUserJob.cpp though)
- use ci/calamaresstyle
- SPDX licensing
2020-06-22 13:17:39 +02:00
Vitor Lopes
976150bc1e simplify install code 2020-06-22 00:12:02 +01:00
Vitor Lopes
ddfd120197 add missing self 2020-06-21 23:43:31 +01:00
Vitor Lopes
5bb49e252d Update main.py 2020-06-21 18:28:17 +01:00
Vitor Lopes
75bba349be Update main.py 2020-06-21 18:03:21 +01:00
Vitor Lopes
f8db15adc4 add pamac support 2020-06-21 17:24:29 +01:00
demmm
ccff4edd91 [keyboard] fully functional QML module
added missing components listed as ResponsiveBase, ListItemDelegate & ListViewTemplate
parts of which were on nitrux
keyboard.qml no longer uses buttons within ListView, can't work as buttons and have them visible
see https://doc.qt.io/qt-5/qml-qtquick-listview.html#footerPositioning-prop
set ListView as actually visible within a normal calamares window size
2020-06-19 17:05:29 +02:00
Adriaan de Groot
5da2012465 [users] Expand schema to support the keys documented in users.conf
- Now the documentation in the file and the source is leading
  to update the schema, but in future those should go hand-in-hand
2020-06-18 16:23:32 +02:00
Adriaan de Groot
463545290e [users] Fix up schema syntax
- Remove schema items *availableShells* and *avatarFilePath* because
  those have no implementation.
2020-06-18 16:12:40 +02:00
demmm
53715f28d1 Merge branch 'calamares' of https://github.com/calamares/calamares into calamares 2020-06-18 15:53:52 +02:00
demmm
665c425633 [CHANGES] add localeq & welcomeq additions 2020-06-18 15:53:38 +02:00
Adriaan de Groot
c284024b0e i18n: Update English translations 2020-06-18 15:47:18 +02:00
Calamares CI
13d8b85de2 i18n: [python] Automatic merge of Transifex translations 2020-06-18 14:54:45 +02:00
Calamares CI
0155d051aa i18n: [calamares] Automatic merge of Transifex translations 2020-06-18 14:54:44 +02:00
Adriaan de Groot
b2fcc61987 Changes: pre-release housekeeping 2020-06-18 14:53:19 +02:00
Adriaan de Groot
b9b79f11a4 [unpackfs] Prevent accidental 0777 permissions on /
FIXES #1418
2020-06-18 14:47:33 +02:00
Adriaan de Groot
0305476f8a Merge branch 'issue-1287' into calamares
Major update to the 'tracking' module with improved wording,
functionality, QML-preparation, and a working kuserfeedback mode.

FIXES #1287
2020-06-18 13:46:57 +02:00
Adriaan de Groot
1b11cc90c4 [tracking] Polish the phrase for 'none' a bit 2020-06-18 13:37:43 +02:00
Adriaan de Groot
6365b7a362 Merge branch 'calamares' into issue-1287 2020-06-17 18:10:33 +02:00
Adriaan de Groot
2cad90d9ca Merge pull request #1437 from gportay/handle-integers-with-octal-or-hexa-prefix
[libcalamares] Handle integers prefixed with 0 or 0x
2020-06-17 17:32:19 +02:00
demmm
fc91b4ce60 [localeq] use js to get the hasInternet status
switching between Map.qml & Offline.qml now happens properly
2020-06-17 16:52:59 +02:00
Adriaan de Groot
8ad221311d [tracking] Can't uncheck 'none' box by itself
- If the 'no tracking' box is checked, then the way to uncheck
  it is to tick some **other** box.
- It doesn't make sense to unselect 'none' and then have .. none
  selected.
2020-06-17 15:31:53 +02:00
Adriaan de Groot
47b0fa5d55 [tracking] Get username from gs 2020-06-17 15:24:21 +02:00
Adriaan de Groot
9b8d591b5d [tracking] Configure user-tracking areas 2020-06-17 15:11:11 +02:00
Adriaan de Groot
e834ce532c [libcalamares] Add variant-map getStringList() convenience 2020-06-17 15:02:01 +02:00
Adriaan de Groot
98ab4330c4 [tracking] expand documentation of configuration 2020-06-17 14:52:48 +02:00
Adriaan de Groot
3f55d415e9 [tracking] Make names of user-tracking styles consistent
- use kuserfeedback instead of "kde", to name the technology,
  not the community
2020-06-17 14:27:28 +02:00
Adriaan de Groot
5623d8086b [tracking] Apply coding style
- massage trackingSetup macro to look like a function call
2020-06-17 14:27:28 +02:00
Adriaan de Groot
789561be6a [tracking] Apply coding style 2020-06-17 14:14:06 +02:00
Adriaan de Groot
45aac7db66 CI: update clang-format
In clang-format 10, SpaceInEmptyBlock is introduced, and defaults to
true .. which is different from the earlier formatting versions did.
For now, refuse clang-format 10, and search specifically also for
clang-format-9.0.1 because that's what I have on my laptop.

At some point, switch in the config option and then require
clang-format 10 or later (because earlier versions refuse to
run with an unknown config option)
2020-06-17 07:53:40 -04:00
Adriaan de Groot
8c1685d2cf [tracking] Connect UI to configuration
- policy buttons open the policy URL
- hide tracking levels that are not configurable
2020-06-17 12:20:35 +02:00
Adriaan de Groot
756e3084dc [tracking] Simplify updatemanager job
- sed all the URI lines with a simple replacement
- document policy requirements
2020-06-17 11:33:48 +02:00
Adriaan de Groot
9433311f24 [tracking] Explain which tracking style is disabled by URL-validation 2020-06-17 11:33:48 +02:00
Adriaan de Groot
48d0c5beeb [tracking] Do user tracking in the job queue 2020-06-17 11:33:48 +02:00
Adriaan de Groot
cb2909f6d8 [tracking] Rename "neon" tracking
KDE neon does not do this kind of tracking -- although it was originally
requested by KDE neon, no server roll-out was done once the
privacy policy was thought out.
2020-06-17 11:33:48 +02:00
Adriaan de Groot
4d6a5d0cb5 [tracking] Use KMacroExpander instead of homebrew for install-URL 2020-06-17 11:33:47 +02:00
Adriaan de Groot
c797a30a72 [tracking] Bold more relevant parts of level-descriptions 2020-06-17 11:33:47 +02:00
Adriaan de Groot
dda4ab0b2e [tracking] Improve naming
- give the on-some-checkbox-state-changed slots better names
- while here, refactor is-any-actual-tracking-option-checked
- improve other debug messages, to be a whole sentence
2020-06-17 11:33:30 +02:00
Adriaan de Groot
e84193a2cb Docs: add a FreeBSD port directory (copy it to sysutils/calamares) 2020-06-17 00:20:25 +02:00
Gaël PORTAY
e68723f1c7 [libcalamares] Handle integers prefixed with 0 or 0x
- QString to-integer members detect if an integer string begins with
  "0x" (base 16) or "0", base 8; but QVariant members do not.
- QString: the C language convention is used is base is set to 0.
- Convert to QString and use its member toLongLong() and set base to 0
  to detect integer strings begin with a prefix.
2020-06-16 14:14:47 -04:00
Adriaan de Groot
635f53a804 CI: add a BUILD_SCHEMA_TESTING
- ON by default, so if tests are built and the script works,
  those tests will run as well.
- Check that the script works by invoking it once.
2020-06-16 17:36:59 +02:00
Adriaan de Groot
f2a8f0fcdd Changes: thank Gaël and mention removal of -tools 2020-06-16 17:17:59 +02:00
Adriaan de Groot
e3b8570d61 Merge remote-tracking branch 'origin/master' into calamares
Pick up some older MRs that apply to the older branch.
2020-06-16 16:45:49 +02:00
Adriaan de Groot
bfefbd117d Merge pull request #1435 from gportay/partition-attributes
Partition Attributes
2020-06-16 16:42:30 +02:00
Adriaan de Groot
91f87ba838 Merge pull request #1409 from gportay/partition-uuid
Partition UUID
2020-06-16 16:42:24 +02:00
Adriaan de Groot
0cd8940363 [bootloader] Fix up schema 2020-06-16 16:16:07 +02:00
Adriaan de Groot
066acdbbc6 Merge branch 'yaml-schemata' into calamares 2020-06-16 16:07:57 +02:00
Adriaan de Groot
4a07bd4ae3 CI: import all the rest of the YAML schema
- These have **not** been fixed for validation, so the schema's themselves
  will fail to load. This is a consequence of variations in JSON-Schema
  representations through various drafts. Fixing the schemata is
  fairly straightforward.

This gives us 19 new tests, all of which fail.
2020-06-16 16:06:56 +02:00
Adriaan de Groot
df183d4026 [welcome] Add schema for welcome config
- Note that this is missing *languageIcon* so if that gets uncommented,
  it will fail validation.
- While here decide that  should be
  right up front in object (mappings) declaration.
2020-06-16 16:03:28 +02:00
Adriaan de Groot
a0d56acabe CI: verbose schema-failure diagnostics 2020-06-16 15:56:01 +02:00
Adriaan de Groot
b48c2745c1 CI: apply schema-validation to the example config files
- Any config file with a schema gets a test (validate-<module>)
  to test the file.
2020-06-16 14:38:13 +02:00
Adriaan de Groot
0dbc44d388 CMake: update Python3-finding
- mark for updates in 3.3: update to CMake 3.12 and use the more-modern
  Python modules for it then.
2020-06-16 14:06:26 +02:00
Adriaan de Groot
62e7128ff6 CMake: document WITH_ and BUILD_ a little more
- also mark TODO:3.3: for incompatible / surprising changes for 3.3
2020-06-16 13:54:13 +02:00
Adriaan de Groot
2e850f23e6 Changes: thanks Phil, and change-of-branch 2020-06-16 13:12:22 +02:00
Adriaan de Groot
deec0b862f [finished] Add schema for config
- Original schema from artoo@manjaro.org, modified for current JSON-Schema use
2020-06-16 13:04:34 +02:00
Adriaan de Groot
71249866df CI: add tooling for schema validation
The config files have fairly extensive documentation but no
formal description; adding JSON-Schema into the mix makes it
possible to write a machine-checkable description.
2020-06-16 12:45:29 +02:00
Gaël PORTAY
c1b5426c66 [partition] Add support for partition attributes 2020-06-15 22:05:10 -04:00
Philip Müller
fe8459b7f0 [CMake] fix typo 2020-06-15 12:33:26 +02:00
Adriaan de Groot
04067e3a35 Merge pull request #1432 from pinpox/gitignore-tags
Gitignore tags
2020-06-15 11:45:54 +02:00
Adriaan de Groot
55abe0247b [libcalamares] Fix tests on 32-bit platforms
- The size of a 2GiB partition (in bytes) is larger than the largest
  32-bit signed integer; we hit signed overflow while calculating
  2^11 * 2^10 * 2^10 and the test fails.
- Switch the whole table of sizes to qint64 instead.
- For testing purposes only, introduce a _qi suffix for qint64.

FIXES #1430
2020-06-14 23:42:25 +02:00
Adriaan de Groot
713774ab40 i18n: adjust tooling to renamed resource 2020-06-12 14:50:12 +02:00
Calamares CI
e34c0576e7 i18n: [python] Automatic merge of Transifex translations 2020-06-12 14:36:48 +02:00
Calamares CI
ba89b9f7f2 i18n: [dummypythonqt] Automatic merge of Transifex translations 2020-06-12 14:36:48 +02:00
Calamares CI
8ba9d394ec i18n: [calamares] Automatic merge of Transifex translations 2020-06-12 14:36:48 +02:00
Adriaan de Groot
a9ec592185 CI: change of default branch 2020-06-12 13:12:50 +02:00
Adriaan de Groot
70f1079873 i18n: expand the translation-load-compare tool a little, more docs 2020-06-12 12:56:13 +02:00
Adriaan de Groot
f218e2e9a6 CMake: handle Python modules built from subdirectory a/b 2020-06-12 12:05:35 +02:00
Adriaan de Groot
73f8c627bd CMake: support out-of-tree builds
- The variables that are set for out-of-tree builds are prefixed
  with  to avoid name clashes; make the module-infrastructure
  respect those instead of the in-tree variable names.
- .. and then duplicate the in-tree variables to the out-of-tree
  variables, so we only need one set of module instructions.
2020-06-12 11:35:23 +02:00
Adriaan de Groot
992079bac1 Merge branch 'master' into calamares
Deprecate the master branch.
2020-06-12 11:29:13 +02:00
Adriaan de Groot
ac8de23c6e Changes: mention recent features and contributors 2020-06-11 12:42:51 +02:00
Adriaan de Groot
4c65b8cc63 CI: remove outdated comment-crud 2020-06-11 12:26:32 +02:00
Adriaan de Groot
2673d2fc35 Merge pull request #1431 from pinpox/master
Add xbps package manager
2020-06-11 11:59:12 +02:00
Pablo Ovelleiro Corral
2ad44f6805 add tags file to .gitignore 2020-06-11 11:57:23 +02:00
Pablo Ovelleiro Corral
f034b55da2 [packages] add xbps package manager 2020-06-11 11:51:15 +02:00
Adriaan de Groot
6c40d69574 Merge branch 'issue-1428'
Install all the relevant CMake, libcalamares and libcalamaresui
files -- config and headers -- so that external modules can be
created (again). This support had severely bitrotted, so
that the only effective way to add modules was to do so inside
the Calamares build tree. Now it's independent again.

FIXES #1428
2020-06-10 17:27:41 +02:00
Adriaan de Groot
3ae519b8ed Documentation: uncomment oem-setup
- Calamares complains if this isn't set, so the example should
  probably be 'safe' from that complaint. With 3.3 plans including
  'fatal error instead of warning' this should be fixed on-time.
2020-06-10 16:58:17 +02:00
Adriaan de Groot
dc0ed24f1a [libcalamaresui] Install libcalamaresui headers
- All the headers go to relevant subdirs, but we don't keep
  libcalamares and libcalamaresui apart.
- While here, remove unused variable from libcalamares CMake
2020-06-10 16:43:34 +02:00
Adriaan de Groot
23c93904df CMake: put CMake-level ABI settings in CalamaresConfig
- drop the BuildTreeSettings, it was not usefully used
- make CalamaresConfig repeat the WITH_* settings, so that
  consumers can know the ABI offered
2020-06-10 11:51:53 +02:00
Adriaan de Groot
6c272bc8be [libcalamares] Link yamlcpp privately
- link the library privately -- the public API uses QVariantMap
- install FindYAMLCPP just in case
- add yamlcpp explicitly in the few places that really need it
  (e.g. netinstall testing the parsing of netinstall.yaml)
2020-06-10 02:27:57 +02:00
Adriaan de Groot
3c770b79b3 CMake: install all the libcalamares subdir-headers 2020-06-10 02:10:21 +02:00
Adriaan de Groot
14ff681106 CMake: give libcalamares IMPORTED includes
- Set the interface-include path for libcalamares, so that
  linking to it (as one would from an external repo) pulls in
  all the includes.
2020-06-10 02:01:59 +02:00
Adriaan de Groot
9039e15bdf CMake: tidy misc. installation bits
- don't generate uninstall file twice
- tighten up vertical space
2020-06-10 01:42:11 +02:00
Adriaan de Groot
a62d96f555 CMake: tidy up installation of CMake infrastructure
- export() only once
- document variables a bit better
- drop the LibraryDepends file
2020-06-10 01:38:27 +02:00
Adriaan de Groot
e6fe19df20 CMake: remove unused link libraries
- Nothing ever sets LIBRARY_QT5_MODULES (it would be a macro
  argument to calamares_add_library, if anything).
2020-06-10 01:38:27 +02:00
Adriaan de Groot
dc16afac4a CMake: massage IMPORTED targets and module path
- Add the Calamares CMake-modules to the search path automatically
- Export to CalamaresTargets.cmake and use namespace Calamares::
- Document imported targets
- Find Qt, because the translations machinery will need macros from that
- The installed lib links to IMPORTED libraries from KF5, so we need
  to find them (again) as well.
2020-06-10 01:37:54 +02:00
Adriaan de Groot
f59b6da799 CMake: produce a standard modern-CMake config file
- Use modern CMake commands to produce the config file
- Drop the CalamaresUse.cmake file, include its functionality
  in the config file.
2020-06-10 01:37:54 +02:00
Adriaan de Groot
6507098d16 CMake: use standard function for creating a version file 2020-06-09 23:38:31 +02:00
Adriaan de Groot
b9f802bbda CMake: shuffle includes together 2020-06-09 23:25:17 +02:00
Adriaan de Groot
38b4f45b92 [locale] Repair timezone graphics -- west-Africa and Pacific 2020-06-09 14:54:19 +02:00
Adriaan de Groot
d511cc2f7a [locale] Norfolk Island gave up +11.5 in 2015 2020-06-09 14:21:11 +02:00
demmm
a617dba85e [welcomeq]re-add the donate button example to welcomeq.conf 2020-06-09 13:34:16 +02:00
Adriaan de Groot
8c4b6e4804 Merge branch 'master' into issue-1287 2020-06-09 13:25:01 +02:00
Adriaan de Groot
35fb8dcc27 [mount] Warn if chcon is missing, rather than fail
FIXES #1429
2020-06-09 13:24:12 +02:00
Adriaan de Groot
5126aaae19 Merge branch 'issue-1427'
Show failed requirements in one component, with a filter applied,
and with satisfied and mandatory (the latter has an effect on
can-we-continue, not on whether something is satisfied) colors applied.

FIXES #1427
2020-06-09 12:15:16 +02:00
Adriaan de Groot
d22178ca5e [welcomeq] Show filtered list of requirements
- only the unsatisfied ones are shown; no need to filter and
  fiddle about in QML
2020-06-09 12:13:44 +02:00
Adriaan de Groot
f68d0f0628 [welcome] Add a filtered model for unsatisfied requirements 2020-06-09 12:05:40 +02:00
Adriaan de Groot
d1165bea56 [welcomeq] Use just one component to display requirements
- Do all the status indication in one component, but vary
  the top-level message based on whether the mandatory
  requirements are satisfied.
- Vary color and icon based on each requirement's *mandatory* setting.
2020-06-08 10:22:03 -04:00
Adriaan de Groot
5b1e5a9e03 [welcome] Some API docs 2020-06-08 09:45:19 -04:00
Adriaan de Groot
abe558f127 [libcalamares] Be more verbose when the requirements check is done 2020-06-08 08:33:48 -04:00
Adriaan de Groot
f35fab24ac [welcome] Remove name-tangle
- use useful, not-single-letter, variable names
- don't rename inconsistently in the lambda capture
2020-06-08 08:33:48 -04:00
Adriaan de Groot
8255bc3fc1 [welcome] Sanitize example configurations
- remove all duplicated documentation from ; it's the same as
  `welcome.conf` in all respects except for *qmlSearch*.
2020-06-08 08:33:48 -04:00
demmm
73eb718c08 adding needed geoip section to welcomeq.conf
see https://github.com/calamares/calamares/issues/1427#issuecomment-640531710
2020-06-08 13:25:47 +02:00
Adriaan de Groot
5e79176f47 Merge pull request #1422 from andy1247008998/patch-2
remove unnecessary period mark since it's a title
2020-06-06 17:22:13 +02:00
Adriaan de Groot
fb3bc12aac Post-release housekeeping 2020-06-06 17:21:14 +02:00
Adriaan de Groot
1a48fa26df Changes: pre-release housekeeping 2020-06-06 17:07:53 +02:00
Calamares CI
f8f879153c i18n: [python] Automatic merge of Transifex translations 2020-06-06 17:06:58 +02:00
Calamares CI
5dce8d4423 i18n: [calamares] Automatic merge of Transifex translations 2020-06-06 17:06:58 +02:00
Adriaan de Groot
0e7c984854 [partition] Add missing includes for Qt 5.15 compatibility 2020-06-03 16:43:31 +02:00
Adriaan de Groot
1c598d769b [partition] Apply coding style (to just this one file) 2020-06-03 16:42:42 +02:00
Adriaan de Groot
25d36a8943 [netinstall] Improve documentation of translation framework
- Not country-code, but language-code

FIXES #1411
2020-06-03 16:02:43 +02:00
Adriaan de Groot
e074cc29c9 Changes: mention some new stuff, thanks Callum 2020-06-03 15:36:05 +02:00
Adriaan de Groot
881187de8d Merge pull request #1423 from Cal8031/t1
Update and add SPDX identifiers
2020-06-03 15:32:07 +02:00
Adriaan de Groot
b0afcf0c7b Merge branch 'issue-1419'
When entering the page, en_CA maps to us keyboard, not ca_eng --
this will annoy those people who have that specifically set,
so it needs separation of "setting from GeoIP" and "setting
because system is already like that".

Not touched in the Config class because that's not used yet.

FIXES #1419
2020-06-03 15:29:42 +02:00
Adriaan de Groot
67d7c700fd [locale] Update documentation to mention *fixed* style 2020-06-03 15:11:19 +02:00
Adriaan de Groot
ac2a9c569e [libcalamares] Allow "fixed" as a GeoIP lookup type 2020-06-03 15:03:19 +02:00
Adriaan de Groot
672f506e72 [libcalamares] Add unittests for GeoIPFixed
- Ignores the data, just returns selector
2020-06-03 14:55:01 +02:00
Adriaan de Groot
d9effb4ba7 [libcalamares] Add GeoIPFixed to the test-tool for GeoIP lookup
- Allow format "fixed"
- Allow specifying the selector in the test-tool
2020-06-03 14:34:45 +02:00
Adriaan de Groot
d37ec35592 [libcalamares] GeoIP that always returns a fixed value
- Value is configurable (through the "selector" which is passed
  to GeoIP lookups). This is convenient for tests so you can "fix"
  the value that the lookup will return.
2020-06-03 14:26:14 +02:00
Callum Farmer
0c4dc71d5c [libcalamares] Update SPDX identifiers.
Update CppJob.h

Update CalamaresConfig.h.in

Update DllMacro.h

Update GlobalStorage.cpp

Update GlobalStorage.h

Update Job.cpp

Update Job.h

Update JobExample.cpp

Update JobExample.h

Update JobQueue.cpp

Update CalamaresConfig.h.in

Update CppJob.cpp

Update CppJob.h

Update DllMacro.h

Update GlobalStorage.cpp

Update GlobalStorage.h

Update Job.cpp

Update Job.h

Update JobExample.cpp

Update JobExample.h

Update JobQueue.h

Update ProcessJob.cpp

Update ProcessJob.h

Update PythonHelper.cpp

Update PythonJob.cpp

Update PythonJob.h

Update PythonHelper.h

Update PythonJobApi.cpp

Update PythonJobApi.h

Update Settings.cpp

Update Settings.h

Update GeoIPJSON.cpp

Update GeoIPJSON.h

Update GeoIPTests.cpp

Update GeoIPTests.h

Update GeoIPXML.cpp

Update GeoIPXML.h

Update Handler.cpp

Update Handler.h

Update Interface.cpp

Update Interface.h

Update test_geoip.cpp

Update CountryData_p.cpp

Update Label.cpp

Update Label.h

Update LabelModel.cpp

Update LabelModel.h

Update CountryData_p.cpp

Update CountryData_p.cpp

Update Lookup.cpp

Update Lookup.h

Update Tests.cpp

Update Tests.h

Update TimeZone.cpp

Update TimeZone.h

Update TranslatableConfiguration.cpp

Update TranslatableConfiguration.h

Update ZoneData_p.cxxtr

Update cldr-extractor.py

Update zone-extractor.py

Update Actions.h

Update Actions.h

Update Descriptor.h

Update InstanceKey.cpp

Update Module.cpp

Update Module.h

Update Requirement.cpp

Update RequirementsChecker.h

Update RequirementsModel.cpp

Update RequirementsModel.h

Update Tests.cpp

Update Manager.cpp

Update Manager.h

Update Tests.cpp

Update FileSystem.cpp

Update FileSystem.h

Update KPMManager.cpp

Update KPMManager.h

Update KPMTests.cpp

Update FileSystem.cpp

Update FileSystem.cpp

Update FileSystem.h

Update KPMManager.cpp

Update KPMManager.h

Update Mount.cpp

Update Mount.h

Update PartitionIterator.cpp

Update PartitionIterator.h

Update PartitionIterator.h

Update PartitionQuery.cpp

Update PartitionQuery.h

Update PartitionSize.cpp

Update PartitionSize.h

Update Sync.cpp

Update Sync.h

Update Tests.cpp

Update Tests.h

Update BoostPython.h

Update CalamaresUtilsSystem.cpp

Update CalamaresUtilsSystem.h

Update CommandList.cpp

Update CommandList.h

Update Dirs.cpp

Update Dirs.h

Update Entropy.cpp

Update Entropy.h

Update Entropy.cpp

Update Logger.cpp

Update Logger.h

Update NamedEnum.h

Update NamedSuffix.h

Update PluginFactory.cpp

Update PluginFactory.h

Update RAII.h

Update RAII.h

Update Retranslator.cpp

Update Retranslator.h

Update String.cpp

Update String.h

Update TestPaths.cpp

Update Tests.cpp

Update Tests.h

Update UMask.cpp

Update UMask.h

Update Units.h

Update Variant.cpp

Update Variant.h

Update Yaml.cpp

Update Yaml.h

Update moc-warnings.h
2020-06-03 12:52:53 +01:00
Adriaan de Groot
24653c1cc6 [locale] C&P code with repeated bugs from QML branches 2020-06-03 13:42:15 +02:00
Callum Farmer
141842dfd2 [LICENSES] Add BSD2 2020-06-03 12:28:58 +01:00
Callum Farmer
210ce97bf6 [libcalamaresui] Update SPDX identifiers.
Update ImageRegistry.cpp
2020-06-03 12:28:58 +01:00
Callum Farmer
741b680513 [qml] Update SPDX identifiers.
Update Presentation.qml
2020-06-03 12:28:58 +01:00
Callum Farmer
0d4642ca6a [CMakeModules] Update SPDX identifiers.
Update CalamaresAddTest.cmake

Update CalamaresAddLibrary.cmake

Update CalamaresAddBrandingSubdirectory.cmake

Update CalamaresAddTranslations.cmake

Update CalamaresAddPlugin.cmake

Update CalamaresAddModuleSubdirectory.cmake
2020-06-03 12:28:58 +01:00
Callum Farmer
280e367c86 [/] Update SPDX identifiers.
Update CMakeLists.txt
2020-06-03 12:28:58 +01:00
Callum Farmer
eee9dee87f [lang] Update SPDX identifiers. 2020-06-03 12:28:58 +01:00
Adriaan de Groot
c6d147bde6 [keyboard] Give Canadian English the US keyboard layout, eh 2020-06-03 01:38:11 -07:00
AI Lion
c6174b027c remove unnecessary period mark since it's a title 2020-05-31 00:31:05 +08:00
Adriaan de Groot
60e12174fd [tracking] Switch out Radio for CheckBox
- The Radio's are replaced by CheckBoxes and some logic, so
  that different tracking styles can be enabled independently.
  None of the settings end up in the Config yet, though.
2020-05-25 10:32:56 -04:00
Adriaan de Groot
fab3ff2c41 [tracking] Implement KUserFeedback configuration
- write config files to turn on KUserFeedback (for known areas)
- TODO: get the right home directory to write in
2020-05-25 09:56:32 -04:00
Adriaan de Groot
bed884c971 [tracking] Move setup of initial-tracking states to Config
- the *default* level from the config, can be handled inside
  the Config object as well; remove TrackingPage method that
  does the same.
2020-05-25 09:22:51 -04:00
Adriaan de Groot
1d143d95a0 [tracking] Setup UI in the .ui file 2020-05-25 08:30:37 -04:00
Adriaan de Groot
935f443a4d [tracking] Simplify policy display
- Don't need an own slot for this, just connect to signals from Config
  and the label, neither of which need any state.
2020-05-25 05:24:20 -04:00
Adriaan de Groot
689a65e107 Merge pull request #1414 from gportay/remove-unused-locals
[partition] Remove unused locals
2020-05-25 10:43:56 +02:00
Calamares CI
a318fc8f56 i18n: [python] Automatic merge of Transifex translations 2020-05-25 03:40:18 -04:00
Calamares CI
bc9544bf14 i18n: [dummypythonqt] Automatic merge of Transifex translations 2020-05-25 03:40:18 -04:00
Calamares CI
ff0676b79b i18n: [desktop] Automatic merge of Transifex translations 2020-05-25 03:40:18 -04:00
Calamares CI
885fe80d5b i18n: [calamares] Automatic merge of Transifex translations 2020-05-25 03:40:18 -04:00
Gaël PORTAY
629bb2e2f6 [partition] Remove unused locals
- Unused since commit 0d284759f5
2020-05-20 11:06:39 -04:00
Adriaan de Groot
69c2d089f2 Merge pull request #1413 from gportay/rawfs-fix-crash-if-bogus-is-unset
[rawfs] Fix crash if bogus is unset
2020-05-20 14:50:57 +02:00
Adriaan de Groot
738a6a9019 [calamares] Make module-tester configurable in slideshow mode
- Uses global storage to steer the jobs that are created, in case
  the slideshow needs to be tweaked by percentages or whatever.
- While here, add some code docs and apply coding style.
2020-05-20 12:12:11 +02:00
Adriaan de Groot
d51a545fcf [calamares] onInitComplete() already activates first step
- In the test application, there is only one viewstep, so it is
  already activated; avoid double-activation.
2020-05-20 11:44:27 +02:00
Adriaan de Groot
39b5dd4e6e [libcalamaresui] Avoid deadlock
- When loading QML V2, both loadQmlV2Complete() and changeSlideShowState()
  lock the same mutex, introduced in e7f4479df1.
- Explicitly unlock when loading is done and we need to change the state
  immediately.
2020-05-20 11:36:44 +02:00
Adriaan de Groot
376cb3c042 [calamares] Give the fake ExecutionViewModule a name
- This is needed for addModule() so the module manager knows there
  is a module by the name x@x.
- Tell the ExecutionViewStep to run jobs from x@x.
2020-05-20 11:03:21 +02:00
Adriaan de Groot
28500de2f8 [calamares] Register modules in test-loader
- When a viewmodule is loaded, register it with the module manager
  (especially relevant for the slideshow module).
2020-05-20 10:54:48 +02:00
Adriaan de Groot
c7d0df223a [libcalamaresui] Expose registering-a-single-module
- For testing purposes, it's useful to load a module externally
  and then register it to the ModuleManager (this hands off ownership).
- Refactor overall module loading to use the exposed single-module method.
2020-05-20 10:36:42 +02:00
Adriaan de Groot
1fec95ac48 [libcalamares] Move QML search-path initialization
- QML files need to be searched in specific places; this was initialized
  by Calamares, but not for the text application. Move initialization
  into the library.
2020-05-19 21:25:05 +02:00
Adriaan de Groot
6dffec2730 [libcalamaresui] Move QML-related directory functions to Qml.cpp 2020-05-19 21:02:06 +02:00
Adriaan de Groot
4491fb8c27 [libcalamaresui] Name QML-wrangling functions consistently
- Use "Qml" in camel-cased names
2020-05-19 21:00:05 +02:00
Gaël PORTAY
40dd34c7d0 [rawfs] Fix crash if bogus is unset
- fixes:
	12:44:25 [6]: Python Error:
	 <class 'TypeError'>
	 'builtin_function_or_method' object is not subscriptable
	 File "/usr/lib/calamares/modules/rawfs/main.py", line 188, in run
	    item.copy(filesystems.index(item), len(filesystems))

	  File "/usr/lib/calamares/modules/rawfs/main.py", line 99, in copy
	    if libcalamares.job.configuration["bogus"]:
2020-05-19 12:58:36 -04:00
Adriaan de Groot
0947da3d41 [libcalamaresui] Report on QML errors
- If the slideshow fails to load entirely, say so
2020-05-19 17:08:49 +02:00
Adriaan de Groot
ae861f7ec0 [calamares] Give slideshow-test some jobs to run 2020-05-19 16:44:56 +02:00
Adriaan de Groot
bd73981c5f [calamares] Add -s option to module-tester
- The -s will run the slideshow with a bogus job-queue, allowing easier
  testing of the slideshow. This is more convenient than having a Calamares
  with an empty show and a bogus exec section.
- The -s option for running the slideshow / execution phase of
  Calamares needs to create a bogus Module for the ExecutionViewStep.
2020-05-19 16:44:44 +02:00
Adriaan de Groot
ec2fc5a763 [libcalamaresui] Better default font size
- Previously, unless setDefaultFontSize() was called explicitly,
  the default size would be 0, leading to unexpected and weird
  displays (and a warning on stderr).
- If setDefaultFontSize() is not called, get a sensible size instead
  (like defaultFontHeight() was already trying to do).
2020-05-19 16:44:44 +02:00
Adriaan de Groot
8db8752a41 [libcalamaresui] Remove spurious Q_FUNC_INFO 2020-05-19 16:44:44 +02:00
Adriaan de Groot
3e51fe4651 [partition] Remove spurious Q_FUNC_INFO from logging
- The Q_FUNC_INFO was integrated into regular logging with commit
  5248a37eb3
2020-05-19 16:44:44 +02:00
Adriaan de Groot
8465dcbc19 [calamares] Don't crash in test-loader
- When loading *view* modules, we always need a QApplication for GUI
  bits, because the widget for a module is created is very early.
- If it's a view module, replace the application object with one
  that supports GUIs; without the --ui flag, though, it will just
  run the jobs.
2020-05-19 11:39:53 +02:00
Adriaan de Groot
a7c4e2d203 [tracking] Remove widget-setting stuff not needed with Config 2020-05-19 11:12:16 +02:00
Adriaan de Groot
dfd6bb6a8b [tracking] Massage the displayed explanation 2020-05-19 11:05:32 +02:00
Adriaan de Groot
49e66b11a2 [tracking] Refactor creation of jobs
- Let the jobs handle their own styling and handling, simplify
  the ViewStep code.
2020-05-19 10:42:25 +02:00
Adriaan de Groot
309b2f872d [tracking] Drop configuration fields from ViewStep
- All the configuration lives in the Config object (or the
  tracking objects that it exposes).
- Get data from the config object for the jobs; TODO: give the
  jobs a less-clunky interface.

The UI isn't hooked up to the Config object yet, though.
2020-05-18 20:18:34 +02:00
Adriaan de Groot
5763799ba9 [tracking] Load all the tracking bits into the configuration 2020-05-18 17:48:51 +02:00
Adriaan de Groot
528b98c1c4 [tracking] Configurations for machine and user tracking 2020-05-18 17:42:51 +02:00
Adriaan de Groot
f97a0756a9 [tracking] Introduce configuration for install-tracking
- subclass of TrackingStyleConfig holds the URL that is pinged with
  information when the installation is done.
2020-05-18 17:09:01 +02:00
Adriaan de Groot
d9fb9c19a8 [tracking] Refactor the information for one tracking type
- a single tracking type can be enabled for configuration in the
  config file; each must have a policy URL. Class TrackingStyleConfig
  is a base class for that kind of configuration.
2020-05-18 16:41:25 +02:00
Adriaan de Groot
68bb066755 [partition] Consolidate SwapChoice handling
- pickOne() may be useful, given a set of swap choices; expose it
- move type definitions to PartitionActions, where some of them
  come from.
2020-05-18 14:12:50 +02:00
Adriaan de Groot
4ae398c18d [partition] Move swap choices into config 2020-05-18 14:03:31 +02:00
Adriaan de Groot
a381d6794f [partition] Migrate required-storage setting to Config object
- Create and use the config object in the view step
- Add setConfigurationMap() to Config
2020-05-18 13:07:12 +02:00
Adriaan de Groot
c7857b7749 [partition] Coding style on tests 2020-05-18 12:23:13 +02:00
Adriaan de Groot
b33e54abb9 [partition] Stub of a Config object
- Even though this isn't a QML'able module, work towards
  a decoupled Config object anyway
- Not actually used yet.
2020-05-18 12:23:13 +02:00
Adriaan de Groot
ca59c8419c [partition] Goal of this branch: configurable default action 2020-05-18 12:23:13 +02:00
Adriaan de Groot
6d07527123 [partition] Comment-out unsupported swap options
- I notice they get copied into distro configurations a lot,
   leading to warnings in the logs
2020-05-18 12:23:13 +02:00
Adriaan de Groot
72857b75d0 [partition] Chase moving PrettyRadioButton to libcalamaresui
- Update includes
- Use exposed API instead of accessing internals of the button
2020-05-18 11:26:22 +02:00
Adriaan de Groot
17231ae41f [libcalamaresui] Sanitize API of PrettyRadioButton
- Don't expose internals
- Drop unnecessary virtual
- Offer new API to do the things, for which internals were exposed
2020-05-18 11:26:22 +02:00
Adriaan de Groot
3b7c3c4f5d [libcalamaresui] Coding style
- Apply coding style
- Place the widget classes in namespace Calamares
- Export symbols for widgets
2020-05-18 11:26:12 +02:00
Adriaan de Groot
c4951d5090 [libcalamaresui] Move PrettyRadioButton from partition 2020-05-18 10:38:45 +02:00
Adriaan de Groot
8d4c7767d4 [libcalamaresui] Document ClickableLabel 2020-05-18 10:32:25 +02:00
Adriaan de Groot
f67d8ef162 [3rdparty] Chase API deprecation in Qt
- QElapsedTimer has existed since Qt 4.7
2020-05-18 10:25:19 +02:00
Adriaan de Groot
4c0a212b68 [partition] Warnings-- (Qt 5.14)
QVariant::fromValue doesn't have *since* documentation, so I expect it to be 5.6-and-later.
2020-05-18 10:12:12 +02:00
Adriaan de Groot
27d4fa675b [locale] remove unneeded this-> 2020-05-18 10:03:34 +02:00
demmm
c6671f9495 Changes: welcomeq is now a functional module 2020-05-17 12:41:22 +02:00
demmm
e2c99eeb5e [welcomeq] adjust spacing
make sure the listviews fit in the default window size without overlapping
the language bar
2020-05-17 12:37:01 +02:00
Gaël PORTAY
3d2b9053b0 [partition] Add the GPT label and UUID to global storage 2020-05-15 16:12:19 -04:00
Gaël PORTAY
da6f728cd4 [partition] Add support for partition uuid 2020-05-15 16:12:19 -04:00
Adriaan de Groot
7e83296aa2 Changes: name contributors so far this release 2020-05-15 22:00:20 +02:00
Adriaan de Groot
02cb005529 Merge pull request #1408 from gportay/remove-unused-variable
[bootloader] Remove unused variable root_mount_point
2020-05-15 21:58:37 +02:00
Gaël PORTAY
33f6bd5699 [bootloader] Remove unused variable root_mount_point
- root_mount_point was used initially for logging c1a139995 (adding new
  bootloader job options are to use grub for BIOS, gummiboot for efi set
  extra mountpoint when efi is found)
- the trace was removed since 533031b3c ([bootloader] print() does not
  log)
2020-05-15 12:05:26 -04:00
Adriaan de Groot
c3d8112187 CMake: allow fine-tuning tests
- The Python configuration tests sometimes need extra setup, so
  do that through a CMakeTests.txt file in the test directory.
- Patch up existing tests:
  - grubcfg needs /tmp/calamares/etc/default to exist
  - rawfs won't work on FreeBSD because of differences in /proc
2020-05-15 14:38:45 +02:00
Adriaan de Groot
fe069bdb23 [fstab] Add some discussion about *discard* option
- drop the *discard* from filesystems-on-SSD in the standard example
  configuration.
- keep the table **with** *discard* around for referece and explanation.

Remember that the example configurations are intended as **examples**,
to document available settings, and do not reflect a sensible
production configuration.

FIXES #1395
2020-05-15 12:26:41 +02:00
Adriaan de Groot
cbe5e37112 Merge pull request #1407 from demmm/master
[welcomeq] use negatedText for better text on missing
2020-05-15 10:51:21 +02:00
Calamares CI
03a7d1253c i18n: [python] Automatic merge of Transifex translations 2020-05-14 23:56:05 +02:00
Calamares CI
e524ac952d i18n: [calamares] Automatic merge of Transifex translations 2020-05-14 23:56:05 +02:00
demmm
153d605bb6 [welcomeq] use negatedText for better text on missing 2020-05-14 23:11:05 +02:00
Adriaan de Groot
3db12cc29e Merge pull request #1406 from demmm/master
[welcomeq] connected to RequirementsModel
2020-05-14 21:00:43 +02:00
demmm
a85ff30ad4 [welcomeq] smaller font size
correct color order Requirements.qml
2020-05-14 20:01:50 +02:00
demmm
fed89badd4 [welcomeq] connected to RequirementsModel
clean up obsolete lines in welcomeq.qml
add requirement section from welcome.conf to welcomeq.conf
data shows correctly in Recommended.qml, fails to show any in Requirements.qml if run without admin rights
2020-05-14 19:00:02 +02:00
Adriaan de Groot
dd0491e5ca Merge branch 'no-qml' 2020-05-14 17:29:05 +02:00
Adriaan de Groot
022045ae05 [libcalamaresui] Refactor loading slideshow
- split into a separate method
- when QML is disabled, warn about QML settings
2020-05-14 17:04:35 +02:00
Adriaan de Groot
c83e5c57a4 [libcalamaresui] When QML is off, there is no Qml panel flavor 2020-05-14 16:57:14 +02:00
Adriaan de Groot
736f99768a [libcalamaresui] Don't build QML bits if they're not wanted
When WITH_QML is off (by explicit choice)

- don't build the QmlViewStep
- don't build the QML slideshow
2020-05-14 16:31:59 +02:00
Adriaan de Groot
47979555fe CMake: optionally disable QML
This makes it possible to remove QML from Calamares, possibly yielding
a smaller, lighter installer; it takes with it the nice slideshow,
modern configurable navigation and the QML UIs built for various modules.

By default, WITH_QML is on and the "normal" feature set is retained.

- look for Qml modules only when WITH_QML is on (the default)
- look for Network, since that's pulled in only implicitly
- disable the QML Calamares models (modules/*q) if no QML is
  enabled; longer-term plan is to merge the **pages** back to
  the "upstream" modules, and have things be run-time switchable,
  but that's not here yet. Also disable the notesqml module when
  QML is off.
2020-05-14 16:31:39 +02:00
Adriaan de Groot
0235245631 [libcalamares] #include-styling 2020-05-14 16:27:46 +02:00
Adriaan de Groot
2b0b873159 [welcome] Remove spurious logging 2020-05-14 15:23:45 +02:00
Adriaan de Groot
cdb99ad887 CMake: shuffle WITH_* settings for calamares executable
- reminder to make all the ABI-relevant WITH_* settings available as #defines
- move the compilation of KDSAG to the calamares executable, not the library
- when DBus activation is on, drop all of kdsingleapplicationguard
2020-05-14 12:21:33 +02:00
Adriaan de Groot
1e09b823b7 CMake: remove redundant testing configuration
- BUILD_TESTING is built-in to CMake, and including CTest turns
  on all the machinery, so we don't have to do that ourselves.
2020-05-14 12:21:33 +02:00
Adriaan de Groot
13ded5f005 [libcalamares] #include-styling 2020-05-14 12:21:33 +02:00
Adriaan de Groot
c90ebb5d82 [libcalamares] Apply Qt defines consistently
- Move some definitions that influence Qt compilation
  up to the top-level.
2020-05-14 01:05:37 +02:00
Adriaan de Groot
c3c4b79147 Merge branch 'fix-slideshow' 2020-05-13 21:20:25 +02:00
Adriaan de Groot
6248c6d032 [branding] Document slideshow options 2020-05-13 17:48:22 +02:00
Adriaan de Groot
20c1ae246d [libcalamaresui] Center slideshow pictures 2020-05-13 17:28:04 +02:00
Adriaan de Groot
5aafa0f4c4 [libcalamaresui] Expose slideshow image names for API -1
- Branding shows the slide pathnames or the slide QML, depending
  on selected API (which depends on the config-file).
- Use one slideshow or the other.
2020-05-13 17:19:46 +02:00
Adriaan de Groot
df74604755 [libcalamaresui] Implement non-QML Slideshow 2020-05-13 16:35:09 +02:00
Adriaan de Groot
e7f4479df1 [libcalamaresui] Move all the slideshow code out of ExecutionViewStep
- The SlideshowQML now handles all the bits that were in
  the viewstep.
- The viewstep uses the abstract Slideshow API.
2020-05-13 14:01:51 +02:00
Adriaan de Groot
6e22364a5a Merge branch 'welcomeq-requirements'
Expose the requirements model better to QML, hook it up to the QML
in the WelcomeQ module.
2020-05-12 17:08:11 +02:00
Adriaan de Groot
3f9878afc1 [welcomeq] Use the model properties to show recommendations and requirements 2020-05-12 17:07:50 +02:00
Adriaan de Groot
1a1fde1885 [welcome] [welcomeq] Chase API change for requirements progress 2020-05-12 17:07:15 +02:00
Adriaan de Groot
5c8a99c77b [libcalamares] After running the checker, re-compute satisfaction
- If nothing is added to the model (e.g. it is empty) then the satisfaction
  still needs to be re-calculated (to true).
2020-05-12 17:06:16 +02:00
Adriaan de Groot
f856c07b04 [libcalamares] Move progress signal to RequirementsModel
- It is the requirements model (checking) that reports progress, and now
  the model is accessible (ask for it with requirementsModel(), make the
  messages come from there.
2020-05-12 16:09:13 +02:00
Adriaan de Groot
90f8e748ef [welcome] Improve debugging of general requirements
- distinguish 'this has not been checked' from 'checked and failed'
2020-05-12 15:29:16 +02:00
Adriaan de Groot
9e0aa76375 [welcome] Order member pointers
- Create config before the page
- .. and in doing so, create the page in the initializer list instead
2020-05-12 14:54:18 +02:00
Adriaan de Groot
e930c74e85 [welcomeq] Coding style
- Apply coding style tool
- Remove commented-out cruft
- Drop TODO's that don't apply anymore
2020-05-12 14:47:31 +02:00
Adriaan de Groot
ed71b2fbf5 [tracking] Only accept valid policy URLs 2020-05-12 14:42:04 +02:00
Adriaan de Groot
044f5ce2b5 [tracking] Use the config object
- right now only holds the global policy URL (as a string)
2020-05-12 14:39:42 +02:00
Adriaan de Groot
a69d47c115 [tracking] Add a Config object 2020-05-12 14:24:33 +02:00
Adriaan de Groot
8ed8b5dfa3 [tracking] Reduce compiler warnings
- Newly added enum value NoTracking needs explicit handling
  in some switch()es, although it will never be passed in.
2020-05-12 12:11:11 +02:00
Adriaan de Groot
fd2853b2cf [tracking] Switch setTrackingLevel() to use enum 2020-05-12 11:41:02 +02:00
Adriaan de Groot
6d744374db [tracking] Use enum-conveniences 2020-05-12 11:24:16 +02:00
Adriaan de Groot
ab6c6a6748 Changes: post-release housekeeping 2020-05-12 10:53:35 +02:00
Adriaan de Groot
0d6e10311c Changes: pre-release housekeeping 2020-05-11 20:53:23 +02:00
Adriaan de Groot
c0fa212fa9 [welcome] Be slightly more verbose in reporting missed req's 2020-05-11 20:45:47 +02:00
Adriaan de Groot
692d405983 Merge branch 'requirements-model'
The requirements-checker in the Welcome module was not connected
to the module-manager's idea of what the requirements are, but
the *next* button was. So you could get in a situation where the
welcome modules' requirements were met, but **other** modules failed:
no display of the problem, and a disabled *next* button.

Rip out the welcome module's requirements-checking model, move it
to the module-manager, re-do the signals between the lot.
2020-05-11 17:26:35 +02:00
Adriaan de Groot
09b73dce06 [libcalamares] Implement the HasDetails role 2020-05-11 17:10:03 +02:00
Adriaan de Groot
7d00f7e0dc [welcome] Explain in the debug log what failed 2020-05-11 16:30:26 +02:00
Adriaan de Groot
fabe5ec439 [welcome] Config should not have its own RequirementsModel
- Use the one from ModuleManager
2020-05-11 16:30:26 +02:00
Adriaan de Groot
153757933a [libcalamares] Stop emitting signals with RequirementsList
- The architecture of letting someone build up a list of requirements
  from data emitted by the ModuleManager is broken: if it gets loaded
  later, it will miss data; passing around complicated objects is
  no fun anyway. Get rid of it, on the way to "ModuleManager has
  its own model of requirements".
2020-05-11 16:30:26 +02:00
Adriaan de Groot
9b0ea3f63d [libcalamares] Remove runaround through free function
- Call into a method directly to do the work of adding
  results from a single module.
2020-05-11 16:30:26 +02:00
Adriaan de Groot
b7c60cec66 [libcalamares] Re-vamp RequirementsChecker
- Give the ModuleManager a RequirementsModel -- that is the source
  of truth about the module-requirements of the modules managed
  by that particular ModuleManager.
- Let the RequirementsChecker operate on a given RequirementsModel.
2020-05-11 16:30:26 +02:00
Adriaan de Groot
039065ee4a [libcalamares] Minor debugging support in RequirementsModel 2020-05-11 16:30:26 +02:00
Adriaan de Groot
8306de731a [welcome] Setting requirements from own reqs is totally wrong
- The requirements are collected by ModuleManager, checked
  by an internal RequirementsChecker and changes to the
  requirements state are all signalled from ModuleManager.

By connecting the requirements in the welcome modules' Config
only to their own configs -- and immediately checking them,
which is bad on its own -- we end up with a disconnect between
what the ModuleManager says about requirements, and what
the welcome modules report on.
2020-05-11 16:30:26 +02:00
Adriaan de Groot
d87d714b8d [libcalamares] Make the requirements model more adaptable
- Either replace the list of results, or add to them
- Lock model while adding rows
2020-05-11 16:30:26 +02:00
Adriaan de Groot
0f5db0ba5e [libcalamares] Remove direct access to model internals
- This was just for the ResultsListWidget, which can also use
  normal role-based model access.
2020-05-11 16:30:26 +02:00
Adriaan de Groot
616fbb08f3 [libcalamares] Improve docs of RequirementsModel 2020-05-11 11:19:08 +02:00
Adriaan de Groot
d17dac67e7 Merge pull request #1402 from demmm/master
[localeq] move to QtLocation map based module
2020-05-10 20:41:51 +02:00
demmm
32ae0a7bf6 set a bogus username in Map.qml 2020-05-10 17:59:52 +02:00
Adriaan de Groot
54b211daa4 CMake: switch back to kdsingleapplicationguard
- Reports from downstream Manjaro that the DBus activation doesn't
  work at all. Switch the default back to the old way, until it
  can be debugged more.
2020-05-10 17:36:34 +02:00
Adriaan de Groot
df1f9f1b56 [libcalamaresui] Prep-work for image-slideshow
Doesn't compile (but I need to get it off this machine)

- Prepare to implement a picture-based slideshow alongside QML
- Split QML loading into the slideshow component

This might be good prep-work for moving QML loading out of the QMLViewStep as well.
2020-05-09 23:07:56 +02:00
demmm
34e7b06cc9 [localeq] move to QtLocation map based module
fully implemented:
* loading of a live map, ESRI based, zooming & dragging possible
* IP address is translated to map coordinates
* loading of the map centers to the obtained coordinates, with a marker set
* coordinates are translated to a timezone, label visible at bottom of the map
* mouse movement will show changing coordinates
* clicking on new location will center map there, marker moved too, timezone label adjusted
* hasInternet switch set to either load Map.qml or Offline.qml

not done:
* get hasInternet status
* fill the fine-tune 181n.qml with proper locale & language data
* connect the obtained timezone to globalstorage

comments are left in the various files for what needs attention/changes
2020-05-09 14:01:21 +02:00
Adriaan de Groot
36a1d60c0e Merge branch 'rawfs-compat'
Improve testing framework while adding tests to rawfs to double-
check that the conversion (for Python 3.3 compatibility) of
capture_output is correct.
2020-05-08 22:09:20 +02:00
Adriaan de Groot
1ae38c8ebc CMake: add tests when there are test-configs
- If a module has tests/#.global or tests/#.job, these are used
  as arguments to a test-run of loadmodule (which reads them
  and runs the module with that configuration).
- This makes the old python-loading test and test-runner entirely
  obsolete, so remove them too.
2020-05-08 21:53:39 +02:00
Adriaan de Groot
91f88cebf0 [calamares] Move testing application out of intermediate dir
- src/modules doesn't seem like a really good place for stray sources
  for a testing application. Move it.
2020-05-08 21:20:45 +02:00
Adriaan de Groot
74fb88f9ac [rawfs] Minor testing support
- set *bogus* to do no harm
- add some test configurations
2020-05-08 21:07:17 +02:00
Adriaan de Groot
dc87c11ac4 [rawfs] Slightly more debugging 2020-05-08 20:58:17 +02:00
Adriaan de Groot
7ff97bbb94 Merge pull request #1398 from demmm/master
start of adding requirements to welcomeq
2020-05-08 20:44:31 +02:00
Calamares CI
70c4d8ae9c i18n: [calamares] Automatic merge of Transifex translations 2020-05-08 17:32:28 +02:00
Adriaan de Groot
55fb7565d4 Merge pull request #1396 from FLVAL/master
Add files via upload
2020-05-08 17:19:15 +02:00
Adriaan de Groot
175082e3ad [rawfs] Make compatible with Python 3.3 2020-05-08 17:09:37 +02:00
Adriaan de Groot
4e3f9fb6b3 Merge branch 'simplify-unique'
- Use DBus service / activation to ensure uniqueness of Calamares
  instances, and **don't** require debug-instances to be unique.
2020-05-08 16:56:05 +02:00
Adriaan de Groot
4d90c8a00b Changes: document some things merged-in this release 2020-05-08 16:55:45 +02:00
Adriaan de Groot
ee51e7abe1 Merge branch 'qml-nav-height' 2020-05-08 16:22:09 +02:00
Adriaan de Groot
b7214b8ede [calamares] Switch over to DBus unique activation
- By default, try to use DBus service to keep Calamares unique
- The older implementation via KDSingleApplicationGuard is still
  available, just not used by default.
2020-05-08 15:22:15 +02:00
Adriaan de Groot
5af2a87709 [calamares] Remove redundant KF5/ in includes
- We link to these frameworks, which gives us a KF5 include path already
2020-05-08 15:21:31 +02:00
Adriaan de Groot
15cbdf2a18 [calamares] Allow multiple instances if -d is given
- Calamares doesn't like to run multiple instances, since they would
  interfere with each other (stealing disks from each other, for instance).
  The single-application code tries to prevent that.
- For -d runs, for developers where presumably they know what they are
  doing, the single-application restriction is annoying: especially if
  you need two instances at once for some kind of visual comparison.

Drop the single-app requirement if -d is given.
2020-05-08 15:21:25 +02:00
demmm
1ece171597 start of adding requirements to welcomeq
just QML, no real connections yet
hardcoded to not visible
not clear if requirementsModel is available to welcomeq
2020-05-08 13:37:50 +02:00
Adriaan de Groot
60aecaf0b8 [calamares] Fix height of the navigation bar in QML
- If the QML navigation panel sets a height, use that
- If it doesn't, use 48px (which *may* make sense, but like many
  screen dimensions in Calamares doesn't take HiDPI into account)
- Give the demo QML an explicit height of 48
2020-05-08 10:20:59 +02:00
Adriaan de Groot
bb2b5fd982 [libcalamaresui] No reason for bail() to be a method 2020-05-07 20:41:40 +02:00
Adriaan de Groot
526716556c [libcalamaresui] Store the slideshow-from-images data
- This code has existed for a long time but never stored anything
  to the Branding object, and the most literal slideshow (just some
  images) was not implemented.
2020-05-07 19:02:38 +02:00
FLVAL
e5f2aba8e2 Add files via upload
Region "Africa" zones # 52 
14:25:19 [6]:  ..  Zone "Asmara" QPoint(445,183) 
14:25:19 [6]:  ..  First zone found 2 "2.0" 
14:25:19 [6]:  ..  Also in zone 3 "3.0"
2020-05-07 13:46:48 +02:00
Adriaan de Groot
401a34fcbd [libcalamares] Fix tests on FreeBSD
- https requests can fail if ca_nss isn't installed; ping something
  else then.
2020-05-06 18:06:17 +02:00
Adriaan de Groot
7277d52828 [libcalamares] Expand range of errors for network requests
- All failures were being reported as Timeout, which is confusing
  when they are not. Introduce HttpError for the not-timeout
  other kinds of errors.
- Add operator<< for RequestStatus for nicer error logging.
2020-05-06 17:50:34 +02:00
Adriaan de Groot
ea51ff9285 Merge branch 'welcome-config' 2020-05-06 17:08:25 +02:00
Adriaan de Groot
5dc358093e [welcome] Apply coding style 2020-05-06 15:52:56 +02:00
Adriaan de Groot
713132d4af [welcome] Move GeoIP loading into Config
- The Config object can handle GeoIP loading on its own. Both
  View steps that used this had a derpy view->setCountry() that
  didn't really do anything with the view anymore.
2020-05-06 15:46:23 +02:00
Adriaan de Groot
6434374bf3 [welcome] Move languageIcon loading into the Config object
- The QML module had an additional check that the normal one
  did not; add it in the merged code.
2020-05-06 15:24:08 +02:00
Adriaan de Groot
a7a6c937ea [libcalamaresui] Add needed includes
- Return type QPixmap means we should definitely #include it
2020-05-06 15:23:27 +02:00
Adriaan de Groot
120a2b0f03 [welcome] Move get-the-show*Url code into Config
- Since this is configuration-loading, put it in the Config
  class; reduces code duplication between welcome and welcomeq.
2020-05-06 15:08:31 +02:00
Adriaan de Groot
e65a0ee617 [welcome] Update welcome example
- donate **does** have a corresponding branding setting
- show that "false" is a valid setting
2020-05-06 14:37:59 +02:00
Adriaan de Groot
cd44f548f5 [libcalamaresui] Add donateUrl to the branding settings
SEE #1384
2020-05-06 14:34:37 +02:00
Adriaan de Groot
9e344f50a7 [bootloader] Refactor efi-next-boot
- move the setup-next-boot code to a function on its own
- credit to Gaë
2020-05-06 13:31:02 +02:00
Adriaan de Groot
7c633f1253 Merge pull request #1394 from gportay/set-efi-bootnext
[bootloader] Set the EFI Boot Next
2020-05-06 13:10:13 +02:00
Calamares CI
aef529afe5 i18n: [python] Automatic merge of Transifex translations 2020-05-06 11:52:17 +02:00
Calamares CI
b66867f0ff i18n: [dummypythonqt] Automatic merge of Transifex translations 2020-05-06 11:52:16 +02:00
Calamares CI
4f274bae36 i18n: [calamares] Automatic merge of Transifex translations 2020-05-06 11:52:16 +02:00
Gaël PORTAY
4a9c8d0278 [bootloader] Set the EFI Boot Next
- This forces the EFI firmware to boot the loader that was just
   created, whatever the boot order set in the firmware setup (USB,
   CD/DVD, HD...).
 - It is safe to use the first Boot Entry listed in BootOrder as the
   previous command creates the new entry and adds it to the first place
   of the BootOrder.
2020-05-05 12:34:55 -04:00
Adriaan de Groot
7d1800a0d7 [welcome] Apply coding style 2020-05-04 13:00:00 +02:00
Adriaan de Groot
e023adc9b2 Merge branch 'remove-star'
Branding API too clever by half. Make it simpler.
2020-05-04 12:52:31 +02:00
Adriaan de Groot
70054e5db4 [welcome] Chase Branding API change 2020-05-04 12:52:14 +02:00
Adriaan de Groot
0046c3f161 [tracking] Chase Branding API change
- While here, apply coding style
2020-05-04 12:52:14 +02:00
Adriaan de Groot
c0a3614f09 [partition] Chase Branding API change 2020-05-04 12:52:14 +02:00
Adriaan de Groot
da82adeeee [finished] Chase Branding API change
- while here, also apply coding style
2020-05-04 12:52:14 +02:00
Adriaan de Groot
dc1a4fab8e [libcalamaresui] Chase Branding API change 2020-05-04 12:52:14 +02:00
Adriaan de Groot
794939b6a8 [calamares] Chase Branding API change 2020-05-04 12:52:14 +02:00
Adriaan de Groot
62696a3a48 [libcalamaresui] Remove the special * operator for string-enums in branding
- This is a good example of being overly clever in C++
- the whole API with an enum requesting a specific string is a bit weird,
  although it makes sense from the 'might need more strings specified'
  point of view.
2020-05-04 12:52:05 +02:00
Adriaan de Groot
7d8e54ba47 Merge branch 'qml-globalstorage'
- Make GlobalStorage generally available to QML modules (as Global
  from io.calamares.core)
2020-05-01 14:38:05 +02:00
Adriaan de Groot
0e71957b74 [libcalamaresui] Apply coding style 2020-05-01 14:37:25 +02:00
Adriaan de Groot
8af17fafe1 [libcalamaresui] Register Global Storage (as 'Global') for QML 2020-05-01 14:37:25 +02:00
Adriaan de Groot
dc523525c2 [libcalamaresui] Register the right type for ViewManager (C&P typo) 2020-05-01 09:15:46 +02:00
Philip Müller
e4bdeaa943 [displaymanager] don't write AutomaticLogin lines
- sometimes if you use external OEM modules you might have those lines already present
- by skipping them you won't have double lines when rerun the module in a later step
2020-05-01 09:11:50 +02:00
Adriaan de Groot
f4f720bc8f i18n: update English sources 2020-04-30 23:13:45 +02:00
Adriaan de Groot
39ec061639 Merge remote-tracking branch 'origin/welcomeq' 2020-04-30 22:55:19 +02:00
Adriaan de Groot
156a473565 [welcomeq] Hook the translations up to the language combobox 2020-04-30 18:04:14 +02:00
Adriaan de Groot
4786a91eb8 [welcome] Order get/setters consistently
- code styling OCD, all the other ones are get, then set
- getters can be in the header, they're boring
2020-04-30 17:41:17 +02:00
Adriaan de Groot
22e64d8c18 [branding] Remove duplicate keys for images (thanks Bill) 2020-04-30 16:11:06 +02:00
Adriaan de Groot
8eace7ba5c Merge branch 'wallpaper'
Merge in the documentation from Bill Auger and then implement
what it documents (this had been missing; productWallpaper was
an orphan setting).

FIXES #1380
2020-04-30 13:45:11 +02:00
Adriaan de Groot
3d6e5c5df7 [calamares] Implement productWallpaper setting
- If we have a wallpaper, bung in an extra QWidget between the main
  window and the panels (sidebar, nav and main) where we set a
  stylesheet that displays the chosen image.
2020-04-30 13:33:12 +02:00
Adriaan de Groot
1d44c88e0a [libcalamaresui] Refactor loading of stylesheet
- prep-work for adding special-case styling for productWallpaper
2020-04-30 12:18:15 +02:00
Adriaan de Groot
ddde817abf [libcalamaresui] Apply coding style 2020-04-30 12:10:09 +02:00
Adriaan de Groot
fabb351b77 [libcalamaresui] Give ViewManager widgets names for styling 2020-04-30 12:08:48 +02:00
bill-auger
e2bbaf2cee [branding] add documentation for WIP 'productWallpaper' branding 2020-04-29 22:38:59 +02:00
Adriaan de Groot
fa75c2e2a0 i18n: Correct XML some more 2020-04-29 22:35:20 +02:00
Adriaan de Groot
2490884b78 CI: Simple tool to help with source size of TZ files 2020-04-29 21:22:14 +02:00
bittin
64324c8fc2 i18n: Swedish translation of the Timezone file 2020-04-29 21:22:14 +02:00
Calamares CI
8e3f4547a5 i18n: [python] Automatic merge of Transifex translations 2020-04-29 12:57:46 +02:00
Calamares CI
d46122dab9 i18n: [dummypythonqt] Automatic merge of Transifex translations 2020-04-29 12:57:44 +02:00
Calamares CI
9ab1667088 i18n: [calamares] Automatic merge of Transifex translations 2020-04-29 12:57:44 +02:00
Adriaan de Groot
cb99f446b3 Merge branch 'issue-1192'
FIXES #1192

(Calls it the *boot* flag when using KPMCore4, which also shows the
flag *boot* in the flags list of the partitioning dialogs)
2020-04-24 11:56:16 +02:00
Adriaan de Groot
479b467bb6 [partition] Substitute in the right flag name
- This uses "esp" in KPMCore 3 and "boot" in KPMCore 4
2020-04-23 13:53:30 +02:00
Adriaan de Groot
79e8c447b9 [libcalamares] Test some specific KPM partition flags 2020-04-23 13:46:09 +02:00
Adriaan de Groot
cc1a1079e4 Merge pull request #1383 from demmm/master
[welcomeq] add language bar
2020-04-23 13:26:49 +02:00
Adriaan de Groot
23af4fcdac Merge pull request #1387 from gportay/set-efi-system-partition-name
[partition] Allow a configurable EFI System Partition name
2020-04-23 13:25:56 +02:00
Adriaan de Groot
4c3c8c6239 Merge pull request #1389 from gportay/update-debug-trace
[partition] Update debug output
2020-04-23 12:42:26 +02:00
Gaël PORTAY
ded923fb95 Docs: Add support for bash-completion 2020-04-23 12:38:12 +02:00
Adriaan de Groot
3f4e167aca [libcalamares] Expand kpm test with API 3/4 differences
- fix build
- KPMCore 3 distinguishes esp and boot
- KPMCore 4 does not
2020-04-23 12:16:30 +02:00
Adriaan de Groot
43c5e1fc96 [libcalamares] Fix build of tests
- Typed in on FreeBSD, where it doesn't get built
2020-04-23 11:45:12 +02:00
Adriaan de Groot
cca067a34d [libcalamares] Add a bogus test showing flag names 2020-04-22 15:38:42 +02:00
Adriaan de Groot
1f6752307d [welcome] Massage layout when banner is used
- simplify handling of image loading (if the image doesn't exist,
  Branding will bail out on startup)
- reduce space above the banner if it is in use
2020-04-22 14:53:55 +02:00
Adriaan de Groot
c3941b6e65 [welcome] Shuffle code
- things that can be done in the designer file should be there,
  not weirdly repeated in code elsewhere
- drop the insertion of an extra spacer (why not include it in the
  designer file?)
- shuffle all the connect() calls down to the end of the constructor
2020-04-22 14:53:55 +02:00
Adriaan de Groot
be86561913 [branding] Example banner graphic that matches the default branding.desc
- Bogus "CalaMinix" (maybe the example branding should be consistent
   with that) banner.
 - Turn off the (example) banner in the default branding.
2020-04-22 14:53:45 +02:00
Gaël PORTAY
77a31ac3b2 [partition] Update debug output
The mount-point is known as mountPoint in the global storage.

This commit updates the trace to reflect its real name.
2020-04-21 19:48:48 -04:00
Gaël PORTAY
d6c373c48d [partition] Allow a configurable EFI System Partition name
This commit adds the new configuration `efiSystemPartitionName` to the
file partition.conf.

This option sets the partition name to the EFI System Partition that is
created. If this option is unset, the partition is left unnamed.
2020-04-21 18:47:05 -04:00
Adriaan de Groot
86ffab1873 [libcalamares] Use convenience Logger::NoQuote 2020-04-21 16:46:48 +02:00
Adriaan de Groot
6de82e6857 [libcalamares] Add convenience for QDebug.noquote()
- Use << Logger::NoQuote{} to turn off quoting **and** the space
- In practice, in Calamares we use this only around other processes'
  output, where we want neither quotes nor spaces.
2020-04-21 16:46:13 +02:00
Adriaan de Groot
c59af8881c [umount] Avoid SIGPIPE
- collect output from umount process, and then ignore it
2020-04-21 16:13:19 +02:00
Adriaan de Groot
e51fbdc851 [locale] Apply coding style 2020-04-21 15:35:10 +02:00
Adriaan de Groot
d348977d07 [libcalamares] Fix tests
- the test checks that the default locale is C or en_US .. let's just
  make it so instead of relying on the environment. This fixes tests
  on my dev-laptop, which happens to be set to en_NL (with volapuk
  date format).
2020-04-21 13:41:04 +02:00
Adriaan de Groot
f8df49e40f [partition] Fix up tests
- Although we long ago replaced the getPartitions implementation, the
  test is still there, and on a machine with no /dev/sda (e.g. because
  root is on nvme) the echo-awk-shell-pipeline can give an empty string;
  this is turned into a QStringList{""} which has one element, while
  the new version has 0 elements.
- Special-case the test that empty strings should be empty lists, rather
  than 1-element lists with an empty element.
2020-04-21 13:35:01 +02:00
Adriaan de Groot
a0b4b2bf5e Merge pull request #1381 from bill-auger/patch-welcome-banner
[welcome] add optional branding banner to welcome page
2020-04-21 13:18:44 +02:00
Adriaan de Groot
1f3046dcca Merge branch 'issue-1374'
This is just updating tests, not fixing things.
2020-04-21 12:44:46 +02:00
Adriaan de Groot
69fae85fe8 [locale] Fix test-build
- needs <set> if it doesn't get pulled in implicitly
- mark tests as expected-to-fail to not block release
- SEE #1374
2020-04-21 12:43:45 +02:00
demmm
828448b2ff [welcomeq] make release notes part of welcome window
use Loader option for those notes too, commented out file shows it is possible to load from anywhere
2020-04-20 16:47:12 +02:00
demmm
249150dd1b [welcomeq] add language bar
reads data from languagesModel correctly, debug added to see index changes
code cleanup
button layout improved
install info text added, better spacing of text
about button no longer commented out, 3 reasons:
- info provided by any about is standard, will be odd if it can't be found
- about.qml is a seperate file, can be completely adjusted
- not showing it takes away the options for new QML cala users to see what is possible with Loader, thus stopping new possible contributors
2020-04-20 15:00:04 +02:00
Adriaan de Groot
3ef950eea3 Merge pull request #1382 from bill-auger/patch-translations
[i18n] esperanto translations
2020-04-19 13:41:12 +02:00
Calamares CI
90cb1ebc49 i18n: [calamares] Automatic merge of Transifex translations 2020-04-19 13:40:28 +02:00
bill-auger
7bce58f6f2 [welcome] add optional branding banner to welcome page 2020-04-19 04:01:22 -04:00
bill-auger
1d71ad71c2 [i18n] esperanto translations 2020-04-17 22:11:32 -04:00
Adriaan de Groot
7664a913cc Changes: post-release housekeeping 2020-04-17 15:25:15 +02:00
Adriaan de Groot
a128dd5d3c Changes: errant space 2020-04-17 13:41:33 +02:00
Adriaan de Groot
a63a92e3d5 [locale]Fix build (clang, Debian)
- This is a follow-up to d0c205c1cc6a2ae49935c92bfd52911b9a0d43f7;
  I really don't know why static constexpr const elements that are
  not referenced by address need to be defined separately.
2020-04-17 13:41:21 +02:00
Calamares CI
dbde6149ac i18n: [python] Automatic merge of Transifex translations 2020-04-17 13:18:25 +02:00
Calamares CI
4282bbbbc7 i18n: [calamares] Automatic merge of Transifex translations 2020-04-17 13:18:24 +02:00
Adriaan de Groot
d24e2b561f Changes: pre-release housekeeping 2020-04-17 13:16:53 +02:00
Adriaan de Groot
ebb5efcd42 [locale] Mark test as expected-to-fail
- There are still 88 issues with the timezone images
2020-04-17 13:06:05 +02:00
Adriaan de Groot
06f96dc16f Merge branch 'tzwidget-layout'
The introduction of navigation panels made them taller, leaving less
space for the locale page's timezonewidget -- which then got
comboboxes overlapping it. That's weird from a QVBoxLayout point of
view, but the issue remains that the locale page is actually a
*smidgen* (2px) too tall.

- Massage a bunch of layout code to make the default navigation panel
  30 pixels again, like it was. This is obviously fragile in the face
  of HiDPI, but Calamares is weak there anyway.
- Rework the enlarge signals to make it possible to claim space, so
  that if a page needs more space it's easy to get; because the locale
  page is just a smidgen too tall, it won't trigger resizes right now.
2020-04-17 12:57:58 +02:00
Adriaan de Groot
e804ad2488 [libcalamaresui] Rename enlarge()
- rename enlarge to ensureSize() and change the meaning from
  "make this much bigger" to "make sure this is displayed",
  which is easier on the caller to calculate.
2020-04-17 12:56:47 +02:00
Adriaan de Groot
2a4c74c099 [calamares] Layout-wranging
- the navigation bar was set "too tall", leave it at the natural
  layout height for this widget
- margins needed some massaging to give contents some more space
  (contents has a margin, so it doesn't need more space above
  the navigation bar)
2020-04-17 12:56:47 +02:00
Adriaan de Groot
ade623f6b8 [locale] Shuffle code
- Put the building-up-the-overall-page in one spot
- Claim a little more vertical space for the TZ widget
2020-04-17 12:56:39 +02:00
Adriaan de Groot
c0be53523c [locale] Give TZWidget a fixed size 2020-04-17 10:02:54 +02:00
Adriaan de Groot
b1caca4694 Changes: mention netinstall improvements 2020-04-16 23:33:16 +02:00
Adriaan de Groot
8304ce93bf Merge branch 'issue-1369'
FIXES #1369

- Rich package descriptions were easy to do; added some tests
  as well; also make it viable to copy a once-tested "local"
  file to the downloadable YAML format.
2020-04-16 23:26:15 +02:00
Adriaan de Groot
a4c5e18c4b [netinstall] Allow the netinstall.yaml to contain key *groups*
- This makes it easier to just copy the example, *groups*-key
  and all, into an online YAML file and serve that up.
  You get easier (local) testing.
2020-04-16 23:20:22 +02:00
Adriaan de Groot
2aca5464b7 [netinstall] Display package descriptions
- For packages with a description, show that
- Add an example in the config-file
2020-04-16 22:42:30 +02:00
Adriaan de Groot
960008b124 [netinstall] Allow rich descriptions of packages
- the *packages* list can now be package-names, or
  package-names-and-a-description.
2020-04-16 22:42:26 +02:00
Adriaan de Groot
39ed591414 Merge pull request #1378 from FLVAL/master
[locale] Timezones correction + Pin reduced
2020-04-16 19:30:48 +02:00
FLVAL
3f6e242fd9 Add files via upload
Resaved cause showing not 100% upload with latest correction
2020-04-16 19:21:44 +02:00
FLVAL
31fd7f8580 Add files via upload 2020-04-16 19:14:45 +02:00
FLVAL
82c4e7aa54 Add files via upload
- udpated the _0.0 and _1.0 to not get overlap between Gibraltar and Cueta
- Fakaofo correction on _10.0 and _-11.0
- pin reduced size
2020-04-16 19:09:49 +02:00
Adriaan de Groot
82ba4be5e7 [locale] Test for pixel-perfect location of Gibraltar and Ceuta
- Can't get Gibraltar (and Ceuta) to be distinguished
2020-04-16 17:59:12 +02:00
Adriaan de Groot
3db901bd09 [locale] Expand tests to show overlapping locations
- This isn't something that Calamares can acutally fix,
  so the test will be disabled later. After all, if
  Brazzaville and Kinshasa are close enough that on the
  map they are the same pixel, we can't move the cities.
2020-04-16 15:48:17 +02:00
Adriaan de Groot
2633cf1ef6 [locale] Fix timezone maps for -1,0,1 timezones
- Merge branch 'master' of https://github.com/FLVAL/calamares
- Add credits to CHANGES

FIXES #1377
SEE #1374
2020-04-16 15:09:14 +02:00
Adriaan de Groot
7b4b268875 [netinstall] Hit the docs with a hammer
- Merge all the format documentation into netinstall.conf,
  where the example is given in full as an embedded
  *groups* entry.
- Get README.md to point to the example.
- Fix up headers in netinstall.yaml, pointing to the
  embedded example in netinstall.conf.
2020-04-16 14:34:55 +02:00
FLVAL
e5b2faad9a Add files via upload
Timezones updated for these countries found on pixel detection tool 

Dublin is in 0 (-1 needs editing)
Gibraltar should be 1.0 (0 needs editing)
Guernsey and Jersey are in 0 (1.0 needs editing)
Lisbon is in 0 (-1 needs editing)
Vilnius should be in 2 (1 needs editing)
2020-04-16 02:54:38 +02:00
Adriaan de Groot
cd66405363 [locale] Test TZ images properly
- the test wasn't built with DEBUG_TIMEZONES, so it didn't get the
   overlap-checking code at all.
2020-04-15 14:30:10 +02:00
Adriaan de Groot
d23eadbfda Changes: document tx and logging changes 2020-04-15 14:20:05 +02:00
Adriaan de Groot
d0c205c1cc [locale] Fix build (gcc, Debian) 2020-04-15 14:19:47 +02:00
Calamares CI
d08faf6e54 i18n: [python] Automatic merge of Transifex translations 2020-04-15 13:43:18 +02:00
Calamares CI
ef6073de14 i18n: [calamares] Automatic merge of Transifex translations 2020-04-15 13:43:17 +02:00
Adriaan de Groot
d20a621e93 [users] Apply coding style 2020-04-15 11:55:09 +02:00
Adriaan de Groot
24d0ca6f8e CI: don't be so chatty while looking for clang-format 2020-04-15 11:54:27 +02:00
Adriaan de Groot
ab5d5fb772 [users] Log pwquality error message as well (better than just "-14") 2020-04-15 11:49:43 +02:00
Adriaan de Groot
b890345b1f [locale] Tidy includes 2020-04-15 11:45:27 +02:00
Adriaan de Groot
f7a87338b8 [locale] math headers got lost 2020-04-15 11:41:59 +02:00
Adriaan de Groot
a2a10d14b6 [locale] Improve logging in tests 2020-04-14 16:24:56 +02:00
Adriaan de Groot
da440256d9 Merge branch 'issue-1374'
SEE #1374

This isn't a fix, it just adds a test that demonstrates the
scope of the problem.
2020-04-14 16:22:21 +02:00
Adriaan de Groot
29fd0e0319 [locale] Expand test to check zones-overlap
- Document index and find methods,
- Check that each location is claimed by only one image (e.g. by
  one zone). This is currently false.
2020-04-14 16:21:24 +02:00
Adriaan de Groot
1d5c4f13aa [locale] Move the find-a-zone-image-for position to the image list 2020-04-14 16:06:21 +02:00
Adriaan de Groot
6173f9337a [locale] Refactor long+lat -> x,y mapping
- Move this code to a static method since it only depends on the
  expected image size (which here, is managed by the image list).
2020-04-14 15:24:05 +02:00
Adriaan de Groot
3945008956 [locale] Test the TZ image loader
- QImage needs Qt5::Gui, so this isn't a guiless-test; it can use
  the offscreen QPA, though.
- Check that the images are all the same size
- Debugging / check code removed from timezonewidget
2020-04-14 15:10:04 +02:00
Adriaan de Groot
340c462062 [locale] Refactor loading of timezone images
- Move the image-loading to a separate class
2020-04-14 14:44:24 +02:00
Adriaan de Groot
4b65600c08 [locale] Remove useless localeglobal
- Although ::init() was called, none of the actual functionality
   from localeglobal was still in use.
2020-04-14 12:37:22 +02:00
Adriaan de Groot
36d9e7d8f4 [locale] Extend tests with tz-image-validation
- The idea is to check all the TZ images for consistency, like
  TimeZoneWidget::setCurrentLocation() does when DEBUG_TIMEZONES is
  on; a zone-pixel should be set in only **one** image.

The test so far is just a stub.
2020-04-14 11:59:45 +02:00
Adriaan de Groot
e84db033b0 [locale] Debug-message typo 2020-04-14 11:57:03 +02:00
Adriaan de Groot
f9d888ec24 [locale] Warnings--
- remove unused variables, tighten up code some
- while here, apply coding style
2020-04-14 11:32:15 +02:00
Adriaan de Groot
022e62b829 [licale] Fix build with DEBUG_TIMEZONES
- QLatin1String isn't a constexpr; the whole ZONE is a bit derpy,
  so let's just #define it.
2020-04-14 11:26:03 +02:00
Adriaan de Groot
05990fb287 CMake: handle DEBUG_* consistently
- Make all four DEBUG_ flags actual CMake options, rather than
  stuffing some of them in the rather-peculiar _enable_debug_flags.
  Each debug option turns on suitable compile flags in the module(s)
  that are affected.
2020-04-14 11:18:51 +02:00
Adriaan de Groot
3b69e48e04 Changes: post-release housekeeping 2020-04-10 22:00:03 +02:00
Adriaan de Groot
16a5ca2a55 [libcalamares] Format floats with trailing digits
- When writing YAML, given a float **always** write
   some decimal digits (e.g. "1.0" rather than "1")
   so that the type of the written-out thing stays
   float.
 - Avoids test failure with the sample `welcome.conf`
   file which reads 1.0 and would write out 1, which then
   led to type differences.
2020-04-08 17:10:32 +02:00
Adriaan de Groot
3b354b8b20 [libcalamares] Handle qlonglong when writing YAML
- Handle qlonglong explicitly
- Add a fallbackfor things that convert to qulonglong, to
  avoid these remaining integer types from hitting the
  very end of the if-chain, and being written out as
  the **string** "<typename>"
2020-04-08 17:01:24 +02:00
Adriaan de Groot
c6463a30ea [libcalamares] Be far more detailed in comparing maps
- just comparing a==b (both QVariantMap) gives a
  not-so-informative message, so go through the keys looking
  for differences.
2020-04-08 16:47:03 +02:00
Calamares CI
69cd87909b i18n: [python] Automatic merge of Transifex translations 2020-04-08 13:25:56 +02:00
Calamares CI
9c6801afa8 i18n: [calamares] Automatic merge of Transifex translations 2020-04-08 13:25:55 +02:00
Adriaan de Groot
624b8ae853 Changes: pre-release housekeeping 2020-04-08 13:24:09 +02:00
Calamares CI
04cbceed5e i18n: [python] Automatic merge of Transifex translations 2020-04-07 23:03:18 +02:00
Calamares CI
748973a17c i18n: [dummypythonqt] Automatic merge of Transifex translations 2020-04-07 23:03:18 +02:00
Calamares CI
b2106287a6 i18n: [calamares] Automatic merge of Transifex translations 2020-04-07 23:03:17 +02:00
Adriaan de Groot
8a6925c5be i18n: update English texts 2020-04-07 22:59:52 +02:00
Adriaan de Groot
8b41a71668 [partition] Apply coding style to core/ 2020-04-07 21:38:15 +02:00
Adriaan de Groot
eb6270982f Merge branch 'issue-1175' 2020-04-07 21:37:35 +02:00
Adriaan de Groot
b08cb52d0a [partition] Mark /boot or / as bootable
FIXES #1175
2020-04-07 21:26:54 +02:00
Adriaan de Groot
0c6dd4e788 [partition] No "jobs/" needed in jobs includes 2020-04-07 11:46:03 +02:00
Adriaan de Groot
f85732ccb0 [partition] Coding style on Jobs 2020-04-07 11:44:26 +02:00
Adriaan de Groot
1e3ff51bfe [finished] Don't translate placeholder text 2020-04-07 11:09:59 +02:00
Adriaan de Groot
f963b826ca Changes: notes on the module-polishing up to now 2020-04-06 18:29:18 +02:00
Adriaan de Groot
087c88753c [netinstall] Expand the table of common-strings
When one of these common names for the netinstall page is used,
it gets pulled out of the standard translations, so that it
doesn't have to be translated in the per-distro config file.
These labels are common enough that they make sense for
everyone to have lying around.

FIXES #1367

(I say "fixed" but of course it's going to depend on the translation
workflow to make these available)
2020-04-06 17:35:27 +02:00
Adriaan de Groot
11aa6da1e9 Merge branch 'issue-1335'
FIXES #1335
2020-04-06 17:27:41 +02:00
Adriaan de Groot
129bfa3a2e [unpackfs] Counting works better when you update the variable 2020-04-06 17:14:29 +02:00
Adriaan de Groot
bea41465e2 [unpackfs] Update progress around every 1% 2020-04-06 17:08:27 +02:00
Adriaan de Groot
facf5af589 [unpackfs] Don't jump back in progress while counting 2020-04-06 17:06:53 +02:00
Adriaan de Groot
af0d04d523 [unpackfs] Report progress more carefully
- Mark entries as totally-done
- Show a message when counting an entry
2020-04-06 16:54:02 +02:00
Adriaan de Groot
f33c737e99 [libcalamares] Pretty debug formatting
- toggle nospace() and noquote() part-way through the line,
  so that they only affect the output obtained from the external
  command.
2020-04-06 11:56:39 +02:00
Adriaan de Groot
4abb87ccca [libcalamares] Improve reporting on process failures
- In production, cDebug() might not show up, so the log will not
  contain the lines saying what program is being run;
- Errors should at least mention the program name, but "env" or
  "chroot" is not useful, so pull that from *args*, which is
  the command we actually want to run.
2020-04-06 11:17:47 +02:00
Adriaan de Groot
752399ca6b [libcalamares] Error out on empty command
- an empty command isn't going to work (although it might successfully
  run chroot or env in the target system, that's not useful)
- while here, move variable declarations closer to their use.
2020-04-06 11:15:10 +02:00
Adriaan de Groot
88c75fb5dc [libcalamares] Simplify program-arguments creation 2020-04-06 11:08:16 +02:00
Adriaan de Groot
21f060c3fd [unpackfs] Check for squashfs tools earlier 2020-04-06 10:52:32 +02:00
Adriaan de Groot
391bd1098f [unpackfs] An entry knows where it is mounted
- `imgmountdir` no longer defined in `UnpackOperation.run()`
2020-04-06 10:48:34 +02:00
Adriaan de Groot
388cddca7b Merge branch 'netinstall-columns'
Fix issue reported on Telegram that netinstall columns are not
wide enough to see the product names.
2020-04-05 00:27:42 +02:00
Adriaan de Groot
065a506470 [netinstall] Resize name column
- Once group data is loaded and pre-expanded groups are open,
  adjust the column width so that all the names are visible.
2020-04-05 00:26:53 +02:00
Adriaan de Groot
a97f4771d6 [calamares] Fix test-loader for modules after ViewManager API
- The ViewManager needs to be told when loading is done now (because of
  the quit-at-end settings)

See 7393198f7b
2020-04-05 00:07:42 +02:00
Adriaan de Groot
9db7dd3f3e [netinstall] Add a group with long names 2020-04-04 23:59:58 +02:00
Adriaan de Groot
9b14bf6826 [unpackfs] Rework progress reporting
- Slice overall progress into chunks, with each chunk of equal size
  (as long as we have no overall count information) and place
  the progress of the current chunk into its own slice.
2020-04-04 23:42:20 +02:00
Adriaan de Groot
7e4cb28c1c [unpackfs] Refactor mounting for an entry
- The entry knows where it should be mounted, and can remember that
- mount_entry() didn't use self, so made no sense as a method
  of the Operation class
2020-04-04 23:19:08 +02:00
Adriaan de Groot
49a584377e [unpackfs] Refactor counting an entry
- This does not have to live in the Operation
- Uses only the local imgmountdir (where the entry is mounted)
2020-04-04 23:10:22 +02:00
Adriaan de Groot
d55a5bde98 Merge pull request #1368 from demmm/master
[localeq] Repeater with zonesModel crashes cala
2020-04-04 21:51:53 +02:00
demmm
e63160cbe9 [localeq] Repeater with zonesModel crashes cala
probably due to dynamically loading items
regionModel now lists, zonesModel only lists one delegate, but
working on QML modules can now continue without crashing cala
2020-04-04 18:43:23 +02:00
Adriaan de Groot
ede561789a Merge branch 'qml-keyboard'
This doesn't actually **work** though, the QML uses older Calamares-internal
APIs and uses a ResponsiveBase that we don't have. Merge it mostly for
the Config and model changes.

FIXES #1355
2020-04-03 17:27:12 +02:00
Adriaan de Groot
af4220331e [libcalamaresui] Move lambda to a "real" slot. 2020-04-03 16:38:10 +02:00
Adriaan de Groot
7393198f7b [libcalamaresui] Tell the manager explicitly when loading is done
- Add some extra checks for validity of m_currentStep (an index)
- Start off with explicitly invalid index, and keep it so until
  loading is complete; this prevents the situation where quit-at-end
  gets triggered after loading the very first module.
2020-04-03 15:36:58 +02:00
Adriaan de Groot
c2fac3a717 [calamares] Minor clean-ups 2020-04-03 15:14:14 +02:00
Adriaan de Groot
59ef307af2 Merge panel-layout code: choose where to place sidebar + nav 2020-04-03 13:56:19 +02:00
Adriaan de Groot
6c418402e3 [localeq] Hit QML file with a hammer
- io.calamares.modules doesn't exist
- ResponsiveBase doesn't exist

The module is now non-functional, but at least it loads and renders
a list of regions and zones.
2020-04-03 13:43:48 +02:00
Adriaan de Groot
54b8ad5475 [localeq] Fix loading default QML
- need our own copy of the QRC, that includes the QML
2020-04-03 12:57:25 +02:00
Adriaan de Groot
c602f2493a [keyboardq] Make QML available
- name default / example QML conventionally
 - copy QRC from keyboard -- the QML needs to be included in the QRC --
   since we don't want to have the QML in the keyboard module.
2020-04-03 12:42:41 +02:00
Adriaan de Groot
768c1dbe43 Changes: describe panel-layout options 2020-04-03 11:44:04 +02:00
Adriaan de Groot
7b6b53ab8c [calamares] Re-do building the main layout
- follow branding settings, taking the panel-sides into account
- drop fixed width and height for QML parts
- give panels a minimum appropriate-dimension if they don't have one

This allows, for instance, putting both Widget sidebar and QML navigation
on the left-hand side of the window.
2020-04-03 11:40:51 +02:00
Adriaan de Groot
e15e7d1dc5 [libcalamaresui] Load panel-side settings
- Introduce an enum for panel-side
- Expose this to QML -- I can imagine that QML panels need to know
  which side of the Calamares window they're on.
- Refactor loading the setting into a method that handles both
  flavor and side
2020-04-03 11:05:37 +02:00
Adriaan de Groot
b48e0ebb37 [branding] Introduce placement options for nav, sidebar
- There's no real reason to force the sidebar left and nav at the bottom,
  certainly with QML supporting more layouts and being more flexible,
  so document a mechanism to place the sidebar and navigation along
  "edges" of the Calamares window.
2020-04-03 10:39:03 +02:00
Camilo Higuita
835850c02a [keyboardq] apply the style script 2020-04-03 10:27:06 +02:00
Camilo Higuita
1a46e08cc2 [keyboard] changes to the keyboardmodel to work with qml 2020-04-03 10:26:58 +02:00
Camilo Higuita
0872de7910 [keyboard] Add Config object, split out a keyboardq
- Introduce new QML-ified module for the keyboard
- To share code, move *keyboard* module to a Config-object
2020-04-03 10:19:04 +02:00
Adriaan de Groot
733801980c [libcalamaresui] Fix up icon name for back-button 2020-04-03 01:23:17 +02:00
Adriaan de Groot
10dd32edd2 [libcalamaresui] Fix isAtVeryEnd()
- With an empty list, the question is meaningless
- .. and we called this with an empty list while constructing the
  ViewManager; if quit-at-end is true, then this would terminate
  Calamares immediately because the list was at the end.
2020-04-02 23:50:41 +02:00
Adriaan de Groot
081f5ec4d9 [libcalamaresui] Remove unused static methods
- The UI bits that needed these button-setup functions have
  moved to CalamaresWindow (with copies of those functions)
2020-04-02 23:39:29 +02:00
Adriaan de Groot
a3c966cc6c Merge branch 'issue-1361'
FIXES #1361
2020-04-02 23:14:31 +02:00
Adriaan de Groot
c7733f51d0 Merge pull request #1365 from demmm/master
[welcomeq] buttons connecting
2020-04-02 23:13:29 +02:00
Adriaan de Groot
fafc508d63 [welcome] Update the widget's notion of the locale
- when the locale changes, tell the widget so that the drop-down
  displays the right language.

FIXES #1361
2020-04-02 23:10:55 +02:00
Adriaan de Groot
5956c6678e [welcome] Don't const& POD
- simplify parameter types in some set-methods
- while here, shuffle methods to bring things together
2020-04-02 22:42:41 +02:00
Adriaan de Groot
e756cc8720 [libcalamares] Tidy RequirementsModel some more
- put signals in conventional place
- remove const int& parameter, that can just be int
- drop oddly-guarded code (that leaks memory); if the index (row)
  being passed in, it's probably best to just crash
- remove unused signal warningMessageChanged
2020-04-02 22:14:27 +02:00
Adriaan de Groot
4e7020d030 [libcalamares] Polish model
- make signals consistent in carrying a parameter
- explain why there's no Q_ENUM
2020-04-02 22:04:34 +02:00
Adriaan de Groot
d2f5185d49 [welcome] Remove unused m_configurationMap
- the configuration is split into specific properties, not
  stored generically.
2020-04-02 22:00:43 +02:00
Adriaan de Groot
39afbdb570 [welcome] Shuffle signals to conventional location
- signals after slots, before private
- while here give the *MessageChanged signals a parameter (the changed
  message)
2020-04-02 21:57:00 +02:00
Adriaan de Groot
9d97972a34 [welcome] Apply coding style 2020-04-02 21:53:02 +02:00
Adriaan de Groot
ca7733c8e4 [welcome] Drop RequirementsModel
- Use the one from libcalamares
- Massage warning message into Config after it was removed from the model
2020-04-02 21:52:05 +02:00
Adriaan de Groot
3bf69c9da8 [calamares] Pacify gcc 2020-04-02 21:38:29 +02:00
Adriaan de Groot
e5562a5069 [libcalamares] Move RequirementsModel to libcalamares (1/2)
- Add the model and support code to libcalamares. The model still
  has some cruft that should be in the Welcome config.
2020-04-02 21:33:07 +02:00
demmm
34292618d8 welcomeq buttons connecting
minor spelling corrections
2020-04-02 20:16:05 +02:00
Adriaan de Groot
e2fee79957 [libcalamaresui] Set icon on back-button 2020-04-02 17:49:08 +02:00
Adriaan de Groot
61a56336a1 Changes: document QML work, thanks Anke 2020-04-02 17:19:12 +02:00
Adriaan de Groot
abe3f4cda0 Merge branch 'issue-1344'
FIXES #1344
2020-04-02 16:46:59 +02:00
Adriaan de Groot
510f9352e7 [calamares] Tweak QML sidebar
- some margins and extra space
 - left-align text
 - progress lozenges instead of pointy rectangles
2020-04-02 16:45:04 +02:00
Adriaan de Groot
1038de899b [calamares] Update sidebar and navigation QML
- use the right colors (from branding, not from desktop theme)
- apply branding logo
2020-04-02 16:22:39 +02:00
Adriaan de Groot
ff37792dc9 [calamares] Resize QML to width of parent window 2020-04-02 16:01:58 +02:00
Adriaan de Groot
476a576dda [libcalamaresui] Ensure all button labels are accurate
- since lots of state is updated when the labels change, call that
  in the constructor so that any QML bindings get current values.
2020-04-02 15:48:43 +02:00
Adriaan de Groot
c755c7ed98 [libcalamaresui] restore quit-at-very-end functionality
- This doesn't need to go indirectly through a button
2020-04-02 13:54:14 +02:00
Adriaan de Groot
e7fabeceb2 Merge pull request #1364 from demmm/master
[welcomeq] About option re-added
2020-04-02 13:53:55 +02:00
Adriaan de Groot
91d0ba1007 [libcalamaresui] Remove *quit* button from ViewManager
- Mostly like the other buttons
- Also show/hide the button and set tooltip
2020-04-02 13:44:49 +02:00
Adriaan de Groot
0c71c7c23f [calamares] Set initial states of next, back buttons 2020-04-02 12:36:45 +02:00
Adriaan de Groot
38deb66e42 [libcalamaresui] Remove *back* button from ViewManager
- Now the back button should be done by clients as well
- Refactor in CalamaresWindow to avoid leaking local button pointers
  to surrounding code.
- Add macro UPDATE_BUTTON_PROPERTY for convenience in ViewManager
  (ugh, macro) to change a value and emit corresponding update signal.
2020-04-02 12:31:14 +02:00
Adriaan de Groot
8920be6bca [libcalamaresui] Remove *next* button from ViewManager
- add properties for the next button (enabled, label, icon...)
- update those properties as normal
- connect to the properties in the UI implementation
2020-04-02 12:04:24 +02:00
Adriaan de Groot
c638343c18 [libcalamares] Give ViewManager a real quit() slot
- instead of creating a lambda, give ViewManager a real slot
- hook up the new navigation buttons to the next, back, quit slots
2020-04-01 18:45:25 +02:00
demmm
2c2bba5525 actually set About button to false... 2020-04-01 16:21:43 +02:00
demmm
b3f59cee25 filling About in QML, button still disabled
using Loader, can be reused for other widgets conversion
leave onClick example with full path, commneted out
title text for About is hardcoded, discuss option to make this configurable in welcome.conf
background color hardcoded, tested to work well in dark themes too
2020-04-01 16:19:00 +02:00
Adriaan de Groot
9f66b63c00 [calamares] Indulge in template-fu to refactor
- since we've got two blocks of code copy-pasted, which both
  decide to call one or the other of two member functions based
  on a flavor value, turn that into a templated function.
- passing member functions looks a bit weird, and calling them
  is syntactically surprising, but it cuts down the code a lot.
2020-04-01 15:30:47 +02:00
Adriaan de Groot
2dcf265c40 [calamares] Give QML navigation bar a fixed height 2020-04-01 15:13:08 +02:00
Adriaan de Groot
02fc4ce806 [calamares] Load QML navigation 2020-04-01 15:09:59 +02:00
Adriaan de Groot
d4f903b95c [calamares] Create navigation panel in CalamaresWindow
- this is a non-functional duplicate panel, so it looks funny
2020-04-01 11:35:27 +02:00
Adriaan de Groot
6c8aa5da63 [libcalamaresui] Remove commented-out code 2020-04-01 11:26:09 +02:00
Adriaan de Groot
57e6864902 [libcalamaresui] Add panel flavor
- rename enum to more general PanelFlavor
- introduce branding settings for navigation (e.g. for switching
  the navigation buttons off, or using QML)
2020-04-01 11:13:41 +02:00
Adriaan de Groot
d4083c9bbb [libcalamaresui] Add "hidden" as alias for "none" in sidebar settings 2020-04-01 11:07:23 +02:00
Adriaan de Groot
d8ecd302e1 [libcalamares] Apply coding style
- minor space issues
 - drop a blank line after moc-warnings.h to avoid if being sorted
   downwards, after the MOC file it's protecting
2020-03-31 23:19:51 +02:00
Adriaan de Groot
1765412b61 [libcalamaresui] Move RequirementsChecker to libcalamares
- the checker only collects and calls requirements; it has no
  UI component, and only manages data (and a thread to do the
  checking). Move it out of the UI library.
2020-03-31 23:13:13 +02:00
Adriaan de Groot
7655584022 [libcalamaresui] Move Module to libcalamares
- The Module class has no UI-specific code in it; it's all about
  loading and data-management. Move it out of the UI library.
2020-03-31 22:56:42 +02:00
Adriaan de Groot
e04f87fe95 [libcalamaresui] Refactor moduleFromDescriptor
- this function lives in Module -- and is the only thing typing
  Module to the ViewSteps and JobTypes. Split it out into its
  own funciton. Nothing else in Module needs to befriend the
  ViewSteps, so we move the friend declaration around a bit
  as well.
- while here, apply coding style.

This is prep-work for moving module to libcalamares.
2020-03-31 22:46:45 +02:00
Adriaan de Groot
4ddd1ecceb [libcalamares] Move Requirement to libcalamares
- This isn't a UI component: a requirement can be checked and
  reported-on without a UI entirely.
2020-03-31 22:13:30 +02:00
demmm
c10ef9e3bc [welcome] Improve welcomeq visuals
- set image to fill
 - keep aspect ratio
 - don't hardcode text color
 - variation in icons used
 - expand header text to check fit
2020-03-31 16:08:24 +02:00
Adriaan de Groot
04c084e831 Merge branch 'issue-1340'
FIXES #1340
2020-03-30 14:28:46 +02:00
Adriaan de Groot
eda2e4e10a [calamares] Tweak looks of basic-QML-sidebar
- Use the new currentStepIndex (suggested by Camilo) to see if something
  is selected / current.
2020-03-30 14:25:54 +02:00
Adriaan de Groot
fff4caf0de [libcalamaresui] Apply coding style
- while here, update copyright
2020-03-30 14:16:25 +02:00
Adriaan de Groot
3d7e5bc90d [libcalamaresui] Expose just currentIndex
- drop the current and completed roles, and expose only
  the currentIndex. QML can use the QObject property on
  the model, while QWidgets can call internally through
  the model's data() function.
- we don't need to provide role names for this, so drop that bit.
- simplify the delegate code while here.
2020-03-30 14:14:10 +02:00
Adriaan de Groot
aad79f664e [libcalamaresui] Expose currentIndex also as model data 2020-03-30 14:10:20 +02:00
Adriaan de Groot
b8962cec2d [libcalamaresui] Expose currentStepIndex 2020-03-30 13:11:08 +02:00
Adriaan de Groot
b271ed19b7 [partition] Fix typo in message 2020-03-28 12:49:34 +01:00
Adriaan de Groot
83f5f9e1a7 [libcalamares] Introduce generic delete-later class
Don't bother with QScopeGuard just right now, since I can't
find a use-case in the Calamares codebase.

FIXES #1358
2020-03-28 11:49:23 +01:00
Adriaan de Groot
7c56a50632 [netinstall] Expand documentation of groups format 2020-03-28 11:18:31 +01:00
Adriaan de Groot
599c72bade Changes: post-release housekeeping 2020-03-28 10:48:13 +01:00
Calamares CI
3c762d3e2b i18n: [python] Automatic merge of Transifex translations 2020-03-27 23:43:50 +01:00
Calamares CI
2b6eb8473e i18n: [dummypythonqt] Automatic merge of Transifex translations 2020-03-27 23:43:50 +01:00
Calamares CI
034447e021 i18n: [calamares] Automatic merge of Transifex translations 2020-03-27 23:43:49 +01:00
Adriaan de Groot
32ded8b731 Changes: pre-release housekeeping 2020-03-27 23:41:04 +01:00
Adriaan de Groot
33a4b08ac0 Merge branch 'issue-1343'
- Also add documentation to CHANGES

FIXES #1343
FIXES #1319
2020-03-27 21:14:47 +01:00
Adriaan de Groot
433ed8384f [netinstall] Inherit criticalness in groups
- Groups inherit slightly differently: if a subgroup **explicitly**
  configures criticalness, use that. It would be weird, but possibly,
  to have a non-critical subgroup of a critical group.
2020-03-27 20:53:13 +01:00
Adriaan de Groot
83a89c144c [netinstall] Packages should inherit critical-ness from parent 2020-03-27 20:45:04 +01:00
Adriaan de Groot
14a3e10cc2 [netinstall] Simplify getItemPackages
- Use convenience predicate isPackage()
- Name child->item(i) for brevity
2020-03-27 20:37:36 +01:00
Adriaan de Groot
464561b420 [netinstall] Update subgroup-checkedness based on children
- An unselected group with (some) selected subgroups was not
  displayed as (semi)checked -- it was unchecked, because
  its checked-ness was not updated based on the children.
2020-03-27 17:28:32 +01:00
Adriaan de Groot
63b940a623 [netinstall] Implement immutable groups
- An immutable group doesn't show a checkbox at all
2020-03-27 16:47:33 +01:00
Adriaan de Groot
7a42a4d71f [netinstall] Add example section that is immutable
- The section can't be changed, but is selected (it doesn't
  make sense otherwise)
2020-03-27 16:47:07 +01:00
Adriaan de Groot
85551f0fdb [netinstall] Various refactoring
- move ready-indication to Config
- don't check pointers that can't be null
- hand the whole Config to the page
2020-03-27 16:12:48 +01:00
Adriaan de Groot
4cdfe1276a [netinstall] Rip loading out of the UI page
- Create a config object in the ViewStep
- Model lives in the config object and loads there
- Give model to the UI page for display
2020-03-27 15:51:03 +01:00
Adriaan de Groot
9a35427113 [netinstall] Remove unused m_jobs
- Netinstall doesn't make any jobs itself, so drop the member variable
- Use type alias, and simplify jobs()
2020-03-27 15:14:37 +01:00
Adriaan de Groot
1a74a713b6 [netinstall] Make status an enum
- Since we might change translations after loading, display
  the message based on the status enum, rather than
  setting it once at load-time.
2020-03-27 14:54:06 +01:00
Adriaan de Groot
7a4f6f7bfd Merge pull request #1357 from demmm/master
[partition] Increase Manual Partition instructions
2020-03-27 14:05:56 +01:00
Adriaan de Groot
463435db68 [localeq] De-cruft CMakeLists
- Remove commented-out code
- Fix layout
- Update to modern CMake approach
2020-03-26 11:39:04 +01:00
Adriaan de Groot
ba8811c628 [keyboard] Apply coding style
- Include order
- ci/calamaresstyle
- modern alias for job-list
2020-03-26 11:08:55 +01:00
Adriaan de Groot
df0a98b2a4 Docs: make editorconfig for CMake explicit (4-space indents) 2020-03-26 10:48:03 +01:00
Adriaan de Groot
ac08598176 Branding: expand the stylesheet example
- Mention that the sidebar menu can't be styled
- Point to more documentation about styling
- Give an example of styling buttons with an icon
2020-03-25 23:35:33 +01:00
demmm
8dc81b6987 Increase Manual Partition instructions
used downstream since 2014, has helped a lot with increaisng correct setups
2020-03-25 19:43:29 +01:00
demmm
30ef7b4334 Merge pull request #2 from calamares/master
Merge upstream
2020-03-25 19:35:32 +01:00
Adriaan de Groot
215bc46469 [welcome] Update copyright years in about-popup 2020-03-25 13:54:54 +01:00
Adriaan de Groot
de5c97af11 Merge branch 'milohr-qml-bits'
FIXES #1352
2020-03-25 13:48:26 +01:00
Adriaan de Groot
2a93c7e236 [welcome] Chase changed API in master 2020-03-25 13:48:10 +01:00
Adriaan de Groot
ce244d8514 [welcome] Style in viewstep (unrelated to merge) 2020-03-25 13:46:27 +01:00
Adriaan de Groot
875f79b49f [libcalamares] Drop unused parameter
- the `parent` when installing a translator was not used, so drop it
  from the API. Chase some uses of the API, but leave welcome-modules
   broken: there's a merge of those coming.
2020-03-25 12:08:27 +01:00
Adriaan de Groot
81912f9e7d [welcome] Style in Config 2020-03-25 12:00:41 +01:00
Adriaan de Groot
1ede7003c0 [welcome] Apply coding style 2020-03-25 11:41:39 +01:00
Adriaan de Groot
ff74113675 Merge branch 'qml-bits' of https://github.com/milohr/calamares into milohr-qml-bits 2020-03-25 11:37:56 +01:00
Adriaan de Groot
a33d9f5a06 Merge branch 'milohr-qml-locale'
FIXES #1353
2020-03-25 00:43:32 +01:00
Adriaan de Groot
e3b4689cab [libcalamares] Warnings--
- It's the perennial struggle between Qt index types and STL ones
2020-03-25 00:42:42 +01:00
Adriaan de Groot
998790d69c [libcalamares] Warnings-- 2020-03-24 23:52:57 +01:00
Adriaan de Groot
4aeb774812 [libcalamares] POD don't bother with const& 2020-03-24 23:52:20 +01:00
Adriaan de Groot
177d6fe861 [libcalamares] Apply coding style 2020-03-24 22:57:36 +01:00
Adriaan de Groot
08b5012946 [locale] Apply coding style to Config
- ci/calamaresstyle
- sort includes by kind (local module, Calamares, Qt, STL)
- add copyright line
2020-03-24 22:48:14 +01:00
Adriaan de Groot
412a8043a9 Merge branch 'qml-locale' of https://github.com/milohr/calamares into milohr-qml-locale 2020-03-24 22:43:13 +01:00
Adriaan de Groot
ec800e4219 Merge branch 'demmm-master'
FIXES #1354
FIXES #1339

Might be a bit annoying, so there's a TODO to detect yes-i-already-have-
GPT-on-this-BIOS-system.
2020-03-24 22:37:15 +01:00
Adriaan de Groot
26dd93b67c [partition] Simplify code
- isEfi only used meaningfully once
- if (isEfi) followed by if (!isEfi) can be simpler
- create bios-but-not-GPT strings in one go
- mark TODO that this should warn only if needed
- use weird * notation for branding-strings
2020-03-24 22:32:49 +01:00
Adriaan de Groot
b57e198c29 [partition] Apply coding style
- This isn't particularly related to the change at hand, though.
2020-03-24 22:21:56 +01:00
demmm
b6228d137c Adding popup warning/instructions for GPT with BIOS
see https://github.com/calamares/calamares/issues/1339#issuecomment-600862507
this is a very generic warning, used downstream since 2016
stopped virtual all BIOS GPT failures and questions
2020-03-24 16:59:31 +01:00
Camilo Higuita
b6b9f888fc correct typo 2020-03-24 10:39:29 -05:00
demmm
4c893b8260 Merge pull request #1 from calamares/master
Merge upstream
2020-03-24 16:26:23 +01:00
Camilo Higuita
e02077d58e some models need to be updated to work with locale qml view step 2020-03-24 10:04:14 -05:00
Camilo Higuita
8ff1996e12 add the localq module and config to locale 2020-03-24 09:47:53 -05:00
Adriaan de Groot
6bef980636 Changes: document quit-at-end 2020-03-24 15:45:35 +01:00
Adriaan de Groot
1de2a4ff14 [libcalamares] Introduce quit-at-end
- In some cases, it makes sense to close Calamares automatically
  when it is done. Set *quit-at-end* to do so -- although this
  probably also means you should remove the *finished* page.
2020-03-24 15:38:43 +01:00
Camilo Higuita
1c0e69e1c2 wraning message is not from conf but form the requirements model 2020-03-24 09:33:09 -05:00
Adriaan de Groot
938277b74e Merge branch 'issue-1351'
FIXES #1351
2020-03-24 15:32:30 +01:00
Camilo Higuita
2d09557297 update wlecome to latest 2020-03-24 09:26:24 -05:00
Adriaan de Groot
71b55995ee [dummypython] Fix up progress reporting
- It's annoying to have 100% progress reported (from the processing
  of list items) and then have another 3 seconds delay.

Unrelated to the issue-at-hand, but spotted in testing.
2020-03-24 15:23:40 +01:00
Adriaan de Groot
1d30c99d89 [libcalamaresui] The ExecutionViewStep is done when the queue is
- While the queue is running, pretend that the EVS is not at the
  last page.

FIXES #1351
2020-03-24 15:19:45 +01:00
Adriaan de Groot
184462a875 [libcalamares] Make status of JobQueue queryable
- while the queue is executing (the thread is running jobs) the
  isRunning() method returns true.
- re-work some internals to reset isRunning() before emitting
  finished() signal.
2020-03-24 15:14:38 +01:00
Adriaan de Groot
112895fddc [libcalamares] Keep jobIndex in-sync with the jobs
- Never skip updating the jobIndex, because it is used in emitProgress()
  to find which job to ask for status.
2020-03-24 15:06:34 +01:00
Adriaan de Groot
1ec7251275 [libcalamares] Make isAtVeryEnd() internal 2020-03-24 14:57:36 +01:00
Adriaan de Groot
1eec1a9fe7 [libcalamares] Fix typo in API
- "asynchronouse" is not a thing
2020-03-24 13:43:19 +01:00
Adriaan de Groot
f5b4e5d5e1 [netinstall] Add data-loading to the Config object
- Mostly copied from NetInstallPage
2020-03-24 13:13:18 +01:00
Adriaan de Groot
938536c0c3 [netinstall] Allow post-creation loading of model data
- Instead of loading all in the constructor, provide a public
  setupModelData().
- This allows creating the model and setting it for UI, before
  the load completes.
2020-03-24 12:36:31 +01:00
Adriaan de Groot
5e03df723c [netinstall] Add a (stub) Config object
- Add initial definition of Config object, which will extract the model-
  setting and loading code from the page, and which is also prep-work
  for a QML version of this module.
- While here, remove superfluous code
2020-03-24 12:05:48 +01:00
Adriaan de Groot
cf59e2884a [welcome] Reduce warnings from moc-generated code 2020-03-24 12:04:26 +01:00
Adriaan de Groot
1a5c916923 [netinstall] Implement local loading of packages
- For a static list of selectable packages (e.g. what you might otherwise
  use file:/// for with a static file on the ISO) you can now stick the
  list in the config file itself, simplifying some setups.
- Also saves faffing about with network.

SEE #1319
2020-03-24 11:35:58 +01:00
Adriaan de Groot
f59cae2dbb [netinstall] Document local URL
- `local` is supposed to read from the config-file, rather than
  externally; this simplifies examples, makes it easier to have
  multiple netinstalls, and condenses the documentation.
2020-03-23 17:20:14 +01:00
Adriaan de Groot
fa28788f78 [netinstall] Build the model from QVariantList always 2020-03-23 17:20:14 +01:00
Adriaan de Groot
ebc1db6a7b [netinstall] Test loading of a whole (example) file 2020-03-23 17:20:14 +01:00
Adriaan de Groot
f592a3f373 [netinstall] Expand tests to include group-checking
- Check groups
- Check whole treemodels recursively (this is not in PackageTreeItem,
  because that explicitly ignores the tree structure).
- Also a stub of checking example files (from the src dir)
2020-03-23 17:19:32 +01:00
Adriaan de Groot
025ab8b524 [netinstall] Be explicit about checkedness-to-bool conversions 2020-03-23 17:19:32 +01:00
Adriaan de Groot
0e2b3986b9 [netinstall] Use explicit accessor for the type-of-item 2020-03-23 17:19:32 +01:00
Adriaan de Groot
f7191ac29e [netinstall] Compare two PackageTreeItems
- Packages and groups check different fields for equality.
- Selected-state is **not** part of equality.
- Also operator !=
2020-03-23 17:19:15 +01:00
Adriaan de Groot
52d3f4417f [netinstall] Add explicit isGroup()
- Previously you would either need to know where in the tree a
  PackageTreeItem was, or guess that an empty packageName() means that
  it's a group.
2020-03-23 17:19:14 +01:00
Adriaan de Groot
bca316299e [netinstall] Add tests
- Just some simple tests for the Items
- Test creation of package group from variant
- This needs Qt5::Gui to link because QStandardItem is a GUI class,
  although we can run the tests without a GUI.
2020-03-23 17:19:00 +01:00
Adriaan de Groot
dc403237f2 [netinstall] Build model from QVariantList
- As an alternative to the YAML-wranging, build the model from
  a QVariantList instead.
- Expose this as a constructor, too.
2020-03-23 17:18:44 +01:00
Adriaan de Groot
4143ad67af [netinstall] Remove superfluous code
- The constructor for PackageTreeItem now takes over the selected
  state from the parent.
2020-03-23 17:18:44 +01:00
Adriaan de Groot
c7b646315a [netinstall] Add immutable to groups settings 2020-03-23 17:18:44 +01:00
Adriaan de Groot
4cb2ed9552 [netinstall] Chase removal of ItemData
- Simplify creation of PackageTreeItems by interpreting the
  YAML directly (instead of via ItemData),
- Simplify list types,
- Drop superfluous API.
2020-03-23 17:18:44 +01:00
Adriaan de Groot
c66ef5a201 [netinstall] Refactor: kill ItemData
- This doesn't compile right now.
- The nested class ItemData doesn't do anything useful or
  meaningful that having model items with the right data wouldn't.
2020-03-23 17:18:44 +01:00
Adriaan de Groot
8825c9c995 [netinstall] Apply coding style 2020-03-23 17:18:44 +01:00
Adriaan de Groot
0aaf24c4a5 CMake: tell tests where their source-dir is
- Abuse BUILD_AS_TEST to pass in the value as a string
2020-03-23 17:18:44 +01:00
Adriaan de Groot
4efb082d67 Changes: credit to Gael (I spelled it right in the file) 2020-03-23 17:13:20 +01:00
Adriaan de Groot
8c92768f66 Merge pull request #1348 from gportay/partition-type
[partition] Add support for partition type
2020-03-23 17:10:00 +01:00
Adriaan de Groot
1718f7a8a8 Merge branch 'master' into partition-type 2020-03-23 17:09:44 +01:00
Adriaan de Groot
377a78a405 Merge pull request #1347 from gportay/partition-name
[partition] Name partition using filesystem label
2020-03-23 16:59:01 +01:00
Adriaan de Groot
74aaccda15 Merge pull request #1341 from gportay/filesystem-features
[partition] Add support for filesystem-specific features (KPMCore 4.2.0 required)
2020-03-23 16:57:22 +01:00
Adriaan de Groot
54356a22ba [fsresizer] Chase API change in tests
- Missed this earlier because the module is not enabled in FreeBSD.
2020-03-23 16:54:23 +01:00
Gaël PORTAY
15cce29a51 [partition] Add support for filesystem-specific features 2020-03-22 09:25:26 -04:00
Gaël PORTAY
c5ebe13aeb [partition] Add support for partition type 2020-03-22 09:05:32 -04:00
Gaël PORTAY
cba4d2e93b [partition] Name partition using filesystem label 2020-03-21 23:46:20 -04:00
Adriaan de Groot
c850408555 Merge branch 'tighten-yaml-types' 2020-03-20 21:56:12 +01:00
Adriaan de Groot
3b0c0435bc [libcalamaresui] Chase API change in Yaml
- We can drop a bunch of calls to toMap() now.
2020-03-20 21:55:03 +01:00
Adriaan de Groot
1678a03cb3 [libcalamares] Tighten up types
- If we're converting a YAML map to a QVariant (Map), may as well
  express that in the types. This makes the return from, say,
  `yamlMapToVariant()` cheaper, but incurs conversion in
  `yamlToVariant()` .. previously the place for costs was
  swapped around.
- For those cases that want-and-expect a Map, or List, this makes
  the calls slightly cheaper. For the generic case, the costs move
  around internally.
2020-03-20 21:25:42 +01:00
Adriaan de Groot
2eb84e2de1 [partition] [tracking] [welcome] Missing Q_OBJECT
- These aren't strictly necessary for the code, but they
  help with translations.
2020-03-19 00:37:37 +01:00
Adriaan de Groot
d65e0fb4c8 [libcalamares] Fix build with GCC
- <memory> isn't implicitly-included for std::unique_ptr
2020-03-19 00:08:20 +01:00
Adriaan de Groot
9fe679dca8 Merge commit 'afc0c78b4c01ac734b9877b11ae94597c685d804'
Pull in the instance-weight changes and type-improvements,
but not the part where special-casing of unsquash is dropped:
weights are still per-job, not per-module.
2020-03-18 23:58:00 +01:00
Calamares CI
92bbf6896c i18n: [python] Automatic merge of Transifex translations 2020-03-18 23:41:19 +01:00
Calamares CI
2eff1f0e78 i18n: [dummypythonqt] Automatic merge of Transifex translations 2020-03-18 23:41:19 +01:00
Calamares CI
1d0ff39c92 i18n: [calamares] Automatic merge of Transifex translations 2020-03-18 23:41:18 +01:00
Adriaan de Groot
fba38b949a Changes: Credits to Gabriel for resume-fixes 2020-03-18 18:57:57 +01:00
Gabriel Craciunescu
47c167dc04 [bootloader] Resume from outer swap partition
- These fixes are similar to the other swap-from-LUKS changes,
  and just needed to be applied to a different module.
2020-03-18 17:21:20 +01:00
Gabriel Craciunescu
65a989d3cd [grubcfg] With LUKS, resume from the correct swap name
FIXES #1208
2020-03-18 17:12:33 +01:00
Adriaan de Groot
489fd0b272 [welcomeq] Fix QML import
- Now using the properly-namespaced QML import for Calamares things
2020-03-18 11:12:15 +01:00
Adriaan de Groot
cd7884a0e5 [welcomeq] Fix build with clang
- can't convert lambda-with-captures to a function pointer (Clang 9)
- instead, use a context property .. QmlViewStep already sets a
  "config" property with the Config object, but WelcomeQ wants it
  as another name as well.
- this avoids registering the Welcome object across all QML pages,
  as well.

NOTE: needs to have the QML adjusted for this change.
2020-03-18 11:02:35 +01:00
Adriaan de Groot
c4324fd3ea [libcalamaresui] Provide convenience method for context properties 2020-03-18 11:02:16 +01:00
Adriaan de Groot
3f87cc214a [calamares] Warnings--
- Set the width of the QML sidebar explicitly
- Handle all sidebar-flavor enum values explicitly
2020-03-18 10:39:16 +01:00
Adriaan de Groot
948ecb4fd1 CMake: explain the policy settings 2020-03-18 10:25:16 +01:00
Adriaan de Groot
685c2c9de0 Changes: mention Camilo for his QML work 2020-03-18 10:25:01 +01:00
Adriaan de Groot
afc0c78b4c [libcalamares] Refactor job-weight computations
- only check index-vs-length once
2020-03-16 17:25:27 +01:00
Adriaan de Groot
07da6e3905 [libcalamares] Expand instance with weight 2020-03-13 02:59:09 +01:00
Adriaan de Groot
e37809a126 [libcalamares] Detailed InstanceDescription type 2020-03-13 02:55:38 +01:00
Adriaan de Groot
0e68013bb3 [libcalamares] Start making InstanceDescription a stronger type
- Replace a map-of-strings with a class type.
- For now, doesn't compile.
- Intention is to construct from a YAML / QVariant from the
  *instances* list in `settings.conf`.
2020-03-13 02:41:42 +01:00
Adriaan de Groot
3897bd54df Changes: write some of the QML docs
- Fix references; I decided to put it in Qml.h, which is
  the header for the code that does the work.
2020-03-12 17:37:39 +01:00
Adriaan de Groot
4576cb4fa0 [notesqml] Fix up documentation pointers 2020-03-12 17:30:08 +01:00
Adriaan de Groot
21c7063239 Changes: document QML sidebar 2020-03-12 17:28:44 +01:00
Adriaan de Groot
6ff0ac72de Merge branch 'qml-sidebar' 2020-03-12 15:39:25 +01:00
Adriaan de Groot
aeffda945f [calamares] Use the ViewManager model to show steps 2020-03-12 15:38:49 +01:00
Adriaan de Groot
b5a09d2f83 [branding] Don't hide the sidebar by default 2020-03-12 05:00:03 +01:00
Adriaan de Groot
cec406e402 [calamares] Add a sample QML-sidebar
- The built-in one is loaded if no branding file is found.
- This sidebar is just the most basic of QML examples.
2020-03-12 04:59:01 +01:00
Adriaan de Groot
cc3b0b2859 [calamares] Remove cruft from CMakeLists.txt 2020-03-12 04:48:07 +01:00
Adriaan de Groot
32ebb08788 [calamares] Search for sidebar QML file
- change name to "calamares-sidebar" so it's clear that
  it is a core component.
2020-03-12 04:21:03 +01:00
Adriaan de Groot
8d6e3e547c [libcalamaresui] Add qmlSearch for non-modules
- Refactor into a support method and two API points
- Use std::transform for doing-things-to-a-list
- Add searchQmlFile that only takes a name, for
  non-modules to use.
2020-03-12 04:17:48 +01:00
Adriaan de Groot
0fd7fec25e [libcalamaresui] Move registration into Qml-service
- Registration of QML modules may need to be done
  for more parts of Calamares. Move into the library,
  out of the model.
- Register for QML when using the QML sidebar.
2020-03-12 03:45:14 +01:00
Adriaan de Groot
1c9a2e8c5f Changes: document some of the new QML things 2020-03-11 19:49:41 +01:00
Adriaan de Groot
c628192163 Merge branch 'progress-model' 2020-03-11 19:39:58 +01:00
Adriaan de Groot
a0b4d58000 [calamares] The very simplest of QML sidebars 2020-03-11 19:39:28 +01:00
Adriaan de Groot
a834d67283 [notesqml] Adjust to new name for Branding 2020-03-11 17:42:19 +01:00
Adriaan de Groot
28c2da12ae [libcalamaresui] Register in io.calamares namespace
- Register both Branding and ViewManager for QML
- Note that this changes the name of Branding
- Add code-docs about object ownership
2020-03-11 17:40:03 +01:00
Adriaan de Groot
7a8eb09cdb [libcalamaresui] Move QML-searching
- This is utility code, so it can be in the QML "service"
  from Calamares, rather than in the QmlViewStep itself.
  That makes it usable for other QML bits as well.
2020-03-11 17:12:02 +01:00
Adriaan de Groot
7d99ad3177 [welcomeq] Adjust to Config-API that QmlViewStep expects 2020-03-11 16:49:07 +01:00
Adriaan de Groot
862b05221d [libcalamaresui] Drop 'name' parameter in QmlViewStep
- The name is just the module identifier, and now we
  search for *m@i* and also *m* from that identifier,
  the name becomes much less important -- and it
  can be set from the config key *qmlFilename* as well.
2020-03-11 15:57:08 +01:00
Adriaan de Groot
8f1ab99190 [libcalamaresui] Search module name as well
- When searching for QML file, obey module name
  (full instance, module-only) and then others.
2020-03-11 15:53:01 +01:00
Adriaan de Groot
165bcfd75d [libcalamaresui] "namespace" QML settings
- To avoid name-collisions in otherwise well-behaved
  modules and configurations, make the QML settings
  more specific:
    search -> qmlSearch
    filename -> qmlFilename
2020-03-11 15:36:42 +01:00
Adriaan de Groot
fa9006c677 Merge branch 'milohr-master'
FIXES #1336
2020-03-11 15:23:42 +01:00
Adriaan de Groot
0f50dc8d33 [welcomeq] Include the QML search mode 2020-03-11 15:23:37 +01:00
Adriaan de Groot
8302f2182b [welcomeq] The QML file name still has a q 2020-03-11 15:21:46 +01:00
Camilo Higuita
d26fa63ccd [welcomeq] initial work for welcomeview in qml 2020-03-11 14:48:14 +01:00
Camilo Higuita
d7f7c16958 [welcome] using config for both qcc2 or qwidgets 2020-03-11 14:48:06 +01:00
Adriaan de Groot
4ab5b4a5e6 [calamares] Progress"tree" is a list
- No need for a TreeView when it's just a one-dimensional
  list of items.
2020-03-11 05:02:06 +01:00
Adriaan de Groot
99c03f7fbb [libcalamaresui] Behave better as a model 2020-03-11 05:01:39 +01:00
Adriaan de Groot
8f0a6d3065 [calamares] The ViewManager is its own model
- Having a ProgressTreeModel that does nothing but
  proxy to ViewManager methods is kind of useless.
- Move the relevant code from ProgressTreeModel to
  ViewManager.
- Remove now-unused ProgressTreeModel.
2020-03-11 04:49:38 +01:00
Adriaan de Groot
b209668d33 [calamares] Fix singleton-ness of the progress view
- Create the ViewManager earlier,
- Create a ProgressTreeModel here for the view,
- Do not weirdly set the model much later.
2020-03-11 04:37:10 +01:00
Adriaan de Groot
290a708e56 [calamares] No need for progresstreeview to be singleton 2020-03-10 21:26:05 -05:00
Adriaan de Groot
e9965d37e3 [calamares] Don't create sidebar if we don't want it 2020-03-10 18:05:24 -05:00
Adriaan de Groot
80f49bed1d [libcalamaresui] Add a sidebar flavor setting 2020-03-10 17:59:06 -05:00
Adriaan de Groot
9a63d63d5b [calamares] Factor out the creation of the sidebar 2020-03-10 17:13:19 -05:00
Adriaan de Groot
04cb5f14f7 [calamares] Role names for progress model 2020-03-10 16:56:22 -05:00
Adriaan de Groot
ba4b42b4ee [calamares] Introduce a "completed" role
- This is for future support of a QML progress view
2020-03-10 16:52:34 -05:00
Adriaan de Groot
d3f55af51e [calamares] Clean up progress tree model
- It's still not a real tree
- Remove unused classes / files
- Apply coding style
2020-03-10 14:13:18 -05:00
Adriaan de Groot
76144fb3dc [calamares] Remove superfluous ViewStepItem
- The model is a simple list, not a tree (it may have been in the
  distant past).
- All the information needed comes from the ViewSteps held by the
  ViewManager.
- The delegate and fake-step handling was never used.
2020-03-10 14:06:35 -05:00
Adriaan de Groot
5a59eb1963 [calamares] Remove unused method from progresstreemodel 2020-03-10 13:43:04 -05:00
Adriaan de Groot
7ec6dff352 [calamares] Apply coding style to progresstree 2020-03-10 13:30:43 -05:00
Adriaan de Groot
257f718ab6 Changes: document netinstall improvement 2020-03-10 13:14:53 -05:00
Adriaan de Groot
185367648f Merge branch 'issue-1269'
Add `expanded: true` to a group to pre-expand it.

FIXES #1269
2020-03-10 13:00:39 -05:00
Adriaan de Groot
e2d9ce737c [netinstall] Implement pre-expanded groups
- Return relevant data
- Document code
- Add to README.md documentation about new key
2020-03-10 12:59:41 -05:00
Adriaan de Groot
b9b48cfbb1 [netinstall] Apply coding style
- Some missing {} were not noticed by astyle
2020-03-10 12:49:12 -05:00
Adriaan de Groot
4f216b0394 [netinstall] Refactor model-data setting
- Introduce convenience methods getString(), getBool() to pick
  out an entry from item definitions in YAML format.
- Apply coding style.
- Pick up the "expanded" property as well.
2020-03-10 12:46:49 -05:00
Adriaan de Groot
0f7f5216ee [netinstall] isHidden is const after construction 2020-03-10 12:39:35 -05:00
Adriaan de Groot
b074696ac1 [netinstall] isCritical is const after construction 2020-03-10 12:38:11 -05:00
Adriaan de Groot
09006a936d [netinstall] Expand groups if requested 2020-03-10 12:37:57 -05:00
Adriaan de Groot
4f22a70b08 [netinstall] Restructure model-method data() 2020-03-10 12:30:33 -05:00
Adriaan de Groot
df86972ea7 [netinstall] Introduce constexpr names for columns and roles 2020-03-10 12:22:56 -05:00
Adriaan de Groot
3d68c74a19 [netinstall] Sanitize PackageTreeItem::data()
- Use of != nullptr for QString just a bad idea
- Massage code so structure for packages resembles that of groups
2020-03-09 22:46:59 -05:00
Adriaan de Groot
201c5ddfe1 [netinstall] Add some debug-logging
- Also, prepare for a start-expanded setting
2020-03-09 22:44:16 -05:00
Adriaan de Groot
4cf3ec8663 [netinstall] Resolve TODO (changes translations) 2020-03-09 22:01:39 -05:00
Adriaan de Groot
3302fe319b [netinstall] Fix typo's in README 2020-03-09 21:58:30 -05:00
Adriaan de Groot
220fd31226 [partition] Improve EncryptionWidget
- Use normal translation framework. The EncryptWidget was the one place
  not using the "usual" translation framework, but rolled its own.
- Emphasize that the checkbox-state (checked-ness) is the parameter,
  not a state of the EncryptWidget.
- All other instances of UI classes from Designer use a pointer-to-UI,
  not multiple inheritance.
- Convenience method for setting the pixmap in response to
  changes in the passphrase
- Tighten up types: enum -> enum class
- Reduce the scope for int-confusion by using an enum-class for
  the encryption state of the widget
- Include UI implementation header only in .cpp
- Apply coding style
- Update copyright
2020-03-09 21:43:14 -05:00
Adriaan de Groot
1299c64415 [interactiveterminal] Tidy up includes
- The KF5/ part of the path isn't necessary, and some of the KF5
  includes can be found with a shorter name (with modern ECM and
  imported targets)
2020-03-09 21:13:19 -05:00
Adriaan de Groot
350627172d [partition] Tidy up includes 2020-03-09 21:09:24 -05:00
Adriaan de Groot
c5b038587e [welcome] Tidy up includes 2020-03-09 21:07:12 -05:00
Adriaan de Groot
ebb3f319cc [modules] Be more consistent in include punctuation
- Use <> for Qt, system, externals
 - Use double-quotes for Calamares headers
2020-03-09 21:05:15 -05:00
Adriaan de Groot
841ea9ff48 [libcalamares] Tidy up includes
- Remove commented-out includes
- Consistent punctuation
2020-03-09 21:05:15 -05:00
Adriaan de Groot
3f18a58cca Changes: document python-progress 2020-03-09 20:36:40 -05:00
Adriaan de Groot
2891e92d16 Merge branch 'issue-1330'
- When Python modules emit progress, update their status message
  by calling an optional pretty_status_message() in the Python code.
  This is polled (later) by the execution progress bar to display
  the message.

FIXES #1330
2020-03-09 15:42:15 -05:00
Adriaan de Groot
c4bfad9399 [packages] Provide status feedback
- The status message should be updated; the name is constant.

FIXES #1330
2020-03-09 15:41:17 -05:00
Adriaan de Groot
ef249043f9 [libcalamares] call Python method only from Python thread 2020-03-09 15:39:35 -05:00
Adriaan de Groot
b4aaf85ccf [libcalamares] Call Python function if available for status 2020-03-09 15:13:40 -05:00
Adriaan de Groot
252089e372 [libcalamares] Refactor pretty_name() call
- Split out a general method-that-returns-string caller.
2020-03-09 15:01:07 -05:00
Adriaan de Groot
ed4cdbeacc [dummypython] Provide status 2020-03-09 14:53:22 -05:00
Adriaan de Groot
aa62ca639b [libcalamares] Start getting prettyDescription from Python 2020-03-09 10:34:57 -05:00
Adriaan de Groot
9b5a391c86 [libcalamares] Factor out Python helper
- the strange construction of Helper and treating it as a singleton
  can be factored out into a separate singleton-handling instance()
  function. The Helper should never be destroyed.
2020-03-09 10:05:01 -05:00
Adriaan de Groot
3025c5383b [libcalamares] Document the pretty*() functions for Jobs 2020-03-05 08:54:42 -05:00
Adriaan de Groot
6d29c19e3e [libcalamares] Progress is float 2020-03-04 21:40:40 -05:00
Adriaan de Groot
d3828a82fc [packages] Make dummy backend slower
- insert sleeps to make it slower (easier when testing)
- improve debug logging clarity by noting where the messages
  are coming from
2020-03-04 21:31:47 -05:00
Adriaan de Groot
1f34460d39 Merge branch 'improve-logging' 2020-03-03 17:01:04 +01:00
Adriaan de Groot
0abde6f1a7 [libcalamares] Don't print funcinfo in continuations
- when a single function does more logging, it generally marks
  those as subsequent debug-messages (with Continuation, or SubEntry)
  and we don't need to print funcinfo for those, since it was already
  printed the first time.
2020-03-03 17:00:57 +01:00
Adriaan de Groot
5248a37eb3 [libcalamares] Add FUNC_INFO into all debug messages
- This is needlessly verbose
- Chase CreatePartitionTableJob which needs to bind to a temporary
2020-03-03 17:00:57 +01:00
Adriaan de Groot
3ddee8090c [libcalamares] Drop intermediate CLog class
- All the real work is done in CDebug, so remove the base class.
2020-03-03 17:00:57 +01:00
Adriaan de Groot
ae633c7e7b [removeuser] Remove superfluous formatting around logging 2020-03-03 14:35:15 +01:00
Adriaan de Groot
c15022462a Changes: post-release housekeeping 2020-03-03 14:30:35 +01:00
Adriaan de Groot
623a8c2d43 [removeuser] Port to C++
No changes in functionality; add a little description in the .conf file.
2020-03-03 14:28:28 +01:00
Adriaan de Groot
0f8751497e CI: give tooling a standard LANG environment 2020-03-03 14:23:48 +01:00
Calamares CI
0d91220ab7 i18n: [calamares] Automatic merge of Transifex translations 2020-02-27 23:26:29 +01:00
Adriaan de Groot
bfe45aea18 [netinstall] Warnings--, unused parameter 2020-02-27 23:19:55 +01:00
Adriaan de Groot
3df0878e43 [initramfs] Warnings--
Initializing the JobQuene (and hence Global Storage) and
the System instance is a bit odd, avoid unused-variable
warning with an ugly cast instead.
2020-02-27 23:18:28 +01:00
Adriaan de Groot
0793971d01 [libcalamares] Warnings--, unused variable 2020-02-27 23:18:13 +01:00
Adriaan de Groot
3c059cc599 Changes: pre-release housekeeping 2020-02-27 23:12:03 +01:00
Adriaan de Groot
72dcf886bf [contextualprocess] Improve tests, fix off-by-one
- there's no string representation for a QVariantMap, so it
  won't be converted; in *debug* output it looks like there's a
  string there.
- off-by-one when diving into compound selectors, spotted by
  test, now fixed.
2020-02-27 22:44:49 +01:00
Adriaan de Groot
28bf4082b3 [contextualprocess] Tests for new lookup behavior 2020-02-27 22:34:46 +01:00
Adriaan de Groot
bdb208c079 [contextualprocess] Split API
In order to test some of the internals, split them into Binding.h.
This makes the interface visible for tests. The implementation
still lives in the same place.

While here, adjust the test to the changed **example** which
now lists an additional variable.
2020-02-27 18:40:17 +01:00
Adriaan de Groot
4a5b3e7bc8 [contextualprocess] Document new behavior for compound keys 2020-02-27 18:22:07 +01:00
Adriaan de Groot
d114a3dc21 [contextualprocess] Allow selection from GS with "var1.var2.var3" 2020-02-27 17:14:41 +01:00
Adriaan de Groot
f5522425f6 Merge pull request #1331 from PureTryOut/apk-support
[packages] Add apk (Alpine Linux package manager) support
2020-02-27 16:22:36 +01:00
Adriaan de Groot
510e4a0033 Changes: document debug-logging and FillGlobalStorageJob 2020-02-27 15:01:37 +01:00
Adriaan de Groot
54a4644893 [partition] Store filesystem types
- Write a new GS key filesystems_use, which is a map of filesystems
  in use on the target system.
2020-02-27 14:29:54 +01:00
Adriaan de Groot
d4b26bbaf0 [partition] Tighten up the types of internal methods 2020-02-27 13:49:02 +01:00
Calamares CI
c93f749a35 i18n: [python] Automatic merge of Transifex translations 2020-02-27 13:36:21 +01:00
Calamares CI
29ba5c961d i18n: [dummypythonqt] Automatic merge of Transifex translations 2020-02-27 13:36:21 +01:00
Calamares CI
6d638539e5 i18n: [desktop] Automatic merge of Transifex translations 2020-02-27 13:36:21 +01:00
Calamares CI
5e0f182ebc i18n: [calamares] Automatic merge of Transifex translations 2020-02-27 13:36:21 +01:00
Adriaan de Groot
b0abb99ee1 [libcalamares] Don't log useless FUNC_INFO for Python
- When a Python module calls utils.debug(), there's no point
  in logging the C++ funcinfo that passes the parameters on;
  don't use cDebug() with its attendant magic.
2020-02-27 13:24:23 +01:00
Adriaan de Groot
f818d4b446 [libcalamares] Log Q_FUNC_INFO as part of debug
- Warnings, errors, don't get funcinfo, but regular cDebug()
  calls do. Other special-cases, like calling Logger::CDebug()
  constructor explicitly, don't get funcinfo either.

FIXES #1328
2020-02-27 13:20:19 +01:00
Bart Ribbers
136d22188e [packages] Add apk (Alpine Linux package manager) support 2020-02-27 12:58:53 +01:00
Adriaan de Groot
3456aabfce [libcalamares] Expand utility of list-logging
- Allow logging any QList type (needs explicit call in usage).
- Add a DebugList inheriting from DebugListT to keep existing
  code that logs QStringLists.
- For Calamares 3.3, consider using C++17 and class template deduction.
2020-02-27 11:59:24 +01:00
Adriaan de Groot
8f060a741f [calamares] Default to log-level 1 (not 8)
- This bug has been here since f233cac7a1,
  where a check for isSet() (of the -D option) was dropped. So since then,
  Calamares has always been running with full logging (-D8) on.
- The recently-added "easter egg" of showing the debug-button when
  log-level is 8 (to allow debugging-in-production) trips over the
  default-log-level of 8, so the debug-button is always visible.

So, minor bugs in the debugging-setup, combine to show a debug-button
when there shouldn't be one.

FIXES #1329
2020-02-27 11:38:50 +01:00
Adriaan de Groot
aacdb6be29 Changes: post-release housekeeping 2020-02-24 21:47:13 +01:00
Adriaan de Groot
9b4af86ab9 Changes: fix up the changelog that should have been in 3.2.19.1 2020-02-24 21:44:30 +01:00
Adriaan de Groot
2db3b413f4 [libcalamares] Unmount with mount point, not device
- The manpage for umount says that -R can only be used with
  a mount point (e.g. /usr/local) and not a device name;
  this makes sense because a device might be mounted in multiple
  locations, but the mountpoint (and things mounted under it) lives
  in the filesystem tree.
- Existing code tried to unmount -R the device, not the mount point,
  and so always failed; leaving things mounted that shouldn't.
2020-02-24 20:58:02 +01:00
Philip Müller
0c8257df3d [initcpio] Don't claim other swap
From downstream ee99e34e25ed1224504bbef93fb41e5cad6b0ee8
2020-02-24 18:23:32 +01:00
Adriaan de Groot
7e24afc966 Merge pull request #1325 from Chrysostomus/patch-2
[grubcfg] Don't GRUB_SAVEDEFAULT if the FS doesn't support it
2020-02-24 18:09:00 +01:00
Matti Hyttinen
717b8947d5 Update main.py
Unset GRUB_SAVEDEFAULT if / or /boot is in btrfs or f2fs partition. This avoids the error "sparse file not allowed" at boot time. Btrfs and f2fs do not support saving default entry in grub.
2020-02-24 17:49:56 +02:00
Adriaan de Groot
c20ac0836e [users] Take setRootPassword into account when hiding fields 2020-02-24 16:11:14 +01:00
Adriaan de Groot
7752cf31b3 [users] Improve documentation of setRootPassword 2020-02-24 15:59:52 +01:00
Adriaan de Groot
14979b1630 [libcalamares] TemporaryMount with backwards logic
- because mount() returns an exit code, and 0 is "success",
  the if (!code) was backwards: when mounting succeeded, the
  TemporaryMount object thought it failed.
- This leads to temp-mounts being left *all over* the place
  from os-prober and fstab-handling.
2020-02-24 15:21:31 +01:00
Adriaan de Groot
a865620f90 [calamares] Easter egg: running -D8 will show the Debug Information button 2020-02-24 14:47:10 +01:00
Adriaan de Groot
ee52e37b36 [libcalamares] Don't hard-code full paths
- See editorial in the code-comment. Still need to test that
   chroot(8) doesn't need a full path, otherwise this will
   go to /usr/bin/env udevadm to force lookup (redundantly
   if not in a chroot)
2020-02-24 13:15:13 +01:00
Adriaan de Groot
8c527ab592 [users] Overwrite host(s|name) files in target 2020-02-24 12:48:01 +01:00
Adriaan de Groot
4621937477 [users] Use right check on writing hostname
- !failed() also means "didn't write the file because it already
  exists", which is sometimes acceptable -- but not here.
  Use the more-strict bool() conversion, which is only when
  the file was actually written.
2020-02-24 12:44:50 +01:00
Adriaan de Groot
862b7e34df [libcalamares] Add tests for file-overwrite 2020-02-24 12:38:08 +01:00
Adriaan de Groot
f89951716e [libcalamares] Add mode to createTargetFile()
- Unconditionally **not** overwriting the target file isn't an option:
  writing hostname, for instance, expects that to be done even
  if `/etc/hostname` already exists on the target filesystem.
2020-02-24 12:14:50 +01:00
Calamares CI
d903a50bd8 i18n: [python] Automatic merge of Transifex translations 2020-02-24 11:43:38 +01:00
Calamares CI
bcc779bd43 i18n: [calamares] Automatic merge of Transifex translations 2020-02-24 11:43:37 +01:00
Adriaan de Groot
801c3d4715 Changes: pre-release (hotfix) housekeeping 2020-02-24 11:41:18 +01:00
Adriaan de Groot
a7b0b03bde Changes: post-release housekeeping 2020-02-21 22:07:15 +01:00
Adriaan de Groot
6a02f2cfec [machineid] Fix tests
- Make tests more resilient: do them in a temp-dir, and clean it
  up after successful tests. This was prompted by tests failing
  because of things hanging around in /tmp.
2020-02-21 19:21:58 +01:00
Adriaan de Groot
01c9916cb9 Changes: pre-release housekeeping 2020-02-21 18:53:03 +01:00
Adriaan de Groot
adf81c0ab5 [locale][packagechooser] Fix tests, QCOMPARE again 2020-02-21 18:24:39 +01:00
Adriaan de Groot
6352b50ed0 [initramfs] Fix more tests 2020-02-21 18:13:51 +01:00
Adriaan de Groot
e49fb74847 [libcalamares] Fix more tests 2020-02-21 17:58:55 +01:00
Adriaan de Groot
39cc43f26b [libcalamares] Fix tests
- QCOMPARE() is sensitive to differing types in actual and expected,
  and uchar and int (and mode_t and int) are different.
2020-02-21 17:53:43 +01:00
Adriaan de Groot
a78556b56a [unpackfs] Revert text mode
- Follow original patch from Gabriel Craciunescu: just drop
  the *bufsize* parameter and stick to binary reads.

Text mode was associated in my testing with multiple hangs,
which didn't show up during binary-reads.
2020-02-21 16:37:58 +01:00
Adriaan de Groot
248776144e [unpackfs] Now it's text, it's not encoded anymore 2020-02-21 12:39:26 +01:00
Calamares CI
bde6d4e950 i18n: [python] Automatic merge of Transifex translations 2020-02-20 22:59:18 +01:00
Calamares CI
aec6058dc5 i18n: [dummypythonqt] Automatic merge of Transifex translations 2020-02-20 22:59:17 +01:00
Calamares CI
b2008b9031 i18n: [desktop] Automatic merge of Transifex translations 2020-02-20 22:59:17 +01:00
Calamares CI
476e5ac603 i18n: [calamares] Automatic merge of Transifex translations 2020-02-20 22:59:16 +01:00
Adriaan de Groot
61ca6384cc [partition] Fix tests
- One of the files listed in the test has moved (to libcalamares),
- Don't bother with an extra intermediate SRCS variable.
2020-02-20 22:51:24 +01:00
Adriaan de Groot
6d0f5e4111 Merge branch 'kpmcore-manager' 2020-02-20 22:03:45 +01:00
Adriaan de Groot
a2d245ef92 Merge branch 'issue-swaps' 2020-02-20 22:00:52 +01:00
Adriaan de Groot
327c1c0e7b [unpackfs] Reading from the pipe is line-oriented
- Using bufsize=1 causes warnings, since we never bothered
  to explicitly set text mode.
2020-02-20 21:40:33 +01:00
Adriaan de Groot
7c7af28a0d [unpackfs] Make clear that the FS is unsupported by *this* kernel
Patch from Gabriel Craciunescu. FS support is determined be
the kernel, not by Calamares, so make that clearer in the message.
2020-02-20 21:17:33 +01:00
Adriaan de Groot
50161cdab9 [grubcfg] Use own swap
- In situations where there are more swap partitions, only use
  partitions this install "owns".
2020-02-20 16:59:05 +01:00
Adriaan de Groot
5247c13f98 [partition] Follow 'claimed' settings for claiming swap
- By the time the GS is actually written, new (for partition state)
  is always false. So "new" is the wrong thing to track. It should
  have had a better name anyway,
- We store custom properties on the partition objects to indicate
  what happens to them; use those properties (instead of state,
  as done originally), call it "claimed" to indicate that the partition
  is part of this installation.

For now, only new (as in, formatted, created-by-us) partitions are
claimed.

- The effect here is that only "new" swap will be added to the system,
  so in erase-disk installations, or manual partitioning.
- Install-alongside and replace will now **not** claim the swap already
  on the disk; I think we'll need another UI knob for that one.

FIXES #1316
2020-02-20 16:38:40 +01:00
Adriaan de Groot
b6719bda10 Merge pull request #1322 from wxl/patch-1
there's only one bill auger, and we should spell his name right
2020-02-20 13:26:57 +01:00
Adriaan de Groot
35a2db064b [partition] Make debug-logging match the functionality
- `createPartitionList()` is called for the summary widget (via
  `prettyDescription()`), and from `exec()`. Only the latter
  actually *writes* to Global Storage, so it's misleading to
  think that the pretty-printed version ends up in GS.
- This makes the "new" key useless, since by the time `exec()` is called
  the partitoons are no longer new.
2020-02-20 11:59:48 +01:00
Adriaan de Groot
f9d9cd2df4 [fstab] Document the remapping of fs names
- Shuffle the code a little so it's clear where the remapping
  happens, and explain why we look for "swap" in fstab and
  "linuxswap" elsewhere.
2020-02-20 11:33:02 +01:00
Adriaan de Groot
8ecb364f8c [initramfs] Fix up tests
- These tests don't actually test anything in this specific module,
  they do test CalamaresUtils::System.
- Wrangling System and JobQueue and GlobalStorage instances is fraught
2020-02-19 22:42:46 +01:00
Adriaan de Groot
fba1bf7072 CMake: add DEFINITIONS option to calamares_add_test
- There's a handful of tests that need this, it's possible
  there will be more, so just add it to the infrastructure.
2020-02-19 22:26:55 +01:00
Adriaan de Groot
1bb43e06e2 Merge branch 'master' into kpmcore-manager 2020-02-19 18:34:44 +01:00
Walter Lapchynski
87c5f6b4ab there's only one bill auger, and we should spell his name right 2020-02-19 09:31:42 -08:00
Adriaan de Groot
7cbc43616e [netinstall] Some more "standard" alternative labels
- Hide the labels from the compiler to avoid warnings
- Add some more labels proposed by ArcoLinux
2020-02-19 17:21:12 +01:00
Adriaan de Groot
5dac67b710 [notesqml] Cut down the example text to be translated. 2020-02-19 17:16:51 +01:00
Adriaan de Groot
2d754dac6d [notesqml] Rename example file to save translators 2020-02-19 17:15:40 +01:00
Adriaan de Groot
51ad7df31c [netinstall] Don't give the translators a bogus string 2020-02-19 17:13:01 +01:00
Adriaan de Groot
790fbb96d5 Merge branch 'translate-configs'
Use regular translation machinery to support and help out translations
from the config files. This reduces the need to do all the translation
in those files -- some of it can be shared with the regular TX workflow.
2020-02-19 14:46:58 +01:00
Adriaan de Groot
538779991e [netinstall] Add some "standard" sidebar labels for the module 2020-02-19 14:37:47 +01:00
Adriaan de Groot
81752b6f7c [libcalamares] Document how TranslatedString context works
- Support re-using class-specific tr() calls in a standard way
- Document this in the netinstall.conf which uses it
2020-02-19 14:23:34 +01:00
Adriaan de Groot
a03394f177 [netinstall] Use tr() infrastructure for config-translations 2020-02-19 14:09:04 +01:00
Adriaan de Groot
0ef28f6a50 [libcalamares] Translatable config strings use tr()-infrastructure
- Allow TranslatedString to get a context parameter; if it has
  one, it will try to use the regular tr()-infrastructure
  **as fallback** for the translations from the config file itself.
- This makes it possible to offer -- and translate -- some "standard"
  phrases in the module, while allowing the config file the knob
  to change strings. Using one of the standard strings gets translations
  for "free", while introducing something entirely new means sourcing
  translations for it as well.
2020-02-19 14:04:35 +01:00
Adriaan de Groot
25e3f91754 [welcome] Remove the QML testing bits
- The welcomeq module has actual QML support
2020-02-19 13:39:24 +01:00
Adriaan de Groot
bff07ded25 Merge remote-tracking branch 'origin/welcome-q'
- Updates QmlViewStep with slightly neater API
- Introduces Config object for QML pages
- Updates notesqml and welcomeq to use that API
2020-02-19 12:56:04 +01:00
Adriaan de Groot
4e3ef607b1 Merge branch 'name-netinstall'
Extra UI options for the netinstall page (to support having multiple)
2020-02-19 12:53:34 +01:00
Adriaan de Groot
c20f7ee534 [netinstall] Rip out derpy translations of PackageModel
- The model always has two columns, and the column names are always
  the same. We don't need to specially set headers for that.
- Use QCoreApplication::translation() to re-use the existing
  translations and avoid creating "new" strings (in a new context).
2020-02-19 12:51:01 +01:00
Adriaan de Groot
da66ef42d7 Changes: document a little more netinstall 2020-02-19 12:36:12 +01:00
Adriaan de Groot
f6d8ed85e4 [netinstall] Allow a title above the netinstall tree
- Supports translation via the config file. This is useful
  (like label:sidebar) when displaying more than one netinstall page.
2020-02-19 09:29:23 +01:00
Adriaan de Groot
5b67ca315a [netinstall] It should be easier to get the number 2 2020-02-19 01:24:24 +01:00
Adriaan de Groot
497ecda14d [netinstall] Move translation of widget headers
Editorial: I really don't like plain CALAMARES_RETRANSLATE() thrown
into the middle of code.
2020-02-18 23:17:18 +01:00
Adriaan de Groot
45c15de623 [netinstall] Configurable name in the sidebar 2020-02-18 17:59:34 +01:00
Adriaan de Groot
be567dc508 [netinstall] Remove unused m_prettyStatus 2020-02-18 17:50:39 +01:00
Adriaan de Groot
4ae484dbca [netinstall] Initial work for configurable sidebar label
- Now that multiple netinstall pages may be supported, it's annoying
  that they all have the same name. Copy the approach from other
  modules (e.g. notesQML) of having the sidebar and other labels
  configured in the config file.
2020-02-18 17:46:56 +01:00
Adriaan de Groot
0877a994f1 [netinstall] Update copyright 2020-02-18 17:40:15 +01:00
Adriaan de Groot
d909b8119e [netinstall] Code-style 2020-02-18 17:37:58 +01:00
Adriaan de Groot
bc5aa1f837 [netinstall] Pretend to clean up resources 2020-02-18 17:37:16 +01:00
Adriaan de Groot
071b3a0b3e Merge branch 'issue-1303' 2020-02-18 15:07:59 +01:00
Adriaan de Groot
eb127a5e1b Changes: document netinstall module changes 2020-02-18 15:07:28 +01:00
Adriaan de Groot
5f1bd4396e [netinstall] Avoid duplicate operations
- Since operations are added each time you leave this page,
   the existing operations (from a previous visit) need to be
   cleaned up. With the old setup of only **one** possible
   set of operations, this wasn't a problem. Now, merging
   in operations is necessary. Implement that by looking for
   the *source* property in an operation.

FIXES #1303
2020-02-18 14:46:00 +01:00
Adriaan de Groot
74169c166a [netinstall] Mark operations with source-module
- This will allow us to find the operations later, by looking for
  the same source-module.
- While here, tidy up types
2020-02-18 14:19:48 +01:00
Adriaan de Groot
7cadfb8ddd [packages] Log unfamiliar package operations
- unknown operations get a warning
 - "source" will be added from netinstall shortly
2020-02-18 12:02:16 +01:00
Adriaan de Groot
056b0d7548 [netinstall] Refactor variant-from-ItemData 2020-02-18 11:40:43 +01:00
Adriaan de Groot
d5675508fa [netinstall] More coding-style
The tools don't always pick up all the style changes in one go
(I think astyle has trouble parsing some Calamares code)
2020-02-18 11:39:54 +01:00
Adriaan de Groot
8286bff95f [netinstall] Shuffle code around a bit
- introduce char const for key name (consistency, it's used lots)
 - polish debugging a bit
 - add some inline code-docs
2020-02-18 11:28:42 +01:00
Adriaan de Groot
17eb3f5e33 [netinstall] Apply coding style 2020-02-18 11:02:53 +01:00
Adriaan de Groot
1b80cf82de [fstab] Don't add swap that wasn't made new for us 2020-02-18 10:44:54 +01:00
Adriaan de Groot
158e11de1e [partition] Indicate that a filesystem is new in GS 2020-02-18 10:44:54 +01:00
Adriaan de Groot
7c2a196568 [users] Document new knobs
- while here, update copyright notice

FIXES #1140
2020-02-18 10:38:31 +01:00
Adriaan de Groot
f7e8488edf [users] Correct DBus return from hostnamed calls 2020-02-18 10:35:47 +01:00
Adriaan de Groot
094c213baa [users] Also test hostname-setting via hostnamed
SEE #1140
2020-02-18 10:16:19 +01:00
Adriaan de Groot
f1435452ea [users] Polish up tests
- Don't remove test artifacts on failure
 - Coding style
2020-02-17 18:21:44 +01:00
Adriaan de Groot
c5b45c37fc [users] Add tests of the file-writing components 2020-02-17 18:10:46 +01:00
Adriaan de Groot
371fe267b1 Merge branch 'better-hostname' 2020-02-17 17:10:21 +01:00
Adriaan de Groot
94f5b13db0 [libcalamaresui] Restore previous DLLEXPORT names
- Different libraries should have different EXPORTs, so that
   you can IMPORT one while building the other. Reported (and
   kindly explained) by Kevin Kofler.
 - Stick to one header file, though.

While here, update copyright on file.
2020-02-17 16:55:17 +01:00
Adriaan de Groot
49eb8212e3 [users] Imporove enum-naming 2020-02-17 16:46:06 +01:00
Adriaan de Groot
e74831fcb4 [users] Add .conf entries for hostname settings
- Set hostname not-at-all, or via one of two mechanisms
 - Write /etc/hosts or not
2020-02-17 16:40:09 +01:00
Adriaan de Groot
61d096c9ec [users] Prep-work for configurable actions
- tidy include style
 - add setting to UsersViewStep for hostname action
2020-02-17 16:27:53 +01:00
Adriaan de Groot
33b3321698 [users] Simplify reading configuration 2020-02-17 16:05:55 +01:00
Adriaan de Groot
dbba0c9b03 [users] Move Job creation from the widget to the ViewStep
- Having the widget do creation ties the step heavily to that UI;
   start moving towards a state where we have a Config object (not
   here yet; it still queries the UI part) that moves data around
   between UI and ViewStep.
2020-02-17 15:56:41 +01:00
Adriaan de Groot
2471e74aab [users] Provide some accessors to the UI-page data 2020-02-17 15:50:22 +01:00
Adriaan de Groot
ef4bb5e13b [users] Make SetHostName job actions configurable 2020-02-17 15:24:44 +01:00
Adriaan de Groot
0238a7338a Merge branch 'crush-dllmacros'
Tidy a bunch of includes, make it easier to add tests.
2020-02-17 15:06:31 +01:00
Adriaan de Groot
6719a41aef [libcalamares] Switch tests to calamares_add_test() 2020-02-17 15:05:00 +01:00
Adriaan de Groot
51e135cfbd CMake: chase introduction of IMPORTED yamlcpp 2020-02-17 15:01:05 +01:00
Adriaan de Groot
6f996d8eed CMake: give yamlcpp a proper imported target
- This makes linking easier,
 - Adds the right includes (needed on FreeBSD),
 - Lets us drop silly GUI setting for non-GUI tests (I think this was
   a side-effect of compiling on FreeBSD, where UI would pull in
   /usr/local/include).
2020-02-17 14:55:12 +01:00
Adriaan de Groot
4495a4c739 CMake: Allow extra libraries in calamares_add_test
- Extra libraries specified via LIBRARIES part of CMake function
 - Convert all the other module tests
2020-02-17 14:36:52 +01:00
Adriaan de Groot
637a57d534 [machineid] Change to calamares_add_test
- The test-macro handles cases without ECM or testing transparently.
 - Adds compile defines for STATICTEST.
2020-02-17 12:04:18 +01:00
Adriaan de Groot
6bdc4a55de CMake: new convenience module CalamaresAddTest 2020-02-17 12:02:53 +01:00
Adriaan de Groot
b42520b0ef [machineid] Apply new STATICTEST specifier, hide implementation details 2020-02-17 11:51:56 +01:00
Adriaan de Groot
92260e7d0b [libcalamares] Document DllMacro.h and add STATICTEST
- document the export macros
 - introduce a "static" that is switched off when re-building code
   for tests.
2020-02-17 11:43:20 +01:00
Adriaan de Groot
b044549013 [libcalamares] Merge PluginDllMacro.h into DllMacro.h
- Let's just have one header definining export- and visibility-
   macros for Calamares. They are still selected based on the
   export flags (*_PRO), just defined in one header instead of two.
2020-02-17 11:37:35 +01:00
Adriaan de Groot
aaa6f6bd55 [libcalamaresui] Drop UiDllMacro.h
- The scattering of DLL export macro's is kind of useless;
   there are several headers, and then the export macro isn't
   even applied consistently. Just drop the one for UI exports,
   which was only used in libcalamaresui.
2020-02-17 11:32:28 +01:00
Adriaan de Groot
44bf0a5d6d [users] Add method for using hostnamed
SEE #1140
2020-02-17 10:57:41 +01:00
Adriaan de Groot
9a7465bfd5 [users] Refactor writing-hostname and writing-hosts
- Move to separate functions, as prep-work for making the actions
   configurable (and optional).
2020-02-17 10:42:54 +01:00
Adriaan de Groot
214f9a308e Merge branch 'improve-tests' 2020-02-16 20:29:24 +01:00
Adriaan de Groot
d5f3e2e7d4 Merge pull request #1318 from yurchor/patch-2
[partition] Fix typo: partitons -> partitions
2020-02-16 20:26:43 +01:00
Adriaan de Groot
1242f71b3b Merge pull request #1317 from yurchor/patch-1
[luksbootkeyfile] Fix minor typo
2020-02-16 20:26:05 +01:00
Yuri Chornoivan
ea82a26dae Fix typo:; partitons -> partitions
Many thanks in advance for reviewing.
2020-02-16 14:12:48 +02:00
Yuri Chornoivan
b582c27bf4 Fix minor typo
Many thanks in advance for reviewing.
2020-02-16 14:09:30 +02:00
Adriaan de Groot
90f79b0692 [users] Restore error-checking to set-hostname code
- Use the new CreationResult code for compact results
2020-02-14 13:27:49 +01:00
Adriaan de Groot
781322ab41 [libcalamares] Use more descriptive variable name
- If the test failed, you'd get a cryptic message like
	FAIL!  : NetworkTests::testPing() 'r' returned FALSE. ()
   So rename the variable so the failure mode is more obvious.
   (Could have used QVERIFY2() instead, this is simpler)
2020-02-14 13:23:19 +01:00
Adriaan de Groot
f6526f7d9f [libcalamares] Add some tests for CreationResult
- More important is the compiler warning that will show up
   if we add more failure states.
2020-02-14 13:21:16 +01:00
Adriaan de Groot
274115c727 [libcalamares] Update tests to reflect changed API 2020-02-14 13:07:29 +01:00
Adriaan de Groot
2d7398161d [libcalamares] More detail for createTargetFile()
- Return a result-object with statrus information and the path
   which was previously used (empty for "failures").
2020-02-14 13:03:51 +01:00
Adriaan de Groot
695b88b8a7 [users] Tidy up hostname creation
- Use the createTargetFile() convenience functions to do the
   actual work.
 - This probably involves more copying around of buffers, since it's
   creating one big QString and sending that off, rather than writing
   little chunks to a file, but I feel this is worth the code simplification.
 - Drops all the error checking for creation, though, because the API for
   createTargetFile() lousy.
2020-02-14 12:31:53 +01:00
Adriaan de Groot
b337a6b3f5 [user] Apply coding style 2020-02-14 11:46:35 +01:00
Adriaan de Groot
2bb4dd8e22 [users] Refactor hostname-guessing 2020-02-14 11:45:45 +01:00
Gabriel Craciunescu
7c323bdcdc [users] Try to guess suggested hostname from dmi
- nothing compicated for now, just try to get something
  from /sys/devices/virtual/dmi/id/product_name and fallback
  to -pc thingy if we can't
2020-02-14 11:36:53 +01:00
Adriaan de Groot
7f295d9565 [partition] Apply coding style to core/ subdir
Because this is a giant code change, with no functional effect,
I've been saving this until the end of the kpmcore-manager branch.
2020-02-14 11:15:57 +01:00
Adriaan de Groot
2bc296b468 [unpackfs] Fix typo's introduced in june 2020-02-13 16:23:49 +01:00
Adriaan de Groot
45a31a3022 [partition] Tidy includes
- sort includes a little
 - remove superfluous includes
 - update copyright
2020-02-13 13:54:04 +01:00
Adriaan de Groot
d931b146e3 [partition] Shuffle new conveniences into partition service
- the general stuff from KPMHelpers ends up in the partition
   service; that only gets compiled when KPMCore is available anyway.
2020-02-13 13:48:12 +01:00
Adriaan de Groot
e72ecaafd3 Merge branch 'kpmcore-manager'
Introduces a "partitioning service" into libcalamares,
shuffles a bunch of things into it, tries to help out
with settling the system between partitioning actions.
2020-02-13 13:41:53 +01:00
Adriaan de Groot
6d10c41aeb Merge branch 'fs-translation'
Double-check the uses of filesystem names -- give only *untranslated*
names to system tools, and show *translated* ones.
2020-02-13 13:30:33 +01:00
Adriaan de Groot
5a50a3a40c [partition] Consistent FS name usage
- explicit use of user-visible names in EditExistingPartitionDialog
 - consistent conversion of config-values to FS names (user-visible).
   The GS value comes from the ViewStep, and should always match
   something -- it's already converted to the canonical un-translated
   so the type should be good.
2020-02-13 13:24:53 +01:00
Adriaan de Groot
57b608083e [partition] Fix build - missing ) 2020-02-13 13:24:09 +01:00
Adriaan de Groot
ca67534cd2 [partition] Improve logging of bad configs 2020-02-13 13:15:06 +01:00
Adriaan de Groot
472ec32617 [partition] Be explicit about user-visible FS names, ReplaceWidget 2020-02-13 11:49:20 +01:00
Adriaan de Groot
05dfc24af6 [partition] Be explicit about user-visible FS names, CreatePartitionDialog 2020-02-13 11:45:04 +01:00
Adriaan de Groot
88cff387c3 [partition] Be explicit about user-visible FS names, FormatPartitionJob 2020-02-13 11:33:40 +01:00
Adriaan de Groot
bacca04695 [partition] Be explicit about what's user visible in SetPartitionFlagsJob 2020-02-13 11:29:45 +01:00
Adriaan de Groot
29894cec6a [partition] Convenience userVisibleFS()
- Mark uses of filesystem-name where it's intentional that they
   are user-visible, with a new convenience function.
2020-02-13 11:22:09 +01:00
Adriaan de Groot
dac5516b2c [partition] Update copyright, coding style 2020-02-13 11:12:22 +01:00
Adriaan de Groot
a0449abab9 [partition] Do not translate filesystem names
- Move contents of FSName to KPMHelpers
 - Use the new functions from FillGlobalStorage

Needs more use in the rest of the partition module.
2020-02-13 11:06:53 +01:00
Adriaan de Groot
f410a4bb68 [libcalamares] Convenience function for FS names
Because getting the untranslated name of a FileSystem is something
that needs doing consistently, add some functions for that;
it makes it easier to spot places where that isn't done.

Probably doesn't compile, and needs extra documentation.
2020-02-13 10:12:02 +01:00
Adriaan de Groot
c055e1da49 [partition] Use untranslated name of filesystem
- Patch from Gabriel Craciunescu
2020-02-13 09:32:06 +01:00
Adriaan de Groot
aa0a799492 [welcomeq] QML warnings--
The config bits are all constant, so avoid NOTIFY warnings.
2020-02-12 22:47:11 +01:00
Adriaan de Groot
f094cb543b [libcalamaresui] Set config object earlier
- The config context object should be set earlier, otherwise
   QML code will try binding to a non-existent config already
 - Document that QMLViewStep::setConfigurationMap() parent implementation
   should be called **last**, at the end of the subclass implementation.
2020-02-12 22:33:49 +01:00
Adriaan de Groot
7e0cc7af41 [welcomeq] Add configuration file
- copy the buttons-config part from welcome.conf
 - create buttons in the QML part
2020-02-12 18:24:07 +01:00
Adriaan de Groot
85b873a1a2 [libcalamaresui] Log QML error message
- When loading fails, log a useful error message from the QML
   engine (to help debug the QML)
2020-02-12 17:58:21 +01:00
Adriaan de Groot
49ed97cb77 [libcalamares] Allow QML ViewSteps to expose a config object 2020-02-12 17:51:10 +01:00
Adriaan de Groot
f0134aab71 [welcomeq] Add more fields to Config
- getters as slots, for later access from QML
2020-02-12 17:37:06 +01:00
Adriaan de Groot
86bf9287ab [notesqml] Use Branding strings 2020-02-12 16:23:34 +01:00
Adriaan de Groot
ae35256177 [welcomeq] Add top-text
- Fix QML indentation to the canonical 4-spaces
 - Add a header at the top of the page
 - Force the image to load from the filesystem
2020-02-12 16:20:53 +01:00
Adriaan de Groot
18942f835f [libcalamares] Remove confusing name-qualifiers
- Using Branding::ImageEntry, when ImageEntry is an enum class
   defined *in* Branding, is superfluous, and it also confuses
   moc; the enum type isn't recognized from QML.
2020-02-12 15:35:11 +01:00
Camilo Higuita
15d8503726 [libcalamaresui] Expose the branding strings & urls to qml 2020-02-12 15:18:24 +01:00
Adriaan de Groot
152c3352c2 [welcomeq] Compile the QML into the module
- Default implementation is in the QRC
 - Register Branding for QML modules (just once)
2020-02-12 15:08:18 +01:00
Camilo Higuita
b5e17b7ea5 [welcomeq] Add full-featured QML for welcome page
This is a merge of several commits by Camilo.
2020-02-12 14:31:15 +01:00
Adriaan de Groot
7bf0fded1b [welcomeq] Port to newer QmlViewStep 2020-02-12 14:25:30 +01:00
Adriaan de Groot
adb312bdd2 [welcomeq] Coding style
- a R/W property isn't CONSTANT
 - apply calamaresstyle
2020-02-12 14:19:33 +01:00
Adriaan de Groot
ffeed05a5d Changes: credit Camilo Higuita for QML prep-work 2020-02-12 14:09:09 +01:00
Adriaan de Groot
c7780db07a Merge branch 'model-q'
- Make models of some things previously held as lists, as
   prep-work for QML modules.
2020-02-12 14:08:07 +01:00
Camilo Higuita
1f2f1a657e [libcalamaresui] Expose Branding strings to QML 2020-02-12 13:57:26 +01:00
Adriaan de Groot
ca13d1670e [libcalamares] Merge more from Camilo
- Complete the model for locales
2020-02-12 13:40:59 +01:00
Adriaan de Groot
59ddda6225 Merge branch 'wrangle-boost' 2020-02-12 12:44:09 +01:00
Adriaan de Groot
9408601074 [libcalamares] Move Python wrapper
- Take the Python wrapper for GlobalStorage out of the GlobalStorage.h
   header and add it to PythonHelper instead, saving some work in
   all the cases that only GS is interesting, not the Python bits.
2020-02-12 12:37:43 +01:00
Adriaan de Groot
ad725b671e [hostinfo] Warnings--
- Physical memory can't be negative, so it is reported as
   an unsigned long, but the bytes-to-MiB functions do accept
   negative amounts. As long as no machine has more than 2**62
   bytes of memory, we're good though.
2020-02-12 12:26:55 +01:00
Adriaan de Groot
a11280b427 [libcalamares] Expand tests for printable entropy 2020-02-12 12:22:02 +01:00
Adriaan de Groot
090716ba4f [libcalamares] Warnings-- in Entropy
- reading a file yields a qint64
 - need to mash the unsigned data from twister to signed char data.
2020-02-12 12:15:13 +01:00
Adriaan de Groot
7efed8226c [libcalamares] Warnings--, update copyright 2020-02-12 12:10:58 +01:00
Adriaan de Groot
c1151cbcfa [libcalamares] Update copyright info 2020-02-12 12:08:46 +01:00
Adriaan de Groot
8181808bec [libcalamares] Fix build
- drop now-obsolete boost-warnings.h
 - add missing namespace alias to GlobalStorage.h (removed accidentally
   in previous commit)
2020-02-12 11:25:10 +01:00
Adriaan de Groot
3b35ca7bb9 [libcalamares] Simplify includes
- PythonHelper.h already pulls in all the Python machinery
2020-02-12 11:04:15 +01:00
Adriaan de Groot
95722541d0 [libcalamares] Untangle Python includes
- Use BoostPython.h to manage overall includes
 - Remove local home-grown variations
2020-02-12 11:02:38 +01:00
Adriaan de Groot
f8998834cf [libcalamares] Simplify includes (no Python used in JobQueue) 2020-02-12 10:55:36 +01:00
Adriaan de Groot
d42e757576 [libcalamares] Simplify includes
- CalamaresVersion used by the job, not the API presented to Python.
 - Untangle Qt includes from there.
2020-02-12 10:48:19 +01:00
Adriaan de Groot
f3e7fe5eb4 [libcalamares] Use more specific include 2020-02-12 10:32:10 +01:00
Adriaan de Groot
96580e5c40 [libcalamares] Convenience header for Boost and its warnings 2020-02-12 10:28:48 +01:00
Adriaan de Groot
6432b7f42a [libcalamares] Hit Boost warnings with a hammer
- Tons of warnings from Clang 9 in Boost::Python code, so
   turn of most of those warnings in the Boost-support code.
2020-02-11 16:46:44 +01:00
Adriaan de Groot
684c5f477c [libcalamares] Moc warnings--
- don't have a NOTIFY CONSTANT property
 - the data is constant, so drop NOTIFY
 - remove redundant signals
 - remove setLabels() now it's only needed from one constructor
2020-02-11 16:40:36 +01:00
Adriaan de Groot
b4b1bf5de2 [libcalamares] Call delegated constructor 2020-02-11 16:39:39 +01:00
Adriaan de Groot
df5a0d25bc [libcalamares] Handle empty locale names quickly 2020-02-11 16:37:49 +01:00
Adriaan de Groot
27bc64e63f [libcalamares] C++ style, warnings-- 2020-02-11 15:36:30 +01:00
Adriaan de Groot
241cb04f06 [libcalamares] Coding style 2020-02-11 15:25:28 +01:00
Camilo Higuita
1b3d32ca79 make label item from LabelModel qobject based and expose properties 2020-02-11 15:24:29 +01:00
Adriaan de Groot
340ffd070c Changes: credit to Anke Boersma for the example notes 2020-02-11 12:57:12 +01:00
Adriaan de Groot
dd33cbfa36 Docs: update RELEASE.md procedure 2020-02-11 12:55:53 +01:00
Adriaan de Groot
6c0fecd40d [notesqml] Don't use a fixed width 2020-02-11 12:55:26 +01:00
Adriaan de Groot
c3c845e9d7 [notesqml] Add some more module documentation 2020-02-11 12:29:18 +01:00
Adriaan de Groot
4f60a6340e [dummyqml] Drop module; it makes more sense to just be notesqml 2020-02-11 12:20:39 +01:00
Adriaan de Groot
04e608d164 Docs: remove example dummypythonqml from settings.conf
- PythonQt is going to go away (eventually), don't encourage it.
2020-02-10 15:28:33 +01:00
Adriaan de Groot
f95b4ba825 Merge pull request #1315 from demmm/master
[notesqml] adding notesqml, copy of dummyqml
2020-02-10 12:43:46 +01:00
Adriaan de Groot
cc17898da8 Docs: remove references to HACKING.md (moved to wiki) 2020-02-10 11:56:24 +01:00
Adriaan de Groot
0dde233c51 Docs: move HACKING to the wiki 2020-02-10 11:41:38 +01:00
Adriaan de Groot
f75a1e1c9a Changes: remove obsolete badge 2020-02-10 11:06:55 +01:00
demmm
c0e1ebb72a adding notesqml, copy of dummyqml
included in settings.conf, commented out
2020-02-09 01:03:52 +01:00
Adriaan de Groot
39ef671836 Changes: mention QML bits 2020-02-07 22:25:51 +01:00
Adriaan de Groot
4c7a0035aa Merge branch 'qml-activation' 2020-02-07 22:20:05 +01:00
Adriaan de Groot
39a5453904 [libcalamaresui] Add QML onActivate() and onLeave() calls.
- This comes from the ExecutionViewStep, V2 loading, which
   notifies the QML that the QML is now active.
2020-02-07 22:18:23 +01:00
Adriaan de Groot
1f34c2834e [libcalamaresui] Move definitions inside namespace {}
- Remove the extra Calamares:: namespace specifier from half the
   definitions.
2020-02-07 21:33:34 +01:00
Adriaan de Groot
12675be516 [libcalamaresui] Factor out "simple" QML method calls 2020-02-07 21:25:55 +01:00
Adriaan de Groot
bf675d971b Merge branch 'qml' 2020-02-07 21:08:29 +01:00
Adriaan de Groot
faa88afc88 Merge branch 'issue-1314'
FIXES #1314
2020-02-07 20:33:05 +01:00
Adriaan de Groot
229d09927e Changes: for 2020, new fake Linux distro name 2020-02-07 20:32:20 +01:00
Adriaan de Groot
3e2908ea16 [machineid] Follow Manjaro flags
- add -f to ln(1) flags
2020-02-07 20:31:15 +01:00
Adriaan de Groot
110a84344b [machineid] Test job function
- Create a job and ask it to create dbus files -- either directly,
   or as a symlink. Since the target chroot isn't viable, this will
   fail but we can at least see that directories are created, etc.
2020-02-07 20:29:42 +01:00
Adriaan de Groot
4cdcb48de6 [machineid] Functionality moved to libcalamares 2020-02-07 16:12:17 +01:00
Adriaan de Groot
b62004aae9 [machineid] Create the DBus data directory
- before running dbus-uuidgen or linking to systemd's UUID,
   create /var/lib/dbus; some distro's don't create that
   beforehand.

FIXES #1314
2020-02-07 16:10:13 +01:00
Adriaan de Groot
240fe2a564 [libcalamares] Add convenience createTargetParentDirs() 2020-02-07 16:09:02 +01:00
Adriaan de Groot
6ede9f2c7c [libcalamares] Test QFileInfo::dir() for completeness 2020-02-07 16:08:38 +01:00
Adriaan de Groot
e65969d587 [libcalamares] Re-do createTargetDirs()
- Drop the basedirs idea, replace return with just bool
 - Use QDir::mkpath, with some extra validation
 - Test it a bit
2020-02-07 15:51:46 +01:00
Adriaan de Groot
8b8ecf7b7b [libcalamars] Improve test init and cleanup
- Test createTargetFile and removeTargetFile
 - Clean up afterwards
 - Ensure /tmp is the RMP for each test
2020-02-07 15:23:02 +01:00
Adriaan de Groot
b502d78984 [libcalamares] Fix warning message
- "create" was when this function was used elsewhere
2020-02-07 13:58:44 +01:00
Adriaan de Groot
394eee3954 [libcalamares] Test more targetPath() scenario's 2020-02-07 13:57:14 +01:00
Adriaan de Groot
8d23e665ea [libcalamares] Fix targetPath() tests
- there is less simplification done than you might think
2020-02-07 13:53:49 +01:00
Adriaan de Groot
daa5b804b3 [libcalamares] Split paths-tests into own test executable
- Since these tests all want a system object, and a GS
   with a sensible setup, give them one with its own initTestCase().

This could have been done with one executable, running tests from
multiple classes, but there's not much overall benefit there.
2020-02-07 13:49:06 +01:00
Adriaan de Groot
31878dd43b [libcalamares] Avoid double / between root and path in targetPath() 2020-02-07 13:29:35 +01:00
Adriaan de Groot
15bca702c1 [libcalamares] Add tests for path functions (part 1) 2020-02-07 11:51:13 +01:00
Adriaan de Groot
95936549e2 [libcalamares] Add a createTargetBasedirs()
- Used to ensure that the directories leading up to a given path
   exist. Implementation is incomplete and broken for now.
 - While here, avoid removing an empty pathname in removeTargetFile()
   (the empty pathname indicates a broken configuration).
2020-02-07 11:30:37 +01:00
Adriaan de Groot
4af68365c9 [machineid] Remove obsolete implementation 2020-02-07 11:16:40 +01:00
Adriaan de Groot
bf882cec1d [machineid] Migrate removeFile() to libcalamares
- Becomes removeTargetFile()
2020-02-07 11:16:01 +01:00
Adriaan de Groot
9ef04192db [libcalamares] Simplify returns in targetPath() 2020-02-07 11:03:40 +01:00
Philip Müller
97ddd30af4 [machineid] folder needs to be created when not exists
- See #1314
2020-02-07 10:46:26 +01:00
Philip Müller
72d742e2f4 [machineid] Use same approach as we do in Manjaro
- See also https://gitlab.manjaro.org/applications/calamares/commit/da8f45ae
- Fixes #1314
2020-02-07 10:34:01 +01:00
Philip Müller
c766a0f10f [machineid] create dbus var-lib folder when not existing
See also #1314
2020-02-07 10:26:36 +01:00
Adriaan de Groot
dec30d70fd CI: tidy up scripts
- Add SPDX headers
 - Indent consistently (tabs, not a mix of 2-space, 4-space, and tabs)

The scripts were originally added without a license header.
Since they are simple, and re-usable, and not particularly
interesting, I've made the license explicitly 2-clause BSD.
This is unlike the rest of Calamares, which is GPLv3+; the
build system and support scripts are not the software itself.
2020-02-06 13:11:23 +01:00
Adriaan de Groot
0d2425ca78 CI: make shell-scripts tab-indented by default 2020-02-06 13:01:55 +01:00
Adriaan de Groot
44489d3d7b CI: tidy up license header in txcheck.sh 2020-02-06 12:51:06 +01:00
Adriaan de Groot
b8505dc621 CI: tidy up txcheck.sh
- Add license header with SPDX info
 - Add usage header
 - Support --help
 - Document internals a little more
2020-02-06 12:45:40 +01:00
Adriaan de Groot
53b6113c75 [welcome] Fix QML tests 2020-02-05 18:38:46 +01:00
Adriaan de Groot
eaea262449 Merge branch 'master' into qml 2020-02-05 18:03:31 +01:00
Adriaan de Groot
5d25719918 Merge branch 'translation-debugging'
Better support for ad-hoc translation loading. Use -T to load
local translations independent of the -d flag.
2020-02-05 17:52:19 +01:00
Adriaan de Groot
4b3f7eb209 [calamares] Local translations can be a separate setting
- Don't stick this in Settings, though, it becomes overly complicated.
2020-02-05 17:48:39 +01:00
Adriaan de Groot
24c2c435a0 [libcalamares] Try repairing tests
- Fail on FreeBSD with an instant timeout
2020-02-05 17:08:47 +01:00
Adriaan de Groot
4525060c26 [calamares] Refactor Settings initialization
- add a Settings::init() to do actual work
 - remove the same kind of code from CalamaresApplication
 - make constructor of Settings private
 - initialize settings before the application
2020-02-05 16:48:49 +01:00
Adriaan de Groot
68e8b0695d [calamares] Make declaration order match calling order 2020-02-05 16:14:56 +01:00
Adriaan de Groot
db80a34aca [calamares] Remove intermediate debug-settings
- There's a multi-stage setup for debug-mode, where the application
   object also knows that debugging is set. Remove it.
 - Break debug mode (because now the settings don't get debug-mode set).
 - Refactor so that parameter handing is only done if this Calamares
   is the unique (first) Calamares.
2020-02-05 16:10:41 +01:00
Adriaan de Groot
50b6801d35 [calamares] Install translator after loading settings
- means that also the *initial* translation can take settings
   into account, like -d loading local translations.
2020-02-05 14:33:42 +01:00
Adriaan de Groot
f233cac7a1 [calamares] Refactor debug-logging settings 2020-02-05 14:23:55 +01:00
Adriaan de Groot
ea8adc3de7 [calamares] Simplify return from main 2020-02-05 14:04:52 +01:00
Adriaan de Groot
af862336a8 [calamares] Initialize settings before QML 2020-02-05 13:50:18 +01:00
Adriaan de Groot
91625c8ba8 [libcalamares] Tidy up boolean options in Settings
- The const getters for a single boolean value have moved
   to the header, for inlining.
 - Document the getters and what their settings mean.
2020-02-05 13:35:26 +01:00
Adriaan de Groot
21aec96e2e Changes: document new language, random 2020-02-04 22:24:22 +01:00
Calamares CI
f45ed644d9 i18n: [python] Automatic merge of Transifex translations 2020-02-04 22:19:48 +01:00
Calamares CI
8c0ef5798d i18n: [dummypythonqt] Automatic merge of Transifex translations 2020-02-04 22:19:48 +01:00
Calamares CI
2088261ac6 i18n: [desktop] Automatic merge of Transifex translations 2020-02-04 22:19:47 +01:00
Calamares CI
1b3797b414 i18n: [calamares] Automatic merge of Transifex translations 2020-02-04 22:19:47 +01:00
Adriaan de Groot
d956c79291 [libcalamares] Load translations from more places
- To support translation testing, without needing to recompile
   Calamares, load files from the local directory when debugging,
   or from /usr/share/calamares/lang/ in general.
 - This allows updating translations and testing them with just
   lrelease (a translation build tool) installed, without rebuilding
   Calamares.
 - This allows distro's to ship updated or modified translations without
   rebuilding Calamares.
2020-01-30 19:06:33 +01:00
Adriaan de Groot
f1d7b29f11 Merge branch 'issue-1254' 2020-01-30 10:34:14 +01:00
Adriaan de Groot
02e5e0de5e [users] Use entropy service.
FIXES #1254
2020-01-30 10:32:34 +01:00
Adriaan de Groot
5b987d4f33 [machineid] Use entropy service
- Most of the code was error-checking, just replace the open-read
   with a call to the service instead.
 - It's not an error if /dev/urandom doesn't exist in the source system
   (there may be other good random sources, and otherwise we have the
   low-quality random fallback).
2020-01-30 10:32:27 +01:00
Adriaan de Groot
c971127b17 [machineid] Fix entropy-file return
- If the file was created and written, it would drop out of the
   if() and return an error anyway.
2020-01-30 10:08:55 +01:00
Adriaan de Groot
e56948cefa [libcalamares] Fix tests (cell is the lower unicode byte) 2020-01-29 16:41:17 +01:00
Adriaan de Groot
be0831ee11 [libcalamares] Add printable-entropy (e.g. for password salt) 2020-01-29 16:39:25 +01:00
Adriaan de Groot
8947f9c00c [libcalamares] Test the Entropy service 2020-01-29 16:16:12 +01:00
Adriaan de Groot
a574b43eb8 [libcalamares] Also report empty buffer as no-entropy 2020-01-29 16:08:33 +01:00
Adriaan de Groot
842a90e026 [libcalamares] Add an Entropy service for getting random data
- Tries to get the "best" random data
 - Reports the quality of the random data it got
2020-01-29 16:03:50 +01:00
Adriaan de Groot
94083edf9c Merge branch 'master' into kpmcore-manager 2020-01-29 12:55:46 +01:00
Adriaan de Groot
445eb1f640 Changes: post-release housekeeping 2020-01-29 11:42:22 +01:00
Adriaan de Groot
252ce70203 i18n: updated (English) source files 2020-01-29 11:42:04 +01:00
Adriaan de Groot
b38ae75bef Merge branch 'translate-checks' 2020-01-29 11:11:32 +01:00
Adriaan de Groot
8f581ca861 [welcome] Coding style
- apply coding style, add {}
 - remove unneeded includes (moved to the widgets)
 - update copyright
2020-01-29 11:10:30 +01:00
Adriaan de Groot
5107ce550b Changes: pre-release housekeeping 2020-01-28 17:42:21 +01:00
Adriaan de Groot
5a732a2d7d Merge branch 'issue-1308'
FIXES #1308
2020-01-28 17:38:11 +01:00
Adriaan de Groot
a09593e4a2 [locale] Tighten up language-matching
- Drop plain startsWith() matching, since we now have "as" and "ast"
   as supported languages, where one name is a prefix of the other.
2020-01-28 17:35:54 +01:00
Adriaan de Groot
49690fc681 [locale] Remove superfluous code
- the list is already filtered for UTF-8, so this is redundant
 - this *incidentally* fixes the problem with Assamese and Asturian,
   since Assamese (as_IN) was having its only entry removed,
   after which it would match Asturian (ast_ES)
2020-01-28 16:41:15 +01:00
Adriaan de Groot
97f622e094 [locale] Use standard algorithms 2020-01-28 15:50:08 +01:00
Adriaan de Groot
6b77d5db4a [welcome] Add detail messages for root and screen checks
- these were empty, so the widgets were hidden in the details
   dialog of the requirements check; which looks really strange
   if the reason the check fails is because root is required,
   and you can't see that in the details.

This commit is on a branch because it changes strings, and I want
to do a release Real Soon and not annoy the translators.
2020-01-28 15:24:29 +01:00
Adriaan de Groot
6db4d2ed37 CI: more BSD-compatibility, and remove typo 2020-01-28 15:21:17 +01:00
Adriaan de Groot
ede7d94b40 CI: handle differences in date(1) better 2020-01-28 15:18:54 +01:00
Adriaan de Groot
bf0515d188 CI: handle FreeBSD version of date(1) 2020-01-28 14:52:34 +01:00
Adriaan de Groot
ac96d91a65 Merge branch 'issue-1307'
FIXES #1307
2020-01-28 14:31:27 +01:00
Adriaan de Groot
ad4ac1d25c [welcome] Update copyrights 2020-01-28 14:23:38 +01:00
Adriaan de Groot
9d69d0a893 [welcome] Remove unused variables 2020-01-28 14:21:02 +01:00
Adriaan de Groot
1ac4786365 [welcome] Move all the translation work to the slot
- this needs to (re)check the satisfaction states to figure out the
   message, but that's useful if the state of the checks changes
   (e.g. in #1106)
2020-01-28 14:15:57 +01:00
Adriaan de Groot
221a79b64c [welcome] Simplify logic
- \not mandatorySatisfied \implies \not requirementsSatisfied,
   so the ifs can be combined and simplified
2020-01-28 13:58:08 +01:00
Adriaan de Groot
28d91979c3 [welcome] Make resultWidgets less error-prone
- instead of counting and needing to keep track of the predicate
   applied while creating the widgets, push nullptrs to the widget
   list instead reflecting "this entry did not satisfy the predicate
   for widget creation".
2020-01-28 13:50:23 +01:00
Adriaan de Groot
39534325e6 [welcome] Re-use widget creation code
- for the list, the code can be the same as for the dialog,
   only the predicate is different.
 - while here, implement retranslate() since there's no text on
   the list widgets otherwise.
2020-01-28 13:39:27 +01:00
Adriaan de Groot
38d58e5b16 [welcome] Hoist explanatory-label code
- Create the label once, and it's ok for it to respond to links
   even if there's none in the code.
 - Turn into a member variable in preparation for retranslation-refactor.
2020-01-28 13:32:53 +01:00
Adriaan de Groot
b476e4b386 [welcome] Refactor link-clicking
- remove intermediate lambda
 - rename dialog slot to one handling links in general (which now
   **only** does the dialog link)
2020-01-28 13:24:01 +01:00
Adriaan de Groot
ecc7719abd [welcome] Hoist checking for requirements-satisfied
- lift it out of the loop that creates the widgets
 - some lambda-wankery, but the compiler hammers this down to
   simple loops and you can read the resulting code as

	none_of  [the list]  isUnSatisfied
	none_of  [the list]  isMandatoryAndUnSatisfied
2020-01-28 13:13:09 +01:00
Adriaan de Groot
f5c0e57f17 [welcome] Improve variable naming
- these two are about whether all the checkEntries are satisfied
   (in general, and the mandatory ones) so make the names reflect that.
2020-01-28 13:02:39 +01:00
Adriaan de Groot
5795801be5 [welcome] Remove unneeded member variables.
- local to the constructor, only needed to be members because
   of the weird split between constructor and init()
2020-01-28 13:00:21 +01:00
Adriaan de Groot
5aae736ced [welcome] Create ResultWidget in separate method 2020-01-28 12:53:19 +01:00
Adriaan de Groot
bede280f91 [welcome] Refactor ResultsListWidget
- no point in having init() called immediately after the constructor,
   if it only makes sense to have one call to init() ever to create
   the widget.
 - while here, give it the same kind of structure as the dialog,
   holding on to a reference to the list.
2020-01-28 12:41:36 +01:00
Adriaan de Groot
320dcac946 [welcome] Drop unneeded member variable 2020-01-28 12:23:53 +01:00
Adriaan de Groot
ed1b3b576f [welcome] Refactor ResultsListDialog
- drop useless debugging
 - add documentation
 - move to its own spot in the file (not mixed in with ResultsListWidget)
2020-01-28 12:21:22 +01:00
Adriaan de Groot
41ac21bdcd [welcome] Refactor results-details dialog
- Factor out the "details" dialog into a separate class
   with a translation slot. This resolves the crash reported in #1307.
2020-01-27 19:35:41 +01:00
Adriaan de Groot
b3f5e28738 CMake: update language list
- Add Assamese (as) in the *ok* group.
 - Although languages move around a bit in the groupings,
   that doesn't change their availability; just says something
   about the current translation status.
2020-01-27 16:42:05 +01:00
Calamares CI
bbd18b4851 i18n: [python] Automatic merge of Transifex translations 2020-01-27 16:40:05 +01:00
Calamares CI
a017451607 i18n: [dummypythonqt] Automatic merge of Transifex translations 2020-01-27 16:40:04 +01:00
Calamares CI
0adc6599b7 i18n: [calamares] Automatic merge of Transifex translations 2020-01-27 16:40:04 +01:00
Adriaan de Groot
cd845475f0 CI: wrangle txstats.py
- This script is used to figure out which languages are included in a
   Calamares release; it fetches translation statistics from Transifex.
 - Document Esperanto better.
 - Add a -v option to see the actual translation numbers.
2020-01-27 16:37:43 +01:00
Adriaan de Groot
c18d40f61b CI: switch lupdate-versions checked for
- look for the more-specific lupdate-qt5 first, then the generic one
 - in practice this is moot, though, since the only person running
   this script is me, on one of my development VMs

Reported by Kevin Kofler (who rightly points out that lupdate *might*
be a Qt4 or even Qt3-era executable).
2020-01-26 00:43:21 +01:00
Calamares CI
e967b121e2 i18n: [python] Automatic merge of Transifex translations 2020-01-25 23:26:41 +01:00
Calamares CI
ae2536a9c3 i18n: [dummypythonqt] Automatic merge of Transifex translations 2020-01-25 23:26:40 +01:00
Calamares CI
209e4a2ad9 i18n: [calamares] Automatic merge of Transifex translations 2020-01-25 23:26:40 +01:00
Adriaan de Groot
48dec91606 CI: fix-up txpull
- canonicalize the files fetched from TX after import
2020-01-25 23:26:40 +01:00
Adriaan de Groot
6eb52c2989 CI: fix-up txpush
- need to force-push the translation tag (since there's only one,
   and it moves through history whenever TX is pushed)
 - xmllint canonicalization removes the DOCTYPE, so hack in
   a pipeline stage that re-inserts it.
2020-01-25 23:05:36 +01:00
Adriaan de Groot
397440539f CI: explanations after txcheck fails 2020-01-25 17:37:05 +01:00
Adriaan de Groot
fa466b447c CI: Canonicalize XML first
- Do XML processing / canonicalisation in txpush only
 - Run the *HEAD* version of txpush in both worktrees
2020-01-25 17:34:44 +01:00
Adriaan de Groot
64b56664de CI: use explicit encoding in XML tidy 2020-01-25 17:13:49 +01:00
Adriaan de Groot
053fa28b19 CI: improve TX consistency
- txpush
   - don't try to push TX for the timezone list
   - xmllint --format the .ts files to avoid inconsistency between
     TX tool versions
 - txcheck
   - xmllint --format
   - hard-code the list of files, it's not worth the hassle
   - don't apply XML cleanups to POT files
   - strip linenumbers from POT files for diffing
2020-01-25 17:02:07 +01:00
Adriaan de Groot
5dad5dae02 i18n: support Tumbleweed versioned-lupdate executables 2020-01-25 15:48:08 +01:00
Adriaan de Groot
5ac57fe294 i18n: don't translate TZ via Transifex
- This is about 600 place-names, and the vast majority is not
   translatable and would only pollute the Transifex DB.
 - Instead, rely on git and PRs to update these specific translations.
2020-01-25 15:39:09 +01:00
Adriaan de Groot
39cc13cb25 [shellprocess] Tidy code
- resolve TODO, use a unique_ptr to hang onto the command-list
 - sort the #includes, use correct quoting
2020-01-25 15:23:10 +01:00
Adriaan de Groot
71a73ee1a1 [libcalamares] PythonJob created with InstanceKey 2020-01-25 15:15:32 +01:00
Adriaan de Groot
d86b6bddeb CI: when pushing TX, also push the tag 2020-01-25 12:36:02 +01:00
Adriaan de Groot
86770111b5 Changes: Document changed job weights 2020-01-25 12:06:13 +01:00
Adriaan de Groot
96946a8447 Merge branch 'fix-unpackfs-progress'
This is an ugly hack, using Bill Auger's support for Job weights.
The unpackfs job is arbitrarily awarded a weight of 12. That makes it
(in a Netrunner install) use progress from 12% to 40% or so, overall,
as all the files are unpacked.

Also fixes bug reported by Kevin Kofler that unpackfs was only reporting
progress when it hit an exact multiple of 100 (instead of over 100).

SEE #1176
2020-01-25 11:53:31 +01:00
Adriaan de Groot
9976e92659 [libcalamares] Enlarge unpackfs to 12x 2020-01-25 03:06:20 +01:00
Adriaan de Groot
d4b24894cb [libcalamares] Weigh unpackfs extra heavy
- This is a gross hack, which hard-codes unpackfs as much-heavier
   than other Python modules.
2020-01-25 02:45:52 +01:00
Adriaan de Groot
0c9188ee83 [libcalamares] Document JobWeight 2020-01-25 02:45:52 +01:00
Adriaan de Groot
b0b9073b40 CMake: fix boost.python detection on FreeBSD 2020-01-25 02:45:52 +01:00
Adriaan de Groot
0bdc5b18f4 Merge branch 'no-config'
FIXES #1301
FIXES #1302
2020-01-24 23:19:24 +01:00
Adriaan de Groot
c555369766 Changes: document new *noconfig* behavior 2020-01-24 23:18:46 +01:00
Adriaan de Groot
cdd2b9cc79 Modules: set noconfig:true on Python modules
- hwclock, initramfs, localecfg and networkcfg don't have any
   config file to work with, so set that explicitly in the module.desc
2020-01-24 23:10:41 +01:00
Adriaan de Groot
8d47751cb2 [libcalamares] Beautify debug output for InstanceKey 2020-01-24 22:53:14 +01:00
Adriaan de Groot
83ffbd5126 [libcalamaresui] Only load config file if there is one
- finally, no more warnings for modules that are NO_CONFIG
   (or noconfig: true) and don't have a config file.
2020-01-24 21:47:54 +01:00
Adriaan de Groot
f366e3840f [libcalamaresui] Chase stronger typing of ModuleDescriptor 2020-01-24 21:46:18 +01:00
Adriaan de Groot
5ad73681c2 CMake: actually write the NO_CONFIG setting 2020-01-24 20:58:23 +01:00
Adriaan de Groot
00deeec8c8 [libcalamaresui] Use InstanceKey instead of strings
- Replace return type of Module::instanceKey() by the structured
   ModuleSystem::InstanceKey type
 - Chase API breakage
2020-01-24 17:47:06 +01:00
Adriaan de Groot
abdeb07bd3 [dummyqml] Minor polishing in Qml module
- document the default filename better
 - mark TODO actually loading the instance-id file
2020-01-24 17:14:45 +01:00
Adriaan de Groot
0c65ecf53e Merge branch 'demmm-qml' into qml 2020-01-24 17:00:46 +01:00
demmm
b20a957c6e restore includes in header file to amke it build 2020-01-24 15:52:59 +01:00
demmm
538d8d5497 address qmlLabel changes too 2020-01-24 15:14:51 +01:00
demmm
9f55cf4cf4 part of the changes requested
others fail to build, or no idea how to fix
2020-01-24 15:12:10 +01:00
Adriaan de Groot
b5d0acdf81 [luksbootkeyfile] Set NO_CONFIG 2020-01-24 13:13:50 +01:00
Adriaan de Groot
40f64f0c11 [hostinfo] Set NO_CONFIG and remove unused configuration methods 2020-01-24 13:12:25 +01:00
Adriaan de Groot
fd058302b8 [dracutlukscfg] set NO_CONFIG and coding style 2020-01-24 13:08:25 +01:00
Adriaan de Groot
6530c889f0 Merge remote-tracking branch 'origin/use-idkey' into no-config
- Join to a single branch that does a bunch of tidying
   in the type-strictness of module interfaces.
2020-01-24 13:05:22 +01:00
Adriaan de Groot
155db29ccf [libcalamares] Add a ModuleSystem::Descriptor
- this is currently just an alias for QVariantMap, which is
   the type already in use.
 - future plan is to tighten this up and have an actual
   Descriptor class that carries only the information
   actually needed for the module descriptor.
2020-01-24 12:59:35 +01:00
Adriaan de Groot
974d795390 [libcalamares] Shuffle module-loading logic
- group ifs by the state of thisModule
2020-01-21 19:57:16 +01:00
Adriaan de Groot
58931d99fa [libcalamaresui] Support noconfig setting
- look up the descriptor and use its noconfig value
 - return empty QString if noconfig is set; this does not
   apply to custom instances
2020-01-21 19:57:16 +01:00
Adriaan de Groot
649eb94d24 [libcalamaresui] Type-alias for module descriptors 2020-01-21 19:29:47 +01:00
Adriaan de Groot
8fbe676280 [libcalamaresui] Refactor finding config file name
- check for broken custom instances earlier in the loop
 - make free function for finding the config file name
2020-01-21 19:22:13 +01:00
Adriaan de Groot
a403f1e851 CI: allow plain clang-format (Tumbleweed) 2020-01-21 19:07:03 +01:00
Adriaan de Groot
d1f162f92a Docs: describe *noconfig* module option 2020-01-21 18:31:13 +01:00
Adriaan de Groot
10d1c4cf5b [unpackfs] Improve progress reporting
- don't rely on exactly 100 files being copied (thanks to Kevin Kofler)
2020-01-20 19:39:05 +01:00
Adriaan de Groot
fbb452f9bf CMake: add support for NO_CONFIG
- A C++ module should set NO_CONFIG to flag that it doesn't have a
   config file (this is an error if it secretly **does** have one)
2020-01-20 19:27:34 +01:00
Adriaan de Groot
fed0c46612 [libcalamaresui] Change return type of loadedInstanceKeys()
- Replace stringlist with a stronger-typed list of InstanceKey objects
 - Move smashing-that-to-stringlist into consumers of the list
   (just one, the debug window)
2020-01-19 18:07:27 +01:00
demmm
32eee82744 clean-up dummyqml.conf 2020-01-14 13:08:54 +01:00
demmm
f2e68ddcf4 adding configure option dummyqml
sidebar entry can be configured and translated
adding a more elaborate qml example
keeping this in dummyqml for now, another commit will follow with
continuation of dummyqml in a more aptly named module
2020-01-14 12:30:22 +01:00
Adriaan de Groot
750465153f [dummyqml] Improve QML searching
- if the filename is an absolute path, use that
 - support searching in branding directory
2020-01-13 22:28:21 +01:00
Adriaan de Groot
7f8a31007a [dummyqml] Search for files
- start implementation of searching-for-qml
 - add a *filename* configuration item, so that the filename
   can be set per-instance (via the config file)
2020-01-13 22:04:27 +01:00
Adriaan de Groot
ed4127f661 [libcalamaresui] Shuffle the module interface
- introduce NamedEnum lookup tables for interface and type
 - drop "final" and "virtual" from methods that don't make
   sense as virtual
 - shuffle declaration order so the virtual API for modules
   sits together
2020-01-12 12:18:13 +01:00
Adriaan de Groot
f89c137c90 [libcalamaresui] Migrate module to using InstanceKey
- Trying to get away from untyped strings with special meaning.
 - The "split identifier" branch tried the same thing, but
   was duplicating the existing InstanceKey.h work.
2020-01-12 11:49:10 +01:00
Adriaan de Groot
a7e1a1f9fc [libcalamaresui] Refactor Module::initFrom()
- generic initFrom() also sets the instance id
 - subclass-specific initFrom() now pure virtual in base
 - chase changes in subclasses
2020-01-12 11:37:22 +01:00
Adriaan de Groot
04615b251c [dummyqml] Make prettyName() return a sentence with . 2020-01-10 17:47:02 +01:00
Adriaan de Groot
ce6d54ad95 [libcalamaresui] Improve failure message, unbreak loading
- example loading had an X inserted in filename (to test failure)
 - add a space between name and failure
2020-01-10 17:45:09 +01:00
Adriaan de Groot
fed298b179 [libcalamaresui] Defer QML loading
- need a configuration before we can start loading (to support
   the variable search paths)
 - refactor showing a failure in the spinner widget. On failure,
   the spinner will never go away, so a message for the user is good.
 - stop clang-format from messing up the table of names.
2020-01-10 17:41:20 +01:00
Adriaan de Groot
e7e66497d2 [libcalamaresui] Introduce search method for QML UI modules
- add a sample config and documentation in dummyqml/
2020-01-10 17:19:15 +01:00
Adriaan de Groot
23a957e783 [libcalamares] Chase API change (timeouts)
- The new mount service needed adjustment for the independent
   change of timeouts: int -> chrono::seconds.
2020-01-10 15:22:26 +01:00
Adriaan de Groot
f6d89354a1 Merge branch 'master' into kpmcore-manager 2020-01-10 14:54:13 +01:00
Adriaan de Groot
e6713d456c [libcalamaresui] Need explicit qrc: scheme 2020-01-10 13:44:26 +01:00
Adriaan de Groot
c03c6fc8ed [libcalamaresui] Qml loading
- this is mostly copied from ExecutionViewStep (only the V2 QML
   loading), which does the same kind of thing.
 - loading from QRC does not work yet
2020-01-10 13:39:03 +01:00
Adriaan de Groot
44b250809f [libcalamaresui] Add spinner to QmlViewStep
- view step now has a widget, doesn't load QML yet
2020-01-10 13:10:55 +01:00
Adriaan de Groot
60c1d40b20 [libcalamaresui] Log which ViewStep is broken
- a ViewStep with no widget will crash the application;
   print out its name before doing so.
2020-01-10 12:56:46 +01:00
Adriaan de Groot
1cc40bda83 [dummyqml] Stub of a QML module 2020-01-10 12:41:00 +01:00
Adriaan de Groot
4924839217 [libcalamaresui] Start QmlViewStep 2020-01-10 12:13:40 +01:00
Adriaan de Groot
16a460adff [libcalamaresui] Move ExecutionViewStep where it belongs
- viewpages/ collects the ViewStep implementations
 - chase header moving and tidy some #includes
2020-01-10 12:07:35 +01:00
Adriaan de Groot
970702daa0 [libcalamaresui] Tidy up includes 2020-01-09 21:39:34 +01:00
Adriaan de Groot
63b8de00ef CI: allow plain clang-format (Tumbleweed) 2020-01-09 15:25:30 +01:00
Adriaan de Groot
537c257acf Merge branch 'master' into qml 2020-01-09 15:17:23 +01:00
Adriaan de Groot
56f926094e [welcomeq] Update comments
- Copyright years
 - Purpose of this module
2020-01-09 15:11:36 +01:00
Adriaan de Groot
c482990bc5 CMake: fix find-boost 2020-01-07 11:38:18 +01:00
Adriaan de Groot
1bc8a28eac CMake: Calamares doesn't want -p in automoc
FIXES #1286
2020-01-07 11:20:45 +01:00
Adriaan de Groot
1a8926181e [locale] Warnings-- (initialization-order) 2020-01-07 10:46:26 +01:00
Adriaan de Groot
2dff2d9d70 [libcalamares] TZRegion is hard to copy
- delete the copy and move constructors
 - adjust tests (which were just interested in simple tr() behavior) to use TZZone instead
2020-01-07 10:41:14 +01:00
Adriaan de Groot
5fbd0169ca [libcalamares] Reduce clang warnings (only-inline-virtual, unused parameters) 2020-01-07 10:33:21 +01:00
Adriaan de Groot
1b62b2f66c [libcalamares] Reduce warnings (extra ;, empty statement ..) 2020-01-07 10:19:22 +01:00
Adriaan de Groot
b4c0ebe8ab [calamares] Use screen and window sizes, not position 2020-01-07 10:04:10 +01:00
Adriaan de Groot
fcb0109b7b [calamares] Refactor center-placement
- Just move it to its own function where it can have more documentation
 - Tested on multi-screen setups

SEE #1293
2020-01-07 09:56:13 +01:00
Adriaan de Groot
61b6d058d7 Changes: credits for packagechooser bits 2020-01-07 01:16:36 +01:00
Adriaan de Groot
3877151bd8 Merge branch 'issue-1293'
FIXES #1293
2020-01-07 01:14:28 +01:00
Adriaan de Groot
121013fd96 [calamares] Avoid deprecated desktop()
- Put Calamares on the first screen where it fits
 - This is wordy and weird
2020-01-07 01:06:26 +01:00
Adriaan de Groot
43caf7b46a [calamares] Restore functionality for 'center window' 2020-01-07 00:34:15 +01:00
Adriaan de Groot
60c659c82b Changes: document new branding element 2020-01-07 00:28:52 +01:00
Adriaan de Groot
17d09342e9 [libcalamaresui] Add a setting for window placement 2020-01-07 00:27:11 +01:00
Adriaan de Groot
1625bb1dae [locale] Support Qt 5.9
FIXES #1296
2020-01-07 00:09:04 +01:00
Adriaan de Groot
d21ed0cc7f [packagechooser] Coding style 2020-01-06 17:55:13 +01:00
Adriaan de Groot
cefb66ab5b Merge pull request #1276 from bill-auger/patch-packagechooser-default-selection
[packagechooser] pre-select default item in packagechooser
2020-01-06 17:49:10 +01:00
Adriaan de Groot
bb4771a12a Changes: it's the locale module with translated zone names 2020-01-06 17:41:32 +01:00
Adriaan de Groot
25f0ba672c i18n: fix spelling of Kyiv
- Add Ukranian translations of zone names. Since I don't write
   Ukranian, add only a translation (er .. in this case, the
   proper original spelling) of Kyiv.
 - Fix spelling in English following UN resolution.
 - Dutch remains unchanged, since as far as I can tell the Dutch
   Government still sticks to the Soviet-era spelling.

FIXES #1298
2020-01-06 17:22:12 +01:00
Adriaan de Groot
dd5adc153f Merge pull request #1291 from calamares/initcpiocfg-usr
[initcpiocfg] add usr hook if partition is separate
2020-01-06 14:41:24 +01:00
Adriaan de Groot
d12390bb62 Merge branch 'initcpio-plymouth'
FIXES #1290
2020-01-06 14:39:06 +01:00
Adriaan de Groot
fe64903d2f [initcpiocfg] Polish PR #1290
- List discrete years in copyright
 - Add docstrings
 - Massage detect_plymouth() to return bool (easier in if() context)
2020-01-06 14:34:47 +01:00
Philip Müller
85d3f9e9b9 [initcpiocfg] add usr hook if partition is separate 2019-12-16 09:40:54 +01:00
Philip Müller
a3da47cd9c [initcpiocfg] update plymouth check 2019-12-16 09:34:21 +01:00
Adriaan de Groot
8e2d257040 [welcomeq] Add QML machinery (uninitialized) 2019-12-14 13:11:14 +01:00
Adriaan de Groot
53b208e891 [welcomeq] Start new ViewStep for QML-based welcome 2019-12-14 12:48:09 +01:00
Adriaan de Groot
6c4efc1f9c [welcome] Add Branding object to QML demo 2019-12-13 18:23:01 +01:00
Adriaan de Groot
55f61fda35 [welcome] Create branding and settings objects 2019-12-13 18:18:02 +01:00
Adriaan de Groot
03ed308bd9 [welcome] Add QML model for translations 2019-12-13 14:31:42 +01:00
Adriaan de Groot
d41d8df2a5 [welcome] Put Config object into context 2019-12-13 13:19:38 +01:00
Adriaan de Groot
c59678594b [welcome] More QML support
- start of a class to hold configuration information; this can
   later be substituted into the WelcomeViewStep and filled from
   setConfigurationMap()

In the example application:
 - register the Config type
2019-12-13 12:37:09 +01:00
Adriaan de Groot
156d78feb3 [welcome] Add QML support
- test application to display the QML (this will be extended
   with adding the locale model to it)
 - sample QML that does nothing useful yet (will display the locale
   model once it's there)
2019-12-13 11:50:12 +01:00
Adriaan de Groot
549ba662f5 QML Branch
This branch is an experiment in doing more QML UI things in Calamares

TODO list:
 - Make Label (in libcalamares/locale) a QObject
 - .. and add properties to it corresponding to the data fields
 - Go over LabelModel to make sure it's usable
 - Add a QObject for configuration of the Welcome module,
   collecting all the settings and making them accessible as
   properties (this might not need to be a separate object;
   the WelcomeViewStep could be the object)
 - Add a QObject / property access to branding data
 - Add a QML test app that loads a QML file and the objects
   and models listed above and displays the QML. This allows
   experimenting with the welcome-page UI through QML (without
   GeoIP support or requirements-checking though)
2019-12-12 12:28:20 +01:00
Adriaan de Groot
0e7982ec37 [libcalamares] Don't force Hindi on India.
FIXES #1284
2019-12-11 18:33:24 +01:00
Adriaan de Groot
58786388d6 Merge branch 'zone-data' 2019-12-11 15:34:35 +01:00
Adriaan de Groot
f5d7ef1bb7 Changes: document TZ translations 2019-12-11 14:50:46 +01:00
Adriaan de Groot
7bea19a62c [locale] Fix build with debugging enabled (API changes) 2019-12-11 08:45:35 -05:00
Adriaan de Groot
242b79e2e1 [locale] Remove old Location information
- all the TZ location information now lives in the Calamares
   locale service and the TZ list
 - replace the Location class that was local to the timezone
   widget by the TZZone class
 - chase a bunch of small API changes that this needs
2019-12-11 08:45:35 -05:00
Adriaan de Groot
4945408911 [libcalamares] Remove debugging cruft 2019-12-11 08:45:35 -05:00
Adriaan de Groot
daa76080f1 [libcalamares] Add meaningful aliases for key() 2019-12-11 07:00:42 -05:00
Adriaan de Groot
0ed2a3e35f [libcalamares] Refactor translation-setting
- Split the actual loading of translations into classes
   to encapsulate the loading logic,
 - Build a collection of classes to do the different kinds
   of translation loading,
 - Build a generic function to load something and update a
   static pointer to the translation.

This makes installTranslator() much easier to read, and encapsulates
the type-specific loading somewhere else. While here, add a timezone-
translations loader so that the split-out TZ translations also work.
2019-12-11 06:40:22 -05:00
Adriaan de Groot
8fc94900d3 CMake: add the tz_ translation files to the i18n build 2019-12-11 06:39:57 -05:00
Adriaan de Groot
93826c3c2a i18n: Dutch TZ translations (provisional) 2019-12-10 23:23:43 +00:00
Adriaan de Groot
3e3334349b i18n: untranslated timezone names 2019-12-10 22:44:10 +00:00
Adriaan de Groot
93ae44e214 [libcalamares] Split translatable timezone data
- Hide the one file from lupdate by giving it a weird suffix
 - Call lupdate a second time for the timezone translations
 - While here, adjust so that the options precede the directories
   they are supposed to affect

I don't want to give the translation teams 444 new strings all
at once (about 90% of which don't need translation).
2019-12-10 22:44:10 +00:00
Adriaan de Groot
e164f8d63a [locale] Fix build with DEBUG_TIMEZONE
- all the API changes were not reflected in the debugging code
2019-12-10 16:19:06 -01:00
Adriaan de Groot
fb9d53909e [locale] Drop ZONES #define
- this was a "cheap" way to write a list, but going through
   QStringList::split() is just a long-way-around for static
   initialization
2019-12-10 16:09:48 -01:00
Adriaan de Groot
2dfbed40c5 [locale] Move defines
- Used in only one place, move to .cpp
 - Drop useless scaling all the images *are* that size already
 - Add debugging check that the images match expected size
2019-12-10 10:00:16 -07:00
Adriaan de Groot
9d9d9c361d [locale] Clean up constants
- move LOCALESDIR to the one place it's used
 - remove file with only unused #defines
2019-12-10 17:46:09 +01:00
Adriaan de Groot
7354d35faf [locale] Apply coding style to timezonewidget/ 2019-12-10 17:42:58 +01:00
Adriaan de Groot
1e04924224 [locale] Drop the TZ-widget's timezone database
- use the global TZ service instead
 - contains hacks to keep some of the API unchanged, which will be
   removed shortly
2019-12-10 17:29:35 +01:00
Adriaan de Groot
08dc9011d6 [libcalamares] Off-by-one folded the world in half
- Dropped the sign from longitudes, wrapping the west onto the east
2019-12-10 17:11:10 +01:00
Adriaan de Groot
1880eb5148 [libcalamares] Add accessors for TZZone 2019-12-10 16:10:16 +00:00
Adriaan de Groot
3f57b929ee [libcalamares] Make the zoneTab region list static
- there's only one zone.tab, it won't change during a run,
   load it only once (this allows for a single global list).
2019-12-11 01:43:53 +10:00
Adriaan de Groot
4089a01cb1 [locale] Create TZ model earlier 2019-12-11 01:31:56 +10:00
Adriaan de Groot
a39c77dfaf [libcalamares] Store region name in each zone as well 2019-12-11 01:11:51 +10:00
Adriaan de Groot
226530cf6f [locale] Use model functions from locale service
- drop the home-grown combo-box filling, use model
2019-12-11 01:04:09 +10:00
Adriaan de Groot
c75e870073 [libcalamares] CStringList::find() convenience function
- search for a key and return a type-cast pointer to the result
 - while here, simplify some other code
 - the find() function could be done with std::find_if but doesn't
   get any shorter or more elegant
2019-12-10 15:54:43 +01:00
Adriaan de Groot
6092172f8d [libcalamares] Regions and zones change to QList<Base*>
- By using QList< CStringPair* > consistently, we can save
   a bunch of model code at the cost of an occasional dynamic_cast;
   it's fairly rare for there to be a need for the derived pointer.
2019-12-10 15:32:15 +01:00
Adriaan de Groot
fc8364ea54 [libcalamares] Store zones with each region
- move operator< to base class
 - add each zone to the list held by the region
 - sort zones at the end
2019-12-10 14:06:22 +00:00
Adriaan de Groot
1a8439069e [libcalamares] Extend TZ with location and country 2019-12-10 15:36:53 +02:00
Adriaan de Groot
f4509f3380 [libcalamares] Move loading to TZRegion
- don't make the model load files, provide convenience functions
   for loading in the value classes
 - create model from lists of value pointers
2019-12-10 10:48:39 -01:00
Adriaan de Groot
da277fa7ba [libcalamares] Drop superfluous enum 2019-12-10 17:42:32 +06:30
Adriaan de Groot
9a5e614172 [libcalamares] Build the TZRegion list in one pass
- read the file and create the regions on-the-fly, then sort the
   resulting list (instead of building a string list and then
   building the regions afterwards)
2019-12-10 17:24:33 +06:30
Adriaan de Groot
9f06903115 [local] Chase API change in TZRegionModel 2019-12-09 23:36:32 -11:00
Adriaan de Groot
01bba7b466 [libcalamares] Make explicit when a model comes from a file 2019-12-09 23:36:05 -11:00
Adriaan de Groot
afb5430c42 [locale] Use TZRegionModel
- instead of populating combo box with texts, use the model
   read in from zone.tab
 - this **partly** deprecates the LocaleGlobal stuff
2019-12-10 11:30:48 +02:00
Adriaan de Groot
2625bb18df [libcalamares] TZRegionModel gets a data role 2019-12-10 11:27:02 +02:00
Adriaan de Groot
97235e9b3d [libcalamares] Switch CStringPair key to QString
- the key is used in various places as a key for Qt data structures,
   so it's more convenient to have QString than a bare char*
2019-12-10 10:11:08 +01:00
Adriaan de Groot
1d17cf5c77 [libcalamares] Accessors for key and complete region data 2019-12-09 17:20:46 -04:00
Adriaan de Groot
b29b89579e [libcalamares] Present TZ regions in consistent order 2019-12-09 15:55:04 -05:00
Adriaan de Groot
b2c2255f6a [libcalamares] Add a model of timezone regions 2019-12-09 21:46:10 +01:00
Adriaan de Groot
7d88b6d0cd [license] Show filenames as filenames
- Use File: to display filenames, rather than URL: plus a file:-scheme
 - Document the change in CHANGES
2019-12-09 20:47:32 +01:00
Adriaan de Groot
ddc2f60768 Merge branch 'master' into zone-data 2019-12-09 17:44:32 +01:00
Adriaan de Groot
41c506cacc Merge branch 'issue-1268'
FIXES #1268
2019-12-09 17:35:59 +01:00
Adriaan de Groot
ac1c0d97d2 [license] Prevent single item from expanding
- the last item would expand vertically to fill the scroll area;
   add a spacer that pushes against it
2019-12-09 17:34:46 +01:00
Adriaan de Groot
59ea0417fc [license] Move a less-useful message to tooltip
- the message about setup continuing can be a tooltip
2019-12-09 17:25:07 +01:00
Adriaan de Groot
c220220563 [license] Give stylesheets meaningful names 2019-12-09 17:14:35 +01:00
Adriaan de Groot
8a912e6ca1 [license] Fix the height of each item
- needs a qwidget to put the top-items (license name, button) in
 - fixes issue where the gap between the button and the hrule would
   change depending on what is expanded
2019-12-09 17:08:35 +01:00
Adriaan de Groot
7330afd96a [license] Massage display of buttons
- try to keep them the same height
 - show the URL that will be opened
2019-12-09 16:57:18 +01:00
Adriaan de Groot
6e1504fafc [license] Use just one button
- replace the text plus toolbutton (which has an ambiguous arrow in it)
   by a single button with text saying what it will do.
2019-12-09 14:52:54 +01:00
Adriaan de Groot
2d02290b91 Merge branch 'issue-1268'
FIXES #1268
2019-12-03 13:01:41 +01:00
Adriaan de Groot
9fa021e3c6 [license] Reduce margins hugely
- Move layouting code into the .ui file
 - Reduce margins hugely -- atop the title block, around the
   scroll area, etc -- so that more license is visible at once.
2019-12-03 13:00:12 +01:00
Adriaan de Groot
0b126b2c62 [license] Massage the messages some more
- split shared <h1> message off
 - do some string-concatenation, but only of whole sentences
 - shave off some vertical space by dropping the mainsubtext item
2019-12-03 12:49:11 +01:00
Adriaan de Groot
72ee9742f3 [tracking] Correct the example URLs 2019-12-03 12:24:47 +01:00
Adriaan de Groot
162ab2129e Changes: post-release housekeeping 2019-12-03 11:57:25 +01:00
Adriaan de Groot
0eb666c56a CMake: support TWEAK releases in version-information 2019-12-03 11:37:28 +01:00
Adriaan de Groot
1fc31cde32 CI: make tag consistent between txpush and txcheck 2019-12-03 11:29:46 +01:00
Calamares CI
0c128d42d2 i18n: [python] Automatic merge of Transifex translations 2019-12-03 11:17:53 +01:00
Calamares CI
a034b1a9ab i18n: [dummypythonqt] Automatic merge of Transifex translations 2019-12-03 11:17:52 +01:00
Calamares CI
111b05f3c9 i18n: [calamares] Automatic merge of Transifex translations 2019-12-03 11:17:52 +01:00
Adriaan de Groot
8988e05f88 Changes: pre-release housekeeping 2019-12-02 11:47:58 +01:00
Adriaan de Groot
5cb0ee6cc5 [welcome] Simplify code
- Kevin Kofler pointed out there was a redundant else-if
 - Only use size for comparison if it's valid
2019-12-02 11:42:32 +01:00
Adriaan de Groot
7029c427f1 Merge pull request #1275 from bill-auger/patch-createusers-logging
housekeeping - logging for CreateUser Job
2019-12-02 11:38:34 +01:00
Adriaan de Groot
1a13704c71 [grubcfg] HOTFIX typo in function call 2019-11-30 21:46:45 +01:00
bill-auger
7510e883b8 pre-select default item in packagechooser 2019-11-30 02:23:05 -05:00
Adriaan de Groot
28141661da Merge branch 'reduce-warnings' 2019-11-29 00:18:58 +01:00
Adriaan de Groot
8b4bd52a26 [machineid][hostinfo] Reduce warnings
- stray ;
 - clang-tidy had re-ordered the moc-warnings.h header, needs to go
   **before** the .moc so split into its own group
2019-11-29 00:17:26 +01:00
Adriaan de Groot
bd5b63b02e [summary][calamares] Chase deprecations in Qt (QWidget::background()) 2019-11-29 00:17:02 +01:00
Adriaan de Groot
a70b7ad89e [welcome] Chase deprecations in Qt (screen geometry) 2019-11-29 00:17:02 +01:00
Adriaan de Groot
c2ebfbf6ae [users] Remove unused parameter (reduces warnings) 2019-11-29 00:17:02 +01:00
Adriaan de Groot
3c1b0e6730 [libcalamares] Reduce warnings with Clang 9 (yaml.h) 2019-11-29 00:17:02 +01:00
Adriaan de Groot
ac75c63001 [libcalamares] Reduce warnings with Clang 9 (Boost::Python)
- The boost headers fall foul of tons of Clang warnings, so introduce
   a mechanism like moc-headers for turning off most of those warnings.
2019-11-29 00:17:02 +01:00
bill-auger
344445b437 housekeeping - logging for CreateUser Job 2019-11-28 14:26:06 -05:00
Adriaan de Groot
2e22bdd7dc i18n: update the english translation files for once 2019-11-28 16:51:57 +01:00
Adriaan de Groot
992746d558 Changes: post-release housekeeping 2019-11-28 16:51:07 +01:00
Adriaan de Groot
cb659555a2 CI: don't accidentally push lightweight translation tag 2019-11-28 16:49:08 +01:00
Adriaan de Groot
b4e9ec7eb1 [hostinfo] There is no config file for this module
- the empty config file would fail in tests
 - move the documentation part of it to CMakeLists.txt
2019-11-28 16:10:01 +01:00
Adriaan de Groot
b70e5d7e0f CI: allow cleaning up a string-freeze-check independently 2019-11-28 15:58:02 +01:00
Adriaan de Groot
3bf1fbba65 CI: ignore changes in location (e.g. source-line changes of strings) for string freeze 2019-11-28 15:55:15 +01:00
Calamares CI
aa789fed46 i18n: [python] Automatic merge of Transifex translations 2019-11-28 15:45:33 +01:00
Calamares CI
c13f2f79d1 i18n: [calamares] Automatic merge of Transifex translations 2019-11-28 15:45:32 +01:00
Adriaan de Groot
1de6062233 [license] Add should-be-expanded display option to license entries
- In code, add the necessary bool
 - document meaning in the config file
 - actually expand the full text if the entry is local and set to expanding-
   by-default. This implementation is a bit lazy since it just pretends
   to click on the toggle button.
 - While here, reduce scope for UB by initializing POD members
2019-11-28 13:42:26 +01:00
Adriaan de Groot
c870fca787 [license] Use more meaningful names for arrows
- The arrows Up, Down, Right are used on toolbuttons, but
   in the context of this module, those are directions with
   meaning; give them better names.
 - Because of #1268, the meaning of up- and down- may be swapped;
   I'm not sure of which look makes the most sense. This is prep-
   work for easily swapping the looks by using the meaningful names
   instead.

SEE #1268
2019-11-28 13:23:11 +01:00
Adriaan de Groot
d322d783ea [license] Chase deprecations in Qt 2019-11-28 13:17:15 +01:00
Adriaan de Groot
b69dd3a93c Changes: pre-release housekeeping 2019-11-28 13:12:14 +01:00
Adriaan de Groot
d8020e3574 [license] Tidy up setting-of-entries
- we loop over all the entries anyway, so calculate allLicensesOptional
   along the way (debatable whether std::none_of is clearer)
 - always un-check the accept-box when resetting entries.
2019-11-28 12:03:22 +01:00
Adriaan de Groot
5ed8ec9990 [license] Reduce translation overhead. 2019-11-28 11:28:02 +01:00
Adriaan de Groot
2a0716bf43 [license] Move the 'please review' text to the top. 2019-11-28 11:24:56 +01:00
Adriaan de Groot
3e4fc281ab Merge branch 'issue-1271' 2019-11-27 12:23:39 +01:00
Adriaan de Groot
2a45765b93 [license] Next depends not just on the checked box
- Toggling the checkbox could disable the next button
   because only the checked-state was used, instead of
   the next-is-enabled-if-everything-is-optional member variable.

FIXES #1271
2019-11-27 12:17:33 +01:00
Adriaan de Groot
ec605adf3f [license] Tidy code
- Move retranslation to a separate slot to allow it to be
   formatted nicely.
 - Use calculated m_allLicensesOptional in retranslation.
 - Untangle determining if all licenses are optional; std::none_of
   returns true on an empty list.
2019-11-26 22:37:25 +01:00
Adriaan de Groot
fae1fdae1c CI: allow meaningful error messages
- Move set -e down in the script so that the error-handling
   at the top (which prints meaningful error messages) isn't
   short-circuited by the -e.
2019-11-26 22:29:06 +01:00
Adriaan de Groot
6dfcbd757b [welcome] Remove superfluous call to QColor::value() 2019-11-26 17:34:25 +01:00
Adriaan de Groot
7fd218d7bf [partition] Chase deprecations in Qt 2019-11-26 16:56:45 +01:00
Adriaan de Groot
ad868033f3 [locale] Chase deprecations in Qt 2019-11-26 16:56:12 +01:00
Adriaan de Groot
fc7ea80d99 [calamares] Do not attempt to center Calamares window
- this isn't really a Calamares thing to decide, and anyway centering
   on the desktop is kind of weird in multi-monitor setups and the
   DesktopWidget is deprecated as well.
2019-11-26 16:46:47 +01:00
Adriaan de Groot
94fe4d2fda [libcalamares] Avoid weak vtables in string-pair implementation 2019-11-26 12:30:59 +01:00
Adriaan de Groot
fc7f49b610 [libcalamares] Expand tests for TimeZone translations 2019-11-26 12:28:41 +01:00
Adriaan de Groot
71f3614eb7 [libcalamares] Add TimeZone support to build
- Add to CMakeLists.txt
 - Test basic scenarios
2019-11-26 11:20:33 +01:00
Adriaan de Groot
3af2754022 [libcalamares] Implement translatable-pair-of-char*
- This is base functionality for a translatable model of
   TimeZone names that is scraped from zone.tab
2019-11-26 11:18:35 +01:00
Adriaan de Groot
abd3c4171b [libcalamares] Prevent CI coding-style fixes to generated code 2019-11-26 11:08:21 +01:00
Adriaan de Groot
733fb43b5e [libcalamares] Sort the dummy zone names 2019-11-26 10:45:36 +01:00
Adriaan de Groot
c3fdb38097 [libcalamares] Stub of class for TimeZone model management
- Intent is to move out of locale module
2019-11-25 20:51:45 +01:00
Adriaan de Groot
906aeec5d3 [locale] Replace #define with a static const
- TZ_DATA_FILE is only used in one place
2019-11-25 11:49:41 +01:00
Adriaan de Groot
1df6454cfe [locale] Tidy up types
- use JobList typedef where possible
 - remove unused forward type definitions
2019-11-25 10:52:22 +01:00
Adriaan de Groot
2ad8ff4228 Merge branch 'translation-workflow' 2019-11-24 21:48:43 +01:00
Adriaan de Groot
f51111d0f3 CI: Make string-freeze checking part of release process 2019-11-21 14:29:54 +01:00
Adriaan de Groot
d3cc4ec395 CI: silence git branch during cleanup of txcheck 2019-11-21 14:24:10 +01:00
Adriaan de Groot
a0556d1dd7 CI: enforce 1 week of string freeze 2019-11-21 14:23:00 +01:00
Adriaan de Groot
bf21e8a4f5 CI: clean up after tx checking 2019-11-21 14:07:41 +01:00
Adriaan de Groot
e6a2384294 CI: do all tx checking in worktrees 2019-11-21 14:03:21 +01:00
Adriaan de Groot
b5cca9aabf CI: Add tool to enforce the string freeze
- check for conventional translation tag
 - diff the generated translation files to enforce consistency
2019-11-21 13:53:39 +01:00
Adriaan de Groot
2034dd62a4 [libcalamares]: Timezone information for translation/extraction
SEE #1259
2019-11-19 18:07:13 +01:00
Adriaan de Groot
5fbae8213d CI: fix Qt version-selection for FreeBSD when calling lupdate 2019-11-19 18:07:13 +01:00
Adriaan de Groot
3ee384f36c [libcalamares] Extract zone.tab data for translations 2019-11-19 18:07:13 +01:00
Adriaan de Groot
2fefa53301 Merge pull request #1274 from bill-auger/patch-requirements-fail-bgcolor
replace hard-coded bg color of requirements failure notice with relative tint
2019-11-19 16:47:11 +01:00
Adriaan de Groot
30857b59ef Merge pull request #1273 from bill-auger/patch-packagechooser-typos
[packagechooser] fix typos in packagechooser.conf
2019-11-19 15:00:12 +01:00
Adriaan de Groot
1c853f2348 Merge pull request #1266 from bill-auger/patch-8
housekeeping - calamares style (those lambdas are always a thing)
2019-11-19 14:59:16 +01:00
Adriaan de Groot
13b90dec57 [luksbootkeyfile] Typo
- Spotted by akspatole, no user-visible change

FIXES #1277
2019-11-19 13:41:49 +01:00
Adriaan de Groot
9f90ef6377 CI: when pushing translations, mark it with a git tag 2019-11-18 17:07:08 +01:00
Adriaan de Groot
42425e4030 [grubcfg] False is case-sensitive in Python 2019-11-18 10:48:33 +01:00
bill-auger
cde210e61c formatting in src/modules/packagechooser/packagechooser.conf 2019-11-12 09:20:15 -05:00
bill-auger
2bb338b5f6 fix typos in src/modules/packagechooser/packagechooser.conf 2019-11-12 09:19:56 -05:00
bill-auger
ee85f6bfa7 replace hard-coded bg color of requirements failure notice with relative tint 2019-11-12 09:17:11 -05:00
Calamares CI
17dcc38f3c i18n: [python] Automatic merge of Transifex translations 2019-11-08 13:50:21 +01:00
Calamares CI
810f574cb3 i18n: [calamares] Automatic merge of Transifex translations 2019-11-08 13:50:20 +01:00
Adriaan de Groot
b089e05b60 Changes: document recent merges 2019-11-08 13:48:27 +01:00
Adriaan de Groot
28687d0d1e Merge remote-tracking branch 'origin/issue-1201'
FIXES #1201
2019-11-08 13:34:50 +01:00
Adriaan de Groot
6a142d9edb Merge branch 'more-password-stuff' 2019-11-08 13:34:06 +01:00
Adriaan de Groot
0d7e19d5e9 [users] Do not log the password in plain text 2019-11-08 13:23:24 +01:00
Adriaan de Groot
445d8501a7 [users] Different disambiguation for pwd-empty check
- all the other checks use "PWQ" as a tag, so use that here too
2019-11-08 13:22:37 +01:00
Adriaan de Groot
e11c9a049f [users] Sort the password checks before applying them 2019-11-08 13:21:37 +01:00
Adriaan de Groot
dec0cfb7d3 [users] Give password-checks a weight, to sort them later 2019-11-08 13:16:19 +01:00
Adriaan de Groot
d93e2f0feb Changes: document existence of hostinfo module 2019-11-08 12:49:08 +01:00
Adriaan de Groot
2b8d04ffc1 [hostinfo] Add host RAM to GS 2019-11-08 12:46:24 +01:00
Adriaan de Groot
22a9fb89e8 [hostinfo] Document what this module does 2019-11-08 12:21:25 +01:00
Adriaan de Groot
dac47d2c3a [hostinfo] Use os-release only if non-empty 2019-11-08 12:11:07 +01:00
Adriaan de Groot
6528ba30c9 [hostinfo] Fix compile and CPU detection. 2019-11-08 11:57:31 +01:00
bill-auger
6c6dcfe1cd housekeeping - calamares style 2019-11-08 05:17:40 -05:00
Adriaan de Groot
cec84ee42b [hostinfo] Fix build on FreeBSD (include order)
- while here apply coding style again
2019-11-08 00:13:23 +01:00
Adriaan de Groot
5c7acdeb44 [hostinfo] New module with information about the host, in GS 2019-11-07 16:20:39 +01:00
Adriaan de Groot
67de4af4a4 [grubcfg] Add some test configurations 2019-11-04 16:40:49 +01:00
Adriaan de Groot
f727362a90 [grubcfg] Guard against stupid configurations
- Scenario: *keepDistribution* is true, and the existing file contains
   a GRUB_DISTRIBUTION line **followed** by a commented-out GRUB_DISTRIBUTION
   line.
 - In that case, the commented-out line would change the flag back to
   False, and we'd end up writing a second GRUB_DISTRIBUTION line at the end.

Prevent that: the flag can only go to "True" and then stays there.

Editorial: If your grub configuration would have tripped this up, then
you're doing something wrong. Clean up the configuration file first.
2019-11-04 16:36:57 +01:00
Adriaan de Groot
4a0a8083f3 [grubcfg] If we only see #GRUB_DISTRIBUTION, it's not been set
- If we update the line, then GRUB_DISTRIBUTION has been set
 - If we don't update the line (e.g. because of *keepDistribution*)
   then a comment doesn't count as "have seen that line".

This means that if we get to the end of the file, with only commented-
out GRUB_DISTRIBUTION lines, and *keepDistribution* is set, then we'll
still write a distribution line -- because otherwise it's not set at all.
2019-11-04 16:34:15 +01:00
Adriaan de Groot
c6c861654d [grubcfg] Update GRUB_DISTRIBUTION as needed
- Previous fix would erase the distribution information (using an
   empty string to flag 'preserve existing GRUB_DISTRIBUTION lines'),
   but that is fragile. A distro might set that, and yet **not**
   set a GRUB_DISTRIBUTION line, in which case it would end up with
   a setup without any GRUB_DISTRIBUTION set.
 - When a GRUB_DISTRIBUTION line is found, **then** check if it should
   update the line or not. This way, we have a suitable distribution
   to write if no GRUB_DISTRIBUTION is found at all.
2019-11-04 16:06:59 +01:00
Adriaan de Groot
ac3b50fabb [grubcfg] Only replace a GRUB_DISTRIBUTOR line if wanted 2019-11-04 16:02:36 +01:00
Adriaan de Groot
aae7d7dd0a [grubcfg] Update documentation of config file
- add some more general description
 - document new-to-implement *keepDistributor* flag

SEE #1201
2019-11-04 11:05:18 +01:00
Adriaan de Groot
b3e7c3f294 [users] Run checks more often
- check password warnings when the page is entered
 - re-check (and translate) on language change
2019-11-02 19:26:40 +01:00
Adriaan de Groot
cc66903678 [users] Allow an explicit check for non-emptiness of passwords
- move the explicit checking for non-empty into a specific
   (normal) password check
 - leave only the-two-fields-are-equal outside of the password-
   requirements framework
 - having non-empty is the same as minLength 1, but gives a different
   error message
2019-11-02 19:23:04 +01:00
Adriaan de Groot
ffbc1a3e7d Changes: post-release housekeeping 2019-11-01 17:38:19 +01:00
Calamares CI
a395ed1113 i18n: [python] Automatic merge of Transifex translations 2019-11-01 17:24:10 +01:00
Calamares CI
5a98a13856 i18n: [dummypythonqt] Automatic merge of Transifex translations 2019-11-01 17:24:10 +01:00
Calamares CI
2edb204c9e i18n: [calamares] Automatic merge of Transifex translations 2019-11-01 17:24:10 +01:00
Adriaan de Groot
9497540b64 Changes: pre-release housekeeping 2019-11-01 17:19:23 +01:00
Adriaan de Groot
ef5fffc70e Merge branch 'bill-auger-patch-6'
FIXES #1202
FIXES #1261
2019-11-01 15:08:20 +01:00
Adriaan de Groot
699df6328f Changes: document this branch 2019-11-01 15:07:52 +01:00
Adriaan de Groot
196a358493 [users] Flag password problems even when weak-passwords are ok
- when you allow weak passwords, flag problems as warnings (yellow)
 - when weak passwords aren't allowed, they are fatal errors (red)
2019-11-01 14:48:46 +01:00
Adriaan de Groot
a4e3ea2a86 [users] Refactor retranslation
- move retranslation to a method so that code-formatting doesn't
   get confused by it.
2019-11-01 13:55:32 +01:00
Adriaan de Groot
28c9da414b [users] Apply coding style 2019-11-01 13:55:32 +01:00
Adriaan de Groot
9fa817a244 [users] Refactor password-validation
- add a method that does the work and sets UI strings for a
   generic double-field password entry
 - use that for user and root passwords
2019-11-01 13:55:32 +01:00
Adriaan de Groot
7d25173afb [users] Remove TODO since it doesn't make sense
- the two explicit checks are the ones that handle *two*
   strings as special cases; all the other checks from
   the password-requirements system only handle the one string.
2019-11-01 13:17:31 +01:00
Adriaan de Groot
93eb169ea5 [users] Improve error messages
- distinguish beginning of username from the rest
 - must start with a letter or _
 - tighten message for bad username and bad hostname

FIXES #1261
2019-11-01 13:05:58 +01:00
Adriaan de Groot
8232ca626c [users] Refactor constants 2019-10-29 16:21:26 +01:00
Adriaan de Groot
9cd1ef93bd [users] Apply coding style 2019-10-29 16:20:52 +01:00
Adriaan de Groot
9ee0609b72 [users] Use tooltips
- the explanations under and around the boxes is noisy,
   hard to size correctly (viz. issue #1202)
 - use tooltips in almost-all fields instead
 - add placeholder text to be more suggestive
2019-10-29 14:37:26 +01:00
Adriaan de Groot
b3765bc144 [users] Massage the weak-passwords settings
- since the wording of the checkbox itself (and the functionality)
   is to enforce strong passwords, need to switch out some
   logic and fix the wording of the documentation.
2019-10-22 16:08:21 +02:00
Adriaan de Groot
3e4e492305 [users] Polish the documentation for the various checkboxes 2019-10-22 15:32:42 +02:00
Adriaan de Groot
c030cc41cd [libcalamaresui] Refactor button-creation
- The "convenience" method was no longer convenient, since
   we now place strings on the buttons by default.
 - While here, **name** the buttons so they can be themed.
2019-10-22 15:03:37 +02:00
Adriaan de Groot
ee4cd06c23 Merge branch 'master' into bill-auger-patch-6 2019-10-22 14:27:11 +02:00
Adriaan de Groot
b78eacd7a8 [libcalamaresui] Set button texts always
- if the welcome module wasn't loaded (or loading otherwise failed)
   then no text was set, leading to confusing screens with
   buttons with icons but no label.
2019-10-21 19:47:58 +02:00
Adriaan de Groot
5ac4f3ec38 [libcalamaresui] Fix up module dependency checking
- If a module exists, and has unmet dependencies, then
   that is only a problem if the module itself is *used*.
   Merely existing is ok.

This triggers on FreeBSD, where partition isn't built, but
bootloader depends on partition -- so you can never start
Calamares on FreeBSD, because bootloader depends on something
non-existent.

Relax the check: just warn, and only fail if a non-existent
module is used (all those with unmet dependencies are considered
non-existent).
2019-10-21 19:28:59 +02:00
Adriaan de Groot
a9a12820d8 [libcalamaresui] Log the found-modules
- fix up comment because it described an old member variable name
 - log number of modules found (all the *potential* modules)
2019-10-21 19:16:15 +02:00
Adriaan de Groot
c4b0511f8d [libcalamaresui] Improve debug message for bad dirs
- Calamares scans **all** subdirs of the module-directory
   for a module.desc and complains about those that don't have
   a module.desc.
 - For ./calamares -d runs from the build-directory, this
   leads to a few complaints when some plugins have been
   ignored (and so no module.desc is generated for them).
2019-10-21 18:08:16 +02:00
Adriaan de Groot
ede50756a1 [users] Simplify config-logic for weak-passwords
- Use the convenience methods for config-reading.
 - Always set the value (to the default if nog explicitly
   set in the config-file).
2019-10-21 17:29:35 +02:00
Adriaan de Groot
21bcd560b1 [users] Use API to change weak-checkbox visibility 2019-10-21 17:26:06 +02:00
Adriaan de Groot
eb90757063 [users] Apply coding style (lots of churn) 2019-10-21 17:21:33 +02:00
Adriaan de Groot
799f1131a9 Merge branch 'patch-6' of https://github.com/bill-auger/calamares into bill-auger-patch-6 2019-10-21 17:20:34 +02:00
Adriaan de Groot
300ebaaa03 Changes: post-release housekeeping 2019-10-13 21:12:24 +02:00
Adriaan de Groot
3a7d0d4ee7 Changes: pre-release housekeeping 2019-10-11 17:53:24 +02:00
Adriaan de Groot
9c7684de22 Merge branch 'improve-excludes'
FIXES #1229
2019-10-11 17:46:37 +02:00
Adriaan de Groot
4370669fc3 [unpackfs] Put exclusion settings into the rsync command line 2019-10-11 17:46:01 +02:00
Adriaan de Groot
9d47716e5d [unpackfs] Add settings per-item for exclude and excludeFile
- support excluding specific files / lists when rsyncing, in case
   the squashfs has more in it than you really want to copy over.
2019-10-11 17:19:56 +02:00
Adriaan de Groot
4552631086 [unpackfs] Prep for more information in file_copy
- Give the whole entry to file_copy, not just the
   destination. This will allow file_copy to work
   with local excludes.
 - Pluck entry.destination out immediately, to keep
   code changes minimal.
 - Document the parameters.
2019-10-11 16:56:04 +02:00
Adriaan de Groot
311c65737f [unpackfs] Remove unused parameter
- list_excludes() turns the extra mounts from global storage
   into --exclude parameters for rsync; it doesn't do anything
   with the destination parameter.
 - while here rename to something more descriptive
2019-10-11 16:47:54 +02:00
Adriaan de Groot
fe1ddb8ead [unpackfs] Expand on the documentation 2019-10-11 16:32:39 +02:00
Adriaan de Groot
371ae598a0 Changes: document unpackfs 2019-10-11 16:18:46 +02:00
Adriaan de Groot
b333d4fd0e Merge branch 'unpackfs-support-rename'
- support a "file" source
 - document how to use it to copy a single file with-rename to target
2019-10-11 15:49:31 +02:00
Adriaan de Groot
57c0b2088c [unpackfs] Allow naming a non-directory for single files
- this enables renaming files on copy
2019-10-11 15:48:17 +02:00
Adriaan de Groot
4acf63fd9a [unpackfs] Document fields of the UnpackEntry
- Document fields
 - While here, remove code for special-casing single-file copies.
   Those already work, based on rsync.
2019-10-08 17:31:51 +02:00
Adriaan de Groot
05c0398126 [unpackfs] Support multiple items better
- it's ok if item one creates directories where item two will write,
   so don't check for existence of all directories on start-up.

Reported by ArcoLinux.
2019-10-08 16:19:39 +02:00
Adriaan de Groot
d58fdaa2cd [unpackfs] Stub of special handling for a single file 2019-10-08 15:00:25 +02:00
Calamares CI
65b81f84a5 i18n: [python] Automatic merge of Transifex translations 2019-10-07 21:52:25 +02:00
Calamares CI
10747178e8 i18n: [dummypythonqt] Automatic merge of Transifex translations 2019-10-07 21:52:24 +02:00
Calamares CI
9e54b95da2 i18n: [desktop] Automatic merge of Transifex translations 2019-10-07 21:52:24 +02:00
Calamares CI
6a28277aa2 i18n: [calamares] Automatic merge of Transifex translations 2019-10-07 21:52:24 +02:00
Adriaan de Groot
39299f9650 Changes: document new module features 2019-10-07 21:50:36 +02:00
Adriaan de Groot
d9e8fbf477 Merge branch 'replace-machineid'
FIXES: #1252

This adds to the *machineid* module (which generates random UUIDs
for DBus and systemd) another key to configure generation of
a urandom pool in the target from the entropy in the host system.
2019-10-07 21:46:21 +02:00
Adriaan de Groot
a2867d71af Merge branch 'issue-1253'
FIXES #1253
2019-10-07 17:05:24 +02:00
Adriaan de Groot
b00335f5b3 [displaymanager] Treat openSUSE sysconfig like anything else 2019-10-07 17:04:10 +02:00
Adriaan de Groot
d592a5bb94 [displaymanager] Fix sysconfig-only
- Improve documentation of the settings
 - If sysconfigSetup is true, **only** setup sysconfig and ignore
   the rest. This seems to be consistent with existing openSUSE-
   derivative distro's, which set displaymanagers to something
   nonsensical.
2019-10-07 15:54:55 +02:00
Adriaan de Groot
642dbf449c [machineid] Drop trailing \n, toInt() doesn't like it 2019-10-04 18:05:29 +02:00
Adriaan de Groot
9e359c98a9 [machineid] Refactor workers, demand absolute paths 2019-10-04 17:47:24 +02:00
Adriaan de Groot
12107b3113 [machineid] Turn back the change in tests
- the *mount* module inserts a rootMountPoint without trailing /
   into global storage, so we can't assume that here. On the other
   hand, the paths passed in to the Worker functions are absolute
   paths -- adjust the tests to follow that.
2019-10-04 17:47:24 +02:00
Adriaan de Groot
dd47201f27 [machineid] Fix tests by appending a /
- The code in Workers.cpp assumes that rootMountPoint ends in a /
   so that it can have filenames appended easily; make the tests
   fit that assumption, but still need to check that it is so in
   production.
2019-10-04 15:05:11 +02:00
Adriaan de Groot
c67ac999de [machineid] Implement DBUS and systemd machine-ids
- refactor running the command into a helper function,
   to deal with the regular if-command-failed-then-complain pattern.
 - mark parameters as unused.
 - move distinction about kind of DBus file up into the MachineIdJob
   and remove the enum that marked it.
2019-10-04 15:00:58 +02:00
Adriaan de Groot
145855a56f [machineid] Implement systemd machine-id creation 2019-10-04 13:48:24 +02:00
Adriaan de Groot
2b9e1d6231 [machineid] Add tests
- Testing some of the functionality that's been added just now:
   - copyfile fails, buggy implementation
   - poolsize fails, buggy implementation
   - removefile not tested
2019-10-03 13:32:48 +02:00
Adriaan de Groot
10e5995144 [machineid] Split helper functions into own file 2019-10-03 12:32:47 +02:00
Adriaan de Groot
afe7dfbcf2 [machineid] Fix include guard comment 2019-10-02 12:37:31 +02:00
Adriaan de Groot
8352a793e1 [machineid] Implement entropy-file creation
- read-urandom or copy-existing-file are implemented
 - fairly chatty on failure
 - needs tests (probably the implementation should be moved to
   a separate file and unit-tested)
2019-10-01 17:00:50 +02:00
Adriaan de Groot
50bb8cde57 [machineid] Stubs for entropy, systemd, dbus randomness 2019-10-01 16:26:41 +02:00
Adriaan de Groot
c8229733b0 [libcalamares] Document the pseudo-constructors for JobResult 2019-10-01 16:05:03 +02:00
Adriaan de Groot
9cbfd200a1 [machineid] Keep the paths unsullied
- keep the rootMountPoint and the path-with-random-data separate
   instead of concatenating them at the beginning. Then we can
   use the "clean" names also within the host system.
2019-10-01 16:01:10 +02:00
Adriaan de Groot
3a8d543c72 [libcalamares] Document operator bool() of JobResult
- this could be named isValid() instead, but basically the idea
   is that this code makes sense:

      JobResult r = do_thing();
      if ( !r ) { /* Error happened! */ return r; }
      /* Carry on .. */
2019-10-01 15:58:02 +02:00
Adriaan de Groot
8c3146a1cd [machineid] Start implementing module logic
- remove existing files for each kind of random-generation
   that is enabled. There's a helper function for the case that
   Cala is no longer setuid and needs help to remove those files
   from the target (e.g. a setuid helper).
2019-10-01 15:46:54 +02:00
Adriaan de Groot
be27b44818 [machineid] Read configuration map into instance vars 2019-10-01 14:36:21 +02:00
Adriaan de Groot
3ae5a3db76 [machineid] Improve documentation on this module
- document module's purpose
 - document existing configurations
 - deprecate "symlink" and introduce more-accurate "dbus-symlink"
 - add new configurations for upcoming entropy file
2019-10-01 14:13:01 +02:00
Adriaan de Groot
4c0719d95d [machineid] Start porting to C++ 2019-10-01 13:44:06 +02:00
Adriaan de Groot
160ecd5ddc Changes: post-release housekeeping 2019-10-01 11:14:21 +02:00
Adriaan de Groot
eb84c0488d CI: Polish release script when -B is used to skip build 2019-10-01 11:03:12 +02:00
Adriaan de Groot
4970c328fa [libcalamares] Fix stringification of broken instance keys 2019-10-01 10:50:12 +02:00
Adriaan de Groot
70fc480c56 [libcalamares] If test is going to fail, be more verbose on failure 2019-10-01 10:50:12 +02:00
Adriaan de Groot
9ad5ba36b0 Changes: pre-release housekeeping 2019-10-01 10:50:12 +02:00
Adriaan de Groot
d68ff5f694 CI: add option handling (alongside env) to influence build 2019-10-01 10:39:24 +02:00
Adriaan de Groot
8dc91b9838 Merge branch 'issue-1188'
FIXES #1181
FIXES #1188

You can now copy single files from the source image to the target.
You can now copy directories from the source image to the target.
2019-09-30 17:35:53 +02:00
Adriaan de Groot
95f725831f [unpackfs] Shuffle the documentation
- move all the examples to an EXAMPLES section
 - leave one single-file example enabled in the configuration
2019-09-30 17:35:31 +02:00
Adriaan de Groot
6fb2563c75 [unpackfs] Copy files when sourcefs = "file"
- Just use the existing rsync code, which can do both
   files and directory trees.
 - The existing code assumed we were always copying directories.
   Now double-check beforehand.
2019-09-30 17:14:23 +02:00
Adriaan de Groot
27cdaba8b2 [unpackfs] Special-case file sources 2019-09-30 17:14:23 +02:00
Adriaan de Groot
7856c1a6a8 [unpackfs] Do more checks before doing any work 2019-09-30 17:14:23 +02:00
Adriaan de Groot
784bc5b86e [unpackfs] Expand documentation
- comment out the squashfs example, since it's not readily
   available even on developer systems
 - add entries for the upcoming "file" type.
2019-09-30 17:14:23 +02:00
Adriaan de Groot
03cdfc3af6 Merge branch 'issue-1248'
FIXES #1248

Now with documentation and chasing TryExec if a .desktop file is
given alongside a broken executable value (the value is still
mandatory, but `executable: /bin/nonexistent/no-really/whut`
is now a suitable setting).
2019-09-30 15:41:09 +02:00
Adriaan de Groot
7ffe25fca0 [displaymanager] Document that TryExec can supplant executable 2019-09-30 15:40:44 +02:00
Adriaan de Groot
1beadee2a7 [displaymanager] Believe the .desktop file
- if a default DE is configured but the executable doesn't exist,
   believe the .desktop file. Then use that, and warn if the
   whole thing can not be found.
2019-09-30 15:38:25 +02:00
Adriaan de Groot
290a0698d8 [displaymanager] Add DE.find() which believes .desktop files
- for a DE entry which has a bad executable setting,
   update the entry from the .desktop file using TryExec.
   This assumes that the TryExec command is actually something
   you might want to run.
2019-09-30 15:38:25 +02:00
Adriaan de Groot
fe33952733 [displaymanager] Document the internal functions for DE finding
- rename find_* to _search_* to make clear they're internal.
2019-09-30 15:38:25 +02:00
Adriaan de Groot
a3666cabe0 [displaymanager] Fix naming
- Having a global and a class-local function with the same name
   that do very different things is confusing.
2019-09-30 12:41:05 +02:00
Adriaan de Groot
fb07757aab [displaymanager] Document *defaultDesktopEnvironment*
- while the keys are mandatory, their meaning is entirely optional.
2019-09-30 12:33:42 +02:00
Adriaan de Groot
0510820594 [displaymanager] Document what the list of DE's is for 2019-09-30 12:22:14 +02:00
Calamares CI
7a8c44a4a3 i18n: [python] Automatic merge of Transifex translations 2019-09-30 10:34:12 +02:00
Calamares CI
ecb1128b61 i18n: [dummypythonqt] Automatic merge of Transifex translations 2019-09-30 10:34:12 +02:00
Calamares CI
aecf776bf7 i18n: [calamares] Automatic merge of Transifex translations 2019-09-30 10:34:12 +02:00
Adriaan de Groot
479ffb3530 Changes: credits, mention bug numbers 2019-09-30 10:32:28 +02:00
Adriaan de Groot
5d0a5c035d Merge pull request #1243 from stikonas/master
QLatin1Literal->QLatin1String.
2019-09-30 10:30:02 +02:00
Adriaan de Groot
d2899d4bee Merge branch 'issue-1247'
Look at the TryExec line, if it is there in the .desktop file

FIXES #1247
2019-09-25 13:06:39 +02:00
Adriaan de Groot
92ab0c1add [displaymanager] Unify looking for executables
- use executable, and the result of looking up TryExec
 - reduce chattiness again
2019-09-25 13:05:35 +02:00
Adriaan de Groot
0b81d2562b [displaymanager] Be more chatty 2019-09-25 12:52:07 +02:00
Adriaan de Groot
f9e36b9c73 [displaymanager] Missing self 2019-09-25 12:41:58 +02:00
Adriaan de Groot
01cd95512f [displaymanager] Check the TryExec key from the .desktop file 2019-09-25 12:41:37 +02:00
Adriaan de Groot
38369634df [displaymanager] Find the .desktop file explicitly 2019-09-25 12:26:26 +02:00
Adriaan de Groot
409c90a5bf i18n: welcome Malayalam translation 2019-09-23 12:56:51 +02:00
Calamares CI
3caab1cf96 i18n: [python] Automatic merge of Transifex translations 2019-09-23 12:43:05 +02:00
Calamares CI
d77141a147 i18n: [calamares] Automatic merge of Transifex translations 2019-09-23 12:43:04 +02:00
Adriaan de Groot
bb9cca643f [libcalamares] Avoid warnings from MOC-generated code
- Moc generates Q_UNUSED(_a); which in turn (with clang) issues
   a superfluous-semicolon warning. Existing code with automoc
   uses utils/moc-warnings.h to turn off warnings that are issued
   on moc code. Include it explicitly here because automoc isn't
   applied.
2019-09-23 11:50:06 +02:00
Adriaan de Groot
3c387a11c9 [libcalamares] class/struct mismatch
- Manager::Private is a class, not just a struct. Needed for
   hypothetical MSVC compatibility.
2019-09-23 11:26:53 +02:00
Adriaan de Groot
4799e821d3 [locale] Reduce warnings, missing override 2019-09-23 11:25:18 +02:00
Adriaan de Groot
57bb9c16f4 [displaymanager] Also look for Wayland sessions
- Sessions can be X11-sessions (living in xsessions) or Wayland-
   (living in wayland-sessions). Look in both places.
 - Refactor code a little to make it nicer to read.
2019-09-23 10:55:59 +02:00
Adriaan de Groot
f8ed7009f1 Changes: mention module updates 2019-09-23 10:51:19 +02:00
Andrius Štikonas
490c14d93d QLatin1Literal->QLatin1String. 2019-09-21 20:44:33 +01:00
Adriaan de Groot
25af4b9234 Merge pull request #1246 from apachelogger/master
[displaymanager] map plasma 5.17+ desktop environment
2019-09-20 14:48:19 +02:00
Harald Sitter
0e054f1246 [displaymanager] map plasma 5.17+ desktop environment
exec changed compared to earlier 5.x
2019-09-18 12:38:08 +02:00
Calamares CI
4ef10ca326 i18n: [python] Automatic merge of Transifex translations 2019-09-15 21:51:51 +02:00
Calamares CI
3bef83b152 i18n: [dummypythonqt] Automatic merge of Transifex translations 2019-09-15 21:51:51 +02:00
Calamares CI
c448117073 i18n: [calamares] Automatic merge of Transifex translations 2019-09-15 21:51:51 +02:00
Adriaan de Groot
8652a220e3 Merge branch 'fixup-module-weights' 2019-09-15 20:39:08 +02:00
Adriaan de Groot
7a5ac63f92 [libcalamares] Chase change of API
- Replace QString( x ) by x.toString() where x is an InstanceKey
2019-09-15 20:38:16 +02:00
Adriaan de Groot
d6ed046495 [libcalamaresui] Replace a superfluous lambda
- The whole method body can be a lot on its own, and since
   loadModules() does nothing but single-shot the lambda,
   call it from outside instead.
2019-09-15 20:38:16 +02:00
Adriaan de Groot
ce6f6592d4 [libcalamares] Drop parts of InstanceKey API
- Drop the 1-argument QString constructor, it is suprising
 - Drop the conversion to QString
 - Add a toString() instead
 - Drop tests for the removed API
 - While here, apply code formatting to the tests

This is done to force consumers to update to strongly-typed
InstanceKeys.
2019-09-15 20:38:16 +02:00
Adriaan de Groot
7dcc6e8e07 [libcalamares] Fix bug in InstanceKey::QString 2019-09-15 20:38:16 +02:00
Adriaan de Groot
57e4b66af2 [libcalamares] Test QString() operator
- An invalid InstanceKey should give an empty string
 - Test remaining QString() cases
 - Edge cases for 2-string constructor
2019-09-15 20:38:16 +02:00
Adriaan de Groot
ba7e96c5e1 [libcalamares] Add test for InstanceKey
- cover all the constructors
 - Start with some tests that fail, showing bugs in the implementation
 - Fix bug that "derp@derp" was creating a valid instance-key with
   a bad module and id (need to use ::fromString() to get that
   functionality).
 - Extend tests with more bad cases.
 - Refactor tests to simplify "this is bad" assertions.
2019-09-15 20:38:16 +02:00
Adriaan de Groot
2f99004041 [libcalamares] Move the module instance-key
- Split out of the UI library and into (header-only) libcalamares.
2019-09-15 20:38:16 +02:00
Adriaan de Groot
666462651b [libcalamares] Namespace consistently
- Things in libcalamares/ subdirectories are namespaced
   according to that subdirectory (sometimes in namespace
   Calamares, sometimes CalamaresUtils). Do that in modulesystem/ too.
2019-09-15 20:38:16 +02:00
Adriaan de Groot
78de6776af [libcalamaresui] Swap out use of QString for ModuleInstanceKey
- The strings `module@id` are used internally, make that type explicit.
2019-09-15 20:38:19 +02:00
Adriaan de Groot
b8dd6e9ae7 [libcalamaresui] Introduce a module-instance-key class
- This replaces rather ad-hoc use of a QString as key.
2019-09-15 20:38:16 +02:00
Adriaan de Groot
e1aced56fd Changes: fix typo's 2019-09-14 08:01:44 -04:00
Adriaan de Groot
0c14bbc50b Merge branch 'locale-polish' 2019-09-14 07:56:52 -04:00
Adriaan de Groot
57a942d155 [libcalamares] Make a NAM per thread
- To avoid warnings about creating requests and replies, parented
   by the NAM but from another thread, make a NAM per thread.
2019-09-14 07:21:24 -04:00
Adriaan de Groot
ca351ff7b6 [libcalamares] Apply (some) options to request earlier 2019-09-10 14:26:46 +02:00
Adriaan de Groot
11d3f10e26 [locale] Dispose of waiting widget
- Do the async GeoIP checking in the async requirements-checking phase
 - Do not return any requirements results -- we just need the async bit
 - Drop the waiting widget, since it's not needed (done by the
   requirements phase)
2019-09-10 14:18:47 +02:00
Adriaan de Groot
41ece863de [locale] Create widgets when needed instead of at startup
- this blocks forever, since now the GeoIP lookup isn't done at all.
2019-09-10 06:19:20 -04:00
Adriaan de Groot
0a1dc77f9b [locale] Hang on to GeoIP::Handler just once
- replace configuration settings by putting them in an object
 - use unique_ptr to allow us to create one optionally.
2019-09-10 11:26:47 +02:00
Adriaan de Groot
d70d418d92 [locale] Refactor setting of LC entries 2019-09-07 17:02:59 +02:00
Adriaan de Groot
5cac3ac6ad [locale] Apply coding style 2019-09-07 16:58:37 +02:00
Adriaan de Groot
0ee8427d5a [locale] Remove old-style GeoIP configuration 2019-09-07 16:05:09 +02:00
Adriaan de Groot
5a24e45e3b [locale] Factor out a simple lambda
- If this was handed to an algorithm it would make more sense
   as a lambda
2019-09-07 15:58:56 +02:00
Adriaan de Groot
3093f635e2 [locale] Apply coding style 2019-09-07 15:48:22 +02:00
Adriaan de Groot
21dde80a65 [locale] Refactor button handling to plain methods 2019-09-07 15:47:12 +02:00
Adriaan de Groot
91f0509272 [locale] Refactor lambdas to plain methods
- Lengthy lambda's doing UI stuff -- that doesn't change --
   are easier to read as plain methods.
2019-09-07 15:18:58 +02:00
Adriaan de Groot
782b469974 [locale] Move all the translation work to a single slot 2019-09-07 12:38:49 +02:00
Adriaan de Groot
a57a030ee2 [packagechooser] Massage the list view to be narrower 2019-09-05 06:41:06 -04:00
Adriaan de Groot
4259bc9d5d [packagechooser] Also use screenshot from no-package-selected 2019-09-05 03:23:50 -04:00
Adriaan de Groot
52e72f4fb1 [welcome] Apply coding style 2019-09-05 03:23:28 -04:00
Adriaan de Groot
88fc6685ba [libcalamares] Apply coding style to geoip/ 2019-09-05 03:23:28 -04:00
Adriaan de Groot
01c4383178 [packagechooser] Simplify parameters
- Just pass the no-package-selected item around.
2019-09-04 19:40:35 +02:00
Adriaan de Groot
996714dd06 [packagechooser] Use all translations for no-package-selected
- If there is an item with id "" (empty), it is used as the
   "no-package-selected" placeholder text.
 - Existing code iterated over the abstract model and used the
   name and description at the time the model was set -- but
   by getting the name and description from the model, only
   a single string was obtained instead of the full range
   of translations.
 - Therefore, when arriving on the page, the "no-package-selected"
   information was displayed from the translation that was active
   when the model was set.

Instead, extend the non-abstract model so we can find the no-package-
selected item and pass that explicitly to the page.

FIXES #1241
2019-09-04 19:33:24 +02:00
Adriaan de Groot
c2f1070f2a Merge branch 'translate-packagechooser'
FIXES #1228

The label on the left can now be specified (and translated)
in the config file. The strings corresponding to "nothing
selected" from PackageChooserPage.cpp L33-34 can already
be specified in the *items* section.
2019-09-02 15:30:41 +02:00
Adriaan de Groot
019d1c36c6 [packagechooser] Load translated strings from config
- Apply the *labels* from the configuration file to the
   visible strings (only the ViewStep name).
2019-09-02 15:29:00 +02:00
Adriaan de Groot
0eae72e10f [packagechooser] Introduce translatable labels
- Since the package chooser might be used more than once, or for
   more specific items than "Packages", introduce a way to provide
   specific strings for display.
 - The only string needed is the ViewStep name, since the item with
   id "" can be used for the no-selection item.
2019-09-02 15:28:15 +02:00
Adriaan de Groot
65d23cd94c Merge branch 'more-networking' 2019-09-02 14:11:53 +02:00
Adriaan de Groot
9850e4b35b [netinstall] Use the network-manager
- use asynchronousGet and keep the reply
 - drop unused includes
 - apply current coding style
2019-09-02 14:10:36 +02:00
Adriaan de Groot
badbdf59ee [libcalamares] Build synchronous get w/ async-get 2019-09-02 13:43:10 +02:00
Adriaan de Groot
f8356a6dcc [libcalamares] Add an async get method
- Mostly a "cheap" wrapper for a half-dozen boilerplate lines
   of Qt NAM code.
2019-09-02 12:21:33 +02:00
Adriaan de Groot
543e2d34fc [libcalamares] [locale] Remove unused includes 2019-09-02 12:02:43 +02:00
Calamares CI
3eb5c00e13 i18n: [python] Automatic merge of Transifex translations 2019-09-02 10:52:45 +02:00
Calamares CI
617a62c18a i18n: [calamares] Automatic merge of Transifex translations 2019-09-02 10:52:44 +02:00
Adriaan de Groot
c7cbba3951 [welcome] Fix typo in tooltip 2019-08-30 22:54:28 +02:00
bill-auger
1513934a57 add checkbox to disable password validations 2019-08-30 08:13:33 -04:00
Adriaan de Groot
c9ab0524e2 Changes: post-release housekeeping 2019-08-30 13:38:00 +02:00
Calamares CI
36d64b0944 i18n: [python] Automatic merge of Transifex translations 2019-08-30 13:17:14 +02:00
Calamares CI
64a5a30199 i18n: [calamares] Automatic merge of Transifex translations 2019-08-30 13:17:14 +02:00
Adriaan de Groot
f156a683a8 Changes: pre-release housekeeping 2019-08-30 06:41:48 -04:00
Adriaan de Groot
66ee6ac673 [libcalamares] Fix tests for umask != 022
- My usual test environment has umask set to 022, but on one dev
   box it is 002, leading to test failures (which show the test
   was bad, not that the umask-setting code is bad)
2019-08-30 06:35:53 -04:00
Adriaan de Groot
9053b9cecf [libcalamares] Fix Qt 5.9 compatibility
- not really sure why I went for the Qt 5.10 STL-style iterators

FIXES #1236
2019-08-30 06:20:45 -04:00
Adriaan de Groot
61482b38cc Changes: give credit for this cycle 2019-08-29 16:28:00 +02:00
Adriaan de Groot
b685583060 Merge pull request #1226 from a-wai/fix-unpackfs-for-rootfs
[unpackfs] Enable to use "/" as a source
2019-08-29 10:25:32 -04:00
Adriaan de Groot
1d9177c5a3 Merge pull request #1230 from bill-auger/patch-1
add esperanto branding translations, fix mis-configured ones
2019-08-29 09:06:05 -04:00
Adriaan de Groot
0aabc89449 [partition] [welcome] Simplify retranslation 2019-08-29 15:02:12 +02:00
Adriaan de Groot
1cde8c20df [libcalamaresui] Simplify retranslation
- Use any object method to connect() to
2019-08-29 15:01:41 +02:00
Adriaan de Groot
f1971eed86 [libcalamares] Support calling a slot on retranslation
- sometimes a slot is easier than a lambda. Introduce
   a macro CALAMARES_RETRANSLATE_SLOT that calls a given
   slot in an object on language change.
 - extend the retranslator with support for calling slots:
   - use Qt's signal/slot mechanism alongside the private
     list of functions to call
   - provide convenience for obtaining the retranslator of
     an object.
2019-08-29 14:53:03 +02:00
Adriaan de Groot
e3f933259b CMake: missing return statement should be an error 2019-08-29 14:46:16 +02:00
Adriaan de Groot
535bf01475 [welcome] Refactor lambdas to full slots
- This helps give meaningful names to code chunks
 - Gives clang-format something to work with
 - Reduces indentation depth

I think this is a bit of a code-style opinion issue: big complicated
lambdas doing UI things just don't seem like a good idea.
2019-08-29 11:06:55 +02:00
Adriaan de Groot
fc5aa54cb2 [welcome] Fix code formatting
- the RETRANSLATE macro is a real challenge for astyle and clang-format
2019-08-29 11:01:02 +02:00
Adriaan de Groot
07bd22ba95 Merge pull request #1233 from bill-auger/patch-4
eliminate magic number in src/modules/welcome/WelcomePage.cpp
2019-08-29 04:46:18 -04:00
Adriaan de Groot
9ca864567a Merge pull request #1231 from bill-auger/patch-5
cross-reference/clarify geoip documentation
2019-08-29 04:36:13 -04:00
Adriaan de Groot
3f90921155 Merge pull request #1232 from bill-auger/patch-3
update doc comment in src/modules/initcpio/initcpio.conf
2019-08-29 04:34:55 -04:00
Adriaan de Groot
06e19a3e11 Merge pull request #1234 from bill-auger/patch-2
fix typo in comment src/libcalamaresui/ViewManager.cpp
2019-08-29 04:34:04 -04:00
bill-auger
5642576cf3 cross-reference/clarify geoip documentation 2019-08-28 13:21:42 -04:00
bill-auger
bb678e535b add esperanto branding translations, fix mis-configured ones 2019-08-28 13:12:25 -04:00
bill-auger
4c3c6f3f91 eliminate magic number in src/modules/welcome/WelcomePage.cpp 2019-08-28 13:02:42 -04:00
bill-auger
13a58a4ab2 update doc comment in src/modules/initcpio/initcpio.conf 2019-08-28 13:02:36 -04:00
bill-auger
e459b82cfe fix typo in src/libcalamaresui/ViewManager.cpp 2019-08-28 13:02:27 -04:00
Adriaan de Groot
559a65d169 Merge branch 'issue-1213'
FIXES #1213

Better slideshow loading, both V1 and V2. Keyboard shortcuts only while
the slideshow is visible.
2019-08-27 15:59:00 +02:00
Adriaan de Groot
8ab0fb4e5f [libcalamaresui] Apply coding style (missed earlier) 2019-08-27 15:58:09 +02:00
Adriaan de Groot
03ac0d2cf0 [qml] Document the new property and how it updates 2019-08-27 15:55:18 +02:00
Adriaan de Groot
be5388abcd [libcalamaresui] activate -> change state
- since we also need to *disable* the shortcuts, and should tell a
   V1 slideshow that it no longer is running,
 - use existing function to set the property to true / false depending.
 - instead of changeState( true ) or changeStage( false ), use
   meaningful enum names so that the code at the call site
   becomes readable; make the boolean part internal to the
   state-changing method.
2019-08-27 15:40:13 +02:00
Adriaan de Groot
1e3e53d30a [libcalamaresui] Set activatedInCalamares special property
- when the QML is activated, if the slideshow has this property,
   set it to true. This enables the keyboard shortcuts.
2019-08-27 15:12:47 +02:00
Adriaan de Groot
7df6ed31e9 [libcalamaresui] Refactor QML slideshow activation
- one function for activation, since we activate from different
   places and each loader-API may need multiple steps for activation.
2019-08-27 13:36:28 +02:00
Adriaan de Groot
0a9d0ddf68 [qml] In the default (sample) slideshow, activate key shortcuts
- with V2 loading, the key shortcuts should be enabled when the
   slideshow itself is activated, not when it is loaded.
2019-08-27 13:36:28 +02:00
Adriaan de Groot
34cb777b0a [qml] Disable all the key shortcuts via root.activatedInCalamares 2019-08-27 13:36:28 +02:00
Adriaan de Groot
ac8952f223 [libcalamaresui] Improve QML API v2 debugging
- log what is being loaded
 - distinguish "component complete" from actuial loading
2019-08-27 13:36:28 +02:00
Adriaan de Groot
e0bb53aff4 [dummycpp] Replace QProcess::execute()
- hangs unpredictably during testing
 - replace with the Calamares process-invocation runCommand(), which is also
   synchronous but doesn't hang (or, hasn't, in testing so far)
2019-08-27 13:34:26 +02:00
Adriaan de Groot
c28c97d3aa Merge branch 'issue-1215'
FIXES #1215
FIXES #1216
2019-08-26 21:42:40 +02:00
Adriaan de Groot
eb21c90861 [libcalamares] Avoid implicit 0-to-flags conversion
- clang complains about using 0 as a Flags value, so make the
   default (empty) initialization explicit.
2019-08-26 21:42:27 +02:00
Adriaan de Groot
d8a587e16e [packagechooser] Scale screenshot
- if the screenshot is too large, scale it down
 - (doesn't react to window resizes though)
2019-08-26 21:40:16 +02:00
Adriaan de Groot
6035a74a93 [packagechooser] Align the screenshot
- hcenter + vcenter the screenshot
 - make it expand as necessary
 - fill in some sample text
2019-08-26 20:48:13 +02:00
Kevin Kofler
9dbd3a765b [netinstall] Fix typo in netinstall.conf comment
s/inmportant/important/
2019-08-26 19:02:15 +02:00
Adriaan de Groot
5868f102f2 [packagechooser] Less-bad "no selection" image
- It's only "less bad", not actually a good image, composed from
   Breeze "empty" and "generic packages" icon.
2019-08-26 16:49:58 +02:00
Adriaan de Groot
d3660436fe Merge branch 'issue-1227'
FIXES #1227

(Well, "fixes" .. documents the situation)
2019-08-26 16:43:10 +02:00
Adriaan de Groot
d063d60e37 [packages] Explain pre-script isn't actually a shell script 2019-08-26 16:42:05 +02:00
Adriaan de Groot
56792fdcb5 [netinstall] Polish the README
- describe the format better
 - more consistent typography
 - refer to `packages.conf` for details on shell commands
2019-08-26 16:26:06 +02:00
Adriaan de Groot
ee29c45433 [netinstall] Point documentation towards netinstall README.md 2019-08-26 16:01:14 +02:00
Adriaan de Groot
6fb909a799 Merge branch 'networking-service' 2019-08-26 15:49:09 +02:00
Adriaan de Groot
f7215393d1 [tracking] Use the network service
- drop own NAM handling
 - use timeout mechanism
 - report timeout as fatal error (like it already did), other
   errors are ignored.
2019-08-26 15:47:17 +02:00
Adriaan de Groot
a1b0049bbf [libcalamares] Use more readable names 2019-08-26 15:41:30 +02:00
Adriaan de Groot
e2c6591a77 [libcalamares] Refactor request internals
- distinguish timeouts from other failures
 - git synchronousPing() a more detailed result, which is
   still bool-compatible.
2019-08-26 15:24:58 +02:00
Adriaan de Groot
f0be7fd4aa [libcalamares] Make failures in the internal methods obvious
- internally, timeout and error will return nullptr
2019-08-26 14:43:41 +02:00
Adriaan de Groot
87ea14f68a [libcalamares] Drop INTERFACES again
- The compile failure came from bad #include paths, so restoring
   this interface declaration wasn't a fix.
 - Reported to cause runtime failures on both KaOS and Manjaro.
2019-08-26 10:15:22 +02:00
Adriaan de Groot
ededebbc6c [libcalamares] Return reply early if the request is bad 2019-08-24 15:23:07 +02:00
Arnaud Ferraris
0f6b2dbe2d [unpackfs] Enable to use "/" as a source
If we don't have/need an image for the rootfs, we might want to
configure the `/` directory as a source for unpackfs. Unfortunately,
this raises an error:
  - unpackfs first creates a temporary directory
  - it then creates a subdirectory for each source, using the source
path's basename
  - when the source is `/`, the basename is an empty string, therefore
the module tries to create an already existing directory

In order to prevent this error, we use the `os.makedirs` function with
parameter `exist_ok=True` instead of `os.mkdir`.

Signed-off-by: Arnaud Ferraris <arnaud.ferraris@collabora.com>
2019-08-23 17:26:45 +02:00
Adriaan de Groot
d422c782ba [libcalamares] Correct include path
- no need for the subdirectories, and this confuses MOC

Reported-by: Jonathan Riddell
Fix-by: Harald Sitter
2019-08-23 17:15:51 +02:00
Adriaan de Groot
85f0d38698 [libcalamares] Refactor synchronous get
- Add timeout support
 - Refactor into a static helper method
2019-08-23 14:59:35 +02:00
Adriaan de Groot
1f2b3b734d [libcalamares] Extend synchronous API with options 2019-08-23 12:18:59 +02:00
Adriaan de Groot
af1aa701bc [libcalamares] Shuffle namespace lines around
- put all the definitions inside namespace {} to avoid
   needlessly long source lines.
2019-08-23 12:09:30 +02:00
Adriaan de Groot
da29c0b0f1 Merge branch 'display-manager'
FIXES #1224

Reported by: Алексей Шилин (Debian, downstream)
2019-08-23 03:55:11 -04:00
Adriaan de Groot
383bd97a9c [displaymanager] Handle variations in config file
- GDM3 uses a different config file than previous GDM
2019-08-23 03:40:10 -04:00
Adriaan de Groot
1c61181624 [displaymanager] Handle variations in GDM executable name
- Debian https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=934504
 - Instead of hard-coding one or the other, search for gdm and gdm3
2019-08-23 03:25:41 -04:00
Adriaan de Groot
333a1f6e84 [displaymanager] Non-existent DMs don't exist
- Returning True for a non-existent DM is weird
 - Avoid suggestive parenthesis in return type
2019-08-23 03:14:41 -04:00
Adriaan de Groot
b66f3434af [displaymanager] Consistent Copyright notices 2019-08-23 03:09:53 -04:00
Adriaan de Groot
b8bad1c0b4 [welcome] Drop unused includes 2019-08-22 16:16:29 +02:00
Adriaan de Groot
8ea1ea6662 [libcalamares] Add synchronousGet() to network service
- Synchronous download of a given URL; not something to
   do from the GUI thread.
 - Use it from the GeoIP service, which downloads in a
   separate thread to do GeoIP lookups.
 - Drop now-unused headers.
 - Adjust tests for GeoIP to use network service
2019-08-22 16:11:26 +02:00
Adriaan de Groot
0b2855d6e0 [libcalamares] Fix build (bad class name) 2019-08-22 10:29:39 +02:00
Adriaan de Groot
9aae9b2f02 [libcalamares] Restore Q_DELCARE_INTERFACE
- This **may** be the cause of build failures on aarch64.
2019-08-22 10:26:15 +02:00
Adriaan de Groot
85f5410735 [libcalamaresui] Apply coding style 2019-08-22 10:25:16 +02:00
Adriaan de Groot
dbe0ccf2e1 [calamares] Apply coding style 2019-08-22 10:25:16 +02:00
Adriaan de Groot
310a1d76cf [calamares] Reduce warnings now that getInteger is qint64 2019-08-22 10:25:16 +02:00
Adriaan de Groot
eae931f2ed [libcalamares] Ping only when accessibility is unknown
- Restores exact functionality of previous version
   (noted by Kevin Kofler)
 - Short-circuit ping if the URL is bad.
2019-08-21 03:43:51 -04:00
Adriaan de Groot
e065008631 [welcome] Switch to the network service
- simplify configuration
 - use existing ping- and hasInternet()
2019-08-20 10:57:34 -04:00
Adriaan de Groot
4389c254df [libcalamares] Rely directly on QNAM's networkAccessible() 2019-08-20 10:57:34 -04:00
Adriaan de Groot
11d52df04c [libcalamares] Add API docs to network service 2019-08-20 10:57:34 -04:00
Adriaan de Groot
82622373bc [libcalamares] Remove superfluous ; (warnings--) 2019-08-20 16:05:22 +02:00
Adriaan de Groot
8d3530154f [libcalamares] Expand network service test
- Do an actual ping (also to check for memory leaks)
2019-08-20 09:57:04 -04:00
Adriaan de Groot
b8d56bb4a6 [libcalamares] Add tests for network service 2019-08-20 09:52:11 -04:00
Adriaan de Groot
d7602df51e [libcalamares] Introduce networking service
- The networking service is intended to wrap up use of
   QNetworkAccessManager and others for consumption within
   Calamares, and to provide some convenience functions
   for internet access.
 - Medium term, it may also monitor network access, so that
   we can respond to changes in network availability during
   installation.

Currently very minimal and undocumented.
2019-08-20 09:52:11 -04:00
Adriaan de Groot
4b35d193b7 Changes: mention #1212, AppStream data loading 2019-08-20 14:03:52 +02:00
Adriaan de Groot
052afd4b42 Merge branch 'issue-1212'
FIXES #1212
2019-08-20 14:02:22 +02:00
Adriaan de Groot
8c5caf9fd0 [packagechooser] Add CMake knobs to enable/disable item choices
- AppData and AppStream can be disabled independently of finding
   their requirements (possibly useful if you want to ignore
   AppStream even when it's installed in your build environment).
 - Add a little top-level documentation about WITH_
2019-08-20 13:56:23 +02:00
Adriaan de Groot
ffa899b497 [packagechooser] Assemble the translated name and description 2019-08-20 05:37:52 -04:00
Adriaan de Groot
7b699bfc76 [libcalamares] Access list of locale Ids
- Make it easier to obtain locale-ids (from CALAMARES_TRANSLATION_LANGUAGES)
   so avoid splitting that string multiple times.
2019-08-20 05:26:26 -04:00
Adriaan de Groot
d8af11adee [packagechooser] Build AppStream Pool first
- Don't build a Pool for each PackageItem loaded
 - Do make it load all languages instead of only the current one
2019-08-20 04:38:24 -04:00
Adriaan de Groot
0a92ef7655 [packagechooser] Refactor fromApp*()
- These don't have to be static methods of PackageItem, a free
   function is more convenient.
 - Since it's not API of PackageItem anymore, need to
   - update tests not to use API
   - do API-not-available warnings in consumers
2019-08-20 04:15:35 -04:00
Adriaan de Groot
17abbeda96 [packagechooser] Try to load a screenshot
- The smallest size image of the default (or, if there is no
   default, the first) screenshot is used.
 - Remote URLs are not supported by QPixmap, so most will not
   load anyway.
2019-08-19 10:02:43 -04:00
Adriaan de Groot
fa2f5763c6 [packagechooser] Load AppStream data
- Get the id, name, and description from AppStream data

Missing:
 - No translations
 - No screenshots
2019-08-19 07:25:28 -04:00
Adriaan de Groot
eaa0c02f8d [packagechooser] Initial support for appstream items
- Use *appstream* as key in one of the items for the package-
   chooser to load data from the AppStream cache in the system.
 - Usable for some applications; for DE-selection not so much.
 - Currently unimplemented.
2019-08-19 07:10:38 -04:00
Adriaan de Groot
2f20ad30bf [packagechooser] Refactor AppData XML support into separate file
- Put the implementation entirely in a separate file, keep the
   not-supported one in PackageModel.cpp (but only in an #ifdef).
 - Makes the various optional-data-sources more similar.
2019-08-19 06:55:36 -04:00
Adriaan de Groot
5b4152133d [packagechooser] Look for AppStream libs 2019-08-19 06:45:05 -04:00
Adriaan de Groot
52af9dbaad [mount] Add docstrings to methods 2019-08-19 06:31:37 -04:00
Adriaan de Groot
395c375c60 [mount] Winnow partition list
- Simplify the iteration by first determining which partitions
   are mountable (at all).
 - This guards against the very rare case that a partition
   does not have a mountPoint at all (the if guarded against that)
   where the lambda passed to sort() would get a KeyError.
2019-08-19 06:28:32 -04:00
Adriaan de Groot
8aedd8b175 Merge pull request #1219 from a-wai/extra-mounts-after-root
mount: Make sure extra mounts are mounted right after /
2019-08-19 06:22:16 -04:00
Adriaan de Groot
2e8a106f2c Changes: document new stuff 2019-08-16 04:21:53 -04:00
Arnaud Ferraris
257f5da1af mount: Use a single partitions list sorted by mount point
Instead of having a special case for extra mounts to be processed right
after the rootfs, a better approach is to add them to the partitions
list, and then sort the list by mount point.

This way, we make sure every partition is mounted right when it is
needed: `/` is obviously mounted first, `/run` is mounted before
`/run/udev`, and so on.

The overall process is therefore more generic and should suit all
use-cases.

Signed-off-by: Arnaud Ferraris <arnaud.ferraris@collabora.com>
2019-08-14 09:58:40 +02:00
Adriaan de Groot
cd5277913a Merge branch 'issue-1197'
- Improves the settings in welcome.conf, allows setting URLs directly
 - Adds a *showDonateUrl* setting to add a donations-button
2019-08-13 23:23:12 +02:00
Adriaan de Groot
0b7dcf7c50 [welcome] Fix up tooltips
- the "Select language" tooltip was applied to the form, so it would
   show up inappropriately all over the place
 - the buttons didn't have useful tooltips.
2019-08-13 23:22:33 +02:00
Adriaan de Groot
c36f963954 [welcome] Adjust names of URLs to be consistent
- having show*Url and donateUrl seems inconsistent, although
   the show*Url settings were originally boolean-only.
 - add "show" to the Donate button setting, to make them
   all consistent (putting a boolean there will generate a
   warning and hide the button, that's all).
2019-08-13 23:10:56 +02:00
Adriaan de Groot
706cc73925 [branding] [welcome] Adjust documentation for welcome-overrides 2019-08-13 23:10:56 +02:00
Adriaan de Groot
341965c2b1 [welcome] Use setupButton for all four buttons
- the show* settings in welcome.conf are "upgraded" to allow
   setting the URL directly in the module configuration.
2019-08-13 23:10:56 +02:00
Adriaan de Groot
119f84d6c1 [welcome] Remove setupLinks() method, use generic
- the generic (enum-based) setupButton() can handle all four
   of the buttons, so setupLinks() can go away. Only the
   (re)translation of the text on the button needs to be
   done, so move that to the main RETRANSLATE.
2019-08-13 23:10:56 +02:00
Adriaan de Groot
64d4b0a46c [welcome] Switch API for buttons to an enum + string
- Handle buttons and their URL-opening in a more
   general way with an enum; drop existing three-boot
   method and special setupDonateButton()
 - Doesn't compile because consumers haven't changed.
2019-08-13 23:10:56 +02:00
Adriaan de Groot
03e506a826 [welcome] Add a donate button
FIXES #1197
2019-08-13 23:10:56 +02:00
Adriaan de Groot
b60ec123a0 [branding] [welcome] Document interrelationship of settings 2019-08-13 23:10:56 +02:00
Adriaan de Groot
6b8c0129fd [libcalamaresui] Add one more icon (donate) from Breeze
- LGPLv3 like the others
2019-08-13 23:10:56 +02:00
Adriaan de Groot
e7dedbbfe0 [libcalamaresui] Apply coding style to remainder 2019-08-13 21:07:46 +02:00
Adriaan de Groot
d44e8f6115 [libcalamaresui] Apply coding style to viewpages/ 2019-08-13 21:02:30 +02:00
Adriaan de Groot
6f74463a80 [libcalamaresui] Apply coding style to utils/ 2019-08-13 21:00:36 +02:00
Adriaan de Groot
1b6aed8c40 [libcalamaresui] Apply coding style to modulesystem/ 2019-08-13 20:58:39 +02:00
Adriaan de Groot
6224d6605b [libcalamaresui] Apply coding style to widgets/ 2019-08-13 20:57:52 +02:00
Adriaan de Groot
27c3a5a11d [calamares] Apply coding style 2019-08-13 20:51:46 +02:00
Adriaan de Groot
f31ff8b9ea [libcalamares] Apply coding style to PluginFactory 2019-08-13 20:50:52 +02:00
Adriaan de Groot
ccd707b23a [libcalamares] Apply coding style
- .. or, rather, avoid re-formatting tables in future.
2019-08-13 20:49:58 +02:00
Adriaan de Groot
09a36cd669 Merge pull request #1221 from a-wai/add-base-10-sizes
Add 'base 10' partition size multiples
2019-08-13 20:26:22 +02:00
Adriaan de Groot
c57a30c73f Changes: credit where due for recent PRs 2019-08-13 17:06:27 +02:00
Adriaan de Groot
54767812fe Merge pull request #1218 from a-wai/fix-unpackfs
Fix error in unpackfs
2019-08-13 17:01:40 +02:00
Arnaud Ferraris
a51d612afa Revert "libcalamares: Align partition sizes on actual sectors"
This reverts commit 40202705ff.
2019-08-13 16:57:47 +02:00
Adriaan de Groot
1d047839c7 Merge pull request #1220 from a-wai/prevent-int-overflow
Prevent integer overflow when parsing configuration
2019-08-13 16:21:35 +02:00
Adriaan de Groot
c53b59c504 Merge branch 'require-kcoreaddons'
Require KCoreAddons. This is one of the KDE Frameworks, small
and lightweight libraries adding functionality on top of Qt.

Since lots of **other** parts of Calamares require KDE Frameworks,
including the partitioning module, requiring a tier-1 for
basic functionality seems reasonable.

This brings:
 - using KPluginLoader instead of an ancient fork
 - availability of KMacroExpander everywhere
 - kaboutdata (needed for KCrash anyway)
 - kjobs (need to look into using those as a base for Calamares jobs)
2019-08-12 16:01:51 +02:00
Arnaud Ferraris
40202705ff libcalamares: Align partition sizes on actual sectors
Currently, the `bytesToSectors()` function rounds a partition size to the
nearest MiB unit, which may lead to inconsistencies when a partition
is expected to only be a few KiB's.

This patch changes the behaviour of `bytesToSectors()` so that it aligns
on sector size, without rounding the partition size to a multiple of
1MiB.

Signed-off-by: Arnaud Ferraris <arnaud.ferraris@collabora.com>
2019-08-12 15:55:18 +02:00
Arnaud Ferraris
209e8331b7 libcalamares: Add support for KB/MB/GB size units
Currently, all size units are expressed as KiB, MiB or GiB (resp. 2^10,
2^20 or 2^30).

In order to maximize compatibility and consistent results with other
partitioning tools, this commit adds support for sizes expressed as KB,
MB or GB (resp. 10^3, 10^6 or 10^9).

This change won't affect existing users, it simply adds a new option
that wasn't previously handled.

Signed-off-by: Arnaud Ferraris <arnaud.ferraris@collabora.com>
2019-08-12 15:55:18 +02:00
Adriaan de Groot
0716a46eb2 [libcalamares] Switch to using KPluginFactory
- this is not entirely straightfoward, since  we need
   different constructor arguments for the objects
   Calamares creates (no QVariantList& args, in particular).
   Implement our own registerPlugin() and createInstance()
   for that.
 - work around a bug in K_PLUGIN_FACTORY_DECLARATION_WITH_BASEFACTORY
2019-08-12 15:52:59 +02:00
Arnaud Ferraris
3929557a5a welcome: Fix requirements parsing
As the config files integer are now of type `QVariant::LongLong` instead
of `QVariant::Int`, requirements relying on this type were not parsed
correctly.

This patch fixes this, and adds an option to the python conversion to
take into account `QVariant::LongLong` types.

Signed-off-by: Arnaud Ferraris <arnaud.ferraris@collabora.com>
2019-08-12 15:48:48 +02:00
Arnaud Ferraris
0d06e047ae libcalamares: Prevent integer overflows when parsing configuration
Currently, a number of configuration parsing-related functions and
classes use only `int` type for dealing with integers. Should the user
need a bigger integer value, this would result in an erroneous value
being used (`0`), as the correct value would overflow the 32-bits type.

In order to prevent these overflow, this patch replaces `int` with
`qint64` in the following functions & classes :

  * CalamaresUtils::yamlScalarToVariant()
  * CalamaresUtils::getInteger
  * NamedSuffix
  * PartitionSize

This way, sizes or other integer values greater than 2^31 (for signed
types) can be used.

Signed-off-by: Arnaud Ferraris <arnaud.ferraris@collabora.com>
2019-08-12 15:45:34 +02:00
Arnaud Ferraris
bf47e761b0 mount: Make sure extra mounts are mounted right after /
When the rootfs partition is read-only, mount points for the other
partitions cannot be created, therefore they need to be created in a
tmpfs, already mounted somewhere in `/`.

However, the extra mounts are only mounted at the end, which causes an
error as no tmpfs is currently mounted.

This patch makes sure all extra mounts are mounted right after the `/`
partition, allowing the use of a read-only rootfs.

Signed-off-by: Arnaud Ferraris <arnaud.ferraris@collabora.com>
2019-08-12 15:40:59 +02:00
Arnaud Rebillout
2ab45cf4f0 Make sure that variable num_files_total_local is declared
This variable is declared in `if m:`. Of course if this codepath doesn't
run, the variable is not declared an Python doesn't like this kind of
surprise...

Signed-off-by: Arnaud Rebillout <arnaud.rebillout@collabora.com>
2019-08-12 15:37:02 +02:00
Adriaan de Groot
9098f8d741 Changes: document KCoreAddons dependency 2019-08-12 13:29:53 +02:00
Adriaan de Groot
1711071c58 [libcalamares] Swap out own PluginLoader for KCoreAddons 2019-08-12 13:24:53 +02:00
Adriaan de Groot
44991e700b [libcalamaresui] Check KCoreAddons version directly 2019-08-12 13:24:53 +02:00
Adriaan de Groot
bcb7f17584 [calamares] Make KCoreAddons a requirement
- Require KCoreAddons for KAboutData (also, optionally, for KOSRelease)
2019-08-12 13:24:53 +02:00
Adriaan de Groot
a6db224fcb [fsresizer] [partition] Gracefully fail on missing dependencies
- If KPMcore is found -- it requires some other KDE Frameworks but
   at least in pre-4.0 versions doesn't check very well for them --
   then missing its dependencies is no cause for CMake failure.
   Instead, log it nicely and suppress the module.
2019-08-12 13:23:34 +02:00
Adriaan de Groot
8c78a6cdfa Documentation: match stated requirements with CMakeLists.txt 2019-08-12 12:05:50 +02:00
Adriaan de Groot
08a08f9b54 [calamares] Minor optimizations and documentation
- document the data structure; for the vector V (called m_rows)
   the values are V_i < i, so that enables microscopic optimizations.
2019-08-09 17:29:28 +02:00
Adriaan de Groot
96ef488f1b [calamares] Clean up VariantModel
- stop compiler warnings with some judicious casting;
   that's what you get when a container indexed by int
   stored those indexes as quintptr.
 - apply coding style
2019-08-09 17:17:46 +02:00
Adriaan de Groot
8a7f32d3aa [libcalamaresui] Polish ImageRegistry
- do static initialization more carefully
 - float -> qreal (double) because that's what the Qt API expects,
   to reduce type-conversion warnings
 - apply current coding style
2019-08-09 16:52:54 +02:00
Adriaan de Groot
ec08a293b2 [libcalamaresui] Reduce compile warnings
- "this" isn't used in the lambda; in future it might be if the
   lambda needs to get the configuration from settings.
2019-08-09 16:43:50 +02:00
Adriaan de Groot
91d327b224 [libcalamaresui] Paste TCP port is quint16
- no sense in feeding in an int (and getting a compiler warning
   for narrowing) into something that by spec is a 16-bit value.
2019-08-09 16:41:59 +02:00
Adriaan de Groot
41173360a7 [libcalamares] We're just testing file modes, not whole int range 2019-08-09 16:36:38 +02:00
Adriaan de Groot
76041a2184 [dummycpp] Reduce warnings and apply coding style
- tired of the (IMO, bogus) clang warnings from the
   switch() statement with a default:, so swap it out for
   some cascaded ifs.
2019-08-09 16:34:53 +02:00
Adriaan de Groot
e81bd52fb5 [initcpio] [initramfs] Set compilation options on tests
- calamares_automoc() sets AUTOMOC, but also adds some flags
   to avoid compilation warnings from the generated MOC code.
 - drop weird hard-coded include paths
2019-08-09 16:29:55 +02:00
Adriaan de Groot
739363cecd [libcalamaresui] Fix initialization order (reduce warnings) 2019-08-09 16:28:29 +02:00
Adriaan de Groot
6f73151786 [libcalamares] Reduce warnings
- Although milliseconds::count() is long long, we pass it to
   a Qt interface that only takes int; let's assume we have
   only a 32-bit count, since a timeout of 4 billion milliseconds
   is roughly 46 days, which we'll just call "no timeout".
2019-08-09 16:22:22 +02:00
Adriaan de Groot
dc09c5700b [calamares] Remove unreachable return 2019-08-09 16:15:18 +02:00
Adriaan de Groot
f5af4818fb [calamares] Apply current coding style 2019-08-09 15:27:40 +02:00
Adriaan de Groot
ea0acf1606 [calamares] Apply current coding style 2019-08-09 15:25:37 +02:00
Adriaan de Groot
3ac7a7323c Merge branch 'replace-debug-models' 2019-08-09 08:00:10 -04:00
Adriaan de Groot
ab7a559e03 [calamares] Add headerData to model (Key, Value columns) 2019-08-09 07:58:20 -04:00
Adriaan de Groot
eba4dc8df1 [calamares] Use VariantModel instead of QJsonModel
- Drop the round-trip of forming a JSON document from a QVariant,
   then parsing the document into JSON objects and building a
   model out of that. View the Variant directly.
2019-08-09 07:48:52 -04:00
Adriaan de Groot
2bd03ad3c0 [calamares] Add reload() to update model after underlying data 2019-08-09 07:40:23 -04:00
Adriaan de Groot
2a3ab4dbe7 [calamares] Add a model for viewing QVariants directly 2019-08-09 07:21:48 -04:00
Adriaan de Groot
e31a498c9b [calamares] Move DebugWindow
- This is a fairly specialized class, for use only in the
   whole-application where it ties in with the module system.
   Move it to the application directory and slim down the UI library.
 - Include it from the new location.
 - Add UIC to Calamares (the application) because there's now
   a designer-based widget in it.
2019-08-09 06:54:31 -04:00
Adriaan de Groot
85d28af1e2 [libcalamaresui] Don't include QJsonModel 2019-08-09 06:34:38 -04:00
Adriaan de Groot
419329ee49 [libcalamares] Remove friend, add accessor, make includes explicit 2019-08-09 06:27:13 -04:00
Adriaan de Groot
695e16bb87 [libcalamaresui] Drop QJsonModel from the library 2019-08-09 06:21:07 -04:00
Adriaan de Groot
17dfe02d28 [3rdparty] Remove QJsonModel and support 2019-08-09 05:53:18 -04:00
Adriaan de Groot
8bd1e93968 Merge branch 'move-3rdparty' 2019-08-08 12:55:55 -04:00
Adriaan de Groot
48a25858f0 [partition] Chase 3rdparty move 2019-08-08 12:42:47 -04:00
Adriaan de Groot
b31c6c3a22 [calamares] Chase 3rdparty move 2019-08-08 12:42:33 -04:00
Adriaan de Groot
c83e95e66a [libcalamaresui] Chase 3rdparty move
- Widgets need to #include from different path
2019-08-08 12:42:02 -04:00
Adriaan de Groot
2166eb4511 [libcalamares] [libcalamaresui] Adjust for moved sources 2019-08-08 10:47:14 -04:00
Adriaan de Groot
8050b5d1da [3rdparty] Add License information for kdsingleapplicationguard 2019-08-08 10:37:02 -04:00
Adriaan de Groot
315c0aca15 [3rdparty] Not actually part of Calamares 2019-08-08 10:29:21 -04:00
Adriaan de Groot
937ff608eb [libcalamaresui] Move spinner widget to 3rd party 2019-08-08 10:27:52 -04:00
Adriaan de Groot
e7c66de4df [libcalamares] Move kdsingleapplicationguard to 3rdparty 2019-08-08 10:24:18 -04:00
Adriaan de Groot
47dbf9ab0c [libcalamares] Move 3rd party code to separate dir 2019-08-08 10:23:36 -04:00
Adriaan de Groot
05bcf4e853 Changes: document Coding Style application 2019-08-08 13:14:14 +02:00
Adriaan de Groot
115f5bfd82 [libcalamares] Apply coding style to remainder of geoip/ 2019-08-08 12:41:41 +02:00
Adriaan de Groot
839e496fcb CI: when I said 'left' I meant 'dont' 2019-08-08 12:41:06 +02:00
Adriaan de Groot
ec073ee188 [libcalamares] Apply coding style to geoip/ 2019-08-08 12:32:21 +02:00
Adriaan de Groot
a2ab91474f CI: massage the .clang-format file, it's just ASCII 2019-08-08 12:29:06 +02:00
Adriaan de Groot
6e9f1be9e9 [libcalamares] Don't reformat string tables in GeoIP 2019-08-08 11:56:20 +02:00
Adriaan de Groot
81fa1735b1 [libcalamares] Apply current coding style 2019-08-07 23:43:45 +02:00
Adriaan de Groot
6b659b6f48 [libcalamares] Apply current coding standard to locale/ 2019-08-07 23:42:33 +02:00
Adriaan de Groot
2bb1474ebb Changes: post-release housekeeping 2019-08-07 22:15:08 +02:00
Adriaan de Groot
8636689cea [packagechooser] Fix tests when run from in-source build 2019-08-07 12:58:22 +02:00
Adriaan de Groot
e2cb2690bd CI: tell where if the release builds fail 2019-08-07 12:50:46 +02:00
Adriaan de Groot
251e16e72c [libcalamares] Allow en_US locale for tests as well 2019-08-07 12:31:52 +02:00
Adriaan de Groot
6c5d0e9d3d CI: make scripts executable 2019-08-07 12:18:26 +02:00
Adriaan de Groot
729616ac6a Changes: pre-release housekeeping 2019-08-07 12:14:37 +02:00
Adriaan de Groot
20f43225b5 [packagechooser] Adjust AppData path for tests
- running tests by hand or from "make test" uses different paths.
2019-08-07 12:02:03 +02:00
Adriaan de Groot
781be3368e [packagechooser] Remove bogus images
- KDE and GNOME selection images were drawn by me for the bogus
   package model, and should not be used.
 - Keep Calamares logo though, even if it doesn't make much sense
   to use it in package selection.
 - Keep the no-selection image since it might be used more often,
   but it's not very good.
2019-08-07 11:57:02 +02:00
Adriaan de Groot
f3de320288 [packagechooser] Drop hard-coded data
- Now that the configuration can do all the things, we don't need
   a hard-coded model with bogus entries.
2019-08-07 11:51:56 +02:00
Adriaan de Groot
1b29ca5697 Changes: document packagechooser and others 2019-08-06 23:43:29 +02:00
Adriaan de Groot
5bdcc2c7a8 Merge branch 'software-chooser'
FIXES #426
FIXES #1172
FIXES #706
2019-08-06 22:55:13 +02:00
Adriaan de Groot
194a562727 [packagechooser] Expand tests with override features 2019-08-06 22:51:14 +02:00
Adriaan de Groot
a4362dac65 [packagechooser] Change tests for modified API 2019-08-06 22:48:04 +02:00
Adriaan de Groot
5d4c3ea92c [packagechooser] Don't give a default pixmap 2019-08-06 22:48:04 +02:00
Adriaan de Groot
0b72006ffb [packagechooser] Use overrides on AppData for example 2019-08-06 22:48:04 +02:00
Adriaan de Groot
6ddae94628 [packagechooser] Allow to override some of AppData
- The ID and Screenshot entries might be weird in AppData (in particular,
   a remove URL) so put those back under the control of Calamares even
   when using AppData as the source of descriptions.
2019-08-06 22:48:04 +02:00
Adriaan de Groot
d72391942f [packagechooser] Implement AppData loading
- An item can refer to *appdata* and load that, or provide
   the data in the config file itself.
 - Fix documentation about translations.
2019-08-06 15:55:27 +02:00
Adriaan de Groot
9a8b2c5a1e [packagechooser] CHeck that AppData load was succesful 2019-08-06 15:45:14 +02:00
Adriaan de Groot
fb547364c7 [packagechooser] Complete parsing of AppData
- Document all the static inline methods that do the work
 - Fill up a QVariantMap from <name>, <summary> and <description><p>
   elements, and use that to initialize the PackageItem.
2019-08-06 15:36:34 +02:00
Adriaan de Groot
431c4de77f [packagechooser] Use GUI for tests
- Because we'll be creating Pixmaps, we need to have a GUI main.
2019-08-06 15:19:20 +02:00
Adriaan de Groot
6821b14d00 [packagechooser] Enable logging in tests 2019-08-06 14:50:04 +02:00
Adriaan de Groot
beb5896fa2 [packagechooser] Start implementation of AppData loading
- Doing a manual read of the XML, since existing appdata libraries
   don't seem to have a convenient entry for what I need.
 - Expand tests to loading AppData (currently, they fail).
2019-08-06 14:50:04 +02:00
Adriaan de Groot
8329d7d7dc CI: Add an AppData file 2019-08-06 14:50:04 +02:00
Adriaan de Groot
6c41151f80 [packagechooser] Just one screenshot, and mark package unused 2019-08-06 12:38:28 +02:00
Adriaan de Groot
6e05a1ef05 [packagechooser] Load translated strings as well
- This makes it possible to put the translations into the config
   file, and have them displayed when the Calamares language changes.
2019-08-06 12:02:29 +02:00
Adriaan de Groot
4febe477cf [libcalamares] Add isEmpty() to TranslatedString
- Massage the implementation a bit, don't insert a meaningless
   copy of the key as the untranslated message.
 - Add isEmpty() to check for presence of the untranslated message.
 - Document API.
 - Update tests.
2019-08-06 11:53:35 +02:00
Adriaan de Groot
8d3546f0b3 [packagechooser] Expand the example config with translated entries 2019-08-06 00:31:05 +02:00
Adriaan de Groot
6a8e10837d [libcalamares] Drop unneeded debugging 2019-08-06 00:26:04 +02:00
Adriaan de Groot
fee2297e67 [packagechooser] Fix fallthrough situation
- Add a FALLTHRU macro to annotate fallthrough situations in both
   Clang and GCC,
 - Annotate intentional fallthroughs.
 - Add missing break which meant that the selection mode was
   always multiple-selection.
2019-08-06 00:24:53 +02:00
Adriaan de Groot
56db9e9341 [packagechooser] Use translated strings 2019-08-06 00:17:50 +02:00
Adriaan de Groot
fd75b33784 [libcalamares] Add default constructor to TranslatedString 2019-08-06 00:17:30 +02:00
Adriaan de Groot
3560ea6622 Merge branch 'master' into software-chooser 2019-08-06 00:08:21 +02:00
Adriaan de Groot
39b7e4c55f Merge branch 'translatable-configuration' 2019-08-06 00:07:48 +02:00
Adriaan de Groot
764c775f08 [libcalamares] Tighten tests, add special case
- The tests should be run in C locale, otherwise the plain get()
   function uses the current locale, which will fail (e.g. running
   LANG=nl ./libcalamareslocaletest returns the Dutch strings for
   plain get, which isn't what we expect).
 - sr@latin is still special.
2019-08-06 00:05:24 +02:00
Adriaan de Groot
a9292d0c75 [libcalamares] Implement getting the string 2019-08-05 23:54:53 +02:00
Adriaan de Groot
50d74c4eca [libcalamares] Add get() to the string
- Look up the translation of the requested string with the current
   or a specific locale. This implementation is a stub.
 - Add tests for the getter.
2019-08-05 23:37:25 +02:00
Adriaan de Groot
e0edd1f3e2 [libcalamares] Fix misleading comment, add accessor
- the sort order is not English-at-the-top
 - add accessor for the locale ID.
2019-08-05 23:32:13 +02:00
Adriaan de Groot
28293ef77a [libcalamares] Expand tests of TranslatableString 2019-08-05 23:30:51 +02:00
Adriaan de Groot
5d6ccfe8fc [libcalamares] Adjust tests for new Esperanto support 2019-08-05 18:30:50 +02:00
Adriaan de Groot
83df41ef06 CMake: bump required CMake to 3.3, enable Esperanto
- Require CMake 3.3 for the IN_LIST operator in if() statements
 - It looks like Qt 5.12.2 (possibly earlier) supports a QLocale("eo")
   so enable Esperanto if that Qt version or later is detected.
2019-08-05 18:24:31 +02:00
Adriaan de Groot
18e2f2ae52 [libcalamares] Add tests for new TranslatedString
- Test that construction works as expected
 - Add count() method to TranslatedString for testing purposes.
2019-08-05 17:57:32 +02:00
Adriaan de Groot
19ca1b3c30 [libcalamares] One missing bit of coding style 2019-08-04 23:00:03 +02:00
Adriaan de Groot
8ea4091c7b [libcalamares] Add a TranslatedString class to locale/
- While QObject::tr and gettext give us translations **most** of the
   time via the translation mechanism, we sometimes have strings
   embedded in configuration files that need to be shown to people
   as well. Follow the .desktop style in handling this.
 - A key's value **might** be translated; use `key[lang]` for the
   translation into one of the languages that Calamares understands.
   Code that expects a translated (human-readable) string in a configuration
   file can use TranslatedString to collect all the translations of a
   given key, so that it displays the right string from the configuration
   when needed.
2019-08-04 22:56:41 +02:00
Adriaan de Groot
1afa9c4d08 [libcalamares] Apply current coding style to all of libcalamares/ 2019-08-04 22:24:55 +02:00
Adriaan de Groot
fa676c573e CI: Fix style script
- when passing in more than one directory, expanded the wrong variable
2019-08-04 22:21:53 +02:00
Adriaan de Groot
7fcb7be1e4 [libcalamares] Apply current coding style to libcalamares/locale/ 2019-08-04 22:17:12 +02:00
Adriaan de Groot
43ba59361b [libcalamares] Don't format generated files of CLDR data 2019-08-04 22:16:33 +02:00
Adriaan de Groot
fa2b94d931 [libcalamares] Apply current coding style to libcalamares/partition/ 2019-08-04 22:13:58 +02:00
Adriaan de Groot
312865cdd9 [libcalamares] Fix build on FreeBSD 2019-08-04 22:09:53 +02:00
Adriaan de Groot
b8a74657f4 [libcalamares] Apply current coding style to libcalamares/utils/
- String.cpp needs special handling since part of it should
   remain unchanged, the formatting is "special" there.
2019-08-04 22:01:56 +02:00
Adriaan de Groot
29b9a21f59 [libcalamares] Don't format files copied from KCoreAddons 2019-08-04 22:01:31 +02:00
Adriaan de Groot
b7f54a3866 [libcalamares] Don't break string tables by reformatting 2019-08-04 22:01:31 +02:00
Adriaan de Groot
2556ba9d55 CI: set style for macro continuations 2019-08-04 22:01:31 +02:00
Adriaan de Groot
b16354133d [packagechooser] Switch to a list form
- Using id's as keys in a map orders them indeterminately -- in
   practice, alphabetically by key. Switch to a list form so that
   the products stick to the order they have in the config file
   (which means distro's can list "preferred" versions at top).
2019-08-04 20:19:56 +02:00
Adriaan de Groot
9a52430e74 [packagechooser] Too many 'o's in test name 2019-08-04 20:04:32 +02:00
Adriaan de Groot
89dcae393e Merge remote-tracking branch 'origin/master' into software-chooser
- Pull in build fix
2019-08-04 16:02:16 +02:00
Adriaan de Groot
791f9cbccb [packagechooser] Read packages model from config
- add key *items* which will be used to fill up the model for
   software products.

TODO: needs translation support
2019-08-04 16:00:55 +02:00
Adriaan de Groot
beeda24423 [libcalamaresui] Fix build of the PythonQt bindings
- Change to std::chrono::seconds wasn't tried against the (optional)
   PythonQt bindings, leading to build failure. Reported by Phil (Manjaro).

FIXES #1210
2019-08-04 08:52:33 -04:00
Adriaan de Groot
adb939b2e8 [packagechooser] Word-wrap package descriptions 2019-08-04 00:11:50 +02:00
Adriaan de Groot
d5275d5e10 [packagechooser] Allow the model to set the introductory text 2019-08-04 00:08:41 +02:00
Adriaan de Groot
047a300a51 [packagechooser] Remove unneeded debug 2019-08-03 23:55:29 +02:00
Adriaan de Groot
140c0db7a4 [packagechooser] Set GlobalStorage packagechooser_<id> 2019-08-03 23:51:00 +02:00
Adriaan de Groot
c59ffc7765 [packagechooser] Set default ID as documented 2019-08-03 23:33:34 +02:00
Adriaan de Groot
b711c791bd [packagechooser] Fix build, tidy code 2019-08-03 23:28:55 +02:00
Adriaan de Groot
87d7b2a5c0 [packagechooser] Allow setting an ID for the module's GS key 2019-08-03 23:24:30 +02:00
Adriaan de Groot
2f2080727d Merge branch 'master' into software-chooser 2019-08-03 23:16:38 +02:00
Adriaan de Groot
ff6c6a360b [calamares] Make UI work for test-loader
- Need to create just one QApplication (subclass) with the right
   parameters for the UI to work.
 - If the UI is enabled and it's a View module, then show the widget
   rather than running the jobs.
2019-08-03 23:06:39 +02:00
Adriaan de Groot
f2fb49ce26 [calamares] Fix test-loader runtime
- Some view steps expect the module manager to be there, avoid
   startup warnings by creating one.
2019-08-03 22:27:06 +02:00
Adriaan de Groot
e8f342c0a5 [calamares] Add test-loader option for UI 2019-08-03 22:22:21 +02:00
Adriaan de Groot
f53aaa8bf3 [calamares] Fix module loader for ViewModules
- The ViewManager needs branding information, which wasn't
   initialized -- leading to crashes. Add -b option to give
   a specific branding, and default to something take makes
   sense when testing modules from the build directory.
 - Allows the module to load; doesn't show the UI though.
2019-08-03 21:56:06 +02:00
Adriaan de Groot
2fd2e90bf0 [calamares] Always run module tester with verbose logging 2019-08-03 21:29:28 +02:00
Adriaan de Groot
76077743af [packagechooser] Add configuration setting for selection mode
- Add a *mode* key to the configuration file
 - Change some names around to be more consistent (not user-visible)
2019-08-03 15:45:00 +02:00
Adriaan de Groot
042852218f [license] Apply current coding style 2019-08-03 14:52:38 +02:00
Adriaan de Groot
fb3204262c [packagechooser] Remove unneeded forward declaration 2019-08-02 23:24:35 +02:00
Adriaan de Groot
9d026862a8 [packagechooser] Provide names for selection mode 2019-08-02 23:20:45 +02:00
Adriaan de Groot
ab7374628b [packagechooser] Use sample screenshots 2019-08-02 17:17:53 +02:00
Adriaan de Groot
86d8db6bbf [packagechooser] Enforce selection mode on the next-button 2019-08-02 17:13:35 +02:00
Adriaan de Groot
7609546d8b [packagechooser] Add screenshots for example 2019-08-02 17:02:02 +02:00
Adriaan de Groot
2272d2ab43 [packagechooser] Add selection modes
- Introduce different selection modes (most don't work yet)
 - Use model data in the main widget
2019-08-02 16:43:10 +02:00
Adriaan de Groot
86e2e6242f [packagechooser] Warn about weird calling orders 2019-08-02 16:26:10 +02:00
Adriaan de Groot
a32dcdad86 [packagechooser] Support multiple selection modes 2019-08-02 16:25:26 +02:00
Adriaan de Groot
dc5cdbb38c [packagechooser] Update other parts of the window on selection 2019-08-02 16:07:47 +02:00
Adriaan de Groot
f8d159dfa4 [packagechooser] Massage layout a bit 2019-08-02 15:32:14 +02:00
Adriaan de Groot
d1a85ba5ca [packagechooser] Add a model for the list to use
- Model contents currently hard-coded
2019-08-02 13:05:46 +02:00
Adriaan de Groot
727290f75e [packagechooser] Handle translation events (stub) 2019-08-02 11:09:12 +02:00
Adriaan de Groot
735d5d2683 [packagechooser] Add stub of module
Package chooser is a **low density** package selector -- unlike
netinstall which offers a high density tree view -- for picking
zero, one, or more items from a small collection of packages.

This can be used, e.g., for "pick exactly one desktop environment",
"pick zero or more text editors" which can then be installed
by another module. The UI is big and shiny (rather than netinstall's
text-based tree view) and isn't suitable for more than a dozen or
so items.
2019-08-02 10:57:12 +02:00
Adriaan de Groot
05daa22542 CMake: update language lists 2019-08-02 09:40:25 +02:00
Calamares CI
d98788a405 i18n: [calamares] Automatic merge of Transifex translations 2019-08-02 09:35:59 +02:00
Adriaan de Groot
f4034f629a CI: keep Esperanto in the "incomplete" list
- Since QLocale does not support Esperanto, we can't effectively load it.
2019-08-02 09:32:31 +02:00
Adriaan de Groot
dab841df02 [fstab] Tighten up the *efiMountOptions* documentation 2019-08-02 09:27:54 +02:00
Adriaan de Groot
f1c133813c Changes: credits for recent PRs 2019-08-02 09:25:45 +02:00
Adriaan de Groot
d76c33bd3a [tracking] Tidy code some more 2019-08-02 09:19:15 +02:00
Adriaan de Groot
8186d5730a [contextualprocess] Apply current coding style 2019-08-01 23:10:49 +02:00
Adriaan de Groot
a0430f76b7 [shellprocess] Apply current coding style 2019-08-01 23:10:20 +02:00
Adriaan de Groot
d363732302 [tracking] Use std::chrono where appropriate 2019-08-01 23:07:45 +02:00
Adriaan de Groot
5183200515 [tracking] Apply current coding style 2019-08-01 23:05:42 +02:00
Adriaan de Groot
e3ecb083a0 Merge branch 'strictly-typed-timeout' 2019-08-01 23:00:28 +02:00
Adriaan de Groot
a0854a999e Modules: chase API change, use std::chrono::seconds 2019-08-01 22:59:06 +02:00
Adriaan de Groot
e2504627aa [libcalamaresui] Chase timeout-type into the UI library
(TODO: move ProcessJobModule to libcalamares, it has no UI dependency)
2019-08-01 22:51:52 +02:00
Adriaan de Groot
cac07c1472 [libcalamares] Use std::chrono::seconds for timeouts
- Distinguish just-an-int from seconds all across the API
2019-08-01 22:47:42 +02:00
Adriaan de Groot
626fd8828a Merge pull request #1206 from apt-ghetto/espMount
[fatab] Esp mount options
2019-08-01 19:15:36 +02:00
Adriaan de Groot
abd7ce2886 Merge branch 'master' into strictly-typed-timeout 2019-08-01 15:55:53 +02:00
Adriaan de Groot
bedff6b252 [netinstall] Log immediate failures
- If the request is immediately bad (e.g. because of a botched
   url) then log that fact; in this case no finished() is ever
   emitted.
2019-08-01 15:17:24 +02:00
Adriaan de Groot
82055f6854 [netinstall] Logging; code duplication
- If there was an error, the network reply was never deleted
 - Improve logging to show where data is coming from
2019-08-01 14:31:25 +02:00
Adriaan de Groot
2bb66b8b9b [preservefiles] Example with REQUIRES
- preservefiles generally needs to have the target filesystems
   mounted, so that it can preserve to them; but you can also
   configure it such that there is no need for mounted filesystems
   (e.g. in OEM setup).
 - Add an example line in CMakeLists.txt to show how that would be done.
2019-08-01 12:37:23 +02:00
Adriaan de Groot
b0bcdba867 [unpackfs] Needs mount before it
- The mount module must happen before unpackfs because that (mount)
   module sets up the root mount point (in /tmp) and some other
   variables needed later.
2019-08-01 12:37:03 +02:00
Adriaan de Groot
4652df0643 CMake: allow required modules in calamares_add_plugin
- Add a REQUIRES keyword
 - Write out values to the descriptor
 - Add some documentation for the function as a whole
2019-08-01 12:36:40 +02:00
Adriaan de Groot
c19ce26e5f [libcalamares] Expand GlobalStorage with load()
- Counterpart to save(), for JSON-style dumps
2019-08-01 12:25:42 +02:00
Adriaan de Groot
20cf0c8f3d [libcalamaresui] Remove unused code
- This operator is declared, yet never defined or used. The definition
   was removed in fb44fb97b6.
2019-08-01 11:32:32 +02:00
Adriaan de Groot
58de7cea94 [calamares] Allow test-loading of View modules
The view modules need a QApplication, not just a core application,
and a ViewManager instance, so create those before really loading
the module.
2019-08-01 11:30:40 +02:00
Adriaan de Groot
a0f7ef64d4 Merge branch 'unfactor-paste'
This factors out the functionality for the pastebin and removes
the automatic-failure it introduced, but leaves the pastebin
enabled on failure (but not configurable).
2019-07-30 15:48:23 +02:00
Adriaan de Groot
566be48f16 libcalamaresui: rename and document pastebin method 2019-07-30 15:47:44 +02:00
Adriaan de Groot
2aae30f517 libcalamaresui: don't rely on translations to interpret button
- Keep the debug-failure-call in the code, but commented out
 - Check ButtonRole, rather than the button's text, to see
   which one it is.
2019-07-30 15:43:20 +02:00
Adriaan de Groot
675a35bb2e libcalamaresui: when displaying pasted URL, don't be fancy
- Just call the static method and then quit, rather
   than being careful about allocations.
2019-07-30 15:28:17 +02:00
Adriaan de Groot
fac9ccde88 libcalamaresui: document magic constants in question() 2019-07-30 15:15:41 +02:00
Adriaan de Groot
630694b242 libcalamaresui: apply coding style to viewmanager 2019-07-30 15:12:05 +02:00
Adriaan de Groot
d49ddf6463 libcalamaresui: factor out the pastebin functionality
- While called from the ViewManager (to post the debug log)
   this isn't really part of the ViewManager itself, so factor
   out the pasting code into its own file.
2019-07-30 15:09:25 +02:00
Adriaan de Groot
8f7d183a0c libcalamaresui: don't always fail
- The paste-branch was merged too soon. Now undoing the damage.
2019-07-30 14:41:42 +02:00
Adriaan de Groot
fff86f1115 Changes: Credits for newly-merged patches 2019-07-30 13:23:23 +02:00
apt-ghetto
0f5ff9a517 Add possibility to set mount options for the ESP
Added new configuration "efiMountOptions" to fstab.conf
When generating the fstab entry for the ESP, take the mount options from
the new configuration or fall back to "mountOptions".
2019-07-29 18:03:32 +02:00
apt-ghetto
8a545941d4 Remove flake8 errors
Remove the flake8 errors. This commit does not change any behaviour.
2019-07-29 16:01:30 +02:00
Calamares CI
2bac96425f i18n: [python] Automatic merge of Transifex translations 2019-07-29 13:29:04 +02:00
Calamares CI
08ac97b1ea i18n: [dummypythonqt] Automatic merge of Transifex translations 2019-07-29 13:29:03 +02:00
Calamares CI
6aec65ec70 i18n: [calamares] Automatic merge of Transifex translations 2019-07-29 13:29:03 +02:00
Adriaan de Groot
edd2cc7244 Merge pull request #1186 from bill-auger/master
implement post log to paste server (needs some cleanup)
2019-07-29 13:26:13 +02:00
Adriaan de Groot
97384d3839 Merge pull request #1187 from bill-auger/job-weights
implement definable job weights
2019-07-29 13:25:09 +02:00
Adriaan de Groot
8c6ebbf0a5 Merge pull request #1204 from embar-/patch-1
add missing ";" in calamares.desktop

The trailing `;` is optional as far as the spec goes, but we'll add it for completeness.
2019-07-29 13:23:57 +02:00
embar-
3bd73a97ce add missing ";" in calamares.desktop 2019-07-27 14:40:39 +03:00
embar-
5b4e1d1686 add missing ";" in calamares.desktop 2019-07-27 14:38:00 +03:00
Adriaan de Groot
ca58b67eb9 Changes: post-release housekeeping 2019-07-06 01:16:28 +02:00
Adriaan de Groot
e88269089b Changes: pre-release housekeeping 2019-07-06 00:52:35 +02:00
Adriaan de Groot
c9b675cbc6 Merge remote-tracking branch 'origin/more-permissions'
FIXES #1190
FIXES #1191
2019-07-06 00:45:34 +02:00
Adriaan de Groot
937dac47d8 Changes: refer to CVE numbers for both issues 2019-07-06 00:44:53 +02:00
Adriaan de Groot
940c990268 [initcpio] [initramfs] Allow turning off CVE mitigations
- The mitigations are slightly intrusive, and may clash
   with other, similar mitigations (especially for initramfs,
   the recommended solution is to configure the system with
   the snippet outside of Calamares).
2019-07-06 00:04:16 +02:00
Calamares CI
b43dee45e1 i18n: [python] Automatic merge of Transifex translations 2019-07-05 23:31:28 +02:00
Calamares CI
263c0166c6 i18n: [calamares] Automatic merge of Transifex translations 2019-07-05 23:31:28 +02:00
Adriaan de Groot
a761bf0280 [initramfs] Add tests
- These tests exercise the createTargetFile() logic,
   which is essential for creating a safe initramfs
   configuration snippet.
 - Could be moved into libcalamares instead, since the tests
   are not really initramfs specific.
2019-07-05 23:21:24 +02:00
Adriaan de Groot
76ce0e4f2b [libcalamares] Don't crash when creating System object
- In tests, a System object might be created without first
   setting up a JobQueue. In that case, there's no instance,
   so no GS to insert into. Avoid crash here.
2019-07-05 23:20:19 +02:00
Adriaan de Groot
39d618c61e [initcpio] Simple test for fixPermissions() 2019-07-05 13:28:32 +02:00
Adriaan de Groot
5f6efd2822 [initcpio] Improve security by making initramfs files not world-readable 2019-07-05 13:17:55 +02:00
Adriaan de Groot
1a85435372 [libcalamares] Get target path relative to host / 2019-07-05 13:05:49 +02:00
Adriaan de Groot
43eb664e7d [initramfs] Configure mkinitramfs to be safe
SEE #1191
2019-07-05 11:43:40 +02:00
Adriaan de Groot
b697461497 [libcalamares] Add System::createTargetFile()
- Calamares may need to create files in the target system;
   provide a convenient API for doing so.
 - This is mostly intended for small files with constant contents.
2019-07-05 11:29:14 +02:00
Adriaan de Groot
d220fcea24 CI: allow different versions of clang-format 2019-07-05 10:47:31 +02:00
Adriaan de Groot
315e1ac54e [luksbootkeyfile] Improve logging to distinguish from other modules 2019-07-04 22:08:36 +02:00
Adriaan de Groot
bb6530577d [initcpio] Replace Python implementation with C++
- This is a simple variation on the theme of things-that-call-a-
   initramfs-updater, so the code is mostly a copy of initramfs/
   module. I didn't even bother to strip out the configuration-
   handling (I figure it might be good for *something*) so now
   "" and "$uname" are valid kernel names as well.
 - Fixes security issue where the initramfs ends up readable
   by all, and that includes the cryptfile for LUKS.

SEE #1190
2019-07-04 20:23:40 +02:00
Adriaan de Groot
d5340f9743 [initramfs] Drop timeout entirely, even two minutes too short 2019-07-04 20:05:48 +02:00
Adriaan de Groot
efd409cf78 [luksbootkeyfile] Refactor static function to outside class 2019-07-04 19:38:10 +02:00
Adriaan de Groot
7d7d4c69ef [luksbootkeyfile] Don't log passphrase 2019-07-04 19:37:37 +02:00
Adriaan de Groot
8a7884d476 [luksbootkeyfile] More debugging of the crypt file 2019-07-04 19:30:11 +02:00
Adriaan de Groot
97e44f971d [initramfs] That's not a safety setting
- Don't confuse a method declaration with an object.
 - Thanks clang for warning me.
2019-07-04 16:23:21 +02:00
Adriaan de Groot
e2028cf85b [libcalamaresui] Warnings--, no copy constructor for CDebug 2019-07-04 16:20:26 +02:00
Adriaan de Groot
4c5008ecb1 Merge branch 'issue-1190'
SEE #1190
2019-07-04 16:14:33 +02:00
Adriaan de Groot
af2a900276 [luksbootkeyfile] Fix lax permissions on file. 2019-07-04 16:05:58 +02:00
Adriaan de Groot
856a2eaa1d [luksbootkeyfile] Implement keyfile creation and use
- Just copy the commands from the existing Python code,
   including nonsensical dd.
2019-07-04 16:05:54 +02:00
Adriaan de Groot
8706b579ec [luksbootkeyfile] Stub out an implementation
- stubs for the actual work to be done
 - program-flow for looping over all the work
2019-07-04 16:05:54 +02:00
Adriaan de Groot
f6c50564cd [luksbootkeyfile] Extract devices that need cryptsetup
- Rename classes and functions to be more descriptive
   (a LuksDevice is .. information for a LUKS device, for instance).
 - Move the smarts of unpacking a QVariantMap to LuksDevice.
 - Apply code formatting
2019-07-04 16:05:54 +02:00
Adriaan de Groot
745b4b1693 [luksbootkeyfile] Extract partitioning keyphrases from GS 2019-07-04 16:05:48 +02:00
Adriaan de Groot
676df86712 [luksbootkeyfile] Stub job implementation in C++ 2019-07-04 16:05:47 +02:00
Adriaan de Groot
c2fa315735 [luksbootkeyfile] Prepare for C++-ification
- Mess around with the CMakeFile in preparation of new code
 - Drop the Python implementation already
2019-07-04 16:05:47 +02:00
Adriaan de Groot
fff5a43469 Changes: document luksbootkey issue 2019-07-04 16:05:47 +02:00
Adriaan de Groot
4825916f09 [branding] Improve log message when slideshow starts
- Having just "component activated" is confusing in the whole
   mess of log messages around job activation.
2019-07-04 13:24:40 +02:00
Adriaan de Groot
91644b4ba2 [libcalamares] Partially fix implementation of timeout
- Adjust most call sites to use std::chrono::duration,
 - Call to QProcess::waitForFinished() needs work, since
   that takes milliseconds.
2019-07-04 11:50:14 +02:00
Adriaan de Groot
938b1ac4aa [libcalamares] Make API more type-explicit with std::chrono
- Having an int timeoutSec is suggestive -- it's probably a number
   of seconds -- but having an explicit type that says it's seconds
   is better.
 - Doesn't compile, because the implementation and consumers have
   not changed.
2019-07-04 11:48:43 +02:00
Adriaan de Groot
e2aa4e59e2 CI: massage the coding style a little 2019-07-04 11:36:37 +02:00
Adriaan de Groot
1be81ec3b0 [initramfs] Bump the timeout much higher
- Use 120 seconds for update-initramfs, instead of 10. Previous
   Python code had no timeout at all, which wasn't so hot either.
   10 seconds, though, is too short for slow CPU & slow disk.
2019-07-03 21:20:08 +02:00
Adriaan de Groot
0030966986 [initramfs] Set umask before update-initramfs
SEE #1191
2019-07-03 00:43:40 +02:00
Adriaan de Groot
aa3f909be7 [libcalamares] Tests for UMask handling 2019-07-03 00:40:05 +02:00
Adriaan de Groot
0685e3a96c [libcalamares] Move tests of the utils classes into utils/
- while here, adjust include paths (to changed dir)
 - while here, apply new code formatting
2019-07-03 00:40:05 +02:00
Adriaan de Groot
31e78ff0c2 [libcalamares] Add umask helper functions 2019-07-03 00:40:05 +02:00
bill-auger
c90d3b2016 squashme WIP upload log to paste server - more error checks and validations 2019-06-30 09:52:31 -04:00
bill-auger
e096631c54 squashme WIP upload log to paste server - refactor error checking 2019-06-30 09:52:29 -04:00
bill-auger
e7960474d4 implement post log to paste server 2019-06-30 09:50:24 -04:00
bill-auger
9201842025 implement definable job weights 2019-06-28 13:38:53 -04:00
Adriaan de Groot
69032ab5a0 Changes: post-release housekeeping 2019-06-28 13:47:25 +02:00
Adriaan de Groot
c0cd14df47 [initramfs] Fix sample config file for tests
- the tests want a non-empty config, so put something in there:
   a kernel setting that matches the legacy behavior.
2019-06-28 13:04:40 +02:00
Adriaan de Groot
1bb3ea35b5 Changes: pre-release housekeeping 2019-06-28 12:59:44 +02:00
Calamares CI
a85b5e8549 i18n: [python] Automatic merge of Transifex translations 2019-06-28 12:52:42 +02:00
Calamares CI
db4c23d403 i18n: [calamares] Automatic merge of Transifex translations 2019-06-28 12:52:41 +02:00
Adriaan de Groot
18bf925a11 [libcalamaresui] Name pending requirements checks
- Give each check a name (based on the module it runs for, so
   there might be overlaps when there are multiple module instances).
 - Log the remaining checks each time the timeout fires, to help
   figure out which one is hanging.
2019-06-27 15:30:32 +02:00
Adriaan de Groot
0bd2bfa708 CI: apply coding style to libcalamaresui/modulesystem 2019-06-27 15:15:47 +02:00
Adriaan de Groot
bd8c3fd893 CI: apply coding style to libcalamares/modulesystem 2019-06-27 15:13:32 +02:00
Adriaan de Groot
08b24b9ea2 [libcalamaresui] Fix Doxygen comments 2019-06-26 12:12:17 +02:00
Adriaan de Groot
b7ffa3109d Merge branch 'issue-1180'
FIXES #1180
2019-06-24 16:47:53 +02:00
Adriaan de Groot
f7cbb7b5ea Changes: Note modified initramfs module
- Also add note about $uname handling.
2019-06-24 16:47:20 +02:00
Adriaan de Groot
6ae8bd82fa [initramfs] Log what kernel will be passed to update-initramfs 2019-06-24 16:37:58 +02:00
Adriaan de Groot
a2d7fdcb8a [initramfs] Document settings
- Move the README text into the config file
 - Document the *kernel* setting
2019-06-24 16:35:54 +02:00
Adriaan de Groot
8d712276ad [initramfs] Replace module with C++ implementation
- new implementation handles blank (maps to "all") configuration,
 - allows specifying "$uname" as kernel name, to use `uname -r`,
 - allows specifying a specific kernel.
2019-06-24 14:38:56 +02:00
Adriaan de Groot
b216daf574 [initramfs] Prepare for C++-ification 2019-06-24 13:19:24 +02:00
Adriaan de Groot
a991577779 Merge branch 'refactor-getpartitions' into kpmcore-manager 2019-06-24 13:11:20 +02:00
Adriaan de Groot
399919c49a [partition] Swap the two implementations of getting partitions 2019-06-24 13:10:45 +02:00
Adriaan de Groot
f2438a5bf4 [partition] Implement other way of getting partitions
- Just read /proc/partitions and process it; split into columns,
   add relevant bits.
 - This implementation supports devices named "name", which the other
   didn't (but that would be really weird).

The tests now pass.
2019-06-24 13:09:07 +02:00
Adriaan de Groot
d16c75b15c [partition] Expand tests to ClearMountsJob
- This is a tiny bit of TDD to replace the existing implementation
   (a shell pipeline) with processing inside Calamares.
 - The test fails right now, since the implementations are not
   the same.
2019-06-24 12:47:53 +02:00
Adriaan de Groot
b1ccd573f8 [partition] Code-formatting for tests 2019-06-24 12:37:00 +02:00
Adriaan de Groot
ecdd09edcd [partition] Refactor getting partitions from device
- Split out into own function
 - Prepare for implementation that doesn't use external processes
2019-06-21 21:17:43 +02:00
Calamares CI
c57e914a23 i18n: [python] Automatic merge of Transifex translations 2019-06-21 16:43:01 +02:00
Calamares CI
42bd638667 i18n: [dummypythonqt] Automatic merge of Transifex translations 2019-06-21 16:43:01 +02:00
Calamares CI
9b1712d688 i18n: [desktop] Automatic merge of Transifex translations 2019-06-21 16:43:01 +02:00
Calamares CI
12fa6978f0 i18n: [calamares] Automatic merge of Transifex translations 2019-06-21 16:43:00 +02:00
Adriaan de Groot
61f46e77e0 [libcalamares] Typo-fix in comment 2019-06-21 16:38:15 +02:00
Adriaan de Groot
d3df346ce7 [libcalamares] Move TemporaryDir into TemporaryMount
- Only one user of TemporaryMount, and we should distinguish
   "regular" temp mounts from temp mounts with a hand-picked
   mount point.
2019-06-21 16:37:35 +02:00
Adriaan de Groot
5876c3fdd7 [partition] Warn about storage setting in partition.conf
- This is really a specialised setting, not something for
   general use. People should be using `welcome.conf` instead.
2019-06-21 13:43:02 +02:00
Adriaan de Groot
08537823ae [libcalamares] Special-case for not-for-dash-o options
- The unpackfs module uses this to --bind-mount things
   without options.
2019-06-21 10:45:29 +02:00
Adriaan de Groot
5597215d58 [partition] Needs to settle the disks after all the changes 2019-06-20 17:14:14 +02:00
Adriaan de Groot
5a18a6cba9 [partition] Mark this use of "mount" as debugging-only
- This call doesn't need to be replaced by the mount helpers
   in the partition service, since it's just debug output telling
   what *is* mounted.
2019-06-20 17:01:57 +02:00
Adriaan de Groot
c14239ca30 [unpackfs] Still raise if mount fails 2019-06-20 16:58:27 +02:00
Adriaan de Groot
1b91f831bf [unpackfs] Use the Python mount-API 2019-06-20 16:14:30 +02:00
Adriaan de Groot
ba7259d9ee [partition] Use TemporaryMount support class
- While here, fix up compile warning
 - add -R to umount for good measure
2019-06-20 14:49:44 +02:00
Adriaan de Groot
dd0adeb3bb [libcalamares] Add a RAII mounter
- mount on creation, unmount on destruction
2019-06-20 14:34:08 +02:00
Adriaan de Groot
2b4ffb2bd3 [libcalamares] Polish coding-style
- don't break after return type in declarations
 - apply same to partition service
2019-06-20 14:30:49 +02:00
Adriaan de Groot
e6b55a1f70 [libcalamares] Code-formatting Sync.* 2019-06-20 13:53:02 +02:00
Adriaan de Groot
e59b3e8bf5 [libcalamares] Add unmount helper function 2019-06-20 13:52:36 +02:00
Adriaan de Groot
6ba8ac8526 [libcalamaresui] Use mount from partition service 2019-06-20 12:13:45 +02:00
Adriaan de Groot
add90e873b [libcalamares] Provide overload of runCommand()
- Most of the time the working dir and stdin are not important,
   you just want to run a command in the host, so simplify that
   by providing a suitable overload.
 - Use that overload from the partition service (for mount and sync).
2019-06-20 11:52:51 +02:00
Adriaan de Groot
93eb712824 [libcalamares] After mount, sync to make sure things are settled 2019-06-20 11:38:08 +02:00
Adriaan de Groot
d08325d3d0 [libcalamares] Move mount to the partition service
- Move mount() out of CalamaresUtils::System and into
   the partitioning service.
 - Adjust PythonJobApi (only consumer of that service).
2019-06-20 11:35:46 +02:00
Adriaan de Groot
2c399d4494 [libcalamares] Add settle / sync support method 2019-06-19 12:14:49 +02:00
Adriaan de Groot
5e352c6771 [libcalamares] Mark KPM support API as such
- Some of these classes are only compiled in when KPMcore is found.
2019-06-19 09:07:04 +02:00
Adriaan de Groot
3bd77913f7 Merge branch 'master' into kpmcore-manager 2019-06-19 08:52:31 +02:00
Adriaan de Groot
44417a35b4 Merge branch 'issue-1178'
Make buttons happy. FIXES #1178
2019-06-18 22:55:55 +02:00
Adriaan de Groot
79dc9e3463 [libcalamares] Update button icons as we go along
- Adapt the button icons (previous, next, do-install, all-done)
   to the state of the buttons and the corresponding text.
2019-06-18 22:54:41 +02:00
Adriaan de Groot
b3d9af4cae [libcalamaresui] Apply correct button labels
- updateButtonLabels() knows all the special cases for
   buttons, so use it when the language changes instead
   of setting up some possibly-wrong values.
 - One edge case that this fixes is: have **just** the welcome
   page before the first exec section in sequence. Then the
   *next* button label was *next* instead of *install*.
2019-06-18 22:45:49 +02:00
Adriaan de Groot
780fe125f7 [libcalamaresui] Give the buttons icons
- Next, Back, Cancel/Quit have somewhat-appropriate icons.
2019-06-18 16:18:18 +02:00
Adriaan de Groot
a5cef2175e [libcalamares] Add tests for the locale service
- Minimal tests just check that all the availableTranslations()
   entries have a reasonable language setting.
 - Checks that Esperanto is still broken as a locale in Qt.
2019-06-18 15:27:59 +02:00
Adriaan de Groot
0a48696254 Merge branch 'improve-errors' 2019-06-18 12:36:11 +02:00
Adriaan de Groot
0f66a89236 [welcome] Only do GeoIP query if it's useful
- If badly-configured, then type is none; this is warned about
   in the constructor of Handler()
 - Only run the query if it's a useful type.
2019-06-18 12:34:52 +02:00
Adriaan de Groot
68dc1f5e31 [libcalamares] Warn about badly-configured GeoIP
- Warn when type will be none
 - Re-order warnings from general to specific
2019-06-18 12:33:56 +02:00
Adriaan de Groot
3967f6c5ae [welcome] Log where GeoIP information came from, if it's unusable
- This helps chase down broken GeoIP configurations, since you
   can check the URL and handler type shown in the log.
2019-06-18 12:24:30 +02:00
Adriaan de Groot
6183c4e2f4 [libcalamares] Add accessors for GeoIP handler attributes 2019-06-18 12:17:25 +02:00
Adriaan de Groot
34b1a250ba [libcalamares] Improve warnings when module descriptor files are bad 2019-06-18 12:06:13 +02:00
Adriaan de Groot
5fdaeaa899 [libcalamaresui] Improve wording when module is missing configuration 2019-06-18 11:58:03 +02:00
Adriaan de Groot
25fe8f73c9 CI: label languages "incomplete" at < 5% 2019-06-18 11:44:19 +02:00
Adriaan de Groot
b1f9d1334c CI: chase Python deprecations in ConfigParser 2019-06-17 16:07:06 +02:00
Adriaan de Groot
36789d23fb CMake: update language list (add ca@valencia) 2019-06-17 16:04:41 +02:00
Adriaan de Groot
e94bbc5e0c [dummyprocess] Add some delay in the dummy 2019-06-17 15:53:02 +02:00
Calamares CI
5daa3b61e1 i18n: [calamares] Automatic merge of Transifex translations 2019-06-17 15:43:28 +02:00
Calamares CI
74059dcaef i18n: [python] Automatic merge of Transifex translations 2019-06-17 15:35:07 +02:00
Calamares CI
1d01253249 i18n: [dummypythonqt] Automatic merge of Transifex translations 2019-06-17 15:35:07 +02:00
Calamares CI
8e2b49364c i18n: [calamares] Automatic merge of Transifex translations 2019-06-17 15:35:07 +02:00
Adriaan de Groot
63d1378721 CMake: need to create dir before copying to it 2019-06-17 15:17:29 +02:00
Adriaan de Groot
13d949f913 Changes: point to slideshow API versions
FIXES #1152
2019-06-17 13:11:04 +02:00
Adriaan de Groot
1c5a37d7d2 [branding] Add French and Arabic default translations 2019-06-17 12:52:59 +02:00
Adriaan de Groot
bba0b7ce12 [branding] Update documentation about API versions 2019-06-17 12:45:06 +02:00
Adriaan de Groot
c7d09f06c5 [libcalamaresui] QML Retranslation since Qt 5.10 2019-06-17 12:23:31 +02:00
Adriaan de Groot
79bd7b6b89 Merge branch 'issue-1152' 2019-06-17 11:54:01 +02:00
Adriaan de Groot
58f6635ca0 [libcalamaresui] Force retranslation on language change 2019-06-17 11:52:20 +02:00
Adriaan de Groot
f9bd0fba10 [libcalamares] Handle async QML loading
- The component isn't ready immediately, so instatiate
   once it is fully loaded and ready
 - Edge case if the execution view step is already visible, then
   start the show (because a previous call to onActivate() will
   have missed it).
2019-06-17 11:47:25 +02:00
Adriaan de Groot
193bcbde71 [libcalamaresui] Use setSource() for API version 1
- Just avoid all the componentized loading and do the
   synchronous load-compile-setContent thing.
2019-06-17 11:17:06 +02:00
Adriaan de Groot
15ab98cb26 [libcalamaresui] Use API version to load slideshow differently 2019-06-17 11:05:56 +02:00
Adriaan de Groot
148b829591 [libcalamares] Introduce slideshowAPI setting 2019-06-17 10:58:14 +02:00
Adriaan de Groot
c80b56380d Merge branch 'default-branding-i18n' 2019-06-16 23:48:12 +02:00
Adriaan de Groot
ef2531b01d [branding] Update documentation
- mention that translations are included
 - point to external repo for fancy/ example.
2019-06-16 23:46:32 +02:00
Adriaan de Groot
a08e764467 CMake: add compiled branding translations to build dir
- Copy the .qm files (compiled translations) into the build
   dir as part of the build process. This is independent of
   **installing** those same translations, but does allow
   the translations to be used by Calamares when run from the
   build dir for testing.
2019-06-16 23:38:44 +02:00
Adriaan de Groot
f3f8f3ea46 [branding] Make the default show nervously quick 2019-06-16 23:08:12 +02:00
Adriaan de Groot
593dcff40a [branding] Enable translations for the default show
- Just translate two simple strings, to avoid burdening translators,
 - Add Dutch translation already.

These translations are not yet processed by ci/txpull and push.
2019-06-16 23:01:56 +02:00
Adriaan de Groot
41c2a7e4e0 [branding] Drop complicated machinery for one subdir 2019-06-16 22:42:53 +02:00
Adriaan de Groot
cd7fc93b6a [branding] Be more chatty when slideshow is loaded 2019-06-16 13:47:21 +02:00
Adriaan de Groot
003f37ca04 [branding] Be more chatty in example slideshow
- Log when the timer fires and the slide advances
 - Add a start() function (unused at this moment, will be
   called from C++ at the right time)
2019-06-16 13:44:27 +02:00
Adriaan de Groot
9188eab66f Changes: document new things in slideshow 2019-06-16 13:33:20 +02:00
Adriaan de Groot
075f0787f9 Merge branch 'master' into issue-1152 2019-06-16 13:11:03 +02:00
Adriaan de Groot
71209b323a [libcalamaresui] Call QML methods on start and stop
- Use onActivate() and onLeave() in QML as well, to start and stop
   the slideshow.
2019-06-16 13:06:34 +02:00
Adriaan de Groot
68e6bd676e [libcalamaresui] Instantiate QML at load time
- By instantiating only on activation, an ugly "white" gap
   appears where there is no widget at all. So instantiate
   earlier so that the widget already exists and is painting
   by the time the slideshow part is visible.
 - This makes the net effect of this branch so far zero:
   the slideshow is still loaded and started when Calamares starts.
2019-06-16 12:15:41 +02:00
Adriaan de Groot
5c6c67a974 [libcalamares] Destroy jobs once they have run 2019-06-15 17:45:01 +02:00
Adriaan de Groot
1962bbf08d [libcalamares] Compute length of JobQueue just once
- Calculate the length once at the start -- this is because
   future work will modify the queue rather than just iterating
   over it.
 - Describe the slightly-surprising progress-percentage calculation.
2019-06-15 13:38:51 +02:00
Adriaan de Groot
2cffe2ec1a [libcalamares] Move debugging to more useful spot
- Count the KPMManagers as they are created
2019-06-15 12:51:31 +02:00
Adriaan de Groot
8e4a2b3543 CMake: Handle KPMCore version better
- provide complete information for feature_summary
 - set the right API version when building libcalamares
 - report the beta version number when it's wrong
2019-06-14 23:57:07 +02:00
Adriaan de Groot
f6373561d3 [partition] One more job that uses KPMCore 2019-06-14 23:39:44 +02:00
Adriaan de Groot
9c85537659 [partition] The VG jobs also use KPMCore
- Give them a manager just like other KPMCore-based jobs,
   so that the privileged helper can be shut off on time.
2019-06-14 23:32:34 +02:00
Adriaan de Groot
042cef0945 [partition] Make kpmcore includes consistent 2019-06-14 23:20:26 +02:00
Adriaan de Groot
c7da99d870 [partition] More includes fixes, "" instead of <> 2019-06-14 23:14:11 +02:00
Adriaan de Groot
e8408cb5b2 [partition] Fix include path type
- Don't use #include <> for files in the current source directory.
2019-06-14 22:59:40 +02:00
Adriaan de Groot
4df9bd8917 [partition] Use KPM manager in partitioning jobs
- This gives all the partition-changing jobs an easy way to
   manage the lifetime of the privileged helper.
2019-06-14 22:51:35 +02:00
Adriaan de Groot
ed999a247a [fsresizer] Use partition service
- Don't need to initialize KPMCore ourself.
 - Simplify error paths.
2019-06-13 23:39:06 +02:00
Adriaan de Groot
d0d017f5fe [libcalamares] Add convenience backend() to KPMManager 2019-06-13 23:39:06 +02:00
Adriaan de Groot
d039f9bbb8 [partition] Remove initKPMCore() from KPMHelpers
- This is a job for KPMManager, from the partition service.
 - In tests, needs to be a little hackish.
2019-06-13 23:39:06 +02:00
Adriaan de Groot
a01539b664 [libcalamares] Fix memory ownership of KPMManager
- The InternalManager object should have at most one living
   instance at a time.
 - getInternal() hands out shared_ptr<>s to the one living instance,
   or creates a new one.
 - The creation of a new InternalManager shouldn't count as a reference
   to it, and it mustn't be deleted after the shared_ptr<>s have done
   their work.
 - So static shared_ptr<InternalManager> was the wrong choice,
   since that leads to double deletes.
 - While here, be a little more chatty when loading KPMCore.
2019-06-13 23:38:50 +02:00
Adriaan de Groot
1674c81e9c [libcalamares] Add query for kpmcore status 2019-06-13 23:38:50 +02:00
Adriaan de Groot
7adbc8cda6 [libcalamares] Add KPMCore manager
- This handles cleaning up KPMCore on exit
2019-06-13 23:38:50 +02:00
Adriaan de Groot
8eb04a082e [libcalamares] Move FS-related code to partition service
- only moves one function right now, providing user-visible
   name for filesystem name.
2019-06-13 14:55:43 +02:00
Adriaan de Groot
a7a3c4f2d8 [libcalamares] Unused include 2019-06-13 14:51:13 +02:00
Adriaan de Groot
93742a8efe [libcalamares] Reformat new code in partition service 2019-06-13 14:47:44 +02:00
Adriaan de Groot
4b3bb54320 [libcalamares] Move partition-finding into libcalamares
- Moved from KPMHelpers to the partition service
 - The is-partition and find-partition methods that make sense
   in general, are moved to libcalamares.
2019-06-13 14:41:33 +02:00
Adriaan de Groot
3930826e93 [fsresizer] [partition] Drop special cases for kpmcore 3.3.1 2019-06-13 14:10:49 +02:00
Adriaan de Groot
9f0f08b571 [partition] Replace useless qobject_cast
- We know the type of the widget, but were declaring it as
   a QWidget. Just forward-declare the class and be done with it.
2019-06-13 14:02:43 +02:00
Adriaan de Groot
ca9f21d805 [libcalamares] Refortmat the partition service 2019-06-13 12:35:32 +02:00
Adriaan de Groot
ebc4ebbbcc CI: don't indent namespaces at all 2019-06-13 12:33:36 +02:00
Adriaan de Groot
4202126f34 [fsresizer] [partition] Fix build with moved headers
- PartitionIterator has moved into libcalamares
 - While here, sort and organize #include lines
 - Add using to keep code impact small
2019-06-13 12:27:39 +02:00
Adriaan de Groot
8885611ae3 [libcalamares] Fix build with non-namespaced KPMCore types 2019-06-13 12:27:21 +02:00
Adriaan de Groot
d8dc512f45 [libcalamares] Move PartitionIterator to partition service.
- Starting to centralize utility code for partitioning into
   libcalamares instead of scattered and weirdly shared between
   modules.
 - This particular commit breaks compiling the modules, though.
2019-06-13 12:12:47 +02:00
Adriaan de Groot
f1822c2adb [partition] [fsresizer] For simplicity, disallow beta KPMcore 2019-06-13 11:45:20 +02:00
Adriaan de Groot
83d296bcd0 Merge branch 'clang-format'
- Update coding style (more braces!) and coding documentation,
   reformat parts. The idea is to go through and re-do the
   coding style across the whole codebase incrementally, but
   systematically, in the next release or two.
2019-06-13 11:11:01 +02:00
Adriaan de Groot
3b146d47d0 CI: Remove mention of cLog from documentation 2019-06-13 11:07:45 +02:00
Adriaan de Groot
5dfc4884b3 [calamares] Increase constness
- The model shouldn't change items at all.
2019-06-12 12:45:47 +02:00
Adriaan de Groot
85845c9b3e [calamares] cLog() isn't a thing, return to cDebug() 2019-06-12 08:32:28 +02:00
Adriaan de Groot
a6d7fcdadf [calamares] Reformat the rest of the application 2019-06-11 13:44:29 +02:00
Adriaan de Groot
9235499f7f [calamares] Reformat the progresstree
- add { } to single-line blocks
 - group some includes better
 - lines broken at a different length, some shuffling around of
   parameter lists.
2019-06-11 13:44:29 +02:00
Adriaan de Groot
8053bf6f3a CI: use both tools for code-formatting
- astyle can do some things that clang-format doesn't (e.g.
   adding brackets; you need clang-tidy for that),
 - clang-format does a much nicer job with lambdas and certain
   other constructions,
 - allow passing in directories at a time for formatting.
2019-06-11 13:44:29 +02:00
Adriaan de Groot
54c3adb466 CI: add brackets to one-line blocks
- since we mix Python (indentation is important) with C++ (it isn't),
   having indented one-line blocks which suddenly need {} when a
   statment is added is confusing and error-prone. Instead, make
   the blocks explicit, always, in C++.
2019-06-11 13:44:29 +02:00
Adriaan de Groot
94bea9baaf CI: update documentation of debug-levels 2019-06-11 13:44:29 +02:00
Adriaan de Groot
0a1b27fcfa CI: add clang-format as a tool
- update the style guide to require braces around blocks
 - add a clang-format file that is pretty close to the
   astyle configuration
2019-06-11 13:44:29 +02:00
Adriaan de Groot
39675655a0 [calamares] Tidy up include-guard comments 2019-06-11 11:17:44 +02:00
Adriaan de Groot
0d507ec265 [calamares] Tidy up application code
- remove commented code, fix logging around it
 - misplaced include
2019-06-11 11:17:44 +02:00
Adriaan de Groot
7f968e0c83 Merge branch 'issue-1169'
FIXES #1169
2019-06-08 14:39:54 +02:00
Adriaan de Groot
7bda89dac4 Changes: mention issue number in the notes 2019-06-08 14:39:38 +02:00
Adriaan de Groot
1a29555ce0 Changes: document new partition setting 2019-06-08 14:39:17 +02:00
Adriaan de Groot
74432f698f [partition] Allow the requiredStorage setting to propagate
- store into globalStorage if the welcome module hasn't already done so.
 - this ends up used in PartUtils (via globalStorage).
2019-06-08 14:36:11 +02:00
Adriaan de Groot
20c0256932 CI: update AppImage configs
- Use GiB terminology like the example configs already do,
   to match commit 599b34c7
2019-06-08 08:19:08 -04:00
Adriaan de Groot
e6a2cb607f [partition] Add setting for requiredstorage
- If the welcome module isn't used, can set a required amount
   of storage for the installation here.
2019-06-08 07:48:47 -04:00
Adriaan de Groot
b5c50c8d04 [partition] Update canBeReplaced
- Use GiB consistently
 - Provide same kind of debugging information as canBeResized()
2019-06-07 23:19:24 +02:00
Adriaan de Groot
79934aa513 [partition] Use GiB consistently in code 2019-06-07 23:04:24 +02:00
Adriaan de Groot
962776804c [libcalamares] Add BytesToGiB (extends BytesToMiB) 2019-06-07 23:01:18 +02:00
Adriaan de Groot
acf3dbcdcb [partition] Refactor getting the globalStorage value 2019-06-07 22:55:50 +02:00
Adriaan de Groot
3548792d1b [partition] Improve check canBeResized
- Report the globalSettings name properly (with "GiB")
 - Bail out on bad conversion early.
2019-06-07 22:51:33 +02:00
Adriaan de Groot
830e67fae2 Merge branch 'issue-1168'
FIXES #1168
2019-06-07 21:58:51 +02:00
Adriaan de Groot
64ef331562 Changes: document bugfix 2019-06-07 21:58:35 +02:00
Adriaan de Groot
c233bbb23d [libcalamaresui] Handle no-finished-page scenarios
- From an exec section, next() is called automatically when
   all the jobs in that section are done.
 - If there **is** no next section (e.g. there's no finished
   page to show after the exec), then m_steps.at() would assert
   on an out-of-range index.
 - Introdcuce a helper predicate isAtVeryEnd() which handles both
   out-of-range and normal at-the-end scenarios.
 - If there's no page following the exec section, stay with the
   slideshow but update buttons to match the normal last-page
   behavior, and don't ask about cancel (since we're done).
2019-06-07 21:54:07 +02:00
Adriaan de Groot
b23f4f3bb0 Merge branch 'issue-1164'
FIXES #1164
2019-06-07 16:13:07 +02:00
Adriaan de Groot
4f221b41d1 [libcalamares] Close stdin on process jobs
- This avoids processes that wait on stdin, and e.g. improves
   reaction to having just "cat" (no file) in a command, or
   a package manager that asks for input.
2019-06-07 16:11:54 +02:00
Adriaan de Groot
4e13f780f1 [libcalamares] Expand tests for runCommand
- try both with and without a working-directory set, this would have
   shown up the problem with bad indentation much earlier.
2019-06-07 16:00:37 +02:00
Adriaan de Groot
7be33b8196 [libcalamares] runCommand doesn't need queue or settings
- JobQueue is only needed to get global settings, which are needed
   when running in the target; for host commands, allow running
   without a queue.
 - Settings is needed for the value of debugsettings; assume if
   there's no settings object, that we're in a test and should
   print debugging information.
2019-06-07 15:53:27 +02:00
Adriaan de Groot
5a835f32b8 [libcalamares] Start extending tests to runCommand() 2019-06-07 13:56:16 +02:00
Adriaan de Groot
07a59bd09c [libcalamares] All commands with workingDirectory failed
- This is the same as EFAIL: a block is indented as if it's a multi-
   line else block. This isn't Python though, and the return always
   applies.
 - Add the necessary braces.
 - Apparently noone uses this code path (until ProcessJob was re-
   factored to do so).
2019-06-07 13:37:46 +02:00
Adriaan de Groot
d7f5134121 [libcalamares] Be more verbose in error situations
- runCommand can return NoWorkingDirectory in multiple places,
   make sure the log contains a more specific reason.
2019-06-07 13:32:31 +02:00
Adriaan de Groot
b587d77e31 [libcalamares] Fix untranslatable string.
- This would substitue an untranslated "in chroot" into the
   translated string, which is weird.
2019-06-07 12:40:20 +02:00
Adriaan de Groot
6055f08aff [libcalamares] Refactor ProcessJob
- Use the system runCommand() instead of a 90% copy of it.
   This **does** change the overall command to `env /bin/sh -c`
   rather than running only `/bin/sh -c`, though.
2019-06-07 12:30:38 +02:00
Adriaan de Groot
92d03c2cf7 [libcalamares] Introduce enum class for special process exit values
- Replace magic numbers like -3 with named enum values
   (NoWorkingDirectory, for -3).
 - Downside is big-ugly static_casts, but that's what you get
   for having an int as return value for processes.
2019-06-07 12:10:22 +02:00
Adriaan de Groot
61b78d8895 [libcalamares] Stop job threads before exit
- This solves a crash where the thread is destroyed while still
   running (e.g. cancelling during install).
 - The thread might not cooperate in being terminated, but then we
   have a bigger problem anyway (and Calamares will still crash on
   exit).

FIXES #1164
2019-06-07 11:46:08 +02:00
Adriaan de Groot
e49beaea91 CMake: switch WITH_PYTHONQT default to OFF 2019-06-07 10:55:03 +02:00
Adriaan de Groot
0619f19536 CMake: post-release housekeeping 2019-06-07 10:45:53 +02:00
Calamares CI
a7e5488f77 i18n: [python] Automatic merge of Transifex translations 2019-06-07 10:44:02 +02:00
Calamares CI
bbc0edecd3 i18n: [dummypythonqt] Automatic merge of Transifex translations 2019-06-07 10:44:01 +02:00
Calamares CI
21f6ff0e60 i18n: [calamares] Automatic merge of Transifex translations 2019-06-07 10:44:01 +02:00
Adriaan de Groot
40d1856bb1 Changes: remove reference to QML loading, add some issue numbers 2019-06-03 15:04:41 +02:00
Adriaan de Groot
3335c2003e [fsresizer] Fix tests
- Again? The checks on the job name (using filesystem or device
   name) all looked very bogus, unless it was previously not
   setting them at all.
2019-06-03 15:00:04 +02:00
Adriaan de Groot
6dc83d692c CMake: pre-release housekeeping 2019-06-03 15:00:04 +02:00
Adriaan de Groot
de34cacadd Document (hoped-for) speedups in slideshow loading. 2019-06-03 15:00:04 +02:00
Calamares CI
bdac6d1e30 i18n: [python] Automatic merge of Transifex translations 2019-06-03 15:00:04 +02:00
Calamares CI
8f553c0b61 i18n: [calamares] Automatic merge of Transifex translations 2019-06-03 15:00:04 +02:00
Adriaan de Groot
2b5cf9e613 [libcalamaresui] There is code in Qt for setting up QML widgets
- The not-publicly documented setContent() method does all the
   parenting and resizing needed; some of this isn't available
   from outside of the widget either.

The QML slideshow now sizes and re-sizes correctly.
2019-06-03 10:38:29 +02:00
Adriaan de Groot
f52d62034b [libcalamaresui] Manual QML loading trickery
- The slideshow item needs a parent to be visible,
 - QML gets size 0,0 unless explicitly sized to the surrounding widget.
2019-06-03 10:18:24 +02:00
Adriaan de Groot
103decab68 [libcalamaresui] Create the slideshow on activation
- Load QML on startup, compile async
 - Create QML component when the page is reached.
 - On leave, stop the slideshow (otherwise, e.g. timers will keep running)

This should move some of the delay from loading a large
slideshow forward as the engine is already initialized when
we reach the install / slideshow page.
2019-06-03 10:16:52 +02:00
Adriaan de Groot
daf2e55246 [branding] Be more chatty in example slideshow
- Log when the timer fires and the slide advances
 - Add a start() function (unused at this moment, will be
   called from C++ at the right time)
2019-06-03 10:16:52 +02:00
Adriaan de Groot
ff03235e33 [libcalamaresui] Load QML on startup 2019-06-02 13:19:16 +02:00
Adriaan de Groot
5973dbf74c [libcalamaresui] Shuffle code for QML slideshow
- Create widgets earlier
 - Group layouting code
 - Add retranslator only once, not on every activate
 - Load QML only once, preferably at activation
2019-06-01 23:39:39 +02:00
Adriaan de Groot
cbe14bbf03 [libcalamaresui] Rename m_slideShow -> m_qmlShow
- It could be any QML, so it's not a slideshow per se.
 - Minor prep-work for fixing up loading times.
2019-06-01 23:26:08 +02:00
Adriaan de Groot
8506949ecd Changes: Document new welcome-theming 2019-05-31 17:28:33 +02:00
Adriaan de Groot
4c6218f005 Merge branch 'brand-language' 2019-05-31 17:27:25 +02:00
Adriaan de Groot
f54b7dee9f [welcome] Use convenience image loader from Branding 2019-05-31 17:27:11 +02:00
Adriaan de Groot
07c638ed48 [welcome] Allow theming the international language-select icon 2019-05-31 17:27:11 +02:00
Adriaan de Groot
75ce391e7e [libcalamaresui] Add branding-aware function for loading image by name 2019-05-31 17:27:11 +02:00
Adriaan de Groot
1438729b72 [libcalamaresui] Do filename checks more sanely
- check directory exists before trying to open file from it
 - re-use the componentDir already found for later tests.
2019-05-31 17:27:11 +02:00
Adriaan de Groot
69dabcae32 [libcalamares] Avoid static destructor
- The static destructor issues a warning on exit:
       QBasicTimer::start: QBasicTimer can only be used with threads
       started with QThread
   so instead, heap-allocate the model. This leaks memory, but
   it's a singleton *and* we're exiting anyway.
2019-05-31 12:38:34 +02:00
Adriaan de Groot
a263381996 [partition] Avoid an assert when running Calamares as user. 2019-05-31 12:27:32 +02:00
Adriaan de Groot
1ef902a41f Merge branch 'issue-1141'
FIXES #1141
2019-05-31 12:21:18 +02:00
Adriaan de Groot
4a6b9f3528 [partition] Call update from init() in BootLoaderModel
- update() (might) add some extra rows for boot and root,
   which otherwise vanish temporarily when calling init.
2019-05-31 12:11:48 +02:00
Adriaan de Groot
d5f0bdd28c [partition] Simplify negative logic
- Instead of multiple continue statements to avoid negative cases,
   state the one positive case instead.
2019-05-31 12:08:58 +02:00
Adriaan de Groot
3bdbfe6bff [partition] Avoid crash if combobox is gone and model resets
- Since the lambda is connected to the model only, it should
   check that the target combo exists as well.
2019-05-31 12:08:58 +02:00
Adriaan de Groot
2ce2b08027 [partition] Indent lambdas to tab-stop.
- Lambdas are all over the place in this codebase, formulate
   a standard and start adjusting code to it in passing.
2019-05-31 12:08:58 +02:00
Adriaan de Groot
353e713f81 [partition] Complain loudly on dangling Partition pointers
- Don't crash if a bad pointer gets into colorutils.
2019-05-31 12:08:58 +02:00
Adriaan de Groot
2bc95d11d3 [partition] Unrelated typo in comment 2019-05-31 12:08:58 +02:00
Adriaan de Groot
f1f5b6c1bb [partition] Restore BootLoader path in Choice Page
- after model resets, restore what was previously selected.
 - This avoids having an **empty** combobox, SEE #1141 but does
   not actually set it back to the value the user had previously
   picked (e.g. changing swap settings **still** breaks the
   selection).
2019-05-31 12:08:58 +02:00
Adriaan de Groot
0ebabfafd4 [partition] Move BootLoaderModel convenience functions
- These were hidden inside PartitionPage, but are useful elsewhere.
2019-05-31 12:08:58 +02:00
Adriaan de Groot
a2e54fcf65 Changes: prep for release 2019-05-31 12:07:58 +02:00
Philip Müller
b9686a8a84 [Authors] Philip only needs to be listed once
I don't need to be listed more then one time ;)
2019-05-30 13:40:42 +02:00
Adriaan de Groot
8d451622db [partition] Idiomatic use of Calamares::JobList 2019-05-28 16:39:00 +02:00
Adriaan de Groot
e2b71e669e [partition] When running UNSAFE, no-install-partition is a warning 2019-05-28 16:29:45 +02:00
Adriaan de Groot
447a39d71d Merge branch 'issue-1151'
FIXES #1151
2019-05-28 13:40:49 +02:00
Adriaan de Groot
95009a5222 [libcalamaresui] Fix disable-cancel behavior
- d78bc0c5 added an early `return false` when cancel is disabled,
   before checking if we were at the last step; so last-step
   didn't get any special handling.
 - refactor so that last-step now gets special handling first,
   **then** disable-cancel handling, and then the usual case.
2019-05-28 13:38:28 +02:00
Adriaan de Groot
0c24a01eb9 [finished] Improve logging of restart mode
- Don't use weirdly-named mode, store named mode in page,
 - Log the actual mode name when setting up the restart button.
2019-05-28 13:27:21 +02:00
Adriaan de Groot
38c36e2439 [finished] Use idiomatic Calamares::JobList 2019-05-28 13:20:19 +02:00
Adriaan de Groot
1915547004 [finished] Improve logging when restarting. 2019-05-28 13:05:40 +02:00
Calamares CI
2d3f9bcdbb i18n: [python] Automatic merge of Transifex translations 2019-05-28 12:56:23 +02:00
Calamares CI
644aade0f5 i18n: [dummypythonqt] Automatic merge of Transifex translations 2019-05-28 12:56:23 +02:00
Calamares CI
3d78f94ff4 i18n: [calamares] Automatic merge of Transifex translations 2019-05-28 12:56:23 +02:00
Adriaan de Groot
2e39f24bb0 [libcalamaresui] Make sure finished() is processed once
- Avoid races which might double-delete the timer, or enter
   the if twice (which would lead to duplicate emissions of
   requirementsComplete and the associated UI glitches).
2019-05-27 17:15:49 +02:00
Adriaan de Groot
2b91608b82 [libcalamaresui] Avoid requirements-results UI duplication
If the requirements checking is **really fast**, e.g. you don't
have a check for internet connectivity, then the checks
might be done as fast as the 0-timeout single-shot timer,
which means that finished() is called once by the QFutureWatcher,
and then after that by the QTimer .. leading to two messages
"All requirements have been checked", but also twice
requirementsComplete being emitted, so you end up with two
results lists being added by the CheckerContainer.

Stop that by using the results-progress timer as an additional
flag: the first time everything is complete, delete that timer
and set the pointer back to nullptr.
2019-05-27 17:10:21 +02:00
Adriaan de Groot
06bd8749a2 Merge branch 'issue-1160'
FIXES #1160
2019-05-27 16:38:35 +02:00
Adriaan de Groot
966604892b CHANGES: mention icon use in branding 2019-05-27 16:38:06 +02:00
Adriaan de Groot
f64e55f0dc [libcalamaresui] Use meaningful asserts
- In debug mode, hitting assert(false) is meaningless,
 - In release mode, the assert is optimized out.
 - So assert the condition we're actually testing, for better messages.
2019-05-27 15:38:37 +02:00
Adriaan de Groot
976ad7e3e7 [libcalamaresui] Look up icons via theme
- Don't cache icons, because they could be changed via
   the active desktop theme.
2019-05-27 15:35:56 +02:00
Adriaan de Groot
822bbaad9c [libcalamaresui] Allow icon names in branding images
- It's ok to use path / filenames in images, but you can also
   use icon names according to the FDO icon spec. This makes
   sense for at least *productLogo*, possibly *productIcon*, but
   not really for *productWelcome*.
2019-05-27 15:26:57 +02:00
Adriaan de Groot
b41cac6556 [interactiveterminal] Warn when called in exec: context
FIXES #1157
2019-05-27 14:57:28 +02:00
Adriaan de Groot
7f5e61480b [calamares] Once the steps are loaded, activate the first view step
- Using next and back buttons calls onActivate() on the view step
   that you end up on.
 - The first view step to be shown, though, doesn't get an onActivate()
   (unless you go, say, next and then back).
 - Explicitly call onActivate() on the first view step once they're
   all loaded.

FIXES #1156
2019-05-27 14:38:27 +02:00
Adriaan de Groot
36fe3ed188 [packages] Add -Su --noconfirm
- When updating the system (-Su) it may want to install newer
   packages; it asks for confirmation before doing so.

FIXES #1154
2019-05-27 14:06:05 +02:00
Adriaan de Groot
71478fd38d Merge branch 'issue-1159'
FIXES #1159
2019-05-23 13:42:31 +02:00
Adriaan de Groot
bb657f784e Merge branch 'issue-1158'
FIXES #1158
2019-05-23 13:42:22 +02:00
Adriaan de Groot
c741470b60 [calamares] Name the debug button for styling purposes 2019-05-23 13:30:37 +02:00
Adriaan de Groot
9acf80db8b Documentation: go over the instances section. 2019-05-23 12:25:14 +02:00
Adriaan de Groot
e39782576d Documentation: explain module-paths better
- how "local" is interpreted
 - recommendations for other paths
2019-05-23 12:17:53 +02:00
Adriaan de Groot
cd38ded8d5 [libcalamaresui] Support os-release substitutions in images
- Branding images might want to use os-release data as well.
 - Refactor a little to keep the number of #ifdefs the same;
   an intermediate expand() lambda handles expansion (or not,
   if it's not enabled).

FIXES #1153
2019-05-21 17:12:00 +02:00
Adriaan de Groot
368e7aac16 Merge branch 'issue-1149' 2019-05-21 13:36:18 +02:00
Adriaan de Groot
18b111218a [libcalamaresui] Sort includes in DebugWindow.cpp 2019-05-21 13:35:58 +02:00
Adriaan de Groot
ac941e6756 [libcalamares] Implement reload-stylesheet
- From the debug-window, clicking *reload stylesheet* does just
   that, and applies the new stylesheet to the Calamares window.
 - Remove stylesheet caching from the Branding class; we only
   need the sheet once (on Calamares startup) or when updating
   the stylesheet, which is seldom-enough that we don't need
   to keep an extra copy around.
 - To use, start Calamares, open the debug window, open stylesheet.qss
   in an editor. Make changes, save, then click *reload stylesheet*.

SEE #1149
2019-05-21 13:21:47 +02:00
Adriaan de Groot
877cb0e999 [libcalamaresui] Debug-tool to dump widget tree
- Adds another tool to the debug window, which dumps (to the debug
   log) a tree-like view of all the widgets in the application.
   This can be used when writing stylesheets.
2019-05-21 13:07:34 +02:00
Adriaan de Groot
b5625fc14d [libcalamares] Add a reload-stylesheet button
- This is a debugging-option to test stylesheet changes quickly.
 - Right now, the stylesheet is cached, so it doesn't even work.
2019-05-21 12:52:50 +02:00
Calamares CI
6049a9e848 i18n: [python] Automatic merge of Transifex translations 2019-05-21 12:17:17 +02:00
Calamares CI
a1f7cb4f49 i18n: [dummypythonqt] Automatic merge of Transifex translations 2019-05-21 12:17:16 +02:00
Calamares CI
6eb9cbf601 i18n: [calamares] Automatic merge of Transifex translations 2019-05-21 12:17:16 +02:00
Adriaan de Groot
ee3a2bcbe8 CMake: tidy
- remove weird message about debugging updates
 - add some space after the QML dirs information
2019-05-21 12:14:47 +02:00
Adriaan de Groot
38485f675c [branding] In the stylesheet, mention how styling works
SEE #1149
2019-05-21 12:11:55 +02:00
Adriaan de Groot
6a7c2f541e [branding] Mention the stylesheet in the docs 2019-05-21 12:07:52 +02:00
Adriaan de Groot
fbb65d06eb Merge branch 'issue-1150'
FIXES #1150
2019-05-20 23:10:35 +02:00
Adriaan de Groot
6c1b7f185d CHANGES: mention os-release feature 2019-05-20 23:10:18 +02:00
Adriaan de Groot
a30edb194a [branding] Update branding.desc with new os-release feature
- Point to supported keys on the fd.o site
 - Point out need for quoting
 - Update example with "@{NAME}" for the window-title
2019-05-20 23:07:10 +02:00
Adriaan de Groot
af73d90b7b [libcalamaresui] Fix build with KOSRelease
- initialization of the hash was all wrong
 - special-case ID_LIKE
 - typo's
 - link to CoreAddons
2019-05-20 22:54:54 +02:00
Adriaan de Groot
fbbbe63642 [libcalamaresui] WIP: Use KOSRelease and KMacroExpander in branding
- allows you to use -- at runtime -- values from os-release in the
   branding file.
 - WIP because the only machine I have with sufficiently new KF5
   is the FreeBSD box.
2019-05-20 22:11:11 +02:00
Adriaan de Groot
92d0e71029 [libcalamaresui] one more refactor for string-loading
- Do the checking for IsMap inside loadStrings() and use
   YAML::Exception to get to bail() (since we're already dealing
   with exceptions here, no extra costs). This tidies up the code
   somewhat.
2019-05-20 17:03:32 +02:00
Adriaan de Groot
667f78c016 [libcalamaresui] if there's a YAML exception in branding, bail
- all kinds of type errors result in bailing out, but a totally
   broken branding file does not?
2019-05-20 17:03:28 +02:00
Adriaan de Groot
62328c9940 [libcalamaresui] images-strings loading fixed
- move the string-munge into a lambda and use the generic loadStrings()
2019-05-20 17:03:17 +02:00
Adriaan de Groot
544d905b2f [libcalamaresui] WIP: refactor again
- the string-manipulation can be done through a lambda. That makes
   handling *strings* and *styles* simple.
 - still doesn't compile.
2019-05-20 17:03:17 +02:00
Adriaan de Groot
5a126816f4 [libcalamaresui] WIP: refactor copying strings from config to Branding
- this is mostly to make the constructor easier to read by
   moving parts of the story to easily-understood methods.
 - doesn't actually compile.
2019-05-20 17:03:08 +02:00
Adriaan de Groot
5bae7b7b52 [libcalamaresui] check for sufficiently-new KF5CoreAddons
- From 5.58, KOSRelease is available (not used yet, though)
2019-05-20 17:03:04 +02:00
Adriaan de Groot
a9f3b4050c [libcalamaresui] don't over-complicate PythonQt library linking 2019-05-20 17:02:59 +02:00
Adriaan de Groot
0c4d77541f [plasmalnf] simplify KF5-finding
- No need to double-up package finding.
2019-05-20 17:02:54 +02:00
Adriaan de Groot
1cf3ac810a [calamares] avoid extra defines for KCrash
- Don't need an extra indirection from WITH_KF5Crash to WITH_KCRASH,
   just use the cmakedefine directly.
 - Since the setting is only used in main.cpp, move the define
   down there and remove cmakedefine entirely.
2019-05-20 17:02:47 +02:00
Adriaan de Groot
81c4114de9 welcome: disable geoip by default (and document how)
FIXES #1148
2019-05-16 22:49:27 +02:00
Adriaan de Groot
f3bfc81e52 [libcalamares] Rename dontCancel to disableCancelDuringExec
- This way the name actually refers to what it does, rather
   than being a somewhat ambiguous overload of disableCancel.
2019-05-14 08:30:34 -04:00
Adriaan de Groot
4de703430f CMake: -O4 doesn't do anything in Clang, use -O3 2019-05-14 14:08:32 +02:00
Adriaan de Groot
17e51ed438 Merge branch 'issue-1146'
FIXES #1146
2019-05-14 14:08:07 +02:00
Adriaan de Groot
a5cba02769 [calamares] Leave a note about changing close-window hint 2019-05-14 14:07:33 +02:00
Adriaan de Groot
2208ff95fe [calamares] Simplify disable-window-close-button code 2019-05-14 14:03:53 +02:00
Adriaan de Groot
d4f4a40fa5 [libcalamaresui] Refactor quit-enabling
- Add signal for change-of-quit-enabledness
 - Minor tidying
2019-05-14 13:43:07 +02:00
Adriaan de Groot
088fa5004c [libcalamaresui] Disallow closing the window during execution
- If the disable-cancel-during-exec setting is on, and the user clicks
   the window-close button, then disregard the close message.
2019-05-14 13:21:05 +02:00
Adriaan de Groot
ad4352b65c [libcalamaresui] Make stepIsExecute() more general
- Checking if the **next** step is an execute-step is a little
   weird, so make the API more general (and add the +1 to indexes
   where it was using NextWillExecute before).
2019-05-14 13:18:51 +02:00
Adriaan de Groot
25099ae854 [libcalamaresui] Remove duplicate setEnabled
- If executing is set to true, then later setEnabled( !executing && ... )
   fill be false, so we don't need to call setEnabled( false ) here as well.
2019-05-14 13:10:36 +02:00
Adriaan de Groot
5868657101 [calamares] Hide the window-close decoration when disable-cancel is set 2019-05-14 13:06:54 +02:00
Adriaan de Groot
d78bc0c5c5 [libcalamaresui] When disable-cancel is on, never confirm
- This function is also reached by clicking the window-close decoration.
2019-05-14 13:04:24 +02:00
Adriaan de Groot
34ffc7a20a [libcalamares] Consistent namespace usage in partition service
- The sub-directories under libcalamares (e.g. Utils, ..)
   all live in namespace CalamaresUtils (well, except for Logger).
   The services (e.g. subdirs other than utils/) live in their
   own nested namespace, so partitioning should go into
   CalamaresUtils::Partition for consistency.
2019-05-14 05:52:58 -04:00
Adriaan de Groot
63507801b7 Merge branch 'clang-warnings' 2019-05-14 05:32:07 -04:00
Adriaan de Groot
e520c66bb9 [fsresizer] Give the FSResizerJob some accessors
- This is primarily for the tests: then they can drop the
   #define private public hack and be "proper" consumers.
2019-05-14 05:29:19 -04:00
Adriaan de Groot
80606cc38d [partition] Reduce test warnings through consistent signedness 2019-05-14 05:29:19 -04:00
Adriaan de Groot
7e12b65c94 [partition] Silence warnings about missing vtable 2019-05-14 05:29:19 -04:00
Adriaan de Groot
81715ba199 [partition] Warnings-- by using nullptr instead of 0 2019-05-14 05:29:19 -04:00
Adriaan de Groot
54108d2bab [partition] Fix up logging of jobs
- Logging `*it` was printing raw pointers, logging (plain) `it`
   needs the specialized logging `operator<<` to DTRT with temporaries.
2019-05-14 05:29:19 -04:00
Adriaan de Groot
fd4bc4bb17 [partition] Avoid UB by initializing size everywhere 2019-05-14 05:29:18 -04:00
Adriaan de Groot
bffaf47900 [partition] Reduce warnings about integer size 2019-05-14 05:29:18 -04:00
Adriaan de Groot
10ba468748 [libcalamares] Avoid warnings / errors on both gcc and clang
- Clang 8 can detect that there is no need for a return if all
   previous paths already return. GCC 8 does not. Clang warns if
   the unreachable return is there, GCC errors out if it isn't.
 - Introduce a hack NOTREACHED that comments-out on Clang, and
   marks as unreachable (but still present) on GCC.
 - This might go away with an [[unreachable]] annotation or
   similar.
2019-05-14 05:29:18 -04:00
Adriaan de Groot
c44eaf107f CI: When stopping the build early, log where it was left 2019-05-14 05:29:18 -04:00
Adriaan de Groot
ba7ee445c6 CMake: switch to using autouic on plugins
- Use autouic so that we can also pass in --include to add
   a code-warning-suppression to the generated code, just like
   we can do with moc.
2019-05-13 14:52:26 +02:00
Adriaan de Groot
ed3eafbc2d [oemid] Reduce warnings about vtable by adding virtual destructor 2019-05-13 14:08:30 +02:00
Adriaan de Groot
6db09f0679 [libcalamares] Handle all SizeUnit cases inside switch
- Although None will be filtered out already by unitsComparable(),
   include it in the switch to avoid a warning .. then we can
   drop the post-switch return since the switch covers all possible
   values of the enum.
2019-05-13 13:54:09 +02:00
Adriaan de Groot
90975b62bf [libcalamares] Tidy PartitionSize
- Use unitsComparable where applicable
 - Use SizeUnit instead of unit_t -- since this is a template
   specialization, we have the more meaningful type name to
   use, instead of the generic one.
2019-05-13 13:44:30 +02:00
Adriaan de Groot
72e1a36752 [libcalamares] Update partition service tests
- Use long so that 2GiB fits in the values
 - Document special case of 0[KMG]iB
2019-05-13 13:38:30 +02:00
Adriaan de Groot
7a368dc1d7 [libcalamares] Add tests for the partitioning service 2019-05-13 13:33:38 +02:00
Adriaan de Groot
93a68c3d5f [libcalamares] Add convenience method to check for unit-comparability
- Not all kinds of units are comparable. Introduce a method
   in PartitionSize to check for comparability (this could
   also be a free method, but seems more tidy here because it
   is specifically about comparing in the context of partition sizes).
2019-05-13 13:32:14 +02:00
Adriaan de Groot
d048975f15 [libcalamares] One more nested namespace 2019-05-13 13:06:28 +02:00
Adriaan de Groot
0b0fb93e75 [libcalamares] Remove redundant default: in case
- the switch handles all values of the enum and the compiler should
   be smart enough to know that (therefore default isn't needed,
   nor the return afterwards).
2019-05-13 12:34:19 +02:00
Adriaan de Groot
2c94cbdb14 [libcalamares] namespace A::B is a C++17 extension 2019-05-13 12:34:19 +02:00
Adriaan de Groot
7302b9c851 [libcalamares] Fix nested namespaces
- Declaring namespace A::B is a C++17 extension, and Calamares
   is C++14. Split the namespace declarations.
 - While here, fix extra const warning as well.
2019-05-13 12:23:41 +02:00
Adriaan de Groot
859e95432e [partition] Handle all enum values in the switch 2019-05-13 12:23:19 +02:00
Adriaan de Groot
3b0d778d1e [partition] Mention that reuse-swap isn't supported now 2019-05-12 16:34:57 +02:00
Adriaan de Groot
2ea69d08cc Changes: Credit for SB bugfixing 2019-05-12 16:34:25 +02:00
Adriaan de Groot
8fcdbd5bd5 [libcalamaresui] Improve warning message
- Tell the packager / deployer that certain modules are missing
2019-05-12 16:29:50 +02:00
Kevin Kofler
ec7c5a4611 [bootloader] Fix sb-shim mode to write grub.cfg into the ESP
src/modules/bootloader/main.py (install_secureboot): Run the configured
grubMkconfig command (should be `grub-mkconfig` or `grub2-mkconfig`) to
create `/boot/efi/EFI/$efi_bootloader_id/grub.cfg`. The sb-shim is just
a chainloader to GRUB 2, which expects a grub.cfg in that location, so
something has to create it or the installed system will not boot beyond
the GRUB rescue shell.
(install_grub): Fix misleading comment above the grubMkconfig call: it
is not the file specified in grubCfg that should be already filled out
by the grubcfg job module, that file is written by `grub*-mkconfig`
using `/etc/default/grub` as the input file. It is that input file
`/etc/default/grub` that should already be filled out by the grubcfg job
module. (The same input file is used in install_secureboot.)
2019-05-12 16:11:35 +02:00
Adriaan de Groot
ec15cfb58d CMake: post-release housekeeping 2019-05-10 19:17:04 -04:00
Adriaan de Groot
255f1e85a8 [fsresizer] Fix tests
- These are obvious mismatches between the tested-configuration
   and the assertions -- e.g. "71MiB" being tested for percents.
2019-05-10 19:00:11 -04:00
Adriaan de Groot
6d7fd9db26 CMake: pre-release housekeeping 2019-05-10 18:52:06 -04:00
Adriaan de Groot
90bb691085 Merge branch 'issue-1145'
FIXES #1145
2019-05-10 18:46:03 -04:00
Adriaan de Groot
e972c175d8 [bootloader] Fix typo's
- There's a general "partititon" typo, but the variable
   name also is misused.
2019-05-10 18:26:59 -04:00
Adriaan de Groot
23ae6b77bd [bootloader] Convert to str
- The output of subprocess is a bytes object, which needs to
   be decoded so we can use it like a regular string (alternatively,
   we could have changed more code to manipulate bytes, but eventually
   we need a string to pass to a subsequent command anyway).
2019-05-10 15:35:00 -04:00
Adriaan de Groot
9bf1d83c2f [bootloader] Centralize the filename sanitizer
- Centralize the sanitizer so that it's consistent in different
   environments.
 - While here, add () to the sanitizer to avoid some distro's with
   parenthesized names from creating weird EFI dirs.
2019-05-10 15:28:37 -04:00
Calamares CI
5b8a54edce i18n: [python] Automatic merge of Transifex translations 2019-05-10 15:16:50 -04:00
Calamares CI
6781e112ec i18n: [calamares] Automatic merge of Transifex translations 2019-05-10 15:16:50 -04:00
Adriaan de Groot
dcebb1ae9b Changes: document GeoIP in welcome module 2019-05-10 15:15:18 -04:00
Adriaan de Groot
c3754126d0 Merge branch 'shuffle-geoip' 2019-05-10 15:07:20 -04:00
Adriaan de Groot
f18f9dcd14 [welcome] Lookup GeoIP language and pass to language widget
- FIXES #934
 - Whether this is really wanted depends on the distro, and I'm not
   100% convinced the likely tags from Unicode are correct (or it'd
   take a lot more data). In any case, starting Calamares in "NL"
   gets me "nl_NL" as translation; presumably starting it in "BE"
   will get me that as well (what about Les Wallons?)
 - This also shows off that it's a real hack to have so much program
   logic in the *widget* parts of each ViewStep. Longer-term,
   a lot of functionality should go to the ViewStep itself, which
   will then control the UI.
2019-05-10 15:02:12 -04:00
Adriaan de Groot
03f88b3ed6 [libcalamares] Support looking up translation by 2-letter country
- Looks for an available translation by 2-letter country code
   and returns the row for it.
2019-05-10 14:44:54 -04:00
Adriaan de Groot
1857952431 [libcalamares] Add convenience accessor for translations
- Which translations are available is a global property
   of Calamares itself, not of the plugins, so getting
   the model of available translations should live there.
   Move the relevant code (which is simple) from the
   Welcome module.
2019-05-10 12:07:24 -04:00
Adriaan de Groot
76b45a2740 [libcalamares] const-data retrieval is const for LabelModel 2019-05-10 12:07:24 -04:00
Adriaan de Groot
18ed4c74ef [libcalamares] Move more into the locale service
- Use namespace CalamaresUtils::Locale consistently for this service.
 - Move locale-related non-GUI support code from the Welcome module
   to libcalamares; these are generally useful. Both Label (naming a locale)
   and LabelModel (managing a bunch of those Labels) have been moved.
2019-05-10 11:46:20 -04:00
Adriaan de Groot
b490e30a5e [welcome] Use the new locale lookup after GeoIP gets a 2-letter code 2019-05-10 11:03:01 -04:00
Adriaan de Groot
81499b22a1 [libcalamares] Fix build of tests
- Link Qt::Xml publicly because the tests will need it as well.
2019-05-10 10:57:50 -04:00
Adriaan de Groot
69f05bd34a Merge branch 'master' into shuffle-geoip 2019-05-10 08:04:36 -04:00
Adriaan de Groot
2a448c057d [welcome] Provide API for updating the country
- Changing country will pre-select the language most likely
   for that country (it doesn't, yet, since we don't have the data).
2019-05-10 07:53:44 -04:00
Adriaan de Groot
d194670625 Merge branch 'cldr-data' 2019-05-10 13:48:33 +02:00
Adriaan de Groot
b51e22b520 [libcalamares] Implement locale lookups for 2-character codes 2019-05-10 13:46:35 +02:00
Adriaan de Groot
0dfef34160 [libcalamares] Add generated locale data tables 2019-05-10 13:14:52 +02:00
Adriaan de Groot
529d93c58f [libcalamares] Add the first locale-data C++ infra
- Lookup country data based on enum or 2-letter code
 - No data yet, so return only stubs
 - The (generated) data tables are not listed as sources because
   they are #include'd by the API implementation; they're full of
   otherwise-unused static tables, so don't make sense to compile
   separately.
 - While here, tidy up the CMakeLists a bit to reduce the number
   of superfluous variables.
2019-05-10 13:14:52 +02:00
Adriaan de Groot
07a9052fca [libcalamares] Also output size of locale-tables 2019-05-10 13:14:51 +02:00
Adriaan de Groot
bf5ce44bd1 [libcalamares] Tidy up the CLDR script, add license, make more pythonic 2019-05-10 13:06:55 +02:00
Adriaan de Groot
2a5d99be50 [libcalamares] Start on a locale-data subdirectory
- Continuing the notion that libcalamares should provide
   (non-GUI) services for modules, add a locale service.
 - This will, unfortunately, roughly duplicate Qt's QLocale
   database, but in a form that is public and more readable.
2019-05-10 11:49:44 +02:00
Adriaan de Groot
cb7c38daba [welcome] Support GeoIP country lookup 2019-05-09 15:15:03 -04:00
Adriaan de Groot
44559d24bd [libcalamares] Selector wasn't saved for later queries 2019-05-09 15:09:58 -04:00
Adriaan de Groot
4ea29b1cf1 [libcalamares] Implement "raw" handling 2019-05-09 10:40:51 -04:00
Adriaan de Groot
9931b2df44 [libcalamares] Add "raw" support for extracting data from GeoIP
- This is prep-work for getting something other than the
   timezone (e.g. most extended formats also support Country).
2019-05-09 10:15:53 -04:00
Adriaan de Groot
78af24422a Changes: document MiB change 2019-05-09 08:16:44 -04:00
Adriaan de Groot
bbd2afc20f Merge branch 'issue-1129'
FIXES #1129
2019-05-09 08:14:25 -04:00
Adriaan de Groot
53230d73e2 [partition] Replace user-visible MB with MiB 2019-05-09 08:13:58 -04:00
Adriaan de Groot
b08de96315 [partition] Comment w/ MiB instead of MB 2019-05-09 08:00:23 -04:00
Adriaan de Groot
707ec98553 [partition] Tidy labels view
- Use MiB terminology and support code
 - Remove debugging chattiness
 - Fix up include style
2019-05-09 07:58:20 -04:00
Adriaan de Groot
f52cb4179c Changes: Credits to Arnaud for 2 PRs 2019-05-09 07:52:45 -04:00
Kevin Kofler
ecc32ab9b6 [mount] Update copyright notice 2019-05-09 13:52:13 +02:00
Adriaan de Groot
50857dcfec [partition] Fix tests to use "MiB" terminology 2019-05-09 07:51:35 -04:00
Kevin Kofler
34083344a4 mount: copy the SELinux context of the host directory to the mountpoint
On systems with SELinux enabled, we have to create the directories on
top of which we mount another partition or virtual file system (e.g.,
/dev) with the correct SELinux context, BEFORE we mount the other
partition. Otherwise, SELinux will get really confused when systemd
tries to recreate the mount tree for a private file system namespace for
a service. And unfortunately, even an autorelabel does not fix it
because it runs when /dev etc. are already mounted.

Without this fix, on Fedora >= 30, the system installed with Calamares
would fail to start the dbus-broker system bus, leading to several
important pieces of functionality not working (e.g., shutdown as
non-root).

On systems without SELinux enabled, chcon (which is part of coreutils)
will just print a warning and do nothing, so this should always be safe.
2019-05-09 13:50:31 +02:00
Adriaan de Groot
f25b1528a5 Merge pull request #1144 from a-wai/factor-partsize-class
Move partition size classes into libcalamares
2019-05-09 13:32:15 +02:00
Adriaan de Groot
0864153eb6 Merge pull request #1142 from a-wai/fix-sidebar-label-setup-mode
[libcalamaresui] Fix sidebar label for setup mode
2019-05-09 13:16:10 +02:00
Arnaud Ferraris
eb57be1be8 [partition] Remove deprecated sizeToSectors() function
Signed-off-by: Arnaud Ferraris <arnaud.ferraris@collabora.com>
2019-05-08 19:31:41 +02:00
Arnaud Ferraris
80fd3d3353 [partition] Switch to using the generic PartitionSize class
Instead of relying on a module-specific implementation, use the new
PartitionSize class for storing partition sizes.

Signed-off-by: Arnaud Ferraris <arnaud.ferraris@collabora.com>
2019-05-08 19:31:20 +02:00
Arnaud Ferraris
8f9f8f1cc1 [fsresizer] Switch to using the generic PartitionSize class
Instead of relying on a module-specific implementation, use the new
PartitionSize class for storing partition sizes.

Signed-off-by: Arnaud Ferraris <arnaud.ferraris@collabora.com>
2019-05-08 19:31:01 +02:00
Arnaud Ferraris
4937668b5b [libcalamares] Add generic PartitionSize class
Using PartUtils::PartSize as reference, this commit creates a new
PartitionSize class in libcalamares, which will then be used in every
module needing such a class.

Signed-off-by: Arnaud Ferraris <arnaud.ferraris@collabora.com>
2019-05-08 19:30:33 +02:00
Arnaud Ferraris
36bc0e6308 [partition] Move bytesToSectors() to CalamaresUtils namespace
In order to prepare for future refactoring of the PartSize class, move
the bytesToSectors() function to libcalamares in the CalamaresUtils
namespace.

Signed-off-by: Arnaud Ferraris <arnaud.ferraris@collabora.com>
2019-05-08 19:20:38 +02:00
Arnaud Ferraris
bfd46276ad [libcalamaresui] Fix sidebar label for setup mode
In the sidebar, the "Install" step should be named "Set Up" when in
setup mode, which will be more consistent with the other UI texts,
including button labels.

Signed-off-by: Arnaud Ferraris <arnaud.ferraris@collabora.com>
2019-05-08 12:29:01 +02:00
Adriaan de Groot
b840bce22d CMake: reduce Qt dependency back to 5.9
- Although KDE CI onlt tests with Qt 5.10, and KPMCore 4 requires
   Qt 5.10, Calamares is still ok with older Qt and KPMCore 3.3,
   so drop the dependency back down again. This means, though, that
   the code will build against a Qt version we don't usually test.
   We're going to assume that Someone Else does the LTS-Qt testing
   for us.
2019-05-07 12:38:23 -04:00
Adriaan de Groot
86ed8fd044 Merge branch 'exec-steps' 2019-05-07 09:55:32 -04:00
Adriaan de Groot
9331a25905 [libcalamares] Remove Typedefs.h
- This small header file contained a few unrelated typedefs.
   Move those typedefs to the classes they relate to. This
   **does** mean that some consumers need to #include something
   else instead.
 - Use type names more consistently.

Editorial: why are **pages** responsible for creating the jobs?
2019-05-07 09:51:23 -04:00
Adriaan de Groot
a99eccf19d [libcalamaresui] Fix PythonQt code w/ moved enums 2019-05-07 08:47:33 -04:00
Adriaan de Groot
f60ac5e101 [modules] The modules can include libcalamares and libcalamaresui
- Remove (heavy-handed) top-level include_directories, in favor
   of more focused ones; this helps to make sure that the dependencies
   ordering is correct.
2019-05-07 07:48:40 -04:00
Adriaan de Groot
16ff8b0767 [fsresizer] Make dependency on partition module more explicit 2019-05-07 07:48:40 -04:00
Adriaan de Groot
a482d7be44 [libcalamaresui] Don't expose build details in DebugWindow
- In a library class, don't include uic-generated headers inside
   the public headers.
2019-05-07 07:48:40 -04:00
Adriaan de Groot
de2b85eabf [libcalamaresui] Tidy the CMake bits
- Explain (briefly) what the library is for
 - Explicitly add includes from the non-UI library
2019-05-07 07:48:40 -04:00
Adriaan de Groot
0be34d281d [libcalamares] Remove incorrect comment
- The setting for OEM mode is already independent.
2019-05-07 07:48:40 -04:00
Adriaan de Groot
cdb613bf02 [libcalamares] Move module-related things into subdirectory
- Currently just moves a single enum, but this is prep-work for
   moving the non-GUI parts of the module system into libcalamares,
   to better support GUI-less operation.
2019-05-07 07:48:40 -04:00
Adriaan de Groot
761205ecf7 [libcalamares] Tidy some bits
- Explain what the library is for (briefly) in the CMakeLists
 - Settings should use the right export macro
2019-05-07 07:02:55 -04:00
Adriaan de Groot
169159f888 [libcalamaresui] Switch to enum classes for Type, Interface
- Somewhat gratuitous change, but brings more enums into modern style.
2019-05-07 06:33:31 -04:00
Adriaan de Groot
6b89ac8461 [libcalamaresui] Remove TODO
- I don't know what this would mean, so it's not a TODO any more.
2019-05-07 06:26:43 -04:00
Adriaan de Groot
d3783ef293 [partition] Use GiB and MiB consistently 2019-05-06 16:47:11 +02:00
Adriaan de Groot
502d43d111 [welcome] [partition] Rename GlobalStorage variable used for storage
- Change name passed into GS to use "GiB" instead of "GB", for
   consistency. This needs to be done in consumers as well.
2019-05-06 16:39:14 +02:00
Adriaan de Groot
599b34c70e [welcome] Rename GB variable to GiB
- User visible string with GiB
 - Update documentation in welcome.conf to match code
 - Rename variable because it was always GiB just named wrong
2019-05-06 16:31:23 +02:00
Adriaan de Groot
30a306f1b4 [welcome] Make check consistent with verbiage
SEE #1129
2019-05-06 16:18:19 +02:00
Kevin Kofler
a01d4707e1 [partition] Do not unmount /dev/mapper/live-* in ClearMountsJob
src/modules/partition/jobs/ClearMountsJob.cpp
(ClearMountsJob::getCryptoDevices): Skip not only `/dev/mapper/control`,
but also `/dev/mapper/live-*`. Fedora live images use
`/dev/mapper/live-*` internally. We must not unmount those devices,
because they are used by the live image and because we need
`/dev/mapper/live-base` in the `unpackfs` module.
2019-05-06 15:08:10 +02:00
Kevin Kofler
71d991e2e4 [unpackfs] Do not use -o loop on a device
src/modules/unpackfs/main.py (UnpackOperation.mount_image): Check
whether entry.source is a regular file or a device and only use
`-o loop` on regular files, not devices.

At least on Fedora >= 29, `-o loop` fails on the read-only device
`/dev/mapper/live-base` (though `-o loop,ro` would be accepted).
2019-05-06 15:04:58 +02:00
Kevin Kofler
02c7fe8345 [umount]: Fix default srcLog in umount.conf
Also fix the introductory comment, which also contained the old
location.
2019-05-06 15:01:30 +02:00
Adriaan de Groot
c933eda610 Merge branch 'issue-1137'
FIXES #1137
2019-05-06 14:32:39 +02:00
Adriaan de Groot
f7494864be [calamares] Tidying after fixing fit-text-in-sidepane
- Simplify delegate: unused m_parent, tidy up inheritance, then drop
   unnecessary custom constructor and extra Q_OBJECT macro.
 - Drop some unnecessary included headers
 - Drop single-use #define. APP was used in only one place; remove it
   (that would be stylistically correct, anyway).
 - Update copyright headers
 - Document new label-handling
2019-05-06 14:30:53 +02:00
Adriaan de Groot
dc8cfd2fce [calamares] Fit text into sidepane
- Shrink the font in an attempt to fit into the box,
   but only up to 4pt smaller; after that just clip on one line.
2019-05-06 14:14:20 +02:00
Adriaan de Groot
0f30acc13f [calamares] Fix off-center text in sidepane
- The text rectangle was **moved**, not shrunk-in-place. Add
   the missing - sign for the right and bottom margin.
 - While here, move from #define to constexpr.
2019-05-06 13:45:08 +02:00
Adriaan de Groot
fdc2cff65a [calamares] Keep text on a single line
- In the sidepane, don't wrap long texts
2019-05-06 13:36:27 +02:00
Adriaan de Groot
1c12449f03 Merge branch 'issue-1138'
FIXES #1138
2019-05-06 12:27:31 +02:00
Adriaan de Groot
f8ecc32116 Changes: document changed configuration of finished module 2019-05-06 12:27:10 +02:00
Adriaan de Groot
44107d6c33 [finished] Actually read the new-style config value 2019-05-06 12:23:10 +02:00
Adriaan de Groot
f3c86810a1 [finished] More (display) modes for restarting
- Use a named enum instead of a collection of booleans
 - Support old-style configuration but complain about it
 - Update AppImage config as well

The new setup allows four different restart modes: never,
always, user-unchecked and user-checked. The user-modes
are interactive and give the user a choice (defaulting to
unchecked-don't-restart and checked-do-restart respectively).
The non-interactive versions vary in how they are
displayed.
2019-05-06 10:35:09 +02:00
Adriaan de Groot
e281a74552 [finished] Fix up include guards and include style 2019-05-06 10:04:28 +02:00
Adriaan de Groot
d6c7e53966 [finished] Warnings should be logged as such 2019-05-06 09:57:19 +02:00
Adriaan de Groot
ef4196dbd8 [finished] Simplify configuration code 2019-05-06 09:57:19 +02:00
Adriaan de Groot
1aa87da4b8 Changes: credit Kevin for the Python-build-fix 2019-05-06 09:14:51 +02:00
Kevin Kofler
fa9aeb4a5d CMake: Fix BoostPython3.cmake for Fedora >= 30
CMakeModules/BoostPython3.cmake: Also try e.g. "python37" as the module
name, because Fedora 30 switched from the e.g. "python-py37" format to
that. Otherwise, Boost::Python3 cannot be found on Fedora without
manually setting CALAMARES_BOOST_PYTHON3_COMPONENT.
2019-05-05 21:53:23 +02:00
Adriaan de Groot
8774b605fa [locale] Update to use newer configuration
- deprecate the old entries
 - use a geoip sub-map for GeoIP configuration
 - polish up documentation
 - drop mention of blank and "legacy" styles for GeoIP config,
   just update your URLs already.
2019-05-03 11:37:12 -04:00
Adriaan de Groot
7899ab83f9 [libcalamares] Remove convenience API 2019-05-03 11:35:13 -04:00
Adriaan de Groot
44cbb0d374 [libcalamares] Drop alternate-config handling for GeoIP
- Dealing with legacy formats and alternate configurations
   is something that consumers should do (and then hand off
   to the 3-string constructor) instead.
2019-05-03 11:21:01 -04:00
Adriaan de Groot
fc76313ea6 [libcalamares] Implement GeoIP Handler config from map
- read map entries with alternate keys
 - delegate to other constructor
2019-05-03 11:06:36 -04:00
Adriaan de Groot
d5fe86c394 [libcalamares] Use NamedEnum for named-enum wrangling 2019-05-03 11:00:57 -04:00
Adriaan de Groot
5f01a8ccc5 [oemid] If the configuration is broken, complain loudly
- Adds an InvalidConfiguration value for internal errors

SEE #1136
2019-05-03 09:01:19 -04:00
Adriaan de Groot
e0a79f4c0f [partition] Reduce scope for nullptr dereference
- document what types are in use
 - avoid at least one nullptr deref
2019-05-03 08:47:34 -04:00
Calamares CI
1660e15eda i18n: [python] Automatic merge of Transifex translations 2019-05-02 16:42:06 -04:00
Calamares CI
d50f3a4d15 i18n: [calamares] Automatic merge of Transifex translations 2019-05-02 16:42:05 -04:00
Adriaan de Groot
f1ddd0c233 [welcome] Simplify configuration code 2019-05-02 14:00:32 -04:00
Adriaan de Groot
25d97efe48 [locale] Use GeoIP Handler instead of own implementation 2019-05-02 13:48:19 -04:00
Adriaan de Groot
2f2adb3623 [libcalamares] Implement async GeoIP::Handler::query()
- do this the cheap way by splitting the synchronous API into a
   free function and then calling that through QtConcurrent.
2019-05-02 11:17:55 -04:00
Adriaan de Groot
84a759a591 [libcalamares] Emphasise that GeoIP::Handler::get() is synchronous
- prep-work for also having an async API
2019-05-02 11:06:08 -04:00
Adriaan de Groot
ee6e8de31a [libcalamares] Disable broken GeoIP providers
- The tests were querying broken or disabled GeoIP providers,
   so remove them (this leaves only very few reliable free providers).
2019-05-02 08:38:31 -04:00
Adriaan de Groot
1da580f43d [libcalamares] Implement Handler's synchronous query()
- Steal code from existing tests for a synchronous HTTP get,
   then hand it off to the handler.
 - Extend tests with Handler interpreting the same data.
2019-05-02 08:33:29 -04:00
Adriaan de Groot
9bc8d28800 [libcalamares] Shuffle GeoIP into a namespace
- Use CalamaresUtils::GeoIP for GeoIP code
 - Name the public interface parts generically, while the
   implementation details retain GeoIP<foo> names.
2019-05-02 07:25:48 -04:00
Adriaan de Groot
16413e7bdb [libcalamares] Stub GeoIPHandler
- The handler class should deal with configuration and query
2019-05-02 06:55:41 -04:00
Adriaan de Groot
26b61a4ddb [libcalamares] Make RegionZonePair type stronger
- Derive from QPair instead of being QPair
 - Add isValid() for checking
 - Convenience constructors
2019-05-02 06:16:08 -04:00
Adriaan de Groot
73a5e7dd62 [libcalamares] Put GeoIP in namespace
- Use consistent include-guard style
 - Put things in namespace CalamaresUtils
2019-05-02 05:58:52 -04:00
Adriaan de Groot
ce909f00cc [libcalamares] Drop unnecessary HAVE_XML
- Linking to QtXml gives us a -DQT_XML_LIB already, so use that.
2019-05-01 06:39:20 -04:00
Adriaan de Groot
a1b1ebcd29 [locale] Compile with moved GeoIP handling 2019-05-01 06:31:31 -04:00
Adriaan de Groot
9ed46fc275 [libcalamares] [locale] Adjust CMakeLists to moved code 2019-04-30 17:01:10 -04:00
Adriaan de Groot
7ec7278fd3 [libcalamares] [locale] Move GeoIP code to the library 2019-04-30 16:52:31 -04:00
Adriaan de Groot
882e8cc766 Merge branch 'master' of github.com:calamares/calamares 2019-04-30 17:14:45 +02:00
Adriaan de Groot
f937ef6eb9 CMake: be compatible with clang 6
- Some of the pragmas in moc-warnings.h, intended to *reduce*
   warnings from MOC code, generate a warning in their own right.
2019-04-30 17:08:12 +02:00
Adriaan de Groot
dd33848975 [oemid] Tweak layout some more 2019-04-30 14:47:46 +02:00
Adriaan de Groot
6b137d6fd2 CMake: don't reset project() in a subdir 2019-04-30 13:43:57 +02:00
Adriaan de Groot
a01262a535 CMake: massage dependency-finding
- If KPMCore is not found, don't require the KF5 components
   that it would depend on.
 - If ECM is found, use KDEInstallDirs always, not just when
   the partitioning module is used.
2019-04-30 13:38:46 +02:00
Adriaan de Groot
2620829515 [webview] Make optional based on presence of dependencies 2019-04-30 13:12:16 +02:00
Adriaan de Groot
fe32322705 Merge branch 'oem-module'
FIXES #943
2019-04-29 11:26:32 -04:00
Adriaan de Groot
ea95913be9 [oemid] Expand documentation a little. 2019-04-29 11:25:34 -04:00
Adriaan de Groot
127c425a9a [oemid] Write batch-identifier into standard file location 2019-04-29 11:22:53 -04:00
Adriaan de Groot
2b12bd82e4 [oemid] Stub of a Job
- Create job, run it, and just debug-log what it should do.
2019-04-29 10:41:33 -04:00
Adriaan de Groot
1df726fc1d [oemid] Add summary widget text 2019-04-29 10:37:32 -04:00
Adriaan de Groot
672634547b [oemid] Tweak UI layout 2019-04-29 10:19:28 -04:00
Adriaan de Groot
e510c829e1 [oemid] Add form explanation 2019-04-29 10:16:59 -04:00
Adriaan de Groot
ae85381aae [oemid] Initial version of UI 2019-04-29 09:40:13 -04:00
Adriaan de Groot
96828c1df0 [oemid] Handle substitution in config-string 2019-04-29 09:03:10 -04:00
Adriaan de Groot
7d8b122835 [oemid] New module, stub
- OEMID is a module for configuring phase-0 things for an OEM,
   like batch-ID. This is just a stub.
 - Currently planned functionality is limited to just batch-ID.
2019-04-29 08:49:53 -04:00
Adriaan de Groot
6d073b6757 Merge branch 'refactor-libcalamares' 2019-04-29 06:55:09 -04:00
Adriaan de Groot
600a18f2f0 Changes: document utils/ shuffle 2019-04-29 06:55:00 -04:00
Adriaan de Groot
8d0f076591 [libcalamares] Rename CalamaresUtils -> String
- The only remaining functions in the file are string-related, so
   rename to match their purpose.
 - Drop this include file from most places, since they don't actually
   use the string functionality at all.
2019-04-29 06:49:16 -04:00
Adriaan de Groot
eaba696173 [libcalamares] Move the crash() function to the one place it's used 2019-04-29 06:49:16 -04:00
Adriaan de Groot
66c4445077 [libcalamares] Move translation-related functions to Retranslator.h 2019-04-29 06:49:16 -04:00
Adriaan de Groot
ac095d9ed0 [libcalamares] [libcalamaresui] [calamares] Adjust to moved Dirs.h 2019-04-29 06:49:16 -04:00
Adriaan de Groot
50694ef610 [libcalamares] Split dirs-functionality into separate file 2019-04-29 06:49:16 -04:00
Adriaan de Groot
2907b48844 [libcalamaresui] Move RESPATH #define to the one place it's used 2019-04-29 06:14:21 -04:00
Adriaan de Groot
432b8848ab [libcalamares] Make #include guards consistent 2019-04-29 06:14:21 -04:00
Adriaan de Groot
f076dd76ad [libcalamares] Rename YamlUtils.h
- Since we have the utils/ filesystem namespace, and use CalamaresUtils::
   as C++ namespace, simplify naming.
2019-04-29 06:14:21 -04:00
Adriaan de Groot
090aee9196 Modules: adjust to split-out utils/Variant.h
- Most modules only needed the variant support, not the "whole"
   CalamaresUtils header.
 - While here improve ordering of headers as well.
2019-04-29 06:14:21 -04:00
Adriaan de Groot
6e0e06078b [libcalamares] Split out the variant-manipulation bits
- We already have utils/ as the filesystem namespace, may as well
   make clearer what the various parts are.
 - Adjust CommandList to the moved API.
2019-04-29 06:14:21 -04:00
Calamares CI
32a9f5ef0a i18n: [python] Automatic merge of Transifex translations 2019-04-29 04:39:41 -04:00
Calamares CI
23a5feb58d i18n: [calamares] Automatic merge of Transifex translations 2019-04-29 04:39:40 -04:00
Adriaan de Groot
3e011d1419 [libcalamares] Don't link with PythonQt
- PythonQt is only needed (and used) from the GUI library.
2019-04-29 04:36:32 -04:00
Adriaan de Groot
71a719d731 Changes: document new tests for Python modules 2019-04-28 14:48:38 -04:00
Adriaan de Groot
f7fc3e8533 Merge branch 'python-testing' 2019-04-28 14:45:29 -04:00
Adriaan de Groot
d2dd4fd76b Modules: Improve error reporting
- Remaining modules [networkcfg] [openrcdmcryptcfg] [rawfs] with
   code that throws on bad configuration. Replace with meaningful
   error messages, to better check cases of SyntaxError &c.
2019-04-28 14:43:39 -04:00
Adriaan de Groot
7d0874e23b [mount] Bail on bad config
- One might argue whether an empty list of partitions to mount is
   a bad thing. It suggests that the partition module wasn't used,
   and so we're in an OEM situation -- but then everything should
   already be mounted anyway. That's why I choose empty -> bail.
2019-04-28 14:36:56 -04:00
Adriaan de Groot
ec0fe2ccd3 Modules: Improve error reporting
- [initcpio] remove superfluous inner function
 - [initcpio] catch errors from mkinitcpio itself and report them in a nice
   readable format.

 - Save translators the effort of doing a dozen messages
   with just the name of the module changed. All of these modules
   bail out on bad configurations with a meaningful message.
   - [initcpiocfg]
   - [fstab]
   - [initramfscfg]
   - [localecfg]
   - [luksbootkeyfile]
   - [luksopenswaphookcfg]

 - [machineid] Warn on bad config. It's conceivable that this is run
   with an empty rootMountPoint (i.e. "") to modify the running system,
   so only bail on None.
2019-04-28 14:34:39 -04:00
Adriaan de Groot
1f7dfafe9a [libcalamares] Provide accessor to error code.
- Document meaning of error codes.
 - The test-loader considers internal errors a real (test) failure,
   while errors returned normally by the modules (e.g. because the
   configuration is broken) to be ok for testing purposes.
2019-04-28 14:34:39 -04:00
Adriaan de Groot
7149b80146 [libcalamares] Distinguish kinds of errors
- errors can now carry an integer what-am-I code apart from
   the message; all errors have a code != 0 (and ok has code 0).
2019-04-28 14:34:39 -04:00
Adriaan de Groot
9eab61455a CMake: bump versions post-release 2019-04-28 09:08:40 -04:00
Adriaan de Groot
c9447d7794 CMake: add test for python modules
- Only Python modules have a loadmodule-test added. This will call
   run(), but with an empty configuration it should be a no-op.
2019-04-28 09:06:10 -04:00
Adriaan de Groot
b8be07573b [initramfs] Fix syntax error 2019-04-27 14:12:03 -04:00
Calamares CI
5534c1b939 i18n: [python] Automatic merge of Transifex translations 2019-04-27 12:03:06 -04:00
Calamares CI
03715fac7d i18n: [calamares] Automatic merge of Transifex translations 2019-04-27 12:03:05 -04:00
Adriaan de Groot
1e391bda7e CMake: document intention to run more tests on modules
- Loading the module will check Python modules for syntax,
   and C++ modules for symbols. This would be a good idea,
   except for where it calls exec() and does things to the
   running system. Most modules are harmless with an empty
   config, but you never know (e.g. a process module).
2019-04-27 11:58:29 -04:00
Adriaan de Groot
e072b76fea [shellprocess] [contextualprocess] Unneeded module.desc
- C++ modules should have a CMakeLists.txt which does the
   right thing, e.g. calamares_add_plugin() , and don't need
   a textual module.desc
2019-04-27 11:37:12 -04:00
Adriaan de Groot
6f9548af34 CMake: Check module interfaces
- Only allow meaningful interface strings
 - Improve documentation of which interfaces work for
   which module types.
2019-04-27 11:30:16 -04:00
Adriaan de Groot
f8bc40ba91 [calamares] (test-app) loadmodule exit code 1 on failures
- If the module fails to load, or runs with an error, exit
   with code 1.
2019-04-27 11:09:54 -04:00
Adriaan de Groot
9700359cab [calamares] In (test-app) loadmodule, log failure as error
- Errors were being logged as debug output, which is normally
   hidden (e.g. unless -D6 is passed to turn on debugging).
2019-04-27 11:07:59 -04:00
Adriaan de Groot
cf08e59501 [localecfg] Add missing import 2019-04-27 11:04:10 -04:00
Adriaan de Groot
cdcd45900b Changes: document 3.2.7 hotfix 2019-04-27 11:03:09 -04:00
Adriaan de Groot
ca3110d429 [partition] Drop extra ; (warnings--) 2019-04-25 10:17:07 -04:00
Calamares CI
5f2b191be0 i18n: [python] Automatic merge of Transifex translations 2019-04-25 09:50:30 -04:00
Calamares CI
062ced502c i18n: [calamares] Automatic merge of Transifex translations 2019-04-25 09:50:29 -04:00
Adriaan de Groot
5373729572 Changes: prep for release 2019-04-25 09:49:00 -04:00
Adriaan de Groot
e8264a4503 [partition] Prefer GPT on EFI systems for new partition table 2019-04-25 14:40:27 +02:00
Adriaan de Groot
a68a381481 [license] Fix compiler warnings
- out-of-order and incomplete initialization
 - documentation style
 - missing assignment operator
2019-04-25 14:15:14 +02:00
Adriaan de Groot
516b3b4b6c [partition] Adjust to logging-API changes
- missed due to #ifdef on a KPMcore API version I don't have on
   my main workstation.
2019-04-25 13:42:59 +02:00
Adriaan de Groot
c854006e76 Changes: update AUTHORS file with contributors 2019-04-25 13:18:10 +02:00
Adriaan de Groot
3ddb49afb7 Merge branch 'issue-1061'
FIXES #1061
2019-04-25 06:47:32 -04:00
Adriaan de Groot
74d42fe229 [summary] Tidy scrollbar handling
- Handle different window-expansion strategies
2019-04-24 13:58:38 -04:00
Adriaan de Groot
3a46b46f8d Changes: mention issue and PR numbers, polish text 2019-04-24 12:32:26 -04:00
Adriaan de Groot
3533bb3c2d Merge branch 'master' into issue-1061 2019-04-24 12:26:01 -04:00
Calamares CI
f64efe16b9 i18n: [python] Automatic merge of Transifex translations 2019-04-24 07:24:56 -04:00
Calamares CI
8ef027d2b0 i18n: [desktop] Automatic merge of Transifex translations 2019-04-24 07:24:55 -04:00
Calamares CI
5354942962 i18n: [calamares] Automatic merge of Transifex translations 2019-04-24 07:24:55 -04:00
Adriaan de Groot
52f824289e Changes: document license module changes
- also document applicable stylesheet ids
2019-04-24 07:13:06 -04:00
Adriaan de Groot
3ab9c0efdf Merge branch 'issue-1052'
FIXES #1052
2019-04-24 07:06:30 -04:00
Adriaan de Groot
58770037f4 [license] Allow more things locally
- If it says file:, it's local (don't require a specific file
   extension).
 - Report actual path loaded.
2019-04-24 07:04:38 -04:00
Adriaan de Groot
ca870a6d41 [license] Update example
- Explain that the GPLv3 isn't actually a proprietary license, but
   is used as convenient text for the license page.
 - Invent a Calamares, Inc.
2019-04-24 07:03:57 -04:00
Adriaan de Groot
3608f62ec0 [license] Adjust tooltip and button texts
- Handle various states of the link and tool buttons,
   give them appropriate texts and tooltips.
2019-04-24 06:53:31 -04:00
Adriaan de Groot
4ce6fdbd90 [license] Make area scrollable
- Since the list of license entries may be long (especially
   if the text is expanded) make it scrollable.
2019-04-24 06:43:00 -04:00
Adriaan de Groot
f0d26a74b7 [license] Set object names
- This is prep-work now that the CSS styling branch has merged
2019-04-23 17:05:44 -04:00
Adriaan de Groot
e9a295dfe5 [branding] Add example (empty) CSS file 2019-04-23 16:48:29 -04:00
Adriaan de Groot
08e4090354 Merge remote-tracking branch 'origin/raurodse-branding'
FIXES #961
2019-04-23 16:41:22 -04:00
Adriaan de Groot
982a3fb372 [license] Apply stylesheet so displayed text is nicer. 2019-04-23 08:41:32 -04:00
Adriaan de Groot
4bdae0cab0 [license] Load full license text if local
- Load full text, toggle display
 - Swap Up and Down arrow semantics on button, to match usual
   text-editor display (down means it's expanded, displayed)
2019-04-23 08:29:32 -04:00
Adriaan de Groot
92a3666dce [license] Simplify isLocal() by using Qt method 2019-04-23 08:16:54 -04:00
Adriaan de Groot
ddf541774b [license] Make local and external links more consistent
- Capitalization of message
 - Add a right-pointing "open" button to external links as well
2019-04-23 04:10:43 -04:00
Adriaan de Groot
a216b5ca76 [libcalamaresui] Misplaced const 2019-04-22 00:18:28 +02:00
Adriaan de Groot
455d106163 Merge branch 'polish-dont-cancel' 2019-04-21 23:41:52 +02:00
Adriaan de Groot
c696b5c19d [license] Add show-license toggle button
- Non-functional as yet
 - Toggles expand / collapse arrow and tooltip
2019-04-21 20:36:11 +02:00
Adriaan de Groot
64985997d0 Settings: document new disable-cancel-during-exec 2019-04-21 17:34:42 +02:00
Adriaan de Groot
b7ddb39105 [libcalamaresui] Massage disable-cancel code
- Even when Cancel is hidden, also disable it (prevents DBUS
   triggers, for instance),
 - Re-enable it when exec is over, if it's disabled then.
 - simplify code a little.
2019-04-21 17:32:05 +02:00
Adriaan de Groot
d506296aa7 [libcalamares] Adjust code to changed name
- renamed setting in the configuration file, but not in the code
 - add documentation to getters
2019-04-21 17:15:53 +02:00
Adriaan de Groot
4ceaa5ffe7 Settings: rename so it looks like a group of related settings 2019-04-21 17:14:11 +02:00
Adriaan de Groot
10727c7bd9 Merge pull request #1126 from feren/patch-3
Patch to add 'dont-cancel' setting to disable Cancel only during the installation phase
2019-04-21 17:02:21 +02:00
Adriaan de Groot
1c364ea465 Merge pull request #1123 from feren/patch-1
Better LightDM Autologin Support
2019-04-21 16:57:53 +02:00
Adriaan de Groot
3b7b0d6f04 Merge branch 'master' into patch-1 2019-04-21 16:55:42 +02:00
Adriaan de Groot
32ed3f6db6 [license] Add GPLv3 as an example in the license.conf 2019-04-21 14:23:56 +02:00
Adriaan de Groot
cb80d47682 [license] Move translation / retranslation to LicenseWidget
- Language change didn't otherwise apply to the license items
2019-04-21 13:50:06 +02:00
Adriaan de Groot
1235207ead [license] Refactor LicenseWidget
- Move all the widget code into its own file
2019-04-21 13:36:28 +02:00
Adriaan de Groot
35f23c86c6 [license] Add stub LicenseWidget files
- Prepare for refactoring
 - Clean up weirdness in the CMakeLists.txt
2019-04-21 12:43:04 +02:00
Adriaan de Groot
d2957fbad3 [license] Handle the case where all the licenses are optional
- If all of the licenses are optional, you should be able to
   continue without accepting. Refactor to a single visible
   slot to check the conditions.
 - Always set the globalsettings value; to "false" on entry
   to make sure it's there.
 - When setting the list of entries, check the conditions
   (because if the list is empty, or all of them are optional,
   then it's ok to continue).

FIXES #1124
FIXES #1125
2019-04-20 15:27:00 -04:00
Adriaan de Groot
c245238b89 [license] Use standard algorithms, simplify code
- Introduce isRequired() for readability later
 - Use std::any_of instead of rolling own loop
2019-04-20 11:58:01 -04:00
Adriaan de Groot
937f332441 [license] Refactor LicenseEntry
- Follow Calamares conventions for member naming
 - Switch to struct since everything is public anyway
2019-04-20 11:53:16 -04:00
Adriaan de Groot
dc006d58b2 [license] Use NamedEnum 2019-04-20 11:43:19 -04:00
Adriaan de Groot
614bd3c6de [license] Move logic to LicenseEntry class 2019-04-20 09:52:29 -04:00
Adriaan de Groot
81016667ae [license] Change to enum class
- non-functional change, just chasing modern C++
2019-04-20 09:52:28 -04:00
Adriaan de Groot
f299b86a3b [license] start to document license.conf
- document keys and values in a way consistent with other modules
 - document **intended** use of local URLs.
2019-04-20 09:52:28 -04:00
Calamares CI
b933cb03f6 i18n: [python] Automatic merge of Transifex translations 2019-04-20 08:43:00 -04:00
Calamares CI
e012532c8f i18n: [calamares] Automatic merge of Transifex translations 2019-04-20 08:42:58 -04:00
Adriaan de Groot
da46db96a6 Changes: document Python module translation 2019-04-20 11:27:36 +02:00
Adriaan de Groot
217eade255 Merge branch 'add-python-translations'
FIXES #991
2019-04-20 11:23:41 +02:00
Adriaan de Groot
e326b658ef Enable translation in Python modules
- covers all the remaining Python modules
 - most only get a translatable pretty name, some also return
   error messages
2019-04-20 11:22:32 +02:00
Adriaan de Groot
c364e4fc38 [dracut] [fstab] Translate module names and error messages 2019-04-19 17:08:53 +02:00
Adriaan de Groot
ff6a3608a6 [mount] [networkcfg] [openrcdmcryptcfg] Translate module name 2019-04-19 17:02:03 +02:00
Adriaan de Groot
dd5c0d1629 [bootloader] Log when the bootloader-module does nothing 2019-04-19 16:47:53 +02:00
Adriaan de Groot
333f0d9215 [bootloader] Simplify finding the ESP 2019-04-19 16:43:07 +02:00
Adriaan de Groot
df37c51c1e [bootloader] [hwclock] Translate module name 2019-04-19 16:39:41 +02:00
Adriaan de Groot
3ec1fea083 Changes: document some things fixed-in-passing, add Credits 2019-04-19 16:29:25 +02:00
Adriaan de Groot
c44e221fb6 Merge branch 'issue-1107'
FIXES #1107
2019-04-19 16:27:19 +02:00
Adriaan de Groot
cb5825a521 [libcalamares] English label with country 2019-04-19 13:52:19 +02:00
Adriaan de Groot
81acc496dc [welcome] Introduce a delegate for drawing the languages list
- Show the native name left, English name right
2019-04-19 13:40:28 +02:00
Adriaan de Groot
0b833b1e75 [welcome] Switch model to a list model
- There doesn't seem to be a real benefit to providing the
   name and label as separate columns.
2019-04-19 11:38:43 +02:00
Adriaan de Groot
53fd1590b8 [welcome] Don't use combobox itemdata for locale information 2019-04-19 10:24:10 +02:00
Adriaan de Groot
e5d1c0ae27 [welcome] Fix matched-with-a-locale
- Previously the matchLocale() function set the index in the
   combobox; do it separately now.
2019-04-19 10:15:57 +02:00
Adriaan de Groot
57452b8c38 [locale] [welcome] Adjust to moved LocaleLabel
- Adjust #includes
 - In [welcome], use find() on the model rather than querying
   the combo-box.
2019-04-19 10:10:36 +02:00
Adriaan de Groot
58aa9f4989 [libcalamares] Move LocaleLabel from libcalamaresui to libcalamares
- This isn't a UI-dependent class
 - Doesn't make much sense in CalamaresUtilsGui either
2019-04-19 10:04:49 +02:00
Adriaan de Groot
242d756731 [libcalamaresui] Add convenience name() to LocaleLabel 2019-04-19 09:55:51 +02:00
Adriaan de Groot
0c868dbd17 [welcome] Another find() overload
- Also find a specific locale
 - While here, apply Calamares coding style
2019-04-19 09:39:19 +02:00
Adriaan de Groot
314aee8d68 [welcome] Switch to QVector
- QVector is a better match with passing in QStringList, otherwise
   you end up dealing with Qt's int indexes vs. std::vector's uint
   indexes everywhere.
 - Introduce find()
2019-04-19 09:31:16 +02:00
Adriaan de Groot
bd0af4bb77 [libcalamaresui] Give LocaleLabel a default constructor
- Needed for use in containers
 - While here refactor building the english label
2019-04-19 09:18:26 +02:00
Adriaan de Groot
94765d40cd [welcome] Switch to using LocaleModel for language combobox
- Use the model instead of inserting items
 - While here, tidy includes and documentation
2019-04-18 23:17:49 +02:00
Adriaan de Groot
589168685e [welcome] Complete LocaleModel implementation
- It's a table with two columns (localized name and english name)
2019-04-18 23:16:02 +02:00
Adriaan de Groot
7f8411c3b7 [welcome] Add standard language-chooser icon
- After discussion with Red Hat UI advice, switch to standard icon
 - Tooltip as well
2019-04-18 22:38:12 +02:00
Adriaan de Groot
f04d084548 [welcome] Start on a model for the locale choices 2019-04-18 14:27:37 +02:00
Adriaan de Groot
c99742bc70 Merge pull request #1127 from a-wai/partition-layout-size-checks
Add various checks for partition layout configuration
2019-04-18 13:48:50 +02:00
Adriaan de Groot
cf51eb7aab [keyboard] Apply source formatting
- Move errant attribution line to the copyright headers;
   unsure of the year though.
 - Apply Calamares coding style.
2019-04-18 13:41:42 +02:00
Adriaan de Groot
118f9255fd [keyboard] Refactor sectioning
- Look for section in a consistent fashion
 - Simplify parsing loops
2019-04-18 13:36:12 +02:00
Adriaan de Groot
fa70b3aa60 [keyboard] Refactor keyboard model loading
- Don't need private static methods
 - Pass char* if that's what we've got
2019-04-18 13:22:12 +02:00
Adriaan de Groot
3c014a868c [keyboard] Make keyboard preview more robust
- Replace #define with static const char
 - Handle FreeBSD as well (for testing purposes)
2019-04-18 13:06:50 +02:00
Adriaan de Groot
b704933b58 [keyboard] Avoid crash with unconfigured keyboards
- If there's no items at all, ->currentItem() can return nullptr,
   so don't dereference that.

Found on FreeBSD.
2019-04-18 12:56:56 +02:00
Adriaan de Groot
fd5097c466 Merge branch 'reduce-warnings' 2019-04-18 12:42:10 +02:00
Adriaan de Groot
3e88b408fa [calamares] Remove unused item Role 2019-04-18 12:40:04 +02:00
Adriaan de Groot
3ccbcdc1bd [libcalamares] Don't moc on JobQueue
- There is no reason for JobThread to have a Q_OBJECT macro,
   so drop the moccing (this also stops some warnings from
   the generated moc code).
 - Define the (virtual) destructor out-of-line to avoid vtable
   warnings.
2019-04-18 12:21:29 +02:00
Adriaan de Groot
a1e08d2236 [keyboard] Don't use useless rvalue-ref
- Weird && usage here made redundant through RVO, just return
   something normally instead.
2019-04-18 12:06:17 +02:00
Adriaan de Groot
123c774a47 Use new automoc options 2019-04-18 12:06:16 +02:00
Adriaan de Groot
bdb7bf71a8 Reduce warnings from moc-generated code
- The auto-generated code produces a lot of warnings from
   Clang 8; this obscures the more meaningful warnings from
   actual Calamares code, so tone the warnings down.
 - For Clang, set CALAMARES_MOC_OPTIONS.
 - Add convenience CMake function for automoccing. It applies
   the options as needed to a given target.
2019-04-18 12:06:09 +02:00
Adriaan de Groot
cef2f50510 Reduce warnings about extra ;
- Trailing ; after Q_UNUSED
 - Trailing ; after CALAMARES_RETRANSLATE
2019-04-18 12:06:09 +02:00
Adriaan de Groot
c83395ff6d Reduce warnings for yaml-cpp
- Use only utils/YamlUtils.h to pull in yaml-cpp and supporting code.
 - When compiling with clang, turn off warnings that the system header
   for yaml-cpp would generate.
2019-04-18 12:06:09 +02:00
Adriaan de Groot
27140ff5bb [libcalamares] Reduce warnings in KDAB code
- This is an older copy of kdsingleapplicationguard, now updated for
   C++11 warnings; removed __ in header guards, fixed up last of 0-for-
   nullptr, signedness mismatch.
2019-04-18 12:06:09 +02:00
Arnaud Ferraris
123222c0a8 Add global checks for partition layout
This commit adds several checks while reading the configuration of the
`partition` module, in case the partition layout configuration is
misformed. If an error is encountered, an message is printed to the
console and the module reverts to the default partition layout.

Checks are also added when implementing the partition layout, in case a
problem occurs that couldn't be anticipated (for example, when a
partition size is in %, checking its absolute value require knowing the
total device size, which is not the case when the configuration is
being read).

Signed-off-by: Arnaud Ferraris <arnaud.ferraris@collabora.com>
2019-04-18 10:55:47 +02:00
Arnaud Ferraris
d32733bf59 Switch to using PartSize class for partition sizes
Every call of `ParseStringSize` is replaced by using an instance of the
`PartUtils::PartSize` class.

This commit also removes the now-unused previous size parsing functions.

Signed-off-by: Arnaud Ferraris <arnaud.ferraris@collabora.com>
2019-04-18 10:55:47 +02:00
Arnaud Ferraris
3a58ae5e8b Introduce new partition size class based on NamedSuffix
In order to maintain consistency, and make use, create a new PartSize
class in the PartUtils namespace, which inherits from NamedSuffix for
easier parsing and handling of size strings.

The switch to using this class instead of the previous functions will be
done in a follow-up commit.

Signed-off-by: Arnaud Ferraris <arnaud.ferraris@collabora.com>
2019-04-18 10:55:47 +02:00
Arnaud Ferraris
680b0bc472 Add missing header to NamedEnum
Signed-off-by: Arnaud Ferraris <arnaud.ferraris@collabora.com>
2019-04-18 10:55:47 +02:00
Adriaan de Groot
92b60dac65 [libcalamares] Warnings-- over extra ; 2019-04-17 12:02:14 +02:00
Adriaan de Groot
620940c75b [libcalamaresui] Drop now-unused sortKey from LocaleLabel
- sortKey is unused
 - add englishLabel for reverse-i18n
2019-04-16 23:49:27 +02:00
The feren OS Dev
a7ac046b3d Update copyright headers 2019-04-16 18:27:51 +01:00
The feren OS Dev
9cafd0a495 Update copyright headers 2019-04-16 18:27:30 +01:00
The feren OS Dev
455505ba78 Update copyright header 2019-04-16 18:27:03 +01:00
The feren OS Dev
825c92582a Update ViewManager.cpp 2019-04-16 17:20:39 +01:00
The feren OS Dev
700e6f0ec6 Update Settings.h 2019-04-16 17:17:39 +01:00
The feren OS Dev
6d6c152f70 Update Settings.cpp 2019-04-16 17:14:55 +01:00
The feren OS Dev
d31f2d2116 Update Settings.cpp 2019-04-16 17:12:14 +01:00
The feren OS Dev
02d6e1a946 Update Settings.cpp 2019-04-16 17:11:39 +01:00
The feren OS Dev
08249af716 Add 'dont-cancel' to settings.conf 2019-04-16 17:07:15 +01:00
The feren OS Dev
3a8a8d3f17 Update CHANGES 2019-04-16 17:00:05 +01:00
The feren OS Dev
a79dfa4135 Added myself to the copyright header 2019-04-16 16:58:19 +01:00
The feren OS Dev
c0d61b666d Made amendments based on review
Fixed 'prepend' terminology in comments, restored old loop as it seems to work for me now in overwriting the file as one overall multiline instead of overwriting the file with each line at a time, code simplification based on review comments... credits-adding will come in the next commit.
2019-04-16 16:52:02 +01:00
Adriaan de Groot
5e951466df [libcalamaresui] Sort languages by ISO code
- this puts the Englishes together, and is less confusing than
   sorting with American first.
2019-04-16 15:38:06 +02:00
Adriaan de Groot
5994e9b4ce Changes: document what this branch will do 2019-04-16 15:34:09 +02:00
Adriaan de Groot
1f66062c81 CMake: bump version, new stub in CHANGES 2019-04-15 11:27:25 -04:00
Adriaan de Groot
c6d51f2527 CHANGES: Fix release date of 3.2.5 2019-04-15 11:25:51 -04:00
Adriaan de Groot
44de004068 CHANGES: Fix up Caio's name 2019-04-15 11:25:23 -04:00
Adriaan de Groot
329bd36929 [libcalamares] Sanitize logging 2019-04-15 10:59:57 -04:00
Adriaan de Groot
93be1a6582 [partition] Remove confusing spaces in logging 2019-04-15 10:16:09 -04:00
Adriaan de Groot
dbac9ecf7b [partition] Remove unused code
- The name table is in PartitionActions::Choices
2019-04-15 10:14:37 -04:00
Adriaan de Groot
d2404851cd [partition] Reduce warnings (shadow, ;, types) 2019-04-15 10:06:21 -04:00
Adriaan de Groot
1a4a265262 [partition] Refactor check for ISO9660 2019-04-15 10:06:03 -04:00
Adriaan de Groot
75f1a05fec [partition] No copy-constructor for CDebug 2019-04-15 10:05:29 -04:00
Adriaan de Groot
009dfd7de5 [locale] Reduce warnings (shadowed global) 2019-04-15 10:03:12 -04:00
The feren OS Dev
3ecd031d9d Better LightDM Autologin Support
This change fixes a few issues and adds a few improvements to the LightDM Autologin configuration process:

Fixes:

- Fixes malforming of configuration file out of the box, as without `[SeatDefaults]`, `[Seat:*]` or similar in the configuration file LightDM will break on a lot of distributions using LightDM

- Preserves the intended lightdm.conf file settings outside of `autologin-user` if the distribution has an /etc/lightdm/lightdm.conf file of its own

Misc. changes:

- Small spelling fix
2019-04-15 15:01:08 +01:00
Adriaan de Groot
094110dccf CI: make the release script more flexible 2019-04-15 09:52:43 -04:00
Calamares CI
189b33a376 i18n: [python] Automatic merge of Transifex translations 2019-04-15 09:29:58 -04:00
Calamares CI
b1a8043ee7 i18n: [calamares] Automatic merge of Transifex translations 2019-04-15 09:29:57 -04:00
Adriaan de Groot
ef3b4c387c [libcalamaresui] Remove unused AbstractPage 2019-04-15 09:20:08 -04:00
Adriaan de Groot
4fec6731ba [calamares] [libcalamaresui] Improve includes
- avoid useless ../
 - sort alphabetically and by kind
2019-04-15 09:20:08 -04:00
Adriaan de Groot
7efcc1e52e Merge branch 'logging-consistency' 2019-04-15 09:02:35 -04:00
Adriaan de Groot
520478847c Make logging more consistent.
- Across all the C++ modules, use Logger::SubEntry for sub/continues
   log lines, instead of somewhat-random indent strings.
2019-04-15 09:02:21 -04:00
Adriaan de Groot
d6cf0617f6 [libcalamaresui] Make logging more consistent 2019-04-15 09:02:21 -04:00
Adriaan de Groot
aaeea16871 [libcalamares] Make logging more consistent 2019-04-15 09:02:21 -04:00
Adriaan de Groot
8bb07528e2 [calamares] Make logging output more consistent
- Use Logger::SubEntry instead of various indents
 - Improve wording of message
2019-04-15 09:02:21 -04:00
Adriaan de Groot
5677a4bb28 [finished] Fix up string arguments
- The "set up" message only uses one argument.
2019-04-15 08:42:06 -04:00
Adriaan de Groot
81bd173b7e Merge branch 'improve-logger' 2019-04-15 08:29:40 -04:00
Adriaan de Groot
63b317902d [libcalamares] [partition] Adjust to logging changes
- Use the un-paren'ed Continuation and SubEntry
2019-04-15 08:27:43 -04:00
Adriaan de Groot
d72e3b3c22 [libcalamares] Simplify writing of logging continuations
- Instead of Continuation(), write just Continuation
 - All that futzing with overloads and tag-classes isn't needed
   since the whole point is to output some constant string. Leave
   cleverness for later, if it's needed.
2019-04-15 08:27:29 -04:00
Adriaan de Groot
4987dc31a1 Merge branch 'fix-kpmcore-use' 2019-04-12 13:24:12 +02:00
Adriaan de Groot
198acadd23 [partition] [fsresizer] Fix KPMCore API versions
- tests need the defines as well
 - scandevices API changed with API 3.3.1
2019-04-12 13:17:38 +02:00
Adriaan de Groot
c844188907 [partition] Fix build w/ "3.3.1" API
- Need older-style scanning, but new-style iteration
2019-04-12 12:54:13 +02:00
Adriaan de Groot
4e24ea29e2 [partition] [fsresizer] Adjust to post-3.3.0 API
- KDE neon ships a post-3.3.0 KPMCore, with deprecations, but not yet
   the KPMCore 4 API, so add another API-version check to handle the
   deprecations. Keeps warnings down.
2019-04-12 12:44:59 +02:00
Adriaan de Groot
c0710cabe4 [partition] [fsresizer] Adjust to new #define
- Using KPMCORE4API is clearer than just relying on a version number
2019-04-12 12:16:55 +02:00
Adriaan de Groot
9159761171 [partition] [fsresizer] Fix KPMCore API detection
- There will be a 3.3.1 which still has the "old" API,
   so look at 3.3.80 (pre-4.0) instead. Make the way
   compile flags are passed consistent.
2019-04-12 12:16:55 +02:00
Adriaan de Groot
9917bc27fc Merge pull request #1119 from cjlcarvalho/master
[partition] Fixing LVM scanning according to new kpmcore API
2019-04-12 11:03:03 +02:00
Adriaan de Groot
160c2ca6eb Changes: document more issues closed 2019-04-11 10:32:19 -04:00
Adriaan de Groot
b2bd63b2e0 Merge branch 'translation-fixes' 2019-04-11 10:29:01 -04:00
Adriaan de Groot
1a063a9b5d [partition] Use modern tr() annotation 2019-04-11 10:28:35 -04:00
Adriaan de Groot
e664370b28 [libcalamaresui] Use modern tr() annotation 2019-04-11 10:28:09 -04:00
Adriaan de Groot
b6cd1c576a [plasmalnf] Don't translate placeholder text 2019-04-11 10:06:10 -04:00
Adriaan de Groot
78d6b51c3c [partition] Don't translate placeholder --- 2019-04-11 10:01:34 -04:00
Adriaan de Groot
369c5f4619 [tracking] Don't translate placeholder text 2019-04-11 09:59:58 -04:00
Adriaan de Groot
d0e1e46df2 [users] Don't translate CSS 2019-04-11 09:54:42 -04:00
Adriaan de Groot
95897bf83b [users] Mark as not-translated 2019-04-11 09:49:38 -04:00
Adriaan de Groot
05bf1e5226 Merge branch 'warnings-reduction' 2019-04-11 15:20:17 +02:00
Adriaan de Groot
5a95bf507f [libcalamaresui] Improve WindowDimensions class
- Make sure the class knows its own suffixes
2019-04-11 15:14:31 +02:00
Adriaan de Groot
6560c194ad [libcalamaresui] Reduce 0-for-nullptr warnings in 3rd party code
- replace = 0 with = nullptr to reduce warnings; not a meaningful
   or copyrightable change.
2019-04-11 15:14:31 +02:00
Adriaan de Groot
1008a91eba [libcalamaresui] Reduce warnings
- getting a (sensible) uint from an int is tougher than you might think
2019-04-11 15:14:31 +02:00
Adriaan de Groot
8dd22dcbbf [libcalamaresui] bail() is a [[noreturn]] function 2019-04-11 15:14:31 +02:00
Adriaan de Groot
365f83b789 [libcalamares] Reduce warnings in KDAB code
- Use nullptr and suitable include guards
2019-04-11 15:14:31 +02:00
Adriaan de Groot
2777b5dd30 [libcalamares] Reduce copying and warnings 2019-04-11 15:14:31 +02:00
Adriaan de Groot
5279e78c9f [libcalamares] Reduce warnings
- improve variable names, don't shadow
2019-04-11 15:14:31 +02:00
Adriaan de Groot
c13c7c4891 [libcalamares] Don't use (bare) endl
- Use '\n' instead of endl (which should have been std::endl).
2019-04-11 15:14:31 +02:00
Adriaan de Groot
d2941d335e [libcalamares] Reduce unused-parameter warnings
- The tag-class "parameters" are empty anyway
2019-04-11 15:14:31 +02:00
Adriaan de Groot
b416842c20 [calamares] Reduce compile warnings in tests
- Switch debug-level to unsigned
 - Don't shadow usings; the first TR type is enough
 - The (bogus) return values were commented as // NOTREACHED,
   but still yield unreachable code warnings. Drop them
   instead, and rely on the compiler understanding [[noreturn]]
   on parser.usage().
2019-04-11 15:14:31 +02:00
Adriaan de Groot
b10c7ad9c6 [locale] Reduce warnings for gcount()
- The read is at most sizeof(arr), so int is fine. Do
   the cast explicitly.
2019-04-11 15:14:31 +02:00
Adriaan de Groot
620d2a769a [users] Reduce compile warnings
- Avoid C-style casts
 - Unfortunately needs some verbose casting machinery to do
   it "right" wrt. C++ type system.
2019-04-11 15:14:31 +02:00
Adriaan de Groot
189e192c83 [shellprocess] Reduce warnings
- The old-style cast still causes a warning, but do the
   more idiomatic (void) rather then casting to (void*)
2019-04-11 12:29:53 +02:00
Adriaan de Groot
6cfb5a9c88 [welcome] Reduce unused-parameter warnings
- Don't use this if we don't need it (QObject::tr is static).
 - C++14 allows (copy) binding to arbitrary expresstions in lambda's,
   so detach from this.
2019-04-11 12:29:17 +02:00
Adriaan de Groot
713370da55 Merge remote-tracking branch 'origin/issue-1100' 2019-04-11 11:47:00 +02:00
Adriaan de Groot
547dc7d334 Merge pull request #1117 from a-wai/partition-layout-add-maxsize
[partition] Add max size parameter
2019-04-11 11:39:44 +02:00
Adriaan de Groot
3d2ad9f55f Merge pull request #1116 from a-wai/issue-1100
Complete setup mode messages adjustements
2019-04-11 11:38:48 +02:00
Caio Carvalho
4d1522a820 Documentation: update AUTHORS 2019-04-09 23:16:29 -06:00
Caio Carvalho
2c33535ee8 [partition] Using std::find_if to search in container for elements according to a condition 2019-04-09 23:14:34 -06:00
Caio Carvalho
34e091833d [partition] Fixing LVM scanning according to new kpmcore API 2019-04-09 23:12:31 -06:00
Arnaud Ferraris
6463e5f83c [users] Adjust messages to setup mode
Signed-off-by: Arnaud Ferraris <arnaud.ferraris@collabora.com>
2019-04-08 18:02:23 +02:00
Arnaud Ferraris
dddebc98b5 [finished] Adjust messages to setup mode
Signed-off-by: Arnaud Ferraris <arnaud.ferraris@collabora.com>
2019-04-08 17:55:03 +02:00
Arnaud Ferraris
e3cebd9da9 [plasmalnf] Adjust explanation message to setup mode
Signed-off-by: Arnaud Ferraris <arnaud.ferraris@collabora.com>
2019-04-08 13:44:41 +02:00
Arnaud Ferraris
9b77e5b17d [summary] Adjust summary text to setup mode
Signed-off-by: Arnaud Ferraris <arnaud.ferraris@collabora.com>
2019-04-08 13:43:38 +02:00
Arnaud Ferraris
866afcfe47 [welcome] Adjust checker-messages for setup mode
Signed-off-by: Arnaud Ferraris <arnaud.ferraris@collabora.com>
2019-04-08 13:42:15 +02:00
Arnaud Ferraris
cbf7f4fb17 [calamares] Adjust window title for setup mode
Signed-off-by: Arnaud Ferraris <arnaud.ferraris@collabora.com>
2019-04-08 13:41:21 +02:00
Arnaud Ferraris
5358e2314d [partition] Add max size parameter
When using a custom partition layout with partition sizes in %, it can
be useful to set an upper limit to the partition size.

For instance, using a 20% size for the `/` partition will create a 24G
partition on a 120GB drive, but a 200GB partition on a 1TB drive, which
is not useful, and could be avoided by setting a maximum partition size.

This commit adds the `maxSize` parameter (with a default value of 100%).

Signed-off-by: Arnaud Ferraris <arnaud.ferraris@collabora.com>
2019-04-08 12:19:35 +02:00
Adriaan de Groot
4caa401a07 [partition] Use structured logging
- Structured logging
 - Reduce chattiness
 - Use helper functions
 - Some TODO were done a while ago
2019-04-04 17:58:03 +02:00
Adriaan de Groot
04146df36b [partition] Reduce logging for mounted partitions
- The other log entries say when something is possible,
   not when something is **not** possible.
2019-04-04 17:46:48 +02:00
Adriaan de Groot
6bccbcd1f5 [partition] Improve logging of status of choice buttons 2019-04-04 17:37:37 +02:00
Adriaan de Groot
b5a997d11e [partition] Use structured logging 2019-04-04 17:13:57 +02:00
Adriaan de Groot
14bedef411 CMake: change project identifier to simplify code
- Using CALAMARES means that the automatic versioning variables
   are set using that name (instead of lower-case).
2019-04-04 16:43:04 +02:00
Adriaan de Groot
01f5ac22a0 CMake: use conventional method for setting version
- Using project() to set up the version is idiomatic for CMake
   and more standardised than doing it by hand. Do retain the
   RC flag, because that's used in other parts of versioning.
2019-04-04 15:58:07 +02:00
Adriaan de Groot
b18e0a0bd8 [libcalamares] Use structured logging tags 2019-04-04 14:44:44 +02:00
Adriaan de Groot
09ae721038 [libcalamares] Structure continuations and sub-entries 2019-04-04 14:44:44 +02:00
Adriaan de Groot
b6ea171365 [libcalamares] Reduce chatty logging
- Only log module-search entries when they are bad.
2019-04-04 14:14:59 +02:00
Adriaan de Groot
53cdf0b054 [calamares] Log version and supported languages
- These logging statements happened before logging was configured,
   so never ended up in the session log. Move them to be executed later.
2019-04-04 14:10:50 +02:00
Adriaan de Groot
652c0c22fe Merge branch 'improve-xdg' 2019-04-02 10:35:10 -04:00
Adriaan de Groot
c9421ca32c CI: follow XDG spec more closely in AppImage script
- Misplaced $D
 - Set XDG_*_DIRS without the /calamares/ trailer
 - Don't overwrite XDG_*, but append for AppImage, avoid unnecessary :
 - Explain XDG_* tweaks in the AppImage documentation at the top.
2019-04-02 10:33:13 -04:00
Adriaan de Groot
14f8262f2d CI: Fix Copyright
- yes, that's also me, but not the right address for Calamares
2019-04-02 10:33:13 -04:00
Adriaan de Groot
caba74438e [libcalamares] Improve XDG handling
- When environment is empty, use default values from spec
 - Search in application-named subdirs first (but keep previous
   behavior of also searching directly in the named dirs)
 - Don't consider empty XDG_* elements
 - Settings XDG_DATA_DIRS=":" would yield an empty list of extra
   directories to check; don't bother setting haveExtraDirs for that.
2019-04-02 10:32:55 -04:00
Adriaan de Groot
4282e4c31f [partition] Instantiate the manual-partitioning page on-demand
- When the manual partitioning page exists, it reacts to
   changes in a bunch of models; these models can be changed
   repeatedly from the choice page.
 - the manual partitioning page really only needs to deal with
   the relevant selections at the moment it is instantiated.
2019-04-02 05:46:37 -04:00
Adriaan de Groot
71fd3ab010 [partition] Check-which-page consistently 2019-04-02 05:46:37 -04:00
Adriaan de Groot
8f9b9a2ccf [partition] Remove unused include 2019-04-02 05:46:37 -04:00
Adriaan de Groot
7074829c24 [partition] Initialising BootLoader model is atomic
- don't send a bunch of update signals, do only a single
   model-reset when the BootLoaderModel is (re-)initialised.
2019-04-02 05:46:37 -04:00
Adriaan de Groot
cccd4402d8 [partition] Simplify DeviceModel sorting 2019-04-01 08:53:35 -04:00
Adriaan de Groot
544131c4bc [partition] Improve type notation 2019-04-01 08:48:25 -04:00
Adriaan de Groot
dd6d1bf1c1 [partition] Protect PartitionModel against concurrent access
- Try to avoid concurrent access while the model is being reset.
2019-04-01 08:14:39 -04:00
Adriaan de Groot
df921606b9 [partition] Update copyright headers
- Files modified in 2019 by me
2019-04-01 07:55:14 -04:00
Adriaan de Groot
b55a6cf716 [partition] Improve type-constness
- Don't bother copying the vector of available PVs, we need the
   contained pointers.
2019-04-01 07:50:59 -04:00
Adriaan de Groot
7806ccbe72 [partition] Drop superfluous debug logging
- While here, update copyright header
2019-04-01 07:39:19 -04:00
Adriaan de Groot
752a922bde [partition] Lock the bootloader model during reset
- Try to avoid races between resetting the model and getting
   data from it for the UI.
2019-04-01 07:36:18 -04:00
Adriaan de Groot
c813ee9495 Settings: add an oem-setup entry
- Add independent oem-setup entry to the example configuration.
 - Document that things may have a default value (so you don't **have**
   to set them in the file) but that Calamares will complain.
2019-04-01 06:27:23 -04:00
Adriaan de Groot
3248aba899 [libcalamares] Make oem-setup independent of dont-chroot
- At least for testing purposes it makes sense to decouple dont-chroot
   from the OEM-setup wording, so introduce a separate setting for it.
2019-04-01 06:26:42 -04:00
Adriaan de Groot
3a0bd254c0 [libcalamaresui] Adjust quit-messages to setup-mode 2019-04-01 06:16:37 -04:00
Adriaan de Groot
8ee2375ee6 [welcome] Adjust welcome message to setup-mode 2019-04-01 06:16:37 -04:00
Adriaan de Groot
57ccefa1e5 [libcalamares] Distinguish "install" and "setup" modes.
- This initial bit of code re-uses the *dont-chroot* setting;
   it may need to be made independent.
 - This branch will use `isSetupMode()` to adjust user-visible
   strings to match the intended use.

SEE #1100
2019-04-01 05:37:34 -04:00
Adriaan de Groot
ce07babcee Changes: add header for the next-next release 2019-04-01 05:18:47 -04:00
Calamares CI
b4274f4e46 i18n: [python] Automatic merge of Transifex translations 2019-04-01 05:02:12 -04:00
Calamares CI
7259ddd3d8 i18n: [dummypythonqt] Automatic merge of Transifex translations 2019-04-01 05:02:12 -04:00
Calamares CI
48e34077de i18n: [desktop] Automatic merge of Transifex translations 2019-04-01 05:02:12 -04:00
Calamares CI
12bcdf0854 i18n: [calamares] Automatic merge of Transifex translations 2019-04-01 05:02:11 -04:00
Adriaan de Groot
b03d72952b [partition] Improve logging 2019-03-30 06:36:51 -04:00
Adriaan de Groot
bd15cb5719 Merge branch 'issue-565' 2019-03-29 17:35:57 -04:00
Adriaan de Groot
e2d3f2d885 Changes: say something about improved UnpackFS
- Although nothing specific was done, I'm fairly sure that
   the issue isn't worth keeping around.

FIXES #565
2019-03-29 17:35:38 -04:00
Adriaan de Groot
fb412c177c [unpackfs] Improve human-readable name 2019-03-29 17:32:52 -04:00
Adriaan de Groot
5c4f2423f8 [unpackfs] Fix error in error-handling (warn -> warning) 2019-03-29 17:27:26 -04:00
Adriaan de Groot
d87badbf45 [unpackfs] Add test with too-small destination FS 2019-03-29 17:22:47 -04:00
Adriaan de Groot
b4a51fe017 CI: remove unused script 2019-03-29 17:05:04 -04:00
Adriaan de Groot
2a6bf50621 [unpackfs] Don't let ir-phase reduce total number of files 2019-03-29 16:53:02 -04:00
Adriaan de Groot
fae0b8c2f8 [unpackfs] Re-jig progress reporting
- rsync reports its own progress, and reports on files that
   find -type f doesn't. This meant that the numbers didn't
   match what was stored in entry.total
 - The ir-phase adds files to be handled; to-phase happens once
   ir-phase is over and the remaining files are processed.
   By adding the to-phase files, percentages over 100% were
   reported (in part because the number of files doesn't match).
 - Update expected entries total from rsync output.
 - Re-jig computation of how done everything is: tally it
   up in integers, and do only one global progress percentage.
2019-03-29 16:48:46 -04:00
Adriaan de Groot
6d85fd3586 [unpackfs] One last progress call afterwards 2019-03-29 16:24:22 -04:00
Adriaan de Groot
9ce34782ee [unpackfs] Avoid double / at end 2019-03-29 16:09:11 -04:00
Adriaan de Groot
dc2fafe324 [unpackfs] to-chk is also progress information
- ir-chk happens first, and then there's a phase with to-chk
   messages; use those as well.
2019-03-29 12:51:00 -04:00
Adriaan de Groot
38821f47ba [unpackfs] Make comment match code
- The mismatch between "ir-chk" and the comment "to-check" led me
   to check (ha!) the output of rsync, and it outputs "to-chk"
   during small transfers; make sure the comment reflects what
   is actually being used to track progress (which is "ir-chk").
2019-03-29 12:39:45 -04:00
Adriaan de Groot
a57f2fec74 Changes: reference bug numbers for closed issues 2019-03-29 12:11:04 -04:00
Adriaan de Groot
8e5f9bf0fc Merge branch 'issue-1098'
FIXES #1098
2019-03-29 12:06:17 -04:00
Adriaan de Groot
97eda698fc Changes: document fixed behavior 2019-03-29 12:06:10 -04:00
Adriaan de Groot
273c32705d [partition] Restore selected bootloader
- After the BootLoader model is reset, if a bootloader location
   has been selected before, try to find it in the (now-reset)
   model to preserve the selection.
2019-03-29 12:00:27 -04:00
Adriaan de Groot
3eae445ead [partition] Don't signal changes from model before they're done
- clear() signals modelReset(), which is true, but inconvenient
   when we do a bunch of changes afterwards. Block signals,
   and rely on own signaling when all of the changes are done.
 - Keep blocking signals while updating the model, since the row
   appends otherwise trigger a change in the connected combo box.
2019-03-29 11:59:51 -04:00
Adriaan de Groot
dc04aa999d [partition] Introduce post-reset slot for boot loader selection 2019-03-29 11:34:07 -04:00
Adriaan de Groot
17aeaa134a [partition] Simplify display-role code for bootloader 2019-03-29 10:54:04 -04:00
Adriaan de Groot
cbcf85b4a2 Changes: mention dm-module improvement 2019-03-29 06:09:46 -04:00
Adriaan de Groot
96649feedc CI: Improve AppImage verbosity
- Tell the user beforehand where the log files and artifacts will be
2019-03-29 05:42:36 -04:00
Adriaan de Groot
f5df259b43 CI: Improve AppImage builds
- script was set up for KPMCore master (e.g. KDE neon), and
   didn't support older KPMCore releases; now it doesn't fatal
   error when the KPMCore plugins can't be found.
 - when it finishes, tell the user where the artifacts are found.
2019-03-29 05:36:49 -04:00
Calamares CI
6962a074ef i18n: [python] Automatic merge of Transifex translations 2019-03-29 05:25:55 -04:00
Calamares CI
bab2e2ca2f i18n: [dummypythonqt] Automatic merge of Transifex translations 2019-03-29 05:25:54 -04:00
Calamares CI
2618705bf5 i18n: [desktop] Automatic merge of Transifex translations 2019-03-29 05:25:54 -04:00
Calamares CI
3ea8c0c119 i18n: [calamares] Automatic merge of Transifex translations 2019-03-29 05:25:54 -04:00
Adriaan de Groot
228971ce0b Merge branch 'issue-1110'
SEE #1110

There isn't really anything to fix: partitions are aligned to 1MiB
boundaries now. Manjaro 18.0.3 is probably before the early-august
commit that added that.

While here, add some better partitioning-debugging and cleanups.
2019-03-20 18:21:34 +01:00
Adriaan de Groot
affc73d3d2 [fsresizer] Avoid KPMCore warnings about scanDevices() 2019-03-20 18:20:56 +01:00
Adriaan de Groot
478168c841 [fsresizer] Make sure KPMCore version definitions are consistent
- Duplicate setting from partition module to fsresizer
2019-03-20 18:16:54 +01:00
Adriaan de Groot
e8c18c0b5c [partition] Prepare scanDevices for post-KPMCore 3.3.0 2019-03-20 18:13:39 +01:00
Adriaan de Groot
68f29ebf20 [partition] Handle partition flag FlagEsp post KPMCore 3.3.0 2019-03-20 18:13:39 +01:00
Adriaan de Groot
2a2795c54c [partition] Avoid KPMCore warnings
- Get ready for KPMCore post-3.3.0, which deprecates a bunch of
   Flag<foo> and State<foo> in preparation of enum classes.
2019-03-20 18:13:39 +01:00
Adriaan de Groot
5d6d2b8078 [partition] Make convenienceName() available for debugging
- Function for human-readable names is useful in more parts of
   the partition module.
2019-03-20 11:26:02 +01:00
Adriaan de Groot
1ffc0bf77d [partition] Allow all the unsafe options
- If the unsafe actions are enabled, but won't be executed,
   allow more unsafe actions like erasing mounted partitions
   and everything.
2019-03-20 11:26:02 +01:00
Adriaan de Groot
cd545e51b0 [partition] Reduce superfluous logging 2019-03-20 11:26:02 +01:00
Adriaan de Groot
8db004ce45 [partition] Use the FailJob to stop installation
- For unsafe installations (compile-time option), make sure
   things fail before partitions are actually written, unless
   the other option is also turned off.
2019-03-20 11:26:02 +01:00
Adriaan de Groot
62f03d8aad [partition] Allow unsafe partitioning decisions
- This is a compile-time choice, and off by default. This may be useful
   for developers that need to get through installation to a different
   partition on their root drive.
 - Add an option to avoid actually doing unsafe things. This is an extra
   safeguard; you need to turn on one and turn off the other option to
   really be unsafe.
2019-03-20 11:26:02 +01:00
Adriaan de Groot
2caefce3cb [locale] Add a CMake option for debugging 2019-03-20 11:26:02 +01:00
Adriaan de Groot
3db708dd04 [keyboard] qDebug -> cDebug 2019-03-20 11:26:02 +01:00
Adriaan de Groot
826453aa65 [calamares] Note that qDebug() is sometimes ok 2019-03-20 11:26:02 +01:00
Adriaan de Groot
4b486cfe82 [libcalamares] Add some debugging Jobs
- FailJob always fails, and GoodJob always succeeds, both without doing
   anything. These aren't particularly useful, except for debugging.
2019-03-20 11:26:02 +01:00
Adriaan de Groot
d7594860b0 CMake: fix calamares_add_library
- Remove the commented-out cruft and the whinging
 - Fix use of COMPILE_DEFINITIONS with a list passed in
 - Remove unused arguments (TYPE, TARGET)
 - Document calamares_add_library
 - Document how to use COMPILE_DEFINITIONS (in calamares_add_plugin)
2019-03-20 11:26:02 +01:00
Adriaan de Groot
e71fa5963b CMake: document top-level definitions and options 2019-03-20 11:26:02 +01:00
Adriaan de Groot
427b09e915 Merge branch 'appimage'
FIXES #999 (In a way: that asked for Flatpak. People will sill need to
**build** Calamares themselves, but it could then be bunged a much
older system to install that one.)

SEE #1082 (Not really: that is about installing containerized
applications as if there is a package manager for them; AppImage is
developing a CLI tool to do fetch-and-store-in-the-right-place, so
that could be added to the packages module as well.)
2019-03-20 10:52:34 +01:00
Adriaan de Groot
95875c1aab Changes: document AppImage building 2019-03-20 10:51:24 +01:00
Adriaan de Groot
6b40f1f01b CI: AppImage with Conda
- Prepare for using Conda for the Python environment in the
   AppImage. This does not actually work, because the Python
   support in Calamares doesn't find the alternative environment.
 - Also log everything, rather than re-starting the log with
   each build step.
2019-03-20 10:08:55 +01:00
Adriaan de Groot
c9026b429d CI: Fix Python modules in AppImage
- set PYTHONPATH inside the AppImage so libcalamares is found
 - add Python module to the sample configuration
 - relax password requirements (while we're at it)
2019-03-19 18:21:35 +01:00
Adriaan de Groot
ed2f9b744d CI: AppImage support
- Add a script for building a Calamares AppImage file (this is
   useful in *some* limited contexts, not a general way to distribute
   Calamares since it's much more efficient to use installed libs).
 - Add example config files for this AppImage build.
 - Download the linuxdeploy tools if they are missing
 - Document script flags some more
2019-03-19 11:11:43 -04:00
Adriaan de Groot
2b7832857c [libcalamaresui] Simplify checking dependencies
- Avoid crash due to invalid iterator, when modules
   are removed due to missing requirements.
 - Simplify code, factor out the determination of
   which required modules are missing.
2019-03-19 11:11:43 -04:00
Adriaan de Groot
5f308e8e17 [calamares] Check that a sequence has been set 2019-03-19 11:11:43 -04:00
Adriaan de Groot
7515f36b96 [libcalamares] Refactor settings-loading some more
- Load instances list in a separate method
 - Load sequence list in a separate method
 - Don't rely on QASSERT, explicitly throw if something is missing.
2019-03-19 11:11:43 -04:00
Adriaan de Groot
5a8ed8583f [libcalamaresui] Complain about missing config files
- When no config file is found, tell where it wasn't.
2019-03-19 05:42:28 -04:00
Adriaan de Groot
e18e4e3d6f [libcalamares] Refactor module-search path
- Refactor code that fills up the module search path from
   the *modules-search* configuration key.
 - Improve debug logging while here.
2019-03-18 17:48:39 -04:00
Adriaan de Groot
540d27d0c3 [libcalamares] Convenience function YAML->QStringList
- operator>> already existed, but here's a version that
   can be used in function-call context.
2019-03-18 17:38:44 -04:00
Adriaan de Groot
43f6405714 [welcome] Simplify team listing
- There are a lot more contributors who should be named, but
   it's not going to fit here. Instead, link to the website.
2019-03-17 04:43:42 -04:00
Adriaan de Groot
17bdd4fbd2 Merge branch 'issue-1104' 2019-03-11 17:53:36 -04:00
Adriaan de Groot
919a6eb9a6 Changes: document bugfix
FIXES #1104
2019-03-11 17:53:08 -04:00
Adriaan de Groot
105f9c4861 [partition] Set firmware type
- This got lost in 3.2.4.
 - Thanks Gabriel for hunting it down; patch applied with some changes.
2019-03-11 17:50:27 -04:00
Adriaan de Groot
bc26c3e009 [welcome] Remove unused method
- This **should** be used, though. See #1104. It should be used
   somewhere else.
2019-03-11 17:25:21 -04:00
Adriaan de Groot
a93df6fcfb [bootloader] Requires partition before it. 2019-03-11 17:07:05 -04:00
Adriaan de Groot
5513b5a697 Docs: mention python module descriptor key 2019-03-11 17:04:47 -04:00
Adriaan de Groot
2fdf799ee1 Docs: document the requiredModules descriptor key 2019-03-11 16:59:00 -04:00
Adriaan de Groot
eab36a098f Docs: shuffle the modules README 2019-03-11 16:52:06 -04:00
Adriaan de Groot
53fb53454f Docs: fix up explanations, mention INSTALL_CONFIG 2019-03-11 12:10:34 -04:00
Adriaan de Groot
fdb4311a70 Merge branch 'issue-1098'
- Doesn't fix the issue, but adds useful things I want in master
   already, also for debugging other issues.
2019-03-01 07:09:45 -05:00
Adriaan de Groot
6b369dc5de Merge branch 'issue-1097'
- Let's call this "probably FIXES #1097", but it needs extensive
   testing to make sure the other crash doesn't return.
2019-03-01 07:09:02 -05:00
Adriaan de Groot
2b149fb944 [partition] Uncomment updateButtons()
- This was commented out to combat the crash in device->type()
 - I believe the crash was caused by double-deletion, which was
   fixed in 2092ec3c9a by not re-
   parenting an immutable copy of something.
 - Restore the button-fix, since we need that to keep the
   *create* button in-sync with the selected partition.

FIXES #1097
2019-03-01 06:56:52 -05:00
Adriaan de Groot
3e067e617e [partition] Add accessor and documentation to BootLoaderInstallPath 2019-02-28 10:26:17 -05:00
Adriaan de Groot
cb0958073d Merge pull request #1101 from a-wai/configure-esp-size
Make the EFI Sytem Partition size configurable
2019-02-28 10:19:12 -05:00
Arnaud Ferraris
982840bafd [partition] Allow a configurable EFI System Partition size
As requested, this commit adds a new configuration option to the
partition.conf file, name `efiSystemPartitionSize`.

When this option is absent, the default size of 300MiB will be used.

Fixes #1090

Signed-off-by: Arnaud Ferraris <arnaud.ferraris@collabora.com>
2019-02-28 13:51:32 +01:00
Arnaud Ferraris
a5258f07a1 [partition] move bytesToSectors() and sizeToSectors() to PartUtils
In order to allow the use of these functions across the whole partition
module and keep all partition size-related functions in the same
namespace, this commit moves them to PartUtils.

Signed-off-by: Arnaud Ferraris <arnaud.ferraris@collabora.com>
2019-02-28 13:50:34 +01:00
Arnaud Ferraris
c3ccc0de0e [libcalamares] Add a KiB unit
This commit creates a _KiB operator for future use by the partition
module.
It also fixes a typo in one instance of MiBtoBytes(), requiring a couple
extra fixes.

Signed-off-by: Arnaud Ferraris <arnaud.ferraris@collabora.com>
2019-02-28 13:49:15 +01:00
Arnaud Ferraris
90eb6afd52 [partition] move parseSizeString() function to PartUtils
In order to be able to parse partition size strings using the same
functions across the partition module, the parseSizeString() function is
exported to the PartUtils namespace.

Signed-off-by: Arnaud Ferraris <arnaud.ferraris@collabora.com>
2019-02-28 13:49:15 +01:00
Adriaan de Groot
b4cefff975 [partition] Avoid heap-wrangling
- The CreatePartitionDialog doesn't need to be on the heap, it's
   modal here. Avoid QPointer weirdness as well.
2019-02-26 07:21:36 -05:00
Adriaan de Groot
943f3fb1f9 [partition] Improve debug-logging
- Use cDebug() instead of qDebug()
 - Be more chatty when selecting a bootloader installation path
2019-02-26 07:10:56 -05:00
Adriaan de Groot
92d9c9491a [partition] Reduce lambda-happiness
- Make some methods that are called mostly as slots, actual slots,
   instead of going through extra lambdas.
 - Use QOverload<>::of for disambiguation instead of homebrew casts.
2019-02-26 07:05:32 -05:00
Adriaan de Groot
d289b1bed4 Merge branch 'requirements-checking-segv' 2019-02-26 06:38:20 -05:00
Adriaan de Groot
616515cce5 Changes: document requirements-checker
- Name contributors
 - Document changes in requirements-checking
 - Document libparted no-longer-needed
2019-02-26 06:34:56 -05:00
Adriaan de Groot
4d8acdf425 [welcome] Code-formatting
- Update copyright headers
 - Apply calamaresstyle
2019-02-26 06:26:20 -05:00
Adriaan de Groot
54ba0aaf13 [welcome] Use convenience function
- Introduce a hasDetails() for RequirementEntry, which is just
   a short-cut, but makes code more readable.
2019-02-26 06:20:20 -05:00
Adriaan de Groot
bfb5a4efb9 [welcome] Chase file renaming
- Rename classes inside
 - Rename include guards
2019-02-26 06:05:34 -05:00
Adriaan de Groot
1240f63a39 [welcome] Rename files to reflect their purpose 2019-02-26 05:09:54 -05:00
Adriaan de Groot
ba9a6981b3 [welcome] Fix SEGV
- In the retranslate function, need to check if the waiting
   widget still exists.
 - Tighten up lifetime of the CheckerWidget.
2019-02-26 05:08:07 -05:00
Adriaan de Groot
7cfaba2d53 [partition] In logging, name device nicely
- Provide a convenience method that names a Partition* with the
   best human-readable name we can find (worst-case, spit out a
   pointer representation which will at least help figure out
   the identity of the Partition*).
2019-02-25 16:39:19 -05:00
Adriaan de Groot
33bd6c67c0 [welcome] Without libparted, don't even check size available 2019-02-25 10:07:21 -05:00
Adriaan de Groot
8cf3c217f7 Merge branch 'requirements-checking' 2019-02-25 10:00:43 -05:00
Adriaan de Groot
9889bd6cbe [welcome] Be louder when libparted is disabled 2019-02-25 08:54:35 -05:00
Adriaan de Groot
c3d13e3451 [libcalamaresui] Add documentation to ViewStep methods 2019-02-25 08:15:01 -05:00
Adriaan de Groot
633e2a87aa Merge branch 'remove-signal-done' 2019-02-25 08:11:32 -05:00
Adriaan de Groot
64ca9d0d5a [libcalamaresui] Document multi-page support. 2019-02-25 08:11:03 -05:00
Adriaan de Groot
cece01e3c5 [partition] Simplify next() 2019-02-25 07:59:58 -05:00
Adriaan de Groot
6071489788 [libcalamaresui] Provide default implementations of next() and back()
- These methods are used for multi-page view-steps, which are rare.
   For all the others, just drop the empty implementation and defer
   to the base class.
2019-02-25 07:49:10 -05:00
Adriaan de Groot
08565b5f17 [libcalamaresui] Remove the signal done() from ViewStep
- The signal is emitted, generally from next(), but not actually used.
2019-02-25 07:34:40 -05:00
Adriaan de Groot
40a7082bfc [libcalamaresui] Handle no-requirements-to-check case
- If there's no requirements at all, none of the watchers
   will call finished(), so do it once extra.
2019-02-25 07:15:51 -05:00
Adriaan de Groot
987cf36f51 [welcome] Use convenience types 2019-02-25 07:05:12 -05:00
Adriaan de Groot
8a8ec01380 [welcome] Don't enable next early
- Next was enabled early; presumably to cover the case that no requirements
   were checked and the requirements checker never emitted an update signal.
   Drop that since the module manager is now responsible for doing that checking.
2019-02-25 07:00:22 -05:00
Adriaan de Groot
fbb513eee3 [partition] Remove artificial delay
- The sleep(3) was meant as a debugging aid for the multi-threaded
   part of requirements checking.
2019-02-25 06:45:17 -05:00
Adriaan de Groot
0ad115732e [libcalamaresui] Report elapsed time as well.
- While waiting on modules, report the elapsed time in seconds
   based on the number of progress-ticks that have passed.
2019-02-25 06:39:50 -05:00
Adriaan de Groot
5ddf7b980b [libcalamaresui] Report progress also while waiting
- Ping the progress every 1.2 seconds, so the user sees more than
   just the throbber.
2019-02-25 06:33:46 -05:00
Adriaan de Groot
452b51304d [welcome] Update next button when checking is complete 2019-02-25 06:11:14 -05:00
Adriaan de Groot
40de1bd2eb [partition] Give requirement entry a description
- The description is used in the Details dialog when the
   requirements fail. This one should be visible.
2019-02-25 05:12:03 -05:00
Adriaan de Groot
2092ec3c9a [partition] Drop some re-parenting trickery
- Can't re-parent across threads easily
 - If device is made by immutableDeviceCopy(), then it's still owned by the
   PartitionCoreModule; giving it away to the widget is not a good idea.
2019-02-25 04:36:46 -05:00
Adriaan de Groot
ac652a2bc1 [libcalamaresui] Report module-name in italics 2019-02-25 04:19:05 -05:00
Adriaan de Groot
41fecf341b [libcalamaresui] Avoid metatype warnings at runtime
- Register the types with the Qt type system. This is needed
   because we're passing them as signal and slot parameters
   across threads.
2019-02-24 15:57:36 -05:00
Adriaan de Groot
f1aa22d9e8 [libcalamaresui] Sort signals chronologically 2019-02-24 09:08:02 -05:00
Adriaan de Groot
c508e3ed4d [welcome] Show progress during requirements checking 2019-02-24 09:07:44 -05:00
Adriaan de Groot
b169281b69 [libcalamaresui] Use convenience type 2019-02-23 17:41:24 -05:00
Adriaan de Groot
2cdfe35430 [welcome] Avoid threading warnings
- The NAM is being created from a method call on the GeneralRequirements
   object in the requirements-checking thread, while the GR object itself
   was created in a different thread. This cross-thread parenting
   produces a warning, and we don't need the parent relationship here
   anyway.
2019-02-23 17:14:52 -05:00
Adriaan de Groot
e50c2bcb44 [grubcfg] REVERT d775cee4cf
This is causing issue #1073 and needs further thought.
2019-02-23 16:52:10 -05:00
Adriaan de Groot
a19d81e38c [welcome] Chase renaming of files
- Rename the classes to match
 - Drop some unused includes
2019-02-23 12:29:59 -05:00
Adriaan de Groot
c1cd88d5fa [welcome] Rename files before class-rename 2019-02-23 12:22:08 -05:00
Adriaan de Groot
6090a464f8 [libcalamaresui] Switch requirementschecking to threaded mode
- Use QFuture and QFutureWatcher to spawn threads that do the actual
   checking of the requirements; collect results and report on
   them as they come in.
2019-02-23 11:12:55 -05:00
Adriaan de Groot
e366e7d83a [displaymanager] It's not fatal to have no DM
- If a distro provides an install-scenario that doesn't provide a DM,
   (e.g. via netinstall) then that should be ok; if there **is** a DM
   it should be configured.

FIXES: #1095
2019-02-22 16:38:02 -05:00
Adriaan de Groot
be5abf08dc Merge pull request #1094 from a-wai/fix-default-fs
[partition] Fix default fs

FIXES: #1093
2019-02-22 15:55:44 -05:00
Arnaud Ferraris
74ead4c7ba [partition] improve filesystem search operation
Due to changes to the FileSsytem::typeForName() function, more
processing is needed to deal with locales and different cases.
This is done by refactoring the findFS() function, initially located in
the PartitionViewStep class, and making it available to the whole module.

Additionnally, more checks have been implemented regarding the use of
global storage in the PartitionLayout class, and the filesystem types
now use the correct FileSystem::Type, as requested.

Signed-off-by: Arnaud Ferraris <arnaud.ferraris@collabora.com>
2019-02-22 18:42:16 +01:00
Adriaan de Groot
355987bfa1 CMake: QtConcurrent is required as well.
SEE #1082
2019-02-22 10:47:20 -05:00
Adriaan de Groot
cd92b8dd5e [libcalamares] Simplify logging code
- log() was never called with a non-default value for toDisk,
   so simplify to true. Keep the if() around to indicate block scope.
2019-02-22 09:21:22 -05:00
Arnaud Ferraris
5084c44b54 [partition] fix naming of PartitionLayout class member variables
Signed-off-by: Arnaud Ferraris <arnaud.ferraris@collabora.com>
2019-02-22 13:08:59 +01:00
Adriaan de Groot
79c20b8fbd [partition] Fix user-visible strings
- The default window title in the designer file wasn't a good string
   to translate. Use one of the titles instanced from elsewhere.
 - The window titles set in subclasses were not translatable.

FIXES #1092
2019-02-22 07:03:38 -05:00
Arnaud Ferraris
586cb63ef5 [partition] use configured default filesystem type instead of ext4
When using the default partition layout (only a `/` partition), the
filesystem used was ext4, ignoring the `defaultFileSystemType`
configuration option.

This commit fixes this bug, so that any supported filesystem can now be
used for the default partitioning scheme.

Fixes #1093

Signed-off-by: Arnaud Ferraris <arnaud.ferraris@collabora.com>
2019-02-22 12:58:55 +01:00
Adriaan de Groot
3ea6c6cfbe [users] Rename badly-named variable 2019-02-21 06:40:49 -05:00
Adriaan de Groot
a87bb50103 Merge pull request #1091 from monetaryabyss/master
Fix spelling typo
2019-02-21 12:01:53 +01:00
Adriaan de Groot
c678cd80b4 [libcalamaresui] Refactor Requirements-Checking
- Move the actual checking into a separate object with some lifecycle-
   management signals.
 - Right now this is still single-threaded and blocking, so no net gain.
2019-02-20 05:48:15 -05:00
Dan Simmons
651b52ead9 Fix spelling typo 2019-02-20 05:00:58 -05:00
Adriaan de Groot
bbb9ff0cbf [libcalamaresui] Remove useless #define 2019-02-18 10:19:06 -05:00
Adriaan de Groot
ff10e1301d [libcalamaresui] Fix struct/class mismatch 2019-02-18 10:10:16 -05:00
Adriaan de Groot
18efcf2200 [welcome] Drop unnecessary parameter 2019-02-18 09:42:22 -05:00
Adriaan de Groot
5aa4e52452 [libcalamaresui] Improve debug-logging 2019-02-18 09:09:37 -05:00
Adriaan de Groot
cbc0100add Changes: mention updated Python-module translations 2019-02-18 08:52:52 -05:00
Adriaan de Groot
946c5a493f [services-*] Fix translations
- Strings like "{} the {} with {}" are terrible for translators:
   - no context
   - no possibility to re-order grammatical units
   - substituting in English parts-of-speech is going to make a mess
 - Write the strings out with explicitly named substitutions,
   no part-of-speech substitution, and better formatting.
2019-02-18 06:27:36 -05:00
Adriaan de Groot
d33752c66c [libcalamaresui] Refactor Requirements classes
- improve naming of member variables
 - expand documentation
2019-02-15 20:53:55 +01:00
Adriaan de Groot
43eae0bc47 Merge branch 'master' into requirements-checking 2019-02-15 00:32:45 +01:00
Adriaan de Groot
879c5e3cee Changes: start notes for next release 2019-02-15 00:08:02 +01:00
Adriaan de Groot
723358e145 [partition] Reduce Transifex warnings
- Add a (superfluous, since they don't have their own signals or slots)
   Q_OBJECT macro to the VG jobs, to silence a Transifex warning (this
   does make sure that the tool knows about the context for the translated
   messages)
2019-02-14 16:12:43 -05:00
Adriaan de Groot
6fbc467795 [partition] Reduce Transifex warnings
- the string here has no context (no QObject-derived class that
   it is called in) so use the static method instead.
2019-02-14 16:08:55 -05:00
Adriaan de Groot
302b3cf0c4 Merge branch 'add-python-translations' 2019-02-14 19:01:16 +01:00
Adriaan de Groot
b7c77e7323 [services-systemd] Make user-visible messages translatable 2019-02-14 18:52:19 +01:00
Adriaan de Groot
544c1b708c [services-openrc] Make user-visible messages translatable 2019-02-14 18:50:29 +01:00
Adriaan de Groot
c9f89e2929 [modules] Translate name of services-* modules. 2019-02-14 15:30:48 +01:00
Adriaan de Groot
4178d5841c [modules] Enable translations on some Python modules
- Python modules should have human-readable names, which
   means that the description should be translated in `pretty_name()`
2019-02-14 15:30:48 +01:00
Adriaan de Groot
0f80a6295b [libcalamares] Reduce warnings about trailing ; 2019-02-12 17:11:01 +01:00
Adriaan de Groot
7ed74cefa1 CMake: bump version 2019-02-12 08:25:24 -05:00
Adriaan de Groot
496f9fdaf1 [libcalamares] Fix tests
- The test wants to read settings.conf, but by default it's run
   from way inside the build dir, where there is no such file.
   Go looking for one (but not too far).
2019-02-12 08:15:05 -05:00
Adriaan de Groot
9b36783961 [rawfs] Add example configuration
- Part of the tests checks that the example configuration
   is not empty. So uncomment the example. (Distro's should
   not be installing the example configs, and this one in
   particular needs to be customized).
2019-02-12 08:03:45 -05:00
Adriaan de Groot
f825a63bfe [fsresizer] Fix tests
- Test used 127% as value; this is now considered an invalid
   percentage (greater than 100%) and yields different values.
2019-02-12 07:57:35 -05:00
Adriaan de Groot
cf39d312fe Merge branch 'fix-swap-choice-nullptr'
FIXES #1084
2019-02-12 07:31:52 -05:00
Adriaan de Groot
2a8960cd0f [partition] Ensure combobox pre-selects consistently
- Match the selected item in the combobox with a given default,
   which should be whatever is selected from the available set of
   choices.
2019-02-12 07:30:34 -05:00
Adriaan de Groot
5f20eedb6e [partition] Use swap-choice member, not the combobox pointer
- Store changes to the selected swap-choice when the combobox changes
 - Use that member instead of dereferencing the combobox

This avoids nullptr crashes when the combobox isn't even created
(e.g. when there is only one swap choice).
2019-02-12 07:21:35 -05:00
Adriaan de Groot
ae714278a5 CI: update description of release process 2019-02-12 11:50:26 +01:00
Adriaan de Groot
a4e6d4cd35 [partition] Rename combo box
- Too much confusion possible between the different members all
   named variations of *SwapChoice*
 - Update copyright years, too
2019-02-12 05:40:11 -05:00
Adriaan de Groot
a0ed58267d CMake: update translations, drop RC status 2019-02-12 05:27:54 -05:00
Adriaan de Groot
a210ff6797 i18n: list translations alphabetically
- it's enough to know which "band" a translation is in, no
   need to keep them in translation-completeness order
 - makes it easier to sort-and-spot what languages have moved
   between bands
 - suppress es_ES automatically.
2019-02-12 05:26:47 -05:00
Adriaan de Groot
f21e800c24 Changes: mark for release, fix typo's 2019-02-12 05:19:01 -05:00
Adriaan de Groot
335976e32c [partition] Improve defaultFS handling
- drop the localized comparisons; that's just confusing
 - warn when no default FS is set (then use ext4)
 - fix case-insensitive fallback; it used fsType, which was
   set to Unknown in the for loop.
2019-02-12 05:15:56 -05:00
Calamares CI
2a27a3c9dd i18n: [python] Automatic merge of Transifex translations 2019-02-12 04:48:26 -05:00
Calamares CI
6cce96c0bf i18n: [calamares] Automatic merge of Transifex translations 2019-02-12 04:48:25 -05:00
Adriaan de Groot
faa3392cc5 Merge branch 'smooth-partition-crash' 2019-02-11 19:07:32 -05:00
Adriaan de Groot
dff5afe227 [partition] Reduce refreshes when reverting 2019-02-11 19:03:09 -05:00
Adriaan de Groot
b9fa0398c0 [partition] Disable one call to updateButtons()
- suggested by @abucodonosor, removing this one call seems
   to solve the data race for the device model.
2019-02-11 18:26:45 -05:00
Adriaan de Groot
e71b338b2f Merge branch 'users-explanation-layout' 2019-02-11 18:20:11 -05:00
Adriaan de Groot
ebc9a00bcf [users] Massage text widths
- Make the explanations about 3 times as wide as the text-boxes
   that they are explaining. This is partly moot because the
   text-boxes have fixed pixel sizes in the designer file, but keep
   it flexible for now.
2019-02-11 18:18:34 -05:00
Adriaan de Groot
1adf4da736 [users] Small space between password explanation and checkboxes 2019-02-11 18:07:27 -05:00
Adriaan de Groot
6316173f1b [partition] More conservative handling of device pointers
- thanks @abucodonosor
2019-02-11 17:45:23 -05:00
Adriaan de Groot
a6edb3ed34 [partition] Refactor PartitionEntry
- add a constructor that parses size and min
 - minor reduction in code duplication
2019-02-11 17:37:14 -05:00
Adriaan de Groot
5863300f67 [partition] Use const QString&
- minor code-layout and idiomatic-C++
2019-02-11 17:27:45 -05:00
Adriaan de Groot
abf1f14604 [partition] Initialize members of PartitionEntry 2019-02-11 17:14:39 -05:00
Adriaan de Groot
04b4e37bd0 [partition] Don't display unsupported swap styles
- Suppress unsupported options while reading the config file.
2019-02-11 09:23:50 -05:00
Adriaan de Groot
0fdc737968 [partition] Fix logging output
- Using the assignment-operator just generates blank lines.
 - Using QLog with a log-level avoids the cDebug()-style special
   handling of warnings and errors (useless here, but may as well
   fix code style).
2019-02-11 09:21:43 -05:00
Adriaan de Groot
2fda5957f1 [partition] Complain about unsupported swap choices 2019-02-11 09:06:27 -05:00
Calamares CI
73bffe769b i18n: [python] Automatic merge of Transifex translations 2019-02-11 08:52:00 -05:00
Calamares CI
33ed176b2e i18n: [dummypythonqt] Automatic merge of Transifex translations 2019-02-11 08:52:00 -05:00
Calamares CI
3c257c4fff i18n: [desktop] Automatic merge of Transifex translations 2019-02-11 08:51:59 -05:00
Calamares CI
fb03577b2e i18n: [calamares] Automatic merge of Transifex translations 2019-02-11 08:51:59 -05:00
Adriaan de Groot
7711cb0ad3 Merge pull request #1080 from a-wai/fix-systemd-boot-install
[bootloader] Fix systemd-boot installation
2019-02-11 08:49:22 -05:00
Adriaan de Groot
fc5ff421c4 Merge pull request #1081 from a-wai/extend-gs-in-rawfs
[rawfs] Add rawfs source to the `partitions` entry in global storage
2019-02-11 08:42:47 -05:00
Adriaan de Groot
273461a497 [partition] Be verbose about handling osprober results 2019-02-11 05:32:42 -05:00
Arnaud Ferraris
91430a3cdb [rawfs] Add rawfs source to the partitions entry in global storage
When using the `rawfs` module for copying data, it may be useful to
save the source device used for later checks or actions. This commit
therefore adds a `source` field to each corresponding partition entry in
global storage, so that this information can be retrieved later during
the installation process.

Another small improvement is that global storage is now modified only
once (it was previously modified as many times as there were entries
processed by the `rawfs` module).

Signed-off-by: Arnaud Ferraris <arnaud.ferraris@collabora.com>
2019-02-08 18:11:06 +01:00
Arnaud Ferraris
a14968a646 [bootloader] Fix systemd-boot installation
When choosing `systemd-boot` as the bootloader, numerous problems
occurred:

- the kernel and initrd were not copied to the EFI System Partition,
and therefore could not be reached by the bootloader
- the fallback entry used the default initramfs image instead of the
fallback image

`systemd-boot` provides the `kernel-install` utility, which
automatically copies the kernel + initramfs to the EFI partition, and
creates the corresponding bootloader entry.

Unfortunately, `kernel-install` cannot be used here as the module is not
executed in a chroot. As setting up one only for running a single
command would be overkill, this patch re-creates what `kernel-install`
usually does:

- copy the kernel and initramfs to their own subdirectory at the root of
the EFI partition
- create the corresponding entry configuration file

To this end, the `systemd-boot` installation code in the `bootloader`
module has been largely refactored, including removing a few duplicate
LOCs.

Signed-off-by: Arnaud Ferraris <arnaud.ferraris@collabora.com>
2019-02-08 18:00:58 +01:00
Adriaan de Groot
2c6ff26aaa [partition] Reduce warnings 2019-02-06 04:08:21 -05:00
Adriaan de Groot
14e2a8a212 Changes: fix typo's and phrasing 2019-02-06 04:06:08 -05:00
Calamares CI
9d316b430f i18n: [python] Automatic merge of Transifex translations 2019-02-06 03:50:17 -05:00
Calamares CI
768400b62d i18n: [desktop] Automatic merge of Transifex translations 2019-02-06 03:50:15 -05:00
Calamares CI
60d583ef64 i18n: [calamares] Automatic merge of Transifex translations 2019-02-06 03:50:15 -05:00
Adriaan de Groot
d3ac29d98c Merge pull request #1077 from a-wai/partition-layout-fix-sizes
Fix partition layout sizes parsing
2019-02-06 03:48:27 -05:00
Adriaan de Groot
dc03ced4bb Merge pull request #1078 from a-wai/rawfs-allow-use-of-symlinks
[rawfs] Allow use of symlinks in configuration
2019-02-06 03:48:19 -05:00
Arnaud Ferraris
32a5a796f7 [rawfs] Allow use of symlinks in configuration
In its current state, the 'rawfs' module requires the source partition 
to be identified either by its mount point or device name, but using a 
symlink to either one (e.g '/dev/disk/by-uuid/...') would fail.

This patch fetches the real path of source partition, allowing the use 
of symlinks.

Signed-off-by: Arnaud Ferraris <arnaud.ferraris@collabora.com>
2019-02-01 14:23:59 +01:00
Arnaud Ferraris
cf45d55b32 [partition] Fix parsing of partition size in partition layout
When setting the size of a partition without indicating the unit, two
problems occur:

- the size is parsed as an integer, not as a string, hence the
configuration parsing fails
- the size parser doesn't recognize the fact that the size has no units
and defaults to 100%

This patch fixes the configuration parsing as well as the size string
parsing.

Signed-off-by: Arnaud Ferraris <arnaud.ferraris@collabora.com>
2019-02-01 14:02:40 +01:00
Arnaud Ferraris
18bb71aceb [partition] Fix minimum size parsing in partition layout
When a partition doesn't have a minimum size in the partition layout
configuration, it defaults to using 100% of the available space.

This patch fixes this error by setting the minimum partition size to 0
when the attribute has been omitted.

Signed-off-by: Arnaud Ferraris <arnaud.ferraris@collabora.com>
2019-02-01 13:57:33 +01:00
Adriaan de Groot
a31cbefab6 Merge branch 'improve-testing' 2019-01-29 07:53:44 -05:00
Adriaan de Groot
fe0c57c7af [calamares] Make loadmodule --help consistent
- Name job.yaml consistently, call it "job settings document"
2019-01-29 07:52:45 -05:00
Adriaan de Groot
958d15fb71 [libcalamares] Improve saveYaml()
- Write out Int, Double
 - Special-case empty lists
 - Do objects (not lists of objects) correctly

Now passes the tests for all the example config files.
2019-01-29 07:47:38 -05:00
Adriaan de Groot
3d6dd1202a [libcalamares] Extend tests to all example config files
- Do a `find ../src/ -name *.conf` to get files to load
 - Load and save all of them to check for correctness
2019-01-29 07:31:29 -05:00
Adriaan de Groot
e25deffa74 [libcalamares] Implement most of dumpYaml
- Write out bools, strings, lists and maps; this is enough to
   read and reproduce settings.conf
 - Fix infinite loop in writeIndent()
2019-01-28 18:25:47 -05:00
Adriaan de Groot
f72d6ca403 [libcalamares] Add very basic test for load/save YAML 2019-01-28 08:25:13 -05:00
Adriaan de Groot
8789b52cb1 Tests: add language and global-settings options
- The test-loader can be set to a specific language through the
   -l option (just like the Python one can) and can load a global
   configuration file.
2019-01-28 07:52:38 -05:00
Adriaan de Groot
5e1bcd9b4a [libcalamares] Stub of saveYaml
- This belongs alongside loadYaml, so place it in libcalamares
 - Doesn't actually save anything yet (it isn't used yet)
2019-01-28 07:50:30 -05:00
Adriaan de Groot
5efbf51ed3 [libcalamares] Improve naming in implementation
- The code in loadYaml was refactored out of the module-descriptor
   loading code, but the variable names in the implementation were
   not changed and still strangely specific to the prior task.
2019-01-25 11:59:17 -05:00
Adriaan de Groot
b3a7545217 [unpackfs] One more test case 2019-01-25 11:43:33 -05:00
Adriaan de Groot
b44fd65986 [libcalamares] load/save globals in YAML format 2019-01-25 10:58:43 -05:00
Adriaan de Groot
a36afc52df Tests: add command-line options to loadmodule
- The testing-application loadmodule gets -g and -j options
   for loading configurations (although -g is not implemented yet).
2019-01-25 10:01:12 -05:00
Adriaan de Groot
aebe67fde7 [libcalamares] Improve debug message while looking for gettext 2019-01-25 09:43:16 -05:00
Calamares CI
422cd39c49 i18n: [python] Automatic merge of Transifex translations 2019-01-25 09:23:07 -05:00
Calamares CI
1be5c9006a i18n: [calamares] Automatic merge of Transifex translations 2019-01-25 09:23:05 -05:00
Adriaan de Groot
3e4f429f35 Merge branch 'improve-unsquash-errors' 2019-01-25 08:03:30 -05:00
Adriaan de Groot
d95193f646 [unpackfs] Translate and log other error messages 2019-01-25 08:02:56 -05:00
Adriaan de Groot
79ce2c2d0f [unpackfs] Translate pretty module name 2019-01-25 07:54:51 -05:00
Adriaan de Groot
28efe2b85a [unpackfs] Log messages in English, too
- For debugging purposes, need to log the message in English before
   returning the (user-visible) error description.
2019-01-25 07:53:39 -05:00
Adriaan de Groot
4004af09ad i18n: improve documentation on Transifex scripts 2019-01-25 07:46:19 -05:00
Adriaan de Groot
8ddf801bfb [unpackfs] Switch on translations for user-visible strings 2019-01-25 07:46:19 -05:00
Adriaan de Groot
18f172e80c [unpackfs] Add tests
- Add global- and job-configurations for test runs.
 - Add a driver script that sets up some assumptions on the host
   system so that the tests can complete.
 - The idea is that these tests together get a decent code-coverage
   for the module.
2019-01-25 07:20:16 -05:00
Adriaan de Groot
2d684bb385 [unpackfs] Be more resilient to globalStorage weirdness
- If no extraMount is defined, just don't mount anything
2019-01-25 07:14:23 -05:00
Adriaan de Groot
823b5e480e Tests: add script for running multiple Python-module tests
- This is a driver script for running testmodule.py multiple times
   with different global- and job-configurations.
 - Usage: testpythonrun.sh <modulename>
 - Run the script from the build-directory. It uses files from the
   tests/ (source) subdirectory to drive the test runs.
2019-01-25 06:42:26 -05:00
Adriaan de Groot
e96a29b1b9 [unpackfs] Improve error message wording 2019-01-25 06:08:56 -05:00
Adriaan de Groot
56d05d5834 [unpackfs] Reduce file-reading
- Only need to get the list of supported filesystems *once*,
   not for each and every filesystem that is going to be unpacked.
 - Be more Python-idiomatic.
2019-01-25 06:01:49 -05:00
Adriaan de Groot
4ceedf239c Merge remote-tracking branch 'origin/master' 2019-01-24 15:25:22 -05:00
Adriaan de Groot
d5033f218f CMake: drop es_ES which snuck into the language list 2019-01-24 15:24:34 -05:00
Adriaan de Groot
c9c1f72749 Changes: smash everything back on to master
- Experiments show that the partitionmanager crashes are not new
   or specific to the swap-UI. So reduce the number of open branches
   by merging everything back to master, for a 3.2.4 release once
   the crashes are disabled (and the UI is up-to-snuff).
 - Pull in and document new code from Collabora.
2019-01-24 15:20:49 -05:00
Adriaan de Groot
73c39adf9c Merge branch 'improve-swap-ui' 2019-01-24 15:20:06 -05:00
Adriaan de Groot
ee5eef36d2 Merge pull request #1075 from a-wai/rawfs-module
Add a raw filesystem copy module
2019-01-24 21:08:52 +01:00
Adriaan de Groot
667c0594a4 Merge pull request #1074 from a-wai/disable-cancel-button
Add a settings.conf option to disable "Cancel" button
2019-01-24 21:05:38 +01:00
Adriaan de Groot
02416578cd Merge branch 'release-3.2.4' 2019-01-24 11:22:04 -05:00
Adriaan de Groot
b98006b94b i18n: welcome Nepali as language
- Nepali new language
 - Asturian at 100%
 - Polish documentation a bit
2019-01-24 08:24:08 -05:00
Calamares CI
bbd66f3168 i18n: [python] Automatic merge of Transifex translations 2019-01-24 08:19:41 -05:00
Calamares CI
2f35ff96bb i18n: [dummypythonqt] Automatic merge of Transifex translations 2019-01-24 08:19:40 -05:00
Calamares CI
9dbe99c9d1 i18n: [desktop] Automatic merge of Transifex translations 2019-01-24 08:19:39 -05:00
Calamares CI
8f215dd8e3 i18n: [calamares] Automatic merge of Transifex translations 2019-01-24 08:19:38 -05:00
Arnaud Ferraris
902772d9f8 [rawfs] Fix copyright notice in module header
Signed-off-by: Arnaud Ferraris <arnaud.ferraris@collabora.com>
2019-01-24 12:46:13 +01:00
Arnaud Ferraris
4e6492de28 Add a raw filesystem copy module
In some cases, we might want to copy a filesystem as if we were using a
simple 'dd' command, in order to create an exact copy, down to the block
level.
This can be useful in particular when working with dm-verity for
checking the rootfs integrity: that way, we can make a direct copy of
the rootfs and its verity partition and keep the system usable.

This patch adds a new 'rawfs' module to calamares, making possible to
block-copy a filesystem to a block device.

Signed-off-by: Arnaud Ferraris <arnaud.ferraris@collabora.com>
2019-01-23 16:36:31 +01:00
Arnaud Ferraris
db3d3a7d03 Add a settings.conf option to disable "Cancel" button
In some cases, e.g. when calamares is used as an "initial setup" tool,
we may want to user to go through all the configuration steps in order
to end up with a usable system.
Therefore, disabling the "Cancel" button can be useful in this case.

This commit adds an option to settings.conf which disables this button
when set to "true". If the option is not present in the settings file,
the default behavior ("Cancel" button enabled & visible) is enforced.

Signed-off-by: Arnaud Ferraris <arnaud.ferraris@collabora.com>
2019-01-23 15:56:07 +01:00
Adriaan de Groot
422d521ff7 Changes: re-number releases 2019-01-23 12:20:33 +01:00
Adriaan de Groot
b913753831 [partition] No need to re-query the current choice 2019-01-21 08:54:09 -05:00
Adriaan de Groot
aef61a42bc [partition] Tidy up code
- avoid possible nullptr dereference on connect() if no swap choices
 - group retranslations together
2019-01-21 08:22:17 -05:00
Adriaan de Groot
24422b19bd [partition] Idiomatic connect() usage 2019-01-21 08:20:01 -05:00
Adriaan de Groot
fbef117fc8 [partition] Remove unused code 2019-01-21 07:52:23 -05:00
Adriaan de Groot
8ecae75dc8 [partition] Simplify code a little
- Document and make pickOne() more correct
 - Reduce calls to globalStorage(), it doesn't change
2019-01-21 07:41:47 -05:00
Adriaan de Groot
e85fedfd41 [partition] Drop comment that doesn't apply anymore 2019-01-18 15:57:21 +01:00
Adriaan de Groot
fee1794924 [partition] Use NamedEnumTable support code
- reduce amount of custom code by using the (new) generic implementation
2019-01-18 15:56:51 +01:00
Adriaan de Groot
a51a000681 Merge branch 'master' into improve-swap-ui 2019-01-14 15:57:22 +01:00
Adriaan de Groot
c68af1cc5d Changes: minor addition to changelog
FIXES #1038
2019-01-14 15:36:14 +01:00
Adriaan de Groot
bcce704589 Merge branch 'resize-control'
FIXES #1062 #1038
2019-01-14 15:31:25 +01:00
Adriaan de Groot
12665192ae [libcalamaresui] Defend against missing config settings 2019-01-14 15:30:44 +01:00
Adriaan de Groot
ef94b1f689 [calamares] Support noexpand
- When in noexpand mode, just don't grow the window, and assume
   widgets elsewhere will get scrollbars automatically.
2019-01-14 14:25:01 +01:00
Adriaan de Groot
866797a6c9 [calamares] Support starting fullscreen 2019-01-14 14:17:39 +01:00
Adriaan de Groot
80569a746f [libcalamaresui] Relax validity check in branding
- A size of 64em has a value less than 1024, which is the minimum
   size **in pixels**. The check doesn't make sense as-is and would
   have to take the unit into account. Leave that to clients of
   branding (e.g. CalamaresWindow, which already does this).
2019-01-14 13:42:41 +01:00
Adriaan de Groot
79cee26b33 [libcalamares] Switch to std::vector
Keeping std::initializer_list around is fraught. Causes segfaults
because I'm not keeping the underlying temporary array around
properly. Switch to vectors because those initialize from the
underlying array.

TODO: look into making this sufficiently constexpr -- perhaps
just use std::array and make find() work on that.
2019-01-14 13:23:44 +01:00
Adriaan de Groot
097927eb3e [libcalamares] Fix off-by-one in taking substring for value 2019-01-14 13:23:14 +01:00
Adriaan de Groot
0648a3facf [fsresizer] Be explicit about type of string 2019-01-14 12:49:58 +01:00
Adriaan de Groot
f6c69db9ff [calamares] Use branding-settings for initial window-size 2019-01-14 12:23:38 +01:00
Adriaan de Groot
32ab377e43 [libcalamaresui] Record branding window-size 2019-01-14 12:06:04 +01:00
Adriaan de Groot
99a19c7c6b [libcalamares] Document NamedSuffix
- Add more constructors
 - Make the table-constructor public, no need to force
   subclassing on everyone
 - Declare some useful API
 - Document the bits.
2019-01-14 11:50:06 +01:00
Adriaan de Groot
07a90957f4 Merge branch 'post-323' 2019-01-13 06:21:25 -05:00
Adriaan de Groot
ef33aa01f3 [fsresizer] Port to NamedSuffix template 2019-01-11 19:49:39 +01:00
Adriaan de Groot
e28aeebb48 [libcalamares] Introduce helper NamedSuffix template
For (all?) those cases where we have configuration with
a value followed by a unit, introduce a class that
uses the NamedEnum properties to make parsing and split-up easier.
2019-01-11 19:48:11 +01:00
Adriaan de Groot
819a57e458 [libcalamaresui] Store resize configuration
- Use the named enums code for simplicity.
2019-01-11 17:35:06 +01:00
Adriaan de Groot
d25a17a45e Merge branch 'named-enums' into resize-control 2019-01-11 14:33:31 +01:00
Adriaan de Groot
194f693412 [partition] Use new NamedEnum approach 2019-01-11 14:32:45 +01:00
Adriaan de Groot
9c2a6b03e4 [libcalamares] Slight refactor, move into NamedEnumTable
- expand documentation on find()
 - make find() methods
2019-01-11 14:30:21 +01:00
Adriaan de Groot
fb44113561 [libcalamares] Named enumeration support 2019-01-11 14:15:18 +01:00
Adriaan de Groot
a8e19f5ee7 Changes: document the existence of resize options 2019-01-11 12:25:37 +01:00
Adriaan de Groot
dfad21bfa9 Changes: update contributors and add notes 2019-01-11 12:22:23 +01:00
Arnaud Ferraris
5cacc0ddc6 Merge remote-tracking branch 'upstream/master' into partition-layout 2019-01-11 10:03:46 +01:00
Adriaan de Groot
305249976f Merge pull request #1069 from a-wai/preserve-selected-device
Preserve current device when going to manual partitioning and back
2019-01-11 00:08:23 +01:00
Adriaan de Groot
5f0993ca8c Merge branch 'fix-defaultfs'
FIXES #1070
2019-01-11 00:05:59 +01:00
Adriaan de Groot
ba63084c7e [partition] Refactor fstype naming
- Use locale "C" for checking filesystem names
 - Also check other possibilities and case-insensitive, to
   be more forgiving of weird configurations (and localizations)
2019-01-10 23:54:57 +01:00
Arnaud Ferraris
dfb5412c57 [partition] Preserve current device when going to manual partitioning
Fixes #1043

Signed-off-by: Arnaud Ferraris <arnaud.ferraris@collabora.com>
2019-01-10 16:28:05 +01:00
Calamares CI
d096ca6a8d i18n: [python] Automatic merge of Transifex translations 2019-01-09 14:06:47 +01:00
Calamares CI
807861c97d i18n: [dummypythonqt] Automatic merge of Transifex translations 2019-01-09 14:06:46 +01:00
Calamares CI
8d60f6025d i18n: [calamares] Automatic merge of Transifex translations 2019-01-09 14:06:45 +01:00
Adriaan de Groot
44211ee19a Merge branch 'release-3.2.3'
- Pull in CHANGES and release-numbering modifications
 - Pull in locale fixes
 - Bump version again, to 3.2.4-RC1 in master
2019-01-09 13:07:32 +01:00
Adriaan de Groot
b18ba3d662 Changes: polish the change-notes a bit 2019-01-09 13:00:52 +01:00
Adriaan de Groot
2d2454025d Changes: document locale fix
FIXES #1064
2019-01-09 12:58:31 +01:00
Adriaan de Groot
4b1b71dd3e [locale] Update Copyright statements 2019-01-08 22:30:12 +01:00
Adriaan de Groot
527392f0af [libcalamares] Update Copyright statement 2019-01-08 22:29:55 +01:00
Adriaan de Groot
ba82526449 CMake: drop RC version for release 2019-01-08 22:25:25 +01:00
Adriaan de Groot
200f68ae48 [locale] Reduce debug-chattiness 2019-01-08 22:18:01 +01:00
Adriaan de Groot
f1cbd5fcbf [locale] Provide API for setting language
- The language and BCP need to be in-sync
 - Existing code was inconsistent in setting things, which is why
   you could get through the locale page without setting a locale
   (at all) or it would keep English in spite of picking Germand on
   the welcome page.
 - Patch tests to use that API.
2019-01-08 18:09:34 +01:00
Adriaan de Groot
8cc0e1f5f9 [locale] Expand tests to check lang
- This shows that one constructor isn't doing it right.
2019-01-08 14:39:40 +01:00
Arnaud Ferraris
921f70d3bb [partition] Fix size and last sector computation
Due to a computation error when calculating the total drive space and
each partition's last sector, the last partition's last sector was out
of boundaries, leading to an error creating this partition.

This patch fixes the computation algorithm to get rid of this error.

Signed-off-by: Arnaud Ferraris <arnaud.ferraris@collabora.com>
2019-01-08 14:05:38 +01:00
Adriaan de Groot
2345b933cd [locale] Add operator << for LocaleConfiguration, for debugging 2019-01-08 13:40:20 +01:00
Adriaan de Groot
dbe50fe3db [locale] Improve LocaleConfiguration constructors
- Allow split-setting of the language and formats
 - Test new constructors
 - Since fromLanguageAndLocation can handle empty localeGen
   lists just fine, skip all the weird checks that return
   invalid guessed locale configurations.
2019-01-08 13:23:16 +01:00
Adriaan de Groot
0a526febae [locale] Refactor setting the BCP47 name and update test 2019-01-08 11:39:15 +01:00
Adriaan de Groot
b1921cced9 [locale] Add tests for some of the data classes 2019-01-08 11:30:49 +01:00
Adriaan de Groot
50e6f0fcbf [locale] Replace weird static-constructor
- Replace createDefault() with a constructor that takes a
   locale name; use it with en_US.UTF-8 in those places where
   createDefault was previously used.
2019-01-08 11:10:16 +01:00
Adriaan de Groot
093240c131 [libcalamares] Be less chatty in Python scripts
- When finding the gettext path, the debug output was very
   chatty and didn't include an indication that it was looking
   for translations.
2019-01-08 10:51:53 +01:00
Adriaan de Groot
9d871fb9db [locale] Update global locale setting when it changes
- use debugging to be a little more chatty
 - when changing the system language on the locale page,
   the global locale setting should change, too.
2019-01-07 18:49:08 +01:00
Arnaud Ferraris
cb60a3e7f1 [partition] Keep copyright notice for copied code
Some code was copied and adapted from PartitionActions.cpp. For full
compliance, it is best to copy the copyright holders list from this file
to PartitionLayout.cpp.

Signed-off-by: Arnaud Ferraris <arnaud.ferraris@collabora.com>
2019-01-07 18:40:12 +01:00
Adriaan de Groot
bc398756f5 [locale] Debugging support for Location
- code formatting
 - provide an operator << for debugging TZ widget
2019-01-07 18:34:25 +01:00
Adriaan de Groot
3ff480eaa9 [locale] Refactor to make updating global locale setting easier. 2019-01-07 17:29:54 +01:00
Arnaud Ferraris
fcd0e8d362 [partition] Apply partition layout when replacing free space
When chosing the "Replace partition" option, free space is not handled
like any partition. In order to apply the custom partition layout in
that case too, we have to modify the code where "replace free space" is
handled.

Signed-off-by: Arnaud Ferraris <arnaud.ferraris@collabora.com>
2019-01-07 17:28:02 +01:00
Arnaud Ferraris
ba673b17ee [partition] Add configuration option to disable manual partitioning
In some cases where a custom partition layout is used, use of this
layout is mandatory (this can be the case when using a read-only rootfs
which is updated by block-cpying an image file to it).

For these cases, the user must not be able to change the partition
layout, therefore we have to disable manual partitioning.

In order to stay consistent with current behaviour, manual partitioning
is still enabled by default. It will only be disabled if the partition
module's config file contains the corresponding option set to "false".

Signed-off-by: Arnaud Ferraris <arnaud.ferraris@collabora.com>
2019-01-07 17:27:40 +01:00
Arnaud Ferraris
2f14a21456 [partition] Apply custom layout when installing "Alongside"
When choosing "Install alongside another system", the custom partition
layout is applied to the space freed by resizing the selected partition.

Signed-off-by: Arnaud Ferraris <arnaud.ferraris@collabora.com>
2019-01-07 17:27:12 +01:00
Arnaud Ferraris
74a59ae68a [partition] Display partition labels when they exist
Signed-off-by: Arnaud Ferraris <arnaud.ferraris@collabora.com>
2019-01-07 17:26:53 +01:00
Arnaud Ferraris
0d284759f5 [partition] Apply custom partition layout for Erase and Replace choices
This patches add new methods to both PartitionLayout and
PartitionCoreModule classes which apply the partition layout to the
available drive space.

In addition, the partition creation code from PartitioinActions is
removed to call the newly created methods instead, thus applying the
custom partition layout when the "Erase whole disk" and "Replace
partition" choices are selected.

Signed-off-by: Arnaud Ferraris <arnaud.ferraris@collabora.com>
2019-01-07 17:26:37 +01:00
Arnaud Ferraris
f863912a2f [partition] export PartitionActions::bytesToSectors for future use
As we move some of the partition creation code away from
PartitionActions, we will need the bytesToSectors function. Rather than
copying it, we export it in the PartitionActions namespace, so that
other classes can use it.

Signed-off-by: Arnaud Ferraris <arnaud.ferraris@collabora.com>
2019-01-07 17:26:12 +01:00
Arnaud Ferraris
b2bf873ede [partition] Initialize partition layout from config file
In order to keep the partition layout during calamares' execution, we
add a PartitionLayout object instance to PartitionCoreModule. This class
will therefore be used to initialize the PartitionLayout object and
interact with it thoughout the program's execution.

When no partition layout is present in the config file, we initialize
the layout with a single ext4 partition mounted on '/', as it was
previously done.

Signed-off-by: Arnaud Ferraris <arnaud.ferraris@collabora.com>
2019-01-07 17:25:39 +01:00
Arnaud Ferraris
f1ead5193d [partition] Create PartitionLayout class
In order to use a custom partition layout in the partition module, we
need to write this layout in the module's config file, and store it into
a dedicated object.

As it doesn't look appropriate to extend an existing class with layout
information, we create a new PartitionLayout class, which will be used
to parse the layout from the config file and keep it in memory.

Signed-off-by: Arnaud Ferraris <arnaud.ferraris@collabora.com>
2019-01-07 17:25:22 +01:00
Adriaan de Groot
e52f0318fe [locale] Call timedatectl only when needed
- When testing and running not-as-root, only call the timedatectl
   when the settings actually change; this reduces the number of
   times kauth pops up.
2019-01-07 15:16:37 +01:00
Adriaan de Groot
59eaf18b9f CMake: bump required Qt version
- kpmcore will require Qt 5.10 shortly
 - KDE CI tests only Qt 5.10 and later
2019-01-03 15:54:54 +01:00
Adriaan de Groot
2bb7a5f686 [branding] Document intended settings for window size
- Control Calamares window size through the branding file
 - This is for #1062 and #1038
2019-01-03 15:46:44 +01:00
Adriaan de Groot
8b72c93d67 [branding] Group the welcome-settings together 2019-01-03 15:38:20 +01:00
Adriaan de Groot
dc06de58d8 Changes: document source of fix 2019-01-03 15:29:04 +01:00
Adriaan de Groot
b1ea96e463 [partition] Don't autoremove the tempdir
- Dangerout since we're mounting things inside that tempdir,
   and then doing a "weak" unmount
2019-01-03 15:10:07 +01:00
Calamares CI
934e58ad54 i18n: [python] Automatic merge of Transifex translations 2019-01-03 15:06:56 +01:00
Calamares CI
e572784eb5 i18n: [dummypythonqt] Automatic merge of Transifex translations 2019-01-03 15:06:55 +01:00
Calamares CI
491202d75f i18n: [desktop] Automatic merge of Transifex translations 2019-01-03 15:06:54 +01:00
Calamares CI
ad9fe5b382 i18n: [calamares] Automatic merge of Transifex translations 2019-01-03 15:06:50 +01:00
Adriaan de Groot
fe3a88f834 [packages] Fix cut-and-paste-o in packages try_remove
- Copied from_local from the code for install, which doesn't
   make sense and causes a NameError.

FIXES #1063
2019-01-03 14:36:48 +01:00
Adriaan de Groot
c9930788f7 Merge branch 'fix-language-display'
Merge in the bits of @apachelogger's fixes that I forgot previously,
and then refactor the whole thing to be consistent more easily.

FIXES: #712
2018-12-14 13:51:08 +01:00
Adriaan de Groot
56a71c232f [locale] Use the re-factored LocaleLabel 2018-12-14 13:27:32 +01:00
Adriaan de Groot
210965aca4 [libcalamaresui] Allow always-show-country setting in locale label 2018-12-14 13:20:32 +01:00
Adriaan de Groot
8790985fca [libcalamaresui] Code-formatting, remove dead code 2018-12-14 11:33:13 +01:00
Adriaan de Groot
3dda9ab860 [libcalamaresui] LocaleLabel doesn't need to inherit QObject
- Use static QObject::tr instead.
2018-12-14 11:30:05 +01:00
Adriaan de Groot
1f4ac45bb5 [libcalamaresui] Cleanup locale-labeling code
- Support translations of the "language (country)" format instead
   of forcing English parenthesis.
2018-12-14 11:22:47 +01:00
Adriaan de Groot
084f4d2445 [libcalamaresui] Refactor: move LocaleLabel to UI library
- This is prep-work for making locale labels consistent everywhere.
 - While here, improve code documentation.
2018-12-14 10:52:55 +01:00
Harald Sitter
311af6de5d [locale] prefer native language and country names when available
This basically means we talk about localization in the respective
localized variant. e.g. "German (Germany)" ➡ "Deutsch (Deutschland)".

If geoip lookup failed or isn't configured for whatever reason it's a
stretch to expect the user to know english enough to find their own
language. Preferring the localized strings resolves this issue.

Additionally this happens to bypass #712 respectively
https://bugreports.qt.io/browse/QTBUG-34287
as the native names are properly spelled. So, as long as Qt has localized
names the names will also be properly spelled.
2018-12-13 23:18:37 +01:00
Adriaan de Groot
0b6e1ca488 i18n: update list of translations from Transifex
- Add automatic tooling to retrieve translation stats and
   output new CMake variable settings.
 - If there are i18n language selection warnings, stop CMake.
2018-12-13 14:50:33 +01:00
Calamares CI
915884c6fe i18n: [python] Automatic merge of Transifex translations 2018-12-11 19:31:23 +01:00
Calamares CI
bf976b3de0 i18n: [dummypythonqt] Automatic merge of Transifex translations 2018-12-11 19:31:23 +01:00
Calamares CI
99b99d24bd i18n: [desktop] Automatic merge of Transifex translations 2018-12-11 19:31:22 +01:00
Calamares CI
1321ba1525 i18n: [calamares] Automatic merge of Transifex translations 2018-12-11 19:31:21 +01:00
Adriaan de Groot
6798d613d8 CI: guess that debug builds are way too big for Travis 2018-12-11 15:40:02 +01:00
Adriaan de Groot
59e30e3cdb CI: yet another attempt to debug the disk-space failures 2018-12-11 15:25:39 +01:00
Adriaan de Groot
c4b5360d91 CI: more debugging due to disk-space problems 2018-12-11 14:53:06 +01:00
Adriaan de Groot
19617fc42d CI: more debugging due to disk-space problems 2018-12-11 14:23:23 +01:00
Adriaan de Groot
1cc7b40a94 Merge branch 'relax-xml' 2018-12-11 14:04:22 +01:00
Adriaan de Groot
33c5baa9f3 [lang] Add usage information
- This developer tool was originally committed with a not-useful
   commit message, no usage info, and no documentation. Bad [ade].
2018-12-11 14:03:18 +01:00
Adriaan de Groot
d7f0a1b937 [lang] Xml could be option, this is developer tooling after all 2018-12-11 13:55:31 +01:00
Adriaan de Groot
4973d00ace [partition] Only create drop-down if there is something to select
- Swap choices may be 0 (then choose none), 1 (choose that one)
   or more (currently undecided)
2018-12-11 13:52:23 +01:00
Adriaan de Groot
00df8a9fb1 [partition] Remove unused code
- Swap choice for replace and alongside will happen much, much later.
2018-12-04 12:21:02 +01:00
Adriaan de Groot
a456687924 [partition] Include all possible SwapChoices in example 2018-12-04 12:11:35 +01:00
Adriaan de Groot
a66ea106d6 [partition] Missing implicit include 2018-12-04 11:40:27 +01:00
Adriaan de Groot
2998c27545 [partition] Use configured swap choices in choice page 2018-12-04 11:35:35 +01:00
Adriaan de Groot
5945e9584d [partition] Refactor name-to-enum and back for swap choices 2018-12-04 11:15:38 +01:00
Adriaan de Groot
edc6c64657 [partition] Create swap-combo from a set
- Alternate way to create swap-combobox, using configuration
   values rather than an initializer list.
2018-12-04 11:01:16 +01:00
Adriaan de Groot
984f2ae6fb CMake: bump required Qt version
- kpmcore will require Qt 5.10 shortly
 - KDE CI tests only Qt 5.10 and later
2018-12-04 10:40:23 +01:00
Adriaan de Groot
988a0a5388 [partition] Changing swap choice also changes preview
- When selecting *erase*, you may be able to change the swap
   settings. If so, changing swap settings should change the
   preview.
2018-12-04 10:34:02 +01:00
Adriaan de Groot
0231619c7c [partition] Refactor slot for change in action
- Let's not go overboard on lambdas,
 - Needed for others that also want to update the partitioning preview
2018-12-04 10:22:08 +01:00
Adriaan de Groot
b8595a1323 CMake: relax debugging flags again 2018-12-03 21:44:29 +01:00
Calamares CI
dc92415ae0 i18n: [python] Automatic merge of Transifex translations 2018-12-03 21:09:30 +01:00
Calamares CI
6ac872e724 i18n: [dummypythonqt] Automatic merge of Transifex translations 2018-12-03 21:09:30 +01:00
Calamares CI
e485f057d5 i18n: [desktop] Automatic merge of Transifex translations 2018-12-03 21:09:29 +01:00
Calamares CI
a0766a6895 i18n: [calamares] Automatic merge of Transifex translations 2018-12-03 21:09:29 +01:00
Adriaan de Groot
c5d707399d Merge branch 'fix-swap-ui' 2018-12-03 21:02:10 +01:00
Adriaan de Groot
14c72824f0 [partition] Be chatty when deciding a partition isn't resizable 2018-12-03 16:42:40 +01:00
Adriaan de Groot
b798c27bc4 [partition] Be more verbose while looking for fstab entries 2018-12-03 16:33:12 +01:00
Adriaan de Groot
1f2d547d5b Merge remote-tracking branch 'origin/partitioning-fixes' 2018-11-30 12:50:03 +01:00
Adriaan de Groot
e074959ede Merge remote-tracking branch 'origin/package-scripts'
FIXES #1057
2018-11-30 12:29:31 +01:00
Adriaan de Groot
1fb1189f74 Merge remote-tracking branch 'origin/mount-conf-flexible' 2018-11-30 12:28:07 +01:00
Adriaan de Groot
e4d67b5572 [mount] Handle missing configuration keys gracefully
- If a key is missing from mount.conf, don't raise KeyError
 - If both keys are missing, suggest that mount.conf might
   be missing instead (a consequence of INSTALL_CONFIG=OFF, for
   instance).
 - Simplify code a bit.
 - Don't bother returning None explicitly.
2018-11-28 13:26:40 +01:00
Adriaan de Groot
0a73d57808 [packages] Add support for pre- and post- scripts everywhere
- for remove and localInstall, add support for pre- and post-
   scripts like there already was for install.

This feels like there's code duplication going on, but I haven't
thought of an elegant way to distinguish the available operations
so that I can pass around functions instead.
2018-11-27 12:52:24 +01:00
Adriaan de Groot
34255b4cf5 [packages] Document *localInstall* operation. 2018-11-27 12:48:31 +01:00
Adriaan de Groot
05588a1ffd [packages] Improvide conf documentation
- about LOCALE packages
 - about pre- and post-scripts

CC: #1057
2018-11-27 12:39:19 +01:00
Calamares CI
ebe1be8c8b i18n: [python] Automatic merge of Transifex translations 2018-11-20 13:17:22 +01:00
Calamares CI
94dcf56282 i18n: [dummypythonqt] Automatic merge of Transifex translations 2018-11-20 13:17:21 +01:00
Calamares CI
5e0206845f i18n: [desktop] Automatic merge of Transifex translations 2018-11-20 13:17:21 +01:00
Calamares CI
b62e778fec i18n: [calamares] Automatic merge of Transifex translations 2018-11-20 13:17:20 +01:00
Adriaan de Groot
38d58fb6ed [partition] Check for suitable FS before passing -o noload
- The noload option prevents journal re-play (so it's an extra-
   strong read-only) but is only applicable to ext3 and ext4.
   Check the FS type before mounting; other FS types don't
   accept -o noload and will fail to mount.
2018-11-12 17:07:18 +01:00
Adriaan de Groot
e0ce500f36 [partition] Improve debug-output after os-prober 2018-11-12 16:31:30 +01:00
Adriaan de Groot
c522004575 [partition] Mount fs read-only when searching for fstab
Submitted by aliveafter1000

FIXES: #1044
CLOSES: #1050
2018-11-12 15:26:15 +01:00
Adriaan de Groot
9459ef7d93 [partition] Set FlagBoot for the root partition
- This only applies to legacy (non-EFI) BIOS systems, and
   adds the FlagBoot to whatever is already set for the root
   filesystem, and only when autopartitioning the device.

Submitted by aliveafter1000.

FIXES: #1046
CLOSES: #1049
2018-11-12 15:15:22 +01:00
Adriaan de Groot
a1143e8fef [partition] Document flags parameter to createPartition() 2018-11-12 14:16:33 +01:00
Adriaan de Groot
8144295e98 [partition] Make new partition flags explicit
Suggested by aliveafter1000: having a default value, and then
filling in the default in one place it is used and not others,
is weird. Instead of dropping the one use, remove the default
value: partition flags are important enough to be explicit.
2018-11-09 08:25:26 -05:00
Adriaan de Groot
6ae7a6b470 Changes: add aliveafter1000 to contributors for 3.2.3
Several PRs from aliveafter1000 (no real name known) were
discussed and this branch contains re-formatted and slimmed-
down changes that implement those PRs.
2018-11-09 16:57:20 +01:00
Adriaan de Groot
1def06cfd3 [calamares] Reduce warnings about signedness 2018-11-09 08:24:31 -05:00
Adriaan de Groot
33540749b2 CI: switch to debug builds 2018-11-06 06:37:55 -05:00
Adriaan de Groot
9816b6951f CMake: add debugging flags to compile in debug mode 2018-11-06 06:36:51 -05:00
Adriaan de Groot
97c9e5bdcd [partition] Debug-log available file-system types 2018-11-06 06:22:02 -05:00
Adriaan de Groot
463b1441a5 [partition] Be more verbose about default file-system settings
- Log the type that is configured
 - Document that this is a delicate setting, case-sensitive and
   dependent on KPMCore.
2018-11-06 05:54:45 -05:00
Adriaan de Groot
6de55e6951 [partition] Construct, then winnow, the fstab entries 2018-11-02 12:13:29 -04:00
Adriaan de Groot
ebbc1a1bcb [partition] "constructor-like" needs to be static 2018-11-02 12:13:06 -04:00
Adriaan de Groot
516ae494bf [partition] Complain if unmount fails
- If unmount fails, then warn and don't autoremove
2018-11-02 12:04:09 -04:00
Adriaan de Groot
bd1b482242 [partition] Don't autoremove the tempdir
- Dangerout since we're mounting things inside that tempdir,
   and then doing a "weak" unmount
2018-11-02 11:58:49 -04:00
Adriaan de Groot
f1c1d07dca [partition] Add convenience methods to FstabEntry
- Add something like a constructor
 - Add validity checking
2018-11-02 11:57:49 -04:00
Adriaan de Groot
417eeedd9f [partition] Calamares is spaced-out enough without extra's 2018-10-11 06:35:45 -04:00
Adriaan de Groot
c7645af358 [partition] Translate swap-choice-strings to enum
- Handle legacy and modern config, mixed-configs,
 - Translate strings to enum values,
 - Default and warn as appropriate.
 - Doesn't **do** anything with the config, though.
2018-10-11 06:27:39 -04:00
Adriaan de Groot
f7cc571635 Merge branch 'fix-swap-ui' of github.com:calamares/calamares into fix-swap-ui 2018-10-08 16:49:18 -04:00
Adriaan de Groot
3d543e9063 [partition] Refactor to use current config-reading methods 2018-10-09 05:46:12 -04:00
Adriaan de Groot
caa4b8ab53 [partition] Document intention of new-style swap config 2018-10-09 05:30:14 -04:00
Adriaan de Groot
2a61116b3c [partition] Disable swap choice for replace & alongside 2018-10-08 15:32:02 -04:00
Adriaan de Groot
779542a5d1 Merge branch 'master' into fix-swap-ui 2018-10-08 13:56:28 -04:00
Adriaan de Groot
594618f2cc Changes: document -X option 2018-10-08 10:34:57 -04:00
Adriaan de Groot
4eba91b8e9 Merge branch 'more-configuration-dirs' 2018-10-08 10:30:29 -04:00
Adriaan de Groot
3b8d2835e0 [calamares] Use XDG_{DATA,CONFIG}_DIRS as appropriate
- Use DATA for the qml and branding directories (looks for qml/
   and branding/<name>/ in those directories).
 - Use CONFIG for the global settings and module settings (looks
   for settings.conf and module/<name>/ in those directories).

FIXES #941
2018-10-08 10:28:30 -04:00
Adriaan de Groot
c489320af5 [calamares] Add option to obey XDG dirs
- Prep-work for #941
 - This does nothing, yet, just sets the stage for using
   XDG_CONFIG_DIRS and XDG_DATA_DIRS as well as the regular
   directories.
2018-10-08 07:02:35 -04:00
Adriaan de Groot
4a2ca8bb77 [libcalamares] Fix compilation of tests
- QCOMPARE is picky with types, enum vs unsigned int, so just
   hit it with a hammer.
2018-10-08 06:46:35 -04:00
Adriaan de Groot
fc99824c8d [fsresizer] Fix string error, thanks Lithuanian translators 2018-10-05 17:22:12 +02:00
Adriaan de Groot
1b570477de Merge branch 'partition-logging' 2018-10-05 09:41:53 -04:00
Adriaan de Groot
bb586de056 [partition] Remove some slowdown methods when debugging is off
- Running lsblk and mount for debugging purposes can be
   skipped when the debugging is going to be suppressed anyway.
   This will speed things up just a little for regular users.
2018-10-05 09:41:37 -04:00
Adriaan de Groot
74ab06e20a [partition] Drop redundant logging 2018-10-05 09:41:37 -04:00
Adriaan de Groot
02a6b7dd12 [partition] Log the newly-created partition table
- Log individual partitions instead of printing QObject(<ptr>)
2018-10-05 09:41:37 -04:00
Adriaan de Groot
4757496c3d [partition] Improve partition-UUID logging. 2018-10-05 09:41:37 -04:00
Adriaan de Groot
5b936f33ec [libcalamares] Add tests
- Test only the new debug-level query methods
2018-10-05 09:41:37 -04:00
Adriaan de Groot
0b1c969a80 [libcalamares] Allow querying debug settings 2018-10-05 09:41:37 -04:00
Adriaan de Groot
7515386cf8 CMake: clean up test setup
- Remove redundant searches for ECM and Qt::Test, move
   them to top-level.
2018-10-05 09:41:37 -04:00
Adriaan de Groot
a33b0c4f24 [partition] Log the flags that are used to create a partition 2018-10-05 07:45:05 -04:00
Calamares CI
0e7f97fe49 i18n: [python] Automatic merge of Transifex translations 2018-10-05 07:36:40 -04:00
Calamares CI
36161461e2 i18n: [dummypythonqt] Automatic merge of Transifex translations 2018-10-05 07:36:40 -04:00
Calamares CI
dfae4a7637 i18n: [desktop] Automatic merge of Transifex translations 2018-10-05 07:36:39 -04:00
Calamares CI
c63ecc8a35 i18n: [calamares] Automatic merge of Transifex translations 2018-10-05 07:36:39 -04:00
Adriaan de Groot
292bc57523 [partition] Fix build with suitable operator << 2018-10-03 13:49:52 -04:00
Adriaan de Groot
b38316365e [partition] Be more verbose about why UI buttons appear 2018-10-03 13:58:50 +02:00
Adriaan de Groot
800f9d34f9 [partition] In logging, distinguish more cases
- While winnowing devices, the zram and nullptr cases
   were mixed together; split them, for the sake of
   logging more accurately.
 - While here, fix up some coding-style issues.
2018-10-03 13:46:08 +02:00
Adriaan de Groot
d507425128 Merge branch 'permissions'
FIXES #997
2018-10-01 11:32:45 +02:00
Adriaan de Groot
1a248e0574 [preservefiles] Apply restrictive default permissions 2018-10-01 11:31:54 +02:00
Adriaan de Groot
eb6fc01c01 [preservefiles] Document new permissions key 2018-10-01 11:22:57 +02:00
Adriaan de Groot
d3d08241e2 [preservefiles] Support perm setting
- Use settings from config file
 - Refactor copy operation
 - Apply permissions inside target system
2018-10-01 11:22:57 +02:00
Adriaan de Groot
91c94c6022 [preservefiles] Tidy up permissions code
- superfluous const
 - add default constructor
 - Add octal-string accessor to permissions
2018-10-01 11:18:44 +02:00
Adriaan de Groot
1c85a648a4 [preservefiles] Tie permissions into the build, file header 2018-10-01 10:45:39 +02:00
Adriaan de Groot
3ef4842a4d [preservefiles] Add permissions-parsing code from Scott Harvey 2018-10-01 10:40:43 +02:00
Adriaan de Groot
0d8cf98811 Changelog: nudge closer to release. 2018-10-01 04:27:26 -04:00
Adriaan de Groot
af392105b8 Merge branch 'resize-polishing' 2018-10-01 04:22:54 -04:00
Adriaan de Groot
21fedfce65 [fsresizer] Calamares oding style 2018-10-01 04:22:25 -04:00
Adriaan de Groot
39902d1c3f [fsresizer] "can not" -> "cannot" 2018-10-01 04:19:14 -04:00
Adriaan de Groot
eb7c6385cd [fsresizer] Bail out if resize required but not feasible 2018-10-01 04:19:14 -04:00
Adriaan de Groot
0b4c0f9c38 [fsresizer] Add setting required
- If resize is required, fail if it doesn't happen.
2018-10-01 04:06:01 -04:00
Adriaan de Groot
29bae61610 Merge branch 'master' into fix-swap-ui 2018-10-01 03:21:06 -04:00
Adriaan de Groot
7e88f637b1 [localecfg] Fix error in string-formatting. 2018-09-30 18:56:48 +02:00
Adriaan de Groot
b42a36e5ad [fsresizer] Don't need to check KPMCore version 2018-09-28 14:24:25 +02:00
Adriaan de Groot
375024ee4c Merge branch 'oem-resizer' 2018-09-21 09:05:16 -04:00
Adriaan de Groot
f1ab363f60 Changelog: MD styling
FIXES #921
2018-09-28 12:56:06 +02:00
Adriaan de Groot
ed841d1674 [fsresizer] Typo 2018-09-28 12:34:40 +02:00
Adriaan de Groot
aaf27ac2ab [fsresizer] Apply sizes properly
- Distinguish size and atleast; in percentages they mean different
   things (atleast is a bit weird as a percentage, but hey).
 - Fix bug in percentage calculation.
 - Avoid percentage above 100.
 - Add documentation in config-file.
2018-09-28 12:32:08 +02:00
Adriaan de Groot
c725f6b552 [fsresizer] Distinguish error from no-useful-resize 2018-09-28 12:05:41 +02:00
Adriaan de Groot
5dc11b223a [fsresizer] Do the resize itself
- handle weird partition tables
 - ignore unallocated space -- that's what we want to expand into
 - use ResizeOperation for the actual work
2018-09-28 11:55:16 +02:00
Adriaan de Groot
14b6755714 [fsresizer] Initialize harder 2018-09-27 21:47:54 +02:00
Adriaan de Groot
e627633c44 [fsresizer] initialize FS support 2018-09-27 21:39:22 +02:00
Adriaan de Groot
2556891e39 [fsresizer] Fix backwards logic in error message 2018-09-27 20:49:28 +02:00
Adriaan de Groot
869357a89c Merge branch 'master' into oem-resizer 2018-09-27 20:47:17 +02:00
Adriaan de Groot
a749f041f0 [calamares] More verbose failure in test-loader 2018-09-27 20:45:13 +02:00
Adriaan de Groot
fe6e0d0b19 Merge branch 'fix-austrian-keymap' 2018-09-27 13:38:06 +02:00
Adriaan de Groot
e7c62c114f [keyboard] Improve debugging output 2018-09-27 13:35:33 +02:00
Adriaan de Groot
427c142182 Changelog: credits and mark fixed 2018-09-27 12:51:32 +02:00
Adriaan de Groot
9124281bcb [fsresizer] Calculate resize parameters
- apply() a relativesize to a device to find out how much it
   means in sectors
 - find the space into which the configured FS can grow.
2018-09-27 05:28:20 -04:00
Adriaan de Groot
9e1c95ad05 [fsresizer] Refactor finding device
- Find device in separate function
 - If device isn't found, bail out
2018-09-27 04:10:25 -04:00
Adriaan de Groot
1c2714d832 [fsresizer] Match configuration to system
- Bail out earlier before doing any work if the configuration
   is invalid.
 - If it's valid, look for a matching device.
2018-09-27 03:56:57 -04:00
Adriaan de Groot
aae4b38e69 [fsresizer] Fix endless loop
- Improve variable names
 - Missing iterator++
2018-09-27 03:44:39 -04:00
Adriaan de Groot
3ab891793a [keyboard] Add Austrian keyboard layout
- Map xkb 'at' to 'de' on the text console
 - Thanks Philip Mueller, Kevin Kofler

FIXES #1035
2018-09-26 16:54:39 +02:00
Adriaan de Groot
06a00a15c6 [fsresizer] Scan for devices, list partitions
- The is just debugging output, but it's the start of what needs
   to happen to find the FS that needs resizing.
2018-09-25 06:39:14 -04:00
Adriaan de Groot
35ca813064 [partition] Use "" for including from current directory 2018-09-25 06:34:03 -04:00
Adriaan de Groot
d752223d0b [libcalamaresui] When reporting failure, use full product name. 2018-09-24 17:58:22 +02:00
Adriaan de Groot
0396ed28b7 [keyboard] Update some origin information for the keyboard map 2018-09-24 17:05:36 +02:00
Adriaan de Groot
88c973f7cc [partition] Simplify space calculations
- Q_ASSERT doesn't work in constexpr functions because it's not
 - May as well calculate bytes at compile-time, no need to give
   the runaround via number-of-MiB
2018-09-24 13:50:19 +02:00
Adriaan de Groot
428929b64f [fsresizer] Tiny step towards getting data from KPMcore 2018-09-22 11:11:19 -04:00
Adriaan de Groot
8178c82d11 Changelog: update with names & partition module 2018-09-21 16:21:30 -04:00
Adriaan de Groot
e3bf9fc220 [partition] Fix build with KPMCore <= 3.3.0
- Reported by Philip Mueller
2018-09-21 16:19:05 -04:00
Adriaan de Groot
579f1dfee7 CI: don't try to run tests.
- permissions on the tmpfs where everything is built,
   prevents the test-applications from running.
2018-09-20 11:07:56 -04:00
Adriaan de Groot
bc732ccbc7 CI: mess around with test-application permissions 2018-09-20 10:53:46 -04:00
Adriaan de Groot
45195b9f7e [fsresizer] Remove over-enthusiastic constexpr 2018-09-20 10:34:46 -04:00
Adriaan de Groot
a40864f709 CI: mess around with running tests 2018-09-20 15:40:26 +02:00
Adriaan de Groot
499dd2ce83 [fsresizer] Document configuration
- Add some notes on configuration of fsresizer
 - Convenience methods for checking validity.
2018-09-20 15:38:26 +02:00
Adriaan de Groot
b0db4780bf CI: be more chatty while running tests 2018-09-20 15:13:43 +02:00
Adriaan de Groot
a32149bd92 CI: run tests after build as well 2018-09-20 08:02:43 -04:00
Adriaan de Groot
3b8fa187e1 [fsresizer] Fix syntax error in YAML 2018-09-20 07:49:49 -04:00
Adriaan de Groot
bf092de76f [calamares] Explain config-file failures better 2018-09-20 07:48:06 -04:00
Adriaan de Groot
39a0d2315b [calamares] Better config-loading diagnostics
- Be more verbose when things go wrong while loading module-
   configuration files.
 - Allow more forms of paths to be specified. In debug mode, this
   is mostyle helpful for the module test-loader.
2018-09-20 07:39:43 -04:00
Adriaan de Groot
c6e8cdf65b [calamares] Better command-line help in module test-loader 2018-09-20 07:07:17 -04:00
Adriaan de Groot
40e031411c [calamares] Improve debug log in module test-loader 2018-09-20 07:01:27 -04:00
Adriaan de Groot
745629b659 [fsresizer] Turn on KPMCore requirement again 2018-09-17 06:58:18 -04:00
Adriaan de Groot
d2f4079a18 [partition] Move partitioning options into a class
- As (auto) partitioning grows more options, the parameter
   list becomes more unwieldy. Add some structure to it.
2018-09-17 06:42:14 -04:00
Adriaan de Groot
3f09857cb7 Merge pull request #1013 from cjlcarvalho/master
Some RAID fixes
2018-09-17 12:25:24 +02:00
Adriaan de Groot
4b87bb6f28 Git: drop non-existent files from .gitattributes 2018-09-14 18:07:09 +02:00
Adriaan de Groot
a6c3899e10 [fsresizer] Add tests
- Test the parsing of configuration values, that it gets the right
   values when given correct(-ish) configurations. Doesn't test
   any situations with bad config.
2018-09-14 17:59:50 +02:00
Adriaan de Groot
a81588190a [fsresizer] Simplify and make safer
- Make RelativeSize public so we can use it in non-member functions
 - Make a template out of matching the string suffixes; this is
   safer because the length of the suffix can be computed at compile-time
   (+1 for the trailing NUL) rather than writing it out in boilerplate.
2018-09-14 16:51:09 +02:00
Adriaan de Groot
cdfb55e5cf [fsresizer] Just right now it doesn't need KPMCore
- Drop the dependency while developing the configuration parser
   part of the module and writing initial tests.
2018-09-14 16:49:07 +02:00
Adriaan de Groot
fa567f917a Changelog: explain new module 2018-09-14 16:45:24 +02:00
Adriaan de Groot
c105d5ad84 Merge pull request #1031 from agaida/master
.gitattributes sorted and completed
2018-09-14 16:14:59 +02:00
Adriaan de Groot
4d5eb90a04 [fsresize] Add new module fsresizer
- Non-functional as yet, WIP
 - Intended for use on SBC images and similar, which need to resize
   the root partition to the size of the SD card they're on.

FIXES #921
2018-09-14 07:56:18 -04:00
Adriaan de Groot
82c51dec37 CMake: don't change cmake logging on release builds
- There is no real need to reduce the logging on release builds,
   it's just confusing that all the cmake-time output changes
   in a non-meaningful way.
2018-09-14 05:33:04 -04:00
Alf Gaida
f6aaa4b73a .gitattributes sorted and completed 2018-09-13 17:16:35 +02:00
Adriaan de Groot
5136021416 [partition] Move SwapChoice to another namespace
- The choice of swap needs to be handled in more places,
   so make the enum available in the partition module core instead
   of just inside the choice page.
2018-09-13 06:29:59 -04:00
Adriaan de Groot
846e496d76 [partition] Tidy includes 2018-09-13 05:50:46 -04:00
Adriaan de Groot
8c79c981b1 [partition] Simplify space calculations
- Q_ASSERT doesn't work in constexpr functions because it's not
 - May as well calculate bytes at compile-time, no need to give
   the runaround via number-of-MiB
2018-09-13 05:33:39 -04:00
Adriaan de Groot
959cd7b224 [partition] Simplify creation of comboboxes for swap choices 2018-09-13 04:45:36 -04:00
Adriaan de Groot
cfa940b35c [partition] Support translations of swap choices
- Introduce enum to indicate what is selected
 - Support translations
 - Fill selections for erase
2018-09-12 11:18:17 -04:00
Adriaan de Groot
7d0451fe69 [partition] Rename Choice -> InstallChoice
- There are more choices to be made (or to come) when partitioning,
   so don't take the most generic term for one enum.
2018-09-12 10:16:48 -04:00
Adriaan de Groot
10f7bac2df [partition] Reorder initialization 2018-09-12 10:05:14 -04:00
Adriaan de Groot
c3f3276188 [partition] Improve presentation of swap options 2018-09-12 09:20:44 -04:00
Adriaan de Groot
dc492b301c [partition] Drop label on swap-options box 2018-09-12 08:42:21 -04:00
Adriaan de Groot
a791818a65 [partition] Add swap drop-down
- This is WIP; the drop-down contents should be customised,
   depending on configuration and the state of the device being
   installed-to.
2018-09-12 08:18:45 -04:00
Adriaan de Groot
c813375908 [partition] Prepare for swap options
- Extend PrettyRadioButton with options (combo-boxes which may
   be added later).
2018-09-12 08:09:01 -04:00
Calamares CI
94c244eef8 i18n: [python] Automatic merge of Transifex translations 2018-09-12 05:01:25 -04:00
Calamares CI
5291072cbc i18n: [dummypythonqt] Automatic merge of Transifex translations 2018-09-12 05:01:25 -04:00
Calamares CI
9055a55e23 i18n: [desktop] Automatic merge of Transifex translations 2018-09-12 05:01:23 -04:00
Calamares CI
649a1407cb i18n: [calamares] Automatic merge of Transifex translations 2018-09-12 05:01:23 -04:00
Adriaan de Groot
07a0e7b075 Merge branch 'master' into fix-swap-ui 2018-09-11 11:32:53 -04:00
Adriaan de Groot
e0cd90cab1 Update the documentation and implementation of swap calculation.
Make the ramps consistent between suspend-to-disk and not,
and don't do the weird drop from 8GiB swap down to 4GiB for
large-memory systems.
2018-09-11 11:30:01 -04:00
Adriaan de Groot
933ad82392 CI: increase build directory size
- Fix typo in the build-debugging bits
 - Increase tmpfs size of /build because it looks like "make install"
   ends up filling the disk, and then it fails.
2018-09-11 10:23:48 -04:00
Adriaan de Groot
be8de205af CI: be more verbose in the CI 2018-09-11 08:26:32 -04:00
Adriaan de Groot
83963b80f1 Changelog: update markup to simplify pasting to site 2018-09-11 08:18:55 -04:00
Adriaan de Groot
0f38e86223 Reconsider swap-space calculations and swap-UI
- The calculations for swap-space are a little wiggy, with
   space used rising to 8GiB or more, and then dropping
   down to 4GiB, and rather inconsistent for the case
   ensure-hibernate and not-ensure-hibernate. This branch
   will harmonize the calculations.
 - Allow a UI to select swap usage (e.g. a drop-down with
   choices for the user, which may be enabled by the distro).

FIXES #848
FIXES #1006
2018-09-11 13:24:37 +02:00
Adriaan de Groot
3b6cb73975 CMake: bump version for next release 2018-09-04 17:34:39 -04:00
Adriaan de Groot
46687fcb4c CMake: bump version and changelog 2018-09-04 08:03:59 -04:00
Adriaan de Groot
c104d14086 [partition] Call the helpers in the right order.
This fixes the crash by calling the model-reset first, then
refreshing. Previously, the destructors that do the work
were still being called in the wrong order.

FIXES #1019
2018-09-03 15:21:30 -04:00
Calamares CI
13015096d1 i18n: [calamares] Automatic merge of Transifex translations 2018-09-03 15:15:00 -04:00
Adriaan de Groot
fe662345bd [partition] Extra helper classes for doing reset and refresh
- The ResetHelper only finalized changes to the module on
   destruction, but calls to refresh() assumed it was already
   done. This leads to crashes when refresh() uses an intermediate
   state of the model.

Introduce extra helpers, and rename refresh() to avoid calling the
old implementation from any code. The new helper just creates and
destroys a ResetHelper, before creating and destroying an object
that calls the new refreshAfterModelChange().

FIXES #1019
2018-09-03 10:57:20 -04:00
Adriaan de Groot
4602b30264 [libcalamaresui] Use PYTHONQT_INCLUDE_DIRS
- document new variable from the CMake module
 - use it in libcalamaresui to simplify #include'ing the
   header for the "all" extension.

Suggested by Denis Proskurin.
2018-09-03 06:26:26 -04:00
Adriaan de Groot
54bee71b44 CMake: Search for PythonQt_QtAll.h
Suggested by Denis Proskurin.
2018-09-03 06:20:44 -04:00
Adriaan de Groot
9651c588bc CMake: Search for PythonQt headers in more places.
Suggested by Denis Proskurin.
2018-09-03 05:34:23 -04:00
Adriaan de Groot
aee5676ae8 ci: be more verbose on failure and on install 2018-09-03 05:15:51 -04:00
Adriaan de Groot
604c5ba3f1 Changelog: add old releases, credit Harald in 3.2.2 2018-09-03 05:08:52 -04:00
Calamares CI
2d763e4d1a i18n: [python] Automatic merge of Transifex translations 2018-09-03 04:30:53 -04:00
Calamares CI
01889b0392 i18n: [calamares] Automatic merge of Transifex translations 2018-09-03 04:30:52 -04:00
Adriaan de Groot
42d606171d Merge pull request #1020 from apachelogger/esp-eq-boot
do not set boot flag on ESP (thanks @philmmanjaro for testing)
2018-09-03 10:28:59 +02:00
Adriaan de Groot
8b6fb1f5fa Merge pull request #1021 from apachelogger/no-active-esp
do not set active flags on the to-be ESP (thanks @philmmanjaro for testing)
2018-09-03 10:28:40 +02:00
Adriaan de Groot
a796981ace Merge pull request #1022 from ximion/master
grubcfg: Only try to decrypt disk that /boot is on (thanks @philmmanjaro for testing)
2018-09-03 10:28:24 +02:00
Philip Müller
e3ca2dd857 [displaymanager] fix desktop_environment_setup ldm 2018-08-26 21:15:03 +02:00
Matthias Klumpp
d775cee4cf grubcfg: Only try to decrypt disk that /boot is on 2018-08-25 15:21:40 +02:00
Harald Sitter
84ad2852bf do not set boot flag on ESP
ESP == boot. at best this is duplicated information, at worst kpmcore may
implode if you try to set a boot flag since that is technically an MBR
type flag and means nothing within the context of GPT where ESP is the flag
to set.
2018-08-22 10:14:49 +02:00
Harald Sitter
81cab43701 do not set active flags on the to-be ESP
having ESP as active flag AND then trying to set ESP means nothing is
set since kpmcore will think ESP is already set (it is listed as active
after all). this ultimately meant that nothing was set since there was
no delta between the requested flags and the already active flags.
2018-08-22 10:12:36 +02:00
Adriaan de Groot
e7947bd538 Merge branch 'refactor-dm' 2018-08-21 07:45:49 -04:00
Adriaan de Groot
ae0764f52e CI: be more verbose in the CI 2018-08-21 07:45:44 -04:00
Adriaan de Groot
f97321656f Changelog: add DM changes
- Add the DM module changes
 - Update list of contributors for this release
2018-08-21 07:44:01 -04:00
Adriaan de Groot
c3219a4905 [displaymanager] Fix call in LightDM code
- The parameter list was wrong, and could never have worked
   (apparently noone mixes LightDM with basic setup, even though
   it's one of the few with basic_setup()).
 - Shorten some lines.
2018-08-21 07:31:46 -04:00
Adriaan de Groot
00e1bb9c8d CI: fix the build on Travis
- Make the Travis scripts a bit more verbose on failure
 - Fix wrong filename tested for picking up the configuration
   (this is why the builds were failing: missing the force-webkit
   flag, while webengine isn't in the dockerfile for Travis)

FIXES #1018
2018-08-20 17:39:56 -04:00
Philip Müller
e17c934afb Merge pull request #1017 from wxl/master
Fix default desktop environment variable in displaymanager.
2018-08-21 09:42:27 +02:00
root
fa45e21e15 Fix default desktop environment variable in displaymanager. Closes #1016. 2018-08-20 22:21:39 -07:00
Adriaan de Groot
858c959285 Merge branch 'master' into refactor-dm 2018-08-20 17:25:26 -04:00
Calamares CI
3fd1aefb03 i18n: [python] Automatic merge of Transifex translations 2018-08-20 12:32:47 -04:00
Calamares CI
5d9e5b6d3e i18n: [desktop] Automatic merge of Transifex translations 2018-08-20 12:32:45 -04:00
Calamares CI
2ced06a0e9 i18n: [calamares] Automatic merge of Transifex translations 2018-08-20 12:32:45 -04:00
Adriaan de Groot
a83ee4984d [displaymanager] Enable translation for user-visible messages
See also #991
2018-08-20 12:30:44 -04:00
Adriaan de Groot
5191400d89 [displaymanager] Fix LightDM error message
- Error tuple was not being constructed properly
 - Fix capitalization consistency
2018-08-20 12:30:44 -04:00
Adriaan de Groot
ebae7e1f47 [displaymanager] Re-arrange initializations
- Move variable initializations closer to where they are first used
 - Also warn if no implementations are available
 - Handle sysconfig as any other DM; there's no real reason
   to treat it specially.
2018-08-20 12:30:44 -04:00
Adriaan de Groot
229cc241fa [displaymanager] Massage do_autologin
- Move getting the global setting closer to where it is used
 - Initialize variable
2018-08-20 12:30:44 -04:00
Adriaan de Groot
59a003a41f [displaymanager] Expand check for no-DMs
- The message refers to an empty list or unset variable,
   but the if only checked for unset. Also bail out if
   the list is empty.
2018-08-20 12:30:44 -04:00
Adriaan de Groot
2d0660a54a [displaymanager] Fix up missing methods
- Add (empty) implementations of all the abstract methods that
   are not needed (or supported) by various DMs.
 - Order the abstract methods by calling order
 - Fix up have_dm
2018-08-20 12:30:44 -04:00
Adriaan de Groot
155e212616 [displaymanager] Call all configuration methods through instance
- Make root_mount_point a parameter of the DM classes
 - Create instances as needed, then check if they're available
 - Keep instances that actually need to be configured
 - Clean up remaining cruft from removing old setup_autologin()
   with all the string-comparison magic.
2018-08-20 12:30:44 -04:00
Adriaan de Groot
18392cb216 [displaymanager] Refactor greeter setup
- Only lightdm has support for dynamically configuring the
   greeter based on what is installed. Still, refactory that
   to something general.
2018-08-20 12:30:44 -04:00
Adriaan de Groot
383e0e4f25 [displaymanager] Refactor setting up default DE
- Some DMs allow setting up the default DE. Factor that
   out into a method like basic_setup() and setup_autologin()
   and add it to the configuration chain.
2018-08-20 12:30:44 -04:00
Adriaan de Groot
1c0b9e6a2a [displaymanager] Call basic_setup through instance
- Now that basic_setup is factored out into the classes,
   call it via an instance before doing set_autologin.
2018-08-20 12:30:44 -04:00
Adriaan de Groot
cd0cdfc9af [displaymanager] Move basic setup to DM classes
- For all the DMs that have some kind of basic setup,
   introduce a method in the DM class for doing just that.
 - The Python code now doesn't call basic setup anywhere,
   so this specific revision isn't going to work properly.
2018-08-20 12:30:44 -04:00
Adriaan de Groot
47b58083f7 [displaymanager] Move setup_autologin to individual classes
- Split the entire body of setup_autologin() to a method
   per implementation class.
 - Make the check for presence of a DM a class-method,
   since if it fails, instantiation is going to be useless.
2018-08-20 12:30:44 -04:00
Adriaan de Groot
e1f7dbdbb9 [displaymanager] Simplify do_autologin initialization 2018-08-20 12:30:44 -04:00
Adriaan de Groot
7f47b2f9ca [displaymanager] Introduce class for DM configuration
- Much like PackageManager, this is where the actual
   implementation of configuration methods will end up,
   for each supported DM.
2018-08-20 12:30:44 -04:00
Adriaan de Groot
f188c6f71b [displaymanager] Simplify DE class
- The DE isn't being configured, and isn't where the complexity
   lies. Drop the ABC from it.
2018-08-20 08:14:52 -04:00
Adriaan de Groot
76a7c439c1 [displaymanager] Begin refactoring DM
- Introduce a base-class to "do the stuff" for one specific
   display manager / desktop environment.
2018-08-20 07:37:46 -04:00
Adriaan de Groot
c3cef4d919 [displaymanager] Avoid unassigned variable
If displaymanagers is not set in the job config or globally,
it wasn't set at all, leading to a runtime error. Set to
None, so that the regular error message will be triggered.

FIXES #1002
2018-08-20 06:17:05 -04:00
Adriaan de Groot
08d41f745b [partition] Remove superfluous null check
delete is specified to handle nullptr gracefully.

FIXES #1012
2018-08-20 06:09:30 -04:00
Caio Carvalho
01a972c6ea [partition] Fixing LVM LV name line edit visibility. 2018-08-13 13:05:41 -03:00
Caio Carvalho
b5a2a5bbdd [partition] Don't show erase button for inactive RAID. 2018-08-13 12:26:00 -03:00
Caio Carvalho
7fd0ad5795 [partition] Disabling partition buttons for inactive RAID. 2018-08-13 09:51:35 -03:00
Adriaan de Groot
81ea5f5249 Merge pull request #1011 from stikonas/master
[partition] fix build with latest kpmcore.
2018-08-12 16:54:49 +02:00
Andrius Štikonas
22aa6dc132 [partition] fix build with latest kpmcore. 2018-08-12 14:26:43 +01:00
Adriaan de Groot
8dc95f3e75 Merge branch 'master' of github.com:calamares/calamares 2018-08-11 09:02:25 -04:00
Philip Müller
a2ce72d723 Merge pull request #1010 from tsimonq2/patch-1
Fix LUKS deployment link.
2018-08-10 21:13:47 +02:00
Simon Quigley
5c50587f89 Fix LUKS deployment link. 2018-08-10 13:23:31 -05:00
Adriaan de Groot
bf40f3bd23 Merge branch 'master' into requirements-checking 2018-08-10 12:02:57 -04:00
Adriaan de Groot
f946254433 [branding] Document compiling .ts files
FIXES #1003
2018-08-10 07:47:09 -04:00
Adriaan de Groot
f73f4bdea2 CI: for now, switch off PythonQt 2018-08-10 07:09:28 -04:00
Adriaan de Groot
3b82e655d7 Merge remote-tracking branch 'origin/update-lvm-support' 2018-08-08 15:28:11 -04:00
Adriaan de Groot
b6077ce9bc Changelog: document partitioning fixes 2018-08-08 06:01:51 -04:00
Adriaan de Groot
88eea0cce9 Merge branch 'fix-partition-alignment' 2018-08-08 06:00:47 -04:00
Adriaan de Groot
bc4407360d Add a changelog 2018-08-08 06:00:36 -04:00
Adriaan de Groot
238a1e812f [partition] Reduce the fudge-factor for swap size
- Reported by Bill Auger (I think), a 15GiB disk wouldn't hold
   a 8.9GiB root plus 4GiB swap -- due to 10% overprovisioning
   of swap, plus the 2.1GiB fudge factor.
2018-08-08 05:58:41 -04:00
Adriaan de Groot
f10bab8a3a [partition] Minor code-styling 2018-08-08 05:29:19 -04:00
Adriaan de Groot
8ed26e537f [partition] Fix swap maximum size
- The existing calculation comment says "maximum 10% of disk"
   but the calculation itself uses 110%.
2018-08-08 05:26:55 -04:00
Adriaan de Groot
59fea041b6 [partition] Fix up calculations of sectors in auto-partition
- Calculating first free sector had an off-by-one so that
   partitioning would start at 2049.
 - EFI boot partition grew 1 sector larger than desired.
 - While here, align everything to 1MiB boundaries as well.

FIXES #1008
2018-08-08 05:19:09 -04:00
Adriaan de Groot
1cbfa9d693 [partition] Simplify code for sizing 2018-08-08 04:49:13 -04:00
Calamares CI
12b668f4ee i18n: [python] Automatic merge of Transifex translations 2018-08-06 05:15:49 -04:00
Calamares CI
8c32fc75a1 i18n: [dummypythonqt] Automatic merge of Transifex translations 2018-08-06 05:15:49 -04:00
Calamares CI
28f0ba4eea i18n: [desktop] Automatic merge of Transifex translations 2018-08-06 05:15:48 -04:00
Calamares CI
b6f1960fc5 i18n: [calamares] Automatic merge of Transifex translations 2018-08-06 05:15:48 -04:00
Adriaan de Groot
ba639beb9a Merge branch 'master' into update-lvm-support 2018-07-12 13:28:00 -04:00
Adriaan de Groot
ae7700f2d7 [libcalamares] Refactor searching for module configurations
- Similar to the refactorings in Calamares proper, just split out
   collecting the search paths into a static function. This makes
   it a little easier to find places that will need expansion for
   more-than-one-config-directory.
2018-07-10 04:12:24 -04:00
Adriaan de Groot
f899bda81d [calamares] Restore missing search paths
- Misplaced {} makes the branding search path empty
 - Reported by @apachelogger
2018-07-05 12:01:44 +02:00
Adriaan de Groot
b0e55c059a [calamares] Refactor searching for branding descriptor 2018-06-29 10:52:12 -04:00
Adriaan de Groot
22ee24a5ad [calamares] Refactor searching for settings.conf
- Split the collection of paths off from the search itself.
2018-06-29 10:15:43 -04:00
Adriaan de Groot
3329f2ea55 [calamares] Refactor searching for QML dir
- Split collecting the search paths into separate function
 - Don't fall back on the current directory
2018-06-29 09:43:32 -04:00
Adriaan de Groot
5d5feeb0ab Merge branch 'master' of https://github.com/cjlcarvalho/calamares into lvm-update 2018-06-28 23:48:13 +02:00
Adriaan de Groot
f118fd73bc [calamares] More info when Cala is already running
- If Calamares is already running, print some information
   about which instances there are so that it is possible
   to unstick them.
2018-06-28 06:29:55 -04:00
Adriaan de Groot
6f39db4752 ci: name tags consistently 2018-06-28 06:02:18 -04:00
Adriaan de Groot
a2d3434012 Merge branch 'add-release-script' 2018-06-28 05:51:30 -04:00
Adriaan de Groot
f65ec65fcc CMake: bump version
- Set RC because this isn't near to a release yet
2018-06-28 05:51:12 -04:00
Adriaan de Groot
59dd181cfc ci: complete release script
- Create tag, tarball, and test tarball
 - Print instructions for completing the release
2018-06-28 05:48:04 -04:00
Adriaan de Groot
dfb42f2b49 CMake: add target show-version to get version information 2018-06-28 05:19:32 -04:00
Adriaan de Groot
2f6e80dc42 CMake: always copy the config files to the build directory.
Switching to INSTALL_CONFIG=OFF breaks tests by not having them
in the build directory. Some logic was coupling not-installing
to not-using-in-build-dir too closely.
2018-06-28 04:39:12 -04:00
Calamares CI
9f1cfba4ef i18n: [calamares] Automatic merge of Transifex translations 2018-06-27 12:55:48 -04:00
Adriaan de Groot
cfe92252d2 ci: if clang is available, do that build too 2018-06-27 12:53:45 -04:00
Adriaan de Groot
37552c184b ci: add a release script
This is the start of a release script. The idea is to automate
a whole bunch of the steps documented in ci/RELEASE.md, so that
a release becomes more straightforward. Assumptions abound:
basically this is going to work on my workstation, and not
on any other.
2018-06-27 12:50:20 -04:00
Adriaan de Groot
1957478618 [services-systemd] Follow the flexible example of openrc
- Make *mandatory* optional (and default to false); this
   allows shorter lists of entries
 - Allow degenerate entries which are just a name
   (which have *mandatory* set to false as well).

SEE #992
2018-06-27 11:25:11 -04:00
Adriaan de Groot
73ecd7320c [services-openrc] Introduce *mandatory* subkey
- Follow services-systemd and have a *mandatory* subkey
   that selects for install-failure instead of just a warning.

FIXES #992
2018-06-27 11:12:33 -04:00
Adriaan de Groot
72c0d1a101 [services-openrc] Make list of services more flexible
- Allow just a name entry, instead of requiring an object
   entry; this makes "foo" equal to { name: "foo", runlevel: "default" }
   and simplifies more for the straightfoward case of #974.
2018-06-27 10:34:50 -04:00
Adriaan de Groot
b02ee3cd8d [services-openrc] Follow services-systemd configuration example
- Based on comments from #974, follow the configuration
   scheme from services-systemd, so with separate lists
   "services" and "disable". This ties it **slightly**
   less closely to the commands passed to rc-config.
2018-06-27 10:34:50 -04:00
Adriaan de Groot
dbcc419218 [services-openrc] Log failures
- If the rc-update command fails for some reason, log that
   failure instead of skipping it completely silently.
 - Fix syntax error as well
2018-06-27 10:34:36 -04:00
Adriaan de Groot
5a2ae7a250 [services-openrc] Simplify name extraction, default runlevel
- If runlevel isn't set (at all) then use "default". For
   most systems that do not use multiple runlevels, this
   simplifies the configuration to just a list of service names
   to add or delete.
2018-06-27 09:36:05 -04:00
Adriaan de Groot
8f0db9dc74 [services-openrc] Log configuration failures
- If services don't exist, or runlevels don't exist,
   log them instead of failing completely silently.
2018-06-27 09:31:02 -04:00
Adriaan de Groot
cd640bda9f [services-openrc] Restrict actions
- Document the functions some more
 - Only "state" (i.e. action) "add" and "del" make sense,
   avoid calling rc-update for other keys (e.g. typo's).
   This matches the documentation, although there might be
   other actions that make sense (see also services-systemd,
   with its enable, disable and mask actions).
2018-06-27 09:21:31 -04:00
Adriaan de Groot
b1881d1cd2 [services-*] Adjust Copyright notices 2018-06-27 09:19:05 -04:00
Adriaan de Groot
e1d306dc2f [services-openrc] Adjust documentation and follow renaming 2018-06-27 09:11:51 -04:00
Adriaan de Groot
55e273ff00 Merge branch 'openrccfg' of https://github.com/artix-linux/calamares into artix-linux-openrccfg 2018-06-27 08:57:31 -04:00
Adriaan de Groot
59b07cc720 [services-systemd] Be more resilient in the config
- If a key is not given, use [] instead of crashing.
2018-06-27 07:14:18 -04:00
Adriaan de Groot
c9c777b055 [services-systemd] Introduce disable-targets and mask
- With refactored code, introducing new kinds of actions
   is very few lines of code. Allow disabling targets
   (services was already possible). Allow masking units,
   but as a special case require the complete name.

FIXES #975
2018-06-27 07:09:03 -04:00
Adriaan de Groot
5d6e07712b [services-systemd] Refactor getting config
- Don't create temporary variables
 - Change API slightly to accomodate more (kinds of) suffixes
2018-06-27 05:14:18 -04:00
Adriaan de Groot
0520fc3b7e [services-systemd] Refactor to repeat less code
- The three steps of modifying services in the target
   system do basically the same thing, so factor out
   the loops and logging into a systemctl() function.
 - Log to warning() instead of just debugging, on failure.
2018-06-27 05:07:18 -04:00
Adriaan de Groot
0e314447ec CMake: show the USE variable for services 2018-06-26 10:57:03 -04:00
Adriaan de Groot
08fc93f137 [services] Rename to services-systemd 2018-06-26 10:57:03 -04:00
Adriaan de Groot
851d90508c Merge branch 'master' into update-services 2018-06-26 10:43:16 -04:00
Adriaan de Groot
743c19d8dd Merge remote-tracking branch 'origin/update-config' 2018-06-26 10:40:59 -04:00
Adriaan de Groot
d66393f1ae [libcalamares] Fix early failure mode
- There is more to failing out of loadModules() than just
   emitting modulesFailed, so instead share the failure
   code with the code after loading modules -- but don't load any.
2018-06-26 08:43:23 -04:00
Adriaan de Groot
0db8082ae1 [libcalamares] Convenience type 2018-06-26 08:41:16 -04:00
Adriaan de Groot
08966ff933 [libcalamaresui] Check module dependencies
- Module dependency-checking is done in two phases:
   first, catch any unknown modules that are listed
   in *requiredModules* and bail out before loading
   anything. Second, check that the modules required
   by X occur before X in the sequence.
2018-06-26 08:32:36 -04:00
Adriaan de Groot
731594fb40 [libcalamaresui] Remove the requiredModules setting
- The value set in module.desc was never stored for use,
   but isn't an attribute of the instance, either. It belongs
   with the descriptor, in ModuleManager.
2018-06-26 08:18:00 -04:00
Adriaan de Groot
40252f1000 [removeuser] Minor documentation 2018-06-26 06:52:37 -04:00
Adriaan de Groot
1eede6f797 [modules] Configuration documentation for mount and luksopenswaphookcfg 2018-06-26 06:50:16 -04:00
Adriaan de Groot
63c03068c0 [modules] Documentation for fstab, grubcfg, mkinitcpio
- These modules were entirely documented as "use the source",
 - The sources aren't terribly clear either.
2018-06-26 06:39:30 -04:00
Adriaan de Groot
52f09f7f46 [modules] Minor documentation work on modules a-g 2018-06-26 05:47:23 -04:00
Adriaan de Groot
c086d18a26 CMake: improve error-handling for USE_*
If USE_<foo> is given a value that doesn't match **anything**,
then bail out. Since USE_* is an explicit distro choice for a
specific implementation, it's an error if that implementation
is not there.
2018-06-26 05:33:01 -04:00
Adriaan de Groot
b2c2b91645 CMake: introduce USE_<foo>
When there are multiple modules doing a thing and it really only
makes sense to have one of them in a given Calamares compilation,
the USE_<foo> variables allow you to select one, while ignoring
all the other implementations. If USE_<foo> is not set, all
implementations are included (as usual).
2018-06-26 05:18:10 -04:00
Adriaan de Groot
29830bc1e1 [services] Document the configuration file.
- Change the example to be harmless (empty)
 - Document the structure of the entries
2018-06-26 04:35:00 -04:00
Adriaan de Groot
a6688504e8 CMake: switch INSTALL_CONFIG to OFF by default
- The examples files are not harmless, so distro's should take a
   explicit decision to install the config examples (instead of
   putting files in /etc/calamares).
2018-06-26 04:17:03 -04:00
Caio Carvalho
589628bb9a [partition] Removing unnecessary horizontal spacer on Partition Page. 2018-06-26 01:44:35 -03:00
Caio Carvalho
67d9ebbfc0 [partition] Setting revertButton enabled after deactivating VG. 2018-06-26 01:29:57 -03:00
Caio Carvalho
295e14530e [partition] Adding resizing, deactivating and removing procedures for LVM VGs. 2018-06-26 00:38:52 -03:00
Adriaan de Groot
36d363df02 Improve config handling:
- Switch INSTALL_CONFIG to OFF by default **or**
 - Make all the example configurations "harmless" or trigger
   specific failure modes in the modules.
 - Document that distro's should be creating their own set
   of config and settings files and using those, rather than
   relying on upstream example configs.

 - Implement the required: module description field. This
   would have prevented the plymouthcfg / grub failure fixed
   in 3.2.1.

 - Think about improving the available OPTIONs at a CMake level
   to auto-fill SKIP_MODULES (e.g. it only makes sense to pick
   **one** services module).
2018-06-25 16:00:09 -04:00
Adriaan de Groot
1b1c365053 Massage the services modules:
- Rename services to services-systemd
 - Improve the example file in services-systemd
   - Document it
   - Make the sample harmless
   - (Rougly) merge #972 #975
 - Merge OpenRC module
   - Only with documentation
   - Use the generalized module from #966
2018-06-25 15:43:22 -04:00
Adriaan de Groot
018ee1cc06 CMake: bump version 2018-06-25 10:04:26 -04:00
Calamares CI
cd07a8bad9 i18n: [python] Automatic merge of Transifex translations 2018-06-25 10:02:55 -04:00
Calamares CI
c8de7e4d92 i18n: [dummypythonqt] Automatic merge of Transifex translations 2018-06-25 10:02:55 -04:00
Calamares CI
92fa63492e i18n: [calamares] Automatic merge of Transifex translations 2018-06-25 10:02:55 -04:00
Adriaan de Groot
2567ec70db Merge pull request #993 from raurodse/neweventspythonqt
add support onLeave and onActivate to pythonqt plugins
2018-06-25 09:50:01 -04:00
udeved
88e082d531 openrccfg: add small documentation in conf, make service location configurable 2018-06-25 12:15:26 +02:00
Raul Rodrigo Segura
f25d6b278d add support onLeave and onActivate to pythonqt plugins 2018-06-21 13:21:48 +02:00
Adriaan de Groot
47b130c539 Merge remote-tracking branch 'origin/fix-localegen'
FIXES #940
2018-06-20 16:25:42 +02:00
Adriaan de Groot
d59a44be44 [libcalamares] Asking for type of undefined node throws
- Use YAML-CPP API for finding out if a node has a value at all.
 - Asking for Type() of an undefined or NULL node throws an
   exception, so the existing code didn't **actually** catch
   cases where a required setting wasn't set at all.
2018-06-20 15:59:23 +02:00
Adriaan de Groot
25f249180b [localecfg] Be slightly more conservative interpreting comments
- A valid line (as explained in the comments at the top of
   the locale.gen file) is <locale> <encoding> (two fields),
   so lines with more than two fields can't be valid locale-
   listing lines. For them, pretend they name locale "",
   which won't be matched.
2018-06-20 09:11:23 -04:00
Adriaan de Groot
8551653575 [localecfg] Re-write the locale.gen file better
- Improved debug-logging
 - Fix the actual problem of listing locales more than once,
   by listing them all, uniqified, at the end, with an explanitory
   comment in the generated file.
 - Be more accepting of what constitutes a locale-line; this allows
   spaces before and after the `#` comment sign, but because we're
   uniquifying, this doesn't cause duplicates.
 - Because we write the enabled locales at the end, the full file
   comment-header is retained un-mangled (instead of accidentally
   enabling a locale mentioned as an example there).
2018-06-20 08:35:18 -04:00
Adriaan de Groot
413ee81ead [localecfg] Simplify handling of en_US
- By adding en_US to the set of locales-to-enable, we can
   drop the special-case code for it.
2018-06-20 07:13:36 -04:00
Adriaan de Groot
ec09272b81 [libcalamares] Fix inverted logic
Reported by bshah.
2018-06-19 18:08:14 +02:00
Adriaan de Groot
b283ad69d5 [libcalamares] Complain if key isn't set
- Previous check would also fail when the setting is false,
   not just when the key is missing.
2018-06-19 17:59:28 +02:00
Adriaan de Groot
efc977f7b4 [localecfg] Fix mismatch between filenames
Testing for existence of a file in the live system, and then
copying it in the target system, is not a recipe for success.

 - Fix the restore-from-backup part.
 - Document that your live and target system must both have
   /etc/locale.gen if you want this to work at all.
2018-06-19 08:56:37 -04:00
Adriaan de Groot
7498629b5f [localecfg] Move all path-setting to one spot
- Make the way the paths are constructed consistent
 - Name the paths more consistently
2018-06-19 08:46:50 -04:00
Adriaan de Groot
863d00f40c [localecfg] Document purpose of this module 2018-06-19 08:42:25 -04:00
Adriaan de Groot
a906bd7735 Tidy up the locale.gen handling. There is no real format in this file:
just lines which might be comments, might be human-readable-text, or
might be example locales. Instead of modifying any comment-lines,
write enabled locales at the bottom of the file, while matching
very loosely with the comment lines from the file.

FIXES #940 (insofar as that is fixable)
2018-06-19 08:29:17 -04:00
Adriaan de Groot
1a097f8c49 Style: run modulesystem through the style guide 2018-06-18 10:56:10 -04:00
Adriaan de Groot
58121abf06 [libcalamaresui] Wasted spaces 2018-06-18 10:44:28 -04:00
Adriaan de Groot
a64de3dbfe [libcalamaresui] Assign the index to found
- Previous code assigns the result of the comparison to found,
   instead of the index, resulting in the wrong configuration
   map sent to each module.
2018-06-18 10:29:30 -04:00
Adriaan de Groot
398b6be4ba Update issue template 2018-06-18 10:24:35 -04:00
Adriaan de Groot
60ab5dd3cf Update issue template 2018-06-18 08:38:20 -04:00
Kevin Kofler
15e9edca70 [packages]: Implement update_system for pkcon, yum, dnf
Also make install for yum and dnf follow the documented syntax: options
(-y) before the command (install), even though yum and dnf also accept
the other order. This also makes it consistent with remove.
2018-06-18 13:53:58 +02:00
Calamares CI
c822627bec i18n: [calamares] Automatic merge of Transifex translations 2018-06-18 07:45:46 -04:00
Adriaan de Groot
9d17e7210a [partition] Change shortcut for "Create" to 'a'
Untangle the shortcuts; Create and Cancel had an overlap.
Skip 'r' (Revert all changes) and 'e' (Edit) and settle on
'a' (which might also mean "Add").

FIXES #977
2018-06-18 13:28:35 +02:00
Adriaan de Groot
391d63936f Drop older issue template now that the new (multi) templates are in use. 2018-06-18 07:19:30 -04:00
Adriaan de Groot
22cdc37caa Update issue templates 2018-06-18 07:17:42 -04:00
Adriaan de Groot
91a3cb65b0 Merge pull request #990 from calamares/packages-add-update-system
[packages] add support for target system upgrade
2018-06-18 06:24:40 -04:00
Philip Müller
3a3a4ec363 [packages] update documentation 2018-06-17 13:15:55 +02:00
Philip Müller
c600c3ecca [packages] update documentation to reflect 'update_db' and 'update_system' differences 2018-06-17 13:10:59 +02:00
Philip Müller
1bd149c14e [packages] add initial support for update target system 2018-06-17 12:53:31 +02:00
Philip Müller
18bd455ae1 [bootloader] make paths for executable optional and adjustable 2018-06-17 07:47:58 +02:00
Adriaan de Groot
25533c4dce i18n: Update language lists with Korean and current stats 2018-06-16 19:40:23 -04:00
Calamares CI
93aa0f3c85 i18n: [python] Automatic merge of Transifex translations 2018-06-16 19:27:46 -04:00
Calamares CI
88c168e6d5 i18n: [dummypythonqt] Automatic merge of Transifex translations 2018-06-16 19:27:46 -04:00
Calamares CI
5c6d88b1b8 i18n: [desktop] Automatic merge of Transifex translations 2018-06-16 19:27:44 -04:00
Calamares CI
8211edc6fd i18n: [calamares] Automatic merge of Transifex translations 2018-06-16 19:27:44 -04:00
Adriaan de Groot
6a36e1dc8e CMake: make docs and code consistent.
- Document the version requirements more accurately
2018-06-15 14:50:35 -04:00
Adriaan de Groot
5643ee4b8f Merge branch 'master' into secureboot 2018-06-15 13:14:58 -04:00
Adriaan de Groot
374a9bdca6 Merge branch 'emergency-modules'
Introduce the notion of emergency modules and emergency jobs.
Initial use will probably center around the preservefiles module,
and possibly umount.

FIXES #928
2018-06-15 12:04:55 -04:00
Adriaan de Groot
264d135776 [libcalamares] Run emergency jobs
- After a failure, skip non-emergency jobs.
 - After running all emergency jobs, then emit failure message.
 - In log, distinguish emergency and non-emergency jobs.
2018-06-15 11:45:02 -04:00
Adriaan de Groot
8387d5d81f [libcalamares] Allow emergency jobs
Any job can be an emergency job; emergency modules spawn
emergency jobs (but conversely, a non-emergency module
can spawn an emergency job explicitly).
2018-06-15 10:20:07 -04:00
Adriaan de Groot
3ed6f13fa8 [libcalamaresui] Adjust the emergency-ness of modules
A potentially emergency module is one that has EMERGENCY
(in CMake) or emergency: true (in module.desc) set.
Any such module must also set emergency: true in the
configuration of the module. This is to allow for
instances of a module that **don't** run as emergency
modules, alongside actual emergency ones.
2018-06-15 09:32:19 -04:00
Adriaan de Groot
53161f6e36 [preservefiles] Mark this as an emergency module
- For C++ modules, don't need the module.desc file in the
   source repo, since the CMake macros can create it.
2018-06-15 07:29:55 -04:00
Adriaan de Groot
d325366e92 CMake: fix plugin NO_INSTALL keyword
Although the NO_INSTALL keyword could be specified for
Calamares plugins, it didn't actually do anything. Now
it does. A NO_INSTALL module does not install configs
or libraries.
2018-06-15 07:19:02 -04:00
Adriaan de Groot
def459a29d [libcalamaresui] Read emergency setting from module.desc
- Read setting from the module descriptor
 - Document optional settings
 - Add EMERGENCY keyword to the CMake helper functions
2018-06-15 07:11:17 -04:00
Adriaan de Groot
b92bef21f8 [libcalamares] Avoid using namespace std; 2018-06-15 06:21:05 -04:00
Adriaan de Groot
fa08e0ad73 Copyright: fix bad email address 2018-06-15 06:15:43 -04:00
Adriaan de Groot
dd8e53dc22 Copyright: update copyright lines on files touched in 2018
Contributions from:
  Adriaan de Groot <groot@kde.org>
  Gabriel Craciunescu <crazy@frugalware.org>
  AlmAck <gluca86@gmail.com>
  Andrius Štikonas <andrius@stikonas.eu>
  Caio Carvalho <caiojcarvalho@gmail.com>
  Raul Rodrigo Segura <raurodse@gmail.com>
2018-06-15 05:59:11 -04:00
Adriaan de Groot
d2f2aa9a97 [branding] Link to the examples repository 2018-06-15 05:29:03 -04:00
Adriaan de Groot
99163c9a68 Style: stray space 2018-06-15 04:46:53 -04:00
Adriaan de Groot
ac769d1de8 Style: use QStringLiteral
- In many cases, using QLatin1String is a de-optimization, when
   applied to a C string literal. Kevin Kofler pointed out that
   those should basically all be QStringLiteral, instead. (Compile
   tests with -O3 show that in the optimized object file, the
   code size difference is negligible).
 - Drop the explicit constructor entirely in cases where we're calling
   QProcess::execute(), for consistency.
 - Do a little less messing around in the mapping of keyboard locales
   to keyboard map names.
2018-06-15 04:41:41 -04:00
Adriaan de Groot
2d7eea6d73 Merge branch 'master' into emergency-modules 2018-06-14 17:15:40 -04:00
Caio Carvalho
98a158c6e5 [partition] kpmcore latest release doesn't support FileSystem::Type::Luks2 2018-06-14 15:37:00 -03:00
Adriaan de Groot
290559f8c1 Merge pull request #986 from raurodse/configurationPythonQt
Add configuration values into pythonqt modules
2018-06-14 13:19:42 -04:00
Raul Rodrigo Segura
448c5eae16 style code 2018-06-14 16:33:58 +02:00
Adriaan de Groot
67ad37581f [contextualprocess] Document corner-case
The "*" will match its literal value, but is also used as a wildcard.
2018-06-14 14:57:17 +02:00
Adriaan de Groot
011310091c [contextualprocess] QLatin1String -> QString
As Kevin pointed out, there's an extra conversion involved here --
although with -O3 the difference boils away leaving only a call
to a from-ASCII helper or a from-Latin1 helper.

While here, coding-style.
2018-06-14 14:54:14 +02:00
Adriaan de Groot
96cb42414c Merge remote-tracking branch 'origin/improve-settings-sanitization' 2018-06-14 07:34:53 -04:00
Adriaan de Groot
6cdb2daca3 Merge abucodonosor-plymouth 2018-06-14 07:01:41 -04:00
Gabriel Craciunescu
0ccca6902b [grubcfg] fix inter-module dependency with plymouthcfg modules
The plymouthcfg Calamares module is optional. Distributions which
  write filesystems with a full plymouth configuration won't even
  want to use it (see plymouthcfg docs).

  However, now grubcfg depends on plymouthcfg to run because
  the globalstorage value to trigger setting  'splash' in grub,
  is set in the plymouthcfg module.

  Just check for plymouth existence separately in the grub module.

  Fixes ea1c8a0e5d
2018-06-14 06:58:24 -04:00
Adriaan de Groot
2d29bf4449 [contextualprocess] Make conversion explicit
- Qt 5.7 doesn't like QLatin1Char comparison, so switch to
   a full string. Tested on Neptune Linux, #979
2018-06-14 06:46:06 -04:00
Adriaan de Groot
0ffb6ed67c CMake: fix checks for supported rcc format versions 2018-06-14 06:41:08 -04:00
Adriaan de Groot
7eae99223e CMake: check if rcc supports --format-version
- The new format was introduced in Qt 5.7, and Qt 5.9 introduced
   the --format-version flag to rcc to switch back to the reproducible
   format 1. For distro's with Qt 5.7, don't use the new flag.
 - Reported from Neptune Linux, #979
2018-06-14 06:11:39 -04:00
Adriaan de Groot
5935d57069 CMake: bump minimum Qt to 5.7 to match kpmcore 2018-06-14 05:50:24 -04:00
Adriaan de Groot
fa0518f968 [contextualprocess] Make conversion explicit
- Should help with Qt 5.7 compatibility. Reported from Neptune
   Linux, #979
2018-06-14 05:41:43 -04:00
Calamares CI
ef897f59f5 i18n: Add Korean (ko) language translations
Since this is a new language, it is currently 0% translated.
That is why it goes into _tx_bad. It will move to one of the
other categories once some translation has happened. Add the
(still empty) Transifex files already.
2018-06-14 05:03:14 -04:00
Calamares CI
781bdcc1a4 i18n: [python] Automatic merge of Transifex translations 2018-06-14 04:47:53 -04:00
Calamares CI
0ea3d85ab0 i18n: [dummypythonqt] Automatic merge of Transifex translations 2018-06-14 04:47:53 -04:00
Calamares CI
e6dc7473da i18n: [desktop] Automatic merge of Transifex translations 2018-06-14 04:47:51 -04:00
Calamares CI
c47fd88ff0 i18n: [calamares] Automatic merge of Transifex translations 2018-06-14 04:47:51 -04:00
Adriaan de Groot
a8426730ca [libcalamaresui] Improve wording of modules failure warning 2018-06-14 02:48:52 -04:00
Adriaan de Groot
97a45db4bf [libcalamaresui] Reset font height when changing size
- defaultFontHeight() caches the result; clear cache
   when changing the default size, even though this happens
   only once in the current codebase.
2018-06-14 02:35:49 -04:00
Adriaan de Groot
bb5ac0326d [libcalamaresui] Improve layout of "blank" view step 2018-06-14 02:33:03 -04:00
Adriaan de Groot
9918dfb95f [libcalamaresui] Reporting on failures
- Provide information on failed modules
 - Disallow further progress when configuration is borked
2018-06-13 13:41:38 -04:00
Adriaan de Groot
3e24c3c58f [libcalamaresui] Provide standardised large font 2018-06-13 13:41:38 -04:00
Adriaan de Groot
8b406cac9b [libcalamaresui] Improve module loading
- Add a TODO for allowing modules to come from somewhere other
   than the module loader (this would allow "internal" modules
   that are always present)
 - Warnings are warnings
2018-06-13 04:37:52 -04:00
Raul Rodrigo Segura
d61b32aba6 Add configuration values into pythonqt modules 2018-06-12 13:44:28 +02:00
Caio Carvalho
3b6c764f75 [partition] Fixing revert device loop error in PartitionCoreModule::revertAllDevices. 2018-06-11 18:38:57 -03:00
Adriaan de Groot
35124c149e [libcalamaresui] Drop the 'goodbye' message 2018-06-11 13:35:12 -04:00
Adriaan de Groot
a732ce11bc [libcalamares] Warn more about badly-formed config 2018-06-11 08:35:35 -04:00
Adriaan de Groot
49622a6a30 Tests: expand test-application test_conf
- Add -v (verbose) and -b (load via bytearray)
 - Verbose prints the keys read from the file,
 - Bytes reads via an indirection through QByteArray, like Settings does
2018-06-11 06:28:31 -04:00
Adriaan de Groot
a40c36ef49 [libcalamaresui] Report on failed module loading
- Collect the failed modules, instead of bailing out on the first one
   (this also prevents crashes caused by quit() called from a timer).
 - Introduce a slot to report on failed module loading (no UI yet).
2018-06-11 05:59:56 -04:00
Caio
0465cc4214 [partition] Including revert on creation of LVM VGs. 2018-06-08 20:20:05 -03:00
Adriaan de Groot
1999e4e5c2 [libcalamaresui] Error out consistently when module loading fails
- Some module-loading failures were ignored and produce only a
   warning, instead of erroring out.
2018-06-08 18:14:51 -04:00
Adriaan de Groot
dccf6f16f5 [libcalamaresui] Lambdas are fun, but not always the solution 2018-06-08 17:56:23 -04:00
Caio
f8897e0e0b [partition] Including new LVM PVs in LVM VG creation GUI. 2018-06-08 18:52:53 -03:00
Adriaan de Groot
a626e52bf3 [libcalamares] Introduce more descriptive type name 2018-06-08 17:36:29 -04:00
Caio
e5351cdf3c [partition] Don't show capacity of new LVM VGs in DeviceModel. 2018-06-07 17:49:25 -03:00
Caio
208d58bcd9 [partition] Including CreateVolumeGroupDialog and fixing some of its GUI issues. 2018-06-07 17:22:22 -03:00
Adriaan de Groot
24b0df3c04 [locale] Missing includes
- Implicitly included in recent Qt, but not in old versions

Reported from Neptune Linux
2018-06-07 09:03:54 -04:00
Adriaan de Groot
83688f2837 Merge remote-tracking branch 'origin/shuffle-cmake' 2018-06-07 08:45:19 -04:00
Adriaan de Groot
fe7f48662e Merge branch 'fix-iceland' (again) 2018-06-07 08:44:53 -04:00
Adriaan de Groot
52f2161c35 CMake: make polkit-qt5-1 optional
- This is only found in order to know where polkit files should
   be installed. In distro's that don't use polkit, may as well
   make it entirely optional.
2018-06-07 14:17:43 +02:00
Adriaan de Groot
e52c99685d CMake: untangle more sections of top-level CMakeLists.txt 2018-06-07 13:45:29 +02:00
Adriaan de Groot
fd2afc3ba9 CMake: move dependency-versioning info to top 2018-06-07 13:45:29 +02:00
Adriaan de Groot
dfd76ed384 CMake: drop unused variable (no thirdparty/ dir anymore) 2018-06-07 13:36:03 +02:00
Adriaan de Groot
15b97f8e3f [libcalamares] Add missing include-dir
- Fix build on FreeBSD, where the yaml-cpp headers don't live in
   any normally-searched include directory.
2018-06-07 13:31:12 +02:00
Adriaan de Groot
fc979404d1 CMake: move translation settings up
- Follow previous move of user-adaptable settings and regularly-updated
   variables to the top of CMakeLists.txt with a move of the list of
   translated languages.
2018-06-07 13:26:22 +02:00
Adriaan de Groot
91a5ec426d CMake: shuffle the top-level CMakeLists
- Put all the options near the top, easy to spot when reading the file
 - Put the settings that need regular updates, like version, near the top
 - Add some "section headers"
2018-06-07 13:16:57 +02:00
Adriaan de Groot
051b43bee6 Improve validation of configuration files.
The validation of the configuration files (modules' .conf files,
as well as settings.conf overall) spits out warnings, but does
not do all the validation it can:
 - should print locations more clearly (e.g. if there's a tab
   in welcome.conf)
 - should also print some part of the bad text, if possible
 - if a module cannot be created, that should be treated as
   a fatal error (now the module is silently ignored). This
   is different from a module that can't be found, which
   immediately triggers a fatal failure.

Test plan:
 - introduce a tab into welcome.conf
 - introduce a bad conversion into settings.conf

With just the bad welcome.conf, it should complain clearly, and
refuse to start. With a bad conversion, it seems that there is
a problem but execution can continue, so it should be made clearer
what the problem is. If welcome.conf is buggy, and welcome is
listed to show, this should be a fatal error.
2018-06-05 12:48:30 +02:00
Adriaan de Groot
fb0cf9a668 Merge pull request #973 from abucodonosor/typo
[hwclock]: fix typo

Thanks @abucodonosor
2018-06-05 12:40:19 +02:00
Caio
d15ce56c97 [partition] Initial implementation of VolumeGroupBaseDialog. 2018-06-04 16:31:58 -03:00
Calamares CI
430ca800f7 i18n: [python] Automatic merge of Transifex translations 2018-06-04 08:21:59 -04:00
Calamares CI
54515688f7 i18n: [dummypythonqt] Automatic merge of Transifex translations 2018-06-04 08:21:59 -04:00
Calamares CI
8acb88ed4d i18n: [desktop] Automatic merge of Transifex translations 2018-06-04 08:21:58 -04:00
Calamares CI
d82b103eda i18n: [calamares] Automatic merge of Transifex translations 2018-06-04 08:21:57 -04:00
Adriaan de Groot
8430970e71 [preservefiles] Reduce copying by using const-ref into list 2018-06-07 13:47:41 +02:00
Gabriel Craciunescu
41d427e543 [modules]: hwclock fix typo
- methode -> method
2018-06-01 17:45:40 +02:00
Adriaan de Groot
b66d4856e7 [libcalamaresui] Use modern C++ for (auto)deleting failed modules 2018-05-30 07:51:23 -04:00
Adriaan de Groot
40b60abcb3 [locale] Move constants for map-munging
These don't have to be defines at all.
2018-05-29 11:29:44 -04:00
Adriaan de Groot
db7edf719b Merge branch 'fix-iceland'
Deal with some errors in placement of markers (both North and South,
the map is stretched a bit), fix timezone pixel maps to fix wrong
zone display.

This was triggered by Reykjavik being moved around, but expanded
when Johannesburg was also somewhere it isnt.

FIXES #967
2018-05-29 08:22:54 -04:00
Adriaan de Groot
1ee87c3cde [locale] Drop debugging define 2018-05-29 08:16:43 -04:00
Adriaan de Groot
6b3299e6ff [locale] Adjust the North
- Fudge the numbers in the North, to improve location
   of the pins and lines of latitude.
 - Inuvik, Yellowknife, Cambridge Bay, Resolute look ok
 - Thule, Scoresbysund look ok; Danmarkshavn a pixel or so too far North
 - Reykjavik is a bit too far North
 - Longyearbyen is a bit too far North

Since these places are off by one or two pixels, this becomes
invisible when a large pin + text label is placed on it.
2018-05-29 08:16:43 -04:00
Adriaan de Groot
4bacafb411 [locale] Fix timezone pixel map for Tierra del Fuego region
- Punta Arenas, draw like it's in -4
 - Ushuaia, draw like it's in -3

FIXUP pixel
2018-05-29 08:15:33 -04:00
Adriaan de Groot
b7dbc8cc1f [locale] Name zones when debugging
- When debugging timezones, state their names (e.g. UTC offset)
   and also log the pixel position under consideration.
2018-05-29 06:33:50 -04:00
Adriaan de Groot
2c18ba6ddb [locale] Adjust latitude calculation in the southern hemisphere
The scaling on the map was a little off; the degrees of latitude
are a little wider there than around the equator and Europe.

 - Johannesburg is in the right spot
 - Hobart is no longer a suburb of Melbourne
 - Punta Arenas is in Chile
2018-05-29 06:09:25 -04:00
Adriaan de Groot
9f8f76befc [locale] Introduce timezone-widget debugging
Replace pin and text label with just a dot (to pinpoint where
locations are) and draw latitude lines on the globe when
DEbUG_TIMEZONE is set at compile time. Since there's probably
still timezone-related bugs (in particular in the images that
map points on the globe to timezones), leave this in the codebase.
2018-05-29 06:09:25 -04:00
Adriaan de Groot
eddee7d76a [libcalamaresui] No point in isLoaded() being virtual. 2018-05-29 03:38:17 -04:00
Adriaan de Groot
a04915e6fa [libcalamaresui] Add 'emergency' concept to modules. 2018-05-29 03:37:37 -04:00
Adriaan de Groot
cfcc753130 i18n: Enable Belorussian translation 2018-05-29 03:29:58 -04:00
Calamares CI
960c33a512 i18n: [python] Automatic merge of Transifex translations 2018-05-29 03:27:21 -04:00
Calamares CI
a29bd5a18d i18n: [calamares] Automatic merge of Transifex translations 2018-05-29 03:27:20 -04:00
Adriaan de Groot
fdda1ef840 [bootloader] Mimic openSUSE's efibootmgr calls 2018-05-28 11:47:47 -04:00
Adriaan de Groot
dad3669eae [bootloader] Take a stab at determining the shim name 2018-05-28 09:26:20 -04:00
Adriaan de Groot
e4bda546cf [bootloader] factor our EFI-platform-bitness discovery 2018-05-28 09:24:43 -04:00
Adriaan de Groot
cbd62fbeb1 Merge branch 'master' into secureboot 2018-05-28 05:04:03 -04:00
udeved
a878c1a610 add openrccfg 2018-05-28 01:31:55 +02:00
Calamares CI
1dc11a9d5d i18n: [python] Automatic merge of Transifex translations 2018-05-26 07:24:37 -04:00
Calamares CI
51b50b9366 i18n: [dummypythonqt] Automatic merge of Transifex translations 2018-05-26 07:24:36 -04:00
Calamares CI
febe597387 i18n: [desktop] Automatic merge of Transifex translations 2018-05-26 07:24:36 -04:00
Calamares CI
96b1f1cfbc i18n: [calamares] Automatic merge of Transifex translations 2018-05-26 07:24:35 -04:00
Adriaan de Groot
50dea6ded3 [interactiveterminal] Make optional if requirements not met
This is orthogonal to the SKIP_* mechanism already documented
for avoiding modules. If the module is enabled, but its dependencies
are not present, don't bother building the module. This follows
e.g. plasmalnf as an "avoidably heavy dependency".

Related to a misplaced comment in ISSUE #956
2018-05-26 07:09:01 -04:00
Adriaan de Groot
41f70975ea i18n: add Byelorussian (new translation team) 2018-05-26 12:27:55 +02:00
Philip
fc8d961049 [ci] fix link in HACKING.md 2018-05-26 09:49:27 +02:00
Adriaan de Groot
ce3e09318a [preservefiles] Improve failure messages 2018-05-24 07:03:19 -04:00
Adriaan de Groot
28a42a7230 Merge branch 'filepreserver' 2018-05-24 06:52:27 -04:00
Adriaan de Groot
1ad2d365f5 Merge branch 'improve-moduleloading'
This is code that was written as part of the fix-pythonqt branch,
but which isn't really PythonQt-related at all. That branch will
be abandoned soon, since it wasn't sufficiently well-thought-out
enough at the beginning.
2018-05-24 06:49:35 -04:00
Adriaan de Groot
cdadc2f003 [libcalamares] Improve error logging during module loading 2018-05-24 06:47:13 -04:00
Adriaan de Groot
182458ad5a [calamares] Need a JobQueue and global storage before running any job.
The 'singleton' instances don't do a very good job of being singletons
or ensuring their own creation.
2018-05-24 06:46:11 -04:00
Adriaan de Groot
48771f968a [calamares] Load and execute the modules
This runs dummyprocess, at least, but the other three dummies coredump.
2018-05-24 06:46:11 -04:00
Adriaan de Groot
308f508c7e [calamares] Add a test-application.
This test-application should load a single module and execute it --
that can be used to quickly test configurations, loading, etc. This
is preparation for loading all sorts of Python modules by PythonQt.

The loader does some internals initialization and gets the module,
but doesn't actually run it yet.
2018-05-24 06:46:11 -04:00
Adriaan de Groot
fdda0e14aa [libcalamaresui] Improve explainYamlException
- overloads for common kinds of label
 - improve error reporting when reading settings and branding files
2018-05-24 06:46:11 -04:00
Adriaan de Groot
e5ca8e091f [libcalamaresui] Use refactored loadYaml 2018-05-24 06:46:11 -04:00
Adriaan de Groot
261c545476 [libcalamaresui] Refactor loading of YAML to QVariantMap 2018-05-24 06:46:11 -04:00
Adriaan de Groot
f26ac63c07 [libcalamaresui] Make Python code const
- This is always loaded into the Python context, so it may as well
   be done only once.
2018-05-24 06:46:02 -04:00
Adriaan de Groot
45b95e1b65 PythonQt: default to enabled
- This just causes it to be enabled and used when present
   by default, rather than disabled by default (even when present).
2018-05-24 06:43:36 -04:00
Adriaan de Groot
d3e57e9c9f [shellprocess] Expand tests
These tests run (shell) commands as part of the test; this may be
a security problem, although I've tried to do things safely.
2018-05-23 13:49:23 -04:00
Adriaan de Groot
87b9c42158 [shellprocess] Don't crash test
- May need to create a JobQueue before doing anything internal
 - May need to create global settings
 - Chroot always needs rootMountPath internally
2018-05-23 10:01:31 -04:00
Adriaan de Groot
8b00a03423 [shellprocess] Test command-substitution 2018-05-23 09:29:43 -04:00
Adriaan de Groot
b5d900c1c6 [libcalamares] Allow a @@USER@@ replacement in commands
- Following example in preservefiles module, allow @@USER@@
   in commands (e.g. to do something specific in the home-dir
   of the new user).
2018-05-23 09:25:57 -04:00
Adriaan de Groot
b7890d865f [preservefiles] Save GS, munge destination
- using `from: config` now writes a JSON file
 - using @@ROOT@@ and @@USER@@ in dest does a sensible
   substitution.
2018-05-23 09:09:03 -04:00
Adriaan de Groot
ac287a0ac5 [libcalamares] Add a save() method to global storage
- This is a quick way to dump GS to JSON, which is useful
   for the preservefiles module #928
 - Also useful for, e.g., #466
2018-05-23 08:53:11 -04:00
Adriaan de Groot
dae84d3bb1 [users] Improve explanation of other steps of adding a user 2018-05-23 08:11:49 -04:00
Adriaan de Groot
745dc9ad00 Merge branch 'fix-shell'
This introduces configuration to allow switching between the
behavior noted in #964, and the desired behavior from PR #955.

For the Manjaro Openbox edition, this means they should add:
```
userShell:
```
To users.conf, while others will see the return of the previous
behavior of passing -s /bin/bash.

FIXES #964
2018-05-23 07:33:24 -04:00
Adriaan de Groot
01ff1efc5d [users] Improve explanation when useradd fails 2018-05-23 07:03:59 -04:00
Adriaan de Groot
0d24c1db6c [users] Introduce userShell setting
- Add a *userShell* key, which can be left out (default, backwards-
   compatible) to retain the old /bin/bash behavior, or explicitly
   set to empty to defer to useradd-configuration, or explicitly
   set to something non-empty to use that shell.
2018-05-23 05:23:46 -04:00
Adriaan de Groot
ed15edabf9 [users] Document passwordRequirements and code 2018-05-23 04:37:18 -04:00
Adriaan de Groot
3a59574128 [users] Factor out command-line to useradd
- This is prep-work for #964, which was caused by #955
 - Original assumption was that distro's would have a working
   useradd configuration; @abucodonosor already pointed out that
   this was probably not the case, but I ignored that.
2018-05-22 11:45:39 -04:00
Adriaan de Groot
6aa5be192b [netinstall] Drop unused includes 2018-05-22 11:43:14 -04:00
Calamares CI
42d64f0630 i18n: [python] Automatic merge of Transifex translations 2018-05-22 11:37:24 -04:00
Calamares CI
a79e62ac6b i18n: [dummypythonqt] Automatic merge of Transifex translations 2018-05-22 11:37:24 -04:00
Calamares CI
a43b87c636 i18n: [calamares] Automatic merge of Transifex translations 2018-05-22 11:37:23 -04:00
Adriaan de Groot
3133e759d0 Merge pull request #958 from bill-auger/patch-2
avoid pinging hard-coded server for netinstall.yaml
2018-05-22 12:08:01 +02:00
Adriaan de Groot
a9306eb5be Merge pull request #963 from bill-auger/patch-3
move thisModule->isLoaded assert to after its warning message
2018-05-22 12:06:58 +02:00
Adriaan de Groot
2413180c67 Branding: update copyright notices 2018-05-22 05:47:14 -04:00
Adriaan de Groot
5bcfb32cf5 Branding: move the branding stylesheet to the Branding class 2018-05-22 05:43:59 -04:00
Adriaan de Groot
975004fc63 [libcalamaresui] Document accessors in Branding
- document accessors
 - put all path and directory accessors together
 - make simple accessors inline
 - rename "pathprefix" to "directory" to be consistent with others
2018-05-22 05:28:00 -04:00
bill auger
b6673f6324 move thisModule->isLoaded assert to after it's warning message 2018-05-22 03:39:16 -04:00
bill auger
d7b1811e56 avoid pinging hard-coded server for netinstall.yaml
groupsUrl is optional and should be commented out by default
also this URL is 404
also only chakra would ever want to ping the chakra server anyways
2018-05-21 18:43:57 -04:00
Adriaan de Groot
47805209c6 Merge branch 'branding' of https://github.com/raurodse/calamares into raurodse-branding 2018-05-21 11:02:08 -04:00
Adriaan de Groot
fb94c227f6 Merge branch 'netinstall' 2018-05-21 11:00:40 -04:00
Adriaan de Groot
ba85fc760a [netinstall] Remove data-indirection
- There is no need to move data around between two parts of the
   same module via global storage.
2018-05-21 10:58:57 -04:00
Adriaan de Groot
3160bd7a54 [netinstall] Simplify getting configuration
- Use convenience methods for getting bools and strings from
   the configuration map. Ignore empty groupsUrls.
2018-05-21 10:49:47 -04:00
Adriaan de Groot
c1a6ca7629 Merge pull request #957 from bill-auger/patch-1
consistent indentation .. It's not intended as a human-readable file (only something Qt Designer works on) but we may as well be consistent.
2018-05-21 16:09:28 +02:00
Adriaan de Groot
6779a44991 [preservefiles] New module preservefiles
- more flexible way to keep (all kinds of) files from the host
   system, into the target system.
 - WIP: substitutions like in shellprocess (@@ROOT@@, @@HOME@@ probably)
 - WIP: creating a JSON file from global settings
2018-05-21 06:30:54 -04:00
Adriaan de Groot
6c87747a5d [libcalamares] Make it possible to get the logfile name 2018-05-21 06:30:54 -04:00
Adriaan de Groot
5bcd6eaef8 [partition] Reduce warnings by removing unused code 2018-05-21 06:30:54 -04:00
Raul Rodrigo Segura
7b6c76ba15 fix typo 2018-05-21 09:27:58 +02:00
Raul Rodrigo Segura
3f2cc854f4 Set type to variable and import library 2018-05-21 09:22:28 +02:00
Raul Rodrigo Segura
e2801daf33 check path 2018-05-20 16:47:20 +02:00
Raul Rodrigo Segura
1636f665c3 Set Object name to graphical elements to thematize by qss 2018-05-20 16:29:38 +02:00
Raul Rodrigo Segura
4c6f42ecfa Set Object name to graphical elements to thematize by qss 2018-05-20 16:28:31 +02:00
bill auger
4826af97a9 consistent indentation in src/modules/netinstall/page_netinst.ui
this file has 1 space char indentation except for these lines
2018-05-19 19:04:24 -04:00
Adriaan de Groot
4daf5fce10 CMake: drop RC status 2018-05-17 11:13:54 -04:00
Calamares CI
7bdb2ef735 i18n: [python] Automatic merge of Transifex translations 2018-05-17 11:04:13 -04:00
Calamares CI
6b02da9e9e i18n: [dummypythonqt] Automatic merge of Transifex translations 2018-05-17 11:04:13 -04:00
Calamares CI
30fe4ddf24 i18n: [calamares] Automatic merge of Transifex translations 2018-05-17 11:04:12 -04:00
Adriaan de Groot
0c8e45b09a Merge pull request #955 from fhdk/patch-1
Remove hardcoded shell from user module
2018-05-17 16:59:06 +02:00
Frede H
f2677b0879 Update CreateUserJob.cpp
Removal of the hardcoded shell, letting the `/etc/default/useradd` be responsible for the shell.
2018-05-17 12:52:09 +02:00
Adriaan de Groot
733836839a CMake: remove module that duplicates what is in CMake proper 2018-05-17 12:00:06 +02:00
Adriaan de Groot
65d00ccc37 Merge branch 'partition-flags'
Extensive go-over on the partitioning code. #622 is maybe "possibly fixed",
but there's no real indication of what constitutes an invalid combination
of flags.

FIXES #884 FIXES #951 FIXES #953 FIXES #622
2018-05-16 11:37:27 -04:00
Adriaan de Groot
c73d6e80f6 [libcalamares] Switch @@ROOT@@ magic around
The substitution of @@ROOT@@ should happen when running in the
host, not in the target, system. Also only complain about it
if @@ROOT@@ is actually used in the commands.

FIXES #954
2018-05-16 11:20:40 -04:00
Calamares CI
f6f34bbec3 i18n: [python] Automatic merge of Transifex translations 2018-05-16 11:02:49 -04:00
Calamares CI
6d1f5433b4 i18n: [dummypythonqt] Automatic merge of Transifex translations 2018-05-16 11:02:48 -04:00
Calamares CI
40a4f9e66d i18n: [desktop] Automatic merge of Transifex translations 2018-05-16 11:02:47 -04:00
Calamares CI
9cb6a996c6 i18n: [calamares] Automatic merge of Transifex translations 2018-05-16 11:02:47 -04:00
Adriaan de Groot
90a2e482be [partition] Check for available partition type before creating
- Avoid situation where you make 5 or more primaries in an
   MSDOS partition table.

FIXES #953
2018-05-16 10:56:06 -04:00
Adriaan de Groot
bd57f1f2f1 [partition] Fix re-editing a newly created partition
- If there is a partition already (newly) created, then pass that
   to the dialog so that it can use the setings previously applied
   (e.g. mount point and flags).
 - This avoids the case where you create or format a partition,
   then click on it again to edit it and the previous settings are lost.
2018-05-16 09:14:50 -04:00
Adriaan de Groot
ca03dad67b [partition] Refactor setting the flags UI
- Setup the lsit of flags consistently, by providing the available
   and to-be-checked flags.
 - In CreatePartitionDialog, assume that ~0 is all the flags.
2018-05-16 09:07:45 -04:00
Adriaan de Groot
4f451eece5 [partition] Refactor getting the checked flags 2018-05-16 08:41:47 -04:00
Adriaan de Groot
950cc9070d [partition] Rename MountPoints to PartitionDialogHelpers
This file is full of helper functions for the partition-editing
dialogs. At first it was just mount-point helper functions,
but there is other functionality that can be refactored.
2018-05-16 08:34:33 -04:00
Adriaan de Groot
336b8c758a [partition] Consider the future flags when checking EFI bootability
- If we're changing the flags to enable EFI boot, then that's
   enough to satisfy the (future) EFI bootability check.
   This is for issue #622 as well. Fixes #884.
2018-05-16 07:33:04 -04:00
Adriaan de Groot
0df304b206 [partition] Preserve desired partition flags
- Use the desired (future) flags, if set, to initialize the
   flags checkboxes. If there are no future flags set, this
   returns active flags as before.
 - This fixes the situation where editing a partition, changing
   flags, then editing it *again* re-starts with the original
   flags instead of the modified flags.
2018-05-16 07:19:34 -04:00
Adriaan de Groot
6739b81c2a [partition] Tell PartitionInfo about desired flags
- When creating a partition, or changing flags, tell
   the PartitionInfo about those desired flags.
2018-05-16 07:13:35 -04:00
Adriaan de Groot
7df143f64a [partition] Add flags to PartitionInfo
- PartitionInfo maintains information on "what is desired" for
   a given Partition. Now we can set desired flags, alongside
   the flags already supported by Partition (where activeFlags()
   gives you the flags currently set on that partition).
2018-05-16 06:53:35 -04:00
Adriaan de Groot
5b4668822d [partition] Also update combo box index when setting up
- Avoids case where you edit a partition with a mountpoint
   set; previously, calling setText() would update the text
   but leave the selected index unchanged (usually 0), so that
   later calling selectedMountPoint() would return empty.
2018-05-16 06:15:33 -04:00
Adriaan de Groot
323d20d1a5 [partition] Avoid sneaking an empty string into the mount points combo 2018-05-15 08:26:01 -04:00
Adriaan de Groot
255a99d714 [partition] Drop now-unneeded debugging 2018-05-15 08:13:15 -04:00
Adriaan de Groot
310555f16b [partition] Add /srv to standard mount-points list. 2018-05-15 08:06:45 -04:00
Adriaan de Groot
4402198b37 [partition] Centralize setting-of-mountpoint
- map empty to the 0'th index
 - add new entries as needed

This avoids having selected index 0, but a different text.
2018-05-15 08:01:18 -04:00
Adriaan de Groot
a49c39bb53 [partition] Unmap mount-point special strings
- Reverse "(no mount point)" to the empty string
 - Provide convenience pointer-taking function
2018-05-15 06:30:18 -04:00
Adriaan de Groot
a4997c4be8 [partition] Convenience for selecting default mount point
- map blank to the "(no mount point)" string for UI purposes
2018-05-15 06:13:19 -04:00
Adriaan de Groot
fda2e54e0f [partition] Refactor filling combobox with moint points
- Move to one place which handles the standard mount points
 - While here, introduce explicit "(no mount point)" string
   into the combo box. This is prep-work for issue #951.
2018-05-15 05:40:52 -04:00
Adriaan de Groot
b5d667f76e i18n: disable Esperanto again
I consider this a Qt bug: there is an enum value for the language,
the language is fully (?) detailed in the ICU tables, and yet
it gets mapped hard to C locale.
2018-05-14 16:05:55 -04:00
Adriaan de Groot
39bf2eb9aa [welcome] Fix display of unsupported locales
- Some locales have no nativeLanguageName(), so instead display
   the locale id (e.g. "eo") and the resulting language in English
   (which, if it is really unsupported, will be "C").
2018-05-14 06:28:57 -04:00
Adriaan de Groot
b0e5e13221 i18n: enable Esperanto translation 2018-05-14 06:28:57 -04:00
Adriaan de Groot
7090227269 i18n: fix up tooling
- suppress languages we've decided not to have anymore
 - prevent txpull from losing .desktop keys it doesn't understand,
   by splitting off a desktop.in file with only the (source) fields.
2018-05-14 06:28:57 -04:00
Calamares CI
d354027114 i18n: [python] Automatic merge of Transifex translations 2018-05-14 06:28:57 -04:00
Calamares CI
03c2329093 i18n: [dummypythonqt] Automatic merge of Transifex translations 2018-05-14 06:28:57 -04:00
Calamares CI
0ad74a5913 i18n: [desktop] Automatic merge of Transifex translations 2018-05-14 06:28:57 -04:00
Calamares CI
4e1306bf89 i18n: [calamares] Automatic merge of Transifex translations 2018-05-14 06:28:57 -04:00
Adriaan de Groot
29848e0279 Merge pull request #950 from cjlcarvalho/master
[partition] Only bootloader model should ignore devices that are not of Disk_Device type
2018-05-14 10:47:57 +02:00
Caio Carvalho
f72f7bd8fe [partition] Only bootloader model should ignore devices that are not of Disk_Device type. 2018-05-10 18:37:37 -03:00
Adriaan de Groot
37ce9a0838 CMake: bump RC number 2018-05-10 08:53:45 -04:00
Adriaan de Groot
45731b554b i18n: update lists of translated languages
- add Esperanto
 - add checks for new or misspelled translations
2018-05-10 08:53:29 -04:00
Adriaan de Groot
ccdfe53201 Merge pull request #945 from cjlcarvalho/master
- Switch to enum types
 - Ignore LVM
 - Check LUKS support

Builds locally in my Manjaro test-box and kpmcore 3.3.0
2018-05-10 13:39:58 +02:00
Calamares CI
4723f70503 i18n: [python] Automatic merge of Transifex translations 2018-05-10 07:38:20 -04:00
Calamares CI
5e6cced522 i18n: [desktop] Automatic merge of Transifex translations 2018-05-10 07:38:20 -04:00
Calamares CI
d79ca92cbf i18n: [calamares] Automatic merge of Transifex translations 2018-05-10 07:38:19 -04:00
Adriaan de Groot
2da09f7648 [libcalamaresui] Fix build
- Include all headers for types that need to be fully-defined
   (e.g. return types). This guards against uses in contexts where
   those headers have not been implicitly or previously included.

FIXES #948
2018-05-10 05:39:22 -04:00
Caio Carvalho
77d2667b53 [partition] Checking if there is LUKS creation support and if partition is not Extended before enabling encryption in CreatePartitionDialog. 2018-05-08 01:30:41 -03:00
Adriaan de Groot
7b934b7779 Desktop: don't show in app-stores
- another change squashed by Transifex
 - thanks Kevin Kofler for spotting
2018-05-07 14:31:33 -04:00
Adriaan de Groot
96887e754c i18n: drop es_ES, add tooling 2018-05-07 09:14:18 -04:00
Adriaan de Groot
ff43752f47 i18n: pl_PL has merged into pl 2018-05-07 05:58:04 -04:00
Adriaan de Groot
a38a2a54f7 [locale] Check all XML TimeZone elements if needed
- reduce warnings about loop-executed-only-once
 - if there is more than one TimeZone element, use the virst valid one
 - warn if nothing is found
2018-05-07 05:18:35 -04:00
Adriaan de Groot
3beb4bc87f Desktop: cleanup
- remove blank lines introduced by Transifex
 - restore 8ee4cc19 which was dropped when re-importing translations
2018-05-07 05:08:42 -04:00
Calamares CI
ad45ed4a33 i18n: [python] Automatic merge of Transifex translations 2018-05-07 05:01:49 -04:00
Calamares CI
0fc30d6cd6 i18n: [dummypythonqt] Automatic merge of Transifex translations 2018-05-07 05:01:49 -04:00
Calamares CI
d1ceb66556 i18n: [desktop] Automatic merge of Transifex translations 2018-05-07 05:01:48 -04:00
Calamares CI
c7533800b2 i18n: [calamares] Automatic merge of Transifex translations 2018-05-07 05:01:48 -04:00
Adriaan de Groot
48b7c312f8 ci: switch to less volatile KDE Neon version 2018-05-07 04:56:43 -04:00
Caio Carvalho
f561f04591 [partition] Changing PartUtils::getDevices to ignore devices that aren't of Disk_Device type. 2018-05-03 14:50:13 -03:00
Caio Carvalho
8726b70574 [partition] Ignoring LVM devices in PartUtils::getDevices to prevent installing bootloader in LVM VG. 2018-04-30 00:40:54 -03:00
Adriaan de Groot
a4bc98742a ci: switch to less volatile KDE Neon version 2018-04-26 10:09:12 -04:00
Adriaan de Groot
76b622936f Merge pull request #944 from ximion/master
Never show Calamares in software centers
2018-04-26 16:05:04 +02:00
Matthias Klumpp
e36d6d5d97 Never show Calamares in software centers
Users will never want to install the distribution installer from a
software center like KDE Discover or GNOME Software, so exclude it from
the AppStream metadata collection.
2018-04-26 06:46:30 +02:00
Adriaan de Groot
42f5ed5d41 [welcome] Fix build, reduce redundancy
- constexpr isn't applicable because of non-trivial destructor
 - May as well only create " (%1)" once.

FIXES #938
2018-04-23 10:47:31 -04:00
Adriaan de Groot
e5b599fbe3 [welcome] Drop accidental logging 2018-04-19 09:24:59 -04:00
Adriaan de Groot
0c5590c2e4 Merge branch 'language-selection'
Display the name of each translation in the language of that translation.

FIXES #935
2018-04-19 09:14:29 -04:00
Adriaan de Groot
a47b3f8d14 [libcalamares] Document special-case translations 2018-04-19 09:10:13 -04:00
Adriaan de Groot
b9ed96d4f8 [libcalamares] Special case sr@latin
QLocale::name() doesn't include script information, and if it did
it would probably use sr_RS@Latin; when searching for translation
files it won't consider dropping just the country.
2018-04-19 09:04:29 -04:00
Adriaan de Groot
a9ffd3351d [welcome] Support sr@latin
- The QLocale constructor which takes a string (locale name) doesn't
   understand sr@latin, and returns the Cyrillic locale. Fix that
   by creating locales ourselves for @latin locales.
 - sr and sr@latin now display correctly in the right script in the
   native language dropdown.
2018-04-19 08:40:04 -04:00
Adriaan de Groot
7cc2b222d9 [welcome] Present RTL (country) annotations better
- The (RTL) text "Arabiy (Misr)" should be entirely RTL, so
   make the parenthetical insert -- which would otherwise be LTR
   and so mess up the placing of those parenthesis around the country --
   explicitly RTL.
 - Since there are no RTL languages in Calamares right now with
   country-local translations, this isn't visible.
2018-04-19 07:42:43 -04:00
Adriaan de Groot
7c944760fc [welcome] Only show (country) in list if the locale suggests it
- A locale suggests it is country-specific by having the form <lang>_<country>
 - This mostly fixes locale "ar" being presented as "Arabiy (Misr)" when
   there is no need to (and the RTL is messed up then, too).
2018-04-19 07:19:10 -04:00
Adriaan de Groot
59537d86d6 [welcome] Present languages in native format
- Introduce intermediate data class for building up the list
   of languages to present.
 - Sort on the English names, with en_US at the top (ugh).
 - Show the native names.
2018-04-19 07:15:25 -04:00
Adriaan de Groot
8ee4cc1966 Desktop: increase redundancy of repetitions
FIXES #936
2018-04-19 06:59:22 -04:00
Adriaan de Groot
b8b607c421 [locale] Fix QString-vs-char* confusion 2018-04-18 18:28:37 -04:00
Adriaan de Groot
ba2dbd4f2e Merge pull request #937 from stikonas/master
[partition] Switch to scoped Device enums.
2018-04-19 00:16:19 +02:00
Andrius Štikonas
1b21668bff [partition] Switch to scoped Device enums. 2018-04-18 23:59:15 +03:00
Adriaan de Groot
6930400b67 DEBUG logging 2018-04-18 11:34:09 -04:00
Adriaan de Groot
4b7465696d [welcome] Refactor the code that picks a locale to use
- Much like std::find_if, but slightly muddled because there's
   no iterator that we can sensibly use.
 - Scan the ComboBox for a locale that matches a predicate.
 - Log more as the search for a good locale progresses.
 - Don't mix matching the locale with filling the ComboBox
   (even though that's slightly more efficient).
2018-04-18 11:33:49 -04:00
Adriaan de Groot
522adf766a [locale] Switch HTTP GET test to KDE servers
- Use the official name of the KDE GeoIP service
 - Log the URL *before* the check, in case one fails
2018-04-17 07:45:27 -04:00
Adriaan de Groot
5acf67a057 [locale] Fix tests with spaces in zone names
- "North Dakota" -> "North_Dakota" following the change that fixes up
   dodgy names automatically.
2018-04-17 07:40:38 -04:00
Adriaan de Groot
b4e4b691fd [locale] Accomodate more dodgy GeoIP providers
- Force spaces to _
 - Document the bits

FIXES #933
2018-04-17 07:32:27 -04:00
Adriaan de Groot
3ef0fbe892 [locale] Add tests for a bunch of GeoIP providers
- Since these tests use network resources, they are not enabled by default.
   Set the environment variable TEST_HTTP_GET to actually do them.
 - Do one request for each provider and check that they are all consistent.
   (This works for me, yielding Europe/Amsterdam for all).
2018-04-16 09:17:18 -04:00
Adriaan de Groot
0f5e061c4a [locale] Support multi-level selection from JSON data
- Some providers don't provide a single flat JSON object
   (e.g. "{time_zone: foo}") but a nested structure
   (e.g. "{location: {time_zone: foo}}"), so allow dots
   in the selector to do multi-level selection.
2018-04-16 09:13:06 -04:00
Adriaan de Groot
6545d5d022 Merge branch 'expand-geoip'
- Allow configurable TZ selector string, to allow for more variation in providers
2018-04-16 07:53:25 -04:00
Adriaan de Groot
d04e243c4e [locale] Auto-clean up time zone data
- Some providers return weirdly escaped data; strip out useless
   escaping before splitting (there are no characters in correct
   time zone names that need escaping)
 - Add some tests for TZ splitting
2018-04-16 05:49:08 -04:00
Adriaan de Groot
fa5d40006c [locale] Fix interpretation of configured selector
- In GeoIP handler constructors that take a string (to configure the
   selector to use), interpret the empty string (which generally isn't
   a meaningful selector) as meaning "use the default".
 - Drop the no-argument constructors in favor of a default-argument
   which is empty.
2018-04-16 05:32:22 -04:00
Adriaan de Groot
352b385b12 [locale] Make the selector configurable via the config file 2018-04-16 05:32:22 -04:00
Adriaan de Groot
b1b59b27b2 [locale] Expand tests for alternate selectors
- Check that the alternate selectors are used
2018-04-16 05:32:22 -04:00
Adriaan de Groot
fe20416a54 [locale] Make the selector configurable
- GeoIP gets a string selector; the interpretation is up to derived classes.
 - GeoIPXML and GeoIPJSON use the selector to select an element by tag
   or an attribute, respectively.
2018-04-16 04:55:37 -04:00
Adriaan de Groot
79a6d7ccbd [locale] Make file and class consistent GeoIPXML
- Rename the class to match the filename.
2018-04-16 04:35:32 -04:00
Adriaan de Groot
2cd4461b57 [locale] Rename JSON handler
- The handler for JSON data should be called that, not named
   specially after the original provider it was implemented for.
 - Make filename and classname consistent, GeoIPJSON.
2018-04-16 04:32:49 -04:00
Calamares CI
4161120385 i18n: [python] Automatic merge of Transifex translations 2018-04-13 10:25:38 -04:00
Calamares CI
8ba4de6d0a i18n: [dummypythonqt] Automatic merge of Transifex translations 2018-04-13 10:25:38 -04:00
Calamares CI
ef2a15b45b i18n: [desktop] Automatic merge of Transifex translations 2018-04-13 10:25:37 -04:00
Calamares CI
4ed65c290d i18n: [calamares] Automatic merge of Transifex translations 2018-04-13 10:25:37 -04:00
Adriaan de Groot
ec113e3df3 [locale] Log GeoIP attempt URL, use possibly-modified form 2018-04-13 09:42:28 -04:00
Adriaan de Groot
d6f082752d [locale] On GeoIP failure, log URL 2018-04-13 09:36:39 -04:00
Adriaan de Groot
47b7040897 [locale] Adjust to Calamares 3.2 idiom 2018-04-13 09:24:59 -04:00
Adriaan de Groot
3ea5a06157 Merge branch '3.1.x-stable' 2018-04-13 08:50:17 -04:00
Adriaan de Groot
14fcc2fad6 [plasmalnf] Continue fighting with layout
- The screenshot stays one size, but different ThemeWidgets may overlap
   partially when you shrink the screen or have more than three / four
   themes listed.
 - Probably needs work in the surrounding container and overall better
   page-scrollbar support.
2018-04-13 08:44:02 -04:00
Adriaan de Groot
c9928c99c8 Merge remote-tracking branch 'origin/3.1.x-stable' into 3.1.x-stable 2018-04-12 17:13:34 -04:00
Adriaan de Groot
1340613ef5 [locale] Additional test application for GeoIP processing 2018-04-12 16:55:24 -04:00
Adriaan de Groot
76e37402b3 [locale] Extend tests with negative results 2018-04-12 16:23:54 -04:00
Adriaan de Groot
0c1453ff18 [locale] Fix string value handled by XML parser 2018-04-12 16:23:54 -04:00
Adriaan de Groot
eea421f499 [locale] Add tests for GeoIP handlers
- One sample JSON result
 - Two sample XML results
2018-04-12 16:23:54 -04:00
Adriaan de Groot
6b7c8a694a [locale] Make the style of GeoIP retrieval selectable
- Unchanged config files will continue to use the weird addition
   of /json, and interpret JSON data.
 - Allow to specify full URL with data format through one of
     geoipStyle: json
     geoipStyle: xml
 - XML support is optional
2018-04-12 14:37:38 -04:00
Adriaan de Groot
5b98e58ae7 [locale] Refactor GeoIP handlers
- Read the data in the caller of the handler, instead of in the callers
2018-04-12 12:22:43 -04:00
Adriaan de Groot
939cdff93b [locale] Add alternate GeoIP data format 2018-04-12 12:18:43 -04:00
Adriaan de Groot
aaae1507cd [locale] Convenience function for TZ splitting 2018-04-12 11:51:50 -04:00
Adriaan de Groot
3636226425 [locale] Document change to the way GeoIPURL is handled. 2018-04-12 10:18:15 -04:00
Adriaan de Groot
fe98b789f0 [locale] Document the settings in locale.conf
- The geoipUrl is weird, because it is not a complete URL.
   Document that, and what kind of data is expected.

FIXES #920
2018-04-12 10:15:19 -04:00
Adriaan de Groot
d5623af8ef [locale] Refactor geoip handling
- Configuration **must** be a complete URL. The implementation no
   longer appends /json to the URL.
2018-04-12 10:11:48 -04:00
Adriaan de Groot
c0d5a153d4 [locale] Refactor GeoIP handler
- Move GeoIP to its own cpp file
 - Provide a default implementation of the URL mangler
2018-04-12 09:54:22 -04:00
Adriaan de Groot
445f181cc3 [locale] Start refactoring geoip handling
- Introduce a handler interface for GeoIP providers
 - Move the implementation of FreeGeoIP into a struct of its own
2018-04-12 09:45:48 -04:00
Adriaan de Groot
fa933b9a16 [plasmalnf] Search for theme screenshots
- Search in branding dir, and ., for relative paths,
 - Absolute paths used as-is.
 - Document search as such.
2018-04-10 08:54:47 -04:00
Adriaan de Groot
bfb37e6b37 [plasmalnf] Avoid use of 'uint' 2018-04-09 11:39:45 -04:00
Adriaan de Groot
cb616ec1bb [plasmalnf] Keep fixed size of screenshots (relative to font size) 2018-04-09 11:39:05 -04:00
Adriaan de Groot
5ab01eba9f [plasmalnf] Don't even try to load an empty filename for screenshot.
- Avoid one attempt-to-load if the filename is empty, and one
   re-creating of the Pixmap.
2018-04-09 11:26:43 -04:00
Adriaan de Groot
06e43a7312 CI: Switch to stable Neon, to avoid all-builds-failing.
The dev-unstable Neon branch now has a too-new KPMCore for
this branch of Calamares.
2018-04-09 11:20:40 -04:00
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
7e5c91aae6 [locale] Reduce debugging bla bla 2018-04-04 11:42:38 -04:00
Adriaan de Groot
032b33f56f [libcalamaresui] Improve logging.
- Put the (constant) 'Calamares will now quit' on its own debug line.
 - Tell the user what the search paths are if a module is not found
   (prompted by a mis-configuration in a Neon live image).
2018-04-04 11:25:28 -04:00
Adriaan de Groot
ddbb9eaebc Merge branch 'improve-logging' 2018-04-04 11:10:51 -04:00
Adriaan de Groot
9fe85e592f Merge branch '3.1.x-stable' 2018-04-04 11:10:34 -04:00
Adriaan de Groot
b8e6144553 [locale] Document how the locale entry in Global Storage works.
- Make the BCP47 value explicitly lower-case.
 - Add some constness and encapsulation.
 - Fix up documentation in the packages module explaining the
   format of the ${LOCALE} replacement (now forced to lower-case,
   but it is also only the language part, not e.g. en-UK).

FIXES #922
2018-04-03 13:07:36 -04:00
Adriaan de Groot
4c04260b97 [packages] Don't change the global package list.
- Count only the packages that will be changed, given the current
   locale settings.
 - Preserve global storage unchanged (don't remove any locale-packages).
2018-04-03 08:28:29 -04:00
Adriaan de Groot
36aede52ef [packages] Example configuration installs a localization package 2018-04-03 08:20:01 -04:00
Adriaan de Groot
fd1279dbe3 [welcome] Make the example configuration less strict 2018-04-03 08:19:45 -04:00
Adriaan de Groot
9cdb6734bf [packages] If locale is empty, pretend it is 'en'.
- Otherwise packages like vi-$LOCALE will be retained in the
   package list, which will cause install problems.
2018-04-03 08:02:16 -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
20e9c2c8e3 Merge branch '3.1.x-stable' 2018-03-29 17:35:36 -04:00
Adriaan de Groot
32a1c84935 [locale] Document the settings in locale.conf
- The geoipUrl is weird, because it is not a complete URL.
   Document that, and what kind of data is expected.

FIXES #920
2018-03-29 16:50:02 -04:00
Adriaan de Groot
fb93a8288e [plasmalnf] Simplify showAll handling
- Only need the showAll parameter once, when passing in the list
   of themes to show.
2018-03-29 10:09:45 -04:00
Adriaan de Groot
b0828faadb [plasmalnf] New setting to show all installed LnF themes
- This enables working in three modes:
   - No themes listed; all are shown without screenshots,
   - Themes listed, showAll false; only those are shown,
   - Themes listed, showAll true; the installed-but-not-listed
     themes are shown after the listed ones, and have limited info.
2018-03-29 09:57:19 -04:00
Adriaan de Groot
c2efae765d [plasmalnf] Add auto-detection of Plasma theme.
- Although it's not necessarily accurate for an extensively-modified
   Plasma configuration, we can read the Look-and-Feel from the
   configuration files. Allows auto-detection.
2018-03-29 08:49:22 -04:00
Adriaan de Groot
11652c5856 [plasmalnf] Add pre-selected theme
- For OEM modes where there is already a theme, add a preselect:
   key to pick a specific theme and have that one come up as already-
   selected in the list.
 - Don't re-run the lnftool if an already-selected theme is clicked
   again. Use toggled() instead of clicked().
2018-03-29 07:59:16 -04:00
Adriaan de Groot
94000b6847 [plasmalnf] Improve wording of LnF explanation. 2018-03-29 04:33:55 -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
3e30bb682e [libcalamaresui] Use cError() for logging errors, not cLog() 2018-03-28 09:22:37 -04:00
Adriaan de Groot
e2b8fb0afe [welcome] Log if no translations matched at all 2018-03-28 07:47:13 -04:00
Adriaan de Groot
d9a1f6b18b CMake: restore en to translations list 2018-03-28 07:25:22 -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
24305bd58f CMake: make the translations more transparent; easier to update 2018-03-27 11:10:14 -04:00
Adriaan de Groot
ace30e149a CMake: fix defaults-handling which was breaking in-tree build 2018-03-16 11:51:50 -04:00
Adriaan de Groot
abe05ac8ab CMake: document add_branding_subdirectory()
- add feature to allow (re)naming and to support greater
   directory depths.
2018-03-14 09:12:27 -04:00
Adriaan de Groot
b95fe2227f CMake: remove debugging from macro 2018-03-14 08:54:55 -04:00
Adriaan de Groot
789bbe48f8 Merge branch 'master' into secureboot 2018-03-12 10:19:26 -04:00
Adriaan de Groot
902e392b6d CMake: bump version for -rc4 2018-03-12 10:13:33 -04:00
Adriaan de Groot
d4f0be02d3 i18n: make build reproducible
The RCC output files in version 2 contain a timestamp of the
source file, which changes per build. Drop down to version 1,
which just removes the timestamp.

See reproducible builds note 'timestamps in source generated by rcc'.

FIXES #917
2018-03-12 09:09:29 -04:00
Calamares CI
a519be130c i18n: [python] Automatic merge of Transifex translations 2018-03-09 11:34:31 -05:00
Calamares CI
1791ac2d43 i18n: [dummypythonqt] Automatic merge of Transifex translations 2018-03-09 11:34:30 -05:00
Calamares CI
7e2f7dc414 i18n: [desktop] Automatic merge of Transifex translations 2018-03-09 11:34:28 -05:00
Calamares CI
37e6f92c24 i18n: [calamares] Automatic merge of Transifex translations 2018-03-09 11:34:28 -05:00
Adriaan de Groot
70fe023347 Merge branch 'branding'
Documentation lives both in Calamares and in the calamares-branding
repo. Whether a slideshow has navigation arrows or not is up to the
slideshow / branding component author, but Calamares now ships some
support QML to make that easy.

FIXES #841
FIXES #904
2018-03-09 11:24:50 -05:00
Adriaan de Groot
2f66aa9b07 [plasmalnf] Change to IgnoreAspectRatio
It is the distro's responsibility to produce screenshots that look
good; previously I chose to preserve the aspect ratio on the grounds
that this would keep the look of the screenshot even if the distro
had done one in a weird size. This makes the screenshot part
of the LNF selection look weird, though, since then you get
blank parts.

Switch to ignoring the aspect ration; distro's should produce
screenshots in a 12x8 (i.e. 3:2) aspect ratio, preferrably at
least 120x80 pixels -- but keep in mind hiDPI and the default
font sizes of the distro, which may make other sizes look better.

(this follows discussion with BlueStar Linux)
2018-03-09 11:24:41 -05:00
Adriaan de Groot
42ba505ceb CMake: add license headers, copyright
Since we install the CMake files now, also put license headers in them.
These files are intended to help plugin and branding component authors
write them in a simple Calamares-idiomatic way.
2018-03-09 11:13:42 -05:00
Adriaan de Groot
986c5f5a9a CMake: improve branding component macros
- document preferred component layout
 - simplify parameters to the branding macros
 - allow structured branding components with SUBDIRECTORIES
2018-03-09 11:03:42 -05:00
Adriaan de Groot
f29da8e39e Branding: document preference for standalone branding 2018-03-09 08:48:24 -05:00
Adriaan de Groot
25b9663a40 Branding: remove fancy/ and samegame/ examples
The examples of branding have moved to the calamares-branding repo.
2018-03-09 08:44:20 -05:00
Adriaan de Groot
3610634883 CMake: Calamares uses linguist-tools for translation
The convenience include file CalamaresUse should DTRT and set up
all the bits needed to write Calamares branding components and
modules. So add the bits for i18n.
2018-03-09 08:39:05 -05:00
Adriaan de Groot
fdccff83c3 i18n: when extracting strings, skip branding 2018-03-09 07:22:45 -05:00
Adriaan de Groot
e4cca9b830 Branding: document how to translate branding 2018-03-09 07:22:36 -05:00
Adriaan de Groot
75df6a4f88 Branding: add example translations to fancy/ 2018-03-09 07:22:30 -05:00
Adriaan de Groot
f8bc195fb4 [libcalamaresui] Improve warning when branding has no translation 2018-03-09 07:21:16 -05:00
Adriaan de Groot
c1bb5e708b QML: apply translation to the slide counter 2018-03-09 07:21:16 -05:00
Adriaan de Groot
97eff28383 QML: Remove binding for quit key in presentation 2018-03-09 07:21:16 -05:00
Adriaan de Groot
345118aec9 CMake: improve branding support
- Fix broken subdirectory call
 - Automatically process lang/ if there isn't a CMakeLists.txt,
   this was a bogus restriction
 - Add support macros for installing branding and translations
2018-03-09 07:21:16 -05:00
Adriaan de Groot
2fee85907d CMake: improve documentation in the Config file 2018-03-09 07:21:16 -05:00
Adriaan de Groot
8125698696 Branding: expand documentation
- Auto-advance the default presentation
 - Add more example slides to the fancy presentation
 - Expand README.md explaining what the default classes can do
2018-03-08 12:57:50 +01:00
Adriaan de Groot
e7849c5ed0 Branding: fix reference error 2018-03-08 12:19:02 +01:00
Adriaan de Groot
3b8673fb99 Branding: update example, use NavButtons 2018-03-08 12:14:45 +01:00
Adriaan de Groot
7ab79a944b Branding: add example SVGs from Quassel 2018-03-08 12:14:44 +01:00
Adriaan de Groot
b6fd8de126 QML: Use QtQuick 2.5 consistently 2018-03-08 12:14:44 +01:00
Adriaan de Groot
3d89828fe1 QML: drop potentially confusing shortcuts
Removed these features that make sense in a presentation slideshow
(e.g. during a talk) but that are potentially confusing during
a passive slideshow like Calamares has:
 - Using 'c' blanks the slideshow.
 - Entering a slide number + enter changes slides.
2018-03-08 12:14:44 +01:00
Adriaan de Groot
c116dba2e8 QML: add navigation items
- Add a NavButton, which shows a directional arrow, and fades in on hover.
   It can be used left- or right- by setting an image source
   and click handler.
 - Specialize NavButton to Forward and BackButton.
 - Add a SlideCounter navigation aid.
2018-03-08 12:13:44 +01:00
Adriaan de Groot
8a9baf6e11 Git: ignore compiled QML 2018-03-07 12:55:14 +01:00
Adriaan de Groot
74080c31f5 Branding: add a fancy branding example 2018-03-07 06:18:18 -05:00
Adriaan de Groot
c7629182e4 Merge branch 'master' into requirements-checking 2018-03-06 17:06:35 +01:00
Adriaan de Groot
1e0ecbcc18 [contextualprocess] Warnings-- by dropping destructor 2018-03-06 16:24:12 +01:00
Adriaan de Groot
583cc06f7c [keyboard] Warnings-- for nullptr 2018-03-06 16:23:44 +01:00
Adriaan de Groot
51ccd6be4d [license] Warnings-- by making the one default case explicit 2018-03-06 16:23:29 +01:00
Adriaan de Groot
e2f6d160f8 [tracking] Reduce compile warnings
The fallthrough construction in a switch is a bit confusing
to read, and generates compile warnings too, so break it up.
2018-03-06 16:11:50 +01:00
Adriaan de Groot
defc7d4df8 [welcome] Compile warnings-- 2018-03-06 16:10:53 +01:00
Adriaan de Groot
a9e751bb31 [users] Compile warnings-- 2018-03-06 16:10:31 +01:00
Adriaan de Groot
a72bdfac52 Merge branch 'master' into requirements-checking 2018-03-06 14:57:17 +01:00
Adriaan de Groot
a0d6365209 Merge pull request #911 from AlmAck/locale_fix
Enable the correct language in the locale.gen list
2018-03-06 13:31:25 +01:00
Adriaan de Groot
903e77a908 [bootloader] Adjust documentation 2018-03-06 07:11:10 -05:00
AlmAck
58952b685c the first character must be a comment
to original code would match both lines:
zen_US.UTF-8 UTF-8
#en_US.UTF-8 UTF-8

introducing "#" should check only the commented lines
2018-03-03 14:30:08 +01:00
AlmAck
382c193afa Enable the correct language in the locale.gen list
the original code does not distinguish the document comments inside the locale.gen file from the real locale list. The language was then enabled from the header comments of the file instead of the correct value in the list.

The new code verify tha the complete locale string is just after the first character of the string, enablig only the correct value of the locale list.
An example:
#  en_US.UTF-8 UTF-8 --> document header, should not be enabled
#en_US.UTF-8 UTF-8 --> correct section to enable

Related to this request:
https://code.chakralinux.org/tools/calamares-chakra/issues/2
2018-03-03 12:56:03 +01:00
Calamares CI
561ba6bda8 i18n: [python] Automatic merge of Transifex translations 2018-03-01 15:42:25 +01:00
Calamares CI
1762d5e5d6 i18n: [dummypythonqt] Automatic merge of Transifex translations 2018-03-01 15:42:24 +01:00
Calamares CI
b07185315b i18n: [calamares] Automatic merge of Transifex translations 2018-03-01 15:42:24 +01: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
56ce22908e CMake: drop empty calamaresUi
- Empty variable and some unused wrappings doing nothing.
2018-02-21 10:01:23 -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
06536b6a66 [bootloader] Refactor method for safe efi label 2018-02-20 10:47:14 -05:00
Adriaan de Groot
de1710a9f3 [calamares] Refactor argument-handling
- Move parameter handling out of main
 - Give -D an argument (log level)
2018-02-20 07:47:06 -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
7f53e970fc [bootloader] Add secure-boot efiBootLoader
- add configuration option
 - check for sensible combinations of firmware, bootloader,
   and complain if it isn't.
2018-02-20 05:10:32 -05:00
Adriaan de Groot
247a0e3a56 [umount] Make a pretty_name() 2018-02-20 04:49:51 -05:00
Adriaan de Groot
060990bdd0 Python: use warning() method in modules 2018-02-20 04:42:56 -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
0c16bf1179 [finished] Remove useless debugging 2018-02-19 16:55:34 -05:00
Adriaan de Groot
092529da45 [partition] WIP: EFI partition search
- Add some logging (not even sure it compiles) because
   my openSUSE Krypton Secureboot-enabled VM says
   "no EFI system partitions found".
2018-02-19 10:25:00 -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
94014a52d4 Merge branch 'context-wildcard'
FIXES #906
2018-02-19 07:04:43 -05:00
Adriaan de Groot
713add5795 [contextualprocess] Add tests
- Tests showed issues with memory management, fixed in previous commits.
2018-02-19 07:04:21 -05:00
Adriaan de Groot
f0ec6c02a3 [shellprocess] ECM has already been searched-for 2018-02-19 07:03:43 -05:00
Adriaan de Groot
23a23a01f1 [contextualprocess] Cleanup destructors
- ValueCheck shouldn't own the pointer, since it's just a QPair
   and there are temporary copies made (e.g. in
   ContextualProcessBinding::append() ) and we get double-deletes.
 - Do deletion by hand; going full unique_ptr would be a bit overkill.
2018-02-19 06:58:42 -05:00
Adriaan de Groot
87e2f13dc2 [contextualprocess] Helper methods for counting checks 2018-02-19 06:42:13 -05:00
Adriaan de Groot
8664400ee9 [contextualprocess] Warn if (global) variable not found. 2018-02-19 06:34:52 -05:00
Adriaan de Groot
699b42a756 [contextualprocess] Add wildcard
- Re-build the structures for doing value-checks, is now more tree-like.
 - Document pointer ownership.
 - Introduce wildcard matches ("*")
 - Don't drop empty command-lists, since they can be used to avoid
   wildcard matches. (E.g. "in this case, do nothing, but don't
   fall through to wildcard").
2018-02-19 06:18:08 -05:00
Adriaan de Groot
2fa6361d63 [branding] Expand documentation
- Make CMakeLists a little more resilient
 - Format docs source
 - Add documentation for the examples
2018-02-19 05:10:17 -05:00
Calamares CI
7ecb39574e i18n: [calamares] Automatic merge of Transifex translations 2018-02-19 04:25:26 -05:00
Adriaan de Groot
f047b0b110 CMake: reduce duplicate ECM searches 2018-02-14 13:41:12 -05:00
Adriaan de Groot
04de4a0b02 [plasmalnf] Properly scale the image
- Since the image size isn't known a priori (due to sizing based on fonts),
   load the image and then resize in all code paths.
 - Use the right resizing flags.
 - .. and actually use the resulting scaled pixmap.

Thanks to Jeff Hodd.
2018-02-14 11:23:53 -05:00
Adriaan de Groot
af67ab2722 CMake: install missing module
- The CMake modules for Calamares expect to find CMakeColors
 - Also the translation support macro
 - Restore CalamaresUse.cmake
   - File was removed after 3.1 in db105079, but it is actually useful
     for out-of-tree modules. Restore it and massage into better shape.
   - Simplify by adding path to the search path (otherwise the individual
     macro files would also have to switch to including with a full path).
2018-02-14 08:55:41 -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
958aee1d41 [libcalamaresui] Switch text on 'next' button
- If the next step will be an install-step (e.g. hit the optional
   confirmation step) then change the text on the 'next' button to
   'install'.
 - Do a little refactoring to make that more pleasant.

FIXES #905
2018-02-13 08:11:11 -05:00
Adriaan de Groot
e9d9efce20 Merge branch 'sanitize-logging' 2018-02-13 12:00:17 +01:00
Adriaan de Groot
3ae126f589 [modules] Use cError() as well
- Switch KPMHelpers to using Calamares logging instead of qDebug()
2018-02-13 11:59:38 +01:00
Adriaan de Groot
99b9f4a501 i18n: missed some commit-message fixups in tooling 2018-02-13 11:53:53 +01:00
Calamares CI
854c3ba074 i18n: [python] Automatic merge of Transifex translations 2018-02-13 11:28:28 +01:00
Calamares CI
b33e3294e1 i18n: [dummypythonqt] Automatic merge of Transifex translations 2018-02-13 11:28:28 +01:00
Calamares CI
ab46e0005c i18n: [desktop] Automatic merge of Transifex translations 2018-02-13 11:28:24 +01:00
Calamares CI
c93ee67f88 i18n: [calamares] Automatic merge of Transifex translations 2018-02-13 11:28:18 +01:00
Adriaan de Groot
3315df5df1 [modules] Use new convenience logging methods across the board 2018-02-13 11:07:12 +01:00
Adriaan de Groot
3f77fb1d16 [modules] Use new convenience logging methods 2018-02-12 11:58:34 -05:00
Adriaan de Groot
60f440f72b [libcalamaresui] Use new convenience logging methods
- Remove a few confusing Q_FUNCINFO
2018-02-12 11:58:34 -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
6693f81375 [plasmalnf] Document configuration
- Improve documentation, explain necessity of theme: and image: keys
 - Scale screenshot up with font size (numbers picked arbitrarily)
2018-02-12 10:24:33 +01:00
Adriaan de Groot
874514a4e4 i18n: drop orphaned #undefs (thanks Kevin Kofler) 2018-02-08 10:33:40 +01:00
Adriaan de Groot
f49e0f6d92 i18n: update extracted English message files 2018-02-08 10:10:33 +01:00
Adriaan de Groot
719989c6d4 i18n: change commit messages generated by CI tc scripts 2018-02-08 10:10:16 +01:00
Adriaan de Groot
0b03d56a40 i18n: Massage code to help lupdate understand 2018-02-07 17:43:26 +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
Calamares CI
d3b5189d06 [python] Automatic merge of Transifex translations 2018-02-07 13:44:18 +01:00
Calamares CI
7c8a70c9a1 [dummypythonqt] Automatic merge of Transifex translations 2018-02-07 13:44:18 +01:00
Calamares CI
0e9a65ebc6 [core] Automatic merge of Transifex translations 2018-02-07 13:44:17 +01:00
Adriaan de Groot
3723355fb9 CMake: ignore config files (and tests) for skipped modules. 2018-02-07 13:31:50 +01:00
Adriaan de Groot
ad89dd7cc4 [interactiveterminal] Document config 2018-02-07 12:03:13 +01:00
Adriaan de Groot
051edb462f [packages] Add pisi package manager (based on some guesses) 2018-02-01 09:14:54 +01:00
Adriaan de Groot
533031b3ca [bootloader] print() does not log
- use the right logging method; print just vanishes.
2018-01-30 11:26:29 +01:00
Adriaan de Groot
f869a0f263 [bootloader] Log the EFI fallback action 2018-01-30 11:22:36 +01:00
Adriaan de Groot
78108c5cda [bootloader] Allow skipping the EFI fallback 2018-01-29 22:55:07 +01:00
Adriaan de Groot
aed904e3b4 Merge branch 'i897-timeout'
FIXES #897
2018-01-29 22:12:36 +01:00
Adriaan de Groot
9a7e766391 Merge branch 'i895-setroot-context'
FIXES #895
2018-01-29 22:12:23 +01:00
Adriaan de Groot
c2aca1f5c6 [shellprocess] Implement timeout setting
- For both shellprocess and contextualprocess, add a top-level key
   "timeout" that defaults to 10 seconds (which it already did).
 - Allows setting "global" timeout for command-lists, while still
   allowing individual timeouts per-command.
 - Setting timeout per global variable in contextualprocess is not
   supported; that would restrict the possible space of comparisions,
   while not supporting a global setting timeout seems reasonable enough.
   Use instances if you need wildly variable timeouts and don't want to
   set them individually.
2018-01-29 22:08:12 +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
72bac332be FIXUP document 2018-01-29 20:59:58 +01:00
Adriaan de Groot
4917b5c778 [shellprocess] Add test for future feature
- proposed syntax for command+timeout configuration, both for single-
   entry and for lists.
 - test it already
2018-01-29 17:40:29 +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
ea179eaef4 [contextualprocess] Document command lists
- Show that a command list is also allowed, not just a single
   command. Refer to shellprocess for more documentation.
2018-01-29 17:10:56 +01:00
Adriaan de Groot
6335084aa3 [libcalamares] Determine what's checked and what's required first.
- warn for required checks that are not carried out.
2018-01-29 15:29:25 +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
d6731efdfd [packages] fix typo in docs 2018-01-25 10:44:48 +01:00
Adriaan de Groot
1d6dca062c [users] Make state of 'reuse password for root' available in globals. 2018-01-24 16:19:41 +01:00
Adriaan de Groot
26dfd56f6d [libcalamares] Additional convenience function extracting int 2018-01-24 16:19:22 +01:00
Adriaan de Groot
188a434a10 [dummycpp] more verbose debug log 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
32b10f72e9 Merge branch 'i896-password-quality'
FIXES #896
2018-01-24 14:21:59 +01:00
Adriaan de Groot
b0fe7b0682 i18n: apply some more tricks to make lupdate / transifex happy 2018-01-24 14:13:50 +01:00
Adriaan de Groot
399256ba99 [users] Use explanation of password error from libpwquality
- add license file from libpwquality for provenance
 - translate pwquality_strerror() into the PWSettingsHolder convenience class
 - use Qt translations, since we'd otherwise also have to wire up, and
   wire in, libpwquality gettext translations.
2018-01-24 14:13:50 +01:00
Adriaan de Groot
ed58d540b3 [users] Implement password checking through libpwquality
- Use shared_ptr and a helper class to hide away raw pointer use
   from libpwquality. Provide a convenience C++ API.
 - Simplify configuration through helper class.
2018-01-24 14:13:50 +01:00
Adriaan de Groot
354cb79cb1 [users] sample config and stub function for libpwquality 2018-01-24 14:13:50 +01:00
Adriaan de Groot
27e1de6548 [users] Use libpwquality for additional password checks
- add cmake module to find libpwquality
 - move checking functions to their own file
 - some Transifex hackery
 - stub out the libpwquality check
2018-01-24 14:13:50 +01:00
Adriaan de Groot
eae52a3e65 CMake: build modules alphabetically 2018-01-24 14:13:13 +01:00
Adriaan de Groot
8c4a298f16 CMake: bump version in preparation for -RC3 2018-01-24 14:06:04 +01:00
Adriaan de Groot
9a9c6da6db i18n: try to trick Transifex into recognizing these strings 2018-01-23 12:11:34 +01:00
Calamares CI
b703151420 [python] Automatic merge of Transifex translations 2018-01-23 12:10:42 +01:00
Calamares CI
b9872a12bd [desktop] Automatic merge of Transifex translations 2018-01-23 12:10:41 +01:00
Calamares CI
e134dcd90d [core] Automatic merge of Transifex translations 2018-01-23 12:10:41 +01:00
Adriaan de Groot
9c9486bb78 [libcalamares] When ViewManager is destroyed, reset instance pointer 2018-01-17 09:17:40 -05:00
Adriaan de Groot
845986d48f [libcalamaresui] Mark virtual QObject destructors override 2018-01-17 09:17:40 -05: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
3b3e80b334 [branding] Add a totally different branding example
Use the samegame example from the Qt Quick demos as a branding "slideshow".
Instead of watching slides go by, you can play samegame! Click on
"new game" to start, and then click on groups of same-colored balls to make
them go away -- at least two same-colored balls must be touching.

Once the exec step is done, the game vanishes automatically.

This is an additional example for #841
2018-01-16 17:05:29 +01: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
4630008fa1 CMake: don't copy over modules with unsupported interfaces.
If Python isn't found, or PythonQt isn't found, there is no point
in copying over the modules into the build tree; this may even be
misleading because the files are there, but won't work and this
will be noticed at runtime only.

Instead, skip the modules and explain why.
2018-01-15 22:41:06 +01:00
Adriaan de Groot
66c03b4055 CMake: fix broken logic around Python 2018-01-15 22:27:56 +01:00
Calamares CI
83eaaf04aa [python] Automatic merge of Transifex translations 2018-01-15 10:55:42 -05:00
Calamares CI
8f1f397c95 [dummypythonqt] Automatic merge of Transifex translations 2018-01-15 10:55:42 -05:00
Calamares CI
5cf5a8e562 [desktop] Automatic merge of Transifex translations 2018-01-15 10:55:41 -05:00
Calamares CI
6aa25ecc14 [core] Automatic merge of Transifex translations 2018-01-15 10:55:41 -05:00
Adriaan de Groot
be45171638 [finished] Make the *restart now* checkbox more visible.
- Issue asks to make the setting more visible, which seems sensible to
   me. It **is** kind of hidden away for those distro's that make
   the setting visible (not everyone does).
 - While here, add a tooltip explaining what it does.

FIXES #893
2018-01-15 09:33:33 -05:00
Adriaan de Groot
15d4245074 Merge branch 'scripting' 2018-01-15 09:05:30 -05:00
Adriaan de Groot
d6cbda5ed7 [contextualprocess] Implement contextual processes
Allow running one or more commands based on the value of
a global configuration variable. This could, of course,
be done in a Python module with some custom code,
but for simple cases this is more straightforward
to configure through module instances.

Uses the CommandList developed for the ShellProcess
module to do the actual work.

FIXES #874
2018-01-15 08:57:34 -05: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
8571fd800e [shellprocess] Make explicit that an error code has been ignored, by logging it. 2018-01-15 05:26:20 -05:00
Adriaan de Groot
e48767eaa6 [shellprocess] Make CommandList chroot-aware
This is prep-work for moving commandlist to libcalamares, where
it can be re-used by more modules.
2018-01-15 04:57:41 -05:00
Adriaan de Groot
8bd40fdcd5 [shellprocess] Warn when there's no script 2018-01-15 04:20:37 -05:00
Adriaan de Groot
2bc394656d [welcome] Make libparted optional
- This turns off the space-available check in the welcome module;
   without libparted, always fail that check.
 - Allows running the welcome module on OS without libparted.
2018-01-13 21:41:07 +01:00
Adriaan de Groot
b0c4fbc1bb Clang: reduce warnings
- mark some things override
 - make conversion of 0 to flags explicit
2018-01-13 21:40:46 +01:00
Adriaan de Groot
fdb3fc1ef8 [shellprocess] Execute the command list 2018-01-12 10:38:40 -05:00
Adriaan de Groot
b7fb24837a [shellprocess] Improve CommandList
- Also allow a single string instead of a list
 - Add count() method to CommandList
 - Drop over-engineering, add more logging
 - Expand tests with some more examples
2018-01-12 10:38:01 -05:00
Adriaan de Groot
5f8fb655c4 [shellprocess] Stub of a shell process module.
This is basically dummyprocess, except with an expanded configuration
interface so you can run 1 or more shell commands in the live
or target system with a suitable configuration file and instance
of shellprocess in settings.conf.

It can replace downstream modules that implement their own
process modules with a command, by an instance of shellprocess.
2018-01-12 10:33:51 -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
6e01bb0fa4 CMake: factor out explanation of skipped modules.
Make a function out of explaining-skipped-modules, and call it
not only after collecting all the modules, but also after
the feature summary, so that it's quite clear which modules
are skipped.
2018-01-10 09:20:49 -05:00
Adriaan de Groot
58252fc16d [partition] Handle missing requirements by disabling the module 2018-01-10 09:05:15 -05:00
Adriaan de Groot
e3b7a2884b [partition] Relax check with UI-level warning message, too 2018-01-09 11:15:30 -05:00
Adriaan de Groot
637d6ad752 [partition] Find Esp partition with modern flags. 2018-01-09 11:12:13 -05:00
Adriaan de Groot
94b6c95c44 [partition] Introduce function for checking various flag-combinations for ESP boot. 2018-01-09 10:53:33 -05:00
Adriaan de Groot
3ff68bce98 [keyboard] Correct guessing for Arabic variants 2018-01-09 16:24:55 +01:00
Adriaan de Groot
05967311de [partition] Be defensive against no device-device-available.
Scenario is this: you have no suitable installation devices on
your system (everything is mounted, or HDD has died), click through
to partition page, where you have all the buttons available, but no
devices in the list. The following actions then cause a crash:

 - clicking "back"
 - clicking any button

Prevent that:
 - you can click "back", but if there is no device selected
   nothing happens to the device state (no nullptr deref,
   and no crash)
 - button code is now more resilient to this scenario
 - buttons are hidden until a device is available, so you
   can't even click on them to trigger the code.
2018-01-09 06:58:46 -05:00
Adriaan de Groot
a35a7b108f Merge pull request #883 from agaida/hack-unpackfs
[unpackfs] skip error check when rm of tmp folder fails
2018-01-09 10:53:52 +01:00
Adriaan de Groot
7249b41e3e [keyboard] Explain table format, add more edge cases 2018-01-08 11:02:20 -05:00
Adriaan de Groot
0d56b9b9c5 Merge branch 'master' into i689-kayboard-layout 2018-01-08 16:19:27 +01:00
Adriaan de Groot
28d61c406e [bootloader] Improve description of *efiBootloaderId* option 2018-01-08 16:14:28 +01:00
Adriaan de Groot
2a0a2a26bc [umount] Don't raise when copying log file fails. 2018-01-03 05:01:38 -05:00
Adriaan de Groot
6f7b5a0510 [umount] Move module documentation into config file, fix wording
FIXES #831
2018-01-03 04:33:20 -05:00
Adriaan de Groot
a7d7f3a83b [welcome] Make link to Calamares site https 2018-01-03 04:20:21 -05:00
Adriaan de Groot
308441ee3a Merge branch '3.1.x-stable' 2018-01-02 15:44:34 +01:00
Adriaan de Groot
b3f0932ff9 CMake: bump version number 2018-01-02 15:37:36 +01:00
Adriaan de Groot
41e6f0e06c [calamares] Allow WM close button
- remove hide-close-button hack
 - refactor code in viewmanager for confirming quit
 - hook up confirm-and-quit to WM close button
 - also works for alt-F4 and other quit methods
 - while here, update copyright year

FIXES #870
2018-01-02 14:58:08 +01:00
Adriaan de Groot
5593be125f [calamares] Reduce font-related debug output on startup. 2018-01-02 14:43:48 +01:00
Adriaan de Groot
1a42b8af41 Merge branch 'kpmcore-3.2'
- Bumps requireed KPMCore to 3.3 (in spite of the branch name)
 - Cleans up some dependencies

Thanks to Andrius Stikonas.
2018-01-02 13:25:11 +01:00
Philip
be650d7986 [initcpiocfg] search just for 'lvm2' in partition[fs] 2017-12-30 05:01:25 -05:00
Philip
5a83024698 [initcpiocfg] add 'lvm2' hook as needed 2017-12-30 05:00:59 -05:00
Andrius Štikonas
2027a5538e Fix propagation of new partition table to global storage. 2017-12-27 14:11:11 +00:00
Alf Gaida
784bbd3bc8 finally !must! never fail unhandled
but it does without help
2017-12-26 22:25:40 +01:00
Philip
1cffa9fafc [partition] Rename slots, to avoid recursion
- see also https://github.com/calamares/calamares/issues/880
- missed within 7ce52ecda7
2017-12-25 15:50:37 -05:00
Philip
8f32aad3fa [partition] Rename slots, to avoid recursion
- see also https://github.com/calamares/calamares/issues/880
- missed within 7ce52ecda7
2017-12-25 15:48:55 -05:00
Adriaan de Groot
e4bb6de0f7 Merge pull request #875 from stikonas/kpmcore-3.2
Convert FormatPartitionJob and CreatePartitionTableJob to KPMcore Operations.
2017-12-24 22:27:03 +01:00
Adriaan de Groot
03dd487fc2 Merge branch '3.1.x-stable' 2017-12-24 16:23:35 -05:00
Adriaan de Groot
661789825a [plasmalnf] Make the module optional
- Check for presence of KDE Frameworks for Plasma & Package
 - Explain when module is skipped
2017-12-24 16:15:04 -05:00
Adriaan de Groot
2e1f389997 CMake: explain which modules are skipped
Modules may be skipped for different reasons: SKIP_MODULES
is the traditional approach to suppress some, but other modules
may have unmet build requirements (e.g. Plasma Look-and-Feel,
or the Partitioning module) and should be able to opt-out
of being built. For all those skipped, log it explicitly after
all the modules have been examined.

Only CMake-based (e.g. C++) modules support opting-out in this way.
2017-12-24 16:14:58 -05:00
Adriaan de Groot
dc255e161e [partition] Rename slots, to avoid recursion 2017-12-24 03:34:34 -05:00
Andrius Štikonas
806b84973a Convert CreatePartitionTableJob to KPMcore operation. 2017-12-22 15:25:39 +00:00
Andrius Štikonas
1b3ce39ffb Convert FormatPartitionJob to KPMcore's CreateFileSystemOperation. 2017-12-22 15:25:39 +00:00
Andrius Štikonas
638117efa0 Cleanup unnecessary kpmcore includes. 2017-12-22 15:25:39 +00:00
Adriaan de Groot
7ce52ecda7 [partition] Rename slots, to avoid recursion 2017-12-22 16:20:35 +01:00
Adriaan de Groot
980b39961d [calamares] Unset application name
Unset the application name so that you don't get -- Calamares
in the window title.

Reported by: sitter
FIXES #877
2017-12-22 06:47:12 -05:00
Adriaan de Groot
f8a53f9646 [libcalamares] Refactor explanation of process-job errors 2017-12-21 16:30:13 +01:00
Adriaan de Groot
c6ab4195c7 [contextualprocess] Stub of a contextual-process job
This is meant to run one or more jobs based on specific global
configuration values; if could also be done by a Python
module with just some if's, but this one can be used with
just the config file and covers a bunch of use-cases.
2017-12-20 09:12:27 -05:00
Adriaan de Groot
762ad54344 Documentation: change http links to GitHub to https 2017-12-20 08:39:09 -05:00
Adriaan de Groot
c582ff0d6b Merge branch '3.1.x-stable' 2017-12-20 08:13:55 -05:00
Adriaan de Groot
c2ee0c6ed4 CMake: bump version number 2017-12-20 04:22:06 -05:00
Adriaan de Groot
1b35ce34c5 Documentation: explain dummyprocess
The dummyprocess module can be used to run a single
shell command; it can be used effectively with instances
to run one or more commands during installation.
2017-12-20 04:21:30 -05:00
Adriaan de Groot
d4acbb4374 Documentation: reformat settings.conf
- format for 80 columns
 - blank line between paragraphs
 - remove some outdated things
 - add more explanation for instances
2017-12-20 04:21:29 -05:00
Adriaan de Groot
d42210eb93 Merge branch '3.1-pinebook' into 3.1.x-stable 2017-12-19 11:13:21 -05:00
Adriaan de Groot
d5b46dfb86 [plasmalnf] Improve theme-listing handling
- if key is missing or badly typed, enable all (explicitly)
 - document settings and code
2017-12-19 12:51:56 +01:00
Adriaan de Groot
f2aeecf546 [plasmalnf] Improve screenshot view
- make screenies smaller
 - use view-preview to indicate no-screenshot-specified
2017-12-19 12:28:42 +01:00
Adriaan de Groot
10e71bab30 [plasmalnf] Add Breeze 'view-preview' icon for missing screenshots 2017-12-19 12:21:05 +01:00
Adriaan de Groot
e73d54767d [plasmalnf] Expand explanation, drop CSS 2017-12-18 07:57:19 -05:00
Adriaan de Groot
cf39dddbf3 [plasmalnf] Prevent duplicate widgets
- Only create widgets for themes once
 - Update visible texts as needed
2017-12-18 07:25:59 -05:00
Adriaan de Groot
3f258d4bd9 [plasmalnf] Fallback for image-not-found
- calculate a hash of the filename, and use that
 - makes it possible to distinguish different screenshots
   even when the image file is missing / badly configured
 - most colors will be dreadful
2017-12-18 07:07:47 -05:00
Adriaan de Groot
cc15dd9ec7 Merge branch 'master' into kpmcore-3.2
- Pull in Master, merge README, to simplify merging this
   branch into master (soon-ish, once kpmcore 3.3 becomes available
   in builders)
2017-12-15 07:18:05 -05:00
Adriaan de Groot
12deb67ace Merge pull request #828 from stikonas/lvm2
Add support for performing operations on LVM logical volumes.
2017-12-15 07:13:24 -05:00
Andrius Štikonas
a2e3af2b3d Require KPMcore 3.3 2017-12-15 11:38:38 +00:00
Adriaan de Groot
2db485bb33 [plasmalnf] Improve layout of theme widget 2017-12-14 17:04:16 -05:00
Adriaan de Groot
244919d6fe [plasmalnf] Add description to theme widget 2017-12-14 17:01:59 -05:00
Adriaan de Groot
55ed2ba4c0 [partition] Introduce convenience translation for progress. 2017-12-14 16:11:46 -05:00
Adriaan de Groot
5c4286eebf [partition] Switch to convenience function for MiB 2017-12-14 16:11:46 -05:00
Adriaan de Groot
38688bab47 [partition] code style (minor followup to #872) 2017-12-14 15:55:23 -05:00
Adriaan de Groot
0729bdd0be Merge pull request #872 from stikonas/3.1.x-stable
Use KPMcore SetPartFlags operation.
2017-12-14 15:53:35 -05:00
Adriaan de Groot
8b3f71af40 [plasmalnf] Widget for showing theme info
- Radio button + group for button action
 - Use a (still very primitive) widget for displaying theme information
2017-12-13 11:04:34 -05:00
Adriaan de Groot
755c0cba18 [plasmalnf] Prep-work for UI changes 2017-12-13 09:55:54 -05:00
Adriaan de Groot
11fc3e0507 [plasmalnf] minor documentation
- Code documentation
 - Add another broken example theme, as test for winnowing
2017-12-13 09:53:41 -05:00
Adriaan de Groot
afbdcc3782 [hwclock] Be more lenient.
Patch by Gabriel C. (@abucodonosor).

 - use libcalamares functions
 - no need to copy /etc/adjtime over we can run hwclock in chroot
   since we have /proc , /sys , /dev , /run/* already bind mounted.
 - added RTC and ISA probing methode ( see issue #873)
    - we probe default from /dev/rtc* ,
    - fall back to ISA
    - still doesn't work we just print a BIOS/Kernel BUG message and continue
- NOTE: issue #873 is about broken ArchLinux kernel config but there
  are HP boxes with real RTC problems no matter what kernel config
  is used so let us be nice and don't error out..

FIXES #873
2017-12-13 06:27:04 -05:00
Adriaan de Groot
29e532a790 [partition] Insert annoying 3-sec delay
This is intended for testing -- it helps debug where a slow
requirement check blocks the UI.
2017-12-12 07:17:16 -05:00
Adriaan de Groot
748ccf94e9 [plasmalnf] Enrich config file
- Extend the config file format to allow theme, image pairs
   as well as just naming the themes.
 - Reduce verbosity when querying Plasma themes.
2017-12-12 06:59:25 -05:00
Adriaan de Groot
0116465303 CMake: bump version 2017-12-07 08:42:49 -05:00
Andrius Štikonas
139f5a9e86 Use KPMcore SetPartFlags operation. 2017-12-06 14:51:54 +00:00
Adriaan de Groot
6bd8c67ca9 [plasmalnf] Allow filtering the selectable lnf themes
- empty list allows all of them
 - always suppress hidden, invalid themes, and those named
2017-12-04 12:27:30 -05:00
Adriaan de Groot
ad69eda337 [plasmalnf] Complain again if poorly configured 2017-12-04 11:54:33 -05:00
Adriaan de Groot
98b9f67e39 [plasmalnf] Complain more loudly (and more often) when badly configured 2017-12-04 11:51:16 -05:00
Adriaan de Groot
ee979d79ee Merge branch '3.1-pinebook' 2017-12-04 11:45:01 -05:00
Adriaan de Groot
02dfe51d55 [welcome] Improve error reporting from requirements checker 2017-12-04 10:47:26 -05:00
Adriaan de Groot
e628ddfdbf [plasmalnf] Try to get back to the live user before changing themes 2017-12-04 09:37:34 -05:00
Adriaan de Groot
b10b19e9ee [plasmalnf] C++ style and reduce includes 2017-12-04 09:11:10 -05:00
Adriaan de Groot
eb92755b0a [plasmalnf] Enable translations
- Move tool-running to the view-step
 - Enable translations by showing name instead of theme-id
 - More verbose logging
2017-12-04 06:40:13 -05:00
Adriaan de Groot
71966b5330 [plasmalnf] Wait longer for the tool to finish 2017-12-03 16:09:34 -05:00
Adriaan de Groot
1de2e94fd0 [plasmalnf] Simplify code, reduce copies of lnftool setting 2017-12-03 15:41:52 -05:00
Adriaan de Groot
fe8ff3ab05 [plasmalnf] Simplify code, remove redundant implementations 2017-12-03 15:34:06 -05:00
Adriaan de Groot
4e2e55a935 [plasmalnf] Needs to run as target user in all cases 2017-12-03 15:24:39 -05:00
Adriaan de Groot
e005c2d02d Merge branch '3.1-pinebook'
- Also document the config file some more.
2017-12-03 15:17:03 -05:00
Adriaan de Groot
ac92d4911d Compatibility: revert conveniences from master 2017-12-03 12:58:54 -05:00
Adriaan de Groot
3a94f02547 CMake: look for ECM at top-level, add to search path if found. 2017-12-03 12:48:23 -05:00
Adriaan de Groot
cddc4699aa [plasmalnf] Import Plasma Look-and-Feel module independently 2017-12-03 12:47:41 -05:00
Adriaan de Groot
1f49f764a6 [libcalamares] Allow retrieving chroot mode from system (as well as settings) 2017-12-03 12:46:33 -05:00
Adriaan de Groot
388399f256 [plasmalnf] Fix command-line options, run in target user environment 2017-12-03 12:42:44 -05:00
Adriaan de Groot
7e5970324f [plasmalnf] Reset layout along with theme 2017-12-03 11:05:14 -05:00
Adriaan de Groot
81128923e6 [plasmalnf] Disable applying in the target (user|system) for now. 2017-12-03 10:56:39 -05:00
Adriaan de Groot
3bdfa63a79 [plasmalnf] Preserve environment, so that DISPLAY gets to the tool 2017-12-03 10:38:32 -05:00
Adriaan de Groot
d3ef6b07d5 [plasmalnf] Run the lnftool in the target (user|system) 2017-12-03 10:22:46 -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
b3d299bbf1 [plasmalnf] Replace hard-coded path with configurable one 2017-12-03 09:51:13 -05:00
Adriaan de Groot
62623a2376 [plasmalnf] Make an actual job of setting the theme
- Job doesn't actually run lookandfeeltool in the target system yet.
2017-12-03 09:26:59 -05:00
Adriaan de Groot
2d3defcca3 [plasmalnf] Hammer in theme-changing
- Tool is currently a hard-coded path.
2017-12-03 09:18:18 -05:00
Adriaan de Groot
8c65ee5481 [plasmalnf] Get available LNF
- Implement various ways of getting the LNF; the process-based one
   uses a recent CLI-tool from the Plasma developers.
 - Fill the UI with (meaningless) LNF package IDs.
2017-12-03 08:48:41 -05:00
Adriaan de Groot
98d758b4be [plasmalnf] Hammer out the most primitive UI 2017-12-03 07:08:54 -05:00
Adriaan de Groot
e0634a4056 Merge pull request #869 from V3n3RiX/master
new module : openrcdmcryptcfg - auto unlock encrypted partitions with OpenRC
2017-12-03 04:54:44 -05:00
Adriaan de Groot
839c039168 Merge remote-tracking branch 'origin/plasma-lnf' 2017-12-03 04:43:55 -05:00
Adriaan de Groot
298ff0cbeb Merge branch '3.1.x-stable' 2017-12-03 04:43:23 -05:00
V3n3RiX
7cecfceaa7 add openrcdmcryptcfg module 2017-12-02 19:47:34 +00:00
Adriaan de Groot
4566e53d01 [partition] Delay requirements checking until pmcore is initialized 2017-12-02 12:11:56 -05:00
Adriaan de Groot
ba21a221df [partition] C++ style 2017-12-02 11:43:20 -05:00
Adriaan de Groot
16fbe4dc8c [partition] Sample of requirement checking
- There should be at least device to select, overwise we can't continue.
   The check currently **always** fails, so it blocks installation.
2017-12-02 11:42:56 -05:00
Adriaan de Groot
c8e42e6909 [welcome] Implement requirements checking at module level.
- Hook up the requirements checker (which only checks) to the module-and-viewstep
   method called to do the checking.
2017-12-02 11:30:26 -05:00
Adriaan de Groot
bd27dda474 [welcome] Restructure requirements checking
- Move widget behavior into its own container / widget class
 - Change the RequirementsChecker class to just check the
   requirements, returning a results list
 - Connect from the module manager to the results widget.
2017-12-02 11:30:26 -05:00
Adriaan de Groot
b6fed964ce [libcalamaresui] Defer requirements checking of ViewModules to their ViewSteps 2017-12-02 11:30:26 -05:00
Adriaan de Groot
27b921bde1 [libcalamaresui] Move requirements information out of welcome module.
- Move type and rename it; put in Calamares namespace
 - Emit signals from the viewmanager as results come in
 - Remove state changing from welcome view step based on its internal
   requirements checking (for now this breaks progressing past the
   welcome page)
 - Log checking of the requirements
2017-12-02 10:59:33 -05:00
Adriaan de Groot
24e04645b6 [libcalamaresui] Stub requirements checking.
Introduce a method checkRequirements() into the module system so that
individual modules can do their own checking (as opposed to stuffing
it all into the welcome module).
2017-12-02 09:26:22 -05:00
Adriaan de Groot
84c28e9efa CMake: explain better why PythonQt isn't found 2017-12-02 07:00:43 -05:00
Adriaan de Groot
c8a6ebe404 Testing: expand the testmodule script.
Do a better job determining what the arguments could mean; this supports
lazy devlopers who don't want to pass in full paths to all kinds of things.
Simple invocation can now be:
    testmodule.py <modulename> - +
to read <modulename>.conf from src/modules/<modulename>/
2017-12-02 06:43:12 -05:00
Adriaan de Groot
65a236cd60 [packages] Fix previous.
This, kids, is why you don't switch writing C++ and Python too often.
The C++ code isn't a syntax error in Python, although this would fail
at runtime.
2017-12-02 06:14:17 -05:00
Adriaan de Groot
3e3cd08ff3 [packages] Fix previous (false vs False) 2017-12-02 05:20:13 -05:00
Adriaan de Groot
150007c138 [packages] Feature: skip if no internet.
Update documentation, add a new key *skip_if_no_internet* to support
systems that **recommend** having an internet connection (but don't
require it), and which also use the packages module. This prevents
a long delay while the package manager tries to access the internet
and times out (repeatedly).

Existing configurations are unchanged.
2017-12-02 05:17:15 -05:00
Adriaan de Groot
7b145c2a36 [packages] Improve message when no packages are processed at all. 2017-12-01 16:48:02 -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
fe61925f31 [packages] Update module documentation 2017-12-01 13:46:59 -05:00
Adriaan de Groot
d63f8f6922 [welcome] Document welcome.conf
- explain requirements keys
 - document show-buttons keys
2017-11-29 09:46:19 -05:00
Adriaan de Groot
5a07f6ef8a Merge branch 'master' into requirements-checking 2017-11-29 09:02:07 -05:00
Adriaan de Groot
0d413ba750 Merge branch '3.1.x-stable' 2017-11-29 08:58:32 -05:00
Adriaan de Groot
63af8c1b92 Drop -rc status 2017-11-29 08:50:22 -05:00
Adriaan de Groot
12369abaa4 [libcalamares] Refactor to reduce compiler warnings 2017-11-29 08:49:44 -05:00
Adriaan de Groot
c4398ec86b [libcalamaresui] Swap breeze icons
Instead of using state-foo icons, use the corresponding emblems because
they are larger and don't have the 'cloud state' background.
Keep the existing names because I don't feel like churning
more of the codebase than necessary.

These new icons are from KDE Neon breeze-icon-theme 5.40, e.g.
breeze-icon-theme: /usr/share/icons/breeze/emblems/8/emblem-error.svg
2017-11-29 08:34:18 -05:00
Adriaan de Groot
53036be418 Merge branch 'i865-error-reporting' 2017-11-28 11:48:25 -05:00
Adriaan de Groot
ae4508011c [tracking] swap out PNG for SVG icons 2017-11-28 11:47:51 -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
a25445a58c i18n: update (English) source translation files 2017-11-28 06:47:33 -05:00
Adriaan de Groot
d06e29b1c5 [interactiveterminal] refactor again to keep Transifex happy 2017-11-28 06:45:56 -05:00
Adriaan de Groot
790073cddc i18n: enable Albanian (sq) 2017-11-28 06:04:47 -05:00
Calamares CI
561a91bd86 [python] Automatic merge of Transifex translations 2017-11-28 06:00:10 -05:00
Calamares CI
cd2ae5ab0e [dummypythonqt] Automatic merge of Transifex translations 2017-11-28 06:00:08 -05:00
Calamares CI
d89cb8ea91 [desktop] Automatic merge of Transifex translations 2017-11-28 06:00:07 -05:00
Calamares CI
9cbd9fe5f1 [core] Automatic merge of Transifex translations 2017-11-28 06:00:07 -05:00
Adriaan de Groot
3cb6fd839b [interactiveterminal] Refactor error message
- refactor error message
 - ifx capitalisation problem
 - remove editorializing in comments

FIXES #866
2017-11-28 05:05:28 -05:00
Adriaan de Groot
49fda9da28 CMake: bump version to 3.2.0rc1 (not that there's an RC pending or anything) 2017-11-24 09:29:42 -05:00
Adriaan de Groot
3ae65d5771 Merge branch '3.1.x-stable' 2017-11-24 09:28:35 -05:00
Adriaan de Groot
239a8eb3a8 GitHub: update issue template to provide hint for installation log 2017-11-24 09:25:47 -05:00
Adriaan de Groot
a37a4a8c55 [tracking] Module should be disabled by default 2017-11-24 09:02:56 -05:00
Adriaan de Groot
93ab6432c4 [netinstall] Special-case the root node.
Root is always selected, can't be unselected, and has its own explicit
constructor and name. This resolves issue reported where unchecking
all *visible* groups caused the root to be unchecked, after which
hidden-but-still-selected subgroups were not installed.

Reported by crazy@
2017-11-24 07:52:52 -05:00
Adriaan de Groot
e29cd7ab54 Merge branch 'usertracking'
Adds a "tracking" module which allows configuring phone-home,
machine and user tracking. Additional machine-tracking types
could be defined depending on distro needs.

This is not the final version -- there is still polishing to
do on the icons, perhaps layout.

Tested in KDE Neon devunstable by keeping an existing partition
which had an older Neon running. New machine-id is generated
and sed'ded into place.

FIXES #783
2017-11-23 17:38:30 +01:00
Adriaan de Groot
858372d93e [tracking] Remove derp. 2017-11-23 17:38:06 +01:00
Adriaan de Groot
992d5b4e9d CMake: always automoc generated files 2017-11-23 17:32:29 +01:00
Adriaan de Groot
0812f035d0 CMake: pick up KDE D8951 to reduce CMake automoc warnings 2017-11-23 13:28:21 +01:00
Adriaan de Groot
8aa94ef01e [branding] Fix up example URLs 2017-11-23 13:15:55 +01:00
Adriaan de Groot
8e79ad1a14 [tracking] Implement Neon machine tracking configuration 2017-11-22 08:04:37 -05:00
Adriaan de Groot
6cb88c86f1 [tracking] Improve phrasing 2017-11-22 07:49:06 -05:00
Adriaan de Groot
22f5a121cb [tracking] stub implementation of neon machine feedback configuration 2017-11-22 07:39:52 -05:00
Adriaan de Groot
4a96e83203 [tracking] Adjust wording, drop page title 2017-11-22 07:21:58 -05:00
Adriaan de Groot
9a3ba75c2c [tracking] Switch icons to sensible names 2017-11-22 13:04:18 +01:00
Adriaan de Groot
cb8f698ce0 [tracking] Switch to VDG icons (version 1) 2017-11-22 13:01:41 +01:00
Adriaan de Groot
93052311aa [tracking] Switch UI to use radio buttons
Following KDE Pholio M116, switch to using a radio button; instead
of 4 individually toggle-able settings, use a "level" indicator
to select none, install, machine, user .. each of which implies
the previous levels. Each level is individually enable-able from
the distro side.
2017-11-22 06:52:14 -05:00
Adriaan de Groot
188050a77c Merge branch 'master' into usertracking 2017-11-21 07:29:49 -05:00
bill-auger
452cefd482 use orphaned Branding::ProductLogo as sidebar image 2017-11-21 07:25:39 -05:00
Adriaan de Groot
aa0fa37492 [netinstall] Hidden groups follow selectedness of parents.
If a subgroup is hidden, then it should be considered
selected if its parent is selected or partially-selected.
If the parent group is totally unselected, then the hidden
subgroup shouldn't be installed either. This allows putting
required-packages into a group, without cluttering the
interface.

FIXES #864
2017-11-21 06:16:30 -05:00
Adriaan de Groot
71e80f680e [netinstall] Only update selectedness of parents with children.
While walking up the tree, only switch the selectedness states
of parents with children. This avoids the case where a parent
has a first subgroup that is hidden -- in which case the
parent ends up with no children, and is unselected even though
it is marked as selected in the config file.

FIXES #864
2017-11-21 05:36:38 -05:00
Adriaan de Groot
7e2e2cabfe CMake: bump version to 3.1.9rc1 (no functional changes yet) 2017-11-21 04:25:32 -05:00
Adriaan de Groot
495f94dde8 [calamares] Silence QBasicTimer warning message.
Relying on auto-qobject deletion on shutdown generates a warning message
    17:23:44 [0]: QBasicTimer::start: QBasicTimer can only be used
                  with threads started with QThread
which is annoying. Since we're in shutdown, just skip deletion
entirely, and leave the model unparented.

FIXES #472
2017-11-21 04:22:28 -05:00
Adriaan de Groot
185f46e2c4 [calamares] reduce compile warnings 2017-11-20 12:00:06 -05:00
Adriaan de Groot
3e4b1a7c46 [calamares] Avoid possible uninit-pointer or memory leak 2017-11-20 11:59:15 -05:00
Adriaan de Groot
0c0f0fc8b4 [requirements] Check window minimum size, not preferred size.
FIXES #863
2017-11-20 09:14:35 -05:00
Adriaan de Groot
1d18ea264d [libcalamaresui] Switch to using three state icons for requirements 2017-11-20 09:04:26 -05:00
Adriaan de Groot
65cf28b716 [libcalamaresui] Provide access to the breeze SVGs 2017-11-20 09:04:26 -05:00
Adriaan de Groot
fbe1976c11 [libcalamaresui] Add breeze SVGs under LGPLv3 2017-11-20 08:59:10 -05:00
Adriaan de Groot
7d916f649d [requirements] Document code 2017-11-20 08:18:39 -05:00
Adriaan de Groot
848d532a58 CMake: drop -rc status 2017-11-14 10:18:58 -05:00
Adriaan de Groot
4f077d3b9a Documentation: update README dependencies, links 2017-11-14 09:31:09 -05:00
Adriaan de Groot
c51e8268d1 Merge branch 'rajudev-master' 2017-11-14 05:27:54 -05:00
Adriaan de Groot
cc83e40fb7 Documentation: polish plymouth docs 2017-11-14 05:27:37 -05:00
Adriaan de Groot
b3b5240e66 Merge branch 'master' of https://github.com/rajudev/calamares into rajudev-master 2017-11-14 05:17:47 -05:00
Adriaan de Groot
dddc1191a1 [kcrash] Point to a better submission URL 2017-11-14 05:17:04 -05:00
Adriaan de Groot
579b1061e6 [kcrash] Configure more robustly 2017-11-13 11:39:00 -05:00
Adriaan de Groot
4d7f70a28f [kcrash] Remove duplicate 'Tools' tab 2017-11-13 07:35:37 -05:00
Adriaan de Groot
78e601edb4 [kcrash] Simplify search for KF5::Crash 2017-11-13 07:33:24 -05:00
Adriaan de Groot
e8e284f724 Merge remote-tracking branch 'origin/kcrash' 2017-11-13 13:18:53 +01:00
Adriaan de Groot
853197a0ac Merge pull request #862 from abucodonosor/netinstall-debug
[netinstall]: some more debug
2017-11-13 05:26:38 -05:00
Adriaan de Groot
f4368d05f9 [tracking] Fix install-tracking HTTP GET 2017-11-13 05:13:19 -05:00
Chantara Tith
2a785bdf89 Disable newPartitionTableButton for LVM device. 2017-11-11 21:47:30 +00:00
Andrius Štikonas
652ffaedd5 Remove unnecessary kpmcore includes. 2017-11-11 21:34:10 +00:00
Andrius Štikonas
1620f6a668 Merge branch 'master' into lvm2 2017-11-11 21:30:49 +00:00
Adriaan de Groot
9a43b8a0e8 [tracking] hook the install-tracking job into the build.
(it doesn't work yet, though .. multi-threading issues).
2017-11-09 05:45:25 -05:00
Adriaan de Groot
a0b1410a50 [tracking] Do the install-tracking ping with QNAM 2017-11-09 05:19:24 -05:00
Adriaan de Groot
ff8af7d5e2 [tracking] Switch to typedef for job list 2017-11-08 09:59:40 -05:00
Adriaan de Groot
fbfb103b5f [tracking] Fix deduced type
'auto' doesn't pick up the reference-type returned from tracking(),
and 'auto&' reads funny to me, so make the type explicit.
2017-11-08 09:51:46 -05:00
Adriaan de Groot
7311204572 [tracking] Step 1 of getting the install-tracking URL
- document substitutions
 - build URL when creating jobs
2017-11-08 09:51:46 -05:00
Adriaan de Groot
a0e8f76348 [tracking] Enable policy websites
Each kind of tracking has an associated webpage / URL describing
the policy for that tracking. The Calamares User Guide has some
generic information. When the user clicks on the Help (?) button
in a tracking-option block, go to that URL.
2017-11-08 09:51:46 -05: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
c7120277ca [tracking] Polish UI some more
- Enable translations, substitute ShortProductName into string,
 - Simplify code for enabling tracking option blocks,
 - Set checkboxes based on configuration,
 - Read checkboxes when leaving page,
 - Don't stretch the tracking option blocks.
2017-11-08 05:01:26 -05:00
Adriaan de Groot
20a2465cc7 [tracking] Polish UI a bit
- add icons for graphical display of actions
 - extend description of tracking options
 - add debug logging
 - enable next button
 - show/hide tracking options based on configuration
2017-11-08 04:03:38 -05:00
Adriaan de Groot
806799ece4 [tracking] Fix configuration file.
- The sample configuration file didn't use sub-maps, but list items.
2017-11-07 07:49:44 -05:00
Adriaan de Groot
28315db43b Merge branch 'master' into usertracking 2017-11-07 07:49:13 -05:00
Gabriel Craciunescu
d1c10837d1 [netinstall]: some more debug
- change the debug output when the errors occurs so
  we have a clue what may go wrong
2017-11-06 19:46:26 +01:00
Adriaan de Groot
ac14e8a38c Documentation: update AUTHORS 2017-11-06 07:02:34 -05:00
Adriaan de Groot
b5f2f22a78 Documentation: update HACKING 2017-11-06 06:58:05 -05:00
Adriaan de Groot
fda4b4e3c2 CMake: improve searching for PythonQt
- don't log when libs not found
 - log that it's the Python libraries version (not Python itself)
 - fix RE that was getting the wrong results for maj.min
2017-11-06 06:12:26 -05:00
Adriaan de Groot
62c03d6857 Merge branch '3.1.x-stable' 2017-11-06 05:43:29 -05:00
Adriaan de Groot
51c74c6abb [netinstall] Convenience typedefs 2017-11-06 05:42:13 -05:00
Adriaan de Groot
91e949f8fc [netinstall] Apply Calamares C++ style 2017-11-06 05:34:57 -05:00
Adriaan de Groot
f424af36d3 [netinstall] Avoid crash when do groups are available
- m_groups is only set to a non-nullptr value when data is received
   and fully processed,
 - avoid nullptr dereference when paging *back* from a netinstall
   page that hasn't loaded groups data.

FIXES #859
2017-11-06 05:33:01 -05:00
Adriaan de Groot
ee0b3b85dc [netinstall] Improve 'next' button handling
- Document netinstall.conf a little,
 - Add setting *required* which influences whether next is enabled or not
   in case of missing or corrupt data,
 - Enable *next* button only once some (any!) data is received.

This can be used to disallow stepping past the netinstall step when
there is no data (e.g. internet has failed between the welcome page
and the netinstall page).
2017-11-06 05:33:01 -05:00
Adriaan de Groot
970b6fcb19 CMake: find PythonQt better
- replace weird distinction between 3.0 and 3.2 by searching once
 - prefer 3.2
 - also look for suffixed versions (PythonXY) besides the Python3 suffix

FIXES #857
2017-11-03 12:48:16 -04: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
eed207ae2e CMake: ensure configuration-test can #include yamlcpp headers 2017-11-02 12:38:36 +01:00
rajudev
b3b3777b6e Merge branch 'master' of github.com:calamares/calamares 2017-11-01 20:41:44 +05:30
Adriaan de Groot
0d4bd59818 [tracking] Document the configuration file format
- switch to 'enabled' and 'default' settings, independently.
 - document user-tracking as unimplemented.
2017-11-01 09:10:25 -04:00
Adriaan de Groot
30d08f3312 Merge pull request #852 from abucodonosor/docs
locale.conf: explain what all the settings are about
2017-11-01 08:55:32 -04:00
Adriaan de Groot
a90f15081c Merge branch 'master' into usertracking 2017-11-01 06:58:10 -04:00
Adriaan de Groot
35f5612ec1 [locale] Fix GeoIP (reported by demm, crazy)
- data has already been read, don't try to read more from the QNM reply
 - regression introduced in 7e25909e
2017-11-01 11:07:18 +01:00
Adriaan de Groot
41e8fdd362 [plasmalnf] Search for LNF themes like the KCM does 2017-11-01 05:50:04 -04:00
Adriaan de Groot
6c873f0b70 [plasmalnf] Initial stub module 2017-11-01 05:50:04 -04:00
Adriaan de Groot
105e06798e CMake: look for ECM at top-level, add to search path if found. 2017-11-01 05:50:04 -04:00
Adriaan de Groot
1456375a12 Merge pull request #854 from abucodonosor/modules
Document users.conf
2017-11-01 05:26:13 -04:00
Adriaan de Groot
e94543eb6f Merge pull request #855 from bill-auger/master
add qt crash handler and kate temp files to gitignore
2017-11-01 05:23:34 -04:00
bill-auger
d2c91dedf3 add kate temp files to gitignore 2017-11-01 01:29:21 -04:00
Gabriel Craciunescu
477a9855f6 users.conf: made requested changes 2017-10-31 13:09:34 +01:00
Adriaan de Groot
b303acf12a Merge branch '3.1.x-stable'
- KPMCore code moved
 - Small fixes
2017-10-31 06:44:14 -04:00
Adriaan de Groot
370279cde2 Merge pull request #853 from abucodonosor/debug
RequirementsChecker.cpp: rearrange cDebug() output
2017-10-31 05:18:58 -04:00
Gabriel Craciunescu
599f9d48ae users.conf: document some things 2017-10-30 23:20:43 +01:00
Gabriel Craciunescu
3749beb4e5 modules/users: warn when fallback groups is used
- Warn here since it may not be what the Distributor want.
  Having wrong groups may result in broken permissions for
  created user.
- explain what defaultGroups is for in users.conf
2017-10-30 20:44:51 +01:00
Gabriel Craciunescu
71da7b3a48 RequirementsChecker.cpp: rearrange cDebug() output 2017-10-30 20:11:11 +01:00
Gabriel Craciunescu
fc53438be9 locale.conf: fix localeGenPath comment 2017-10-30 19:21:51 +01:00
Gabriel Craciunescu
2e80ab98d7 locale.conf: explain what all the settings are about 2017-10-30 18:49:03 +01:00
Adriaan de Groot
4ea8b2e6ef CMake: report on the example-distro feature correctly 2017-10-30 11:43:37 -04:00
Adriaan de Groot
5474dc6d2b [partition] allow KPMcore 3.0.2 (with warning) 2017-10-30 11:43:37 -04:00
Adriaan de Groot
a179c6c765 Merge pull request #846 from stikonas/3.1.x-stable
Use KPMcore Resize Operation.
2017-10-30 11:22:53 -04:00
Adriaan de Groot
12f4104fe1 Merge pull request #850 from abucodonosor/3.1.x-stable
NetInstallPage.cpp: fix displaying for Name and Description
2017-10-30 11:18:52 -04:00
Adriaan de Groot
e09f179d76 Coverity: repair previous commit 2017-10-30 08:43:09 -04:00
Adriaan de Groot
a138eb501c Coverity: fix issues reported in QJsonModel
- Also reported upstream, in the MIT-licensed version of same.

This is a re-hash of b348a45834,
adding memory-leak prevention when load() is called.
2017-10-30 08:20:08 -04:00
Philip
b15d970845 [bootloader] fix regression introduced with d179a9e
- see also #840
2017-10-28 03:41:29 -04:00
Gabriel Craciunescu
d2ea83a0b2 NetInstallPage.cpp: fix displaying for Name and Description
- fixes 1d7ad9e045 which sets
  both header's labels to 0 so 'Name' was always overridden
  by Description and Description never displayed
2017-10-28 02:18:36 +02:00
rajudev
84581155bd Added an explanation of the module and what it does when used, or when used incorrectly. 2017-10-28 02:09:48 +05:30
Andrius Štikonas
fb1522f6ca Use KPMcore Resize Operation. 2017-10-27 14:00:32 +01:00
Adriaan de Groot
ff3a40368d CI: defer to Travis driver script 2017-10-27 11:25:35 +02:00
Adriaan de Groot
a3ab82f475 CI: drop silly workarounds now service is restored. 2017-10-27 11:20:25 +02:00
Adriaan de Groot
951e5ad7f4 Merge pull request #845 from stikonas/3.1.x-stable
Fix reported partition size.
2017-10-27 04:43:11 -04:00
Andrius Štikonas
274025d04e Fix reported partition size. 2017-10-27 02:51:44 +01:00
Adriaan de Groot
2aa5a14b51 Merge pull request #843 from Bezzy1999/cleanup-bitness
Clean up bitness check (ignoring CI error because the CI is broken right now).
2017-10-26 05:40:00 -04:00
Adriaan de Groot
05a766c3a9 CI: bump timeout some more, against all logic 2017-10-25 17:28:18 -04:00
Bezzy1999
17fb91cda5 added my name 2017-10-25 18:47:23 +01:00
Bezzy1999
cc6db5b808 pep8 2017-10-25 18:45:58 +01:00
Adriaan de Groot
c2c2793be5 [branding] correct documentation of productIcon sizes 2017-10-25 08:56:38 -04:00
Adriaan de Groot
3b30bbde67 Bump version number, pretending 3.1.8-rc1 is pending 2017-10-25 08:55:59 -04:00
Adriaan de Groot
a7ed3147af CI: try to work around build timeouts
- started this morning, but also applies now to yesterday's builds
   when they are restarted. Doesn't seem related to the minor CMake
   change done today.
2017-10-25 08:25:48 -04:00
Adriaan de Groot
99858242fb CI: Replace Jenkins-oriented scripts with Travis-oriented ones 2017-10-25 05:26:04 -04:00
crispg72
d179a9e3b1 Tidied up bitness check 2017-10-24 20:32:15 +01:00
Adriaan de Groot
ebb0331672 CMake: remove unused module 2017-10-24 12:56:02 -04:00
Adriaan de Groot
fe0cb88d70 Linking: be a little more relaxed in linking to dependent libs 2017-10-24 12:56:02 -04:00
Adriaan de Groot
ad2edf4f82 Linking: Reduce library dependencies in welcome module
Welcome is only interested in checking partitions, not
in resizing them, so stick to one library. This will
become moot when the checks move to partitionmanager
and KPMCore can do the things.
2017-10-24 12:53:55 -04:00
Adriaan de Groot
5e101bcbf9 Document KPMCore versions that make sense
- KPMCore 3.0.2 works, but contains specific bugs
2017-10-24 12:53:55 -04:00
Adriaan de Groot
055d416321 Merge branch '3.1.x-stable' 2017-10-24 07:54:30 -04:00
Adriaan de Groot
a64e6efb85 Bump version number 2017-10-24 07:46:03 -04:00
Adriaan de Groot
e6e1e2226c [netinstall] logging about the number of packages to process 2017-10-24 06:44:37 -04:00
Adriaan de Groot
41f17892d6 [packages] Document run_operations() some more 2017-10-24 06:44:37 -04:00
Adriaan de Groot
e37460d3d3 [ci] Revert bdf8c18126, can't use env-vars in notification step 2017-10-23 16:22:25 -04:00
Philip
df84208abc [bootloader] use generic file names instead of grub
- this fixes #839
2017-10-23 12:53:34 -04:00
Philip
10ede796f8 [bootloader] use generic file names instead of grub
- this fixes #839
2017-10-23 12:52:40 -04:00
Adriaan de Groot
c15db95046 Merge branch '3.1.x-stable' (netinstall fixes) 2017-10-23 11:53:30 -04:00
Adriaan de Groot
9b5772c482 Keyboard: warn about missing ckbcomp, thanks @abucodonosor 2017-10-23 11:52:11 -04:00
Adriaan de Groot
36a711c87f Netinstall: fix misleading message (thanks to @abucodonosor) 2017-10-23 11:52:11 -04:00
Adriaan de Groot
58414666c8 Netinstall: optimize structure for packages
- If there's no scripts involved in a package for netinstall, just
   name it without the scripts; this lets the packages module
   optimize to fewer package manager calls.
2017-10-23 11:23:14 -04:00
Adriaan de Groot
4314f2c4ad Netinstall: fix datatype passed to packages module
- Each element of the (list) packageOperations needs to be a
   package operation, which is a dictionary with keys (identifying actions)
   and lists of packages (which may be strings or script-info dictionaries).
2017-10-23 11:23:14 -04:00
Calamares CI
12dfe5152a [desktop] Automatic merge of Transifex translations 2017-10-23 07:14:07 -04:00
Calamares CI
1969cde5dd [core] Automatic merge of Transifex translations 2017-10-23 07:14:06 -04:00
Adriaan de Groot
286305a9d9 Travis: fix up weird language setting 2017-10-23 06:45:42 -04:00
Adriaan de Groot
9acc9d8731 Merge pull request #835 from bill-auger/master
use private env var for travis IRC notify channel
2017-10-23 07:37:31 -03:00
Adriaan de Groot
174fa98695 Documentation: minor polishing on netinstall 2017-10-23 06:30:43 -04:00
Adriaan de Groot
e7c51aa00b Document defaultFileSystemType
- this applies to new partitions; existing documentation erroneously
   said this happens with Replace as well,
 - follow up on Andrius manual-partition PR with documentation that
   manual mode doesn't switch to this FS when editing existing partitions.
2017-10-23 06:23:19 -04:00
Adriaan de Groot
b3723371c8 Merge pull request #838 from stikonas/master
Clarify defaultFileSystem documentation.
2017-10-23 07:13:38 -03:00
Adriaan de Groot
acd2d9f006 Testing: be more verbose about what files are loaded. 2017-10-23 11:57:11 +02:00
Adriaan de Groot
5db8a8f65c Testing: refactor python-test tool to allow independent use.
- Improve documentation
 - Allow '-' as filename (for empty)
2017-10-23 11:53:10 +02:00
Andrius Štikonas
38c3f8bb52 Clarify defaultFileSystem documentation. 2017-10-20 20:18:52 +01:00
bill-auger
bdf8c18126 use private env var for travis IRC notify channel 2017-10-15 22:51:37 -04:00
Adriaan de Groot
aabcd6ba86 Bump version 2017-10-13 16:45:37 -03:00
Calamares CI
8424e6ec3b [python] Automatic merge of Transifex translations 2017-10-13 16:42:31 -03:00
Calamares CI
a776f9a7b5 [core] Automatic merge of Transifex translations 2017-10-13 16:42:31 -03:00
Adriaan de Groot
173f4aba1b Update release-procedures 2017-10-13 16:42:31 -03:00
Andrius Štikonas
ceba157459 Use KPMcore DeleteOperation to delete partitions. 2017-10-12 19:33:34 +01:00
Andrius Štikonas
70573543f2 Use KPMcore NewOperation to create partitions. 2017-10-12 19:33:19 +01:00
Adriaan de Groot
9f84519e87 Merge branch '3.1.x-stable'
- pull in northern-locations fixes
 - pull in testing yaml-config
2017-10-12 14:00:24 -03:00
Adriaan de Groot
c6c6c2f22f Testing: refactor so that C++ and Python modules all get yaml-config tests 2017-10-12 13:37:54 -03:00
Adriaan de Groot
6000cbaae2 Testing: test each module's config files 2017-10-12 13:03:13 -03:00
Adriaan de Groot
e9205125ea Testing: add test to check the shipped config-files for correctness. 2017-10-12 12:55:07 -03:00
Adriaan de Groot
b805a8df74 CMake: minor docs, typo's 2017-10-12 12:33:03 -03:00
Adriaan de Groot
8b76b861ad Code-formatting, add (unused for now) overload of getLocationPosition() 2017-10-12 12:26:50 -03:00
Adriaan de Groot
00fa7bff1c Code-formatting, add copyright notice 2017-10-12 07:08:21 -07:00
Gabriel C
c10d7470bb finished: fix configuration file syntax
- fixes commit 74c19fc02d
- fixes #829
2017-10-12 07:05:28 -07:00
Philip Müller
28edfef273 Merge pull request #830 from abucodonosor/bug-829
finished: fix configuration file syntax
2017-10-12 08:30:29 +02:00
Gabriel C
8135aa9a4c finished: fix configuration file syntax
- fixes commit 74c19fc02d
- fixes #829
2017-10-11 23:16:22 +02:00
Adriaan de Groot
78031636af Correct for distortion of globe.
In the timezone widget, locations in the far north -- Inuvik,
Thule, Longyearbyen -- were displayed too far south, because the
map location calculation assumes a linear gradient, which places
90 degrees north at about 70 degrees. Change calculation to
pretend the world is flat south of 62 degrees north, and then
'bend' the remaining 28 degrees of latitude to the top of the
image. This puts most places in the right spot, although Yellowknife
is now on the south shore of Great Slave.

Fort Nelson should be north of Dawson Creek, too -- the math still
needs a little work.

While here, put Antarctica in the south, otherwise Rothera keeps
showing up in Greenland.
2017-10-09 13:14:53 -07:00
Andrius Štikonas
4912d8a6c2 Fix create partition job to work with LVM devices. 2017-10-09 17:31:22 +01:00
Adriaan de Groot
27e9852e9d CMake: be more descriptive about squashfs 2017-10-04 11:13:38 -04:00
Adriaan de Groot
3f739563ef Drop KService requirements (it's still there in InteractiveTerminal) 2017-10-04 08:46:12 -04:00
Adriaan de Groot
8599c2800f Document finished.conf some more 2017-10-04 08:36:07 -04:00
Adriaan de Groot
b47c8a72df Merge pull request #827 from abucodonosor/finished
finished: use generic shutdown command
2017-10-04 14:33:14 +02:00
Gabriel C
30e56e1566 finished: use generic shutdown command
- it doesn't make any sense to have restartNowCommand and fallback
  set to the same command.
- also fallback should be something generic every init supports
2017-10-04 13:13:33 +02:00
Adriaan de Groot
1491a02802 Documentation for the branding variables 2017-10-04 06:37:44 -04:00
Adriaan de Groot
7adb963ba9 Merge pull request #826 from bill-auger/master
use orphaned Branding::ProductLogo as sidebar image
2017-10-04 11:33:30 +02:00
Adriaan de Groot
b1bae4152a Missing import; thanks to crazy on IRC 2017-10-04 05:32:23 -04:00
bill-auger
8d341ed53d use orphaned Branding::ProductLogo as sidebar image 2017-10-03 18:27:14 -04:00
Calamares CI
6f242177da [python] Automatic merge of Transifex translations 2017-10-03 06:46:36 -04:00
Calamares CI
1eaeb6025f [dummypythonqt] Automatic merge of Transifex translations 2017-10-03 06:46:36 -04:00
Calamares CI
7fbb68caab [desktop] Automatic merge of Transifex translations 2017-10-03 06:46:35 -04:00
Calamares CI
e9e2f2e68c [core] Automatic merge of Transifex translations 2017-10-03 06:46:35 -04:00
Adriaan de Groot
d01a35e288 Missing import; thanks to crazy on IRC 2017-10-03 10:29:03 +02:00
Adriaan de Groot
a6ffb0c855 Merge pull request #825 from stikonas/kpmcore-3.2
Remove unnecessary KIO and KIconThemes dependencies.
2017-10-02 17:27:53 +02:00
Andrius Štikonas
68e940f0bf Remove unnecessary KIO and KIconThemes dependencies. 2017-09-30 18:18:25 +01:00
abucodonosor
2546442e88 Merge pull request #824 from stikonas/kpmcore-3.2
KPMcore: Pass QStringList to fs->name() instead of QString.
2017-09-30 18:02:37 +02:00
Andrius Štikonas
9f05c236d8 KPMcore: Pass QStringList to fs->name() instead of QString. 2017-09-30 16:27:13 +01:00
Adriaan de Groot
ff2947060d KPMCore: use the translation system for filesystem names from KPMCore 2017-09-30 17:04:35 +02:00
Adriaan de Groot
96c3f7def3 KPMCore: drop conditional code 2017-09-30 16:50:02 +02:00
Adriaan de Groot
ca037af6ca KPMCore: update required version to 3.2
- drop extra checks for blkid and atasmart, those are kpmcore's
   concern, not ours (and it might have other backends, anyway)
2017-09-30 16:48:37 +02:00
Calamares CI
d1f878a898 [python] Automatic merge of Transifex translations 2017-09-28 11:09:41 -04:00
Calamares CI
7129b125af [dummypythonqt] Automatic merge of Transifex translations 2017-09-28 11:09:41 -04:00
Calamares CI
caeae87d5b [desktop] Automatic merge of Transifex translations 2017-09-28 11:09:40 -04:00
Calamares CI
0a9ccfda8f [core] Automatic merge of Transifex translations 2017-09-28 11:09:40 -04:00
Adriaan de Groot
a397297b5b i18n: enable Hindi and Marathi, even though they're currently at 0% 2017-09-28 10:33:23 -04:00
Adriaan de Groot
33f78b375d Merge branch 'master' into kcrash 2017-09-27 09:52:01 -04:00
Adriaan de Groot
8917d153da Drop the (inter-)module dependencies system.
- Was marked incomplete and unused; none of the existing modules
   set any requirements, and the descriptors are not set up to
   hold the requirements information anyway.
 - Dependencies are generally through globalStorage values, or if
   there are dependent jobs they should be created in-order by one
   source (e.g. though a View or a subclass of CppJob which overrides
   jobs() ).
 - It is the responsibility of deployers to formulate a settings.conf
   that includes all the required modules.
 - A 'real' dependency system is going to lead to the introduction
   of interface-definitions and a great deal of complexity, for a
   use case that can be handled with careful deployment instead.
2017-09-27 05:34:06 -04:00
Adriaan de Groot
d2cce926de Merge pull request #821 from calamares/luks-colors
Use the LUKS filesystem's outer UUID for the color index.
2017-09-26 17:40:36 +02:00
Adriaan de Groot
6704121946 Keyboard: try a little harder to match keyboard layouts with selected system language 2017-09-26 11:32:52 -04:00
Adriaan de Groot
bd4ee9320d Clang: warnings--, drop unused WindowFlags parameter 2017-09-26 11:51:11 +02:00
Adriaan de Groot
9b9801d48d Code-style: format the keyboard module 2017-09-26 11:22:51 +02:00
Adriaan de Groot
ea07d9e1d8 Merge branch 'master' into i689-kayboard-layout 2017-09-26 11:20:17 +02:00
Adriaan de Groot
aa26ac5dd9 Clang: warnings-- 2017-09-26 11:07:15 +02:00
Adriaan de Groot
72bbac7e22 Merge branch 'master' into usertracking 2017-09-26 10:42:07 +02:00
Adriaan de Groot
c0867c76fd Document another way to create tarballs 2017-09-25 17:13:33 +02: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
83d0524935 Fix docs links 2017-09-25 16:50:48 +02:00
Adriaan de Groot
574bb61592 Code-style: format the finished module 2017-09-25 16:35:58 +02:00
Adriaan de Groot
cd3578ca71 Bump version number 2017-09-25 16:34:30 +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
866d338894 Clang: warnings-- 2017-09-25 16:28:08 +02:00
Adriaan de Groot
7f00073e7f Clang: warnings-- 2017-09-25 16:23:47 +02:00
Adriaan de Groot
74c19fc02d Finished: make notification optional
FIXES #811
2017-09-25 16:22:03 +02:00
Calamares CI
94e7735ee4 [python] Automatic merge of Transifex translations 2017-09-25 16:02:44 +02:00
Calamares CI
dfeb33006b [desktop] Automatic merge of Transifex translations 2017-09-25 16:02:43 +02:00
Calamares CI
ff40d174bd [core] Automatic merge of Transifex translations 2017-09-25 16:02:43 +02:00
Adriaan de Groot
2a4d8faa3b Presentation: re-implement looping, keyboard-nav 2017-09-25 13:52:55 +02:00
Adriaan de Groot
6f00dd761b Licensing: add header to slideshow copyright 2017-09-25 13:32:35 +02:00
Adriaan de Groot
420f135628 Licensing: Re-import GPLv2.1 slideshow
Re-import presentation code (commercial, LGPLv2.1 or GPLv3), with licensing
info. Calamares chooses LGPLv2.1 for the QML "library" code.

 - Digia LGPL Exception obtained from:
   Repo: https://raw.githubusercontent.com/meta-qt5/meta-qt5/master/licenses/Digia-Qt-LGPL-Exception-1.1
   Rev: 48ebff679e5dc084d395b861a1fc4cb21790d51b
 - Presentation QML obtained from:
   Repo: https://github.com/qt-labs/qml-presentation-system
   Rev: 4071343a4dffffc4b05d777faa9c5cf54f2b4f08
2017-09-25 13:31:47 +02:00
Adriaan de Groot
a4a05acc61 Remove more crashreporter references 2017-09-20 09:25:05 +02:00
Adriaan de Groot
af2643cdfc Clang: warnings-- (unused, init-order) 2017-09-20 09:24:33 +02:00
Adriaan de Groot
81db2bad5f CMake: refactor boost.python search
- improve description of Python dependencies
 - refactor search per python-version-style
 - report on features and found boost modules the standard way
2017-09-23 10:22:41 -04:00
Adriaan de Groot
6f1f08f728 Restore Boost.Python detection.
FIXES #817
2017-09-23 02:57:26 -04:00
Philip
d20285d4f2 [modules] displaymanager: try to fix regression introduced with c8fd11b 2017-09-21 13:08:13 -04:00
Adriaan de Groot
aa789bc8e9 CMake: improve reporting on dependencies 2017-09-21 06:47:58 -04: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
d89b17a244 Clang: partman_devices.c is not, in fact, C++ code 2017-09-21 04:16:35 -04:00
Adriaan de Groot
e3e519c06f Clang: reduce warnings, nullptr, unused parameters 2017-09-21 04:04:01 -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
b04a890798 Fix code using re-imported imageregistry 2017-09-19 16:49:14 +02:00
Adriaan de Groot
6010805935 Licensing: add header to imageregistry copyright
- mention that this is shipped as part of Calamares
         - SPDX info
2017-09-19 16:26:26 +02:00
Adriaan de Groot
a65bc7d756 Licensing: re-import ImageRegistry
- include full license headers,
 - copied from
   - repo: https://github.com/tomahawk-player/tomahawk/
   - rev:  00f602e10203b76fc28b4615868c567e6bd4ced4
   - path: src/libtomahawk/utils/ImageRegistry.cpp
2017-09-19 16:26:26 +02:00
Adriaan de Groot
d23818b27c Fix code using re-imported spinner 2017-09-19 16:26:26 +02:00
Adriaan de Groot
d2d59e6206 Licensing: add header to QtWaitingSpinner copyright
- mention that this is shipped as part of Calamares
     - SPDX info
2017-09-19 16:26:26 +02:00
Adriaan de Groot
553a66b326 Licensing: re-import QtWaitingSpinner
- include full license headers,
 - copied from
   - repo: https://github.com/snowwlex/QtWaitingSpinner
   - rev:  bb8f8987ca19406dc75704eb382ab52e981b773f

This revision *does not build* because the files have been renamed.
2017-09-19 16:26:26 +02:00
Adriaan de Groot
24f26ee7c8 Licensing: add header to QJsonModel copyright
- mention that this is shipped as part of Calamares
 - SPDX info
2017-09-19 16:26:23 +02:00
Adriaan de Groot
e5c0854e66 Licensing: re-import GPLv3 version of QJsonItem
- include full license headers,
 - copied from
    - repo: https://github.com/dridk/QJsonmodel
    - rev:  fbd4fb3b1c1311f69cd8ada9bbb7a89fd6fe171e
2017-09-19 15:57:46 +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
1c52f961a6 Refactor password-errors-indication (again)
- set message and status icon in one go
 - only check until an error is found
 - Mark TODO for passwordRequirements
2017-09-19 15:57:13 +02:00
Adriaan de Groot
d839f8e0b3 Passwords: introduce password-checking
- Introduce a map 'passwordRequirements' in users.conf,
   which is a list of named requirements. There are only
   two settings right now, min and max length, but
   additional checks can easily be added in UsersPage.cpp
   by defining additional lambda's to check the given
   password string.
 - Add PasswordCheck instances as needed, with functions
   to check acceptability and to produce messages on rejection.
 - Documentation in the users.conf file itself.

 - In passing, refactor setting of pixmaps on labels.

FIXES #790
2017-09-19 00:12:44 +02:00
Adriaan de Groot
c2a69ea943 i18n: cleanup after txpull
- remove extra .desktop files created in lang/
 - remove annoyingly-doubled # Translations comment
2017-09-18 15:50:00 +02:00
Calamares CI
6271dd39e9 [python] Automatic merge of Transifex translations 2017-09-18 15:50:00 +02:00
Calamares CI
299e7b16d5 [desktop] Automatic merge of Transifex translations 2017-09-18 15:50:00 +02:00
Calamares CI
f309e777c7 [core] Automatic merge of Transifex translations 2017-09-18 15:19:24 +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
a14e98ce95 Crashreporter: remove further reference to removed lib 2017-09-18 15:02:35 +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
ddf7b7fc90 CMake: remove superfluous indirection 2017-09-18 12:12:10 +02:00
Adriaan de Groot
5f213c0ec4 CMake: tidy way of adding Clang warnings 2017-09-17 07:01:59 -04:00
Adriaan de Groot
a266ecb133 CMake: simplify definitions, distinguish kinds of sources 2017-09-17 06:48:07 -04:00
Adriaan de Groot
e5b59d472e Clang: warnings-- 2017-09-16 10:36:40 -04:00
Adriaan de Groot
706ac47111 Clang: reduce warning settings
- turn off warnings for missing prototypes (for now) because of MOC
 - turn off warnings about docs
2017-09-16 10:36:24 -04:00
Adriaan de Groot
c8fd11b103 Replace scandir with listdir, simplify loop
FIXES: ??
2017-09-16 07:01:55 -04:00
Adriaan de Groot
ca60a7fc16 Clang: warnings-- 2017-09-14 07:02:24 -04:00
Adriaan de Groot
342b819a1d Fix build (warnings--, but breakage++ is not good) 2017-09-14 06:59:34 -04:00
Adriaan de Groot
c6297f1db5 Clang: warnings-- 2017-09-14 06:34:31 -04:00
Adriaan de Groot
9f1cca5ec7 FS: use untranslated name to identify filesystem
Resolves issue where 'linuxswap' is translated to 'Linux-Swap',
for instance. FileSystem::name() provides a translated name,
not an untranslated one.

This should move to KPMCore.

FIXES #797
2017-09-14 06:34:18 -04:00
Adriaan de Groot
8b61b3ddc3 Merge pull request #802 from abucodonosor/pr-autologin2
CreateUserJob: do not force any autologin group
2017-09-14 03:28:34 -04:00
Adriaan de Groot
c9f4bc0cc8 Check for crypt(3), also on FreeBSD 2017-09-13 22:32:21 +02:00
Adriaan de Groot
edb1dbaa6e Clang: warnings-- 2017-09-13 22:32:21 +02:00
Gabriel C
5d241f8e09 CreateUserJob: do not force any autologin group
There is no need to force folks haing a random group
 bc that is a Distro think. SDDM/GDM works just fine without
 having a group for the user to autologin.
 Just setup a group in users.conf .. is why we have a configuration
 option for that.
2017-09-13 21:44:15 +02:00
Adriaan de Groot
da4fa6a63a Fix link / library name 2017-09-13 19:03:56 +02:00
Adriaan de Groot
bd37572fd8 Clang: reduce warnings 2017-09-13 19:03:56 +02:00
Adriaan de Groot
03d9dbe099 Clean up CMakeLists, linking 2017-09-13 18:29:56 +02:00
Adriaan de Groot
90fc268cc4 Clean up CMakeLists wrt. optional 2017-09-13 18:04:36 +02:00
Adriaan de Groot
63ecce93fd Remove unused CMake module 2017-09-13 08:56:29 -04:00
Adriaan de Groot
6c3b308a03 Remove libcrashreporter-qt more thoroughly 2017-09-13 08:47:07 -04:00
Adriaan de Groot
3246b6cb1b Drop submodule the right way 2017-09-13 08:43:20 -04:00
Adriaan de Groot
1996270128 Drop crashreporter-qt
- Reporting URL we use is unused right now anyway
 - Not compatible with glibc 2.26
 - Not compatible with ARM
2017-09-13 08:38:51 -04:00
Adriaan de Groot
cbef79bb93 Clean up CMake stuff, remove unneeded modules 2017-09-13 08:32:22 -04:00
Adriaan de Groot
be2338ff08 Clang: reduce warnings 2017-09-13 08:03:18 -04:00
Adriaan de Groot
ec86922839 Find KPMCore 3.2 quietly, less frightening 2017-09-13 07:01:19 -04:00
Adriaan de Groot
d8a47bb8be Simplify dict() construction for fstab-lines 2017-09-13 06:13:28 -04:00
Adriaan de Groot
d355a42a44 Merge pull request #800 from abucodonosor/pr-730
fstab: fix btrfs with LUKS and systemd we forgot to fix that in #730
2017-09-13 05:58:49 -04:00
Gabriel C
b82042a078 fstab: fix btrfs with LUKS and systemd we forgot to fix that in #730 tested with efi/BIOS+LUKS+btrfs , efi/BIOS+btrfs 2017-09-13 10:58:33 +02:00
demmm
2d94e88026 adding an ISSUE_TEMPLATE for bug reporting 2017-09-11 12:17:44 -04:00
Adriaan de Groot
a0379c9b40 PEP8: Just don't do it 2017-09-11 11:23:28 +02:00
Adriaan de Groot
cb57de2e65 Clang: float -> qreal where it matches Qt API 2017-09-11 11:07:32 +02:00
Adriaan de Groot
297e97da19 Clang: tidy up warnings in logger 2017-09-11 11:03:25 +02:00
Adriaan de Groot
25de3aca6e Clang: don't shadow global int timezone 2017-09-11 09:42:21 +02:00
Philip
d2964cc71c [locale] default to the states
- see also 239c7534d2
2017-09-10 22:33:25 +01:00
Adriaan de Groot
9116718448 Clang: warnings-reduction 2017-09-10 15:19:36 -04:00
Adriaan de Groot
463615a1c0 Clang: don't shadow local variable names 2017-09-10 13:22:54 -04:00
Adriaan de Groot
764fb742ba Clang: clean up documentation markup 2017-09-10 13:22:54 -04:00
Adriaan de Groot
0b39e50cdc Clang: explicit char-initialization of ByteArray 2017-09-10 13:22:54 -04:00
Adriaan de Groot
3527c82327 Clang: make private internal class less visible 2017-09-10 13:22:54 -04:00
Adriaan de Groot
bd3786ebeb Clang: reduce warnings in various places 2017-09-10 13:22:32 -04:00
Adriaan de Groot
a06911e9aa Clang: refactor units-converters, reduce warnings 2017-09-10 13:22:32 -04:00
Adriaan de Groot
31fa9e4251 Clang: fix warnings on partition splitter
- initialize all the fields
 - member-initialization order
 - silence warnings about double<->int
 - drop unused parameter to setSplitPartition
2017-09-10 06:17:28 -04:00
Adriaan de Groot
3aa540a69e Clang: static constant usage strings 2017-09-10 06:17:28 -04:00
Adriaan de Groot
510d2d22d5 Clang: reduce warnings to useful level
- suppress tons of warnings from Qt MOC due to pointer-casting
 - suppress warnings about globals
2017-09-10 06:17:02 -04:00
Adriaan de Groot
c0daa69dc8 i18n: delete magically duplicating comment 2017-09-07 05:46:51 -04:00
Adriaan de Groot
d86ea76af2 Bump RC down to 0 for release 2017-09-07 05:46:34 -04:00
Calamares CI
c42d702452 [python] Automatic merge of Transifex translations 2017-09-07 05:45:03 -04:00
Calamares CI
5b97d2367a [dummypythonqt] Automatic merge of Transifex translations 2017-09-07 05:45:03 -04:00
Calamares CI
9603e57ab5 [desktop] Automatic merge of Transifex translations 2017-09-07 05:45:02 -04:00
Calamares CI
34c386851e [core] Automatic merge of Transifex translations 2017-09-07 05:45:02 -04:00
Adriaan de Groot
f63b44c984 i18n: smash things back from unspecified charset to UTF-8 2017-09-07 05:43:50 -04:00
Adriaan de Groot
15c2a96640 i18n: drop comment which is messing up TX merge 2017-09-07 05:38:10 -04:00
Adriaan de Groot
3e5916157f A mounted partition cannot be resized or replaced
- add check for isMounted()
 - a device with a mounted partition cannot be (entirely) erased

FIXES #639
2017-09-07 04:55:44 -04:00
Adriaan de Groot
851379628c Reduce Qt runtime warnings.
- deleteLater() doesn't like nullptr (produces a warning, but is harmless)
 - reparenting across threads doesn't work, comment on that but leave
   it in, since this may be relevant for memory management.
2017-09-07 04:24:08 -04:00
Adriaan de Groot
cec7132d2c Swap + LUKS configuration.
Based on patches from crazy@frugalware.org and V3n3RiX.

(presumably) FIXES #730
2017-09-07 03:43:42 -04:00
Adriaan de Groot
cc26fc085a Merge pull request #787 from stikonas/master
kpmcore now requires passing sector size to FileSystem.
2017-09-06 07:54:06 -04:00
Adriaan de Groot
7e25909e18 YAML: refactor YAML-exception reporting
- both NetInstall (group data) and Locale (GeoIP) use network
   data returned as a source of YAML data. Try to explain
   parsing errors for both.

FIXES #786
2017-09-06 07:51:22 -04:00
Andrius Štikonas
252006ea25 kpmcore now requires passing sector size to FileSystem. 2017-09-06 12:24:51 +01:00
Adriaan de Groot
09decf8e06 YAML-NetInstall: log data errors.
When NetInstall receives YAML data, handle parser errors more gracefully:
show line and column, but because it's network data (not in a local file),
do some work to print out the actual data received.

FIXES #786
2017-09-06 05:47:11 -04:00
Adriaan de Groot
6c5199c9cc YAML: on error, report filename along with location 2017-09-06 05:10:33 -04:00
Adriaan de Groot
9096a9ebcd Remove overly-verbose debugging 2017-09-06 04:55:08 -04:00
Adriaan de Groot
73a75e837b Auto-resize the main window.
If the summary widget is large, it gets a scrollbar. This looks really
weird, so prefer to grow the installer window instead. Discussed with
@sitter and settled on this solution.

ViewSteps can signal the ViewManager that they need more space (in pixels),
which may or may not be honored.

FIXES #778
2017-09-05 10:51:54 -04:00
Adriaan de Groot
1859808227 Move development-related scripts, tools, into ci/ 2017-09-05 06:09:51 -04:00
Adriaan de Groot
ec265c073a One more have_dracut check (thanks to @crazy) 2017-09-05 06:09:50 -04:00
Adriaan de Groot
360a114ed4 Be more explicit on why a device is winnowed from the list 2017-09-05 06:09:50 -04:00
Adriaan de Groot
78ef69af02 i18n: update source translations 2017-09-04 08:17:38 -04:00
Adriaan de Groot
e9e6834dd8 Locale: translate OK, Cancel buttons in language selection (reported on IRC) 2017-09-04 07:57:20 -04:00
Adriaan de Groot
e13f7898ac Make check for dracut more readable 2017-09-04 06:42:51 -04:00
Adriaan de Groot
47dcbefe2c Apply patch from V3n3RiX.
https://gitlab.com/redcore/redcore-desktop/raw/master/app-admin/calamares/files/calamares-3.1.1-luks-fstab-write-devmapper.patch

Fixes #772
2017-09-04 06:33:01 -04:00
Adriaan de Groot
b22bd67a5f Avoid race condition around libparted device use.
FIXES #782
2017-08-31 05:28:58 -04:00
Adriaan de Groot
798640be0d PEP8 whining 2017-08-31 04:51:34 -04:00
Adriaan de Groot
11ff935453 Merge branch 'valgrind' 2017-08-31 04:16:31 -04:00
Adriaan de Groot
0e96621b94 Don't leak memory when winnowing disk devices
- Improve logging a little
 - Don't leak Device*, but delete the raw pointer when erasing
 - Document that DeviceInfo takes ownership and doesn't leak
2017-08-31 04:14:52 -04:00
Adriaan de Groot
e26d5ab206 Don't leak memory for allocated modules 2017-08-31 04:13:52 -04:00
Adriaan de Groot
d5dca07e22 Fix uninitialized values (valgrind report) 2017-08-31 04:13:18 -04:00
Adriaan de Groot
71fe0f6f03 Python-i18n: pygettext is deprecated
- Use xgettext -L python instead
 - Mark _n as a plural-forms translation function
 - Explicit output to .pot files (instead of default .po)
2017-08-31 04:09:48 -04:00
Adriaan de Groot
a4f4d417a2 Packages module: improve translated progress reporting
- Reduce number of strings a bit
 - Less confusing translation requirements (I hope)
 - Report on progress between groups
2017-08-31 03:51:18 -04:00
Adriaan de Groot
44262951a1 Python-i18n: add _n() as a gettext keyword, for plurals 2017-08-30 17:37:04 -04:00
Adriaan de Groot
a31c4b4cb3 Packages module: better progress reporting
- introduce multiple modes (remove, install) to
   distinguish progress messages
 - handle plurals via gettext
 - fix PEP8 whining from previous
2017-08-30 17:37:04 -04:00
Adriaan de Groot
e1a93987d0 Packages module: add progress reporting
Adds i18n to the module (but these strings are not yet extracted),
and reports progress as each group of packages is installed.

FIXES #781
2017-08-30 10:09:28 -04:00
Adriaan de Groot
8dd1b7ed4a Merge branch 'distro-example'
This was WIP, working on the fstab / UUID problem, but stands on its
own; since others are zooming in on the fstab / UUID problem, close
down the branch.
2017-08-30 08:18:12 -04:00
Adriaan de Groot
1ea79efce8 Uninitialized value 2017-08-29 14:00:48 -04:00
Adriaan de Groot
162de207c8 Package module: extensive documentation of options 2017-08-29 10:34:38 -04:00
Adriaan de Groot
1926399378 Telemetry stub.
This is experimental, off-by-default, code for developing a telemetry /
tracking configuration module. It is preliminary work for issue #628,
but also for KDE Neon configuration. Any telemetry should conform to
the KDE Telemetry Policy [1] or similar Free Software telemetry policy
(e.g. the Mozilla one).

[1] https://community.kde.org/Policies/Telemetry_Policy

Initial idea is to distinguish three kinds of tracking:
 - installs. This tracks that OS <foo> has been installed somewhere.
   It might send some machine information to a remote server.
 - machines. This enables some kind of machine tracking in the

   installed system, for instance it could enable popcon on
   Debian, or periodic phone-home-pings.
 - users. This enables some kind of telemetry / tracking on the
   installed user in the system.

A simple and transparent setting is to enable install-tracking and set
it to opt-in, and disable machine and user tracking. Explain to the
user that <foo> would like to know when <foo> is installed, and that
the following information <d1>, <d2> will be sent to <url> in accordance
to the <foo> telemetry policy at <url2>.

Work in this branch is subject to VDG review for the visuals, and
privacy oversight by whatever group is responsible for <foo> privacy.

Note that this module makes it *possible* for telemetry configuration
to be visible inside the installer; what distro's do with telemetry
already is entirely outside the scope of this configuration module.
2017-08-29 08:00:37 -04:00
Adriaan de Groot
3799a26b3c Package module: optimize & fix
- Expand example configurations
 - Optimize commoon case of just listing package names
 - Do locale substitution in both kinds of cases
2017-08-29 06:58:30 -04:00
Adriaan de Groot
6c36534206 Package module: fix packages-could-be-objects code
- Check for 'list' when it's actually a 'dict' is strange.
   Reverse logic to consider 'str' a package name and everything
   else is special.
 - Refactor to handle the difference between package names and
   packages-with-script-data in one place.
 - Add code and config documentation.
 - Switch sample configurations to dummy-backend.
2017-08-29 05:51:30 -04:00
Adriaan de Groot
d66434985e Package module: refactor package-manager into multiple classes 2017-08-29 05:51:29 -04:00
Adriaan de Groot
913521d022 Testing: set more locale-globals in testing-script.
When testing Python modules, passing option --lang should also
set the global 'locale' (to a BCP47 string, but hey) like it
already sets localeConf.LANG.
2017-08-29 05:51:29 -04:00
Adriaan de Groot
c5abfd6371 Having a mounted partition should not disqualify the entire device.
FIXES #780
(should reopen #639 for double-checking)
2017-08-28 06:01:11 -04:00
Adriaan de Groot
85595b4e04 #780: check for isMounted(), not for where-would-it-be-mounted 2017-08-28 05:54:04 -04:00
Adriaan de Groot
7791c3cb19 DeviceInfo: refactor translation of DeviceInfoPage
- For Boot and Device info widgets, add a retranslateUi() method,
   since the labels change not only in response to translation
   events but also UI events.

FIXES #779
2017-08-28 05:44:43 -04:00
Adriaan de Groot
7e66499f36 Refactor check for EFI system.
The TODO stands, to delegate this to KPMCore.
2017-08-28 05:36:45 -04:00
Adriaan de Groot
bba9651850 Create example distro squashfs (from build host)
- Add a target 'example-distro' which must be manually invoked
   This creates an example.sqfs with a minimal binary distro
   based on the build hosts's /bin and /lib.

The purpose is to provide a simple test image which the
default configuration of the unpackfs module can use to
create a system within which the *other* steps of the
installation can run.

Example files are some zoneinfo's (remember to choose an
existing zone when using the example distro), groups and
sudoers files, etc ..

The example distro has a special /xbin which contains bogus
binaries for many system-administration tasks (e.g. useradd
which would otherwise come from /usr/sbin).
2017-08-23 17:33:03 -04:00
Adriaan de Groot
186f6cd1e2 initcpiocfg: accept (but warn) for missing config file in the host 2017-08-23 17:33:03 -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
63f9c25611 Update unpackfs.conf examples and documentation 2017-08-23 06:57:11 -04:00
Adriaan de Groot
3188a47fba Bump version numbers on the example distro 2017-08-23 06:51:45 -04:00
Adriaan de Groot
2362a33613 Bump version numbers (again!) in preparation for next week's release 2017-08-23 06:43:37 -04:00
Adriaan de Groot
ff6108280b Merge branch 'post-release-fixes' 2017-08-23 05:31:56 -04:00
Adriaan de Groot
54660fda58 Notes on bumping version numbers 2017-08-23 05:31:41 -04:00
Adriaan de Groot
89c2c8a76e Suppress success-notification on failure 2017-08-23 05:25:07 -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
34846a6644 Bump Calamares version 2017-08-23 04:35:21 -04:00
Calamares CI
5f7c96d172 [python] Automatic merge of Transifex translations 2017-08-22 05:08:39 -04:00
Calamares CI
2f5638c34e [dummypythonqt] Automatic merge of Transifex translations 2017-08-22 05:08:39 -04:00
Calamares CI
c9f53ed23f [desktop] Automatic merge of Transifex translations 2017-08-22 05:08:38 -04:00
Calamares CI
e9a6d16b29 [core] Automatic merge of Transifex translations 2017-08-22 05:08:38 -04:00
Adriaan de Groot
52f1ac63e3 Update translation sources 2017-08-21 17:58:06 -04:00
Calamares CI
939227dbaa [python] Automatic merge of Transifex translations 2017-08-21 17:51:44 -04:00
Calamares CI
704901762e [dummypythonqt] Automatic merge of Transifex translations 2017-08-21 17:51:44 -04:00
Calamares CI
93ce4c12cc [desktop] Automatic merge of Transifex translations 2017-08-21 17:51:44 -04:00
Calamares CI
5d28ce2067 [core] Automatic merge of Transifex translations 2017-08-21 17:51:44 -04:00
Adriaan de Groot
b3a46c7506 Merge branch 'i18n-pythonjob' 2017-08-21 17:50:16 -04:00
Adriaan de Groot
93115b7385 Popup notification when the installation is done.
- Use DBus and FreeDesktop interface to popup message
 - Code style / formatting

FIXES #599
2017-08-21 17:49:38 -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
48cc1f0461 Python-i18n: adjust for changed API 2017-08-18 14:19:50 -04:00
Adriaan de Groot
39f5af1fcc Python-i18n: clean up filename handling a little (thanks Kevin) 2017-08-18 14:13:26 -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
40335d9f1e Python-i18n: install mo files into build tree 2017-08-18 13:06:44 -04:00
Adriaan de Groot
34230276e3 Python-i18n: extend test-script with language setting 2017-08-16 16:51:56 +02: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
5326e9ee06 Python-style: sharp-eyed KK spots a typo 2017-08-15 14:10:56 +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
f509000215 Python-style: cut-and-paste accident 2017-08-15 13:36:51 +02:00
Adriaan de Groot
49384ef01f Python-style: fix derpy workaround for PEP8 2017-08-15 13:29:39 +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
1dbe7c29e2 Python-i18n: prepare for move of API to libcalamares.utils, be less verbose 2017-08-15 12:30:19 +02:00
Adriaan de Groot
fdb4be8189 Python-i18n: be explicit about parameters 2017-08-15 11:46:25 +02:00
Adriaan de Groot
c694792e4f Python-style: pep8 fixes 2017-08-15 11:39:58 +02:00
Adriaan de Groot
22c0ee5dbb Python-i18n: install gettext .mo files into system locale dir 2017-08-15 10:34:28 +02:00
Calamares CI
0121896a70 [python] Automatic merge of Transifex translations 2017-08-15 09:01:09 +02:00
Calamares CI
2cd4172d6e [desktop] Automatic merge of Transifex translations 2017-08-15 09:01:09 +02:00
Calamares CI
0378bee397 [core] Automatic merge of Transifex translations 2017-08-15 09:01:08 +02:00
Adriaan de Groot
d523a44407 Merge branch 'master' into i18n-pythonjob 2017-08-10 16:06:39 -04:00
Adriaan de Groot
40c3b3dd04 Modules: initramfscfg copy files from own install-dir
FIXES #770
2017-08-10 16:04:02 -04:00
Adriaan de Groot
f0a143cd5c PythonJob: switching between C++ and Python is hard 2017-08-10 15:45:38 -04:00
Adriaan de Groot
58b2abc9ac Merge pull request #771 from n3rdopolis/patch-1
Correct update-initramfs command (add -t for cases where there already is one on disk)
2017-08-10 15:43:13 -04:00
Calamares CI
b4a5f65f8a [python] Automatic merge of Transifex translations 2017-08-10 15:39:24 -04:00
Calamares CI
8052b6d6f6 [dummypythonqt] Automatic merge of Transifex translations 2017-08-10 15:39:24 -04:00
Calamares CI
cf6d4744ea [desktop] Automatic merge of Transifex translations 2017-08-10 15:39:24 -04:00
Calamares CI
cc369c013c [core] Automatic merge of Transifex translations 2017-08-10 15:39:24 -04:00
Adriaan de Groot
33bc669591 Python-i18n: trivial example adding _ to python jobs
- add to dummypython
 - also add to machineid
2017-08-10 15:39:24 -04: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
9f5ff55ba2 Python-i18n: tx pull and push improvements
- python jobmodule translations
 - only keep top-level desktop file
2017-08-10 10:42:03 -04:00
Adriaan de Groot
34c3bc6c85 CMake: shuffle translations macros into CMakeModules/ 2017-08-10 10:40:41 -04:00
Adriaan de Groot
be04b12597 Modules: tidy debugging in dummypython 2017-08-09 11:02:25 -04:00
Adriaan de Groot
2dc019493d Modules: docs for users.conf 2017-08-09 10:59:14 -04:00
Adriaan de Groot
5ebbc00334 i18n: document txpush, de-bash 2017-08-09 05:35:47 -04:00
Calamares CI
6537a054de [dummypythonqt] Automatic merge of Transifex translations 2017-08-09 07:20:44 +09:00
Calamares CI
48293dd9b0 [desktop] Automatic merge of Transifex translations 2017-08-09 07:19:38 +09:00
Calamares CI
640cc64a35 [core] Automatic merge of Transifex translations 2017-08-09 07:19:37 +09:00
Adriaan de Groot
e1ba93a0c2 i18n: document txpull, de-bash 2017-08-09 07:19:37 +09:00
Adriaan de Groot
ca3b10002b Modules: minor cleanup + docs 2017-08-09 05:45:09 +09:00
Calamares CI
b78b9761c5 [desktop] Automatic merge of Transifex translations 2017-08-09 05:15:58 +09:00
Calamares CI
96e38ddf68 [core] Automatic merge of Transifex translations 2017-08-09 05:15:58 +09:00
Adriaan de Groot
d79c9aa45a CI: also install the build 2017-08-09 00:00:32 +09:00
Adriaan de Groot
7688ab7ad3 CMake: typos in filenames (thanks Riddell) 2017-08-08 23:59:15 +09:00
Adriaan de Groot
9737041e66 Locale: extend prettyStatus()
Add description of language and number formats to pretty status.
This is shown in the summary page. Refactor a little to produce
the strings only in one place. Constify methods.

FIXES: #564
2017-08-08 17:29:44 +04:30
Adriaan de Groot
a718eb76cb Docs: code-documentation about summary page 2017-08-08 07:54:38 -04:00
Adriaan de Groot
11b37e8be9 i18n: initial translations for .desktop 2017-08-08 04:14:22 -04:00
Adriaan de Groot
e94ea438fb i18n: extend .desktop tooling-support 2017-08-08 04:11:19 -04:00
Adriaan de Groot
0483d73656 i18n: updated Dutch translations 2017-08-08 04:11:00 -04:00
Adriaan de Groot
23ed9be130 i18n: translations (stub) of desktop files 2017-08-08 04:05:42 -04:00
Adriaan de Groot
95bba00671 i18n: add .desktop file to translations 2017-08-08 03:55:34 -04:00
Calamares CI
c00350551f [dummypythonqt] Automatic merge of Transifex translations 2017-08-08 03:21:32 -04:00
Calamares CI
6145812b83 [core] Automatic merge of Transifex translations 2017-08-08 03:21:31 -04:00
Adriaan de Groot
17a6ca2207 i18n: automatic i18n merges are down 2017-08-08 03:20:16 -04:00
Adriaan de Groot
61865a8e11 i18n: fix encoding of dummy translations -- not ASCII, but UTF-8 2017-08-07 15:39:02 -04:00
Calamares CI
9619f33e6f [core] Automatic merge of Transifex translations 2017-08-07 13:43:11 -04:00
n3rdopolis
05e48d4357 Remove whitespace 2017-08-06 12:20:26 -04:00
n3rdopolis
aac783ed3a Try to correct character per line count 2017-08-06 12:07:12 -04:00
n3rdopolis
086a019d19 Correct update-initramfs command
This allows it to create a new initramfs, and replace it.
This will better ensure that calamares generated initramfs is used
2017-08-06 11:43:24 -04:00
Kevin Kofler
633a2a193d CMake: fix typo in CalamaresAddPlugin.cmake
Fix "calamaers_add_plugin" typo in the introductory comment of
CMakeModules/CalamaresAddPlugin.cmake.
2017-08-03 02:03:14 +02:00
Adriaan de Groot
c860270751 i18n: mark python example-string as translatable 2017-08-02 14:43:21 -04:00
Adriaan de Groot
f0894b471b i18n: mark non-translatable string as such 2017-08-02 14:40:26 -04:00
Adriaan de Groot
8b19f672e7 CMake: also follow CMAKE_COLOR_MAKEFILE settings 2017-08-02 11:32:27 -04:00
Adriaan de Groot
2fdccdf090 Merge branch 'simplify-module-desc' 2017-08-02 11:29:58 -04:00
Adriaan de Groot
f711d6e39c CMake: colorised through test -t doesn't work 2017-08-02 11:27:14 -04:00
Adriaan de Groot
46636bdf65 Modules: documentation of CMake, module.desc, etc. 2017-08-02 11:05:32 -04:00
Adriaan de Groot
445fdace36 Modules: remove another boilerplate module.desc 2017-08-02 11:05:32 -04:00
Adriaan de Groot
196b1567db Modules: remove boilerplate module.desc 2017-08-02 11:05:32 -04:00
Adriaan de Groot
e3008657c4 Modules: accept 'viewmodule' as alias of 'view', improve logging on error. 2017-08-02 11:05:32 -04:00
Adriaan de Groot
47e95b32a9 CMake: fix auto-generated module.desc 2017-08-02 11:05:32 -04:00
Adriaan de Groot
445a7fc62a CMake: remove welcome-module desc, since it's generated 2017-08-02 11:05:32 -04:00
Adriaan de Groot
bcbd60f9a9 CMake: generate the module.desc, since it is uninteresting 2017-08-02 11:05:32 -04:00
Adriaan de Groot
e6e91546e4 Do not use deprecated type 2017-08-02 07:44:04 -04:00
Adriaan de Groot
f50d12445a Merge pull request #766 from stikonas/master
Port away from deprecated qSort.
2017-08-02 04:04:44 -04:00
Adriaan de Groot
137da0d8ba CMake: document SKIP_MODULES 2017-07-25 09:00:30 +02:00
Adriaan de Groot
5efac3b2a8 CMake: remove now-nonsensical comment 2017-07-25 08:53:27 +02:00
Adriaan de Groot
a23b7c2a00 CMake: be more verbose about choice of webkit vs engine 2017-07-25 09:44:34 +02:00
Calamares CI
c2c55dede1 [core] Automatic merge of Transifex translations 2017-07-22 03:00:00 +00:00
Calamares CI
1c2507d8aa [core] Automatic merge of Transifex translations 2017-07-20 01:26:41 +00:00
Calamares CI
2e2331231c [core] Automatic merge of Transifex translations 2017-07-19 00:44:51 +00:00
Andrius Štikonas
1131fdce4c Port away from deprecated qSort. 2017-07-17 22:53:09 +01:00
Calamares CI
90e83a0fff [core] Automatic merge of Transifex translations 2017-07-17 00:45:45 +00:00
Calamares CI
cef1fede21 [core] Automatic merge of Transifex translations 2017-07-14 01:49:47 +00:00
Calamares CI
dd775663f2 [core] Automatic merge of Transifex translations 2017-07-13 00:44:25 +00:00
Adriaan de Groot
4a5cee133f About: adjust to the system font size.
FIXES #433
2017-07-12 07:43:47 -04:00
Adriaan de Groot
55a63a1f67 RemoveUser: fix bad PEP8-ing
FIXES #577
2017-07-12 07:07:53 -04:00
Adriaan de Groot
3cd18fd285 Partitions: extend getDevices() with minimum size.
This is preparatory work for making the available-space check consistent with
what the partition module will allow for installation. Right now, the check
for available space will allow a mounted drive, even /, to satisfy the check.
2017-07-12 06:40:54 -04:00
Adriaan de Groot
18a1f459db Partition: reduce code duplications 2017-07-12 05:54:22 -04:00
Adriaan de Groot
7d49255a78 Partitions: use an enum with clear semantics instead of bool 2017-07-12 05:41:29 -04:00
Adriaan de Groot
730e0d885f Partitions: use KPMCore-defined default backend 2017-07-12 05:17:34 -04:00
Adriaan de Groot
55c6cfa1ca Partitions: improve wording of debug messages 2017-07-12 04:57:22 -04:00
Adriaan de Groot
102bed1805 Partitions: split device-listing (and winnowing) into separate source file.
The grab-list-of-writable-devices code is usable for the partition module, but
also useful for welcome module, so reduce its footprint.
2017-07-12 04:52:52 -04:00
Adriaan de Groot
e4862512f7 Partitions: split KPMCore-finding code into an include-module 2017-07-12 04:51:05 -04:00
Adriaan de Groot
33bca6d71d Merge commit 'partitions' 2017-07-11 17:46:47 -04:00
Calamares CI
356716f971 [core] Automatic merge of Transifex translations 2017-07-12 00:43:40 +00:00
Adriaan de Groot
594bc37d67 Coverity: uninitialized member 2017-07-11 09:32:09 -04:00
Adriaan de Groot
5bf03cc515 Partitions: shuffle some device-detection code off to PartUtils.cpp 2017-07-11 06:27:19 -04:00
Adriaan de Groot
aeb0cd0d3f Partitions: drop devices with mounted partitions.
FIXES #639
2017-07-11 06:27:19 -04:00
Adriaan de Groot
cc7631dd99 Partitions: code-formatting 2017-07-11 06:27:19 -04:00
Adriaan de Groot
c66807282b CMake: remove editorializing from CMakeLists.txt 2017-07-11 06:26:56 -04:00
Adriaan de Groot
6fb40c517a CMake: collect all the Find-modules at top-level 2017-07-11 06:26:56 -04:00
Adriaan de Groot
d18e3dc385 Travis: use a tmpfs for the actual build 2017-07-11 04:17:11 -04:00
Calamares CI
8c61bc085b [core] Automatic merge of Transifex translations 2017-07-11 01:04:13 +00:00
Adriaan de Groot
7c06556fac Travis: Do an out-of-source build 2017-07-10 19:16:51 -04:00
Adriaan de Groot
ce11c7ab6d LightDM: fix type (thanks Kevin Kofler) 2017-07-10 14:43:13 -04:00
Adriaan de Groot
fc577b4b79 Travis: looks like /build exists in the resulting system, so use /cbuild 2017-07-10 14:38:54 -04:00
Adriaan de Groot
f466c5de80 Travis: try to use the new image again, be stupid about /build 2017-07-10 14:25:19 -04:00
Adriaan de Groot
8ca94db0fa Merge branch 'python-bits' 2017-07-10 12:03:33 -04:00
Adriaan de Groot
ae6a9cd822 Python: move unsquash documentation to the config file 2017-07-10 11:58:58 -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
fcde28ca9d Python: tidy description of hwclock module 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
9561bac1c8 SUSE DM: add special case configuring autologin in sysconfig (openSUSE)
FIXES #582
2017-07-10 10:14:28 -04:00
Adriaan de Groot
984a83deb9 LightDM: if lightdm.conf doesn't exist (for autologin), create it
FIXES #568
2017-07-10 09:27:56 -04:00
Adriaan de Groot
39f6d0e2f5 Merge pull request #763 from shainer/master
Add "MB" suffix to the "edit partition" size box.
2017-07-10 11:22:18 +02:00
Lisa Vitolo
9be15e68b6 Change both size box suffices to MiB. 2017-07-09 18:20:00 +01:00
Lisa Vitolo
925d3a61a7 Add "MB" suffix to the "edit partition" size box.
Makes it easier to know which unit Calamares is using when
resizing a partition. The "Create partition" dialog has
it already.
2017-07-09 10:10:04 -04:00
Calamares CI
861473f3f6 [core] Automatic merge of Transifex translations 2017-07-09 00:41:01 +00:00
Calamares CI
a56cf82d6c [core] Automatic merge of Transifex translations 2017-07-08 00:41:20 +00:00
Calamares CI
a5cf599ea9 [core] Automatic merge of Transifex translations 2017-07-07 00:40:54 +00:00
Calamares CI
955a289e20 [core] Automatic merge of Transifex translations 2017-07-06 00:41:24 +00:00
Adriaan de Groot
0b45a52ad9 CMake: simplify module loading more 2017-07-05 11:17:39 -04:00
Adriaan de Groot
978ff6591c CMake: simplify module loading 2017-07-05 11:14:22 -04:00
Adriaan de Groot
96ef18c2c4 CMake: help find libparted 2017-07-05 11:08:41 -04:00
Adriaan de Groot
db105079ba CMake: drop meta-include CalamaresUse 2017-07-05 10:37:49 -04:00
Adriaan de Groot
2c97f393bc CMake: adjust to moved location, drop useless CalamaresUse.cmake 2017-07-05 10:32:28 -04:00
Adriaan de Groot
9b749576be CMake: move our own modules into the CMakeModules dir, tidy 2017-07-05 10:32:03 -04:00
Adriaan de Groot
d74627b705 CMake: remove superfluous module-path-setting 2017-07-05 10:21:25 -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
e43f41a402 Python: separate description of dummy module from docs of run() 2017-07-05 06:46:29 -04:00
Adriaan de Groot
10eaf06f60 Python: Be more descriptive when modules can't be loaded. 2017-07-05 06:30:23 -04:00
Adriaan de Groot
7ad1c4ccb8 i18n: add Hebrew to the list of languages (new translation) 2017-07-05 04:48:50 -04:00
Calamares CI
1897b62538 [dummypythonqt] Automatic merge of Transifex translations 2017-07-05 00:42:16 +00:00
Calamares CI
831b7757f2 [core] Automatic merge of Transifex translations 2017-07-05 00:42:14 +00:00
Adriaan de Groot
57031a4c15 Merge branch 'ui-tweaks' 2017-07-04 08:53:21 -04:00
Adriaan de Groot
3c3c0f99f8 C++ trickery, part two: shorten code 2017-07-04 08:42:14 -04:00
Adriaan de Groot
5a3bbe8088 FinishedPage: show message instead of details on failure 2017-07-04 08:16:28 -04:00
Adriaan de Groot
d3f624f818 FinishedPage: no modal pop-ups in a slot
Switch the failure popup to non-modal, and quit the application when
the pop-up is closed. This allows signals to be delivered to other
slots connected to JobQueue::failed.
2017-07-04 08:14:30 -04:00
Adriaan de Groot
232bbe18bc Be more verbose while scanning devices 2017-07-04 05:32:05 -04:00
Adriaan de Groot
ef065c1183 Merge branch 'master' into annoy-sitter 2017-07-04 04:32:02 -04:00
Adriaan de Groot
44e6955f19 Feature: allow disable welcome-logo resizing 2017-07-04 04:30:08 -04:00
Adriaan de Groot
c4f955874d QLabel::setPixmap() isn't virtual, don't make it so. 2017-07-04 03:36:42 -04:00
Calamares CI
77fd8be881 [dummypythonqt] Automatic merge of Transifex translations 2017-07-04 01:22:28 +00:00
Calamares CI
9d2f8cac3c [core] Automatic merge of Transifex translations 2017-07-04 01:22:26 +00:00
Adriaan de Groot
ee4e4dfccc C++ trickery to make the code shorter to read. 2017-07-03 18:07:18 -04:00
Adriaan de Groot
3ecd2f2ff6 Add self to copyright notice 2017-07-03 15:39:21 -04:00
Adriaan de Groot
09a7988622 FinishedPage: add copyright, reduce warnings 2017-07-03 11:36:36 -04:00
Adriaan de Groot
c9c4e4d064 Merge pull request #759 from Psy-Kai/master
Fix unknown partition-type Fat32 at mount and in fstab
2017-07-03 11:33:52 -04:00
Adriaan de Groot
72659dc6e1 FinishedPage: don't reboot on failure
If installation fails, and you end up on the last page, suppress the
reboot-now checkbox.

FIXES #605
2017-07-03 11:32:47 -04:00
Kai Dohmen
6f680c0269 Fix unknown partition-type Fat32 at mount and in fstab
Only the string "fat32" and "fat16" will be replaced with vfat. If an
case sensitive "Fat32" some problems occure:
- mount: partition cannot be mounted (e.g. a fat32 efi partition)
- fstab: system won't even boot because fstab does not know the type "Fat32"
2017-07-03 17:20:02 +02:00
Adriaan de Groot
da75035654 Cleanup: summary module description 2017-07-03 10:26:59 -04:00
Adriaan de Groot
79595eb532 Coverity: explicitly initialize 2017-07-03 09:21:05 -04:00
Adriaan de Groot
ef8cbcf526 Coverity: add (stub) modeling file 2017-07-03 09:18:09 -04:00
Adriaan de Groot
5704719ea4 CMake: minor styling 2017-07-03 08:16:09 -04:00
Adriaan de Groot
43e7ea6265 Merge branch 'no-rcc' 2017-07-03 05:48:50 -04:00
Adriaan de Groot
9b3af4aac3 i18n: translate yes/no buttons, don't rely on Qt translations 2017-07-03 05:46:33 -04:00
Adriaan de Groot
4885b4afec i18n: reduce noise-only commits from Transifex 2017-07-03 05:23:58 -04:00
Calamares CI
6291cc9db1 [dummypythonqt] Automatic merge of Transifex translations 2017-07-03 02:51:00 +00:00
Calamares CI
314282731b [dummypythonqt] Automatic merge of Transifex translations 2017-07-03 00:40:53 +00:00
Calamares CI
c583e4c21b [dummypythonqt] Automatic merge of Transifex translations 2017-07-02 02:50:59 +00:00
Calamares CI
955c20c8d7 [dummypythonqt] Automatic merge of Transifex translations 2017-07-02 00:40:16 +00:00
Calamares CI
75e9123e05 [core] Automatic merge of Transifex translations 2017-07-02 00:40:15 +00:00
Calamares CI
a9b89d1b25 [dummypythonqt] Automatic merge of Transifex translations 2017-07-01 03:09:55 +00:00
Calamares CI
b3fbfec997 [dummypythonqt] Automatic merge of Transifex translations 2017-07-01 01:01:58 +00:00
Calamares CI
b2fe83d698 [core] Automatic merge of Transifex translations 2017-07-01 01:01:55 +00:00
Calamares CI
6b7a03ea97 [dummypythonqt] Automatic merge of Transifex translations 2017-06-30 03:26:52 +00:00
Calamares CI
418974c0ea [dummypythonqt] Automatic merge of Transifex translations 2017-06-30 01:23:26 +00:00
Calamares CI
1f8af77738 [core] Automatic merge of Transifex translations 2017-06-30 01:23:24 +00:00
Adriaan de Groot
75b5303b49 i18n: stop trying to install Qt translations 2017-06-29 06:29:29 -04:00
Adriaan de Groot
611cb1f94c i18n: QT_TRANSLATIONS_DIR hasn't been set since Qt 5.3.
None of the Qt translations are found, nor shipped along with the
Calamares translations; it depends on the translations of Qt
on the live system. The mechanism was broken, anyway, by the
split into qt_<foo>.qm and qtbase_<foo>.qm, and the introduction
for QPT for the translation of standard button texts.

Just drop the special code looking for Qt translations and the
rcc hacks that entails.

FIXES #336
2017-06-29 06:25:49 -04:00
Adriaan de Groot
61c0ab4534 Clang: fix the right conversions (thanks KKofler) 2017-06-29 06:18:52 -04:00
Calamares CI
0b6e43c899 [dummypythonqt] Automatic merge of Transifex translations 2017-06-29 02:49:05 +00:00
Calamares CI
de1755c404 [core] Automatic merge of Transifex translations 2017-06-29 02:49:04 +00:00
Philip Müller
f64266a294 Merge pull request #758 from manjaro/lightdm-greeters
[displaymanager] check for installed lightdm greeter and configure accordingly
2017-06-28 17:04:40 +02:00
Bernhard Landauer
a1173bccc2 [displaymanager] check for installed lightdm greeter and configure accordingly
- no matter if for example slick-greeter is installed as "lightdm-slick-greeter" or whatever.
  tested with lightdm-deepin-greeter and slick-greeter.
- plus some little simplifications
- added Copyright
https://github.com/calamares/calamares/issues/756
2017-06-28 16:43:07 +02: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
97ded0ec48 i18n: see if Transifex sync uses these scripts. 2017-06-28 08:09:22 -04:00
Adriaan de Groot
4561849c39 UI: add tooltip to Cancel / Quit button
Change 'Quit' at the end to 'Done', because we're done -- and Quit
is sometimes interpreted as cancelling. Tooltip for additional
explanation.
2017-06-28 07:48:51 -04:00
Adriaan de Groot
d669df625a Clang: static QString -> literal 2017-06-28 06:35:41 -04:00
Adriaan de Groot
c0b3f3fe9d Clang: reduce warnings; make enum-switch explicit 2017-06-28 05:49:53 -04:00
Adriaan de Groot
2905a9969d SDDM-config: allow poorly formatted SDDM config
SDDM itself doesn't trip over duplicate sections or keys, but
the Python config-parser does (in strict mode). Relax a bit.

FIXES #579
2017-06-28 03:57:01 -04:00
Adriaan de Groot
90e8a6cff9 Shrink upper padding.
FIXES #591
2017-06-28 02:46:24 -04:00
Calamares CI
a2a94af984 [dummypythonqt] Automatic merge of Transifex translations 2017-06-28 02:49:02 +00:00
Calamares CI
d2058df677 [dummypythonqt] Automatic merge of Transifex translations 2017-06-28 00:37:14 +00:00
Calamares CI
7650924407 [core] Automatic merge of Transifex translations 2017-06-28 00:37:13 +00:00
Adriaan de Groot
a41a23a230 Merge pull request #757 from manjaro/deepin-greeter
fix #756 .. good catch
2017-06-27 09:44:30 -04:00
Adriaan de Groot
cea9f0fb33 Clang: stick with integers 2017-06-27 09:28:32 -04:00
Adriaan de Groot
8f867f72bc Translation: this is a CSS string, shouldn't be translated at all. 2017-06-27 09:27:01 -04:00
Bernhard Landauer
72cfb83873 fix https://github.com/calamares/calamares/issues/756 2017-06-27 14:50:53 +02:00
Adriaan de Groot
3b0b05186a Clang: reduce warnings 2017-06-27 07:36:46 -04:00
Adriaan de Groot
b20defc411 Clang: be less pedantic about c++98 compatibility 2017-06-27 07:21:05 -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
09b25ab3e9 Clang: make ViewManager instance a proper singleton. 2017-06-27 06:46:59 -04:00
Adriaan de Groot
6a3aa01564 Clang: reduce warnings 2017-06-27 06:11:26 -04:00
Adriaan de Groot
2add7f6f86 Clang: type-annotate float literal 2017-06-27 06:08:07 -04:00
Adriaan de Groot
3b5955900e Coverity: explicit initialization 2017-06-27 06:05:26 -04:00
Adriaan de Groot
e415660f96 Docs: update RELEASE documentation a bit 2017-06-27 06:01:57 -04:00
Adriaan de Groot
d756edfc9a CMake: turn testing on, following KDE style.
A new option BUILD_TESTING is available; you can turn this off at
CMake-time, but building the tests themselves is harmless (although
it takes some CPU time).

The main advantage of doing this is that running the tests becomes
simple:
    make test
Instead of figuring out which tests there are and how to run them
individually. Note that the partition-manager tests will normally
fail, because they require an additional environment variable to
be set to tell them what disk to destroy.
2017-06-27 05:05:12 -04:00
Adriaan de Groot
5a1a02197d CMake: since 3.2 is required, no need for the check 2017-06-27 04:56:38 -04:00
Calamares CI
aba0f6f8ca [dummypythonqt] Automatic merge of Transifex translations 2017-06-27 02:49:21 +00:00
Calamares CI
02ba6cb66b [dummypythonqt] Automatic merge of Transifex translations 2017-06-27 00:37:07 +00:00
Calamares CI
c1d9c52aa0 [core] Automatic merge of Transifex translations 2017-06-27 00:37:06 +00:00
Calamares CI
14c5b57fcc [dummypythonqt] Automatic merge of Transifex translations 2017-06-26 02:49:04 +00:00
Calamares CI
dac25a2000 [dummypythonqt] Automatic merge of Transifex translations 2017-06-26 00:37:32 +00:00
Calamares CI
00f2aaba85 [dummypythonqt] Automatic merge of Transifex translations 2017-06-25 02:48:46 +00:00
Calamares CI
fd95566ee5 [core] Automatic merge of Transifex translations 2017-06-25 02:48:45 +00:00
Calamares CI
91c746ada8 [dummypythonqt] Automatic merge of Transifex translations 2017-06-24 02:49:37 +00:00
Calamares CI
cf0f815284 [dummypythonqt] Automatic merge of Transifex translations 2017-06-24 00:37:01 +00:00
Calamares CI
fd973a813d [core] Automatic merge of Transifex translations 2017-06-24 00:37:00 +00:00
Philip
ea8b6c8ba8 [travis] use depreciated Trusty images
- see also: https://blog.travis-ci.com/2017-06-21-trusty-updates-2017-Q2-launch
- we may check this until September 1st
2017-06-23 10:43:24 +02:00
Calamares CI
849edba14c [dummypythonqt] Automatic merge of Transifex translations 2017-06-23 02:49:12 +00:00
Calamares CI
0ee309f354 [dummypythonqt] Automatic merge of Transifex translations 2017-06-23 00:37:26 +00:00
Calamares CI
9ee6517cc4 [core] Automatic merge of Transifex translations 2017-06-23 00:37:25 +00:00
Adriaan de Groot
70ed67744f Release: drop rc-number 2017-06-21 18:38:53 -04:00
Calamares CI
43fbc42d47 [dummypythonqt] Automatic merge of Transifex translations 2017-06-22 02:52:03 +00:00
Calamares CI
c69cfde0b1 [dummypythonqt] Automatic merge of Transifex translations 2017-06-22 00:37:01 +00:00
Calamares CI
6627d75489 [core] Automatic merge of Transifex translations 2017-06-22 00:37:00 +00:00
Adriaan de Groot
4841230801 Release: bump version number 2017-06-21 10:30:51 -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
12a0edfa50 Clang: reduce warnings 2017-06-21 07:28:38 -04:00
Adriaan de Groot
2148538fac Clang: reduce warnings 2017-06-21 07:28:38 -04:00
Adriaan de Groot
4643ba0adc Clang: improve usefullness of clang-warnings
- don't check c++98 compatibility
 - don't show warnings on third-party code
 - don't check for padding
2017-06-21 07:27:59 -04:00
Adriaan de Groot
1f458ac067 Merge branch 'screen-size' 2017-06-21 06:53:10 -04:00
Adriaan de Groot
b0c4cc1481 Screensize: warn the user if the screen is too small to show the installer nicely.
Also document the welcome screen requirements-checks.

FIXES #751
2017-06-21 06:52:14 -04:00
Adriaan de Groot
d9ea22a486 Screensize: refactor, move screen-size constants into global constexpr
Also drop the minimum size a tiny bit, to 1024x520.
2017-06-21 06:51:51 -04:00
Adriaan de Groot
f9ee774d4e Screensize: on small screens, crush the sidebar.
This still isn't enough to show the whole timezone or keyboard widget,
but does make more of it visible.
2017-06-21 04:42:02 -04:00
Calamares CI
31c08eef6b [dummypythonqt] Automatic merge of Transifex translations 2017-06-21 02:48:45 +00:00
Calamares CI
49fa7ab078 [dummypythonqt] Automatic merge of Transifex translations 2017-06-21 01:03:09 +00:00
Calamares CI
849cf1286a [core] Automatic merge of Transifex translations 2017-06-21 01:03:08 +00:00
Adriaan de Groot
0edf041b31 Screensize: on small screens, be smaller.
On 1024x768, limit to 1024x520.
On 800x600, limit to 800x520. This is too small to show everything in the
  timezone widget and keyboard, so it needs some more work.
2017-06-20 18:18:56 -04:00
Adriaan de Groot
742ccf02a7 Merge branch 'salt' 2017-06-20 17:47:05 -04:00
Adriaan de Groot
9f526be198 Salt: add test for salt format 2017-06-20 17:43:50 -04:00
Adriaan de Groot
de45f43640 Salt: add copyright info 2017-06-20 17:18:12 -04:00
Adriaan de Groot
6616315269 Partitionmanager: minor docs edit 2017-06-20 10:03:44 -04:00
Adriaan de Groot
4c9703ad27 Merge branch 'master' into salt 2017-06-20 09:46:41 -04:00
Adriaan de Groot
22ccf920d7 Merge branch 'pm-tests' of github.com:calamares/calamares 2017-06-20 09:45:48 -04:00
Adriaan de Groot
8708260689 Partitionmanager: fix PM-tests build 2017-06-20 09:45:32 -04:00
Adriaan de Groot
7ebbcc33b2 Partitionmanager: remove unused code files 2017-06-20 07:23:04 -04:00
Adriaan de Groot
ea44021cb4 Partitionmanager: partly fix PM-tests build 2017-06-20 07:10:29 -04:00
Adriaan de Groot
f1ab9df7ee Salt: improve saltiness. 2017-06-20 04:39:04 -04:00
Calamares CI
e9aea41a25 [dummypythonqt] Automatic merge of Transifex translations 2017-06-20 02:49:51 +00:00
Calamares CI
287dbad807 [dummypythonqt] Automatic merge of Transifex translations 2017-06-20 00:38:45 +00:00
Calamares CI
56befc9a8c [core] Automatic merge of Transifex translations 2017-06-20 00:38:44 +00:00
Adriaan de Groot
4405790253 Displaymanager: simplify gdm configuration.
Replace calling out to shell to run echo redirected to a file by
opening the file and writing to it.
2017-06-19 18:20:24 -04:00
Adriaan de Groot
70af29672d Displaymanager: check alternative locations for kdmrc.
FIXES #578
2017-06-19 18:05:34 -04:00
Adriaan de Groot
582e4354a7 Displaymanager: refactor a little, don't bail out at the first DM that doesn't configure 2017-06-19 18:00:10 -04:00
Adriaan de Groot
ee030c4d56 CMake: revertlast, DESTDIR is the way to stage.
Thanks to Kevin Kofler for putting me back on the right track.
2017-06-19 17:40:51 -04:00
Adriaan de Groot
ae34d99f10 Netinstall: remove no-longer-used icons and qrc 2017-06-19 16:58:56 -04:00
Adriaan de Groot
448af86242 CMake: follow prefix even for the polkit files, for easier staged installs. 2017-06-19 16:55:05 -04:00
Adriaan de Groot
e9ab78cd52 Keyboard: special-case, pc+latin interpreted as us,
instead of as unknown which selects the first layout in the list.
2017-06-19 11:12:23 -04:00
Adriaan de Groot
6ef2f5d769 Keyboard: code-docs, copyright 2017-06-19 10:46:30 -04:00
Adriaan de Groot
59605d552e Keyboard: simplify execution of setxkbmap.
Use QProcess::execute() with the 'safer' argument-list, rather than
escaping and de-escaping strings. Also reduce noise by only passing
a variant if there is one.
2017-06-19 10:41:56 -04:00
Adriaan de Groot
444aa24a04 Increate the maximum allowed length of a hostname.
The hostname madagascarsteenplaatschildpad (.uva.nl) doesn't fit in 24,
and hostname(1) accepts up to 64 characters. The RFCs vary, but 63 +
terminating NUL or length-octet + data maximum 64 bytes seen to be
the common ground.

FIXES #514
2017-06-19 05:16:54 -04:00
Philip
7eeb4dbed4 [CMakeModules] Add support for PythonQT v3.2+
- this fixes #749
2017-06-19 10:47:52 +02:00
Calamares CI
fe15b11520 [dummypythonqt] Automatic merge of Transifex translations 2017-06-19 02:48:58 +00:00
Calamares CI
c4ed76b1d0 [dummypythonqt] Automatic merge of Transifex translations 2017-06-19 00:37:26 +00:00
Calamares CI
959e37807d [core] Automatic merge of Transifex translations 2017-06-19 00:37:25 +00:00
Calamares CI
ea64341a87 [dummypythonqt] Automatic merge of Transifex translations 2017-06-18 02:48:40 +00:00
Calamares CI
3753a802e0 [dummypythonqt] Automatic merge of Transifex translations 2017-06-18 00:37:15 +00:00
Calamares CI
cddc03f091 [core] Automatic merge of Transifex translations 2017-06-18 00:37:14 +00:00
Adriaan de Groot
ce6997d214 Coverity: fix some uninitialized members 2017-06-17 15:14:02 -04:00
Calamares CI
ce2fb6e3c5 [dummypythonqt] Automatic merge of Transifex translations 2017-06-17 02:48:52 +00:00
Calamares CI
04d477f5b3 [dummypythonqt] Automatic merge of Transifex translations 2017-06-17 00:58:59 +00:00
Calamares CI
d0ecb3500a [core] Automatic merge of Transifex translations 2017-06-17 00:58:58 +00:00
Calamares CI
09d1131003 [dummypythonqt] Automatic merge of Transifex translations 2017-06-16 02:48:57 +00:00
Calamares CI
85a7215526 [dummypythonqt] Automatic merge of Transifex translations 2017-06-16 00:39:24 +00:00
Calamares CI
f0f53037c0 [core] Automatic merge of Transifex translations 2017-06-16 00:39:23 +00:00
Calamares CI
8209e305de [dummypythonqt] Automatic merge of Transifex translations 2017-06-15 02:48:49 +00:00
Calamares CI
bf093dc743 [dummypythonqt] Automatic merge of Transifex translations 2017-06-15 00:59:52 +00:00
Calamares CI
f48c004d27 [core] Automatic merge of Transifex translations 2017-06-15 00:59:51 +00:00
Adriaan de Groot
46a2503c87 PartitionModule: skip nullptr devices, and report count
FIXES #686
2017-06-14 12:24:32 -04:00
Adriaan de Groot
92a2c7aa70 PartitionModule: avoid nullptr crashes
Fix up iterator code so that it handles nullptr better.
This avoids part of #686.
2017-06-14 12:24:32 -04:00
Adriaan de Groot
3677708d3e PartitionModule: look for atasmart and blkid, to avoid link-time failure.
This just puts a warning in the cmake log, but will help diagnose
situations where libatasmart.so.4 is installed, but libatasmart.so
is not -- in which case -latasmart fails.
2017-06-14 12:23:33 -04:00
Calamares CI
81421db073 [dummypythonqt] Automatic merge of Transifex translations 2017-06-14 02:48:54 +00:00
Calamares CI
fbd8ce124e [dummypythonqt] Automatic merge of Transifex translations 2017-06-14 01:41:08 +00:00
Calamares CI
1040929d2a [core] Automatic merge of Transifex translations 2017-06-14 01:41:07 +00:00
Calamares CI
6f8b9d768f [dummypythonqt] Automatic merge of Transifex translations 2017-06-13 02:48:57 +00:00
Calamares CI
1ce361dc02 [core] Automatic merge of Transifex translations 2017-06-13 02:48:56 +00:00
Calamares CI
e507528cc2 [dummypythonqt] Automatic merge of Transifex translations 2017-06-13 00:58:52 +00:00
Calamares CI
a6e3ddfd59 [core] Automatic merge of Transifex translations 2017-06-13 00:58:50 +00:00
Adriaan de Groot
201a015bd4 Docs: welcomeStyleCalamares documentation / example 2017-06-12 15:31:23 -04:00
Adriaan de Groot
6e69585b31 Merge branch 'welcome-string' 2017-06-12 15:26:18 -04:00
Adriaan de Groot
f1cfde36d6 Allow different welcome message.
FIXES #592
2017-06-12 15:25:54 -04:00
Adriaan de Groot
e92d82c5db Cleanup: add copyright lines 2017-06-12 09:59:04 -04:00
Adriaan de Groot
5f38da9d30 Docs: styles in the branding file 2017-06-12 09:55:39 -04:00
Rohan Garg
b90fdaca7a Use KDE Neon since it has a newer kpmcore 2017-06-12 13:03:24 +02:00
Adriaan de Groot
b7a0b3930f Reduce minimum-width to 800px
Tested in a VirtualBox setup with screen set to 800x600,
all of the Generic Linux RT components are visible, and
the buttons are too (which fall off the screen otherwise).

FIXES #731
2017-06-12 12:36:48 +02:00
Adriaan de Groot
fc5522741a Bump required KPMCore to 3.0.3
The newer release resolves (upstream) a problem with NVMe encryption.

FIXES #697
2017-06-12 12:36:45 +02:00
Adriaan de Groot
e771845d91 Cleanup: bump CMake requirement, so we have better C++14 build support 2017-06-12 12:36:03 +02:00
Adriaan de Groot
aea73b982e Cleanup: require ECM 5.10 or later (released 2015) 2017-06-12 05:14:27 -04:00
Adriaan de Groot
5382a510a9 Cleanup: switch to C++11 user-defined literals 2017-06-12 04:51:55 -04:00
Adriaan de Groot
4fab3c93c2 Docs: document effect of ensureSuspendToisk more thoroughly 2017-06-12 04:19:31 -04:00
Adriaan de Groot
829f72363e Cleanup: remove duplicate #define 2017-06-12 03:32:22 -04:00
Calamares CI
99b00229b6 [dummypythonqt] Automatic merge of Transifex translations 2017-06-12 02:48:41 +00:00
Calamares CI
8de4b7fdd1 [dummypythonqt] Automatic merge of Transifex translations 2017-06-12 00:36:38 +00:00
Calamares CI
5c5a35081d [dummypythonqt] Automatic merge of Transifex translations 2017-06-11 02:49:18 +00:00
Calamares CI
d3b70da243 [dummypythonqt] Automatic merge of Transifex translations 2017-06-10 02:48:43 +00:00
Calamares CI
17b421a16d [dummypythonqt] Automatic merge of Transifex translations 2017-06-10 00:36:26 +00:00
Calamares CI
b53a21af3f [dummypythonqt] Automatic merge of Transifex translations 2017-06-09 02:48:59 +00:00
Calamares CI
56d7d32f0d [dummypythonqt] Automatic merge of Transifex translations 2017-06-09 00:58:32 +00:00
Adriaan de Groot
90bedac341 Merge branch 'AOSC-Dev-master' 2017-06-08 06:22:16 -04:00
Adriaan de Groot
bfe7334812 Branding: add example setting, document fallback behavior 2017-06-08 06:21:06 -04:00
Adriaan de Groot
daf5b025ce Branding: fall back to original app palette 2017-06-08 06:17:24 -04:00
Adriaan de Groot
14912d6c63 Merge branch 'master' of https://github.com/AOSC-Dev/calamares into AOSC-Dev-master 2017-06-08 04:54:06 -04:00
Adriaan de Groot
88715b9a0f Keyboard: guess at layout based on locale
Split locale into <language>_<country> and go looking for keyboard
layouts that match. Do that in reverse, so look for country first.

- known weakness is el_CY (should get layout gr) because CY and el
  don't name any keyboard layout.
- known weakness are Hausa, Igbo .. which are ha_NG and ig_NG. They select
  keyboard layout ng, which is labeled "English (Nigeria)"; they ought
  to select ng(hausa) and ng(igbo), which are the right variant keyboard
  layouts to use.
- similar selecting a locale in Canada (en_CA, fr_CA, iu_CA ...) will
  select keyboard layout ca, which is for French-speaking Canada.
  Locale en_CA should select keyboard en -- e.g. en(us). But iu_CA
  (Inuktituk) needs layout ca(ike).
2017-06-08 10:15:30 +02:00
Adriaan de Groot
8d9f75ffba Keyboard: refactor type declaration 2017-06-08 10:15:30 +02:00
Calamares CI
38ff1a9753 [dummypythonqt] Automatic merge of Transifex translations 2017-06-08 02:48:57 +00:00
Calamares CI
27e1983a2c [dummypythonqt] Automatic merge of Transifex translations 2017-06-08 00:36:11 +00:00
adriaandegroot
2c0802d18e Merge pull request #742 from siduction/pep8-displaymanager
Fixed pep8 whining in module displaymanager
2017-06-07 03:27:19 -04:00
adriaandegroot
ca76199705 Merge pull request #740 from siduction/pep8-services
Fixed pep8 whining in module services
2017-06-07 03:19:16 -04:00
Adriaan de Groot
b6715098e1 Manual: move to section 8, minor polishing 2017-06-07 03:03:29 -04:00
adriaandegroot
1813686d19 Merge pull request #275 from highvoltage/add-man-page
Add man page
2017-06-07 02:58:27 -04:00
Calamares CI
df8067d767 [dummypythonqt] Automatic merge of Transifex translations 2017-06-07 02:48:51 +00:00
Calamares CI
2e5aed22dd [dummypythonqt] Automatic merge of Transifex translations 2017-06-07 00:36:26 +00:00
Calamares CI
b11de8b29d [core] Automatic merge of Transifex translations 2017-06-07 00:36:25 +00:00
Adriaan de Groot
56dec8f575 Merge branch 'locale-fixes' 2017-06-07 03:59:46 +06:00
adriaandegroot
aa75fda9f2 Merge pull request #738 from siduction/pep8-unpackfs
Fixed pep8 whining in module unpackfs
2017-06-06 14:59:22 -07:00
Adriaan de Groot
e1a5af6529 Locale: when entering page, guess language.
If user picks an installer language on the welcome page, then
the system language follows that setting -- but only after the
first action where Calamares must guess the system language
based on location. So guess on entry, so that system language
follows installer language.

FIXES #688.
2017-06-07 03:52:44 +06:00
Alf Gaida
f9695cabac Fixed pep8 whining in module displaymanager
Added myself to copyright
2017-06-06 20:35:07 +02:00
Alf Gaida
48b3699a0f Fixed pep8 whining in module services
Added myself to copyright
2017-06-06 18:26:29 +02:00
Alf Gaida
5f7b1dda26 Fixed pep8 whining in module unpackfs
Added myself to copyright
2017-06-06 17:44:53 +02:00
Adriaan de Groot
d545904f5c Locale: don't overwrite explicit choice
If the user selects a language from the dialog (by clicking 'change'),
then preserve that explicit choice even when clicking on another
location which would reset the language based on the installer-
language.
2017-06-06 21:08:15 +06:00
Adriaan de Groot
89753a35f0 Locale: double-click to close locale-selection dialog 2017-06-06 09:31:22 -05:00
Rohan Garg
ad1c96cdd1 Use ftp.debian.org since deb.debian.org keeps 503'ing 2017-06-06 15:32:09 +02:00
Adriaan de Groot
f1bb16c4df Merge branch 'locale-fixes' 2017-06-06 09:26:26 -04:00
Adriaan de Groot
4df0de200b Locale: refactor to update labels in one place only 2017-06-06 09:22:21 -04:00
Adriaan de Groot
e0988a5e19 Timezones: make some TZ+0 pixels transparent, since otherwise it claims Amsterdam 2017-06-06 09:22:21 -04:00
Adriaan de Groot
3ae12f2573 Keyboard: avoid multiple connects
When selecting keyboard layout, pause, then select another, the
QTimer wasn't being disconnected from the previously selected
language, so the second selection would fire the timeout, and
then call *two* slots .. and then three, ... Disconnect when
the timer fires, too.
2017-06-06 09:22:21 -04:00
Adriaan de Groot
d29acf4a06 Logging: add a global storage dump method 2017-06-06 09:22:21 -04:00
Adriaan de Groot
17b8a9d884 Logging: format the multi-line warning about no-supported-languages 2017-06-06 09:10:13 -04:00
Adriaan de Groot
14cba59ab3 Logging: distinguish different failures in module instantiation. 2017-06-06 09:10:13 -04:00
adriaandegroot
eb2c14b7f6 Merge pull request #739 from siduction/pep8-grubcfg
Fixed pep8 whining in module grubcfg
2017-06-06 12:20:46 +02:00
Adriaan de Groot
29d91a4fbf Python-style: refactor calculating target path of hook-script 2017-06-06 16:18:26 +06:00
adriaandegroot
a752df2db0 Merge pull request #741 from siduction/pep8-initramfscfg
Fixed pep8 whining in module initramfscfg
2017-06-06 12:11:05 +02:00
Calamares CI
edfb87a0e6 [dummypythonqt] Automatic merge of Transifex translations 2017-06-06 02:48:53 +00:00
Calamares CI
c0a427bde8 [dummypythonqt] Automatic merge of Transifex translations 2017-06-06 00:36:16 +00:00
Calamares CI
275d4e8cd5 [core] Automatic merge of Transifex translations 2017-06-06 00:36:15 +00:00
adriaandegroot
af303c9961 Merge pull request #737 from siduction/pep8-networkcfg
Fixed pep8 whining in module networkcfg
2017-06-05 12:25:37 -06:00
Calamares CI
7ba1580461 [dummypythonqt] Automatic merge of Transifex translations 2017-06-05 02:48:44 +00:00
Calamares CI
325e90c186 [dummypythonqt] Automatic merge of Transifex translations 2017-06-05 00:36:00 +00:00
Calamares CI
d88665f50e [core] Automatic merge of Transifex translations 2017-06-05 00:35:59 +00:00
Adriaan de Groot
434ac4f728 Python-style: don't check third-party code 2017-06-04 20:48:04 +02:00
Alf Gaida
9e9e1e6550 Fixed pep8 whining in module initramfscfg
added myself to copyright
2017-06-04 16:18:17 +02:00
Adriaan de Groot
231a83cf6b Python-style: actually add the new copyright headers 2017-06-04 15:01:25 +02:00
adriaandegroot
cc8f19dd7c Merge pull request #718 from siduction/pep8-fstab
Fixed pep8 whining for module fstab
2017-06-04 14:54:56 +02:00
Adriaan de Groot
0b1577ace4 Fixed pep8-whining in module luksbootkeyfile
Based on PR 736 (so add Alf to copyright as well)
2017-06-04 14:51:35 +02:00
Alf Gaida
4eb0e70984 Fixed pep8 whining in module grubcfg
added myself to copyright
2017-06-04 13:57:49 +02:00
Alf Gaida
748135ae12 Fixed pep8 whining in module networkcfg
added myself to copyright
2017-06-04 13:31:08 +02:00
adriaandegroot
1dfc12e276 Merge pull request #733 from siduction/pep8-initramfs
Fixed pep8 whining in modulde initramfs
2017-06-04 12:06:43 +02:00
Adriaan de Groot
3804e4df68 Python-style: follow-up to PR 735, remove non-idiomatic use of 'is' 2017-06-04 11:37:12 +02:00
adriaandegroot
084e304c07 Merge pull request #735 from siduction/pep8-initcpiocfg
Fixed pep8 whining in module initcpiocfg
2017-06-04 11:35:15 +02:00
adriaandegroot
42f4162338 Merge pull request #734 from siduction/pep8-luksopenswaphookcfg
Fixed pep8 whininig in module luksopenswaphookcfg
2017-06-04 11:13:24 +02:00
adriaandegroot
65834b019c Merge pull request #717 from siduction/pep8-mount
Fixed pep8 whining in module mount
2017-06-04 11:12:03 +02:00
adriaandegroot
c19ae0e247 Merge pull request #732 from siduction/pep8-hwclock
Fixed pep8 whining in module hwclock
2017-06-04 11:09:15 +02:00
Adriaan de Groot
1cb10d634a Python-style: note that pycodestyle is used as style-guide 2017-06-04 11:02:56 +02:00
Calamares CI
cd517e9879 [dummypythonqt] Automatic merge of Transifex translations 2017-06-04 02:48:40 +00:00
Calamares CI
ef334961d1 [dummypythonqt] Automatic merge of Transifex translations 2017-06-04 00:35:55 +00:00
Calamares CI
3f4d42756a [dummypythonqt] Automatic merge of Transifex translations 2017-06-03 02:48:41 +00:00
Calamares CI
53ea4a5b6a [dummypythonqt] Automatic merge of Transifex translations 2017-06-03 00:39:35 +00:00
Alf Gaida
b7488b611b Fixed pep8 whining in module initcpiocfg
Added myself to copyright
2017-06-02 22:26:58 +02:00
Alf Gaida
97c48a2e5d Fixed pep8 whininig in module luksopenswaphookcfg
added myself to copyright
2017-06-02 22:16:25 +02:00
Alf Gaida
536054b0cd Fixed pep8 whining in modulde initramfs
added myself to copyright
2017-06-02 21:53:31 +02:00
Alf Gaida
4dbb097fd3 Fixed pep8 whining for module fstab
compact the fstab line
added myself to copyright
2017-06-02 20:55:26 +02:00
Alf Gaida
80b87d712b Fixed pep8 whining in module hwclock
Added myself to copyright
2017-06-02 20:14:10 +02:00
Alf Gaida
5ed51bc5b0 reworked intendation 2017-06-02 19:58:36 +02:00
Adriaan de Groot
bc4cbd7964 Merge branch 'allow-empty-configs' 2017-06-02 16:19:50 +02:00
Adriaan de Groot
367fe716b3 Configs: empty config files are ok.
The default umount.conf contains no keys -- so it isn't a map,
but it is a valid config file. Avoid the warning by accepting
empty files.

FIX 707
2017-06-02 16:10:08 +02:00
Adriaan de Groot
7e87e3ccb5 Configs: fix trivial spelling error 2017-06-02 15:43:07 +02:00
adriaandegroot
84f13f295c Merge pull request #722 from shadeslayer/cleanup
Add additional variables to help improve readability
2017-06-02 12:11:28 +02:00
adriaandegroot
f93a7fbd28 Merge pull request #719 from siduction/pep8-packages
Fixed pep8 whining in module packages
2017-06-02 12:04:59 +02:00
adriaandegroot
b2a119676d Merge pull request #710 from siduction/travis-codestyle
Switch from pep8 to pycodestyle
2017-06-02 10:48:59 +02:00
Calamares CI
4954c751af [dummypythonqt] Automatic merge of Transifex translations 2017-06-02 02:48:36 +00:00
Calamares CI
2e12ff4acf [dummypythonqt] Automatic merge of Transifex translations 2017-06-02 00:37:01 +00:00
Calamares CI
db1d4ba27a [dummypythonqt] Automatic merge of Transifex translations 2017-06-01 02:48:49 +00:00
Calamares CI
88671675ba [dummypythonqt] Automatic merge of Transifex translations 2017-06-01 00:36:48 +00:00
Calamares CI
ad0a916ab3 [dummypythonqt] Automatic merge of Transifex translations 2017-05-31 02:51:07 +00:00
Calamares CI
3d1150cea3 [core] Automatic merge of Transifex translations 2017-05-31 02:51:06 +00:00
Calamares CI
4e94383c14 [dummypythonqt] Automatic merge of Transifex translations 2017-05-30 02:49:07 +00:00
Calamares CI
0f10543324 [dummypythonqt] Automatic merge of Transifex translations 2017-05-30 00:36:34 +00:00
Calamares CI
2adf4f3bdc [dummypythonqt] Automatic merge of Transifex translations 2017-05-29 02:48:50 +00:00
Calamares CI
a963709b1c [dummypythonqt] Automatic merge of Transifex translations 2017-05-29 00:37:33 +00:00
Calamares CI
7016bdb920 [core] Automatic merge of Transifex translations 2017-05-29 00:37:32 +00:00
Calamares CI
020be45bea [dummypythonqt] Automatic merge of Transifex translations 2017-05-28 02:48:53 +00:00
Calamares CI
3fbe0a7672 [dummypythonqt] Automatic merge of Transifex translations 2017-05-28 00:37:01 +00:00
Calamares CI
da83e71352 [core] Automatic merge of Transifex translations 2017-05-28 00:37:00 +00:00
Calamares CI
8c3d7a34fa [dummypythonqt] Automatic merge of Transifex translations 2017-05-27 02:48:31 +00:00
Calamares CI
aad4292457 [dummypythonqt] Automatic merge of Transifex translations 2017-05-27 00:36:38 +00:00
Calamares CI
f0ea716867 [dummypythonqt] Automatic merge of Transifex translations 2017-05-26 02:48:38 +00:00
Calamares CI
443593a56b [dummypythonqt] Automatic merge of Transifex translations 2017-05-26 00:36:55 +00:00
Calamares CI
929898ab8b [dummypythonqt] Automatic merge of Transifex translations 2017-05-25 02:48:31 +00:00
Calamares CI
04985e1216 [dummypythonqt] Automatic merge of Transifex translations 2017-05-25 00:36:58 +00:00
Calamares CI
ff29fbd9f1 [dummypythonqt] Automatic merge of Transifex translations 2017-05-24 02:48:48 +00:00
Calamares CI
8215825294 [dummypythonqt] Automatic merge of Transifex translations 2017-05-24 00:36:33 +00:00
Calamares CI
ceb554824b [dummypythonqt] Automatic merge of Transifex translations 2017-05-23 02:48:32 +00:00
Calamares CI
dde3ce461a [dummypythonqt] Automatic merge of Transifex translations 2017-05-23 00:58:40 +00:00
Calamares CI
6ae1ef6638 [dummypythonqt] Automatic merge of Transifex translations 2017-05-22 02:48:31 +00:00
Calamares CI
bce6a5d413 [dummypythonqt] Automatic merge of Transifex translations 2017-05-22 00:36:35 +00:00
Calamares CI
2a240c6531 [dummypythonqt] Automatic merge of Transifex translations 2017-05-21 02:48:37 +00:00
Calamares CI
a678d5dce7 [dummypythonqt] Automatic merge of Transifex translations 2017-05-21 00:36:28 +00:00
Calamares CI
a0e1d6cba0 [dummypythonqt] Automatic merge of Transifex translations 2017-05-20 02:48:27 +00:00
Calamares CI
b34503a2b3 [dummypythonqt] Automatic merge of Transifex translations 2017-05-20 00:36:53 +00:00
Calamares CI
dae740da3e [dummypythonqt] Automatic merge of Transifex translations 2017-05-19 02:48:41 +00:00
Calamares CI
7b45928a66 [dummypythonqt] Automatic merge of Transifex translations 2017-05-19 00:36:28 +00:00
Calamares CI
b15de8869f [dummypythonqt] Automatic merge of Transifex translations 2017-05-18 02:48:44 +00:00
Calamares CI
322b279b05 [dummypythonqt] Automatic merge of Transifex translations 2017-05-18 00:36:28 +00:00
Calamares CI
9ce20bc84d [dummypythonqt] Automatic merge of Transifex translations 2017-05-17 02:48:36 +00:00
Calamares CI
19259b2e3b [dummypythonqt] Automatic merge of Transifex translations 2017-05-17 00:57:03 +00:00
Calamares CI
95730ee762 [dummypythonqt] Automatic merge of Transifex translations 2017-05-16 02:48:43 +00:00
Calamares CI
c563c5d264 [dummypythonqt] Automatic merge of Transifex translations 2017-05-16 00:39:57 +00:00
Calamares CI
52581960cb [core] Automatic merge of Transifex translations 2017-05-16 00:39:56 +00:00
Calamares CI
2ea55804d6 [dummypythonqt] Automatic merge of Transifex translations 2017-05-15 02:48:30 +00:00
Calamares CI
c9e91bbe42 [dummypythonqt] Automatic merge of Transifex translations 2017-05-15 00:38:54 +00:00
Calamares CI
64e026909b [dummypythonqt] Automatic merge of Transifex translations 2017-05-14 02:48:57 +00:00
Calamares CI
2cae6acfd0 [dummypythonqt] Automatic merge of Transifex translations 2017-05-14 00:38:34 +00:00
Calamares CI
ed499c4db6 [dummypythonqt] Automatic merge of Transifex translations 2017-05-13 02:48:40 +00:00
Calamares CI
6a83997ef3 [dummypythonqt] Automatic merge of Transifex translations 2017-05-13 00:38:45 +00:00
Calamares CI
fbb38af52b [dummypythonqt] Automatic merge of Transifex translations 2017-05-12 02:48:28 +00:00
Calamares CI
2401cd1d47 [dummypythonqt] Automatic merge of Transifex translations 2017-05-12 00:37:58 +00:00
Calamares CI
4441efab46 [dummypythonqt] Automatic merge of Transifex translations 2017-05-11 02:48:29 +00:00
Calamares CI
9dc87b386f [dummypythonqt] Automatic merge of Transifex translations 2017-05-11 00:37:34 +00:00
Calamares CI
691f22ff5d [core] Automatic merge of Transifex translations 2017-05-11 00:37:33 +00:00
Calamares CI
925b280638 [dummypythonqt] Automatic merge of Transifex translations 2017-05-10 02:48:46 +00:00
Calamares CI
6ba8786eab [dummypythonqt] Automatic merge of Transifex translations 2017-05-10 00:40:09 +00:00
Calamares CI
1489d47cab [dummypythonqt] Automatic merge of Transifex translations 2017-05-09 02:48:58 +00:00
Calamares CI
3e0f3317b4 [dummypythonqt] Automatic merge of Transifex translations 2017-05-09 00:37:28 +00:00
Calamares CI
e6394162ed [dummypythonqt] Automatic merge of Transifex translations 2017-05-08 02:48:51 +00:00
Calamares CI
dd43cd48e2 [core] Automatic merge of Transifex translations 2017-05-08 02:48:50 +00:00
Calamares CI
5631cf70b0 [dummypythonqt] Automatic merge of Transifex translations 2017-05-07 02:48:25 +00:00
Calamares CI
5679965ad2 [dummypythonqt] Automatic merge of Transifex translations 2017-05-07 00:37:43 +00:00
Calamares CI
0b36ce4bae [dummypythonqt] Automatic merge of Transifex translations 2017-05-06 02:48:17 +00:00
Calamares CI
961c6e35e7 [dummypythonqt] Automatic merge of Transifex translations 2017-05-06 00:37:32 +00:00
Calamares CI
96642e6557 [dummypythonqt] Automatic merge of Transifex translations 2017-05-05 02:48:24 +00:00
Calamares CI
dda1d28ca0 [dummypythonqt] Automatic merge of Transifex translations 2017-05-05 00:57:58 +00:00
Calamares CI
9b099dd616 [dummypythonqt] Automatic merge of Transifex translations 2017-05-04 02:48:33 +00:00
Calamares CI
5e9e0e76a7 [dummypythonqt] Automatic merge of Transifex translations 2017-05-04 00:37:21 +00:00
Calamares CI
2210b9c05c [dummypythonqt] Automatic merge of Transifex translations 2017-05-03 02:48:33 +00:00
Calamares CI
ae5b689f77 [dummypythonqt] Automatic merge of Transifex translations 2017-05-03 00:37:13 +00:00
Calamares CI
7c78cac3b2 [dummypythonqt] Automatic merge of Transifex translations 2017-05-02 02:48:32 +00:00
Calamares CI
3b25fedfc9 [dummypythonqt] Automatic merge of Transifex translations 2017-05-02 00:37:17 +00:00
Calamares CI
4b487b227c [dummypythonqt] Automatic merge of Transifex translations 2017-05-01 02:48:22 +00:00
Calamares CI
4bcf55e6e3 [dummypythonqt] Automatic merge of Transifex translations 2017-05-01 00:36:58 +00:00
Calamares CI
8c4c1a9d7d [dummypythonqt] Automatic merge of Transifex translations 2017-04-30 02:48:29 +00:00
Calamares CI
b7afca6c0f [dummypythonqt] Automatic merge of Transifex translations 2017-04-30 00:36:48 +00:00
Calamares CI
1aad44a076 [dummypythonqt] Automatic merge of Transifex translations 2017-04-29 02:48:44 +00:00
Calamares CI
e456591f17 [dummypythonqt] Automatic merge of Transifex translations 2017-04-28 02:48:36 +00:00
Calamares CI
9cdf69b5d9 [dummypythonqt] Automatic merge of Transifex translations 2017-04-28 00:36:54 +00:00
Calamares CI
66108bdf0f [dummypythonqt] Automatic merge of Transifex translations 2017-04-27 02:48:30 +00:00
Calamares CI
ffa0ea4e23 [dummypythonqt] Automatic merge of Transifex translations 2017-04-27 00:57:40 +00:00
Calamares CI
ace56ff5ed [dummypythonqt] Automatic merge of Transifex translations 2017-04-26 02:48:38 +00:00
Calamares CI
407f9f85c2 [dummypythonqt] Automatic merge of Transifex translations 2017-04-25 02:48:35 +00:00
Calamares CI
0f1b1c47eb [dummypythonqt] Automatic merge of Transifex translations 2017-04-25 00:39:05 +00:00
Calamares CI
0581e1977e [core] Automatic merge of Transifex translations 2017-04-25 00:39:04 +00:00
Calamares CI
0d69ba1cff [dummypythonqt] Automatic merge of Transifex translations 2017-04-24 02:48:21 +00:00
Calamares CI
e6f75622e6 [dummypythonqt] Automatic merge of Transifex translations 2017-04-24 00:36:08 +00:00
Calamares CI
f56b873d24 [dummypythonqt] Automatic merge of Transifex translations 2017-04-23 02:48:16 +00:00
Calamares CI
301d012e4f [dummypythonqt] Automatic merge of Transifex translations 2017-04-23 00:36:10 +00:00
Calamares CI
b1dd7940a9 [core] Automatic merge of Transifex translations 2017-04-23 00:36:10 +00:00
Calamares CI
0710fe8b4b [dummypythonqt] Automatic merge of Transifex translations 2017-04-22 02:49:02 +00:00
Calamares CI
f5ed99ccca [dummypythonqt] Automatic merge of Transifex translations 2017-04-22 00:37:18 +00:00
Calamares CI
79e00070bd [dummypythonqt] Automatic merge of Transifex translations 2017-04-21 02:48:21 +00:00
Calamares CI
2da7954225 [dummypythonqt] Automatic merge of Transifex translations 2017-04-21 00:36:04 +00:00
Calamares CI
3fb52f8776 [dummypythonqt] Automatic merge of Transifex translations 2017-04-20 02:48:29 +00:00
Calamares CI
3c4ef1bf8c [core] Automatic merge of Transifex translations 2017-04-20 02:48:28 +00:00
Calamares CI
a3d2075eb4 [dummypythonqt] Automatic merge of Transifex translations 2017-04-20 00:36:05 +00:00
Rohan Garg
bba2f65079 Add additional variables to help improve readability 2017-04-20 01:38:30 +02:00
Calamares CI
8268393ddc [dummypythonqt] Automatic merge of Transifex translations 2017-04-19 02:48:09 +00:00
Calamares CI
1cfb85e4a2 [dummypythonqt] Automatic merge of Transifex translations 2017-04-19 00:36:04 +00:00
Alf Gaida
fe14559f2f refine warn_text coding
fixed superfluous whitespace
2017-04-18 18:13:36 +02:00
Calamares CI
a67a4d80e8 [dummypythonqt] Automatic merge of Transifex translations 2017-04-18 02:48:17 +00:00
Calamares CI
5a25420e30 [dummypythonqt] Automatic merge of Transifex translations 2017-04-18 00:36:08 +00:00
Calamares CI
a1ef676711 [dummypythonqt] Automatic merge of Transifex translations 2017-04-17 02:48:34 +00:00
Calamares CI
6561672174 [dummypythonqt] Automatic merge of Transifex translations 2017-04-17 00:36:05 +00:00
Calamares CI
cd1b80afe9 [dummypythonqt] Automatic merge of Transifex translations 2017-04-16 02:48:22 +00:00
Calamares CI
7e87bc6b84 [dummypythonqt] Automatic merge of Transifex translations 2017-04-16 00:57:48 +00:00
Calamares CI
be9b816c24 [dummypythonqt] Automatic merge of Transifex translations 2017-04-15 02:48:24 +00:00
Calamares CI
afab75e50e [dummypythonqt] Automatic merge of Transifex translations 2017-04-15 00:36:00 +00:00
Calamares CI
3b7a8e74fc [dummypythonqt] Automatic merge of Transifex translations 2017-04-14 02:48:17 +00:00
Calamares CI
9bf503e156 [dummypythonqt] Automatic merge of Transifex translations 2017-04-14 00:36:37 +00:00
Calamares CI
5c685e6b2e [dummypythonqt] Automatic merge of Transifex translations 2017-04-13 02:48:18 +00:00
Calamares CI
27c83662f9 [dummypythonqt] Automatic merge of Transifex translations 2017-04-13 00:39:59 +00:00
Calamares CI
ed508c6589 [dummypythonqt] Automatic merge of Transifex translations 2017-04-12 02:48:15 +00:00
Calamares CI
fc8e55b9ec [dummypythonqt] Automatic merge of Transifex translations 2017-04-12 00:37:17 +00:00
Calamares CI
31520c3c5e [dummypythonqt] Automatic merge of Transifex translations 2017-04-11 02:48:25 +00:00
Calamares CI
c067006ddf [dummypythonqt] Automatic merge of Transifex translations 2017-04-11 00:37:30 +00:00
Alf Gaida
91c29defdf Introduced help_desc = "foo" 2017-04-10 13:32:12 +02:00
Calamares CI
ad437b5fca [dummypythonqt] Automatic merge of Transifex translations 2017-04-10 02:48:32 +00:00
Calamares CI
ab5a0720c4 [dummypythonqt] Automatic merge of Transifex translations 2017-04-10 00:37:22 +00:00
Calamares CI
a3de3de42d [dummypythonqt] Automatic merge of Transifex translations 2017-04-09 02:48:33 +00:00
Calamares CI
6ce0c8581d [dummypythonqt] Automatic merge of Transifex translations 2017-04-09 00:37:39 +00:00
Calamares CI
c753fb0544 [dummypythonqt] Automatic merge of Transifex translations 2017-04-08 02:48:30 +00:00
Calamares CI
49f2b4600e [dummypythonqt] Automatic merge of Transifex translations 2017-04-08 00:37:37 +00:00
Calamares CI
db69b37646 [dummypythonqt] Automatic merge of Transifex translations 2017-04-07 02:48:28 +00:00
Calamares CI
2c4a851e1a [dummypythonqt] Automatic merge of Transifex translations 2017-04-07 00:39:20 +00:00
Calamares CI
6f30d59a31 [dummypythonqt] Automatic merge of Transifex translations 2017-04-06 02:48:38 +00:00
Calamares CI
b7ef27c76b [dummypythonqt] Automatic merge of Transifex translations 2017-04-06 00:37:47 +00:00
Calamares CI
1746cd2016 [dummypythonqt] Automatic merge of Transifex translations 2017-04-05 02:48:38 +00:00
Calamares CI
91214a5d76 [dummypythonqt] Automatic merge of Transifex translations 2017-04-05 00:37:39 +00:00
Calamares CI
9968d87fe5 [dummypythonqt] Automatic merge of Transifex translations 2017-04-04 02:48:35 +00:00
Calamares CI
38aa530d09 [dummypythonqt] Automatic merge of Transifex translations 2017-04-04 00:38:27 +00:00
Calamares CI
47c3a1340f [dummypythonqt] Automatic merge of Transifex translations 2017-04-03 02:50:06 +00:00
Calamares CI
9fddbcfd0e [dummypythonqt] Automatic merge of Transifex translations 2017-04-03 00:38:41 +00:00
Calamares CI
79a429704e [core] Automatic merge of Transifex translations 2017-04-03 00:38:39 +00:00
Calamares CI
cffd665347 [dummypythonqt] Automatic merge of Transifex translations 2017-04-02 02:50:43 +00:00
Calamares CI
cf715fffde [dummypythonqt] Automatic merge of Transifex translations 2017-04-02 00:37:32 +00:00
Calamares CI
7cf5a4e90b [dummypythonqt] Automatic merge of Transifex translations 2017-04-01 02:48:35 +00:00
Calamares CI
743f98aaa4 [dummypythonqt] Automatic merge of Transifex translations 2017-04-01 01:01:09 +00:00
Philip Müller
a79a0b57ee Merge pull request #709 from siduction/pep8-bootloader
Fixed two typos that leads to pep8 whining
2017-03-31 08:05:28 +02:00
Calamares CI
9a87c47a6f [dummypythonqt] Automatic merge of Transifex translations 2017-03-31 02:48:38 +00:00
Calamares CI
59219cf171 [dummypythonqt] Automatic merge of Transifex translations 2017-03-31 00:37:47 +00:00
Calamares CI
81e8f9d90f [dummypythonqt] Automatic merge of Transifex translations 2017-03-30 02:48:29 +00:00
Calamares CI
85742b28be [dummypythonqt] Automatic merge of Transifex translations 2017-03-30 00:37:18 +00:00
Alf Gaida
6b1fe2da01 Switch from pep8 to pycodestyle
Reason: pycodestyle is the successor of pep8, same team, same program
        different name
        https://github.com/PyCQA/pycodestyle
2017-03-30 00:33:06 +02:00
Alf Gaida
33b5cefebb Fixed pep8 whining in module mount
Added myself to copyright
2017-03-29 21:09:25 +02:00
Philip Müller
df5c23554b Merge pull request #708 from siduction/fix-removeuser
Fixed removeuser
2017-03-29 20:47:36 +02:00
Alf Gaida
c80fd08539 Fixed removeuser
Added missed bracket
2017-03-29 20:42:32 +02:00
Alf Gaida
122667f9a7 Fixed pep8 whining in module packages 2017-03-29 20:37:00 +02:00
Alf Gaida
d62eecd71e Fixed two typos that leads to pep8 whining 2017-03-29 20:19:41 +02:00
Rohan Garg
65b5d67a08 Merge pull request #703 from agaida/pep8-dummypythonqt
Fix pep8 whining in module dummypythonqt
2017-03-29 12:22:10 +02:00
Rohan Garg
3851537a02 Merge pull request #700 from agaida/pep8-removeuser
Fixed pep8 whining in module removeuser
2017-03-29 12:14:30 +02:00
Rohan Garg
0d869fb1d9 Merge pull request #701 from agaida/pep8-machineid
Fixed pep8 whining in module machineid
2017-03-29 12:14:11 +02:00
Rohan Garg
8de97bc247 Merge pull request #704 from agaida/pep8-dummypython
Fixed pep8 whining in module dummypython
2017-03-29 12:11:52 +02:00
Rohan Garg
c1dacf93d9 Merge pull request #696 from siduction/fix-bootloader
WIP: fixes #692  bootloader module fails when /EFI/Boot exists
2017-03-29 12:11:29 +02:00
Calamares CI
a29338d04c [dummypythonqt] Automatic merge of Transifex translations 2017-03-29 02:48:38 +00:00
Calamares CI
07fbb55327 [dummypythonqt] Automatic merge of Transifex translations 2017-03-29 00:37:39 +00:00
Calamares CI
c5b77e5c4d [dummypythonqt] Automatic merge of Transifex translations 2017-03-28 02:48:26 +00:00
Calamares CI
89d29afe14 [dummypythonqt] Automatic merge of Transifex translations 2017-03-28 00:37:32 +00:00
Calamares CI
17d2afb65d [dummypythonqt] Automatic merge of Transifex translations 2017-03-27 02:48:37 +00:00
Calamares CI
a7301b1233 [dummypythonqt] Automatic merge of Transifex translations 2017-03-27 00:58:28 +00:00
Calamares CI
563c9c2b08 [core] Automatic merge of Transifex translations 2017-03-27 00:58:27 +00:00
Calamares CI
7a65b1cec7 [dummypythonqt] Automatic merge of Transifex translations 2017-03-26 02:48:50 +00:00
Calamares CI
fd54eb177b [dummypythonqt] Automatic merge of Transifex translations 2017-03-26 00:37:54 +00:00
Calamares CI
4edadcf4f0 [dummypythonqt] Automatic merge of Transifex translations 2017-03-25 02:48:31 +00:00
Calamares CI
48699f79dc [dummypythonqt] Automatic merge of Transifex translations 2017-03-25 00:38:14 +00:00
Alf Gaida
c12f7f1d4c fix mkdirs -> makedirs 2017-03-24 16:39:25 +01:00
Calamares CI
e0138641ba [dummypythonqt] Automatic merge of Transifex translations 2017-03-24 02:48:27 +00:00
Calamares CI
f15e4b7b51 [dummypythonqt] Automatic merge of Transifex translations 2017-03-24 00:37:42 +00:00
Philip Müller
63581eb32b Merge pull request #705 from awelkie/patch-1
Fix nested lists in README
2017-03-23 07:12:55 +01:00
Calamares CI
0956435d8f [dummypythonqt] Automatic merge of Transifex translations 2017-03-23 02:48:32 +00:00
Calamares CI
fdde00239e [dummypythonqt] Automatic merge of Transifex translations 2017-03-23 00:37:24 +00:00
Calamares CI
b4a6756425 [dummypythonqt] Automatic merge of Transifex translations 2017-03-22 02:48:25 +00:00
Calamares CI
418a97d7f2 [dummypythonqt] Automatic merge of Transifex translations 2017-03-22 00:37:43 +00:00
Calamares CI
70f92c75c6 [core] Automatic merge of Transifex translations 2017-03-22 00:37:42 +00:00
Alf Gaida
6273518cb1 Fixed pep8 whining in module removeuser
added myself to copyright
2017-03-21 23:06:51 +01:00
Alf Gaida
6adaa21a25 Fixed pep8 whining in module machineid
added myself to copyright
2017-03-21 22:45:12 +01:00
Allen Welkie
4a5e4088a9 Fix nested lists in README
The nesting wasn't displaying properly in github.
2017-03-21 16:44:11 -04:00
Alf Gaida
2f45dc0f5d Fixed pep8 whining in module dummypython
added myself to copyright
2017-03-21 21:38:33 +01:00
Alf Gaida
9fbc1c462c Fix pep8 whining in module dummypythonqt
added myself to copyright
2017-03-21 21:29:26 +01:00
Alf Gaida
1977a6ff70 Fixed pep8 whining in module plymouthcfg
added myself to copyright
2017-03-21 12:44:05 +01:00
Alf Gaida
5b7c237839 Fixed pep8 whining in module dracut
added myself to copyright
2017-03-21 12:33:26 +01:00
Calamares CI
76604d9821 [dummypythonqt] Automatic merge of Transifex translations 2017-03-21 02:48:31 +00:00
Calamares CI
2f41387636 [dummypythonqt] Automatic merge of Transifex translations 2017-03-21 00:37:37 +00:00
Alf Gaida
50cefe2ca8 fixes #692 bootloader module fails when /EFI/Boot exists
- to make it short - it doesn't help much if one try to find and process any
  EFI related things in the live system. The better approach is to search in
  the chroot.
- use python builtins for mkdir and cp
- replacing some subprocess calls
- Some PEP8 changes
- added myself to the copyright section
2017-03-20 14:47:39 +01:00
Calamares CI
1e26078459 [dummypythonqt] Automatic merge of Transifex translations 2017-03-20 02:48:32 +00:00
Calamares CI
bb27d6eefc [dummypythonqt] Automatic merge of Transifex translations 2017-03-20 00:37:38 +00:00
Calamares CI
27cd7b6b63 [core] Automatic merge of Transifex translations 2017-03-20 00:37:36 +00:00
Calamares CI
02f93738a0 [dummypythonqt] Automatic merge of Transifex translations 2017-03-19 02:48:37 +00:00
Calamares CI
196db0d185 [dummypythonqt] Automatic merge of Transifex translations 2017-03-19 00:58:14 +00:00
Calamares CI
070e5bdeec [core] Automatic merge of Transifex translations 2017-03-19 00:58:12 +00:00
Calamares CI
f1b9d3fa59 [dummypythonqt] Automatic merge of Transifex translations 2017-03-18 02:48:45 +00:00
Calamares CI
133eeb71f5 [dummypythonqt] Automatic merge of Transifex translations 2017-03-18 00:37:08 +00:00
Calamares CI
13f45c8d43 [core] Automatic merge of Transifex translations 2017-03-18 00:37:07 +00:00
Rohan Garg
fdd65bfb21 Enforce basic pep8 checking 2017-03-17 13:31:34 +01:00
Calamares CI
37b5c6c3d0 [dummypythonqt] Automatic merge of Transifex translations 2017-03-17 02:49:08 +00:00
Calamares CI
e0bc6c28a8 [dummypythonqt] Automatic merge of Transifex translations 2017-03-17 00:37:34 +00:00
Calamares CI
8cafb3aae2 [core] Automatic merge of Transifex translations 2017-03-17 00:37:34 +00:00
Calamares CI
30f7d724ec [dummypythonqt] Automatic merge of Transifex translations 2017-03-16 02:48:38 +00:00
Calamares CI
5d60458e01 [dummypythonqt] Automatic merge of Transifex translations 2017-03-16 00:37:13 +00:00
Calamares CI
8272de980c [core] Automatic merge of Transifex translations 2017-03-16 00:37:12 +00:00
Rohan Garg
40438e4ae5 Notify IRC 2017-03-15 18:36:06 +01:00
Rohan Garg
4519766230 Move to install 2017-03-15 18:33:08 +01:00
Rohan Garg
77aa39704c Update .travis.yml and README.md 2017-03-15 18:12:42 +01:00
Rohan Garg
2dab9e11be Use Docker since Travis host OS is super old 2017-03-15 17:58:15 +01:00
Rohan Garg
3fe94e5e98 Add a file to build on Travis 2017-03-15 17:10:11 +01:00
Rohan Garg
f20f9cca2e Pointless ctor is pointless 2017-03-15 16:47:47 +01:00
Calamares CI
756885a33e [dummypythonqt] Automatic merge of Transifex translations 2017-03-15 00:37:44 +00:00
Calamares CI
970c46dec5 [core] Automatic merge of Transifex translations 2017-03-15 00:37:43 +00:00
Calamares CI
6c1c82be06 [dummypythonqt] Automatic merge of Transifex translations 2017-03-13 00:36:54 +00:00
Calamares CI
c13821e33f [core] Automatic merge of Transifex translations 2017-03-13 00:36:53 +00:00
Calamares CI
04b496263d [dummypythonqt] Automatic merge of Transifex translations 2017-03-12 00:36:34 +00:00
Calamares CI
ada3f6c010 [core] Automatic merge of Transifex translations 2017-03-12 00:36:33 +00:00
Calamares CI
d227223e55 [dummypythonqt] Automatic merge of Transifex translations 2017-03-11 00:36:35 +00:00
Calamares CI
5053c3adc7 [core] Automatic merge of Transifex translations 2017-03-11 00:36:34 +00:00
Calamares CI
7aa542c672 [dummypythonqt] Automatic merge of Transifex translations 2017-03-10 00:36:34 +00:00
Calamares CI
01d493fa87 [core] Automatic merge of Transifex translations 2017-03-10 00:36:33 +00:00
Calamares CI
28eee0d5f7 [dummypythonqt] Automatic merge of Transifex translations 2017-03-09 00:37:33 +00:00
Calamares CI
4d2fe7320c [core] Automatic merge of Transifex translations 2017-03-09 00:37:31 +00:00
Calamares CI
c16b47cd57 [dummypythonqt] Automatic merge of Transifex translations 2017-03-08 00:36:19 +00:00
Calamares CI
e3310e3d36 [dummypythonqt] Automatic merge of Transifex translations 2017-03-07 00:40:25 +00:00
Calamares CI
9801535c66 [core] Automatic merge of Transifex translations 2017-03-07 00:40:24 +00:00
Calamares CI
20398899ea [dummypythonqt] Automatic merge of Transifex translations 2017-03-06 00:36:48 +00:00
Calamares CI
08f96108f8 [core] Automatic merge of Transifex translations 2017-03-06 00:36:47 +00:00
Calamares CI
46e72d0a56 [dummypythonqt] Automatic merge of Transifex translations 2017-03-05 00:36:48 +00:00
Calamares CI
e5abc6789f [dummypythonqt] Automatic merge of Transifex translations 2017-03-04 00:36:42 +00:00
Calamares CI
3d6ee4822a [core] Automatic merge of Transifex translations 2017-03-04 00:36:41 +00:00
Teo Mrnjavac
6545443b24 Documentation++ 2017-03-03 12:32:44 +01:00
Teo Mrnjavac
17962179bd Documentation++ 2017-03-03 12:32:44 +01:00
Teo Mrnjavac
80beb87ae9 Documentation++ 2017-03-03 12:32:44 +01:00
Calamares CI
8d4e533cc2 [dummypythonqt] Automatic merge of Transifex translations 2017-03-03 00:37:04 +00:00
Calamares CI
ff8bae9fd2 [dummypythonqt] Automatic merge of Transifex translations 2017-03-02 00:36:34 +00:00
Teo Mrnjavac
6c7cdb5f50 Documentation++ 2017-03-01 13:35:06 +01:00
Calamares CI
ebeb4e4ab2 [dummypythonqt] Automatic merge of Transifex translations 2017-03-01 00:36:18 +00:00
Teo Mrnjavac
99a1c2245f Documentation++ 2017-02-28 18:08:20 +01:00
Teo Mrnjavac
de3c94fc97 Useless debug is useless. 2017-02-28 18:08:20 +01:00
Calamares CI
5d06c5c419 [dummypythonqt] Automatic merge of Transifex translations 2017-02-28 00:40:14 +00:00
Calamares CI
f83409713e [core] Automatic merge of Transifex translations 2017-02-28 00:40:13 +00:00
Calamares CI
7843f65c1f [dummypythonqt] Automatic merge of Transifex translations 2017-02-27 00:37:28 +00:00
Calamares CI
f143d34456 [dummypythonqt] Automatic merge of Transifex translations 2017-02-26 00:37:37 +00:00
Calamares CI
8dbbc82986 [core] Automatic merge of Transifex translations 2017-02-26 00:37:36 +00:00
Teo Mrnjavac
a5280b6896 Bump. 2017-02-24 17:15:34 +01:00
Calamares CI
db4279ce16 [dummypythonqt] Automatic merge of Transifex translations 2017-02-24 00:37:24 +00:00
Calamares CI
dafd2926f5 [dummypythonqt] Automatic merge of Transifex translations 2017-02-23 00:37:26 +00:00
Calamares CI
bd3e654f88 [dummypythonqt] Automatic merge of Transifex translations 2017-02-22 00:37:22 +00:00
Calamares CI
5295f847f9 [dummypythonqt] Automatic merge of Transifex translations 2017-02-21 00:37:56 +00:00
Kyle Robertze
832fc9fd51 fixed two bugs in packages module
if the key "install" was used, the install would crash as the backwards
compatibility checks were incorrect. Fixed a typo in the run function so
pre- and post-install hooks now work correctly
2017-02-20 13:35:56 +01:00
Kyle Robertze
5eb0c8e40b updated docs to better explain new features
the docs do not current reflect the new net-install and packages modules
changes well. This updates them to explain the new keys in the
configuration files.
2017-02-20 11:06:58 +01:00
Calamares CI
d016a0030a [dummypythonqt] Automatic merge of Transifex translations 2017-02-20 00:37:25 +00:00
Calamares CI
16c68c393d [dummypythonqt] Automatic merge of Transifex translations 2017-02-19 00:37:32 +00:00
Calamares CI
e176dd29f4 [core] Automatic merge of Transifex translations 2017-02-19 00:37:31 +00:00
Teo Mrnjavac
6cb4291b4d Bump. 2017-02-17 17:04:15 +01:00
Teo Mrnjavac
6d486bbc1f Improve EFI configuration check in bootloader. 2017-02-17 16:21:02 +01:00
Teo Mrnjavac
9c4819592f Improve EFI configuration check in grubcfg. 2017-02-17 16:21:02 +01:00
Calamares CI
0b134bac2e [dummypythonqt] Automatic merge of Transifex translations 2017-02-17 00:37:22 +00:00
Calamares CI
d2ada30ade [core] Automatic merge of Transifex translations 2017-02-17 00:37:21 +00:00
Calamares CI
3a6689c16c [dummypythonqt] Automatic merge of Transifex translations 2017-02-16 00:37:48 +00:00
Calamares CI
5f3fa59cfd [dummypythonqt] Automatic merge of Transifex translations 2017-02-15 00:37:30 +00:00
Calamares CI
6d7334b0d5 [dummypythonqt] Automatic merge of Transifex translations 2017-02-14 00:37:10 +00:00
Calamares CI
250e3b94c5 [dummypythonqt] Automatic merge of Transifex translations 2017-02-13 00:37:42 +00:00
Calamares CI
9f67ffe119 [core] Automatic merge of Transifex translations 2017-02-13 00:37:40 +00:00
Calamares CI
d209ead999 [dummypythonqt] Automatic merge of Transifex translations 2017-02-12 00:37:25 +00:00
Calamares CI
050981db1e [dummypythonqt] Automatic merge of Transifex translations 2017-02-11 00:37:15 +00:00
Calamares CI
2e5aee4043 [core] Automatic merge of Transifex translations 2017-02-11 00:37:14 +00:00
Teo Mrnjavac
44839a37c6 Bump. 2017-02-10 16:47:37 +01:00
Calamares CI
4c2b7db223 [dummypythonqt] Automatic merge of Transifex translations 2017-02-10 00:37:07 +00:00
Calamares CI
9ad645bc3d [core] Automatic merge of Transifex translations 2017-02-10 00:37:06 +00:00
Teo Mrnjavac
3aebb79d30 Add optional config value neverCreateSwap in partition module.
CAL-458 #close The feature has landed in master, please test.
2017-02-09 18:08:47 +01:00
Calamares CI
e1de7b50b4 [dummypythonqt] Automatic merge of Transifex translations 2017-02-09 00:37:11 +00:00
Calamares CI
4d4d5d9abf [core] Automatic merge of Transifex translations 2017-02-09 00:37:09 +00:00
Calamares CI
69bedfcdb6 [dummypythonqt] Automatic merge of Transifex translations 2017-02-08 00:37:06 +00:00
Calamares CI
92e57d2680 [core] Automatic merge of Transifex translations 2017-02-08 00:37:05 +00:00
Ramon Buldó
f0b4a21b2d partition: use always double click to activate a partition tree view item
Using activated signal may use single or double click depending on environment settings
2017-02-07 17:58:56 +01:00
Kyle Robertze
36f723e59f added missing copyright statement 2017-02-07 17:10:48 +01:00
Kyle Robertze
bc4ffce3a1 Made packages optional
A group can now contain only subgroups. Thus packages can be categorized
through sub-categories such as Internet->Web Browsers->firefox
2017-02-07 17:10:48 +01:00
Kyle Robertze
4d24942547 corrected packages syntax errors 2017-02-07 17:10:48 +01:00
Kyle Robertze
45facda3cb corrected packages module features so that they are up to date 2017-02-07 17:10:48 +01:00
Kyle Robertze
1d7ad9e045 made requested changes 2017-02-07 17:10:48 +01:00
Kyle Robertze
f5fe887a79 fixed style issues 2017-02-07 17:10:48 +01:00
Kyle Robertze
a4aef3bce5 moved netinstall to a tree based ui 2017-02-07 17:10:48 +01:00
Kyle Robertze
d465617432 added support for pre- and post-install scripts 2017-02-07 17:10:48 +01:00
Calamares CI
582e4ec744 [dummypythonqt] Automatic merge of Transifex translations 2017-02-07 00:36:57 +00:00
Calamares CI
34461c30c2 [core] Automatic merge of Transifex translations 2017-02-07 00:36:56 +00:00
Calamares CI
3d4ceced46 [dummypythonqt] Automatic merge of Transifex translations 2017-02-06 00:37:02 +00:00
Calamares CI
df588c58a9 [core] Automatic merge of Transifex translations 2017-02-06 00:37:01 +00:00
Calamares CI
86d0fff391 [dummypythonqt] Automatic merge of Transifex translations 2017-02-05 00:37:00 +00:00
Calamares CI
e78d0295e0 [dummypythonqt] Automatic merge of Transifex translations 2017-02-04 00:37:51 +00:00
Calamares CI
9fe22f1a58 [core] Automatic merge of Transifex translations 2017-02-04 00:37:50 +00:00
Teo Mrnjavac
8215a633e2 Add fallback check for internet connection.
This only kicks in if QNAM's check is inconclusive. It sends a request
and tries to read data from a user-provided URL.
CAL-404 #close Should be fixed in master, please test.
2017-02-03 15:21:53 +01:00
Calamares CI
e1ac09fa21 [dummypythonqt] Automatic merge of Transifex translations 2017-02-03 00:37:19 +00:00
Teo Mrnjavac
b47f72ef43 Document /etc/sudoers.d/10-installer 2017-02-02 18:20:12 +01:00
Teo Mrnjavac
06b1d4abd2 Don't hardcode /dev/sd* as device path. 2017-02-02 16:59:17 +01:00
Calamares CI
b84c5db309 [dummypythonqt] Automatic merge of Transifex translations 2017-02-02 00:37:01 +00:00
Teo Mrnjavac
fbb77aff0c Use --non-interactive with zypper update.
CAL-455 #close Fixed in master, please test.
2017-02-01 16:11:54 +01:00
Teo Mrnjavac
8804b15b59 Make try_{install,remove} more robust. 2017-02-01 11:34:10 +01:00
Calamares CI
3e1ec3514a [dummypythonqt] Automatic merge of Transifex translations 2017-02-01 00:58:57 +00:00
Calamares CI
f9ea134f91 [core] Automatic merge of Transifex translations 2017-02-01 00:58:56 +00:00
Calamares CI
d6ae2f955b [dummypythonqt] Automatic merge of Transifex translations 2017-01-31 00:37:12 +00:00
Calamares CI
39da54c773 [core] Automatic merge of Transifex translations 2017-01-31 00:37:11 +00:00
Calamares CI
0acf96fb2b [dummypythonqt] Automatic merge of Transifex translations 2017-01-30 00:37:07 +00:00
Calamares CI
4c9a9bc187 [core] Automatic merge of Transifex translations 2017-01-30 00:37:06 +00:00
Calamares CI
d473e83fc3 [dummypythonqt] Automatic merge of Transifex translations 2017-01-29 00:36:59 +00:00
Calamares CI
f6592e1abc [dummypythonqt] Automatic merge of Transifex translations 2017-01-28 00:37:06 +00:00
Teo Mrnjavac
65aa914127 Bump. 2017-01-27 11:20:00 +01:00
Calamares CI
1c091a93cd [dummypythonqt] Automatic merge of Transifex translations 2017-01-27 00:37:00 +00:00
Calamares CI
264ab7438c [core] Automatic merge of Transifex translations 2017-01-27 00:36:59 +00:00
Calamares CI
4555daaf9f [dummypythonqt] Automatic merge of Transifex translations 2017-01-25 00:36:27 +00:00
Calamares CI
8fac353122 [core] Automatic merge of Transifex translations 2017-01-25 00:36:26 +00:00
Teo Mrnjavac
68e2c4f901 Unbreak autologin setting. 2017-01-24 18:55:32 +01:00
Teo Mrnjavac
1d5aba5e25 Use a broad catch.
CAL-451 #close Should be fixed in master, please test.
2017-01-24 15:31:12 +01:00
Kevin Kofler
97c9a7c6e4 [users] SetPasswordJob: Also encode m_userName in UTF-8, not Latin1. 2017-01-24 15:06:59 +01:00
Teo Mrnjavac
20d279a409 Fix issue which disallowed non-Latin1 characters in passwords. 2017-01-24 11:25:33 +01:00
Calamares CI
08a350c1d7 [dummypythonqt] Automatic merge of Transifex translations 2017-01-24 00:36:52 +00:00
Calamares CI
47f986aa7a [core] Automatic merge of Transifex translations 2017-01-24 00:36:51 +00:00
Calamares CI
483209ec30 [dummypythonqt] Automatic merge of Transifex translations 2017-01-23 00:36:18 +00:00
Calamares CI
07e99c8c80 [dummypythonqt] Automatic merge of Transifex translations 2017-01-22 00:36:35 +00:00
Calamares CI
1ff39f361b [core] Automatic merge of Transifex translations 2017-01-22 00:36:34 +00:00
Calamares CI
beec16ca97 [dummypythonqt] Automatic merge of Transifex translations 2017-01-21 00:41:57 +00:00
Calamares CI
25fbd21a31 [core] Automatic merge of Transifex translations 2017-01-21 00:41:56 +00:00
Teo Mrnjavac
2cb8c1d248 Bump. 2017-01-20 16:18:23 +01:00
Teo Mrnjavac
afd7ae3938 Update about text. 2017-01-20 16:18:23 +01:00
Calamares CI
03e4fe9396 [dummypythonqt] Automatic merge of Transifex translations 2017-01-20 00:37:08 +00:00
Teo Mrnjavac
c990dc037f Bump. 2017-01-19 18:08:00 +01:00
Calamares CI
2ec569ae2a [dummypythonqt] Automatic merge of Transifex translations 2017-01-19 00:37:05 +00:00
Calamares CI
44883d7892 [core] Automatic merge of Transifex translations 2017-01-19 00:37:04 +00:00
Teo Mrnjavac
f4732de975 Always write bootloader path. 2017-01-18 19:38:12 +01:00
Teo Mrnjavac
79fd88f948 Don't fail if no path. 2017-01-18 19:10:09 +01:00
Teo Mrnjavac
969e5c1d55 Improve check. 2017-01-17 18:13:51 +01:00
Teo Mrnjavac
7d2bd264b6 Useless check is useless. 2017-01-17 18:03:51 +01:00
Teo Mrnjavac
8d5e4cdb16 Don't assume 'User' exists in autologin section. 2017-01-17 17:02:53 +01:00
Teo Mrnjavac
fddddc5cb9 Bump. 2017-01-18 14:55:55 +01:00
Teo Mrnjavac
45adde11e1 Do not write bootloader install path if the system is EFI. 2017-01-18 12:11:25 +01:00
Calamares CI
a65a5bfc61 [dummypythonqt] Automatic merge of Transifex translations 2017-01-18 00:36:54 +00:00
Calamares CI
5b13b9f575 [dummypythonqt] Automatic merge of Transifex translations 2017-01-17 00:36:23 +00:00
Calamares CI
0700cc7e66 [core] Automatic merge of Transifex translations 2017-01-17 00:36:22 +00:00
Teo Mrnjavac
2e41037eea Also disable dummypythonqt in jobs list. 2017-01-16 12:55:59 +01:00
Teo Mrnjavac
721302f888 Disable dummypythonqt by default. 2017-01-16 11:00:42 +01:00
Calamares CI
e8c37ab7ee [dummypythonqt] Automatic merge of Transifex translations 2017-01-16 00:36:27 +00:00
Calamares CI
9201f1a48f [core] Automatic merge of Transifex translations 2017-01-16 00:36:26 +00:00
shainer
aa0d1a62a3 Print full error when failing the copy of resolv.conf 2017-01-15 17:11:16 +00:00
Calamares CI
0bd8ecd79c [dummypythonqt] Automatic merge of Transifex translations 2017-01-15 00:36:15 +00:00
Calamares CI
d7f9b06a56 [core] Automatic merge of Transifex translations 2017-01-15 00:36:15 +00:00
Calamares CI
d697517e4e [dummypythonqt] Automatic merge of Transifex translations 2017-01-14 00:36:28 +00:00
Calamares CI
a7cb2c8ef8 [core] Automatic merge of Transifex translations 2017-01-14 00:36:27 +00:00
Teo Mrnjavac
c5e6180872 PythonQt documentation. 2017-01-13 15:47:15 +01:00
Calamares CI
2d7cfb65d6 [dummypythonqt] Automatic merge of Transifex translations 2017-01-13 00:36:23 +00:00
Calamares CI
19fc747693 [core] Automatic merge of Transifex translations 2017-01-13 00:36:22 +00:00
Teo Mrnjavac
4f1317d1b7 Force the correct flags for EFI system partition. 2017-01-12 16:52:22 +01:00
Teo Mrnjavac
c09a28919e Make sure to disable the root password if setRootPassword is false.
CAL-442 #comment This should be fixed now, please test and report back.
2017-01-12 13:44:11 +01:00
Teo Mrnjavac
a59a79a816 bootloaderInstallPath only applies if !isEfi. 2017-01-12 13:28:34 +01:00
Calamares CI
7e0d0a4132 [dummypythonqt] Automatic merge of Transifex translations 2017-01-12 00:35:38 +00:00
Teo Mrnjavac
3285ebae67 Bump KPMcore dependency to 3.0.2. 2017-01-11 12:25:49 +01:00
Calamares CI
338687e455 [dummypythonqt] Automatic merge of Transifex translations 2017-01-11 00:35:37 +00:00
Calamares CI
47c7466acb [core] Automatic merge of Transifex translations 2017-01-11 00:35:36 +00:00
Teo Mrnjavac
f3848cd428 The sender QObject should be in scope so the bootloader path is written.
CAL-388
CAL-417
CAL-441
2017-01-10 14:46:07 +01:00
Calamares CI
f6760b223a [dummypythonqt] Automatic merge of Transifex translations 2017-01-10 00:35:54 +00:00
Calamares CI
4a34cd537a [core] Automatic merge of Transifex translations 2017-01-10 00:35:52 +00:00
Calamares CI
b511a2c2ee [dummypythonqt] Automatic merge of Transifex translations 2017-01-09 00:35:34 +00:00
Calamares CI
06e8b4834a [core] Automatic merge of Transifex translations 2017-01-09 00:35:34 +00:00
Calamares CI
bc1629bb1b [dummypythonqt] Automatic merge of Transifex translations 2017-01-08 00:35:29 +00:00
Calamares CI
e31842914d [dummypythonqt] Automatic merge of Transifex translations 2017-01-07 00:35:39 +00:00
Calamares CI
5bb21917aa [core] Automatic merge of Transifex translations 2017-01-07 00:35:38 +00:00
Calamares CI
07e2928ae5 [dummypythonqt] Automatic merge of Transifex translations 2017-01-06 02:47:29 +00:00
Calamares CI
86b475c720 [core] Automatic merge of Transifex translations 2017-01-06 02:47:28 +00:00
Calamares CI
f546c6c1f0 [dummypythonqt] Automatic merge of Transifex translations 2017-01-05 02:47:10 +00:00
Calamares CI
f610b1d37a [dummypythonqt] Automatic merge of Transifex translations 2017-01-05 00:35:31 +00:00
Calamares CI
fa7b75fe1e [core] Automatic merge of Transifex translations 2017-01-05 00:35:30 +00:00
Teo Mrnjavac
c158893b22 Style + translation. 2017-01-04 15:28:09 +01:00
Teo Mrnjavac
2aeadf9682 Better to keep font style manipulation to a minimum. 2017-01-04 15:28:09 +01:00
Teo Mrnjavac
e9f113a6a8 Translate user-visible strings! 2017-01-04 15:28:09 +01:00
Teo Mrnjavac
028f56d94a Better to keep font style manipulation to a minimum. 2017-01-04 15:28:09 +01:00
Teo Mrnjavac
3ec7c6f881 Style. 2017-01-04 15:28:09 +01:00
Calamares CI
fdc970cfda [dummypythonqt] Automatic merge of Transifex translations 2017-01-04 02:46:58 +00:00
Calamares CI
8dbfbcaa70 [dummypythonqt] Automatic merge of Transifex translations 2017-01-04 00:36:00 +00:00
Calamares CI
6dd61deb35 [dummypythonqt] Automatic merge of Transifex translations 2017-01-03 02:46:57 +00:00
Calamares CI
bee6941d9b [dummypythonqt] Automatic merge of Transifex translations 2017-01-03 00:35:31 +00:00
Calamares CI
02dcffb413 [dummypythonqt] Automatic merge of Transifex translations 2017-01-02 02:46:57 +00:00
Calamares CI
3e34090f0b [dummypythonqt] Automatic merge of Transifex translations 2017-01-02 00:35:29 +00:00
Calamares CI
e7e3e6a8a6 [dummypythonqt] Automatic merge of Transifex translations 2017-01-01 02:47:08 +00:00
Calamares CI
b28a2d9f26 [dummypythonqt] Automatic merge of Transifex translations 2017-01-01 00:35:26 +00:00
Calamares CI
131f7a85c5 [core] Automatic merge of Transifex translations 2017-01-01 00:35:25 +00:00
Lisa
02abc0d0a7 Merge pull request #276 from shainer/mountpoint
Disallow assigning the same mountpoint to two partitions
2016-12-31 18:49:05 +01:00
Calamares CI
c9e06f9c76 [dummypythonqt] Automatic merge of Transifex translations 2016-12-31 02:46:50 +00:00
Calamares CI
b82720ca7b [dummypythonqt] Automatic merge of Transifex translations 2016-12-31 00:35:30 +00:00
Calamares CI
f53066841a [core] Automatic merge of Transifex translations 2016-12-31 00:35:30 +00:00
Calamares CI
9ff8d7e585 [dummypythonqt] Automatic merge of Transifex translations 2016-12-30 02:46:57 +00:00
Calamares CI
3f697e3956 [dummypythonqt] Automatic merge of Transifex translations 2016-12-30 00:35:36 +00:00
Calamares CI
1d34185efe [dummypythonqt] Automatic merge of Transifex translations 2016-12-29 02:47:05 +00:00
Calamares CI
d6e1c5c7c3 [dummypythonqt] Automatic merge of Transifex translations 2016-12-29 00:35:25 +00:00
Calamares CI
1646907dd1 [core] Automatic merge of Transifex translations 2016-12-29 00:35:25 +00:00
Calamares CI
c1442f1461 [dummypythonqt] Automatic merge of Transifex translations 2016-12-28 02:46:56 +00:00
Calamares CI
7258b02b6c [dummypythonqt] Automatic merge of Transifex translations 2016-12-28 00:35:33 +00:00
Calamares CI
4dd2b3786b [dummypythonqt] Automatic merge of Transifex translations 2016-12-27 02:46:44 +00:00
Calamares CI
807d732a52 [dummypythonqt] Automatic merge of Transifex translations 2016-12-27 00:35:40 +00:00
Calamares CI
041377fd12 [dummypythonqt] Automatic merge of Transifex translations 2016-12-26 02:46:53 +00:00
Calamares CI
91679a83b5 [dummypythonqt] Automatic merge of Transifex translations 2016-12-26 00:35:32 +00:00
Calamares CI
79b8ad4d75 [dummypythonqt] Automatic merge of Transifex translations 2016-12-25 02:46:47 +00:00
Calamares CI
def56ada77 [dummypythonqt] Automatic merge of Transifex translations 2016-12-25 00:35:33 +00:00
Calamares CI
83f5cc0350 [core] Automatic merge of Transifex translations 2016-12-25 00:35:33 +00:00
Calamares CI
e9214a5a49 [dummypythonqt] Automatic merge of Transifex translations 2016-12-24 02:46:54 +00:00
Calamares CI
2a21973881 [core] Automatic merge of Transifex translations 2016-12-24 02:46:53 +00:00
Calamares CI
716fb0b858 [dummypythonqt] Automatic merge of Transifex translations 2016-12-24 00:35:24 +00:00
Teo Mrnjavac
40eba50821 Improve debug output. 2016-12-23 14:17:57 +01:00
Teo Mrnjavac
244b4dff83 Improve debug output. 2016-12-23 14:03:47 +01:00
Calamares CI
63d71e49ff [dummypythonqt] Automatic merge of Transifex translations 2016-12-23 02:46:44 +00:00
Calamares CI
e4500a30d8 [dummypythonqt] Automatic merge of Transifex translations 2016-12-23 00:35:31 +00:00
Calamares CI
a0fae915e1 [core] Automatic merge of Transifex translations 2016-12-23 00:35:31 +00:00
Teo Mrnjavac
0dbd8906ac Alignment. 2016-12-22 13:52:33 +01:00
demmm
cfef01de39 fix crash on loading webview page with QtWebengine 2016-12-22 12:11:46 +01:00
Calamares CI
96476982d7 [dummypythonqt] Automatic merge of Transifex translations 2016-12-22 02:54:26 +00:00
Calamares CI
f88a980526 [dummypythonqt] Automatic merge of Transifex translations 2016-12-22 00:35:29 +00:00
Calamares CI
84d52a8b78 [dummypythonqt] Automatic merge of Transifex translations 2016-12-21 02:46:51 +00:00
Calamares CI
b3c62180a1 [dummypythonqt] Automatic merge of Transifex translations 2016-12-21 00:35:32 +00:00
Calamares CI
a7e74c67d9 [core] Automatic merge of Transifex translations 2016-12-21 00:35:31 +00:00
Rohan Garg
4a55802b18 Allow passing a LOCALE variable in the package list
This allows for installing locale packages. This can be achieved
by adding a entry of the format packagename-${LOCALE} in the
packages configuration module.
2016-12-20 16:57:23 +01:00
Calamares CI
39d188079c [dummypythonqt] Automatic merge of Transifex translations 2016-12-20 02:46:41 +00:00
Calamares CI
8b1da00235 [dummypythonqt] Automatic merge of Transifex translations 2016-12-20 00:35:35 +00:00
Calamares CI
fb8d688920 [core] Automatic merge of Transifex translations 2016-12-20 00:35:34 +00:00
Calamares CI
54e98359de [dummypythonqt] Automatic merge of Transifex translations 2016-12-19 02:47:02 +00:00
Calamares CI
afca3d2778 [dummypythonqt] Automatic merge of Transifex translations 2016-12-19 00:35:30 +00:00
Calamares CI
f430bc167e [core] Automatic merge of Transifex translations 2016-12-19 00:35:29 +00:00
Calamares CI
cee5bc34f5 [dummypythonqt] Automatic merge of Transifex translations 2016-12-18 02:46:57 +00:00
Calamares CI
0614753216 [dummypythonqt] Automatic merge of Transifex translations 2016-12-18 00:35:35 +00:00
Calamares CI
250c9c5670 [core] Automatic merge of Transifex translations 2016-12-18 00:35:35 +00:00
Calamares CI
13e16b6954 [dummypythonqt] Automatic merge of Transifex translations 2016-12-17 02:46:16 +00:00
Calamares CI
2270aa8209 [core] Automatic merge of Transifex translations 2016-12-17 02:46:15 +00:00
Calamares CI
4b78714704 [dummypythonqt] Automatic merge of Transifex translations 2016-12-17 00:35:22 +00:00
Calamares CI
9a543a9656 [core] Automatic merge of Transifex translations 2016-12-17 00:35:21 +00:00
Calamares CI
5bea549daa [dummypythonqt] Automatic merge of Transifex translations 2016-12-16 17:15:41 +00:00
Calamares CI
7726aa95b4 [core] Automatic merge of Transifex translations 2016-12-16 17:15:40 +00:00
Teo Mrnjavac
e67abde6f7 Pull all catalogs and push back to git. 2016-12-16 17:03:14 +01:00
Teo Mrnjavac
256a629ece Push all PythonQt module translation catalogs. 2016-12-16 17:03:14 +01:00
Teo Mrnjavac
ec1fc5f74d Properly load translations. 2016-12-16 17:03:14 +01:00
Teo Mrnjavac
e89a8aa3b5 Copy and install PythonQt module translations, if found. 2016-12-16 17:03:14 +01:00
Teo Mrnjavac
c2273b18b6 Add dummypythonqt Transifex resource configuration. 2016-12-16 17:03:14 +01:00
Calamares CI
172d336f57 [dummypythonqt] Automatic merge of Transifex translations 2016-12-16 17:03:14 +01:00
Calamares CI
86bb699fdf [dummypythonqt] Automatic merge of Transifex translations 2016-12-16 17:03:14 +01:00
Calamares CI
7b5b099c39 [dummypythonqt] Automatic merge of Transifex translations 2016-12-16 17:03:14 +01:00
Calamares CI
404d261839 [core] Automatic merge of Transifex translations 2016-12-16 17:03:14 +01:00
Calamares CI
5f632e8a3d [dummypythonqt] Automatic merge of Transifex translations 2016-12-16 17:03:14 +01:00
Calamares CI
1af97258fe [core] Automatic merge of Transifex translations 2016-12-16 17:03:14 +01:00
Teo Mrnjavac
13e79f8c64 Format correctly. 2016-12-16 17:03:13 +01:00
Teo Mrnjavac
1797c5fea1 Handle exception. 2016-12-16 17:03:13 +01:00
Teo Mrnjavac
7160aa60c3 Reorder. 2016-12-16 17:03:13 +01:00
Teo Mrnjavac
27328a720b Get new locale name in retranslate function. 2016-12-16 17:03:13 +01:00
Teo Mrnjavac
b1c67f429f Update headers. 2016-12-16 17:03:13 +01:00
Teo Mrnjavac
f4696f22a1 Pass locale name to PythonQt module. 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
0c36de68ff Attach retranslator to base widget of ViewStep. 2016-12-16 17:03:13 +01:00
Teo Mrnjavac
3143015440 PEP fix. 2016-12-16 17:03:13 +01:00
Teo Mrnjavac
e541dbfbea React to retranslate call. 2016-12-16 17:03:13 +01:00
Teo Mrnjavac
f61a4e6856 Add dummypythonqt to roster. 2016-12-16 17:03:00 +01:00
Teo Mrnjavac
9923e8504d Nicer strings. 2016-12-16 17:03:00 +01:00
Teo Mrnjavac
d3845144bb Start from empty str for entry point annotation. 2016-12-16 17:03:00 +01:00
Teo Mrnjavac
46787222c9 Fix ifdefs for WITH_PYTHONQT. 2016-12-16 17:03:00 +01:00
Teo Mrnjavac
0d6daf11b5 Update dummypythonqt to test PythonQt jobs. 2016-12-16 17:03:00 +01:00
Teo Mrnjavac
ca7728cd34 Implement PythonQtViewStep::jobs as a wrapper for Python-provided jobs. 2016-12-16 17:03:00 +01:00
Teo Mrnjavac
d425f71fdb Build it. 2016-12-16 17:03:00 +01:00
Teo Mrnjavac
aad1c536d1 New PythonQtJob class. 2016-12-16 17:03:00 +01:00
Teo Mrnjavac
3170067089 Make JobResult inheritable and remove obsolete Status enum. 2016-12-16 17:03:00 +01:00
Teo Mrnjavac
f3fa124f8d Set configuration map in PythonQt module. 2016-12-16 17:03:00 +01:00
Teo Mrnjavac
a3887d268a Expose global_storage and utils as objects in PythonQt.calamares. 2016-12-16 17:03:00 +01:00
Teo Mrnjavac
864109fd4e Build them. 2016-12-16 17:03:00 +01:00
Teo Mrnjavac
4648f5e8e0 Utils wrapper class, to expose libcalamares.utils under PythonQt. 2016-12-16 17:03:00 +01:00
Teo Mrnjavac
7791307e1e Wrapper for GlobalStorage, to make it available through PythonQt. 2016-12-16 17:03:00 +01:00
Teo Mrnjavac
25613d1bef Fix _calamares_module_basewidget check and improve readability. 2016-12-16 17:03:00 +01:00
Teo Mrnjavac
0f0a6ab18d PythonQtViewStep has no decorator. 2016-12-16 17:03:00 +01:00
Teo Mrnjavac
9aefeed648 Expose PythonQt.calamares.global_storage. 2016-12-16 17:03:00 +01:00
Teo Mrnjavac
69d870a486 Preliminary work on translations support in dummypythonqt. 2016-12-16 17:03:00 +01:00
Teo Mrnjavac
b77b4ee7d5 Extend dummypythonqt to test QWidget parenting and QObject::connect. 2016-12-16 17:03:00 +01:00
Teo Mrnjavac
a54f217173 Use CalamaresUtils::lookupAndCall in PythonQtViewStep.
This is done to support both Pythonic and Qt style method names, i.e.
both "isNextEnabled" and "is_next_enabled" is ok in a Python module.
Also better documentation in PythonQtViewStep, and stub for
setConfigurationMap.
Finally, proper handling of PythonQtViewStep Python-facing basewidget:
with this change, a call to PQVS::widget() only triggers a widget
relayout if it's necessary, and leaves it alone otherwise.
2016-12-16 17:03:00 +01:00
Teo Mrnjavac
fb9d1fa339 Add PythonQtUtils.{h,cpp} with CalamaresUtils::lookupAndCall. 2016-12-16 17:03:00 +01:00
Teo Mrnjavac
9570bd94e8 Nor this. 2016-12-16 17:03:00 +01:00
Teo Mrnjavac
869828a557 We don't need this. 2016-12-16 17:03:00 +01:00
Teo Mrnjavac
f1d6cc0283 Rewritten dummypythonqt module to work with current API state. 2016-12-16 17:03:00 +01:00
Teo Mrnjavac
53f687587b Add support for attaching a Python console in DebugWindow.
Also add support for showing module type/interface.
Also minor layout improvements.
2016-12-16 17:03:00 +01:00
Teo Mrnjavac
c618999418 Properly load new PythonQtViewModule.
Only initialize Python if it's not initialized yet.
Inject @calamares_module decorator to fetch the entry class.
2016-12-16 17:03:00 +01:00
Teo Mrnjavac
2736ad6e09 User-visible Type and Interface strings in Module. 2016-12-16 17:03:00 +01:00
Teo Mrnjavac
d526935001 Remove PythonQtConsoleViewStep, which was only there for testing. 2016-12-16 17:03:00 +01:00
Teo Mrnjavac
b4002a716a New PythonQtViewStep. 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
553062fc11 Fix build. 2016-12-16 17:03:00 +01:00
Teo Mrnjavac
8a90b89d25 Headers. 2016-12-16 17:03:00 +01:00
Teo Mrnjavac
264fb6996f dummypythonqt module for testing purposes. 2016-12-16 17:03:00 +01:00
Teo Mrnjavac
0a5faa4888 PythonQtConsoleViewStep for testing purposes. 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
Calamares CI
b801efe1c9 Automatic merge of Transifex translations 2016-12-14 00:37:40 +00:00
Teo Mrnjavac
457172df66 Do not dereference nullptr. 2016-12-13 12:17:07 +01:00
Teo Mrnjavac
c36b1f66a5 Provide default for m_writeEtcDefaultKeyboard in KeyboardViewStep. 2016-12-13 12:17:07 +01:00
Calamares CI
18ff94d41a Automatic merge of Transifex translations 2016-12-13 00:35:03 +00:00
Teo Mrnjavac
f4dc81b0bc Write hasInternet to GlobalStorage.
CAL-431 #close
2016-12-12 13:37:18 +01:00
Teo Mrnjavac
a44f336150 Correctly untar Coverity tool. 2016-12-09 17:43:44 +01:00
Teo Mrnjavac
2e405acbac Update Coverity CI scripts. 2016-12-09 17:16:39 +01:00
Calamares CI
223e5e0620 Automatic merge of Transifex translations 2016-12-09 15:54:28 +00:00
Teo Mrnjavac
0e922d3481 Add KDevelop and Visual Studio Code files to .gitignore. 2016-12-08 12:54:14 +01:00
Teo Mrnjavac
e2b2d761c2 Do not LINK_PUBLIC by default. 2016-12-07 16:37:29 +01:00
Teo Mrnjavac
8b427cf2df Add LINK_PRIVATE_LIBRARIES to calamares_add_plugin. 2016-12-07 16:36:31 +01:00
Teo Mrnjavac
dd035bf151 Document settings for services module. 2016-12-05 17:59:47 +01:00
Kevin Kofler
bc8dd4225a [displaymanager] set_autologin: Unset autologin for sddm when needed
CAL-423 #close
2016-12-03 19:18:41 +01:00
Teo Mrnjavac
45315e6ae9 Improve debug output for bootloader code path. 2016-12-02 18:36:02 +01:00
Teo Mrnjavac
e10034c670 Bump KPMcore requirement. 2016-12-01 19:15:11 +01:00
Teo Mrnjavac
2230cd6941 Use the LUKS filesystem's outer UUID for the color index. 2016-11-30 17:26:49 +01:00
Teo Mrnjavac
0ad819e301 Make sure we write the inner fs type to globalstorage. 2016-11-25 16:21:25 +01:00
shainer
8d5fbaafeb New cmake switch to skip installing configuration.
The INSTALL_CONFIG is "on" by default. When set to off,
no *.conf file, both global and related to a single module,
will be installed. A warning message is printed by cmake too,
and the module description is edited to make this visible.

This is useful for testing, when we want to install our
own libraries and binary but keep the configuration of the
live system we are testing on (e.g. path to distro image).

Tested on the master branch.
2016-11-21 00:36:49 +00:00
shainer
2759529841 Remove current partition's mountpoint from used list.
This means that when we edit a partition, we don't consider
its current mountpoint invalid because it is already in-use.

We need to do this for both "edit existing partition" and
"edit a partition that we are still creating".
2016-11-20 23:19:33 +00:00
shainer
349470ae71 Check mountpoints when editing a partition too. 2016-11-20 23:06:03 +00:00
shainer
8c1199df2d Check first selection of mountpoint too.
When opening the dialog.
2016-11-20 23:05:44 +00:00
shainer
f51b05e8aa Get the mountpoint from PartitionInfo.
The Partition object includes the root mountpoint in
the partition mountpoint, which is not what we want.
2016-11-20 22:46:28 +00:00
shainer
c8dbeb5341 Avoid creating a new partition with a used mountpoint.
We get the mountpoints already used by other partitions, and
disable the Ok button in the "Create new partition" dialog if
the user selects/writes a mountpoint which is already used.

We are going to do the same in the Edit partition dialog
after testing.
2016-11-20 22:05:55 +00:00
Kevin Kofler
34516e9477 [dracutlukscfg] Don't include keyfile in initramfs on unencrypted /boot.
This matches the fix in initcpiocfg and initramfscfg.
2016-11-19 02:30:34 +01:00
Kevin Kofler
d9840feef9 [initramfscfg] Don't include keyfile in initramfs on unencrypted /boot.
This matches the fix in initcpiocfg.

I had to create an encrypt_hook_nokey that is a copy of encrypt_hook
without the part that copies the keyfile.
2016-11-19 02:13:04 +01:00
Calamares CI
290f3511fe Automatic merge of Transifex translations 2016-11-18 00:34:12 +00:00
Teo Mrnjavac
83b51a5867 Show warning. 2016-11-17 19:03:24 +01:00
Teo Mrnjavac
17fe2d82f4 Oops. 2016-11-17 18:28:58 +01:00
Teo Mrnjavac
a55bef5d2d Warn user about encrypted root with unencrypted /boot. 2016-11-17 18:15:37 +01:00
Teo Mrnjavac
79b0889db7 Don't include keyfile in initramfs on unencrypted /boot. 2016-11-17 18:15:37 +01:00
Calamares CI
ab361c2a81 Automatic merge of Transifex translations 2016-11-17 00:37:13 +00:00
Calamares CI
b099343cfe Automatic merge of Transifex translations 2016-11-16 00:35:54 +00:00
Calamares CI
13832fcbb6 Automatic merge of Transifex translations 2016-11-15 00:36:37 +00:00
Calamares CI
9a39fc2a18 Automatic merge of Transifex translations 2016-11-14 00:35:16 +00:00
Philip Müller
7c34056f57 Merge pull request #274 from highvoltage/master
Fix spelling mistake and add .desktop file keywords
2016-11-13 21:46:46 +01:00
Jonathan Carter
970a81e8b7 Add man page 2016-11-13 19:37:18 +02:00
Lisa
1ab943a0f0 Merge pull request #273 from shainer/master
Non-critical package groups in netinstall module
2016-11-13 12:17:49 +00:00
shainer
e5f5bb99d7 Change the default value of critical to false.
This means all package groups are non-critical by default.
Update documentation accordingly.
2016-11-13 12:12:07 +00:00
Kevin Kofler
5dd6676602 Bump version to 2.4.80.
We need master to have a higher version than the stable branch. I used
2.4.80 so that it can be bumped again to 2.4.90 when starting to do
alpha/beta/RC releases.
2016-11-13 12:10:01 +00:00
shainer
b6d6075213 New example netinstall.yaml, less groups for easier testing. 2016-11-13 10:56:13 +00:00
Kevin Kofler
d6e0e09bc1 Bump version to 2.4.80.
We need master to have a higher version than the stable branch. I used
2.4.80 so that it can be bumped again to 2.4.90 when starting to do
alpha/beta/RC releases.
2016-11-13 03:56:55 +01:00
shainer
5fadd0a3ce New example netinstall.yaml with non-critical group. 2016-11-12 18:08:08 +00:00
shainer
58ae8e13c9 Add support for non-critical groups in netinstall.
Package groups are divided into critical and non-critical
depending on whether we want all Calamares to fail if installing
a package in the group fails, or we are okay with just logging a
warning.

The distinction is configured in the YAML file listing the package
groups. By default, all groups are critical, to keep supporting
the previous behaviour.
2016-11-12 17:57:58 +00:00
Teo Mrnjavac
a9d8107b3b Write Btrfs subvolume lines to fstab. 2016-11-11 16:47:08 +01:00
Teo Mrnjavac
e9ecb64a36 Special case for Btrfs root: create subvolumes and mount them. 2016-11-11 16:47:08 +01:00
Philip
e8f694fe02 [partition] Bump kpmcore requirements 2016-11-09 08:47:27 +01:00
Teo Mrnjavac
93cf5acea4 Bind-mount /run/udev in the chroot by default.
NOTE: this is absolutely necessary for grub-mkconfig's os-prober
instance to work.
2016-11-08 11:18:19 +01:00
Calamares CI
956e519453 Automatic merge of Transifex translations 2016-11-08 00:35:12 +00:00
Kevin Kofler
4f11faea52 [bootloader] Fix UEFI firmware workaround for 32-bit UEFI.
On 32-bit UEFI (note that the bitness of the firmware is what matters
here, not the bitness of the distribution), instead of copying
grubx64.efi to bootx64.efi, copy grubia32.efi to bootia32.efi.

Patch by TeHMoroS from SparkyLinux.

CAL-403 #close
2016-11-06 03:38:34 +01:00
Calamares CI
003dcac96c Automatic merge of Transifex translations 2016-11-06 00:34:57 +00:00
Kevin Kofler
f08739cd15 [welcome] Use QNetworkAccessManager in checkHasInternet.
Use QNetworkAccessManager instead of raw QtDBus queries to
NetworkManager in RequirementsChecker::checkHasInternet(). This is much
simpler (i.e., less error-prone) and should be more portable (to, e.g.,
ConnMan).
2016-11-05 22:11:57 +01:00
Kevin Kofler
6eb512ab49 [welcome] Fix RequirementsChecker::checkHasInternet().
The NetworkManager property is called "State", not "state". The call
was always failing, and the method was always returning true as a
result.
2016-11-05 20:34:13 +01:00
Kevin Kofler
62bded1447 [bootloader] Fix vfat_correct_case.
If the directory already existed, vfat_correct_case was returning only
the last part rather than the full path as it is supposed to.
2016-11-05 17:41:38 +01:00
Kevin Kofler
0131d7fbf1 [unpackfs] Do not fail if rsync returns exit code 23.
Unfortunately, rsync returns exit code 23 (Partial transfer due to
error) if it cannot write extended attributes (with -X) because the
target file system does not support it, e.g., the FAT EFI system
partition. We need -X because distributions using file system
capabilities and/or SELinux require the extended attributes. But
distributions using SELinux may also have SELinux labels set on files
under /boot/efi, and rsync complains about those. The only clean way
would be to split the rsync into one with -X and --exclude /boot/efi and
a separate one without -X for /boot/efi, but only if /boot/efi is
actually an EFI system partition. For now, this hack will have to do.

See also:
https://bugzilla.redhat.com/show_bug.cgi?id=868755#c50
for the same issue in Anaconda, which uses a similar workaround.
2016-11-04 01:37:08 +01:00
Calamares CI
ad89c679a3 Automatic merge of Transifex translations 2016-11-04 00:34:56 +00:00
Teo Mrnjavac
c4df69b4a7 Allow try_install and try_remove entries in packages module. 2016-11-02 17:00:45 +01:00
Teo Mrnjavac
b272917e83 Add option of updating packages db before perfoming package operations. 2016-11-02 13:04:11 +01:00
Rohan Garg
d67fdccd4c Make sure we also set a preferred Xsession 2016-11-02 09:51:27 +01:00
Kevin Kofler
075577d948 [netinstall] Support selecting visible groups by default.
In other words, support:
  hidden: false
  selected: true
groups.

This was supposed to work according to README.md, but not actually
implemented. Now it should be working.
2016-11-02 05:58:00 +01:00
Calamares CI
c09e7030db Automatic merge of Transifex translations 2016-11-02 00:34:40 +00:00
Calamares CI
c239589ee5 Automatic merge of Transifex translations 2016-11-01 00:34:30 +00:00
Rohan Garg
662656a762 Better handling for when the Autologin section already has things 2016-10-31 17:55:59 +01:00
Rohan Garg
f7ac1a3ede Use configparser to parse sddm.conf
Since sddm.conf follows the INI format we can use configparser
with a few added options to properly parse the config and write
it out instead of manually parsing each line which is slow and
prone to error.

For eg. The old code would fail to parse a conf which had no
commented out User key but where the user had configured autologin
in Calamares.
2016-10-31 17:10:46 +01:00
Calamares CI
4626a769a5 Automatic merge of Transifex translations 2016-10-31 00:34:28 +00:00
Calamares CI
5840ca34cd Automatic merge of Transifex translations 2016-10-29 00:34:27 +00:00
Kevin Kofler
5f782e9c5c README.md: sgdisk is no longer used. 2016-10-29 01:26:18 +02:00
Kevin Kofler
1548fe4810 [partition] Use FlagEsp instead of sgdisk to scan for ESPs.
Address an old FIXME in
PartitionCoreModule::scanForEfiSystemPartitions(): Check the FlagEsp on
the Partition object (that KPMcore has been supporting since 2.1.0)
instead of running sgdisk.
2016-10-29 01:09:14 +02:00
Kevin Kofler
5377003f89 Set the ESP flag in partition rather than bootloader.
The manual partitioning setup was already requiring the user to check
the ESP flag for the EFI System Partition. Now the autopartitioning also
sets it directly (a one-line change). The sgdisk call in the bootloader
module is thus no longer necessary (it was only a workaround because
kpmcore < 2.1.0 did not support FlagEsp), so remove that snippet.

This fixes configurations such as NVME disks where splitting boot_device
into boot_device[-1:] and boot_device[:-1] is not the correct split
(because the partition gets a 2-letter suffix) (reported by demmm on
IRC).
2016-10-29 00:52:38 +02:00
Teo Mrnjavac
4488761a63 Only add LUKS keyfile if relevant, and with a 15s timeout. 2016-10-28 10:17:39 +02:00
Teo Mrnjavac
fbe72b3663 Improve user-visible strings in SetPartFlagsJob. 2016-10-28 09:24:00 +02:00
Calamares CI
74ea0fe49a Automatic merge of Transifex translations 2016-10-28 02:44:56 +00:00
Calamares CI
cb1c96e5fa Automatic merge of Transifex translations 2016-10-28 00:34:25 +00:00
Teo Mrnjavac
de979f8528 Add user to groups separately from useradd. 2016-10-27 15:26:20 +02:00
Calamares CI
c6af5bdba3 Automatic merge of Transifex translations 2016-10-27 00:34:26 +00:00
Philip
22cf2c16a2 [displaymanager] use same pattern for all str.format calls 2016-10-26 21:40:14 +02:00
Philip Müller
c7c94bccd0 Merge pull request #268 from oberon2007/master
[displaymanager] add Deepin
2016-10-26 21:20:46 +02:00
Bernhard Landauer
c99cdc0fa7 [displaymanager] add Deepin 2016-10-26 03:56:03 +02:00
Calamares CI
869fb7df43 Automatic merge of Transifex translations 2016-10-25 00:34:16 +00:00
Calamares CI
8ceebd6b95 Automatic merge of Transifex translations 2016-10-23 00:34:18 +00:00
Calamares CI
fe539f56ec Automatic merge of Transifex translations 2016-10-22 00:34:24 +00:00
Calamares CI
5603b3eb14 Automatic merge of Transifex translations 2016-10-21 00:34:20 +00:00
Kevin Kofler
668284f5f1 [grubcfg] Compare integers to integers, not strings.
target_env_call returns an integer, so do not compare its result to the
string "0".
2016-10-21 00:19:22 +02:00
V3n3RiX
11c9e87fd0 dracut : unlock encrypted swap if exists (#267)
* dracut : unlock encrypted swap if exists
* only check for swap_outer_uuid if dracut exists
2016-10-20 17:00:15 +02:00
V3n3RiX
0bde162a9c Only write rd.luks.uuid if dracut is present and leave other initramfs generators clean (#266)
* add rd.luks.uuid to GRUB_CMDLINE (fixes unbootable system with dracut --nohostonly, and doesn't affect any other initramfs generators)

* typo

* only write rd.luks.uuid line if dracut is present, and leave other initramfs generators alone :D

* add missing = operator
2016-10-19 17:41:35 +02:00
Calamares CI
7d46109cc2 Automatic merge of Transifex translations 2016-10-19 00:34:16 +00:00
V3n3RiX
7e74d48fb6 add rd.luks.uuid to GRUB_CMDLINE (fixes unbootable system with dracut… (#265)
* add rd.luks.uuid to GRUB_CMDLINE (fixes unbootable system with dracut --nohostonly, and doesn't affect any other initramfs generators)

* typo
2016-10-18 18:59:51 +02:00
Calamares CI
d54ec4a9ff Automatic merge of Transifex translations 2016-10-18 00:34:21 +00:00
Calamares CI
c6b79c9c8f Automatic merge of Transifex translations 2016-10-17 02:45:06 +00:00
Calamares CI
013b944f18 Automatic merge of Transifex translations 2016-10-17 00:34:26 +00:00
Kevin Kofler
d5dfe86525 [dracutlukscfg] New module: pre-configuration for dracut+LUKS.
Add a dracutlukscfg module to write a
/etc/dracut.conf.d/calamares-luks.conf file for LUKS full disk
encryption support with Dracut.

You should run:

* partition
* luksbootkeyfile
* dracutlukscfg
* dracut

in that order (not necessarily in immediate sequence). The
luksopenswaphook module is not used with Dracut.
2016-10-16 19:08:16 +02:00
Kevin Kofler
2573731cdb [grubcfg] Fix mismatched quoting and escaping.
If we use .replace("'", "'\\''") for escaping, we also need to use
single quotes, not double quotes.

This was broken by the port from '%' to format, which also randomly
changed quoting characters for no good reason. Changing the outer ones
does not matter, but \" or ' within a string is not the same thing!
2016-10-16 18:44:22 +02:00
Calamares CI
5b2cc2cbb1 Automatic merge of Transifex translations 2016-10-15 00:34:08 +00:00
Teo Mrnjavac
6e7dc0b437 Use the target system's boot name in partitioning summary widget. 2016-10-14 15:27:24 +02:00
Calamares CI
66d66cf446 Automatic merge of Transifex translations 2016-10-14 00:36:48 +00:00
David McKinney
b63ab4df15 [initramfscfg] New module: pre-configuration for update-initramfs.
Added an initramfscfg module to handle pre-configuration for the Debian
update-initramfs, such as installing hooks (needed for luks/FDE support
on Debian-based distros).

Closes #254. (Cherry-picked from the pull request.)
2016-10-13 19:20:20 +02:00
Kevin Kofler
0876af63d0 [fstab] Write configurable options to crypttab (default: luks).
fstab.conf: Add a new "crypttabOptions" option that defaults to "luks".
            Document that for Debian and Debian-based distributions, the
            setting should be changed to "luks,keyscript=/bin/cat".

main.py: Append the options from the above setting to the end of every
         line in crypttab.

At least the "luks" option should always be there, because there may be
different encryption types. The Debian initramfs-tools also require the
Debian-specific keyscript option and will otherwise ignore the keyfile
entirely (see pull request #254).
2016-10-13 19:01:13 +02:00
Kevin Kofler
4d28544e6f [fstab] Do not omit "/" from crypttab.
At least the Debian update-initramfs needs the entry to be there (see
pull request #254). Dracut will probably need it too. And logically, it
should be there.
2016-10-13 18:44:07 +02:00
Calamares CI
33fab5f8c6 Automatic merge of Transifex translations 2016-10-13 00:34:55 +00:00
Calamares CI
49927e2b61 Automatic merge of Transifex translations 2016-10-09 00:34:33 +00:00
Calamares CI
15de67d5d1 Automatic merge of Transifex translations 2016-10-07 00:34:37 +00:00
shainer
ab40626c5d Bump QT_VERSION to 5.6 in cmake. 2016-10-02 15:33:27 +01:00
shainer
95164b343e Set qt >=5.6 as a "global" dependency.
i.e. not just required by the netinstall module.
2016-10-02 15:32:34 +01:00
shainer
689094e6dc Fix dependency list in README.md
The netinstall module requires Qt >= 5.6 instead of
Qt >= 5.3
2016-10-02 14:59:31 +01:00
Calamares CI
cc01c0c18e Automatic merge of Transifex translations 2016-10-02 00:34:24 +00:00
Calamares CI
666ed89b76 Automatic merge of Transifex translations 2016-09-30 00:34:22 +00:00
Calamares CI
c91afd7a56 Automatic merge of Transifex translations 2016-09-29 00:34:14 +00:00
Calamares CI
0ade8fa558 Automatic merge of Transifex translations 2016-09-28 00:34:18 +00:00
Kevin Kofler
0ae41dd286 New dummycpp C++ job module (ported from dummypython). 2016-09-27 17:25:09 +02: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
Calamares CI
b91275e7e1 Automatic merge of Transifex translations 2016-09-27 00:36:50 +00:00
Teo Mrnjavac
5796b05fda Allow disabling automated LUKS modes. 2016-09-26 13:14:54 +02:00
Teo Mrnjavac
5bf4bb8787 Make writeEtcDefaultKeyboard an option in keyboard.conf. 2016-09-26 10:57:57 +02:00
Teo Mrnjavac
40cb168468 Fix typo. 2016-09-26 10:57:56 +02:00
Teo Mrnjavac
6f3dc32bfe Config file comment. 2016-09-26 10:57:56 +02:00
Calamares CI
55cf8b353c Automatic merge of Transifex translations 2016-09-26 00:34:46 +00:00
Kevin Kofler
1b2cce4be3 Fix locale filtering for UTF-8 on Fedora.
locale -a returns the locales using ".utf8" names rather than ".UTF-8".
The case-insensitive match does not help because it is "utf8" rather
than "UTF-8". So we need to match both with and without the dash.
2016-09-26 01:47:58 +02:00
Calamares CI
a03edfdc63 Automatic merge of Transifex translations 2016-09-25 00:34:49 +00:00
Calamares CI
cdc79f5507 Automatic merge of Transifex translations 2016-09-24 00:34:51 +00:00
Calamares CI
b95504374d Automatic merge of Transifex translations 2016-09-23 02:50:44 +00:00
Calamares CI
f28140a4dc Automatic merge of Transifex translations 2016-09-23 00:34:48 +00:00
Philip Müller
ad4d3ad5c2 Merge pull request #262 from calamares/revert-261-upstream-master
Revert "Merge upstream changes"
2016-09-22 20:48:26 +02:00
Philip Müller
bbfc479095 Revert "Merge upstream changes" 2016-09-22 20:47:52 +02:00
Philip Müller
1e257e855d Merge pull request #261 from manjaro/upstream-master
Merge upstream changes
2016-09-22 20:46:52 +02:00
Teo Mrnjavac
567ac87440 Remove target resolv.conf before proceeding. 2016-09-22 15:43:41 +02:00
Teo Mrnjavac
37384279e5 Add support for writing keymap data to /etc/default/keyboard. 2016-09-22 12:32:30 +02:00
Philip Müller
cdd8aa237f Merge pull request #5 from calamares/master
Merge upstream changes
2016-09-21 20:31:45 +02:00
shainer
04c552ba9f Merge branch 'master' of github.com:calamares/calamares 2016-09-21 12:57:32 +02:00
shainer
479b67f696 In the netinstall page, always show the arrow-down button.
The arrow no longer changes direction depending on whether
the button is clicked or not.
2016-09-21 12:56:38 +02:00
Calamares CI
abb2f91dc4 Automatic merge of Transifex translations 2016-09-21 00:34:08 +00:00
shainer
d45a6bd856 In the netinstall page, fix the group button.
The button is "not checked" by default, and becomes
checked when clicked; the packageview becomes visible
when the button is checked.
2016-09-20 18:20:53 +02:00
Calamares CI
971ae902c8 Automatic merge of Transifex translations 2016-09-20 00:37:18 +00:00
Teo Mrnjavac
4662c9c877 Remove irrelevant debug output. 2016-09-19 12:34:45 +02:00
Calamares CI
81e43b1362 Automatic merge of Transifex translations 2016-09-18 00:35:01 +00:00
Philip Müller
ec3c8d6cd4 Merge pull request #3 from calamares/master
Merge upstream changes
2016-09-17 10:11:03 +02:00
Calamares CI
89b981c585 Automatic merge of Transifex translations 2016-09-17 00:35:03 +00:00
Teo Mrnjavac
3408eb5c56 Fix VFAT filename handling in bootloader module.
CAL-385 #close
2016-09-16 16:31:38 +02:00
Teo Mrnjavac
a48dadf757 Warning in debug output when the RequirementsChecker is misconfigured.
CAL-390 #close
2016-09-16 10:54:39 +02:00
Kevin Kofler
0ad215bcca users: Drop dependency on chfn. (#260)
Pass the full name directly to useradd instead, using the "-c" (comment)
parameter, which is "currently used as the field for the user's full
name" according to the documentation.

The chfn utility is no longer installed by default on current Fedora
releases due to its dependency on libuser. (They split out chfn and chsh
from util-linux into an optional subpackage.) It could be added as a
dependency of Calamares, but since it is needed inside the chroot, it
has to be on the base live image, not the overlay. Thus, to allow
testing Calamares with a simple "dnf install calamares" again, the
dependency needs to go away. And it is unnecessary anyway.
2016-09-16 07:55:04 +02:00
Calamares CI
90cccb9424 Automatic merge of Transifex translations 2016-09-14 00:34:57 +00:00
Philip Müller
b5013849fe Merge pull request #2 from calamares/master
Merge upstream changes
2016-09-13 08:14:05 +02:00
Jonathan Carter
d2a274012a Add keywords to desktop file (#259)
* Fix spelling mistake in kdsingleapplicationguard.cpp

s/emty/empty/g.

* Add fdo keywords

Add freedesktop.org keywords to desktop entry.

This allows users to search for the app in various desktop environments.

For more details, see:
    https://specifications.freedesktop.org/desktop-entry-spec/latest/ar01s05.html,
    https://bugs.debian.org/693918, and
    https://wiki.gnome.org/Initiatives/GnomeGoals/DesktopFileKeywords for
2016-09-12 15:53:35 +02:00
Jonathan Carter
48673a19c3 Merge pull request #2 from highvoltage/add-keywords-to-desktop-file
Add fdo keywords
2016-09-12 14:50:39 +02:00
Jonathan Carter
47e2039ac0 Add fdo keywords
Add freedesktop.org keywords to desktop entry.

This allows users to search for the app in various desktop environments.

For more details, see:
    https://specifications.freedesktop.org/desktop-entry-spec/latest/ar01s05.html,
    https://bugs.debian.org/693918, and
    https://wiki.gnome.org/Initiatives/GnomeGoals/DesktopFileKeywords for
2016-09-12 14:49:49 +02:00
Philip Müller
ea1c8a0e5d [plymouthcfg] add module to configure Plymouth (#256) 2016-09-12 07:59:17 +02:00
Jonathan Carter
c83ca9af44 Fix spelling mistake in kdsingleapplicationguard.cpp (#257)
s/emty/empty/g.
2016-09-12 07:56:13 +02:00
Teo Mrnjavac
7e4a2fe37e Merge pull request #258 from tctara/master
Use device's immutable copy instead of rescanning.
2016-09-12 07:53:52 +02:00
Jonathan Carter
91c6ba3665 Merge pull request #1 from highvoltage/fix-spelling-mistake
Fix spelling mistake in kdsingleapplicationguard.cpp
2016-09-11 11:58:34 +02:00
Jonathan Carter
b9b0833b9b Fix spelling mistake in kdsingleapplicationguard.cpp
s/emty/empty/g.
2016-09-11 11:56:58 +02:00
Chantara Tith
64db6d5ba1 Use device's immutable copy instead of rescanning. 2016-09-11 16:20:50 +07:00
Teo Mrnjavac
c316d22b08 Keep an immutable copy for every scanned Device* to avoid rescans. 2016-09-09 11:28:39 +02:00
Teo Mrnjavac
464336d609 Assert on nullptr Device*. 2016-09-09 11:28:39 +02:00
Chantara Tith
23026252a8 Update to KPMcore LUKS' API changes 2016-09-09 11:28:39 +02:00
Chantara Tith
aa10fe982a API Changes, logicalSectorSize -> logicalSize, totalSectors -> totalLogical. 2016-09-09 11:28:39 +02:00
Calamares CI
b76e5a027f Automatic merge of Transifex translations 2016-09-06 00:34:31 +00:00
Calamares CI
bbb1cddcdc Automatic merge of Transifex translations 2016-09-05 00:34:16 +00:00
Calamares CI
cfd5b15b33 Automatic merge of Transifex translations 2016-09-04 00:34:20 +00:00
Calamares CI
d1bcb6051d Automatic merge of Transifex translations 2016-09-03 00:34:16 +00:00
Teo Mrnjavac
d3d7944828 Try with an URL. 2016-03-16 13:33:42 +01:00
Teo Mrnjavac
8f86b197f2 Initialize crash handler. 2016-03-16 13:20:39 +01:00
Teo Mrnjavac
fe1e1cb3c0 Export WITH_KCRASH in CalamaresConfig.h.in. 2016-03-16 12:19:19 +01:00
Teo Mrnjavac
e737c91796 And link against KCoreAddons. 2016-03-16 12:18:51 +01:00
Teo Mrnjavac
2a5b22f584 If building with KCrash, require KCoreAddons. 2016-03-16 12:18:35 +01:00
Teo Mrnjavac
1eba4b2d77 Add Translators team credit. 2016-03-16 12:18:05 +01:00
Teo Mrnjavac
9928124195 Added toolbox page to Debug interface, with deliberate crash feature. 2016-03-16 11:44:20 +01:00
Teo Mrnjavac
e1326e397c Link against KCrash. 2016-03-16 11:35:03 +01:00
Teo Mrnjavac
24a60c4650 Make KCrash an optional dependency (option: WITH_KF5Crash). 2016-03-16 11:34:35 +01:00
Mingcong Bai
2d64110150 calamares: sidebarTextHighlight for branding
This commit adds support for distribution to define sidebarTextHighlight to their
branding.desc file, to control the left panel (sidebar) with highlight behind the
current step (isCurrent) text label.
2016-01-06 20:02:56 -07:00
1268 changed files with 343037 additions and 95920 deletions

33
.clang-format Normal file
View File

@@ -0,0 +1,33 @@
---
BasedOnStyle: WebKit
AlignAfterOpenBracket: Align
AlignEscapedNewlines: DontAlign
AllowAllParametersOfDeclarationOnNextLine: "false"
AllowShortFunctionsOnASingleLine: Inline
AllowShortIfStatementsOnASingleLine: "false"
AllowShortLoopsOnASingleLine: "false"
AlwaysBreakAfterReturnType: TopLevelDefinitions
AlwaysBreakTemplateDeclarations: Yes
BinPackArguments: "false"
BinPackParameters: "false"
BreakBeforeBraces: Allman
BreakBeforeTernaryOperators: "true"
BreakConstructorInitializers: BeforeComma
ColumnLimit: 120
Cpp11BracedListStyle: "false"
FixNamespaceComments: "true"
IncludeBlocks: Preserve
IndentWidth: "4"
MaxEmptyLinesToKeep: "2"
NamespaceIndentation: None
PointerAlignment: Left
ReflowComments: "false"
SortIncludes: "true"
SpaceAfterCStyleCast: "false"
SpacesBeforeTrailingComments: "2"
# SpaceInEmptyBlock: "true"
SpacesInAngles: "true"
SpacesInParentheses: "true"
SpacesInSquareBrackets: "true"
Standard: Cpp11

View File

@@ -7,7 +7,22 @@ charset = utf-8
end_of_line = lf
trim_trailing_whitespace = true
[CMakeLists.txt]
indent_style = space
indent_size = 4
insert_final_newline = true
[*.cmake]
indent_style = space
indent_size = 4
insert_final_newline = true
[*.{py,cpp,h}]
indent_style = space
indent_size = 4
insert_final_newline = true
[*.sh]
indent_style = tab
insert_final_newline = true

15
.gitattributes vendored
View File

@@ -1,6 +1,11 @@
.tx/* export-ignore
hacking/* export-ignore
HACKING.md export-ignore
.editorconfig export-ignore
src/modules/testmodule.py export-ignore
.editorconfig export-ignore
.gitattributes export-ignore
.github export-ignore
.gitignore export-ignore
.gitmodules export-ignore
.travis.yml export-ignore
.tx export-ignore
src/modules/testmodule.py export-ignore
src/modules/globalStorage.yaml export-ignore

26
.github/ISSUE_TEMPLATE/bug_report.md vendored Normal file
View File

@@ -0,0 +1,26 @@
---
name: Bug report
about: Create a report to help us improve
---
> Hi! Thank you for helping improve Calamares. If you are seeing a problem in installing a specific distribution, you should **probably** report the problem in the distribution's bug tracker, first. That helps filter out issues with packaging, mis-configuration, etc. that Calamares has no control over. If you are a distribution packager or maintainer, this page is for you.
**Describe the bug**
A clear and concise description of what the bug is. Please include 32/64 bit machine details, EFI/BIOS details, and disk setup.
**To Reproduce**
Steps to reproduce the behavior:
1. Go to '...'
2. Click on '....'
3. Scroll down to '....'
4. See error
**Expected behavior**
A clear and concise description of what you expected to happen.
**Screenshots and Logs**
If applicable, add screenshots to help explain your problem. Calamares has an installation log (usually `~/.cache/calamares/session.log`), please check it for confidential information and attach it if possible.
**Additional context**
Add any other context about the problem here.

View File

@@ -0,0 +1,17 @@
---
name: Feature request
about: Suggest an idea for this project
---
**Is your feature request related to a problem? Please describe.**
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
**Describe the solution you'd like**
A clear and concise description of what you want to happen.
**Describe alternatives you've considered**
A clear and concise description of any alternative solutions or features you've considered.
**Additional context**
Add any other context or screenshots about the feature request here.

11
.gitignore vendored
View File

@@ -21,6 +21,7 @@ __pycache__
*.pro.user
*.pro.user.*
*.moc
*.qmlc
moc_*.cpp
qrc_*.cpp
ui_*.h
@@ -35,8 +36,18 @@ Makefile*
qtcreator-build
CMakeLists.txt.user
# KDevelop
*.kdev4
# PyCharm
.idea
# Visual Studio Code
.vscode
# Backup files
*~
# Kate
*.kate-swp
tags

3
.gitmodules vendored
View File

@@ -1,3 +0,0 @@
[submodule "thirdparty/libcrashreporter-qt"]
path = thirdparty/libcrashreporter-qt
url = https://github.com/dschmidt/libcrashreporter-qt

20
.travis.yml Normal file
View File

@@ -0,0 +1,20 @@
language: cpp
python:
- 3.5
sudo: required
services:
- docker
notifications:
irc:
- "chat.freenode.net#calamares"
install:
- docker build -t calamares .
script:
- docker run -v $PWD:/src --tmpfs /build:rw,size=81920k -e SRCDIR=/src -e BUILDDIR=/build calamares "/src/ci/travis.sh"

View File

@@ -1,9 +1,21 @@
[main]
host = https://www.transifex.com
[calamares.calamares-master]
[calamares.calamares]
file_filter = lang/calamares_<lang>.ts
source_file = lang/calamares_en.ts
source_lang = en
type = QT
[calamares.fdo]
file_filter = lang/desktop_<lang>.desktop
source_file = calamares.desktop
source_lang = en
type = DESKTOP
[calamares.python]
file_filter = lang/python/<lang>/LC_MESSAGES/python.po
source_file = lang/python.pot
source_lang = en
type = PO

View File

@@ -1,3 +1,9 @@
/*
* SPDX-License-Identifier: LGPL-2.0-only
* License-Filename: LICENSES/LGPLv2-KDAB
*
* The KD Tools Library is Copyright (C) 2001-2010 Klaralvdalens Datakonsult AB.
*/
#include "kdlockedsharedmemorypointer.h"
#if QT_VERSION >= 0x040400 || defined( DOXYGEN_RUN )

View File

@@ -1,3 +1,9 @@
/*
* SPDX-License-Identifier: LGPL-2.0-only
* License-Filename: LICENSES/LGPLv2-KDAB
*
* The KD Tools Library is Copyright (C) 2001-2010 Klaralvdalens Datakonsult AB.
*/
#ifndef __KDTOOLS__CORE__KDLOCKEDSHAREDMEMORYPOINTER_H__
#define __KDTOOLS__CORE__KDLOCKEDSHAREDMEMORYPOINTER_H__
@@ -74,7 +80,7 @@ public:
typedef const T* const_iterator;
typedef std::reverse_iterator< const_iterator > const_reverse_iterator;
typedef std::reverse_iterator< iterator > reverse_iterator;
iterator begin() { return get(); }
const_iterator begin() const { return get(); }

View File

@@ -1,3 +1,9 @@
/*
* SPDX-License-Identifier: LGPL-2.0-only
* License-Filename: LICENSES/LGPLv2-KDAB
*
* The KD Tools Library is Copyright (C) 2001-2010 Klaralvdalens Datakonsult AB.
*/
#include "kdsharedmemorylocker.h"
#if QT_VERSION >= 0x040400 || defined( DOXYGEN_RUN )

View File

@@ -1,3 +1,9 @@
/*
* SPDX-License-Identifier: LGPL-2.0-only
* License-Filename: LICENSES/LGPLv2-KDAB
*
* The KD Tools Library is Copyright (C) 2001-2010 Klaralvdalens Datakonsult AB.
*/
#ifndef __KDTOOLS__CORE__KDSHAREDMEMORYLOCKER_H
#define __KDTOOLS__CORE__KDSHAREDMEMORYLOCKER_H

View File

@@ -1,3 +1,9 @@
/*
* SPDX-License-Identifier: LGPL-2.0-only
* License-Filename: LICENSES/LGPLv2-KDAB
*
* The KD Tools Library is Copyright (C) 2001-2010 Klaralvdalens Datakonsult AB.
*/
#include "kdsingleapplicationguard.h"
#if QT_VERSION >= 0x040400 || defined(DOXYGEN_RUN)
@@ -11,6 +17,7 @@
#include <QSharedMemory>
#include <QSharedData>
#include <QBasicTimer>
#include <QElapsedTimer>
#include <QTime>
#include <algorithm>
@@ -723,7 +730,7 @@ void KDSingleApplicationGuard::Private::create( const QStringList & arguments )
const QString name = QCoreApplication::applicationName();
if ( name.isEmpty() ) {
qWarning( "KDSingleApplicationGuard: QCoreApplication::applicationName must not be emty" );
qWarning( "KDSingleApplicationGuard: QCoreApplication::applicationName must not be empty" );
return;
}
@@ -758,7 +765,7 @@ void KDSingleApplicationGuard::Private::create( const QStringList & arguments )
}
const int maxWaitMSecs = 1000 * 60; // stop waiting after 60 seconds
QTime waitTimer;
QElapsedTimer waitTimer;
waitTimer.start();
// lets wait till the other instance initialized the register
@@ -1112,7 +1119,7 @@ void KDSingleApplicationGuard::Private::poll() {
}
}
#include "moc_kdsingleapplicationguard.cpp"
// #include "moc_kdsingleapplicationguard.cpp"
#ifdef KDTOOLSCORE_UNITTESTS

View File

@@ -1,5 +1,11 @@
#ifndef __KDTOOLSCORE_KDSINGLEAPPLICATIONGUARD_H__
#define __KDTOOLSCORE_KDSINGLEAPPLICATIONGUARD_H__
/*
* SPDX-License-Identifier: LGPL-2.0-only
* License-Filename: LICENSES/LGPLv2-KDAB
*
* The KD Tools Library is Copyright (C) 2001-2010 Klaralvdalens Datakonsult AB.
*/
#ifndef KDTOOLSCORE_KDSINGLEAPPLICATIONGUARD_H
#define KDTOOLSCORE_KDSINGLEAPPLICATIONGUARD_H
#include <QtCore/QObject>
@@ -31,10 +37,10 @@ public:
AutoKillOtherInstances = 1
};
explicit KDSingleApplicationGuard( QObject * parent=0 );
explicit KDSingleApplicationGuard( Policy policy, QObject * parent=0 );
explicit KDSingleApplicationGuard( const QStringList & arguments, QObject * parent=0 );
explicit KDSingleApplicationGuard( const QStringList & arguments, Policy policy, QObject * parent=0 );
explicit KDSingleApplicationGuard( QObject * parent=nullptr );
explicit KDSingleApplicationGuard( Policy policy, QObject * parent=nullptr );
explicit KDSingleApplicationGuard( const QStringList & arguments, QObject * parent=nullptr );
explicit KDSingleApplicationGuard( const QStringList & arguments, Policy policy, QObject * parent=nullptr );
~KDSingleApplicationGuard();
bool isOperational() const;
@@ -138,4 +144,4 @@ QT_END_NAMESPACE
#endif // QT_NO_SHAREDMEMORY
#endif /* __KDTOOLSCORE_KDSINGLEAPPLICATIONGUARD_H__ */
#endif /* KDTOOLSCORE_KDSINGLEAPPLICATIONGUARD_H */

View File

@@ -1,3 +1,9 @@
/*
* SPDX-License-Identifier: LGPL-2.0-only
* License-Filename: LICENSES/LGPLv2-KDAB
*
* The KD Tools Library is Copyright (C) 2001-2010 Klaralvdalens Datakonsult AB.
*/
#include "kdtoolsglobal.h"
#include <QByteArray>
@@ -27,7 +33,7 @@ static Version kdParseQtVersion( const char * const version ) {
return result;
}
bool _kdCheckQtVersion_impl( int major, int minor, int patchlevel ) {
bool _kdCheckQtVersion_impl( unsigned int major, unsigned int minor, unsigned int patchlevel ) {
static const Version actual = kdParseQtVersion( qVersion() ); // do this only once each run...
const Version requested = { { static_cast< unsigned char >( major ),
static_cast< unsigned char >( minor ),

View File

@@ -1,5 +1,11 @@
#ifndef __KDTOOLS_KDTOOLSGLOBAL_H__
#define __KDTOOLS_KDTOOLSGLOBAL_H__
/*
* SPDX-License-Identifier: LGPL-2.0-only
* License-Filename: LICENSES/LGPLv2-KDAB
*
* The KD Tools Library is Copyright (C) 2001-2010 Klaralvdalens Datakonsult AB.
*/
#ifndef KDTOOLS_KDTOOLSGLOBAL_H
#define KDTOOLS_KDTOOLSGLOBAL_H
#include <QtCore/QtGlobal>
@@ -78,7 +84,7 @@ inline T & __kdtools__dereference_for_methodcall( T * o ) {
#define KDAB_SET_OBJECT_NAME( x ) __kdtools__dereference_for_methodcall( x ).setObjectName( QLatin1String( #x ) )
KDTOOLSCORE_EXPORT bool _kdCheckQtVersion_impl( int major, int minor=0, int patchlevel=0 );
KDTOOLSCORE_EXPORT bool _kdCheckQtVersion_impl( unsigned int major, unsigned int minor=0, unsigned int patchlevel=0 );
static inline bool kdCheckQtVersion( unsigned int major, unsigned int minor=0, unsigned int patchlevel=0 ) {
return (major<<16|minor<<8|patchlevel) <= static_cast<unsigned int>(QT_VERSION)
|| _kdCheckQtVersion_impl( major, minor, patchlevel );
@@ -110,5 +116,5 @@ private: \
void init(bool)
#endif /* __KDTOOLS_KDTOOLSGLOBAL_H__ */
#endif /* KDTOOLS_KDTOOLSGLOBAL_H */

View File

@@ -1,3 +1,9 @@
/*
* SPDX-License-Identifier: LGPL-2.0-only
* License-Filename: LICENSES/LGPLv2-KDAB
*
* The KD Tools Library is Copyright (C) 2001-2010 Klaralvdalens Datakonsult AB.
*/
#include "pimpl_ptr.h"
/*!
@@ -9,7 +15,7 @@
(The exception safety of this class has not been evaluated yet.)
pimpl_ptr is a smart immutable pointer, which owns the contained object. Unlike other smart pointers,
it creates a standard constructed object when instanciated via the
it creates a standard constructed object when instanciated via the
\link pimpl_ptr() standard constructor\endlink.
Additionally, pimpl_ptr respects constness of the pointer object and returns \c const \c T* for
a const pimpl_ptr object.
@@ -126,7 +132,7 @@
*/
/*!
\fn T * pimpl_ptr::operator->()
\fn T * pimpl_ptr::operator->()
Member-by-pointer operator. Returns get().
*/
@@ -163,7 +169,7 @@ KDAB_UNITTEST_SIMPLE( pimpl_ptr, "kdcoretools" ) {
}
{
{
QPointer< QObject > o;
{
kdtools::pimpl_ptr< QObject > qobject( new QObject );
@@ -174,7 +180,7 @@ KDAB_UNITTEST_SIMPLE( pimpl_ptr, "kdcoretools" ) {
assertNull( o );
}
{
{
const kdtools::pimpl_ptr< QObject > qobject( new QObject );
const QObject* o = qobject.get();
assertEqual( o, qobject.operator->() );

View File

@@ -1,5 +1,11 @@
#ifndef __KDTOOLSCORE__PIMPL_PTR_H__
#define __KDTOOLSCORE__PIMPL_PTR_H__
/*
* SPDX-License-Identifier: LGPL-2.0-only
* License-Filename: LICENSES/LGPLv2-KDAB
*
* The KD Tools Library is Copyright (C) 2001-2010 Klaralvdalens Datakonsult AB.
*/
#ifndef KDTOOLSCORE_PIMPL_PTR_H
#define KDTOOLSCORE_PIMPL_PTR_H
#include "kdtoolsglobal.h"
@@ -14,7 +20,7 @@ namespace kdtools {
public:
pimpl_ptr() : d( new T ) {}
explicit pimpl_ptr( T * t ) : d( t ) {}
~pimpl_ptr() { delete d; d = 0; }
~pimpl_ptr() { delete d; d = nullptr; }
T * get() { return d; }
const T * get() const { return d; }
@@ -40,5 +46,5 @@ namespace kdtools {
} // namespace kdtools
#endif
#endif /* __KDTOOLSCORE__PIMPL_PTR_H__ */
#endif /* KDTOOLSCORE_PIMPL_PTR_H */

282
3rdparty/waitingspinnerwidget.cpp vendored Normal file
View File

@@ -0,0 +1,282 @@
/*
* SPDX-License-Identifier: MIT
* License-Filename: LICENSES/MIT-QtWaitingSpinner
*/
/* Original Work Copyright (c) 2012-2014 Alexander Turkin
Modified 2014 by William Hallatt
Modified 2015 by Jacob Dawid
Permission is hereby granted, free of charge, to any person obtaining a copy of
this software and associated documentation files (the "Software"), to deal in
the Software without restriction, including without limitation the rights to
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
the Software, and to permit persons to whom the Software is furnished to do so,
subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
// Own includes
#include "waitingspinnerwidget.h"
// Standard includes
#include <cmath>
#include <algorithm>
// Qt includes
#include <QPainter>
#include <QTimer>
WaitingSpinnerWidget::WaitingSpinnerWidget(QWidget *parent,
bool centerOnParent,
bool disableParentWhenSpinning)
: QWidget(parent),
_centerOnParent(centerOnParent),
_disableParentWhenSpinning(disableParentWhenSpinning) {
initialize();
}
WaitingSpinnerWidget::WaitingSpinnerWidget(Qt::WindowModality modality,
QWidget *parent,
bool centerOnParent,
bool disableParentWhenSpinning)
: QWidget(parent, Qt::Dialog | Qt::FramelessWindowHint),
_centerOnParent(centerOnParent),
_disableParentWhenSpinning(disableParentWhenSpinning){
initialize();
// We need to set the window modality AFTER we've hidden the
// widget for the first time since changing this property while
// the widget is visible has no effect.
setWindowModality(modality);
setAttribute(Qt::WA_TranslucentBackground);
}
void WaitingSpinnerWidget::initialize() {
_color = Qt::black;
_roundness = 100.0;
_minimumTrailOpacity = 3.14159265358979323846;
_trailFadePercentage = 80.0;
_revolutionsPerSecond = 1.57079632679489661923;
_numberOfLines = 20;
_lineLength = 10;
_lineWidth = 2;
_innerRadius = 10;
_currentCounter = 0;
_isSpinning = false;
_timer = new QTimer(this);
connect(_timer, SIGNAL(timeout()), this, SLOT(rotate()));
updateSize();
updateTimer();
hide();
}
void WaitingSpinnerWidget::paintEvent(QPaintEvent *) {
updatePosition();
QPainter painter(this);
painter.fillRect(this->rect(), Qt::transparent);
painter.setRenderHint(QPainter::Antialiasing, true);
if (_currentCounter >= _numberOfLines) {
_currentCounter = 0;
}
painter.setPen(Qt::NoPen);
for (int i = 0; i < _numberOfLines; ++i) {
painter.save();
painter.translate(_innerRadius + _lineLength,
_innerRadius + _lineLength);
qreal rotateAngle =
static_cast<qreal>(360 * i) / static_cast<qreal>(_numberOfLines);
painter.rotate(rotateAngle);
painter.translate(_innerRadius, 0);
int distance =
lineCountDistanceFromPrimary(i, _currentCounter, _numberOfLines);
QColor color =
currentLineColor(distance, _numberOfLines, _trailFadePercentage,
_minimumTrailOpacity, _color);
painter.setBrush(color);
// TODO improve the way rounded rect is painted
painter.drawRoundedRect(
QRect(0, -_lineWidth / 2, _lineLength, _lineWidth), _roundness,
_roundness, Qt::RelativeSize);
painter.restore();
}
}
void WaitingSpinnerWidget::start() {
updatePosition();
_isSpinning = true;
show();
if(parentWidget() && _disableParentWhenSpinning) {
parentWidget()->setEnabled(false);
}
if (!_timer->isActive()) {
_timer->start();
_currentCounter = 0;
}
}
void WaitingSpinnerWidget::stop() {
_isSpinning = false;
hide();
if(parentWidget() && _disableParentWhenSpinning) {
parentWidget()->setEnabled(true);
}
if (_timer->isActive()) {
_timer->stop();
_currentCounter = 0;
}
}
void WaitingSpinnerWidget::setNumberOfLines(int lines) {
_numberOfLines = lines;
_currentCounter = 0;
updateTimer();
}
void WaitingSpinnerWidget::setLineLength(int length) {
_lineLength = length;
updateSize();
}
void WaitingSpinnerWidget::setLineWidth(int width) {
_lineWidth = width;
updateSize();
}
void WaitingSpinnerWidget::setInnerRadius(int radius) {
_innerRadius = radius;
updateSize();
}
QColor WaitingSpinnerWidget::color() {
return _color;
}
qreal WaitingSpinnerWidget::roundness() {
return _roundness;
}
qreal WaitingSpinnerWidget::minimumTrailOpacity() {
return _minimumTrailOpacity;
}
qreal WaitingSpinnerWidget::trailFadePercentage() {
return _trailFadePercentage;
}
qreal WaitingSpinnerWidget::revolutionsPersSecond() {
return _revolutionsPerSecond;
}
int WaitingSpinnerWidget::numberOfLines() {
return _numberOfLines;
}
int WaitingSpinnerWidget::lineLength() {
return _lineLength;
}
int WaitingSpinnerWidget::lineWidth() {
return _lineWidth;
}
int WaitingSpinnerWidget::innerRadius() {
return _innerRadius;
}
bool WaitingSpinnerWidget::isSpinning() const {
return _isSpinning;
}
void WaitingSpinnerWidget::setRoundness(qreal roundness) {
_roundness = std::max(0.0, std::min(100.0, roundness));
}
void WaitingSpinnerWidget::setColor(QColor color) {
_color = color;
}
void WaitingSpinnerWidget::setRevolutionsPerSecond(qreal revolutionsPerSecond) {
_revolutionsPerSecond = revolutionsPerSecond;
updateTimer();
}
void WaitingSpinnerWidget::setTrailFadePercentage(qreal trail) {
_trailFadePercentage = trail;
}
void WaitingSpinnerWidget::setMinimumTrailOpacity(qreal minimumTrailOpacity) {
_minimumTrailOpacity = minimumTrailOpacity;
}
void WaitingSpinnerWidget::rotate() {
++_currentCounter;
if (_currentCounter >= _numberOfLines) {
_currentCounter = 0;
}
update();
}
void WaitingSpinnerWidget::updateSize() {
int size = (_innerRadius + _lineLength) * 2;
setFixedSize(size, size);
}
void WaitingSpinnerWidget::updateTimer() {
_timer->setInterval(1000 / (_numberOfLines * _revolutionsPerSecond));
}
void WaitingSpinnerWidget::updatePosition() {
if (parentWidget() && _centerOnParent) {
move(parentWidget()->width() / 2 - width() / 2,
parentWidget()->height() / 2 - height() / 2);
}
}
int WaitingSpinnerWidget::lineCountDistanceFromPrimary(int current, int primary,
int totalNrOfLines) {
int distance = primary - current;
if (distance < 0) {
distance += totalNrOfLines;
}
return distance;
}
QColor WaitingSpinnerWidget::currentLineColor(int countDistance, int totalNrOfLines,
qreal trailFadePerc, qreal minOpacity,
QColor color) {
if (countDistance == 0) {
return color;
}
const qreal minAlphaF = minOpacity / 100.0;
int distanceThreshold =
static_cast<int>(ceil((totalNrOfLines - 1) * trailFadePerc / 100.0));
if (countDistance > distanceThreshold) {
color.setAlphaF(minAlphaF);
} else {
qreal alphaDiff = color.alphaF() - minAlphaF;
qreal gradient = alphaDiff / static_cast<qreal>(distanceThreshold + 1);
qreal resultAlpha = color.alphaF() - gradient * countDistance;
// If alpha is out of bounds, clip it.
resultAlpha = std::min(1.0, std::max(0.0, resultAlpha));
color.setAlphaF(resultAlpha);
}
return color;
}

119
3rdparty/waitingspinnerwidget.h vendored Normal file
View File

@@ -0,0 +1,119 @@
/*
* SPDX-License-Identifier: MIT
* License-Filename: LICENSES/MIT-QtWaitingSpinner
*/
/* Original Work Copyright (c) 2012-2014 Alexander Turkin
Modified 2014 by William Hallatt
Modified 2015 by Jacob Dawid
Permission is hereby granted, free of charge, to any person obtaining a copy of
this software and associated documentation files (the "Software"), to deal in
the Software without restriction, including without limitation the rights to
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
the Software, and to permit persons to whom the Software is furnished to do so,
subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
#pragma once
// Qt includes
#include <QWidget>
#include <QTimer>
#include <QColor>
class WaitingSpinnerWidget : public QWidget {
Q_OBJECT
public:
/*! Constructor for "standard" widget behaviour - use this
* constructor if you wish to, e.g. embed your widget in another. */
WaitingSpinnerWidget(QWidget *parent = nullptr,
bool centerOnParent = true,
bool disableParentWhenSpinning = true);
/*! Constructor - use this constructor to automatically create a modal
* ("blocking") spinner on top of the calling widget/window. If a valid
* parent widget is provided, "centreOnParent" will ensure that
* QtWaitingSpinner automatically centres itself on it, if not,
* "centreOnParent" is ignored. */
WaitingSpinnerWidget(Qt::WindowModality modality,
QWidget *parent = nullptr,
bool centerOnParent = true,
bool disableParentWhenSpinning = true);
public slots:
void start();
void stop();
public:
void setColor(QColor color);
void setRoundness(qreal roundness);
void setMinimumTrailOpacity(qreal minimumTrailOpacity);
void setTrailFadePercentage(qreal trail);
void setRevolutionsPerSecond(qreal revolutionsPerSecond);
void setNumberOfLines(int lines);
void setLineLength(int length);
void setLineWidth(int width);
void setInnerRadius(int radius);
void setText(QString text);
QColor color();
qreal roundness();
qreal minimumTrailOpacity();
qreal trailFadePercentage();
qreal revolutionsPersSecond();
int numberOfLines();
int lineLength();
int lineWidth();
int innerRadius();
bool isSpinning() const;
private slots:
void rotate();
protected:
void paintEvent(QPaintEvent *paintEvent);
private:
static int lineCountDistanceFromPrimary(int current, int primary,
int totalNrOfLines);
static QColor currentLineColor(int distance, int totalNrOfLines,
qreal trailFadePerc, qreal minOpacity,
QColor color);
void initialize();
void updateSize();
void updateTimer();
void updatePosition();
private:
QColor _color;
qreal _roundness; // 0..100
qreal _minimumTrailOpacity;
qreal _trailFadePercentage;
qreal _revolutionsPerSecond;
int _numberOfLines;
int _lineLength;
int _lineWidth;
int _innerRadius;
private:
WaitingSpinnerWidget(const WaitingSpinnerWidget&);
WaitingSpinnerWidget& operator=(const WaitingSpinnerWidget&);
QTimer *_timer;
bool _centerOnParent;
bool _disableParentWhenSpinning;
int _currentCounter;
bool _isSpinning;
};

45
AUTHORS
View File

@@ -1 +1,44 @@
Teo Mrnjavac <teo@kde.org>
# MAINTAINER
Calamares development is sponsored by Blue Systems GmbH - Liberating Software.
Calamares maintainers through the years:
* Teo Mrnjavac <teo@kde.org> (maintainer -2017)
* Adriaan de Groot <groot@kde.org> (maintainer 2017-)
# CONTRIBUTORS
Calamares has received contributions of code, documentation, artwork
and moral support from (alphabetically by first name or nickname):
- Alf Gaida
- aliveafter1000
- Allen Welkie
- AlmAck
- Andrius Štikonas
- Arnaud Ferraris
- artoo@cromnix.org
- Bernhard Landauer
- Bezzy1999
- Bill Auger
- Caio Jordão Carvalho
- Collabora LTD
- crispg72
- Dan Simmons
- demmm
- Dominic Hayes
- Frede H
- Gabriel Craciunescu
- Harald Sitter
- Kai Dohmen
- Kevin Kofler
- Kyle Robertze
- Lisa Vitolo
- n3rdopolis
- Philip Müller
- Ramon Buldó
- Raul Rodrigo Segura
- Rohan Garg
- Scott Harvey
- Simon Quigley
- Walter Lapchynski

1007
CHANGES Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -1,35 +1,274 @@
project( calamares CXX )
# === This file is part of Calamares - <https://github.com/calamares> ===
#
# SPDX-FileCopyrightText: 2017 Adriaan de Groot <groot@kde.org>
# SPDX-License-Identifier: GPL-3.0-or-later
#
# 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/>.
#
###
#
# Generally, this CMakeLists.txt will find all the dependencies for Calamares
# and complain appropriately. See below (later in this file) for CMake-level
# options. There are some "secret" options as well:
#
# SKIP_MODULES : a space or semicolon-separated list of directory names
# under src/modules that should not be built.
# USE_<foo> : fills in SKIP_MODULES for modules called <foo>-<something>
# WITH_<foo> : try to enable <foo> (these usually default to ON). For
# a list of WITH_<foo> grep CMakeCache.txt after running
# CMake once. These affect the ABI offered by Calamares.
# - PYTHON (enable Python Job modules)
# - QML (enable QML UI View modules)
# - PYTHONQT # TODO:3.3: remove
# BUILD_<foo> : choose additional things to build
# - TESTING (standard CMake option)
# - SCHEMA_TESTING (requires Python, see ci/configvalidator.py)
# DEBUG_<foo> : special developer flags for debugging
#
# Example usage:
#
# cmake . -DSKIP_MODULES="partition luksbootkeycfg"
#
# One special target is "show-version", which can be built
# to obtain the version number from here.
# The partition manager uses ECM but ECMConfig.cmake
# will complain if we require CMake less than 2.8.13,
# so never change this.
cmake_minimum_required( VERSION 2.8.12 )
# TODO:3.3: Require CMake 3.12
cmake_minimum_required( VERSION 3.3 FATAL_ERROR )
project( CALAMARES
VERSION 3.2.28.1
LANGUAGES C CXX )
set( CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/CMakeModules" )
set( CALAMARES_VERSION_RC 0 ) # Set to 0 during release cycle, 1 during development
### OPTIONS
#
option( INSTALL_CONFIG "Install configuration files" OFF )
option( INSTALL_POLKIT "Install Polkit configuration" ON )
option( INSTALL_COMPLETION "Install shell completions" OFF )
# Options for the calamares executable
option( WITH_KF5Crash "Enable crash reporting with KCrash." ON ) # TODO:3.3: WITH->BUILD (this isn't an ABI thing)
option( WITH_KF5DBus "Use DBus service for unique-application." OFF ) # TODO:3.3: WITH->BUILD
# When adding WITH_* that affects the ABI offered by libcalamares,
# also update libcalamares/CalamaresConfig.h.in
option( WITH_PYTHON "Enable Python modules API (requires Boost.Python)." ON )
option( WITH_PYTHONQT "Enable Python view modules API (deprecated, requires PythonQt)." OFF ) # TODO:3.3: remove
option( WITH_QML "Enable QML UI options." ON )
#
# Additional parts to build
option( BUILD_SCHEMA_TESTING "Enable schema-validation-tests" ON )
# Possible debugging flags are:
# - DEBUG_TIMEZONES draws latitude and longitude lines on the timezone
# widget and enables chatty debug logging, for dealing with the timezone
# location database.
# - DEBUG_FILESYSTEMS does extra logging and checking when looking at
# partition configuration. Lists known KPMCore FS types.
# - DEBUG_PARTITION_UNSAFE (see partition/CMakeLists.txt)
# - DEBUG_PARTITION_LAME (see partition/CMakeLists.txt)
### USE_*
#
# By convention, when there are multiple modules that implement similar
# functionality, and it only makes sense to have **at most one** of them
# enabled at any time, those modules are named <foo>-<implementation>.
# For example, services-systemd and services-openrc.
#
# Setting up SKIP_MODULES to ignore "the ones you don't want" can be
# annoying and error-prone (e.g. if a new module shows up). The USE_*
# modules provide a way to do automatic selection. To pick exactly
# one of the implementations from group <foo>, set USE_<foo> to the
# name of the implementation. If USE_<foo> is unset, or empty, then
# all the implementations are enabled (this just means they are
# **available** to `settings.conf`, not that they are used).
#
# To explicitly disable a set of modules, set USE_<foo>=none
# (e.g. the literal string none), which won't match any of the
# modules but is handled specially. This is the default for
# USE_os, which are modules for specialty non-Linux distributions.
#
# The following USE_* functionalities are available:
# - *services* picks one of the two service-configuration modules,
# for either systemd or openrc. This defaults to empty so that
# **both** modules are available.
# - *os* picks an OS-specific module for things-that-are-not-Linux.
# It is generally discouraged to use this unless your distro is
# completely unable to use standard Linux tools for configuration.
# This defaults to *none* so that nothing gets picked up and nothing
# is packaged -- you must explicitly set it to empty to get all of
# the modules, but that hardly makes sense. Note, too that there
# are currently no os-* modules shipped with Calamares.
set( USE_services "" CACHE STRING "Select the services module to use" )
set( USE_os "none" CACHE STRING "Select the OS-specific module to include" )
### Calamares application info
#
set( CALAMARES_ORGANIZATION_NAME "Calamares" )
set( CALAMARES_ORGANIZATION_DOMAIN "github.com/calamares" )
set( CALAMARES_APPLICATION_NAME "Calamares" )
set( CALAMARES_DESCRIPTION_SUMMARY
"The distribution-independent installer framework" )
### Transifex (languages) info
#
# complete = 100% translated,
# good = nearly complete (use own judgement, right now >= 75%)
# ok = incomplete (more than 25% untranslated, at least 5% translated),
# incomplete = <5% translated, placeholder in tx; these are not included.
#
# Language en (source language) is added later. It isn't listed in
# Transifex either. Get the list of languages and their status
# from https://transifex.com/calamares/calamares/ , or (preferably)
# use ci/txstats.py to automatically check.
#
# When adding a new language, take care that it is properly loaded
# by the translation framework. Languages with alternate scripts
# (sr@latin in particular) may need special handling in CalamaresUtils.cpp.
#
# TODO: drop the es_ES translation from Transifex
#
# NOTE: move eo (Esperanto) to _ok once Qt can actually create a
# locale for it. (Qt 5.12.2 can, see Translation Status section).
# NOTE: move ie (Interlingue) to _ok once Qt supports it.
# NOTE: update these lines by running `txstats.py`, or for full automation
# `txstats.py -e`. See also
#
# Total 68 languages
set( _tx_complete ca fi_FI he hr nl pt_BR sq tg tr_TR uk zh_TW )
set( _tx_good as ast az az_AZ be cs_CZ da de es fr hi hu it_IT ja
ko lt ml pt_PT ru sk sv zh_CN )
set( _tx_ok ar bg el en_GB es_MX es_PR et eu fa gl id is mr nb
pl ro sl sr sr@latin th )
set( _tx_incomplete bn ca@valencia eo fr_CH gu ie kk kn lo lv mk ne_NP
ur uz )
### Required versions
#
# See DEPENDENCIES section below.
set( QT_VERSION 5.9.0 )
set( YAMLCPP_VERSION 0.5.1 )
set( ECM_VERSION 5.18 )
set( PYTHONLIBS_VERSION 3.3 )
set( BOOSTPYTHON_VERSION 1.55.0 )
### CMAKE SETUP
#
set( CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/CMakeModules" )
# Enable IN_LIST
if( POLICY CMP0057 )
cmake_policy( SET CMP0057 NEW )
endif()
# Let ``AUTOMOC`` and ``AUTOUIC`` process ``GENERATED`` files.
if( POLICY CMP0071 )
cmake_policy( SET CMP0071 NEW )
endif()
# Recognize more macros to trigger automoc
if(NOT CMAKE_VERSION VERSION_LESS "3.10.0")
list(APPEND CMAKE_AUTOMOC_MACRO_NAMES
"K_PLUGIN_FACTORY_WITH_JSON"
"K_EXPORT_PLASMA_DATAENGINE_WITH_JSON"
"K_EXPORT_PLASMA_RUNNER"
)
endif()
# CMake Modules
include( CMakePackageConfigHelpers )
include( CTest )
include( FeatureSummary )
# Calamares Modules
include( CMakeColors )
### C++ SETUP
#
set( CMAKE_CXX_STANDARD 14 )
set( CMAKE_CXX_STANDARD_REQUIRED ON )
set( CMAKE_C_STANDARD 99 )
set( CMAKE_C_STANDARD_REQUIRED ON )
set( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall" )
if( CMAKE_CXX_COMPILER_ID MATCHES "Clang" )
message( STATUS "Found Clang ${CMAKE_CXX_COMPILER_VERSION}, setting up Clang-specific compiler flags." )
set( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -std=c99" )
set( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall" )
set( CMAKE_C_FLAGS_DEBUG "-g" )
set( CMAKE_C_FLAGS_MINSIZEREL "-Os -DNDEBUG" )
set( CMAKE_C_FLAGS_RELEASE "-O4 -DNDEBUG" )
set( CMAKE_C_FLAGS_RELWITHDEBINFO "-O2 -g" )
set( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Weverything -std=c++14" )
set( CMAKE_CXX_FLAGS_DEBUG "-g" )
# Clang warnings: doing *everything* is counter-productive, since it warns
# about things which we can't fix (e.g. C++98 incompatibilities, but
# Calamares is C++14).
foreach( CLANG_WARNINGS
-Weverything
-Wno-c++98-compat
-Wno-c++98-compat-pedantic
-Wno-padded
-Wno-undefined-reinterpret-cast
-Wno-global-constructors
-Wno-exit-time-destructors
-Wno-missing-prototypes
-Wno-documentation-unknown-command
-Wno-unknown-warning-option
-Werror=return-type
)
string( APPEND CMAKE_CXX_FLAGS " ${CLANG_WARNINGS}" )
endforeach()
set( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DNOTREACHED='//' -DFALLTHRU='[[clang::fallthrough]]'")
# Third-party code where we don't care so much about compiler warnings
# (because it's uncomfortable to patch) get different flags; use
# mark_thirdparty_code( <file> [<file>...] )
# to switch off warnings for those sources.
set( SUPPRESS_3RDPARTY_WARNINGS "-Wno-everything" )
set( SUPPRESS_BOOST_WARNINGS " -Wno-zero-as-null-pointer-constant -Wno-disabled-macro-expansion" )
set( CMAKE_CXX_FLAGS_DEBUG "-g ${CMAKE_CXX_FLAGS_DEBUG}" )
set( CMAKE_CXX_FLAGS_MINSIZEREL "-Os -DNDEBUG" )
set( CMAKE_CXX_FLAGS_RELEASE "-O4 -DNDEBUG" )
set( CMAKE_CXX_FLAGS_RELEASE "-O3 -DNDEBUG" )
set( CMAKE_CXX_FLAGS_RELWITHDEBINFO "-O2 -g" )
set( CMAKE_TOOLCHAIN_PREFIX "llvm-" )
set( CMAKE_SHARED_LINKER_FLAGS "-Wl,--no-undefined" )
# The path prefix is only relevant for CMake 3.16 and later, fixes #1286
set( CMAKE_AUTOMOC_PATH_PREFIX OFF )
set( CALAMARES_AUTOMOC_OPTIONS "-butils/moc-warnings.h" )
set( CALAMARES_AUTOUIC_OPTIONS --include utils/moc-warnings.h )
else()
set( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=c99" )
set( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++14 -Wl,--no-undefined" )
set( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++14 -Wl,--fatal-warnings -Wnon-virtual-dtor -Woverloaded-virtual -Werror=return-type" )
set( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wl,--no-undefined" )
set( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wl,--fatal-warnings -Wnon-virtual-dtor -Woverloaded-virtual -Werror=return-type" )
set( SUPPRESS_3RDPARTY_WARNINGS "" )
set( SUPPRESS_BOOST_WARNINGS "" )
set( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DNOTREACHED='__builtin_unreachable();' -DFALLTHRU='/* */'" )
endif()
# Use mark_thirdparty_code() to reduce warnings from the compiler
# on code that we're not going to fix. Call this with a list of files.
macro(mark_thirdparty_code)
set_source_files_properties( ${ARGV}
PROPERTIES
COMPILE_FLAGS "${SUPPRESS_3RDPARTY_WARNINGS}"
COMPILE_DEFINITIONS "THIRDPARTY"
)
endmacro()
if( CMAKE_COMPILER_IS_GNUCXX )
if( CMAKE_CXX_COMPILER_VERSION VERSION_GREATER 4.9 OR
CMAKE_CXX_COMPILER_VERSION VERSION_EQUAL 4.9 )
@@ -38,80 +277,253 @@ if( CMAKE_COMPILER_IS_GNUCXX )
endif()
endif()
cmake_policy( SET CMP0023 OLD )
cmake_policy( SET CMP0028 NEW ) # double colons in KF5::Foo and Qt5::Foo are necessarily IMPORTED or ALIAS targets, don't search further
# Keep cmake 3.0 quiet
if( POLICY CMP0043 )
cmake_policy( SET CMP0043 OLD )
### DEPENDENCIES
#
find_package( Qt5 ${QT_VERSION} CONFIG REQUIRED Concurrent Core Gui LinguistTools Network Svg Widgets )
if( WITH_QML )
find_package( Qt5 ${QT_VERSION} CONFIG REQUIRED Quick QuickWidgets )
endif()
# Optional Qt parts
find_package( Qt5DBus CONFIG )
find_package( YAMLCPP ${YAMLCPP_VERSION} REQUIRED )
if( INSTALL_POLKIT )
find_package( PolkitQt5-1 REQUIRED )
else()
# Find it anyway, for dependencies-reporting
find_package( PolkitQt5-1 )
endif()
set_package_properties(
PolkitQt5-1 PROPERTIES
DESCRIPTION "Qt5 support for Polkit"
URL "https://cgit.kde.org/polkit-qt-1.git"
PURPOSE "PolkitQt5-1 helps with installing Polkit configuration"
)
# Find ECM once, and add it to the module search path; Calamares
# modules that need ECM can do
# find_package(ECM ${ECM_VERSION} REQUIRED NO_MODULE),
# no need to mess with the module path after.
find_package(ECM ${ECM_VERSION} NO_MODULE)
if( ECM_FOUND )
set(CMAKE_MODULE_PATH ${ECM_MODULE_PATH} ${CMAKE_MODULE_PATH})
if ( BUILD_TESTING )
# ECM implies that we can build the tests, too
find_package( Qt5 COMPONENTS Test REQUIRED )
include( ECMAddTests )
endif()
include(KDEInstallDirs)
endif()
include( MacroOptionalFindPackage )
include( MacroLogFeature )
set( QT_VERSION 5.4.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 )
option( WITH_PYTHON "Enable Python modules support." ON )
option( WITH_CRASHREPORTER "Build with CrashReporter" ON )
if( CMAKE_SYSTEM_PROCESSOR MATCHES "arm" OR NOT EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/thirdparty/libcrashreporter-qt/CMakeLists.txt" )
message( STATUS "Build of crashreporter disabled." )
set( WITH_CRASHREPORTER OFF )
find_package( KF5 QUIET COMPONENTS CoreAddons Crash DBusAddons )
set_package_properties(
KF5::CoreAddons PROPERTIES
TYPE REQUIRED
DESCRIPTION "Classes built on QtCore for About Data"
URL "https://api.kde.org/frameworks/kcoreaddons/"
PURPOSE "About Calamares"
)
if( NOT KF5Crash_FOUND )
if( WITH_KF5Crash )
message(WARNING "WITH_KF5Crash is set, but KF5::Crash is not available.")
endif()
set( WITH_KF5Crash OFF )
endif()
if( NOT KF5DBusAddons_FOUND )
if( WITH_KF5DBus )
message(WARNING "WITH_KF5DBus is set, but KF5::DBusAddons is not available.")
endif()
set( WITH_KF5DBus OFF )
endif()
macro_optional_find_package( PythonLibs 3.3 )
macro_log_feature(
PYTHONLIBS_FOUND
"Python"
"C interface libraries for the Python 3 interpreter."
"http://python.org"
FALSE "3.3"
"Python 3 is used for some Calamares job modules."
# TODO:3.3: Use FindPython3 instead
find_package( PythonInterp ${PYTHONLIBS_VERSION} )
set_package_properties(
PythonInterp PROPERTIES
DESCRIPTION "Python 3 interpreter."
URL "https://python.org"
PURPOSE "Python 3 interpreter for certain tests."
)
set( _schema_explanation "" )
if ( PYTHONINTERP_FOUND )
if ( BUILD_SCHEMA_TESTING )
# The configuration validator script has some dependencies,
# and if they are not installed, don't run. If errors out
# with exit(1) on missing dependencies.
if ( CALAMARES_CONFIGVALIDATOR_CHECKED )
set( _validator_deps ${CALAMARES_CONFIGVALIDATOR_RESULT} )
else()
exec_program( ${PYTHON_EXECUTABLE} ARGS "${CMAKE_SOURCE_DIR}/ci/configvalidator.py" -x RETURN_VALUE _validator_deps )
set( CALAMARES_CONFIGVALIDATOR_CHECKED TRUE CACHE INTERNAL "Dependencies for configvalidator checked" )
set( CALAMARES_CONFIGVALIDATOR_RESULT ${_validator_deps} CACHE INTERNAL "Result of configvalidator dependency check" )
endif()
# It should never succeed, but only returns 1 when the imports fail
if ( _validator_deps EQUAL 1 )
set( _schema_explanation " Missing dependencies for configvalidator.py." )
set( BUILD_SCHEMA_TESTING OFF )
endif()
endif()
else()
# Can't run schema tests without Python3.
set( _schema_explanation " Missing Python3." )
set( BUILD_SCHEMA_TESTING OFF )
endif()
add_feature_info( yaml-schema BUILD_SCHEMA_TESTING "Validate YAML (config files) with schema.${_schema_explanation}" )
find_package( PythonLibs ${PYTHONLIBS_VERSION} )
set_package_properties(
PythonLibs PROPERTIES
DESCRIPTION "C interface libraries for the Python 3 interpreter."
URL "https://python.org"
PURPOSE "Python 3 is used for Python job modules."
)
if ( PYTHONLIBS_FOUND )
# TODO:3.3: Require Boost + CMake; sort out Boost::Python
# Since Boost provides CMake config files (starting with Boost 1.70.
# or so) the mess that is the Calamares find code picks the wrong
# bits. Suppress those CMake config files, as suggested by @jmrcpn
set(Boost_NO_BOOST_CMAKE ON)
include( BoostPython3 )
find_boost_python3( 1.54.0 ${PYTHONLIBS_VERSION_STRING} CALAMARES_BOOST_PYTHON3_FOUND )
macro_log_feature(
CALAMARES_BOOST_PYTHON3_FOUND
"Boost.Python"
"A C++ library which enables seamless interoperability between C++ and Python 3."
"http://www.boost.org"
FALSE "1.54.0"
"Boost.Python is used for interfacing with Calamares job modules written in Python 3."
find_boost_python3( ${BOOSTPYTHON_VERSION} ${PYTHONLIBS_VERSION_STRING} CALAMARES_BOOST_PYTHON3_FOUND )
set_package_properties(
Boost PROPERTIES
PURPOSE "Boost.Python is used for Python job modules."
)
# TODO:3.3: Remove PythonQt support
find_package( PythonQt )
set_package_properties( PythonQt PROPERTIES
DESCRIPTION "A Python embedding solution for Qt applications."
URL "http://pythonqt.sourceforge.net"
PURPOSE "PythonQt is used for Python view modules."
)
endif()
if ( PYTHONLIBS_NOTFOUND OR NOT CALAMARES_BOOST_PYTHON3_FOUND )
if( NOT PYTHONLIBS_FOUND OR NOT CALAMARES_BOOST_PYTHON3_FOUND )
message(STATUS "Disabling Boost::Python modules")
set( WITH_PYTHON OFF )
endif()
if( NOT PYTHONLIBS_FOUND OR NOT PYTHONQT_FOUND )
message(STATUS "Disabling PythonQt modules")
set( WITH_PYTHONQT OFF )
endif()
###
### Calamares application info
###
set( CALAMARES_ORGANIZATION_NAME "Calamares" )
set( CALAMARES_ORGANIZATION_DOMAIN "github.com/calamares" )
set( CALAMARES_APPLICATION_NAME "Calamares" )
set( CALAMARES_DESCRIPTION_SUMMARY "The distribution-independent installer framework" )
set( CALAMARES_TRANSLATION_LANGUAGES ar ast bg ca cs_CZ da de el en en_GB es_MX es eu fr hr hu id is it_IT ja lt nl pl pt_BR pt_PT ro ru sk sv th tr_TR zh_CN zh_TW )
# Now we know the state of the ABI-options, copy them into "Calamares_"
# prefixed variables, to match how the variables would-be-named
# when building out-of-tree.
set(Calamares_WITH_PYTHON ${WITH_PYTHON})
set(Calamares_WITH_PYTHONQT ${WITH_PYTHONQT})
set(Calamares_WITH_QML ${WITH_QML})
### Bump version here
set( CALAMARES_VERSION_MAJOR 2 )
set( CALAMARES_VERSION_MINOR 4 )
set( CALAMARES_VERSION_PATCH 1 )
set( CALAMARES_VERSION_RC 0 )
### Transifex Translation status
#
# Construct language lists for use.
#
if( Qt5_VERSION VERSION_GREATER 5.12.1 )
# At least Qt 5.12.2 seems to support Esperanto in QLocale
if( "eo" IN_LIST _tx_incomplete )
message(STATUS "Esperanto support since Qt 5.12.2, enabling Esperanto locale")
list( REMOVE_ITEM _tx_incomplete "eo" )
list( APPEND _tx_ok "eo" )
endif()
endif()
set( curr_tx ${_tx_complete} ${_tx_good} ${_tx_ok} ${_tx_incomplete} )
set( tx_errors OFF )
if ( curr_tx )
# New in list
foreach( l ${curr_tx} )
set( p_l "lang/calamares_${l}.ts" )
if( NOT EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/${p_l} )
message(WARNING "Language ${l} has no .ts file yet.")
set( tx_errors ON )
endif()
endforeach()
unset( p_l )
unset( l )
endif()
unset( curr_tx )
if( tx_errors )
message( FATAL_ERROR "Translation warnings, see above." )
endif()
set( CALAMARES_TRANSLATION_LANGUAGES en ${_tx_complete} ${_tx_good} ${_tx_ok} )
list( SORT CALAMARES_TRANSLATION_LANGUAGES )
add_subdirectory( lang ) # i18n tools
### Example Distro
#
# For testing purposes Calamares includes a very, very, limited sample
# distro called "Generic". The root filesystem of "Generic" lives in
# data/example-root and can be squashed up as part of the build, so
# that a pure-upstream run of ./calamares -d from the build directory
# (with all the default settings and configurations) can actually
# do an complete example run.
#
# Some binaries from the build host (e.g. /bin and /lib) are also
# squashed into the example filesystem.
#
# To build the example distro (for use by the default, example,
# unsquashfs module), build the target 'example-distro', eg.:
#
# make example-distro
#
find_program( mksquashfs_PROGRAM mksquashfs )
if( mksquashfs_PROGRAM )
set( mksquashfs_FOUND ON )
set( src_fs ${CMAKE_SOURCE_DIR}/data/example-root/ )
set( dst_fs ${CMAKE_BINARY_DIR}/example.sqfs )
if( EXISTS ${src_fs} )
# based on the build host. If /lib64 exists, assume it is needed.
# Collect directories needed for a minimal binary distro,
# Note that the last path component is added to the root, so
# if you add /usr/sbin here, it will be put into /sbin_1.
# Add such paths to /etc/profile under ${src_fs}.
set( candidate_fs /sbin /bin /lib /lib64 )
set( host_fs "" )
foreach( c_fs ${candidate_fs} )
if( EXISTS ${c_fs} )
list( APPEND host_fs ${c_fs} )
endif()
endforeach()
add_custom_command(
OUTPUT ${dst_fs}
COMMAND ${mksquashfs_PROGRAM} ${src_fs} ${dst_fs} -all-root
COMMAND ${mksquashfs_PROGRAM} ${host_fs} ${dst_fs} -all-root
)
add_custom_target(example-distro DEPENDS ${dst_fs})
endif()
else()
set( mksquashfs_FOUND OFF )
endif()
# Doesn't list mksquashfs as an optional dep, though, because it
# hasn't been sent through the find_package() scheme.
#
# "http://tldp.org/HOWTO/SquashFS-HOWTO/creatingandusing.html"
add_feature_info( ExampleDistro ${mksquashfs_FOUND} "Create example-distro target.")
### CALAMARES PROPER
#
set( CALAMARES_VERSION ${CALAMARES_VERSION_MAJOR}.${CALAMARES_VERSION_MINOR}.${CALAMARES_VERSION_PATCH} )
# In rare cases we have hotfix-releases with a tweak
if( CALAMARES_VERSION_TWEAK )
set( CALAMARES_VERSION "${CALAMARES_VERSION}.${CALAMARES_VERSION_TWEAK}" )
endif()
set( CALAMARES_VERSION_SHORT "${CALAMARES_VERSION}" )
if( CALAMARES_VERSION_RC )
set( CALAMARES_VERSION ${CALAMARES_VERSION}rc${CALAMARES_VERSION_RC} )
endif()
# additional info for non-release builds
# Additional info for non-release builds. The "extended" version information
# with date and git information (commit, dirty status) is used only
# by CalamaresVersionX.h, which is included by consumers that need a full
# version number with all that information; normal consumers can include
# CalamaresVersion.h with more stable numbers.
if( NOT BUILD_RELEASE AND EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/.git/" )
include( CMakeDateStamp )
set( CALAMARES_VERSION_DATE "${CMAKE_DATESTAMP_YEAR}${CMAKE_DATESTAMP_MONTH}${CMAKE_DATESTAMP_DAY}" )
@@ -125,8 +537,21 @@ if( NOT BUILD_RELEASE AND EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/.git/" )
endif()
endif()
# Special target for not-RC (e.g. might-be-release) builds.
# This is used by the release script to get the version.
if ( CALAMARES_VERSION_RC EQUAL 0 )
add_custom_target(show-version
${CMAKE_COMMAND} -E echo CALAMARES_VERSION=${CALAMARES_VERSION_SHORT}
USES_TERMINAL
)
endif()
# enforce using constBegin, constEnd for const-iterators
add_definitions( "-DQT_STRICT_ITERATORS" )
add_definitions(
-DQT_STRICT_ITERATORS
-DQT_SHARED
-DQT_SHAREDPOINTER_TRACK_POINTERS
)
# set paths
set( CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}" )
@@ -143,93 +568,98 @@ endif()
# make predefined install dirs available everywhere
include( GNUInstallDirs )
# make uninstall support
configure_file(
"${CMAKE_CURRENT_SOURCE_DIR}/cmake_uninstall.cmake.in"
"${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake"
IMMEDIATE @ONLY
)
# This is used by CalamaresAddLibrary; once Calamares is installed,
# the CalamaresConfig.cmake module sets this variable to the IMPORTED
# libraries for Calamares.
set( Calamares_LIBRARIES calamares )
# Early configure these files as we need them later on
configure_file( CalamaresUse.cmake.in "${PROJECT_BINARY_DIR}/CalamaresUse.cmake" @ONLY )
file( COPY CalamaresAddLibrary.cmake DESTINATION "${PROJECT_BINARY_DIR}" )
file( COPY CalamaresAddModuleSubdirectory.cmake DESTINATION "${PROJECT_BINARY_DIR}" )
file( COPY CalamaresAddPlugin.cmake DESTINATION "${PROJECT_BINARY_DIR}" )
file( COPY CalamaresAddBrandingSubdirectory.cmake DESTINATION "${PROJECT_BINARY_DIR}" )
set( CALAMARES_LIBRARIES calamares )
set( THIRDPARTY_DIR "${CMAKE_SOURCE_DIR}/thirdparty" )
add_subdirectory( thirdparty )
add_subdirectory( src )
macro_display_feature_log()
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")
add_feature_info(KDBusAddons ${WITH_KF5DBus} "Unique-application via DBus")
if ( NOT WITH_PYTHON )
message( "-- WARNING: Building Calamares without Python support. Python modules will not work.\n" )
endif()
# Add all targets to the build-tree export set
### CMake infrastructure installation
#
#
set( CMAKE_INSTALL_CMAKEDIR "${CMAKE_INSTALL_LIBDIR}/cmake/Calamares" CACHE PATH "Installation directory for CMake files" )
set( CMAKE_INSTALL_FULL_CMAKEDIR "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_CMAKEDIR}" )
export( TARGETS calamares
FILE "${PROJECT_BINARY_DIR}/CalamaresLibraryDepends.cmake" )
# Export the package for use from the build-tree
# (this registers the build-tree with a global CMake-registry)
export( PACKAGE Calamares )
# Create a CalamaresBuildTreeSettings.cmake file for the use from the build tree
configure_file( CalamaresBuildTreeSettings.cmake.in "${PROJECT_BINARY_DIR}/CalamaresBuildTreeSettings.cmake" @ONLY )
# Create the CalamaresConfig.cmake and CalamaresConfigVersion files
file( RELATIVE_PATH CONF_REL_INCLUDE_DIR "${CMAKE_INSTALL_FULL_CMAKEDIR}" "${CMAKE_INSTALL_FULL_INCLUDEDIR}" )
configure_file( CalamaresConfig.cmake.in "${PROJECT_BINARY_DIR}/CalamaresConfig.cmake" @ONLY )
configure_file( CalamaresConfigVersion.cmake.in "${PROJECT_BINARY_DIR}/CalamaresConfigVersion.cmake" @ONLY )
configure_package_config_file(
"CalamaresConfig.cmake.in"
"${PROJECT_BINARY_DIR}/CalamaresConfig.cmake"
INSTALL_DESTINATION "${CMAKE_INSTALL_CMAKEDIR}"
PATH_VARS
CMAKE_INSTALL_INCLUDEDIR
CMAKE_INSTALL_LIBDIR
CMAKE_INSTALL_DATADIR
)
write_basic_package_version_file(
${PROJECT_BINARY_DIR}/CalamaresConfigVersion.cmake
VERSION ${PROJECT_VERSION}
COMPATIBILITY SameMajorVersion
)
install(
EXPORT Calamares
DESTINATION "${CMAKE_INSTALL_CMAKEDIR}"
FILE "CalamaresTargets.cmake"
NAMESPACE Calamares::
)
# Install the cmake files
install(
FILES
"${PROJECT_BINARY_DIR}/CalamaresConfig.cmake"
"${PROJECT_BINARY_DIR}/CalamaresConfigVersion.cmake"
"${PROJECT_BINARY_DIR}/CalamaresUse.cmake"
"${PROJECT_BINARY_DIR}/CalamaresAddPlugin.cmake"
"${PROJECT_BINARY_DIR}/CalamaresAddModuleSubdirectory.cmake"
"${PROJECT_BINARY_DIR}/CalamaresAddLibrary.cmake"
"${PROJECT_BINARY_DIR}/CalamaresAddBrandingSubdirectory.cmake"
"CMakeModules/CalamaresAddBrandingSubdirectory.cmake"
"CMakeModules/CalamaresAddLibrary.cmake"
"CMakeModules/CalamaresAddModuleSubdirectory.cmake"
"CMakeModules/CalamaresAddPlugin.cmake"
"CMakeModules/CalamaresAddTest.cmake"
"CMakeModules/CalamaresAddTranslations.cmake"
"CMakeModules/CalamaresAutomoc.cmake"
"CMakeModules/CMakeColors.cmake"
"CMakeModules/FindYAMLCPP.cmake"
DESTINATION
"${CMAKE_INSTALL_CMAKEDIR}"
)
# Install the export set for use with the install-tree
### Miscellaneous installs
#
#
if( INSTALL_CONFIG )
install(
FILES settings.conf
DESTINATION share/calamares
)
endif()
if( INSTALL_POLKIT )
install(
FILES com.github.calamares.calamares.policy
DESTINATION "${POLKITQT-1_POLICY_FILES_INSTALL_DIR}"
)
endif()
if ( INSTALL_COMPLETION )
if( NOT CMAKE_INSTALL_BASHCOMPLETIONDIR )
set( CMAKE_INSTALL_BASHCOMPLETIONDIR "${CMAKE_INSTALL_DATADIR}/bash-completion/completions" )
endif()
install( FILES ${CMAKE_SOURCE_DIR}/data/completion/bash/calamares DESTINATION "${CMAKE_INSTALL_BASHCOMPLETIONDIR}" )
endif()
install(
EXPORT
CalamaresLibraryDepends
DESTINATION
"${CMAKE_INSTALL_CMAKEDIR}"
FILES calamares.desktop
DESTINATION ${CMAKE_INSTALL_DATADIR}/applications
)
install(
FILES
settings.conf
DESTINATION
share/calamares
)
install(
FILES
com.github.calamares.calamares.policy
DESTINATION
"${POLKITQT-1_POLICY_FILES_INSTALL_DIR}"
)
install(
FILES
calamares.desktop
DESTINATION
${CMAKE_INSTALL_DATADIR}/applications
FILES man/calamares.8
DESTINATION ${CMAKE_INSTALL_MANDIR}/man8/
)
# uninstall target
@@ -242,3 +672,28 @@ configure_file(
add_custom_target( uninstall
COMMAND ${CMAKE_COMMAND} -P ${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake
)
### CMAKE SUMMARY REPORT
#
get_directory_property( SKIPPED_MODULES
DIRECTORY src/modules
DEFINITION LIST_SKIPPED_MODULES
)
calamares_explain_skipped_modules( ${SKIPPED_MODULES} )
feature_summary(
WHAT DISABLED_FEATURES
DESCRIPTION "The following features have been disabled:"
QUIET_ON_EMPTY
)
feature_summary(
WHAT OPTIONAL_PACKAGES_NOT_FOUND
DESCRIPTION "The following OPTIONAL packages were not found:"
QUIET_ON_EMPTY
)
feature_summary(
WHAT REQUIRED_PACKAGES_NOT_FOUND
FATAL_ON_MISSING_REQUIRED_PACKAGES
DESCRIPTION "The following REQUIRED packages were not found:"
QUIET_ON_EMPTY
)

View File

@@ -15,43 +15,69 @@
# libboost_python-3.4.so
# depending on what python's targets you selected during install
#
# On Fedora >= 30 instead, the boost-python3-devel provides boost library with a
# name like:
# libboost_python37.so
# depending on what python's targets you selected during install
#
# find_boost_python3() tries to find the package with different component
# names. By default it tries "python3", "python-py$suffix" and
# "python-$dotsuffix", where suffix is based on the `python_version` argument.
# One can supply a custom component name by setting the
# `CALAMARES_BOOST_PYTHON3_COMPONENT` variable at CMake time.
set( CALAMARES_BOOST_PYTHON3_COMPONENT python3 CACHE STRING
"Name of the Boost.Python component. If Boost.Python is installed as
libboost_python-foo.so then this variable should be set to 'python-foo'."
)
macro( find_boost_python3 boost_version python_version found_var )
set( ${found_var} OFF )
include(FindPackageHandleStandardArgs)
# turns "3.4.123abc" into "34"
string( REGEX REPLACE "([0-9]+)\\.([0-9]+)\\..*" "\\1\\2" _fbp_python_short_version ${python_version} )
foreach( _fbp_name ${CALAMARES_BOOST_PYTHON3_COMPONENT} python-py${_fbp_python_short_version} )
macro( _find_boost_python3_int boost_version componentname found_var )
foreach( _fbp_name ${CALAMARES_BOOST_PYTHON3_COMPONENT} ${componentname} )
find_package( Boost ${boost_version} QUIET COMPONENTS ${_fbp_name} )
string( TOUPPER ${_fbp_name} _fbp_uc_name )
if( Boost_${_fbp_uc_name}_FOUND )
set( ${found_var} ON )
if( CMAKE_SYSTEM_NAME MATCHES "FreeBSD" )
# No upcasing
set( ${found_var} ${_fbp_name} )
else()
set( ${found_var} ${_fbp_uc_name} )
endif()
break()
endif()
endforeach()
endmacro()
if (NOT ${found_var})
macro( find_boost_python3 boost_version python_version found_var )
set( ${found_var} OFF )
set( _fbp_found OFF )
# turns "3.4.123abc" into "34"
string( REGEX REPLACE "([0-9]+)\\.([0-9]+)\\..*" "\\1\\2" _fbp_python_short_version ${python_version} )
_find_boost_python3_int( ${boost_version} python-py${_fbp_python_short_version} _fbp_found )
if (NOT _fbp_found)
_find_boost_python3_int( ${boost_version} python${_fbp_python_short_version} _fbp_found )
endif()
if (NOT _fbp_found)
# The following loop changes the searched name for Gentoo based distributions
# turns "3.4.123abc" into "3.4"
string( REGEX REPLACE "([0-9]+)\\.([0-9]+)\\..*" "\\1.\\2" _fbp_python_short_version ${python_version} )
foreach( _fbp_name ${CALAMARES_BOOST_PYTHON3_COMPONENT} python-${_fbp_python_short_version} )
find_package( Boost ${boost_version} QUIET COMPONENTS ${_fbp_name} )
string( TOUPPER ${_fbp_name} _fbp_uc_name )
if( Boost_${_fbp_uc_name}_FOUND )
set( ${found_var} ON )
break()
endif()
endforeach()
_find_boost_python3_int( ${boost_version} python-${_fbp_python_short_version} _fbp_found )
endif()
set( ${found_var} ${_fbp_found} )
# This is superfluous, but allows proper reporting in the features list
if ( _fbp_found )
find_package( Boost ${boost_version} COMPONENTS ${_fbp_found} )
else()
find_package( Boost ${boost_version} COMPONENTS Python )
endif()
set_package_properties(
Boost PROPERTIES
DESCRIPTION "A C++ library which enables seamless interoperability between C++ and Python 3."
URL "http://www.boost.org"
)
endmacro()

View File

@@ -1,8 +1,16 @@
if(NOT WIN32)
# [ -t 2 ] tests whether stderr is interactive.
# The negation '!' is because for POSIX shells, 0 is true and 1 is false.
execute_process(COMMAND test ! -t 2 RESULT_VARIABLE IS_STDERR_INTERACTIVE)
if(IS_STDERR_INTERACTIVE)
set(_use_color ON)
if("0" STREQUAL "$ENV{CLICOLOR}")
set(_use_color OFF)
endif()
if("0" STREQUAL "$ENV{CLICOLOR_FORCE}")
set(_use_color OFF)
endif()
if(NOT CMAKE_COLOR_MAKEFILE)
set(_use_color OFF)
endif()
if(_use_color)
string(ASCII 27 Esc)
set(ColorReset "${Esc}[m")
set(ColorBold "${Esc}[1m")
@@ -20,5 +28,5 @@ if(NOT WIN32)
set(BoldMagenta "${Esc}[1;35m")
set(BoldCyan "${Esc}[1;36m")
set(BoldWhite "${Esc}[1;37m")
endif(IS_STDERR_INTERACTIVE)
endif()
endif()

View File

@@ -0,0 +1,156 @@
# === This file is part of Calamares - <https://github.com/calamares> ===
#
# 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/>.
#
# SPDX-License-Identifier: GPL-3.0-or-later
# License-Filename: LICENSE
#
###
#
# Support macros for creating Calamares branding components.
#
# Calamares branding components have two parts:
# - a branding.desc file that tells Calamares how to describe the product
# (e.g. strings like "Generic GNU/Linux") and the name of a QML file
# (the "slideshow") that is displayed during installation.
# - the QML files themselves, plus supporting images etc.
#
# Branding components can be created inside the Calamares source tree
# (there is one example the `default/` branding, which is also connected
# to the default configuration shipped with Calamares), but they can be
# built outside of, and largely independently of, Calamares by using
# these CMake macros.
#
# See the calamares-examples repository for more examples.
#
include( CMakeParseArguments)
include( CMakeColors )
# Usage calamares_add_branding( <name> [DIRECTORY <dir>] [SUBDIRECTORIES <dir> ...])
#
# Adds a branding component to the build:
# - the component's top-level files are copied into the build-dir;
# CMakeLists.txt is excluded from the glob.
# - the component's top-level files are installed into the component branding dir
#
# The branding component lives in <dir> if given, otherwise the
# current source directory. The branding component is installed
# with the given <name>, which is usually the name of the
# directory containing the component, and which must match the
# *componentName* in `branding.desc`.
#
# If SUBDIRECTORIES are given, then those are copied (each one level deep)
# to the installation location as well, preserving the subdirectory name.
function( calamares_add_branding NAME )
cmake_parse_arguments( _CABT "" "DIRECTORY" "SUBDIRECTORIES" ${ARGN} )
if (NOT _CABT_DIRECTORY)
set(_CABT_DIRECTORY ".")
endif()
set( SUBDIRECTORY ${_CABT_DIRECTORY} )
set( _brand_dir ${_CABT_DIRECTORY} )
set( BRANDING_DIR share/calamares/branding )
set( BRANDING_COMPONENT_DESTINATION ${BRANDING_DIR}/${NAME} )
foreach( _subdir "" ${_CABT_SUBDIRECTORIES} )
file( GLOB BRANDING_COMPONENT_FILES RELATIVE ${CMAKE_CURRENT_SOURCE_DIR}/${_brand_dir} "${_brand_dir}/${_subdir}/*" )
foreach( BRANDING_COMPONENT_FILE ${BRANDING_COMPONENT_FILES} )
set( _subpath ${_brand_dir}/${BRANDING_COMPONENT_FILE} )
if( NOT IS_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/${_subpath} )
set( _src ${CMAKE_CURRENT_SOURCE_DIR}/${_subpath} )
set( _dst ${CMAKE_CURRENT_BINARY_DIR}/${_subpath} )
if( ${_src} IS_NEWER_THAN ${_dst} )
configure_file( ${_src} ${_dst} COPYONLY )
endif()
install( FILES ${CMAKE_CURRENT_BINARY_DIR}/${_subpath}
DESTINATION ${BRANDING_COMPONENT_DESTINATION}/${_subdir}/ )
endif()
endforeach()
endforeach()
message( "-- ${BoldYellow}Found ${CALAMARES_APPLICATION_NAME} branding component: ${BoldRed}${NAME}${ColorReset}" )
message( " ${Green}TYPE:${ColorReset} branding component" )
message( " ${Green}BRANDING_COMPONENT_DESTINATION:${ColorReset} ${BRANDING_COMPONENT_DESTINATION}" )
endfunction()
# Usage calamares_add_branding_translations( <name> [DIRECTORY <dir>])
#
# Adds the translations for a branding component to the build:
# - the component's lang/ directory is scanned for .ts files
# - the component's translations are installed into the component branding dir
#
# Translation files must be called calamares-<name>_<lang>.ts . Optionally
# the lang/ dir is found in the given <dir> instead of the current source
# directory.
function( calamares_add_branding_translations NAME )
cmake_parse_arguments( _CABT "" "DIRECTORY" "" ${ARGN} )
if (NOT _CABT_DIRECTORY)
set(_CABT_DIRECTORY ".")
endif()
set( SUBDIRECTORY ${_CABT_DIRECTORY} )
set( _brand_dir ${_CABT_DIRECTORY} )
set( BRANDING_DIR share/calamares/branding )
set( BRANDING_COMPONENT_DESTINATION ${BRANDING_DIR}/${NAME} )
file( GLOB BRANDING_TRANSLATION_FILES RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "${SUBDIRECTORY}/lang/calamares-${NAME}_*.ts" )
if ( BRANDING_TRANSLATION_FILES )
qt5_add_translation( QM_FILES ${BRANDING_TRANSLATION_FILES} )
add_custom_target( branding-translation-${NAME} ALL DEPENDS ${QM_FILES}
COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_CURRENT_BINARY_DIR}/${SUBDIRECTORY}/lang/
COMMAND ${CMAKE_COMMAND} -E copy ${QM_FILES} ${CMAKE_CURRENT_BINARY_DIR}/${SUBDIRECTORY}/lang/
)
install( FILES ${QM_FILES} DESTINATION ${BRANDING_COMPONENT_DESTINATION}/lang/ )
list( LENGTH BRANDING_TRANSLATION_FILES _branding_count )
message( " ${Green}BRANDING_TRANSLATIONS:${ColorReset} ${_branding_count} language(s)" )
endif()
endfunction()
# Usage calamares_add_branding_subdirectory( <dir> [NAME <name>] [SUBDIRECTORIES <dir> ...])
#
# Adds a branding component from a subdirectory:
# - if there is a CMakeLists.txt, use that (that CMakeLists.txt should
# call suitable calamares_add_branding() and other macros to install
# the branding component).
# - otherwise assume a "standard" setup with top-level files and a lang/
# subdirectory for translations.
#
# If NAME is given, this is used instead of <dir> as the name of
# the branding component. This is needed if <dir> is more than
# one level deep, or to rename a component as it gets installed.
#
# If SUBDIRECTORIES are given, they are relative to <dir>, and are
# copied (one level deep) to the install location as well.
function( calamares_add_branding_subdirectory SUBDIRECTORY )
cmake_parse_arguments( _CABS "" "NAME" "SUBDIRECTORIES" ${ARGN} )
if (NOT _CABS_NAME)
set(_CABS_NAME "${SUBDIRECTORY}")
endif()
if( EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/${SUBDIRECTORY}/CMakeLists.txt" )
add_subdirectory( ${SUBDIRECTORY} )
elseif( EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/${SUBDIRECTORY}/branding.desc" )
calamares_add_branding( ${_CABS_NAME} DIRECTORY ${SUBDIRECTORY} SUBDIRECTORIES ${_CABS_SUBDIRECTORIES} )
if( IS_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/${SUBDIRECTORY}/lang" )
calamares_add_branding_translations( ${_CABS_NAME} DIRECTORY ${SUBDIRECTORY} )
endif()
else()
message( "-- ${BoldYellow}Warning:${ColorReset} tried to add branding component subdirectory ${BoldRed}${SUBDIRECTORY}${ColorReset} which has no branding.desc." )
endif()
message( "" )
endfunction()

View File

@@ -1,39 +1,69 @@
# === This file is part of Calamares - <https://github.com/calamares> ===
#
# 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/>.
#
# SPDX-License-Identifier: GPL-3.0-or-later
# License-Filename: LICENSE
#
###
#
# Support functions for building plugins.
#
# Usage:
#
# calamares_add_library(
# library-name
# EXPORT_MACRO macro-name
# TARGET_TYPE <STATIC|MODULE|...>
# EXPORT export-name
# VERSION version
# SOVERSION version
# INSTALL_BINDIR dir
# RESOURCES resource-file
# SOURCES source-file...
# UI ui-file...
# LINK_LIBRARIES lib...
# LINK_PRIVATE_LIBRARIES lib...
# COMPILE_DEFINITIONS def...
# [NO_INSTALL]
# [NO_VERSION]
# )
#
# The COMPILE_DEFINITIONS are set on the resulting module with a suitable
# flag (i.e. `-D`) so only state the name (optionally, also the value)
# without a `-D` prefixed to it. Pass in a CMake list as needed.
include( CMakeParseArguments )
include( CalamaresAutomoc )
function(calamares_add_library)
# parse arguments (name needs to be saved before passing ARGN into the macro)
set(NAME ${ARGV0})
set(options NO_INSTALL NO_VERSION)
set(oneValueArgs NAME TYPE EXPORT_MACRO TARGET TARGET_TYPE EXPORT VERSION SOVERSION INSTALL_BINDIR RESOURCES)
set(multiValueArgs SOURCES UI LINK_LIBRARIES LINK_PRIVATE_LIBRARIES COMPILE_DEFINITIONS QT5_MODULES)
set(oneValueArgs NAME EXPORT_MACRO TARGET_TYPE EXPORT VERSION SOVERSION INSTALL_BINDIR RESOURCES)
set(multiValueArgs SOURCES UI LINK_LIBRARIES LINK_PRIVATE_LIBRARIES COMPILE_DEFINITIONS)
cmake_parse_arguments(LIBRARY "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})
set(LIBRARY_NAME ${NAME})
# message("*** Arguments for ${LIBRARY_NAME}")
# message("Sources: ${LIBRARY_SOURCES}")
# message("Link libraries: ${LIBRARY_LINK_LIBRARIES}")
# message("UI: ${LIBRARY_UI}")
# message("TARGET_TYPE: ${LIBRARY_TARGET_TYPE}")
# message("EXPORT_MACRO: ${LIBRARY_EXPORT_MACRO}")
# message("NO_INSTALL: ${LIBRARY_NO_INSTALL}")
set(target ${LIBRARY_NAME})
# qt stuff
include_directories(${CMAKE_CURRENT_LIST_DIR})
include_directories(${CMAKE_CURRENT_BINARY_DIR})
if(LIBRARY_UI)
qt5_wrap_ui(LIBRARY_UI_SOURCES ${LIBRARY_UI})
list(APPEND LIBRARY_SOURCES ${LIBRARY_UI_SOURCES})
endif()
# add resources from current dir
if(EXISTS "${CMAKE_CURRENT_LIST_DIR}/${LIBRARY_RESOURCES}")
qt5_add_resources(LIBRARY_RC_SOURCES "${LIBRARY_RESOURCES}")
list(APPEND LIBRARY_SOURCES ${LIBRARY_RC_SOURCES})
unset(LIBRARY_RC_SOURCES)
if(LIBRARY_RESOURCES)
list(APPEND LIBRARY_SOURCES ${LIBRARY_RESOURCES})
endif()
# add target
@@ -45,31 +75,32 @@ function(calamares_add_library)
add_library(${target} SHARED ${LIBRARY_SOURCES})
endif()
# HACK: add qt modules - every lib should define its own set of modules
qt5_use_modules(${target} Core Gui Widgets ${LIBRARY_QT5_MODULES})
# definitions - can this be moved into set_target_properties below?
add_definitions(${QT_DEFINITIONS})
set_target_properties(${target} PROPERTIES AUTOMOC TRUE)
calamares_automoc(${target})
if(LIBRARY_UI)
calamares_autouic(${target} ${LIBRARY_UI})
endif()
if(LIBRARY_RESOURCES)
calamares_autorcc(${target} ${LIBRARY_RESOURCES})
endif()
if(LIBRARY_EXPORT_MACRO)
set_target_properties(${target} PROPERTIES COMPILE_DEFINITIONS ${LIBRARY_EXPORT_MACRO})
endif()
if(LIBRARY_COMPILE_DEFINITIONS)
# Dear CMake, i hate you! Sincerely, domme
# At least in CMake 2.8.8, you CANNOT set more than one COMPILE_DEFINITIONS value
# only takes the first one if called multiple times or bails out with wrong number of arguments
# when passing in a list, thus i redefine the export macro here in hope it won't mess up other targets
add_definitions( "-D${LIBRARY_EXPORT_MACRO}" )
set_target_properties(${target} PROPERTIES COMPILE_DEFINITIONS ${LIBRARY_COMPILE_DEFINITIONS})
set( _lib_definitions "${LIBRARY_EXPORT_MACRO}" ${LIBRARY_COMPILE_DEFINITIONS} )
set_target_properties(${target} PROPERTIES COMPILE_DEFINITIONS "${_lib_definitions}")
endif()
# add link targets
target_link_libraries(${target} ${CALAMARES_LIBRARIES})
target_link_libraries(${target}
LINK_PUBLIC ${Calamares_LIBRARIES}
Qt5::Core
Qt5::Gui
Qt5::Widgets
)
if(LIBRARY_LINK_LIBRARIES)
target_link_libraries(${target} ${LIBRARY_LINK_LIBRARIES})
target_link_libraries(${target} LINK_PUBLIC ${LIBRARY_LINK_LIBRARIES})
endif()
if(LIBRARY_LINK_PRIVATE_LIBRARIES)
target_link_libraries(${target} LINK_PRIVATE ${LIBRARY_LINK_PRIVATE_LIBRARIES})
@@ -94,9 +125,6 @@ function(calamares_add_library)
set(LIBRARY_INSTALL_LIBDIR "${LIBRARY_INSTALL_BINDIR}")
endif()
#message("INSTALL_BINDIR: ${LIBRARY_INSTALL_BINDIR}")
#message("INSTALL_LIBDIR: ${LIBRARY_INSTALL_LIBDIR}")
# make installation optional, maybe useful for dummy plugins one day
if(NOT LIBRARY_NO_INSTALL)
include(GNUInstallDirs)

View File

@@ -0,0 +1,214 @@
# === This file is part of Calamares - <https://github.com/calamares> ===
#
# 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/>.
#
# SPDX-License-Identifier: GPL-3.0-or-later
# License-Filename: LICENSE
#
###
#
# Function and support code for adding a Calamares module (either a Qt / C++ plugin,
# or a Python module, or whatever) to the build.
#
include( CalamaresAddTranslations )
set( MODULE_DATA_DESTINATION share/calamares/modules )
# Convenience function to indicate that a module has been skipped
# (optionally also why). Call this in the module's CMakeLists.txt
macro( calamares_skip_module )
set( SKIPPED_MODULES ${SKIPPED_MODULES} ${ARGV} PARENT_SCOPE )
endmacro()
function( calamares_explain_skipped_modules )
if ( ARGN )
message( "${ColorReset}-- Skipped modules:" )
foreach( SUBDIRECTORY ${ARGN} )
message( "${ColorReset}-- Skipped ${BoldRed}${SUBDIRECTORY}${ColorReset}." )
endforeach()
message( "" )
endif()
endfunction()
function( calamares_add_module_subdirectory )
set( SUBDIRECTORY ${ARGV0} )
set( SKIPPED_MODULES )
set( MODULE_CONFIG_FILES "" )
set( _mod_dir "${CMAKE_CURRENT_SOURCE_DIR}/${SUBDIRECTORY}" )
# If this subdirectory has a CMakeLists.txt, we add_subdirectory it...
if( EXISTS "${_mod_dir}/CMakeLists.txt" )
add_subdirectory( ${SUBDIRECTORY} )
file( GLOB MODULE_CONFIG_FILES RELATIVE ${_mod_dir} "${SUBDIRECTORY}/*.conf" )
# Module has indicated it should be skipped, show that in
# the calling CMakeLists (which is src/modules/CMakeLists.txt normally).
if ( SKIPPED_MODULES )
set( SKIPPED_MODULES ${SKIPPED_MODULES} PARENT_SCOPE )
set( MODULE_CONFIG_FILES "" )
endif()
# ...otherwise, we look for a module.desc.
elseif( EXISTS "${_mod_dir}/module.desc" )
set( MODULES_DIR ${CMAKE_INSTALL_LIBDIR}/calamares/modules )
# The module subdirectory may be given as a/b/c, but the module
# needs to be installed as "c", so we split off any intermediate
# directories.
get_filename_component(_dirname "${SUBDIRECTORY}" DIRECTORY)
if( _dirname )
# Remove the dirname and any leftover leading /s
string( REGEX REPLACE "^${_dirname}/*" "" _modulename "${SUBDIRECTORY}" )
set( MODULE_DESTINATION ${MODULES_DIR}/${_modulename} )
else()
set( MODULE_DESTINATION ${MODULES_DIR}/${SUBDIRECTORY} )
endif()
# Read module.desc, check that the interface type is supported.
#
# _mod_enabled boolean if the module should be built (only if the interface is supported)
# _mod_reason is a human-readable explanation why it isn't built
# _mod_testing boolean if the module should be added to the loadmodule tests
file(STRINGS "${_mod_dir}/module.desc" MODULE_INTERFACE REGEX "^interface")
if ( MODULE_INTERFACE MATCHES "pythonqt" )
set( _mod_enabled ${Calamares_WITH_PYTHONQT} )
set( _mod_reason "No PythonQt support" )
set( _mod_testing OFF )
elseif ( MODULE_INTERFACE MATCHES "python" )
set( _mod_enabled ${Calamares_WITH_PYTHON} )
set( _mod_reason "No Python support" )
set( _mod_testing ON ) # Will check syntax and imports, at least
elseif ( MODULE_INTERFACE MATCHES "qtplugin" )
set( _mod_enabled OFF )
set( _mod_reason "C++ modules must have a CMakeLists.txt instead" )
set( _mod_testing OFF )
elseif ( MODULE_INTERFACE MATCHES "process" )
set( _mod_enabled ON )
set( _mod_reason "" )
set( _mod_testing OFF )
else()
set( _mod_enabled OFF )
set( _mod_reason "Unknown module interface '${MODULE_INTERFACE}'" )
set( _mod_testing OFF )
endif()
if ( _mod_enabled )
# We glob all the files inside the subdirectory, and we make sure they are
# synced with the bindir structure and installed.
file( GLOB MODULE_FILES RELATIVE ${_mod_dir} "${SUBDIRECTORY}/*" )
foreach( MODULE_FILE ${MODULE_FILES} )
if( NOT IS_DIRECTORY ${_mod_dir}/${MODULE_FILE} )
configure_file( ${SUBDIRECTORY}/${MODULE_FILE} ${SUBDIRECTORY}/${MODULE_FILE} COPYONLY )
get_filename_component( FLEXT ${MODULE_FILE} EXT )
if( "${FLEXT}" STREQUAL ".conf" )
if( INSTALL_CONFIG )
install( FILES ${CMAKE_CURRENT_BINARY_DIR}/${SUBDIRECTORY}/${MODULE_FILE}
DESTINATION ${MODULE_DATA_DESTINATION} )
endif()
list( APPEND MODULE_CONFIG_FILES ${MODULE_FILE} )
else()
install( FILES ${CMAKE_CURRENT_BINARY_DIR}/${SUBDIRECTORY}/${MODULE_FILE}
DESTINATION ${MODULE_DESTINATION} )
endif()
endif()
endforeach()
message( "-- ${BoldYellow}Found ${CALAMARES_APPLICATION_NAME} module: ${BoldRed}${SUBDIRECTORY}${ColorReset}" )
message( " ${Green}TYPE:${ColorReset} jobmodule" )
message( " ${Green}MODULE_DESTINATION:${ColorReset} ${MODULE_DESTINATION}" )
if( MODULE_CONFIG_FILES )
if ( INSTALL_CONFIG )
set( _destination "${MODULE_DATA_DESTINATION}" )
else()
set( _destination "[Build directory only]" )
endif()
message( " ${Green}CONFIGURATION_FILES:${ColorReset} ${MODULE_CONFIG_FILES} => ${_destination}" )
endif()
message( "" )
# We copy over the lang directory, if any
if( IS_DIRECTORY "${_mod_dir}/lang" )
install_calamares_gettext_translations(
${SUBDIRECTORY}
SOURCE_DIR "${_mod_dir}/lang"
FILENAME ${SUBDIRECTORY}.mo
RENAME calamares-${SUBDIRECTORY}.mo
)
endif()
else()
# Module disabled due to missing dependencies / unsupported interface
set( SKIPPED_MODULES "${SUBDIRECTORY} (${_mod_reason})" PARENT_SCOPE )
endif()
else()
message( "-- ${BoldYellow}Warning:${ColorReset} tried to add module subdirectory ${BoldRed}${SUBDIRECTORY}${ColorReset} which has no CMakeLists.txt or module.desc." )
message( "" )
endif()
# Check any config files for basic correctness
if ( BUILD_TESTING AND MODULE_CONFIG_FILES )
set( _count 0 )
foreach( _config_file ${MODULE_CONFIG_FILES} )
set( _count_str "-${_count}" )
if ( _count EQUAL 0 )
set( _count_str "" )
endif()
add_test(
NAME config-${SUBDIRECTORY}${_count_str}
COMMAND test_conf ${CMAKE_CURRENT_BINARY_DIR}/${SUBDIRECTORY}/${_config_file} )
math( EXPR _count "${_count} + 1" )
endforeach()
endif()
# Check that the module can be loaded. Since this calls exec(), the module
# may try to do things to the running system. Needs work to make that a
# safe thing to do.
#
# If the module has a tests/ subdirectory with *.global and *.job
# files (YAML files holding global and job-configurations for
# testing purposes) then those files are used to drive additional
# tests. The files must be numbered (starting from 1) for this to work;
# 1.global and 1.job together make the configuration for test 1.
#
# If the module has a tests/CMakeLists.txt while it doesn't have its
# own CMakeLists.txt (e.g. a Python module), then the subdirectory
# for tests/ is added on its own.
#
if ( BUILD_TESTING AND _mod_enabled AND _mod_testing )
add_test(
NAME load-${SUBDIRECTORY}
COMMAND loadmodule ${SUBDIRECTORY}
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
)
# Try it with the tests/ configurations shipped with the module
set( _count 1 )
set( _testdir ${_mod_dir}/tests )
while ( EXISTS "${_testdir}/${_count}.global" OR EXISTS "${_testdir}/${_count}.job" )
set( _dash_g "" )
set( _dash_j "" )
if ( EXISTS "${_testdir}/${_count}.global" )
set( _dash_g -g ${_testdir}/${_count}.global )
endif()
if ( EXISTS "${_testdir}/${_count}.job" )
set( _dash_j -j ${_testdir}/${_count}.job )
endif()
add_test(
NAME load-${SUBDIRECTORY}-${_count}
COMMAND loadmodule ${_dash_g} ${_dash_j} ${SUBDIRECTORY}
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
)
math( EXPR _count "${_count} + 1" )
endwhile()
if ( EXISTS ${_testdir}/CMakeTests.txt AND NOT EXISTS ${_mod_dir}/CMakeLists.txt )
include( ${_testdir}/CMakeTests.txt )
endif()
endif()
endfunction()

View File

@@ -0,0 +1,208 @@
# === This file is part of Calamares - <https://github.com/calamares> ===
#
# 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/>.
#
# SPDX-License-Identifier: GPL-3.0-or-later
# License-Filename: LICENSE
#
###
#
# Convenience function for creating a C++ (qtplugin) module for Calamares.
# This function provides cmake-time feedback about the plugin, adds
# targets for compilation and boilerplate information, and creates
# a module.desc with standard values (if the module.desc file exists,
# that one is used instead, which happens only for unusual plugins).
#
# Usage:
#
# calamares_add_plugin(
# module-name
# TYPE <view|job>
# EXPORT_MACRO macro-name
# SOURCES source-file...
# UI ui-file...
# LINK_LIBRARIES lib...
# LINK_PRIVATE_LIBRARIES lib...
# [COMPILE_DEFINITIONS def...]
# [RESOURCES resource-file]
# [REQUIRES module-name...]
# [NO_INSTALL]
# [NO_CONFIG]
# [SHARED_LIB]
# [EMERGENCY]
# )
#
# Function parameters:
# - COMPILE_DEFINITIONS
# Definitions are set on the resulting module with a suitable
# flag (i.e. `-D`) so only state the name (optionally, also the value)
# without a `-D` prefixed to it.
# - RESOURCES
# One (single!) filename for the RCC file for the plugin.
# - REQUIRES
# One or more names of modules which are added to the *requiredModules*
# key in the descriptor. See *Module Requirements* in the module
# documentation.
# - NO_INSTALL
# If this is set, the module is not installed by default; use this to
# build testing modules or unit-testing modules.
# - SHARED_LIB
# In unusual circumstances, this function is used to add a library
# rather than a normal Calamares module / plugin.
# - EMERGENCY
# If this is set, the module is marked as an *emergency* module in the
# descriptor. See *Emergency Modules* in the module documentation.
#
include( CMakeParseArguments )
include( CalamaresAddLibrary )
include( CMakeColors )
function( calamares_add_plugin )
# parse arguments ( name needs to be saved before passing ARGN into the macro )
set( NAME ${ARGV0} )
set( options NO_CONFIG NO_INSTALL SHARED_LIB EMERGENCY )
set( oneValueArgs NAME TYPE EXPORT_MACRO RESOURCES )
set( multiValueArgs SOURCES UI LINK_LIBRARIES LINK_PRIVATE_LIBRARIES COMPILE_DEFINITIONS REQUIRES )
cmake_parse_arguments( PLUGIN "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN} )
set( PLUGIN_NAME ${NAME} )
set( PLUGIN_DESTINATION ${CMAKE_INSTALL_LIBDIR}/calamares/modules/${PLUGIN_NAME} )
set( PLUGIN_DESC_FILE module.desc )
file( GLOB PLUGIN_CONFIG_FILES RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "*.conf" )
set( PLUGIN_DATA_DESTINATION share/calamares/modules )
set( CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}" )
set( CMAKE_LIBRARY_OUTPUT_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}" )
set( CMAKE_ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}" )
message( "-- ${BoldYellow}Found ${CALAMARES_APPLICATION_NAME} module: ${BoldRed}${PLUGIN_NAME}${ColorReset}" )
message( " ${Green}TYPE:${ColorReset} ${PLUGIN_TYPE}" )
message( " ${Green}LINK_LIBRARIES:${ColorReset} ${PLUGIN_LINK_LIBRARIES}" )
message( " ${Green}LINK_PRIVATE_LIBRARIES:${ColorReset} ${PLUGIN_LINK_PRIVATE_LIBRARIES}" )
message( " ${Green}PLUGIN_DESTINATION:${ColorReset} ${PLUGIN_DESTINATION}" )
if( PLUGIN_CONFIG_FILES )
if( PLUGIN_NO_CONFIG )
message( FATAL_ERROR "${Red}NO_CONFIG${ColorReset} is set, with configuration ${Red}${PLUGIN_CONFIG_FILES}${ColorReset}" )
endif()
set( _destination "(unknown)" )
if ( INSTALL_CONFIG AND NOT PLUGIN_NO_INSTALL )
set( _destination "${PLUGIN_DATA_DESTINATION}" )
elseif( NOT PLUGIN_NO_INSTALL )
# Not INSTALL_CONFIG
set( _destination "[Build directory only]" )
else()
set( _destination "[Skipping installation]" )
endif()
message( " ${Green}CONFIGURATION_FILES:${ColorReset} ${PLUGIN_CONFIG_FILES} => ${_destination}" )
else()
if( NOT PLUGIN_NO_CONFIG )
message( " ${Red}NO_CONFIG${ColorReset} should be set." )
endif()
endif()
if( PLUGIN_RESOURCES )
message( " ${Green}RESOURCES:${ColorReset} ${PLUGIN_RESOURCES}" )
endif()
message( "" )
# create target name once for convenience
set( target "calamares_${PLUGIN_TYPE}_${PLUGIN_NAME}" )
# determine target type
if( NOT ${PLUGIN_SHARED_LIB} )
set( target_type "MODULE" )
else()
set( target_type "SHARED" )
endif()
set( calamares_add_library_args
"${target}"
"EXPORT_MACRO" "${PLUGIN_EXPORT_MACRO}"
"TARGET_TYPE" "${target_type}"
"SOURCES" "${PLUGIN_SOURCES}"
)
if( PLUGIN_UI )
list( APPEND calamares_add_library_args "UI" "${PLUGIN_UI}" )
endif()
if( PLUGIN_LINK_LIBRARIES )
list( APPEND calamares_add_library_args "LINK_LIBRARIES" "${PLUGIN_LINK_LIBRARIES}" )
endif()
if( PLUGIN_LINK_PRIVATE_LIBRARIES )
list( APPEND calamares_add_library_args "LINK_PRIVATE_LIBRARIES" "${PLUGIN_LINK_PRIVATE_LIBRARIES}" )
endif()
if( PLUGIN_COMPILE_DEFINITIONS )
list( APPEND calamares_add_library_args "COMPILE_DEFINITIONS" ${PLUGIN_COMPILE_DEFINITIONS} )
endif()
if ( PLUGIN_NO_INSTALL )
list( APPEND calamares_add_library_args "NO_INSTALL" )
endif()
list( APPEND calamares_add_library_args
"NO_VERSION"
"INSTALL_BINDIR" "${PLUGIN_DESTINATION}"
)
if( PLUGIN_RESOURCES )
list( APPEND calamares_add_library_args "RESOURCES" "${PLUGIN_RESOURCES}" )
endif()
calamares_add_library( ${calamares_add_library_args} )
if ( EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/${PLUGIN_DESC_FILE} )
configure_file( ${PLUGIN_DESC_FILE} ${PLUGIN_DESC_FILE} COPYONLY )
else()
set( _file ${CMAKE_CURRENT_BINARY_DIR}/${PLUGIN_DESC_FILE} )
set( _type ${PLUGIN_TYPE} )
file( WRITE ${_file} "# AUTO-GENERATED metadata file\n# Syntax is YAML 1.2\n---\n" )
file( APPEND ${_file} "type: \"${_type}\"\nname: \"${PLUGIN_NAME}\"\ninterface: \"qtplugin\"\nload: \"lib${target}.so\"\n" )
if ( PLUGIN_REQUIRES )
file( APPEND ${_file} "requiredModules:\n" )
foreach( _r ${PLUGIN_REQUIRES} )
file( APPEND ${_file} " - ${_r}\n" )
endforeach()
endif()
if ( PLUGIN_EMERGENCY )
file( APPEND ${_file} "emergency: true\n" )
endif()
if ( PLUGIN_NO_CONFIG )
file( APPEND ${_file} "noconfig: true\n" )
endif()
endif()
if ( NOT PLUGIN_NO_INSTALL )
install( FILES ${CMAKE_CURRENT_BINARY_DIR}/${PLUGIN_DESC_FILE}
DESTINATION ${PLUGIN_DESTINATION} )
set( _warned_config OFF )
foreach( PLUGIN_CONFIG_FILE ${PLUGIN_CONFIG_FILES} )
if( ${CMAKE_CURRENT_SOURCE_DIR}/${PLUGIN_CONFIG_FILE} IS_NEWER_THAN ${CMAKE_CURRENT_BINARY_DIR}/${PLUGIN_CONFIG_FILE} OR INSTALL_CONFIG )
configure_file( ${PLUGIN_CONFIG_FILE} ${PLUGIN_CONFIG_FILE} COPYONLY )
else()
message( " ${BoldYellow}Not updating${ColorReset} ${PLUGIN_CONFIG_FILE}" )
set( _warned_config ON )
endif()
if ( INSTALL_CONFIG )
install(
FILES ${CMAKE_CURRENT_BINARY_DIR}/${PLUGIN_CONFIG_FILE}
DESTINATION ${PLUGIN_DATA_DESTINATION} )
endif()
endforeach()
if ( _warned_config )
message( "" )
endif()
endif()
endfunction()

View File

@@ -0,0 +1,58 @@
# === This file is part of Calamares - <https://github.com/calamares> ===
#
# 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/>.
#
# SPDX-License-Identifier: GPL-3.0-or-later
# License-Filename: LICENSE
#
###
#
# Support functions for building Calamares tests.
# This extends KDE's ECM tests with some custom patterns.
#
# calamares_add_test(
# <NAME>
# [GUI]
# SOURCES <FILE..>
# )
include( CMakeParseArguments )
include( CalamaresAutomoc )
function( calamares_add_test )
# parse arguments (name needs to be saved before passing ARGN into the macro)
set( NAME ${ARGV0} )
set( options GUI )
set( multiValueArgs SOURCES LIBRARIES DEFINITIONS )
cmake_parse_arguments( TEST "${options}" "" "${multiValueArgs}" ${ARGN} )
set( TEST_NAME ${NAME} )
if( ECM_FOUND AND BUILD_TESTING )
ecm_add_test(
${TEST_SOURCES}
TEST_NAME
${TEST_NAME}
LINK_LIBRARIES
calamares
${TEST_LIBRARIES}
Qt5::Core
Qt5::Test
)
calamares_automoc( ${TEST_NAME} )
target_compile_definitions( ${TEST_NAME} PRIVATE -DBUILD_AS_TEST="${CMAKE_CURRENT_SOURCE_DIR}" ${TEST_DEFINITIONS} )
if( TEST_GUI )
target_link_libraries( ${TEST_NAME} calamaresui Qt5::Gui )
endif()
endif()
endfunction()

View File

@@ -0,0 +1,134 @@
# === This file is part of Calamares - <https://github.com/calamares> ===
#
# 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/>.
#
# SPDX-License-Identifier: GPL-3.0-or-later
# License-Filename: LICENSE
#
###
#
# This file has not yet been documented for use outside of Calamares itself.
include( CMakeParseArguments )
# Internal macro for adding the C++ / Qt translations to the
# build and install tree. Should be called only once, from
# src/calamares/CMakeLists.txt.
macro(add_calamares_translations language)
list( APPEND CALAMARES_LANGUAGES ${ARGV} )
set( calamares_i18n_qrc_content "" )
# calamares and qt language files
foreach( lang ${CALAMARES_LANGUAGES} )
foreach( tlsource "calamares_${lang}" "tz_${lang}" )
if( EXISTS "${CMAKE_SOURCE_DIR}/lang/${tlsource}.ts" )
set( calamares_i18n_qrc_content "${calamares_i18n_qrc_content}<file>${tlsource}.qm</file>\n" )
list( APPEND TS_FILES "${CMAKE_SOURCE_DIR}/lang/${tlsource}.ts" )
endif()
endforeach()
endforeach()
set( trans_file calamares_i18n )
set( trans_infile ${CMAKE_CURRENT_BINARY_DIR}/${trans_file}.qrc )
set( trans_outfile ${CMAKE_CURRENT_BINARY_DIR}/qrc_${trans_file}.cxx )
configure_file( ${CMAKE_SOURCE_DIR}/lang/calamares_i18n.qrc.in ${trans_infile} @ONLY )
qt5_add_translation(QM_FILES ${TS_FILES})
# Run the resource compiler (rcc_options should already be set)
add_custom_command(
OUTPUT ${trans_outfile}
COMMAND "${Qt5Core_RCC_EXECUTABLE}"
ARGS ${rcc_options} --format-version 1 -name ${trans_file} -o ${trans_outfile} ${trans_infile}
MAIN_DEPENDENCY ${trans_infile}
DEPENDS ${QM_FILES}
)
endmacro()
# Internal macro for Python translations
#
# Translations of the Python modules that don't have their own
# lang/ subdirectories -- these are collected in top-level
# lang/python/<lang>/LC_MESSAGES/python.mo
macro(add_calamares_python_translations language)
set( CALAMARES_LANGUAGES "" )
list( APPEND CALAMARES_LANGUAGES ${ARGV} )
install_calamares_gettext_translations( python
SOURCE_DIR ${CMAKE_SOURCE_DIR}/lang/python
FILENAME python.mo
RENAME calamares-python.mo
)
endmacro()
# Installs a directory containing language-code-labeled subdirectories with
# gettext data into the appropriate system directory. Allows renaming the
# .mo files during install to avoid namespace clashes.
#
# install_calamares_gettext_translations(
# NAME <name of module, for human use>
# SOURCE_DIR path/to/lang
# FILENAME <name of file.mo>
# [RENAME <new-name of.mo>]
# )
#
# For all of the (global) translation languages enabled for Calamares,
# try installing $SOURCE_DIR/$lang/LC_MESSAGES/<filename>.mo into the
# system gettext data directory (e.g. share/locale/), possibly renaming
# filename.mo to renamed.mo in the process.
function( install_calamares_gettext_translations )
# parse arguments ( name needs to be saved before passing ARGN into the macro )
set( NAME ${ARGV0} )
set( oneValueArgs NAME SOURCE_DIR FILENAME RENAME )
cmake_parse_arguments( TRANSLATION "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN} )
if( NOT TRANSLATION_NAME )
set( TRANSLATION_NAME ${NAME} )
endif()
if( NOT TRANSLATION_FILENAME )
set( TRANSLATION_FILENAME "${TRANSLATION_NAME}.mo" )
endif()
if( NOT TRANSLATION_RENAME )
set( TRANSLATION_RENAME "${TRANSLATION_FILENAME}" )
endif()
message(STATUS "Installing gettext translations for ${TRANSLATION_NAME}")
message(STATUS " Installing ${TRANSLATION_FILENAME} from ${TRANSLATION_SOURCE_DIR}")
set( TRANSLATION_NAME "${NAME}" )
set( INSTALLED_TRANSLATIONS "" )
foreach( lang ${CALAMARES_TRANSLATION_LANGUAGES} ) # Global
set( lang_mo "${TRANSLATION_SOURCE_DIR}/${lang}/LC_MESSAGES/${TRANSLATION_FILENAME}" )
if( lang STREQUAL "en" )
message( STATUS " Skipping ${TRANSLATION_NAME} translations for en_US" )
else( EXISTS ${lang_mo} )
list( APPEND INSTALLED_LANGUAGES "${lang}" )
install(
FILES ${lang_mo}
DESTINATION ${CMAKE_INSTALL_LOCALEDIR}/${lang}/LC_MESSAGES/
RENAME ${TRANSLATION_RENAME}
)
# TODO: make translations available in build dir too, for
# translation when running calamares -d from builddir.
set(_build_lc ${CMAKE_BINARY_DIR}/lang/${lang}/LC_MESSAGES/)
file(COPY ${lang_mo} DESTINATION ${_build_lc})
if (NOT TRANSLATION_FILENAME STREQUAL TRANSLATION_RENAME)
file(RENAME ${_build_lc}${TRANSLATION_FILENAME} ${_build_lc}${TRANSLATION_RENAME})
endif()
endif()
endforeach()
endfunction()

View File

@@ -0,0 +1,67 @@
# === This file is part of Calamares - <https://github.com/calamares> ===
#
# 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/>.
#
# SPDX-License-Identifier: GPL-3.0-or-later
# License-Filename: LICENSE
#
###
#
# Helper function for doing automoc, autouic, autorcc on targets,
# and on the corresponding .ui or .rcc files.
#
# calamares_automoc(target)
# Sets AUTOMOC TRUE for a target.
#
# If the global variable CALAMARES_AUTOMOC_OPTIONS is set, uses that
# as well to set options passed to MOC. This can be used to add
# libcalamares/utils/moc-warnings.h file to the moc, which in turn
# reduces compiler warnings in generated MOC code.
#
# calamares_autouic(target [uifile ..])
# Sets AUTOUIC TRUE for a target.
#
# If the global variable CALAMARES_AUTOUIC_OPTIONS is set, adds that
# to the options passed to uic for each of the named uifiles.
#
# calamares_autorcc(target [rcfile ..])
# Sets AUTOUIC TRUE for a target.
#
# If the global variable CALAMARES_AUTORCC_OPTIONS is set, adds that
# to the options passed to rcc for each of the named rcfiles.
function(calamares_automoc TARGET)
set_target_properties( ${TARGET} PROPERTIES AUTOMOC TRUE )
if ( CALAMARES_AUTOMOC_OPTIONS )
set_target_properties( ${TARGET} PROPERTIES AUTOMOC_MOC_OPTIONS "${CALAMARES_AUTOMOC_OPTIONS}" )
endif()
endfunction()
function(calamares_autouic TARGET)
set_target_properties( ${TARGET} PROPERTIES AUTOUIC TRUE )
if ( CALAMARES_AUTOUIC_OPTIONS )
foreach(S ${ARGN})
set_property(SOURCE ${S} PROPERTY AUTOUIC_OPTIONS "${CALAMARES_AUTOUIC_OPTIONS}")
endforeach()
endif()
endfunction()
function(calamares_autorcc TARGET)
set_target_properties( ${TARGET} PROPERTIES AUTORCC TRUE )
if ( CALAMARES_AUTORCC_OPTIONS )
foreach(S ${ARGN})
set_property(SOURCE ${S} PROPERTY AUTORCC_OPTIONS "${CALAMARES_AUTORCC_OPTIONS}")
endforeach()
endif()
endfunction()

View File

@@ -0,0 +1,34 @@
# - Find libcrypt
# Find the libcrypt includes and the libcrypt libraries
# This module defines
# LIBCRYPT_INCLUDE_DIR, root crypt include dir. Include crypt with crypt.h
# LIBCRYPT_LIBRARY, the path to libcrypt
# LIBCRYPT_FOUND, whether libcrypt was found
if( CMAKE_SYSTEM MATCHES "FreeBSD" )
# FreeBSD has crypt(3) declared in unistd.h, which lives in
# libc; the libcrypt found here is not used.
find_path( CRYPT_INCLUDE_DIR NAMES unistd.h )
add_definitions( -DNO_CRYPT_H )
else()
find_path( CRYPT_INCLUDE_DIR
NAMES crypt.h
HINTS
${CMAKE_INSTALL_INCLUDEDIR}
NO_CACHE
)
endif()
find_library( CRYPT_LIBRARIES
NAMES crypt
HINTS
${CMAKE_INSTALL_LIBDIR}
)
include( FindPackageHandleStandardArgs )
find_package_handle_standard_args(
Crypt
REQUIRED_VARS CRYPT_LIBRARIES CRYPT_INCLUDE_DIR
)
mark_as_advanced( CRYPT_INCLUDE_DIR CRYPT_LIBRARIES )

View File

@@ -0,0 +1,43 @@
# Locate libpwquality
# https://github.com/libpwquality/libpwquality
#
# This module defines
# LibPWQuality_FOUND
# LibPWQuality_LIBRARIES, where to find the library
# LibPWQuality_INCLUDE_DIRS, where to find pwquality.h
#
find_package(PkgConfig)
include(FindPackageHandleStandardArgs)
if(PkgConfig_FOUND)
pkg_search_module(pc_pwquality QUIET pwquality)
else()
# It's just possible that the find_path and find_library will
# find it **anyway**, so let's pretend it was there.
set(pc_pwquality_FOUND ON)
endif()
find_path(LibPWQuality_INCLUDE_DIR
NAMES pwquality.h
PATHS ${pc_pwquality_INCLUDE_DIRS}
)
find_library(LibPWQuality_LIBRARY
NAMES pwquality
PATHS ${pc_pwquality_LIBRARY_DIRS}
)
if(pc_pwquality_FOUND)
set(LibPWQuality_LIBRARIES ${LibPWQuality_LIBRARY})
set(LibPWQuality_INCLUDE_DIRS ${LibPWQuality_INCLUDE_DIR} ${pc_pwquality_INCLUDE_DIRS})
endif()
find_package_handle_standard_args(LibPWQuality DEFAULT_MSG
LibPWQuality_INCLUDE_DIRS
LibPWQuality_LIBRARIES
)
mark_as_advanced(LibPWQuality_INCLUDE_DIRS LibPWQuality_LIBRARIES)
set_package_properties(
LibPWQuality PROPERTIES
DESCRIPTION "Password quality checking library"
URL "https://github.com/libpwquality/libpwquality"
)

View File

@@ -0,0 +1,177 @@
# Find PythonQt
#
# Sets PYTHONQT_FOUND, PYTHONQT_INCLUDE_DIR, PYTHONQT_LIBRARY, PYTHONQT_LIBRARIES
#
# Also sets PYTHONQT_INCLUDE_DIRS to add whatever directories
# that are needed for extensions.
#
# Python is required
find_package(PythonLibs)
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.\\2@"
_PYTHONLIBS_MAJMIN
${PYTHONLIBS_VERSION_STRING}
)
string(REGEX REPLACE
"@.*"
""
PYTHONLIBS_MAJMIN
${_PYTHONLIBS_MAJMIN}
)
if(NOT EXISTS "${PYTHONQT_INSTALL_DIR}")
find_path(PYTHONQT_INSTALL_DIR
NAMES
include/PythonQt/PythonQt.h
include/PythonQt5/PythonQt.h
DOC "Directory where PythonQt was installed.")
endif()
# XXX Since PythonQt 3.0 is not yet cmakeified, depending
# on how PythonQt is built, headers will not always be
# installed in "include/PythonQt". That is why "src"
# is added as an option. See [1] for more details.
# [1] https://github.com/commontk/CTK/pull/538#issuecomment-86106367
find_path(PYTHONQT_INCLUDE_DIR PythonQt.h
PATHS
"${PYTHONQT_INSTALL_DIR}/include/PythonQt"
"${PYTHONQT_INSTALL_DIR}/include/PythonQt5"
"${PYTHONQT_INSTALL_DIR}/src"
DOC "Path to the PythonQt include directory")
find_path(PYTHONQT_ALL_INCLUDE_DIR PythonQt_QtAll.h
PATHS
"${PYTHONQT_INCLUDE_DIR}"
"${PYTHONQT_INSTALL_DIR}"
PATH_SUFFIXES
"extensions/PythonQt_QtAll"
"src"
DOC "Path to the PythonQt 'all' header")
if ( NOT PythonQt_FIND_QUIETLY )
message( STATUS "Searching for PythonQt (PythonLibs ${PYTHONLIBS_MAJMIN}) .." )
if ( PYTHONQT_INCLUDE_DIR )
message( STATUS " .. found include ${PYTHONQT_INCLUDE_DIR}" )
message( STATUS " .. found all include ${PYTHONQT_ALL_INCLUDE_DIR}" )
endif()
endif()
# Minimum v3.1 is needed
find_library(PYTHONQT_LIBRARY_RELEASE
NAMES
PythonQt-Qt5-Python${PYTHONLIBS_MAJMIN}
PythonQt-Qt5-Python3
PythonQt
PATHS "${PYTHONQT_INSTALL_DIR}/lib"
DOC "The PythonQt library."
)
find_library(PYTHONQT_LIBRARY_DEBUG
NAMES
PythonQt-Qt5-Python${PYTHONLIBS_MAJMIN}JMIN${CTK_CMAKE_DEBUG_POSTFIX}
PythonQt-Qt5-Python${PYTHONLIBS_MAJMIN}${CMAKE_DEBUG_POSTFIX}
PythonQt-Qt5-Python${PYTHONLIBS_MAJMIN}
PythonQt-Qt5-Python3${CTK_CMAKE_DEBUG_POSTFIX}
PythonQt-Qt5-Python3${CMAKE_DEBUG_POSTFIX}
PythonQt-Qt5-Python3
PythonQt${CTK_CMAKE_DEBUG_POSTFIX}
PythonQt${CMAKE_DEBUG_POSTFIX}
PythonQt
PATHS "${PYTHONQT_INSTALL_DIR}/lib"
DOC "The PythonQt library (debug build)."
)
find_library(PYTHONQT_QTALL_LIBRARY_RELEASE
NAMES
PythonQt_QtAll-Qt5-Python${PYTHONLIBS_MAJMIN}
PythonQt_QtAll-Qt5-Python3
PythonQt_QtAll
PATHS "${PYTHONQT_INSTALL_DIR}/lib"
DOC "Full Qt bindings for the PythonQt library."
)
find_library(PYTHONQT_QTALL_LIBRARY_DEBUG
NAMES
PythonQt_QtAll-Qt5-Python${PYTHONLIBS_MAJMIN}${CTK_CMAKE_DEBUG_POSTFIX}
PythonQt_QtAll-Qt5-Python${PYTHONLIBS_MAJMIN}${CMAKE_DEBUG_POSTFIX}
PythonQt_QtAll-Qt5-Python${PYTHONLIBS_MAJMIN}
PythonQt_QtAll-Qt5-Python3${CTK_CMAKE_DEBUG_POSTFIX}
PythonQt_QtAll-Qt5-Python3${CMAKE_DEBUG_POSTFIX}
PythonQt_QtAll-Qt5-Python3
PythonQt_QtAll${CTK_CMAKE_DEBUG_POSTFIX}
PythonQt_QtAll${CMAKE_DEBUG_POSTFIX}
PythonQt_QtAll
PATHS "${PYTHONQT_INSTALL_DIR}/lib"
DOC "Full Qt bindings for the PythonQt library (debug build)."
)
set(PYTHONQT_LIBRARY)
if(PYTHONQT_LIBRARY_RELEASE)
list(APPEND PYTHONQT_LIBRARY optimized ${PYTHONQT_LIBRARY_RELEASE})
endif()
if(PYTHONQT_LIBRARY_DEBUG)
list(APPEND PYTHONQT_LIBRARY debug ${PYTHONQT_LIBRARY_DEBUG})
endif()
set(PYTHONQT_QTALL_LIBRARY)
if(PYTHONQT_QTALL_LIBRARY_RELEASE)
list(APPEND PYTHONQT_QTALL_LIBRARY optimized ${PYTHONQT_QTALL_LIBRARY_RELEASE})
endif()
if(PYTHONQT_QTALL_LIBRARY_DEBUG)
list(APPEND PYTHONQT_QTALL_LIBRARY debug ${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)
mark_as_advanced(PYTHONQT_INCLUDE_DIR)
mark_as_advanced(PYTHONQT_LIBRARY_RELEASE)
mark_as_advanced(PYTHONQT_LIBRARY_DEBUG)
mark_as_advanced(PYTHONQT_QTALL_LIBRARY_RELEASE)
mark_as_advanced(PYTHONQT_QTALL_LIBRARY_DEBUG)
# On linux, also find libutil
if(UNIX AND NOT APPLE)
find_library(PYTHONQT_LIBUTIL util)
mark_as_advanced(PYTHONQT_LIBUTIL)
endif()
# All upper case _FOUND variable is maintained for backwards compatibility.
set(PYTHONQT_FOUND 0)
set(PythonQt_FOUND 0)
if(PYTHONQT_INCLUDE_DIR AND PYTHONQT_LIBRARY AND PYTHONQT_QTALL_LIBRARY)
# Currently CMake'ified PythonQt only supports building against a python Release build.
# This applies independently of CTK build type (Release, Debug, ...)
add_definitions(-DPYTHONQT_USE_RELEASE_PYTHON_FALLBACK)
set(PYTHONQT_FOUND 1)
set(PythonQt_FOUND ${PYTHONQT_FOUND})
set(PYTHONQT_LIBRARIES ${PYTHONQT_LIBRARY} ${PYTHONQT_LIBUTIL} ${PYTHONQT_QTALL_LIBRARY})
set(PYTHONQT_INCLUDE_DIRS ${PYTHONQT_INCLUDE_DIR})
if(PYTHONQT_ALL_INCLUDE_DIR)
list(APPEND PYTHONQT_INCLUDE_DIRS ${PYTHONQT_ALL_INCLUDE_DIR})
endif()
elseif(NOT PythonQt_FIND_QUIETLY)
set(_missing "")
if (NOT PYTHONQT_INCLUDE_DIR)
list(APPEND _missing "includes")
endif()
if (NOT PYTHONQT_LIBRARY)
list(APPEND _missing "library")
endif()
if (NOT PYTHONQT_QTALL_LIBRARY)
list(APPEND _missing "qtall")
endif()
message(STATUS "PythonQt not found, missing components ${_missing}")
endif()

View File

@@ -1,9 +1,11 @@
# Locate yaml-cpp
#
# This module defines
# YAMLCPP_FOUND, if false, do not try to link to yaml-cpp
# YAMLCPP_LIBRARY, where to find yaml-cpp
# YAMLCPP_INCLUDE_DIR, where to find yaml.h
# YAMLCPP_FOUND, if false, do not try to link to yaml-cpp
# YAMLCPP_LIBRARY, where to find yaml-cpp
# YAMLCPP_INCLUDE_DIR, where to find yaml.h
# There is also one IMPORTED library target,
# yamlcpp
#
# By default, the dynamic libraries of yaml-cpp will be found. To find the static ones instead,
# you must set the YAMLCPP_STATIC_LIBRARY variable to TRUE before calling find_package(YamlCpp ...).
@@ -48,3 +50,12 @@ find_library(YAMLCPP_LIBRARY
include(FindPackageHandleStandardArgs)
FIND_PACKAGE_HANDLE_STANDARD_ARGS(YAMLCPP DEFAULT_MSG YAMLCPP_INCLUDE_DIR YAMLCPP_LIBRARY)
mark_as_advanced(YAMLCPP_INCLUDE_DIR YAMLCPP_LIBRARY)
# Add an imported target
if( YAMLCPP_LIBRARY )
add_library( yamlcpp UNKNOWN IMPORTED )
set_property( TARGET yamlcpp PROPERTY IMPORTED_LOCATION ${YAMLCPP_LIBRARY} )
if ( YAMLCPP_INCLUDE_DIR )
set_property( TARGET yamlcpp PROPERTY INTERFACE_INCLUDE_DIRECTORIES ${YAMLCPP_INCLUDE_DIR} )
endif()
endif()

View File

@@ -1,182 +0,0 @@
# - Define GNU standard installation directories
# Provides install directory variables as defined for GNU software:
# http://www.gnu.org/prep/standards/html_node/Directory-Variables.html
# Inclusion of this module defines the following variables:
# CMAKE_INSTALL_<dir> - destination for files of a given type
# CMAKE_INSTALL_FULL_<dir> - corresponding absolute path
# where <dir> is one of:
# BINDIR - user executables (bin)
# SBINDIR - system admin executables (sbin)
# LIBEXECDIR - program executables (libexec)
# SYSCONFDIR - read-only single-machine data (etc)
# SHAREDSTATEDIR - modifiable architecture-independent data (com)
# LOCALSTATEDIR - modifiable single-machine data (var)
# LIBDIR - object code libraries (lib or lib64)
# INCLUDEDIR - C header files (include)
# OLDINCLUDEDIR - C header files for non-gcc (/usr/include)
# DATAROOTDIR - read-only architecture-independent data root (share)
# DATADIR - read-only architecture-independent data (DATAROOTDIR)
# INFODIR - info documentation (DATAROOTDIR/info)
# LOCALEDIR - locale-dependent data (DATAROOTDIR/locale)
# MANDIR - man documentation (DATAROOTDIR/man)
# DOCDIR - documentation root (DATAROOTDIR/doc/PROJECT_NAME)
# Each CMAKE_INSTALL_<dir> value may be passed to the DESTINATION options of
# install() commands for the corresponding file type. If the includer does
# not define a value the above-shown default will be used and the value will
# appear in the cache for editing by the user.
# Each CMAKE_INSTALL_FULL_<dir> value contains an absolute path constructed
# from the corresponding destination by prepending (if necessary) the value
# of CMAKE_INSTALL_PREFIX.
#=============================================================================
# Copyright 2011 Nikita Krupen'ko <krnekit@gmail.com>
# Copyright 2011 Kitware, Inc.
#
# Distributed under the OSI-approved BSD License (the "License");
# see accompanying file Copyright.txt for details.
#
# This software is distributed WITHOUT ANY WARRANTY; without even the
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
# See the License for more information.
#=============================================================================
# (To distribute this file outside of CMake, substitute the full
# License text for the above reference.)
# Installation directories
#
if(NOT DEFINED CMAKE_INSTALL_BINDIR)
set(CMAKE_INSTALL_BINDIR "bin" CACHE PATH "user executables (bin)")
endif()
if(NOT DEFINED CMAKE_INSTALL_SBINDIR)
set(CMAKE_INSTALL_SBINDIR "sbin" CACHE PATH "system admin executables (sbin)")
endif()
if(NOT DEFINED CMAKE_INSTALL_LIBEXECDIR)
set(CMAKE_INSTALL_LIBEXECDIR "libexec" CACHE PATH "program executables (libexec)")
endif()
if(NOT DEFINED CMAKE_INSTALL_SYSCONFDIR)
set(CMAKE_INSTALL_SYSCONFDIR "etc" CACHE PATH "read-only single-machine data (etc)")
endif()
if(NOT DEFINED CMAKE_INSTALL_SHAREDSTATEDIR)
set(CMAKE_INSTALL_SHAREDSTATEDIR "com" CACHE PATH "modifiable architecture-independent data (com)")
endif()
if(NOT DEFINED CMAKE_INSTALL_LOCALSTATEDIR)
set(CMAKE_INSTALL_LOCALSTATEDIR "var" CACHE PATH "modifiable single-machine data (var)")
endif()
if(NOT DEFINED CMAKE_INSTALL_LIBDIR)
set(_LIBDIR_DEFAULT "lib")
# Override this default 'lib' with 'lib64' iff:
# - we are on Linux system but NOT cross-compiling
# - we are NOT on debian
# - we are on a 64 bits system
# reason is: amd64 ABI: http://www.x86-64.org/documentation/abi.pdf
# Note that the future of multi-arch handling may be even
# more complicated than that: http://wiki.debian.org/Multiarch
if(CMAKE_SYSTEM_NAME MATCHES "Linux"
AND NOT CMAKE_CROSSCOMPILING
AND NOT EXISTS "/etc/debian_version")
if(NOT DEFINED CMAKE_SIZEOF_VOID_P)
message(AUTHOR_WARNING
"Unable to determine default CMAKE_INSTALL_LIBDIR directory because no target architecture is known. "
"Please enable at least one language before including GNUInstallDirs.")
else()
if("${CMAKE_SIZEOF_VOID_P}" EQUAL "8")
set(_LIBDIR_DEFAULT "lib64")
endif()
endif()
endif()
set(CMAKE_INSTALL_LIBDIR "${_LIBDIR_DEFAULT}" CACHE PATH "object code libraries (${_LIBDIR_DEFAULT})")
endif()
if(NOT DEFINED CMAKE_INSTALL_INCLUDEDIR)
set(CMAKE_INSTALL_INCLUDEDIR "include" CACHE PATH "C header files (include)")
endif()
if(NOT DEFINED CMAKE_INSTALL_OLDINCLUDEDIR)
set(CMAKE_INSTALL_OLDINCLUDEDIR "/usr/include" CACHE PATH "C header files for non-gcc (/usr/include)")
endif()
if(NOT DEFINED CMAKE_INSTALL_DATAROOTDIR)
set(CMAKE_INSTALL_DATAROOTDIR "share" CACHE PATH "read-only architecture-independent data root (share)")
endif()
#-----------------------------------------------------------------------------
# Values whose defaults are relative to DATAROOTDIR. Store empty values in
# the cache and store the defaults in local variables if the cache values are
# not set explicitly. This auto-updates the defaults as DATAROOTDIR changes.
if(NOT CMAKE_INSTALL_DATADIR)
set(CMAKE_INSTALL_DATADIR "" CACHE PATH "read-only architecture-independent data (DATAROOTDIR)")
set(CMAKE_INSTALL_DATADIR "${CMAKE_INSTALL_DATAROOTDIR}")
endif()
if(NOT CMAKE_INSTALL_INFODIR)
set(CMAKE_INSTALL_INFODIR "" CACHE PATH "info documentation (DATAROOTDIR/info)")
set(CMAKE_INSTALL_INFODIR "${CMAKE_INSTALL_DATAROOTDIR}/info")
endif()
if(NOT CMAKE_INSTALL_LOCALEDIR)
set(CMAKE_INSTALL_LOCALEDIR "" CACHE PATH "locale-dependent data (DATAROOTDIR/locale)")
set(CMAKE_INSTALL_LOCALEDIR "${CMAKE_INSTALL_DATAROOTDIR}/locale")
endif()
if(NOT CMAKE_INSTALL_MANDIR)
set(CMAKE_INSTALL_MANDIR "" CACHE PATH "man documentation (DATAROOTDIR/man)")
set(CMAKE_INSTALL_MANDIR "${CMAKE_INSTALL_DATAROOTDIR}/man")
endif()
if(NOT CMAKE_INSTALL_DOCDIR)
set(CMAKE_INSTALL_DOCDIR "" CACHE PATH "documentation root (DATAROOTDIR/doc/PROJECT_NAME)")
set(CMAKE_INSTALL_DOCDIR "${CMAKE_INSTALL_DATAROOTDIR}/doc/${PROJECT_NAME}")
endif()
#-----------------------------------------------------------------------------
mark_as_advanced(
CMAKE_INSTALL_BINDIR
CMAKE_INSTALL_SBINDIR
CMAKE_INSTALL_LIBEXECDIR
CMAKE_INSTALL_SYSCONFDIR
CMAKE_INSTALL_SHAREDSTATEDIR
CMAKE_INSTALL_LOCALSTATEDIR
CMAKE_INSTALL_LIBDIR
CMAKE_INSTALL_INCLUDEDIR
CMAKE_INSTALL_OLDINCLUDEDIR
CMAKE_INSTALL_DATAROOTDIR
CMAKE_INSTALL_DATADIR
CMAKE_INSTALL_INFODIR
CMAKE_INSTALL_LOCALEDIR
CMAKE_INSTALL_MANDIR
CMAKE_INSTALL_DOCDIR
)
# Result directories
#
foreach(dir
BINDIR
SBINDIR
LIBEXECDIR
SYSCONFDIR
SHAREDSTATEDIR
LOCALSTATEDIR
LIBDIR
INCLUDEDIR
OLDINCLUDEDIR
DATAROOTDIR
DATADIR
INFODIR
LOCALEDIR
MANDIR
DOCDIR
)
if(NOT IS_ABSOLUTE ${CMAKE_INSTALL_${dir}})
set(CMAKE_INSTALL_FULL_${dir} "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_${dir}}")
else()
set(CMAKE_INSTALL_FULL_${dir} "${CMAKE_INSTALL_${dir}}")
endif()
endforeach()

View File

@@ -0,0 +1,17 @@
# Shared CMake core for finding KPMCore
#
# This is wrapped into a CMake include file because there's a bunch of
# pre-requisites that need searching for before looking for KPMCore.
# If you just do find_package( KPMCore ) without finding the things
# it links against first, you get CMake errors.
#
#
find_package(ECM 5.10.0 REQUIRED NO_MODULE)
set(CMAKE_MODULE_PATH ${ECM_MODULE_PATH} ${CMAKE_MODULE_PATH})
include(KDEInstallDirs)
include(GenerateExportHeader)
find_package( KF5 REQUIRED CoreAddons )
find_package( KF5 REQUIRED Config I18n Service WidgetsAddons )
find_package( KPMcore 3.2 REQUIRED )

View File

@@ -1,157 +0,0 @@
# This file defines the Feature Logging macros.
#
# MACRO_LOG_FEATURE(VAR FEATURE DESCRIPTION URL [REQUIRED [MIN_VERSION [COMMENTS]]])
# Logs the information so that it can be displayed at the end
# of the configure run
# VAR : TRUE or FALSE, indicating whether the feature is supported
# FEATURE: name of the feature, e.g. "libjpeg"
# DESCRIPTION: description what this feature provides
# URL: home page
# REQUIRED: TRUE or FALSE, indicating whether the featue is required
# MIN_VERSION: minimum version number. empty string if unneeded
# COMMENTS: More info you may want to provide. empty string if unnecessary
#
# MACRO_DISPLAY_FEATURE_LOG()
# Call this to display the collected results.
# Exits CMake with a FATAL error message if a required feature is missing
#
# Example:
#
# INCLUDE(MacroLogFeature)
#
# FIND_PACKAGE(JPEG)
# MACRO_LOG_FEATURE(JPEG_FOUND "libjpeg" "Support JPEG images" "http://www.ijg.org" TRUE "3.2a" "")
# ...
# MACRO_DISPLAY_FEATURE_LOG()
# Copyright (c) 2006, Alexander Neundorf, <neundorf@kde.org>
# Copyright (c) 2006, Allen Winter, <winter@kde.org>
# Copyright (c) 2009, Sebastian Trueg, <trueg@kde.org>
#
# Redistribution and use is allowed according to the terms of the BSD license.
# For details see the accompanying COPYING-CMAKE-SCRIPTS file.
IF (NOT _macroLogFeatureAlreadyIncluded)
SET(_file ${CMAKE_BINARY_DIR}/MissingRequirements.txt)
IF (EXISTS ${_file})
FILE(REMOVE ${_file})
ENDIF (EXISTS ${_file})
SET(_file ${CMAKE_BINARY_DIR}/EnabledFeatures.txt)
IF (EXISTS ${_file})
FILE(REMOVE ${_file})
ENDIF (EXISTS ${_file})
SET(_file ${CMAKE_BINARY_DIR}/DisabledFeatures.txt)
IF (EXISTS ${_file})
FILE(REMOVE ${_file})
ENDIF (EXISTS ${_file})
SET(_macroLogFeatureAlreadyIncluded TRUE)
INCLUDE(FeatureSummary)
ENDIF (NOT _macroLogFeatureAlreadyIncluded)
MACRO(MACRO_LOG_FEATURE _var _package _description _url ) # _required _minvers _comments)
STRING(TOUPPER "${ARGV4}" _required)
SET(_minvers "${ARGV5}")
SET(_comments "${ARGV6}")
IF (${_var})
SET(_LOGFILENAME ${CMAKE_BINARY_DIR}/EnabledFeatures.txt)
ELSE (${_var})
IF ("${_required}" STREQUAL "TRUE")
SET(_LOGFILENAME ${CMAKE_BINARY_DIR}/MissingRequirements.txt)
ELSE ("${_required}" STREQUAL "TRUE")
SET(_LOGFILENAME ${CMAKE_BINARY_DIR}/DisabledFeatures.txt)
ENDIF ("${_required}" STREQUAL "TRUE")
ENDIF (${_var})
SET(_logtext " * ${_package}")
IF (NOT ${_var})
IF (${_minvers} MATCHES ".*")
SET(_logtext "${_logtext} (${_minvers} or higher)")
ENDIF (${_minvers} MATCHES ".*")
SET(_logtext "${_logtext} <${_url}>\n ")
ELSE (NOT ${_var})
SET(_logtext "${_logtext} - ")
ENDIF (NOT ${_var})
SET(_logtext "${_logtext}${_description}")
IF (NOT ${_var})
IF (${_comments} MATCHES ".*")
SET(_logtext "${_logtext}\n ${_comments}")
ENDIF (${_comments} MATCHES ".*")
# SET(_logtext "${_logtext}\n") #double-space missing features?
ENDIF (NOT ${_var})
FILE(APPEND "${_LOGFILENAME}" "${_logtext}\n")
IF(COMMAND SET_PACKAGE_INFO) # in FeatureSummary.cmake since CMake 2.8.3
SET_PACKAGE_INFO("${_package}" "\"${_description}\"" "${_url}" "\"${_comments}\"")
ENDIF(COMMAND SET_PACKAGE_INFO)
ENDMACRO(MACRO_LOG_FEATURE)
MACRO(MACRO_DISPLAY_FEATURE_LOG)
IF(COMMAND FEATURE_SUMMARY) # in FeatureSummary.cmake since CMake 2.8.3
FEATURE_SUMMARY(FILENAME ${CMAKE_CURRENT_BINARY_DIR}/FindPackageLog.txt
WHAT ALL)
ENDIF(COMMAND FEATURE_SUMMARY)
SET(_missingFile ${CMAKE_BINARY_DIR}/MissingRequirements.txt)
SET(_enabledFile ${CMAKE_BINARY_DIR}/EnabledFeatures.txt)
SET(_disabledFile ${CMAKE_BINARY_DIR}/DisabledFeatures.txt)
IF (EXISTS ${_missingFile} OR EXISTS ${_enabledFile} OR EXISTS ${_disabledFile})
SET(_printSummary TRUE)
ENDIF (EXISTS ${_missingFile} OR EXISTS ${_enabledFile} OR EXISTS ${_disabledFile})
IF(_printSummary)
SET(_missingDeps 0)
IF (EXISTS ${_enabledFile})
FILE(READ ${_enabledFile} _enabled)
FILE(REMOVE ${_enabledFile})
SET(_summary "${_summary}\n-----------------------------------------------------------------------------\n-- The following external packages were located on your system.\n-- This installation will have the extra features provided by these packages.\n-----------------------------------------------------------------------------\n${_enabled}")
ENDIF (EXISTS ${_enabledFile})
IF (EXISTS ${_disabledFile})
SET(_missingDeps 1)
FILE(READ ${_disabledFile} _disabled)
FILE(REMOVE ${_disabledFile})
SET(_summary "${_summary}\n-----------------------------------------------------------------------------\n-- The following OPTIONAL packages could NOT be located on your system.\n-- Consider installing them to enable more features from this software.\n-----------------------------------------------------------------------------\n${_disabled}")
ENDIF (EXISTS ${_disabledFile})
IF (EXISTS ${_missingFile})
SET(_missingDeps 1)
FILE(READ ${_missingFile} _requirements)
SET(_summary "${_summary}\n-----------------------------------------------------------------------------\n-- The following REQUIRED packages could NOT be located on your system.\n-- You must install these packages before continuing.\n-----------------------------------------------------------------------------\n${_requirements}")
FILE(REMOVE ${_missingFile})
SET(_haveMissingReq 1)
ENDIF (EXISTS ${_missingFile})
IF (NOT ${_missingDeps})
SET(_summary "${_summary}\n-----------------------------------------------------------------------------\n-- Congratulations! All external packages have been found.")
ENDIF (NOT ${_missingDeps})
MESSAGE(${_summary})
MESSAGE("-----------------------------------------------------------------------------\n")
IF(_haveMissingReq)
MESSAGE(FATAL_ERROR "Exiting: Missing Requirements")
ENDIF(_haveMissingReq)
ENDIF(_printSummary)
ENDMACRO(MACRO_DISPLAY_FEATURE_LOG)

View File

@@ -1,48 +0,0 @@
# - MACRO_OPTIONAL_FIND_PACKAGE() combines FIND_PACKAGE() with an OPTION()
# MACRO_OPTIONAL_FIND_PACKAGE( <name> [QUIT] )
# This macro is a combination of OPTION() and FIND_PACKAGE(), it
# works like FIND_PACKAGE(), but additionally it automatically creates
# an option name WITH_<name>, which can be disabled via the cmake GUI.
# or via -DWITH_<name>=OFF
# The standard <name>_FOUND variables can be used in the same way
# as when using the normal FIND_PACKAGE()
# Copyright (c) 2006-2010 Alexander Neundorf, <neundorf@kde.org>
#
# Redistribution and use is allowed according to the terms of the BSD license.
# For details see the accompanying COPYING-CMAKE-SCRIPTS file.
# This is just a helper macro to set a bunch of variables empty.
# We don't know whether the package uses UPPERCASENAME or CamelCaseName, so we try both:
macro(_MOFP_SET_EMPTY_IF_DEFINED _name _var)
if(DEFINED ${_name}_${_var})
set(${_name}_${_var} "")
endif(DEFINED ${_name}_${_var})
string(TOUPPER ${_name} _nameUpper)
if(DEFINED ${_nameUpper}_${_var})
set(${_nameUpper}_${_var} "")
endif(DEFINED ${_nameUpper}_${_var})
endmacro(_MOFP_SET_EMPTY_IF_DEFINED _package _var)
macro (MACRO_OPTIONAL_FIND_PACKAGE _name )
option(WITH_${_name} "Search for ${_name} package" ON)
if (WITH_${_name})
find_package(${_name} ${ARGN})
else (WITH_${_name})
string(TOUPPER ${_name} _nameUpper)
set(${_name}_FOUND FALSE)
set(${_nameUpper}_FOUND FALSE)
_mofp_set_empty_if_defined(${_name} INCLUDE_DIRS)
_mofp_set_empty_if_defined(${_name} INCLUDE_DIR)
_mofp_set_empty_if_defined(${_name} INCLUDES)
_mofp_set_empty_if_defined(${_name} LIBRARY)
_mofp_set_empty_if_defined(${_name} LIBRARIES)
_mofp_set_empty_if_defined(${_name} LIBS)
_mofp_set_empty_if_defined(${_name} FLAGS)
_mofp_set_empty_if_defined(${_name} DEFINITIONS)
endif (WITH_${_name})
endmacro (MACRO_OPTIONAL_FIND_PACKAGE)

View File

@@ -1,43 +0,0 @@
include( CMakeColors )
function( calamares_add_branding_subdirectory )
set( SUBDIRECTORY ${ARGV0} )
if( EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/${SUBDIRECTORY}/CMakeLists.txt" )
add_subdirectory( $SUBDIRECTORY )
message( "-- ${BoldYellow}Found ${CALAMARES_APPLICATION_NAME} branding component: ${BoldRed}${SUBDIRECTORY}${ColorReset}" )
elseif( EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/${SUBDIRECTORY}/branding.desc" )
set( BRANDING_DIR share/calamares/branding )
set( BRANDING_COMPONENT_DESTINATION ${BRANDING_DIR}/${SUBDIRECTORY} )
if( IS_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/${SUBDIRECTORY}/lang" )
message( "-- ${BoldYellow}Warning:${ColorReset} branding component ${BoldRed}${SUBDIRECTORY}${ColorReset} has a translations subdirectory but no CMakeLists.txt." )
message( "" )
return()
endif()
# We glob all the files inside the subdirectory, and we make sure they are
# synced with the bindir structure and installed.
file( GLOB BRANDING_COMPONENT_FILES RELATIVE ${CMAKE_CURRENT_SOURCE_DIR}/${SUBDIRECTORY} "${SUBDIRECTORY}/*" )
foreach( BRANDING_COMPONENT_FILE ${BRANDING_COMPONENT_FILES} )
if( NOT IS_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/${SUBDIRECTORY}/${BRANDING_COMPONENT_FILE} )
configure_file( ${SUBDIRECTORY}/${BRANDING_COMPONENT_FILE} ${SUBDIRECTORY}/${BRANDING_COMPONENT_FILE} COPYONLY )
install( FILES ${CMAKE_CURRENT_BINARY_DIR}/${SUBDIRECTORY}/${BRANDING_COMPONENT_FILE}
DESTINATION ${BRANDING_COMPONENT_DESTINATION} )
endif()
endforeach()
message( "-- ${BoldYellow}Found ${CALAMARES_APPLICATION_NAME} branding component: ${BoldRed}${SUBDIRECTORY}${ColorReset}" )
if( NOT CMAKE_BUILD_TYPE STREQUAL "Release" )
message( " ${Green}TYPE:${ColorReset} branding component" )
# message( " ${Green}FILES:${ColorReset} ${BRANDING_COMPONENT_FILES}" )
message( " ${Green}BRANDING_COMPONENT_DESTINATION:${ColorReset} ${BRANDING_COMPONENT_DESTINATION}" )
message( "" )
endif()
else()
message( "-- ${BoldYellow}Warning:${ColorReset} tried to add branding component subdirectory ${BoldRed}${SUBDIRECTORY}${ColorReset} which has no branding.desc." )
message( "" )
endif()
endfunction()

View File

@@ -1,49 +0,0 @@
include( CMakeColors )
set( MODULE_DATA_DESTINATION share/calamares/modules )
function( calamares_add_module_subdirectory )
set( SUBDIRECTORY ${ARGV0} )
# If this subdirectory has a CMakeLists.txt, we add_subdirectory it...
if( EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/${SUBDIRECTORY}/CMakeLists.txt" )
add_subdirectory( ${SUBDIRECTORY} )
# ...otherwise, we look for a module.desc.
elseif( EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/${SUBDIRECTORY}/module.desc" )
set( MODULES_DIR ${CMAKE_INSTALL_LIBDIR}/calamares/modules )
set( MODULE_DESTINATION ${MODULES_DIR}/${SUBDIRECTORY} )
# We glob all the files inside the subdirectory, and we make sure they are
# synced with the bindir structure and installed.
file( GLOB MODULE_FILES RELATIVE ${CMAKE_CURRENT_SOURCE_DIR}/${SUBDIRECTORY} "${SUBDIRECTORY}/*" )
foreach( MODULE_FILE ${MODULE_FILES} )
if( NOT IS_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/${SUBDIRECTORY}/${MODULE_FILE} )
configure_file( ${SUBDIRECTORY}/${MODULE_FILE} ${SUBDIRECTORY}/${MODULE_FILE} COPYONLY )
get_filename_component( FLEXT ${MODULE_FILE} EXT )
if( "${FLEXT}" STREQUAL ".conf" )
install( FILES ${CMAKE_CURRENT_BINARY_DIR}/${SUBDIRECTORY}/${MODULE_FILE}
DESTINATION ${MODULE_DATA_DESTINATION} )
list( APPEND MODULE_CONFIG_FILES ${MODULE_FILE} )
else()
install( FILES ${CMAKE_CURRENT_BINARY_DIR}/${SUBDIRECTORY}/${MODULE_FILE}
DESTINATION ${MODULE_DESTINATION} )
endif()
endif()
endforeach()
message( "-- ${BoldYellow}Found ${CALAMARES_APPLICATION_NAME} module: ${BoldRed}${SUBDIRECTORY}${ColorReset}" )
if( NOT CMAKE_BUILD_TYPE STREQUAL "Release" )
message( " ${Green}TYPE:${ColorReset} jobmodule" )
# message( " ${Green}FILES:${ColorReset} ${MODULE_FILES}" )
message( " ${Green}MODULE_DESTINATION:${ColorReset} ${MODULE_DESTINATION}" )
if( MODULE_CONFIG_FILES )
message( " ${Green}CONFIGURATION_FILES:${ColorReset} ${MODULE_CONFIG_FILES} => ${MODULE_DATA_DESTINATION}" )
endif()
message( "" )
endif()
else()
message( "-- ${BoldYellow}Warning:${ColorReset} tried to add module subdirectory ${BoldRed}${SUBDIRECTORY}${ColorReset} which has no CMakeLists.txt or module.desc." )
message( "" )
endif()
endfunction()

View File

@@ -1,86 +0,0 @@
include( CMakeParseArguments )
include( ${CALAMARES_CMAKE_DIR}/CalamaresAddLibrary.cmake )
function( calamares_add_plugin )
# parse arguments ( name needs to be saved before passing ARGN into the macro )
set( NAME ${ARGV0} )
set( options NO_INSTALL SHARED_LIB )
set( oneValueArgs NAME TYPE EXPORT_MACRO RESOURCES )
set( multiValueArgs SOURCES UI LINK_LIBRARIES COMPILE_DEFINITIONS )
cmake_parse_arguments( PLUGIN "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN} )
set( PLUGIN_NAME ${NAME} )
set( PLUGIN_DESTINATION ${CMAKE_INSTALL_LIBDIR}/calamares/modules/${PLUGIN_NAME} )
set( PLUGIN_DESC_FILE module.desc )
file( GLOB PLUGIN_CONFIG_FILES RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "*.conf" )
set( PLUGIN_DATA_DESTINATION share/calamares/modules )
set( CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}" )
set( CMAKE_LIBRARY_OUTPUT_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}" )
set( CMAKE_ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}" )
include( CMakeColors )
message( "-- ${BoldYellow}Found ${CALAMARES_APPLICATION_NAME} module: ${BoldRed}${PLUGIN_NAME}${ColorReset}" )
if( NOT CMAKE_BUILD_TYPE STREQUAL "Release" )
message( " ${Green}TYPE:${ColorReset} ${PLUGIN_TYPE}" )
message( " ${Green}LINK_LIBRARIES:${ColorReset} ${PLUGIN_LINK_LIBRARIES}" )
# message( " ${Green}SOURCES:${ColorReset} ${PLUGIN_SOURCES}" )
# message( " ${Green}UI:${ColorReset} ${PLUGIN_UI}" )
# message( " ${Green}EXPORT_MACRO:${ColorReset} ${PLUGIN_EXPORT_MACRO}" )
# message( " ${Green}NO_INSTALL:${ColorReset} ${PLUGIN_NO_INSTALL}" )
message( " ${Green}PLUGIN_DESTINATION:${ColorReset} ${PLUGIN_DESTINATION}" )
if( PLUGIN_CONFIG_FILES )
message( " ${Green}CONFIGURATION_FILES:${ColorReset} ${PLUGIN_CONFIG_FILES} => ${PLUGIN_DATA_DESTINATION}" )
endif()
if( PLUGIN_RESOURCES )
message( " ${Green}RESOURCES:${ColorReset} ${PLUGIN_RESOURCES}" )
endif()
message( "" )
endif()
# create target name once for convenience
set( target "calamares_${PLUGIN_TYPE}_${PLUGIN_NAME}" )
# determine target type
if( NOT ${PLUGIN_SHARED_LIB} )
set( target_type "MODULE" )
else()
set( target_type "SHARED" )
endif()
list( APPEND calamares_add_library_args
"${target}"
"EXPORT_MACRO" "${PLUGIN_EXPORT_MACRO}"
"TARGET_TYPE" "${target_type}"
"SOURCES" "${PLUGIN_SOURCES}"
)
if( PLUGIN_UI )
list( APPEND calamares_add_library_args "UI" "${PLUGIN_UI}" )
endif()
if( PLUGIN_LINK_LIBRARIES )
list( APPEND calamares_add_library_args "LINK_LIBRARIES" "${PLUGIN_LINK_LIBRARIES}" )
endif()
if( PLUGIN_COMPILE_DEFINITIONS )
list( APPEND calamares_add_library_args "COMPILE_DEFINITIONS" ${PLUGIN_COMPILE_DEFINITIONS} )
endif()
list( APPEND calamares_add_library_args "NO_VERSION" )
list( APPEND calamares_add_library_args "INSTALL_BINDIR" "${PLUGIN_DESTINATION}" )
if( PLUGIN_RESOURCES )
list( APPEND calamares_add_library_args "RESOURCES" "${PLUGIN_RESOURCES}" )
endif()
calamares_add_library( ${calamares_add_library_args} )
configure_file( ${PLUGIN_DESC_FILE} ${PLUGIN_DESC_FILE} COPYONLY )
install( FILES ${CMAKE_CURRENT_BINARY_DIR}/${PLUGIN_DESC_FILE}
DESTINATION ${PLUGIN_DESTINATION} )
foreach( PLUGIN_CONFIG_FILE ${PLUGIN_CONFIG_FILES} )
configure_file( ${PLUGIN_CONFIG_FILE} ${PLUGIN_CONFIG_FILE} COPYONLY )
install( FILES ${CMAKE_CURRENT_BINARY_DIR}/${PLUGIN_CONFIG_FILE}
DESTINATION ${PLUGIN_DATA_DESTINATION} )
endforeach()
endfunction()

View File

@@ -1,4 +0,0 @@
set(CALAMARES_INCLUDE_DIRS
"@PROJECT_SOURCE_DIR@/src/libcalamares"
"@PROJECT_BINARY_DIR@/src/libcalamares"
)

View File

@@ -1,21 +1,78 @@
# - Config file for the Calamares package
# It defines the following variables
# CALAMARES_INCLUDE_DIRS - include directories for Calamares
# CALAMARES_LIBRARIES - libraries to link against
# CALAMARES_EXECUTABLE - the bar executable
# Config file for the Calamares package
#
# The following IMPORTED targets are defined:
# - Calamares::calamares - the core library
# - Calamares::calamaresui - the UI (and QML) library
#
# For legacy use it defines the following variables:
# - Calamares_INCLUDE_DIRS - include directories for Calamares
# - Calamares_LIB_DIRS - library directories
# - Calamares_LIBRARIES - libraries to link against
# Compute paths
get_filename_component(CALAMARES_CMAKE_DIR "${CMAKE_CURRENT_LIST_FILE}" PATH)
if(EXISTS "${CALAMARES_CMAKE_DIR}/CMakeCache.txt")
# In build tree
include("${CALAMARES_CMAKE_DIR}/CalamaresBuildTreeSettings.cmake")
else()
set(CALAMARES_INCLUDE_DIRS "${CALAMARES_CMAKE_DIR}/@CONF_REL_INCLUDE_DIR@/libcalamares")
@PACKAGE_INIT@
### Versioning and IMPORTED targets
#
#
include(${CMAKE_CURRENT_LIST_DIR}/CalamaresConfigVersion.cmake)
include(${CMAKE_CURRENT_LIST_DIR}/CalamaresTargets.cmake)
### Dependencies
#
# The libraries can depend on a variety of Qt and KDE Frameworks
# components, so accumulate them and find (just once).
#
macro(accumulate_deps outvar target namespace)
string(LENGTH ${namespace} _nslen)
get_target_property(_libs ${target} INTERFACE_LINK_LIBRARIES)
foreach(_lib ${_libs})
if (_lib MATCHES ^${namespace})
string(SUBSTRING ${_lib} ${_nslen} -1 _component)
list(APPEND ${outvar} ${_component})
endif()
endforeach()
endmacro()
# Qt5 infrastructure for translations is required
set(qt5_required Core Widgets LinguistTools)
accumulate_deps(qt5_required Calamares::calamares Qt5::)
accumulate_deps(qt5_required Calamares::calamaresui Qt5::)
find_package(Qt5 CONFIG REQUIRED ${qt5_required})
set(kf5_required "")
accumulate_deps(kf5_required Calamares::calamares KF5::)
accumulate_deps(kf5_required Calamares::calamaresui KF5::)
if(kf5_required)
find_package(ECM ${ECM_VERSION} NO_MODULE)
if( ECM_FOUND )
list(PREPEND CMAKE_MODULE_PATH ${ECM_MODULE_PATH})
find_package(KF5 REQUIRED COMPONENTS ${kf5_required})
endif()
endif()
# Our library dependencies (contains definitions for IMPORTED targets)
include("${CALAMARES_CMAKE_DIR}/CalamaresLibraryDepends.cmake")
### Legacy support
#
#
set(Calamares_LIB_DIRS "@PACKAGE_CMAKE_INSTALL_LIBDIR@")
set(Calamares_INCLUDE_DIRS "@PACKAGE_CMAKE_INSTALL_INCLUDEDIR@")
set(Calamares_LIBRARIES Calamares::calamares)
# These are IMPORTED targets created by CalamaresLibraryDepends.cmake
set(CALAMARES_LIBRARIES calamares)
set(CALAMARES_USE_FILE "${CALAMARES_CMAKE_DIR}/CalamaresUse.cmake")
### CMake support
#
#
list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_LIST_DIR})
include(CalamaresAddBrandingSubdirectory)
include(CalamaresAddLibrary)
include(CalamaresAddModuleSubdirectory)
include(CalamaresAddPlugin)
# These are feature-settings that affect consumers of Calamares
# libraries as well; without Python-support in the libs, for instance,
# there's no point in having a Python plugin.
#
# This list should match the one in libcalamares/CalamaresConfig.h,
# which is the C++-language side of the same configuration.
set(Calamares_WITH_PYTHON @WITH_PYTHON@)
set(Calamares_WITH_PYTHONQT @WITH_PYTHONQT@)
set(Calamares_WITH_QML @WITH_QML@)

View File

@@ -1,12 +0,0 @@
set(PACKAGE_VERSION "@CALAMARES_VERSION@")
# Check whether the requested PACKAGE_FIND_VERSION is compatible
if("${PACKAGE_VERSION}" VERSION_LESS "${PACKAGE_FIND_VERSION}")
set(PACKAGE_VERSION_COMPATIBLE FALSE)
else()
set(PACKAGE_VERSION_COMPATIBLE TRUE)
if ("${PACKAGE_VERSION}" VERSION_EQUAL "${PACKAGE_FIND_VERSION}")
set(PACKAGE_VERSION_EXACT TRUE)
endif()
endif()

View File

@@ -1,12 +0,0 @@
#FIXME: this duplicates top level cmakelists: how can we reduce code duplication?
find_package( Qt5 5.3.0 CONFIG REQUIRED Core Gui Widgets LinguistTools )
if(NOT CALAMARES_CMAKE_DIR)
set(CALAMARES_CMAKE_DIR ${CMAKE_CURRENT_LIST_DIR})
endif()
include( "${CALAMARES_CMAKE_DIR}/CalamaresAddLibrary.cmake" )
include( "${CALAMARES_CMAKE_DIR}/CalamaresAddModuleSubdirectory.cmake" )
include( "${CALAMARES_CMAKE_DIR}/CalamaresAddPlugin.cmake" )
include( "${CALAMARES_CMAKE_DIR}/CalamaresAddBrandingSubdirectory.cmake" )

2
Dockerfile Normal file
View File

@@ -0,0 +1,2 @@
FROM kdeneon/all:user
RUN sudo apt-get update && sudo apt-get -y install build-essential cmake extra-cmake-modules gettext kio-dev libatasmart-dev libboost-python-dev libkf5config-dev libkf5coreaddons-dev libkf5i18n-dev libkf5iconthemes-dev libkf5parts-dev libkf5service-dev libkf5solid-dev libkpmcore-dev libparted-dev libpolkit-qt5-1-dev libqt5svg5-dev libqt5webkit5-dev libyaml-cpp-dev os-prober pkg-config python3-dev qtbase5-dev qtdeclarative5-dev qttools5-dev qttools5-dev-tools

View File

@@ -1,156 +0,0 @@
Hacking on Calamares
====================
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.
Example:
```
/* === This file is part of Calamares - <http://github.com/calamares> ===
*
* Copyright 2013-2014, Random Person <name@example.com>
* Copyright 2010, Someone Else <someone@example.com>
*
* 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/>.
*/
```
Copyright holders must be physical or legal personalities. A statement such as `Copyright 2014, The FooBarQuux project` has no legal value if "The FooBarQuux project" is not the legal name of a person, company, incorporated organization, etc.
Formatting
----------
* Spaces, not tabs.
* Indentation is 4 spaces.
* Lines should be limited to 90 characters.
* Spaces between brackets and argument functions, including for template arguments
* 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.
* A function implementation's return type is on its own line.
* `CamelCase.{cpp,h}` style file names.
Example:
```
bool
MyClass::myMethod( QStringList list, const QString& name )
{
if ( list.isEmpty() )
return false;
foreach ( const QString& string, list )
cDebug() << "Current string is " << string;
switch ( m_enumValue )
{
case Something:
return true;
case SomethingElse:
doSomething();
break;
}
}
```
You can use the `hacking/calamaresstyle` script to run
[astyle](http://astyle.sf.net) on your code and have it formatted the right
way.
**NOTE:** An .editorconfig file is included to assist with formatting. In 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.
* Local variables should start out with a lowercase letter.
* Class names are capitalized
* Prefix class member variables with `m_`, e.g. `m_queue`.
* Prefix static member variables with `s_`, e.g. `s_instance`.
* Functions are named in the Qt style, like Java's, without the 'get' prefix.
* A getter is `variable()`.
* 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:
* own header,
* Calamares includes,
* includes for Qt-based libraries,
* Qt includes,
* other includes.
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;`.
Example:
```
#include "Settings.h"
#include "CalamaresApplication.h"
#include "utils/CalamaresUtils.h"
#include "utils/Logger.h"
#include "YamlUtils.h"
#include <QDir>
#include <QFile>
#include <yaml-cpp/yaml.h>
```
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
it makes the code easier to understand and more maintainable.
The use of `nullptr` is preferred over the use of `0` or `NULL`.
For Qt containers it is better to use Qt's own `foreach`. For all other containers, the
range-based `for` syntax introduced with C++11 is preferred ([see this blog post][1]).
When re-implementing a virtual method, always add the `override` keyword.
Try to keep your code const correct. Declare methods const if they don't mutate the
object, and use const variables. It improves safety, and also makes it easier to
understand the code.
For the Qt signal-slot system, the new (Qt5) syntax is to be preferred because it allows
the compiler to check for the existence of signals and slots. As an added benefit, the
new syntax can also be used with `tr1::bind` and C++11 lambdas. For more information, see
the [Qt wiki][2].
Example:
```
connect( m_next, &QPushButton::clicked, this, &ViewManager::next );
connect( m_moduleManager, &Calamares::ModuleManager::modulesLoaded, [this]
{
m_mainwindow->show();
});
```
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

24
LICENSES/BSD2 Normal file
View File

@@ -0,0 +1,24 @@
Copyright 2019 Adriaan de Groot <groot@kde.org>
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:
1. Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
POSSIBILITY OF SUCH DAMAGE.

49
LICENSES/BSD3-SameGame Normal file
View File

@@ -0,0 +1,49 @@
/****************************************************************************
**
** Copyright (C) 2017 The Qt Company Ltd.
** Contact: https://www.qt.io/licensing/
**
** This file is part of the examples of the Qt Toolkit.
**
** $QT_BEGIN_LICENSE:BSD$
** Commercial License Usage
** Licensees holding valid commercial Qt licenses may use this file in
** accordance with the commercial license agreement provided with the
** Software or, alternatively, in accordance with the terms contained in
** a written agreement between you and The Qt Company. For licensing terms
** and conditions see https://www.qt.io/terms-conditions. For further
** information use the contact form at https://www.qt.io/contact-us.
**
** BSD License Usage
** Alternatively, you may use this file under the terms of the BSD license
** as follows:
**
** "Redistribution and use in source and binary forms, with or without
** modification, are permitted provided that the following conditions are
** met:
** * Redistributions of source code must retain the above copyright
** notice, this list of conditions and the following disclaimer.
** * Redistributions in binary form must reproduce the above copyright
** notice, this list of conditions and the following disclaimer in
** the documentation and/or other materials provided with the
** distribution.
** * Neither the name of The Qt Company Ltd nor the names of its
** contributors may be used to endorse or promote products derived
** from this software without specific prior written permission.
**
**
** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
**
** $QT_END_LICENSE$
**
****************************************************************************/

View File

@@ -0,0 +1,383 @@
Unless otherwise *explicitly* stated the following text describes the
licensed conditions under which the contents of this libpwquality release
may be distributed:
-------------------------------------------------------------------------
Redistribution and use in source and binary forms of libpwquality, with
or without modification, are permitted provided that the following
conditions are met:
1. Redistributions of source code must retain any existing copyright
notice, and this entire permission notice in its entirety,
including the disclaimer of warranties.
2. Redistributions in binary form must reproduce all prior and current
copyright notices, this list of conditions, and the following
disclaimer in the documentation and/or other materials provided
with the distribution.
3. The name of any author may not be used to endorse or promote
products derived from this software without their specific prior
written permission.
ALTERNATIVELY, this product may be distributed under the terms of the
GNU General Public License version 2 or later, in which case the provisions
of the GNU GPL are required INSTEAD OF the above restrictions.
THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED
WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
IN NO EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY DIRECT, INDIRECT,
INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
DAMAGE.
The full text of the GNU GENERAL PUBLIC LICENSE Version 2 is included
below.
-------------------------------------------------------------------------
GNU GENERAL PUBLIC LICENSE
Version 2, June 1991
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
Preamble
The licenses for most software are designed to take away your
freedom to share and change it. By contrast, the GNU General Public
License is intended to guarantee your freedom to share and change free
software--to make sure the software is free for all its users. This
General Public License applies to most of the Free Software
Foundation's software and to any other program whose authors commit to
using it. (Some other Free Software Foundation software is covered by
the GNU Library General Public License instead.) You can apply it to
your programs, too.
When we speak of free software, we are referring to freedom, not
price. Our General Public Licenses are designed to make sure that you
have the freedom to distribute copies of free software (and charge for
this service if you wish), that you receive source code or can get it
if you want it, that you can change the software or use pieces of it
in new free programs; and that you know you can do these things.
To protect your rights, we need to make restrictions that forbid
anyone to deny you these rights or to ask you to surrender the rights.
These restrictions translate to certain responsibilities for you if you
distribute copies of the software, or if you modify it.
For example, if you distribute copies of such a program, whether
gratis or for a fee, you must give the recipients all the rights that
you have. You must make sure that they, too, receive or can get the
source code. And you must show them these terms so they know their
rights.
We protect your rights with two steps: (1) copyright the software, and
(2) offer you this license which gives you legal permission to copy,
distribute and/or modify the software.
Also, for each author's protection and ours, we want to make certain
that everyone understands that there is no warranty for this free
software. If the software is modified by someone else and passed on, we
want its recipients to know that what they have is not the original, so
that any problems introduced by others will not reflect on the original
authors' reputations.
Finally, any free program is threatened constantly by software
patents. We wish to avoid the danger that redistributors of a free
program will individually obtain patent licenses, in effect making the
program proprietary. To prevent this, we have made it clear that any
patent must be licensed for everyone's free use or not licensed at all.
The precise terms and conditions for copying, distribution and
modification follow.
GNU GENERAL PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
0. This License applies to any program or other work which contains
a notice placed by the copyright holder saying it may be distributed
under the terms of this General Public License. The "Program", below,
refers to any such program or work, and a "work based on the Program"
means either the Program or any derivative work under copyright law:
that is to say, a work containing the Program or a portion of it,
either verbatim or with modifications and/or translated into another
language. (Hereinafter, translation is included without limitation in
the term "modification".) Each licensee is addressed as "you".
Activities other than copying, distribution and modification are not
covered by this License; they are outside its scope. The act of
running the Program is not restricted, and the output from the Program
is covered only if its contents constitute a work based on the
Program (independent of having been made by running the Program).
Whether that is true depends on what the Program does.
1. You may copy and distribute verbatim copies of the Program's
source code as you receive it, in any medium, provided that you
conspicuously and appropriately publish on each copy an appropriate
copyright notice and disclaimer of warranty; keep intact all the
notices that refer to this License and to the absence of any warranty;
and give any other recipients of the Program a copy of this License
along with the Program.
You may charge a fee for the physical act of transferring a copy, and
you may at your option offer warranty protection in exchange for a fee.
2. You may modify your copy or copies of the Program or any portion
of it, thus forming a work based on the Program, and copy and
distribute such modifications or work under the terms of Section 1
above, provided that you also meet all of these conditions:
a) You must cause the modified files to carry prominent notices
stating that you changed the files and the date of any change.
b) You must cause any work that you distribute or publish, that in
whole or in part contains or is derived from the Program or any
part thereof, to be licensed as a whole at no charge to all third
parties under the terms of this License.
c) If the modified program normally reads commands interactively
when run, you must cause it, when started running for such
interactive use in the most ordinary way, to print or display an
announcement including an appropriate copyright notice and a
notice that there is no warranty (or else, saying that you provide
a warranty) and that users may redistribute the program under
these conditions, and telling the user how to view a copy of this
License. (Exception: if the Program itself is interactive but
does not normally print such an announcement, your work based on
the Program is not required to print an announcement.)
These requirements apply to the modified work as a whole. If
identifiable sections of that work are not derived from the Program,
and can be reasonably considered independent and separate works in
themselves, then this License, and its terms, do not apply to those
sections when you distribute them as separate works. But when you
distribute the same sections as part of a whole which is a work based
on the Program, the distribution of the whole must be on the terms of
this License, whose permissions for other licensees extend to the
entire whole, and thus to each and every part regardless of who wrote it.
Thus, it is not the intent of this section to claim rights or contest
your rights to work written entirely by you; rather, the intent is to
exercise the right to control the distribution of derivative or
collective works based on the Program.
In addition, mere aggregation of another work not based on the Program
with the Program (or with a work based on the Program) on a volume of
a storage or distribution medium does not bring the other work under
the scope of this License.
3. You may copy and distribute the Program (or a work based on it,
under Section 2) in object code or executable form under the terms of
Sections 1 and 2 above provided that you also do one of the following:
a) Accompany it with the complete corresponding machine-readable
source code, which must be distributed under the terms of Sections
1 and 2 above on a medium customarily used for software interchange; or,
b) Accompany it with a written offer, valid for at least three
years, to give any third party, for a charge no more than your
cost of physically performing source distribution, a complete
machine-readable copy of the corresponding source code, to be
distributed under the terms of Sections 1 and 2 above on a medium
customarily used for software interchange; or,
c) Accompany it with the information you received as to the offer
to distribute corresponding source code. (This alternative is
allowed only for noncommercial distribution and only if you
received the program in object code or executable form with such
an offer, in accord with Subsection b above.)
The source code for a work means the preferred form of the work for
making modifications to it. For an executable work, complete source
code means all the source code for all modules it contains, plus any
associated interface definition files, plus the scripts used to
control compilation and installation of the executable. However, as a
special exception, the source code distributed need not include
anything that is normally distributed (in either source or binary
form) with the major components (compiler, kernel, and so on) of the
operating system on which the executable runs, unless that component
itself accompanies the executable.
If distribution of executable or object code is made by offering
access to copy from a designated place, then offering equivalent
access to copy the source code from the same place counts as
distribution of the source code, even though third parties are not
compelled to copy the source along with the object code.
4. You may not copy, modify, sublicense, or distribute the Program
except as expressly provided under this License. Any attempt
otherwise to copy, modify, sublicense or distribute the Program is
void, and will automatically terminate your rights under this License.
However, parties who have received copies, or rights, from you under
this License will not have their licenses terminated so long as such
parties remain in full compliance.
5. You are not required to accept this License, since you have not
signed it. However, nothing else grants you permission to modify or
distribute the Program or its derivative works. These actions are
prohibited by law if you do not accept this License. Therefore, by
modifying or distributing the Program (or any work based on the
Program), you indicate your acceptance of this License to do so, and
all its terms and conditions for copying, distributing or modifying
the Program or works based on it.
6. Each time you redistribute the Program (or any work based on the
Program), the recipient automatically receives a license from the
original licensor to copy, distribute or modify the Program subject to
these terms and conditions. You may not impose any further
restrictions on the recipients' exercise of the rights granted herein.
You are not responsible for enforcing compliance by third parties to
this License.
7. If, as a consequence of a court judgment or allegation of patent
infringement or for any other reason (not limited to patent issues),
conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License. If you cannot
distribute so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you
may not distribute the Program at all. For example, if a patent
license would not permit royalty-free redistribution of the Program by
all those who receive copies directly or indirectly through you, then
the only way you could satisfy both it and this License would be to
refrain entirely from distribution of the Program.
If any portion of this section is held invalid or unenforceable under
any particular circumstance, the balance of the section is intended to
apply and the section as a whole is intended to apply in other
circumstances.
It is not the purpose of this section to induce you to infringe any
patents or other property right claims or to contest validity of any
such claims; this section has the sole purpose of protecting the
integrity of the free software distribution system, which is
implemented by public license practices. Many people have made
generous contributions to the wide range of software distributed
through that system in reliance on consistent application of that
system; it is up to the author/donor to decide if he or she is willing
to distribute software through any other system and a licensee cannot
impose that choice.
This section is intended to make thoroughly clear what is believed to
be a consequence of the rest of this License.
8. If the distribution and/or use of the Program is restricted in
certain countries either by patents or by copyrighted interfaces, the
original copyright holder who places the Program under this License
may add an explicit geographical distribution limitation excluding
those countries, so that distribution is permitted only in or among
countries not thus excluded. In such case, this License incorporates
the limitation as if written in the body of this License.
9. The Free Software Foundation may publish revised and/or new versions
of the General Public License from time to time. Such new versions will
be similar in spirit to the present version, but may differ in detail to
address new problems or concerns.
Each version is given a distinguishing version number. If the Program
specifies a version number of this License which applies to it and "any
later version", you have the option of following the terms and conditions
either of that version or of any later version published by the Free
Software Foundation. If the Program does not specify a version number of
this License, you may choose any version ever published by the Free Software
Foundation.
10. If you wish to incorporate parts of the Program into other free
programs whose distribution conditions are different, write to the author
to ask for permission. For software which is copyrighted by the Free
Software Foundation, write to the Free Software Foundation; we sometimes
make exceptions for this. Our decision will be guided by the two goals
of preserving the free status of all derivatives of our free software and
of promoting the sharing and reuse of software generally.
NO WARRANTY
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
REPAIR OR CORRECTION.
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
POSSIBILITY OF SUCH DAMAGES.
END OF TERMS AND CONDITIONS
How to Apply These Terms to Your New Programs
If you develop a new program, and you want it to be of the greatest
possible use to the public, the best way to achieve this is to make it
free software which everyone can redistribute and change under these terms.
To do so, attach the following notices to the program. It is safest
to attach them to the start of each source file to most effectively
convey the exclusion of warranty; and each file should have at least
the "copyright" line and a pointer to where the full notice is found.
<one line to give the program's name and a brief idea of what it does.>
Copyright (C) <year> <name of author>
This program 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 2 of the License, or
(at your option) any later version.
This program 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 this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
Also add information on how to contact you by electronic and paper mail.
If the program is interactive, make it output a short notice like this
when it starts in an interactive mode:
Gnomovision version 69, Copyright (C) year name of author
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
This is free software, and you are welcome to redistribute it
under certain conditions; type `show c' for details.
The hypothetical commands `show w' and `show c' should show the appropriate
parts of the General Public License. Of course, the commands you use may
be called something other than `show w' and `show c'; they could even be
mouse-clicks or menu items--whatever suits your program.
You should also get your employer (if you work as a programmer) or your
school, if any, to sign a "copyright disclaimer" for the program, if
necessary. Here is a sample; alter the names:
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
`Gnomovision' (which makes passes at compilers) written by James Hacker.
<signature of Ty Coon>, 1 April 1989
Ty Coon, President of Vice
This General Public License does not permit incorporating your program into
proprietary programs. If your program is a subroutine library, you may
consider it more useful to permit linking proprietary applications with the
library. If this is what you want to do, use the GNU Library General
Public License instead of this License.

View File

@@ -0,0 +1,16 @@
/*
* Copyright 2012, Christian Muehlhaeuser <muesli@tomahawk-player.org>
This program 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.
This program 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 this program. If not, see <http://www.gnu.org/licenses/>.
*/

488
LICENSES/LGPLv2-KDAB Normal file
View File

@@ -0,0 +1,488 @@
The KD Tools Library is Copyright (C) 2001-2010 Klaralvdalens Datakonsult AB.
You may use, distribute and copy the KD Tools Library under the terms of
GNU Library General Public License version 2, which is displayed below.
-------------------------------------------------------------------------
GNU LIBRARY GENERAL PUBLIC LICENSE
Version 2, June 1991
Copyright (C) 1991 Free Software Foundation, Inc.
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
[This is the first released version of the library GPL. It is
numbered 2 because it goes with version 2 of the ordinary GPL.]
Preamble
The licenses for most software are designed to take away your
freedom to share and change it. By contrast, the GNU General Public
Licenses are intended to guarantee your freedom to share and change
free software--to make sure the software is free for all its users.
This license, the Library General Public License, applies to some
specially designated Free Software Foundation software, and to any
other libraries whose authors decide to use it. You can use it for
your libraries, too.
When we speak of free software, we are referring to freedom, not
price. Our General Public Licenses are designed to make sure that you
have the freedom to distribute copies of free software (and charge for
this service if you wish), that you receive source code or can get it
if you want it, that you can change the software or use pieces of it
in new free programs; and that you know you can do these things.
To protect your rights, we need to make restrictions that forbid
anyone to deny you these rights or to ask you to surrender the rights.
These restrictions translate to certain responsibilities for you if
you distribute copies of the library, or if you modify it.
For example, if you distribute copies of the library, whether gratis
or for a fee, you must give the recipients all the rights that we gave
you. You must make sure that they, too, receive or can get the source
code. If you link a program with the library, you must provide
complete object files to the recipients so that they can relink them
with the library, after making changes to the library and recompiling
it. And you must show them these terms so they know their rights.
Our method of protecting your rights has two steps: (1) copyright
the library, and (2) offer you this license which gives you legal
permission to copy, distribute and/or modify the library.
Also, for each distributor's protection, we want to make certain
that everyone understands that there is no warranty for this free
library. If the library is modified by someone else and passed on, we
want its recipients to know that what they have is not the original
version, so that any problems introduced by others will not reflect on
the original authors' reputations.
Finally, any free program is threatened constantly by software
patents. We wish to avoid the danger that companies distributing free
software will individually obtain patent licenses, thus in effect
transforming the program into proprietary software. To prevent this,
we have made it clear that any patent must be licensed for everyone's
free use or not licensed at all.
Most GNU software, including some libraries, is covered by the ordinary
GNU General Public License, which was designed for utility programs. This
license, the GNU Library General Public License, applies to certain
designated libraries. This license is quite different from the ordinary
one; be sure to read it in full, and don't assume that anything in it is
the same as in the ordinary license.
The reason we have a separate public license for some libraries is that
they blur the distinction we usually make between modifying or adding to a
program and simply using it. Linking a program with a library, without
changing the library, is in some sense simply using the library, and is
analogous to running a utility program or application program. However, in
a textual and legal sense, the linked executable is a combined work, a
derivative of the original library, and the ordinary General Public License
treats it as such.
Because of this blurred distinction, using the ordinary General
Public License for libraries did not effectively promote software
sharing, because most developers did not use the libraries. We
concluded that weaker conditions might promote sharing better.
However, unrestricted linking of non-free programs would deprive the
users of those programs of all benefit from the free status of the
libraries themselves. This Library General Public License is intended to
permit developers of non-free programs to use free libraries, while
preserving your freedom as a user of such programs to change the free
libraries that are incorporated in them. (We have not seen how to achieve
this as regards changes in header files, but we have achieved it as regards
changes in the actual functions of the Library.) The hope is that this
will lead to faster development of free libraries.
The precise terms and conditions for copying, distribution and
modification follow. Pay close attention to the difference between a
"work based on the library" and a "work that uses the library". The
former contains code derived from the library, while the latter only
works together with the library.
Note that it is possible for a library to be covered by the ordinary
General Public License rather than by this special one.
GNU LIBRARY GENERAL PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
0. This License Agreement applies to any software library which
contains a notice placed by the copyright holder or other authorized
party saying it may be distributed under the terms of this Library
General Public License (also called "this License"). Each licensee is
addressed as "you".
A "library" means a collection of software functions and/or data
prepared so as to be conveniently linked with application programs
(which use some of those functions and data) to form executables.
The "Library", below, refers to any such software library or work
which has been distributed under these terms. A "work based on the
Library" means either the Library or any derivative work under
copyright law: that is to say, a work containing the Library or a
portion of it, either verbatim or with modifications and/or translated
straightforwardly into another language. (Hereinafter, translation is
included without limitation in the term "modification".)
"Source code" for a work means the preferred form of the work for
making modifications to it. For a library, complete source code means
all the source code for all modules it contains, plus any associated
interface definition files, plus the scripts used to control compilation
and installation of the library.
Activities other than copying, distribution and modification are not
covered by this License; they are outside its scope. The act of
running a program using the Library is not restricted, and output from
such a program is covered only if its contents constitute a work based
on the Library (independent of the use of the Library in a tool for
writing it). Whether that is true depends on what the Library does
and what the program that uses the Library does.
1. You may copy and distribute verbatim copies of the Library's
complete source code as you receive it, in any medium, provided that
you conspicuously and appropriately publish on each copy an
appropriate copyright notice and disclaimer of warranty; keep intact
all the notices that refer to this License and to the absence of any
warranty; and distribute a copy of this License along with the
Library.
You may charge a fee for the physical act of transferring a copy,
and you may at your option offer warranty protection in exchange for a
fee.
2. You may modify your copy or copies of the Library or any portion
of it, thus forming a work based on the Library, and copy and
distribute such modifications or work under the terms of Section 1
above, provided that you also meet all of these conditions:
a) The modified work must itself be a software library.
b) You must cause the files modified to carry prominent notices
stating that you changed the files and the date of any change.
c) You must cause the whole of the work to be licensed at no
charge to all third parties under the terms of this License.
d) If a facility in the modified Library refers to a function or a
table of data to be supplied by an application program that uses
the facility, other than as an argument passed when the facility
is invoked, then you must make a good faith effort to ensure that,
in the event an application does not supply such function or
table, the facility still operates, and performs whatever part of
its purpose remains meaningful.
(For example, a function in a library to compute square roots has
a purpose that is entirely well-defined independent of the
application. Therefore, Subsection 2d requires that any
application-supplied function or table used by this function must
be optional: if the application does not supply it, the square
root function must still compute square roots.)
These requirements apply to the modified work as a whole. If
identifiable sections of that work are not derived from the Library,
and can be reasonably considered independent and separate works in
themselves, then this License, and its terms, do not apply to those
sections when you distribute them as separate works. But when you
distribute the same sections as part of a whole which is a work based
on the Library, the distribution of the whole must be on the terms of
this License, whose permissions for other licensees extend to the
entire whole, and thus to each and every part regardless of who wrote
it.
Thus, it is not the intent of this section to claim rights or contest
your rights to work written entirely by you; rather, the intent is to
exercise the right to control the distribution of derivative or
collective works based on the Library.
In addition, mere aggregation of another work not based on the Library
with the Library (or with a work based on the Library) on a volume of
a storage or distribution medium does not bring the other work under
the scope of this License.
3. You may opt to apply the terms of the ordinary GNU General Public
License instead of this License to a given copy of the Library. To do
this, you must alter all the notices that refer to this License, so
that they refer to the ordinary GNU General Public License, version 2,
instead of to this License. (If a newer version than version 2 of the
ordinary GNU General Public License has appeared, then you can specify
that version instead if you wish.) Do not make any other change in
these notices.
Once this change is made in a given copy, it is irreversible for
that copy, so the ordinary GNU General Public License applies to all
subsequent copies and derivative works made from that copy.
This option is useful when you wish to copy part of the code of
the Library into a program that is not a library.
4. You may copy and distribute the Library (or a portion or
derivative of it, under Section 2) in object code or executable form
under the terms of Sections 1 and 2 above provided that you accompany
it with the complete corresponding machine-readable source code, which
must be distributed under the terms of Sections 1 and 2 above on a
medium customarily used for software interchange.
If distribution of object code is made by offering access to copy
from a designated place, then offering equivalent access to copy the
source code from the same place satisfies the requirement to
distribute the source code, even though third parties are not
compelled to copy the source along with the object code.
5. A program that contains no derivative of any portion of the
Library, but is designed to work with the Library by being compiled or
linked with it, is called a "work that uses the Library". Such a
work, in isolation, is not a derivative work of the Library, and
therefore falls outside the scope of this License.
However, linking a "work that uses the Library" with the Library
creates an executable that is a derivative of the Library (because it
contains portions of the Library), rather than a "work that uses the
library". The executable is therefore covered by this License.
Section 6 states terms for distribution of such executables.
When a "work that uses the Library" uses material from a header file
that is part of the Library, the object code for the work may be a
derivative work of the Library even though the source code is not.
Whether this is true is especially significant if the work can be
linked without the Library, or if the work is itself a library. The
threshold for this to be true is not precisely defined by law.
If such an object file uses only numerical parameters, data
structure layouts and accessors, and small macros and small inline
functions (ten lines or less in length), then the use of the object
file is unrestricted, regardless of whether it is legally a derivative
work. (Executables containing this object code plus portions of the
Library will still fall under Section 6.)
Otherwise, if the work is a derivative of the Library, you may
distribute the object code for the work under the terms of Section 6.
Any executables containing that work also fall under Section 6,
whether or not they are linked directly with the Library itself.
6. As an exception to the Sections above, you may also compile or
link a "work that uses the Library" with the Library to produce a
work containing portions of the Library, and distribute that work
under terms of your choice, provided that the terms permit
modification of the work for the customer's own use and reverse
engineering for debugging such modifications.
You must give prominent notice with each copy of the work that the
Library is used in it and that the Library and its use are covered by
this License. You must supply a copy of this License. If the work
during execution displays copyright notices, you must include the
copyright notice for the Library among them, as well as a reference
directing the user to the copy of this License. Also, you must do one
of these things:
a) Accompany the work with the complete corresponding
machine-readable source code for the Library including whatever
changes were used in the work (which must be distributed under
Sections 1 and 2 above); and, if the work is an executable linked
with the Library, with the complete machine-readable "work that
uses the Library", as object code and/or source code, so that the
user can modify the Library and then relink to produce a modified
executable containing the modified Library. (It is understood
that the user who changes the contents of definitions files in the
Library will not necessarily be able to recompile the application
to use the modified definitions.)
b) Accompany the work with a written offer, valid for at
least three years, to give the same user the materials
specified in Subsection 6a, above, for a charge no more
than the cost of performing this distribution.
c) If distribution of the work is made by offering access to copy
from a designated place, offer equivalent access to copy the above
specified materials from the same place.
d) Verify that the user has already received a copy of these
materials or that you have already sent this user a copy.
For an executable, the required form of the "work that uses the
Library" must include any data and utility programs needed for
reproducing the executable from it. However, as a special exception,
the source code distributed need not include anything that is normally
distributed (in either source or binary form) with the major
components (compiler, kernel, and so on) of the operating system on
which the executable runs, unless that component itself accompanies
the executable.
It may happen that this requirement contradicts the license
restrictions of other proprietary libraries that do not normally
accompany the operating system. Such a contradiction means you cannot
use both them and the Library together in an executable that you
distribute.
7. You may place library facilities that are a work based on the
Library side-by-side in a single library together with other library
facilities not covered by this License, and distribute such a combined
library, provided that the separate distribution of the work based on
the Library and of the other library facilities is otherwise
permitted, and provided that you do these two things:
a) Accompany the combined library with a copy of the same work
based on the Library, uncombined with any other library
facilities. This must be distributed under the terms of the
Sections above.
b) Give prominent notice with the combined library of the fact
that part of it is a work based on the Library, and explaining
where to find the accompanying uncombined form of the same work.
8. You may not copy, modify, sublicense, link with, or distribute
the Library except as expressly provided under this License. Any
attempt otherwise to copy, modify, sublicense, link with, or
distribute the Library is void, and will automatically terminate your
rights under this License. However, parties who have received copies,
or rights, from you under this License will not have their licenses
terminated so long as such parties remain in full compliance.
9. You are not required to accept this License, since you have not
signed it. However, nothing else grants you permission to modify or
distribute the Library or its derivative works. These actions are
prohibited by law if you do not accept this License. Therefore, by
modifying or distributing the Library (or any work based on the
Library), you indicate your acceptance of this License to do so, and
all its terms and conditions for copying, distributing or modifying
the Library or works based on it.
10. Each time you redistribute the Library (or any work based on the
Library), the recipient automatically receives a license from the
original licensor to copy, distribute, link with or modify the Library
subject to these terms and conditions. You may not impose any further
restrictions on the recipients' exercise of the rights granted herein.
You are not responsible for enforcing compliance by third parties to
this License.
11. If, as a consequence of a court judgment or allegation of patent
infringement or for any other reason (not limited to patent issues),
conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License. If you cannot
distribute so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you
may not distribute the Library at all. For example, if a patent
license would not permit royalty-free redistribution of the Library by
all those who receive copies directly or indirectly through you, then
the only way you could satisfy both it and this License would be to
refrain entirely from distribution of the Library.
If any portion of this section is held invalid or unenforceable under any
particular circumstance, the balance of the section is intended to apply,
and the section as a whole is intended to apply in other circumstances.
It is not the purpose of this section to induce you to infringe any
patents or other property right claims or to contest validity of any
such claims; this section has the sole purpose of protecting the
integrity of the free software distribution system which is
implemented by public license practices. Many people have made
generous contributions to the wide range of software distributed
through that system in reliance on consistent application of that
system; it is up to the author/donor to decide if he or she is willing
to distribute software through any other system and a licensee cannot
impose that choice.
This section is intended to make thoroughly clear what is believed to
be a consequence of the rest of this License.
12. If the distribution and/or use of the Library is restricted in
certain countries either by patents or by copyrighted interfaces, the
original copyright holder who places the Library under this License may add
an explicit geographical distribution limitation excluding those countries,
so that distribution is permitted only in or among countries not thus
excluded. In such case, this License incorporates the limitation as if
written in the body of this License.
13. The Free Software Foundation may publish revised and/or new
versions of the Library General Public License from time to time.
Such new versions will be similar in spirit to the present version,
but may differ in detail to address new problems or concerns.
Each version is given a distinguishing version number. If the Library
specifies a version number of this License which applies to it and
"any later version", you have the option of following the terms and
conditions either of that version or of any later version published by
the Free Software Foundation. If the Library does not specify a
license version number, you may choose any version ever published by
the Free Software Foundation.
14. If you wish to incorporate parts of the Library into other free
programs whose distribution conditions are incompatible with these,
write to the author to ask for permission. For software which is
copyrighted by the Free Software Foundation, write to the Free
Software Foundation; we sometimes make exceptions for this. Our
decision will be guided by the two goals of preserving the free status
of all derivatives of our free software and of promoting the sharing
and reuse of software generally.
NO WARRANTY
15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
DAMAGES.
END OF TERMS AND CONDITIONS
How to Apply These Terms to Your New Libraries
If you develop a new library, and you want it to be of the greatest
possible use to the public, we recommend making it free software that
everyone can redistribute and change. You can do so by permitting
redistribution under these terms (or, alternatively, under the terms of the
ordinary General Public License).
To apply these terms, attach the following notices to the library. It is
safest to attach them to the start of each source file to most effectively
convey the exclusion of warranty; and each file should have at least the
"copyright" line and a pointer to where the full notice is found.
<one line to give the library's name and a brief idea of what it does.>
Copyright (C) <year> <name of author>
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public
License as published by the Free Software Foundation; either
version 2 of the License, or (at your option) any later version.
This library 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
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with this library; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
Also add information on how to contact you by electronic and paper mail.
You should also get your employer (if you work as a programmer) or your
school, if any, to sign a "copyright disclaimer" for the library, if
necessary. Here is a sample; alter the names:
Yoyodyne, Inc., hereby disclaims all copyright interest in the
library `Frob' (a library for tweaking knobs) written by James Random Hacker.
<signature of Ty Coon>, 1 April 1990
Ty Coon, President of Vice
That's all there is to it!

View File

@@ -0,0 +1,83 @@
/****************************************************************************
**
** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies).
** Contact: http://www.qt-project.org/legal
**
** This file is part of the QML Presentation System.
**
** $QT_BEGIN_LICENSE:LGPL$
** Commercial License Usage
** Licensees holding valid commercial Qt licenses may use this file in
** accordance with the commercial license agreement provided with the
** Software or, alternatively, in accordance with the terms contained in
** a written agreement between you and Digia. For licensing terms and
** conditions see http://qt.digia.com/licensing. For further information
** use the contact form at http://qt.digia.com/contact-us.
**
** GNU Lesser General Public License Usage
** Alternatively, this file may be used under the terms of the GNU Lesser
** General Public License version 2.1 as published by the Free Software
** Foundation and appearing in the file LICENSE.LGPL included in the
** packaging of this file. Please review the following information to
** ensure the GNU Lesser General Public License version 2.1 requirements
** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
**
** In addition, as a special exception, Digia gives you certain additional
** rights. These rights are described in the Digia Qt LGPL Exception
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
**
** GNU General Public License Usage
** Alternatively, this file may be used under the terms of the GNU
** General Public License version 3.0 as published by the Free Software
** Foundation and appearing in the file LICENSE.GPL included in the
** packaging of this file. Please review the following information to
** ensure the GNU General Public License version 3.0 requirements will be
** met: http://www.gnu.org/copyleft/gpl.html.
**
**
** $QT_END_LICENSE$
**
****************************************************************************/
/****************************************************************************
**
** Copyright (C) 2016 The Qt Company Ltd.
** Contact: https://www.qt.io/licensing/
**
** This file is part of the QML Presentation System.
**
** $QT_BEGIN_LICENSE:LGPL$
** Commercial License Usage
** Licensees holding valid commercial Qt licenses may use this file in
** accordance with the commercial license agreement provided with the
** Software or, alternatively, in accordance with the terms contained in
** a written agreement between you and Digia. For licensing terms and
** conditions see http://qt.digia.com/licensing. For further information
** use the contact form at http://qt.digia.com/contact-us.
**
** GNU Lesser General Public License Usage
** Alternatively, this file may be used under the terms of the GNU Lesser
** General Public License version 2.1 as published by the Free Software
** Foundation and appearing in the file LICENSE.LGPL included in the
** packaging of this file. Please review the following information to
** ensure the GNU Lesser General Public License version 2.1 requirements
** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
**
** In addition, as a special exception, Digia gives you certain additional
** rights. These rights are described in the Digia Qt LGPL Exception
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
**
** GNU General Public License Usage
** Alternatively, this file may be used under the terms of the GNU
** General Public License version 3.0 as published by the Free Software
** Foundation and appearing in the file LICENSE.GPL included in the
** packaging of this file. Please review the following information to
** ensure the GNU General Public License version 3.0 requirements will be
** met: http://www.gnu.org/copyleft/gpl.html.
**
**
** $QT_END_LICENSE$
**
****************************************************************************/

View File

@@ -0,0 +1,22 @@
Digia Qt LGPL Exception version 1.1
As an additional permission to the GNU Lesser General Public License version
2.1, the object code form of a "work that uses the Library" may incorporate
material from a header file that is part of the Library. You may distribute
such object code under terms of your choice, provided that:
(i) the header files of the Library have not been modified; and
(ii) the incorporated material is limited to numerical parameters, data
structure layouts, accessors, macros, inline functions and
templates; and
(iii) you comply with the terms of Section 6 of the GNU Lesser General
Public License version 2.1.
Moreover, you may apply this exception to a modified version of the Library,
provided that such modification does not involve copying material from the
Library into the modified Library's header files unless such material is
limited to (i) numerical parameters; (ii) data structure layouts;
(iii) accessors; and (iv) small macros, templates and inline functions of
five lines or less in length.
Furthermore, you are not required to apply this additional permission to a
modified version of the Library.

209
LICENSES/LGPLv3-Breeze Normal file
View File

@@ -0,0 +1,209 @@
The Breeze Icon Theme in icons/
Copyright (C) 2014 Uri Herrera <uri_herrera@nitrux.in> and others
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 3 of the License, or (at your option) any later version.
This library 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
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with this library. If not, see <http://www.gnu.org/licenses/>.
Clarification:
The GNU Lesser General Public License or LGPL is written for
software libraries in the first place. We expressly want the LGPL to
be valid for this artwork library too.
KDE Breeze theme icons is a special kind of software library, it is an
artwork library, it's elements can be used in a Graphical User Interface, or
GUI.
Source code, for this library means:
- where they exist, SVG;
- otherwise, if applicable, the multi-layered formats xcf or psd, or
otherwise png.
The LGPL in some sections obliges you to make the files carry
notices. With images this is in some cases impossible or hardly useful.
With this library a notice is placed at a prominent place in the directory
containing the elements. You may follow this practice.
The exception in section 5 of the GNU Lesser General Public License covers
the use of elements of this art library in a GUI.
https://vdesign.kde.org/
-----
GNU LESSER GENERAL PUBLIC LICENSE
Version 3, 29 June 2007
Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
This version of the GNU Lesser General Public License incorporates
the terms and conditions of version 3 of the GNU General Public
License, supplemented by the additional permissions listed below.
0. Additional Definitions.
As used herein, "this License" refers to version 3 of the GNU Lesser
General Public License, and the "GNU GPL" refers to version 3 of the GNU
General Public License.
"The Library" refers to a covered work governed by this License,
other than an Application or a Combined Work as defined below.
An "Application" is any work that makes use of an interface provided
by the Library, but which is not otherwise based on the Library.
Defining a subclass of a class defined by the Library is deemed a mode
of using an interface provided by the Library.
A "Combined Work" is a work produced by combining or linking an
Application with the Library. The particular version of the Library
with which the Combined Work was made is also called the "Linked
Version".
The "Minimal Corresponding Source" for a Combined Work means the
Corresponding Source for the Combined Work, excluding any source code
for portions of the Combined Work that, considered in isolation, are
based on the Application, and not on the Linked Version.
The "Corresponding Application Code" for a Combined Work means the
object code and/or source code for the Application, including any data
and utility programs needed for reproducing the Combined Work from the
Application, but excluding the System Libraries of the Combined Work.
1. Exception to Section 3 of the GNU GPL.
You may convey a covered work under sections 3 and 4 of this License
without being bound by section 3 of the GNU GPL.
2. Conveying Modified Versions.
If you modify a copy of the Library, and, in your modifications, a
facility refers to a function or data to be supplied by an Application
that uses the facility (other than as an argument passed when the
facility is invoked), then you may convey a copy of the modified
version:
a) under this License, provided that you make a good faith effort to
ensure that, in the event an Application does not supply the
function or data, the facility still operates, and performs
whatever part of its purpose remains meaningful, or
b) under the GNU GPL, with none of the additional permissions of
this License applicable to that copy.
3. Object Code Incorporating Material from Library Header Files.
The object code form of an Application may incorporate material from
a header file that is part of the Library. You may convey such object
code under terms of your choice, provided that, if the incorporated
material is not limited to numerical parameters, data structure
layouts and accessors, or small macros, inline functions and templates
(ten or fewer lines in length), you do both of the following:
a) Give prominent notice with each copy of the object code that the
Library is used in it and that the Library and its use are
covered by this License.
b) Accompany the object code with a copy of the GNU GPL and this license
document.
4. Combined Works.
You may convey a Combined Work under terms of your choice that,
taken together, effectively do not restrict modification of the
portions of the Library contained in the Combined Work and reverse
engineering for debugging such modifications, if you also do each of
the following:
a) Give prominent notice with each copy of the Combined Work that
the Library is used in it and that the Library and its use are
covered by this License.
b) Accompany the Combined Work with a copy of the GNU GPL and this license
document.
c) For a Combined Work that displays copyright notices during
execution, include the copyright notice for the Library among
these notices, as well as a reference directing the user to the
copies of the GNU GPL and this license document.
d) Do one of the following:
0) Convey the Minimal Corresponding Source under the terms of this
License, and the Corresponding Application Code in a form
suitable for, and under terms that permit, the user to
recombine or relink the Application with a modified version of
the Linked Version to produce a modified Combined Work, in the
manner specified by section 6 of the GNU GPL for conveying
Corresponding Source.
1) Use a suitable shared library mechanism for linking with the
Library. A suitable mechanism is one that (a) uses at run time
a copy of the Library already present on the user's computer
system, and (b) will operate properly with a modified version
of the Library that is interface-compatible with the Linked
Version.
e) Provide Installation Information, but only if you would otherwise
be required to provide such information under section 6 of the
GNU GPL, and only to the extent that such information is
necessary to install and execute a modified version of the
Combined Work produced by recombining or relinking the
Application with a modified version of the Linked Version. (If
you use option 4d0, the Installation Information must accompany
the Minimal Corresponding Source and Corresponding Application
Code. If you use option 4d1, you must provide the Installation
Information in the manner specified by section 6 of the GNU GPL
for conveying Corresponding Source.)
5. Combined Libraries.
You may place library facilities that are a work based on the
Library side by side in a single library together with other library
facilities that are not Applications and are not covered by this
License, and convey such a combined library under terms of your
choice, if you do both of the following:
a) Accompany the combined library with a copy of the same work based
on the Library, uncombined with any other library facilities,
conveyed under the terms of this License.
b) Give prominent notice with the combined library that part of it
is a work based on the Library, and explaining where to find the
accompanying uncombined form of the same work.
6. Revised Versions of the GNU Lesser General Public License.
The Free Software Foundation may publish revised and/or new versions
of the GNU Lesser General Public License from time to time. Such new
versions will be similar in spirit to the present version, but may
differ in detail to address new problems or concerns.
Each version is given a distinguishing version number. If the
Library as you received it specifies that a certain numbered version
of the GNU Lesser General Public License "or any later version"
applies to it, you have the option of following the terms and
conditions either of that published version or of any later version
published by the Free Software Foundation. If the Library as you
received it does not specify a version number of the GNU Lesser
General Public License, you may choose any version of the GNU Lesser
General Public License ever published by the Free Software Foundation.
If the Library as you received it specifies that a proxy can decide
whether future versions of the GNU Lesser General Public License shall
apply, that proxy's public statement of acceptance of any version is
permanent authorization for you to choose that version for the
Library.

View File

@@ -0,0 +1,21 @@
The MIT License (MIT)
Original Work Copyright (c) 2012-2015 Alexander Turkin
Modified 2014 by William Hallatt
Permission is hereby granted, free of charge, to any person obtaining a copy of
this software and associated documentation files (the "Software"), to deal in
the Software without restriction, including without limitation the rights to
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
the Software, and to permit persons to whom the Software is furnished to do so,
subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

View File

@@ -2,40 +2,38 @@
---------
[![GitHub release](https://img.shields.io/github/release/calamares/calamares.svg)](https://github.com/calamares/calamares/releases)
[![Build Status](https://calamares.io/ci/buildStatus/icon?job=calamares-post_commit)](https://calamares.io/ci/job/calamares-post_commit/)
[![Travis Build Status](https://travis-ci.org/calamares/calamares.svg?branch=calamares)](https://travis-ci.org/calamares/calamares)
[![Coverity Scan Build Status](https://scan.coverity.com/projects/5389/badge.svg)](https://scan.coverity.com/projects/5389)
[![GitHub license](https://img.shields.io/github/license/calamares/calamares.svg)](https://github.com/calamares/calamares/blob/master/LICENSE)
[![GitHub license](https://img.shields.io/github/license/calamares/calamares.svg)](https://github.com/calamares/calamares/blob/calamares/LICENSE)
| [Report a Bug](https://calamares.io/bugs/) | [Contribute](https://github.com/calamares/calamares/blob/master/HACKING.md) | [Translate](https://www.transifex.com/projects/p/calamares/) | Freenode (IRC): #calamares | [Wiki](https://github.com/calamares/calamares/wiki) |
| [Report a Bug](https://github.com/calamares/calamares/issues/new) | [Translate](https://www.transifex.com/projects/p/calamares/) | [Contribute](https://github.com/calamares/calamares/wiki/Develop-Guide) | Freenode (IRC): #calamares | [Wiki](https://github.com/calamares/calamares/wiki) |
|:-----------------------------------------:|:----------------------:|:-----------------------:|:--------------------------:|:--------------------------:|
### Dependencies
Main:
* Compiler with C++11 support: GCC >= 4.9.0 or Clang >= 3.5.1
* CMake >= 2.8.12
* Qt >= 5.3
* Compiler with C++14 support: GCC >= 5 or Clang >= 3.5.1
* CMake >= 3.3
* Qt >= 5.9
* yaml-cpp >= 0.5.1
* Python >= 3.3
* Boost.Python >= 1.55.0
* dmidecode
* Python >= 3.3 (required for some modules)
* Boost.Python >= 1.55.0 (required for some modules)
* KDE extra-cmake-modules >= 5.18 (recommended; required for some modules;
required for some tests)
* KDE Frameworks KCoreAddons (>= 5.58 recommended)
* PythonQt (optional, deprecated)
Modules:
* welcome:
* NetworkManager
* UPower
* partition:
* extra-cmake-modules
* KF5: KCoreAddons, KConfig, KI18n, KIconThemes, KIO, KService
* KPMcore >= 2.2
* sgdisk
* bootloader:
* systemd-boot or GRUB
* sgdisk
* unpackfs:
* squashfs-tools
* rsync
Individual modules may have their own requirements;
these are listed in CMake output.
Particular requirements (not complete):
* *fsresizer* KPMCore >= 3.3 (>= 4.1 recommended)
* *partition* KPMCore >= 3.3 (>= 4.1 recommended)
* *users* LibPWQuality (optional)
### 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/Develop-Guide)
and [deployment](https://github.com/calamares/calamares/wiki/Deploy-Guide)
instructions.

View File

@@ -1,8 +1,9 @@
[Desktop Entry]
Type=Application
Version=1.0
Name=Calamares
Name=Install System
GenericName=System Installer
Keywords=calamares;system;installer;
TryExec=calamares
Exec=pkexec /usr/bin/calamares
Comment=Calamares — System Installer
@@ -10,3 +11,221 @@ Icon=calamares
Terminal=false
StartupNotify=true
Categories=Qt;System;
X-AppStream-Ignore=true
Name[ar]=تثبيت النظام
Icon[ar]=كالامارس
GenericName[ar]=مثبت النظام
Comment[ar]=كالامارس - مثبت النظام
Name[as]=চিছটেম ইনস্তল কৰক
Icon[as]=কেলামাৰেচ
GenericName[as]=চিছটেম ইনস্তলাৰ
Comment[as]=কেলামাৰেচ — চিছটেম​ ইনস্তলাৰ
Name[az]=Sistemi Quraşdırmaq
Icon[az]=calamares
GenericName[az]=Sistem Quraşdırıcısı
Comment[az]=Calamares Sistem Quraşdırıcısı
Name[be]=Усталяваць сістэму
Icon[be]=calamares
GenericName[be]=Усталёўшчык сістэмы
Comment[be]=Calamares — усталёўшчык сістэмы
Name[bg]=Инсталирай системата
Icon[bg]=calamares
GenericName[bg]=Системен Инсталатор
Comment[bg]=Calamares — Системен Инсталатор
Name[bn]=সিস্টেম ইনস্টল করুন
Icon[bn]=ক্যালামারেস
GenericName[bn]=সিস্টেম ইনস্টলার
Comment[bn]=ক্যালামারেস - সিস্টেম ইনস্টলার
Name[ca]=Instal·la el sistema
Icon[ca]=calamares
GenericName[ca]=Instal·lador de sistema
Comment[ca]=Calamares — Instal·lador de sistema
Name[da]=Installér system
Icon[da]=calamares
GenericName[da]=Systeminstallationsprogram
Comment[da]=Calamares — Systeminstallationsprogram
Name[de]=System installieren
Icon[de]=calamares
GenericName[de]=Installation des Betriebssystems
Comment[de]=Calamares - Installation des Betriebssystems
Name[el]=Εγκατάσταση συστήματος
Icon[el]=calamares
GenericName[el]=Εγκατάσταση συστήματος
Comment[el]=Calamares — Εγκατάσταση συστήματος
Name[en_GB]=Install System
Icon[en_GB]=calamares
GenericName[en_GB]=System Installer
Comment[en_GB]=Calamares — System Installer
Name[es]=Instalar Sistema
Icon[es]=calamares
GenericName[es]=Instalador del Sistema
Comment[es]=Calamares — Instalador del Sistema
Name[et]=Paigalda süsteem
Icon[et]=calamares
GenericName[et]=Süsteemipaigaldaja
Comment[et]=Calamares — süsteemipaigaldaja
Name[eu]=Sistema instalatu
Icon[eu]=calamares
GenericName[eu]=Sistema instalatzailea
Comment[eu]=Calamares - sistema instalatzailea
Name[fa]=نصب سامانه
Icon[fa]=کالامارس
GenericName[fa]=نصب‌کنندهٔ سامانه
Comment[fa]=کالامارس — نصب‌کنندهٔ سامانه
Name[es_PR]=Instalar el sistema
Name[fr]=Installer le système
Icon[fr]=calamares
GenericName[fr]=Installateur système
Comment[fr]=Calamares - Installateur système
Name[gl]=Instalación do Sistema
Icon[gl]=calamares
GenericName[gl]=Instalador de sistemas
Comment[gl]=Calamares — Instalador de sistemas
Name[he]=התקנת מערכת
Icon[he]=calamares
GenericName[he]=אשף התקנה
Comment[he]=Calamares - אשף התקנה
Name[hi]=सिस्टम इंस्टॉल करें
Icon[hi]=calamares
GenericName[hi]=सिस्टम इंस्टॉलर
Comment[hi]=Calamares — सिस्टम इंस्टॉलर
Name[hr]=Instaliraj sustav
Icon[hr]=calamares
GenericName[hr]=Instalacija sustava
Comment[hr]=Calamares — Instalacija sustava
Name[ie]=Installar li sistema
Icon[ie]=calamares
GenericName[ie]=Installator del sistema
Comment[ie]=Calamares — Installator del sistema
Name[hu]=Rendszer telepítése
Icon[hu]=calamares
GenericName[hu]=Rendszertelepítő
Comment[hu]=Calamares Rendszertelepítő
Name[id]=Instal Sistem
Icon[id]=calamares
GenericName[id]=Pemasang
Comment[id]=Calamares — Pemasang Sistem
Name[is]=Setja upp kerfið
Icon[is]=calamares
GenericName[is]=Kerfis uppsetning
Comment[is]=Calamares — Kerfis uppsetning
Name[cs_CZ]=Nainstalovat systém
Icon[cs_CZ]=calamares
GenericName[cs_CZ]=Instalátor systému
Comment[cs_CZ]=Calamares instalátor operačních systémů
Name[ja]=システムをインストール
Icon[ja]=calamares
GenericName[ja]=システムインストーラー
Comment[ja]=Calamares — システムインストーラー
Name[ko]=시스템 설치
Icon[ko]=깔라마레스
GenericName[ko]=시스템 설치 관리자
Comment[ko]=깔라마레스 — 시스템 설치 관리자
Name[lt]=Įdiegti Sistemą
Icon[lt]=calamares
GenericName[lt]=Sistemos diegimas į kompiuterį
Comment[lt]=Calamares — Sistemos diegimo programa
Name[it_IT]=Installa il sistema
Icon[it_IT]=calamares
GenericName[it_IT]=Programma d'installazione del sistema
Comment[it_IT]=Calamares — Programma d'installazione del sistema
Name[mk]=Инсталирај го системот
Icon[mk]=calamares
GenericName[mk]=Системен Инсталер
Comment[mk]=Calamares - Системен Инсталер
Name[ml]=സിസ്റ്റം ഇൻസ്റ്റാൾ ചെയ്യുക
Icon[ml]=കലാമാരേസ്
GenericName[ml]=സിസ്റ്റം ഇൻസ്റ്റാളർ
Comment[ml]=കലാമാരേസ് - സിസ്റ്റം ഇൻസ്റ്റാളർ
Name[nb]=Installer System
Icon[nb]=calamares
GenericName[nb]=Systeminstallatør
Comment[nb]=Calamares-systeminstallatør
Name[nl]=Installeer systeem
Icon[nl]=calamares
GenericName[nl]=Installatieprogramma
Comment[nl]=Calamares — Installatieprogramma
Name[az_AZ]=Sistemi quraşdırmaq
Icon[az_AZ]=calamares
GenericName[az_AZ]=Sistem quraşdırcısı
Comment[az_AZ]=Calamares — Sistem Quraşdırıcısı
Name[pl]=Zainstaluj system
Icon[pl]=calamares
GenericName[pl]=Instalator systemu
Comment[pl]=Calamares — Instalator systemu
Name[pt_BR]=Sistema de Instalação
Icon[pt_BR]=calamares
GenericName[pt_BR]=Instalador de Sistema
Comment[pt_BR]=Calamares — Instalador de Sistema
Name[ro]=Instalează sistemul
Icon[ro]=calamares
GenericName[ro]=Instalator de sistem
Comment[ro]=Calamares — Instalator de sistem
Name[ru]=Установить систему
Icon[ru]=calamares
GenericName[ru]=Установщик системы
Comment[ru]=Calamares - Установщик системы
Name[sk]=Inštalovať systém
Icon[sk]=calamares
GenericName[sk]=Inštalátor systému
Comment[sk]=Calamares — Inštalátor systému
Name[sl]=Namesti sistem
Name[sq]=Instalo Sistemin
Icon[sq]=calamares
GenericName[sq]=Instalues Sistemi
Comment[sq]=Calamares — Instalues Sistemi
Name[fi_FI]=Asenna Järjestelmä
Icon[fi_FI]=calamares
GenericName[fi_FI]=Järjestelmän Asennusohjelma
Comment[fi_FI]=Calamares — Järjestelmän Asentaja
Name[sr@latin]=Instaliraj sistem
Name[sr]=Инсталирај систем
Icon[sr]=calamares
GenericName[sr]=Инсталатер система
Comment[sr]=Каламарес — инсталатер система
Name[sv]=Installera system
Icon[sv]=calamares
GenericName[sv]=Systeminstallerare
Comment[sv]=Calamares — Systeminstallerare
Name[tg]=Насбкунии низом
Icon[tg]=calamares
GenericName[tg]=Насбкунандаи низомӣ
Comment[tg]=Calamares — Насбкунандаи низомӣ
Name[th]=ติดตั้งระบบ
Name[uk]=Встановити Систему
Icon[uk]=calamares
GenericName[uk]=Встановлювач системи
Comment[uk]=Calamares - Встановлювач системи
Name[zh_CN]=安装系统
Icon[zh_CN]=calamares
GenericName[zh_CN]=系统安装程序
Comment[zh_CN]=Calamares — 系统安装程序
Name[zh_TW]=安裝系統
Icon[zh_TW]=calamares
GenericName[zh_TW]=系統安裝程式
Comment[zh_TW]=Calamares ── 系統安裝程式
Name[ast]=Instalar el sistema
Icon[ast]=calamares
GenericName[ast]=Instalador del sistema
Comment[ast]=Calamares — Instalador del sistema
Name[eo]=Instali Sistemo
Icon[eo]=calamares
GenericName[eo]=Sistema Instalilo
Comment[eo]=Calamares — Sistema Instalilo
Name[ne_NP]= सिस्टम इन्स्टल गर्नुहोस्
Icon[ne_NP]=Calamares
GenericName[ne_NP]=सिस्टम इन्स्टलर
Comment[ne_NP]=Calamares - सिस्टम इन्स्टलर
Name[es_MX]=Instalar el Sistema
Icon[es_MX]=calamares
GenericName[es_MX]=Instalador del sistema
Comment[es_MX]=Calamares - Instalador del sistema
Name[pt_PT]=Instalar Sistema
Icon[pt_PT]=calamares
GenericName[pt_PT]=Instalador de Sistema
Comment[pt_PT]=Calamares - Instalador de Sistema
Name[tr_TR]=Sistemi Yükle
Icon[tr_TR]=calamares
GenericName[tr_TR]=Sistem Yükleyici
Comment[tr_TR]=Calamares — Sistem Yükleyici

15
calamares.desktop.in Normal file
View File

@@ -0,0 +1,15 @@
[Desktop Entry]
Type=Application
Version=1.0
Name=Install System
GenericName=System Installer
Keywords=calamares;system;installer;
TryExec=calamares
Exec=pkexec /usr/bin/calamares
Comment=Calamares — System Installer
Icon=calamares
Terminal=false
StartupNotify=true
Categories=Qt;System;
X-AppStream-Ignore=true

45
ci/AppImage.md Normal file
View File

@@ -0,0 +1,45 @@
# AppImage building for Calamares
> It is possible to build Calamares as an AppImage (perhaps other
> containerized formats as well). This might make sense for
> OEM phase-1 deployments in environments where Calamares is
> not using the native toolkit.
## AppImage tools
You will need
- [`linuxdeploy-x86_64.AppImage`](https://github.com/linuxdeploy/linuxdeploy/releases)
- [`linuxdeploy-plugin-qt-x86_64.AppImage`](https://github.com/linuxdeploy/linuxdeploy-plugin-qt/releases)
- [`linuxdeploy-plugin-conda.sh`](https://github.com/linuxdeploy/linuxdeploy-plugin-conda)
These tools should run -- they are bundled as AppImages after all -- on
any modern Linux system. The [AppImage packaging documentation](https://docs.appimage.org/packaging-guide/)
explains how the whole tooling works.
If the tools are not present, the build script (see below) will download them,
but you should save them for later.
## AppImage build
From the **source** directory, run `ci/AppImage.sh`:
- Use `--tools-dir` to copy the tools from a local cache rather than
downloading them again.
- Run it with `--cmake-args` for special CMake handling.
- Use `--skip-build` to avoid rebuilding Calamares all the time.
- Use `--config-dir` to copy in Calamares configuration files (e.g.
*settings.conf* and the module configuration files) from a given
directory.
The build process will:
- copy (or download) the AppImage tools into a fresh build directory
- configure and build Calamares with suitable settings
- modifies the standard `.desktop` file to be AppImage-compatible
- builds the image with the AppImage tools
## AppImage caveats
The resulting AppImage, `Calamares-x86_64.AppImage`, can be run as if it is
a regular Calamares executable. For internal reasons it always passes the
`-X` flag; any other command-line flags are passed in unchanged. Internally,
`XDG_*_DIRS` are used to get Calamares to find the resources inside the AppImage
rather than in the host system.

275
ci/AppImage.sh Executable file
View File

@@ -0,0 +1,275 @@
#! /bin/sh
#
# SPDX-License-Identifier: BSD-2-Clause
#
# Copyright 2019 Adriaan de Groot <groot@kde.org>
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions
# are met:
#
# 1. Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
# 2. Redistributions in binary form must reproduce the above copyright
# notice, this list of conditions and the following disclaimer in the
# documentation and/or other materials provided with the distribution.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
# POSSIBILITY OF SUCH DAMAGE.
#
### END LICENSES
### USAGE
#
# Shell script to help build an AppImage for Calamares.
#
# Usage:
# AppImage.sh [-T|--tools-dir <dir>]
# [-C|--cmake-args <args>]
# [-c|--config-dir <dir>]
# [-s|--skip-build]
# [-p|--with-python]
#
# Multiple --cmake-args arguments will be collected together and passed to
# CMake before building the application.
#
# Use --tools-dir to indicate where the linuxdeploy tools are located.
#
# Use --config to copy a config-directory (with settings.conf and others)
# into the resulting image,
#
# Option --skip-build assumes that there is an already-built Calamares
# available in the AppImage build directory; use this when you are, e.g.
# re-packaging the image with different configuration. Option --with-python
# adds the Conda Python packaging ecosystem to the AppImage, which will make
# it **more** portable by disconnecting from the system Python libraries.
#
# The build process for AppImage proceeds in a directory build-AppImage
# that is created in the current directory.
#
# The resulting AppImage has XDG_* enabled, and appends the in-image
# directories to the current environment. You can set XDG_* in the
# current environment to use other configurations and data, e.g. the
# data in the current live environment. Or leave it unset, to try
# Calamares with only the configuration contained in the AppImage.
#
### END USAGE
TOOLS_DIR="."
CMAKE_ARGS=""
DO_REBUILD="true"
DO_CONDA="false"
CONFIG_DIR=""
while test "$#" -gt 0
do
case "x$1" in
x--help|x-h)
sed -e '1,/USAGE/d' -e '/END.USAGE/,$d' < "$0"
return 0
;;
x--tools-dir|x-T)
TOOLS_DIR="$2"
shift
;;
x--cmake-args|x-C)
CMAKE_ARGS="$CMAKE_ARGS $2"
shift
;;
x--config-dir|x-c)
CONFIG_DIR="$2"
shift
;;
x--skip-build|x-s)
DO_REBUILD="false"
;;
x--with-python|x-p)
DO_CONDA="true"
;;
*)
echo "! Unknown argument '$1'."
exit 1
;;
esac
test "$#" -gt 0 || { echo "! Missing arguments."; exit 1; }
shift
done
### Check where we're running
#
BIN_DIR=$( cd $( dirname "$0" ) && pwd -P )
test -d "$BIN_DIR" || { echo "! Could not find BIN_DIR"; exit 1; }
test -f "$BIN_DIR/AppImage.sh" || { echo "! $BIN_DIR does not have AppImage.sh"; exit 1; }
SRC_DIR=$( cd "$BIN_DIR/.." && pwd -P )
test -d "$SRC_DIR" || { echo "! Could not find SRC_DIR"; exit 1; }
test -d "$SRC_DIR/ci" || { echo "! $SRC_DIR isn't a top-level Calamares checkout"; exit 1; }
test -f "$SRC_DIR/CMakeLists.txt" || { echo "! SRC_DIR is missing CMakeLists.txt"; exit 1; }
### Check pre-requisites
#
BUILD_DIR=build-AppImage
test -d "$BUILD_DIR" || mkdir -p "$BUILD_DIR"
test -d "$BUILD_DIR" || { echo "! Could not create $BUILD_DIR"; exit 1; }
TOOLS_LIST="linuxdeploy-x86_64.AppImage linuxdeploy-plugin-qt-x86_64.AppImage"
$DO_CONDA && TOOLS_LIST="$TOOLS_LIST linuxdeploy-plugin-conda.sh"
for tool in $TOOLS_LIST
do
if test -x "$BUILD_DIR/$tool" ; then
# This tool is ok
:
else
if test -f "$TOOLS_DIR/$tool" ; then
cp "$TOOLS_DIR/$tool" "$BUILD_DIR/$tool" || exit 1
else
fetch=$( grep "^# URL .*$tool\$" "$0" | sed 's/# URL *//' )
curl -L -o "$BUILD_DIR/$tool" "$fetch"
fi
chmod +x "$BUILD_DIR/$tool"
test -x "$BUILD_DIR/$tool" || { echo "! Missing tool $tool in tools-dir $TOOLS_DIR"; exit 1; }
fi
done
if test -n "$CONFIG_DIR" ; then
test -f "$CONFIG_DIR/settings.conf" || { echo "! No settings.conf in $CONFIG_DIR"; exit 1; }
fi
### Clean up build-directory
#
rm -rf "$BUILD_DIR/AppDir"
if $DO_REBUILD ; then
rm -rf "$BUILD_DIR/build"
mkdir "$BUILD_DIR/build" || { echo "! Could not create $BUILD_DIR/build for the cmake-build."; exit 1; }
else
test -d "$BUILD_DIR/build" || { echo "! No build found in $BUILD_DIR, but --skip-build is given."; exit 1; }
test -x "$BUILD_DIR/build/calamares" || { echo "! No complete build found in $BUILD_DIR/build ."; exit 1; }
fi
mkdir "$BUILD_DIR/AppDir" || { echo "! Could not create $BUILD_DIR/AppDir for the AppImage install."; exit 1; }
LOG_FILE="$BUILD_DIR/AppImage.log"
rm -f "$LOG_FILE"
{ echo "# Calamares build started" `date` ; echo "# .. build directory $BUILD_DIR"; echo "# .. log file $LOG_FILE"; } > "$LOG_FILE"
cat "$LOG_FILE"
### Python Support
#
#
if $DO_CONDA ; then
export CONDA_CHANNELS="conda-forge;anaconda"
export CONDA_PACKAGES="gettext;py-boost"
(
cd "$BUILD_DIR" &&
./linuxdeploy-x86_64.AppImage --appdir=AppDir/ --plugin=conda
)
. "$BUILD_DIR/AppDir/usr/conda/bin/activate"
fi
### Build Calamares
#
if $DO_REBUILD ; then
echo "# Running cmake ..."
(
cd "$BUILD_DIR/build" &&
cmake "$SRC_DIR" -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_INSTALL_LIBDIR=lib $CMAKE_ARGS
) >> "$LOG_FILE" 2>&1 || { tail -10 "$LOG_FILE" ; echo "! Could not run CMake"; exit 1; }
echo "# Running make ..."
(
cd "$BUILD_DIR/build" &&
make -j4
) >> "$LOG_FILE" 2>&1 || { tail -10 "$LOG_FILE" ; echo "! Could not run make"; exit 1; }
fi
echo "# Running make install ..."
(
cd "$BUILD_DIR/build" &&
make install DESTDIR=../AppDir
) >> "$LOG_FILE" 2>&1 || { tail -10 "$LOG_FILE" ; echo "! Could not run make install"; exit 1; }
### Modify installation
#
IMAGE_DIR="$BUILD_DIR/AppDir"
# Munge the desktop file to not use absolute paths or pkexec
sed -i \
-e 's+^Exec=.*+Exec=calamares+' \
-e 's+^Name=.*+Name=Calamares+' \
"$IMAGE_DIR"/usr/share/applications/calamares.desktop
# Replace the executable with a shell-proxy
test -x "$IMAGE_DIR/usr/bin/calamares" || { echo "! Does not seem to have installed calamares"; exit 1; }
mv "$IMAGE_DIR/usr/bin/calamares" "$IMAGE_DIR/usr/bin/calamares.bin"
cat > "$IMAGE_DIR/usr/bin/calamares" <<"EOF"
#! /bin/sh
#
# Calamares proxy-script. Runs Calamares with XDG support enabled,
# and in-image XDG dirs set up so that compiled-in configuration can be used.
test -n "${XDG_DATA_DIRS}" && XDG_DATA_DIRS="${XDG_DATA_DIRS}:"
test -n "${XDG_CONFIG_DIRS}" $$ XDG_CONFIG_DIRS="${XDG_CONFIG_DIRS}:"
export XDG_DATA_DIRS="${XDG_DATA_DIRS}${APPDIR}/usr/share/"
export XDG_CONFIG_DIRS="${XDG_CONFIG_DIRS}${APPDIR}/etc/:${APPDIR}/usr/share/"
export PYTHONPATH="${APPDIR}/usr/lib:"
cd "$APPDIR"
exec "$APPDIR"/usr/bin/calamares.bin -X "$@"
EOF
chmod 755 "$IMAGE_DIR/usr/bin/calamares"
test -x "$IMAGE_DIR/usr/bin/calamares" || { echo "! Does not seem to have proxy for calamares"; exit 1; }
### Install additional files
#
PLUGIN_DIR=$( qmake -query QT_INSTALL_PLUGINS )
for plugin in \
libpmsfdiskbackendplugin.so \
libpmdummybackendplugin.so \
libpmlibpartedbackendplugin.so
do
# Warning, but not fatal: generally you only have two out of three available
# depending on the KPMCore version.
cp "$PLUGIN_DIR/$plugin" "$IMAGE_DIR/usr/lib" 2> /dev/null || { echo "! Could not copy KPMCore plugin $plugin"; }
done
# Install configuration files
ETC_DIR="$IMAGE_DIR"/etc/calamares
mkdir -p "$ETC_DIR"
test -d "$ETC_DIR" || { echo "! Could not create /etc/calamares in image."; exit 1; }
if test -z "$CONFIG_DIR" ; then
echo "# Using basic settings.conf"
cp "$SRC_DIR/settings.conf" "$ETC_DIR"
else
test -f "$CONFIG_DIR/settings.conf" || { echo "! No settings.conf in $CONFIG_DIR"; exit 1; }
mkdir -p "$ETC_DIR/modules"
cp "$CONFIG_DIR/settings.conf" "$ETC_DIR"
test -d "$CONFIG_DIR/modules" && cp -r "$CONFIG_DIR/modules" "$ETC_DIR"
test -d "$CONFIG_DIR/branding" && cp -r "$CONFIG_DIR/branding" "$IMAGE_DIR/usr/share/calamares"
fi
### Build the AppImage
#
#
echo "# Building AppImage"
(
export QT_SELECT=qt5 # Otherwise might pick Qt4 in image
export LD_LIBRARY_PATH=AppDir/usr/lib # RPATH isn't set in the executable
cd "$BUILD_DIR" &&
./linuxdeploy-x86_64.AppImage --appdir=AppDir/ --plugin=qt --output=appimage
) >> "$LOG_FILE" 2>&1 || { tail -10 "$LOG_FILE" ; echo "! Could not create image"; exit 1; }
echo "# Created in $BUILD_DIR/Calamares-x86_64.AppImage"
echo "# .. log file at $LOG_FILE"
exit 0
### Database for installation
#
# URL https://github.com/linuxdeploy/linuxdeploy/releases/download/continuous/linuxdeploy-x86_64.AppImage
# URL https://github.com/linuxdeploy/linuxdeploy-plugin-qt/releases/download/continuous/linuxdeploy-plugin-qt-x86_64.AppImage
# URL https://raw.githubusercontent.com/TheAssassin/linuxdeploy-plugin-conda/master/linuxdeploy-plugin-conda.sh

1
ci/HACKING.md Normal file
View File

@@ -0,0 +1 @@
This has moved [to the wiki](https://github.com/calamares/calamares/wiki/Develop-Code).

125
ci/RELEASE.md Normal file
View File

@@ -0,0 +1,125 @@
# Calamares Release Process
> Calamares releases are now rolling when-they-are-ready releases.
> Releases are made from *calamares* and tagged there. When, in future,
> LTS releases resume, these steps may be edited again.
>
> Most things are automated through the release script [RELEASE.sh](RELEASE.sh)
## (1) Preparation
* Make sure all tests pass.
```
make
make test
```
Note that *all* means all-that-make-sense. The partition-manager tests need
an additional environment variable to be set for some tests, which will
destroy an attached disk. This is not always desirable. There are some
sample config-files that are empty and which fail the config-tests.
* Pull latest translations from Transifex. We only push / pull translations
from master, so longer-lived branches (e.g. 3.1.x) don't get translation
updates. This is to keep the translation workflow simple. The script
automatically commits changes to the translations.
```
sh ci/txpull.sh
```
* Update the list of enabled translation languages in `CMakeLists.txt`.
Check the [translation site][transifex] for the list of languages with
fairly complete translations, or use `ci/txstats.py` for an automated
suggestion. If there are changes, commit them.
* Push the changes.
* Check defaults in `settings.conf` and other configuration files.
* Drop the RC variable to 0 in `CMakeLists.txt`, *CALAMARES_VERSION_RC*.
* Edit `CHANGES` and set the date of the release.
* Commit both. This is usually done with commit-message
*Changes: pre-release housekeeping*.
## (2) Release Day
* Run the helper script `ci/RELEASE.sh` or follow steps below.
The script checks:
- for uncommitted local changes,
- if translations are up-to-date and translators
have had enough time to chase new strings,
- that the build is successful (with gcc and clang, if available),
- tests pass,
- tarball can be created,
- tarball can be signed.
On success, it prints out a suitable signature- and SHA256 blurb
for use in the release announcement.
## (3) Release
Follow the instructions printed by the release script.
* Push the tags.
* Create a new release on GitHub.
* Upload tarball and signature.
* Publish release article on `calamares.io`.
* Close associated milestone on GitHub if it's entirely done.
* Update topic on #calamares IRC channel.
## (4) Post-Release
* Bump the version number in `CMakeLists.txt` in the `project()` command.
* Set *CALAMARES_VERSION_RC* back to 1.
* Add a placeholder entry for the next release in `CHANGES` with date
text *not released yet*.
* Commit and push that, usually with the message
*Changes: post-release housekeeping*.
```
# 3.2.XX (unreleased) #
This release contains contributions from (alphabetically by first name):
- No external contributors yet
## Core ##
- No core changes yet
## Modules ##
- No module changes yet
```
# Related Material
> This section isn't directly related to any specific release,
> but bears on all releases.
## GPG Key Maintainence
Calamares uses GPG Keys for signing the tarballs and some commits
(tags, mostly). Calamares uses the **maintainer's** personal GPG
key for this. This section details some GPG activities that the
maintainer should do with those keys.
- Signing sub-key. It's convenient to use a signing sub-key specifically
for the signing of Calamares. To do so, add a key to the private key.
It's recommended to use key expiry, and to update signing keys periodically.
- Run `gpg -K` to find the key ID of your personal GPG secret key.
- Run `gpg --edit-key <keyid>` to edit that personal GPG key.
- In gpg edit-mode, use `addkey`, then pick a key type that is *sign-only*
(e.g. type 4, *RSA (sign only)*), then pick a keysize (3072 seems ok
as of 2020) and set a key expiry time, (e.g. in 18 months time).
- After generation, the secret key information is printed again, now
including the new signing subkey:
```
ssb rsa3072/0xCFDDC96F12B1915C
created: 2020-07-11 expires: 2022-01-02 usage: S
```
- Update the `RELEASE.sh` script with a new signing sub-key ID when a new
one is generated. Also announce the change of signing sub-key (e.g. on
the Calmares site or as part of a release announcement).
- Send the updated key to keyservers with `gpg --send-keys <keyid>`
- Optional: sanitize the keyring for use in development machines.
Export the current subkeys of the master key and keep **only** those
secret keys around. There is documentation
[here](https://blog.tinned-software.net/create-gnupg-key-with-sub-keys-to-sign-encrypt-authenticate/)
but be careful.
- Export the public key material with `gpg --export --armor <keyid>`,
possibly also setting an output file.
- Upload that public key to the relevant GitHub profile.
- Upload that public key to the Calamares site.

161
ci/RELEASE.sh Executable file
View File

@@ -0,0 +1,161 @@
#! /bin/sh
#
### USAGE
#
# Release script for Calamares
#
# This attempts to perform the different steps of the RELEASE.md
# document automatically. It's not tested on other machines or
# setups other than [ade]'s development VM.
#
# Assumes that the version in CMakeLists.txt has been bumped,
# and that a release of that version is desired.
#
# None of the "update stuff" is done by this script; in preparation
# for the release, you should have already done:
# * updating the version
# * pulling translations
# * updating the language list
# * switching to the right branch
# The release can fail for various reasons: doesn't build, tests fail,
# or the string freeze has been violated.
#
# You can influence the script a little with these options:
# * `-B` do not build (before tagging)
# * `-P` do not package (tag, sign, tarball)
# * `-T` do not respect string freeze
#
# The build / package settings can be influenced via environment variables:
# * BUILD_DEFAULT set to `false` to avoid first build with gcc
# * BUILD_CLANG set to `false` to avoid second build with clang
# * BUILD_ONLY set to `true` to break after building
#
### END USAGE
test -d .git || { echo "Not at top-level." ; exit 1 ; }
test -d src/modules || { echo "No src/modules." ; exit 1 ; }
which cmake > /dev/null 2>&1 || { echo "No cmake(1) available." ; exit 1 ; }
test -z "$BUILD_DEFAULT" && BUILD_DEFAULT=true
test -z "$BUILD_CLANG" && BUILD_CLANG=true
test -z "$BUILD_ONLY" && BUILD_ONLY=false
STRING_FREEZE=true
while getopts "hBPT" opt ; do
case "$opt" in
h|\?)
sed -e '1,/USAGE/d' -e '/END.USAGE/,$d' < "$0"
return 0
;;
B)
BUILD_DEFAULT=false
BUILD_CLANG=false
;;
P)
BUILD_ONLY=true
;;
T)
STRING_FREEZE=false
;;
esac
done
if $STRING_FREEZE ; then
sh ci/txcheck.sh || { echo "! String freeze failed." ; exit 1 ; }
fi
### Setup
#
#
BUILDDIR=$(mktemp -d --suffix=-build --tmpdir=.)
### Build with default compiler
#
#
if test "x$BUILD_DEFAULT" = "xtrue" ; then
rm -rf "$BUILDDIR"
mkdir "$BUILDDIR" || { echo "Could not create build directory." ; exit 1 ; }
( cd "$BUILDDIR" && cmake .. && make -j4 ) || { echo "Could not perform test-build in $BUILDDIR." ; exit 1 ; }
( cd "$BUILDDIR" && make test ) || { echo "Tests failed in $BUILDDIR ." ; exit 1 ; }
fi
### Build with clang
#
#
if test "x$BUILD_CLANG" = "xtrue" ; then
if which clang++ > /dev/null 2>&1 ; then
# Do build again with clang
rm -rf "$BUILDDIR"
mkdir "$BUILDDIR" || { echo "Could not create build directory." ; exit 1 ; }
( cd "$BUILDDIR" && CC=clang CXX=clang++ cmake .. && make -j4 ) || { echo "Could not perform test-build in $BUILDDIR." ; exit 1 ; }
( cd "$BUILDDIR" && make test ) || { echo "Tests failed in $BUILDDIR (clang)." ; exit 1 ; }
fi
fi
if test "x$BUILD_ONLY" = "xtrue" ; then
echo "Builds completed, release stopped. Build remains in $BUILDDIR ."
exit 1
fi
if test -f "$BUILDDIR/CMakeCache.txt" ; then
# Some build has created it, so that's good
:
else
# Presumably -B was given; just do the cmake part
rm -rf "$BUILDDIR"
mkdir "$BUILDDIR" || { echo "Could not create build directory." ; exit 1 ; }
( cd "$BUILDDIR" && cmake .. ) || { echo "Could not run cmake in $BUILDDIR ." ; exit 1 ; }
fi
### Get version number for this release
#
#
V=$( cd "$BUILDDIR" && make show-version | grep ^CALAMARES_VERSION | sed s/^[A-Z_]*=// )
test -n "$V" || { echo "Could not obtain version in $BUILDDIR ." ; exit 1 ; }
### Create signed tag
#
# This is the signing key ID associated with the GitHub account adriaandegroot,
# which is used to create all "verified" tags in the Calamares repo.
KEY_ID="CFDDC96F12B1915C"
git tag -u "$KEY_ID" -m "Release v$V" "v$V" || { echo "Could not sign tag v$V." ; exit 1 ; }
### Create the tarball
#
#
TAR_V="calamares-$V"
TAR_FILE="$TAR_V.tar.gz"
git archive -o "$TAR_FILE" --prefix "$TAR_V/" "v$V" || { echo "Could not create tarball." ; exit 1 ; }
test -f "$TAR_FILE" || { echo "Tarball was not created." ; exit 1 ; }
SHA256=$(sha256sum "$TAR_FILE" | cut -d" " -f1)
### Build the tarball
#
#
D=$(date +%Y%m%d-%H%M%S)
TMPDIR=$(mktemp -d --suffix="-calamares-$D")
test -d "$TMPDIR" || { echo "Could not create tarball-build directory." ; exit 1 ; }
tar xzf "$TAR_FILE" -C "$TMPDIR" || { echo "Could not unpack tarball." ; exit 1 ; }
test -d "$TMPDIR/$TAR_V" || { echo "Tarball did not contain source directory." ; exit 1 ; }
( cd "$TMPDIR/$TAR_V" && cmake . && make -j4 && make test ) || { echo "Tarball build failed in $TMPDIR ." ; exit 1 ; }
### Cleanup
#
rm -rf "$BUILDDIR" # From test-builds
rm -rf "$TMPDIR" # From tarball
### Print subsequent instructions
#
#
cat <<EOF
# Next steps for this release:
git push origin v$V
gpg -s -u $KEY_ID --detach --armor $TAR_FILE # Sign the tarball
# Upload tarball $TAR_FILE and the signature $TAR_FILE.asc
# Announce via https://github.com/calamares/calamares/releases/new
# SHA256: $SHA256
EOF
exit 0

View File

@@ -5,7 +5,7 @@ indent=spaces=4
# Brackets
style=break
remove-brackets # Remove brackets on single-line `if` and `for` (requires astyle 2.04)
add-brackets
# Spaces
pad-paren-in

View File

@@ -1,19 +0,0 @@
#!/bin/bash
rm -Rf "$WORKSPACE/prefix"
mkdir "$WORKSPACE/prefix"
git clone git://anongit.kde.org/kpmcore "$WORKSPACE/kpmcore"
cd "$WORKSPACE/kpmcore"
mkdir "$WORKSPACE/kpmcore/build"
cd "$WORKSPACE/kpmcore/build"
cmake -DCMAKE_BUILD_TYPE=Debug -DCMAKE_INSTALL_PREFIX=/usr ..
nice -n 18 make -j2
make DESTDIR="$WORKSPACE/prefix" install
rm -Rf "$WORKSPACE/build"
mkdir "$WORKSPACE/build"
cd "$WORKSPACE/build"
CMAKE_PREFIX_PATH="$WORKSPACE/prefix/usr" cmake -DCMAKE_BUILD_TYPE=Debug -DCMAKE_INSTALL_PREFIX=/usr -DWEBVIEW_FORCE_WEBKIT=1 ..
nice -n 18 make -j2

View File

@@ -1,44 +0,0 @@
#!/bin/bash
# Make sure we can make git operations from the Calamares Docker+Jenkins environment.
cp ~/jenkins-master/.gitconfig ~
cp -R ~/jenkins-master/.ssh ~
cd "$WORKSPACE"
git config --global http.sslVerify false
rm -Rf "$WORKSPACE/prefix"
mkdir "$WORKSPACE/prefix"
git clone git://anongit.kde.org/kpmcore "$WORKSPACE/kpmcore"
cd "$WORKSPACE/kpmcore"
mkdir "$WORKSPACE/kpmcore/build"
cd "$WORKSPACE/kpmcore/build"
cmake -DCMAKE_BUILD_TYPE=Debug -DCMAKE_INSTALL_PREFIX=/usr ..
nice -n 18 make -j2
make DESTDIR="$WORKSPACE/prefix" install
cd "$WORKSPACE"
wget https://scan.coverity.com/download/linux-64 --no-check-certificate \
--post-data "token=ll90T04noQ4cORJx_zczKA&project=calamares%2Fcalamares" \
-O coverity_tool.tgz
mkdir "$WORKSPACE/coveritytool"
tar xvf coverity_tool.tgz -C "$WORKSPACE/coveritytool" --strip-components 1
export PATH="$WORKSPACE/coveritytool/bin:$PATH"
rm -Rf "$WORKSPACE/build"
mkdir "$WORKSPACE/build"
cd "$WORKSPACE/build"
CMAKE_PREFIX_PATH="$WORKSPACE/prefix/usr" cmake -DCMAKE_BUILD_TYPE=Debug -DCMAKE_INSTALL_PREFIX=/usr -DWEBVIEW_FORCE_WEBKIT=1 ..
nice -n 18 cov-build --dir cov-int make -j2
tar caf calamares-ci.tar.xz cov-int
curl -k --form token=ll90T04noQ4cORJx_zczKA \
--form email=teo@kde.org \
--form file=@calamares-ci.tar.xz \
--form version="master-`date -u +%Y%m%d`" \
--form description="master on `date -u`" \
https://scan.coverity.com/builds?project=calamares%2Fcalamares

56
ci/calamaresstyle Executable file
View File

@@ -0,0 +1,56 @@
#!/bin/sh
#
# Calls astyle with settings matching Calamares coding style
# Requires astyle >= 2.04 and clang-format-7
#
# You can pass in directory names, in which case the files
# in that directory (NOT below it) are processed.
#
LANG=C
LC_ALL=C
LC_NUMERIC=C
export LANG LC_ALL LC_NUMERIC
AS=$( which astyle )
CF_VERSIONS="clang-format-7 clang-format-8 clang-format70 clang-format80 clang-format-9.0.1 clang-format"
for _cf in $CF_VERSIONS
do
# Not an error if this particular clang-format isn't found
CF=$( which $_cf 2> /dev/null || true )
test -n "$CF" && break
done
test -n "$AS" || { echo "! No astyle found in PATH"; exit 1 ; }
test -n "$CF" || { echo "! No clang-format ($CF_VERSIONS) found in PATH"; exit 1 ; }
test -x "$AS" || { echo "! $AS is not executable."; exit 1 ; }
test -x "$CF" || { echo "! $CF is not executable."; exit 1 ; }
expr `"$CF" --version | tr -dc '[^.0-9]' | cut -d . -f 1` '<' 10 > /dev/null || { echo "! $CF is version 10 or later, needs different .clang-format" ; exit 1 ; }
set -e
any_dirs=no
for d in "$@"
do
test -d "$d" && any_dirs=yes
done
style_some()
{
$AS --options=$(dirname $0)/astylerc --quiet "$@"
$CF -i -style=file "$@"
}
if test "x$any_dirs" = "xyes" ; then
for d in "$@"
do
if test -d "$d" ; then
style_some $( find "$d" -maxdepth 1 -type f -name '*.cpp' -o -name '*.h' )
else
style_some "$d"
fi
done
else
style_some "$@"
fi

128
ci/configvalidator.py Normal file
View File

@@ -0,0 +1,128 @@
#! /usr/bin/env python3
#
# SPDX-FileCopyrightText: 2020 Adriaan de Groot <groot@kde.org>
# SPDX-License-Identifier: BSD-2-Clause
# License-Filename: LICENSES/BSD2
#
usage = """
Validates a Calamares config file -- YAML syntax -- against a schema.
The schema is also written in YAML syntax, but the schema itself
is JSON-schema. This is possible because all JSON is YAML, and most
YAML is JSON. The limited subset of YAML that Calamares uses is
JSON-representable, anyway.
Usage:
configvalidator.py <schema> <file> ...
configvalidator.py -x
Exits with value 0 on success, otherwise:
1 on missing dependencies
2 on invalid command-line arguments
3 on missing files
4 if files have invalid syntax
5 if files fail to validate
Use -x as only command-line argument to check the imports only.
"""
# The schemata originally lived outside the Calamares repository,
# without documented tooling. By putting them in the repository
# with the example files and explicit tooling, there's a better
# chance of them catching problems and acting as documentation.
dependencies = """
Dependencies for this tool are: py-yaml and py-jsonschema.
https://pyyaml.org/
https://github.com/Julian/jsonschema
Simple installation is `pip install pyyaml jsonschema`
"""
ERR_IMPORT, ERR_USAGE, ERR_FILE_NOT_FOUND, ERR_SYNTAX, ERR_INVALID = range(1,6)
### DEPENDENCIES
#
#
try:
from jsonschema import validate, SchemaError, ValidationError
from yaml import safe_load, YAMLError
except ImportError as e:
print(e)
print(dependencies)
exit(ERR_IMPORT)
from os.path import exists
import sys
### INPUT VALIDATION
#
#
if len(sys.argv) < 3:
# Special-case: called with -x to just test the imports
if len(sys.argv) == 2 and sys.argv[1] == "-x":
exit(0)
print(usage)
exit(ERR_USAGE)
schema_file_name = sys.argv[1]
config_file_names = sys.argv[2:]
if not exists(schema_file_name):
print(usage)
print("\nSchema file '{}' does not exist.".format(schema_file_name))
exit(ERR_FILE_NOT_FOUND)
for f in config_file_names:
if not exists(f):
print(usage)
print("\nYAML file '{}' does not exist.".format(f))
exit(ERR_FILE_NOT_FOUND)
### FILES SYNTAX CHECK
#
#
with open(schema_file_name, "r") as data:
try:
schema = safe_load(data)
except YAMLError as e:
print("Schema error: {} {}.".format(e.problem, e.problem_mark))
print("\nSchema file '{}' is invalid YAML.".format(schema_file_name))
exit(ERR_SYNTAX)
try:
validate(instance={}, schema=schema)
# While developing the schemata, get full exceptions from schema failure
except SchemaError as e:
print(e)
print("\nSchema file '{}' is invalid JSON-Schema.".format(schema_file_name))
exit(ERR_INVALID)
except ValidationError:
# Just means that empty isn't valid, but the Schema itself is
pass
configs = []
for f in config_file_names:
config = None
with open(f, "r") as data:
try:
config = safe_load(data)
except YAMLError as e:
print("YAML error: {} {}.".format(e.problem, e.problem_mark))
print("\nYAML file '{}' is invalid.".format(f))
exit(ERR_SYNTAX)
if config is None:
print("YAML file '{}' is empty.".format(f))
configs.append(config)
assert len(configs) == len(config_file_names), "Not all configurations loaded."
### SCHEMA VALIDATION
#
#
for c, f in zip(configs, config_file_names):
try:
validate(instance=c, schema=schema)
except ValidationError as e:
print(e)
print("\nConfig file '{}' does not validate in schema.".format(f))
exit(ERR_INVALID)

6
ci/coverity-model.c Normal file
View File

@@ -0,0 +1,6 @@
/* Model file for Coverity checker.
See https://scan.coverity.com/tune
Calamares doesn't seem to geenerate any false positives,
so the model-file is empty.
*/

View File

@@ -1,30 +0,0 @@
#!/bin/bash
#Hack for Coverity build, so the compiler doesn't complain about InheritanceChecker
sudo cp ~/jenkins-master/kpluginfactory.h /usr/include/KF5/KCoreAddons
cd "$WORKSPACE"
wget https://scan.coverity.com/download/linux-64 --no-check-certificate \
--post-data "token=cyOjQZx5EOFLdhfo7ZDa4Q&project=KDE+Partition+Manager+Core+Library+-+KPMcore" \
-O coverity_tool.tgz
mkdir "$WORKSPACE/coveritytool"
tar xvf coverity_tool.tgz -C "$WORKSPACE/coveritytool" --strip-components 1
export PATH="$WORKSPACE/coveritytool/bin:$PATH"
rm -Rf "$WORKSPACE/build"
mkdir "$WORKSPACE/build"
cd "$WORKSPACE/build"
cmake -DCMAKE_BUILD_TYPE=Debug -DCMAKE_INSTALL_PREFIX=/usr ..
nice -n 18 cov-build --dir cov-int make -j2
tar cavf kpmcore-ci.tar.xz cov-int
cat cov-int/build-log.txt
curl -k --form token=cyOjQZx5EOFLdhfo7ZDa4Q \
--form email=teo@kde.org \
--form file=@kpmcore-ci.tar.xz \
--form version="master-`date -u +%Y%m%d`" \
--form description="master on `date -u`" \
https://scan.coverity.com/builds?project=KDE+Partition+Manager+Core+Library+-+KPMcore

13
ci/travis-config.sh Normal file
View File

@@ -0,0 +1,13 @@
# Build configuration on Travis.
#
# Defines a CMAKE_ARGS variable for use with cmake
#
# This file is sourced by travis.sh, and exports the variables
# to the environment.
CMAKE_ARGS="\
-DCMAKE_BUILD_TYPE=Release \
-DWEBVIEW_FORCE_WEBKIT=1 \
-DKDE_INSTALL_USE_QT_SYS_PATHS=ON \
-DWITH_PYTHONQT=OFF"
export CMAKE_ARGS

55
ci/travis-continuous.sh Executable file
View File

@@ -0,0 +1,55 @@
#! /bin/sh
#
# Travis CI script for use on every-commit:
# - build and install Calamares
#
test -n "$BUILDDIR" || { echo "! \$BUILDDIR not set" ; exit 1 ; }
test -n "$SRCDIR" || { echo "! \$SRCDIR not set" ; exit 1 ; }
test -d $BUILDDIR || { echo "! $BUILDDIR not a directory" ; exit 1 ; }
test -d $SRCDIR || { echo "! $SRCDIR not a directory" ; exit 1 ; }
test -f $SRCDIR/CMakeLists.txt || { echo "! Missing $SRCDIR/CMakeLists.txt" ; exit 1 ; }
cd $BUILDDIR || exit 1
section() {
echo "###"
echo "### $1"
echo "###"
pwd -P
df -h
}
section "cmake $CMAKE_ARGS $SRCDIR"
cmake $CMAKE_ARGS $SRCDIR || { echo "! CMake failed" ; exit 1 ; }
section "make"
make -j2 VERBOSE=1 || { echo "! Make recheck" ; pwd -P ; df -h ; make -j1 VERBOSE=1 ; echo "! Make failed" ; exit 1 ; }
section "make install"
install_debugging() {
ls -la $( find "$1" -type f -name '*.so' )
}
echo "# Build results"
install_debugging "$BUILDDIR"
echo "# Install"
DESTDIR=/build/INSTALL_ROOT
mkdir -p "$DESTDIR"
if make install VERBOSE=1 DESTDIR="$DESTDIR" ;
then
echo "# .. install OK"
result=true
else
echo "# .. install failed"
result=false
fi
section "Install results"
install_debugging "$DESTDIR"
$result || { echo "! Install failed" ; exit 1 ; } # Result of make install, above

34
ci/travis-coverity.sh Executable file
View File

@@ -0,0 +1,34 @@
#! /bin/sh
#
# Travis CI script for weekly (cron) use:
# - use the coverity tool to build and and upload results
#
test -n "$COVERITY_SCAN_TOKEN" || { echo "! Missing Coverity token" ; exit 1 ; }
test -n "$BUILDDIR" || { echo "! \$BUILDDIR not set" ; exit 1 ; }
test -n "$SRCDIR" || { echo "! \$SRCDIR not set" ; exit 1 ; }
test -d $BUILDDIR || { echo "! $BUILDDIR not a directory" ; exit 1 ; }
test -d $SRCDIR || { echo "! $SRCDIR not a directory" ; exit 1 ; }
test -f $SRCDIR/CMakeLists.txt || { echo "! Missing $SRCDIR/CMakeLists.txt" ; exit 1 ; }
cd $BUILDDIR || exit 1
curl -k -o coverity_tool.tar.gz \
-d "token=$COVERITY_SCAN_TOKEN&project=calamares%2Fcalamares" \
https://scan.coverity.com/download/cxx/linux64 || exit 1
mkdir "$BUILDDIR/coveritytool"
tar xvf coverity_tool.tar.gz -C "$BUILDDIR/coveritytool" --strip-components 2
export PATH="$BUILDDIR/coveritytool/bin:$PATH"
echo "# cmake -DCMAKE_BUILD_TYPE=Debug $CMAKE_ARGS $SRCDIR"
cmake -DCMAKE_BUILD_TYPE=Debug $CMAKE_ARGS $SRCDIR || exit 1
cov-build --dir cov-int make -j2
tar caf calamares-ci.tar.xz cov-int
curl -k --form token=$COVERITY_SCAN_TOKEN \
--form email=groot@kde.org \
--form file=@calamares-ci.tar.xz \
--form version="calamares-`date -u +%Y%m%d`" \
--form description="calamares on `date -u`" \
https://scan.coverity.com/builds?project=calamares%2Fcalamares

21
ci/travis.sh Executable file
View File

@@ -0,0 +1,21 @@
#! /bin/sh
#
# Travis build driver script:
# - the regular CI runs, triggered by commits, run a script that builds
# and installs calamares, and then runs the tests.
# - the cronjob CI runs, triggered weekly, run a script that uses the
# coverity tools to submit a build. This is slightly more resource-
# intensive than the coverity add-on, but works on master.
#
D=`dirname "$0"`
test -d "$D" || { echo "! No directory $D" ; exit 1 ; }
test -x "$D/travis-continuous.sh" || { echo "! Missing -continuous" ; exit 1 ; }
test -x "$D/travis-coverity.sh" || { echo "! Missing -coverity" ; exit 1 ; }
test -f "$D/travis-config.sh" && . "$D/travis-config.sh"
if test "$TRAVIS_EVENT_TYPE" = "cron" ; then
exec "$D/travis-coverity.sh"
else
exec "$D/travis-continuous.sh"
fi

155
ci/txcheck.sh Normal file
View File

@@ -0,0 +1,155 @@
#! /bin/sh
### LICENSE
# === This file is part of Calamares - <https://github.com/calamares> ===
#
# SPDX-License-Identifier: BSD-2-Clause
# SPDX-FileCopyrightText: 2019-2020 Adriaan de Groot <groot@kde.org>
#
# This file is Free Software: you can redistribute it and/or modify
# it under the terms of the 2-clause BSD License.
#
### END LICENSE
### USAGE
#
# Does the translation tag (from a previous txpush) exist?
# This assumes that the release host has also locally done
# a translations push, which works for the current development
# workflow .. but it could be improved by looking for one of
# the typical txpush log messages instead of the tag.
#
# Use --cleanup as an argument to clean things up.
#
# Normal use:
# $ sh ci/txcheck.sh
# If there are differences, fix them and then clean up:
# $ sh ci/txcheck.sh --cleanup
#
### END USAGE
# The files that are translated; should match the contents of .tx/config
TX_FILE_LIST="lang/calamares_en.ts lang/python.pot calamares.desktop"
### COMMAND ARGUMENTS
#
# We need to define tx_cleanup for the --cleanup argument, although it's
# normally used much later in the script.
tx_cleanup()
{
# Cleanup artifacs of checking
git worktree remove --force build-txcheck-head
git worktree remove --force build-txcheck-prev
git branch -D build-txcheck-head > /dev/null 2>&1
}
if test "x$1" = "x--cleanup" ; then
tx_cleanup
exit 0
fi
if test "x$1" = "x--help" ; then
sed -e '1,/USAGE/d' -e '/END.USAGE/,$d' < "$0"
fi
test -z "$1" || { echo "! Usage: txcheck.sh [--cleanup]" ; exit 1 ; }
### FIND EXECUTABLES
#
#
XMLLINT=""
for _xmllint in xmllint
do
$_xmllint --version > /dev/null 2>&1 && XMLLINT=$_xmllint
test -n "$XMLLINT" && break
done
# Distinguish GNU date from BSD date
if date +%s -d "1 week ago" > /dev/null 2>&1 ; then
last_week() { date +%s -d "1 week ago" ; }
else
last_week() { date -v1w +%s; }
fi
# Distinguish GNU SHA executables from BSD ones
if which sha256sum > /dev/null 2>&1 ; then
SHA256=sha256sum
else
SHA256=sha256
fi
### CHECK WORKING DIRECTORY
#
#
if git describe translation > /dev/null 2>&1 ; then
:
else
echo "! No 'translation' tag exists for enforcing the string-freeze."
exit 1
fi
# The tag exists, so now check that there's no unsaved changes
if test `git describe` = `git describe --dirty` ; then
:
else
# Don't want any local changes, since those won't be
# reflected in the worktrees and we might miss a string change.
echo "! There are local changes."
exit 1
fi
# No unsaved changes; enforce a string freeze of one week
DATE_PREV=$( git log -1 translation --date=unix | sed -e '/^Date:/s+.*:++p' -e d )
DATE_HEAD=$( last_week )
test "$DATE_PREV" -le "$DATE_HEAD" || { echo "! Translation tag has not aged enough." ; git log -1 translation ; exit 1 ; }
# Tag is good, check that necessary files exist. The list of
# files is hard-coded, but should match what is in the Transifex config.
test -f ".tx/config" || { echo "! No Transifex configuration is present." ; exit 1 ; }
for f in $TX_FILE_LIST ; do
test -f $f || { echo "! Translation file '$f' does not exist." ; exit 1 ; }
done
### COMPARE TRANSLATIONS
#
#
# The state of translations; assume that sha256 is enough
# to distinguish changed translations when we cat all the
# string sources together.
tx_sum()
{
CURDIR=`pwd`
WORKTREE_NAME="$1"
WORKTREE_TAG="$2"
git worktree add $WORKTREE_NAME $WORKTREE_TAG > /dev/null 2>&1 || { echo "! Could not create worktree." ; exit 1 ; }
( cd $WORKTREE_NAME && sh "$CURDIR"/ci/txpush.sh --no-tx ) > /dev/null 2>&1 || { echo "! Could not re-create translations." ; exit 1 ; }
# Remove linenumbers from .ts (XML) and .pot
sed -i'' -e '/<location filename/d' "$WORKTREE_NAME/lang/calamares_en.ts"
sed -i'' -e '/^#: src..*[0-9]$/d' $WORKTREE_NAME/lang/python.pot
_SUM=$( cd $WORKTREE_NAME && cat $TX_FILE_LIST | $SHA256 )
echo "$_SUM"
}
# Check from the translation tag as well
HEAD_SUM=`tx_sum build-txcheck-head ""` || { echo "$HEAD_SUM" ; exit 1 ; }
PREV_SUM=`tx_sum build-txcheck-prev translation` || { echo "$HEAD_SUM" ; exit 1 ; }
# An error message will have come from the shell function
test -d build-txcheck-head || { echo "$HEAD_SUM" ; exit 1 ; }
test -d build-txcheck-prev || { echo "$PREV_SUM" ; exit 1 ; }
if test "$HEAD_SUM" = "$PREV_SUM" ; then
:
else
echo "! Translations have changed."
for f in $TX_FILE_LIST ; do
echo "! $f"
diff -u build-txcheck-prev/$f build-txcheck-head/$f
done
echo "! Run 'txcheck.sh --cleanup' to clean-up before next run"
exit 1
fi
tx_cleanup
exit 0

View File

@@ -1,15 +1,142 @@
#!/bin/bash
#!/bin/sh
# Make sure we can make Transifex and git operations from the Calamares Docker+Jenkins environment.
cp ~/jenkins-master/.transifexrc ~
cp ~/jenkins-master/.gitconfig ~
cp -R ~/jenkins-master/.ssh ~
### LICENSE
# === This file is part of Calamares - <https://github.com/calamares> ===
#
# SPDX-License-Identifier: BSD-2-Clause
# SPDX-FileCopyrightText: 2017-2020 Adriaan de Groot <groot@kde.org>
# SPDX-FileCopyrightText: 2015-2016 Teo Mrnjavac <teo@kde.org>
#
# This file is Free Software: you can redistribute it and/or modify
# it under the terms of the 2-clause BSD License.
#
### END LICENSE
cd "$WORKSPACE"
git config --global http.sslVerify false
### USAGE
#
# Fetch the Transifex translations for Calamares and incorporate them
# into the source tree, adding commits of the different files.
#
# Run this (occasionally) at the top-level directory to get
# new translations. See also CMakeLists.txt and ci/txstats.py
# for update instructions.
#
### END USAGE
### SANITY CHECKING
#
# The script needs a .tx/config to talk to the Transifex server;
# it also checks that it is run from the top-level of a Calamares
# checkout. In order to use the system overall, you'll also need:
# - ~/.gitconfig (For the git commits this does)
# - ~/.transifexrc (Password token for Transifex)
# - ~/.ssh (For git commits)
#
test -f "CMakeLists.txt" || { echo "! Not at Calamares top-level" ; exit 1 ; }
test -f ".tx/config" || { echo "! Not at Calamares top-level" ; exit 1 ; }
test -f "calamares.desktop" || { echo "! Not at Calamares top-level" ; exit 1 ; }
### FIND EXECUTABLES
#
#
XMLLINT=""
for _xmllint in xmllint
do
$_xmllint --version > /dev/null 2>&1 && XMLLINT=$_xmllint
test -n "$XMLLINT" && break
done
# XMLLINT is optional
### FETCH TRANSLATIONS
#
# Use Transifex client to get translations; this depends on the
# .tx/config file to locate files, and overwrites them in the
# filesystem with new (merged) translations.
export QT_SELECT=5
tx pull --force --source --all
### CLEANUP TRANSLATIONS
#
# Some languages have been deprecated. They may still exist in Transifex,
# so clean them up after pulling.
#
drop_language() {
rm -rf lang/python/"$1" lang/calamares_"$1".ts
grep -v "\\[$1]" calamares.desktop > calamares.desktop.new
mv calamares.desktop.new calamares.desktop
}
drop_language es_ES
drop_language pl_PL
# Also fix the .desktop file, which has some fields removed by Transifex.
#
{ cat calamares.desktop.in ; grep "\\[[a-zA-Z_@]*]=" calamares.desktop ; } > calamares.desktop.new
mv calamares.desktop.new calamares.desktop
# And fixup the XML files like in txpush.sh
if test -n "$XMLLINT" ; then
for TS_FILE in lang/calamares_*.ts
do
$XMLLINT --c14n11 "$TS_FILE" | { echo "<!DOCTYPE TS>" ; cat - ; } | $XMLLINT --format --encode utf-8 -o "$TS_FILE".new - && mv "$TS_FILE".new "$TS_FILE"
done
fi
### COMMIT TRANSLATIONS
#
# Produce multiple commits (for the various parts of the i18n
# infrastructure used by Calamares) of the updated translations.
# Try to be a little smart about not committing trivial changes.
# Who is credited with these CI commits
AUTHOR="--author='Calamares CI <groot@kde.org>'"
# Message to put after the module name
BOILERPLATE="Automatic merge of Transifex translations"
git add --verbose lang/calamares*.ts
git commit --author='Calamares CI <teo@kde.org>' --message='Automatic merge of Transifex translations' | true
git push --set-upstream origin master
git commit "$AUTHOR" --message="i18n: [calamares] $BOILERPLATE" | true
rm -f lang/desktop*.desktop
awk '
BEGIN {skip=0;}
/^# Translations/ {skip=1;}
{if (!skip || (length($0)>1 && $0 != "# Translations")) {
skip=0; print $0;
}}' < calamares.desktop > calamares.desktop.new
mv calamares.desktop.new calamares.desktop
git add --verbose calamares.desktop
git commit "$AUTHOR" --message="i18n: [desktop] $BOILERPLATE" | true
# Transifex updates the PO-Created timestamp also when nothing interesting
# has happened, so drop the files which have just 1 line changed (the
# PO-Created line). This applies only to modules which use po-files.
git diff --numstat src/modules | awk '($1==1 && $2==1){print $3}' | xargs git checkout --
# Go through the Python modules; those with a lang/ subdir have their
# own complete gettext-based setup.
for MODULE_DIR in $(find src/modules -maxdepth 1 -mindepth 1 -type d) ; do
FILES=$(find "$MODULE_DIR" -name "*.py" -a -type f)
if test -n "$FILES" ; then
MODULE_NAME=$(basename ${MODULE_DIR})
if [ -d ${MODULE_DIR}/lang ]; then
# Convert PO files to MO files
for POFILE in $(find ${MODULE_DIR} -name "*.po") ; do
sed -i'' '/^"Content-Type/s/CHARSET/UTF-8/' $POFILE
msgfmt -o ${POFILE%.po}.mo $POFILE
done
git add --verbose ${MODULE_DIR}/lang/*
git commit "$AUTHOR" --message="i18n: [${MODULE_NAME}] $BOILERPLATE" | true
fi
fi
done
for POFILE in $(find lang -name "python.po") ; do
sed -i'' '/^"Content-Type/s/CHARSET/UTF-8/' $POFILE
msgfmt -o ${POFILE%.po}.mo $POFILE
done
git add --verbose lang/python*
git commit "$AUTHOR" --message="i18n: [python] $BOILERPLATE" | true

View File

@@ -1,13 +1,147 @@
#!/bin/bash
#!/bin/sh
# Make sure we can make Transifex and git operations from the Calamares Docker+Jenkins environment.
cp ~/jenkins-master/.transifexrc ~
cp ~/jenkins-master/.gitconfig ~
cp -R ~/jenkins-master/.ssh ~
### LICENSE
# === This file is part of Calamares - <https://github.com/calamares> ===
#
# SPDX-License-Identifier: BSD-2-Clause
# SPDX-FileCopyrightText: 2017-2020 Adriaan de Groot <groot@kde.org>
# SPDX-FileCopyrightText: 2015-2016 Teo Mrnjavac <teo@kde.org>
#
# This file is Free Software: you can redistribute it and/or modify
# it under the terms of the 2-clause BSD License.
#
### END LICENSE
cd "$WORKSPACE"
git config --global http.sslVerify false
### USAGE
#
# Extract translations from Calamares source and send them
# to Transifex. Also (forcibly) updates the git "translation"
# tag to document that source texts were updated and sent;
# this is used by txcheck.sh to ensure that there's enough
# time between updates and releases, and that strings don't
# change between updates and releases.
#
# Run this at the top-level.
#
# Use the --no-tx option to do the extraction, but not the
# pushing-to-Transifex part. This can be useful to check for
# new strings or when testing the tools themselves.
#
### END USAGE
export QT_SELECT=5
lupdate src/ -ts -no-obsolete lang/calamares_en.ts
tx push --force --source --no-interactive
### SANITY CHECKING
#
# The script needs a .tx/config to talk to the Transifex server;
# it also checks that it is run from the top-level of a Calamares
# checkout. In order to use the system overall, you'll also need:
# - ~/.gitconfig (For the git commits this does)
# - ~/.transifexrc (Password token for Transifex)
# - ~/.ssh (For git commits)
#
test -f "CMakeLists.txt" || { echo "! Not at Calamares top-level" ; exit 1 ; }
test -f ".tx/config" || { echo "! Not at Calamares top-level" ; exit 1 ; }
test -f "calamares.desktop" || { echo "! Not at Calamares top-level" ; exit 1 ; }
if test "x$1" = "x--no-tx" ; then
# tx is the transifex command -- eat its arguments and do nothing
tx() {
echo "Skipped tx $*"
}
# txtag is used to tag in git to measure changes -- skip it too
txtag() {
echo "Skipped tx tagging."
}
else
# tx is the regular transifex command
# txtag is used to tag in git to measure changes
txtag() {
git tag -f translation
git push --force origin translation
}
fi
### FIND EXECUTABLES
#
#
LUPDATE=""
for _lupdate in lupdate-qt5 lupdate
do
export QT_SELECT=5
$_lupdate -version > /dev/null 2>&1 || export QT_SELECT=qt5
$_lupdate -version > /dev/null 2>&1 && LUPDATE=$_lupdate
test -n "$LUPDATE" && break
done
test -n "$LUPDATE" || { echo "! No working lupdate" ; lupdate -version ; exit 1 ; }
XMLLINT=""
for _xmllint in xmllint
do
$_xmllint --version > /dev/null 2>&1 && XMLLINT=$_xmllint
test -n "$XMLLINT" && break
done
# XMLLINT is optional
### CREATE TRANSLATIONS
#
# Use local tools (depending on type of source) to create translation
# sources, then push to Transifex
# Don't pull branding translations in,
# those are done separately.
_srcdirs="src/calamares src/libcalamares src/libcalamaresui src/modules src/qml"
$LUPDATE -no-obsolete $_srcdirs -ts lang/calamares_en.ts
# Updating the TZ only needs to happen when the TZ themselves are updated,
# very-very-rarely.
# $LUPDATE -no-obsolete -extensions cxxtr src/libcalamares/locale -ts lang/tz_en.ts
if test -n "$XMLLINT" ; then
TS_FILE="lang/calamares_en.ts"
$XMLLINT --c14n11 "$TS_FILE" | { echo "<!DOCTYPE TS>" ; cat - ; } | $XMLLINT --format --encode utf-8 -o "$TS_FILE".new - && mv "$TS_FILE".new "$TS_FILE"
fi
tx push --source --no-interactive -r calamares.calamares
tx push --source --no-interactive -r calamares.fdo
### PYTHON MODULES
#
# The Python tooling depends on the underlying distro to provide
# gettext, and handles two cases:
#
# - python modules with their own lang/ subdir, for larger translations
# - python modules without lang/, which use one shared catalog
#
PYGETTEXT="xgettext --keyword=_n:1,2 -L python"
SHARED_PYTHON=""
for MODULE_DIR in $(find src/modules -maxdepth 1 -mindepth 1 -type d) ; do
FILES=$(find "$MODULE_DIR" -name "*.py" -a -type f)
if test -n "$FILES" ; then
MODULE_NAME=$(basename ${MODULE_DIR})
if [ -d ${MODULE_DIR}/lang ]; then
${PYGETTEXT} -p ${MODULE_DIR}/lang -d ${MODULE_NAME} -o ${MODULE_NAME}.pot ${MODULE_DIR}/*.py
POTFILE="${MODULE_DIR}/lang/${MODULE_NAME}.pot"
if [ -f "$POTFILE" ]; then
sed -i'' '/^"Content-Type/s/CHARSET/UTF-8/' "$POTFILE"
tx set -r calamares.${MODULE_NAME} --source -l en "$POTFILE"
tx push --source --no-interactive -r calamares.${MODULE_NAME}
fi
else
SHARED_PYTHON="$SHARED_PYTHON $FILES"
fi
fi
done
if test -n "$SHARED_PYTHON" ; then
${PYGETTEXT} -p lang -d python -o python.pot $SHARED_PYTHON
POTFILE="lang/python.pot"
sed -i'' '/^"Content-Type/s/CHARSET/UTF-8/' "$POTFILE"
tx set -r calamares.python --source -l en "$POTFILE"
tx push --source --no-interactive -r calamares.python
fi
txtag
exit 0

44
ci/txreduce.py Normal file
View File

@@ -0,0 +1,44 @@
#! /usr/bin/env python3
#
# Reduce a translation file -- generally, a Timezone translation -- by
# dropping untranslated strings. An untranslated string is one that
# has an empty translation **and** is marked unfinished.
#
# This is mostly useful to cut down the size of the source file:
# far and away most of the zones are not translated, and it's just a
# handful of places that get special treatment.
from xml.dom.minidom import parse
import sys
valid = True
dom = parse(sys.argv[1])
for n in dom.getElementsByTagName("translation"):
attrs = n.attributes.keys()
drop = True
if "type" not in attrs:
drop = False
elif "type" in attrs and n.attributes["type"].value != "unfinished":
# In the samples I've seen, only "unfinished" is a valid type;
# once something has been translated, the attribute vanishes (see
# the if branch, above).
print("WARNING ''{!s}'' unknown type".format(n.attributes["type"].value))
drop = False
valid = False
else:
t = n.firstChild
if t is None:
# Unfinished and empty
drop = True
else:
drop = bool(t.data)
if drop:
message = n.parentNode
message.parentNode.removeChild(message)
message.unlink()
if valid:
for line in dom.toxml().split("\n"):
if line.strip():
print(line)

231
ci/txstats.py Executable file
View File

@@ -0,0 +1,231 @@
#! /usr/bin/env python3
#
# Uses the Transifex API to get a list of enabled languages,
# and outputs CMake settings for inclusion into CMakeLists.txt.
#
# This is a Python3 script.
#
# Run it with a -v command-line option to get extra output on
# actual translation percentages.
import sys
import argparse
class TXError(Exception):
pass
class TransifexGetter(object):
"""
Get language data from Transifex.
The object does all the work in __init__, after that
the only relevant data is .languages, a dictionary
of language data.
"""
def __init__(self):
token = self.get_tx_credentials()
if token is None:
raise TXError("Could not get Transifex API token")
import requests
r = requests.get("https://api.transifex.com/organizations/calamares/projects/calamares/resources/calamares/", auth=("api", token))
if r.status_code != 200:
raise TXError("Could not get Transifex data from API")
j = r.json()
self.languages = j["stats"]
def get_tx_credentials(self):
"""
Gets the API token out of the user's .transifexrc (this is supposed
to be secure).
"""
import configparser
import os
txconfig_name = os.path.expanduser("~/.transifexrc")
try:
with open(txconfig_name, "r") as f:
parser = configparser.ConfigParser()
parser.read_file(f)
return parser.get("https://www.transifex.com", "password")
except IOError as e:
return None
class BogusGetter(object):
"""
Fake language data.
This object pretends to retrieve data, and returns fixed language lists and percentages,
for testing purposes without hitting Transifex servers all the time.
"""
def __init__(self):
self.languages = dict()
for lang, completion in ( ("sq", 100), ("ar", 44), ("as", 28), ("de", 15), ("da", 4), ("ts", 82) ):
self.languages[lang] = dict(translated=dict(stringcount=686, percentage=(completion/100.0)))
class PrintOutputter(object):
"""
Output via print-statements.
"""
def __init__(self):
pass
def print(self, s):
print(s)
def __enter__(self):
return self
def __exit__(self, e, v, tb):
pass
class EditingOutputter(object):
"""
Edit CMakeLists in-place.
"""
def __init__(self):
with open("CMakeLists.txt", "r") as f:
lines = f.readlines()
mark = None
for l in lines:
# Note that we didn't strip the lines, so need the \n here
if l.startswith("# Total ") and l.endswith(" languages\n"):
mark = lines.index(l)
break
if mark is None:
raise TXError("No CMakeLists.txt lines for TX stats found")
self.pre_lines = lines[:mark]
nextmark = mark + 1
for l in lines[mark+1:]:
if l.startswith("set( _tx_"):
nextmark += 1
continue
if l.startswith(" "):
nextmark += 1
continue
break
if nextmark > mark + 12 or nextmark > len(lines) - 4:
# Try to catch runaway nextmarks: we know there should
# be four set-lines, which are unlikely to be 3 lines each;
# similarly the CMakeLists.txt is supposed to end with
# some boilerplate.
raise TXError("Could not find end of TX settings in CMakeLists.txt")
self.post_lines = lines[nextmark:]
self.mid_lines = []
print("# Editing CMakeLists.txt in-place")
def print(self, s):
# Add the implicit \n from print()
self.mid_lines.append(s + "\n")
if s.startswith("#"):
print(s)
def __enter__(self):
return self
def __exit__(self, e, v, tb):
if e is None:
with open("CMakeLists.txt", "w") as f:
f.write("".join(self.pre_lines + self.mid_lines + self.post_lines))
print("# CMakeLists.txt updated")
def output_langs(all_langs, outputter, label, filterfunc):
"""
Output (via print) all of the languages in @p all_langs
that satisfy the translation-percentage filter @p filterfunc.
Prints a CMake set() command with the @p label as part
of the variable name.
Performs line-wrapping.
"""
these_langs = [l for s, l in all_langs if filterfunc(s)]
out = " ".join(["set( _tx_%s" % label, " ".join(sorted(these_langs)), ")"])
width = 68
prefix = ""
while len(out) > width - len(prefix):
chunk = out[:out[:width].rfind(" ")]
outputter.print("%s%s" % (prefix, chunk))
out = out[len(chunk)+1:]
prefix = " "
outputter.print("%s%s" % (prefix, out))
def get_tx_stats(languages, outputter, verbose):
"""
Does an API request to Transifex with the given API @p token, getting
the translation statistics for the main body of texts. Then prints
out CMake settings to replace the _tx_* variables in CMakeLists.txt
according to standard criteria.
If @p verbose is True, prints out language stats as well.
"""
suppressed_languages = ( "es_ES", ) # In Transifex, but not used
# Some languages go into the "incomplete" list by definition,
# regardless of their completion status: this can have various reasons.
#
# Note that Esperanto (eo) is special-cased in CMakeLists.txt
# during the build; recent Qt releases *do* support the language,
# and it's at-the-least ok.
incomplete_languages = (
"eo", # Not supported by QLocale < 5.12.1
"ie", # Not supported by Qt at least through 5.15.0
)
all_langs = []
outputter.print("# Total %d languages" % len(languages))
for lang_name in languages:
if lang_name in suppressed_languages:
continue
stats = languages[lang_name]["translated"]["percentage"]
# Make the by-definition-incomplete languages have a percentage
# lower than zero; this way they end up sorted (in -v output)
# at the bottom but you can still determine the "actual" percentage.
if lang_name in incomplete_languages:
stats = -stats
all_langs.append((stats, lang_name))
if verbose:
for s, l in sorted(all_langs, reverse=True):
outputter.print("# %16s\t%6.2f" % (l, s * 100.0))
output_langs(all_langs, outputter, "complete", lambda s : s == 1.0)
output_langs(all_langs, outputter, "good", lambda s : 1.0 > s >= 0.75)
output_langs(all_langs, outputter, "ok", lambda s : 0.75 > s >= 0.05)
output_langs(all_langs, outputter, "incomplete", lambda s : 0.05 > s)
return 0
def main():
parser = argparse.ArgumentParser(description="Update Transifex Statistics")
parser.add_argument("--verbose", "-v", help="Show statistics", action="store_true")
parser.add_argument("--bogus", "-n", help="Use bogus data (do not query Transifex)", action="store_true")
parser.add_argument("--edit", "-e", help="Edit CMakeLists.txt in-place", action="store_true")
args = parser.parse_args()
try:
if args.bogus:
getter = BogusGetter()
else:
getter = TransifexGetter()
if args.edit:
outputter = EditingOutputter()
else:
outputter = PrintOutputter()
with outputter:
return get_tx_stats(getter.languages, outputter, args.verbose)
except TXError as e:
print("! " + str(e))
return 1;
return 0
if __name__ == "__main__":
sys.exit(main())

34
data/FreeBSD/Makefile Normal file
View File

@@ -0,0 +1,34 @@
# $FreeBSD$
PORTNAME= calamares
DISTVERSION= 3.2.25
CATEGORIES= sysutils
MASTER_SITES= https://github.com/${PORTNAME}/${PORTNAME}/releases/download/v${DISTVERSION}/
MAINTAINER= adridg@FreeBSD.org
COMMENT= GUI System installer and OEM configurator
LICENSE= GPLv3
LICENSE_FILE= ${WRKSRC}/LICENSE
LIB_DEPENDS= libyaml-cpp.so:devel/yaml-cpp \
libpwquality.so:security/libpwquality \
libboost_python${PYTHON_SUFFIX}.so:devel/boost-python-libs
USES= cmake compiler:c++17-lang gettext kde:5 pkgconfig \
python:3.3+ qt:5
USE_QT= concurrent core dbus declarative gui \
network quickcontrols2 svg widgets xml \
buildtools_build linguist_build qmake_build
USE_KDE= coreaddons dbusaddons parts service \
ecm_build
USE_LDCONFIG= yes
CMAKE_OFF= WITH_KF5Crash \
INSTALL_CONFIG \
INSTALL_COMPLETION \
INSTALL_POLKIT
CMAKE_ON= CMAKE_DISABLE_FIND_PACKAGE_KPMcore
CMAKE_ARGS= -DSKIP_MODULES="webview"
.include <bsd.port.mk>

3
data/FreeBSD/distinfo Normal file
View File

@@ -0,0 +1,3 @@
TIMESTAMP = 1592339404
SHA256 (calamares-3.2.25.tar.gz) = 797ce33db7d4e4c06bbccef95f6c4023f7628e91bd142896695565fed4ae8c4b
SIZE (calamares-3.2.25.tar.gz) = 3580197

14
data/FreeBSD/pkg-descr Normal file
View File

@@ -0,0 +1,14 @@
Calamares is an installer framework. By design it is very customizable,
in order to satisfy a wide variety of needs and use cases.
Calamares aims to be easy, usable, beautiful, pragmatic, inclusive and
distribution-agnostic.
Got a Linux distribution but no system installer? Grab Calamares, mix
and match any number of Calamares modules (or write your own in Python
or C++), throw together some branding, package it up and you are ready
to ship!
(The above applies to FreeBSD as well)
WWW: https://calamares.io/

224
data/FreeBSD/pkg-plist Normal file
View File

@@ -0,0 +1,224 @@
bin/calamares
include/libcalamares/CalamaresConfig.h
include/libcalamares/CppJob.h
include/libcalamares/DllMacro.h
include/libcalamares/GlobalStorage.h
include/libcalamares/Job.h
include/libcalamares/JobExample.h
include/libcalamares/JobQueue.h
include/libcalamares/ProcessJob.h
include/libcalamares/PythonHelper.h
include/libcalamares/PythonJob.h
include/libcalamares/PythonJobApi.h
include/libcalamares/Settings.h
include/libcalamares/utils/BoostPython.h
include/libcalamares/utils/CalamaresUtilsSystem.h
include/libcalamares/utils/CommandList.h
include/libcalamares/utils/Dirs.h
include/libcalamares/utils/Entropy.h
include/libcalamares/utils/Logger.h
include/libcalamares/utils/NamedEnum.h
include/libcalamares/utils/NamedSuffix.h
include/libcalamares/utils/PluginFactory.h
include/libcalamares/utils/RAII.h
include/libcalamares/utils/Retranslator.h
include/libcalamares/utils/String.h
include/libcalamares/utils/Tests.h
include/libcalamares/utils/UMask.h
include/libcalamares/utils/Units.h
include/libcalamares/utils/Variant.h
include/libcalamares/utils/Yaml.h
include/libcalamares/utils/moc-warnings.h
lib/calamares/libcalamares.so
lib/calamares/modules/bootloader/main.py
lib/calamares/modules/bootloader/module.desc
lib/calamares/modules/bootloader/test.yaml
lib/calamares/modules/contextualprocess/libcalamares_job_contextualprocess.so
lib/calamares/modules/contextualprocess/module.desc
lib/calamares/modules/displaymanager/main.py
lib/calamares/modules/displaymanager/module.desc
lib/calamares/modules/dracut/main.py
lib/calamares/modules/dracut/module.desc
lib/calamares/modules/dracutlukscfg/libcalamares_job_dracutlukscfg.so
lib/calamares/modules/dracutlukscfg/module.desc
lib/calamares/modules/dummycpp/libcalamares_job_dummycpp.so
lib/calamares/modules/dummycpp/module.desc
lib/calamares/modules/dummyprocess/module.desc
lib/calamares/modules/dummypython/main.py
lib/calamares/modules/dummypython/module.desc
lib/calamares/modules/finished/libcalamares_viewmodule_finished.so
lib/calamares/modules/finished/module.desc
lib/calamares/modules/fstab/main.py
lib/calamares/modules/fstab/module.desc
lib/calamares/modules/fstab/test.yaml
lib/calamares/modules/grubcfg/main.py
lib/calamares/modules/grubcfg/module.desc
lib/calamares/modules/hostinfo/libcalamares_job_hostinfo.so
lib/calamares/modules/hostinfo/module.desc
lib/calamares/modules/hwclock/main.py
lib/calamares/modules/hwclock/module.desc
lib/calamares/modules/initcpio/libcalamares_job_initcpio.so
lib/calamares/modules/initcpio/module.desc
lib/calamares/modules/initcpiocfg/main.py
lib/calamares/modules/initcpiocfg/module.desc
lib/calamares/modules/initramfs/libcalamares_job_initramfs.so
lib/calamares/modules/initramfs/module.desc
lib/calamares/modules/initramfscfg/encrypt_hook
lib/calamares/modules/initramfscfg/encrypt_hook_nokey
lib/calamares/modules/initramfscfg/main.py
lib/calamares/modules/initramfscfg/module.desc
lib/calamares/modules/interactiveterminal/libcalamares_viewmodule_interactiveterminal.so
lib/calamares/modules/interactiveterminal/module.desc
lib/calamares/modules/keyboard/libcalamares_viewmodule_keyboard.so
lib/calamares/modules/keyboard/module.desc
lib/calamares/modules/keyboardq/libcalamares_viewmodule_keyboardq.so
lib/calamares/modules/keyboardq/module.desc
lib/calamares/modules/license/libcalamares_viewmodule_license.so
lib/calamares/modules/license/module.desc
lib/calamares/modules/locale/libcalamares_viewmodule_locale.so
lib/calamares/modules/locale/module.desc
lib/calamares/modules/localecfg/main.py
lib/calamares/modules/localecfg/module.desc
lib/calamares/modules/localeq/libcalamares_viewmodule_localeq.so
lib/calamares/modules/localeq/module.desc
lib/calamares/modules/luksbootkeyfile/libcalamares_job_luksbootkeyfile.so
lib/calamares/modules/luksbootkeyfile/module.desc
lib/calamares/modules/luksopenswaphookcfg/main.py
lib/calamares/modules/luksopenswaphookcfg/module.desc
lib/calamares/modules/machineid/libcalamares_job_machineid.so
lib/calamares/modules/machineid/module.desc
lib/calamares/modules/mount/main.py
lib/calamares/modules/mount/module.desc
lib/calamares/modules/mount/test.yaml
lib/calamares/modules/netinstall/libcalamares_viewmodule_netinstall.so
lib/calamares/modules/netinstall/module.desc
lib/calamares/modules/networkcfg/main.py
lib/calamares/modules/networkcfg/module.desc
lib/calamares/modules/notesqml/libcalamares_viewmodule_notesqml.so
lib/calamares/modules/notesqml/module.desc
lib/calamares/modules/oemid/libcalamares_viewmodule_oemid.so
lib/calamares/modules/oemid/module.desc
lib/calamares/modules/openrcdmcryptcfg/main.py
lib/calamares/modules/openrcdmcryptcfg/module.desc
lib/calamares/modules/packagechooser/libcalamares_viewmodule_packagechooser.so
lib/calamares/modules/packagechooser/module.desc
lib/calamares/modules/packages/main.py
lib/calamares/modules/packages/module.desc
lib/calamares/modules/packages/test.yaml
lib/calamares/modules/plymouthcfg/main.py
lib/calamares/modules/plymouthcfg/module.desc
lib/calamares/modules/preservefiles/libcalamares_job_preservefiles.so
lib/calamares/modules/preservefiles/module.desc
lib/calamares/modules/rawfs/main.py
lib/calamares/modules/rawfs/module.desc
lib/calamares/modules/removeuser/libcalamares_job_removeuser.so
lib/calamares/modules/removeuser/module.desc
lib/calamares/modules/services-openrc/main.py
lib/calamares/modules/services-openrc/module.desc
lib/calamares/modules/services-systemd/main.py
lib/calamares/modules/services-systemd/module.desc
lib/calamares/modules/shellprocess/libcalamares_job_shellprocess.so
lib/calamares/modules/shellprocess/module.desc
lib/calamares/modules/summary/libcalamares_viewmodule_summary.so
lib/calamares/modules/summary/module.desc
lib/calamares/modules/tracking/libcalamares_viewmodule_tracking.so
lib/calamares/modules/tracking/module.desc
lib/calamares/modules/umount/main.py
lib/calamares/modules/umount/module.desc
lib/calamares/modules/unpackfs/main.py
lib/calamares/modules/unpackfs/module.desc
lib/calamares/modules/unpackfs/runtests.sh
lib/calamares/modules/users/libcalamares_viewmodule_users.so
lib/calamares/modules/users/module.desc
lib/calamares/modules/welcome/libcalamares_viewmodule_welcome.so
lib/calamares/modules/welcome/module.desc
lib/calamares/modules/welcomeq/libcalamares_viewmodule_welcomeq.so
lib/calamares/modules/welcomeq/module.desc
lib/cmake/Calamares/CMakeColors.cmake
lib/cmake/Calamares/CalamaresAddBrandingSubdirectory.cmake
lib/cmake/Calamares/CalamaresAddLibrary.cmake
lib/cmake/Calamares/CalamaresAddModuleSubdirectory.cmake
lib/cmake/Calamares/CalamaresAddPlugin.cmake
lib/cmake/Calamares/CalamaresAddTest.cmake
lib/cmake/Calamares/CalamaresAddTranslations.cmake
lib/cmake/Calamares/CalamaresAutomoc.cmake
lib/cmake/Calamares/CalamaresConfig.cmake
lib/cmake/Calamares/CalamaresConfigVersion.cmake
lib/cmake/Calamares/CalamaresLibraryDepends-%%CMAKE_BUILD_TYPE%%.cmake
lib/cmake/Calamares/CalamaresLibraryDepends.cmake
lib/cmake/Calamares/CalamaresUse.cmake
lib/libcalamares.so
lib/libcalamares.so.3.2.25
lib/libcalamaresui.so
lib/libcalamaresui.so.3.2.25
man/man8/calamares.8.gz
share/applications/calamares.desktop
%%DATADIR%%/branding/default/banner.png
%%DATADIR%%/branding/default/branding.desc
%%DATADIR%%/branding/default/lang/calamares-default_ar.qm
%%DATADIR%%/branding/default/lang/calamares-default_en.qm
%%DATADIR%%/branding/default/lang/calamares-default_eo.qm
%%DATADIR%%/branding/default/lang/calamares-default_fr.qm
%%DATADIR%%/branding/default/lang/calamares-default_nl.qm
%%DATADIR%%/branding/default/languages.png
%%DATADIR%%/branding/default/show.qml
%%DATADIR%%/branding/default/squid.png
%%DATADIR%%/branding/default/stylesheet.qss
%%DATADIR%%/qml/calamares/slideshow/BackButton.qml
%%DATADIR%%/qml/calamares/slideshow/ForwardButton.qml
%%DATADIR%%/qml/calamares/slideshow/NavButton.qml
%%DATADIR%%/qml/calamares/slideshow/Presentation.qml
%%DATADIR%%/qml/calamares/slideshow/Slide.qml
%%DATADIR%%/qml/calamares/slideshow/SlideCounter.qml
%%DATADIR%%/qml/calamares/slideshow/qmldir
share/icons/hicolor/scalable/apps/calamares.svg
share/locale/ar/LC_MESSAGES/calamares-python.mo
share/locale/as/LC_MESSAGES/calamares-python.mo
share/locale/ast/LC_MESSAGES/calamares-python.mo
share/locale/be/LC_MESSAGES/calamares-python.mo
share/locale/bg/LC_MESSAGES/calamares-python.mo
share/locale/ca/LC_MESSAGES/calamares-python.mo
share/locale/cs_CZ/LC_MESSAGES/calamares-python.mo
share/locale/da/LC_MESSAGES/calamares-python.mo
share/locale/de/LC_MESSAGES/calamares-python.mo
share/locale/el/LC_MESSAGES/calamares-python.mo
share/locale/en_GB/LC_MESSAGES/calamares-python.mo
share/locale/eo/LC_MESSAGES/calamares-python.mo
share/locale/es/LC_MESSAGES/calamares-python.mo
share/locale/es_MX/LC_MESSAGES/calamares-python.mo
share/locale/es_PR/LC_MESSAGES/calamares-python.mo
share/locale/et/LC_MESSAGES/calamares-python.mo
share/locale/eu/LC_MESSAGES/calamares-python.mo
share/locale/fi_FI/LC_MESSAGES/calamares-python.mo
share/locale/fr/LC_MESSAGES/calamares-python.mo
share/locale/gl/LC_MESSAGES/calamares-python.mo
share/locale/he/LC_MESSAGES/calamares-python.mo
share/locale/hi/LC_MESSAGES/calamares-python.mo
share/locale/hr/LC_MESSAGES/calamares-python.mo
share/locale/hu/LC_MESSAGES/calamares-python.mo
share/locale/id/LC_MESSAGES/calamares-python.mo
share/locale/is/LC_MESSAGES/calamares-python.mo
share/locale/it_IT/LC_MESSAGES/calamares-python.mo
share/locale/ja/LC_MESSAGES/calamares-python.mo
share/locale/ko/LC_MESSAGES/calamares-python.mo
share/locale/lt/LC_MESSAGES/calamares-python.mo
share/locale/ml/LC_MESSAGES/calamares-python.mo
share/locale/mr/LC_MESSAGES/calamares-python.mo
share/locale/nb/LC_MESSAGES/calamares-python.mo
share/locale/nl/LC_MESSAGES/calamares-python.mo
share/locale/pl/LC_MESSAGES/calamares-python.mo
share/locale/pt_BR/LC_MESSAGES/calamares-python.mo
share/locale/pt_PT/LC_MESSAGES/calamares-python.mo
share/locale/ro/LC_MESSAGES/calamares-python.mo
share/locale/ru/LC_MESSAGES/calamares-python.mo
share/locale/sk/LC_MESSAGES/calamares-python.mo
share/locale/sl/LC_MESSAGES/calamares-python.mo
share/locale/sq/LC_MESSAGES/calamares-python.mo
share/locale/sr/LC_MESSAGES/calamares-python.mo
share/locale/sr@latin/LC_MESSAGES/calamares-python.mo
share/locale/sv/LC_MESSAGES/calamares-python.mo
share/locale/th/LC_MESSAGES/calamares-python.mo
share/locale/tr_TR/LC_MESSAGES/calamares-python.mo
share/locale/uk/LC_MESSAGES/calamares-python.mo
share/locale/zh_CN/LC_MESSAGES/calamares-python.mo
share/locale/zh_TW/LC_MESSAGES/calamares-python.mo

View File

@@ -1,9 +1,6 @@
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
# === This file is part of Calamares - <https://github.com/calamares> ===
#
# === This file is part of Calamares - <http://github.com/calamares> ===
#
# Copyright 2014, Philip Müller <philm@manjaro.org>
# Copyright 2020, Gaël PORTAY <gael.portay@gmail.com>
#
# Calamares is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -18,21 +15,22 @@
# You should have received a copy of the GNU General Public License
# along with Calamares. If not, see <http://www.gnu.org/licenses/>.
import libcalamares
from libcalamares.utils import check_target_env_call
_calamares()
{
local cur prev words cword
_init_completion || return
case "$prev" in
-D)
COMPREPLY=( $( compgen -W "$( seq 0 1 8 )" -- "$cur" ) )
return
;;
-c|--config)
_filedir
return
;;
esac
def run_mkinitcpio():
""" Runs mkinitcpio with given kernel profile """
kernel = libcalamares.job.configuration['kernel']
check_target_env_call(['mkinitcpio', '-p', kernel])
def run():
""" Calls routine to create kernel initramfs image.
:return:
"""
run_mkinitcpio()
return None
COMPREPLY=( $( compgen -W "-h --help -v --version -d --debug -D -c --config -X -xdg-config -T --debug-translation" -- "$cur" ) )
} &&
complete -F _calamares calamares

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

View File

@@ -0,0 +1,28 @@
# Configure one or more display managers (e.g. SDDM)
# with a "best effort" approach.
---
#The DM module attempts to set up all the DMs found in this list, in that precise order.
#It also sets up autologin, if the feature is enabled in globalstorage.
#The displaymanagers list can also be set in globalstorage, and in that case it overrides anything set up here.
displaymanagers:
- slim
- sddm
- lightdm
- gdm
- mdm
- lxdm
- kdm
#Enable the following settings to force a desktop environment in your displaymanager configuration file:
#defaultDesktopEnvironment:
# executable: "startkde"
# desktopFile: "plasma"
#If true, try to ensure that the user, group, /var directory etc. for the
#display manager are set up correctly. This is normally done by the distribution
#packages, and best left to them. Therefore, it is disabled by default.
basicSetup: false
#If true, setup autologin for openSUSE. This only makes sense on openSUSE
#derivatives or other systems where /etc/sysconfig/displaymanager exists.
sysconfigSetup: false

View File

@@ -0,0 +1,31 @@
# Configuration for the "finished" page, which is usually shown only at
# the end of the installation (successful or not).
---
# Behavior of the "restart system now" button.
#
# There are four usable values:
# - never
# Does not show the button and does not restart.
# This matches the old behavior with restartNowEnabled=false.
# - user-unchecked
# Shows the button, defaults to unchecked, restarts if it is checked.
# This matches the old behavior with restartNowEnabled=true and restartNowChecked=false.
# - user-checked
# Shows the button, defaults to checked, restarts if it is checked.
# This matches the old behavior with restartNowEnabled=true and restartNowChecked=true.
# - always
# Shows the button, checked, but the user cannot change it.
# This is new behavior.
#
# The three combinations of legacy values are still supported.
restartNowMode: user-unchecked
# If the checkbox is shown, and the checkbox is checked, then when
# Calamares exits from the finished-page it will run this command.
# If not set, falls back to "shutdown -r now".
restartNowCommand: "systemctl -i reboot"
# When the last page is (successfully) reached, send a DBus notification
# to the desktop that the installation is done. This works only if the
# user as whom Calamares is run, can reach the regular desktop session bus.
notifyOnFinished: false

View File

@@ -0,0 +1,16 @@
# NOTE: you must have ckbcomp installed and runnable
# on the live system, for keyboard layout previews.
---
# 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"
# 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"
# Write keymap configuration to /etc/default/keyboard, usually
# found on Debian-related systems.
# Defaults to true if nothing is set.
#writeEtcDefaultKeyboard: true

View File

@@ -0,0 +1,31 @@
---
# This settings are used to set your default system time zone.
# Time zones are usually located under /usr/share/zoneinfo and
# provided by the 'tzdata' package of your Distribution.
#
# Distributions using systemd can list available
# time zones by using the timedatectl command.
# timedatectl list-timezones
#
# The starting timezone (e.g. the pin-on-the-map) when entering
# the locale page can be set through keys *region* and *zone*.
# If either is not set, defaults to America/New_York.
#
region: "Europe"
zone: "Amsterdam"
# Enable only when your Distribution is using an
# custom path for locale.gen
#localeGenPath: "PATH_TO/locale.gen"
# GeoIP based Language settings:
#
# GeoIP need an working Internet connection.
#
geoipUrl: "https://geoip.kde.org/v1/calamares"
# GeoIP style. Leave commented out for the "legacy" interpretation.
# This setting only makes sense if geoipUrl is set, enabliing geoIP.
geoipStyle: "json"

View File

@@ -0,0 +1,59 @@
# Configuration for the one-user-system user module.
#
# Besides these settings, the user module also places the following
# keys into the globalconfig area, based on user input in the view step.
#
# - hostname
# - username
# - password (obscured)
# - autologinUser (if enabled, set to username)
#
# These globalconfig keys are set when the jobs for this module
# are created.
---
# Used as default groups for the created user.
# Adjust to your Distribution defaults.
defaultGroups:
- users
- lp
- video
- network
- storage
- wheel
- audio
# Some Distributions require a 'autologin' group for the user.
# Autologin causes a user to become automatically logged in to
# the desktop environment on boot.
# Disable when your Distribution does not require such a group.
autologinGroup: autologin
# You can control the initial state for the 'autologin checkbox' in UsersViewStep here.
# Possible values are: true to enable or false to disable the checkbox by default
doAutologin: true
# When set to a non-empty string, Calamares creates a sudoers file for the user.
# /etc/sudoers.d/10-installer
# Remember to add sudoersGroup to defaultGroups.
#
# If your Distribution already sets up a group of sudoers in its packaging,
# remove this setting (delete or comment out the line below). Otherwise,
# the setting will be duplicated in the /etc/sudoers.d/10-installer file,
# potentially confusing users.
sudoersGroup: wheel
# Setting this to false , causes the root account to be disabled.
setRootPassword: true
# You can control the initial state for the 'root password checkbox' in UsersViewStep here.
# Possible values are: true to enable or false to disable the checkbox by default.
# When enabled the user password is used for the root account too.
# NOTE: doReusePassword requires setRootPassword to be enabled.
doReusePassword: true
# These are optional password-requirements that a distro can enforce
# on the user. The values given in this sample file disable each check,
# as if the check was not listed at all.
passwordRequirements:
minLength: -1 # Password at least this many characters
maxLength: -1 # Password at most this many characters
userShell: /bin/bash

View File

@@ -0,0 +1,46 @@
# Configuration for the welcome module. The welcome page
# displays some information from the branding file.
# Which parts it displays can be configured through
# the show* variables.
#
# In addition to displaying the welcome page, this module
# can check requirements for installation.
---
# Display settings for various buttons on the welcome page.
showSupportUrl: true
showKnownIssuesUrl: true
showReleaseNotesUrl: true
# Requirements checking. These are general, generic, things
# that are checked. They may not match with the actual requirements
# imposed by other modules in the system.
requirements:
# Amount of available disk, in GiB. Floating-point is allowed here.
# Note that this does not account for *usable* disk, so it is possible
# to pass this requirement, yet have no space to install to.
requiredStorage: 5.5
# Amount of available RAM, in GiB. Floating-point is allowed here.
requiredRam: 1.0
# To check for internet connectivity, Calamares does a HTTP GET
# on this URL; on success (e.g. HTTP code 200) internet is OK.
internetCheckUrl: http://google.com
# List conditions to check. Each listed condition will be
# probed in some way, and yields true or false according to
# the host system satisfying the condition.
#
# This sample file lists all the conditions that are known.
check:
- ram
- power
- internet
- root
- screen
# List conditions that **must** be satisfied (from the list
# of conditions, above) for installation to proceed.
# If any of these conditions are not met, the user cannot
# continue past the welcome page.
required:
- ram

View File

@@ -0,0 +1,36 @@
# Configuration file for Calamares
# Syntax is YAML 1.2
---
modules-search: [ usr/lib/calamares/modules ]
# YAML: list of maps of string:string key-value pairs.
#instances:
#- id: owncloud
# module: webview
# config: owncloud.conf
# Sequence section. This section describes the sequence of modules, both
# viewmodules and jobmodules, as they should appear and/or run.
sequence:
- show:
- welcome
- locale
- keyboard
- users
- summary
- exec:
- dummypython
- locale
- keyboard
- users
- displaymanager
- networkcfg
- show:
- finished
branding: default
prompt-install: false
# OEM mode
dont-chroot: true
disable-cancel: false

View File

@@ -0,0 +1,11 @@
# Example Filesystem
This is a filesystem that will be used as / in an example distro,
*if* you build the `example-distro` target and use the default
unpackfs configuration. It should hold files and configuration
bits that need to be on the target system for example purposes.
It should *not* have a bin/, lib/, sbin/ or lib64/ directory,
since those are copied into the example-distro filesystem
from the build host.

View File

@@ -0,0 +1,2 @@
# Global .profile -- add /sbin_1
PATH=$PATH:/sbin_1:/xbin

Some files were not shown because too many files have changed in this diff Show More