sylware / nyanlinux (public) (License: AFFERO GPLv3) (since 2019-09-09) (hash sha1)
scripts for a lean, from scratch, amd hardware, linux distro

/README (6aa180fc473777d9ca6b155cbf9b973065cdd77a) (1973 bytes) (mode 100644) (type blob)

This is as set of build scripts which bootstrap a kind of minimal/ultra-light
desktop gnu/linux distro (x86_64/AMD CPU and GCN GPU).

This is _my_ linux from scratch, my everyday distro (for AMD hardware,
but you can add all the supported others if you want to).
glibc is about to deprecate the support of libdl in static binaries. It seems
glibc and/or elf is becoming nasty (like gcc slowly turning into a piece of c++
crap like llvm). The goal was to get as many statically binaries as possible,
which is not a reasonable goal anymore due to kludgy and badly designed
software.

----
I have to recall this: due to glibc and gcc compiler driver limitations binaries
with modules (ELF dynamic shared libs) which use symbols from the latter, must
be built as dynamic elf binaries which export their symbols (--export-symbols
from the GNU ld). Such ELF objects cannot be built with a static glibc and the
gcc compiler driver. Additionaly, many other components were designed with the
"dynamic shared lib paradigm" in mind which will induce breakage if used from a
static library archive version.
----

The SDKs are brain damaged kludges: the only anti brain fuckage mitigation
approach would be to burn an hardcoded configuration for a gnu/linux system and
use some sh scripts to build the component from source (_always_ cross
compiling friendly).

Some components deployed by those scripts are personal forks of popular open
source components.

I publish those scripts because the knowledge they do contain may be of use by
the community in addition of the real linux-from-scratch.

notes:
    - you have reboot.S and poweroff.S in files/asm if you want to use those
      versions. Carefull, you don't have a sync syscall for your drive data.
    - some libraries are dynamic shared, though they could be static. This is
      to interface with close source binaries, games, because I'm a gamer,
      nobody is perfect.

-- 
Sylvain BERTRAND
sylvain.bertrand@legeek.net


Mode Type Size Ref File
100644 blob 5 8eba6c8dd4dcaf6166bd22285ed34625f38a84ff .gitignore
100755 blob 2487 533016d4902080b22ae5dc5352802ebdd0d78b16 01-x86_64-nyan-linux-gnu.sh
100755 blob 4254 31fdc18cc3e6c6cfd8444fa404f7e82f849bad56 02-nyan-cross-core.sh
100755 blob 3549 7f1362bad6786a6818ce7a7d613d0dc11f611fb9 03-nyan-cross-x11.sh
100755 blob 12534 f9036d33f9f159ea2421ce1a1ebf7067f0f695c1 04-bootstrap-conf.sh
100755 blob 671 5f6bc5de83a883da3a7f0d4a37e1d0ef51c08561 10-sdk-conf.sh
100755 blob 2201 83fa9bf5bddbecb88db53779e324b9f270b1080e 11-sdk.sh
100755 blob 2826 090b622caebd38755ef1e57a9cf0f4f673b22a8e 12-desktop.sh
100755 blob 129 08460f0dece90701f01cbf7d710609ecbb3d56e0 13-beyond.sh
100644 blob 1075 1b5314b511d4c6dc7eb4db36a21dd47ba5a00a9d INSTALL
100644 blob 30 c9b735fa1332286f4b3f5f81fa10527fd7506b6e LICENSE
100644 blob 1973 6aa180fc473777d9ca6b155cbf9b973065cdd77a README
040000 tree - ae2bee8d8e4e12871a0218501a938abd2fafe1cb builders
100644 blob 2986 6d58a03051e12dba00732ba0048dc6548e86f173 conf.sh
040000 tree - 44203d1824683f2cc7632b3f1754703932bfd722 files
100755 blob 282 47daa03e8253af88af8ec2da14829d97ba6b2e04 pkg-build
100755 blob 289 7f5fbdbb712f274d04a036b9c486cbc9cf581be6 pkg-build-target
100644 blob 915 a7f21134dbc05d0e8227eaee366856b8171832a4 sdk.sh
100755 blob 4736 d45246074663b07483d7e01f35b87ccdc44bb114 x86.sh
Hints:
Before first commit, do not forget to setup your git environment:
git config --global user.name "your_name_here"
git config --global user.email "your@email_here"

Clone this repository using HTTP(S):
git clone https://rocketgit.com/user/sylware/nyanlinux

Clone this repository using ssh (do not forget to upload a key first):
git clone ssh://rocketgit@ssh.rocketgit.com/user/sylware/nyanlinux

Clone this repository using git:
git clone git://git.rocketgit.com/user/sylware/nyanlinux

You are allowed to anonymously push to this repository.
This means that your pushed commits will automatically be transformed into a merge request:
... clone the repository ...
... make some changes and some commits ...
git push origin main