librime: update to 1.11.2
[aosc-os-abbs.git] / README.CORE.md
blob01245dcc9fc515a6f34f7478fb2fe63f24add11b
1 AOSC OS Core
2 ============
4 AOSC OS Core was introduced after the final debut of AOSC OS3 (the last version
5 of AOSC OS with a versioned name), designed to standardise...
7 - Core runtime libraries.
8 - Basic toolchains.
10 For AOSC OS and its potential derivatives.
12 The Core also serves as a versioning agent for AOSC OS (provided by
13 `aosc-aaa` - the "bed-rock level" definition of AOSC OS).
15 Rationale
16 ---------
18 AOSC OS is a decently large distribution project providing more than 5,000
19 packages in its [repository](https://repo.aosc.io/), and port are available
20 for multiple architectures:
22 - x86...
23     - AMD64: with SSE3 support (x86_64-aosc-linux-gnu).
24     - i486: Intel 80486 compatible or newer (i486-aosc-linux-gnu).
25 - ARM...
26     - AArch64 (aarch64-aosc-linux-gnu)
27     - ARMv7: with NEON support (armv7a-aosc-linux-gnueabihf)
28 - PowerPC (Big Endian)...
29     - PowerPC 32-bit: Apple G3/G4, IBM 7xx/74xx (powerpc-aosc-linux-gnu).
30     - PowerPC 64-bit: Apple G5, IBM PowerPC 970 (powerpc64-aosc-linux-gnu).
31 - POWER (Little Endian)...
32     - IBM POWER8 compatible or newer (ppc64el-aosc-linux-gnu).
33 - RISC-V...
34     - RISC-V: RV64GC compatible variants (riscv64-aosc-linux-gnu).
36 Maintaining such large amount of packages across multiple architectures is
37 not an easy job for AOSC OS maintainers: in case of security vulnerbilities,
38 major updates, and mass rebuilds, AOSC OS developers may find their time
39 limited to finish the respective tasks in a timely fashion.
41 Therefore, AOSC OS Core will serve a standard for **ALL** AOSC OS ports 
42 with a version definition of its counterpart - released on a non-regulated
43 schedule, thus saving time and potential frustration for the maintainers.
45 In practice
46 -----------
48 The following practices is defined for AOSC OS Core development:
50 * AOSC OS Core will take in place of the "AOSC OSn" (where "n" is a natural
51   number) versioning rules, however it will be versioned in the "x.y.z"
52   format.
53 * `aosc-aaa` will be included as the only base-line definition for AOSC OS
54   Core, with filesystem structure and basic configurations that may affect
55   system behaviours.
56 * AOSC OS Core will *not* be updated as soon as new components were
57   released, any major version bump should be first discussed (fork it if you
58   do need to update, and PR if you feel like doing so).
59 * Only toolchain level packages like will be included (by definition).
60 * *All* security updates will be provided when applicable.
61 * AOSC OS Core development and maintenance follows the
62   [AOSC OS Maintenance Guidelines](https://wiki.aosc.io/developers/aosc-os-maintenance-guidelines).
64 ### An example of update cycle
66 AOSC OS3, after being released as the last versioned release, it will release
67 versions as follows...
69 * Stable series (Stable-Proposed, Stable): 3.1, 3.2, 3.3, ..., 3.10, 3.11, ...
70 * Experimental (Experimental, Testing-Proposed, Testing) series: 3.99.1, 3.99.2, ..., 3.99.10, 3.99.11, ...
72 ![update_model](/assets/images/AOSC%20OS%20Core%20Rationale%2C%20update%20model.png)
74 Stable and Experimental series will not affect each other, nor do they have
75 a "testing - release" relationship. 3.99 series (Experimental) will become
76 the future 4.0 series... And the cycle continues.
78 Packages
79 --------
81 AOSC OS Core currently include the following packages:
83 * linux+api, "Linux API Headers for glibc"
84 * zlib, "A Massively Spiffy Yet Delicately Unobtrusive Compression Library"
85 * glibc, "GNU C Library"
86 * tzdata, "Time Zone Data"
87 * gmp, "GNU Multiprecision library"
88 * mpfr, "Functions for multiple precision math"
89 * mpc, "A library for the arithmetic of complex numbers"
90 * isl, "Library for manipulating sets and relations of integer points bounded by linear constraints"
91 * gcc-runtime, "GNU Compiler Collection (runtime libraries only)"
92 * gcc, "GNU Compiler Collection", (languages: c, c++, fortran, lto)
93 * binutils, "a set of programs to assemble and manipulate binary and object files"
94 * gdbm, "GNU Database Manager library"
95 * db, "Berkeley DB embedded database system"
96 * perl, "a highly capable and feature rich programming language"
97 * readline, "GNU realine library"
98 * ncurses, "System V Release 4.0 curses emulation library"
99 * bash, "Bourne Again SHell"
100 * make, "GNU Make, designed for code processing"
101 * aosc-aaa, "bed rock level system definitions"
103 (total of 19 packages)
105 Building the Core
106 -----------------
108 Please first refer to our
109 [AOSC Cadet Training](https://github.com/AOSC-Dev/aosc-os-abbs/wiki)
110 handbook.
112 Derivatives of AOSC OS Core
113 ---------------------------
115 Derivatives may be built upon AOSC OS Core, as the packages provided in
116 AOSC OS Core may form a functioning chroot environment for distribution
117 developers.
119 However, BuildKit can still be used as a minimal initial environment, as
120 BuildKit itself was built upon AOSC OS Core.
122 You may obtain a copy of BuildKit [here](https://aosc.io/os-download).
124 Need help?
125 ----------
127 Please report any build-time and run-time issues using our
128 [issues](https://github.com/AOSC-Dev/aosc-os-abbs/issues/new/choose) page.