Browse Source

nix: add drvs for libpurple, purple-discord & build a docker image

master
eta 3 years ago
parent
commit
c3407d462f
  1. 2
      .gitignore
  2. 4
      backends/libpurple/utils.cpp
  3. 14
      nix/default.nix
  4. 20
      nix/docker.nix
  5. 20
      nix/libpurple.nix

2
.gitignore vendored

@ -41,4 +41,4 @@ localhost.port @@ -41,4 +41,4 @@ localhost.port
*.a
*.pyc
.result
result

4
backends/libpurple/utils.cpp

@ -18,10 +18,6 @@ @@ -18,10 +18,6 @@
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA
*/
// win32/libc_interface.h defines its own socket(), read() and so on.
// We don't want to use it here.
#define _LIBC_INTERFACE_H_ 1
#include "utils.h"
#include <string.h>

14
default.nix → nix/default.nix

@ -1,5 +1,6 @@ @@ -1,5 +1,6 @@
{ pkgs ? import <nixpkgs> {}, libpurple ? import ./libpurple.nix {}, ... }:
let
pkgs = import <nixpkgs> {};
pkgs-eta = import (builtins.fetchTarball {
# Descriptive name to make the store path easier to identify
name = "nixos-with-fixed-swiften";
@ -12,12 +13,15 @@ let @@ -12,12 +13,15 @@ let
rev = "647d0821b590ee96056f4593640534542d8700e5";
sha256 = "sha256:0ks37vclz2jww9q0fvkk9jyhscw0ial8yx2fpakra994dm12yy1d";
};
inherit (import gitignoreSrc { inherit (pkgs) lib; }) gitignoreSource;
inherit (import gitignoreSrc { inherit (pkgs) lib; }) gitignoreFilter;
filter = gitignoreFilter ../.;
in
with pkgs;
stdenv.mkDerivation {
name = "spectrum2";
src = gitignoreSource ./.;
nativeBuildInputs = [ cmake ];
buildInputs = [ pkgs-eta.swiften zlib expat boost libpqxx postgresql.lib pidgin libev sqlite log4cxx glib pcre boost protobuf curl jsoncpp popt ];
src = builtins.filterSource
(path: type: !(lib.strings.hasSuffix (baseNameOf path) "nix") && filter path type)
../.;
nativeBuildInputs = [ cmake pkg-config ];
buildInputs = [ pkgs-eta.swiften zlib expat boost libpqxx postgresql.lib libpurple libev sqlite log4cxx glib pcre boost protobuf curl jsoncpp popt ];
}

20
nix/docker.nix

@ -0,0 +1,20 @@ @@ -0,0 +1,20 @@
let
pkgs = import <nixpkgs> {};
libpurple = import ./libpurple.nix { pkgs = pkgs; };
spectrum2 = import ./default.nix { pkgs = pkgs; libpurple = libpurple; };
purple-discord = pkgs.purple-discord.overrideAttrs (origAttrs: rec {
version = "unstable-2020-06-16";
buildInputs = [ pkgs.json-glib libpurple pkgs.imagemagick ];
src = pkgs.fetchFromGitHub {
owner = "EionRobb";
repo = "purple-discord";
rev = "b0daa37f0ecf7bcfea60163ac3273dd7064ec133";
sha256 = "0iqz8p6cfd7yvr31r7npcafz3azs1pf4j7dnw134v93dcvamz2hh";
};
});
in
pkgs.dockerTools.buildLayeredImage {
name = "spectrum2";
contents = [ spectrum2 purple-discord ];
config.Entrypoint = [ "${spectrum2}/bin/spectrum2" ];
}

20
nix/libpurple.nix

@ -0,0 +1,20 @@ @@ -0,0 +1,20 @@
{ pkgs ? import <nixpkgs> {}, ... }:
pkgs.pidgin.overrideAttrs (origAttrs: rec {
pname = "libpurple";
buildInputs = origAttrs.buildInputs ++ origAttrs.propagatedBuildInputs;
configureFlags = origAttrs.configureFlags ++ [
"--disable-avahi"
"--disable-gstreamer"
"--disable-meanwhile"
"--disable-gnutls"
"--disable-cyrus-sasl"
"--disable-farstream"
"--disable-vv"
"--disable-dbus"
"--disable-schemas-install"
];
propagatedBuildInputs = [];
preInstall = ''cd libpurple'';
postInstall = ''rm -rf $out/bin'';
})
Loading…
Cancel
Save