init
This commit is contained in:
parent
3eefa8298a
commit
8c08adcbed
27
flake.lock
generated
Normal file
27
flake.lock
generated
Normal file
@ -0,0 +1,27 @@
|
||||
{
|
||||
"nodes": {
|
||||
"nixpkgs": {
|
||||
"locked": {
|
||||
"lastModified": 1738023785,
|
||||
"narHash": "sha256-BPHmb3fUwdHkonHyHi1+x89eXB3kA1jffIpwPVJIVys=",
|
||||
"owner": "nixos",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "2b4230bf03deb33103947e2528cac2ed516c5c89",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nixos",
|
||||
"ref": "nixos-24.11",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"root": {
|
||||
"inputs": {
|
||||
"nixpkgs": "nixpkgs"
|
||||
}
|
||||
}
|
||||
},
|
||||
"root": "root",
|
||||
"version": 7
|
||||
}
|
43
flake.nix
Normal file
43
flake.nix
Normal file
@ -0,0 +1,43 @@
|
||||
{
|
||||
description = "A very basic flake";
|
||||
|
||||
inputs = {
|
||||
# nixpkgs.url = "github:nixos/nixpkgs?ref=nixos-unstable";
|
||||
nixpkgs.url = "github:nixos/nixpkgs?ref=nixos-24.11";
|
||||
};
|
||||
|
||||
outputs = { self, nixpkgs }@inputs:
|
||||
let
|
||||
forEachSystem = nixpkgs.lib.genAttrs [ #untested on non x86_64-linux
|
||||
"aarch64-linux"
|
||||
"i686-linux"
|
||||
"x86_64-linux"
|
||||
"aarch64-darwin"
|
||||
"x86_64-darwin"
|
||||
];
|
||||
forEachPkgs = f: forEachSystem (sys: f nixpkgs.legacyPackages.${sys});
|
||||
|
||||
overlayList = [ self.overlays.default ];
|
||||
pkgsBySystem = forEachSystem (
|
||||
system:
|
||||
import nixpkgs {
|
||||
inherit system;
|
||||
overlays = overlayList;
|
||||
}
|
||||
);
|
||||
in
|
||||
rec {
|
||||
# overlays = import ./overlay.nix { inherit inputs; };
|
||||
# packages = forEachPkgs (pkgs: import ./pkgs { inherit pkgs; });
|
||||
# devShells = forEachPkgs (pkgs: import ./shell.nix { inherit pkgs; });
|
||||
# formatter = forEachPkgs (pkgs: pkgs.nixpkgs-fmt);
|
||||
|
||||
#TODO make overlay import via nixos module
|
||||
|
||||
# for future
|
||||
nixosModules = import ./modules/nixos { overlays = overlayList; };
|
||||
# darwinModules = import ./modules/darwin { overlays = overlayList; };
|
||||
};
|
||||
}
|
||||
|
||||
|
13
modules/nixos/default.nix
Normal file
13
modules/nixos/default.nix
Normal file
@ -0,0 +1,13 @@
|
||||
{ overlays }:
|
||||
|
||||
{
|
||||
fix_malloc_pkgs = import ./fix_malloc_pkgs.nix;
|
||||
|
||||
overlayNixpkgsForThisInstance =
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
nixpkgs = {
|
||||
inherit overlays;
|
||||
};
|
||||
};
|
||||
}
|
69
modules/nixos/fix_malloc_pkgs.nix
Normal file
69
modules/nixos/fix_malloc_pkgs.nix
Normal file
@ -0,0 +1,69 @@
|
||||
{
|
||||
config,
|
||||
pkgs,
|
||||
lib ? pkgs.lib,
|
||||
...
|
||||
}:
|
||||
|
||||
with lib;
|
||||
|
||||
let
|
||||
|
||||
cfg = config.services.fix_malloc_pkgs;
|
||||
|
||||
in
|
||||
|
||||
{
|
||||
###### interface
|
||||
options = {
|
||||
|
||||
services.fix_malloc_pkgs = rec {
|
||||
|
||||
enable = mkOption {
|
||||
type = types.bool;
|
||||
default = true;
|
||||
description = ''
|
||||
Enable overlay to disable custom memory allocators to affected packages (based on grapheneos-light)
|
||||
'';
|
||||
};
|
||||
|
||||
# the simple-go-server does not actually support specifying a port
|
||||
# so this actually does nothing, but it could/should be picked up and
|
||||
# inserted into the systemd config for the service
|
||||
# port = mkOption {
|
||||
# type = types.int;
|
||||
# default = 8080;
|
||||
# description = ''
|
||||
# The port to run the service on
|
||||
# '';
|
||||
# };
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
###### implementation
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
|
||||
nixpkgs.overlays = [
|
||||
|
||||
(self: super: {
|
||||
firefox = pkgs.symlinkJoin {
|
||||
name = "firefox";
|
||||
paths = [ super.firefox];
|
||||
buildInputs = [ pkgs.makeWrapper pkgs.bubblewrap ];
|
||||
postBuild = ''
|
||||
bwrap --dev-bind / / --ro-bind /dev/null $(readlink /etc/static/ld-nix.so.preload) $out/bin/firefox
|
||||
'';
|
||||
};
|
||||
})
|
||||
|
||||
(final: prev: {
|
||||
tor-browser = prev.buildFHSEnv {
|
||||
runScript = "${pkgs.bubblewrap}/bin/bwrap --dev-bind / / --ro-bind /dev/null $(readlink /etc/static/ld-nix.so.preload) $out/bin/tor-browser";
|
||||
};
|
||||
})
|
||||
];
|
||||
};
|
||||
|
||||
}
|
39
overlay.nix
Normal file
39
overlay.nix
Normal file
@ -0,0 +1,39 @@
|
||||
{inputs, pkgs,...}: {
|
||||
# Add new packages
|
||||
# default = final: _prev: import ./pkgs {pkgs = final;};
|
||||
|
||||
# This one contains whatever you want to overlay
|
||||
# You can change versions, add patches, set compilation flags, anything really.
|
||||
# https://nixos.wiki/wiki/Overlays
|
||||
modifications = self: super: {
|
||||
|
||||
# Example - https://discourse.nixos.org/t/overriding-package-with-environment-variable-wrap/22466/3
|
||||
# discord-canary = pkgs.symlinkJoin {
|
||||
# name = "discord-canary";
|
||||
# paths = [ super.discord-canary];
|
||||
# buildInputs = [ pkgs.makeWrapper ];
|
||||
# postBuild = ''
|
||||
# wrapProgram $out/opt/DiscordCanary/DiscordCanary --set GDK_SCALE 2 --set XCURSOR_SIZE 64
|
||||
# '';
|
||||
# };
|
||||
#example 2? - https://discourse.nixos.org/t/overriding-the-buildfhs-runscript-attribute/49582
|
||||
# burpsuite = prev.buildFHSEnv {
|
||||
# runScript = "my new runScript!";
|
||||
# };
|
||||
|
||||
|
||||
firefox = pkgs.symlinkJoin {
|
||||
name = "firefox";
|
||||
paths = [ super.firefox];
|
||||
buildInputs = [ pkgs.makeWrapper pkgs.bubblewrap ];
|
||||
postBuild = ''
|
||||
bwrap --dev-bind / / --ro-bind /dev/null $(readlink /etc/static/ld-nix.so.preload) $out/bin/firefox
|
||||
'';
|
||||
};
|
||||
|
||||
tor-browser = super.buildFHSEnv {
|
||||
runScript = "${pkgs.bubblewrap}/bin/bwrap --dev-bind / / --ro-bind /dev/null $(readlink /etc/static/ld-nix.so.preload) $out/bin/tor-browser";
|
||||
};
|
||||
|
||||
};
|
||||
}
|
Loading…
Reference in New Issue
Block a user