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,56 @@
{
lib,
stdenv,
fetchFromGitHub,
python3Packages,
webkitgtk_4_1,
wrapGAppsHook3,
glib-networking,
gobject-introspection,
openconnect,
}:
python3Packages.buildPythonPackage rec {
pname = "gp-saml-gui";
version = "0.1+20240731-${lib.strings.substring 0 7 src.rev}";
format = "setuptools";
src = fetchFromGitHub {
owner = "dlenski";
repo = "gp-saml-gui";
rev = "c46af04b3a6325b0ecc982840d7cfbd1629b6d43";
hash = "sha256-4MFHad1cuCWawy2hrqdXOgud0pXpYiV9J3Jwqyg4Udk=";
};
buildInputs = lib.optional stdenv.hostPlatform.isLinux glib-networking;
nativeBuildInputs = [
wrapGAppsHook3
gobject-introspection
glib-networking
];
dependencies =
with python3Packages;
[
requests
pygobject3
]
++ [
openconnect
]
++ lib.optional stdenv.hostPlatform.isLinux webkitgtk_4_1;
preFixup = ''
gappsWrapperArgs+=(
--set WEBKIT_DISABLE_COMPOSITING_MODE "1"
)
'';
meta = {
description = "Interactively authenticate to GlobalProtect VPNs that require SAML";
mainProgram = "gp-saml-gui";
homepage = "https://github.com/dlenski/gp-saml-gui";
license = lib.licenses.gpl3Only;
maintainers = with lib.maintainers; [ pallix ];
};
}

View File

@@ -0,0 +1,40 @@
{
lib,
stdenv,
fetchurl,
pari,
perl,
}:
stdenv.mkDerivation rec {
pname = "gp2c";
version = "0.0.14";
src = fetchurl {
url = "https://pari.math.u-bordeaux.fr/pub/pari/GP2C/${pname}-${version}.tar.gz";
hash = "sha256-r2ESzAKUBFfiOdpEM9Gg2Npg7u8p98xyL2TNSsALezA=";
};
buildInputs = [
pari
perl
];
configureFlags = [
"--with-paricfg=${pari}/lib/pari/pari.cfg"
"--with-perl=${perl}/bin/perl"
];
meta = {
homepage = "http://pari.math.u-bordeaux.fr/";
description = "Compiler to translate GP scripts to PARI programs";
downloadPage = "http://pari.math.u-bordeaux.fr/download.html";
inherit (pari.meta)
license
maintainers
teams
platforms
broken
;
};
}

View File

@@ -0,0 +1,44 @@
{
lib,
stdenv,
fetchurl,
intltool,
pkg-config,
gtk3,
gpgme,
libgpg-error,
libassuan,
}:
stdenv.mkDerivation rec {
pname = "gpa";
version = "0.11.0";
src = fetchurl {
url = "mirror://gnupg/gpa/gpa-${version}.tar.bz2";
hash = "sha256-Jqj6W/cFQct0Hwxxt8/ikbHqVuq2jusHqpYs71zfM8w=";
};
nativeBuildInputs = [
intltool
pkg-config
];
buildInputs = [
gtk3
gpgme
libgpg-error
libassuan
];
env.NIX_CFLAGS_COMPILE = "-Wno-error=implicit-function-declaration";
meta = {
changelog = "https://dev.gnupg.org/source/gpa/browse/master/NEWS;gpa-${version}?view=raw";
description = "Graphical user interface for the GnuPG";
homepage = "https://www.gnupg.org/related_software/gpa/";
license = lib.licenses.gpl3Plus;
platforms = lib.platforms.unix;
mainProgram = "gpa";
};
}

View File

@@ -0,0 +1,57 @@
{
lib,
stdenv,
fetchFromGitHub,
cctools,
pkg-config,
zlib,
}:
stdenv.mkDerivation rec {
pname = "gpac";
version = "2.4.0";
src = fetchFromGitHub {
owner = "gpac";
repo = "gpac";
rev = "v${version}";
hash = "sha256-RADDqc5RxNV2EfRTzJP/yz66p0riyn81zvwU3r9xncM=";
};
# this is the bare minimum configuration, as I'm only interested in MP4Box
# For most other functionality, this should probably be extended
nativeBuildInputs = [
pkg-config
]
++ lib.optionals stdenv.hostPlatform.isDarwin [
cctools
];
buildInputs = [
zlib
];
enableParallelBuilding = true;
meta = with lib; {
description = "Open Source multimedia framework for research and academic purposes";
longDescription = ''
GPAC is an Open Source multimedia framework for research and academic purposes.
The project covers different aspects of multimedia, with a focus on presentation
technologies (graphics, animation and interactivity) and on multimedia packaging
formats such as MP4.
GPAC provides three sets of tools based on a core library called libgpac:
A multimedia player, called Osmo4 / MP4Client,
A multimedia packager, called MP4Box,
And some server tools included in MP4Box and MP42TS applications.
'';
homepage = "https://gpac.wp.imt.fr";
license = licenses.lgpl21;
maintainers = with maintainers; [
mgdelacroix
];
platforms = platforms.unix;
};
}

View File

@@ -0,0 +1,39 @@
{
lib,
stdenv,
fetchFromGitHub,
autoreconfHook,
}:
stdenv.mkDerivation rec {
pname = "gpart";
version = "0.3";
# GitHub repository 'collating patches for gpart from all distributions':
src = fetchFromGitHub {
sha256 = "1lsd9k876p944k9s6sxqk5yh9yr7m42nbw9vlsllin7pd4djl4ya";
rev = version;
repo = "gpart";
owner = "baruch";
};
nativeBuildInputs = [ autoreconfHook ];
enableParallelBuilding = true;
doCheck = true;
meta = with lib; {
inherit (src.meta) homepage;
description = "Guess PC-type hard disk partitions";
longDescription = ''
Gpart is a tool which tries to guess the primary partition table of a
PC-type hard disk in case the primary partition table in sector 0 is
damaged, incorrect or deleted. The guessed table can be written to a file
or device.
'';
license = licenses.gpl2Plus;
platforms = platforms.linux;
mainProgram = "gpart";
};
}

View File

@@ -0,0 +1,110 @@
{
lib,
stdenv,
fetchurl,
gettext,
coreutils,
gnused,
adwaita-icon-theme,
gnugrep,
parted,
glib,
libuuid,
pkg-config,
gtkmm3,
libxml2,
gpart,
hdparm,
procps,
util-linuxMinimal,
polkit,
wrapGAppsHook3,
replaceVars,
mtools,
dosfstools,
xhost,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "gparted";
version = "1.7.0";
src = fetchurl {
url = "mirror://sourceforge/gparted/gparted-${finalAttrs.version}.tar.gz";
hash = "sha256-hK47mXPkQ6IXXweqDcKs7q2xUB4PiVPOyDsOwzR7fVI=";
};
# Tries to run `pkexec --version` to get version.
# however the binary won't be suid so it returns
# an error preventing the program from detection
patches = [
(replaceVars ./polkit.patch {
polkit_version = polkit.version;
})
];
enableParallelBuilding = true;
configureFlags = [
"--disable-doc"
"--enable-xhost-root"
];
buildInputs = [
parted
glib
libuuid
gtkmm3
libxml2
polkit.bin
adwaita-icon-theme
];
nativeBuildInputs = [
gettext
pkg-config
wrapGAppsHook3
];
preConfigure = ''
# For ITS rules
addToSearchPath "XDG_DATA_DIRS" "${polkit.out}/share"
'';
preFixup = ''
gappsWrapperArgs+=(
--prefix PATH : "${
lib.makeBinPath [
gpart
hdparm
util-linuxMinimal
procps
coreutils
gnused
gnugrep
mtools
dosfstools
xhost
]
}"
)
'';
# Doesn't get installed automatically if PREFIX != /usr
postInstall = ''
install -D -m0644 org.gnome.gparted.policy \
$out/share/polkit-1/actions/org.gnome.gparted.policy
'';
meta = {
description = "Graphical disk partitioning tool";
longDescription = ''
GNOME Partition Editor for creating, reorganizing, and deleting disk
partitions. GParted enables you to change the partition organization
while preserving the partition contents.
'';
homepage = "https://gparted.org";
license = lib.licenses.gpl2Plus;
platforms = lib.platforms.linux;
mainProgram = "gparted";
};
})

View File

@@ -0,0 +1,11 @@
--- old/gparted-1.0.0/configure 2025-01-30 18:31:10.000000000 +0100
+++ gparted-1.0.0/configure 2025-02-06 14:07:24.264733753 +0100
@@ -17041,7 +17041,7 @@
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for pkexec >= $PKEXEC_REQUIRED_VERSION" >&5
printf %s "checking for pkexec >= $PKEXEC_REQUIRED_VERSION... " >&6; }
PKEXEC_REQUIRED_INT=`echo "$PKEXEC_REQUIRED_VERSION" | $AWK -F. '{print $1 * 10000 + $2}'`
-PKEXEC_VERSION_OUTPUT=`pkexec --version 2> /dev/null` ||
+PKEXEC_VERSION_OUTPUT='pkexec version @polkit_version@' ||
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: not found" >&5
printf "%s\n" "not found" >&6; }
if test "x$PKEXEC_VERSION_OUTPUT" != 'x'; then

View File

@@ -0,0 +1,16 @@
diff --git a/src/libgpaste/gpaste/gpaste-settings.c b/src/libgpaste/gpaste/gpaste-settings.c
index 830f5e0b..c8df0e11 100644
--- a/src/libgpaste/gpaste/gpaste-settings.c
+++ b/src/libgpaste/gpaste/gpaste-settings.c
@@ -1039,7 +1039,10 @@ create_g_settings (void)
}
else
{
- return g_settings_new (G_PASTE_SETTINGS_NAME);
+ // library used by introspection requires schemas but we cannot set XDG_DATA_DIRS for the library
+ g_autoptr (GSettingsSchemaSource) schema_source = g_settings_schema_source_new_from_directory ("@gschemasCompiled@", NULL, FALSE, NULL);
+ g_autoptr (GSettingsSchema) schema = g_settings_schema_source_lookup (schema_source, G_PASTE_SETTINGS_NAME, FALSE);
+ return g_settings_new_full (schema, NULL, NULL);
}
}

View File

@@ -0,0 +1,90 @@
{
stdenv,
lib,
fetchurl,
gjs,
glib,
gobject-introspection,
gtk3,
gtk4,
gcr_4,
libadwaita,
meson,
ninja,
pango,
pkg-config,
vala,
desktop-file-utils,
wrapGAppsHook3,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "gpaste";
version = "45.3";
src = fetchurl {
url = "https://www.imagination-land.org/files/gpaste/GPaste-${finalAttrs.version}.tar.xz";
hash = "sha256-UU8pw7bqEwg2Vh7S6GTx8swI/2IhlwjQgkGNZCzoMwc=";
};
patches = [
./fix-paths.patch
];
# TODO: switch to substituteAll with placeholder
# https://github.com/NixOS/nix/issues/1846
postPatch = ''
substituteInPlace src/libgpaste/gpaste/gpaste-settings.c \
--subst-var-by gschemasCompiled ${glib.makeSchemaPath (placeholder "out") "${finalAttrs.pname}-${finalAttrs.version}"}
'';
nativeBuildInputs = [
gobject-introspection
meson
ninja
pkg-config
vala
desktop-file-utils
wrapGAppsHook3
];
buildInputs = [
gjs
glib
gtk3
gtk4
gcr_4
libadwaita
pango
];
mesonFlags = [
"-Dcontrol-center-keybindings-dir=${placeholder "out"}/share/gnome-control-center/keybindings"
"-Ddbus-services-dir=${placeholder "out"}/share/dbus-1/services"
"-Dsystemd-user-unit-dir=${placeholder "out"}/etc/systemd/user"
];
postInstall = ''
# We do not have central location to install typelibs to,
# lets ensure GNOME Shell can still find them.
extensionDir="$out/share/gnome-shell/extensions/GPaste@gnome-shell-extensions.gnome.org"
mv "$extensionDir/"{extension,.extension-wrapped}.js
mv "$extensionDir/"{prefs,.prefs-wrapped}.js
substitute "${./wrapper.js}" "$extensionDir/extension.js" \
--subst-var-by originalName "extension" \
--subst-var-by typelibDir "${placeholder "out"}/lib/girepository-1.0"
substitute "${./wrapper.js}" "$extensionDir/prefs.js" \
--subst-var-by originalName "prefs" \
--subst-var-by typelibDir "${placeholder "out"}/lib/girepository-1.0"
'';
meta = with lib; {
homepage = "https://github.com/Keruspe/GPaste";
changelog = "https://github.com/Keruspe/GPaste/blob/v${finalAttrs.version}/NEWS";
description = "Clipboard management system with GNOME integration";
mainProgram = "gpaste-client";
license = licenses.bsd2;
platforms = platforms.linux;
teams = [ teams.gnome ];
};
})

View File

@@ -0,0 +1,5 @@
import GIRepository from 'gi://GIRepository';
GIRepository.Repository.prepend_search_path('@typelibDir@');
export default (await import('./.@originalName@-wrapped.js')).default;

View File

@@ -0,0 +1,56 @@
{
rustPlatform,
lib,
fetchFromGitHub,
openssl,
pkg-config,
perl,
webkitgtk_4_1,
}:
rustPlatform.buildRustPackage rec {
pname = "gpauth";
version = "2.4.1";
src = fetchFromGitHub {
owner = "yuezk";
repo = "GlobalProtect-openconnect";
rev = "v${version}";
hash = "sha256-MY4JvftrC6sR8M0dFvnGZOkvHIhPRcyct9AG/8527gw=";
};
buildAndTestSubdir = "apps/gpauth";
cargoHash = "sha256-8LSGuRnWRWeaY6t25GdZ2y4hGIJ+mP3UBXRjcvPuD6U=";
nativeBuildInputs = [
perl
pkg-config
];
buildInputs = [
openssl
webkitgtk_4_1
];
meta = with lib; {
changelog = "https://github.com/${src.owner}/${src.repo}/blob/${src.rev}/changelog.md";
description = "CLI for GlobalProtect VPN, based on OpenConnect, supports the SSO authentication method";
longDescription = ''
A CLI for GlobalProtect VPN, based on OpenConnect, supports the SSO
authentication method. Inspired by gp-saml-gui.
The CLI version is always free and open source in this repo. It has almost
the same features as the GUI version.
'';
homepage = "https://github.com/${src.owner}/${src.repo}";
license = with licenses; [ gpl3Only ];
maintainers = with maintainers; [
binary-eater
m1dugh
];
platforms = [
"aarch64-linux"
"x86_64-linux"
];
};
}

View File

@@ -0,0 +1,64 @@
{
rustPlatform,
glib-networking,
gpauth,
makeWrapper,
openconnect,
openssl,
perl,
pkg-config,
vpnc-scripts,
fetchFromGitHub,
}:
rustPlatform.buildRustPackage rec {
pname = "gpclient";
version = "2.4.1";
src = fetchFromGitHub {
owner = "yuezk";
repo = "GlobalProtect-openconnect";
rev = "v${version}";
hash = "sha256-MY4JvftrC6sR8M0dFvnGZOkvHIhPRcyct9AG/8527gw=";
};
inherit (gpauth) meta;
buildAndTestSubdir = "apps/gpclient";
cargoHash = "sha256-8LSGuRnWRWeaY6t25GdZ2y4hGIJ+mP3UBXRjcvPuD6U=";
nativeBuildInputs = [
perl
makeWrapper
pkg-config
];
buildInputs = [
gpauth
openconnect
openssl
glib-networking
];
preConfigure = ''
substituteInPlace crates/gpapi/src/lib.rs \
--replace-fail /usr/bin/gpauth ${gpauth}/bin/gpauth
substituteInPlace crates/common/src/vpn_utils.rs \
--replace-fail /usr/sbin/vpnc-script ${vpnc-scripts}/bin/vpnc-script
'';
postInstall = ''
mkdir -p $out/share/applications
cp packaging/files/usr/share/applications/gpgui.desktop $out/share/applications/gpgui.desktop
'';
preFixup = ''
wrapProgram "$out/bin/gpclient" \
--prefix GIO_EXTRA_MODULES : ${glib-networking}/lib/gio/modules
'';
postFixup = ''
substituteInPlace $out/share/applications/gpgui.desktop \
--replace-fail /usr/bin/gpclient gpclient
'';
}

View File

@@ -0,0 +1,41 @@
{
lib,
stdenv,
fetchurl,
}:
stdenv.mkDerivation rec {
pname = "gperf";
version = "3.3";
src = fetchurl {
url = "mirror://gnu/${pname}/${pname}-${version}.tar.gz";
hash = "sha256-/Yfgq6fkOuBUg3r9bNTbA6PyaT3rNhkIXm7Z2NlgStg=";
};
enableParallelBuilding = true;
meta = {
description = "Perfect hash function generator";
longDescription = ''
GNU gperf is a perfect hash function generator. For a given
list of strings, it produces a hash function and hash table, in
form of C or C++ code, for looking up a value depending on the
input string. The hash function is perfect, which means that
the hash table has no collisions, and the hash table lookup
needs a single string comparison only.
GNU gperf is highly customizable. There are options for
generating C or C++ code, for emitting switch statements or
nested ifs instead of a hash table, and for tuning the algorithm
employed by gperf.
'';
license = lib.licenses.gpl3Plus;
homepage = "https://www.gnu.org/software/gperf/";
platforms = lib.platforms.unix;
mainProgram = "gperf";
};
}

View File

@@ -0,0 +1,61 @@
{
stdenv,
lib,
fetchFromGitHub,
fetchpatch,
autoreconfHook,
libunwind,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "gperftools";
version = "2.17.2";
src = fetchFromGitHub {
owner = "gperftools";
repo = "gperftools";
tag = "gperftools-${finalAttrs.version}";
hash = "sha256-WCEuiSjNIX/KhEBWndyVhrKlWs7H60mcHoPlWd7YWC4=";
};
patches = [
# Add the --disable-general-dynamic-tls configure option:
# https://bugzilla.redhat.com/show_bug.cgi?id=1483558
(fetchpatch {
url = "https://src.fedoraproject.org/rpms/gperftools/raw/88ce8ee43a12b1a8146781a1b4d9abbd8df8af0e/f/gperftools-2.17-disable-generic-dynamic-tls.patch";
hash = "sha256-IOLUf9mCEA+fVSJKU94akcnXTIm7+t+S9cjBHsEDwFA=";
})
];
nativeBuildInputs = [ autoreconfHook ];
# tcmalloc uses libunwind in a way that works correctly only on non-ARM dynamically linked linux
buildInputs = lib.optional (
stdenv.hostPlatform.isLinux && !(stdenv.hostPlatform.isAarch || stdenv.hostPlatform.isStatic)
) libunwind;
# Disable general dynamic TLS on AArch to support dlopen()'ing the library:
# https://bugzilla.redhat.com/show_bug.cgi?id=1483558
configureFlags = lib.optional stdenv.hostPlatform.isAarch "--disable-general-dynamic-tls";
prePatch = lib.optionalString stdenv.hostPlatform.isDarwin ''
substituteInPlace Makefile.am --replace stdc++ c++
'';
env.NIX_CFLAGS_COMPILE = lib.optionalString stdenv.hostPlatform.isDarwin "-D_XOPEN_SOURCE";
# some packages want to link to the static tcmalloc_minimal
# to drop the runtime dependency on gperftools
dontDisableStatic = true;
enableParallelBuilding = true;
meta = {
changelog = "https://github.com/gperftools/gperftools/releases/tag/${finalAttrs.src.tag}";
homepage = "https://github.com/gperftools/gperftools";
description = "Fast, multi-threaded malloc() and nifty performance analysis tools";
platforms = lib.platforms.all;
license = lib.licenses.bsd3;
maintainers = with lib.maintainers; [ vcunat ];
};
})

View File

@@ -0,0 +1,53 @@
{
lib,
fetchFromGitHub,
stdenv,
nix-update-script,
ncurses,
gnupg,
}:
stdenv.mkDerivation (finalAttrs: {
# mdp renamed to gpg-mdp because there is a mdp package already.
pname = "gpg-mdp";
version = "0.7.5";
meta = {
homepage = "https://tamentis.com/projects/mdp/";
changelog = "https://github.com/tamentis/mdp/releases/tag/v${finalAttrs.version}";
license = [ lib.licenses.isc ];
description = "Manage your passwords with GnuPG and a text editor";
};
src = fetchFromGitHub {
owner = "tamentis";
repo = "mdp";
tag = "v${finalAttrs.version}";
hash = "sha256-Y92y70XkUbB+lhWAzEkCB/cvfUPPKIfu0yrlCS2pKn0=";
};
buildInputs = [ ncurses ];
prePatch = ''
substituteInPlace ./configure \
--replace-fail "alias echo=/bin/echo" "" \
--replace-fail "main()" "int main()"
substituteInPlace ./src/config.c \
--replace-fail "/usr/bin/gpg" "${lib.getExe gnupg}" \
--replace-fail "/usr/bin/vi" "vi"
substituteInPlace ./mdp.1 \
--replace-fail "/usr/bin/gpg" "${lib.getExe gnupg}"
'';
# we add symlinks to the binary and man page with the name 'gpg-mdp', in case
# the completely unrelated program also named 'mdp' is already installed.
postFixup = ''
ln -s $out/bin/mdp $out/bin/gpg-mdp
ln -s $out/share/man/man1/mdp.1.gz $out/share/man/man1/gpg-mdp.1.gz
'';
passthru.updateScript = nix-update-script { };
})

View File

@@ -0,0 +1,63 @@
{
lib,
fetchFromGitHub,
python3,
ffmpeg,
}:
python3.pkgs.buildPythonApplication rec {
pname = "gphotos-sync";
version = "3.2.1";
format = "pyproject";
src = fetchFromGitHub {
owner = "gilesknap";
repo = "gphotos-sync";
rev = version;
hash = "sha256-iTqD/oUQqC7Fju8SEPkSZX7FC9tE4eRCewiJR8STmEw=";
};
patches = [
./skip-network-tests.patch
];
nativeBuildInputs = with python3.pkgs; [
setuptools
setuptools-scm
wheel
];
propagatedBuildInputs = with python3.pkgs; [
appdirs
attrs
exif
google-auth-oauthlib
psutil
pyyaml
psutil
requests-oauthlib
types-pyyaml
types-requests
];
buildInputs = [
ffmpeg
];
nativeCheckInputs = with python3.pkgs; [
mock
pytestCheckHook
];
preCheck = ''
export PY_IGNORE_IMPORTMISMATCH=1
export HOME=$(mktemp -d)
'';
meta = with lib; {
description = "Google Photos and Albums backup with Google Photos Library API";
mainProgram = "gphotos-sync";
homepage = "https://github.com/gilesknap/gphotos-sync";
license = licenses.asl20;
maintainers = with maintainers; [ dnr ];
};
}

View File

@@ -0,0 +1,21 @@
diff --git a/tests/test_setup.py b/tests/test_setup.py
index 085b110..ea4a7d2 100644
--- a/tests/test_setup.py
+++ b/tests/test_setup.py
@@ -45,7 +45,8 @@ class SetupDbAndCredentials:
return self
def __exit__(self, exc_type=None, exc_value=None, traceback=None):
- self.gp.google_photos_down.close()
+ if hasattr(self.gp, 'google_photos_down'):
+ self.gp.google_photos_down.close()
def test_setup(self, test_name, args=None, trash_db=False, trash_files=False):
self.root = Path("/tmp/gpTests/{}".format(test_name))
@@ -76,3 +77,6 @@ class SetupDbAndCredentials:
def test_done(self):
self.gp.data_store.store()
+
+import pytest, requests
+requests.Session.__init__ = lambda *args, **kwargs: pytest.skip("no network access")

View File

@@ -0,0 +1,10 @@
diff --git a/.version b/.version
new file mode 100644
index 0000000..abc36c9
--- /dev/null
+++ b/.version
@@ -0,0 +1,4 @@
+0.3
+0
+dd27232a4dd08cf6271ecc2a7e96da25f8071ed5
+2022-05-08

View File

@@ -0,0 +1,64 @@
{
stdenv,
fetchFromGitHub,
cmake,
boost,
ragel,
pkg-config,
wrapGAppsHook3,
lua,
fetchpatch,
lib,
}:
stdenv.mkDerivation rec {
pname = "gpick";
version = "0.3";
src = fetchFromGitHub {
owner = "thezbyg";
repo = "gpick";
rev = "v${version}";
hash = "sha256-Z17YpdAAr2wvDFkrAosyCN6Y/wsFVkiB9IDvXuP9lYo=";
};
patches = [
# gpick/cmake/Version.cmake
./dot-version.patch
(fetchpatch {
url = "https://patch-diff.githubusercontent.com/raw/thezbyg/gpick/pull/227.patch";
hash = "sha256-qYspUctvlPMEK/c2hMUxYc5EYdG//CBcN2PluTtXiFc=";
})
(fetchpatch {
url = "https://gitlab.archlinux.org/archlinux/packaging/packages/gpick/-/raw/0.3-2/buildfix.diff";
hash = "sha256-DnRU90VPyFhLYTk4GPJoiVYadJgtYgjMS4MLgmpYLP0=";
})
];
# https://github.com/thezbyg/gpick/pull/227
postPatch = ''
sed '1i#include <boost/version.hpp>' -i source/dynv/Types.cpp
'';
nativeBuildInputs = [
cmake
pkg-config
wrapGAppsHook3
];
buildInputs = [
boost
ragel
lua
];
meta = with lib; {
description = "Advanced color picker written in C++ using GTK+ toolkit";
homepage = "https://www.gpick.org/";
license = licenses.bsd3;
maintainers = [ maintainers.vanilla ];
platforms = platforms.linux;
mainProgram = "gpick";
};
}

View File

@@ -0,0 +1,56 @@
{
lib,
stdenv,
rustPlatform,
fetchFromGitHub,
installShellFiles,
iputils,
versionCheckHook,
nix-update-script,
}:
rustPlatform.buildRustPackage rec {
pname = "gping";
version = "1.20.1";
src = fetchFromGitHub {
owner = "orf";
repo = "gping";
tag = "gping-v${version}";
hash = "sha256-whHbGZnxOQ/ISyWMl6miuogppZahgXxO3XmhcP6ymIo=";
};
cargoHash = "sha256-F0QBL7tCCdjnavClqrw8yYxFrY8y4f8h/gcHSpEqBiM=";
nativeBuildInputs = [ installShellFiles ];
nativeCheckInputs = lib.optionals stdenv.hostPlatform.isLinux [ iputils ];
postInstall = ''
installManPage gping.1
'';
# Requires internet access
checkFlags = [
"--skip=test::tests::test_integration_any"
"--skip=test::tests::test_integration_ip6"
"--skip=test::tests::test_integration_ipv4"
];
doInstallCheck = true;
nativeInstallCheckInputs = [ versionCheckHook ];
versionCheckProgramArg = "--version";
passthru.updateScript = nix-update-script { };
meta = {
description = "Ping, but with a graph";
homepage = "https://github.com/orf/gping";
changelog = "https://github.com/orf/gping/releases/tag/gping-v${version}";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ cafkafk ];
mainProgram = "gping";
};
}

View File

@@ -0,0 +1,30 @@
{
lib,
stdenv,
linux,
}:
stdenv.mkDerivation {
pname = "gpio-utils";
version = linux.version;
inherit (linux) src makeFlags;
preConfigure = ''
cd tools/gpio
'';
separateDebugInfo = true;
installFlags = [
"install"
"DESTDIR=$(out)"
"bindir=/bin"
];
meta = with lib; {
description = "Linux tools to inspect the gpiochip interface";
maintainers = with maintainers; [ kwohlfahrt ];
platforms = platforms.linux;
license = licenses.gpl2Only;
};
}

View File

@@ -0,0 +1,34 @@
--- a/share/gpodder/ui/gtk/menus.ui
+++ b/share/gpodder/ui/gtk/menus.ui
@@ -13,10 +13,6 @@
<attribute name="action">app.gotoMygpo</attribute>
<attribute name="label" translatable="yes">Go to gpodder.net</attribute>
</item>
- <item>
- <attribute name="action">app.checkForUpdates</attribute>
- <attribute name="label" translatable="yes">Software updates</attribute>
- </item>
</section>
<section>
<item>
--- a/src/gpodder/config.py
+++ b/src/gpodder/config.py
@@ -94,7 +94,7 @@
# Software updates from gpodder.org
'software_update': {
- 'check_on_startup': True, # check for updates on start
+ 'check_on_startup': False, # check for updates on start
'last_check': 0, # unix timestamp of last update check
'interval': 5, # interval (in days) to check for updates
},
--- a/src/gpodder/gtkui/main.py
+++ b/src/gpodder/gtkui/main.py
@@ -3445,6 +3445,7 @@
If silent=False, a message will be shown even if no updates are
available (set silent=False when the check is manually triggered).
"""
+ return
try:
up_to_date, version, released, days = util.get_update_info()
except Exception as e:

View File

@@ -0,0 +1,102 @@
{
lib,
fetchFromGitHub,
gitUpdater,
adwaita-icon-theme,
gobject-introspection,
gtk3,
intltool,
python3Packages,
wrapGAppsHook3,
xdg-utils,
}:
python3Packages.buildPythonApplication rec {
pname = "gpodder";
version = "3.11.5";
format = "other";
src = fetchFromGitHub {
owner = "gpodder";
repo = "gpodder";
rev = version;
hash = "sha256-Hhk9JeHMg+FrekiNXP6Q8loCtst+FHT4EJTnh64VOhc=";
};
patches = [
./disable-autoupdate.patch
];
postPatch = ''
sed -i -re 's,^( *gpodder_dir *= *).*,\1"'"$out"'",' bin/gpodder
'';
build-system = with python3Packages; [
setuptools
build
installer
wheel
];
nativeBuildInputs = [
intltool
wrapGAppsHook3
gobject-introspection
python3Packages.distutils
];
buildInputs = [
gtk3
adwaita-icon-theme
];
nativeCheckInputs = with python3Packages; [
minimock
pytest
pytest-httpserver
pytest-cov-stub
];
doCheck = true;
propagatedBuildInputs = with python3Packages; [
feedparser
dbus-python
mygpoclient
requests
pygobject3
eyed3
podcastparser
html5lib
mutagen
yt-dlp # for use by gpodder's builtin "youtube-dl" extension
];
makeFlags = [
"PREFIX=$(out)"
"share/applications/gpodder-url-handler.desktop"
"share/applications/gpodder.desktop"
"share/dbus-1/services/org.gpodder.service"
];
installCheckPhase = ''
LC_ALL=C PYTHONPATH=src/:$PYTHONPATH pytest --ignore=tests --ignore=src/gpodder/utilwin32ctypes.py --doctest-modules src/gpodder/util.py src/gpodder/jsonconfig.py
LC_ALL=C PYTHONPATH=src/:$PYTHONPATH pytest tests --ignore=src/gpodder/utilwin32ctypes.py --ignore=src/mygpoclient --cov=gpodder
'';
makeWrapperArgs = [ "--suffix PATH : ${lib.makeBinPath [ xdg-utils ]}" ];
passthru.updateScript = gitUpdater { };
meta = with lib; {
description = "Podcatcher written in python";
longDescription = ''
gPodder downloads and manages free audio and video content (podcasts)
for you. Listen directly on your computer or on your mobile devices.
'';
homepage = "http://gpodder.org/";
license = licenses.gpl3;
platforms = platforms.linux ++ platforms.darwin;
maintainers = with maintainers; [ mic92 ];
};
}

View File

@@ -0,0 +1,32 @@
{
lib,
stdenv,
fetchFromGitHub,
autoreconfHook,
}:
stdenv.mkDerivation {
pname = "gpp";
version = "2.25";
src = fetchFromGitHub {
owner = "logological";
repo = "gpp";
rev = "96c5dd8905384ea188f380f51d24cbd7fd58f642";
sha256 = "0bvhnx3yfhbfiqqhhz6k2a596ls5rval7ykbp3jl5b6062xj861b";
};
nativeBuildInputs = [ autoreconfHook ];
installCheckPhase = "$out/bin/gpp --help";
doInstallCheck = true;
meta = with lib; {
description = "General-purpose preprocessor with customizable syntax";
mainProgram = "gpp";
homepage = "https://logological.org/gpp";
license = licenses.lgpl3;
maintainers = with maintainers; [ nmattia ];
platforms = with platforms; linux ++ darwin;
};
}

View File

@@ -0,0 +1,25 @@
{
lib,
fetchFromGitHub,
goocanvas3,
nix-update-script,
gpredict,
}:
(gpredict.override {
goocanvas2 = goocanvas3;
}).overrideAttrs
(finalAttrs: {
version = "2.2.1-unstable-2025-09-20";
src = fetchFromGitHub {
owner = "csete";
repo = "gpredict";
rev = "34af48e6bfd9647559abb1df4907a65d064fc870";
hash = "sha256-G4bS7w/USIzYOa+aYv3YQCbUQolV22Z/7+71GHHSUpk=";
};
patches = [ ];
passthru.updateScript = nix-update-script { extraArgs = [ "--version=branch" ]; };
})

View File

@@ -0,0 +1,84 @@
{
lib,
stdenv,
fetchFromGitHub,
fetchpatch,
pkg-config,
intltool,
autoreconfHook,
gtk3,
glib,
curl,
goocanvas2,
gpsd,
hamlib_4,
wrapGAppsHook3,
nix-update-script,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "gpredict";
version = "2.2.1";
src = fetchFromGitHub {
owner = "csete";
repo = "gpredict";
tag = "v${finalAttrs.version}";
hash = "sha256-+hgjImfT3nWMBYwde7+KC/hzd84pwQbpoJvaJSNG4E8=";
};
patches = [
# Pull upstream fix for -fno-common toolchains:
# https://github.com/csete/gpredict/issues/195
(fetchpatch {
name = "fno-common.patch";
url = "https://github.com/csete/gpredict/commit/c565bb3d48777bfe17114b5d01cd81150521f056.patch";
sha256 = "1jhy9hpqlachq32bkij60q3dxkgi1kkr80rm29jjxqpmambf406a";
})
# Updates URLs for TLE files
# https://github.com/csete/gpredict/pull/305
(fetchpatch {
name = "TLE-urls.patch";
url = "https://github.com/csete/gpredict/commit/8f60f856921e8ee143cd6e2d34a9183778cb0fbf.patch";
hash = "sha256-X/nKrqh5sjxDMLhA9LQek8AsJFqhvK/k8Ep3ug/0rMI=";
})
];
nativeBuildInputs = [
pkg-config
intltool
wrapGAppsHook3
autoreconfHook
];
buildInputs = [
curl
glib
gtk3
goocanvas2
gpsd
hamlib_4
];
passthru.updateScript = nix-update-script { };
meta = {
description = "Real time satellite tracking and orbit prediction";
mainProgram = "gpredict";
longDescription = ''
Gpredict is a real time satellite tracking and orbit prediction program
written using the GTK widgets. Gpredict is targetted mainly towards ham radio
operators but others interested in satellite tracking may find it useful as
well. Gpredict uses the SGP4/SDP4 algorithms, which are compatible with the
NORAD Keplerian elements.
'';
license = lib.licenses.gpl2Plus;
platforms = lib.platforms.linux;
homepage = "http://gpredict.oz9aec.net/";
maintainers = with lib.maintainers; [
markuskowa
cmcdragonkai
pandapip1
];
};
})

View File

@@ -0,0 +1,76 @@
{
lib,
stdenv,
fetchzip,
makeWrapper,
moreutils,
perlPackages,
gtk3,
pango,
harfbuzz,
gdk-pixbuf,
at-spi2-atk,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "gprename";
version = "20230429";
src = fetchzip {
url = "mirror://sourceforge/gprename/gprename-${finalAttrs.version}.zip";
hash = "sha256-Du9OO2qeB1jUEJFcVYmLbJAGi2p/IVe3sqladq09AyY=";
};
nativeBuildInputs = [
makeWrapper
moreutils
];
postPatch = ''
grep -Ev 'desktop-file-install|update-desktop-database' Makefile | sponge Makefile
substituteInPlace Makefile \
--replace '/usr/share' '$(DESTDIR)/share'
substituteInPlace bin/gprename \
--replace '/usr/share' $out/share \
--replace '/usr/local/share' $out/share
'';
makeFlags = [ "DESTDIR=$(out)" ];
buildInputs = [
perlPackages.perl
pango
];
postInstall = ''
wrapProgram $out/bin/gprename \
--set PERL5LIB ${
perlPackages.makeFullPerlPath (
with perlPackages;
[
Pango
Glib
Gtk3
LocaleGettext
libintl-perl
]
)
} \
--prefix GI_TYPELIB_PATH : ${
lib.makeSearchPath "/lib/girepository-1.0" [
gtk3
pango.out
harfbuzz
gdk-pixbuf
at-spi2-atk
]
}
'';
meta = {
description = "Complete batch renamer for files and directories";
homepage = "https://gprename.sourceforge.net/index.php";
license = lib.licenses.gpl3Plus;
mainProgram = "gprename";
maintainers = with lib.maintainers; [ quantenzitrone ];
};
})

View File

@@ -0,0 +1,58 @@
{
stdenvNoCC,
lib,
fetchzip,
jre,
makeDesktopItem,
copyDesktopItems,
makeWrapper,
extraJavaArgs ? "-Xms512M -Xmx2000M",
}:
stdenvNoCC.mkDerivation rec {
pname = "gprojector";
version = "3.1.0";
src = fetchzip {
url = "https://www.giss.nasa.gov/tools/gprojector/download/G.ProjectorJ-${version}.tgz";
sha256 = "sha256-cMmjyitetXxQzfSBh5ry5tIsLWOnBaaYOD1eQg1IX+w=";
};
desktopItems = [
(makeDesktopItem {
name = "gprojector";
exec = "gprojector";
desktopName = "G.Projector";
comment = meta.description;
categories = [ "Science" ];
startupWMClass = "gov-nasa-giss-projector-GProjector";
})
];
buildInputs = [ jre ];
nativeBuildInputs = [
makeWrapper
copyDesktopItems
];
dontConfigure = true;
dontBuild = true;
dontFixup = true;
installPhase = ''
runHook preInstall
mkdir -p $out/share
cp -r $src/jars $out/share/java
makeWrapper ${jre}/bin/java $out/bin/gprojector --add-flags "-jar $out/share/java/G.Projector.jar" --add-flags "${extraJavaArgs}"
runHook postInstall
'';
meta = {
description = "G.Projector transforms an input map image into any of about 200 global and regional map projections";
homepage = "https://www.giss.nasa.gov/tools/gprojector/";
sourceProvenance = with lib.sourceTypes; [ binaryBytecode ];
maintainers = with lib.maintainers; [ pentane ];
license = lib.licenses.unfree;
inherit (jre.meta) platforms;
};
}

View File

@@ -0,0 +1,72 @@
{
lib,
stdenv,
fetchurl,
}:
stdenv.mkDerivation rec {
pname = "gprolog";
version = "1.5.0";
src = fetchurl {
urls = [
"mirror://gnu/gprolog/gprolog-${version}.tar.gz"
"http://www.gprolog.org/gprolog-${version}.tar.gz"
];
sha256 = "sha256-ZwZCtDwPqifr1olh77F+vnB2iPkbaAlWbd1gYTlRLAE=";
};
hardeningDisable = lib.optional stdenv.hostPlatform.isi686 "pic";
patchPhase = ''
sed -i -e "s|/tmp/make.log|$TMPDIR/make.log|g" src/Pl2Wam/check_boot
'';
preConfigure = ''
cd src
configureFlagsArray=(
"--with-install-dir=$out"
"--without-links-dir"
"--with-examples-dir=$out/share/gprolog-${version}/examples"
"--with-doc-dir=$out/share/gprolog-${version}/doc"
)
'';
postInstall = ''
mv -v $out/[A-Z]* $out/gprolog.ico $out/share/gprolog-${version}/
'';
doCheck = true;
meta = {
homepage = "https://www.gnu.org/software/gprolog/";
description = "GNU Prolog, a free Prolog compiler with constraint solving over finite domains";
license = lib.licenses.lgpl3Plus;
longDescription = ''
GNU Prolog is a free Prolog compiler with constraint solving
over finite domains developed by Daniel Diaz.
GNU Prolog accepts Prolog+constraint programs and produces
native binaries (like gcc does from a C source). The obtained
executable is then stand-alone. The size of this executable can
be quite small since GNU Prolog can avoid to link the code of
most unused built-in predicates. The performances of GNU Prolog
are very encouraging (comparable to commercial systems).
Beside the native-code compilation, GNU Prolog offers a
classical interactive interpreter (top-level) with a debugger.
The Prolog part conforms to the ISO standard for Prolog with
many extensions very useful in practice (global variables, OS
interface, sockets,...).
GNU Prolog also includes an efficient constraint solver over
Finite Domains (FD). This opens contraint logic programming to
the user combining the power of constraint programming to the
declarativity of logic programming.
'';
platforms = lib.platforms.unix;
};
}

View File

@@ -0,0 +1,85 @@
{
lib,
stdenv,
fetchFromGitHub,
pkg-config,
exiv2,
libxml2,
gtk3,
libxslt,
docbook_xsl,
docbook_xml_dtd_42,
desktop-file-utils,
wrapGAppsHook3,
desktopToDarwinBundle,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "gpscorrelate";
version = "2.3";
src = fetchFromGitHub {
owner = "dfandrich";
repo = "gpscorrelate";
tag = finalAttrs.version;
hash = "sha256-7uNYwnMkW9jlt3kBrNqkhJsDoVkUFbCmqt0lQv8bRE0=";
};
nativeBuildInputs = [
desktop-file-utils
docbook_xml_dtd_42
docbook_xsl
libxslt
pkg-config
wrapGAppsHook3
]
++ lib.optional stdenv.hostPlatform.isDarwin desktopToDarwinBundle;
buildInputs = [
exiv2
gtk3
libxml2
];
makeFlags = [
"prefix=${placeholder "out"}"
"CC=${stdenv.cc.targetPrefix}cc"
"CXX=${stdenv.cc.targetPrefix}c++"
"CFLAGS=-DENABLE_NLS"
];
doCheck = true;
installTargets = [
"install"
"install-po"
"install-desktop-file"
];
meta = {
description = "GPS photo correlation tool, to add EXIF geotags";
longDescription = ''
Digital cameras are cool. So is GPS. And, EXIF tags are really
cool too.
What happens when you merge the three? You end up with a set of
photos taken with a digital camera that are "stamped" with the
location at which they were taken.
The EXIF standard defines a number of tags that are for use with GPS.
A variety of programs exist around the place to match GPS data
with digital camera photos, but most of them are Windows or
MacOS only. Which doesn't really suit me that much. Also, each
one takes the GPS data in a different format.
'';
license = lib.licenses.gpl2Plus;
homepage = "https://dfandrich.github.io/gpscorrelate/";
changelog = "https://github.com/dfandrich/gpscorrelate/releases/tag/${finalAttrs.version}";
platforms = lib.platforms.unix;
maintainers = with lib.maintainers; [ sikmir ];
mainProgram = "gpscorrelate";
};
})

View File

@@ -0,0 +1,159 @@
{
stdenv,
lib,
fetchurl,
# nativeBuildInputs
scons,
pkg-config,
# buildInputs
dbus,
libusb1,
ncurses,
kppsSupport ? stdenv.hostPlatform.isLinux,
pps-tools,
python3Packages,
# optional deps for GUI packages
guiSupport ? true,
dbus-glib,
libX11,
libXt,
libXpm,
libXaw,
libXext,
gobject-introspection,
pango,
gdk-pixbuf,
atk,
wrapGAppsHook3,
gpsdUser ? "gpsd",
gpsdGroup ? "dialout",
}:
stdenv.mkDerivation rec {
pname = "gpsd";
version = "3.26.1";
src = fetchurl {
url = "mirror://savannah/${pname}/${pname}-${version}.tar.gz";
sha256 = "sha256-3H5GWWjBVA5hvFfHWG1qV6AEchKgFO/a00j5B7wuCZA=";
};
# TODO: render & install HTML documentation using asciidoctor
nativeBuildInputs = [
pkg-config
python3Packages.wrapPython
scons
]
++ lib.optionals guiSupport [
gobject-introspection
wrapGAppsHook3
];
buildInputs = [
dbus
libusb1
ncurses
python3Packages.python
]
++ lib.optionals kppsSupport [
pps-tools
]
++ lib.optionals guiSupport [
atk
dbus-glib
gdk-pixbuf
libX11
libXaw
libXext
libXpm
libXt
pango
];
pythonPath = [
python3Packages.pyserial
]
++ lib.optionals guiSupport [
python3Packages.pygobject3
python3Packages.pycairo
];
patches = [
./sconstruct-env-fixes.patch
./sconstrict-rundir-fixes.patch
];
preBuild = ''
patchShebangs .
sed -e "s|systemd_dir = .*|systemd_dir = '$out/lib/systemd/system'|" -i SConscript
export TAR=noop
substituteInPlace SConscript --replace "env['CCVERSION']" "env['CC']"
'';
# - leapfetch=no disables going online at build time to fetch leap-seconds
# info. See <gpsd-src>/build.txt for more info.
sconsFlags = [
"leapfetch=no"
"gpsd_user=${gpsdUser}"
"gpsd_group=${gpsdGroup}"
"systemd=yes"
"xgps=${if guiSupport then "True" else "False"}"
"udevdir=${placeholder "out"}/lib/udev"
"python_libdir=${placeholder "out"}/${python3Packages.python.sitePackages}"
];
preCheck = ''
export LD_LIBRARY_PATH="$PWD"
'';
# TODO: the udev rules file and the hotplug script need fixes to work on NixOS
preInstall = ''
mkdir -p "$out/lib/udev/rules.d"
'';
doInstallCheck = true;
installTargets = [
"install"
"udev-install"
];
# remove binaries for x-less install because xgps sconsflag is partially broken
postFixup = ''
wrapPythonProgramsIn $out/bin "$out $pythonPath"
'';
meta = {
description = "GPS service daemon";
longDescription = ''
gpsd is a service daemon that monitors one or more GPSes or AIS
receivers attached to a host computer through serial or USB ports,
making all data on the location/course/velocity of the sensors
available to be queried on TCP port 2947 of the host computer. With
gpsd, multiple location-aware client applications (such as navigational
and wardriving software) can share access to receivers without
contention or loss of data. Also, gpsd responds to queries with a
format that is substantially easier to parse than the NMEA 0183 emitted
by most GPSes. The gpsd distribution includes a linkable C service
library, a C++ wrapper class, and a Python module that developers of
gpsd-aware applications can use to encapsulate all communication with
gpsd. Third-party client bindings for Java and Perl also exist.
Besides gpsd itself, the project provides auxiliary tools for
diagnostic monitoring and profiling of receivers and feeding
location-aware applications GPS/AIS logs for diagnostic purposes.
'';
homepage = "https://gpsd.gitlab.io/gpsd/index.html";
changelog = "https://gitlab.com/gpsd/gpsd/-/blob/release-${version}/NEWS";
license = lib.licenses.bsd2;
platforms = lib.platforms.unix;
maintainers = with lib.maintainers; [
bjornfor
rasendubi
];
};
}

View File

@@ -0,0 +1,21 @@
diff -Naur gpsd-3.25.orig/SConscript gpsd-3.25/SConscript
--- gpsd-3.25.orig/SConscript 2025-03-29 13:33:34
+++ gpsd-3.25/SConscript 2025-03-29 13:34:24
@@ -15,6 +15,7 @@
import os
import pickle
import re
+import platform
# replacement for functions from the commands module, which is deprecated.
import subprocess
import sys
@@ -399,7 +400,7 @@
def_group = "dialout"
# darwin and BSDs do not have /run, maybe others.
-if os.path.exists("/run"):
+if "BSD" in os.uname().sysname or platform.system() == "Darwin":
rundir = "/run"
else:
rundir = "/var/run"

View File

@@ -0,0 +1,16 @@
diff -Naur gpsd-3.22.orig/SConscript gpsd-3.22/SConscript
--- gpsd-3.22.orig/SConscript 2021-01-09 05:35:30.000000000 +0300
+++ gpsd-3.22/SConscript 2021-02-25 21:06:47.921044438 +0300
@@ -518,9 +518,11 @@
'CWRAPPERS_CONFIG_DIR', # pkgsrc
# Variables used in testing
'WRITE_PAD', # So we can test WRITE_PAD values on the fly.
+ 'LD_LIBRARY_PATH', # Allows running 'scons check' without 'chrpath'
+ 'XML_CATALOG_FILES', # Enables validating the manual with 'xmlto' using nix build system
)
-envs = {}
+envs = os.environ
for var in import_env:
if var in os.environ:
envs[var] = os.environ[var]

View File

@@ -0,0 +1,71 @@
{
fetchurl,
lib,
stdenv,
makeDesktopItem,
makeWrapper,
unzip,
jre,
copyDesktopItems,
}:
stdenv.mkDerivation rec {
pname = "gpsprune";
version = "25";
src = fetchurl {
url = "https://activityworkshop.net/software/gpsprune/gpsprune_${version}.jar";
hash = "sha256-8FGOigjHIvj+CZwq0Lht7UZjtmrE5l2Aqx92gZjau44=";
};
dontUnpack = true;
nativeBuildInputs = [
makeWrapper
copyDesktopItems
];
buildInputs = [ jre ];
desktopItems = [
(makeDesktopItem {
name = "gpsprune";
exec = "gpsprune %F";
icon = "gpsprune";
desktopName = "GpsPrune";
genericName = "GPS Data Editor";
comment = meta.description;
categories = [
"Education"
"Geoscience"
];
mimeTypes = [
"application/gpx+xml"
"application/vnd.google-earth.kml+xml"
"application/vnd.google-earth.kmz"
];
})
];
installPhase = ''
runHook preInstall
install -Dm644 ${src} $out/share/java/gpsprune.jar
makeWrapper ${jre}/bin/java $out/bin/gpsprune \
--add-flags "-jar $out/share/java/gpsprune.jar"
mkdir -p $out/share/pixmaps
${unzip}/bin/unzip -p $src tim/prune/gui/images/window_icon_64.png > $out/share/pixmaps/gpsprune.png
runHook postInstall
'';
meta = with lib; {
description = "Application for viewing, editing and converting GPS coordinate data";
homepage = "https://activityworkshop.net/software/gpsprune/";
changelog = "https://activityworkshop.net/software/gpsprune/whats_new.html";
sourceProvenance = with sourceTypes; [ binaryBytecode ];
license = licenses.gpl2Plus;
maintainers = with maintainers; [ rycee ];
platforms = platforms.all;
mainProgram = "gpsprune";
};
}

View File

@@ -0,0 +1,87 @@
{
lib,
flutter329,
fetchFromGitHub,
autoPatchelfHook,
copyDesktopItems,
makeDesktopItem,
runCommand,
yq,
gpt-box,
_experimental-update-script-combinators,
gitUpdater,
}:
flutter329.buildFlutterApplication rec {
pname = "gpt-box";
version = "1.0.385";
src = fetchFromGitHub {
owner = "lollipopkit";
repo = "flutter_gpt_box";
tag = "v${version}";
hash = "sha256-gl8kANxZLNXSuZxcK9WqfXxVWsCpZCbV+qmSt2ZnI6E=";
};
pubspecLock = lib.importJSON ./pubspec.lock.json;
gitHashes = {
computer = "sha256-qaD6jn78zDyZBktwJ4WTQa8oCvCWQJOBDaozBVsXNb8=";
fl_build = "sha256-CSKe2yEIisftM0q79HbDTghShirWg02zi9v+hD5R57g=";
fl_lib = "sha256-gAZqxPOBMXfy0mHEd7Jud0QJwyRbqC4nIRDIA81TZxM=";
flutter_highlight = "sha256-jSATD4Ww5FHEscGNiTN/FE1+iQHzg/XMbsC9f5XcNGw=";
openai_dart = "sha256-FP8J8ul8F68vrEdEZAmzNS921evtRfCIOlV2Aubifaw=";
webdav_client = "sha256-aTkMcrXksHLEG4UpeE1MBmCKpX5l11+y/p4tICrOTGk=";
};
nativeBuildInputs = [
copyDesktopItems
autoPatchelfHook
];
desktopItems = [
(makeDesktopItem {
name = "gpt-box";
exec = "gpt-box";
icon = "gpt-box";
genericName = "GPT Box";
desktopName = "GPT Box";
categories = [ "Utility" ];
keywords = [
"gpt"
"chat"
"openai"
"ai"
];
})
];
postInstall = ''
install -Dm0644 assets/app_icon.png $out/share/pixmaps/gpt-box.png
'';
passthru = {
pubspecSource =
runCommand "pubspec.lock.json"
{
nativeBuildInputs = [ yq ];
inherit (gpt-box) src;
}
''
cat $src/pubspec.lock | yq > $out
'';
updateScript = _experimental-update-script-combinators.sequence [
(gitUpdater { rev-prefix = "v"; })
(_experimental-update-script-combinators.copyAttrOutputToFile "gpt-box.pubspecSource" ./pubspec.lock.json)
];
};
meta = {
description = "Third-party client for OpenAI API";
homepage = "https://github.com/lollipopkit/flutter_gpt_box";
mainProgram = "GPTBox";
license = lib.licenses.gpl3Plus;
platforms = lib.platforms.linux;
maintainers = [ ];
};
}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,64 @@
{
lib,
python3Packages,
fetchFromGitHub,
versionCheckHook,
}:
python3Packages.buildPythonApplication rec {
pname = "gpt-cli";
version = "0.4.3";
pyproject = true;
src = fetchFromGitHub {
owner = "kharvd";
repo = "gpt-cli";
tag = "v${version}";
hash = "sha256-BNSMxf3rhKieXYnFqVdpiHmNCDjotJUflwa6mAgsVCc=";
};
build-system = with python3Packages; [
pip
setuptools
];
pythonRelaxDeps = true;
dependencies = with python3Packages; [
anthropic
attrs
black
cohere
google-genai
google-generativeai
openai
prompt-toolkit
pydantic
pytest
pyyaml
rich
typing-extensions
];
nativeCheckInputs =
with python3Packages;
[
pytestCheckHook
]
++ [
versionCheckHook
];
versionCheckProgram = "${placeholder "out"}/bin/gpt";
versionCheckProgramArg = "--version";
meta = {
description = "Command-line interface for ChatGPT, Claude and Bard";
homepage = "https://github.com/kharvd/gpt-cli";
changelog = "https://github.com/kharvd/gpt-cli/releases/tag/${src.tag}";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ _404wolf ];
mainProgram = "gpt";
};
}

View File

@@ -0,0 +1,10 @@
diff --git a/gpt2convert.py b/gpt2convert.py
index 34ca909..6e6cac5 100644
--- a/gpt2convert.py
+++ b/gpt2convert.py
@@ -1,3 +1,5 @@
+#!/usr/bin/env python3
+
import sys
import tensorflow as tf
import numpy as np

View File

@@ -0,0 +1,56 @@
{
lib,
stdenv,
fetchurl,
autoPatchelfHook,
python3,
}:
stdenv.mkDerivation {
pname = "gpt2tc";
version = "2021-04-24";
src = fetchurl {
url = "https://web.archive.org/web/20220603034455/https://bellard.org/libnc/gpt2tc-2021-04-24.tar.gz";
hash = "sha256-6oTxnbBwjHAXVrWMjOQVwdODbqLRoinx00pi29ff5w0=";
};
patches = [
# Add a shebang to the python script so that nix detects it as such and
# wraps it properly. Otherwise, it runs in shell and freezes the system.
./0001-add-python-shebang.patch
];
nativeBuildInputs = [ autoPatchelfHook ];
buildInputs = [
(python3.withPackages (
p: with p; [
numpy
tensorflow
]
))
];
installPhase = ''
runHook preInstall
install -D -m755 -t $out/lib libnc${stdenv.hostPlatform.extensions.sharedLibrary}
addAutoPatchelfSearchPath $out/lib
install -D -m755 -t $out/bin gpt2tc
install -T -m755 download_model.sh $out/bin/gpt2-download-model
install -T -m755 gpt2convert.py $out/bin/gpt2-convert
install -D -m644 -t $out/share/gpt2tc readme.txt gpt2vocab.txt Changelog
runHook postInstall
'';
meta = with lib; {
description = "Text completion and compression using GPT-2";
homepage = "https://bellard.org/libnc/gpt2tc.html";
sourceProvenance = with sourceTypes; [ binaryNativeCode ];
license = licenses.unfree;
platforms = [ "x86_64-linux" ];
maintainers = with maintainers; [ anna328p ];
};
}

View File

@@ -0,0 +1,53 @@
commit 425b33877c819dd88f3692aae37452c767371f6b
Author: Simon Gardling <titaniumtown@proton.me>
Date: Thu Sep 19 10:00:39 2024 -0400
use locally downloaded embeddings
diff --git a/gpt4all-chat/CMakeLists.txt b/gpt4all-chat/CMakeLists.txt
index 900307ae..802fc31a 100644
--- a//CMakeLists.txt
+++ b/CMakeLists.txt
@@ -120,6 +120,7 @@ elseif (APPLE)
endif()
# Embedding model
+#[[
set(LOCAL_EMBEDDING_MODEL "nomic-embed-text-v1.5.f16.gguf")
set(LOCAL_EMBEDDING_MODEL_MD5 "a5401e7f7e46ed9fcaed5b60a281d547")
set(LOCAL_EMBEDDING_MODEL_PATH "${CMAKE_BINARY_DIR}/resources/${LOCAL_EMBEDDING_MODEL}")
@@ -134,6 +135,7 @@ message(STATUS "Embedding model downloaded to ${LOCAL_EMBEDDING_MODEL_PATH}")
if (APPLE)
list(APPEND CHAT_EXE_RESOURCES "${LOCAL_EMBEDDING_MODEL_PATH}")
endif()
+]]
set(QAPPLICATION_CLASS QGuiApplication)
add_subdirectory(deps/SingleApplication)
@@ -348,11 +350,13 @@ if (LLMODEL_CUDA)
endif()
endif()
+#[[
if (NOT APPLE)
install(FILES "${LOCAL_EMBEDDING_MODEL_PATH}"
DESTINATION resources
COMPONENT ${COMPONENT_NAME_MAIN})
endif()
+]]
set(CPACK_GENERATOR "IFW")
set(CPACK_VERBATIM_VARIABLES YES)
diff --git a/gpt4all-chat/src/embllm.cpp b/gpt4all-chat/src/embllm.cpp
index 81b1e9e1..e3266cc7 100644
--- a/src/embllm.cpp
+++ b/src/embllm.cpp
@@ -84,7 +84,7 @@ bool EmbeddingLLMWorker::loadModel()
QString filePath = embPathFmt.arg(QCoreApplication::applicationDirPath(), LOCAL_EMBEDDING_MODEL);
if (!QFileInfo::exists(filePath)) {
- qWarning() << "embllm WARNING: Local embedding model not found";
+ qWarning() << "embllm WARNING: Local embedding model not found: " << filePath;
return false;
}

View File

@@ -0,0 +1,114 @@
{
lib,
config,
stdenv,
fetchFromGitHub,
fetchurl,
cmake,
qt6,
duckx,
fmt,
shaderc,
vulkan-headers,
wayland,
cudaSupport ? config.cudaSupport,
cudaPackages ? { },
autoAddDriverRunpath,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "gpt4all";
version = "3.10.0";
src = fetchFromGitHub {
fetchSubmodules = true;
hash = "sha256-OAD/uSCL/3OXmYVG+iGJK4zD2s0dDaPf59DF23AbSFU=";
owner = "nomic-ai";
repo = "gpt4all";
tag = "v${finalAttrs.version}";
};
embed_model = fetchurl {
url = "https://gpt4all.io/models/gguf/nomic-embed-text-v1.5.f16.gguf";
hash = "sha256-969vZoAvTfhu2hD+m7z8dcOVYr7Ujvas5xmiUc8cL9s=";
};
patches = [
./embedding-local.patch
];
postPatch = ''
substituteInPlace CMakeLists.txt \
--replace-fail "duckx::duckx QXlsx" "duckx QXlsx"
'';
sourceRoot = "${finalAttrs.src.name}/gpt4all-chat";
nativeBuildInputs = [
cmake
qt6.wrapQtAppsHook
]
++ lib.optionals cudaSupport [
cudaPackages.cuda_nvcc
autoAddDriverRunpath
];
buildInputs = [
duckx
fmt
qt6.qt5compat
qt6.qtbase
qt6.qtdeclarative
qt6.qthttpserver
qt6.qtsvg
qt6.qttools
qt6.qtwayland
qt6.qtwebengine
shaderc
vulkan-headers
wayland
]
++ lib.optionals cudaSupport (
with cudaPackages;
[
cuda_cccl
cuda_cudart
libcublas
]
);
cmakeFlags = [
(lib.cmakeBool "KOMPUTE_OPT_USE_BUILT_IN_VULKAN_HEADER" false)
(lib.cmakeBool "KOMPUTE_OPT_DISABLE_VULKAN_VERSION_CHECK" true)
(lib.cmakeBool "KOMPUTE_OPT_USE_BUILT_IN_FMT" false)
# https://github.com/NixOS/nixpkgs/issues/298997
# https://github.com/nomic-ai/gpt4all/issues/3468
(lib.cmakeBool "LLMODEL_KOMPUTE" false)
]
++ lib.optionals (!cudaSupport) [
(lib.cmakeBool "LLMODEL_CUDA" false)
];
postInstall = ''
rm -rf $out/include
rm -rf $out/lib/*.a
mv $out/bin/chat $out/bin/${finalAttrs.meta.mainProgram}
install -D ${finalAttrs.embed_model} $out/resources/nomic-embed-text-v1.5.f16.gguf
install -m 444 -D $src/gpt4all-chat/flatpak-manifest/io.gpt4all.gpt4all.desktop $out/share/applications/io.gpt4all.gpt4all.desktop
install -m 444 -D $src/gpt4all-chat/icons/nomic_logo.svg $out/share/icons/hicolor/scalable/apps/io.gpt4all.gpt4all.svg
substituteInPlace $out/share/applications/io.gpt4all.gpt4all.desktop \
--replace-fail 'Exec=chat' 'Exec=${finalAttrs.meta.mainProgram}'
'';
meta = {
changelog = "https://github.com/nomic-ai/gpt4all/releases/tag/v${finalAttrs.version}";
description = "Free-to-use, locally running, privacy-aware chatbot. No GPU or internet required";
homepage = "https://github.com/nomic-ai/gpt4all";
license = lib.licenses.mit;
mainProgram = "gpt4all";
maintainers = with lib.maintainers; [
titaniumtown
];
};
})

View File

@@ -0,0 +1,46 @@
{
stdenv,
lib,
fetchFromGitHub,
rustPlatform,
pkg-config,
nix-update-script,
openssl,
}:
let
pname = "gptcommit";
version = "0.5.17";
in
rustPlatform.buildRustPackage {
inherit pname version;
src = fetchFromGitHub {
owner = "zurawiki";
repo = "gptcommit";
rev = "v${version}";
hash = "sha256-MB78QsJA90Au0bCUXfkcjnvfPagTPZwFhFVqxix+Clw=";
};
cargoHash = "sha256-PFpc9z45k0nlWEyjDDKG/U8V7EwR5b8rHPV4CmkRers=";
nativeBuildInputs = [ pkg-config ];
# 0.5.6 release has failing tests
doCheck = false;
buildInputs = lib.optionals stdenv.hostPlatform.isLinux [ openssl ];
passthru = {
updateScript = nix-update-script { };
};
meta = with lib; {
description = "Git prepare-commit-msg hook for authoring commit messages with GPT-3";
mainProgram = "gptcommit";
homepage = "https://github.com/zurawiki/gptcommit";
license = with licenses; [ asl20 ];
maintainers = with maintainers; [ happysalada ];
platforms = with platforms; all;
};
}

View File

@@ -0,0 +1,69 @@
{
fetchurl,
lib,
stdenv,
libuuid,
popt,
icu,
ncurses,
nixosTests,
}:
stdenv.mkDerivation rec {
pname = "gptfdisk";
version = "1.0.10";
src = fetchurl {
# https://www.rodsbooks.com/gdisk/${name}.tar.gz also works, but the home
# page clearly implies a preference for using SourceForge's bandwidth:
url = "mirror://sourceforge/gptfdisk/${pname}-${version}.tar.gz";
sha256 = "sha256-Kr7WG8bSuexJiXPARAuLgEt6ctcUQGm1qSCbKtaTooI=";
};
postPatch = ''
patchShebangs gdisk_test.sh
''
+ lib.optionalString stdenv.hostPlatform.isDarwin ''
substituteInPlace Makefile.mac --replace \
"-mmacosx-version-min=10.4" "-mmacosx-version-min=10.6"
substituteInPlace Makefile.mac --replace \
" -arch i386" ""
substituteInPlace Makefile.mac --replace \
"-arch x86_64" ""
substituteInPlace Makefile.mac --replace \
"-arch arm64" ""
substituteInPlace Makefile.mac --replace \
" -I/opt/local/include -I /usr/local/include -I/opt/local/include" ""
substituteInPlace Makefile.mac --replace \
"/usr/local/Cellar/ncurses/6.2/lib/libncurses.dylib" "${ncurses.out}/lib/libncurses.dylib"
'';
buildPhase = lib.optionalString stdenv.hostPlatform.isDarwin "make -f Makefile.mac";
buildInputs = [
libuuid
popt
icu
ncurses
];
installPhase = ''
mkdir -p $out/sbin
mkdir -p $out/share/man/man8
for prog in gdisk sgdisk fixparts cgdisk
do
install -v -m755 $prog $out/sbin
install -v -m644 $prog.8 $out/share/man/man8
done
'';
passthru.tests = lib.optionalAttrs stdenv.hostPlatform.isx86 {
installer-simpleLabels = nixosTests.installer.simpleLabels;
};
meta = with lib; {
description = "Set of text-mode partitioning tools for Globally Unique Identifier (GUID) Partition Table (GPT) disks";
license = licenses.gpl2Plus;
homepage = "https://www.rodsbooks.com/gdisk/";
platforms = platforms.all;
};
}

View File

@@ -0,0 +1,42 @@
{
lib,
stdenv,
fetchFromGitHub,
rustPlatform,
libiconv,
testers,
gptman,
}:
rustPlatform.buildRustPackage rec {
pname = "gptman";
version = "1.1.0";
src = fetchFromGitHub {
owner = "rust-disk-partition-management";
repo = "gptman";
rev = "v${version}";
hash = "sha256-ebV61EilGggix6JSN/MW4Ka0itkSpvikLDSO005TTYY=";
};
cargoHash = "sha256-v27tKdBPrtRwpNZRjyv8N7BpxOz6ZgFHaa5pe51YrTI=";
buildInputs = lib.optional stdenv.hostPlatform.isDarwin libiconv;
buildFeatures = [ "cli" ];
passthru.tests.version = testers.testVersion {
package = gptman;
};
meta = with lib; {
description = "GPT manager that allows you to copy partitions from one disk to another and more";
homepage = "https://github.com/rust-disk-partition-management/gptman";
license = with licenses; [
asl20 # or
mit
];
maintainers = with maintainers; [ akshgpt7 ];
mainProgram = "gptman";
};
}

View File

@@ -0,0 +1,36 @@
{
lib,
buildGoModule,
fetchFromGitHub,
}:
buildGoModule rec {
pname = "gptscript";
version = "0.9.5";
src = fetchFromGitHub {
owner = "gptscript-ai";
repo = "gptscript";
tag = "v${version}";
hash = "sha256-9wyDcvY5JCjtvx6XtvHwOsZLCiN1fRn0wBGaIaw2iRQ=";
};
vendorHash = "sha256-ajglXWGJhSJtcrbSBmxmriXFTT+Vb4xYq0Ec9SYRlQk=";
ldflags = [
"-s"
"-w"
"-X github.com/gptscript-ai/gptscript/pkg/version.Tag=v${version}"
];
# Requires network access
doCheck = false;
meta = {
homepage = "https://github.com/gptscript-ai/gptscript";
changelog = "https://github.com/gptscript-ai/gptscript/releases/tag/v${version}";
description = "Build AI assistants that interact with your systems";
license = with lib.licenses; [ asl20 ];
maintainers = with lib.maintainers; [ jamiemagee ];
mainProgram = "gptscript";
};
}

View File

@@ -0,0 +1,81 @@
{
autoAddDriverRunpath,
config,
cudaPackages,
fetchFromGitHub,
lib,
}:
let
inherit (lib.attrsets) getBin;
inherit (lib.lists) last map optionals;
inherit (lib.trivial) boolToString;
inherit (config) cudaSupport;
inherit (cudaPackages)
backendStdenv
cuda_cccl
cuda_cudart
cuda_nvcc
libcublas
;
inherit (cudaPackages.flags) cudaCapabilities dropDots isJetsonBuild;
in
backendStdenv.mkDerivation {
pname = "gpu-burn";
version = "0-unstable-2024-04-09";
strictDeps = true;
src = fetchFromGitHub {
owner = "wilicc";
repo = "gpu-burn";
rev = "9aefd7c0cc603bbc8c3c102f5338c6af26f8127c";
hash = "sha256-Nz0yaoHGfodaYl2HJ7p+1nasqRmxwPJ9aL9oxitXDpM=";
};
postPatch = ''
substituteInPlace gpu_burn-drv.cpp \
--replace-fail \
'#define COMPARE_KERNEL "compare.ptx"' \
"#define COMPARE_KERNEL \"$out/share/compare.ptx\""
'';
nativeBuildInputs = [
autoAddDriverRunpath
cuda_nvcc
];
buildInputs = [
cuda_cccl # <nv/target>
cuda_cudart # driver_types.h
cuda_nvcc # crt/host_defines.h
libcublas # cublas_v2.h
];
makeFlags = [
"CUDAPATH=${getBin cuda_nvcc}"
"COMPUTE=${last (map dropDots cudaCapabilities)}"
"IS_JETSON=${boolToString isJetsonBuild}"
];
installPhase = ''
runHook preInstall
mkdir -p $out/{bin,share}
install -Dm755 gpu_burn $out/bin/
install -Dm644 compare.ptx $out/share/
runHook postInstall
'';
# NOTE: Certain packages may be missing from cudaPackages on non-Linux platforms. To avoid evaluation failure,
# we only include the platforms where we know the package is available -- thus the conditionals setting the
# platforms and badPlatforms fields.
meta = {
badPlatforms = optionals (!cudaSupport) lib.platforms.all;
broken = !cudaSupport;
description = "Multi-GPU CUDA stress test";
homepage = "http://wili.cc/blog/gpu-burn.html";
license = lib.licenses.bsd2;
mainProgram = "gpu_burn";
maintainers = with lib.maintainers; [ connorbaker ];
platforms = optionals cudaSupport lib.platforms.linux;
};
}

View File

@@ -0,0 +1,85 @@
{
stdenv,
lib,
fetchgit,
pkg-config,
addDriverRunpath,
desktop-file-utils,
makeWrapper,
meson,
ninja,
gtk3,
libayatana-appindicator,
libpulseaudio,
libdrm,
gpu-screen-recorder,
libglvnd,
libX11,
libXrandr,
wayland,
wrapGAppsHook3,
wrapperDir ? "/run/wrappers/bin",
gitUpdater,
}:
stdenv.mkDerivation rec {
pname = "gpu-screen-recorder-gtk";
version = "5.7.8";
src = fetchgit {
url = "https://repo.dec05eba.com/${pname}";
tag = version;
hash = "sha256-Vzi7IfiMsBFJZaZwC1CWZkVFCfDAfU0lmO7orRLjqgU=";
};
nativeBuildInputs = [
desktop-file-utils
pkg-config
makeWrapper
meson
ninja
wrapGAppsHook3
];
buildInputs = [
gtk3
libayatana-appindicator
libpulseaudio
libdrm
libX11
libXrandr
wayland
];
preFixup =
let
gpu-screen-recorder-wrapped = gpu-screen-recorder.override {
inherit wrapperDir;
};
in
''
gappsWrapperArgs+=(--prefix PATH : ${wrapperDir})
gappsWrapperArgs+=(--suffix PATH : ${lib.makeBinPath [ gpu-screen-recorder-wrapped ]})
gappsWrapperArgs+=(--prefix LD_LIBRARY_PATH : ${
lib.makeLibraryPath [
libglvnd
addDriverRunpath.driverLink
]
})
'';
passthru.updateScript = gitUpdater { };
meta = {
changelog = "https://git.dec05eba.com/gpu-screen-recorder-gtk/tree/com.dec05eba.gpu_screen_recorder.appdata.xml#n82";
description = "GTK frontend for gpu-screen-recorder";
homepage = "https://git.dec05eba.com/gpu-screen-recorder-gtk/about/";
license = lib.licenses.gpl3Only;
mainProgram = "gpu-screen-recorder-gtk";
maintainers = with lib.maintainers; [
babbaj
js6pak
];
platforms = [ "x86_64-linux" ];
};
}

View File

@@ -0,0 +1,100 @@
{
stdenv,
lib,
fetchgit,
makeWrapper,
meson,
ninja,
addDriverRunpath,
pkg-config,
libXcomposite,
libpulseaudio,
dbus,
ffmpeg,
wayland,
wayland-scanner,
vulkan-headers,
pipewire,
libdrm,
libva,
libglvnd,
libXdamage,
libXi,
libXrandr,
libXfixes,
wrapperDir ? "/run/wrappers/bin",
gitUpdater,
}:
stdenv.mkDerivation rec {
pname = "gpu-screen-recorder";
version = "5.7.4";
src = fetchgit {
url = "https://repo.dec05eba.com/${pname}";
tag = version;
hash = "sha256-X1yvVmjKYUnwdsRC0kY+R1kEuUq6SB1bKhpHWnBvIho=";
};
nativeBuildInputs = [
pkg-config
makeWrapper
meson
ninja
];
buildInputs = [
libXcomposite
libpulseaudio
dbus
ffmpeg
pipewire
wayland
wayland-scanner
vulkan-headers
libdrm
libva
libXdamage
libXi
libXrandr
libXfixes
];
mesonFlags = [
# Install the upstream systemd unit
(lib.mesonBool "systemd" true)
# Enable Wayland support
(lib.mesonBool "portal" true)
# Handle by the module
(lib.mesonBool "capabilities" false)
(lib.mesonBool "nvidia_suspend_fix" false)
];
postInstall = ''
mkdir $out/bin/.wrapped
mv $out/bin/gpu-screen-recorder $out/bin/.wrapped/
makeWrapper "$out/bin/.wrapped/gpu-screen-recorder" "$out/bin/gpu-screen-recorder" \
--prefix LD_LIBRARY_PATH : "${
lib.makeLibraryPath [
libglvnd
addDriverRunpath.driverLink
]
}" \
--prefix PATH : "${wrapperDir}" \
--suffix PATH : "$out/bin"
'';
passthru.updateScript = gitUpdater { };
meta = {
description = "Screen recorder that has minimal impact on system performance by recording a window using the GPU only";
homepage = "https://git.dec05eba.com/gpu-screen-recorder/about/";
license = lib.licenses.gpl3Only;
mainProgram = "gpu-screen-recorder";
maintainers = with lib.maintainers; [
babbaj
js6pak
];
platforms = [ "x86_64-linux" ];
};
}

View File

@@ -0,0 +1,28 @@
{
stdenv,
lib,
fetchFromGitHub,
}:
stdenv.mkDerivation {
pname = "gpu-switch-unstable";
version = "2017-04-28";
src = fetchFromGitHub {
owner = "0xbb";
repo = "gpu-switch";
rev = "a365f56d435c8ef84c4dd2ab935ede4992359e31";
sha256 = "1jnh43nijkqd83h7piq7225ixziggyzaalabgissyxdyz6szcn0r";
};
installPhase = ''
mkdir -p $out/bin
cp gpu-switch $out/bin/
'';
meta = with lib; {
description = "Application that allows to switch between the graphic cards of dual-GPU MacBook Pro models";
mainProgram = "gpu-switch";
homepage = "https://github.com/0xbb/gpu-switch";
license = licenses.mit;
platforms = platforms.linux;
maintainers = [ maintainers.msiedlarek ];
};
}

View File

@@ -0,0 +1,96 @@
{
lib,
python3Packages,
fetchFromGitHub,
# nativeBuildInputs
gobject-introspection,
meson,
ninja,
pkg-config,
wrapGAppsHook4,
# buildInputs
gdk-pixbuf,
gtk4,
libadwaita,
vulkan-tools,
# wrapper
python3,
clinfo,
lsb-release,
mesa-demos,
vdpauinfo,
# passthru
nix-update-script,
}:
python3Packages.buildPythonApplication rec {
pname = "gpu-viewer";
version = "3.15";
pyproject = false;
src = fetchFromGitHub {
owner = "arunsivaramanneo";
repo = "gpu-viewer";
tag = "v${version}";
hash = "sha256-fZsieETJqLbqq3UWtxRtOk5DpxHaTZfYeOLsBTlUtuo=";
};
nativeBuildInputs = [
gobject-introspection
meson
ninja
pkg-config
wrapGAppsHook4
];
buildInputs = [
gdk-pixbuf
gtk4
libadwaita
vulkan-tools
];
pythonPath = with python3Packages; [
click
pygobject3
];
# Prevent double wrapping
dontWrapGApps = true;
postFixup = ''
makeWrapper ${python3.interpreter} $out/bin/gpu-viewer \
--prefix PATH : "${
lib.makeBinPath [
clinfo
lsb-release
mesa-demos
vdpauinfo
vulkan-tools
]
}" \
--add-flags "$out/share/gpu-viewer/Files/GPUViewer.py" \
--prefix PYTHONPATH : "$PYTHONPATH" \
--chdir "$out/share/gpu-viewer/Files" \
''${makeWrapperArgs[@]} \
''${gappsWrapperArgs[@]}
'';
passthru = {
updateScript = nix-update-script { };
};
meta = {
homepage = "https://github.com/arunsivaramanneo/GPU-Viewer";
description = "Front-end to glxinfo, vulkaninfo, clinfo and es2_info";
changelog = "https://github.com/arunsivaramanneo/GPU-Viewer/releases/tag/v${version}";
maintainers = with lib.maintainers; [ GaetanLepage ];
license = lib.licenses.gpl3;
platforms = lib.platforms.linux;
mainProgram = "gpu-viewer";
};
}

View File

@@ -0,0 +1,73 @@
{
stdenv,
lib,
fetchFromGitHub,
cmake,
config,
pciutils,
cudaSupport ? config.cudaSupport,
cudaPackages,
installShellFiles,
autoAddDriverRunpath,
gitUpdater,
versionCheckHook,
zlib,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "gpufetch";
version = "0.25";
src = fetchFromGitHub {
owner = "Dr-Noob";
repo = "gpufetch";
tag = "v${finalAttrs.version}";
hash = "sha256-1j23h3TDxa2xu03o37fXfRL3XFYyhMWFGupAlkrYpBY=";
};
nativeBuildInputs = [
cmake
installShellFiles
]
++ lib.optionals cudaSupport [
cudaPackages.cuda_nvcc
autoAddDriverRunpath
];
buildInputs = [
zlib
pciutils
]
++ lib.optionals cudaSupport [
cudaPackages.cuda_cudart
cudaPackages.cuda_nvml_dev
];
installPhase = ''
runHook preInstall
installManPage ${finalAttrs.src}/gpufetch.1
install -Dm755 ./gpufetch $out/bin/gpufetch
runHook postInstall
'';
nativeInstallCheckInputs = [
versionCheckHook
];
versionCheckProgramArg = "--version";
doInstallCheck = true;
passthru = {
updateScript = gitUpdater { rev-prefix = "v"; };
};
meta = {
description = "Simple yet fancy GPU architecture fetching tool";
homepage = "https://github.com/Dr-Noob/gpufetch";
license = lib.licenses.gpl2Only;
mainProgram = "gpufetch";
maintainers = with lib.maintainers; [ bot-wxt1221 ];
platforms = [ "x86_64-linux" ];
};
})

View File

@@ -0,0 +1,15 @@
diff --git a/CMakeLists.txt b/CMakeLists.txt
index a05c447..20a5c98 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -276,8 +276,8 @@ endif()
# link glslang
find_package(glslang CONFIG REQUIRED)
-target_link_libraries(${PROJECT_NAME} PRIVATE glslang::OSDependent glslang::glslang
- glslang::MachineIndependent glslang::GenericCodeGen glslang::glslang-default-resource-limits
+target_link_libraries(${PROJECT_NAME} PRIVATE glslang::glslang
+ glslang::glslang-default-resource-limits
glslang::SPVRemapper glslang::SPIRV)
# link SPIRV-Cross

View File

@@ -0,0 +1,63 @@
{
lib,
stdenv,
fetchFromGitHub,
cmake,
glslang,
imath,
ktx-tools,
openimageio,
qt6Packages,
spdlog,
spirv-cross,
vulkan-memory-allocator,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "gpupad";
version = "2.7.0";
src = fetchFromGitHub {
owner = "houmain";
repo = "gpupad";
tag = finalAttrs.version;
hash = "sha256-Y0LNz8qHNfYhkh+ukJFi56zdaNIy5Gfvena+gSo0oOo=";
fetchSubmodules = true;
};
patches = [
# the current version of glslang no longer separates its libs into sublibs
./glslang-use-combined-lib.patch
];
strictDeps = true;
nativeBuildInputs = [
cmake
qt6Packages.wrapQtAppsHook
];
buildInputs = [
glslang
imath # needed for openimageio
ktx-tools
openimageio
qt6Packages.qtbase
qt6Packages.qtdeclarative
qt6Packages.qtmultimedia
spdlog
spirv-cross
vulkan-memory-allocator
];
meta = {
description = "Flexible GLSL and HLSL shader editor and IDE";
homepage = "https://github.com/houmain/gpupad";
changelog = "https://github.com/houmain/gpupad/blob/${finalAttrs.src.rev}/CHANGELOG.md";
license = lib.licenses.gpl3Only;
maintainers = with lib.maintainers; [ tomasajt ];
mainProgram = "gpupad";
platforms = lib.platforms.linux;
};
})

View File

@@ -0,0 +1,72 @@
{
lib,
fetchFromGitHub,
rustPlatform,
pkg-config,
fontconfig,
libGL,
libX11,
libXcursor,
libXi,
libXrandr,
cmake,
libxkbcommon,
wayland,
makeWrapper,
}:
rustPlatform.buildRustPackage rec {
pname = "gpustat";
version = "0.1.5";
src = fetchFromGitHub {
owner = "arduano";
repo = "gpustat";
rev = "v${version}";
hash = "sha256-M9P/qfw/tp9ogkNOE3b2fD2rGFnii1/VwmqJHqXb7Mg=";
};
cargoHash = "sha256-8uD4zc33CeImvMW0mOTqws4S2xXQ3Ff9nPxocof0Xm4=";
nativeBuildInputs = [
cmake
makeWrapper
pkg-config
];
buildInputs = [
fontconfig
libGL
libX11
libXcursor
libXi
libXrandr
libxkbcommon
wayland
];
postInstall = ''
mkdir -p $out/share/applications $out/share/pixmaps
cp assets/gpustat.desktop $out/share/applications
cp assets/gpustat_icon_* $out/share/pixmaps
'';
# Wrap the program in a script that sets the LD_LIBRARY_PATH environment variable
# so that it can find the shared libraries it depends on. This is currently a
# requirement for running Rust programs that depend on `egui` within a Nix environment.
# https://github.com/emilk/egui/issues/2486
postFixup = ''
wrapProgram $out/bin/gpustat \
--prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath buildInputs}:/run/opengl-driver/lib"
'';
meta = with lib; {
description = "Simple utility for viewing GPU utilization";
homepage = "https://github.com/arduano/gpustat";
license = licenses.asl20;
maintainers = with maintainers; [ arduano ];
mainProgram = "gpustat";
platforms = platforms.linux;
};
}

View File

@@ -0,0 +1,23 @@
{
lib,
stdenv,
fetchurl,
}:
stdenv.mkDerivation rec {
pname = "gputils";
version = "1.5.2";
src = fetchurl {
url = "mirror://sourceforge/gputils/${pname}-${version}.tar.bz2";
sha256 = "sha256-j7iCCzHXwffHdhQcyzxPBvQK+RXaY3QSjXUtHu463fI=";
};
meta = with lib; {
homepage = "https://gputils.sourceforge.io";
description = "Collection of tools for the Microchip (TM) PIC microcontrollers. It includes gpasm, gplink, and gplib";
license = licenses.gpl2;
maintainers = with maintainers; [ yorickvp ];
platforms = platforms.linux;
};
}

View File

@@ -0,0 +1,57 @@
{
fetchFromGitHub,
freetype,
gtk3,
lib,
meson,
ninja,
pkg-config,
SDL2,
stdenv,
wrapGAppsHook3,
}:
stdenv.mkDerivation rec {
pname = "gpuvis";
version = "0.1";
src = fetchFromGitHub {
owner = "mikesart";
repo = "gpuvis";
rev = "v${version}";
hash = "sha256-a9eAYDsiwyzZc4FAPo0wANysisIT4qCHLh2PrYswJtw=";
};
# patch dlopen path for gtk3
postPatch = ''
substituteInPlace src/hook_gtk3.h \
--replace "libgtk-3.so" "${lib.getLib gtk3}/lib/libgtk-3.so"
'';
nativeBuildInputs = [
pkg-config
meson
ninja
wrapGAppsHook3
];
buildInputs = [
SDL2
gtk3
freetype
];
CXXFLAGS = [
# GCC 13: error: 'uint32_t' has not been declared
"-include cstdint"
];
meta = with lib; {
description = "GPU Trace Visualizer";
mainProgram = "gpuvis";
homepage = "https://github.com/mikesart/gpuvis";
license = licenses.mit;
maintainers = with maintainers; [ emantor ];
platforms = platforms.linux;
};
}

1058
pkgs/by-name/gp/gpx-animator/deps.json generated Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,74 @@
{
lib,
stdenvNoCC,
fetchFromGitHub,
gradle_8,
jdk17,
makeBinaryWrapper,
nix-update-script,
}:
stdenvNoCC.mkDerivation (finalAttrs: {
pname = "gpx-animator";
version = "1.8.2";
gradle = gradle_8.override { java = jdk17; };
nativeBuildInputs = [
finalAttrs.gradle
makeBinaryWrapper
];
src = fetchFromGitHub {
owner = "gpx-animator";
repo = "gpx-animator";
tag = "v${finalAttrs.version}";
hash = "sha256-U6nrS7utnUCohCzkOdmehtSdu+5d0KJF81mXWc/666A=";
};
mitmCache = finalAttrs.gradle.fetchDeps {
inherit (finalAttrs) pname;
data = ./deps.json;
};
# We only need `gradleBuildTask = "shadowJar"` instead of the slower default `gradleBuildTask
# = "assemble"` (which also generates tarballs, etc) to generate the final .jar. However, the
# shadowJar task doesn't have dependencies set up correctly so it won't create the
# `version.txt` file and the resulting application will say "UNKNOWN_VERSION" in the titlebar
# and everywhere else. As a side effect, we don't need doCheck = true either because the
# assemble task also runs tests.
__darwinAllowLocalNetworking = true;
# Most other java packages use `jre_minimal` with extra modules rather than the full `jdk` as
# the runtime dependency. But gpx-animator uses javax modules that cannot just be added
# as modules in jre_minimal.
installPhase = ''
runHook preInstall
install -Dm644 build/libs/gpx-animator-${finalAttrs.version}-all.jar -t $out/share/gpx-animator/
makeWrapper ${jdk17}/bin/java $out/bin/gpx-animator \
--add-flags "-jar $out/share/gpx-animator/gpx-animator-${finalAttrs.version}-all.jar"
runHook postInstall
'';
passthru.updateScript = nix-update-script { };
meta = {
description = "GPX track to video animator";
longDescription = ''
GPX Animator generates video from GPX files, it supports:
- Multiple GPX tracks with mutliple track segments
- Skipping idle parts
- Configurable color, label, width and time offset per track
- Configurable video size, fps and speedup or total video time
- Background map from any public TMS server
'';
homepage = "https://gpx-animator.app";
changelog = "https://github.com/gpx-animator/gpx-animator/releases/tag/v${finalAttrs.version}";
license = lib.licenses.asl20;
maintainers = [ lib.maintainers.markasoftware ];
mainProgram = "gpx-animator";
platforms = lib.platforms.unix;
};
})

View File

@@ -0,0 +1,62 @@
{
lib,
stdenv,
fetchFromGitHub,
fetchpatch,
libxml2,
meson,
ninja,
vala,
pkg-config,
adwaita-icon-theme,
libchamplain,
gdl,
wrapGAppsHook3,
}:
stdenv.mkDerivation rec {
pname = "gpx-viewer";
version = "0.5.0";
src = fetchFromGitHub {
owner = "DaveDavenport";
repo = "gpx-viewer";
rev = version;
hash = "sha256-6AChX0UEIrQExaq3oo9Be5Sr13+POHFph7pZegqcjio=";
};
patches = [
# Compile with libchamplain>=0.12.21
(fetchpatch {
url = "https://github.com/DaveDavenport/gpx-viewer/commit/12ed6003bdad840586351bdb4e00c18719873c0e.patch";
hash = "sha256-2/r0M3Yxj+vWgny1Pd5G7NYMb0uC/ByZ7y3tqLVccOc=";
})
];
nativeBuildInputs = [
meson
ninja
pkg-config
vala
wrapGAppsHook3 # Fix error: GLib-GIO-ERROR **: No GSettings schemas are installed on the system
];
buildInputs = [
gdl
libchamplain
adwaita-icon-theme
libxml2
];
hardeningDisable = [ "format" ];
meta = with lib; {
homepage = "https://blog.sarine.nl/tag/gpxviewer/";
description = "Simple tool to visualize tracks and waypoints stored in a gpx file";
mainProgram = "gpx-viewer";
changelog = "https://github.com/DaveDavenport/gpx-viewer/blob/${src.rev}/NEWS";
platforms = with platforms; linux;
license = licenses.gpl2Plus;
maintainers = with maintainers; [ dotlambda ];
};
}

View File

@@ -0,0 +1,28 @@
{
lib,
stdenv,
fetchFromGitHub,
autoreconfHook,
}:
stdenv.mkDerivation rec {
pname = "gpx";
version = "2.6.8";
nativeBuildInputs = [ autoreconfHook ];
src = fetchFromGitHub {
owner = "markwal";
repo = "GPX";
rev = version;
sha256 = "1izs8s5npkbfrsyk17429hyl1vyrbj9dp6vmdlbb2vh6mfgl54h8";
};
meta = {
description = "Gcode to x3g conversion postprocessor";
homepage = "https://github.com/markwal/GPX/";
license = lib.licenses.gpl2;
platforms = lib.platforms.unix;
maintainers = [ lib.maintainers.leo60228 ];
};
}

View File

@@ -0,0 +1,49 @@
{
stdenv,
lib,
fetchFromGitHub,
qt5,
}:
stdenv.mkDerivation rec {
pname = "gpxlab";
version = "0.7.0";
src = fetchFromGitHub {
owner = "BourgeoisLab";
repo = "GPXLab";
rev = "v${version}";
sha256 = "080vnwcciqblfrbfyz9gjhl2lqw1hkdpbgr5qfrlyglkd4ynjd84";
};
nativeBuildInputs = [
qt5.qmake
qt5.qttools
qt5.wrapQtAppsHook
];
preConfigure = ''
lrelease GPXLab/locale/*.ts
'';
postInstall = lib.optionalString stdenv.hostPlatform.isDarwin ''
mkdir -p $out/Applications
mv GPXLab/GPXLab.app $out/Applications
mkdir -p $out/bin
ln -s $out/Applications/GPXLab.app/Contents/MacOS/GPXLab $out/bin/gpxlab
'';
meta = with lib; {
homepage = "https://github.com/BourgeoisLab/GPXLab";
description = "Program to show and manipulate GPS tracks";
mainProgram = "gpxlab";
longDescription = ''
GPXLab is an application to display and manage GPS tracks
previously recorded with a GPS tracker.
'';
license = licenses.gpl3Only;
maintainers = with maintainers; [ sikmir ];
platforms = platforms.unix;
};
}

View File

@@ -0,0 +1,72 @@
{
lib,
stdenv,
fetchFromGitHub,
nix-update-script,
qt6,
wrapGAppsHook3,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "gpxsee";
version = "14.0";
src = fetchFromGitHub {
owner = "tumic0";
repo = "GPXSee";
tag = finalAttrs.version;
hash = "sha256-oLwkryR2C1rGAUM7Gvn0uUy1aQGtFaAkFy8RQAAnNHU=";
};
buildInputs = [
qt6.qtbase
qt6.qtpositioning
qt6.qtserialport
qt6.qtsvg
];
nativeBuildInputs = [
qt6.qmake
qt6.qttools
qt6.wrapQtAppsHook
wrapGAppsHook3
];
dontWrapGApps = true;
preFixup = ''
qtWrapperArgs+=(''${gappsWrapperArgs[@]})
'';
preConfigure = ''
lrelease gpxsee.pro
'';
postInstall = lib.optionalString stdenv.hostPlatform.isDarwin ''
mkdir -p $out/Applications
mv GPXSee.app $out/Applications
mkdir -p $out/bin
ln -s $out/Applications/GPXSee.app/Contents/MacOS/GPXSee $out/bin/gpxsee
'';
passthru = {
updateScript = nix-update-script { };
};
meta = {
changelog = "https://build.opensuse.org/package/view_file/home:tumic:GPXSee/gpxsee/gpxsee.changes";
description = "GPS log file viewer and analyzer";
mainProgram = "gpxsee";
homepage = "https://www.gpxsee.org/";
license = lib.licenses.gpl3Only;
longDescription = ''
GPXSee is a Qt-based GPS log file viewer and analyzer that supports
all common GPS log file formats.
'';
maintainers = with lib.maintainers; [
womfoo
sikmir
];
platforms = lib.platforms.unix;
};
})

View File

@@ -0,0 +1,49 @@
{
lib,
buildGoModule,
fetchFromGitHub,
testers,
gpython,
}:
buildGoModule rec {
pname = "gpython";
version = "0.2.0";
src = fetchFromGitHub {
owner = "go-python";
repo = "gpython";
rev = "v${version}";
hash = "sha256-xqwq27u41Jgoh7t9UDyatuBQswr+h3xio5AV/npncHc=";
};
vendorHash = "sha256-NXPllEhootdB8m5Wvfy8MW899oQnjWAQj7yCC2oDvqE=";
subPackages = [
"."
];
ldflags = [
"-s"
"-w"
"-X=main.version=${version}"
"-X=main.commit=${src.rev}"
"-X=main.date=1970-01-01"
];
passthru.tests = {
version = testers.testVersion {
package = gpython;
command = "gpython < /dev/null";
};
};
meta = with lib; {
description = "Python interpreter written in Go";
mainProgram = "gpython";
homepage = "https://github.com/go-python/gpython";
changelog = "https://github.com/go-python/gpython/releases/tag/${src.rev}";
license = licenses.bsd3;
maintainers = with maintainers; [ figsoda ];
};
}