Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
en:manual:contrib:hyperbolabsd_roadmap [2024/04/14 14:47]
throgh
en:manual:contrib:hyperbolabsd_roadmap [2025/11/01 21:34] (current)
emulatorman
Line 2: Line 2:
  
 Todo lists are used by the developers when a software development is needed. This is common when there is a software development plan, such as the inclusion of new code or port code to the HyperbolaBSD kernel or userspace, new features, etc. The progress can be tracked here, and completed todo lists can be browsed as well. Todo lists are used by the developers when a software development is needed. This is common when there is a software development plan, such as the inclusion of new code or port code to the HyperbolaBSD kernel or userspace, new features, etc. The progress can be tracked here, and completed todo lists can be browsed as well.
 +
 +===== Important notes =====
 +
 +<note important>
 +**HyperbolaBSD** is under a **progressive** migration by replacing all non GPL-compatible code. It will be replaced with new compatible code under [[https://www.freebsd.org/copyright/freebsd-license/|Simplified BSD License]]((Known also as FreeBSD License or 2-clause BSD License)).  We do this in order to incorporate GPL code from other projects such as ReactOS, as well new code from scratch.
 +</note>
 +
  
 ===== Generic for Hyperbola GNU/Linux-libre ===== ===== Generic for Hyperbola GNU/Linux-libre =====
Line 52: Line 59:
   * Documentation for offline-installation (Responsible: [[https://www.hyperbola.info/members/developers/#throgh|throgh]])   * Documentation for offline-installation (Responsible: [[https://www.hyperbola.info/members/developers/#throgh|throgh]])
   * Ways forward to reach offline-installation (Responsible: [[https://www.hyperbola.info/members/developers/#throgh|throgh]])   * Ways forward to reach offline-installation (Responsible: [[https://www.hyperbola.info/members/developers/#throgh|throgh]])
-  * Remove pacman for finally supporting hyperman as drop-in replacement (Responsible: [[https://www.hyperbola.info/members/developers/#Emulatorman|Emulatorman]], [[https://www.hyperbola.info/members/developers/#throgh|throgh]]) +  * Remove pacman for finally supporting hyperman as drop-in replacement //**-> IN PROGRESS**// (Responsible: [[https://www.hyperbola.info/members/developers/#Emulatorman|Emulatorman]], [[https://www.hyperbola.info/members/developers/#throgh|throgh]], HarvettFox96
-  * Remove remnants of Arch GNU/Linux tools and replace with own implementations (Responsible: [[https://www.hyperbola.info/members/developers/#throgh|throgh]])+  * Remove remnants of Arch GNU/Linux tools and replace with own implementations //**-> IN PROGRESS**// (Responsible: [[https://www.hyperbola.info/members/developers/#throgh|throgh]])
   * Remove further packages being GNU/Linux-only focussed //**-> IN PROGRESS**// (Responsible: [[https://www.hyperbola.info/members/developers/#throgh|throgh]])   * Remove further packages being GNU/Linux-only focussed //**-> IN PROGRESS**// (Responsible: [[https://www.hyperbola.info/members/developers/#throgh|throgh]])
   * Enhancements for fonts and spell-checking //**-> IN PROGRESS**// (Responsible: [[https://www.hyperbola.info/members/developers/#throgh|throgh]])   * Enhancements for fonts and spell-checking //**-> IN PROGRESS**// (Responsible: [[https://www.hyperbola.info/members/developers/#throgh|throgh]])
-  * Enhancements for work without eudev / udev //**-> IN PROGRESS**// (Responsible: [[https://www.hyperbola.info/members/developers/#throgh|throgh]])+  * Enhancements for work without eudev / udev //**-> IN PROGRESS**// (Responsible: [[https://www.hyperbola.info/members/developers/#throgh|throgh]], HarvettFox96) 
 + 
 +===== Hyperbola GNU/Linux-libre Milky Way v0.4.6 ===== 
 +===  Final release for GNU/Linux-libre based version of Hyperbola === 
 + 
 +  * Fix and update packages reported being malfunctional or missing features (Responsible: [[https://www.hyperbola.info/members/developers/#throgh|throgh]]) 
 +  * Removal of udev-support and replacing with mdev (Responsible: HarvettFox96, saravia, [[https://www.hyperbola.info/members/developers/#throgh|throgh]]) 
 + 
 ===== HyperbolaBSD Canis Major v0.99-pre-alpha ===== ===== HyperbolaBSD Canis Major v0.99-pre-alpha =====
-===  Develop the HyperbolaBSD system - part 1 ===+===  Develop the HyperbolaBSD system === 
 + 
 +  * <del>Modularise kernel</del> //**-> DONE**// (Responsible: [[https://www.hyperbola.info/members/founders/#coadde|coadde]])
   * <del> Check all files with licenses issues ((Non-free licenses, unlicensed)) (kernel)</del> //**-> DONE**// (Responsible: [[https://www.hyperbola.info/members/founders/#Emulatorman|Emulatorman]] and [[https://www.hyperbola.info/members/developers/#bUst4gr0|bUst4gr0]])   * <del> Check all files with licenses issues ((Non-free licenses, unlicensed)) (kernel)</del> //**-> DONE**// (Responsible: [[https://www.hyperbola.info/members/founders/#Emulatorman|Emulatorman]] and [[https://www.hyperbola.info/members/developers/#bUst4gr0|bUst4gr0]])
   * <del>See if some of those unlicensed files are copyrightable in kernel (kernel)</del> //**-> DONE**// (Responsible: [[https://www.hyperbola.info/members/founders/#Emulatorman|Emulatorman]] and [[https://www.hyperbola.info/members/developers/#bUst4gr0|bUst4gr0]])   * <del>See if some of those unlicensed files are copyrightable in kernel (kernel)</del> //**-> DONE**// (Responsible: [[https://www.hyperbola.info/members/founders/#Emulatorman|Emulatorman]] and [[https://www.hyperbola.info/members/developers/#bUst4gr0|bUst4gr0]])
Line 67: Line 84:
   * <del>Check all files with licenses issues ((Non-free licenses, unlicensed)) (libc-headers)</del> //**-> DONE**// (Responsible: [[https://www.hyperbola.info/members/developers/#bUst4gr0|bUst4gr0]])   * <del>Check all files with licenses issues ((Non-free licenses, unlicensed)) (libc-headers)</del> //**-> DONE**// (Responsible: [[https://www.hyperbola.info/members/developers/#bUst4gr0|bUst4gr0]])
   * <del>See if some of those unlicensed files are copyrightable (libc-headers)</del> //**-> DONE**// (Responsible: [[https://www.hyperbola.info/members/developers/#bUst4gr0|bUst4gr0]])   * <del>See if some of those unlicensed files are copyrightable (libc-headers)</del> //**-> DONE**// (Responsible: [[https://www.hyperbola.info/members/developers/#bUst4gr0|bUst4gr0]])
 +  * <del>Contact original authors to release unlicensed code under [[https://creativecommons.org/publicdomain/zero/1.0/legalcode|CC0]] ((Known as Creative Commons 0 or Public Domain))</del> //**-> CANCELLED**//  (Reason: Decided to replace all of them with new compatible code)
 +  * <del>Contact original authors to remove [[https://www.gnu.org/licenses/bsd.html|the obnoxious BSD advertising clause]]</del> //**-> CANCELLED**// (Reason: Planned for the "HyperbolaBSD Sagittarius Roadmap")
 +  * <del>Develop userspace for i386 architecture</del> //**-> CANCELLED**// (Reason: only some code will be ported)
 +  * <del>Adapt userspace under [[en:project:fhs|FHS]] for i386 version (eg. binaries and libraries)</del> //**-> CANCELLED**// (Reason: only some code will be ported)
 +  * <del>Modularise userspace</del> //**-> CANCELLED**// (Reason: only some code will be ported)
   * <del>Rebrand kernel</del> //**-> DONE**// (Responsible: [[https://www.hyperbola.info/members/founders/#Emulatorman|Emulatorman]])   * <del>Rebrand kernel</del> //**-> DONE**// (Responsible: [[https://www.hyperbola.info/members/founders/#Emulatorman|Emulatorman]])
   * <del>Rebrand userspace</del> //**-> DONE**// (Responsible: [[https://www.hyperbola.info/members/founders/#Emulatorman|Emulatorman]])   * <del>Rebrand userspace</del> //**-> DONE**// (Responsible: [[https://www.hyperbola.info/members/founders/#Emulatorman|Emulatorman]])
Line 77: Line 99:
   * <del>Port userspace from GCC 4.2.1 to 8.4.0 (with HyperbolaBSD patches)</del> //**-> DONE**//  (Responsible: [[https://www.hyperbola.info/members/founders/#coadde|coadde]])   * <del>Port userspace from GCC 4.2.1 to 8.4.0 (with HyperbolaBSD patches)</del> //**-> DONE**//  (Responsible: [[https://www.hyperbola.info/members/founders/#coadde|coadde]])
   * <del>Port userspace from GNU C99 to GNU C17 standard</del> //**-> DONE**//  (Responsible: [[https://www.hyperbola.info/members/founders/#coadde|coadde]])   * <del>Port userspace from GNU C99 to GNU C17 standard</del> //**-> DONE**//  (Responsible: [[https://www.hyperbola.info/members/founders/#coadde|coadde]])
-  * Build the ported kernel under FreeBSD bmake //**-> IN PROGRESS**//  (Responsible: [[https://www.hyperbola.info/members/founders/#coadde|coadde]]) +  * <del>Build the ported kernel under FreeBSD bmake</del> //**-> DONE**//  (Responsible: [[https://www.hyperbola.info/members/founders/#coadde|coadde]]) 
-  * Build the ported userspace under FreeBSD bmake+  * <del>Prepare cleaned LLVM libraries without GCC dependencies</del> //**-> DONE**//  (Responsible: [[https://www.hyperbola.info/members/founders/#coadde|coadde]]) 
 +  *  <del>Repackage LLVM without GCC dependencies</del> //**-> CANCELLED**// (Reason: no needed for now) 
 +  *  <del>Package LLVM for cross-building</del> //**-> CANCELLED**// (Reason: no needed for now) 
 +  *  <del>Develop LLVM for HyperbolaBSD</del> //**-> CANCELLED**// (Reason: no needed for now) 
 +  *  <del>Build userspace under FreeBSD bmake and LLVM</del> //**-> CANCELLED**// (Reason: no needed for now) 
 +  * <del>Debug userspace and fix binary issues</del> //**-> CANCELLED**// (Reason: only some code will be ported) 
 +  * <del>Replace nonfree tools/applications with fully free third-party ones in userspace</del> //**-> CANCELLED**// (Reason: only some code will be ported) 
 +  * <del>Develop kernel for i386 architecture</del> //**-> DONE**// (Responsible: [[https://www.hyperbola.info/members/founders/#Emulatorman|Emulatorman]]) 
 +  * Port musl ((C standard library (“libc”) implementing the interfaces defined by the ISO C and POSIX standards, plus common extensions)) //**-> IN PROGRESS**// (Responsible: [[https://www.hyperbola.info/members/founders/#coadde|coadde]]) 
 +  * Port bsdutils ((BSD utilities)) 
 +  * Port bsdcore ((BSD core utilities)) 
 +  * Port ash ((Almquist shell (also known as A Shell, ash and sh) is a lightweight Unix shell originally written by Kenneth Almquist in the late 1980s.)) 
 +  * Port zsh ((UNIX command interpreter (shell) which of the standard shells most resembles the Korn shell (ksh) )) 
 +  * Port runit ((UNIX init scheme with service supervision)) 
 +  * Replace BSD init enviroment with runit one (See [[https://www.smarden.org/runit/replaceinit#bsd | here]] for further info) 
 +  * Port ffsprogs ((Suite of command-line utilities for "FFS file system", the Berkeley Fast File System)) 
 +  * Port e2fsprogs ((Suite of command-line utilities for ext2)) 
 +  * Port dosfstools ((Utilities for creating, checking, and labeling FAT (File Allocation Table) family file systems, such as FAT12, FAT16, and FAT32)) 
 +  * Port the required GRUB dependencies 
 +  * Port GRUB ((Boot loader package from the GNU Project))
   * Test HyperbolaBSD pre-alpha version running on QEMU   * Test HyperbolaBSD pre-alpha version running on QEMU
-  * Announce officially the release of HyperbolaBSD pre-alpha+  * Announce officially the release of HyperbolaBSD pre-alpha (Responsible: [[https://www.hyperbola.info/members/developers/#throgh|throgh]]) 
 +  * Contact [[musl-subscribe@lists.openwall.com|musl developers]] at their mailing list to let them know that musl runs on HyperbolaBSD 
 +  * Contact [[supervision@list.skarnet.org|Gerrit Pape]]((The runit author)) to let him know that runit runs on HyperbolaBSD
  
 ===== HyperbolaBSD Canis Major v0.99-alpha ===== ===== HyperbolaBSD Canis Major v0.99-alpha =====
-===  Develop the HyperbolaBSD system - part 2 === +===  Port hyperman/hypertools for the HyperbolaBSD system === 
-  * <del>Contact original authors to release unlicensed code under [[https://creativecommons.org/publicdomain/zero/1.0/legalcode|CC0]] ((Known as Creative Commons 0 or Public Domain))</del> //**-> CANCELLED**//  (Reason: Decided to replace all of them with new compatible code) + 
-  * <del>Contact original authors to remove [[https://www.gnu.org/licenses/bsd.html|the obnoxious BSD advertising clause]]</del> //**-> CANCELLED**// (Reason: Planned for the "HyperbolaBSD Sagittarius Roadmap") +  * Port the required hyperman/hypertools dependencies 
-  * <del>Modularise kernel</del> //**-> DONE**// (Responsible: [[https://www.hyperbola.info/members/founders/#coadde|coadde]]) +  * Port hyperman ((The HyperbolaBSD package manager)) 
-  * Modularise userspace //**-> IN PROGRESS**// (Responsible: [[https://www.hyperbola.info/members/founders/#coadde|coadde]]) +  * Port hypertools ((Programs for HyperbolaBSD development))
-  * Remove all non-x86 specific source code in kernel +
-  * Remove all non-x86 specific source code in libc +
-  * Write compatible code under [[https://www.freebsd.org/copyright/freebsd-license/|Simplified BSD License]] ((Known also as FreeBSD License or 2-clause BSD License)) to replace the nonfree files in kernel +
-  * Write compatible code under [[https://www.freebsd.org/copyright/freebsd-license/|Simplified BSD License]] ((Known also as FreeBSD License or 2-clause BSD License)) to replace the nonfree files in libc +
-  * Replace nonfree tools/applications with fully free third-party ones in userspace+
   * Test HyperbolaBSD alpha version running on QEMU   * Test HyperbolaBSD alpha version running on QEMU
   * Announce officially the release of HyperbolaBSD alpha   * Announce officially the release of HyperbolaBSD alpha
Line 98: Line 136:
 ===== HyperbolaBSD Canis Major v0.99-beta ===== ===== HyperbolaBSD Canis Major v0.99-beta =====
 === Package the HyperbolaBSD system === === Package the HyperbolaBSD system ===
-  * Develop hyperman ((The HyperbolaBSD package manager)) +
-  * Develop hypertools ((Programs for HyperbolaBSD development)) +
-  * Port and test runit ((a UNIX init scheme with service supervision)) +
-  * Develop runit init scripts to run HyperbolaBSD +
   * Package the entire modularised HyperbolaBSD system with hyperman ((The HyperbolaBSD package manager))   * Package the entire modularised HyperbolaBSD system with hyperman ((The HyperbolaBSD package manager))
   * Develop the HyperbolaBSD live image   * Develop the HyperbolaBSD live image
Line 108: Line 143:
   * Test HyperbolaBSD beta version running on QEMU   * Test HyperbolaBSD beta version running on QEMU
   * Announce officially the release of HyperbolaBSD beta   * Announce officially the release of HyperbolaBSD beta
-  * Contact [[supervision@list.skarnet.org|Gerrit Pape]]((The runit author)) to let him know that runit runs on HyperbolaBSD 
  
-===== HyperbolaBSD Canis Major v1-rc =====+===== HyperbolaBSD Canis Major v1.0-rc =====
 === Port possible extra packages from Hyperbola GNU/Linux-libre to HyperbolaBSD === === Port possible extra packages from Hyperbola GNU/Linux-libre to HyperbolaBSD ===
 +
 +
   * Index incompatible packages and remove them from the git repositories   * Index incompatible packages and remove them from the git repositories
   * Port and package all the remaining extra packages with hyperman ((The HyperbolaBSD package manager))   * Port and package all the remaining extra packages with hyperman ((The HyperbolaBSD package manager))
 +  * Develop hyperutils from scratch under C++
 +  * Develop hypercore from scratch under C++
   * Test HyperbolaBSD final version running on QEMU   * Test HyperbolaBSD final version running on QEMU
   * Announce officially the release of HyperbolaBSD release candidate   * Announce officially the release of HyperbolaBSD release candidate
   * Contact [[contact+badwolf@hacktivis.me|Haelwenn Monnier]] to let him know that BadWolf runs on HyperbolaBSD   * Contact [[contact+badwolf@hacktivis.me|Haelwenn Monnier]] to let him know that BadWolf runs on HyperbolaBSD
  
-===== HyperbolaBSD Canis Major v1 =====+===== HyperbolaBSD Canis Major v1.0 =====
 === Release HyperbolaBSD === === Release HyperbolaBSD ===
 +
   * Announce officially the release of HyperbolaBSD   * Announce officially the release of HyperbolaBSD
   * EOL of Hyperbola GNU/Linux-libre support ((Hyperbola GNU/Linux-libre frozen in old-stable for transition reasons))   * EOL of Hyperbola GNU/Linux-libre support ((Hyperbola GNU/Linux-libre frozen in old-stable for transition reasons))
   * Contact the [[licensing@fsf.org|Free Software Fundation]] to endorse HyperbolaBSD in their list of [[https://www.gnu.org/distros/free-non-gnu-distros.html|Non-GNU Distributions]]   * Contact the [[licensing@fsf.org|Free Software Fundation]] to endorse HyperbolaBSD in their list of [[https://www.gnu.org/distros/free-non-gnu-distros.html|Non-GNU Distributions]]
-  * Contact the [[licensing@fsf.org|Free Software Fundation]] to move Hyperbola GNU/Linux-libre in their list of [[https://www.gnu.org/distros/free-distros.html#Historical|Historical GNU/Linux Distributions]]+  * Contact the [[licensing@fsf.org|Free Software Fundation]] to change Hyperbola GNU/Linux-libre as **“static”** ((Static operating systems normally run from a live media. Since it will not receive security updates, it should be used offline)) in their list of [[https://www.gnu.org/distros/free-distros.html| GNU/Linux Distributions]]
   * Restructuring of entire Hyperbola Project with HyperbolaBSD   * Restructuring of entire Hyperbola Project with HyperbolaBSD
 +
 +===== HyperbolaBSD Canis Major v1.1 =====
 +=== Implement file systems for HyperBK ===
 +  * Port [[https://elm-chan.org/fsw/ff/|fatfs]] as drop-in replacement of msdos
 +  * Port FreeBSD's ext2fs
 +  * Port NetBSD's udf
 +  * Port NetBSD's ntfs
 +  * Port NetBSD's unionfs
 +  * Port DragonFlyBSD hammer / hammer2