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

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

View File

@@ -0,0 +1,27 @@
{ lib, callPackage }:
# For detailed information about the Citrix source-tarball, please refer to the OEM
# reference guide: https://developer-docs.citrix.com/en-us/citrix-workspace-app-for-linux/citrix-workspace-app-for-linux-oem-reference-guide
let
inherit (callPackage ./sources.nix { }) supportedVersions unsupportedVersions;
toAttrName = x: "citrix_workspace_${builtins.replaceStrings [ "." ] [ "_" ] x}";
unsupported = lib.listToAttrs (
map (
x:
lib.nameValuePair (toAttrName x) (throw ''
Citrix Workspace at version ${x} is not supported anymore!
Actively supported releases are listed here:
https://www.citrix.com/support/product-lifecycle/workspace-app.html
'')
) unsupportedVersions
);
supported = lib.mapAttrs' (
attr: versionInfo: lib.nameValuePair (toAttrName attr) (callPackage ./generic.nix versionInfo)
) supportedVersions;
in
supported // unsupported

View File

@@ -0,0 +1,323 @@
{
lib,
stdenv,
requireFile,
makeWrapper,
autoPatchelfHook,
wrapGAppsHook3,
alsa-lib,
atk,
cacert,
cairo,
dconf,
fetchurl,
file,
fontconfig,
freetype,
gdk-pixbuf,
glib,
glib-networking,
gnome2,
gtk2,
gtk2-x11,
gtk3,
gtk_engines,
heimdal,
krb5,
libGL,
libappindicator-gtk3,
libcanberra-gtk3,
libcap,
libcxx,
libfaketime,
libgbm,
libinput,
libjpeg,
libjson,
libpng12,
libpulseaudio,
libredirect,
libsecret,
libsoup_2_4,
libvorbis,
libxml2_13,
llvmPackages,
more,
nspr,
nss,
opencv4,
openssl,
pango,
pcsclite,
sane-backends,
speex,
symlinkJoin,
systemd,
tzdata,
webkitgtk_4_0,
which,
xorg,
zlib,
homepage,
version,
prefix,
hash,
extraCerts ? [ ],
}:
let
openssl' = symlinkJoin {
name = "openssl-backwards-compat";
nativeBuildInputs = [ makeWrapper ];
paths = [ (lib.getLib openssl) ];
postBuild = ''
ln -sf $out/lib/libcrypto.so $out/lib/libcrypto.so.1.0.0
ln -sf $out/lib/libssl.so $out/lib/libssl.so.1.0.0
'';
};
opencv4' = symlinkJoin {
name = "opencv4-compat";
nativeBuildInputs = [ makeWrapper ];
paths = [ opencv4 ];
postBuild = ''
for so in ${opencv4}/lib/*.so; do
ln -s "$so" $out/lib/$(basename "$so").407 || true
ln -s "$so" $out/lib/$(basename "$so").410 || true
done
'';
};
in
stdenv.mkDerivation rec {
pname = "citrix-workspace";
inherit version;
src = requireFile rec {
name = "${prefix}-${version}.tar.gz";
sha256 = hash;
message = ''
In order to use Citrix Workspace, you need to comply with the Citrix EULA and download
the ${if stdenv.hostPlatform.is64bit then "64-bit" else "32-bit"} binaries, .tar.gz from:
${homepage}
(if you do not find version ${version} there, try at
https://www.citrix.com/downloads/workspace-app/)
Once you have downloaded the file, please use the following command and re-run the
installation:
nix-prefetch-url file://\$PWD/${name}
'';
};
dontBuild = true;
dontConfigure = true;
sourceRoot = ".";
preferLocalBuild = true;
passthru.icaroot = "${placeholder "out"}/opt/citrix-icaclient";
nativeBuildInputs = [
autoPatchelfHook
file
libfaketime
makeWrapper
more
which
wrapGAppsHook3
];
buildInputs = [
alsa-lib
atk
cairo
dconf
fontconfig
freetype
gdk-pixbuf
glib-networking
gnome2.gtkglext
gtk2
gtk2-x11
gtk3
gtk_engines
heimdal
krb5
libGL
libcanberra-gtk3
libcap
libcxx
libgbm
libinput
libjpeg
libjson
libpng12
libpulseaudio
libsecret
libsoup_2_4
libvorbis
libxml2_13
llvmPackages.libunwind
nspr
nss
opencv4'
openssl'
pango
pcsclite
sane-backends
speex
stdenv.cc.cc
(lib.getLib systemd)
webkitgtk_4_0
xorg.libXScrnSaver
xorg.libXaw
xorg.libXmu
xorg.libXtst
zlib
];
runtimeDependencies = [
glib
glib-networking
libappindicator-gtk3
libGL
pcsclite
xorg.libX11
xorg.libXScrnSaver
xorg.libXext
xorg.libXfixes
xorg.libXinerama
xorg.libXmu
xorg.libXrender
xorg.libXtst
xorg.libxcb
xorg.xdpyinfo
xorg.xprop
];
installPhase =
let
icaFlag =
program:
if (builtins.match "selfservice(.*)" program) != null then
"--icaroot"
else if (builtins.match "wfica(.*)" program != null) then
null
else
"-icaroot";
wrap = program: ''
wrapProgram $out/opt/citrix-icaclient/${program} \
${lib.optionalString (icaFlag program != null) ''--add-flags "${icaFlag program} $ICAInstDir"''} \
--set ICAROOT "$ICAInstDir" \
--prefix GIO_EXTRA_MODULES : "${glib-networking}/lib/gio/modules" \
--prefix LD_LIBRARY_PATH : "$ICAInstDir:$ICAInstDir/lib" \
--set LD_PRELOAD "${libredirect}/lib/libredirect.so ${lib.getLib pcsclite}/lib/libpcsclite.so" \
--set NIX_REDIRECTS "/usr/share/zoneinfo=${tzdata}/share/zoneinfo:/etc/zoneinfo=${tzdata}/share/zoneinfo:/etc/timezone=$ICAInstDir/timezone"
'';
wrapLink = program: ''
${wrap program}
ln -sf $out/opt/citrix-icaclient/${program} $out/bin/${baseNameOf program}
'';
copyCert = path: ''
cp -v ${path} $out/opt/citrix-icaclient/keystore/cacerts/${baseNameOf path}
'';
mkWrappers = lib.concatMapStringsSep "\n";
toWrap = [
"wfica"
"selfservice"
"util/configmgr"
"util/conncenter"
"util/ctx_rehash"
];
in
''
runHook preInstall
mkdir -p $out/{bin,share/applications}
export ICAInstDir="$out/opt/citrix-icaclient"
export HOME=$(mktemp -d)
# Run upstream installer in the store-path.
sed -i -e 's,^ANSWER="",ANSWER="$INSTALLER_YES",g' -e 's,/bin/true,true,g' ./${prefix}/hinst
source_date=$(date --utc --date=@$SOURCE_DATE_EPOCH "+%F %T")
faketime -f "$source_date" ${stdenv.shell} ${prefix}/hinst CDROM "$(pwd)"
if [ -f "$ICAInstDir/util/setlog" ]; then
chmod +x "$ICAInstDir/util/setlog"
ln -sf "$ICAInstDir/util/setlog" "$out/bin/citrix-setlog"
fi
${mkWrappers wrapLink toWrap}
${mkWrappers wrap [
"PrimaryAuthManager"
"ServiceRecord"
"AuthManagerDaemon"
"util/ctxwebhelper"
]}
ln -sf $ICAInstDir/util/storebrowse $out/bin/storebrowse
# As explained in https://wiki.archlinux.org/index.php/Citrix#Security_Certificates
echo "Expanding certificates..."
pushd "$ICAInstDir/keystore/cacerts"
awk 'BEGIN {c=0;} /BEGIN CERT/{c++} { print > "cert." c ".pem"}' \
< ${cacert}/etc/ssl/certs/ca-bundle.crt
popd
${mkWrappers copyCert extraCerts}
# See https://developer-docs.citrix.com/en-us/citrix-workspace-app-for-linux/citrix-workspace-app-for-linux-oem-reference-guide/reference-information/#library-files
# Those files are fallbacks to support older libwekit.so and libjpeg.so
rm $out/opt/citrix-icaclient/lib/ctxjpeg_fb_8.so || true
rm $out/opt/citrix-icaclient/lib/UIDialogLibWebKit.so || true
# We support only Gstreamer 1.0
rm $ICAInstDir/util/{gst_aud_{play,read},gst_*0.10,libgstflatstm0.10.so} || true
ln -sf $ICAInstDir/util/gst_play1.0 $ICAInstDir/util/gst_play
ln -sf $ICAInstDir/util/gst_read1.0 $ICAInstDir/util/gst_read
echo "We arbitrarily set the timezone to UTC. No known consequences at this point."
echo UTC > "$ICAInstDir/timezone"
echo "Copy .desktop files."
cp $out/opt/citrix-icaclient/desktop/* $out/share/applications/
# We introduce a dependency on the source file so that it need not be redownloaded everytime
echo $src >> "$out/share/workspace_dependencies.pin"
runHook postInstall
'';
# Make sure that `autoPatchelfHook` is executed before
# running `ctx_rehash`.
dontAutoPatchelf = true;
preFixup = ''
find $out/opt/citrix-icaclient/lib -name "libopencv_imgcodecs.so.*" | while read -r fname; do
# lib needs libtiff.so.5, but nixpkgs provides libtiff.so.6
patchelf --replace-needed libtiff.so.5 libtiff.so $fname
# lib needs libjpeg.so.8, but nixpkgs provides libjpeg.so.9
patchelf --replace-needed libjpeg.so.8 libjpeg.so $fname
done
'';
postFixup = ''
autoPatchelf -- "$out"
$out/opt/citrix-icaclient/util/ctx_rehash
'';
meta = with lib; {
license = licenses.unfree;
description = "Citrix Workspace";
sourceProvenance = with sourceTypes; [ binaryNativeCode ];
platforms = [ "x86_64-linux" ] ++ optional (versionOlder version "24") "i686-linux";
maintainers = with maintainers; [ flacks ];
inherit homepage;
};
}

View File

@@ -0,0 +1,123 @@
{ stdenv, lib }:
let
mkVersionInfo =
_:
{
major,
minor,
patch,
x64hash,
x86hash,
x64suffix,
x86suffix,
homepage,
}:
{
inherit homepage;
version = "${major}.${minor}.${patch}.${
if stdenv.hostPlatform.is64bit then x64suffix else x86suffix
}";
prefix = "linuxx${if stdenv.hostPlatform.is64bit then "64" else "86"}";
hash = if stdenv.hostPlatform.is64bit then x64hash else x86hash;
};
# Attribute-set with all actively supported versions of the Citrix workspace app
# for Linux.
#
# The latest versions can be found at https://www.citrix.com/downloads/workspace-app/linux/
# x86 is unsupported past 23.11, see https://docs.citrix.com/en-us/citrix-workspace-app-for-linux/deprecation
supportedVersions = lib.mapAttrs mkVersionInfo {
"23.11.0" = {
major = "23";
minor = "11";
patch = "0";
x64hash = "d3dde64baa6db7675a025eff546d552544d3523f4f3047621884f7830a9e2822";
x86hash = "65b8c144e51b5bd78b98ae69e0fa76d6c020a857d74fd5254be49492527072b6";
x64suffix = "82";
x86suffix = "82";
homepage = "https://www.citrix.com/downloads/workspace-app/legacy-workspace-app-for-linux/workspace-app-for-linux-latest10.html";
};
"24.02.0" = {
major = "24";
minor = "2";
patch = "0";
x64hash = "eaeb5d3bd079d4e5c9707da67f5f7a25cb765e19c36d01861290655dbf2aaee4";
x86hash = "";
x64suffix = "65";
x86suffix = "";
homepage = "https://www.citrix.com/downloads/workspace-app/legacy-workspace-app-for-linux/workspace-app-for-linux-latest12.html";
};
"24.05.0" = {
major = "24";
minor = "5";
patch = "0";
x64hash = "sha256-pye2JOilSbp8PFCpVXFkrRW98E8klCqoisVSWjR38nE=";
x86hash = "";
x64suffix = "76";
x86suffix = "";
homepage = "https://www.citrix.com/downloads/workspace-app/legacy-workspace-app-for-linux/workspace-app-for-linux-latest1.html";
};
"24.08.0" = {
major = "24";
minor = "8";
patch = "0";
x64hash = "1jb22n6gcv4pv8khg98sv663yfpi47dpkvqgifbhps98iw5zrkbp";
x86hash = "";
x64suffix = "98";
x86suffix = "";
homepage = "https://www.citrix.com/downloads/workspace-app/legacy-workspace-app-for-linux/workspace-app-for-linux-latest-2408.html";
};
"24.11.0" = {
major = "24";
minor = "11";
patch = "0";
x64hash = "0kylvqdzkw0635mbb6r5k1lamdjf1hr9pk5rxcff63z4f8q0g3zf";
x86hash = "";
x64suffix = "85";
x86suffix = "";
homepage = "https://www.citrix.com/downloads/workspace-app/legacy-workspace-app-for-linux/workspace-app-for-linux-latest13.html";
};
"25.03.0" = {
major = "25";
minor = "03";
patch = "0";
x64hash = "052zibykhig9091xl76z2x9vn4f74w5q8i9frlpc473pvfplsczk";
x86hash = "";
x64suffix = "66";
x86suffix = "";
homepage = "https://www.citrix.com/downloads/workspace-app/legacy-workspace-app-for-linux/workspace-app-for-linux-latest-2503.html";
};
"25.05.0" = {
major = "25";
minor = "05";
patch = "0";
x64hash = "0fwqsxggswms40b5k8saxpm1ghkxppl27x19w8jcslq1f0i1fwqx";
x86hash = "";
x64suffix = "44";
x86suffix = "";
homepage = "https://www.citrix.com/downloads/workspace-app/linux/workspace-app-for-linux-latest.html";
};
};
# Retain attribute-names for abandoned versions of Citrix workspace to
# provide a meaningful error-message if it's attempted to use such an old one.
#
# The lifespans of Citrix products can be found here:
# https://www.citrix.com/support/product-lifecycle/workspace-app.html
unsupportedVersions = [
"23.02.0"
"23.07.0"
"23.09.0"
];
in
{
inherit supportedVersions unsupportedVersions;
}

View File

@@ -0,0 +1,76 @@
{
stdenv,
lib,
fetchurl,
cmake,
perl,
pkg-config,
gtk3,
ncurses,
copyDesktopItems,
makeDesktopItem,
}:
stdenv.mkDerivation rec {
version = "0.83";
pname = "putty";
src = fetchurl {
urls = [
"https://the.earth.li/~sgtatham/putty/${version}/${pname}-${version}.tar.gz"
"ftp://ftp.wayne.edu/putty/putty-website-mirror/${version}/${pname}-${version}.tar.gz"
];
hash = "sha256-cYd3wT1j0N/5H+AxYrwqBbTfyLCCdjTNYLUc79/2McY=";
};
nativeBuildInputs = [
cmake
perl
pkg-config
copyDesktopItems
];
buildInputs = lib.optionals stdenv.hostPlatform.isUnix [
gtk3
ncurses
];
enableParallelBuilding = true;
desktopItems = [
(makeDesktopItem {
name = "PuTTY SSH Client";
exec = "putty";
icon = "putty";
desktopName = "PuTTY";
comment = "Connect to an SSH server with PuTTY";
categories = [
"GTK"
"Network"
];
})
(makeDesktopItem {
name = "PuTTY Terminal Emulator";
exec = "pterm";
icon = "pterm";
desktopName = "Pterm";
comment = "Start a PuTTY terminal session";
categories = [
"GTK"
"System"
"Utility"
"TerminalEmulator"
];
})
];
meta = with lib; {
description = "Free Telnet/SSH Client";
longDescription = ''
PuTTY is a free implementation of Telnet and SSH for Windows and Unix
platforms, along with an xterm terminal emulator.
It is written and maintained primarily by Simon Tatham.
'';
homepage = "https://www.chiark.greenend.org.uk/~sgtatham/putty/";
license = licenses.mit;
platforms = platforms.unix ++ platforms.windows;
};
}

View File

@@ -0,0 +1,173 @@
{
mkDerivation,
lib,
stdenv,
fetchurl,
autoPatchelfHook,
makeWrapper,
xdg-utils,
dbus,
getconf,
glibc,
libXrandr,
libX11,
libXext,
libXdamage,
libXtst,
libSM,
libXfixes,
coreutils,
wrapQtAppsHook,
icu63,
nss,
minizip,
}:
mkDerivation rec {
pname = "teamviewer";
# teamviewer itself has not development files but the dev output removes propagated other dev outputs from runtime
outputs = [
"out"
"dev"
];
version = "15.69.4";
src =
let
base_url = "https://dl.teamviewer.com/download/linux/version_${lib.versions.major version}x";
in
{
x86_64-linux = fetchurl {
url = "${base_url}/teamviewer_${version}_amd64.deb";
hash = "sha256-GNGmqgiu4Vk0X+KndCkEoryFHG/Vv/P2xYdlzUJT1wo=";
};
aarch64-linux = fetchurl {
url = "${base_url}/teamviewer_${version}_arm64.deb";
hash = "sha256-M6Q6HIp7TgtqzVduMJM1au0i4/hDUUwdIoe3q36YA/0=";
};
}
.${stdenv.hostPlatform.system} or (throw "Unsupported system: ${stdenv.hostPlatform.system}");
unpackPhase = ''
ar x $src
tar xf data.tar.*
'';
nativeBuildInputs = [
autoPatchelfHook
makeWrapper
wrapQtAppsHook
];
buildInputs = [
minizip
icu63
nss
];
installPhase = ''
mkdir -p $out/share/teamviewer $out/bin $out/share/applications
cp -a opt/teamviewer/* $out/share/teamviewer
rm -R \
$out/share/teamviewer/logfiles \
$out/share/teamviewer/config \
$out/share/teamviewer/tv_bin/script/{teamviewer_setup,teamviewerd.sysv,teamviewerd.service,teamviewerd.*.conf,tv-delayed-start.sh}
# Teamviewer packages its own qt library files. So do not use nixpkgs qt files. These will cause issues
# See https://github.com/NixOS/nixpkgs/issues/321333
ln -s $out/share/teamviewer/tv_bin/script/teamviewer $out/bin
ln -s $out/share/teamviewer/tv_bin/teamviewerd $out/bin
ln -s $out/share/teamviewer/tv_bin/desktop/com.teamviewer.*.desktop $out/share/applications
ln -s /var/lib/teamviewer $out/share/teamviewer/config
ln -s /var/log/teamviewer $out/share/teamviewer/logfiles
ln -s ${xdg-utils}/bin $out/share/teamviewer/tv_bin/xdg-utils
declare in_script_dir="./opt/teamviewer/tv_bin/script"
install -d "$out/share/dbus-1/services"
install -m 644 "$in_script_dir/com.teamviewer.TeamViewer.service" "$out/share/dbus-1/services"
substituteInPlace "$out/share/dbus-1/services/com.teamviewer.TeamViewer.service" \
--replace-fail '/opt/teamviewer/tv_bin/TeamViewer' \
"$out/share/teamviewer/tv_bin/TeamViewer"
install -m 644 "$in_script_dir/com.teamviewer.TeamViewer.Desktop.service" "$out/share/dbus-1/services"
substituteInPlace "$out/share/dbus-1/services/com.teamviewer.TeamViewer.Desktop.service" \
--replace-fail '/opt/teamviewer/tv_bin/TeamViewer_Desktop' \
"$out/share/teamviewer/tv_bin/TeamViewer_Desktop"
install -d "$out/share/dbus-1/system.d"
install -m 644 "$in_script_dir/com.teamviewer.TeamViewer.Daemon.conf" "$out/share/dbus-1/system.d"
install -d "$out/share/polkit-1/actions"
install -m 644 "$in_script_dir/com.teamviewer.TeamViewer.policy" "$out/share/polkit-1/actions"
substituteInPlace "$out/share/polkit-1/actions/com.teamviewer.TeamViewer.policy" \
--replace '/opt/teamviewer/tv_bin/script/execscript' \
"$out/share/teamviewer/tv_bin/script/execscript"
for i in 16 20 24 32 48 256; do
size=$i"x"$i
mkdir -p $out/share/icons/hicolor/$size/apps
ln -s $out/share/teamviewer/tv_bin/desktop/teamviewer_$i.png $out/share/icons/hicolor/$size/apps/TeamViewer.png
done;
sed -i "s,/opt/teamviewer,$out/share/teamviewer,g" $out/share/teamviewer/tv_bin/desktop/com.teamviewer.*.desktop
substituteInPlace $out/share/teamviewer/tv_bin/script/tvw_aux \
--replace '/lib64/ld-linux-x86-64.so.2' '${glibc.out}/lib/ld-linux-x86-64.so.2'
substituteInPlace $out/share/teamviewer/tv_bin/script/tvw_config \
--replace '/var/run/' '/run/'
'';
makeWrapperArgs = [
"--prefix PATH : ${
lib.makeBinPath [
getconf
coreutils
]
}"
"--prefix LD_LIBRARY_PATH : ${
lib.makeLibraryPath [
libXrandr
libX11
libXext
libXdamage
libXtst
libSM
libXfixes
dbus
icu63
]
}"
];
postFixup = ''
wrapProgram $out/share/teamviewer/tv_bin/teamviewerd ''${makeWrapperArgs[@]}
# tv_bin/script/teamviewer runs tvw_main which runs tv_bin/TeamViewer
wrapProgram $out/share/teamviewer/tv_bin/script/teamviewer ''${makeWrapperArgs[@]} ''${qtWrapperArgs[@]}
wrapProgram $out/share/teamviewer/tv_bin/teamviewer-config ''${makeWrapperArgs[@]} ''${qtWrapperArgs[@]}
wrapProgram $out/share/teamviewer/tv_bin/TeamViewer_Desktop ''${makeWrapperArgs[@]} ''${qtWrapperArgs[@]}
'';
dontStrip = true;
dontWrapQtApps = true;
preferLocalBuild = true;
passthru.updateScript = ./update-teamviewer.sh;
meta = with lib; {
homepage = "https://www.teamviewer.com";
sourceProvenance = with sourceTypes; [ binaryNativeCode ];
license = licenses.unfree;
description = "Desktop sharing application, providing remote support and online meetings";
platforms = [
"x86_64-linux"
"aarch64-linux"
];
maintainers = with maintainers; [
jagajaga
jraygauthier
gador
c4patino
];
};
}

View File

@@ -0,0 +1,23 @@
#!/usr/bin/env nix-shell
#!nix-shell -i bash -p bash curl gnugrep jq nix nix-prefetch nix-prefetch-scripts common-updater-scripts
set -euo pipefail
current_version=$(nix eval --raw -f . teamviewer.version)
latest_version=$(curl -s https://www.teamviewer.com/en-us/download/portal/linux/ | grep -oP 'Current version: <span data-dl-version-label>\K[0-9]+\.[0-9]+\.[0-9]+')
echo "current version: $current_version"
echo "latest version: $latest_version"
if [[ "$latest_version" == "$current_version" ]]; then
echo "package is up-to-date"
exit 0
fi
update-source-version teamviewer "$latest_version"
systems=$(nix eval --json -f . teamviewer.meta.platforms | jq --raw-output '.[]')
for system in $systems; do
hash=$(nix --extra-experimental-features nix-command hash convert --to sri --hash-algo sha256 $(nix-prefetch-url $(nix eval --raw -f . teamviewer.src.url --system "$system")))
update-source-version teamviewer $latest_version $hash --system=$system --ignore-same-version --ignore-same-hash
done

View File

@@ -0,0 +1,78 @@
{
stdenv,
lib,
fetchgit,
qt5,
qtbase,
qtx11extras,
qttools,
zlib,
gnumake,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "x2gokdriveclient";
version = "0.0.0.1-unstable-2024-09-10";
src = fetchgit {
#url = "https://code.x2go.org/git/x2gokdriveclient.git";
# in reference to https://github.com/NixOS/nixpkgs/tree/master/pkgs#sources
# I am aware that this is bad practice. The HTTPS url above responds with a 500 and is hopelessly
# overloaded. the X2Go project doesn't seem to maintain a good and healthy code repository on github
# either.
url = "git://code.x2go.org/x2gokdriveclient.git";
rev = "ed53784a236ef4fe00adce726be492c4bf227d73";
hash = "sha256-hWPM0bye4I34T7y2ipZOULY2+ehVanmTj4V80+lc+iw=";
};
buildInputs = [
qtbase
qtx11extras
qttools
zlib
];
nativeBuildInputs = [
qt5.wrapQtAppsHook
];
postPatch = ''
substituteInPlace Makefile \
--replace-fail "SHELL=/bin/bash" "SHELL=$SHELL" \
--replace-fail "MAKEOVERRIDES" "NOMAKEOVERRIDES " \
--replace-fail ".MAKEFLAGS" ".NOFLAGS " \
--replace-fail "qmake" "${qtbase.dev}/bin/qmake" \
--replace-fail "-o root -g root" ""
substituteInPlace \
VERSION.x2gokdriveclient \
x2gokdriveclient.spec \
man/man1/x2gokdriveclient.1 \
--replace-fail "0.0.0.2" "${finalAttrs.version}"
'';
makeFlags = [
"PREFIX=$(out)"
"ETCDIR=$(out)/etc"
"build_client"
"build_man"
];
installTargets = [
"install_client"
"install_man"
];
qtWrapperArgs = [
"--set QT_QPA_PLATFORM xcb"
];
meta = with lib; {
description = "Graphical NoMachine NX3 remote desktop client (KDrive client)";
mainProgram = "x2gokdriveclient";
homepage = "https://x2go.org/";
maintainers = with maintainers; [ juliabru ];
license = licenses.gpl3;
platforms = platforms.linux;
};
})