nur-packages

My NUR packages
git clone git://git.sikmir.ru/nur-packages
Log | Files | Refs | README | LICENSE

commit 6556ca4a2adbd86cb3ca48585aeb09fd6008813c
parent 8fabced9f614302a6bfaded21a964afa59f96565
Author: Nikolay Korotkiy <sikmir@disroot.org>
Date:   Sat, 24 Oct 2026 20:38:24 +0400

Up

Diffstat:
Mflake.lock | 6+++---
Apkgs/by-name/em/embox-aarch64/package.nix | 3+++
Apkgs/by-name/em/embox-arm/package.nix | 3+++
Apkgs/by-name/em/embox-ppc/package.nix | 3+++
Apkgs/by-name/em/embox-riscv64/package.nix | 3+++
Apkgs/by-name/em/embox/0001-fix-build.patch | 38++++++++++++++++++++++++++++++++++++++
Apkgs/by-name/em/embox/package.nix | 122+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Rpkgs/embedded/embox/third-party.json -> pkgs/by-name/em/embox/third-party.json | 0
Mpkgs/by-name/mq/mqtt-cli/package.nix | 4++--
Mpkgs/default.nix | 8--------
Dpkgs/embedded/embox/0001-fix-build.patch | 38--------------------------------------
Dpkgs/embedded/embox/default.nix | 120-------------------------------------------------------------------------------
12 files changed, 177 insertions(+), 171 deletions(-)

diff --git a/flake.lock b/flake.lock @@ -20,11 +20,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1792116957, - "narHash": "sha256-EjZqHKObBfIOeHZnMRVV87HB3pPq/WBkmRJWyFxmZu8=", + "lastModified": 1792506237, + "narHash": "sha256-Q/8KLB6jNfpaUN1HAedE/u/Et9feE/zYSsutBLKrCFk=", "owner": "nixos", "repo": "nixpkgs", - "rev": "f20cd90e28fe0403873f473b29e42662cd86e8c4", + "rev": "5adc50831c259f87faeb09ddf930d43597197473", "type": "github" }, "original": { diff --git a/pkgs/by-name/em/embox-aarch64/package.nix b/pkgs/by-name/em/embox-aarch64/package.nix @@ -0,0 +1,3 @@ +{ embox }: + +embox.override { arch = "aarch64"; } diff --git a/pkgs/by-name/em/embox-arm/package.nix b/pkgs/by-name/em/embox-arm/package.nix @@ -0,0 +1,3 @@ +{ embox }: + +embox.override { arch = "arm"; } diff --git a/pkgs/by-name/em/embox-ppc/package.nix b/pkgs/by-name/em/embox-ppc/package.nix @@ -0,0 +1,3 @@ +{ embox }: + +embox.override { arch = "ppc"; } diff --git a/pkgs/by-name/em/embox-riscv64/package.nix b/pkgs/by-name/em/embox-riscv64/package.nix @@ -0,0 +1,3 @@ +{ embox }: + +embox.override { arch = "riscv64"; } diff --git a/pkgs/by-name/em/embox/0001-fix-build.patch b/pkgs/by-name/em/embox/0001-fix-build.patch @@ -0,0 +1,38 @@ +diff --git c/mk/flags.mk i/mk/flags.mk +index 3c0887cf9a..254ab2bb77 100644 +--- c/mk/flags.mk ++++ i/mk/flags.mk +@@ -27,15 +27,15 @@ LDFLAGS ?= + + CROSS_COMPILE ?= + +-GCC := $(CROSS_COMPILE)gcc +-GXX := $(CROSS_COMPILE)g++ +-AR := $(CROSS_COMPILE)ar +-AS := $(CROSS_COMPILE)as +-LD := $(CROSS_COMPILE)ld +-NM := $(CROSS_COMPILE)nm +-OBJDUMP := $(CROSS_COMPILE)objdump +-OBJCOPY := $(CROSS_COMPILE)objcopy +-SIZE := $(CROSS_COMPILE)size ++GCC = $(CROSS_COMPILE)gcc ++GXX = $(CROSS_COMPILE)g++ ++AR = $(CROSS_COMPILE)ar ++AS = $(CROSS_COMPILE)as ++LD = $(CROSS_COMPILE)ld ++NM = $(CROSS_COMPILE)nm ++OBJDUMP = $(CROSS_COMPILE)objdump ++OBJCOPY = $(CROSS_COMPILE)objcopy ++SIZE = $(CROSS_COMPILE)size + + ifeq ($(COMPILER),clang) + CC := clang +@@ -44,7 +44,7 @@ else + CC := $(GCC) + CXX := $(GXX) + endif +-CPP := $(CC) -E ++CPP = $(CC) -E + + EMBOX_GCC := $(TOOLCHAIN_DIR)/embox-gcc + EMBOX_GXX := $(TOOLCHAIN_DIR)/embox-g++ diff --git a/pkgs/by-name/em/embox/package.nix b/pkgs/by-name/em/embox/package.nix @@ -0,0 +1,122 @@ +{ + lib, + gccMultiStdenv, + stdenv, + fetchFromGitHub, + fetchurl, + makeWrapper, + pkgsCross, + bash, + cpio, + gcc-arm-embedded, + python3, + qemu, + unzip, + which, + arch ? "x86", +}: + +assert lib.assertOneOf "arch" arch [ + "aarch64" + "arm" + "ppc" + "riscv64" + "x86" +]; + +let + stdenv' = if arch == "x86" then gccMultiStdenv else stdenv; + third-party = lib.mapAttrs (name: spec: fetchurl spec) ( + builtins.fromJSON (builtins.readFile ./third-party.json) + ); +in +stdenv'.mkDerivation (finalAttrs: { + pname = "embox-${arch}-qemu"; + version = "0.7.3"; + + src = fetchFromGitHub { + owner = "embox"; + repo = "embox"; + tag = "v${finalAttrs.version}"; + hash = "sha256-fT9cMPczEEBqiuULobsrgM30ivDGFRSNCNzIbw+RENs="; + }; + + patches = [ ./0001-fix-build.patch ]; + + postPatch = '' + substituteInPlace mk/extbld/gen_compilers.sh \ + --replace "/usr/bin/env bash" "${lib.getExe bash}" + substituteInPlace templates/aarch64/qemu/build.conf \ + --replace-fail "aarch64-elf" "aarch64-none-elf" + substituteInPlace templates/ppc/qemu/build.conf \ + --replace-fail "powerpc-elf" "powerpc-none-eabi" + substituteInPlace templates/riscv64/qemu/build.conf \ + --replace-fail "riscv64-unknown-elf" "riscv64-none-elf" + ''; + + nativeBuildInputs = + [ + cpio + python3 + unzip + which + makeWrapper + ] + ++ lib.optional (arch != "x86" && arch != "arm") pkgsCross."${arch}-embedded".stdenv'.cc + ++ lib.optional (arch == "arm") gcc-arm-embedded; + + configurePhase = "make confload-${arch}/qemu"; + + preBuild = '' + patchShebangs ./mk + mkdir -p ./download + ln -s ${third-party.cjson} ./download/cjson-v1.7.16.tar.gz + ln -s ${third-party.acpica-unix} ./download/acpica-R06_28_23.tar.gz + ln -s ${third-party.openlibm} ./download/openlibm-0.8.3.tar.gz + ''; + + installPhase = + let + platform_args = + { + aarch64 = "-M virt -cpu cortex-a53 -m 1024"; + arm = "-M integratorcp -m 256"; + ppc = "-M virtex-ml507 -m 64"; + riscv64 = "-M virt -m 512"; + x86 = "-enable-kvm -device pci-ohci,id=ohci -m 256"; + } + .${arch}; + net_args = { + aarch64 = "model=e1000"; + arm = "model=smc91c111"; + x86 = "model=virtio"; + }; + withNetwork = (lib.hasAttr arch net_args) && stdenv'.hostPlatform.isLinux; + in + '' + mkdir -p $out/bin + + makeWrapper ${qemu}/bin/qemu-system-${if arch == "x86" then "i386" else arch} $out/bin/embox \ + --add-flags "${platform_args}" \ + --add-flags "-kernel $out/share/embox/images/embox.img" \ + --add-flags "${lib.optionalString withNetwork "-net nic,netdev=n0,${net_args.${arch}},macaddr=AA:BB:CC:DD:EE:02"}" \ + --add-flags "${lib.optionalString withNetwork "-netdev tap,script=$out/share/embox/scripts/start_script,downscript=$out/share/embox/scripts/stop_script,id=n0"}" \ + --add-flags "-nographic" + + install -Dm644 build/base/bin/embox $out/share/embox/images/embox.img + install -Dm644 conf/*.conf* -t $out/share/embox/conf + '' + + lib.optionalString withNetwork '' + install -Dm755 scripts/qemu/{start,stop}_script -t $out/share/embox/scripts + ''; + + meta = { + description = "Modular and configurable OS for embedded applications"; + homepage = "http://embox.github.io/"; + license = lib.licenses.bsd2; + maintainers = [ lib.maintainers.sikmir ]; + platforms = lib.platforms.unix; + skip.ci = true; + mainProgram = "embox"; + }; +}) diff --git a/pkgs/embedded/embox/third-party.json b/pkgs/by-name/em/embox/third-party.json diff --git a/pkgs/by-name/mq/mqtt-cli/package.nix b/pkgs/by-name/mq/mqtt-cli/package.nix @@ -8,7 +8,7 @@ stdenv.mkDerivation (finalAttrs: { pname = "mqtt-cli"; - version = "4.56.0"; + version = "4.56.1"; __structuredAttrs = true; @@ -16,7 +16,7 @@ stdenv.mkDerivation (finalAttrs: { owner = "hivemq"; repo = "mqtt-cli"; tag = "v${finalAttrs.version}"; - hash = "sha256-pxD97LG+BE1sG8NUg+JOLP1gKss9K7rjBRH6/3HO3YY="; + hash = "sha256-kS9TGVsDRs4vW+7+B+hvZsdpOqSXtlYpuRA0rzarj3M="; name = "mqtt-cli-${finalAttrs.version}.jar"; }; diff --git a/pkgs/default.nix b/pkgs/default.nix @@ -54,14 +54,6 @@ lib.makeScope newScope ( perlPackages = (callPackage ./perl-packages.nix { }) // pkgs.perlPackages // { recurseForDerivations = false; }; - ### EMBEDDED - - embox-aarch64 = callPackage ./embedded/embox { arch = "aarch64"; }; - embox-arm = callPackage ./embedded/embox { arch = "arm"; }; - embox-ppc = callPackage ./embedded/embox { arch = "ppc"; }; - embox-riscv64 = callPackage ./embedded/embox { arch = "riscv64"; }; - embox-x86 = callPackage ./embedded/embox { stdenv = pkgs.gccMultiStdenv; }; - ### GEOSPATIAL #tdh = callPackage ./geospatial/tdh { }; diff --git a/pkgs/embedded/embox/0001-fix-build.patch b/pkgs/embedded/embox/0001-fix-build.patch @@ -1,38 +0,0 @@ -diff --git c/mk/flags.mk i/mk/flags.mk -index 3c0887cf9a..254ab2bb77 100644 ---- c/mk/flags.mk -+++ i/mk/flags.mk -@@ -27,15 +27,15 @@ LDFLAGS ?= - - CROSS_COMPILE ?= - --GCC := $(CROSS_COMPILE)gcc --GXX := $(CROSS_COMPILE)g++ --AR := $(CROSS_COMPILE)ar --AS := $(CROSS_COMPILE)as --LD := $(CROSS_COMPILE)ld --NM := $(CROSS_COMPILE)nm --OBJDUMP := $(CROSS_COMPILE)objdump --OBJCOPY := $(CROSS_COMPILE)objcopy --SIZE := $(CROSS_COMPILE)size -+GCC = $(CROSS_COMPILE)gcc -+CXX = $(CROSS_COMPILE)g++ -+AR = $(CROSS_COMPILE)ar -+AS = $(CROSS_COMPILE)as -+LD = $(CROSS_COMPILE)ld -+NM = $(CROSS_COMPILE)nm -+OBJDUMP = $(CROSS_COMPILE)objdump -+OBJCOPY = $(CROSS_COMPILE)objcopy -+SIZE = $(CROSS_COMPILE)size - - ifeq ($(COMPILER),clang) - CC := clang -@@ -44,7 +44,7 @@ else - CC := $(GCC) - CXX := $(GXX) - endif --CPP := $(CC) -E -+CPP = $(CC) -E - - EMBOX_GCC := $(TOOLCHAIN_DIR)/embox-gcc - EMBOX_GXX := $(TOOLCHAIN_DIR)/embox-g++ diff --git a/pkgs/embedded/embox/default.nix b/pkgs/embedded/embox/default.nix @@ -1,120 +0,0 @@ -{ - lib, - stdenv, - fetchFromGitHub, - fetchurl, - makeWrapper, - pkgsCross, - bash, - cpio, - gcc-arm-embedded, - python3, - qemu, - unzip, - which, - arch ? "x86", -}: - -assert lib.assertOneOf "arch" arch [ - "aarch64" - "arm" - "ppc" - "riscv64" - "x86" -]; - -let - third-party = lib.mapAttrs (name: spec: fetchurl spec) ( - builtins.fromJSON (builtins.readFile ./third-party.json) - ); -in -stdenv.mkDerivation (finalAttrs: { - pname = "embox-${arch}-qemu"; - version = "0.7.2"; - - src = fetchFromGitHub { - owner = "embox"; - repo = "embox"; - tag = "v${finalAttrs.version}"; - hash = "sha256-lySO7VZJzvTwn1gMNo0LJOQ5vXCN5Wyea4DTzP46Y8Y="; - }; - - patches = [ ./0001-fix-build.patch ]; - - postPatch = '' - substituteInPlace mk/extbld/gen_compilers.sh \ - --replace "/usr/bin/env bash" "${lib.getExe bash}" - substituteInPlace templates/aarch64/qemu/build.conf \ - --replace-fail "aarch64-elf" "aarch64-none-elf" - substituteInPlace templates/ppc/qemu/build.conf \ - --replace-fail "powerpc-elf" "powerpc-none-eabi" - substituteInPlace templates/riscv64/qemu/build.conf \ - --replace-fail "riscv64-unknown-elf" "riscv64-none-elf" - ''; - - nativeBuildInputs = - [ - cpio - python3 - unzip - which - makeWrapper - ] - ++ lib.optional (arch != "x86" && arch != "arm") pkgsCross."${arch}-embedded".stdenv.cc - ++ lib.optional (arch == "arm") gcc-arm-embedded; - - configurePhase = "make confload-${arch}/qemu"; - - preBuild = '' - patchShebangs ./mk - mkdir -p ./download - ln -s ${third-party.cjson} ./download/cjson-v1.7.16.tar.gz - ln -s ${third-party.acpica-unix} ./download/acpica-R06_28_23.tar.gz - ln -s ${third-party.openlibm} ./download/openlibm-0.8.3.tar.gz - ''; - - installPhase = - let - platform_args = - { - aarch64 = "-M virt -cpu cortex-a53 -m 1024"; - arm = "-M integratorcp -m 256"; - ppc = "-M virtex-ml507 -m 64"; - riscv64 = "-M virt -m 512"; - x86 = "-enable-kvm -device pci-ohci,id=ohci -m 256"; - } - .${arch}; - net_args = { - aarch64 = "model=e1000"; - arm = "model=smc91c111"; - x86 = "model=virtio"; - }; - withNetwork = (lib.hasAttr arch net_args) && stdenv.hostPlatform.isLinux; - in - '' - mkdir -p $out/bin - - makeWrapper ${qemu}/bin/qemu-system-${if arch == "x86" then "i386" else arch} $out/bin/embox \ - --add-flags "${platform_args}" \ - --add-flags "-kernel $out/share/embox/images/embox.img" \ - --add-flags "${lib.optionalString withNetwork "-net nic,netdev=n0,${net_args.${arch}},macaddr=AA:BB:CC:DD:EE:02"}" \ - --add-flags "${lib.optionalString withNetwork "-netdev tap,script=$out/share/embox/scripts/start_script,downscript=$out/share/embox/scripts/stop_script,id=n0"}" \ - --add-flags "-nographic" - - install -Dm644 build/base/bin/embox $out/share/embox/images/embox.img - install -Dm644 conf/*.conf* -t $out/share/embox/conf - '' - + lib.optionalString withNetwork '' - install -Dm755 scripts/qemu/{start,stop}_script -t $out/share/embox/scripts - ''; - - meta = { - description = "Modular and configurable OS for embedded applications"; - homepage = "http://embox.github.io/"; - license = lib.licenses.bsd2; - maintainers = [ lib.maintainers.sikmir ]; - platforms = lib.platforms.unix; - skip.ci = true; - mainProgram = "embox"; - }; -})