Commit Graph

3462 Commits

Author SHA1 Message Date
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
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
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
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
543e2d34fc [libcalamares] [locale] Remove unused includes 2019-09-02 12:02:43 +02:00
Adriaan de Groot
c7cbba3951 [welcome] Fix typo in tooltip 2019-08-30 22:54:28 +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
0aabc89449 [partition] [welcome] Simplify retranslation 2019-08-29 15:02:12 +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
bill-auger
5642576cf3
cross-reference/clarify geoip documentation 2019-08-28 13:21:42 -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
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
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
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
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
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
310a1d76cf [calamares] Reduce warnings now that getInteger is qint64 2019-08-22 10:25:16 +02: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
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
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
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
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
54767812fe
Merge pull request #1218 from a-wai/fix-unpackfs
Fix error in unpackfs
2019-08-13 17:01:40 +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
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
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
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
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
48a25858f0 [partition] Chase 3rdparty move 2019-08-08 12:42:47 -04: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
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
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
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
8d3546f0b3 [packagechooser] Expand the example config with translated entries 2019-08-06 00:31:05 +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
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
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