init
This commit is contained in:
6
.github/dependabot.yml
vendored
Normal file
6
.github/dependabot.yml
vendored
Normal file
@@ -0,0 +1,6 @@
|
||||
version: 2
|
||||
updates:
|
||||
- package-ecosystem: "github-actions"
|
||||
directory: "/"
|
||||
schedule:
|
||||
interval: "weekly"
|
||||
76
.github/workflows/build.yml
vendored
Normal file
76
.github/workflows/build.yml
vendored
Normal file
@@ -0,0 +1,76 @@
|
||||
name: "Build and populate cache"
|
||||
on:
|
||||
pull_request:
|
||||
push:
|
||||
branches:
|
||||
- main
|
||||
- master
|
||||
schedule:
|
||||
# rebuild everyday at 2:51
|
||||
# TIP: Choose a random time here so not all repositories are build at once:
|
||||
# https://www.random.org/clock-times/?num=1&earliest=01%3A00&latest=08%3A00&interval=5&format=html&rnd=new
|
||||
- cron: '51 2 * * *'
|
||||
workflow_dispatch:
|
||||
jobs:
|
||||
tests:
|
||||
strategy:
|
||||
matrix:
|
||||
# Set this to notify the global nur package registry that changes are
|
||||
# available.
|
||||
#
|
||||
# The repo name as used in
|
||||
# https://github.com/nix-community/NUR/blob/master/repos.json
|
||||
nurRepo:
|
||||
- sydpkgs
|
||||
# Set this to cache your build results in cachix for faster builds
|
||||
# in CI and for everyone who uses your cache.
|
||||
#
|
||||
# Format: Your cachix cache host name without the ".cachix.org" suffix.
|
||||
# Example: mycache (for mycache.cachix.org)
|
||||
#
|
||||
# For this to work, you also need to set the CACHIX_SIGNING_KEY or
|
||||
# CACHIX_AUTH_TOKEN secret in your repository secrets settings in
|
||||
# Github found at
|
||||
# https://github.com/<your_githubname>/nur-packages/settings/secrets
|
||||
cachixName:
|
||||
- sydpkgs
|
||||
nixPath:
|
||||
- nixpkgs=https://github.com/NixOS/nixpkgs/archive/refs/heads/nixpkgs-unstable.tar.gz
|
||||
- nixpkgs=https://github.com/NixOS/nixpkgs/archive/refs/heads/nixos-unstable.tar.gz
|
||||
- nixpkgs=https://github.com/NixOS/nixpkgs/archive/refs/heads/nixos-24.05.tar.gz
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v4
|
||||
- name: Install nix
|
||||
uses: cachix/install-nix-action@v30
|
||||
with:
|
||||
nix_path: "${{ matrix.nixPath }}"
|
||||
extra_nix_config: |
|
||||
experimental-features = nix-command flakes
|
||||
access-tokens = github.com=${{ secrets.GITHUB_TOKEN }}
|
||||
- name: Show nixpkgs version
|
||||
run: nix-instantiate --eval -E '(import <nixpkgs> {}).lib.version'
|
||||
- name: Setup cachix
|
||||
uses: cachix/cachix-action@v15
|
||||
# Don't replace <YOUR_CACHIX_NAME> here!
|
||||
if: ${{ matrix.cachixName != '<YOUR_CACHIX_NAME>' }}
|
||||
with:
|
||||
name: ${{ matrix.cachixName }}
|
||||
signingKey: '${{ secrets.CACHIX_SIGNING_KEY }}'
|
||||
authToken: '${{ secrets.CACHIX_AUTH_TOKEN }}'
|
||||
- name: Check evaluation
|
||||
run: |
|
||||
nix-env -f . -qa \* --meta --xml \
|
||||
--allowed-uris https://static.rust-lang.org \
|
||||
--option restrict-eval true \
|
||||
--option allow-import-from-derivation true \
|
||||
--drv-path --show-trace \
|
||||
-I nixpkgs=$(nix-instantiate --find-file nixpkgs) \
|
||||
-I $PWD
|
||||
- name: Build nix packages
|
||||
run: nix shell -f '<nixpkgs>' nix-build-uncached -c nix-build-uncached ci.nix -A cacheOutputs
|
||||
- name: Trigger NUR update
|
||||
# Don't replace <YOUR_REPO_NAME> here!
|
||||
if: ${{ matrix.nurRepo != '<YOUR_REPO_NAME>' }}
|
||||
run: curl -XPOST "https://nur-update.nix-community.org/update?repo=${{ matrix.nurRepo }}"
|
||||
3
.gitignore
vendored
Normal file
3
.gitignore
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
result
|
||||
result-*
|
||||
|
||||
22
LICENSE
Normal file
22
LICENSE
Normal file
@@ -0,0 +1,22 @@
|
||||
MIT License
|
||||
|
||||
Copyright (c) 2018 Francesco Gazzetta
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
|
||||
6
README.md
Normal file
6
README.md
Normal file
@@ -0,0 +1,6 @@
|
||||
# sydpkgs
|
||||
|
||||

|
||||
|
||||
[](https://sydpkgs.cachix.org)
|
||||
|
||||
56
ci.nix
Normal file
56
ci.nix
Normal file
@@ -0,0 +1,56 @@
|
||||
# This file provides all the buildable and cacheable packages and
|
||||
# package outputs in your package set. These are what gets built by CI,
|
||||
# so if you correctly mark packages as
|
||||
#
|
||||
# - broken (using `meta.broken`),
|
||||
# - unfree (using `meta.license.free`), and
|
||||
# - locally built (using `preferLocalBuild`)
|
||||
#
|
||||
# then your CI will be able to build and cache only those packages for
|
||||
# which this is possible.
|
||||
|
||||
{ pkgs ? import <nixpkgs> { } }:
|
||||
|
||||
with builtins;
|
||||
let
|
||||
isReserved = n: n == "lib" || n == "overlays" || n == "modules";
|
||||
isDerivation = p: isAttrs p && p ? type && p.type == "derivation";
|
||||
isBuildable = p: let
|
||||
licenseFromMeta = p.meta.license or [];
|
||||
licenseList = if builtins.isList licenseFromMeta then licenseFromMeta else [licenseFromMeta];
|
||||
in !(p.meta.broken or false) && builtins.all (license: license.free or true) licenseList;
|
||||
isCacheable = p: !(p.preferLocalBuild or false);
|
||||
shouldRecurseForDerivations = p: isAttrs p && p.recurseForDerivations or false;
|
||||
|
||||
nameValuePair = n: v: { name = n; value = v; };
|
||||
|
||||
concatMap = builtins.concatMap or (f: xs: concatLists (map f xs));
|
||||
|
||||
flattenPkgs = s:
|
||||
let
|
||||
f = p:
|
||||
if shouldRecurseForDerivations p then flattenPkgs p
|
||||
else if isDerivation p then [ p ]
|
||||
else [ ];
|
||||
in
|
||||
concatMap f (attrValues s);
|
||||
|
||||
outputsOf = p: map (o: p.${o}) p.outputs;
|
||||
|
||||
nurAttrs = import ./default.nix { inherit pkgs; };
|
||||
|
||||
nurPkgs =
|
||||
flattenPkgs
|
||||
(listToAttrs
|
||||
(map (n: nameValuePair n nurAttrs.${n})
|
||||
(filter (n: !isReserved n)
|
||||
(attrNames nurAttrs))));
|
||||
|
||||
in
|
||||
rec {
|
||||
buildPkgs = filter isBuildable nurPkgs;
|
||||
cachePkgs = filter isCacheable buildPkgs;
|
||||
|
||||
buildOutputs = concatMap outputsOf buildPkgs;
|
||||
cacheOutputs = concatMap outputsOf cachePkgs;
|
||||
}
|
||||
25
default.nix
Normal file
25
default.nix
Normal file
@@ -0,0 +1,25 @@
|
||||
# This file describes your repository contents.
|
||||
# It should return a set of nix derivations
|
||||
# and optionally the special attributes `lib`, `modules` and `overlays`.
|
||||
# It should NOT import <nixpkgs>. Instead, you should take pkgs as an argument.
|
||||
# Having pkgs default to <nixpkgs> is fine though, and it lets you use short
|
||||
# commands such as:
|
||||
# nix-build -A mypackage
|
||||
|
||||
{ pkgs ? import <nixpkgs> { } }:
|
||||
|
||||
let
|
||||
callPackage = pkgs.lib.callPackageWith (pkgs // sydpkgs);
|
||||
sydpkgs =
|
||||
pkgs.lib.mapAttrs
|
||||
(pkg: _:
|
||||
callPackage ./pkgs/${pkg} {})
|
||||
(builtins.readDir ./pkgs);
|
||||
in sydpkgs // {
|
||||
# The `lib`, `modules`, and `overlays` names are special
|
||||
lib = import ./lib { inherit pkgs; };
|
||||
|
||||
modules = import ./modules;
|
||||
|
||||
overlays = import ./overlays;
|
||||
}
|
||||
27
flake.lock
generated
Normal file
27
flake.lock
generated
Normal file
@@ -0,0 +1,27 @@
|
||||
{
|
||||
"nodes": {
|
||||
"nixpkgs": {
|
||||
"locked": {
|
||||
"lastModified": 1712449641,
|
||||
"narHash": "sha256-U9DDWMexN6o5Td2DznEgguh8TRIUnIl9levmit43GcI=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "600b15aea1b36eeb43833a50b0e96579147099ff",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NixOS",
|
||||
"ref": "nixpkgs-unstable",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"root": {
|
||||
"inputs": {
|
||||
"nixpkgs": "nixpkgs"
|
||||
}
|
||||
}
|
||||
},
|
||||
"root": "root",
|
||||
"version": 7
|
||||
}
|
||||
23
flake.nix
Normal file
23
flake.nix
Normal file
@@ -0,0 +1,23 @@
|
||||
{
|
||||
description = "My niche packages.";
|
||||
|
||||
inputs = {
|
||||
nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable";
|
||||
};
|
||||
|
||||
outputs = { self, nixpkgs }:
|
||||
let
|
||||
forAllSystems = nixpkgs.lib.genAttrs nixpkgs.lib.systems.flakeExposed;
|
||||
in
|
||||
{
|
||||
legacyPackages = forAllSystems (system: import ./default.nix {
|
||||
pkgs = import nixpkgs { inherit system; };
|
||||
});
|
||||
|
||||
packages =
|
||||
forAllSystems (system:
|
||||
nixpkgs.lib.filterAttrs
|
||||
(_: v: nixpkgs.lib.isDerivation v)
|
||||
self.legacyPackages.${system});
|
||||
};
|
||||
}
|
||||
7
lib/default.nix
Normal file
7
lib/default.nix
Normal file
@@ -0,0 +1,7 @@
|
||||
{ pkgs }:
|
||||
|
||||
with pkgs.lib; {
|
||||
# Add your library functions here
|
||||
#
|
||||
# hexint = x: hexvals.${toLower x};
|
||||
}
|
||||
5
modules/default.nix
Normal file
5
modules/default.nix
Normal file
@@ -0,0 +1,5 @@
|
||||
{
|
||||
# Add your NixOS modules here
|
||||
#
|
||||
# my-module = ./my-module;
|
||||
}
|
||||
15
overlay.nix
Normal file
15
overlay.nix
Normal file
@@ -0,0 +1,15 @@
|
||||
# You can use this file as a nixpkgs overlay. This is useful in the
|
||||
# case where you don't want to add the whole NUR namespace to your
|
||||
# configuration.
|
||||
|
||||
self: super:
|
||||
let
|
||||
isReserved = n: n == "lib" || n == "overlays" || n == "modules";
|
||||
nameValuePair = n: v: { name = n; value = v; };
|
||||
nurAttrs = import ./default.nix { pkgs = super; };
|
||||
|
||||
in
|
||||
builtins.listToAttrs
|
||||
(map (n: nameValuePair n nurAttrs.${n})
|
||||
(builtins.filter (n: !isReserved n)
|
||||
(builtins.attrNames nurAttrs)))
|
||||
1
overlays/default.nix
Normal file
1
overlays/default.nix
Normal file
@@ -0,0 +1 @@
|
||||
{}
|
||||
25
pkgs/ansilove/default.nix
Normal file
25
pkgs/ansilove/default.nix
Normal file
@@ -0,0 +1,25 @@
|
||||
{ stdenv
|
||||
, cmake
|
||||
, fetchFromGitHub
|
||||
, libansilove
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation (final: {
|
||||
pname = "ansilove";
|
||||
version = "4.2.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "ansilove";
|
||||
repo = "ansilove";
|
||||
rev = final.version;
|
||||
hash = "sha256-13v2NLVJt11muwocBiQYz/rxQkte/W6LXwB/H/E9Nvk=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
cmake
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
libansilove
|
||||
];
|
||||
})
|
||||
49
pkgs/asciiville-aewan/default.nix
Normal file
49
pkgs/asciiville-aewan/default.nix
Normal file
@@ -0,0 +1,49 @@
|
||||
{ lib
|
||||
, python3Packages
|
||||
, fetchFromGitHub
|
||||
, makeWrapper
|
||||
, withGifExport ? true
|
||||
, ansilove
|
||||
}:
|
||||
|
||||
python3Packages.buildPythonApplication rec {
|
||||
pname = "asciiville-aewan";
|
||||
version = "1.0.0";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "cmang";
|
||||
repo = "durdraw";
|
||||
rev = version;
|
||||
hash = "sha256-a+4DGWBD5XLaNAfTN/fmI/gALe76SCoWrnjyglNhVPY=";
|
||||
};
|
||||
|
||||
build-system = with python3Packages; [
|
||||
setuptools
|
||||
];
|
||||
|
||||
dependencies = [
|
||||
];
|
||||
|
||||
nativeBuildInputs = [
|
||||
makeWrapper
|
||||
];
|
||||
|
||||
postInstall = lib.optionalString withGifExport ''
|
||||
wrapProgram $out/bin/durdraw \
|
||||
--prefix PATH : "${lib.makeBinPath [ansilove]}"
|
||||
'';
|
||||
|
||||
meta = {
|
||||
changelog = "https://github.com/cmang/durdraw/releases/tag/${version}";
|
||||
description = ''
|
||||
Versatile ASCII and ANSI Art text editor for drawing in the
|
||||
Linux/Unix/macOS terminal, with animation, 256 and 16 colors, Unicode and
|
||||
CP437, and customizable themes.
|
||||
'';
|
||||
homepage = "https://github.com/cmang/durdraw/";
|
||||
license = lib.licenses.bsd3;
|
||||
# maintainers = [
|
||||
# ];
|
||||
};
|
||||
}
|
||||
46
pkgs/durdraw/default.nix
Normal file
46
pkgs/durdraw/default.nix
Normal file
@@ -0,0 +1,46 @@
|
||||
{ lib
|
||||
, python3Packages
|
||||
, fetchFromGitHub
|
||||
, makeWrapper
|
||||
, withGifExport ? true
|
||||
, ansilove
|
||||
}:
|
||||
|
||||
python3Packages.buildPythonApplication rec {
|
||||
pname = "durdraw";
|
||||
version = "0.29.0";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "cmang";
|
||||
repo = "durdraw";
|
||||
rev = version;
|
||||
hash = "sha256-a+4DGWBD5XLaNAfTN/fmI/gALe76SCoWrnjyglNhVPY=";
|
||||
};
|
||||
|
||||
build-system = with python3Packages; [
|
||||
setuptools
|
||||
];
|
||||
|
||||
dependencies = [];
|
||||
|
||||
nativeBuildInputs = [
|
||||
makeWrapper
|
||||
];
|
||||
|
||||
postInstall = lib.optionalString withGifExport ''
|
||||
wrapProgram $out/bin/durdraw \
|
||||
--prefix PATH : "${lib.makeBinPath [ansilove]}"
|
||||
'';
|
||||
|
||||
meta = {
|
||||
changelog = "https://github.com/cmang/durdraw/releases/tag/${version}";
|
||||
description = ''
|
||||
Versatile ASCII and ANSI Art text editor for drawing in the
|
||||
Linux/Unix/macOS terminal, with animation, 256 and 16 colors, Unicode and
|
||||
CP437, and customizable themes.
|
||||
'';
|
||||
homepage = "https://github.com/cmang/durdraw/";
|
||||
license = lib.licenses.bsd3;
|
||||
};
|
||||
}
|
||||
25
pkgs/libansilove/default.nix
Normal file
25
pkgs/libansilove/default.nix
Normal file
@@ -0,0 +1,25 @@
|
||||
{ stdenv
|
||||
, cmake
|
||||
, fetchFromGitHub
|
||||
, gd
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation (final: {
|
||||
pname = "libansilove";
|
||||
version = "1.4.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "ansilove";
|
||||
repo = "libansilove";
|
||||
rev = final.version;
|
||||
hash = "sha256-kbQ7tbQbJ8zYhdbfiVZY26woyR4NNzqjCJ/5nrunlWs=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
cmake
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
gd
|
||||
];
|
||||
})
|
||||
21
pkgs/nbb/default.nix
Normal file
21
pkgs/nbb/default.nix
Normal file
@@ -0,0 +1,21 @@
|
||||
{ bun
|
||||
, nodejs
|
||||
, stdenv
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation (final: {
|
||||
pname = "nbb";
|
||||
version = "1.3.200";
|
||||
|
||||
src = ./nbb-${final.version}.tar.gz;
|
||||
|
||||
buildInputs = [
|
||||
bun
|
||||
nodejs
|
||||
];
|
||||
|
||||
installPhase = ''
|
||||
mkdir -p $out
|
||||
cp -r lib bin $out
|
||||
'';
|
||||
})
|
||||
BIN
pkgs/nbb/nbb-1.3.200.tar.gz
Normal file
BIN
pkgs/nbb/nbb-1.3.200.tar.gz
Normal file
Binary file not shown.
19
pkgs/vtf2png/default.nix
Normal file
19
pkgs/vtf2png/default.nix
Normal file
@@ -0,0 +1,19 @@
|
||||
{ stdenv, libpng, fetchFromGitHub }:
|
||||
|
||||
stdenv.mkDerivation {
|
||||
pname = "vtf2png";
|
||||
version = "e74a1f";
|
||||
src = fetchFromGitHub {
|
||||
owner = "eXeC64";
|
||||
repo = "vtf2png";
|
||||
rev = "e74a1fd24b760a0339ec4d498d0b9fef75d847ff";
|
||||
hash = "sha256-/tfhTMQNBh6RVe55QyYjG3ns0w0/E/afF7aB2lAp/f4=";
|
||||
};
|
||||
buildInputs = [
|
||||
libpng
|
||||
];
|
||||
installPhase = ''
|
||||
mkdir -p $out/bin
|
||||
mv vtf2png $out/bin
|
||||
'';
|
||||
}
|
||||
Reference in New Issue
Block a user