Merge pull request #80370 from gnidorah/rambox
rambox: don't build from sources
This commit is contained in:
commit
bec89d1893
@ -1,56 +0,0 @@
|
|||||||
{ stdenv, fetchFromGitHub, fetchNodeModules, nodejs-10_x, ruby, sencha
|
|
||||||
, auth0ClientID, auth0Domain }:
|
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
|
||||||
pname = "rambox-bare";
|
|
||||||
version = "0.7.3";
|
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
|
||||||
owner = "ramboxapp";
|
|
||||||
repo = "community-edition";
|
|
||||||
rev = version;
|
|
||||||
sha256 = "03pwzyij2i5m23qzhyqdcipixmqj46qbjmq626swwqy03a0p91qv";
|
|
||||||
};
|
|
||||||
|
|
||||||
nativeBuildInputs = [ nodejs-10_x ruby sencha ];
|
|
||||||
|
|
||||||
node_modules = fetchNodeModules {
|
|
||||||
inherit src;
|
|
||||||
|
|
||||||
nodejs = nodejs-10_x;
|
|
||||||
sha256 = "05vb0r0q3ckg2g87fsm22j0cbfvk81q5z43zwmrzh3pb3zh54xj1";
|
|
||||||
};
|
|
||||||
|
|
||||||
patches = [ ./isDev.patch ];
|
|
||||||
|
|
||||||
configurePhase = ''
|
|
||||||
echo 'var auth0Cfg = { clientID: "${auth0ClientID}", domain: "${auth0Domain}" };' > env.js
|
|
||||||
ln -s ${node_modules} node_modules
|
|
||||||
'';
|
|
||||||
|
|
||||||
buildPhase = ''
|
|
||||||
mkdir ../rambox-build
|
|
||||||
npm run sencha:compile:build
|
|
||||||
'';
|
|
||||||
|
|
||||||
installPhase = ''
|
|
||||||
mv ../rambox-build/ $out
|
|
||||||
|
|
||||||
# https://github.com/saenzramiro/rambox/issues/1281
|
|
||||||
echo '{"name": "rambox", "version": "${version}", "main": "electron/main.js"}' > $out/package.json
|
|
||||||
|
|
||||||
# https://github.com/saenzramiro/rambox/issues/1282
|
|
||||||
cp --parents ext/packages/ext-locale/build/ext-locale-*.js $out
|
|
||||||
|
|
||||||
# Symbolic link causes `Uncaught Error: Cannot find module 'immutable'`
|
|
||||||
cp -r ${node_modules} $out/node_modules
|
|
||||||
'';
|
|
||||||
|
|
||||||
meta = with stdenv.lib; {
|
|
||||||
description = "Messaging and emailing app that combines common web applications into one";
|
|
||||||
homepage = http://rambox.pro;
|
|
||||||
license = licenses.gpl3;
|
|
||||||
maintainers = with maintainers; [ gnidorah ];
|
|
||||||
platforms = platforms.linux;
|
|
||||||
};
|
|
||||||
}
|
|
@ -1,52 +1,50 @@
|
|||||||
{ stdenv, newScope, makeWrapper
|
{ stdenv, fetchurl, xdg_utils, dpkg, makeWrapper, autoPatchelfHook
|
||||||
, electron, xdg_utils, makeDesktopItem
|
, libXtst, libXScrnSaver, gtk3, nss, alsaLib, udev, libnotify
|
||||||
, auth0ClientID ? "0spuNKfIGeLAQ_Iki9t3fGxbfJl3k8SU"
|
}:
|
||||||
, auth0Domain ? "nixpkgs.auth0.com" }:
|
|
||||||
|
|
||||||
let
|
let
|
||||||
callPackage = newScope self;
|
version = "0.7.3";
|
||||||
self = {
|
in stdenv.mkDerivation rec {
|
||||||
fetchNodeModules = callPackage ./fetchNodeModules.nix {};
|
pname = "rambox";
|
||||||
rambox-bare = callPackage ./bare.nix {
|
inherit version;
|
||||||
inherit auth0ClientID auth0Domain;
|
src = {
|
||||||
|
x86_64-linux = fetchurl {
|
||||||
|
url = "https://github.com/ramboxapp/community-edition/releases/download/${version}/Rambox-${version}-linux-amd64.deb";
|
||||||
|
sha256 = "09v8zlayas906zhqy2aw4wkvyl87ykr09sjf0nmgmf69piwmjgg6";
|
||||||
};
|
};
|
||||||
sencha = callPackage ./sencha {};
|
i686-linux = fetchurl {
|
||||||
};
|
url = "https://github.com/ramboxapp/community-edition/releases/download/${version}/Rambox-${version}-linux-i386.deb";
|
||||||
desktopItem = makeDesktopItem rec {
|
sha256 = "0gv4pf3vhrw4xyccm24ivv92d9qy4zpwsh0m82ib1w764lyxmyrz";
|
||||||
name = "Rambox";
|
};
|
||||||
exec = "rambox";
|
}.${stdenv.system} or (throw "Unsupported system: ${stdenv.system}");
|
||||||
icon = "${self.rambox-bare}/resources/Icon.png";
|
|
||||||
desktopName = name;
|
|
||||||
genericName = "Rambox messenger";
|
|
||||||
categories = "Network;";
|
|
||||||
};
|
|
||||||
in
|
|
||||||
|
|
||||||
with self;
|
nativeBuildInputs = [ dpkg makeWrapper autoPatchelfHook ];
|
||||||
|
buildInputs = [ libXtst libXScrnSaver gtk3 nss alsaLib ];
|
||||||
|
runtimeDependencies = [ udev.lib libnotify ];
|
||||||
|
|
||||||
stdenv.mkDerivation {
|
unpackPhase = "dpkg-deb -x $src .";
|
||||||
name = "rambox-${rambox-bare.version}";
|
|
||||||
|
|
||||||
nativeBuildInputs = [ makeWrapper ];
|
|
||||||
|
|
||||||
dontUnpack = true;
|
|
||||||
|
|
||||||
dontWrapGApps = true; # we only want $gappsWrapperArgs here
|
|
||||||
|
|
||||||
installPhase = ''
|
installPhase = ''
|
||||||
runHook preInstall
|
mkdir -p $out/bin
|
||||||
mkdir -p $out/share/applications
|
cp -r opt $out
|
||||||
ln -s ${desktopItem}/share/applications/* $out/share/applications
|
ln -s $out/opt/Rambox/rambox $out/bin
|
||||||
runHook postInstall
|
|
||||||
|
# provide resources
|
||||||
|
cp -r usr/share $out
|
||||||
|
substituteInPlace $out/share/applications/rambox.desktop \
|
||||||
|
--replace Exec=/opt/Rambox/rambox Exec=rambox
|
||||||
'';
|
'';
|
||||||
|
|
||||||
postFixup = ''
|
postFixup = ''
|
||||||
makeWrapper ${electron}/bin/electron $out/bin/rambox \
|
wrapProgram $out/opt/Rambox/rambox --prefix PATH : ${xdg_utils}/bin
|
||||||
--add-flags "${rambox-bare} --without-update" \
|
|
||||||
--prefix PATH : ${xdg_utils}/bin
|
|
||||||
'';
|
'';
|
||||||
|
|
||||||
meta = rambox-bare.meta // {
|
meta = with stdenv.lib; {
|
||||||
platforms = [ "i686-linux" "x86_64-linux" ];
|
description = "Free and Open Source messaging and emailing app that combines common web applications into one";
|
||||||
|
homepage = http://rambox.pro;
|
||||||
|
license = licenses.mit;
|
||||||
|
maintainers = [ maintainers.gnidorah ];
|
||||||
|
platforms = ["i686-linux" "x86_64-linux"];
|
||||||
|
hydraPlatforms = [];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -1,14 +0,0 @@
|
|||||||
https://github.com/saenzramiro/rambox/issues/1280
|
|
||||||
|
|
||||||
diff -urNZ a/electron/main.js b/electron/main.js
|
|
||||||
--- a/electron/main.js 2017-11-02 14:58:06.085127616 +0000
|
|
||||||
+++ b/electron/main.js 2017-11-02 14:58:18.316887679 +0000
|
|
||||||
@@ -8,7 +8,7 @@
|
|
||||||
// Configuration
|
|
||||||
const Config = require('electron-config');
|
|
||||||
// Development
|
|
||||||
-const isDev = require('electron-is-dev');
|
|
||||||
+const isDev = false;
|
|
||||||
// Updater
|
|
||||||
const updater = require('./updater');
|
|
||||||
// File System
|
|
@ -1,43 +0,0 @@
|
|||||||
{ stdenv, fetchurl, gzip, which, unzip, jdk }:
|
|
||||||
|
|
||||||
let
|
|
||||||
version = "6.6.0.13";
|
|
||||||
srcs = {
|
|
||||||
i686-linux = fetchurl {
|
|
||||||
url = "https://cdn.sencha.com/cmd/${version}/no-jre/SenchaCmd-${version}-linux-i386.sh.zip";
|
|
||||||
sha256 = "15b197108b49mf0afpihkh3p68lxm7580zz2w0xsbahglnvhwyfz";
|
|
||||||
};
|
|
||||||
x86_64-linux = fetchurl {
|
|
||||||
url = "https://cdn.sencha.com/cmd/${version}/no-jre/SenchaCmd-${version}-linux-amd64.sh.zip";
|
|
||||||
sha256 = "1cxhckmx1802p9qiw09cgb1v5f30wcvnrwkshmia8p8n0q47lpp4";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
in
|
|
||||||
|
|
||||||
stdenv.mkDerivation {
|
|
||||||
inherit version;
|
|
||||||
|
|
||||||
pname = "sencha-bare";
|
|
||||||
src = srcs.${stdenv.hostPlatform.system};
|
|
||||||
|
|
||||||
nativeBuildInputs = [ gzip which unzip ];
|
|
||||||
buildInputs = [ jdk ];
|
|
||||||
|
|
||||||
sourceRoot = ".";
|
|
||||||
|
|
||||||
configurePhase = ''
|
|
||||||
substituteAll ${./response.varfile} response.varfile
|
|
||||||
'';
|
|
||||||
|
|
||||||
installPhase = ''
|
|
||||||
./SenchaCmd*.sh -q -dir $out -varfile response.varfile
|
|
||||||
# disallow sencha writing into /nix/store/repo
|
|
||||||
echo "repo.local.dir=$TMP/repo" >> $out/sencha.cfg
|
|
||||||
rm $out/shell-wrapper.sh $out/Uninstaller
|
|
||||||
'';
|
|
||||||
|
|
||||||
meta = with stdenv.lib; {
|
|
||||||
license = licenses.unfree;
|
|
||||||
platforms = attrNames srcs;
|
|
||||||
};
|
|
||||||
}
|
|
@ -1,17 +0,0 @@
|
|||||||
{ stdenv, callPackage, makeWrapper }:
|
|
||||||
|
|
||||||
let
|
|
||||||
sencha-bare = callPackage ./bare.nix {};
|
|
||||||
in
|
|
||||||
|
|
||||||
stdenv.mkDerivation {
|
|
||||||
name = "sencha-${sencha-bare.version}";
|
|
||||||
|
|
||||||
nativeBuildInputs = [ makeWrapper ];
|
|
||||||
|
|
||||||
dontUnpack = true;
|
|
||||||
|
|
||||||
installPhase = ''
|
|
||||||
makeWrapper ${sencha-bare}/sencha $out/bin/sencha
|
|
||||||
'';
|
|
||||||
}
|
|
@ -1,13 +0,0 @@
|
|||||||
addToPath$Integer=1
|
|
||||||
parentDir=.
|
|
||||||
sys.adminRights$Boolean=false
|
|
||||||
sys.component.148$Boolean=true
|
|
||||||
sys.component.157$Boolean=true
|
|
||||||
sys.component.26$Boolean=true
|
|
||||||
sys.component.30$Boolean=true
|
|
||||||
sys.component.90$Boolean=true
|
|
||||||
sys.component.91$Boolean=true
|
|
||||||
sys.component.92$Boolean=true
|
|
||||||
sys.component.94$Boolean=true
|
|
||||||
sys.installationDir=@out@
|
|
||||||
sys.languageId=en
|
|
@ -6,7 +6,7 @@
|
|||||||
# https://github.com/NixOS/nixpkgs/pull/54425#discussion_r250688781
|
# https://github.com/NixOS/nixpkgs/pull/54425#discussion_r250688781
|
||||||
|
|
||||||
let
|
let
|
||||||
fetchNodeModules = callPackage ../../networking/instant-messengers/rambox/fetchNodeModules.nix { };
|
fetchNodeModules = callPackage ./fetchNodeModules.nix { };
|
||||||
|
|
||||||
python = python37.override {
|
python = python37.override {
|
||||||
packageOverrides = self: super: {
|
packageOverrides = self: super: {
|
||||||
|
Loading…
Reference in New Issue
Block a user