Calamares - distribution indipendent installer
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

CHANGES 23KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554
  1. This is the changelog for Calamares. For each release, the major changes and
  2. contributors are listed. Note that Calamares does not have a historical
  3. changelog -- this log starts with version 3.2.0. The release notes on the
  4. website will have to do for older versions.
  5. # 3.2.15 (2019-10-11) #
  6. This release contains contributions from (alphabetically by first name):
  7. - No other contributors this time around.
  8. ## Core ##
  9. - No changes to core functionality
  10. ## Modules ##
  11. - *displaymanager* module now treats *sysconfig* as a regular entry in the
  12. *displaymanagers* list, and the *sysconfigSetup* key is used as a
  13. shorthand to force **only** that entry in the list. #1253
  14. - *machineid* module has been re-written in C++ and extended with
  15. a new configuration key to generate urandom pool data. #1252
  16. - *unpackfs* now supports a special *sourcefs* value of `file`
  17. for copying single files (optionally with renaming) or directory
  18. trees to the target system.
  19. - *unpackfs* now support an *exclude* and *excludeFile* setting for
  20. excluding particular files or patters from unpacking. #1229
  21. # 3.2.14 (2019-09-30) #
  22. This release contains contributions from (alphabetically by first name):
  23. - Andrius Štikonas
  24. - Harald Sitter
  25. ## Core ##
  26. - No changes to core functionality
  27. ## Modules ##
  28. - *locale* module no longer recognizes the legacy GeoIP configuration.
  29. This has been deprecated since Calamares 3.2.8 and is now removed.
  30. - *packagechooser* module can now be custom-labeled in the overall
  31. progress (left-hand column). #1228
  32. - *displaymanager* module now recognizes KDE Plasma 5.17.
  33. - *displaymanager* module now can handle Wayland sessions and can detect
  34. sessions from their .desktop files. #1247 #1248
  35. - *unpackfs* now has special handling for *sourcefs* setting "file"
  36. (so you can copy single files or directories that are on the source
  37. system, directly to the target). #1188 #1181
  38. # 3.2.13 (2019-08-30) #
  39. This release contains contributions from (alphabetically by first name):
  40. - Arnaud Ferraris
  41. - Arnaud Rebillout
  42. - Bill Auger
  43. - Kevin Kofler
  44. ## Core ##
  45. - The Calamares standard coding style -- embodied in `ci/calamaresstyle`
  46. has had a few updates and has now been consistently applied across
  47. the core codebase (e.g. libcalamares, libcalamaresui, calamares, but
  48. not the modules).
  49. - *KCoreAddons* is now a required dependency. This lets us drop a chunk
  50. of code that was copied from KCoreAddons years ago, and use the
  51. (maintained!) upstream version instead. It also gives us KMacroExpander
  52. everywhere, which will simplify code for handling substitutions
  53. in configuration files.
  54. - *Slideshows* now have a new property *activatedInCalamares* which
  55. controls the keyboard shortcuts (and can control timers and other
  56. properties of the slideshow, too).
  57. ## Modules ##
  58. - The *packagechooser* module can load data from the config-file,
  59. from AppData XML files referred by the config-file, and (new) also
  60. from AppStream caches by referring to an application's AppStream id. #1212
  61. - The *partition* module now understands the units *KB*, *MB*, *GB* which
  62. are powers-of-ten sizes, alongside the powers-of-two sizes that it already
  63. used. (thanks to Arnaud)
  64. - The *welcome* module now supports a *Donate* button if *showDonateUrl*
  65. is set to a non-empty URL. #1197
  66. - The *welcome* module can have URLs for the various buttons configured
  67. directly in the module configuration (rather than in `branding.desc`).
  68. # 3.2.12 (2019-08-07) #
  69. This release contains contributions from (alphabetically by first name):
  70. - apt-ghetto
  71. - Bill Auger
  72. - embar
  73. ## Core ##
  74. - Preliminary work to allow jobs to have a *weight* assigned to them
  75. has been added. This will allow the progress bar to better reflect
  76. progress by the amount of work done rather than purely by the
  77. number of jobs. (Thanks to Bill Auger)
  78. - Preliminary work has been added to post the installation log to a
  79. pastebin for bug reporting. (Thanks to Bill Auger)
  80. - Support for translated human-readable strings in Calamares
  81. config files has been added. This is used only in the *packagechooser*
  82. module (see below) but will expand to those modules that need
  83. user-visible strings from the configuration file (existing
  84. solutions need either gettext or Qt support).
  85. - Esperanto is now available when Qt version 5.12.2 or later is used.
  86. ## Modules ##
  87. - *fstab* A new configuration key *efiMountOptions* has been added, to
  88. allow setting filesystem options specifically for the EFI partition.
  89. (Thanks to apt-ghetto)
  90. - *packagechooser* is a new module for low-density package choices,
  91. e.g. for selecting a default desktop environment, or adding some
  92. proprietary drivers, or chosing browsers of office suites. It presents
  93. **one** collection of items -- at most ten or so, because of the UI --
  94. and the user can select zero or more of them. The behavior is
  95. configurable, and package information can be set through the Calamares
  96. configuration file or by reading AppData files for the packages. #426
  97. # 3.2.11 (2019-07-06) #
  98. This release contains contributions from (alphabetically by first name):
  99. - No other contributors this time around.
  100. This is a security release with no functional changes (except for
  101. improved security) relative to 3.2.10. The Calamares team would like
  102. to acknowledge the help of the following people in reporting and
  103. understanding the issues (alphabetically by first name):
  104. - Kevin Kofler
  105. - Seth Arnold
  106. - Simon Quigley
  107. - Thomas Ward
  108. Both CVE's have been resolved.
  109. ## Core ##
  110. No core changes.
  111. ## Modules ##
  112. - *initramfs* could create an initramfs with insecure permissions.
  113. Since the keyfile is included in the initramfs, an attacker could
  114. read the file from the initramfs. #1190 CVE-2019-13178
  115. - *luksbootkeyfile* created a key file where a window of opportunity
  116. existed where the key file could have too-lax file permissions.
  117. #1191 CVE-2019-13179
  118. # 3.2.10 (2019-06-28) #
  119. This release contains contributions from (alphabetically by first name):
  120. - No other contributors this time around.
  121. Distributions are **advised** to check the slideshow they use for the
  122. installation step; changes in loading and translation mechanisms may
  123. require changes in the slideshow.
  124. ## Core ##
  125. - With this release, option *WITH_PYTHONQT* changes default to **off**.
  126. There does not seem to be any serious use of the PythonQt API and
  127. the UI opportunities it offers, so begin the process of deprecating
  128. and removing that. Sometime in the future, QML pages will fill the
  129. gap for easily-prototyped-yet-slick UI elements.
  130. - A crash when no *finished* page (or rather, no page at all) is
  131. configured after the last *exec* section of the sequence has been
  132. solved. The *finished* page can be left out (but then you don't get
  133. the restart-now functionality). #1168
  134. - The *slideshow* which is run during installation now has API versions.
  135. API version 1 (the default) runs as before, where the slideshow is loaded
  136. when the installation starts. API version 2 loads the slideshow on
  137. Calamares startup, thus improving responsiveness. Documentation
  138. in `src/branding/README.md`. #1152
  139. - The example slideshow now uses API version 2.
  140. ## Modules ##
  141. - *initramfs* has been changed from a Python module to a C++ module.
  142. Packaging will need to adjust now it installs a .so instead of a .py.
  143. The module itself functions as before. It does have a new configuration
  144. option, to change the version passed as to the `-k` option of
  145. update-initramfs. #1180
  146. - *partition* Now has its own setting for *requiredStorage*, duplicating
  147. the same setting in the *welcome* module. This is useful for
  148. configurations where no *welcome* module is used, but a minimum
  149. size must be checked anyway. #1169
  150. # 3.2.9 (2019-06-03) #
  151. This release contains contributions from (alphabetically by first name):
  152. - Kevin Kofler
  153. ## Core ##
  154. No user- or deployer-visible changes. Bugfixing as usual, see the
  155. milestone for details.
  156. ## Modules ##
  157. - *branding* now supports os-release variables in the *strings* section,
  158. which allows re-using (at runtime) information set in /etc/os-release .
  159. This requires KDE Frameworks 5.58. #1150
  160. - *branding* allows the use of FreeDesktop.org icon names for the
  161. *productLogo* and *productIcon* keys. If a file is named there, then
  162. the file is used, and otherwise the icon is looked up in the current
  163. theme. #1160
  164. - *packages* On Arch, with the `pacman` package manager, avoid a hang
  165. during system update. #1154
  166. - *welcome* allows a custom image path or icon name to be set for the
  167. language-selection drop-down (instead of the international standard one).
  168. # 3.2.8 (2019-05-10) #
  169. This is a **source-incompatible** release of Calamares. Include files
  170. have been shuffled around, so third-party C++ modules will need
  171. adjustment to the changed names.
  172. This release contains contributions from (alphabetically by first name):
  173. - Arnaud Ferraris
  174. - Kevin Kofler
  175. ## Core ##
  176. - All user-visible texts referring to "MB" and "GB" now use the standard
  177. "MiB" and "GiB" wording, which matches what we were actually calculating
  178. with (i.e. 2^20 and 2^30 respectively). #1129
  179. - The side-pane, which shows the list of steps that will be executed,
  180. now tries to fit the text (name of each module) into the available space
  181. by shrinking the font as needed. #1137
  182. - *libcalamares* (accidentally) linked with Qt's GUI libraries when
  183. PythonQt was found. This led to the odd situation where the non-GUI
  184. Calamares library depends on a bunch of GUI libraries.
  185. - *libcalamares* The `utils/` subdirectory has been hugely refactored,
  186. with functionality split out into separate files. C++ modules will
  187. need to have their `#include` names updated. Basically, users of
  188. `utils/CalamaresUtils.h` will need to include the header file for
  189. the functionality that is actually used.
  190. ## Modules ##
  191. - *finished* has a new mechanism for configuring the behavior of the
  192. *restart now* button. The old-style boolean configuration is still
  193. supported but generates a warning. #1138
  194. - *locale* module GeoIP configuration has a new preferred format.
  195. See `locale.conf` for details. The old configuration is still
  196. supported but will be phased out before 3.3.0 -- in particular,
  197. support for "legacy" format will be removed, since that was a
  198. crutch for the disappearance of one GeoIP provider in 2018.
  199. - *oemid* is a new module for configuring OEM phase-0 (image pre-mastering,
  200. or pre-deployment) things. It has limited functionality at the moment,
  201. writing only a single batch-identifier file. #943
  202. - *welcome* can now do GeoIP lookups as well (but be careful with the
  203. configuration, since you need a GeoIP that provides country information,
  204. not just timezones). This will let Calamares select a starting language
  205. that matches where it is -- which might not be useful at all. #934
  206. - All Python modules now bail out gracefully on (at least some) bad
  207. configurations, rather than raising an exception. The pre-release
  208. scripts now test for exceptions to avoid shipping modules with
  209. ImportError or SyntaxError results.
  210. # 3.2.7 (2019-04-27) #
  211. This is a **hotfix** release for regressions introduced in the
  212. Python modules. The *localecfg* module was unusable because of
  213. a missing `import`.
  214. # 3.2.6 (2019-04-25) #
  215. This release contains contributions from (alphabetically by first name):
  216. - Arnaud Ferraris
  217. - Dominic Hayes (feren)
  218. - Raul Rodrigo Segura (raurodse)
  219. ## Core ##
  220. * Under-the-hood code cleanups in lots of parts of the core. Calamares now
  221. builds without warnings when Clang 8 is used.
  222. * A new *disable-cancel-during-exec* setting provides more fine-grained
  223. control than *disable-cancel*, which hides the button entirely.
  224. #1122 (Thanks to Dominic, FerenOS)
  225. * A branding module can now also cause a stylesheet to be loaded, which
  226. will be applied to the widgets inside Calamares. #961 (Thanks to Raul)
  227. ## Modules ##
  228. * All of the Python-based modules now have translations enabled. #991
  229. * *Displaymanager* module has improved support for LightDM configuration.
  230. #1123 (Thanks to Dominic, FerenOS)
  231. * *License* module can now display local files inline, and scrolls to
  232. allow longer lists of licenses and to support long license texts
  233. displayed inline. #1124 #1125 #1052
  234. * *Partition* module has additional checks for validity partition layouts.
  235. #1127 (Thanks to Arnaud)
  236. * *Welcome* module has improved usability: a standard icon
  237. alongside the *Language* label, for improved recognition,
  238. and improved language-list display and sorting. #1107
  239. # 3.2.5 (2019-04-15) #
  240. This release contains contributions from (alphabetically by first name):
  241. - Arnaud Ferraris
  242. - Dan Simmons
  243. - Gabriel Craciunescu
  244. ## Core ##
  245. * View modules (in C++) can now perform their own requirements-checking
  246. to see if installation makes sense. This expands upon the existing
  247. requirements checks in the welcome module (RAM, disk space, ..).
  248. The checks have been made asynchronous, so that responsiveness during
  249. requirements-checking is improved and the user has better feedback.
  250. * Support for building an AppImage of Calamares has been added to the
  251. `ci/` directory. There are use-cases where a containerized build and
  252. configuration make sense rather than having Calamares installed in the
  253. host system. (Thanks to the AppImage team, Alexis)
  254. * OEM mode (phase-1) now correctly refers to Calamares as a "Setup Program"
  255. rather than an installer. #1100 (Thanks to Arnaud)
  256. ## Modules ##
  257. * *Bootloader* module: a serious bug introduced in 3.2.4 which prevents
  258. succesful boot after installation on EFI machines, has been repaired.
  259. (Thanks to Gabriel) #1104
  260. * *Displaymanager* module: it is no longer a fatal error to not have any
  261. display-managers. #1095
  262. * *Partition* module: it is now possible to build without libparted. Since
  263. KPMCore may not need this library anymore, it is a dependency that will
  264. be dropped as soon as it is feasible. Add this to the CMake flags:
  265. `-DCMAKE_DISABLE_FIND_PACKAGE_LIBPARTED=ON`
  266. * *Partition* module: the location that is selected for the bootloader,
  267. no longer changes when a new partition is created. #1098
  268. * Python modules: several modules have had translations added. This is
  269. usually only visible when the module runs as part of the *exec* step,
  270. when the module's *pretty name* is displayed. In addition, some error
  271. messages are now translated.
  272. * *UnpackFS* module: improved progress reporting and tests. #565
  273. # 3.2.4 (2019-02-12) #
  274. This release contains contributions from (alphabetically by first name):
  275. - Alf Gaida
  276. - aliveafter1000
  277. - Arnaud Ferraris
  278. - Caio Jordão Carvalho
  279. - Collabora LTD
  280. - Gabriel Craciunescu
  281. - Kevin Kofler
  282. - Philip Mueller
  283. - Scott Harvey
  284. ## Core ##
  285. * The Calamares application now recognizes the `-X` or `--xdg-config`
  286. option, which adds XDG_DATA_DIRS to the places used to find QML
  287. and branding directories, and XDG_CONFIG_DIRS to the places used
  288. to find the global settings and module configurations. This allows
  289. a more fine-grained, and more layered, approach to setting up
  290. Calamares configurations (in particular, distro's can **add**
  291. configuration files and give them priority, instead of **forking**
  292. configuration files).
  293. * The *branding* file now contains settings that control the size
  294. and resize behavior of Calamares. See the branding file for
  295. more documentation. In particular, the setting *windowExpanding*
  296. can be set to *normal*, *fullscreen* or *noexpand*.
  297. * The `settings.conf` file can now configure whether the *Cancel* button
  298. is shown (this isn't a branding thing, because it's quite fundamental
  299. to the workflow of the installer).
  300. ## Modules ##
  301. * The *partition* module supports RAID devices, but only when Calamares
  302. is compiled with the newest KPMCore release (3.3.0).
  303. * The calculation of required space -- including swap -- has been simplified,
  304. and Calamares no longer reserves 2GiB of space in calculations for internal
  305. use (this means that it no longer mysteriously drops swap when the disk
  306. size is close to the required installation size).
  307. * The name of the type of default filesystem (e.g. ext4 or btrfs) is now handled
  308. case- and localization-insensitively. This means that *btrfs* is now always
  309. an acceptable spelling.
  310. * The currently-selected disk device is remembered between manual partitioning
  311. and the partitioning-overview pages. (Thanks to Arnaud)
  312. * *partition* There is new support for partitioning layout presets.
  313. See `partition.conf` for documentation and details.
  314. * The *keyboard* module now handles the (bogus) Austrian keymap for
  315. the system console properly. (Thanks to Kevin)
  316. * The *preservefiles* module now has a mechanism for setting the permissions
  317. (and ownership) of preserved files. (Thanks to Scott)
  318. * New module *fsresizer* can be used to resize filesystems. It is intended
  319. for use in OEM installs where an image of fixed size is created,
  320. and then sized to the actual SD card the user has used.
  321. * The *mount* module now handles missing *extraMounts* and *extraMountsEfi*
  322. keys gracefully (this is probably a misconfiguration, though, and gives a
  323. warning).
  324. * The *packages* module now supports pre- and post-script options
  325. for all operations, not just during install (keep in mind that
  326. these run as three separate shells, though).
  327. * A new *rawfs* module supports straightforward copying of filesystems from
  328. the installation media to the target stystem. This can be used, for instance,
  329. for block-level-identical installations.
  330. # 3.2.3 (2019-01-09) #
  331. This release contains contributions from (alphabetically by first name):
  332. - aliveafter1000
  333. ## Core ##
  334. There are no core changes in this release.
  335. ## Modules ##
  336. * *partition* Fixed bug where, during detection of existing systems, the
  337. existing system partitions may be mounted and then files deleted.
  338. This is a **limited** version of the patch from aliveafter1000
  339. that will be in 3.2.4, which tries harder to mount filesystems
  340. read-only and unmodifiable.
  341. * *locale* It was possible to set the installer and system language
  342. (e.g. to German) while the global storage value for *locale*
  343. remained set to English. Then no localization packages are installed
  344. (see feature `${LOCALE}` in `packages.conf`). Reported downstream
  345. in Netrunner.
  346. # 3.2.2 (2018-09-04) #
  347. This release contains contributions from (alphabetically by first name):
  348. - Andrius Štikonas
  349. - artoo@cromnix.org
  350. - Caio Jordão Carvalho
  351. - Harald Sitter
  352. - Philip Müller
  353. - Simon Quigley
  354. - Walter Lapchynski
  355. ## Core ##
  356. * Example configurations are **no longer installed** by default.
  357. The default setting for *INSTALL_CONFIG* has changed. Distributions
  358. are strongly encouraged to write their own configuration files and
  359. not rely on the example configuration files. Example configurations
  360. may change unpredictably.
  361. * It is now possible to express module dependencies through the
  362. *requiredModules* key in `module.desc`. All of the required modules
  363. for a given module must occur in the sequence **before** the module
  364. requiring them. None of the core modules use this facility.
  365. * The search paths for QML files, branding descriptors and module
  366. descriptors have been revamped and now self-document in the log.
  367. * A new `ci/RELEASE.sh` script has been added to streamline releases;
  368. it is not guaranteed to work anywhere in particular though.
  369. ## Modules ##
  370. * When multiple modules are mutually exclusive, or don't make sense
  371. to enable concurrectly, a new `USE_<foo>` framework has been added
  372. to CMake to simplify the selection of modules. This is in addition
  373. to the existing `SKIP_MODULES` mechanism.
  374. * Various off-by-one-sector errors in the automatic partitioning
  375. mode have been corrected. In addition, swap space is calculated
  376. a little more conservatively.
  377. * A new module has been added to the core which can configure openrc
  378. services. To make services configuration consistent:
  379. - The *services* module has been **renamed** *services-systemd*,
  380. - The openrc module is named *services-openrc*,
  381. - At CMake time, it is possible to select all of the services modules,
  382. or one specific one, by setting the *USE_services* CMake variable.
  383. By default, all of the modules are built and installed.
  384. * The systemd-services module can now disable targets and mask both
  385. targets and services (which will allow you to break the system with
  386. a bad configuration). The configuration is a little more flexible
  387. because a service (or target) name can be used on its own with
  388. sensible defaults.
  389. * The displaymanager module has been entirely revamped. A long-standing
  390. bug which ignored the settings for default desktop has been fixed
  391. (thanks to Walter Lapchynski). Translations have been added to the
  392. error messages. Each DM now has an implementation class for doing
  393. all the configuration steps it needs. This groups the code needed for
  394. a specific DM (and presumably, per-distro) in one place.
  395. Distro's are **strongly advised** to re-test their DM configuration
  396. and installation with the revamped code.
  397. # 3.2.1 (2018-06-25) #
  398. This release contains contributions from (alphabetically by first name):
  399. - Bill Auguer
  400. - Gabriel Craciunescu
  401. - Phil Mueller
  402. - Raul Rodrigo Segura
  403. ## Core ##
  404. * Qt 5.7 is now the minimum required Qt version. Because KPMCore
  405. (a fairly fundamental dependency) requires Qt 5.7, Calamares
  406. has followed suit.
  407. * New testing application `loadmodule` for loading and running a
  408. single Calamares module.
  409. * New translations Belarussian and Korean.
  410. * Jobs can now be *emergency jobs* which run even after a failure.
  411. * Improved debugging when modules fail to load.
  412. * Bad configuration files will now cause the user-interface of
  413. Calamares to display an error message, rather than silently
  414. ignoring some configuration errors. This will certainly cause
  415. problems for distributions with sloppy configurations.
  416. ## Modules ##
  417. * New module preservefiles, keeps (log) files around after install;
  418. this duplicates functionality with the unmount module, but unmount
  419. is very late, rather limited, and fragile.
  420. * Interactiveterminal module now disables itself if build requirements
  421. are not met, rather than blocking the build.
  422. * Fixes in the timezone map data make the southern hemisphere more
  423. usable and put Reykjavik in its place.
  424. * The packages module can now update the target system if explicitly
  425. told to do so.
  426. * More paths and executables are configurable in the bootloader module.
  427. * Distributions are advised to review the `users.conf` setup **again**,
  428. as some changes in version 3.2.0 caused regressions downstream.
  429. * Distributions are advised to review their `locale.gen` files
  430. **again**. Previous changes were too restrictive, matching only
  431. the specific format Chakra Linux uses. Calamares now preserves
  432. all the comment-lines in the file and writes enabled locales
  433. at the end, with a descriptive comment.
  434. # 3.2.0 (2018-05-17) #
  435. This release contains contributions from (alphabetically by first name):
  436. - Alf Gaida
  437. - AlmAck
  438. - Caio Jordão Carvalho
  439. - Frede H
  440. ## Modules ##
  441. * UI annoyances in the partitioning module were fixed; the
  442. mount-point selector is now more obvious when no mount-point
  443. has been chosen, and the mount-point and flags are preserved
  444. when (re)editing partitions.
  445. * The handling of `@@ROOT@@` substitution in shellprocesses was
  446. backwards; this has been fixed (the substitution is made when
  447. running in the **host**).
  448. * The user shell is no longer hard-coded to `/bin/bash`,
  449. but follows the default setting for useradd(8), e.g.
  450. those set in `/etc/default/useradd`.