summary refs log tree commit diff
path: root/pkgs/applications/misc
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/applications/misc')
-rw-r--r--pkgs/applications/misc/calibre/default.nix4
-rw-r--r--pkgs/applications/misc/gammu/default.nix11
-rw-r--r--pkgs/applications/misc/gollum/Gemfile2
-rw-r--r--pkgs/applications/misc/gollum/Gemfile.lock55
-rw-r--r--pkgs/applications/misc/gollum/default.nix18
-rw-r--r--pkgs/applications/misc/gollum/gemset.nix170
-rw-r--r--pkgs/applications/misc/mdp/default.nix4
-rw-r--r--pkgs/applications/misc/mediainfo-gui/default.nix4
-rw-r--r--pkgs/applications/misc/mediainfo/default.nix4
-rw-r--r--pkgs/applications/misc/octoprint/0001-Don-t-use-static-library.patch113
-rw-r--r--pkgs/applications/misc/octoprint/0002-Try-to-create-connection-several-times-if-printer-is.patch57
-rw-r--r--pkgs/applications/misc/octoprint/default.nix43
-rw-r--r--pkgs/applications/misc/octoprint/plugins.nix83
-rw-r--r--pkgs/applications/misc/openbrf/default.nix36
-rw-r--r--pkgs/applications/misc/pdfpc/default.nix4
-rw-r--r--pkgs/applications/misc/pstree/default.nix5
-rw-r--r--pkgs/applications/misc/synergy/default.nix6
17 files changed, 602 insertions, 17 deletions
diff --git a/pkgs/applications/misc/calibre/default.nix b/pkgs/applications/misc/calibre/default.nix
index 010deb0b17e4..5e1bebf900c2 100644
--- a/pkgs/applications/misc/calibre/default.nix
+++ b/pkgs/applications/misc/calibre/default.nix
@@ -5,12 +5,12 @@
 }:
 
 stdenv.mkDerivation rec {
-  version = "2.50.1";
+  version = "2.51.0";
   name = "calibre-${version}";
 
   src = fetchurl {
     url = "http://download.calibre-ebook.com/${version}/${name}.tar.xz";
-    sha256 = "0fy5fwj53hl8bcl412d2y61xm1nmkry24dlanj07nn6dhmrs0cm9";
+    sha256 = "1rhpcxic4g2zyr5s3xn8dayyb45l9r8zyniaig8j7pl5kmsfjijn";
   };
 
   inherit python;
diff --git a/pkgs/applications/misc/gammu/default.nix b/pkgs/applications/misc/gammu/default.nix
index 36e45bd04856..fc88bb3e354f 100644
--- a/pkgs/applications/misc/gammu/default.nix
+++ b/pkgs/applications/misc/gammu/default.nix
@@ -1,5 +1,8 @@
 { stdenv, fetchurl, python, pkgconfig, cmake, bluez, libusb1, curl
-, libiconv, gettext, sqlite }:
+, libiconv, gettext, sqlite
+, dbiSupport ? false, libdbi ? null, libdbiDrivers ? null
+, postgresSupport ? false, postgresql ? null
+}:
 
 with stdenv.lib;
 
@@ -14,13 +17,15 @@ stdenv.mkDerivation rec {
 
   patches = [ ./bashcomp-dir.patch ];
 
-  buildInputs = [ python pkgconfig cmake bluez libusb1 curl gettext sqlite libiconv ];
+  buildInputs = [ python pkgconfig cmake bluez libusb1 curl gettext sqlite libiconv ]
+  ++ optionals dbiSupport [ libdbi libdbiDrivers ]
+  ++ optionals postgresSupport [ postgresql ];
 
   enableParallelBuilding = true;
 
   meta = {
     homepage = "http://wammu.eu/gammu/";
-    description = "Command line utility and library to control mobil phones";
+    description = "Command line utility and library to control mobile phones";
     license = licenses.gpl2;
     platforms = platforms.linux;
     maintainers = [ maintainers.coroa ];
diff --git a/pkgs/applications/misc/gollum/Gemfile b/pkgs/applications/misc/gollum/Gemfile
new file mode 100644
index 000000000000..525f54838b75
--- /dev/null
+++ b/pkgs/applications/misc/gollum/Gemfile
@@ -0,0 +1,2 @@
+source 'https://rubygems.org'
+gem 'gollum'
diff --git a/pkgs/applications/misc/gollum/Gemfile.lock b/pkgs/applications/misc/gollum/Gemfile.lock
new file mode 100644
index 000000000000..074a0c6fa43b
--- /dev/null
+++ b/pkgs/applications/misc/gollum/Gemfile.lock
@@ -0,0 +1,55 @@
+GEM
+  remote: https://rubygems.org/
+  specs:
+    charlock_holmes (0.7.3)
+    diff-lcs (1.2.5)
+    github-markup (1.3.3)
+    gitlab-grit (2.7.3)
+      charlock_holmes (~> 0.6)
+      diff-lcs (~> 1.1)
+      mime-types (~> 1.15)
+      posix-spawn (~> 0.3)
+    gollum (4.0.1)
+      gollum-lib (~> 4.0, >= 4.0.1)
+      kramdown (~> 1.8.0)
+      mustache (>= 0.99.5, < 1.0.0)
+      sinatra (~> 1.4, >= 1.4.4)
+      useragent (~> 0.14.0)
+    gollum-grit_adapter (1.0.0)
+      gitlab-grit (~> 2.7, >= 2.7.1)
+    gollum-lib (4.1.0)
+      github-markup (~> 1.3.3)
+      gollum-grit_adapter (~> 1.0)
+      nokogiri (~> 1.6.4)
+      rouge (~> 1.9)
+      sanitize (~> 2.1.0)
+      stringex (~> 2.5.1)
+    kramdown (1.8.0)
+    mime-types (1.25.1)
+    mini_portile2 (2.0.0)
+    mustache (0.99.8)
+    nokogiri (1.6.7.2)
+      mini_portile2 (~> 2.0.0.rc2)
+    posix-spawn (0.3.11)
+    rack (1.6.4)
+    rack-protection (1.5.3)
+      rack
+    rouge (1.10.1)
+    sanitize (2.1.0)
+      nokogiri (>= 1.4.4)
+    sinatra (1.4.7)
+      rack (~> 1.5)
+      rack-protection (~> 1.4)
+      tilt (>= 1.3, < 3)
+    stringex (2.5.2)
+    tilt (2.0.2)
+    useragent (0.14.0)
+
+PLATFORMS
+  ruby
+
+DEPENDENCIES
+  gollum
+
+BUNDLED WITH
+   1.10.6
diff --git a/pkgs/applications/misc/gollum/default.nix b/pkgs/applications/misc/gollum/default.nix
new file mode 100644
index 000000000000..1c58aec02332
--- /dev/null
+++ b/pkgs/applications/misc/gollum/default.nix
@@ -0,0 +1,18 @@
+{ stdenv, lib, bundlerEnv, ruby_2_2, icu, zlib }:
+
+bundlerEnv rec {
+  name = "gollum-${version}";
+  version = "4.0.1";
+
+  ruby = ruby_2_2;
+  gemfile = ./Gemfile;
+  lockfile = ./Gemfile.lock;
+  gemset = ./gemset.nix;
+
+  meta = with lib; {
+    description = "A simple, Git-powered wiki";
+    license = licenses.mit;
+    maintainers = with maintainers; [ jgillich ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/pkgs/applications/misc/gollum/gemset.nix b/pkgs/applications/misc/gollum/gemset.nix
new file mode 100644
index 000000000000..f0c71fa455cf
--- /dev/null
+++ b/pkgs/applications/misc/gollum/gemset.nix
@@ -0,0 +1,170 @@
+{
+  useragent = {
+    version = "0.14.0";
+    source = {
+      type = "gem";
+      remotes = ["https://rubygems.org"];
+      sha256 = "124r3mgkw1zjymsqq9r25zh1vwjrjgiji5fm620z53lpmmryj22j";
+    };
+  };
+  tilt = {
+    version = "2.0.2";
+    source = {
+      type = "gem";
+      remotes = ["https://rubygems.org"];
+      sha256 = "0lkd40xfdqkp333vdfhrfjmi2y7k2hjs4azawfb62mrkfp7ivj84";
+    };
+  };
+  stringex = {
+    version = "2.5.2";
+    source = {
+      type = "gem";
+      remotes = ["https://rubygems.org"];
+      sha256 = "150adm7rfh6r9b5ra6vk75mswf9m3wwyslcf8f235a08m29fxa17";
+    };
+  };
+  sinatra = {
+    version = "1.4.7";
+    source = {
+      type = "gem";
+      remotes = ["https://rubygems.org"];
+      sha256 = "1b81kbr65mmcl9cdq2r6yc16wklyp798rxkgmm5pr9fvsj7jwmxp";
+    };
+  };
+  sanitize = {
+    version = "2.1.0";
+    source = {
+      type = "gem";
+      remotes = ["https://rubygems.org"];
+      sha256 = "0xsv6xqrlz91rd8wifjknadbl3z5h6qphmxy0hjb189qbdghggn3";
+    };
+  };
+  rouge = {
+    version = "1.10.1";
+    source = {
+      type = "gem";
+      remotes = ["https://rubygems.org"];
+      sha256 = "0wp8as9ypdy18kdj9h70kny1rdfq71mr8cj2bpahr9vxjjvjasqz";
+    };
+  };
+  rack-protection = {
+    version = "1.5.3";
+    source = {
+      type = "gem";
+      remotes = ["https://rubygems.org"];
+      sha256 = "0cvb21zz7p9wy23wdav63z5qzfn4nialik22yqp6gihkgfqqrh5r";
+    };
+  };
+  rack = {
+    version = "1.6.4";
+    source = {
+      type = "gem";
+      remotes = ["https://rubygems.org"];
+      sha256 = "09bs295yq6csjnkzj7ncj50i6chfxrhmzg1pk6p0vd2lb9ac8pj5";
+    };
+  };
+  posix-spawn = {
+    version = "0.3.11";
+    source = {
+      type = "gem";
+      remotes = ["https://rubygems.org"];
+      sha256 = "052lnxbkvlnwfjw4qd7vn2xrlaaqiav6f5x5bcjin97bsrfq6cmr";
+    };
+  };
+  nokogiri = {
+    version = "1.6.7.2";
+    source = {
+      type = "gem";
+      remotes = ["https://rubygems.org"];
+      sha256 = "11sbmpy60ynak6s3794q32lc99hs448msjy8rkp84ay7mq7zqspv";
+    };
+  };
+  mustache = {
+    version = "0.99.8";
+    source = {
+      type = "gem";
+      remotes = ["https://rubygems.org"];
+      sha256 = "1g5hplm0k06vwxwqzwn1mq5bd02yp0h3rym4zwzw26aqi7drcsl2";
+    };
+  };
+  mini_portile2 = {
+    version = "2.0.0";
+    source = {
+      type = "gem";
+      remotes = ["https://rubygems.org"];
+      sha256 = "056drbn5m4khdxly1asmiik14nyllswr6sh3wallvsywwdiryz8l";
+    };
+  };
+  mime-types = {
+    version = "1.25.1";
+    source = {
+      type = "gem";
+      remotes = ["https://rubygems.org"];
+      sha256 = "0mhzsanmnzdshaba7gmsjwnv168r1yj8y0flzw88frw1cickrvw8";
+    };
+  };
+  kramdown = {
+    version = "1.8.0";
+    source = {
+      type = "gem";
+      remotes = ["https://rubygems.org"];
+      sha256 = "0ryqq055h5n10c1cfba6pxsssa907l2hkw29anp0d41ryh47ca2l";
+    };
+  };
+  gollum-lib = {
+    version = "4.1.0";
+    source = {
+      type = "gem";
+      remotes = ["https://rubygems.org"];
+      sha256 = "01s8pgzhc3cgcmsy6hh79wrcbn5vbadniq2a7d4qw87kpq7mzfdm";
+    };
+  };
+  gollum-grit_adapter = {
+    version = "1.0.0";
+    source = {
+      type = "gem";
+      remotes = ["https://rubygems.org"];
+      sha256 = "02c5qfq0s0kx2ifnpbnbgz6258fl7rchzzzc7vpx72shi8gbpac7";
+    };
+  };
+  gollum = {
+    version = "4.0.1";
+    source = {
+      type = "gem";
+      remotes = ["https://rubygems.org"];
+      sha256 = "02pgx083sns75zgnqx94p5h5bpr7cfiw5mys4ayb4k33hcjm6ydg";
+    };
+  };
+  gitlab-grit = {
+    version = "2.7.3";
+    source = {
+      type = "gem";
+      remotes = ["https://rubygems.org"];
+      sha256 = "0nv8shx7w7fww8lf5a2rbvf7bq173rllm381m6x7g1i0qqc68q1b";
+    };
+  };
+  github-markup = {
+    version = "1.3.3";
+    source = {
+      type = "gem";
+      remotes = ["https://rubygems.org"];
+      sha256 = "01r901wcgn0gs0n9h684gs5n90y1vaj9lxnx4z5ig611jwa43ivq";
+    };
+  };
+  diff-lcs = {
+    version = "1.2.5";
+    source = {
+      type = "gem";
+      remotes = ["https://rubygems.org"];
+      sha256 = "1vf9civd41bnqi6brr5d9jifdw73j9khc6fkhfl1f8r9cpkdvlx1";
+    };
+  };
+  charlock_holmes = {
+    version = "0.7.3";
+    source = {
+      type = "gem";
+      remotes = ["https://rubygems.org"];
+      sha256 = "0jsl6k27wjmssxbwv9wpf7hgp9r0nvizcf6qpjnr7qs2nia53lf7";
+    };
+  };
+}
\ No newline at end of file
diff --git a/pkgs/applications/misc/mdp/default.nix b/pkgs/applications/misc/mdp/default.nix
index 1a89bda888ee..45b0271f693e 100644
--- a/pkgs/applications/misc/mdp/default.nix
+++ b/pkgs/applications/misc/mdp/default.nix
@@ -1,12 +1,12 @@
 { stdenv, fetchurl, ncurses }:
 
 stdenv.mkDerivation rec {
-  version = "1.0.4";
+  version = "1.0.5";
   name = "mdp-${version}";
 
   src = fetchurl {
     url = "https://github.com/visit1985/mdp/archive/${version}.tar.gz";
-    sha256 = "1wvys3sb0ki7zz5b0y4bl9x6jdj7h88lxsf8vap95k1sj2ymanlm";
+    sha256 = "0ckd9k5571zc7pzxdx84gv8k103d5qp49f2i477a395fy2pnq4m8";
   };
 
   makeFlags = "PREFIX=$(out)";
diff --git a/pkgs/applications/misc/mediainfo-gui/default.nix b/pkgs/applications/misc/mediainfo-gui/default.nix
index 687584de553d..ffb4c147c776 100644
--- a/pkgs/applications/misc/mediainfo-gui/default.nix
+++ b/pkgs/applications/misc/mediainfo-gui/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl, automake, autoconf, libtool, pkgconfig, libzen, libmediainfo, wxGTK, desktop_file_utils, libSM, imagemagick }:
 
 stdenv.mkDerivation rec {
-  version = "0.7.81";
+  version = "0.7.82";
   name = "mediainfo-gui-${version}";
   src = fetchurl {
     url = "http://mediaarea.net/download/source/mediainfo/${version}/mediainfo_${version}.tar.xz";
-    sha256 = "1aah8y4kqhghqhcfm6ydgf3hj6q05dllfh0m1lbaij0y8yrrwz07";
+    sha256 = "0ivvmxx93aldfbms6wg46x9npghg304j2zxl5i70m710gybjr232";
   };
 
   buildInputs = [ automake autoconf libtool pkgconfig libzen libmediainfo wxGTK desktop_file_utils libSM imagemagick ];
diff --git a/pkgs/applications/misc/mediainfo/default.nix b/pkgs/applications/misc/mediainfo/default.nix
index 50454308fd20..5d953fed53a9 100644
--- a/pkgs/applications/misc/mediainfo/default.nix
+++ b/pkgs/applications/misc/mediainfo/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl, automake, autoconf, libtool, pkgconfig, libzen, libmediainfo, zlib }:
 
 stdenv.mkDerivation rec {
-  version = "0.7.81";
+  version = "0.7.82";
   name = "mediainfo-${version}";
   src = fetchurl {
     url = "http://mediaarea.net/download/source/mediainfo/${version}/mediainfo_${version}.tar.xz";
-    sha256 = "1aah8y4kqhghqhcfm6ydgf3hj6q05dllfh0m1lbaij0y8yrrwz07";
+    sha256 = "0ivvmxx93aldfbms6wg46x9npghg304j2zxl5i70m710gybjr232";
   };
 
   buildInputs = [ automake autoconf libtool pkgconfig libzen libmediainfo zlib ];
diff --git a/pkgs/applications/misc/octoprint/0001-Don-t-use-static-library.patch b/pkgs/applications/misc/octoprint/0001-Don-t-use-static-library.patch
new file mode 100644
index 000000000000..01b0c8f9cce9
--- /dev/null
+++ b/pkgs/applications/misc/octoprint/0001-Don-t-use-static-library.patch
@@ -0,0 +1,113 @@
+From 73ff28c3ee5b737303871268a5487db0fcffc0f6 Mon Sep 17 00:00:00 2001
+From: Nikolay Amiantov <ab@fmap.me>
+Date: Wed, 17 Feb 2016 14:37:31 +0300
+Subject: [PATCH 1/2] Don't use static library
+
+---
+ octoprint_m3dfio/__init__.py   | 67 +-----------------------------------------
+ shared library source/Makefile |  6 ++--
+ 2 files changed, 5 insertions(+), 68 deletions(-)
+
+diff --git a/octoprint_m3dfio/__init__.py b/octoprint_m3dfio/__init__.py
+index 5e5369b..9f59768 100644
+--- a/octoprint_m3dfio/__init__.py
++++ b/octoprint_m3dfio/__init__.py
+@@ -764,72 +764,7 @@ class M3DFioPlugin(
+ 		# Set file locations
+ 		self.setFileLocations()
+ 		
+-		# Check if running on Linux
+-		if platform.uname()[0].startswith("Linux") :
+-		
+-			# Check if running on a Raspberry Pi
+-			if platform.uname()[4].startswith("armv6l") and self.getCpuHardware() == "BCM2708" :
+-			
+-				# Set shared library
+-				self.sharedLibrary = ctypes.cdll.LoadLibrary(self._basefolder.replace('\\', '/') + "/static/libraries/preprocessor_arm1176jzf-s.so")
+-			
+-			# Otherwise check if running on a Raspberry Pi 2
+-			elif platform.uname()[4].startswith("armv7l") and self.getCpuHardware() == "BCM2709" :
+-			
+-				# Set shared library
+-				self.sharedLibrary = ctypes.cdll.LoadLibrary(self._basefolder.replace('\\', '/') + "/static/libraries/preprocessor_arm_cortex-a7.so")
+-			
+-			# Otherwise check if running on an ARM7 device
+-			elif platform.uname()[4].startswith("armv7") :
+-			
+-				# Set shared library
+-				self.sharedLibrary = ctypes.cdll.LoadLibrary(self._basefolder.replace('\\', '/') + "/static/libraries/preprocessor_arm7.so")
+-			
+-			# Otherwise check if using an i386 or x86-64 device
+-			elif platform.uname()[4].endswith("86") or platform.uname()[4].endswith("64") :
+-		
+-				# Check if Python is running as 32-bit
+-				if platform.architecture()[0].startswith("32") :
+-				
+-					# Set shared library
+-					self.sharedLibrary = ctypes.cdll.LoadLibrary(self._basefolder.replace('\\', '/') + "/static/libraries/preprocessor_i386.so")
+-			
+-				# Otherwise check if Python is running as 64-bit
+-				elif platform.architecture()[0].startswith("64") :
+-				
+-					# Set shared library
+-					self.sharedLibrary = ctypes.cdll.LoadLibrary(self._basefolder.replace('\\', '/') + "/static/libraries/preprocessor_x86-64.so")
+-		
+-		# Otherwise check if running on Windows and using an i386 or x86-64 device
+-		elif platform.uname()[0].startswith("Windows") and (platform.uname()[4].endswith("86") or platform.uname()[4].endswith("64")) :
+-		
+-			# Check if Python is running as 32-bit
+-			if platform.architecture()[0].startswith("32") :
+-			
+-				# Set shared library
+-				self.sharedLibrary = ctypes.cdll.LoadLibrary(self._basefolder.replace('\\', '/') + "/static/libraries/preprocessor_i386.dll")
+-		
+-			# Otherwise check if Python is running as 64-bit
+-			elif platform.architecture()[0].startswith("64") :
+-			
+-				# Set shared library
+-				self.sharedLibrary = ctypes.cdll.LoadLibrary(self._basefolder.replace('\\', '/') + "/static/libraries/preprocessor_x86-64.dll")
+-		
+-		# Otherwise check if running on OS X and using an i386 or x86-64 device
+-		elif platform.uname()[0].startswith("Darwin") and (platform.uname()[4].endswith("86") or platform.uname()[4].endswith("64")) :
+-		
+-			# Check if Python is running as 32-bit
+-			if platform.architecture()[0].startswith("32") :
+-			
+-				# Set shared library
+-				self.sharedLibrary = ctypes.cdll.LoadLibrary(self._basefolder.replace('\\', '/') + "/static/libraries/preprocessor_i386.dylib")
+-		
+-			# Otherwise check if Python is running as 64-bit
+-			elif platform.architecture()[0].startswith("64") :
+-			
+-				# Set shared library
+-				self.sharedLibrary = ctypes.cdll.LoadLibrary(self._basefolder.replace('\\', '/') + "/static/libraries/preprocessor_x86-64.dylib")
+-		
++		self.sharedLibrary = ctypes.cdll.LoadLibrary(self._basefolder.replace('\\', '/') + "/../../../libpreprocessor.so")
+ 		# Check if shared library was set
+ 		if self.sharedLibrary :
+ 		
+diff --git a/shared library source/Makefile b/shared library source/Makefile
+index 4062a91..89dab71 100644
+--- a/shared library source/Makefile	
++++ b/shared library source/Makefile	
+@@ -58,13 +58,15 @@ ifeq ($(TARGET_PLATFORM), OSX64)
+ 	CFLAGS = -fPIC -m64 -stdlib=libc++ -O3 -Wl,-install_name,$(PROG)$(VER)
+ endif
+ 
++PROG = lib$(LIBRARY_NAME).so
++CC = g++
+ SRCS = preprocessor.cpp gcode.cpp vector.cpp
+-CFLAGS += -Wall -std=c++11 -fvisibility=hidden -shared
++CFLAGS = -O3 -fPIC -Wall -std=c++11 -fvisibility=hidden -shared
+ 
+ all: $(PROG)
+ 
+ $(PROG):   $(SRCS)
+-	$(CC) $(CFLAGS) -o ../octoprint_m3dfio/static/libraries/$(PROG) $(SRCS)
++	$(CC) $(CFLAGS) -o $(PROG) $(SRCS)
+ 
+ clean:
+ 	rm -f ../octoprint_m3dfio/static/libraries/$(PROG)
+-- 
+2.7.0
+
diff --git a/pkgs/applications/misc/octoprint/0002-Try-to-create-connection-several-times-if-printer-is.patch b/pkgs/applications/misc/octoprint/0002-Try-to-create-connection-several-times-if-printer-is.patch
new file mode 100644
index 000000000000..63495fd6db9c
--- /dev/null
+++ b/pkgs/applications/misc/octoprint/0002-Try-to-create-connection-several-times-if-printer-is.patch
@@ -0,0 +1,57 @@
+From b99fc3fd012765c5b3d8ac7a3f64762af5121b4a Mon Sep 17 00:00:00 2001
+From: Nikolay Amiantov <ab@fmap.me>
+Date: Wed, 17 Feb 2016 15:47:34 +0300
+Subject: [PATCH 2/2] Try to create connection several times if printer is not
+ yet available
+
+---
+ octoprint_m3dfio/__init__.py | 25 ++++++++++++++++++++++---
+ 1 file changed, 22 insertions(+), 3 deletions(-)
+
+diff --git a/octoprint_m3dfio/__init__.py b/octoprint_m3dfio/__init__.py
+index 9f59768..e7d97eb 100644
+--- a/octoprint_m3dfio/__init__.py
++++ b/octoprint_m3dfio/__init__.py
+@@ -3421,8 +3421,16 @@ class M3DFioPlugin(
+ 						# Set updated port
+ 						currentPort = self.getPort()
+ 					
+-						# Re-connect
+-						connection = serial.Serial(currentPort, currentBaudrate)
++						# Re-connect; wait for the device to be available
++                                                connection = None
++                                                for i in range(1, 5):
++						        try:
++                                                                connection = serial.Serial(currentPort, currentBaudrate)
++                                                                break
++                                                        except OSError:
++                                                                time.sleep(1)
++                                                if connection is None:
++                                                        raise Exception("Couldn't reconnect to the printer")
+ 				
+ 					# Check if getting EEPROM was successful
+ 					if self.getEeprom(connection) :
+@@ -6799,8 +6807,19 @@ class M3DFioPlugin(
+ 		# Set state to connecting
+ 		comm_instance._log("Connecting to: " + str(port))
+ 		
++                # Create a connection
++                connection = None
++                for i in range(1, 5):
++                        try:
++                                connection = serial.Serial(str(port), baudrate)
++                        # If printer has just power-cycled it may not yet be ready
++                        except OSError:
++                                time.sleep(1)
++                if connection is None:
++                        raise Exception("Couldn't reconnect to the printer")
++
+ 		# Return connection
+-		return serial.Serial(str(port), baudrate)
++		return connection
+ 	
+ 	# Disable sleep
+ 	def disableSleep(self) :
+-- 
+2.7.0
+
diff --git a/pkgs/applications/misc/octoprint/default.nix b/pkgs/applications/misc/octoprint/default.nix
new file mode 100644
index 000000000000..3e8b35ba4350
--- /dev/null
+++ b/pkgs/applications/misc/octoprint/default.nix
@@ -0,0 +1,43 @@
+{ stdenv, fetchFromGitHub, pythonPackages }:
+
+pythonPackages.buildPythonPackage rec {
+  name = "OctoPrint-${version}";
+  version = "1.2.9";
+
+  src = fetchFromGitHub {
+    owner = "foosel";
+    repo = "OctoPrint";
+    rev = version;
+    sha256 = "00hhq52jqwykhk3p57mn9kkcjbjz6g9mcrp96vx8lqzhw42m3a86";
+  };
+
+  # We need old Tornado
+  propagatedBuildInputs = with pythonPackages; [
+    awesome-slugify flask_assets watchdog rsa requests2 pkginfo pylru
+    semantic-version flask_principal sarge tornado_4_0_1 werkzeug netaddr flaskbabel
+    netifaces psutil pyserial flask_login pyyaml sockjs-tornado
+  ];
+
+  postPatch = ''
+    # Jailbreak dependencies
+    sed -i \
+      -e 's,rsa==,rsa>=,g' \
+      -e 's,sockjs-tornado==,sockjs-tornado>=,g' \
+      -e 's,Flask-Principal==,Flask-Principal>=,g' \
+      -e 's,werkzeug==,werkzeug>=,g' \
+      -e 's,netaddr==,netaddr>=,g' \
+      -e 's,requests==,requests>=,g' \
+      -e 's,netifaces==,netifaces>=,g' \
+      -e 's,psutil==,psutil>=,g' \
+      -e 's,PyYAML==,PyYAML>=,g' \
+      setup.py
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = http://octoprint.org/;
+    description = "The snappy web interface for your 3D printer";
+    platforms = platforms.all;
+    license = licenses.agpl3;
+    maintainers = with maintainers; [ abbradar ];
+  };
+}
diff --git a/pkgs/applications/misc/octoprint/plugins.nix b/pkgs/applications/misc/octoprint/plugins.nix
new file mode 100644
index 000000000000..801be43220d9
--- /dev/null
+++ b/pkgs/applications/misc/octoprint/plugins.nix
@@ -0,0 +1,83 @@
+{ stdenv, fetchFromGitHub, octoprint, pythonPackages }:
+
+let
+  buildPlugin = args: pythonPackages.buildPythonPackage (args // {
+    buildInputs = (args.buildInputs or []) ++ [ octoprint ];
+  });
+in {
+
+  m3d-fio = buildPlugin rec {
+    name = "M3D-Fio-${version}";
+    version = "0.26";
+
+    src = fetchFromGitHub {
+      owner = "donovan6000";
+      repo = "M3D-Fio";
+      rev = "V${version}";
+      sha256 = "1dl8m0cxp2vzla2a729r3jrq5ahxkj10pygp7m9bblj5nn2s0rll";
+    };
+
+    patches = [
+      ./0001-Don-t-use-static-library.patch
+      ./0002-Try-to-create-connection-several-times-if-printer-is.patch
+    ];
+
+    postInstall = ''
+    (
+      cd 'shared library source'
+      make
+      install -Dm755 libpreprocessor.so $out/lib/libpreprocessor.so
+    )
+    rm -rf $out/${pythonPackages.python.sitePackages}/octoprint_m3dfio/static/libraries
+    '';
+
+    meta = with stdenv.lib; {
+      homepage = https://github.com/donovan6000/M3D-Fio;
+      description = " OctoPrint plugin for the Micro 3D printer";
+      platforms = platforms.all;
+      license = licenses.gpl3;
+      maintainers = with maintainers; [ abbradar ];
+    };
+  };
+
+  titlestatus = buildPlugin rec {
+    name = "OctoPrint-TitleStatus-${version}";
+    version = "0.0.2";
+
+    src = fetchFromGitHub {
+      owner = "MoonshineSG";
+      repo = "OctoPrint-TitleStatus";
+      rev = version;
+      sha256 = "0rfbpxbcmadyihcrynh6bjywy3yqnzsnjn3yiwifisbrjgpm6sfw";
+    };
+
+    meta = with stdenv.lib; {
+      homepage = https://github.com/MoonshineSG/OctoPrint-TitleStatus;
+      description = "Show printers status in window title";
+      platforms = platforms.all;
+      license = licenses.agpl3;
+      maintainers = with maintainers; [ abbradar ];
+    };
+  };
+
+  stlviewer = buildPlugin rec {
+    name = "OctoPrint-STLViewer-${version}";
+    version = "0.3.0";
+
+    src = fetchFromGitHub {
+      owner = "jneilliii";
+      repo = "OctoPrint-STLViewer";
+      rev = "v${version}";
+      sha256 = "1a6sa8pw9ay7x27pfwr3nzb22x3jaw0c9vwyz4mrj76zkiw6svfi";
+    };
+
+    meta = with stdenv.lib; {
+      homepage = https://github.com/jneilliii/Octoprint-STLViewer;
+      description = "A simple stl viewer tab for OctoPrint";
+      platforms = platforms.all;
+      license = licenses.agpl3;
+      maintainers = with maintainers; [ abbradar ];
+    };
+  };
+
+}
diff --git a/pkgs/applications/misc/openbrf/default.nix b/pkgs/applications/misc/openbrf/default.nix
new file mode 100644
index 000000000000..478f02b970e5
--- /dev/null
+++ b/pkgs/applications/misc/openbrf/default.nix
@@ -0,0 +1,36 @@
+{ stdenv, fetchFromGitHub, qt4, vcg, glew }:
+
+stdenv.mkDerivation {
+  name = "openbrf-2016-01-09";
+
+  src = fetchFromGitHub {
+    owner = "cfcohen";
+    repo = "openbrf";
+    rev = "c18d7431e1d499cee11586f4a035fb5fdc0d3330";
+    sha256 = "0laikpz0ljz7l5fgapwj09ygizmvj1iywnpfgfd0i14j46s134xb";
+  };
+
+  buildInputs = [ qt4 vcg glew ];
+
+  enableParallelBuilding = true;
+
+  postPatch = ''
+    sed -i 's,^VCGLIB .*,VCGLIB = ${vcg}/include,' openBrf.pro
+  '';
+
+  configurePhase = ''
+    qmake PREFIX=$out openBrf.pro
+  '';
+
+  installPhase = ''
+    install -Dm755 openBrf $out/bin/openBrf
+  '';
+
+  meta = with stdenv.lib; {
+    description = "A tool to edit resource files (BRF)";
+    homepage = https://github.com/cfcohen/openbrf;
+    maintainers = with stdenv.lib.maintainers; [ abbradar ];
+    license = licenses.free;
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/applications/misc/pdfpc/default.nix b/pkgs/applications/misc/pdfpc/default.nix
index 9e908b5a2db0..7dceaeb8a969 100644
--- a/pkgs/applications/misc/pdfpc/default.nix
+++ b/pkgs/applications/misc/pdfpc/default.nix
@@ -4,13 +4,13 @@
 stdenv.mkDerivation rec {
   name = "${product}-${version}";
   product = "pdfpc";
-  version = "4.0.1";
+  version = "4.0.2";
 
   src = fetchFromGitHub {
     repo = "pdfpc";
     owner = "pdfpc";
     rev = "v${version}";
-    sha256 = "06m30xz9jzfj6ljnsgqqg1myj13nqpc7ria9wr8aa62kp4n7bcfp";
+    sha256 = "0151i9msagcqcfaddgd1vkmman0qgqy6s3714sqas568r4r9ngdk";
   };
 
   nativeBuildInputs = [ cmake pkgconfig ];
diff --git a/pkgs/applications/misc/pstree/default.nix b/pkgs/applications/misc/pstree/default.nix
index 3d526e3f3e72..cfa772e8b5ef 100644
--- a/pkgs/applications/misc/pstree/default.nix
+++ b/pkgs/applications/misc/pstree/default.nix
@@ -4,7 +4,10 @@ stdenv.mkDerivation rec {
   name = "pstree-2.39";
 
   src = fetchurl {
-    url = "http://www.sfr-fresh.com/unix/misc/${name}.tar.gz";
+    urls = [
+      "http://www.sfr-fresh.com/unix/misc/${name}.tar.gz"
+      "http://distfiles.macports.org/pstree/${name}.tar.gz"
+    ];
     sha256 = "17s7v15c4gryjpi11y1xq75022nkg4ggzvjlq2dkmyg67ssc76vw";
   };
 
diff --git a/pkgs/applications/misc/synergy/default.nix b/pkgs/applications/misc/synergy/default.nix
index ac60d9285876..16323bd22571 100644
--- a/pkgs/applications/misc/synergy/default.nix
+++ b/pkgs/applications/misc/synergy/default.nix
@@ -5,13 +5,13 @@ with stdenv.lib;
 
 stdenv.mkDerivation rec {
   name = "synergy-${version}";
-  version = "1.7.4";
+  version = "1.7.5";
 
   src = fetchFromGitHub {
-    owner = "synergy";
+    owner = "symless";
     repo = "synergy";
     rev = "v${version}-stable";
-    sha256 = "0pxj0qpnsaffpaxik8vc5rjfinmx8ab3b2lssrxkfbs7isskvs33";
+    sha256 = "02zv8m7yagx80wi7m0ckglfqjqyrj6rd1gywxzqzl6841scmf87n";
   };
 
   postPatch = ''