86 lines
1.9 KiB
Nix
86 lines
1.9 KiB
Nix
{
|
|||
python3Packages,
|
|||
onionshare,
|
|||
substituteAll,
|
|||
meek,
|
|||
obfs4,
|
|||
snowflake,
|
|||
tor,
|
|||
fetchpatch,
|
|||
qt5,
|
|||
}:
|
|||
python3Packages.buildPythonApplication rec {
|
|||
pname = "onionshare";
|
|||
inherit (onionshare)
|
|||
src
|
|||
version
|
|||
build-system
|
|||
pythonRelaxDeps
|
|||
;
|
|||
pyproject = true;
|
|||
|
|||
sourceRoot = "${src.name}/desktop";
|
|||
|
|||
patches = [
|
|||
# hardcode store paths of dependencies
|
|||
(substituteAll {
|
|||
src = ./fix-paths-gui.patch;
|
|||
inherit
|
|||
meek
|
|||
obfs4
|
|||
snowflake
|
|||
tor
|
|||
;
|
|||
inherit (tor) geoip;
|
|||
})
|
|||
|
|||
# https://github.com/onionshare/onionshare/pull/1903
|
|||
(fetchpatch {
|
|||
url = "https://github.com/onionshare/onionshare/pull/1903/commits/f20db8fcbd18e51b58814ae8f98f3a7502b4f456.patch";
|
|||
stripLen = 1;
|
|||
hash = "sha256-wfIjdPhdUYAvbK5XyE1o2OtFOlJRj0X5mh7QQRjdyP0=";
|
|||
})
|
|||
|
|||
# Remove distutils for Python 3.12 compatibility
|
|||
# https://github.com/onionshare/onionshare/pull/1907
|
|||
(fetchpatch {
|
|||
url = "https://github.com/onionshare/onionshare/commit/1fb1a470df20d8a7576c8cf51213e5928528d59a.patch";
|
|||
includes = [ "onionshare/update_checker.py" ];
|
|||
stripLen = 1;
|
|||
hash = "sha256-mRRj9cALZVHw86CgU17sp9EglKhkRRcGfROyQpsXVfU=";
|
|||
})
|
|||
];
|
|||
|
|||
dependencies = with python3Packages; [
|
|||
onionshare
|
|||
pyside6
|
|||
python-gnupg
|
|||
qrcode
|
|||
];
|
|||
|
|||
nativeBuildInputs = [ qt5.wrapQtAppsHook ];
|
|||
|
|||
buildInputs = [ qt5.qtwayland ];
|
|||
|
|||
postInstall = ''
|
|||
mkdir -p $out/share/{appdata,applications,icons}
|
|||
cp $src/desktop/org.onionshare.OnionShare.desktop $out/share/applications
|
|||
cp $src/desktop/org.onionshare.OnionShare.svg $out/share/icons
|
|||
cp $src/desktop/org.onionshare.OnionShare.appdata.xml $out/share/appdata
|
|||
'';
|
|||
|
|||
dontWrapQtApps = true;
|
|||
|
|||
preFixup = ''
|
|||
makeWrapperArgs+=("''${qtWrapperArgs[@]}")
|
|||
'';
|
|||
|
|||
doCheck = false;
|
|||
|
|||
pythonImportsCheck = [ "onionshare" ];
|
|||
|
|||
meta = onionshare.meta // {
|
|||
mainProgram = "onionshare";
|
|||
};
|
|||
}
|