Compare commits
8 commits
main
...
wip/pkgs/u
Author | SHA1 | Date | |
---|---|---|---|
f4a5a3e0e5 | |||
f92651afdf | |||
6d32f8da73 | |||
35259d4999 | |||
4aa2e34ff6 | |||
80a41ef45d | |||
ea8ac1c2c6 | |||
73142b030f |
10 changed files with 432 additions and 94 deletions
16
lock.nix
16
lock.nix
|
@ -4,19 +4,19 @@
|
||||||
sha256 = "sha256-DlvJv33ml5UTKgu4b0HauOfFIoDx6QXtbqUF3vWeRCY=";
|
sha256 = "sha256-DlvJv33ml5UTKgu4b0HauOfFIoDx6QXtbqUF3vWeRCY=";
|
||||||
};
|
};
|
||||||
nixpkgs = {
|
nixpkgs = {
|
||||||
revision = "36ab78dab7da2e4e27911007033713bab534187b";
|
revision = "55d1f923c480dadce40f5231feb472e81b0bab48";
|
||||||
sha256 = "sha256-urV51uWH7fVnhIvsZIELIYalMYsyr2FCalvlRTzqWRw=";
|
sha256 = "sha256-y2ZtlIlNTuVJUZCqzZAhIw5rrKP4DOSklev6c8PyCkQ=";
|
||||||
};
|
};
|
||||||
nixpkgs-unstable = {
|
nixpkgs-unstable = {
|
||||||
revision = "9e83b64f727c88a7711a2c463a7b16eedb69a84c";
|
revision = "2795c506fe8fb7b03c36ccb51f75b6df0ab2553f";
|
||||||
sha256 = "sha256-v263g4GbxXv87hMXMCpjkIxd/viIF7p3JpJrwgKdNiI=";
|
sha256 = "sha256-W7lqHp0qZiENCDwUZ5EX/lNhxjMdNapFnbErcbnP11Q=";
|
||||||
};
|
};
|
||||||
nix-bitcoin = {
|
nix-bitcoin = {
|
||||||
revision = "ac1344fb6d91e2af219803eaaa67d1d974666156";
|
revision = "e7e6353b3a72205b037be53eda2e71e24e46b45e";
|
||||||
sha256 = "sha256-qLwBEXlGY2pLNPhPNpeOE0DNC1luovTYE3ZDPMyMPXc=";
|
sha256 = "sha256-Y53kyw7CQUEUiKPVQQzCMB4OIiZtOoFNurJhhM6Xvx4=";
|
||||||
};
|
};
|
||||||
cosmic-modules = {
|
cosmic-modules = {
|
||||||
revision = "ef3b52e04d4294aa98fdac6c065b2d818022efd1";
|
revision = "e3bea95daa167bf84a4bf3387ef6f01f081152b6";
|
||||||
sha256 = "sha256-zuONfwNObFx8A2zunwwkW2jUgO6rvd6dO2okiiCxPO8=";
|
sha256 = "sha256-QhmqgiAGqR7VYxyNsdpR2qfejRnviyf7ElZ8v8MtwwY=";
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -27,7 +27,12 @@
|
||||||
kdePackages.kdeconnect-kde
|
kdePackages.kdeconnect-kde
|
||||||
pcmanfm
|
pcmanfm
|
||||||
pwvucontrol
|
pwvucontrol
|
||||||
qimgv
|
(qimgv.override {
|
||||||
|
opencv4 = opencv4.override {
|
||||||
|
# https://github.com/NixOS/nixpkgs/issues/383175
|
||||||
|
enableCuda = false;
|
||||||
|
};
|
||||||
|
})
|
||||||
];
|
];
|
||||||
|
|
||||||
programs.mpv = let
|
programs.mpv = let
|
||||||
|
|
|
@ -24,18 +24,12 @@
|
||||||
nvidiaSettings = true;
|
nvidiaSettings = true;
|
||||||
package = let
|
package = let
|
||||||
mkDriverArgs = {
|
mkDriverArgs = {
|
||||||
version = "575.64";
|
version = "575.51.02";
|
||||||
sha256_64bit = "sha256-6wG8/nOwbH0ktgg8J+ZBT2l5VC8G5lYBQhtkzMCtaLE=";
|
sha256_64bit = "sha256-XZ0N8ISmoAC8p28DrGHk/YN1rJsInJ2dZNL8O+Tuaa0=";
|
||||||
sha256_aarch64 = "sha256-uHj8fB1sSJfX0NWZEE1eZN1LQQkf7J0jPV3EeQCSG10=";
|
sha256_aarch64 = "sha256-NNeQU9sPfH1sq3d5RUq1MWT6+7mTo1SpVfzabYSVMVI=";
|
||||||
openSha256 = "sha256-y93FdR5TZuurDlxc/p5D5+a7OH93qU4hwQqMXorcs/g=";
|
openSha256 = "sha256-NQg+QDm9Gt+5bapbUO96UFsPnz1hG1dtEwT/g/vKHkw=";
|
||||||
settingsSha256 = "sha256-3BvryH7p0ioweNN4S8oLDCTSS47fQPWVYwNq4AuWQgQ=";
|
settingsSha256 = "sha256-6n9mVkEL39wJj5FB1HBml7TTJhNAhS/j5hqpNGFQE4w=";
|
||||||
persistencedSha256 = "sha256-QkDNQKwCsakZOLcSie1NBiFCM5e5NFGiIKtPSFeWdXs=";
|
persistencedSha256 = "sha256-dgmco+clEIY8bedxHC4wp+fH5JavTzyI1BI8BxoeJJI=";
|
||||||
patches = [
|
|
||||||
(pkgs.fetchpatch {
|
|
||||||
url = "https://raw.githubusercontent.com/rpmfusion/nvidia-kmod/020f5fabfb067150f8dd0d6e470a7a694f59eb59/Workaround-nv_vm_flags_-calling-GPL-only-code.patch";
|
|
||||||
hash = "sha256-2WQs8WDVzNivwUSWn7t2hoduUVvmem5e+JpGt04380c=";
|
|
||||||
})
|
|
||||||
];
|
|
||||||
};
|
};
|
||||||
in ( config.boot.kernelPackages.nvidiaPackages.mkDriver mkDriverArgs ).overrideAttrs (super: {
|
in ( config.boot.kernelPackages.nvidiaPackages.mkDriver mkDriverArgs ).overrideAttrs (super: {
|
||||||
passthru = super.passthru or {} // {
|
passthru = super.passthru or {} // {
|
||||||
|
|
|
@ -15,14 +15,14 @@
|
||||||
# NIXPKGS-PR: 384992
|
# NIXPKGS-PR: 384992
|
||||||
packages = let
|
packages = let
|
||||||
oldVersion = pkgs.python3Packages.openrazer-daemon.version;
|
oldVersion = pkgs.python3Packages.openrazer-daemon.version;
|
||||||
version = "3.10.3";
|
version = "3.10.1";
|
||||||
in lib.mapAttrs (_: package: package.overrideAttrs (oldAttrs: {
|
in lib.mapAttrs (_: package: package.overrideAttrs (oldAttrs: {
|
||||||
version = lib.replaceStrings [ oldVersion ] [ version ] oldAttrs.version;
|
version = lib.replaceStrings [ oldVersion ] [ version ] oldAttrs.version;
|
||||||
src = pkgs.fetchFromGitHub {
|
src = pkgs.fetchFromGitHub {
|
||||||
owner = "openrazer";
|
owner = "openrazer";
|
||||||
repo = "openrazer";
|
repo = "openrazer";
|
||||||
tag = "v${version}";
|
tag = "v${version}";
|
||||||
hash = "sha256-M5g3Rn9WuyudhWQfDooopjexEgGVB0rzfJsPg+dqwn4=";
|
hash = "sha256-igrGx7Y6ENtZatJCTAW43/0q6ZjljJ9/kU3QFli4yIU=";
|
||||||
};
|
};
|
||||||
})) {
|
})) {
|
||||||
kernel = config.boot.kernelPackages.openrazer;
|
kernel = config.boot.kernelPackages.openrazer;
|
||||||
|
|
|
@ -15,17 +15,7 @@ in
|
||||||
aliasDrag
|
aliasDrag
|
||||||
ranger-git
|
ranger-git
|
||||||
ripgrep
|
ripgrep
|
||||||
(kitty.overrideAttrs (superAttrs: {
|
kitty
|
||||||
patches = superAttrs.patches or [] ++ [
|
|
||||||
(fetchpatch {
|
|
||||||
url = "https://github.com/AmirulAndalib/kitty/commit/61fd8c4003b361503160424cbed1960153f40290.patch";
|
|
||||||
excludes = lib.map lib.escapeRegex [
|
|
||||||
"docs/changelog.rst"
|
|
||||||
];
|
|
||||||
hash = "sha256-TqO/pLRkxN+Mz4nfNfTntGpPoy6OgbtAGmdohG/1BFs=";
|
|
||||||
})
|
|
||||||
];
|
|
||||||
}))
|
|
||||||
zoxide
|
zoxide
|
||||||
]) ++ [
|
]) ++ [
|
||||||
(
|
(
|
||||||
|
@ -39,19 +29,15 @@ in
|
||||||
HISTCONTROL=ignoreboth
|
HISTCONTROL=ignoreboth
|
||||||
'';
|
'';
|
||||||
|
|
||||||
programs.bash.interactiveShellInit = lib.mkMerge [
|
programs.bash.interactiveShellInit = ''
|
||||||
''
|
|
||||||
HISTCONTROL=ignoreboth
|
HISTCONTROL=ignoreboth
|
||||||
if test -n "$KITTY_INSTALLATION_DIR"; then
|
if test -n "$KITTY_INSTALLATION_DIR"; then
|
||||||
export KITTY_SHELL_INTEGRATION="enabled,no-sudo"
|
export KITTY_SHELL_INTEGRATION="enabled,no-sudo"
|
||||||
source "$KITTY_INSTALLATION_DIR/shell-integration/bash/kitty.bash"
|
source "$KITTY_INSTALLATION_DIR/shell-integration/bash/kitty.bash"
|
||||||
fi
|
fi
|
||||||
|
eval "''$(zoxide init bash)"
|
||||||
alias bye=exit
|
alias bye=exit
|
||||||
''
|
'';
|
||||||
(lib.mkAfter ''
|
|
||||||
eval "''$(${lib.getExe pkgs.zoxide} init bash)"
|
|
||||||
'')
|
|
||||||
];
|
|
||||||
|
|
||||||
environment.etc."xdg/kitty/kitty.conf".text = ''
|
environment.etc."xdg/kitty/kitty.conf".text = ''
|
||||||
font_family MesloLGS Nerd Font
|
font_family MesloLGS Nerd Font
|
||||||
|
|
|
@ -16,8 +16,8 @@ ranger.overrideAttrs (selfAttrs: superAttrs: {
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "ranger";
|
owner = "ranger";
|
||||||
repo = "ranger";
|
repo = "ranger";
|
||||||
rev = "7e38143eaa91c82bed8f309aa167b1e6f2607576";
|
rev = "b00f923911090204139c9e19ba42e9d80aa0889f";
|
||||||
hash = "sha256-O0DjecncpN+Bv8Ng+keuvU9iVtWAV4a50p959pMvkww=";
|
hash = "sha256-uMvo+5I5WCJGT5+XRS/NFClDGH4F59ogQJb+RYuraX4=";
|
||||||
};
|
};
|
||||||
|
|
||||||
patches = superAttrs.patches or [] ++ [
|
patches = superAttrs.patches or [] ++ [
|
||||||
|
|
81
pkgs/by-name/up/upp/buildUppPackage.nix
Normal file
81
pkgs/by-name/up/upp/buildUppPackage.nix
Normal file
|
@ -0,0 +1,81 @@
|
||||||
|
{
|
||||||
|
lib,
|
||||||
|
pkg-config,
|
||||||
|
stdenv,
|
||||||
|
upp,
|
||||||
|
}:
|
||||||
|
|
||||||
|
{
|
||||||
|
assembly ? ".",
|
||||||
|
extraAssemblies ? [],
|
||||||
|
includeUppsrcAssembly ? true,
|
||||||
|
package,
|
||||||
|
flags ? [],
|
||||||
|
buildMethod ? if stdenv.cc.isClang then "CLANG" else "GCC",
|
||||||
|
buildShared ? false,
|
||||||
|
...
|
||||||
|
}@args:
|
||||||
|
|
||||||
|
let
|
||||||
|
flagsString = lib.optionalString (flags != []) ( "+" + lib.concatStringsSep "," flags);
|
||||||
|
output = if buildShared then "lib/${package}.so" else "bin/${package}";
|
||||||
|
in
|
||||||
|
|
||||||
|
stdenv.mkDerivation (self: {
|
||||||
|
nativeBuildInputs = [
|
||||||
|
pkg-config
|
||||||
|
upp
|
||||||
|
] ++ args.nativeBuildInputs or [];
|
||||||
|
|
||||||
|
buildInputs = upp.uppsrcDependencies ++ args.buildInputs or [];
|
||||||
|
|
||||||
|
assemblies = lib.concatStringsSep "," (
|
||||||
|
lib.singleton assembly
|
||||||
|
++ extraAssemblies
|
||||||
|
++ lib.optional includeUppsrcAssembly "${upp.src}/uppsrc"
|
||||||
|
);
|
||||||
|
|
||||||
|
postUnpack = ''
|
||||||
|
mkdir -p .home
|
||||||
|
export HOME=$(realpath .home)
|
||||||
|
'';
|
||||||
|
|
||||||
|
UPP_NO_BUILD_INFO = true;
|
||||||
|
|
||||||
|
# https://www.ultimatepp.org/app$ide$umk$en-us.html
|
||||||
|
# s - use shared libraries
|
||||||
|
# S - use shared libraries and build shared libraries
|
||||||
|
# u - use target directory
|
||||||
|
# v - verbose
|
||||||
|
# r - release mode
|
||||||
|
|
||||||
|
# FIXME: writing to $out should be done in the install phase
|
||||||
|
buildPhase = ''
|
||||||
|
runHook preBuild
|
||||||
|
|
||||||
|
mkdir -p $out/${if buildShared then "lib" else "bin"}
|
||||||
|
|
||||||
|
umk \
|
||||||
|
"$assemblies" \
|
||||||
|
${lib.escapeShellArg package} \
|
||||||
|
${buildMethod} \
|
||||||
|
-${if buildShared then "S" else "s"}uvr "-H$NIX_BUILD_CORES" \
|
||||||
|
${flagsString} \
|
||||||
|
$out/${output}
|
||||||
|
|
||||||
|
runHook postBuild
|
||||||
|
'';
|
||||||
|
|
||||||
|
# Don't run installPhase unless the user explicitly provides it
|
||||||
|
dontInstall = !lib.hasAttr "installPhase" args;
|
||||||
|
} // lib.removeAttrs args [
|
||||||
|
"assembly"
|
||||||
|
"extraAssemblies"
|
||||||
|
"includeUppsrcAssembly"
|
||||||
|
"package"
|
||||||
|
"flags"
|
||||||
|
"buildMethod"
|
||||||
|
"buildShared"
|
||||||
|
"nativeBuildInputs"
|
||||||
|
"buildInputs"
|
||||||
|
])
|
131
pkgs/by-name/up/upp/no-build-info.patch
Normal file
131
pkgs/by-name/up/upp/no-build-info.patch
Normal file
|
@ -0,0 +1,131 @@
|
||||||
|
diff --git a b
|
||||||
|
index a3e9af6..0ff3dd8 100644
|
||||||
|
--- a/Makefile
|
||||||
|
+++ b/Makefile
|
||||||
|
@@ -100,8 +100,14 @@ all: prepare $(OutFile)
|
||||||
|
.PHONY: build_info
|
||||||
|
build_info:
|
||||||
|
- (date '+#define bmYEAR %y%n#define bmMONTH %m%n#define bmDAY %d%n#define bmHOUR %H%n#define bmMINUTE %M%n#define bmSECOND %S%n#define bmTIME Time( %y, %m, %d, %H, %M, %S )' | sed 's| 0\([[:digit:]]\)| \1|g' && \
|
||||||
|
- echo '#define bmMACHINE "'`hostname`'"' && \
|
||||||
|
- echo '#define bmUSER "'`whoami`'"') > "$(UPPOUT)/build_info.h"
|
||||||
|
+ (echo '#define bmYEAR 1970' && \
|
||||||
|
+ echo '#define bmMONTH 1' && \
|
||||||
|
+ echo '#define bmDAY 1' && \
|
||||||
|
+ echo '#define bmHOUR 0' && \
|
||||||
|
+ echo '#define bmMINUTE 0' && \
|
||||||
|
+ echo '#define bmSECOND 1' && \
|
||||||
|
+ echo '#define bmTIME Time(1970, 1, 1, 0, 0, 1)' && \
|
||||||
|
+ echo '#define bmMACHINE ""' && \
|
||||||
|
+ echo '#define bmUSER ""') > "$(UPPOUT)/build_info.h"
|
||||||
|
|
||||||
|
.PHONY: prepare
|
||||||
|
prepare: \
|
||||||
|
index a3e9af6..0ff3dd8 100644
|
||||||
|
--- a/Makefile.in
|
||||||
|
+++ b/Makefile.in
|
||||||
|
@@ -100,8 +100,14 @@ all: prepare $(OutFile)
|
||||||
|
.PHONY: build_info
|
||||||
|
build_info:
|
||||||
|
- (date '+#define bmYEAR %y%n#define bmMONTH %m%n#define bmDAY %d%n#define bmHOUR %H%n#define bmMINUTE %M%n#define bmSECOND %S%n#define bmTIME Time( %y, %m, %d, %H, %M, %S )' | sed 's| 0\([[:digit:]]\)| \1|g' && \
|
||||||
|
- echo '#define bmMACHINE "'`hostname`'"' && \
|
||||||
|
- echo '#define bmUSER "'`whoami`'"') > "$(UPPOUT)/build_info.h"
|
||||||
|
+ (echo '#define bmYEAR 1970' && \
|
||||||
|
+ echo '#define bmMONTH 1' && \
|
||||||
|
+ echo '#define bmDAY 1' && \
|
||||||
|
+ echo '#define bmHOUR 0' && \
|
||||||
|
+ echo '#define bmMINUTE 0' && \
|
||||||
|
+ echo '#define bmSECOND 1' && \
|
||||||
|
+ echo '#define bmTIME Time(1970, 1, 1, 0, 0, 1)' && \
|
||||||
|
+ echo '#define bmMACHINE ""' && \
|
||||||
|
+ echo '#define bmUSER ""') > "$(UPPOUT)/build_info.h"
|
||||||
|
|
||||||
|
.PHONY: prepare
|
||||||
|
prepare: \
|
||||||
|
--- a/umkMakefile
|
||||||
|
+++ b/umkMakefile
|
||||||
|
@@ -52,8 +52,14 @@ all: prepare $(OutFile)
|
||||||
|
.PHONY: build_info
|
||||||
|
build_info:
|
||||||
|
- (date '+#define bmYEAR %y%n#define bmMONTH %m%n#define bmDAY %d%n#define bmHOUR %H%n#define bmMINUTE %M%n#define bmSECOND %S%n#define bmTIME Time( %y, %m, %d, %H, %M, %S )' | sed 's| 0\([[:digit:]]\)| \1|g' && \
|
||||||
|
- echo '#define bmMACHINE "'`hostname`'"' && \
|
||||||
|
- echo '#define bmUSER "'`whoami`'"') > "$(UPPOUT)/build_info.h"
|
||||||
|
+ (echo '#define bmYEAR 1970' && \
|
||||||
|
+ echo '#define bmMONTH 1' && \
|
||||||
|
+ echo '#define bmDAY 1' && \
|
||||||
|
+ echo '#define bmHOUR 0' && \
|
||||||
|
+ echo '#define bmMINUTE 0' && \
|
||||||
|
+ echo '#define bmSECOND 1' && \
|
||||||
|
+ echo '#define bmTIME Time(1970, 1, 1, 0, 0, 1)' && \
|
||||||
|
+ echo '#define bmMACHINE ""' && \
|
||||||
|
+ echo '#define bmUSER ""') > "$(UPPOUT)/build_info.h"
|
||||||
|
|
||||||
|
.PHONY: prepare
|
||||||
|
prepare: \
|
||||||
|
--- a/umkMakefile.in
|
||||||
|
+++ b/umkMakefile.in
|
||||||
|
@@ -52,8 +52,14 @@ all: prepare $(OutFile)
|
||||||
|
.PHONY: build_info
|
||||||
|
build_info:
|
||||||
|
- (date '+#define bmYEAR %y%n#define bmMONTH %m%n#define bmDAY %d%n#define bmHOUR %H%n#define bmMINUTE %M%n#define bmSECOND %S%n#define bmTIME Time( %y, %m, %d, %H, %M, %S )' | sed 's| 0\([[:digit:]]\)| \1|g' && \
|
||||||
|
- echo '#define bmMACHINE "'`hostname`'"' && \
|
||||||
|
- echo '#define bmUSER "'`whoami`'"') > "$(UPPOUT)/build_info.h"
|
||||||
|
+ (echo '#define bmYEAR 1970' && \
|
||||||
|
+ echo '#define bmMONTH 1' && \
|
||||||
|
+ echo '#define bmDAY 1' && \
|
||||||
|
+ echo '#define bmHOUR 0' && \
|
||||||
|
+ echo '#define bmMINUTE 0' && \
|
||||||
|
+ echo '#define bmSECOND 1' && \
|
||||||
|
+ echo '#define bmTIME Time(1970, 1, 1, 0, 0, 1)' && \
|
||||||
|
+ echo '#define bmMACHINE ""' && \
|
||||||
|
+ echo '#define bmUSER ""') > "$(UPPOUT)/build_info.h"
|
||||||
|
|
||||||
|
.PHONY: prepare
|
||||||
|
prepare: \
|
||||||
|
--- a/uppsrc/ide/Builders/CppBuilder.cpp
|
||||||
|
+++ b/uppsrc/ide/Builders/CppBuilder.cpp
|
||||||
|
@@ -580,19 +580,32 @@ void CppBuilder::SaveBuildInfo(const String& package)
|
||||||
|
RealizePath(path);
|
||||||
|
FileOut info(path);
|
||||||
|
Time t = GetSysTime();
|
||||||
|
- info << "#define bmYEAR " << (int)t.year << "\r\n";
|
||||||
|
- info << "#define bmMONTH " << (int)t.month << "\r\n";
|
||||||
|
- info << "#define bmDAY " << (int)t.day << "\r\n";
|
||||||
|
- info << "#define bmHOUR " << (int)t.hour << "\r\n";
|
||||||
|
- info << "#define bmMINUTE " << (int)t.minute << "\r\n";
|
||||||
|
- info << "#define bmSECOND " << (int)t.second << "\r\n";
|
||||||
|
- info << Format("#define bmTIME Time(%d, %d, %d, %d, %d, %d)\r\n",
|
||||||
|
- (int)t.year, (int)t.month, (int)t.day, (int)t.hour, (int)t.minute, (int)t.second);
|
||||||
|
- info << "#define bmMACHINE " << AsCString(GetComputerName()) << "\r\n";
|
||||||
|
- info << "#define bmUSER " << AsCString(GetUserName()) << "\r\n";
|
||||||
|
-
|
||||||
|
- if(package == mainpackage)
|
||||||
|
- info << Join(RepoInfo(package), "\r\n");
|
||||||
|
+ char* no_build_info = getenv("NO_BUILD_INFO");
|
||||||
|
+ if((no_build_info != NULL) && strcmp(no_build_info, "1")) {
|
||||||
|
+ info << "#define bmYEAR " << (int)t.year << "\r\n";
|
||||||
|
+ info << "#define bmMONTH " << (int)t.month << "\r\n";
|
||||||
|
+ info << "#define bmDAY " << (int)t.day << "\r\n";
|
||||||
|
+ info << "#define bmHOUR " << (int)t.hour << "\r\n";
|
||||||
|
+ info << "#define bmMINUTE " << (int)t.minute << "\r\n";
|
||||||
|
+ info << "#define bmSECOND " << (int)t.second << "\r\n";
|
||||||
|
+ info << Format("#define bmTIME Time(%d, %d, %d, %d, %d, %d)\r\n",
|
||||||
|
+ (int)t.year, (int)t.month, (int)t.day, (int)t.hour, (int)t.minute, (int)t.second);
|
||||||
|
+ info << "#define bmMACHINE " << AsCString(GetComputerName()) << "\r\n";
|
||||||
|
+ info << "#define bmUSER " << AsCString(GetUserName()) << "\r\n";
|
||||||
|
+
|
||||||
|
+ if(package == mainpackage)
|
||||||
|
+ info << Join(RepoInfo(package), "\r\n");
|
||||||
|
+ } else {
|
||||||
|
+ info << "#define bmYEAR 1970\r\n";
|
||||||
|
+ info << "#define bmMONTH 1\r\n";
|
||||||
|
+ info << "#define bmDAY 1\r\n";
|
||||||
|
+ info << "#define bmHOUR 0\r\n";
|
||||||
|
+ info << "#define bmMINUTE 0\r\n";
|
||||||
|
+ info << "#define bmSECOND 1\r\n";
|
||||||
|
+ info << "#define bmTIME Time(1970, 1, 1, 0, 0, 1)\r\n";
|
||||||
|
+ info << "#define bmMACHINE \"\"\r\n";
|
||||||
|
+ info << "#define bmUSER \"\"\r\n";
|
||||||
|
+ }
|
||||||
|
}
|
||||||
|
|
||||||
|
String CppBuilder::DefinesTargetTime(const char *sep, const String& package, const Package& pkg)
|
175
pkgs/by-name/up/upp/package.nix
Normal file
175
pkgs/by-name/up/upp/package.nix
Normal file
|
@ -0,0 +1,175 @@
|
||||||
|
{
|
||||||
|
lib,
|
||||||
|
callPackage,
|
||||||
|
fetchFromGitHub,
|
||||||
|
fetchpatch,
|
||||||
|
makeWrapper,
|
||||||
|
pkg-config,
|
||||||
|
stdenv,
|
||||||
|
makeDesktopItem,
|
||||||
|
copyDesktopItems,
|
||||||
|
|
||||||
|
# pkg-config dependencies
|
||||||
|
libpng,
|
||||||
|
freetype,
|
||||||
|
fontconfig,
|
||||||
|
xorg,
|
||||||
|
expat,
|
||||||
|
gtk3,
|
||||||
|
libnotify,
|
||||||
|
|
||||||
|
# other dependencies
|
||||||
|
libclang,
|
||||||
|
openssl,
|
||||||
|
}:
|
||||||
|
|
||||||
|
let
|
||||||
|
buildMethod = if stdenv.cc.isClang then "CLANG" else "GCC";
|
||||||
|
uppsrcDependencies = [
|
||||||
|
expat
|
||||||
|
fontconfig
|
||||||
|
freetype
|
||||||
|
gtk3
|
||||||
|
libnotify
|
||||||
|
libpng
|
||||||
|
openssl
|
||||||
|
xorg.libX11
|
||||||
|
xorg.libXdmcp
|
||||||
|
xorg.libXext
|
||||||
|
xorg.libXft
|
||||||
|
xorg.libXinerama
|
||||||
|
xorg.libXrender
|
||||||
|
xorg.libxcb
|
||||||
|
];
|
||||||
|
in stdenv.mkDerivation (self: let
|
||||||
|
selfBootstrap = self.overrideAttrs (selfAttrs: superAttrs: {
|
||||||
|
passthru = superAttrs.passthru // {
|
||||||
|
bootstrap = true;
|
||||||
|
};
|
||||||
|
});
|
||||||
|
in {
|
||||||
|
pname = "upp";
|
||||||
|
version = "2025.1";
|
||||||
|
|
||||||
|
src = fetchFromGitHub {
|
||||||
|
owner = "ultimatepp";
|
||||||
|
repo = "ultimatepp";
|
||||||
|
tag = "2025.1";
|
||||||
|
hash = "sha256-/hsjQvc5+HxyaytZ5kryhSxbuaAx0eXuH285q7NPiiw=";
|
||||||
|
};
|
||||||
|
|
||||||
|
enableParallelBuilding = true;
|
||||||
|
|
||||||
|
nativeBuildInputs = [
|
||||||
|
makeWrapper
|
||||||
|
pkg-config
|
||||||
|
] ++ lib.optional (!self.passthru.bootstrap) copyDesktopItems;
|
||||||
|
|
||||||
|
buildInputs = uppsrcDependencies ++ lib.optional (!self.passthru.bootstrap) libclang;
|
||||||
|
|
||||||
|
patches = [
|
||||||
|
./no-build-info.patch
|
||||||
|
(fetchpatch {
|
||||||
|
# https://github.com/ultimatepp/ultimatepp/pull/271
|
||||||
|
url = "https://github.com/ultimatepp/ultimatepp/commit/db5cad68673f9571e6571116e0570e22e3e44fe8.patch";
|
||||||
|
hash = "sha256-t2PducjE6b5MjDSAIKvEMdHnT8oTGmI073qYuhLFCh0=";
|
||||||
|
})
|
||||||
|
];
|
||||||
|
postPatch = ''
|
||||||
|
patchShebangs ./configure_makefile
|
||||||
|
echo "#define IDE_VERSION \"${self.version}\"" > uppsrc/ide/version.h
|
||||||
|
'' + lib.optionalString (!self.passthru.bootstrap) ''
|
||||||
|
mkdir -p .home
|
||||||
|
export HOME=$(realpath .home)
|
||||||
|
'';
|
||||||
|
|
||||||
|
NIX_LDFLAGS = [
|
||||||
|
"-L${libclang.lib}/lib"
|
||||||
|
"-lclang"
|
||||||
|
];
|
||||||
|
|
||||||
|
NIX_CFLAGS_COMPILE = [
|
||||||
|
"-DflagLCLANG"
|
||||||
|
];
|
||||||
|
|
||||||
|
UPP_NO_BUILD_INFO = true;
|
||||||
|
|
||||||
|
buildPhase = ''
|
||||||
|
runHook preBuild
|
||||||
|
'' + (
|
||||||
|
# Don't build theide in bootstrap to save resources
|
||||||
|
if self.passthru.bootstrap then ''
|
||||||
|
make -f umkMakefile -j $NIX_BUILD_CORES "$makeFlagsArray"
|
||||||
|
'' else ''
|
||||||
|
${lib.getExe' selfBootstrap "umk"} uppsrc ide ${buildMethod} -rvs "-H$NIX_BUILD_CORES"
|
||||||
|
${lib.getExe' selfBootstrap "umk"} uppsrc umk ${buildMethod} -rvs "-H$NIX_BUILD_CORES"
|
||||||
|
'') + ''
|
||||||
|
runHook postBuild
|
||||||
|
'';
|
||||||
|
|
||||||
|
installPhase = ''
|
||||||
|
runHook preInstall
|
||||||
|
|
||||||
|
mkdir -p $out/bin
|
||||||
|
'' + (if self.passthru.bootstrap then ''
|
||||||
|
mv ./umk $out/bin/umk
|
||||||
|
'' else ''
|
||||||
|
mv $HOME/.cache/upp.out/umk/${buildMethod}.Main.Shared/umk $out/bin/umk
|
||||||
|
mv $HOME/.cache/upp.out/ide/${buildMethod}.Gui.Main.Shared/ide $out/bin/theide
|
||||||
|
|
||||||
|
wrapProgram $out/bin/theide \
|
||||||
|
--unset WAYLAND_DISPLAY
|
||||||
|
|
||||||
|
mkdir -p $out/share/icons/hicolor/scalable/apps
|
||||||
|
cp uppsrc/ide/icon.svg $out/share/icons/hicolor/scalable/apps/upp-theide.svg
|
||||||
|
for size in 16 32 64 128 256 512; do
|
||||||
|
mkdir -p $out/share/icons/hicolor/''${size}x''${size}/apps
|
||||||
|
cp uppsrc/ide/icon''${size}x''${size}.png $out/share/icons/hicolor/''${size}x''${size}/apps/upp-theide.png
|
||||||
|
done
|
||||||
|
'') + ''
|
||||||
|
runHook postInstall
|
||||||
|
'';
|
||||||
|
|
||||||
|
desktopItems = [
|
||||||
|
(makeDesktopItem {
|
||||||
|
name = "upp-theide";
|
||||||
|
exec = "theide";
|
||||||
|
icon = "upp-theide";
|
||||||
|
desktopName = "TheIDE";
|
||||||
|
comment = "The U++ Framework IDE";
|
||||||
|
categories = [ "Development" "IDE" ];
|
||||||
|
terminal = false;
|
||||||
|
})
|
||||||
|
];
|
||||||
|
|
||||||
|
passthru = {
|
||||||
|
bootstrap = false;
|
||||||
|
inherit uppsrcDependencies;
|
||||||
|
buildUppPackage = callPackage ./buildUppPackage.nix {};
|
||||||
|
tests = lib.genAttrs [
|
||||||
|
"AddressBookXML2"
|
||||||
|
"Bombs"
|
||||||
|
"Days"
|
||||||
|
"SQLApp"
|
||||||
|
"httpcli"
|
||||||
|
] (examplePackageName: self.passthru.buildUppPackage {
|
||||||
|
pname = examplePackageName;
|
||||||
|
version = self.version;
|
||||||
|
package = examplePackageName;
|
||||||
|
src = self.src;
|
||||||
|
includeUppsrcAssembly = false;
|
||||||
|
buildInputs = self.passthru.uppsrcDependencies;
|
||||||
|
assembly = "examples";
|
||||||
|
extraAssemblies = [
|
||||||
|
"uppsrc"
|
||||||
|
];
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
meta = {
|
||||||
|
homepage = "https://www.ultimatepp.org";
|
||||||
|
description = "C++ cross-platform rapid application development framework";
|
||||||
|
license = lib.licenses.bsd2;
|
||||||
|
mainProgram = "umk";
|
||||||
|
};
|
||||||
|
})
|
|
@ -1,8 +1,6 @@
|
||||||
{
|
{
|
||||||
unstableSource,
|
unstableSource,
|
||||||
attributeName ? "unstable",
|
attributeName ? "unstable",
|
||||||
# callPackage :: function | boolean
|
|
||||||
callPackage ? false,
|
|
||||||
}:
|
}:
|
||||||
|
|
||||||
self: super:
|
self: super:
|
||||||
|
@ -17,58 +15,26 @@ let
|
||||||
"parsed"
|
"parsed"
|
||||||
];
|
];
|
||||||
|
|
||||||
# if overlay is found in previous layer, then it was provided in "overlays" argument
|
unstablePkgsForNixpkgs = nixpkgs: import unstableSource {
|
||||||
# otherwise, it is provided in "crossOverlays" argument.
|
|
||||||
overlays = self.lib.groupBy (overlay:
|
|
||||||
if self.lib.elem overlay self.buildPackages.overlays then "allLayers"
|
|
||||||
else "finalLayer"
|
|
||||||
) self.overlays;
|
|
||||||
|
|
||||||
unstablePkgs = import unstableSource {
|
|
||||||
# localSystem -> pkgs.stdenv.buildPlatform
|
# localSystem -> pkgs.stdenv.buildPlatform
|
||||||
localSystem = sanitizePlatform self.stdenv.buildPlatform;
|
localSystem = sanitizePlatform nixpkgs.stdenv.buildPlatform;
|
||||||
# crossSystem -> pkgs.stdenv.hostPlatform or pkgs.stdenv.targetPlatform ??
|
# crossSystem -> pkgs.stdenv.hostPlatform or pkgs.stdenv.targetPlatform ??
|
||||||
# passing below
|
# passing below
|
||||||
# config -> pkgs.config
|
# config -> pkgs.config
|
||||||
config = self.config;
|
config = nixpkgs.config;
|
||||||
# overlays -> pkgs.buildPackages.overlays
|
# overlays -> partial of pkgs.overlays
|
||||||
overlays = overlays.allLayers or [];
|
overlays = nixpkgs.overlays;
|
||||||
# crossOverlays -> pkgs.overlays without pkgs.buildPackages.overlays
|
# crossOverlays -> partial of pkgs.overlays
|
||||||
crossOverlays = overlays.finalLayer or [];
|
# crossOverlays are merged to overlays, not sure what issues that might raise.
|
||||||
|
# ignoring.
|
||||||
} // self.lib.optionalAttrs (
|
} // self.lib.optionalAttrs (
|
||||||
self.lib.systems.equals self.stdenv.buildPlatform self.stdenv.hostPlatform
|
self.lib.systems.equals nixpkgs.stdenv.buildPlatform nixpkgs.stdenv.hostPlatform
|
||||||
) {
|
) {
|
||||||
# workaround for some odd structured packages that changes behaviour
|
# workaround for some odd structured packages that changes behaviour
|
||||||
# when crossSystem is passed.
|
# when crossSystem is passed.
|
||||||
crossSystem = sanitizePlatform self.stdenv.hostPlatform;
|
crossSystem = sanitizePlatform nixpkgs.stdenv.hostPlatform;
|
||||||
};
|
};
|
||||||
|
|
||||||
callPackage' = if builtins.isFunction callPackage then callPackage
|
|
||||||
else if builtins.isBool callPackage && callPackage then self.callPackage
|
|
||||||
else if builtins.isBool callPackage && !callPackage then throw "this should never be evaluated"
|
|
||||||
else throw ''
|
|
||||||
callPackage argument should be a function or a boolean.
|
|
||||||
If you want to use the callPackage from self, set it to true.
|
|
||||||
If you want to use a custom callPackage, set it to a function (pkgs.callPackage).
|
|
||||||
'';
|
|
||||||
|
|
||||||
callPackagesUnstablePkgs = self.lib.mapAttrsRecursiveCond (
|
|
||||||
attrset: !(self.lib.hasAttr "override" attrset) && attrset.recurseForDerivations or false
|
|
||||||
) (
|
|
||||||
_: unstablePackage: callPackage' {
|
|
||||||
# For some reason, override functor of the package has its argument set as required,
|
|
||||||
# which is totally false! the override functor can take all of those arguemnts optionally.
|
|
||||||
__functionArgs = self.lib.mapAttrs (_: _: true) (self.lib.functionArgs unstablePackage.override);
|
|
||||||
__functor =
|
|
||||||
if builtins.isFunction unstablePackage.override then unstablePackage.override
|
|
||||||
else unstablePackage.override.__functor;
|
|
||||||
} {}
|
|
||||||
) unstablePkgs;
|
|
||||||
|
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
"${attributeName}" = if !useUnstable then self
|
"${attributeName}" = if useUnstable then unstablePkgsForNixpkgs self else self;
|
||||||
# if callPackage is not false
|
|
||||||
else if !(builtins.isBool callPackage && !callPackage) then callPackagesUnstablePkgs
|
|
||||||
else unstablePkgs;
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue