docs: Update Readme
This commit is contained in:
@@ -1,2 +1,98 @@
|
|||||||
# obx-pkgs
|
# Oceanbox Nixpkgs
|
||||||
|
|
||||||
|
`obx-pkgs` is the shared Oceanbox Nix overlay. It collects packages that we use
|
||||||
|
across projects but that are either not in nixpkgs, are stuck on an outdated
|
||||||
|
version, or need internal patches. Each project that consumes the overlay gets
|
||||||
|
the same versions, the same fixes, and a single place to update them.
|
||||||
|
|
||||||
|
## Usage
|
||||||
|
|
||||||
|
### As an overlay on nixpkgs (recommended)
|
||||||
|
|
||||||
|
With `npins`:
|
||||||
|
|
||||||
|
```nix
|
||||||
|
{
|
||||||
|
sources ? import ./npins,
|
||||||
|
pkgs ? import sources.nixpkgs {
|
||||||
|
overlays = [ (import "${sources.obx-pkgs}/overlay.nix") ];
|
||||||
|
},
|
||||||
|
}:
|
||||||
|
# pkgs.arcosparse, pkgs.openzl, pkgs.sphinx-shibuya-theme, ... are now available
|
||||||
|
```
|
||||||
|
|
||||||
|
With `flakes`:
|
||||||
|
|
||||||
|
```nix
|
||||||
|
{
|
||||||
|
inputs.obx-pkgs.url = "git+https://git.oceanbox.io/oceanbox/obx-pkgs";
|
||||||
|
|
||||||
|
outputs = { nixpkgs, obx-pkgs, ... }: {
|
||||||
|
legacyPackages.x86_64-linux = import nixpkgs {
|
||||||
|
system = "x86_64-linux";
|
||||||
|
overlays = [ obx-pkgs.overlays.default ];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### As a standalone package set
|
||||||
|
|
||||||
|
```nix
|
||||||
|
let
|
||||||
|
obx = import sources.obx-pkgs { };
|
||||||
|
in
|
||||||
|
[ obx.copernicusmarine obx.sz3 ]
|
||||||
|
```
|
||||||
|
|
||||||
|
Useful when you want one of our packages without modifying the rest
|
||||||
|
of nixpkgs.
|
||||||
|
|
||||||
|
## Adding a package
|
||||||
|
|
||||||
|
```text
|
||||||
|
by-name/
|
||||||
|
<package-name>/
|
||||||
|
default.nix
|
||||||
|
```
|
||||||
|
|
||||||
|
`default.nix` is a regular `callPackage` function, the same shape you would
|
||||||
|
write for nixpkgs:
|
||||||
|
|
||||||
|
```nix
|
||||||
|
{ stdenv, fetchFromGitHub, ... }:
|
||||||
|
stdenv.mkDerivation { ... }
|
||||||
|
```
|
||||||
|
|
||||||
|
Cross-references between our own packages work via the standard argument syntax
|
||||||
|
name the dependency in the argument list (e.g. `arcosparse`) and the overlay's
|
||||||
|
`self.callPackage` injects it.
|
||||||
|
|
||||||
|
Once the directory exists it is picked up automatically
|
||||||
|
|
||||||
|
## Development
|
||||||
|
|
||||||
|
```text
|
||||||
|
nix-shell
|
||||||
|
```
|
||||||
|
|
||||||
|
drops you into a shell with `npins`, `nix-init`, `nix-update`, and a
|
||||||
|
pre-configured `treefmt`.
|
||||||
|
|
||||||
|
Format the tree:
|
||||||
|
|
||||||
|
```text
|
||||||
|
treefmt
|
||||||
|
```
|
||||||
|
|
||||||
|
Update a pin:
|
||||||
|
|
||||||
|
```text
|
||||||
|
npins update nixpkgs
|
||||||
|
```
|
||||||
|
|
||||||
|
Bump a package version:
|
||||||
|
|
||||||
|
```text
|
||||||
|
nix-update -f . <package-name>
|
||||||
|
```
|
||||||
|
|||||||
Reference in New Issue
Block a user