====== Cucumber Linux 2.0 Roadmap ====== ===== Task Status Key ===== For simplicity and cleanliness sake, please use the following abbreviations for the status of tasks: * NS = Not Started * HW = Help Wanted * WIP = Work in Progress * DONE = Done/Completed If the status is 'HW', that means we are seeking developers to help with it. If you would like to help with a task that is not listed as HW (Help Wanted) or already has a developer assigned, please contact that developer directly (see https://cucumberlinux.com/developers.php for developer contact info). Otherwise, please contact Scott (scott@cucumberlinux.com). ====== Release Timeline ====== This is a rough, working release timeline. It will be update become more detailed as the 2.0 development/release cycle progresses. * June 2018 * Active development begins * cucumber-2.0 branched off of cucumber-1.1. * January 2019 * Cucumber Linux 2.0 released. * November 29, 2021 * Cucumber Linux 2.0 End of Full Support. * March 1, 2022 * Cucumber Linux 2.0 End of Life. ====== Major Changes ====== ===== Packages to Add and Remove in 2.0 ===== ==== New Packages to Build and Add ==== ^ Package ^ Package Group ^ Packager ^ Status ^ Details ^ | LibreSSL | net-base/libressl | Scott Court | DONE | We will be replacing OpenSSL with LibreSSL in Cucumber Linux 2.0 due to LibreSSL's superior security. | | Meson | dev-general/meson | Scott Court | NS, HW | This was added in LFS 8.1 and some packages have hinted that they will be transitioning to the ninja/meson build system. Xorg will be switching to ninja/meson in the next release, so this will be necessary to build future X servers. | | Ninja | dev-general/ninja | Scott Court | NS, HW | This was added in LFS 8.1 and some packages have hinted that they will be transitioning to the ninja/meson build system. Xorg will be switching to ninja/meson in the next release, so this will be necessary to build future X servers. | | i3 | x-general/i3 | Maarten Hendrickx | NS | Why not? Everyone loves i3! | | OpenBox | x-general/openbox | Scott Court | NS, HW | This will complete our goal of adding three window managers: one that can completely stand alone well (WindowMaker), one basic windowing manager (OpenBox) and one tiling manager (i3). | | Neovim | base/neovim | Scott Court | DONE | We will be replacing Vim with Neovim in Cucumber Linux 2.0 since Neovim is more functional, modern and secure than Vim (and Neovim still maintains backwards compatibility with Vim). | | qt5 | x-general/qt5 | Scott Court | NS, HW | More and more stuff is coming to depend on qt5 specifically, so we'll add it to satisfy those packages. | | rustc | dev-general/rustc | Scott Court | DONE | Firefox 60 ESR requires a Rust compiler to build. | ==== New Features to Add to Existing Packages ==== ^ Package ^ Package Group ^ Developer ^ Status ^ Details ^ | GCC | dev-base/gcc | None | HW | Enable Go support | | LLVM | dev-general/llvm | None | WIP | Enable the Clang & Clang++ front ends | ==== Packages to Import from the Extra or Testing groups ==== These packages have already been built (or will have already been built) by the time we start building 2.0; however, they are not included in a base or general package group and are therefore not included on the installer and are not installed by default. This is a list of packages that will be moved into a mainline base or general group come Cucumber Linux 2.0. ^ Package ^ New Package Group ^ Old Package Group ^ | Pale Moon | xapps-general/palemoon | xapps-extra/palemoon | | Dovecot | net-general/dovecot | net-extra/dovecot | | OpenSMTPD | net-general/opensmtpd | net-extra/opensmtpd | | VSFTPD | net-general/vsftpd | net-extra/vsftpd | | mailx | net-general/mailx | net-extra/mailx | | libasr | lib-general/libasr | lib-extra/libasr | | libevent | lib-general/libevent | lib-extra/libevent | ==== Packages to Remove ==== ^ Package ^ Package Group ^ Rationale ^ | OpenSSL | net-base/openssl | We will be replacing OpenSSL with LibreSSL. | | Vim | base/vim | We will be replacing Vim with Neovim. | | Python 2 | lang-base/python2 | Python 2 will cease being supported at the end of 2019. | ===== Core Package Updates ===== ^ Package ^ Old Version (1.1) ^ New Version (2.0) ^ | **Kernel** ||| | base/linux | 4.9 | 4.14 | | kernel/linux-source | 4.9 | 4.14 | | **Toolchain** ||| | base/glibc | 2.23 | 2.27 | | dev-base/binutils | 2.26 | 2.30 | | dev-base/gcc | 5.3.0 | 7.3.0 | | **Daemons** ||| | net-general/dovecot | 2.2 | 2.3 | | net-general/mariadb | 10.1 | 10.3 | | net-general/rsync | 3.1.2 | 3.1.3 | | **Scripting Language Interpreters** ||| | lang-base/perl | 5.26 | 5.28 | | lang-general/php | 7.2 | 7.3 | | lang-base/python3 | 3.6 | 3.7 | | **Libraries** ||| | base/ncurses | 6.0 | 6.1 | | base/readline | 6.3 | 7.0 | | net-base/libressl | N/A | 2.7.3 | | **Utilities** ||| | base/coreutils | 8.25 | 8.29 | | net-base/gnupg | 2.1 | 2.2 | The rationale for these decisions is explained at [[https://cucumberlinux.com/~scott/release_proposals/|https://cucumberlinux.com/~scott/release_proposals/]]. The full list of core packages can be found at the [[devdocs:core_packages|Core Packages page]]. ====== Minor Changes/To Do List ====== ===== How to Read These Tables ===== Here is a brief guide on how to read the tables below: * #: A unique number to identify the task. Please increment this for each new task you add. * Description: A description of what needs to be done. * Status: The current status of this task. Please use the codes from [[devdocs:2_0_roadmap#task_status_key|Task Status Key]] * Developer(s): the developer(s) that have been assigned to this task. ===== Miscellaneous To Do List ===== This is the to do list for miscellaneous development tasks for Cucumber Linux 2.0. For the general Cucumber Linux to do list, see the [[devdocs:todo|To Do Page]]. ^ # ^ Status ^ Developer(s) ^ Description ^ | 1 | NS, HW | Scott Court | Add multilingual support to the installer. | | 2 | NS, HW | Scott Court | Neaten up the installer and move configuration tasks into setup scripts. | | 3 | NS | Maarten Hendrickx | Translate the installer into French. | | 4 | NS | Maarten Hendrickx | Translate the installer into Dutch. | | 5 | NS | Scott Court | Add optional dependency resolution to Pickle. | | 6 | NS | Scott Court | Maybe add some way to do automatic updates? | | 7 | NS | Scott Court | Rewrite Pickle. | | 8 | NS, HW | Scott Court | Add file checksum and post installation package integrity verification to the package management system . | | 9 | NS, HW | Scott Court | Add support for doinstonly.sh and doupgradeonly.sh to pkgtools. Also make installpkg/upgradepkg run the setup.* scripts. | | 10 | DONE | Scott Court | Make a 4.14 kernel configuration and update the kernel to 4.14. | | 11 | DONE | Maarten Hendrickx | Update the toolchain and test it. | | 12 | DONE | Maarten Hendrickx | Make an automated system for building the Linux from Scratch chapter 5 environment. | | 13 | WIP | Everyone | Convert the Cucumber 1.x buildscript to Cucumber 2.x buildinfo files. See assignments/progress [[https://docs.google.com/spreadsheets/d/1wz0QenLKYio_4zqJZsloEqlsXk5LfBrb34N6jiZ60eQ/edit#gid=0|here]]. | | 14 | WIP | Everyone | Update packages to new versions. See assignments/progress [[https://docs.google.com/spreadsheets/d/1wz0QenLKYio_4zqJZsloEqlsXk5LfBrb34N6jiZ60eQ/edit#gid=0|here]]. |