mirror of
https://github.com/foo-dogsquared/nixos-config.git
synced 2025-04-26 12:19:11 +00:00
Compare commits
15 Commits
c6d6215b5a
...
a7d3111d3e
Author | SHA1 | Date | |
---|---|---|---|
a7d3111d3e | |||
8de6cbe359 | |||
0c7fb4aa90 | |||
c5835bc8a0 | |||
3ae1781736 | |||
6f659999d1 | |||
58c393dc1a | |||
ba9e3c3066 | |||
ffafbe1b94 | |||
d8bec326cc | |||
de335fe21c | |||
e27308dea9 | |||
9c76f03186 | |||
3e8c0852e1 | |||
72e09c0345 |
4
.github/workflows/build-devcontainers.yml
vendored
4
.github/workflows/build-devcontainers.yml
vendored
@ -10,10 +10,6 @@ jobs:
|
|||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v4
|
||||||
- uses: DeterminateSystems/nix-installer-action@v16
|
- uses: DeterminateSystems/nix-installer-action@v16
|
||||||
- uses: DeterminateSystems/magic-nix-cache-action@v9
|
|
||||||
with:
|
|
||||||
extra-conf: |
|
|
||||||
keep-going = true
|
|
||||||
- name: Build
|
- name: Build
|
||||||
run: |
|
run: |
|
||||||
nix build -f ./devcontainers --print-out-paths --no-link > build_paths
|
nix build -f ./devcontainers --print-out-paths --no-link > build_paths
|
||||||
|
4
.github/workflows/build.yml
vendored
4
.github/workflows/build.yml
vendored
@ -10,10 +10,6 @@ jobs:
|
|||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v4
|
||||||
- uses: DeterminateSystems/nix-installer-action@v16
|
- uses: DeterminateSystems/nix-installer-action@v16
|
||||||
- uses: DeterminateSystems/magic-nix-cache-action@v9
|
|
||||||
with:
|
|
||||||
extra-conf: |
|
|
||||||
keep-going = true
|
|
||||||
- name: Prepare push to binary cache
|
- name: Prepare push to binary cache
|
||||||
uses: cachix/cachix-action@v15
|
uses: cachix/cachix-action@v15
|
||||||
if: ${{ github.ref == 'refs/heads/master' }}
|
if: ${{ github.ref == 'refs/heads/master' }}
|
||||||
|
1
.github/workflows/iso.yml
vendored
1
.github/workflows/iso.yml
vendored
@ -15,7 +15,6 @@ jobs:
|
|||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v4
|
||||||
- uses: DeterminateSystems/nix-installer-action@v16
|
- uses: DeterminateSystems/nix-installer-action@v16
|
||||||
- uses: DeterminateSystems/magic-nix-cache-action@v9
|
|
||||||
- name: Build ISO
|
- name: Build ISO
|
||||||
run: |
|
run: |
|
||||||
nix build .#images.${{ matrix.arch }}.bootstrap-install-iso --out-link build-iso-result
|
nix build .#images.${{ matrix.arch }}.bootstrap-install-iso --out-link build-iso-result
|
||||||
|
1
.github/workflows/site.yml
vendored
1
.github/workflows/site.yml
vendored
@ -10,7 +10,6 @@ jobs:
|
|||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v4
|
||||||
- uses: DeterminateSystems/nix-installer-action@v16
|
- uses: DeterminateSystems/nix-installer-action@v16
|
||||||
- uses: DeterminateSystems/magic-nix-cache-action@v9
|
|
||||||
- env:
|
- env:
|
||||||
NIXPKGS_ALLOW_UNFREE: "1"
|
NIXPKGS_ALLOW_UNFREE: "1"
|
||||||
run: nix build .#devPackages.x86_64-linux.website
|
run: nix build .#devPackages.x86_64-linux.website
|
||||||
|
@ -101,6 +101,13 @@ in {
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
# GARBAGE DAY!
|
||||||
|
nix.gc = {
|
||||||
|
automatic = true;
|
||||||
|
frequency = "weekly";
|
||||||
|
randomizedDelaySec = "5m";
|
||||||
|
};
|
||||||
|
|
||||||
# Set the profile picture. Most of the desktop environments should support
|
# Set the profile picture. Most of the desktop environments should support
|
||||||
# this.
|
# this.
|
||||||
home.file.".face".source = ./files/logo.png;
|
home.file.".face".source = ./files/logo.png;
|
||||||
|
@ -142,14 +142,18 @@ in {
|
|||||||
home.packages = with pkgs;
|
home.packages = with pkgs;
|
||||||
[
|
[
|
||||||
d-spy # Some GNOME dev probably developed this.
|
d-spy # Some GNOME dev probably developed this.
|
||||||
|
bustle # Hustle and...
|
||||||
];
|
];
|
||||||
})
|
})
|
||||||
|
|
||||||
(lib.mkIf cfg.creative-coding.enable {
|
(lib.mkIf cfg.creative-coding.enable {
|
||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; [
|
||||||
|
decker
|
||||||
|
uxn
|
||||||
supercollider-with-plugins
|
supercollider-with-plugins
|
||||||
processing
|
processing
|
||||||
(puredata-with-plugins (with pkgs; [ zexy ]))
|
(puredata-with-plugins (with pkgs; [ zexy ]))
|
||||||
|
tic-80-unstable
|
||||||
];
|
];
|
||||||
})
|
})
|
||||||
]);
|
]);
|
||||||
|
@ -90,6 +90,13 @@ in {
|
|||||||
}";
|
}";
|
||||||
text = "Local sync server";
|
text = "Local sync server";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
programs.python.modules = ps: with pkgs.swh; [
|
||||||
|
swh-core
|
||||||
|
swh-fuse
|
||||||
|
swh-model
|
||||||
|
swh-web-client
|
||||||
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
(lib.mkIf userCfg.programs.shell.enable {
|
(lib.mkIf userCfg.programs.shell.enable {
|
||||||
|
@ -15,6 +15,10 @@ in pkgs.lib.makeExtensible (self:
|
|||||||
math = callLib ./math.nix;
|
math = callLib ./math.nix;
|
||||||
xdg = callLib ./xdg.nix;
|
xdg = callLib ./xdg.nix;
|
||||||
|
|
||||||
|
# Just like from its inspiration, this contains Nix-representable data
|
||||||
|
# formats and won't have any attributes exported at the top-level.
|
||||||
|
formats = callLib ./formats.nix;
|
||||||
|
|
||||||
# For future references, these are the only attributes that are going to be
|
# For future references, these are the only attributes that are going to be
|
||||||
# exported as part of nixpkgs overlay.
|
# exported as part of nixpkgs overlay.
|
||||||
fetchers = callLib ./fetchers;
|
fetchers = callLib ./fetchers;
|
||||||
|
21
lib/formats.nix
Normal file
21
lib/formats.nix
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
{ lib, pkgs, self }:
|
||||||
|
|
||||||
|
{
|
||||||
|
# The gnome-session config files uses one from GLib. See the following link
|
||||||
|
# at <https://docs.gtk.org/glib/struct.KeyFile.html> for details about the
|
||||||
|
# keyfile formatting and possibly the Desktop Entry specification at
|
||||||
|
# <https://freedesktop.org/wiki/Specifications/desktop-entry-spec>.
|
||||||
|
glibKeyfile = {}: {
|
||||||
|
type = with lib.types;
|
||||||
|
let
|
||||||
|
valueType = oneOf [ bool float int str (listOf valueType) ] // {
|
||||||
|
description =
|
||||||
|
"GLib keyfile atom (bool, int, float, string, or a list of the previous atoms)";
|
||||||
|
};
|
||||||
|
in attrsOf (attrsOf valueType);
|
||||||
|
|
||||||
|
generate = name: value:
|
||||||
|
pkgs.callPackage
|
||||||
|
({ lib, writeText }: writeText name (lib.generators.toDconfINI value));
|
||||||
|
};
|
||||||
|
}
|
@ -20,6 +20,9 @@ clock-format = '24h'
|
|||||||
|
|
||||||
[org/gnome/desktop/privacy]
|
[org/gnome/desktop/privacy]
|
||||||
disable-microphone = false
|
disable-microphone = false
|
||||||
|
max-age = 30
|
||||||
|
remove-old-temp-files = true
|
||||||
|
remove-old-trash-files = true
|
||||||
|
|
||||||
[org/gnome/shell]
|
[org/gnome/shell]
|
||||||
disable-user-extensions = false
|
disable-user-extensions = false
|
||||||
|
@ -36,6 +36,7 @@ in {
|
|||||||
paperwm
|
paperwm
|
||||||
runcat
|
runcat
|
||||||
windownavigator
|
windownavigator
|
||||||
|
valent
|
||||||
];
|
];
|
||||||
example = lib.literalExpression ''
|
example = lib.literalExpression ''
|
||||||
with pkgs.gnomeExtensions; [
|
with pkgs.gnomeExtensions; [
|
||||||
@ -72,11 +73,12 @@ in {
|
|||||||
shortwave # Yer' humble internet radio.
|
shortwave # Yer' humble internet radio.
|
||||||
tangram # Your social media manager, probably.
|
tangram # Your social media manager, probably.
|
||||||
ymuse # Simple MPD client.
|
ymuse # Simple MPD client.
|
||||||
|
valent # ...ines 'tis season to share... phone data or something.
|
||||||
|
|
||||||
gnome-backgrounds # Default backgrounds.
|
gnome-backgrounds # Default backgrounds.
|
||||||
|
|
||||||
gnome-menus # It is required for custom menus in extensions.
|
gnome-menus # It is required for custom menus in extensions.
|
||||||
#gnome-extension-manager # The cooler GNOME extensions app.
|
gnome-extension-manager # The cooler GNOME extensions app.
|
||||||
gnome-search-provider-recoll # This is here for some reason.
|
gnome-search-provider-recoll # This is here for some reason.
|
||||||
|
|
||||||
# Nautilus extensions
|
# Nautilus extensions
|
||||||
|
@ -23,7 +23,7 @@ let
|
|||||||
|
|
||||||
generate = name: value:
|
generate = name: value:
|
||||||
pkgs.callPackage
|
pkgs.callPackage
|
||||||
({ writeText }: writeText name (lib.generators.toDconfINI value));
|
({ writeText, lib }: writeText name (lib.generators.toDconfINI value)) { };
|
||||||
};
|
};
|
||||||
|
|
||||||
# The bulk of the work. Pretty much the main purpose of this module.
|
# The bulk of the work. Pretty much the main purpose of this module.
|
||||||
@ -111,8 +111,8 @@ in {
|
|||||||
options.programs.gnome-session = {
|
options.programs.gnome-session = {
|
||||||
package = lib.mkOption {
|
package = lib.mkOption {
|
||||||
type = lib.types.package;
|
type = lib.types.package;
|
||||||
default = pkgs.gnome.gnome-session;
|
default = pkgs.gnome-session;
|
||||||
defaultText = "pkgs.gnome.gnome-session";
|
defaultText = "pkgs.gnome-session";
|
||||||
description = ''
|
description = ''
|
||||||
The package containing gnome-session binary and systemd units. This
|
The package containing gnome-session binary and systemd units. This
|
||||||
module will use the `gnome-session` executable for the generated
|
module will use the `gnome-session` executable for the generated
|
||||||
|
@ -20,7 +20,6 @@ in lib.makeScope pkgs.newScope (self: {
|
|||||||
fastn = callPackage ./fastn { };
|
fastn = callPackage ./fastn { };
|
||||||
flatsync = callPackage ./flatsync { };
|
flatsync = callPackage ./flatsync { };
|
||||||
freerct = callPackage ./freerct.nix { };
|
freerct = callPackage ./freerct.nix { };
|
||||||
distant = callPackage ./distant.nix { };
|
|
||||||
gnome-search-provider-recoll =
|
gnome-search-provider-recoll =
|
||||||
callPackage ./gnome-search-provider-recoll.nix { };
|
callPackage ./gnome-search-provider-recoll.nix { };
|
||||||
#graphite-design-tool = callPackage ./graphite-design-tool { };
|
#graphite-design-tool = callPackage ./graphite-design-tool { };
|
||||||
@ -50,7 +49,7 @@ in lib.makeScope pkgs.newScope (self: {
|
|||||||
#purrdata = callPackage ./purr-data { };
|
#purrdata = callPackage ./purr-data { };
|
||||||
speki = callPackage ./speki { };
|
speki = callPackage ./speki { };
|
||||||
sqlc-gen-from-template = callPackage ./sqlc-gen-from-template { };
|
sqlc-gen-from-template = callPackage ./sqlc-gen-from-template { };
|
||||||
tic-80 = callPackage ./tic-80 { };
|
tic-80-unstable = callPackage ./tic-80 { };
|
||||||
smile = callPackage ./smile { };
|
smile = callPackage ./smile { };
|
||||||
sessiond = callPackage ./sessiond { };
|
sessiond = callPackage ./sessiond { };
|
||||||
uwsm = callPackage ./uwsm { };
|
uwsm = callPackage ./uwsm { };
|
||||||
|
@ -1,30 +0,0 @@
|
|||||||
{ stdenv, lib, rustPlatform, fetchFromGitHub, pkg-config, openssl }:
|
|
||||||
|
|
||||||
rustPlatform.buildRustPackage rec {
|
|
||||||
version = "0.20.0";
|
|
||||||
pname = "distant";
|
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
|
||||||
owner = "chipsenkbeil";
|
|
||||||
repo = "distant";
|
|
||||||
rev = "v${version}";
|
|
||||||
hash = "sha256-DcnleJUAeYg3GSLZljC3gO9ihiFz04dzT/ddMnypr48=";
|
|
||||||
};
|
|
||||||
cargoHash = "sha256-7MNNdm4b9u5YNX04nBtKcrw+phUlpzIXo0tJVfcgb40=";
|
|
||||||
|
|
||||||
# Too many tests failing for now so we'll have to disable them. Much of the
|
|
||||||
# failed tests require a home directory and network access.
|
|
||||||
doCheck = false;
|
|
||||||
|
|
||||||
# We'll just tell to use the system's openssl to build openssl-sys.
|
|
||||||
env.OPENSSL_NO_VENDOR = 1;
|
|
||||||
nativeBuildInputs = [ pkg-config ];
|
|
||||||
buildInputs = [ openssl ];
|
|
||||||
|
|
||||||
meta = with lib; {
|
|
||||||
description = "Remotely edit files and run programs";
|
|
||||||
homepage = "https://github.com/chipsenkbeil/distant";
|
|
||||||
license = lib.licenses.mit;
|
|
||||||
maintainers = with maintainers; [ foo-dogsquared ];
|
|
||||||
};
|
|
||||||
}
|
|
@ -4,33 +4,32 @@ with python3Packages;
|
|||||||
|
|
||||||
buildPythonPackage rec {
|
buildPythonPackage rec {
|
||||||
pname = "swh-auth";
|
pname = "swh-auth";
|
||||||
version = "0.7.2";
|
version = "0.10.0";
|
||||||
|
pyproject = true;
|
||||||
|
|
||||||
src = fetchPypi {
|
src = fetchPypi {
|
||||||
inherit version;
|
inherit version;
|
||||||
pname = "swh.auth";
|
pname = "swh_auth";
|
||||||
sha256 = "sha256-f0++AuyJggoc19kPA/7UChbFjF/EoR+FztF00r5csLo=";
|
hash = "sha256-J/5oFm0QSPNeEDKIYHEzSXWA/6uSOj9eu3LXYUTZjC0=";
|
||||||
};
|
};
|
||||||
|
|
||||||
# Tests require network access.
|
# Tests require network access.
|
||||||
doCheck = false;
|
doCheck = false;
|
||||||
|
|
||||||
propagatedBuildInputs = [
|
propagatedBuildInputs = [
|
||||||
django
|
|
||||||
djangorestframework
|
|
||||||
sentry-sdk
|
|
||||||
click
|
click
|
||||||
pyyaml
|
pyyaml
|
||||||
(python-keycloak.overrideAttrs (final: prev: rec {
|
python-keycloak
|
||||||
version = "3.3.0";
|
|
||||||
src = pkgs.fetchPypi {
|
# Requirements for Django
|
||||||
inherit version;
|
django
|
||||||
pname = "python_keycloak";
|
djangorestframework
|
||||||
hash = "sha256-zIaBJvU1qk8yDcnqsk5GrzgcE7zIjZsHAbBCk+p1zSQ=";
|
sentry-sdk_2
|
||||||
};
|
|
||||||
propagatedBuildInputs = prev.propagatedBuildInputs
|
# Requirements for Starlette
|
||||||
++ [ setuptools deprecation ];
|
starlette
|
||||||
}))
|
httpx
|
||||||
|
aiocache
|
||||||
|
|
||||||
swh-core
|
swh-core
|
||||||
];
|
];
|
||||||
|
@ -3,12 +3,13 @@
|
|||||||
with python3Packages;
|
with python3Packages;
|
||||||
buildPythonPackage rec {
|
buildPythonPackage rec {
|
||||||
pname = "swh-core";
|
pname = "swh-core";
|
||||||
version = "2.24.0";
|
version = "4.0.0";
|
||||||
|
pyproject = true;
|
||||||
|
|
||||||
src = fetchPypi {
|
src = fetchPypi {
|
||||||
inherit version;
|
inherit version;
|
||||||
pname = "swh.core";
|
pname = "swh_core";
|
||||||
sha256 = "sha256-62xFSPxW/XvK5v1i4RA7Iwrr4V5nfxrs+PGHHC56trQ=";
|
hash = "sha256-da0Kx/pyHybW8oSIyH0/UqivGkSsvnQe7OoVY2p0glA=";
|
||||||
};
|
};
|
||||||
|
|
||||||
# Tests require network access.
|
# Tests require network access.
|
||||||
@ -19,7 +20,7 @@ buildPythonPackage rec {
|
|||||||
deprecated
|
deprecated
|
||||||
pyyaml
|
pyyaml
|
||||||
python-magic
|
python-magic
|
||||||
sentry-sdk
|
sentry-sdk_2
|
||||||
|
|
||||||
# swh.core.db
|
# swh.core.db
|
||||||
psycopg2
|
psycopg2
|
||||||
@ -36,6 +37,7 @@ buildPythonPackage rec {
|
|||||||
flask
|
flask
|
||||||
iso8601
|
iso8601
|
||||||
msgpack
|
msgpack
|
||||||
|
backports-entry-points-selectable
|
||||||
|
|
||||||
setuptools-scm
|
setuptools-scm
|
||||||
];
|
];
|
||||||
|
@ -3,12 +3,13 @@
|
|||||||
with python3Packages;
|
with python3Packages;
|
||||||
buildPythonPackage rec {
|
buildPythonPackage rec {
|
||||||
pname = "swh-fuse";
|
pname = "swh-fuse";
|
||||||
version = "1.0.6";
|
version = "1.1.0";
|
||||||
|
pyproject = true;
|
||||||
|
|
||||||
src = fetchPypi {
|
src = fetchPypi {
|
||||||
inherit version;
|
inherit version;
|
||||||
pname = "swh.fuse";
|
pname = "swh.fuse";
|
||||||
sha256 = "sha256-b1k4XJxaSGrdqQnKnu6EAaZoEVkdZqjt0vd6k+q+H3k=";
|
hash = "sha256-pkTZiUm+Sun+7gBNWXJUHUXTmEIz5tjvfGcU4cUL9Xg=";
|
||||||
};
|
};
|
||||||
|
|
||||||
doCheck = false;
|
doCheck = false;
|
||||||
|
@ -3,18 +3,17 @@
|
|||||||
with python3Packages;
|
with python3Packages;
|
||||||
buildPythonPackage rec {
|
buildPythonPackage rec {
|
||||||
pname = "swh-model";
|
pname = "swh-model";
|
||||||
version = "6.7.0";
|
version = "7.1.0";
|
||||||
|
pyproject = true;
|
||||||
|
|
||||||
src = fetchPypi {
|
src = fetchPypi {
|
||||||
inherit version;
|
inherit version;
|
||||||
pname = "swh.model";
|
pname = "swh_model";
|
||||||
sha256 = "sha256-88xlN/vGXMG858+0A1Wb4EIYC9btRTopY7Ryvw/huDo=";
|
hash = "sha256-MdyhpKm4UzIFVMhIlAT75OMUmfDcOFZzk/dJIZASwmE=";
|
||||||
};
|
};
|
||||||
|
|
||||||
doCheck = false;
|
doCheck = false;
|
||||||
propagatedBuildInputs = [
|
propagatedBuildInputs = [
|
||||||
click
|
|
||||||
dulwich
|
|
||||||
deprecated
|
deprecated
|
||||||
typing-extensions
|
typing-extensions
|
||||||
hypothesis
|
hypothesis
|
||||||
@ -22,8 +21,14 @@ buildPythonPackage rec {
|
|||||||
python-dateutil
|
python-dateutil
|
||||||
attrs
|
attrs
|
||||||
attrs-strict
|
attrs-strict
|
||||||
|
aiohttp
|
||||||
|
pytz
|
||||||
|
|
||||||
swh-core
|
swh-core
|
||||||
|
|
||||||
|
# requirements for CLI
|
||||||
|
click
|
||||||
|
dulwich
|
||||||
];
|
];
|
||||||
|
|
||||||
meta = with lib; {
|
meta = with lib; {
|
||||||
|
@ -3,12 +3,13 @@
|
|||||||
with python3Packages;
|
with python3Packages;
|
||||||
buildPythonPackage rec {
|
buildPythonPackage rec {
|
||||||
pname = "swh-web-client";
|
pname = "swh-web-client";
|
||||||
version = "0.6.0";
|
version = "0.9.0";
|
||||||
|
pyproject = true;
|
||||||
|
|
||||||
src = fetchPypi {
|
src = fetchPypi {
|
||||||
inherit version;
|
inherit version;
|
||||||
pname = "swh.web.client";
|
pname = "swh_web_client";
|
||||||
sha256 = "sha256-o1FcJh3nmGXWZABRQQUj3qgDPaHXwfazaBv8f3LENpk=";
|
hash = "sha256-nBFbWJ7qLGtnxy2iryWfsi4n4XuxVddqBdtzPFtUQ5w=";
|
||||||
};
|
};
|
||||||
|
|
||||||
doCheck = false;
|
doCheck = false;
|
||||||
|
@ -1,63 +1,92 @@
|
|||||||
# Build the TIC-80 virtual computer console with the PRO version. The
|
# Build the TIC-80 virtual computer console with the PRO version. The
|
||||||
# developers are kind enough to make it easy to compile it if you know
|
# developers are kind enough to make it easy to compile it if you know
|
||||||
# how.
|
# how.
|
||||||
{ stdenv, lib, SDL2, SDL2_sound, alsa-lib, cmake, fetchFromGitHub, freeglut, git
|
{ stdenv, lib, giflib, SDL2, SDL2_sound, sdl2-compat, alsa-lib, argparse, curl
|
||||||
, gtk3, dbus, libGLU, libX11, libglvnd, libsamplerate, mesa, pkg-config, sndio
|
, cmake, fetchFromGitHub, freeglut, git, gtk3, dbus, libGLU, libX11, libglvnd
|
||||||
, zlib
|
, libsamplerate, mesa, pkg-config, sndio, zlib, lua54Packages
|
||||||
|
|
||||||
, pulseaudioSupport ? stdenv.isLinux, libpulseaudio
|
, pulseaudioSupport ? stdenv.isLinux, libpulseaudio
|
||||||
|
|
||||||
, waylandSupport ? true, wayland, libxkbcommon, libdecor
|
, jsSupport ? true, quickjs
|
||||||
|
|
||||||
|
, waylandSupport ? true, wayland, wayland-scanner, libxkbcommon, libdecor
|
||||||
|
|
||||||
, esoundSupport ? true, espeak
|
, esoundSupport ? true, espeak
|
||||||
|
|
||||||
, jackSupport ? true, jack2
|
, jackSupport ? true, jack2
|
||||||
|
|
||||||
# Ruby support requires compiling mruby so we'll skip it for now.
|
# As of 2025-03-26, it is basically required to have a very specific version of
|
||||||
, rubySupport ? false, ruby, rake
|
# mruby so no...
|
||||||
|
, rubySupport ? false, mruby
|
||||||
|
|
||||||
, pythonSupport ? true, python3
|
, pythonSupport ? true
|
||||||
|
|
||||||
|
, janetSupport ? true, janet
|
||||||
|
|
||||||
|
# This doesn't have the appropriate system library as of nixpkgs 2025-03-26, btw.
|
||||||
|
, wasmSupport ? true, wasm
|
||||||
|
|
||||||
, withPro ? true }:
|
, withPro ? true }:
|
||||||
|
|
||||||
# TODO: Fix the timestamp in the help section.
|
# TODO: Fix the timestamp in the help section.
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
pname = "tic-80";
|
pname = "tic-80";
|
||||||
version = "unstable-2023-07-18";
|
version = "unstable-2025-03-27";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "nesbox";
|
owner = "nesbox";
|
||||||
repo = "TIC-80";
|
repo = "TIC-80";
|
||||||
rev = "68b94ee596e1ac218b8b9685fd0485c7ee8d2f18";
|
rev = "5aa6c536607a5512ce1913acf3be7be8784fd8db";
|
||||||
hash = "sha256-S3LYuRRFMZYl6dENrV21bowzo7smm+zSHXt77/83oL0=";
|
hash = "sha256-oPubH/dPGDK/ZPY6NjycytAYY4PD2H9MbJg7jGBz3aI=";
|
||||||
fetchSubmodules = true;
|
fetchSubmodules = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
nativeBuildInputs = [ cmake pkg-config ];
|
nativeBuildInputs = [ cmake pkg-config ];
|
||||||
buildInputs = [
|
buildInputs = [
|
||||||
|
argparse
|
||||||
alsa-lib
|
alsa-lib
|
||||||
|
curl
|
||||||
freeglut
|
freeglut
|
||||||
gtk3
|
gtk3
|
||||||
|
giflib
|
||||||
libsamplerate
|
libsamplerate
|
||||||
libGLU
|
libGLU
|
||||||
libglvnd
|
libglvnd
|
||||||
|
lua54Packages.lua
|
||||||
mesa
|
mesa
|
||||||
git
|
git
|
||||||
|
sdl2-compat
|
||||||
SDL2
|
SDL2
|
||||||
SDL2_sound
|
SDL2_sound
|
||||||
zlib
|
zlib
|
||||||
sndio
|
sndio
|
||||||
] ++ lib.optional pulseaudioSupport libpulseaudio
|
] ++ lib.optionals pulseaudioSupport [ libpulseaudio ]
|
||||||
++ lib.optional jackSupport jack2 ++ lib.optional esoundSupport espeak
|
++ lib.optionals jackSupport [ jack2 ]
|
||||||
++ lib.optionals rubySupport [ ruby rake ]
|
++ lib.optionals jsSupport [ quickjs ]
|
||||||
++ lib.optional pythonSupport python3
|
++ lib.optionals esoundSupport [ espeak ]
|
||||||
|
++ lib.optionals rubySupport [ mruby ]
|
||||||
|
++ lib.optionals janetSupport [ janet ]
|
||||||
|
++ lib.optionals wasmSupport [ wasm ]
|
||||||
++ lib.optionals (stdenv.isLinux && waylandSupport) [
|
++ lib.optionals (stdenv.isLinux && waylandSupport) [
|
||||||
wayland
|
wayland
|
||||||
|
wayland-scanner
|
||||||
libxkbcommon
|
libxkbcommon
|
||||||
libdecor
|
libdecor
|
||||||
];
|
];
|
||||||
|
|
||||||
cmakeFlags = lib.optional withPro "-DBUILD_PRO=ON";
|
cmakeFlags =
|
||||||
|
# Just leave the tinier libraries alone for this.
|
||||||
|
[
|
||||||
|
"-DPREFER_SYSTEM_LIBRARIES=ON"
|
||||||
|
"-DBUILD_WITH_FENNEL=ON"
|
||||||
|
"-DBUILD_WITH_MOON=ON"
|
||||||
|
"-DBUILD_WITH_SCHEME=ON"
|
||||||
|
] ++ lib.optionals withPro [ "-DBUILD_PRO=ON" ]
|
||||||
|
++ lib.optionals jsSupport [ "-DBUILD_WITH_JS=ON" ]
|
||||||
|
++ lib.optionals rubySupport [ "-DBUILD_WITH_RUBY=ON" ]
|
||||||
|
++ lib.optionals pythonSupport [ "-DBUILD_WITH_PYTHON=ON" ]
|
||||||
|
++ lib.optionals wasmSupport [ "-DBUILD_WITH_WASM=ON" ]
|
||||||
|
++ lib.optionals janetSupport [ "-DBUILD_WITH_JANET=ON" ];
|
||||||
|
|
||||||
# Export all of the TIC-80-related utilities.
|
# Export all of the TIC-80-related utilities.
|
||||||
outputs = [ "out" "dev" ];
|
outputs = [ "out" "dev" ];
|
||||||
|
Loading…
Reference in New Issue
Block a user