Giter Site home page Giter Site logo

triton / triton Goto Github PK

View Code? Open in Web Editor NEW
60.0 12.0 8.0 291.59 MB

Triton Operating System

License: MIT License

Nix 90.45% Shell 6.30% Perl 2.23% XSLT 0.09% CSS 0.02% JavaScript 0.01% Python 0.49% C 0.26% Ruby 0.09% Emacs Lisp 0.01% C++ 0.01% Go 0.01% CMake 0.01% Dockerfile 0.01% sed 0.01%
nix linux packages linux-distribution atomic declarative-language systemd nixos operating-system triton

triton's Introduction

Triton

Triton is a collection of packages for the Nix package manager.

Triton linux distribution source code is located inside the nixos/ folder.

Discussion Channels
  • Matrix Community: +triton:matrix.org

Documentation

Legacy Documentation
Supported Platforms (not all platforms implemented)
  • ARM requires: NEON, VFPv3+ (aka. armv7+)
    • armv7l-linux WIP
    • armv8l-linux WIP
    • aarch64-linux WIP
  • x86 requires: MMX,SSE,SSE2,SSE3,SSSE3,SSE4,SSE4.1,SSE4.2,AES (aka. at least Intel Westmere, AMD 15h, or VIA Eden x4)
    • i686-linux (libs only)
    • x86_64-linux
  • POWER requires: POWER8+
    • powerpc64le-linux Incomplete

triton's People

Contributors

7c6f434c avatar abbradar avatar aszlig avatar bjornfor avatar bluescreen303 avatar chaoflow avatar cillianderoiste avatar civodul avatar codyopel avatar domenkozar avatar edolstra avatar fuuzetsu avatar jagajaga avatar lucabrunox avatar marcweber avatar nbp avatar nckx avatar offlinehacker avatar peti avatar phreedom avatar psub avatar rbvermaa avatar shlevy avatar thoughtpolice avatar ttuegel avatar urkud avatar vbgl avatar vcunat avatar viric avatar wkennington 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

Watchers

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

triton's Issues

Refactor display-{drivers,servers} configuration method

Currently the constructs in Triton are X.Org centric. The goal is to make display-{drivers,servers} more pluggable for configuration, this will make it easier to support X.Org, Wayland, Mir, Freon & others.

Wayland will be the primary supported display server, however X.Org will continue to be supported.

Most services.xserver.* options need to factored out of the xserver module (e.g. displayDrivers, desktopManager, displayManager, etc...). This will take a fair amount of experimentation to come up with an api that makes sense and that we want to stick with.

Remove work-arounds for unsupported platforms

Supported platforms:

  • FreeBSD/NeXTBSD (tentative support)
  • Linux

Unsupported:

  • Cygwin
  • Darwin
  • Illumos
  • NetBSD
  • OpenBSD
  • Solaris

When removing Darwin hacks, be aware that some need to be kept and specified correctly as Clang fixes.

Document an attribute naming scheme for packages

  • formatting of package attributes
    • cases of packages with non supported characters
    • It would be preferable to avoid quoted attributes (e.g. "gtk+")
  • formatting of directory names
  • process for handling name collisions
  • prefixing name of language specific packages with the name of the language (non-C/C++) (e.g. python,ruby,rust,perl)
  • formatting of attribute descriptors

Rewrite SDL1

The current build is a steaming pile and apparently most packages using SDL haven't bothered to port to SDL2 in over 3 years

Cleanup systemd targets

Make our systemd configuration conform more to the newer upstream configuration in terms of units and targets which those units belong.

mutter: segmentation fault during startup

Post hardening changes mutter segfaults on startup with:

(mutter:2263): Gdk-WARNING **: The program 'mutter' received an X Window System error.
This probably reflects a bug in the program.
The error was 'BadAccess (attempt to access private resource denied)'.
  (Details: serial 260 error_code 10 request_code 2 (core protocol) minor_code 0)
  (Note to programmers: normally, X errors are reported asynchronously;
   that is, you will receive the error a while after causing it.
   To debug your program, run it with the GDK_SYNCHRONIZE environment
   variable to change this behavior. You can then get a meaningful
   backtrace from your debugger if you break on the gdk_x_error() function.)

Pre hardening it would return:

Window manager warning: Display ":0" already has a window manager; try using the --replace option to replace the current window manager.[1]    3616 segmentation fault  ./result/bin/mutter

This issue is related to the hardening/optimization changes and the Gnome 3.20 major updates. The issue does not appear to be related to X.Org, but rather maybe glib, glibc or something else. I tested disabling all optimizations/hardening on all of X.Org to rule it out. Also tested with mutter 3.18.2.

partial debug log:
debug.txt

linked-libs.txt

https://lintian.debian.org/tags/hardening-no-bindnow.html

Remove package category heirarchy

For now migrate to /pkgs/all/<package name>

In the future once all-packages.nix is moved or replaced with an alternative implementation outside of /pkgs the heirarchy should be the following:
/pkgs/<package name>

Add meta redistributable boolean

Instead of using unfreeRedistributable as the license, see #1, add a seperate boolean flag for enabling redistribution of an unfree package.

Refactor language level packaging to resemble regular packaging

Instead of having /pkgs/top-level/python-packages.nix, python packaging should be modified such that each package can be in a separate file and use the standard hierarchy specified in #3.

This would require an alternative to things like pythonPackages.<pname>, for calling the package with a specific python version.

meta.categories

Rather than using a heirarchy within the nixpkgs repository for categorizing packages, add meta.categories, an array with a list of categories that apply to a given package.

There would be no use for this at the moment, only for future use.

Remove references to xlibsWrapper

pkgs/applications/audio/qmmp/default.nix:{ stdenv, fetchurl, cmake, qt4, pkgconfig, xlibsWrapper
pkgs/applications/audio/qmmp/default.nix: cmake qt4 pkgconfig xlibsWrapper
pkgs/applications/editors/nedit/default.nix:{ stdenv, fetchurl, xlibsWrapper, motif, libXpm }:
pkgs/applications/editors/nedit/default.nix: buildInputs = [ xlibsWrapper motif libXpm ];
pkgs/applications/graphics/xfig/default.nix:, xlibsWrapper, libXpm, libXmu, libXi, libXp, Xaw3d, libpng, libjpeg}:
pkgs/applications/graphics/xfig/default.nix: buildInputs = [xlibsWrapper libXpm libXmu libXi libXp Xaw3d libpng libjpeg];
pkgs/applications/misc/synergy/default.nix:{ stdenv, fetchFromGitHub, cmake, xlibsWrapper, libX11, libXi, libXtst, libXrandr
pkgs/applications/misc/synergy/default.nix: cmake xlibsWrapper libX11 libXi libXtst libXrandr xinput curl openssl
pkgs/applications/misc/wordnet/default.nix:{stdenv, fetchurl, tcl, tk, xlibsWrapper, makeWrapper}:
pkgs/applications/misc/wordnet/default.nix: buildInputs = [tcl tk xlibsWrapper makeWrapper];
pkgs/applications/misc/xfe/default.nix:{ stdenv, fetchurl, fox, pkgconfig, gettext, xlibsWrapper, gcc, intltool, file, libpng }:
pkgs/applications/misc/xfe/default.nix: buildInputs = [ fox pkgconfig gettext xlibsWrapper gcc intltool file libpng ];
pkgs/applications/misc/xpdf/default.nix:, stdenv, fetchurl, zlib, libpng, xlibsWrapper ? null, motif ? null, freetype ? null, t1lib ? null
pkgs/applications/misc/xpdf/default.nix:assert enableGUI -> xlibsWrapper != null && motif != null && freetype != null;
pkgs/applications/misc/xpdf/default.nix: stdenv.lib.optionals enableGUI [xlibsWrapper motif] ++
pkgs/applications/networking/browsers/elinks/default.nix:{ stdenv, fetchurl, perl, ncurses, xlibsWrapper, bzip2, zlib, openssl
pkgs/applications/networking/browsers/elinks/default.nix: buildInputs = [ perl ncurses xlibsWrapper bzip2 zlib openssl spidermonkey gpm ]
pkgs/applications/networking/browsers/mozilla-plugins/gecko-mediaplayer/default.nix:{ stdenv, fetchurl, pkgconfig, glib, dbus, dbus_glib, browser, xlibsWrapper
pkgs/applications/networking/browsers/mozilla-plugins/gecko-mediaplayer/default.nix: buildInputs = [ pkgconfig glib dbus dbus_glib browser xlibsWrapper GConf browser gmtk ];
pkgs/applications/networking/instant-messengers/amsn/default.nix:{stdenv, fetchurl, which, tcl, tk, xlibsWrapper, libpng, libjpeg, makeWrapper}:
pkgs/applications/networking/instant-messengers/amsn/default.nix: buildInputs = [which tcl tk xlibsWrapper libpng libjpeg makeWrapper];
pkgs/applications/networking/instant-messengers/tkabber/default.nix:, bwidget, makeWrapper, xlibsWrapper
pkgs/applications/networking/instant-messengers/tkabber/default.nix: buildInputs = [ tcl tk xlibsWrapper makeWrapper ] ++ tclLibraries;
pkgs/applications/science/electronics/pcb/default.nix:{ stdenv, fetchurl, pkgconfig, gtk, bison, intltool, flex, netpbm, imagemagick, dbus, xlibsWrapper, mesa, shared_mime_info, tcl, tk, gnome, pangox_compat, gd, xorg }:
pkgs/applications/science/electronics/pcb/default.nix: buildInputs = [ pkgconfig gtk bison intltool flex netpbm imagemagick dbus xlibsWrapper mesa tcl shared_mime_info tk gnome.gtkglext pangox_compat gd xorg.libXmu ];
pkgs/applications/video/mythtv/default.nix:{ stdenv, fetchurl, which, qt4, xlibsWrapper, libpulseaudio, fftwSinglePrec
pkgs/applications/video/mythtv/default.nix: freetype qt4 lame zlib xlibsWrapper mesa perl alsaLib libpulseaudio fftwSinglePrec
pkgs/applications/virtualization/open-vm-tools/default.nix: xlibsWrapper, libXinerama, libXi, libXrender, libXrandr, libXtst,
pkgs/applications/virtualization/open-vm-tools/default.nix: pkgconfig glib gtk gtkmm xlibsWrapper libXinerama libXi libXrender libXrandr libXtst ];
pkgs/applications/window-managers/weston/default.nix:, libxkbcommon, libXcursor, mesa, mtdev, pam, pango, udev, wayland, xlibsWrapper
pkgs/applications/window-managers/weston/default.nix: libxkbcommon libXcursor mesa mtdev pam pango udev wayland xlibsWrapper
pkgs/development/interpreters/pypy/default.nix:, sqlite, openssl, ncurses, pythonFull, expat, tcl, tk, xlibsWrapper, libX11
pkgs/development/interpreters/pypy/default.nix: buildInputs = [ bzip2 openssl pkgconfig pythonFull libffi ncurses expat sqlite tk tcl xlibsWrapper libX11 makeWrapper gdbm db ]
pkgs/development/libraries/Xaw3d/default.nix:{stdenv, fetchurl, xlibsWrapper, bison, flex, xorg}:
pkgs/development/libraries/Xaw3d/default.nix: propagatedBuildInputs = [xlibsWrapper xorg.libXmu];
pkgs/development/libraries/dlib/default.nix:{ stdenv, fetchurl, cmake, xlibsWrapper }:
pkgs/development/libraries/dlib/default.nix: buildInputs = [ cmake xlibsWrapper ];
pkgs/development/libraries/dlib/default.nix: propagatedBuildInputs = [ xlibsWrapper ];
pkgs/development/libraries/fltk/default.nix:{ composableDerivation, fetchurl, pkgconfig, xlibsWrapper, inputproto, libXi
pkgs/development/libraries/fltk/default.nix: propagatedBuildInputs = [ xlibsWrapper inputproto libXi freeglut ];
pkgs/development/libraries/fox/default.nix:{ stdenv, fetchurl, xlibsWrapper, libpng, libjpeg, libtiff, zlib, bzip2, libXcursor, libXrandr, libXft }:
pkgs/development/libraries/fox/default.nix: buildInputs = [ libpng xlibsWrapper libjpeg libtiff zlib bzip2 libXcursor libXrandr libXft ];
pkgs/development/libraries/fox/fox-1.6.nix:{ stdenv, fetchurl, xlibsWrapper, libpng, libjpeg, libtiff, zlib, bzip2, libXcursor
pkgs/development/libraries/fox/fox-1.6.nix: buildInputs = [ xlibsWrapper libpng libjpeg libtiff zlib bzip2 libXcursor libXrandr
pkgs/development/libraries/glew/default.nix:{ stdenv, fetchurl, mesa_glu, xlibsWrapper, xorg }:
pkgs/development/libraries/glew/default.nix: nativeBuildInputs = [ xlibsWrapper xorg.libXmu xorg.libXi ];
pkgs/development/libraries/gtk+/2.x.nix:, gdk_pixbuf, libintlOrEmpty, xlibsWrapper
pkgs/development/libraries/gtk+/2.x.nix: ++ optionals stdenv.isDarwin [ xlibsWrapper libXdamage ]
pkgs/development/libraries/lesstif/default.nix:{stdenv, fetchurl, xlibsWrapper, xorg}:
pkgs/development/libraries/lesstif/default.nix: buildInputs = [xlibsWrapper];
pkgs/development/libraries/libcm/default.nix: pkgconfig glib xorg.xlibsWrapper xorg.libXdamage xorg.libXcomposite
pkgs/development/libraries/pango/default.nix:{ stdenv, fetchurl, pkgconfig, xlibsWrapper, glib, cairo, libpng, harfbuzz
pkgs/development/libraries/pango/default.nix: propagatedBuildInputs = [ xlibsWrapper glib cairo libpng fontconfig freetype harfbuzz ] ++ libintlOrEmpty;
pkgs/development/libraries/qt-3/default.nix:, xlibsWrapper, xextproto, zlib, libjpeg, libpng, which
pkgs/development/libraries/qt-3/default.nix: propagatedBuildInputs = [libpng xlibsWrapper libXft libXrender zlib libjpeg];
pkgs/development/libraries/snack/default.nix:{ stdenv, fetchurl, python, tcl, tk, vorbis-tools, pkgconfig, xlibsWrapper }:
pkgs/development/libraries/snack/default.nix: buildInputs = [ python tcl tk vorbis-tools pkgconfig xlibsWrapper ];
pkgs/misc/emulators/snes9x-gtk/default.nix:{stdenv, fetchurl, nasm, SDL, zlib, libpng, ncurses, mesa, intltool, gtk, pkgconfig, libxml2, xlibsWrapper, libpulseaudio}:
pkgs/misc/emulators/snes9x-gtk/default.nix: buildInputs = [ nasm SDL zlib libpng ncurses mesa intltool gtk pkgconfig libxml2 xlibsWrapper libpulseaudio];
pkgs/misc/emulators/wine/base.nix: xlibsWrapper libXi libXcursor libXinerama libXrandr libXrender libXxf86vm libXcomposite
pkgs/misc/ghostscript/default.nix:, x11Support ? false, xlibsWrapper ? null
pkgs/misc/ghostscript/default.nix:assert x11Support -> xlibsWrapper != null;
pkgs/misc/ghostscript/default.nix: ] ++ stdenv.lib.optional x11Support xlibsWrapper
pkgs/misc/screensavers/electricsheep/default.nix: buildInputs = [expat zlib libpng libjpeg xorg.xlibsWrapper xorg.libXv];
pkgs/misc/screensavers/rss-glx/default.nix:{stdenv, fetchurl, xlibsWrapper, xorg, mesa, imagemagick, libtiff, bzip2}:
pkgs/misc/screensavers/rss-glx/default.nix: buildInputs = [ mesa xlibsWrapper imagemagick libtiff bzip2 ];
pkgs/misc/screensavers/xautolock/default.nix:{stdenv, fetchurl, xlibsWrapper, xorg, scrnsaverproto}:
pkgs/misc/screensavers/xautolock/default.nix: buildInputs = [xlibsWrapper xorg.imake xorg.libXScrnSaver scrnsaverproto];
pkgs/misc/screensavers/xtrlock-pam/default.nix:{ stdenv, fetchgit, python, xlibsWrapper, pam }:
pkgs/misc/screensavers/xtrlock-pam/default.nix: buildInputs = [ python xlibsWrapper pam ];
pkgs/os-specific/linux/conky/default.nix:, x11Support ? true , xlibsWrapper ? null
pkgs/os-specific/linux/conky/default.nix:assert x11Support -> xlibsWrapper != null;
pkgs/os-specific/linux/conky/default.nix: ++ optional x11Support xlibsWrapper
pkgs/tools/X11/primus/lib.nix:, xlibsWrapper, mesa
pkgs/tools/X11/xinput_calibrator/default.nix:{ stdenv, fetchurl, xorg, autoconf, automake, libtool, m4, xlibsWrapper }:
pkgs/tools/X11/xinput_calibrator/default.nix: buildInputs = [ xorg.inputproto xorg.libXi autoconf automake libtool m4 xlibsWrapper ];
pkgs/tools/admin/tightvnc/default.nix:{ stdenv, fetchurl, xlibsWrapper, zlib, libjpeg, imake, gccmakedep, libXmu
pkgs/tools/admin/tightvnc/default.nix: buildInputs = [ xlibsWrapper zlib libjpeg imake gccmakedep libXmu libXaw
pkgs/tools/audio/pasystray/default.nix:, gnome3, avahi, gtk3, libnotify, libpulseaudio, xlibsWrapper}:
pkgs/tools/audio/pasystray/default.nix: avahi gtk3 libnotify libpulseaudio xlibsWrapper ];
pkgs/tools/graphics/glxinfo/default.nix:{stdenv, fetchurl, xlibsWrapper, mesa}:
pkgs/tools/graphics/glxinfo/default.nix: buildInputs = [xlibsWrapper mesa];
pkgs/tools/misc/unclutter/default.nix:{stdenv, fetchurl, xlibsWrapper}:
pkgs/tools/misc/unclutter/default.nix: buildInputs = [xlibsWrapper];
pkgs/tools/misc/xclip/default.nix:{ stdenv, fetchsvn, xlibsWrapper, libXmu, autoreconfHook }:
pkgs/tools/misc/xclip/default.nix: buildInputs = [ xlibsWrapper libXmu autoreconfHook ];
pkgs/tools/misc/xsel/default.nix:{stdenv, fetchurl, xlibsWrapper}:
pkgs/tools/misc/xsel/default.nix: buildInputs = [xlibsWrapper];
pkgs/tools/networking/x11-ssh-askpass/default.nix:{ stdenv, fetchurl, xlibsWrapper, xorg }:
pkgs/tools/networking/x11-ssh-askpass/default.nix: buildInputs = [ xlibsWrapper xorg.imake ];
pkgs/top-level/perl-packages.nix: buildInputs = [pkgs.xlibsWrapper];
pkgs/top-level/perl-packages.nix: buildInputs = [pkgs.xlibsWrapper pkgs.xorg.libXtst pkgs.xorg.libXi];

Triton-FreeBSD

This is a proposed idea for building a system with Nix, using the FreeBSD kernel.

This is also tentative on support for an alternative init system for FreeBSD with capabilities similiar to Linux's systemd. Current possibilities include:

  • relaunchd DEAD
  • NeXTBSD A fork of FreeBSD using Darwin/OSX's previously open source launchd, sponsored by iXsystems DEAD
  • openlaunchd DEAD

fix gsettings backend

GLib-GIO-Message: Using the 'memory' GSettings backend. Your settings will not be saved or shared with other applications.

applications are not finding dconf/gconf gsettings backends

gsettings backends can be manually specified by the GSETTINGS_BACKEND env var, but it fails to find the module

Raise minimum required x86 cpu feature set

Require:

  • MMX
  • AES
  • SSE
  • SSE2
  • SSE3
  • SSSE3
  • SSE4
  • SSE4.1
  • SSE4.2
  • VT-x/AMD-v/VIA Virtualization

Unsupported:

  • Intel: pre-westmere
  • AMD: pre-15h
  • VIA: pre-eden x4 (released 2015/08)

It can be assumed that the required features above exist for all x86 targets. Currently no changes will be made, this just exists as a guideline for future plans.

move documentation to Sphinx or (La)TeX

During this migration, documentation needs to be split correctly. Triton/docs should ONLY contain documentation relating to constructs implemented within Triton, information on using software packaged within Triton needs to be moved to a separate repository or use a wiki based system.

drop support for webkit pre-2.10.x (e.g. 2.4)

Webkitgtk-2.4 is currently unmaintained and and has numerous CVEs.

Packages that use 2.4 require it unfortunately in most cases, however I would still recommend removing 2.4 completely.

2.4 provides libs:
libwebkitgtk-1.0 (gtk+-2)
libwebkitgtk-3.0 (gtk+-3)
libwebkit2gtk-3.0 (gtk+-3)
http://www.linuxfromscratch.org/blfs/view/svn/x/webkitgtk.html

2.10+ provides libs:
libjavascriptcoregtk-4.0
libwebkit2gtk-4.0
http://www.linuxfromscratch.org/blfs/view/svn/x/webkitgtk2.html

Currently, unless an update is released for webkit-2.4, it will also be incompatible with gtk-3.20

Packages that use 2.4:

  • empathy (3.0) removed
  • evolution (3.0) marked broken
  • geary (3.0) removed
  • guiratix (1.0) disabled webkit
  • shotwell (1.0) marked broken
  • jumanji removed package
  • liferea
  • handbrake
  • midori-unwrapped
  • vimprobable2-unwrapped
  • vimb-unwrapped
  • gnucash (1.0)
  • luakit
  • surf
  • uzbl
  • xiphos
  • eclipse
  • dwb (1.0)(3.0)
  • claws-mail
  • osmo
  • miro

https://lists.fedoraproject.org/archives/list/[email protected]/thread/S3VHBCPMPVZ3NBKR7FQZQE6HBUHVEZ3D/

cc NixOS/nixpkgs#12023

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.