12 Commits

Author SHA1 Message Date
f97789228c fix libgbm import
Some checks failed
Check flake.lock / Check health of `flake.lock` (pull_request) Successful in 17s
Check Nix formatting / Perform Nix format checks (pull_request) Successful in 3m23s
Check Nix flake / Perform Nix flake checks (pull_request) Failing after 3m57s
2025-04-02 00:11:12 -04:00
c78a8db144 bump ftb-app to 1.27.3 2025-04-02 00:11:11 -04:00
80b31b3a7d merge lego with existing pkgs 2025-04-02 00:11:11 -04:00
3d8b4d5639 move all packages under one folder 2025-04-02 00:11:11 -04:00
926b1618ff update documentation
Signed-off-by: ahuston-0 <aliceghuston@gmail.com>
2025-04-02 00:11:08 -04:00
d9fd71193d add ftb-app to artemision
Signed-off-by: ahuston-0 <aliceghuston@gmail.com>
2025-04-02 00:10:29 -04:00
343aee5d60 expose packages output, add it to global nixpkgs
Signed-off-by: ahuston-0 <aliceghuston@gmail.com>
2025-04-02 00:10:29 -04:00
0076dc6aaa add ftb-app package
Signed-off-by: ahuston-0 <aliceghuston@gmail.com>
2025-04-02 00:10:20 -04:00
51ddf3dc92 Merge pull request 'remove RAD references' (#74) from feature/resync-hydra into main
All checks were successful
Check flake.lock / Check health of `flake.lock` (push) Successful in 14s
Check Nix formatting / Perform Nix format checks (push) Successful in 2m31s
Check Nix flake / Perform Nix flake checks (push) Successful in 8m4s
Reviewed-on: #74
2025-04-01 15:27:46 -04:00
909af41db0 Revert "resync hydra"
All checks were successful
Check flake.lock / Check health of `flake.lock` (pull_request) Successful in 24s
Check Nix formatting / Perform Nix format checks (pull_request) Successful in 2m28s
Check Nix flake / Perform Nix flake checks (pull_request) Successful in 8m47s
This reverts commit 2331cb36ce.
2025-04-01 15:18:39 -04:00
2331cb36ce resync hydra
All checks were successful
Check flake.lock / Check health of `flake.lock` (pull_request) Successful in 32s
Check Nix formatting / Perform Nix format checks (pull_request) Successful in 2m42s
Check Nix flake / Perform Nix flake checks (pull_request) Successful in 10m26s
2025-04-01 15:12:46 -04:00
8b0b25207e remove references to richie/rad
Signed-off-by: ahuston-0 <aliceghuston@gmail.com>
2025-04-01 13:59:09 -04:00
21 changed files with 245 additions and 31 deletions

View File

@ -14,9 +14,7 @@ to onboard a new user or system.
Although we are not actively looking for new members to join in on this repo, Although we are not actively looking for new members to join in on this repo,
we are not strictly opposed. Please reach out to we are not strictly opposed. Please reach out to
[@ahuston-0](https://github.com/ahuston-0) or [@ahuston-0](https://nayeonie.com/ahuston-0) for further information.
[@RichieCahill](https://github.com/RichieCahill)
for further information.
## Repo Structure ## Repo Structure

View File

@ -107,8 +107,7 @@ rules.
We allow secrets to be embedded in the repository using `sops-nix`. As part of We allow secrets to be embedded in the repository using `sops-nix`. As part of
the process everything is encrypted, however adding a new user is a change the process everything is encrypted, however adding a new user is a change
that every existing SOPS user needs to participate in. Please reach out to that every existing SOPS user needs to participate in. Please reach out to
[@ahuston-0](https://github.com/ahuston-0) or [@ahuston-0](https://nayeonie.com/ahuston-0) or if you are interested
[@RichieCahill](https://github.com/RichieCahill) if you are interested
in using secrets on your machines. in using secrets on your machines.
## CI/CD ## CI/CD

View File

@ -136,7 +136,7 @@
systems = [ systems = [
"x86_64-linux" "x86_64-linux"
# disable arm for now as hydra isn't set up for it # disable arm for now as hydra isn't set up for it
# "aarch64-linux" # "aarch64-linuxa
]; ];
forEachSystem = lib.genAttrs systems; forEachSystem = lib.genAttrs systems;
@ -152,8 +152,8 @@
lib = self; lib = self;
} }
); );
inherit (lib.rad-dev.systems) genSystems getImages; inherit (lib.adev.systems) genSystems getImages;
inherit (self) outputs; # for hydra inherit (self) outputs; # for hydra and packages
in in
rec { rec {
inherit lib; # for allowing use of custom functions in nix repl inherit lib; # for allowing use of custom functions in nix repl
@ -168,10 +168,7 @@
qcow = getImages nixosConfigurations "qcow"; qcow = getImages nixosConfigurations "qcow";
}; };
packages.x86_64-linux.lego-latest = packages = import ./pkgs { pkgs = nixpkgs.legacyPackages.x86_64-linux; };
nixpkgs.legacyPackages.x86_64-linux.callPackage ./pkgs/lego-latest/default.nix
{ };
checks = import ./checks.nix { inherit inputs forEachSystem formatter; }; checks = import ./checks.nix { inherit inputs forEachSystem formatter; };
devShells = import ./shell.nix { inherit inputs forEachSystem checks; }; devShells = import ./shell.nix { inherit inputs forEachSystem checks; };

View File

@ -1,7 +1,7 @@
{ lib, ... }: { lib, ... }:
{ {
# create rad-dev namespace for lib # create adev namespace for lib
rad-dev = rec { adev = rec {
systems = import ./systems.nix { inherit lib; }; systems = import ./systems.nix { inherit lib; };
container-utils = import ./container-utils.nix { inherit lib; }; container-utils = import ./container-utils.nix { inherit lib; };

View File

@ -128,6 +128,7 @@ rec {
# configPath: path to the folder containing hardware.nix & configuration.nix # configPath: path to the folder containing hardware.nix & configuration.nix
# hostname: hostname of the server # hostname: hostname of the server
# inputs: flake inputs to be used # inputs: flake inputs to be used
# outputs: flake outputs to be used, primarily for accessing custom packages
# src: base path of the repo # src: base path of the repo
# users: list of users to be added # users: list of users to be added
# home: enables home-manager on this machine (requires all users to have home-manager) # home: enables home-manager on this machine (requires all users to have home-manager)
@ -149,7 +150,7 @@ rec {
configPath, configPath,
hostname, hostname,
inputs, inputs,
outputs, outputs ? { },
src, src,
users, users,
home ? true, home ? true,
@ -176,7 +177,7 @@ rec {
(configPath + "/configuration.nix") (configPath + "/configuration.nix")
] ]
++ modules ++ modules
++ (lib.rad-dev.fileList (src + "/modules")) ++ (lib.adev.fileList (src + "/modules"))
++ genWrapper sops genSops args ++ genWrapper sops genSops args
++ genWrapper home genHome args ++ genWrapper home genHome args
++ genWrapper true genUsers args ++ genWrapper true genUsers args
@ -191,6 +192,7 @@ rec {
# #
# args: # args:
# inputs: flake-inputs to be distributed to each system config # inputs: flake-inputs to be distributed to each system config
# outputs: flake-outputs to be distributed to each system config
# src: the base path to the repo # src: the base path to the repo
# path: the path to read the systems from, should be a directory containing one directory per machine, each having at least the following # path: the path to read the systems from, should be a directory containing one directory per machine, each having at least the following
# - default.nix (with the extra params for constructSystem in it, see systems/palatine-hill/default.nix for an example) # - default.nix (with the extra params for constructSystem in it, see systems/palatine-hill/default.nix for an example)
@ -219,10 +221,10 @@ rec {
; ;
hostname = name; hostname = name;
} }
// import configPath { inherit inputs; } // import configPath { inherit inputs outputs; }
); );
} }
) (lib.rad-dev.lsdir path) ) (lib.adev.lsdir path)
); );
# gets all the images of a specified format # gets all the images of a specified format

View File

@ -61,7 +61,7 @@ in
lib.mkIf cfg.enable { lib.mkIf cfg.enable {
environment.systemPackages = environment.systemPackages =
[ pkgs.git ] [ pkgs.git ]
++ lib.optionals (lib.any (ssh-key: ssh-key != "") (lib.rad-dev.mapGetAttr "ssh-key" repos)) [ ++ lib.optionals (lib.any (ssh-key: ssh-key != "") (lib.adev.mapGetAttr "ssh-key" repos)) [
pkgs.openssh pkgs.openssh
]; ];

View File

@ -1,10 +1,10 @@
{ lib, config, ... }: { lib, config, ... }:
let let
cfg = config.services.rad-dev.k3s-net; cfg = config.services.adev.k3s-net;
in in
{ {
options = { options = {
services.rad-dev.k3s-net = { services.adev.k3s-net = {
enable = lib.mkOption { enable = lib.mkOption {
default = false; default = false;
example = true; example = true;

View File

@ -1,4 +1,9 @@
{ lib, pkgs, ... }: {
lib,
pkgs,
outputs,
...
}:
{ {
nix = { nix = {
package = pkgs.nixVersions.latest; package = pkgs.nixVersions.latest;
@ -46,4 +51,11 @@
dates = [ "01:00" ]; dates = [ "01:00" ];
}; };
}; };
nixpkgs.overlays = [
(_: _: {
# bring all packages into a namespace called rad-pkgs
rad-pkgs = lib.genAttrs (lib.attrNames outputs.packages) (pkg: outputs.packages.${pkg});
})
];
} }

View File

@ -5,11 +5,11 @@
... ...
}: }:
let let
cfg = config.services.rad-dev.yubikey; cfg = config.services.adev.yubikey;
in in
{ {
options = { options = {
services.rad-dev.yubikey = { services.adev.yubikey = {
enable = lib.mkEnableOption "enable yubikey defaults"; enable = lib.mkEnableOption "enable yubikey defaults";
enable-desktop-app = lib.mkEnableOption "installs desktop application"; enable-desktop-app = lib.mkEnableOption "installs desktop application";
}; };

9
pkgs/default.nix Normal file
View File

@ -0,0 +1,9 @@
{ pkgs, ... }:
let
rad-maintainers = import ./maintainers.nix;
in
{
ftb-app = pkgs.callPackage ./ftb-app { inherit rad-maintainers; };
lego-latest = pkgs.callPackage ./lego-latest { inherit rad-maintainers; };
}

112
pkgs/ftb-app/default.nix Normal file
View File

@ -0,0 +1,112 @@
{
alsa-lib,
at-spi2-atk,
cairo,
cups,
dbus,
dpkg,
expat,
fetchurl,
gtk3,
gdk-pixbuf,
jre,
lib,
libdrm,
libgbm,
libxkbcommon,
makeWrapper,
mesa,
nspr,
nss,
pango,
rad-maintainers,
stdenv,
xorg,
...
}:
# source_aarch64=("https://piston.feed-the-beast.com/app/ftb-app-${pkgver}-arm64.deb")
# sha256sums_aarch64=(ad1197556a187693cbc488142562a0c17144e33056f1c914950c2f1496a4c532)
stdenv.mkDerivation rec {
pname = "ftb-app";
version = "1.27.3";
src = fetchurl {
url = "https://piston.feed-the-beast.com/app/ftb-app-linux-${version}-amd64.deb";
sha256 = "031a73g58vj35h33pmp3swjrjlg09ismdx46810sp7ihrpvs0ad6";
};
nativeBuildInputs = [
dpkg
makeWrapper
];
unpackPhase = ''
runHook preUnpack
dpkg -x $src ./ftb-app
runHook postUnpack
'';
installPhase = ''
runHook preInstall
mkdir -p "$out"
cp -r ftb-app/* "$out"
# Flatten /usr and manually merge lib/ and usr/lib/, since mv refuses to.
mv "$out"'/opt/FTB Electron App' "$out/bin"
mv "$out/usr/"* "$out/"
rmdir "$out/usr"
rmdir "$out/opt"
for f in "$out/share/applications/"*.desktop; do
substituteInPlace "$f" \
--replace-fail '/opt/FTB Electron App/ftb-app' "$out/bin/ftb-app"
done
# prevent self-upgrade with dpkg
rm "$out/bin/resources/package-type"
chmod +x "$out/bin/ftb-app"
libs="${nss}/lib/libnss3.so ${nss}/lib/libnssutil3.so ${nss}/lib/libsmime3.so "
libs+="${nspr}/lib/libnspr4.so ${dbus.lib}/lib/libdbus-1.so.3 "
libs+="${at-spi2-atk}/lib/libatk-1.0.so.0 ${cups.lib}/lib/libcups.so.2 "
libs+="${at-spi2-atk}/lib/libatk-bridge-2.0.so.0 "
libs+="${libdrm}/lib/libdrm.so.2 ${gtk3}/lib/libgtk-3.so.0 "
libs+="${pango.out}/lib/libpango-1.0.so.0 ${cairo}/lib/libcairo.so.2 "
libs+="${xorg.libX11}/lib/libX11.so.6 ${xorg.libXext}/lib/libXext.so.6 "
libs+="${xorg.libXcomposite}/lib/libXcomposite.so.1 "
libs+="${xorg.libXdamage}/lib/libXdamage.so.1 "
libs+="${xorg.libXfixes}/lib/libXfixes.so.3 ${expat}/lib/libexpat.so.1 "
libs+="${xorg.libXrandr}/lib/libXrandr.so.2 "
libs+="${xorg.libxcb}/lib/libxcb.so.1 ${alsa-lib}/lib/libasound.so.2 "
libs+="${libxkbcommon}/lib/libxkbcommon.so.0 "
libs+="${at-spi2-atk}/lib/libatspi.so.0 ${xorg.libXtst}/lib/libXtst.so.6 "
libs+="${gdk-pixbuf}/lib/libgdk_pixbuf-2.0.so.0 ${libgbm}/lib/libgbm.so.1"
echo "$libs"
for p in "$out/bin/ftb-app"; do
wrapProgram "$p" \
--set LD_PRELOAD "$libs" \
--set NIX_REDIRECTS "/usr/share=$out/share:"'/opt/FTB Electron Application'"=$out/bin" \
--set JAVA_HOME "${jre.home}"
# --prefix PATH : "{lib.makeBinPath [ gzip gnutar ]}"
done
runHook postInstall
'';
meta = with lib; {
description = "A new Modpack launcher for FTB and Curse modpacks.";
homepage = "https://feed-the-beast.com/app";
license = with licenses; [ lgpl21Only ];
sourceProvenance = with sourceTypes; [ binaryNativeCode ];
maintainers = with rad-maintainers; [ ahuston-0 ];
platforms = [ "x86_64-linux" ];
mainProgram = "ftb-app";
};
}

View File

@ -2,6 +2,7 @@
lib, lib,
fetchFromGitHub, fetchFromGitHub,
buildGoModule, buildGoModule,
rad-maintainers,
}: }:
buildGoModule rec { buildGoModule rec {
@ -31,7 +32,7 @@ buildGoModule rec {
description = "Let's Encrypt client and ACME library written in Go"; description = "Let's Encrypt client and ACME library written in Go";
license = licenses.mit; license = licenses.mit;
homepage = "https://go-acme.github.io/lego/"; homepage = "https://go-acme.github.io/lego/";
maintainers = teams.acme.members; maintainers = teams.acme.members ++ [ rad-maintainers.ahuston-0 ];
mainProgram = "lego"; mainProgram = "lego";
}; };

77
pkgs/maintainers.nix Normal file
View File

@ -0,0 +1,77 @@
/*
Borrowed this from nixpkgs :)
List of NixOS maintainers.
```nix
handle = {
# Required
name = "Your name";
# Optional, but at least one of email, matrix or githubId must be given
email = "address@example.org";
matrix = "@user:example.org";
github = "GithubUsername";
githubId = your-github-id;
keys = [{
fingerprint = "AAAA BBBB CCCC DDDD EEEE FFFF 0000 1111 2222 3333";
}];
};
```
where
- `handle` is the handle you are going to use in nixpkgs expressions,
- `name` is a name that people would know and recognize you by,
- `email` is your maintainer email address,
- `matrix` is your Matrix user ID,
- `github` is your GitHub handle (as it appears in the URL of your profile page, `https://github.com/<userhandle>`),
- `githubId` is your GitHub user ID, which can be found at `https://api.github.com/users/<userhandle>`,
- `keys` is a list of your PGP/GPG key fingerprints.
Specifying a GitHub account ensures that you automatically:
- get invited to the @NixOS/nixpkgs-maintainers team ;
- once you are part of the @NixOS org, OfBorg will request you review
pull requests that modify a package for which you are a maintainer.
`handle == github` is strongly preferred whenever `github` is an acceptable attribute name and is short and convenient.
If `github` begins with a numeral, `handle` should be prefixed with an underscore.
```nix
_1example = {
github = "1example";
};
```
Add PGP/GPG keys only if you actually use them to sign commits and/or mail.
To get the required PGP/GPG values for a key run
```shell
gpg --fingerprint <email> | head -n 2
```
!!! Note that PGP/GPG values stored here are for informational purposes only, don't use this file as a source of truth.
More fields may be added in the future, however, in order to comply with GDPR this file should stay as minimal as possible.
When editing this file:
* keep the list alphabetically sorted, check with:
nix-instantiate --eval maintainers/scripts/check-maintainers-sorted.nix
* test the validity of the format with:
nix-build lib/tests/maintainers.nix
See `./scripts/check-maintainer-github-handles.sh` for an example on how to work with this data.
When adding a new maintainer, be aware of the current commit conventions
documented at [CONTRIBUTING.md](https://github.com/NixOS/nixpkgs/blob/master/CONTRIBUTING.md#commit-conventions)
file located in the root of the Nixpkgs repo.
*/
{
ahuston-0 = {
name = "ahuston-0";
email = "aliceghuston@gmail.com";
github = "ahuston-0";
githubId = 43225907;
keys = [ { fingerprint = "F638 32C3 080D 6E1A C77E ECF8 0B42 45FF E305 BC82"; } ];
};
}

View File

@ -38,7 +38,7 @@ forEachSystem (
}; };
# constructs a custom shell with commonly used utilities # constructs a custom shell with commonly used utilities
rad-dev = pkgs.mkShell { adev = pkgs.mkShell {
packages = with pkgs; [ packages = with pkgs; [
deadnix deadnix
pre-commit pre-commit
@ -56,7 +56,7 @@ forEachSystem (
default = pkgs.mkShell { default = pkgs.mkShell {
inputsFrom = [ inputsFrom = [
pre-commit pre-commit
rad-dev adev
sops sops
]; ];
}; };

View File

@ -75,7 +75,7 @@
fprintd.enable = lib.mkForce false; fprintd.enable = lib.mkForce false;
openssh.enable = lib.mkForce false; openssh.enable = lib.mkForce false;
rad-dev.yubikey = { adev.yubikey = {
enable = true; enable = true;
enable-desktop-app = true; enable-desktop-app = true;
}; };

View File

@ -30,6 +30,10 @@
}; };
# Optional, hint electron apps to use wayland: # Optional, hint electron apps to use wayland:
environment.sessionVariables.NIXOS_OZONE_WL = "1"; environment.sessionVariables.NIXOS_OZONE_WL = "1";
xdg.portal = {
enable = true;
extraPortals = [ pkgs.xdg-desktop-portal-gtk ];
};
services = { services = {
xserver = { xserver = {

View File

@ -72,6 +72,7 @@
protontricks protontricks
proxychains proxychains
qrencode qrencode
rad-pkgs.ftb-app
redshift redshift
restic restic
ripgrep ripgrep

View File

@ -31,7 +31,7 @@
openssl openssl
] ]
++ [ ++ [
outputs.packages.x86_64-linux.lego-latest outputs.packages.lego-latest
] ]
); );

View File

@ -122,7 +122,7 @@ let
cmd = lib.splitString " " "--concurrent 6 AmAnd0"; cmd = lib.splitString " " "--concurrent 6 AmAnd0";
}; };
inherit (lib.rad-dev.container-utils) createTemplatedContainers; inherit (lib.adev.container-utils) createTemplatedContainers;
vars = import ../vars.nix; vars = import ../vars.nix;
at_path = vars.primary_archiveteam; at_path = vars.primary_archiveteam;

View File

@ -46,7 +46,7 @@ in
cmd = [ cmd = [
( (
"--mapping=mc.alicehuston.xyz=${defaultServer}:25565" "--mapping=mc.alicehuston.xyz=${defaultServer}:25565"
+ (lib.rad-dev.mapAttrsToString (hostname: url: "," + url + "=" + hostname + ":25565") servers) + (lib.adev.mapAttrsToString (hostname: url: "," + url + "=" + hostname + ":25565") servers)
) )
]; ];
}; };

View File

@ -76,6 +76,7 @@
nix-prefetch nix-prefetch
nix-tree nix-tree
nh nh
nix-prefetch-scripts
# doom emacs dependencies # doom emacs dependencies
fd fd
@ -90,6 +91,7 @@
nodejs_20 nodejs_20
nodePackages.prettier nodePackages.prettier
treefmt treefmt
]; ];
}; };