4679 Commits (3877151bd89c2475644837dc4b225ddcc2c39060)

Author SHA1 Message Date
Adriaan de Groot 4799e821d3 [locale] Reduce warnings, missing override 6 years ago
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.
6 years ago
Andrius Štikonas 490c14d93d QLatin1Literal->QLatin1String. 6 years ago
Harald Sitter 0e054f1246 [displaymanager] map plasma 5.17+ desktop environment
exec changed compared to earlier 5.x
6 years ago
Calamares CI 3bef83b152 i18n: [dummypythonqt] Automatic merge of Transifex translations 6 years ago
Adriaan de Groot 7a5ac63f92 [libcalamares] Chase change of API
- Replace QString( x ) by x.toString() where x is an InstanceKey
6 years ago
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.
6 years ago
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.
6 years ago
Adriaan de Groot 7dcc6e8e07 [libcalamares] Fix bug in InstanceKey::QString 6 years ago
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
6 years ago
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.
6 years ago
Adriaan de Groot 2f99004041 [libcalamares] Move the module instance-key
- Split out of the UI library and into (header-only) libcalamares.
6 years ago
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.
6 years ago
Adriaan de Groot 78de6776af [libcalamaresui] Swap out use of QString for ModuleInstanceKey
- The strings `module@id` are used internally, make that type explicit.
6 years ago
Adriaan de Groot b8dd6e9ae7 [libcalamaresui] Introduce a module-instance-key class
- This replaces rather ad-hoc use of a QString as key.
6 years ago
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.
6 years ago
Adriaan de Groot ca351ff7b6 [libcalamares] Apply (some) options to request earlier 6 years ago
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)
6 years ago
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.
6 years ago
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.
6 years ago
Adriaan de Groot d70d418d92 [locale] Refactor setting of LC entries 6 years ago
Adriaan de Groot 5cac3ac6ad [locale] Apply coding style 6 years ago
Adriaan de Groot 0ee8427d5a [locale] Remove old-style GeoIP configuration 6 years ago
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
6 years ago
Adriaan de Groot 3093f635e2 [locale] Apply coding style 6 years ago
Adriaan de Groot 21dde80a65 [locale] Refactor button handling to plain methods 6 years ago
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.
6 years ago
Adriaan de Groot 782b469974 [locale] Move all the translation work to a single slot 6 years ago
Adriaan de Groot a57a030ee2 [packagechooser] Massage the list view to be narrower 6 years ago
Adriaan de Groot 4259bc9d5d [packagechooser] Also use screenshot from no-package-selected 6 years ago
Adriaan de Groot 52e72f4fb1 [welcome] Apply coding style 6 years ago
Adriaan de Groot 88fc6685ba [libcalamares] Apply coding style to geoip/ 6 years ago
Adriaan de Groot 01c4383178 [packagechooser] Simplify parameters
- Just pass the no-package-selected item around.
6 years ago
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
6 years ago
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).
6 years ago
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.
6 years ago
Adriaan de Groot 9850e4b35b [netinstall] Use the network-manager
- use asynchronousGet and keep the reply
 - drop unused includes
 - apply current coding style
6 years ago
Adriaan de Groot badbdf59ee [libcalamares] Build synchronous get w/ async-get 6 years ago
Adriaan de Groot f8356a6dcc [libcalamares] Add an async get method
- Mostly a "cheap" wrapper for a half-dozen boilerplate lines
   of Qt NAM code.
6 years ago
Adriaan de Groot 543e2d34fc [libcalamares] [locale] Remove unused includes 6 years ago
Adriaan de Groot c7cbba3951 [welcome] Fix typo in tooltip 6 years ago
bill-auger 1513934a57
add checkbox to disable password validations 6 years ago
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)
6 years ago
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
6 years ago
Adriaan de Groot b685583060
Merge pull request #1226 from a-wai/fix-unpackfs-for-rootfs
[unpackfs] Enable to use "/" as a source
6 years ago
Adriaan de Groot 1d9177c5a3
Merge pull request #1230 from bill-auger/patch-1
add esperanto branding translations, fix mis-configured ones
6 years ago
Adriaan de Groot 0aabc89449 [partition] [welcome] Simplify retranslation 6 years ago
Adriaan de Groot 1cde8c20df [libcalamaresui] Simplify retranslation
- Use any object method to connect() to
6 years ago
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.
6 years ago
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.
6 years ago
Adriaan de Groot fc5aa54cb2 [welcome] Fix code formatting
- the RETRANSLATE macro is a real challenge for astyle and clang-format
6 years ago
Adriaan de Groot 07bd22ba95
Merge pull request #1233 from bill-auger/patch-4
eliminate magic number in src/modules/welcome/WelcomePage.cpp
6 years ago
Adriaan de Groot 9ca864567a
Merge pull request #1231 from bill-auger/patch-5
cross-reference/clarify geoip documentation
6 years ago
Adriaan de Groot 3f90921155
Merge pull request #1232 from bill-auger/patch-3
update doc comment in src/modules/initcpio/initcpio.conf
6 years ago
bill-auger 5642576cf3
cross-reference/clarify geoip documentation 6 years ago
bill-auger bb678e535b
add esperanto branding translations, fix mis-configured ones 6 years ago
bill-auger 4c3c6f3f91
eliminate magic number in src/modules/welcome/WelcomePage.cpp 6 years ago
bill-auger 13a58a4ab2
update doc comment in src/modules/initcpio/initcpio.conf 6 years ago
bill-auger e459b82cfe
fix typo in src/libcalamaresui/ViewManager.cpp 6 years ago
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.
6 years ago
Adriaan de Groot 8ab0fb4e5f [libcalamaresui] Apply coding style (missed earlier) 6 years ago
Adriaan de Groot 03ac0d2cf0 [qml] Document the new property and how it updates 6 years ago
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.
6 years ago
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.
6 years ago
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.
6 years ago
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.
6 years ago
Adriaan de Groot 34cb777b0a [qml] Disable all the key shortcuts via root.activatedInCalamares 6 years ago
Adriaan de Groot ac8952f223 [libcalamaresui] Improve QML API v2 debugging
- log what is being loaded
 - distinguish "component complete" from actuial loading
6 years ago
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)
6 years ago
Adriaan de Groot c28c97d3aa Merge branch 'issue-1215'
FIXES #1215
FIXES #1216
6 years ago
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.
6 years ago
Adriaan de Groot d8a587e16e [packagechooser] Scale screenshot
- if the screenshot is too large, scale it down
 - (doesn't react to window resizes though)
6 years ago
Adriaan de Groot 6035a74a93 [packagechooser] Align the screenshot
- hcenter + vcenter the screenshot
 - make it expand as necessary
 - fill in some sample text
6 years ago
Kevin Kofler 9dbd3a765b [netinstall] Fix typo in netinstall.conf comment
s/inmportant/important/
6 years ago
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.
6 years ago
Adriaan de Groot d063d60e37 [packages] Explain pre-script isn't actually a shell script 6 years ago
Adriaan de Groot 56792fdcb5 [netinstall] Polish the README
- describe the format better
 - more consistent typography
 - refer to `packages.conf` for details on shell commands
6 years ago
Adriaan de Groot ee29c45433 [netinstall] Point documentation towards netinstall README.md 6 years ago
Adriaan de Groot 6fb909a799 Merge branch 'networking-service' 6 years ago
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.
6 years ago
Adriaan de Groot a1b0049bbf [libcalamares] Use more readable names 6 years ago
Adriaan de Groot e2c6591a77 [libcalamares] Refactor request internals
- distinguish timeouts from other failures
 - git synchronousPing() a more detailed result, which is
   still bool-compatible.
6 years ago
Adriaan de Groot f0be7fd4aa [libcalamares] Make failures in the internal methods obvious
- internally, timeout and error will return nullptr
6 years ago
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.
6 years ago
Adriaan de Groot ededebbc6c [libcalamares] Return reply early if the request is bad 6 years ago
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>
6 years ago
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
6 years ago
Adriaan de Groot 85f0d38698 [libcalamares] Refactor synchronous get
- Add timeout support
 - Refactor into a static helper method
6 years ago
Adriaan de Groot 1f2b3b734d [libcalamares] Extend synchronous API with options 6 years ago
Adriaan de Groot af1aa701bc [libcalamares] Shuffle namespace lines around
- put all the definitions inside namespace {} to avoid
   needlessly long source lines.
6 years ago
Adriaan de Groot 383bd97a9c [displaymanager] Handle variations in config file
- GDM3 uses a different config file than previous GDM
6 years ago
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
6 years ago
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
6 years ago
Adriaan de Groot b66f3434af [displaymanager] Consistent Copyright notices 6 years ago
Adriaan de Groot b8bad1c0b4 [welcome] Drop unused includes 6 years ago
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
6 years ago
Adriaan de Groot 0b2855d6e0 [libcalamares] Fix build (bad class name) 6 years ago
Adriaan de Groot 9aae9b2f02 [libcalamares] Restore Q_DELCARE_INTERFACE
- This **may** be the cause of build failures on aarch64.
6 years ago
Adriaan de Groot 85f5410735 [libcalamaresui] Apply coding style 6 years ago
Adriaan de Groot dbe0ccf2e1 [calamares] Apply coding style 6 years ago
Adriaan de Groot 310a1d76cf [calamares] Reduce warnings now that getInteger is qint64 6 years ago
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.
6 years ago
Adriaan de Groot e065008631 [welcome] Switch to the network service
- simplify configuration
 - use existing ping- and hasInternet()
6 years ago
Adriaan de Groot 4389c254df [libcalamares] Rely directly on QNAM's networkAccessible() 6 years ago
Adriaan de Groot 11d52df04c [libcalamares] Add API docs to network service 6 years ago
Adriaan de Groot 82622373bc [libcalamares] Remove superfluous ; (warnings--) 6 years ago
Adriaan de Groot 8d3530154f [libcalamares] Expand network service test
- Do an actual ping (also to check for memory leaks)
6 years ago
Adriaan de Groot b8d56bb4a6 [libcalamares] Add tests for network service 6 years ago
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.
6 years ago
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_
6 years ago
Adriaan de Groot ffa899b497 [packagechooser] Assemble the translated name and description 6 years ago
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.
6 years ago
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
6 years ago
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
6 years ago
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.
6 years ago
Adriaan de Groot fa2f5763c6 [packagechooser] Load AppStream data
- Get the id, name, and description from AppStream data

Missing:
 - No translations
 - No screenshots
6 years ago
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.
6 years ago
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.
6 years ago
Adriaan de Groot 5b4152133d [packagechooser] Look for AppStream libs 6 years ago
Adriaan de Groot 52af9dbaad [mount] Add docstrings to methods 6 years ago
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.
6 years ago
Adriaan de Groot 8aedd8b175
Merge pull request #1219 from a-wai/extra-mounts-after-root
mount: Make sure extra mounts are mounted right after /
6 years ago
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>
6 years ago
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.
6 years ago
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).
6 years ago
Adriaan de Groot 706cc73925 [branding] [welcome] Adjust documentation for welcome-overrides 6 years ago
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.
6 years ago
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.
6 years ago
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.
6 years ago
Adriaan de Groot 03e506a826 [welcome] Add a donate button
FIXES #1197
6 years ago
Adriaan de Groot b60ec123a0 [branding] [welcome] Document interrelationship of settings 6 years ago
Adriaan de Groot 6b8c0129fd [libcalamaresui] Add one more icon (donate) from Breeze
- LGPLv3 like the others
6 years ago
Adriaan de Groot e7dedbbfe0 [libcalamaresui] Apply coding style to remainder 6 years ago
Adriaan de Groot d44e8f6115 [libcalamaresui] Apply coding style to viewpages/ 6 years ago
Adriaan de Groot 6f74463a80 [libcalamaresui] Apply coding style to utils/ 6 years ago
Adriaan de Groot 1b6aed8c40 [libcalamaresui] Apply coding style to modulesystem/ 6 years ago
Adriaan de Groot 6224d6605b [libcalamaresui] Apply coding style to widgets/ 6 years ago
Adriaan de Groot 27c3a5a11d [calamares] Apply coding style 6 years ago
Adriaan de Groot f31ff8b9ea [libcalamares] Apply coding style to PluginFactory 6 years ago
Adriaan de Groot ccd707b23a [libcalamares] Apply coding style
- .. or, rather, avoid re-formatting tables in future.
6 years ago
Adriaan de Groot 09a36cd669
Merge pull request #1221 from a-wai/add-base-10-sizes
Add 'base 10' partition size multiples
6 years ago
Adriaan de Groot 54767812fe
Merge pull request #1218 from a-wai/fix-unpackfs
Fix error in unpackfs
6 years ago
Arnaud Ferraris a51d612afa Revert "libcalamares: Align partition sizes on actual sectors"
This reverts commit 40202705ff.
6 years ago
Adriaan de Groot 1d047839c7
Merge pull request #1220 from a-wai/prevent-int-overflow
Prevent integer overflow when parsing configuration
6 years ago
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>
6 years ago
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>
6 years ago
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
6 years ago
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>
6 years ago
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>
6 years ago
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>
6 years ago
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>
6 years ago
Adriaan de Groot 1711071c58 [libcalamares] Swap out own PluginLoader for KCoreAddons 6 years ago
Adriaan de Groot 44991e700b [libcalamaresui] Check KCoreAddons version directly 6 years ago
Adriaan de Groot bcb7f17584 [calamares] Make KCoreAddons a requirement
- Require KCoreAddons for KAboutData (also, optionally, for KOSRelease)
6 years ago
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.
6 years ago
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.
6 years ago
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
6 years ago
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
6 years ago
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.
6 years ago
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.
6 years ago
Adriaan de Groot 41173360a7 [libcalamares] We're just testing file modes, not whole int range 6 years ago
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.
6 years ago
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
6 years ago
Adriaan de Groot 739363cecd [libcalamaresui] Fix initialization order (reduce warnings) 6 years ago
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".
6 years ago
Adriaan de Groot dc09c5700b [calamares] Remove unreachable return 6 years ago
Adriaan de Groot f5af4818fb [calamares] Apply current coding style 6 years ago
Adriaan de Groot ea0acf1606 [calamares] Apply current coding style 6 years ago
Adriaan de Groot ab7a559e03 [calamares] Add headerData to model (Key, Value columns) 6 years ago
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.
6 years ago
Adriaan de Groot 2bd03ad3c0 [calamares] Add reload() to update model after underlying data 6 years ago
Adriaan de Groot 2a3ab4dbe7 [calamares] Add a model for viewing QVariants directly 6 years ago
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.
6 years ago
Adriaan de Groot 85d28af1e2 [libcalamaresui] Don't include QJsonModel 6 years ago
Adriaan de Groot 419329ee49 [libcalamares] Remove friend, add accessor, make includes explicit 6 years ago
Adriaan de Groot 695e16bb87 [libcalamaresui] Drop QJsonModel from the library 6 years ago
Adriaan de Groot 48a25858f0 [partition] Chase 3rdparty move 6 years ago
Adriaan de Groot b31c6c3a22 [calamares] Chase 3rdparty move 6 years ago
Adriaan de Groot c83e95e66a [libcalamaresui] Chase 3rdparty move
- Widgets need to #include from different path
6 years ago
Adriaan de Groot 2166eb4511 [libcalamares] [libcalamaresui] Adjust for moved sources 6 years ago
Adriaan de Groot 937ff608eb [libcalamaresui] Move spinner widget to 3rd party 6 years ago
Adriaan de Groot e7c66de4df [libcalamares] Move kdsingleapplicationguard to 3rdparty 6 years ago
Adriaan de Groot 47dbf9ab0c [libcalamares] Move 3rd party code to separate dir 6 years ago
Adriaan de Groot 115f5bfd82 [libcalamares] Apply coding style to remainder of geoip/ 6 years ago
Adriaan de Groot ec073ee188 [libcalamares] Apply coding style to geoip/ 6 years ago
Adriaan de Groot 6e9f1be9e9 [libcalamares] Don't reformat string tables in GeoIP 6 years ago
Adriaan de Groot 81fa1735b1 [libcalamares] Apply current coding style 6 years ago
Adriaan de Groot 6b659b6f48 [libcalamares] Apply current coding standard to locale/ 6 years ago
Adriaan de Groot 8636689cea [packagechooser] Fix tests when run from in-source build 6 years ago
Adriaan de Groot 251e16e72c [libcalamares] Allow en_US locale for tests as well 6 years ago
Adriaan de Groot 20f43225b5 [packagechooser] Adjust AppData path for tests
- running tests by hand or from "make test" uses different paths.
6 years ago
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.
6 years ago
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.
6 years ago
Adriaan de Groot 194a562727 [packagechooser] Expand tests with override features 6 years ago
Adriaan de Groot a4362dac65 [packagechooser] Change tests for modified API 6 years ago
Adriaan de Groot 5d4c3ea92c [packagechooser] Don't give a default pixmap 6 years ago
Adriaan de Groot 0b72006ffb [packagechooser] Use overrides on AppData for example 6 years ago
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.
6 years ago
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.
6 years ago
Adriaan de Groot 9a8b2c5a1e [packagechooser] CHeck that AppData load was succesful 6 years ago
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.
6 years ago
Adriaan de Groot 431c4de77f [packagechooser] Use GUI for tests
- Because we'll be creating Pixmaps, we need to have a GUI main.
6 years ago
Adriaan de Groot 6821b14d00 [packagechooser] Enable logging in tests 6 years ago
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).
6 years ago
Adriaan de Groot 6c41151f80 [packagechooser] Just one screenshot, and mark package unused 6 years ago
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.
6 years ago
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.
6 years ago
Adriaan de Groot 8d3546f0b3 [packagechooser] Expand the example config with translated entries 6 years ago
Adriaan de Groot 6a8e10837d [libcalamares] Drop unneeded debugging 6 years ago
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.
6 years ago
Adriaan de Groot 56db9e9341 [packagechooser] Use translated strings 6 years ago
Adriaan de Groot fd75b33784 [libcalamares] Add default constructor to TranslatedString 6 years ago
Adriaan de Groot 3560ea6622 Merge branch 'master' into software-chooser 6 years ago
Adriaan de Groot 39b7e4c55f Merge branch 'translatable-configuration' 6 years ago
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.
6 years ago
Adriaan de Groot a9292d0c75 [libcalamares] Implement getting the string 6 years ago
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.
6 years ago
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.
6 years ago
Adriaan de Groot 28293ef77a [libcalamares] Expand tests of TranslatableString 6 years ago
Adriaan de Groot 5d6ccfe8fc [libcalamares] Adjust tests for new Esperanto support 6 years ago
Adriaan de Groot 18e2f2ae52 [libcalamares] Add tests for new TranslatedString
- Test that construction works as expected
 - Add count() method to TranslatedString for testing purposes.
6 years ago
Adriaan de Groot 19ca1b3c30 [libcalamares] One missing bit of coding style 6 years ago
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.
6 years ago
Adriaan de Groot 1afa9c4d08 [libcalamares] Apply current coding style to all of libcalamares/ 6 years ago
Adriaan de Groot 7fcb7be1e4 [libcalamares] Apply current coding style to libcalamares/locale/ 6 years ago
Adriaan de Groot 43ba59361b [libcalamares] Don't format generated files of CLDR data 6 years ago
Adriaan de Groot fa2b94d931 [libcalamares] Apply current coding style to libcalamares/partition/ 6 years ago
Adriaan de Groot 312865cdd9 [libcalamares] Fix build on FreeBSD 6 years ago
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.
6 years ago
Adriaan de Groot 29b9a21f59 [libcalamares] Don't format files copied from KCoreAddons 6 years ago
Adriaan de Groot b7f54a3866 [libcalamares] Don't break string tables by reformatting 6 years ago
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).
6 years ago
Adriaan de Groot 9a52430e74 [packagechooser] Too many 'o's in test name 6 years ago
Adriaan de Groot 89dcae393e Merge remote-tracking branch 'origin/master' into software-chooser
- Pull in build fix
6 years ago
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
6 years ago
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
6 years ago
Adriaan de Groot adb939b2e8 [packagechooser] Word-wrap package descriptions 6 years ago
Adriaan de Groot d5275d5e10 [packagechooser] Allow the model to set the introductory text 6 years ago
Adriaan de Groot 047a300a51 [packagechooser] Remove unneeded debug 6 years ago
Adriaan de Groot 140c0db7a4 [packagechooser] Set GlobalStorage packagechooser_<id> 6 years ago
Adriaan de Groot c59ffc7765 [packagechooser] Set default ID as documented 6 years ago
Adriaan de Groot b711c791bd [packagechooser] Fix build, tidy code 6 years ago
Adriaan de Groot 87d7b2a5c0 [packagechooser] Allow setting an ID for the module's GS key 6 years ago
Adriaan de Groot 2f2080727d Merge branch 'master' into software-chooser 6 years ago
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.
6 years ago
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.
6 years ago
Adriaan de Groot e8f342c0a5 [calamares] Add test-loader option for UI 6 years ago
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.
6 years ago
Adriaan de Groot 2fd2e90bf0 [calamares] Always run module tester with verbose logging 6 years ago
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)
6 years ago