push sheeet
Some checks failed
Periodic Merges (6h) / master → staging-nixos (push) Failing after 12m50s
Periodic Merges (6h) / master → staging-next (push) Failing after 12m54s
Periodic Merges (24h) / merge-base(master,staging) → haskell-updates (push) Failing after 11m54s
Periodic Merges (6h) / staging-next → staging (push) Failing after 12m13s
Periodic Merges (24h) / staging-next-25.05 → staging-25.05 (push) Failing after 13m24s
Periodic Merges (24h) / release-25.05 → staging-next-25.05 (push) Failing after 14m28s

This commit is contained in:
Dark Steveneq
2025-10-09 14:15:47 +02:00
commit 646b892680
49168 changed files with 5897842 additions and 0 deletions

View File

@@ -0,0 +1,27 @@
{
lib,
buildGoModule,
fetchFromGitHub,
}:
buildGoModule rec {
pname = "keysmith";
version = "1.6.2";
src = fetchFromGitHub {
owner = "dfinity";
repo = "keysmith";
rev = "v${version}";
sha256 = "sha256-+wYWIoPYc7qpTRS4Zlxp50Up8obZOmfQpiT0SWwVJE0=";
};
vendorHash = "sha256-rIH10TRWOgmJM8bnKXYTsmmAtlrMMxHc8rnaCmMJGdw=";
meta = with lib; {
description = "Hierarchical Deterministic Key Derivation for the Internet Computer";
homepage = "https://github.com/dfinity/keysmith";
license = licenses.mit;
maintainers = with maintainers; [ imalison ];
mainProgram = "keysmith";
};
}

View File

@@ -0,0 +1,50 @@
{
lib,
python3Packages,
fetchFromGitHub,
versionCheckHook,
}:
python3Packages.buildPythonApplication rec {
pname = "ical2orgpy";
version = "0.5";
pyproject = true;
src = fetchFromGitHub {
owner = "ical2org-py";
repo = "ical2org.py";
tag = version;
hash = "sha256-vBi1WYXMuDFS/PnwFQ/fqN5+gIvtylXidfZklyd6LcI=";
};
build-system = [ python3Packages.setuptools ];
dependencies = with python3Packages; [
click
icalendar
pytz
tzlocal
recurring-ical-events
];
pythonRemoveDeps = [ "future" ];
nativeCheckInputs = with python3Packages; [
freezegun
pytestCheckHook
pyyaml
versionCheckHook
];
pythonImportsCheck = [ "ical2orgpy" ];
meta = {
changelog = "https://github.com/ical2org-py/ical2org.py/blob/${src.tag}/CHANGELOG.rst";
description = "Converting ICAL file into org-mode format";
homepage = "https://github.com/ical2org-py/ical2org.py";
license = lib.licenses.gpl3Only;
maintainers = with lib.maintainers; [ StillerHarpo ];
mainProgram = "ical2orgpy";
};
}

View File

@@ -0,0 +1,51 @@
{
lib,
stdenv,
fetchurl,
libX11,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "icbm3d";
version = "0.4";
src = fetchurl {
url = "ftp://ftp.tuxpaint.org/unix/x/icbm3d/icbm3d.${finalAttrs.version}.tar.gz";
hash = "sha256-mtQcFU70dpV3GiaHXVQVvO3LE5NSseIXXzhtIGsAOP0=";
};
buildInputs = [ libX11 ];
buildFlags = [ "CC=${stdenv.cc.targetPrefix}cc" ]; # fix darwin and cross-compiled builds
# Function are declared after they are used in the file, this is error since gcc-14.
# randnum.c:25:3: warning: implicit declaration of function 'srand' [-Wimplicit-function-declaration]
# randnum.c:33:7: warning: implicit declaration of function 'rand'; did you mean 'randnum'? [-Wimplicit-function-declaration]
# text.c:34:50: warning: implicit declaration of function 'strlen' [-Wimplicit-function-declaration]
postPatch = ''
substituteInPlace randnum.c --replace-fail 'stdio.h' 'stdlib.h'
sed -i '1i\
#include <string.h>' text.c
# The Makefile tries to install icbm3d immediately after building it, and
# ends up trying to copy it to /icbm3d. Normally this just gets an error
# and moves on, but it's probably better to not try it in the first place.
sed -i '/INSTALLROOT/d' makefile
'';
installPhase = ''
runHook preInstall
install -Dm755 -t $out/bin icbm3d
runHook postInstall
'';
meta = {
homepage = "http://www.newbreedsoftware.com/icbm3d/";
description = "3D vector-based clone of the atari game Missile Command";
mainProgram = "icbm3d";
license = lib.licenses.gpl2Plus;
platforms = lib.platforms.unix;
};
})

View File

@@ -0,0 +1,3 @@
{ python3Packages }:
python3Packages.toPythonApplication python3Packages.icdiff

View File

@@ -0,0 +1,41 @@
{
lib,
stdenvNoCC,
unzip,
fetchurl,
nix-update-script,
}:
stdenvNoCC.mkDerivation (finalAttrs: {
pname = "ice-bar";
version = "0.11.12";
src = fetchurl {
url = "https://github.com/jordanbaird/Ice/releases/download/${finalAttrs.version}/Ice.zip";
hash = "sha256-13DoFZdWbdLSNj/rNQ+AjHqS42PflcUeSBQOsw5FLMk=";
};
sourceRoot = ".";
nativeBuildInputs = [ unzip ];
installPhase = ''
runHook preInstall
mkdir -p "$out/Applications"
cp -r *.app "$out/Applications"
runHook postInstall
'';
passthru.updateScript = nix-update-script { };
meta = {
description = "Powerful menu bar manager for macOS";
homepage = "https://icemenubar.app/";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ FlameFlag ];
platforms = lib.platforms.darwin;
sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
};
})

View File

@@ -0,0 +1,47 @@
{
lib,
buildGoModule,
fetchFromGitHub,
makeBinaryWrapper,
}:
buildGoModule {
pname = "icebreaker";
version = "0-unstable-2023-08-13";
src = fetchFromGitHub {
owner = "jonhoo";
repo = "icebreaker";
rev = "71fe0679fcf82ccf458b47585cda09f3ef213155";
hash = "sha256-d8x4Q4ZT0qrKWEIRbYVOUjhnkJWOgY0ct/+cjaSh7SU=";
};
proxyVendor = true;
vendorHash = "sha256-A0jNy8cUKpfAqocgjdYU7LB4EgIr9tiOCyEaXGQl8TM=";
nativeBuildInputs = [
makeBinaryWrapper
];
ldflags = [
"-s"
"-w"
];
postInstall = ''
mkdir -p $out/share
cp -r static templates $out/share
wrapProgram $out/bin/icebreaker \
--chdir $out/share \
--set-default GIN_MODE release
'';
meta = with lib; {
description = "Web app that allows students to ask real-time, anonymous questions during class";
homepage = "https://github.com/jonhoo/icebreaker";
license = licenses.mit;
maintainers = with maintainers; [ figsoda ];
mainProgram = "icebreaker";
};
}

View File

@@ -0,0 +1,55 @@
{
lib,
stdenv,
fetchurl,
libxml2,
libxslt,
curl,
libvorbis,
libtheora,
speex,
libkate,
libopus,
}:
stdenv.mkDerivation rec {
pname = "icecast";
version = "2.4.4";
src = fetchurl {
url = "http://downloads.xiph.org/releases/icecast/icecast-${version}.tar.gz";
sha256 = "0i2d9rhav0x6js2qhjf5iy6j2a7f0d11ail0lfv40hb1kygrgda9";
};
buildInputs = [
libxml2
libxslt
curl
libvorbis
libtheora
speex
libkate
libopus
];
hardeningEnable = [ "pie" ];
meta = {
description = "Server software for streaming multimedia";
mainProgram = "icecast";
longDescription = ''
Icecast is a streaming media server which currently supports
Ogg (Vorbis and Theora), Opus, WebM and MP3 audio streams.
It can be used to create an Internet radio station or a privately
running jukebox and many things in between. It is very versatile
in that new formats can be added relatively easily and supports
open standards for commuincation and interaction.
'';
homepage = "https://www.icecast.org";
license = lib.licenses.gpl2Plus;
maintainers = with lib.maintainers; [ jcumming ];
platforms = with lib.platforms; unix;
};
}

View File

@@ -0,0 +1,47 @@
{
lib,
stdenv,
fetchFromGitHub,
autoreconfHook,
docbook2x,
libarchive,
libcap_ng,
lzo,
pkg-config,
zstd,
docbook_xml_dtd_45,
}:
stdenv.mkDerivation rec {
pname = "icecream";
version = "1.4";
src = fetchFromGitHub {
owner = "icecc";
repo = "icecream";
rev = version;
sha256 = "sha256-nBdUbWNmTxKpkgFM3qbooNQISItt5eNKtnnzpBGVbd4=";
};
enableParallelBuilding = true;
nativeBuildInputs = [
autoreconfHook
docbook2x
pkg-config
];
buildInputs = [
libarchive
libcap_ng
lzo
zstd
docbook_xml_dtd_45
];
meta = with lib; {
description = "Distributed compiler with a central scheduler to share build load";
inherit (src.meta) homepage;
license = licenses.gpl2Plus;
maintainers = with maintainers; [ emantor ];
platforms = with platforms; linux ++ darwin;
};
}

View File

@@ -0,0 +1,41 @@
{
lib,
fetchFromGitHub,
git,
awscli,
python3,
}:
python3.pkgs.buildPythonApplication {
pname = "iceshelf";
version = "0-unstable-2019-07-03";
format = "other";
src = fetchFromGitHub {
owner = "mrworf";
repo = "iceshelf";
rev = "26768dde3fc54fa412e523eb8f8552e866b4853b";
sha256 = "08rcbd14vn7312rmk2hyvdzvhibri31c4r5lzdrwb1n1y9q761qm";
};
propagatedBuildInputs = [
git
awscli
python3.pkgs.python-gnupg
];
installPhase = ''
mkdir -p $out/bin $out/share/doc/iceshelf $out/${python3.sitePackages}
cp -v iceshelf iceshelf-restore $out/bin
cp -v iceshelf.sample.conf $out/share/doc/iceshelf/
cp -rv modules $out/${python3.sitePackages}
'';
meta = with lib; {
description = "Simple tool to allow storage of signed, encrypted, incremental backups using Amazon's Glacier storage";
license = licenses.lgpl2;
homepage = "https://github.com/mrworf/iceshelf";
maintainers = with maintainers; [ mmahut ];
};
}

View File

@@ -0,0 +1,87 @@
{
stdenv,
lib,
fetchzip,
libglut,
libXmu,
libXi,
libX11,
libICE,
libGLU,
libGL,
libSM,
libXext,
glibc,
lua,
luabind,
glfw,
libgccjit,
dialog,
makeWrapper,
}:
let
lpath = lib.makeLibraryPath [
libXmu
libXi
libX11
libglut
libICE
libGLU
libGL
libSM
libXext
glibc
lua
glfw
luabind
libgccjit
];
in
stdenv.mkDerivation rec {
pname = "iceSL";
version = "2.4.1";
src =
if stdenv.hostPlatform.system == "x86_64-linux" then
fetchzip {
url = "https://icesl.loria.fr/assets/other/download.php?build=${version}&os=amd64";
extension = "zip";
sha256 = "0rrnkqkhlsjclif5cjbf17qz64vs95ja49xarxjvq54wb4jhbs4l";
}
else if stdenv.hostPlatform.system == "i686-linux" then
fetchzip {
url = "https://icesl.loria.fr/assets/other/download.php?build=${version}&os=i386";
extension = "zip";
sha256 = "0n2yyxzw0arkc70f0qli4n5chdlh9vc7aqizk4v7825mcglhwlyh";
}
else
throw "Unsupported architecture";
nativeBuildInputs = [ makeWrapper ];
installPhase = ''
cp -r ./ $out
rm $out/bin/*.so
mkdir $out/oldbin
mv $out/bin/IceSL-slicer $out/oldbin/IceSL-slicer
runHook postInstall
'';
postInstall = ''
patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
--set-rpath "${lpath}" \
$out/oldbin/IceSL-slicer
makeWrapper $out/oldbin/IceSL-slicer $out/bin/icesl --prefix PATH : ${dialog}/bin
'';
meta = with lib; {
description = "GPU-accelerated procedural modeler and slicer for 3D printing";
homepage = "https://icesl.loria.fr/";
sourceProvenance = with sourceTypes; [ binaryNativeCode ];
license = licenses.inria-icesl;
platforms = [
"i686-linux"
"x86_64-linux"
];
maintainers = with maintainers; [ mgttlinger ];
};
}

View File

@@ -0,0 +1,84 @@
{
lib,
stdenv,
callPackage,
fetchFromGitHub,
pkg-config,
libftdi1,
python3,
pypy3,
# PyPy yields large improvements in build time and runtime performance, and
# IceStorm isn't intended to be used as a library other than by the nextpnr
# build process (which is also sped up by using PyPy), so we use it by default.
# See 18839e1 for more details.
#
# FIXME(aseipp, 3/1/2021): pypy seems a bit busted since stdenv upgrade to gcc
# 10/binutils 2.34, so short-circuit this for now in passthru below (done so
# that downstream overrides can't re-enable pypy and break their build somehow)
usePyPy ? stdenv.hostPlatform.system == "x86_64-linux",
}:
stdenv.mkDerivation (finalAttrs: {
pname = "icestorm";
version = "0-unstable-2025-06-03";
passthru = rec {
pythonPkg = if (false && usePyPy) then pypy3 else python3;
pythonInterp = pythonPkg.interpreter;
tests.examples = callPackage ./tests.nix {
inherit (finalAttrs) pname src;
icestorm = finalAttrs.finalPackage;
};
};
src = fetchFromGitHub {
owner = "YosysHQ";
repo = "icestorm";
rev = "f31c39cc2eadd0ab7f29f34becba1348ae9f8721";
hash = "sha256-SLSxqgVsYMUxv8YjY1iRLnVFiIAhk/GKmZr4Ido0A3o=";
};
nativeBuildInputs = [ pkg-config ];
buildInputs = [
finalAttrs.passthru.pythonPkg
libftdi1
];
makeFlags = [
"PREFIX=$(out)"
"PYTHON3=${finalAttrs.passthru.pythonInterp}"
];
enableParallelBuilding = true;
# fix up the path to the chosen Python interpreter. for pypy-compatible
# platforms, it offers significant performance improvements.
patchPhase = ''
for x in $(find . -type f -iname '*.py' -executable); do
substituteInPlace "$x" \
--replace-fail '/usr/bin/env python3' '${finalAttrs.passthru.pythonInterp}'
done
# We use GNU sed on Darwin, while icebox/Makefile assumed BSD sed (which
# requires a (potentially empty) argument for the -i flag).
substituteInPlace icebox/Makefile --replace-fail "sed -i '''" "sed -i"
'';
meta = {
description = "Documentation and tools for Lattice iCE40 FPGAs";
longDescription = ''
Project IceStorm aims at reverse engineering and
documenting the bitstream format of Lattice iCE40
FPGAs and providing simple tools for analyzing and
creating bitstream files.
'';
homepage = "https://github.com/YosysHQ/icestorm/";
license = lib.licenses.isc;
maintainers = with lib.maintainers; [
shell
thoughtpolice
];
platforms = lib.platforms.all;
};
})

View File

@@ -0,0 +1,29 @@
# Run the examples from $src/examples/ as simple integration tests. They require
# yosys and nextpnr (which itself depends on this package), so they cannot be
# ran during the check phase.
{
runCommand,
icestorm,
nextpnr,
yosys,
pname,
src,
}:
runCommand "${pname}-test-examples"
{
nativeBuildInputs = [
icestorm
nextpnr
yosys
];
}
''
cp -r ${src}/examples .
chmod -R +w examples
for example in examples/*; do
make -C $example
done
touch $out
''

View File

@@ -0,0 +1,127 @@
{
lib,
fetchurl,
fetchFromGitHub,
buildNpmPackage,
makeDesktopItem,
makeWrapper,
unstableGitUpdater,
nwjs,
python3,
}:
let
# Use unstable because it has improvements for finding python
version = "0.12-unstable-2025-08-19";
src = fetchFromGitHub {
owner = "FPGAwars";
repo = "icestudio";
rev = "8bc0391117bd3639881ed947e49e4cd37c199a95";
hash = "sha256-GWG6FvBiowgiW7MWKxCOivmDbb5YveZR6Nn3foLifwY=";
};
collection = fetchurl {
url = "https://github.com/FPGAwars/collection-default/archive/v0.4.1.zip";
hash = "sha256-F2cAqkTPC7xfGnPQiS8lTrD4y34EkHFUEDPVaYzVVg8=";
};
app = buildNpmPackage {
pname = "icestudio-app";
inherit version src;
npmDepsHash = "sha256-Dpnx23iq0fK191DXFgIfnbi+MLEp65H6eL81Icg4H4U=";
sourceRoot = "${src.name}/app";
dontNpmBuild = true;
installPhase = ''
cp -r . $out
'';
};
desktopItem = makeDesktopItem {
desktopName = "Icestudio";
comment = "Visual editor for open FPGA boards";
name = "icestudio";
exec = "icestudio";
icon = "icestudio";
terminal = false;
categories = [ "Development" ];
};
in
buildNpmPackage rec {
pname = "icestudio";
inherit version src;
npmDepsHash = "sha256-QHd4d0BQXqAs/4WnnawCW/tJvSbWOz++RwomNG4XBuU=";
npmFlags = [
# Use the legacy dependency resolution, with less strict version
# requirements for transative dependencies
"--legacy-peer-deps"
# We want to avoid call the scripts/postInstall.sh until we copy the
# collection and app derivation we do that on installPhase
"--ignore-scripts"
];
buildPhase = ''
runHook preBuild
# Copy the `app` derivation into the folder expected for grunt
cp -r ${app}/* app
# Copy the cached `collection` derivation into the cache location so that
# grunt avoids downloading it
install -m444 -D ${collection} cache/collection/collection-default.zip
./node_modules/.bin/grunt getcollection
# Use grunt to distribute package
# TODO: support aarch64
./node_modules/.bin/grunt dist \
--platform=none `# skip platform-specific steps` \
--dont-build-nwjs `# use the nwjs package shipped by Nix` \
--dont-clean-tmp `# skip cleaning the tmp folder as we'll use it in $out`
runHook postBuild
'';
installPhase = ''
runHook preInstall
cp -r dist/tmp $out
for size in 16 32 64 128 256; do
install -Dm644 docs/resources/icons/"$size"x"$size"/apps/icon.png \
$out/share/icons/hicolor/"$size"x"$size"/apps/icestudio.png
done
install -Dm644 ${desktopItem}/share/applications/icestudio.desktop -t $out/share/applications
makeWrapper ${nwjs}/bin/nw $out/bin/${pname} \
--add-flags $out \
--prefix PATH : "${python3}/bin"
runHook postInstall
'';
passthru.updateScript = unstableGitUpdater {
tagPrefix = "v";
};
nativeBuildInputs = [ makeWrapper ];
buildInputs = [ python3 ];
meta = {
description = "Visual editor for open FPGA boards";
homepage = "https://github.com/FPGAwars/icestudio/";
license = lib.licenses.gpl2Only;
maintainers = with lib.maintainers; [
kiike
jleightcap
rcoeurjoly
amerino
];
teams = [ lib.teams.ngi ];
mainProgram = "icestudio";
platforms = lib.platforms.linux;
};
}

View File

@@ -0,0 +1,130 @@
{
lib,
gccStdenv,
fetchFromGitHub,
cmake,
expat,
flac,
fontconfig,
freetype,
fribidi,
gdk-pixbuf,
gdk-pixbuf-xlib,
gettext,
giflib,
glib,
imlib2,
libICE,
libSM,
libX11,
libXcomposite,
libXdamage,
libXdmcp,
libXext,
libXfixes,
libXft,
libXinerama,
libXpm,
libXrandr,
libjpeg,
libogg,
libpng,
libpthreadstubs,
libsndfile,
libtiff,
libxcb,
mkfontdir,
pcre2,
perl,
pkg-config,
}:
gccStdenv.mkDerivation (finalAttrs: {
pname = "icewm";
version = "3.8.2";
src = fetchFromGitHub {
owner = "ice-wm";
repo = "icewm";
tag = finalAttrs.version;
hash = "sha256-CbIQICov0h3lBDT54dEODkINNXou6CUEhRQAPZwfYK0=";
};
strictDeps = true;
nativeBuildInputs = [
cmake
perl
pkg-config
gettext # msgmerge
];
buildInputs = [
expat
flac
fontconfig
freetype
fribidi
gdk-pixbuf
gdk-pixbuf-xlib
gettext
giflib
glib
imlib2
libICE
libSM
libX11
libXcomposite
libXdamage
libXdmcp
libXext
libXfixes
libXft
libXinerama
libXpm
libXrandr
libjpeg
libogg
libpng
libpthreadstubs
libsndfile
libtiff
libxcb
mkfontdir
pcre2
];
cmakeFlags = [
"-DPREFIX=$out"
"-DCFGDIR=/etc/icewm"
];
env.NIX_CFLAGS_COMPILE = lib.optionalString gccStdenv.hostPlatform.isDarwin "-D_DARWIN_C_SOURCE";
# install legacy themes
postInstall = ''
cp -r ../lib/themes/{gtk2,Natural,nice,nice2,warp3,warp4,yellowmotif} \
$out/share/icewm/themes/
'';
meta = {
homepage = "https://ice-wm.org/";
description = "Simple, lightweight X window manager";
longDescription = ''
IceWM is a window manager for the X Window System. The goal of IceWM is
speed, simplicity, and not getting in the users way. It comes with a
taskbar with pager, global and per-window keybindings and a dynamic menu
system. Application windows can be managed by keyboard and mouse. Windows
can be iconified to the taskbar, to the tray, to the desktop or be made
hidden. They are controllable by a quick switch window (Alt+Tab) and in a
window list. A handful of configurable focus models are menu-selectable.
Setups with multiple monitors are supported by RandR and Xinerama. IceWM
is very configurable, themeable and well documented. It includes an
optional external background wallpaper manager with transparency support,
a simple session manager and a system tray.
'';
license = lib.licenses.lgpl2Only;
maintainers = [ ];
platforms = lib.platforms.unix;
};
})

View File

@@ -0,0 +1,91 @@
{
lib,
python3Packages,
fetchFromGitHub,
nix-update-script,
testers,
icloudpd,
}:
python3Packages.buildPythonApplication rec {
pname = "icloudpd";
version = "1.31.0";
pyproject = true;
src = fetchFromGitHub {
owner = "icloud-photos-downloader";
repo = "icloud_photos_downloader";
tag = "v${version}";
hash = "sha256-GZhc5AeOxfSPxloN630lQguh63ha63Wnuh0H6pMkPyE=";
};
pythonRelaxDeps = true;
dependencies = with python3Packages; [
certifi
click
flask
keyring
keyrings-alt
piexif
python-dateutil
pytz
requests
schema
six
srp
tqdm
typing-extensions
tzlocal
urllib3
waitress
wheel
];
build-system = with python3Packages; [ setuptools ];
nativeCheckInputs = with python3Packages; [
freezegun
mock
pytest-timeout
pytestCheckHook
vcrpy
];
disabledTests = [
# touches network
"test_autodelete_photos"
"test_download_autodelete_photos"
"test_retry_delete_after_download_session_error"
"test_retry_fail_delete_after_download_session_error"
"test_retry_delete_after_download_internal_error"
"test_autodelete_photos_dry_run"
"test_retry_fail_delete_after_download_internal_error"
"test_autodelete_invalid_creation_date"
"test_folder_structure_de_posix"
];
passthru = {
updateScript = nix-update-script { };
tests = testers.testVersion { package = icloudpd; };
};
preBuild = ''
substituteInPlace pyproject.toml \
--replace-fail "setuptools==80.9.0" "setuptools" \
--replace-fail "wheel==0.45.1" "wheel"
substituteInPlace src/foundation/__init__.py \
--replace-fail "0.0.1" "${version}"
'';
meta = with lib; {
homepage = "https://github.com/icloud-photos-downloader/icloud_photos_downloader";
description = "iCloud Photos Downloader";
license = licenses.mit;
mainProgram = "icloudpd";
maintainers = with maintainers; [
anpin
];
};
}

View File

@@ -0,0 +1,52 @@
{
lib,
stdenv,
fetchFromGitLab,
makeWrapper,
gcc,
ncurses,
}:
stdenv.mkDerivation rec {
pname = "icmake";
version = "9.03.01";
src = fetchFromGitLab {
sha256 = "05r0a69w0hv2qhjpb2bxd0lmp2vv5r2d4iggg6ly4miam0i318jy";
rev = version;
repo = "icmake";
owner = "fbb-git";
};
setSourceRoot = ''
sourceRoot=$(echo */icmake)
'';
nativeBuildInputs = [ makeWrapper ];
buildInputs = [ gcc ];
preConfigure = ''
patchShebangs ./
substituteInPlace INSTALL.im --replace "usr/" ""
'';
buildPhase = ''
./icm_prepare $out
./icm_bootstrap x
'';
installPhase = ''
./icm_install all /
wrapProgram $out/bin/icmbuild \
--prefix PATH : ${ncurses}/bin
'';
meta = with lib; {
description = "Program maintenance (make) utility using a C-like grammar";
homepage = "https://fbb-git.gitlab.io/icmake/";
license = licenses.gpl3;
maintainers = with maintainers; [ pSub ];
platforms = platforms.linux;
};
}

View File

@@ -0,0 +1,29 @@
{
lib,
rustPlatform,
fetchFromGitHub,
}:
let
version = "0.1.0";
in
rustPlatform.buildRustPackage {
pname = "icnsify";
inherit version;
src = fetchFromGitHub {
owner = "uncenter";
repo = "icnsify";
rev = "v${version}";
hash = "sha256-v8jwN29S6ZTt2XkPpZM+lJugbP9ClzPhqu52mdwdP00=";
};
cargoHash = "sha256-EDnwoDqQkb3G6/3/ib0p2Zh3dbMbeXozjEaNtYoCj4s=";
meta = {
description = "Convert PNGs to .icns";
homepage = "https://github.com/uncenter/icnsify";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ uncenter ];
mainProgram = "icnsify";
};
}

View File

@@ -0,0 +1,51 @@
{
lib,
stdenv,
fetchurl,
pkg-config,
libX11,
xorgproto,
writeScript,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "ico";
version = "1.0.6";
src = fetchurl {
url = "mirror://xorg/individual/app/ico-${finalAttrs.version}.tar.xz";
hash = "sha256-OPNp1DHnUygP3nD6SJzJTOIE+fjqvS9J/H0yr6afRAU=";
};
strictDeps = true;
nativeBuildInputs = [ pkg-config ];
buildInputs = [
libX11
xorgproto
];
passthru = {
updateScript = writeScript "update-${finalAttrs.pname}" ''
#!/usr/bin/env nix-shell
#!nix-shell -i bash -p common-updater-scripts
version="$(list-directory-versions --pname ${finalAttrs.pname} \
--url https://xorg.freedesktop.org/releases/individual/app/ \
| sort -V | tail -n1)"
update-source-version ${finalAttrs.pname} "$version"
'';
};
meta = {
description = "Simple animation program that may be used for testing various X11 operations and extensions";
homepage = "https://gitlab.freedesktop.org/xorg/app/ico";
license = with lib.licenses; [
x11
hpnd
hpndSellVariant
];
mainProgram = "ico";
maintainers = [ ];
platforms = lib.platforms.unix;
};
})

View File

@@ -0,0 +1,46 @@
{
lib,
python3Packages,
fetchFromGitHub,
}:
python3Packages.buildPythonApplication rec {
pname = "icoextract";
version = "0.2.0";
pyproject = true;
src = fetchFromGitHub {
owner = "jlu5";
repo = "icoextract";
rev = version;
hash = "sha256-GJCe7oFUidJt21F4NmOXspxZGRQXIjQvFjFhMYsHLjk=";
};
build-system = with python3Packages; [ setuptools ];
dependencies = with python3Packages; [
pefile
pillow
];
# tests expect mingw and multiarch
doCheck = false;
pythonImportsCheck = [ "icoextract" ];
postInstall = ''
install -Dm644 exe-thumbnailer.thumbnailer -t $out/share/thumbnailers
'';
meta = {
description = "Extract icons from Windows PE files";
homepage = "https://github.com/jlu5/icoextract";
changelog = "https://github.com/jlu5/icoextract/blob/${version}/CHANGELOG.md";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [
bryanasdev000
donovanglover
];
mainProgram = "icoextract";
};
}

View File

@@ -0,0 +1,33 @@
{
lib,
stdenvNoCC,
fetchFromGitHub,
}:
stdenvNoCC.mkDerivation {
pname = "icomoon-feather";
version = "0-unstable-2024-05-11";
src = fetchFromGitHub {
owner = "adi1090x";
repo = "polybar-themes";
rev = "adb6a4546a8351a469fa779df173e46b69aa1ac3";
sparseCheckout = [ "fonts/panels/icomoon_feather.ttf" ];
hash = "sha256-QL7/pfIqOd2JOm6rkH+P4rMg0AhGllfkReQ03YeGW+8=";
};
installPhase = ''
runHook preInstall
install -Dm644 fonts/panels/icomoon_feather.ttf -t $out/share/fonts/truetype/
runHook postInstall
'';
meta = with lib; {
homepage = "https://github.com/adi1090x/polybar-themes/tree/master/fonts/panels";
description = "Icomoon feather font";
license = licenses.agpl3Plus;
maintainers = with maintainers; [ luftmensch-luftmensch ];
platforms = platforms.all;
};
}

View File

@@ -0,0 +1,58 @@
{
lib,
stdenv,
fetchFromGitHub,
libX11,
libXt,
withGraphics ? true,
}:
stdenv.mkDerivation {
pname = "icon-lang";
version = "unstable-2020-02-05";
src = fetchFromGitHub {
owner = "gtownsend";
repo = "icon";
rev = "829cff33de4a21546fb269de3ef5acd7b4f0c0c7";
sha256 = "1lj2f13pbaajcy4v3744bz46rghhw5sv4dwwfnzhsllbj5gnjsv2";
};
buildInputs = lib.optionals withGraphics [
libX11
libXt
];
configurePhase =
let
target = if withGraphics then "X-Configure" else "Configure";
platform =
if stdenv.hostPlatform.isLinux then
"linux"
else if stdenv.hostPlatform.isDarwin then
"macintosh"
else if stdenv.hostPlatform.isBSD then
"bsd"
else if stdenv.hostPlatform.isCygwin then
"cygwin"
else if stdenv.hostPlatform.isSunOS then
"solaris"
else
throw "unsupported system";
in
"make ${target} name=${platform}";
installPhase = ''
make Install dest=$out
rm $out/README
mkdir -p $out/share/doc
mv $out/doc $out/share/doc/icon
'';
meta = with lib; {
description = "Very high level general-purpose programming language";
maintainers = with maintainers; [ yurrriq ];
platforms = with platforms; linux ++ darwin ++ freebsd ++ netbsd ++ openbsd ++ cygwin ++ illumos;
license = licenses.publicDomain;
homepage = "https://www.cs.arizona.edu/icon/";
};
}

View File

@@ -0,0 +1,63 @@
{
lib,
stdenv,
fetchurl,
wrapGAppsHook4,
buildPackages,
cargo,
desktop-file-utils,
meson,
ninja,
pkg-config,
rustc,
gettext,
gdk-pixbuf,
glib,
gtk4,
gtksourceview5,
libadwaita,
}:
stdenv.mkDerivation rec {
pname = "icon-library";
version = "0.0.19";
src = fetchurl {
url = "https://gitlab.gnome.org/World/design/icon-library/uploads/7725604ce39be278abe7c47288085919/icon-library-${version}.tar.xz";
hash = "sha256-nWGTYoSa0/fxnD0Mb2132LkeB1oa/gj/oIXBbI+FDw8=";
};
env = lib.optionalAttrs stdenv.hostPlatform.isDarwin {
# Set the location to gettext to ensure the nixpkgs one on Darwin instead of the vendored one.
# The vendored gettext does not build with clang 16.
GETTEXT_BIN_DIR = "${lib.getBin buildPackages.gettext}/bin";
GETTEXT_INCLUDE_DIR = "${lib.getDev gettext}/include";
GETTEXT_LIB_DIR = "${lib.getLib gettext}/lib";
};
nativeBuildInputs = [
cargo
desktop-file-utils
meson
ninja
pkg-config
rustc
wrapGAppsHook4
];
buildInputs = [
gdk-pixbuf
glib
gtk4
gtksourceview5
libadwaita
];
meta = with lib; {
homepage = "https://gitlab.gnome.org/World/design/icon-library";
description = "Symbolic icons for your apps";
mainProgram = "icon-library";
maintainers = with maintainers; [ qyliss ];
license = licenses.gpl3Plus;
platforms = platforms.unix;
};
}

View File

@@ -0,0 +1,40 @@
{
lib,
stdenv,
fetchurl,
pkg-config,
gdk-pixbuf,
popt,
}:
stdenv.mkDerivation rec {
pname = "icon-slicer";
version = "0.3";
src = fetchurl {
url = "https://freedesktop.org/software/icon-slicer/releases/icon-slicer-${version}.tar.gz";
sha256 = "0kdnc08k2rs8llfg7xgvnrsk60x59pv5fqz6kn2ifnn2s1nj3w05";
};
patches = [
# Fixes hotspot `y` coordinate. The `x` coordinate is used on the y-axis.
(fetchurl {
url = "https://aur.archlinux.org/cgit/aur.git/plain/hotspotfix.patch?h=icon-slicer";
sha256 = "1l1dc1x5p4hys02arkmq3x6b1xdi510969d25g928zr4gf4an03h";
})
];
nativeBuildInputs = [
popt
pkg-config
];
buildInputs = [ gdk-pixbuf ];
meta = with lib; {
description = "Utility for generating icon themes and libXcursor cursor themes";
homepage = "https://www.freedesktop.org/wiki/Software/icon-slicer/";
license = licenses.mit;
maintainers = with maintainers; [ zaninime ];
platforms = platforms.linux;
mainProgram = "icon-slicer";
};
}

View File

@@ -0,0 +1,74 @@
#!/bin/sh
# The file from which to extract *.ico files or a particular *.ico file.
# (e.g.: './KeePass.exe', './myLibrary.dll', './my/path/to/app.ico').
# As you notived, the utility can extract icons from a windows executable or
# dll.
rscFile=$1
# A regexp that can extract the image size from the file name. Because we
# use 'icotool', this value should usually be set to something like
# '[^\.]+\.exe_[0-9]+_[0-9]+_[0-9]+_[0-9]+_([0-9]+x[0-9]+)x[0-9]+\.png'.
# A reg expression may be written at some point that relegate this to
# an implementation detail.
sizeRegex=$2
# A regexp replace expression that will be used with 'sizeRegex' to create
# a proper size directory (e.g.: '48x48'). Usually this is left to '\1'.
sizeReplaceExp=$3
# A regexp that can extract the name of the target image from the file name
# of the image (usually png) extracted from the *.ico file(s). A good
# default is '([^\.]+).+' which gets the basename without extension.
nameRegex=$4
# A regexp replace expression that will be used alongside 'nameRegex' to create
# a icon file name. Note that you usually put directly you icon name here
# without any extension (e.g.: 'my-app'). But in case you've got something
# fancy, it will usually be '\1'.
nameReplaceExp=$5
# The
# out=./myOut
out=$6
# An optional temp dir.
if [ "" != "$7" ]; then
tmp=$7
isOwnerOfTmpDir=false
else
tmp=`mktemp -d`
isOwnerOfTmpDir=true
fi
rm -rf $tmp/png $tmp/ico
mkdir -p $tmp/png $tmp/ico
# Extract the ressource file's extension.
rscFileExt=`echo "$rscFile" | sed -re 's/.+\.(.+)$/\1/'`
if [ "ico" = "$rscFileExt" ]; then
cp -p $rscFile $tmp/ico
else
wrestool -x --output=$tmp/ico -t14 $rscFile
fi
icotool --icon -x --palette-size=0 -o $tmp/png $tmp/ico/*.ico
mkdir -p $out
for i in $tmp/png/*.png; do
fn=`basename "$i"`
size=$(echo $fn | sed -re 's/'${sizeRegex}'/'${sizeReplaceExp}'/')
name=$(echo $fn | sed -re 's/'${nameRegex}'/'${nameReplaceExp}'/')
targetDir=$out/share/icons/hicolor/$size/apps
targetFile=$targetDir/$name.png
mkdir -p $targetDir
mv $i $targetFile
done
rm -rf "$tmp/png" "$tmp/ico"
if $isOwnerOfTmpDir; then
rm -rf "$tmp"
fi

View File

@@ -0,0 +1,28 @@
#!/bin/sh
SCRIPT_DIR=`cd "$(dirname $0)" && pwd`
# The '*.ico' file that needs to be converted (e.g.: "./my/path/to/file.ico").
icoFile="$1"
# The desired name of created icon files without extension. (e.g.: "my-app").
targetIconName="$2"
# The output directory where the free desktop hierarchy will be created.
# (e.g.: "./path/to/my/out" or usually in nix "$out"). Note that the
# whole directory hierarchy to the icon will be created in the specified
# output directory (e.g.: "$out/share/icons/hicolor/48x48/apps/my-app.png").
out="$3"
# An optional temp directory location (e.g.: ./tmp). If not specified
# a random '/tmp' directory will be created.
tmp="$4"
$SCRIPT_DIR/extractWinRscIconsToStdFreeDesktopDir.sh \
"$icoFile" \
'[^\.]+_[0-9]+_([0-9]+x[0-9]+)x[0-9]+\.png' \
'\1' \
'([^\.]+).+' \
"$targetIconName" \
"$out" \
"$tmp"

View File

@@ -0,0 +1,36 @@
{
lib,
stdenv,
icoutils,
}:
stdenv.mkDerivation {
pname = "icon-conv-tools";
version = "0.0.0";
src = ./bin;
buildInputs = [ icoutils ];
patchPhase = ''
substituteInPlace extractWinRscIconsToStdFreeDesktopDir.sh \
--replace "icotool" "${icoutils}/bin/icotool" \
--replace "wrestool" "${icoutils}/bin/wrestool"
'';
buildPhase = ''
mkdir -p "$out/bin"
cp -p * "$out/bin"
'';
installPhase = "true";
dontPatchELF = true;
dontStrip = true;
meta = with lib; {
description = "Tools for icon conversion specific to nix package manager";
maintainers = with maintainers; [ jraygauthier ];
platforms = platforms.unix;
};
}

View File

@@ -0,0 +1,75 @@
{
lib,
stdenv,
fetchFromGitHub,
meson,
ninja,
blueprint-compiler,
wrapGAppsHook4,
desktop-file-utils,
rustPlatform,
cargo,
rustc,
pkg-config,
glib,
libadwaita,
libxml2,
nix-update-script,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "iconic";
version = "2025.3.2";
src = fetchFromGitHub {
owner = "youpie";
repo = "Iconic";
tag = "v${finalAttrs.version}";
hash = "sha256-mj95GShV/PxFXweL14zTVANO10CGpXyktJjJGtD1XS8=";
};
postPatch = ''
substituteInPlace src/windows/file_handling.rs \
--replace-fail "/app" "$out"
substituteInPlace src/windows/regeneration.rs \
--replace-fail "/app" "$out"
substituteInPlace src/config.rs \
--replace-fail "/app" "$out"
substituteInPlace src/window.rs \
--replace-fail "create_dir" "create_dir_all"
'';
cargoDeps = rustPlatform.fetchCargoVendor {
inherit (finalAttrs) pname version src;
hash = "sha256-/D4l85PO2h+172f8AgQFze665otIeouxEdVL56f+hoM=";
};
nativeBuildInputs = [
meson
ninja
blueprint-compiler
wrapGAppsHook4
rustPlatform.cargoSetupHook
cargo
rustc
desktop-file-utils
pkg-config
];
buildInputs = [
glib
libadwaita
libxml2
];
passthru.updateScript = nix-update-script { };
meta = {
homepage = "https://github.com/youpie/Iconic";
description = "Easilly add images on top of folders";
mainProgram = "folder_icon";
license = lib.licenses.gpl3Plus;
platforms = lib.platforms.linux;
maintainers = [ ];
};
})

View File

@@ -0,0 +1,28 @@
{
lib,
stdenv,
fetchurl,
perl,
librsvg,
}:
stdenv.mkDerivation rec {
pname = "icon-naming-utils";
version = "0.8.90";
src = fetchurl {
url = "http://tango.freedesktop.org/releases/${pname}-${version}.tar.gz";
sha256 = "071fj2jm5kydlz02ic5sylhmw6h2p3cgrm3gwdfabinqkqcv4jh4";
};
buildInputs = [
librsvg
(perl.withPackages (p: [ p.XMLSimple ]))
];
meta = with lib; {
homepage = "https://tango.freedesktop.org/Standard_Icon_Naming_Specification";
platforms = with platforms; linux ++ darwin;
license = licenses.gpl2;
};
}

View File

@@ -0,0 +1,46 @@
{
lib,
stdenvNoCC,
fetchFromGitHub,
gtk3,
gnome-icon-theme,
hicolor-icon-theme,
}:
stdenvNoCC.mkDerivation rec {
pname = "iconpack-jade";
version = "1.25";
src = fetchFromGitHub {
owner = "madmaxms";
repo = "iconpack-jade";
rev = "v${version}";
sha256 = "0pwz3l5i93s84iwkn1jq8a150ma96788a0n41xq2cgy00j8h8xh0";
};
nativeBuildInputs = [ gtk3 ];
propagatedBuildInputs = [
gnome-icon-theme
hicolor-icon-theme
];
dontDropIconThemeCache = true;
installPhase = ''
mkdir -p $out/share/icons
cp -a Jade* $out/share/icons
for theme in $out/share/icons/*; do
gtk-update-icon-cache $theme
done
'';
meta = with lib; {
description = "Icon pack based upon Faenza and Mint-X";
homepage = "https://github.com/madmaxms/iconpack-jade";
license = licenses.gpl3Only;
platforms = platforms.linux;
maintainers = [ maintainers.romildo ];
};
}

View File

@@ -0,0 +1,66 @@
{
lib,
stdenvNoCC,
fetchFromGitHub,
gtk3,
gnome-icon-theme,
mint-x-icons,
hicolor-icon-theme,
}:
stdenvNoCC.mkDerivation rec {
pname = "iconpack-obsidian";
version = "4.15";
src = fetchFromGitHub {
owner = "madmaxms";
repo = "iconpack-obsidian";
rev = "v${version}";
sha256 = "1f32isq1xyn9b6p1nx5rssqgg9gw0jp9ld19860xk29fspmlfb8n";
};
nativeBuildInputs = [ gtk3 ];
propagatedBuildInputs = [
gnome-icon-theme
mint-x-icons
hicolor-icon-theme
];
# still missing parent themes: Ambient-MATE, Faenza-Dark, KFaenza
dontDropIconThemeCache = true;
installPhase = ''
runHook preInstall
mkdir -p $out/share/icons
mv Obsidian* $out/share/icons
for theme in $out/share/icons/*; do
gtk-update-icon-cache $theme
done
# Fix broken symlink only if needed
# https://github.com/NixOS/nixpkgs/issues/394218
broken_symlink="$out/share/icons/Obsidian/actions/96/lock.svg"
target_svg="$out/share/icons/Obsidian/actions/scalable/system-lock-screen.svg"
if [ -h "$broken_symlink" ] && [ ! -e "$broken_symlink" ]; then
echo "=== Fixing broken symlink: $broken_symlink"
rm -f "$broken_symlink"
ln -s "$target_svg" "$broken_symlink"
fi
runHook postInstall
'';
meta = with lib; {
description = "Gnome icon pack based upon Faenza";
homepage = "https://github.com/madmaxms/iconpack-obsidian";
license = licenses.gpl3Only;
# darwin cannot deal with file names differing only in case
platforms = platforms.linux;
maintainers = [ maintainers.romildo ];
};
}

View File

@@ -0,0 +1,58 @@
{
lib,
stdenv,
fetchurl,
fetchpatch,
autoreconfHook,
libpng,
perl,
perlPackages,
makeWrapper,
}:
stdenv.mkDerivation rec {
pname = "icoutils";
version = "0.32.3";
src = fetchurl {
url = "mirror://savannah/icoutils/icoutils-${version}.tar.bz2";
sha256 = "1q66cksms4l62y0wizb8vfavhmf7kyfgcfkynil3n99s0hny1aqp";
};
patches = [
# Fixes a linker failure with newer versions of ld64 due to not supporting nested archives.
(fetchpatch {
url = "https://git.savannah.nongnu.org/cgit/icoutils.git/patch/?id=aa3572119bfe34484025f37dbbc4d5070f735908";
hash = "sha256-4YCI+SYT2bCBNegkpN5jcfi6gOeec65TmCABr98HHB4=";
})
];
nativeBuildInputs = [
autoreconfHook
makeWrapper
];
buildInputs = [
libpng
perl
];
propagatedBuildInputs = [ perlPackages.LWP ];
postPatch = ''
patchShebangs extresso/extresso
patchShebangs extresso/extresso.in
patchShebangs extresso/genresscript
patchShebangs extresso/genresscript.in
'';
preFixup = ''
wrapProgram $out/bin/extresso --prefix PERL5LIB : $PERL5LIB
wrapProgram $out/bin/genresscript --prefix PERL5LIB : $PERL5LIB
'';
meta = {
homepage = "https://www.nongnu.org/icoutils/";
description = "Set of programs to deal with Microsoft Windows(R) icon and cursor files";
license = lib.licenses.gpl3Plus;
platforms = with lib.platforms; linux ++ darwin;
};
}

View File

@@ -0,0 +1,62 @@
{
lib,
fetchFromGitHub,
crystal,
shards,
makeWrapper,
pkg-config,
which,
openssl,
readline,
libyaml,
zlib,
}:
crystal.buildCrystalPackage rec {
pname = "icr";
version = "0.9.0";
src = fetchFromGitHub {
owner = "crystal-community";
repo = "icr";
rev = "v${version}";
hash = "sha256-29B/i8oEjwNOYjnc78QcYTl6fC/M9VfAVCCBjLBKp0Q=";
};
shardsFile = ./shards.nix;
buildInputs = [
libyaml
openssl
readline
zlib
];
nativeBuildInputs = [
makeWrapper
pkg-config
which
];
# tests are failing due to our sandbox
doCheck = false;
postFixup = ''
wrapProgram $out/bin/icr \
--prefix PATH : ${
lib.makeBinPath [
crystal
shards
which
]
}
'';
meta = with lib; {
description = "Interactive console for the Crystal programming language";
mainProgram = "icr";
homepage = "https://github.com/crystal-community/icr";
license = licenses.mit;
maintainers = with maintainers; [ peterhoeg ];
};
}

View File

@@ -0,0 +1,7 @@
{
readline = {
url = "https://github.com/crystal-lang/crystal-readline.git";
rev = "0fb7d186da8e1b157998d98d1c96e99699b791eb";
sha256 = "1rk27vw3ssldgnfgprwvz2gag02v4g6d6yg56b3sk9w3fn8jyyi8";
};
}

View File

@@ -0,0 +1,28 @@
{
stdenv,
lib,
fetchFromGitHub,
}:
stdenv.mkDerivation rec {
pname = "ictree";
version = "1.0.1";
src = fetchFromGitHub {
owner = "NikitaIvanovV";
repo = "ictree";
tag = "v${version}";
hash = "sha256-77Wo6jN8VUGTXBuGL0a9kvSIixdyEQoxqqNsHq9jcWw=";
fetchSubmodules = true;
};
makeFlags = [ "PREFIX=$(out)" ];
meta = with lib; {
description = "Like tree but interactive";
homepage = "https://github.com/NikitaIvanovV/ictree";
platforms = platforms.unix;
maintainers = with maintainers; [ foo-dogsquared ];
mainProgram = "ictree";
};
}