about summary refs log tree commit diff
path: root/nixpkgs/pkgs/development/guile-modules
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/development/guile-modules')
-rw-r--r--nixpkgs/pkgs/development/guile-modules/guile-cairo/default.nix50
-rw-r--r--nixpkgs/pkgs/development/guile-modules/guile-commonmark/default.nix42
-rw-r--r--nixpkgs/pkgs/development/guile-modules/guile-fibers/default.nix39
-rw-r--r--nixpkgs/pkgs/development/guile-modules/guile-gcrypt/default.nix45
-rw-r--r--nixpkgs/pkgs/development/guile-modules/guile-git/default.nix48
-rw-r--r--nixpkgs/pkgs/development/guile-modules/guile-gnome/default.nix70
-rw-r--r--nixpkgs/pkgs/development/guile-modules/guile-json/default.nix39
-rw-r--r--nixpkgs/pkgs/development/guile-modules/guile-lib/default.nix49
-rw-r--r--nixpkgs/pkgs/development/guile-modules/guile-ncurses/default.nix55
-rw-r--r--nixpkgs/pkgs/development/guile-modules/guile-opengl/default.nix29
-rw-r--r--nixpkgs/pkgs/development/guile-modules/guile-reader/default.nix51
-rw-r--r--nixpkgs/pkgs/development/guile-modules/guile-sdl/default.nix50
-rw-r--r--nixpkgs/pkgs/development/guile-modules/guile-sdl2/default.nix52
-rw-r--r--nixpkgs/pkgs/development/guile-modules/guile-ssh/default.nix51
-rw-r--r--nixpkgs/pkgs/development/guile-modules/guile-xcb/default.nix38
15 files changed, 708 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/development/guile-modules/guile-cairo/default.nix b/nixpkgs/pkgs/development/guile-modules/guile-cairo/default.nix
new file mode 100644
index 000000000000..1ea76cb237df
--- /dev/null
+++ b/nixpkgs/pkgs/development/guile-modules/guile-cairo/default.nix
@@ -0,0 +1,50 @@
+{ lib
+, stdenv
+, fetchurl
+, cairo
+, expat
+, guile
+, guile-lib
+, pkg-config
+}:
+
+stdenv.mkDerivation rec {
+  pname = "guile-cairo";
+  version = "1.11.2";
+
+  src = fetchurl {
+    url = "mirror://savannah/${pname}/${pname}-${version}.tar.gz";
+    hash = "sha256-YjLU3Cxb2dMxE5s7AfQ0PD4fucp4mDYaaZIGcwlBoHs=";
+  };
+
+  nativeBuildInputs = [
+    pkg-config
+  ];
+  buildInputs = [
+    cairo
+    expat
+    guile
+  ];
+
+  enableParallelBuilding = true;
+
+  doCheck = false; # Cannot find unit-test module from guile-lib
+  checkInputs = [ guile-lib ];
+
+  meta = with lib; {
+    homepage = "https://www.nongnu.org/guile-cairo/";
+    description = "Cairo bindings for GNU Guile";
+    longDescription = ''
+      Guile-Cairo wraps the Cairo graphics library for Guile Scheme.
+
+      Guile-Cairo is complete, wrapping almost all of the Cairo API.  It is API
+      stable, providing a firm base on which to do graphics work.  Finally, and
+      importantly, it is pleasant to use.  You get a powerful and well
+      maintained graphics library with all of the benefits of Scheme: memory
+      management, exceptions, macros, and a dynamic programming environment.
+    '';
+    license = licenses.lgpl3Plus;
+    maintainers = with maintainers; [ vyp ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/development/guile-modules/guile-commonmark/default.nix b/nixpkgs/pkgs/development/guile-modules/guile-commonmark/default.nix
new file mode 100644
index 000000000000..113fad13600c
--- /dev/null
+++ b/nixpkgs/pkgs/development/guile-modules/guile-commonmark/default.nix
@@ -0,0 +1,42 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, autoreconfHook
+, guile
+, pkg-config
+}:
+
+stdenv.mkDerivation rec {
+  pname = "guile-commonmark";
+  version = "0.1.2";
+
+  src = fetchFromGitHub {
+    owner = "OrangeShark";
+    repo = pname;
+    rev = "v${version}";
+    hash = "sha256-qYDcIiObKOU8lmcfk327LMPx/2Px9ecI3QLrSWWLxMo=";
+  };
+
+  nativeBuildInputs = [
+    autoreconfHook
+    pkg-config
+  ];
+  buildInputs = [
+    guile
+  ];
+
+  # https://github.com/OrangeShark/guile-commonmark/issues/20
+  doCheck = false;
+
+  makeFlags = [
+    "GUILE_AUTO_COMPILE=0"
+  ];
+
+  meta = with lib; {
+    homepage = "https://github.com/OrangeShark/guile-commonmark";
+    description = "Implementation of CommonMark for Guile";
+    license = licenses.lgpl3Plus;
+    maintainers = with maintainers; [ AndersonTorres ];
+    platforms = guile.meta.platforms;
+  };
+}
diff --git a/nixpkgs/pkgs/development/guile-modules/guile-fibers/default.nix b/nixpkgs/pkgs/development/guile-modules/guile-fibers/default.nix
new file mode 100644
index 000000000000..ccc51a5a7691
--- /dev/null
+++ b/nixpkgs/pkgs/development/guile-modules/guile-fibers/default.nix
@@ -0,0 +1,39 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, autoreconfHook
+, guile
+, pkg-config
+, texinfo
+}:
+
+stdenv.mkDerivation rec {
+  pname = "guile-fibers";
+  version = "1.0.0";
+
+  src = fetchFromGitHub {
+    owner = "wingo";
+    repo = "fibers";
+    rev = "v${version}";
+    hash = "sha256-kU/ty/XRNfv3ubIwH40wZmo8MXApeduHcH2KEGqoh+Q=";
+  };
+
+  nativeBuildInputs = [
+    autoreconfHook
+    pkg-config
+  ];
+  buildInputs = [
+    guile
+    texinfo
+  ];
+
+  autoreconfPhase = "./autogen.sh";
+
+  meta = with lib; {
+    homepage = "https://github.com/wingo/fibers";
+    description = "Concurrent ML-like concurrency for Guile";
+    license = licenses.lgpl3Plus;
+    maintainers = with maintainers; [ vyp ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/development/guile-modules/guile-gcrypt/default.nix b/nixpkgs/pkgs/development/guile-modules/guile-gcrypt/default.nix
new file mode 100644
index 000000000000..73152fb9d2c3
--- /dev/null
+++ b/nixpkgs/pkgs/development/guile-modules/guile-gcrypt/default.nix
@@ -0,0 +1,45 @@
+{ lib
+, stdenv
+, fetchFromGitea
+, guile
+, libgcrypt
+, autoreconfHook
+, pkg-config
+, texinfo
+}:
+
+stdenv.mkDerivation rec {
+  pname = "guile-gcrypt";
+  version = "0.3.0";
+
+  src = fetchFromGitea {
+    domain = "notabug.org";
+    owner = "cwebber";
+    repo = "guile-gcrypt";
+    rev = "v${version}";
+    sha256 = "sha256-lAaiKBOdTFWEWsmwKgx0C67ACvtnEKUxti66dslzSVQ=";
+  };
+
+  postConfigure = ''
+    sed -i '/moddir\s*=/s%=.*%=''${out}/share/guile/site%' Makefile;
+    sed -i '/godir\s*=/s%=.*%=''${out}/share/guile/ccache%' Makefile;
+  '';
+
+  nativeBuildInputs = [
+    autoreconfHook pkg-config texinfo
+  ];
+  buildInputs = [
+    guile
+  ];
+  propagatedBuildInputs = [
+    libgcrypt
+  ];
+
+  meta = with lib; {
+    description = "Bindings to Libgcrypt for GNU Guile";
+    homepage = "https://notabug.org/cwebber/guile-gcrypt";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ ethancedwards8 ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/development/guile-modules/guile-git/default.nix b/nixpkgs/pkgs/development/guile-modules/guile-git/default.nix
new file mode 100644
index 000000000000..254afae0cc4f
--- /dev/null
+++ b/nixpkgs/pkgs/development/guile-modules/guile-git/default.nix
@@ -0,0 +1,48 @@
+{ lib
+, stdenv
+, fetchFromGitLab
+, guile
+, libgit2
+, scheme-bytestructures
+, autoreconfHook
+, pkg-config
+, texinfo
+}:
+
+stdenv.mkDerivation rec {
+  pname = "guile-git";
+  version = "0.5.1";
+
+  src = fetchFromGitLab {
+    owner = "guile-git";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "7Cnuyk9xAPTvz9R44O3lvKDrT6tUQui7YzxIoqhRfPQ=";
+  };
+
+  postConfigure = ''
+    sed -i '/moddir\s*=/s%=.*%=''${out}/share/guile/site%' Makefile;
+    sed -i '/godir\s*=/s%=.*%=''${out}/share/guile/ccache%' Makefile;
+  '';
+
+  nativeBuildInputs = [
+    autoreconfHook pkg-config texinfo
+  ];
+  buildInputs = [
+    guile
+  ];
+  propagatedBuildInputs = [
+    libgit2 scheme-bytestructures
+  ];
+
+  enableParallelBuilding = true;
+
+  meta = with lib; {
+    description = "Bindings to Libgit2 for GNU Guile";
+    homepage = "https://gitlab.com/guile-git/guile-git";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ ethancedwards8 ];
+    platforms = platforms.linux;
+  };
+}
+
diff --git a/nixpkgs/pkgs/development/guile-modules/guile-gnome/default.nix b/nixpkgs/pkgs/development/guile-modules/guile-gnome/default.nix
new file mode 100644
index 000000000000..ead08ce0231b
--- /dev/null
+++ b/nixpkgs/pkgs/development/guile-modules/guile-gnome/default.nix
@@ -0,0 +1,70 @@
+{ lib
+, stdenv
+, fetchurl
+, gconf
+, glib
+, gnome_vfs
+, gtk2
+, guile
+, guile-cairo
+, guile-lib
+, gwrap
+, libglade
+, libgnome
+, libgnomecanvas
+, libgnomeui
+, pango
+, pkg-config
+, texinfo
+}:
+
+stdenv.mkDerivation rec {
+  pname = "guile-gnome-platform";
+  version = "2.16.4";
+
+  src = fetchurl {
+    url = "mirror://gnu/guile-gnome/${pname}/${pname}-${version}.tar.gz";
+    hash = "sha256-ravUjtWZPYUo/WBOCqDZatgaYdBtps3WgyNXKtbCFsM=";
+  };
+
+  nativeBuildInputs = [
+    pkg-config
+    texinfo
+  ];
+  buildInputs = [
+    gconf
+    glib
+    gnome_vfs
+    gtk2
+    guile
+    guile-cairo
+    gwrap
+    libglade
+    libgnome
+    libgnomecanvas
+    libgnomeui
+    pango
+  ] ++ lib.optional doCheck guile-lib;
+
+  # The test suite tries to open an X display, which fails.
+  doCheck = false;
+
+  makeFlags = [
+    "GUILE_AUTO_COMPILE=0"
+  ];
+
+  meta = with lib; {
+    homepage = "https://www.gnu.org/software/guile-gnome/";
+    description = "GNOME bindings for GNU Guile";
+    longDescription = ''
+      GNU guile-gnome brings the power of Scheme to your graphical application.
+      guile-gnome modules support the entire Gnome library stack: from Pango to
+      GnomeCanvas, GTK to GStreamer, Glade to GtkSourceView, you will find in
+      guile-gnome a comprehensive environment for developing modern
+      applications.
+    '';
+    license = licenses.gpl2Plus;
+    maintainers = with maintainers; [ vyp ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/development/guile-modules/guile-json/default.nix b/nixpkgs/pkgs/development/guile-modules/guile-json/default.nix
new file mode 100644
index 000000000000..5433bbb1aa64
--- /dev/null
+++ b/nixpkgs/pkgs/development/guile-modules/guile-json/default.nix
@@ -0,0 +1,39 @@
+{ lib
+, stdenv
+, fetchurl
+, guile
+, texinfo
+, pkg-config
+}:
+
+stdenv.mkDerivation rec {
+  pname = "guile-json";
+  version = "4.5.2";
+
+  src = fetchurl {
+    url = "mirror://savannah/guile-json/${pname}-${version}.tar.gz";
+    sha256 = "GrBG7DaxxEwEGsJ1Vo2Bh4TXH6uaXZX5Eoz+iiUFGTM=";
+  };
+
+  postConfigure = ''
+    sed -i '/moddir\s*=/s%=.*%=''${out}/share/guile/site%' Makefile;
+    sed -i '/objdir\s*=/s%=.*%=''${out}/share/guile/ccache%' Makefile;
+    sed -i '/moddir\s*=/s%=.*%=''${out}/share/guile/site/json%' json/Makefile;
+    sed -i '/objdir\s*=/s%=.*%=''${out}/share/guile/ccache/json%' json/Makefile;
+  '';
+
+  nativeBuildInputs = [
+    pkg-config texinfo
+  ];
+  buildInputs = [
+    guile
+  ];
+
+  meta = with lib; {
+    description = "JSON Bindings for GNU Guile";
+    homepage = "https://savannah.nongnu.org/projects/guile-json";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ ethancedwards8 ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/development/guile-modules/guile-lib/default.nix b/nixpkgs/pkgs/development/guile-modules/guile-lib/default.nix
new file mode 100644
index 000000000000..50c6a1daefb2
--- /dev/null
+++ b/nixpkgs/pkgs/development/guile-modules/guile-lib/default.nix
@@ -0,0 +1,49 @@
+{ lib
+, stdenv
+, fetchurl
+, guile
+, pkg-config
+, texinfo
+}:
+
+assert stdenv ? cc && stdenv.cc.isGNU;
+
+stdenv.mkDerivation rec {
+  pname = "guile-lib";
+  version = "0.2.6.1";
+
+  src = fetchurl {
+    url = "mirror://savannah/${pname}/${pname}-${version}.tar.gz";
+    hash = "sha256-bR09DxTbnSgLjUJ9bh3sRBfd0Cv/I71Zguy24mLrPyo=";
+  };
+
+  nativeBuildInputs = [
+    pkg-config
+  ];
+  buildInputs = [
+    guile
+    texinfo
+  ];
+
+  doCheck = true;
+
+  preCheck = ''
+    # Make `libgcc_s.so' visible for `pthread_cancel'.
+    export LD_LIBRARY_PATH=\
+    "$(dirname $(echo ${stdenv.cc.cc.lib}/lib*/libgcc_s.so))''${LD_LIBRARY_PATH:+:}$LD_LIBRARY_PATH"
+  '';
+
+  meta = with lib; {
+    homepage = "https://www.nongnu.org/guile-lib/";
+    description = "A collection of useful Guile Scheme modules";
+    longDescription = ''
+      guile-lib is intended as an accumulation place for pure-scheme Guile
+      modules, allowing for people to cooperate integrating their generic Guile
+      modules into a coherent library.  Think "a down-scaled, limited-scope CPAN
+      for Guile".
+    '';
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ vyp ];
+    platforms = platforms.gnu ++ platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/development/guile-modules/guile-ncurses/default.nix b/nixpkgs/pkgs/development/guile-modules/guile-ncurses/default.nix
new file mode 100644
index 000000000000..1e6418b0c3c7
--- /dev/null
+++ b/nixpkgs/pkgs/development/guile-modules/guile-ncurses/default.nix
@@ -0,0 +1,55 @@
+{ lib
+, stdenv
+, fetchurl
+, pkg-config
+, guile
+, libffi
+, ncurses
+}:
+
+stdenv.mkDerivation rec {
+  pname = "guile-ncurses";
+  version = "1.7";
+
+  src = fetchurl {
+    url = "mirror://gnu/${pname}/${pname}-${version}.tar.gz";
+    hash = "sha256-JZPNoQuIl5XayUpm0RdWNg8TT2LZGDOuFoae9crZe5Q=";
+  };
+
+  nativeBuildInputs = [
+    pkg-config
+  ];
+  buildInputs = [
+    guile
+    libffi
+    ncurses
+  ];
+
+  preConfigure = ''
+    configureFlags="$configureFlags --with-guilesitedir=$out/share/guile/site"
+  '';
+
+  postFixup = ''
+    for f in $out/share/guile/site/ncurses/**.scm; do \
+      substituteInPlace $f \
+        --replace "libguile-ncurses" "$out/lib/libguile-ncurses"; \
+    done
+  '';
+
+  # XXX: 1 of 65 tests failed.
+  doCheck = false;
+
+  meta = with lib; {
+    homepage = "https://www.gnu.org/software/guile-ncurses/";
+    description = "Scheme interface to the NCurses libraries";
+    longDescription = ''
+      GNU Guile-Ncurses is a library for the Guile Scheme interpreter that
+      provides functions for creating text user interfaces.  The text user
+      interface functionality is built on the ncurses libraries: curses, form,
+      panel, and menu.
+    '';
+    license = licenses.lgpl3Plus;
+    maintainers = with maintainers; [ vyp ];
+    platforms = platforms.gnu ++ platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/development/guile-modules/guile-opengl/default.nix b/nixpkgs/pkgs/development/guile-modules/guile-opengl/default.nix
new file mode 100644
index 000000000000..437af0f4edf2
--- /dev/null
+++ b/nixpkgs/pkgs/development/guile-modules/guile-opengl/default.nix
@@ -0,0 +1,29 @@
+{ lib
+, stdenv
+, fetchurl
+, guile
+, pkg-config
+}:
+
+stdenv.mkDerivation rec {
+  pname = "guile-opengl";
+  version = "0.1.0";
+
+  src = fetchurl {
+    url = "mirror://gnu/${pname}/${pname}-${version}.tar.gz";
+    hash = "sha256-NdK5UwUszX5B0kKbynG8oD2PCKIGpZ1x91ktBDvpDo8=";
+  };
+
+  nativeBuildInputs = [
+    pkg-config
+    guile
+  ];
+
+  meta = with lib; {
+    homepage = "https://www.gnu.org/software/guile-opengl/";
+    description = "Guile bindings for the OpenGL graphics API";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ vyp ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/development/guile-modules/guile-reader/default.nix b/nixpkgs/pkgs/development/guile-modules/guile-reader/default.nix
new file mode 100644
index 000000000000..1675ac0e333a
--- /dev/null
+++ b/nixpkgs/pkgs/development/guile-modules/guile-reader/default.nix
@@ -0,0 +1,51 @@
+{ lib
+, stdenv
+, fetchurl
+, fetchpatch
+, gperf
+, guile
+, guile-lib
+, libffi
+, pkg-config
+}:
+
+stdenv.mkDerivation rec {
+  pname = "guile-reader";
+  version = "0.6.3";
+
+  src = fetchurl {
+    url = "http://download.savannah.nongnu.org/releases/${pname}/${pname}-${version}.tar.gz";
+    hash = "sha256-OMK0ROrbuMDKt42QpE7D6/9CvUEMW4SpEBjO5+tk0rs=";
+  };
+
+  nativeBuildInputs = [
+    pkg-config
+  ];
+  buildInputs = [
+    gperf
+    guile
+    guile-lib
+    libffi
+  ];
+
+  GUILE_SITE="${guile-lib}/share/guile/site";
+
+  configureFlags = [ "--with-guilemoduledir=$(out)/share/guile/site" ];
+
+  meta = with lib; {
+    homepage = "https://www.nongnu.org/guile-reader/";
+    description = "A simple framework for building readers for GNU Guile";
+    longDescription = ''
+       Guile-Reader is a simple framework for building readers for GNU Guile.
+
+       The idea is to make it easy to build procedures that extend Guile's read
+       procedure. Readers supporting various syntax variants can easily be
+       written, possibly by re-using existing "token readers" of a standard
+       Scheme readers. For example, it is used to implement Skribilo's
+       R5RS-derived document syntax.
+    '';
+    license = licenses.lgpl3Plus;
+    maintainers = with maintainers; [ AndersonTorres ];
+    platforms = platforms.gnu;
+  };
+}
diff --git a/nixpkgs/pkgs/development/guile-modules/guile-sdl/default.nix b/nixpkgs/pkgs/development/guile-modules/guile-sdl/default.nix
new file mode 100644
index 000000000000..c6e250e6d717
--- /dev/null
+++ b/nixpkgs/pkgs/development/guile-modules/guile-sdl/default.nix
@@ -0,0 +1,50 @@
+{ lib
+, stdenv
+, fetchurl
+, SDL
+, SDL_image
+, SDL_mixer
+, SDL_ttf
+, buildEnv
+, guile
+, pkg-config
+}:
+
+stdenv.mkDerivation rec {
+  pname = "guile-sdl";
+  version = "0.5.2";
+
+  src = fetchurl {
+    url = "mirror://gnu/${pname}/${pname}-${version}.tar.xz";
+    hash = "sha256-ATx1bnnDlj69h6ZUy7wd2lVsuDGS424sFCIlJQLQTzI=";
+  };
+
+  nativeBuildInputs = [
+    guile
+    pkg-config
+  ];
+  buildInputs = [
+    SDL.dev
+    SDL_image
+    SDL_mixer
+    SDL_ttf
+  ];
+
+  makeFlags = let
+    sdl-env = buildEnv {
+      name = "sdl-env";
+      paths = buildInputs;
+    };
+  in [
+    "GUILE_AUTO_COMPILE=0"
+    "SDLMINUSI=-I${sdl-env}/include/SDL"
+  ];
+
+  meta = with lib; {
+    homepage = "https://www.gnu.org/software/guile-sdl/";
+    description = "Guile bindings for SDL";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ vyp ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/development/guile-modules/guile-sdl2/default.nix b/nixpkgs/pkgs/development/guile-modules/guile-sdl2/default.nix
new file mode 100644
index 000000000000..c6fbba93de47
--- /dev/null
+++ b/nixpkgs/pkgs/development/guile-modules/guile-sdl2/default.nix
@@ -0,0 +1,52 @@
+{ lib
+, stdenv
+, fetchurl
+, SDL2
+, SDL2_image
+, SDL2_mixer
+, SDL2_ttf
+, guile
+, libtool
+, pkg-config
+}:
+
+stdenv.mkDerivation rec {
+  pname = "guile-sdl2";
+  version = "0.5.0";
+
+  src = fetchurl {
+    url = "https://files.dthompson.us/${pname}/${pname}-${version}.tar.gz";
+    hash = "sha256-lWTLctPUDqvN/Y95oOL7LF3czlLJFQ9d9np9dx4DHYU=";
+  };
+
+  nativeBuildInputs = [
+    pkg-config
+    libtool
+  ];
+  buildInputs = [
+    SDL2
+    SDL2_image
+    SDL2_mixer
+    SDL2_ttf
+    guile
+  ];
+
+  configureFlags = [
+    "--with-libsdl2-image-prefix=${SDL2_image}"
+    "--with-libsdl2-mixer-prefix=${SDL2_mixer}"
+    "--with-libsdl2-prefix=${SDL2}"
+    "--with-libsdl2-ttf-prefix=${SDL2_ttf}"
+  ];
+
+  makeFlags = [
+    "GUILE_AUTO_COMPILE=0"
+  ];
+
+  meta = with lib; {
+    homepage = "https://dthompson.us/projects/guile-sdl2.html";
+    description = "Bindings to SDL2 for GNU Guile";
+    license = licenses.lgpl3Plus;
+    maintainers = with maintainers; [ seppeljordan vyp ];
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/development/guile-modules/guile-ssh/default.nix b/nixpkgs/pkgs/development/guile-modules/guile-ssh/default.nix
new file mode 100644
index 000000000000..b7e742384df6
--- /dev/null
+++ b/nixpkgs/pkgs/development/guile-modules/guile-ssh/default.nix
@@ -0,0 +1,51 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, guile
+, libssh
+, autoreconfHook
+, pkg-config
+, texinfo
+, which
+}:
+
+stdenv.mkDerivation rec {
+  pname = "guile-ssh";
+  version = "0.13.1";
+
+  src = fetchFromGitHub {
+    owner = "artyom-poptsov";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "LzTR1QuK3mle0Q6a4YRn9ZTkcs1sygYKoezxI9+e/fY=";
+  };
+
+  configureFlags = [ "--with-guilesitedir=\${out}/share/guile/site" ];
+
+  postFixup = ''
+    for f in $out/share/guile/site/ssh/**.scm; do \
+      substituteInPlace $f \
+        --replace "libguile-ssh" "$out/lib/libguile-ssh"; \
+    done
+  '';
+
+  nativeBuildInputs = [
+    autoreconfHook pkg-config texinfo which
+  ];
+  buildInputs = [
+    guile
+  ];
+  propagatedBuildInputs = [
+    libssh
+  ];
+
+  enableParallelBuilding = true;
+
+  meta = with lib; {
+    description = "Bindings to Libssh for GNU Guile";
+    homepage = "https://github.com/artyom-poptsov/guile-ssh";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ ethancedwards8 ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/development/guile-modules/guile-xcb/default.nix b/nixpkgs/pkgs/development/guile-modules/guile-xcb/default.nix
new file mode 100644
index 000000000000..72066313ecaa
--- /dev/null
+++ b/nixpkgs/pkgs/development/guile-modules/guile-xcb/default.nix
@@ -0,0 +1,38 @@
+{ lib
+, stdenv
+, fetchurl
+, guile
+, pkg-config
+, texinfo
+}:
+
+stdenv.mkDerivation rec {
+  pname = "guile-xcb";
+  version = "1.3";
+
+  src = fetchurl {
+    url = "http://www.markwitmer.com/dist/${pname}-${version}.tar.gz";
+    hash = "sha256-iYR6AYSTgUsURAEJTWcdHlc0f8LzEftAIsfonBteuxE=";
+  };
+
+  nativeBuildInputs = [
+    pkg-config
+  ];
+  buildInputs = [
+    guile
+    texinfo
+  ];
+
+  configureFlags = [
+    "--with-guile-site-dir=$out/share/guile/site"
+    "--with-guile-site-ccache-dir=$out/share/guile/site"
+  ];
+
+  meta = with lib; {
+    homepage = "http://www.markwitmer.com/guile-xcb/guile-xcb.html";
+    description = "XCB bindings for Guile";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ vyp ];
+    platforms = platforms.linux;
+  };
+}