protonmail-bridge: split into multiple files
This commit is contained in:
parent
8162d99dff
commit
304d3932f4
11
default.nix
11
default.nix
@ -40,7 +40,9 @@ rec {
|
|||||||
|
|
||||||
amdgpu-fan = pkgs.callPackage ./pkgs/tools/misc/amdgpu-fan { };
|
amdgpu-fan = pkgs.callPackage ./pkgs/tools/misc/amdgpu-fan { };
|
||||||
|
|
||||||
go-qt = pkgs.libsForQt512.callPackage ./pkgs/development/go-modules/qt { };
|
goModules = pkgs.recurseIntoAttrs rec {
|
||||||
|
qt = pkgs.libsForQt512.callPackage ./pkgs/development/go-modules/qt { };
|
||||||
|
};
|
||||||
|
|
||||||
# A functional Jetbrains IDE-with-plugins package set.
|
# A functional Jetbrains IDE-with-plugins package set.
|
||||||
jetbrains =
|
jetbrains =
|
||||||
@ -106,11 +108,10 @@ rec {
|
|||||||
# The one in Nixpkgs still extracts the pre-built Debian package instead
|
# The one in Nixpkgs still extracts the pre-built Debian package instead
|
||||||
# of building from source.
|
# of building from source.
|
||||||
protonmailBridgePackages = pkgs.libsForQt512.callPackage ./pkgs/applications/networking/protonmail-bridge {
|
protonmailBridgePackages = pkgs.libsForQt512.callPackage ./pkgs/applications/networking/protonmail-bridge {
|
||||||
inherit go-qt;
|
inherit goModules;
|
||||||
};
|
};
|
||||||
inherit (protonmailBridgePackages)
|
protonmail-bridge = protonmailBridgePackages.protonmail-bridge;
|
||||||
protonmail-bridge
|
protonmail-bridge-headless = protonmailBridgePackages.protonmail-bridge-headless;
|
||||||
protonmail-bridge-headless;
|
|
||||||
|
|
||||||
radeon-profile-daemon = pkgs.libsForQt5.callPackage ./pkgs/tools/misc/radeon-profile-daemon { };
|
radeon-profile-daemon = pkgs.libsForQt5.callPackage ./pkgs/tools/misc/radeon-profile-daemon { };
|
||||||
|
|
||||||
|
44
pkgs/applications/networking/protonmail-bridge/app.nix
Normal file
44
pkgs/applications/networking/protonmail-bridge/app.nix
Normal file
@ -0,0 +1,44 @@
|
|||||||
|
{ qtbase, go, goModules }:
|
||||||
|
|
||||||
|
{
|
||||||
|
pname = "protonmail-bridge";
|
||||||
|
|
||||||
|
tags = "pmapi_prod";
|
||||||
|
|
||||||
|
QT_PKG_CONFIG = "true";
|
||||||
|
QT_VERSION = qtbase.version;
|
||||||
|
|
||||||
|
nativeBuildInputs = [
|
||||||
|
goModules.qt
|
||||||
|
qtbase
|
||||||
|
];
|
||||||
|
|
||||||
|
buildPhase = ''
|
||||||
|
cp cmd/Desktop-Bridge/main.go .
|
||||||
|
|
||||||
|
## Enable writable vendor
|
||||||
|
GOMODULE=gomodule
|
||||||
|
mv vendor $GOMODULE-vendor
|
||||||
|
mkdir vendor
|
||||||
|
readarray -t files < <(find $GOMODULE-vendor/ -type f | grep -v github.com/therecipe/qt | sed "s/$GOMODULE-//")
|
||||||
|
for f in "''${files[@]}"; do
|
||||||
|
mkdir -p $(dirname $f)
|
||||||
|
cp -s $PWD/$GOMODULE-$f $f
|
||||||
|
done
|
||||||
|
unset GOMODULE
|
||||||
|
|
||||||
|
##
|
||||||
|
mkdir -p vendor/github.com/therecipe
|
||||||
|
cp -r gomodule-vendor/github.com/therecipe/qt vendor/github.com/therecipe/qt
|
||||||
|
chmod -R a+w vendor/github.com/therecipe/qt
|
||||||
|
|
||||||
|
# Add vendor to GOPATH because fuck
|
||||||
|
mkdir -p $GOPATH
|
||||||
|
ln -s $PWD/vendor $GOPATH/src
|
||||||
|
|
||||||
|
qtsetup check
|
||||||
|
GOROOT=${go}/share/go qtdeploy "''${buildFlagsArray[@]}" build desktop
|
||||||
|
'';
|
||||||
|
|
||||||
|
meta.broken = true;
|
||||||
|
}
|
@ -1,10 +1,9 @@
|
|||||||
{ stdenv
|
{ stdenv
|
||||||
, lib
|
|
||||||
, fetchFromGitHub
|
, fetchFromGitHub
|
||||||
, buildGoModule
|
, buildGoModule
|
||||||
|
|
||||||
, go
|
, go
|
||||||
, go-qt
|
, goModules
|
||||||
, libsecret
|
, libsecret
|
||||||
, pkg-config
|
, pkg-config
|
||||||
, qtbase
|
, qtbase
|
||||||
@ -13,12 +12,13 @@
|
|||||||
|
|
||||||
let
|
let
|
||||||
|
|
||||||
common =
|
builder =
|
||||||
{ pname
|
{ pname
|
||||||
, tags
|
, tags
|
||||||
, ...
|
, ...
|
||||||
}@args:
|
}@args:
|
||||||
buildGoModule (lib.recursiveUpdate args rec {
|
|
||||||
|
buildGoModule (stdenv.lib.recursiveUpdate args rec {
|
||||||
inherit pname;
|
inherit pname;
|
||||||
version = "1.3.2";
|
version = "1.3.2";
|
||||||
|
|
||||||
@ -50,7 +50,7 @@ let
|
|||||||
''
|
''
|
||||||
];
|
];
|
||||||
|
|
||||||
meta = with lib; {
|
meta = with stdenv.lib; {
|
||||||
description = "Integrate ProtonMail paid account with any program that supports IMAP and SMTP";
|
description = "Integrate ProtonMail paid account with any program that supports IMAP and SMTP";
|
||||||
homepage = "https://protonmail.com";
|
homepage = "https://protonmail.com";
|
||||||
license = licenses.gpl3;
|
license = licenses.gpl3;
|
||||||
@ -58,78 +58,10 @@ let
|
|||||||
};
|
};
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
in
|
in
|
||||||
|
|
||||||
{
|
{
|
||||||
protonmail-bridge = common {
|
protonmail-bridge = builder (import ./app.nix { inherit qtbase go goModules; });
|
||||||
pname = "protonmail-bridge";
|
protonmail-bridge-headless = builder (import ./headless.nix { });
|
||||||
|
|
||||||
tags = "pmapi_prod";
|
|
||||||
|
|
||||||
QT_PKG_CONFIG = "true";
|
|
||||||
QT_VERSION = qtbase.version;
|
|
||||||
|
|
||||||
nativeBuildInputs = [
|
|
||||||
go-qt
|
|
||||||
qtbase
|
|
||||||
];
|
|
||||||
|
|
||||||
buildPhase = ''
|
|
||||||
cp cmd/Desktop-Bridge/main.go .
|
|
||||||
|
|
||||||
## Enable writable vendor
|
|
||||||
GOMODULE=gomodule
|
|
||||||
mv vendor $GOMODULE-vendor
|
|
||||||
mkdir vendor
|
|
||||||
readarray -t files < <(find $GOMODULE-vendor/ -type f | grep -v github.com/therecipe/qt | sed "s/$GOMODULE-//")
|
|
||||||
for f in "''${files[@]}"; do
|
|
||||||
mkdir -p $(dirname $f)
|
|
||||||
cp -s $PWD/$GOMODULE-$f $f
|
|
||||||
done
|
|
||||||
unset GOMODULE
|
|
||||||
|
|
||||||
##
|
|
||||||
mkdir -p vendor/github.com/therecipe
|
|
||||||
cp -r gomodule-vendor/github.com/therecipe/qt vendor/github.com/therecipe/qt
|
|
||||||
chmod -R a+w vendor/github.com/therecipe/qt
|
|
||||||
|
|
||||||
# Add vendor to GOPATH because fuck
|
|
||||||
mkdir -p $GOPATH
|
|
||||||
ln -s $PWD/vendor $GOPATH/src
|
|
||||||
|
|
||||||
qtsetup check
|
|
||||||
GOROOT=${go}/share/go qtdeploy "''${buildFlagsArray[@]}" build desktop
|
|
||||||
'';
|
|
||||||
|
|
||||||
meta.broken = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
protonmail-bridge-headless = common rec {
|
|
||||||
pname = "protonmail-bridge-headless";
|
|
||||||
|
|
||||||
tags = "pmapi_prod nogui";
|
|
||||||
|
|
||||||
# FIXME: There's something fucky going on in the buildFlagsArray
|
|
||||||
# substitution. I shouldn't need to do this.
|
|
||||||
buildPhase =
|
|
||||||
let
|
|
||||||
t = "github.com/ProtonMail/proton-bridge/pkg/constants";
|
|
||||||
in
|
|
||||||
''
|
|
||||||
runHook preBuild
|
|
||||||
|
|
||||||
go install \
|
|
||||||
-tags="${tags}" \
|
|
||||||
-ldflags="-X ${t}.Version=1.3.2 -X ${t}.Revision=unknown -X ${t}.BuildDate=unknown" \
|
|
||||||
cmd/Desktop-Bridge/main.go
|
|
||||||
mv $GOPATH/bin/main $GOPATH/bin/Desktop-Bridge
|
|
||||||
|
|
||||||
runHook postBuild
|
|
||||||
'';
|
|
||||||
|
|
||||||
# Fix up name.
|
|
||||||
postInstall = ''
|
|
||||||
mv $out/bin/Desktop-Bridge $out/bin/protonmail-bridge
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
}
|
}
|
||||||
|
30
pkgs/applications/networking/protonmail-bridge/headless.nix
Normal file
30
pkgs/applications/networking/protonmail-bridge/headless.nix
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
{}:
|
||||||
|
|
||||||
|
rec {
|
||||||
|
pname = "protonmail-bridge-headless";
|
||||||
|
|
||||||
|
tags = "pmapi_prod nogui";
|
||||||
|
|
||||||
|
# FIXME: There's something fucky going on in the buildFlagsArray
|
||||||
|
# substitution. I shouldn't need to do this.
|
||||||
|
buildPhase =
|
||||||
|
let
|
||||||
|
t = "github.com/ProtonMail/proton-bridge/pkg/constants";
|
||||||
|
in
|
||||||
|
''
|
||||||
|
runHook preBuild
|
||||||
|
|
||||||
|
go install \
|
||||||
|
-tags="${tags}" \
|
||||||
|
-ldflags="-X ${t}.Version=1.3.2 -X ${t}.Revision=unknown -X ${t}.BuildDate=unknown" \
|
||||||
|
cmd/Desktop-Bridge/main.go
|
||||||
|
mv $GOPATH/bin/main $GOPATH/bin/Desktop-Bridge
|
||||||
|
|
||||||
|
runHook postBuild
|
||||||
|
'';
|
||||||
|
|
||||||
|
# Fix up name.
|
||||||
|
postInstall = ''
|
||||||
|
mv $out/bin/Desktop-Bridge $out/bin/protonmail-bridge
|
||||||
|
'';
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user