tangled
alpha
login
or
join now
pyrox.dev
/
nixpkgs
lol
0
fork
atom
overview
issues
pulls
pipelines
Add inferno, a distributed cross-platform hosted OS
Chris Double
11 years ago
91ac34b6
f666bf4d
+97
3 changed files
expand all
collapse all
unified
split
pkgs
applications
inferno
default.nix
inferno
top-level
all-packages.nix
+64
pkgs/applications/inferno/default.nix
···
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
···
1
+
{ fetchurl, fetchhg, stdenv, xlibs, gcc46, makeWrapper }:
2
+
3
+
stdenv.mkDerivation rec {
4
+
# Inferno is a rolling release from a mercurial repository. For the verison number
5
+
# of the package I'm using the mercurial commit number.
6
+
version = "645";
7
+
name = "inferno-${version}";
8
+
9
+
# The mercurial repository does not contain all the components needed for the
10
+
# runtime system. The 'base' package contains these. For this package I download
11
+
# the base, extract the elements required from that, and add them to the source
12
+
# pulled from the mercurial repository.
13
+
srcBase = fetchurl {
14
+
url = "http://www.vitanuova.com/dist/4e/inferno-20100120.tgz";
15
+
sha256 = "0msvy3iwl4n5k0ry0xiyysjkq0qsawmwn3hvg67hbi5y8g7f7l88";
16
+
};
17
+
18
+
src = fetchhg {
19
+
url = "https://inferno-os.googlecode.com/hg";
20
+
rev = "7ab390b860ca";
21
+
sha256 = "09y0iclb3yy10gw1p0182sddg64xh60q2fx4ai7lxyfb65i76qbh";
22
+
};
23
+
24
+
# Fails with gcc48 due to inferno triggering an optimisation issue with floating point.
25
+
buildInputs = [ gcc46 xlibs.libX11 xlibs.libXpm xlibs.libXext xlibs.xextproto makeWrapper ];
26
+
27
+
infernoWrapper = ./inferno;
28
+
29
+
configurePhase = ''
30
+
tar --strip-components=1 -xvf $srcBase inferno/fonts inferno/Mkdirs inferno/empties
31
+
sed -e 's@^ROOT=.*$@ROOT='"$out"'/share/inferno@g' -e 's@^OBJTYPE=.*$@OBJTYPE=386@g' -e 's@^SYSHOST=.*$@SYSHOST=Linux@g' -i mkconfig
32
+
mkdir prof
33
+
sh Mkdirs
34
+
'';
35
+
36
+
buildPhase = ''
37
+
export PATH=$PATH:$out/share/inferno/Linux/386/bin
38
+
mkdir -p $out/share/inferno
39
+
cp -r . $out/share/inferno
40
+
./makemk.sh
41
+
mk nuke
42
+
mk
43
+
'';
44
+
45
+
installPhase = ''
46
+
mk install
47
+
mkdir -p $out/bin
48
+
makeWrapper $out/share/inferno/Linux/386/bin/emu $out/bin/emu \
49
+
--suffix LD_LIBRARY_PATH ':' "${gcc46.gcc}/lib" \
50
+
--suffix PATH ':' "$out/share/inferno/Linux/386/bin"
51
+
makeWrapper $infernoWrapper $out/bin/inferno \
52
+
--suffix LD_LIBRARY_PATH ':' "${gcc46.gcc}/lib" \
53
+
--suffix PATH ':' "$out/share/inferno/Linux/386/bin" \
54
+
--set INFERNO_ROOT "$out/share/inferno"
55
+
'';
56
+
57
+
meta = {
58
+
description = "A compact distributed operating system for building cross-platform distributed systems";
59
+
homepage = "http://inferno-os.org/";
60
+
license = stdenv.lib.licenses.gpl2;
61
+
maintainer = [ "Chris Double <chris.double@double.co.nz>" ];
62
+
platforms = with stdenv.lib.platforms; linux;
63
+
};
64
+
}
+31
pkgs/applications/inferno/inferno
···
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
···
1
+
#! /usr/bin/env bash
2
+
3
+
4
+
export INFERNO_HOME="$HOME/.local/share/inferno"
5
+
if [ -n "$XDG_DATA_HOME" ]
6
+
then export INFERNO_HOME="$XDG_DATA_HOME/inferno"
7
+
fi
8
+
9
+
if [ ! -d $INFERNO_HOME ]; then
10
+
mkdir -p $INFERNO_HOME
11
+
fi
12
+
13
+
if [ ! -d $INFERNO_HOME/tmp ]; then
14
+
mkdir -p $INFERNO_HOME/tmp
15
+
fi
16
+
17
+
for d in $INFERNO_HOME/{acme,appl,dis,lib,man,module,usr/inferno}; do
18
+
if [ ! -d $d ]; then
19
+
mkdir -p $d
20
+
cp --no-preserve=all -r $INFERNO_ROOT/${d#$INFERNO_HOME/}/* $d/
21
+
chmod -R +w $d
22
+
fi
23
+
done
24
+
25
+
if [ ! -d $INFERNO_HOME/usr/$USER ]; then
26
+
mkdir -p $INFERNO_HOME/usr/$USER
27
+
cp -r $INFERNO_ROOT/usr/inferno/* $INFERNO_HOME/usr/$USER/
28
+
chmod -R +w $INFERNO_HOME/usr/$USER
29
+
fi
30
+
31
+
exec emu "$@" /dis/sh.dis -c "bind -b -c '#U*$INFERNO_HOME/' /; /dis/sh.dis"
+2
pkgs/top-level/all-packages.nix
···
8912
inherit (pythonPackages) pyopengl;
8913
};
8914
0
0
8915
inkscape = callPackage ../applications/graphics/inkscape {
8916
inherit (pythonPackages) lxml;
8917
lcms = lcms2;
···
8912
inherit (pythonPackages) pyopengl;
8913
};
8914
8915
+
inferno = callPackage_i686 ../applications/inferno { };
8916
+
8917
inkscape = callPackage ../applications/graphics/inkscape {
8918
inherit (pythonPackages) lxml;
8919
lcms = lcms2;