Git Product home page Git Product logo

t2sde's Introduction

T2 SDE

T2 System Development Environment ... more than a Linux distribution.

T2 SDE is not just a regular Linux distribution - it is a flexible Open Source System Development Environment or Distribution Build Kit. Others might even name it Meta Distribution. T2 allows the creation of custom distributions with state of the art technology, up-to-date packages and integrated support for cross compilation. Currently the Linux kernel is usually used, but we also started to port T2 to support compiling home-brew like open source package add-ons on macOS, other BSDs, classic Unix systems (Irix, ...) or support bootstrapping alternative micro kernel systems (like a L4 variant or Fuchsia). Similarly building Haiku, Android, Minix, Hurd, Open (or Pure) Darwin, Haiku and OpenBSD could be supported, too.

Download

It is usually best to start with a pre-built ISO download. More information, including about the latest source tree are at:

https://t2sde.org/download/

Subversion and Git

Historically we adapted SVN when it was state of the art. Currently we mirror to Git for user's convenience and might switch to it as primary repository in the future.

Feature & bug bounties

In 2021 René Rebe's https://exactcode.com started a feature bounty program! At the time of writing paying out 10€ for bounty-S, 25€ for bounty-M, 50€ for bounty-L and 100€ for bounty-XL feature requests issues marked so by "rxrbln". Additionally, since autumn 2023 one binary Euro (2.56€) may be eligible for any other bug filled by the T2 creator.

The provided patch or pull request must be reasonable clean code and reproducible (at least mostly) build and work. Successful bounties are paid out thru PayPal or -if preferred, and reasoable for the amount- wire transfer within the EU.

https://github.com/rxrbln/t2sde/issues?q=is%3Aopen+is%3Aissue+author%3Arxrbln

History

"T2" started as a community driven fork of the ROCK Linux project in 2004 which aims at simplicity, clean and lightweight Linux build system.

"T2" was an intern project name for "try two / second try" or "technology two". The idea was to eventually choose a more public relation aware name, but somehow we just kept sticking with t2 so far ;-)

t2sde's People

Contributors

amery avatar andreanidouglas avatar arete avatar baldzius avatar bkauler avatar cchamilt avatar cheezecake avatar clairexen avatar cliffordwolf avatar dagraver avatar ds886 avatar el-bundinio avatar jrovins avatar koenvervloesem avatar kuanggrademk11 avatar lenticularis39 avatar mariojungwirth avatar mtrx avatar newdimm avatar nystwysrt avatar ocilionmjungwirth avatar richtertobias-zz avatar rvkrr avatar rxrbln avatar shingonoide avatar sprock avatar svmhdvn avatar termdew avatar tpham3783 avatar vsnco avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

t2sde's Issues

split qt{6,5,4,…} into submodule packages

r53199 already: disable qt5 qtwebengine by default
IMHO we should package all qt variant as individual submodules to improve dependencies, build time:
qtxmlpatterns, qtx11extras, qtwinextras, qtwebview, qtwebsockets, qtwebglplugin, qtwebengine, qtwebchannel, qtwayland, qtvirtualkeyboard, qttranslations, qttools, qtsvg, qtspeech, qtserialport, qtserialbus, qtsensors, qtscxml, qtscript, qtremoteobjects, qtquicktimeline, qtquickcontrols2, qtquickcontrols, qtquick3d, qtpurchasing, qtnetworkauth, qtmultimedia, qtmacextras, qtlottie, qtlocation, qtimageformats, qtgraphicaleffects, qtgamepad, qtdoc, qtdeclarative, qtdatavis3d, qtconnectivity, qtcharts, qtbase, qtandroidextras, qtactiveqt, qt3d

https://download.qt.io/official_releases/qt/5.15/5.15.2/submodules/

Cross-compiled Perl lacks some modules

When cross-compiling Perl (tested on x86_64 -> hppa, might happen on other archs), the resulting package is much smaller than when native compiling:

bash-5.1# wc -l /var/adm/flists/perl
5684 /var/adm/flists/perl
bash-5.1# wc -l build/hypatia-21-svn-generic-hppa-cross-linux/var/adm/flists/perl 
1703 build/hypatia-21-svn-generic-hppa-cross-linux/var/adm/flists/perl

After examining the flists it's apparent that many modules are missing from the cross-compiled package (maybe a gcc cross compiling problem?), for example Scalar/Util.pm.

The full flists are attached to the issue, along with the cross compilation build log.

cross.flist.log
cross.log.gz
native.flist.log

Cross compile Emacs and/or Xemacs

As there are quite some Emacs fans, it would be cool if we could cross compile it, too. IIRC they usually use their bootstrap Lisp compiler to pre-compile byte code, which would need some cross compile handling.

Old version of libraries bundled with mine

mine, the T2 package manager, bundles several libraries dating back to the early 2000s (e.g. libtar 1.2.11 or bzip2 1.0.2), many of which have been updated since and might have security vulnerabilities.

I think these should be updated or possibly even removed from the tarball and linked dynamically.

Fully cross compile python

make cross compiled python fully functional, e.g. all modules and building other Python based packages.

Cross compile cmake

As cmake takes rather long to compile, it would be nice to be able to cross compile it to have it at hand for slower, vintage or retro system to compile smaller packages requiring make.

udevd NaT consumption and warnings on IA-64

While booting T2 on Itanium, udevd prints out a warning like this for different modules (the first one is for the SCSI module, but it also happens for Ethernet (e1000) and USB (stack shortened):

T2 SDE early useudevd[45]: starting version 182
rspace (c)2005-2021 Rene Rebe, ExactCODE GmbH; Germany.
Mounting /dev, /proc and /sys
Linux 5.14.6-t2, populating u/dev
------------[ cut here ]------------
WARNING: CPU: 0 PID: 54 at fs/proc/generic.c:406 __proc_create+0x5a0/0x600
name len 0
Modules linked in: scsi_mod(+) usb_common
CPU: 0 PID: 54 Comm: udevd Not tainted 5.14.6-t2 #1
Hardware name: hp server rx2620                   , BIOS 03.17                  
                                          03/31/2005                            

Call Trace:
 [<a000000100015070>] show_stack+0x90/0xc0
                                sp=e000000100bbfab0 bsp=e000000100bb9638
...
 [<a0000002001f8400>] scsi_init_procfs+0x80/0x480 [scsi_mod]
                                sp=e000000100bbfce0 bsp=e000000100bb93e0
 [<a0000002001f8020>] init_scsi+0x20/0x1a0 [scsi_mod]
                                sp=e000000100bbfce0 bsp=e000000100bb93c0
...
 [<a00000010000c860>] ia64_ret_from_syscall+0x0/0x20
                                sp=e000000100bbfe30 bsp=e000000100bb9100
 [<a000000000040720>] ia64_ivt+0xffffffff00040720/0x400
                                sp=e000000100bc0000 bsp=e000000100bb9100
---[ end trace 0a4e30188a2ec52a ]---
------------[ cut here ]------------

There are also some NaT consumption warnings mixed in there:

udevd[48]: NaT consumption 17179869216 [2]

Along with worker terminated messages:

udevd[45]: seq 954 '/devices/pci0000:00/0000:00:01.0' killed
udevd[45]: worker [50] timeout, kill it
udevd[45]: seq 955 '/devices/pci0000:00/0000:00:01.1' killed
udevd[45]: worker [67] timeout, kill it
udevd[45]: seq 961 '/devices/pci0000:20/0000:20:02.0' killed
udevd[45]: worker [49] terminated by signal 9 (Killed)
udevd[45]: worker [50] terminated by signal 9 (Killed)
udevd[45]: worker [67] terminated by signal 9 (Killed)

It's not easy to exactly determine how are those related, since they are printed over each other, but they are clearly regressions of udev, the Linux kernel or both.

Convert legacy "custmain" packages to use more modern "hooks"

Since a long, long time (15+ years) overwriting the build system hooks for flexible target customization with custmain= is deprecated. Convert the remaining packages to use hooks instead:

grep custmain= package///*.conf

Usually easily like:
makeopt=
makeinstopt=
hook_add inmake 5 "the custmain code"

Like e.g. Committed revision 53416. for rox-filer

Update udev

Since upstream assimilated udev into systemd (sigh) we should probably peel that outa there and update our standalone udev package somehow :-/

Cross compile rustc

Currently we can bootstrap rust, but not yet cross compile rustc itself to a target native rust within the cross stage.

Cross build w/ gobject-introspection

For the convenience of the user, we probably should implement cross compiling w/ gobject-introspection and ship the .gir files by default, ...

Update exotic t2 packages

Among the nearly 4k packages, we have quite some obscure, exotic, and certainly upstream moved packages. One janitor task would be to systematically go thru (all) of them (a-z?) and update Urls, Downloads, and update to the latest and greatest upstream versions ;-)

gtkdoc-mkhtml embeds build-time path to xsltproc

When building harfbuzz, gtkdoc-mkhtml tries to call xsltproc from the cross toolchain used to build the package:

ERROR: Error in gtkdoc helper script:
^9-harfbuzz
ERROR: ['/opt/gnome2/bin/gtkdoc-mkhtml', '--path=/home/tglozar/t2-trunk/src.harfbuzz.default.20210908.165904.22086.nietzsche-t2/harfbuzz-2.6.7/docs:/home/tglozar/t2-trunk/src.harfbuzz.default.20210908.165904.22086.nietzsche-t2/harfbuzz-2.6.7/objdir/docs', 'harfbuzz', '../harfbuzz-docs.xml'] failed with status 127
/opt/gnome2/bin/gtkdoc-mkhtml: 95: /srv/t2-trunk/build/x86-64-21.7-generic-x86-64-nocona-cross-linux/TOOLCHAIN/tools.cross/bin/xsltproc: not found

A workaround to this is recompiling the package.

Overridden package version is not used in binary package metadata

When a package version is overridden by a architecture-specific or target-specific desc (e.g. GCC 7 is used for IA-64 instead of the global GCC 11), the correct version is built, but the binary package name and the mine metadata stays at the global version.

package perf from linux kernel tools

IMHO we should ship.a perf package, as found in the linux kernel sources (sigh) tools/perf. IMHO^2 this should already be a standalone package upstream proper, but it isn't. It might be a good idea to take a look what other gems are hiding in some linux kernel tools/ and other corners, ... ;-)

Implement parallel building multiple package

Potentially use the vintage cluster, scripts/Create-PkgQueue code and unite it with Build-Target / Emerge to build multiple packages in parallel to speed builds up on modern hardware.

21.7 vs 21.5 on hyper-v

21.5 x86-64 boots install cd just fine but trying 21.7 something in the bootup script ejects the "cd" so you get ls stage2* not found umount /media not a mount point going to hyperv settings and mounting cd again allows the install to find it just fine.

T2/Linux fails to boot on r12k Sgi/O2

It is widely known that the speculative execution and cache coherency of r10k based O2 cause Linux instability. However, historically archived web looked like it should boot. For a r12k O2 I could not yet get arcload (which surprisingly works ;-) to load and execute the Linux kernel.

http://www.total-knowledge.com/progs/mips/R10K-issue.shtml
https://bukosek.si/hardware/collection/sgi-o2.html (various internal Sgi specs)
http://www.pfrst.de/download.html
http://www.total-knowledge.com/progs/mips/vice/
https://www.linux-mips.org/~glaurung/

Support GCC Fortran

This has been broken for some time, and it's needed for some math software (namely R and Octave).

Get LibreOffice to compile again

as the popular libre / open office suite and also package most of its new internally downloaded dependencies, e.g. those commented in libreoffice.conf's confopt and downloaded in its .desc

Package toybox

as yet another embedde "coreutils", busybox alternative

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.