Make repository importable as NUR (including an overlay)
https://github.com/nix-community/NUR is a Nix community project that aims to make out of tree derivations more easily discoverable and accessible to Nix users. Converting the nix-bitcoin repo to conform to that style is a minor change and enhances reusability of its components. For instance, I could slap on the clightning module more easily onto my existing bitcoin node without having to redeploy the whole as nixops driven installation. Having the repo in NUR style would make that easier.
This commit is contained in:
parent
95b42b62a8
commit
687bf8017d
14
default.nix
Normal file
14
default.nix
Normal file
|
@ -0,0 +1,14 @@
|
||||||
|
{ pkgs ? import <nixpkgs> {} }:
|
||||||
|
{
|
||||||
|
# 'lib', 'modules' and 'overlays' are special, see
|
||||||
|
# https://github.com/nix-community/NUR for more.
|
||||||
|
modules = import ./modules; # NixOS modules
|
||||||
|
|
||||||
|
nodeinfo = pkgs.callPackage ./pkgs/nodeinfo { };
|
||||||
|
banlist = pkgs.callPackage ./pkgs/banlist { };
|
||||||
|
lightning-charge = pkgs.callPackage ./pkgs/lightning-charge { };
|
||||||
|
nanopos = pkgs.callPackage ./pkgs/nanopos { };
|
||||||
|
spark-wallet = pkgs.callPackage ./pkgs/spark-wallet { };
|
||||||
|
electrs = pkgs.callPackage ./pkgs/electrs { };
|
||||||
|
liquidd = pkgs.callPackage ./pkgs/liquidd { };
|
||||||
|
}
|
13
modules/default.nix
Normal file
13
modules/default.nix
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
{
|
||||||
|
bitcoind = ./bitcoind.nix;
|
||||||
|
clightning = ./clightning.nix;
|
||||||
|
default = ./default.nix;
|
||||||
|
electrs = ./electrs.nix;
|
||||||
|
lightning-charge = ./lightning-charge.nix;
|
||||||
|
liquid = ./liquid.nix;
|
||||||
|
nanopos = ./nanopos.nix;
|
||||||
|
nix-bitcoin = ./nix-bitcoin.nix;
|
||||||
|
nix-bitcoin-pkgs = ./nix-bitcoin-pkgs.nix;
|
||||||
|
nix-bitcoin-webindex = ./nix-bitcoin-webindex.nix;
|
||||||
|
spark-wallet = ./spark-wallet.nix;
|
||||||
|
}
|
|
@ -1,35 +1,19 @@
|
||||||
{ config, pkgs, ... }:
|
{ config, pkgs, ... }:
|
||||||
let
|
let
|
||||||
nixpkgs-pinned = import ../pkgs/nixpkgs-pinned.nix;
|
nixpkgs-pinned = import ../pkgs/nixpkgs-pinned.nix;
|
||||||
nixpkgs-unstable = import nixpkgs-pinned.nixpkgs-unstable { };
|
nixpkgs-unstable = import nixpkgs-pinned.nixpkgs-unstable { };
|
||||||
|
|
||||||
# Custom packages
|
|
||||||
nodeinfo = pkgs.callPackage ../pkgs/nodeinfo { };
|
|
||||||
banlist = pkgs.callPackage ../pkgs/banlist { };
|
|
||||||
lightning-charge = pkgs.callPackage ../pkgs/lightning-charge { };
|
|
||||||
nanopos = pkgs.callPackage ../pkgs/nanopos { };
|
|
||||||
spark-wallet = pkgs.callPackage ../pkgs/spark-wallet { };
|
|
||||||
electrs = pkgs.callPackage ../pkgs/electrs { };
|
|
||||||
liquidd = pkgs.callPackage ../pkgs/liquidd { };
|
|
||||||
in {
|
in {
|
||||||
disabledModules = [ "services/security/tor.nix" ];
|
disabledModules = [ "services/security/tor.nix" ];
|
||||||
imports = [
|
imports = [
|
||||||
(nixpkgs-pinned.nixpkgs-unstable + "/nixos/modules/services/security/tor.nix")
|
(nixpkgs-pinned.nixpkgs-unstable + "/nixos/modules/services/security/tor.nix")
|
||||||
];
|
];
|
||||||
|
|
||||||
|
nixpkgs.overlays = [ (import ../overlay.nix) ];
|
||||||
|
|
||||||
nixpkgs.config.packageOverrides = pkgs: {
|
nixpkgs.config.packageOverrides = pkgs: {
|
||||||
# Use bitcoin and clightning from unstable
|
# Use bitcoin and clightning from unstable
|
||||||
bitcoin = nixpkgs-unstable.bitcoin.override { };
|
bitcoin = nixpkgs-unstable.bitcoin.override { };
|
||||||
altcoins.bitcoind = nixpkgs-unstable.altcoins.bitcoind.override { };
|
altcoins.bitcoind = nixpkgs-unstable.altcoins.bitcoind.override { };
|
||||||
clightning = nixpkgs-unstable.clightning.override { };
|
clightning = nixpkgs-unstable.clightning.override { };
|
||||||
|
|
||||||
# Add custom packages
|
|
||||||
inherit nodeinfo;
|
|
||||||
inherit banlist;
|
|
||||||
inherit lightning-charge;
|
|
||||||
inherit nanopos;
|
|
||||||
inherit spark-wallet;
|
|
||||||
inherit electrs;
|
|
||||||
inherit liquidd;
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
27
non-broken.nix
Normal file
27
non-broken.nix
Normal file
|
@ -0,0 +1,27 @@
|
||||||
|
# This file filters out all the broken packages from your package set.
|
||||||
|
# It's what gets built by CI, so if you correctly mark broken packages as
|
||||||
|
# broken your CI will not try to build them and the non-broken packages will
|
||||||
|
# be added to the cache.
|
||||||
|
{ pkgs ? import <nixpkgs> {} }:
|
||||||
|
|
||||||
|
let filterSet =
|
||||||
|
(f: g: s: builtins.listToAttrs
|
||||||
|
(map
|
||||||
|
(n: { name = n; value = builtins.getAttr n s; })
|
||||||
|
(builtins.filter
|
||||||
|
(n: f n && g (builtins.getAttr n s))
|
||||||
|
(builtins.attrNames s)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
);
|
||||||
|
in filterSet
|
||||||
|
(n: !(n=="lib"||n=="overlays"||n=="modules")) # filter out non-packages
|
||||||
|
(p: (builtins.isAttrs p)
|
||||||
|
&& !(
|
||||||
|
(builtins.hasAttr "meta" p)
|
||||||
|
&& (builtins.hasAttr "broken" p.meta)
|
||||||
|
&& (p.meta.broken)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
(import ./default.nix { inherit pkgs; })
|
||||||
|
|
21
overlay.nix
Normal file
21
overlay.nix
Normal file
|
@ -0,0 +1,21 @@
|
||||||
|
# You can use this file as a nixpkgs overlay.
|
||||||
|
# It's useful in the case where you don't want to add the whole NUR namespace
|
||||||
|
# to your configuration.
|
||||||
|
|
||||||
|
self: super:
|
||||||
|
|
||||||
|
let filterSet =
|
||||||
|
(f: g: s: builtins.listToAttrs
|
||||||
|
(map
|
||||||
|
(n: { name = n; value = builtins.getAttr n s; })
|
||||||
|
(builtins.filter
|
||||||
|
(n: f n && g (builtins.getAttr n s))
|
||||||
|
(builtins.attrNames s)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
);
|
||||||
|
in filterSet
|
||||||
|
(n: !(n=="lib"||n=="overlays"||n=="modules")) # filter out non-packages
|
||||||
|
(p: true) # all packages are ok
|
||||||
|
(import ./default.nix { pkgs = super; })
|
||||||
|
|
Loading…
Reference in New Issue
Block a user