From 12fdc4a30f07c66ec6314bf1a7373a734caca9c8 Mon Sep 17 00:00:00 2001 From: Lorenz Leutgeb Date: Fri, 29 Sep 2023 02:37:47 +0200 Subject: [PATCH] repo: Create list of packages --- README.md | 27 +++++++++++++++++++++++++++ package-list.sh | 16 ++++++++++++++++ 2 files changed, 43 insertions(+) create mode 100755 package-list.sh diff --git a/README.md b/README.md index 38ecee14c..7a1c77ee0 100644 --- a/README.md +++ b/README.md @@ -2,6 +2,32 @@ [Ngipkgs](https://github.com/ngi-nix/ngipkgs) is a collection of [Nix](https://nixos.org/) packages and services for software projects that are supported through the [Next Generation Internet](https://www.ngi.eu/) (NGI) program of the European Commission. +## Packages + ++--------------------------------------------------------------------+--------------------------------------------+--------+------------------------------------------------------------------------------------------------------------------------------------------+----------+ +|Name |Website |Version |Description |License | ++--------------------------------------------------------------------+--------------------------------------------+--------+------------------------------------------------------------------------------------------------------------------------------------------+----------+ +|[`atomic-cli`](/pkgs/atomic-cli/default.nix#L21) |[link](https://crates.io/crates/atomic-cli) |0.34.5 |CLI tool to create, store, query, validate and convert Atomic Data |MIT | +|[`atomic-server`](/pkgs/atomic-server/default.nix#L21) |[link](docs.atomicdata.dev) |0.34.5 |A Rust library to serialize, parse, store, convert, validate, edit, fetch and store Atomic Data. Powers both atomic-cli and atomic-server.|MIT | +|[`flarum`](/pkgs/flarum/default.nix#L23) |[link](https://github.com/flarum/flarum) |1.8.0 |Flarum is a delightfully simple discussion platform for your website |MIT | +|[`gnunet-messenger-cli`](/pkgs/gnunet-messenger-cli/default.nix#L17)| |0.1.1 | | | +|[`kikit`](/pkgs/kikit/default.nix#L71) |[link](https://github.com/yaqwsx/KiKit/) |1.3.0 |Automation for KiCAD boards |MIT | +|[`lcrq`](/pkgs/lcrq/default.nix#L24) |[link](https://librecast.net/lcrq.html) |0.1.0 |Librecast RaptorQ library. |... | +|[`lcsync`](/pkgs/lcsync/default.nix#L29) |[link](https://librecast.net/lcsync.html) |0.2.1 |Librecast File and Syncing Tool |... | +|[`libgnunetchat`](/pkgs/libgnunetchat/default.nix#L21) | |0.1.3 | | | +|[`librecast`](/pkgs/librecast/default.nix#L26) |[link](https://librecast.net/librecast.html)|0.7-RC3 |IPv6 multicast library |... | +|[`pretalx`](/pkgs/pretalx/default.nix#L167) |[link](https://github.com/pretalx/pretalx) |2023.1.3|Conference planning tool: CfP, scheduling, speaker management |Apache-2.0| +|[`pretalx-downstream`](/pkgs/pretalx/plugins.nix#L23) | |1.1.5 | | | +|[`pretalx-frontend`](/pkgs/pretalx/frontend.nix#L30) |[link](https://github.com/pretalx/pretalx) |2023.1.0|Conference planning tool: CfP, scheduling, speaker management |Apache-2.0| +|[`pretalx-full`](/pkgs/pretalx/default.nix#L167) |[link](https://github.com/pretalx/pretalx) |2023.1.3|Conference planning tool: CfP, scheduling, speaker management |Apache-2.0| +|[`pretalx-media-ccc-de`](/pkgs/pretalx/plugins.nix#L23) | |1.1.1 | | | +|[`pretalx-pages`](/pkgs/pretalx/plugins.nix#L23) | |1.3.3 | | | +|[`pretalx-public-voting`](/pkgs/pretalx/plugins.nix#L23) | |1.3.0 | | | +|[`pretalx-venueless`](/pkgs/pretalx/plugins.nix#L23) | |1.3.0 | | | +|[`rosenpass`](/pkgs/rosenpass/default.nix#L47) |[link](https://rosenpass.eu/) |0.2.0 |Build post-quantum-secure VPNs with WireGuard! |... | +|[`rosenpass-tools`](/pkgs/rosenpass-tools/default.nix#L33) |[link](https://rosenpass.eu/) |0.2.0 |Build post-quantum-secure VPNs with WireGuard! This package contains `rp`, which is a script that wraps the `rosenpass` binary. |... | ++--------------------------------------------------------------------+--------------------------------------------+--------+------------------------------------------------------------------------------------------------------------------------------------------+----------+ + ## Structure of Ngipkgs The software in Ngipkgs can be divided into two broad categories: Nix packages, and NixOS services. @@ -85,3 +111,4 @@ Once they are merged into the main branch of the repo, all of the packages in Ng - The user can discover ngi projects through a unified webpage and expectation is set that many of them are research projects. - The developers get a unified code structure, CI & CD tooling, and a common PR and issue tracker which facilitates reviews. - The funding organizations get an easy overview of the packaging situation. + diff --git a/package-list.sh b/package-list.sh new file mode 100755 index 000000000..1eb33f141 --- /dev/null +++ b/package-list.sh @@ -0,0 +1,16 @@ +#! /usr/bin/env bash +IT=. +PACKAGES=$(nix flake show --json $IT | jq -r '.packages."x86_64-linux" | keys[] | select(endswith("toplevel") | not)') +(for PACKAGE in $PACKAGES +do +jq -n \ + --arg name $PACKAGE \ + --slurpfile meta <(nix eval --json .#${PACKAGE}.meta) \ + --slurpfile drv <(nix derivation show .#${PACKAGE}) \ + '($drv[0] | to_entries | .[] | .value | { Name: "[`\($name)`](\($meta[0].position | ltrimstr("/nix/store/") | .[index("/"):] | sub(":";"#L")))", Website: ($meta[0].homepage | if . then "[link](\($meta[0].homepage))" else "" end), Version: .env.version }) * + ($meta[0] | { + Description: (.description // ""), + License: (.license | if type == "array" then map(.spdxId) else (.spdxId // "") end), + })' + +done) | jq -s '.' | tv --style mardown \ No newline at end of file