commit
ae74c356d9
@ -1,66 +1,55 @@ |
||||
{pkgs, config, lib, ...}: |
||||
{ config, lib, pkgs, ... }: |
||||
|
||||
let |
||||
|
||||
inherit (lib) mkOption mkIf singleton; |
||||
|
||||
inherit (pkgs) uptimed; |
||||
with lib; |
||||
|
||||
let |
||||
cfg = config.services.uptimed; |
||||
stateDir = "/var/spool/uptimed"; |
||||
|
||||
uptimedUser = "uptimed"; |
||||
|
||||
in |
||||
|
||||
{ |
||||
|
||||
###### interface |
||||
|
||||
options = { |
||||
|
||||
services.uptimed = { |
||||
|
||||
enable = mkOption { |
||||
default = false; |
||||
description = '' |
||||
Uptimed allows you to track your highest uptimes. |
||||
Enable <literal>uptimed</literal>, allowing you to track |
||||
your highest uptimes. |
||||
''; |
||||
}; |
||||
|
||||
}; |
||||
|
||||
}; |
||||
|
||||
|
||||
###### implementation |
||||
|
||||
config = mkIf config.services.uptimed.enable { |
||||
|
||||
environment.systemPackages = [ uptimed ]; |
||||
|
||||
users.extraUsers = singleton |
||||
{ name = uptimedUser; |
||||
uid = config.ids.uids.uptimed; |
||||
description = "Uptimed daemon user"; |
||||
home = stateDir; |
||||
}; |
||||
config = mkIf cfg.enable { |
||||
users.extraUsers.uptimed = { |
||||
description = "Uptimed daemon user"; |
||||
home = stateDir; |
||||
createHome = true; |
||||
uid = config.ids.uids.uptimed; |
||||
}; |
||||
|
||||
systemd.services.uptimed = { |
||||
description = "Uptimed daemon"; |
||||
wantedBy = [ "multi-user.target" ]; |
||||
unitConfig.Documentation = "man:uptimed(8) man:uprecords(1)"; |
||||
description = "uptimed service"; |
||||
wantedBy = [ "multi-user.target" ]; |
||||
|
||||
serviceConfig = { |
||||
Restart = "on-failure"; |
||||
User = "uptimed"; |
||||
Nice = 19; |
||||
IOSchedulingClass = "idle"; |
||||
PrivateTmp = "yes"; |
||||
PrivateNetwork = "yes"; |
||||
NoNewPrivileges = "yes"; |
||||
ReadWriteDirectories = stateDir; |
||||
InaccessibleDirectories = "/home"; |
||||
ExecStart = "${pkgs.uptimed}/sbin/uptimed -f -p ${stateDir}/pid"; |
||||
}; |
||||
|
||||
preStart = '' |
||||
mkdir -m 0755 -p ${stateDir} |
||||
chown ${uptimedUser} ${stateDir} |
||||
|
||||
if ! test -f ${stateDir}/bootid ; then |
||||
${uptimed}/sbin/uptimed -b |
||||
${pkgs.uptimed}/sbin/uptimed -b |
||||
fi |
||||
''; |
||||
|
||||
script = "${uptimed}/sbin/uptimed"; |
||||
}; |
||||
|
||||
}; |
||||
|
||||
} |
||||
|
@ -0,0 +1,19 @@ |
||||
# Basic test to make sure grsecurity works |
||||
|
||||
import ./make-test.nix ({ pkgs, ...} : { |
||||
name = "grsecurity"; |
||||
meta = with pkgs.stdenv.lib.maintainers; { |
||||
maintainers = [ copumpkin ]; |
||||
}; |
||||
|
||||
machine = { config, pkgs, ... }: |
||||
{ boot.kernelPackages = pkgs.linuxPackages_grsec_testing_server; }; |
||||
|
||||
testScript = |
||||
'' |
||||
$machine->succeed("uname -a") =~ /grsec/; |
||||
# FIXME: this seems to hang the whole test. Unclear why, but let's fix it |
||||
# $machine->succeed("${pkgs.paxtest}/bin/paxtest blackhat"); |
||||
''; |
||||
}) |
||||
|
@ -0,0 +1,26 @@ |
||||
import ./make-test.nix ({ pkgs, ...} : { |
||||
name = "postgresql"; |
||||
meta = with pkgs.stdenv.lib.maintainers; { |
||||
maintainers = [ zagy ]; |
||||
}; |
||||
|
||||
nodes = { |
||||
master = |
||||
{ pkgs, config, ... }: |
||||
|
||||
{ |
||||
services.postgresql.enable = true; |
||||
services.postgresql.initialScript = pkgs.writeText "postgresql-init.sql" |
||||
'' |
||||
CREATE ROLE postgres WITH superuser login createdb; |
||||
''; |
||||
}; |
||||
}; |
||||
|
||||
testScript = '' |
||||
startAll; |
||||
$master->waitForUnit("postgresql"); |
||||
$master->sleep(10); # Hopefully this is long enough!! |
||||
$master->succeed("echo 'select 1' | sudo -u postgres psql"); |
||||
''; |
||||
}) |
@ -0,0 +1,54 @@ |
||||
{ stdenv, makeDesktopItem, freetype, fontconfig, libX11, libXrender, zlib, jre, glib, gtk, libXtst, webkitgtk2, makeWrapper, ... }: |
||||
|
||||
{ name, src ? builtins.getAttr stdenv.system sources, sources ? null, description }: |
||||
|
||||
stdenv.mkDerivation rec { |
||||
inherit name src; |
||||
|
||||
desktopItem = makeDesktopItem { |
||||
name = "Eclipse"; |
||||
exec = "eclipse"; |
||||
icon = "eclipse"; |
||||
comment = "Integrated Development Environment"; |
||||
desktopName = "Eclipse IDE"; |
||||
genericName = "Integrated Development Environment"; |
||||
categories = "Application;Development;"; |
||||
}; |
||||
|
||||
buildInputs = [ makeWrapper ]; |
||||
|
||||
buildCommand = '' |
||||
# Unpack tarball. |
||||
mkdir -p $out |
||||
tar xfvz $src -C $out |
||||
|
||||
# Patch binaries. |
||||
interpreter=$(echo ${stdenv.glibc}/lib/ld-linux*.so.2) |
||||
libCairo=$out/eclipse/libcairo-swt.so |
||||
patchelf --set-interpreter $interpreter $out/eclipse/eclipse |
||||
[ -f $libCairo ] && patchelf --set-rpath ${freetype}/lib:${fontconfig}/lib:${libX11}/lib:${libXrender}/lib:${zlib}/lib $libCairo |
||||
|
||||
# Create wrapper script. Pass -configuration to store |
||||
# settings in ~/.eclipse/org.eclipse.platform_<version> rather |
||||
# than ~/.eclipse/org.eclipse.platform_<version>_<number>. |
||||
productId=$(sed 's/id=//; t; d' $out/eclipse/.eclipseproduct) |
||||
productVersion=$(sed 's/version=//; t; d' $out/eclipse/.eclipseproduct) |
||||
|
||||
makeWrapper $out/eclipse/eclipse $out/bin/eclipse \ |
||||
--prefix PATH : ${jre}/bin \ |
||||
--prefix LD_LIBRARY_PATH : ${glib}/lib:${gtk}/lib:${libXtst}/lib${stdenv.lib.optionalString (webkitgtk2 != null) ":${webkitgtk2}/lib"} \ |
||||
--add-flags "-configuration \$HOME/.eclipse/''${productId}_$productVersion/configuration" |
||||
|
||||
# Create desktop item. |
||||
mkdir -p $out/share/applications |
||||
cp ${desktopItem}/share/applications/* $out/share/applications |
||||
mkdir -p $out/share/pixmaps |
||||
ln -s $out/eclipse/icon.xpm $out/share/pixmaps/eclipse.xpm |
||||
''; # */ |
||||
|
||||
meta = { |
||||
homepage = http://www.eclipse.org/; |
||||
inherit description; |
||||
}; |
||||
|
||||
} |
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -1,15 +0,0 @@ |
||||
Work around Python misdetection and set `PYTHON_LIBS' to
|
||||
"-L/nix/store/... -lpython2.4" instead of "/nix/store/.../libpython2.4.so".
|
||||
Changed to 2.5.
|
||||
|
||||
--- inkscape-0.45.1/configure 2007-03-20 14:56:43.000000000 +0100
|
||||
+++ inkscape-0.45.1/configure 2008-02-22 16:19:10.000000000 +0100
|
||||
@@ -10202,7 +10202,7 @@ if test "x$with_python" = "xyes"; then
|
||||
if test "$?" -gt "0"; then
|
||||
with_python="no"
|
||||
else
|
||||
- checkPYTHON_LIBS=`python -c "import distutils.sysconfig ; print '%s/%s %s' % (distutils.sysconfig.get_config_var('LIBPL'),distutils.sysconfig.get_config_var('LDLIBRARY'),distutils.sysconfig.get_config_var('LIBS'))" 2>/dev/null`
|
||||
+ checkPYTHON_LIBS=`python -c "import distutils.sysconfig ; print '-L%s -lpython2.5 %s' % (distutils.sysconfig.get_config_var('LIBDIR'),distutils.sysconfig.get_config_var('LIBS'))" 2>/dev/null`
|
||||
if test "$?" -gt "0"; then
|
||||
with_python="no"
|
||||
else
|
@ -1,10 +1,10 @@ |
||||
{ callPackage, fetchgit, ... } @ args: |
||||
|
||||
callPackage ./generic.nix (args // { |
||||
version = "2016-01-09"; |
||||
version = "2016-01-25"; |
||||
src = fetchgit { |
||||
sha256 = "440f88a4126841cfd139b17902ceb940bbf189defe21b208e93bfd474cfb16e8"; |
||||
rev = "f78e85cad666492fadd5612af77fa7c84e270a12"; |
||||
sha256 = "db1fecd671bd8b3a777138bb4815285b4364ee3ad01ab05424b4aa0c20ed9919"; |
||||
rev = "056f590f2d147099554d97a89dd5e0ddfa8d6dda"; |
||||
url = "git://alioth.debian.org/git/sane/sane-backends.git"; |
||||
}; |
||||
}) |
||||
|
@ -1,12 +0,0 @@ |
||||
diff -ru -x '*~' kdelibs-4.6.90-orig/kdecore/auth/ConfigureChecks.cmake kdelibs-4.6.90/kdecore/auth/ConfigureChecks.cmake
|
||||
--- kdelibs-4.6.90-orig/kdecore/auth/ConfigureChecks.cmake 2011-05-20 22:24:54.000000000 +0200
|
||||
+++ kdelibs-4.6.90/kdecore/auth/ConfigureChecks.cmake 2011-07-12 14:03:00.000000000 +0200
|
||||
@@ -139,7 +139,7 @@
|
||||
${CMAKE_INSTALL_PREFIX} _KDE4_AUTH_POLICY_FILES_INSTALL_DIR
|
||||
${POLKITQT-1_POLICY_FILES_INSTALL_DIR})
|
||||
|
||||
- set(KDE4_AUTH_POLICY_FILES_INSTALL_DIR ${_KDE4_AUTH_POLICY_FILES_INSTALL_DIR} CACHE STRING
|
||||
+ set(KDE4_AUTH_POLICY_FILES_INSTALL_DIR "\${CMAKE_INSTALL_PREFIX}/share/polkit-1/actions" CACHE STRING
|
||||
"Where policy files generated by KAuth will be installed" FORCE)
|
||||
elseif(KDE4_AUTH_BACKEND_NAME STREQUAL "FAKE")
|
||||
set (KAUTH_COMPILING_FAKE_BACKEND TRUE)
|
@ -0,0 +1,26 @@ |
||||
{ stdenv, fetchFromGitHub, qtbase, qtx11extras, makeQtWrapper, muparser, cmake }: |
||||
|
||||
stdenv.mkDerivation rec { |
||||
name = "albert-${version}"; |
||||
version = "0.8.0"; |
||||
|
||||
src = fetchFromGitHub { |
||||
owner = "manuelschneid3r"; |
||||
repo = "albert"; |
||||
rev = "v${version}"; |
||||
sha256 = "0lzj1gbcc5sp2x1c0d3s21y55kcnnn4dmy8d205mrgnyavjrak7n"; |
||||
}; |
||||
|
||||
buildInputs = [ cmake qtbase qtx11extras muparser makeQtWrapper ]; |
||||
|
||||
fixupPhase = '' |
||||
wrapQtProgram $out/bin/albert |
||||
''; |
||||
|
||||
meta = { |
||||
homepage = https://github.com/manuelSchneid3r/albert; |
||||
description = "Desktop agnostic launcher"; |
||||
license = stdenv.lib.licenses.gpl3Plus; |
||||
maintainers = [ stdenv.lib.maintainers.ericsagnes ]; |
||||
}; |
||||
} |
@ -1,23 +1,28 @@ |
||||
{stdenv, fetchurl, flvstreamer, ffmpeg, makeWrapper, perl, buildPerlPackage, perlPackages, vlc, rtmpdump}: |
||||
buildPerlPackage { |
||||
name = "get_iplayer-2.86"; |
||||
name = "get_iplayer-2.94"; |
||||
|
||||
buildInputs = [makeWrapper perl]; |
||||
propagatedBuildInputs = with perlPackages; [HTMLParser HTTPCookies LWP]; |
||||
propagatedBuildInputs = with perlPackages; [HTMLParser HTTPCookies LWP XMLSimple]; |
||||
|
||||
preConfigure = "touch Makefile.PL"; |
||||
doCheck = false; |
||||
|
||||
patchPhase = '' |
||||
sed -e 's|^update_script|#update_script|' \ |
||||
-e '/WARNING.*updater/d' \ |
||||
-i get_iplayer |
||||
''; |
||||
|
||||
installPhase = '' |
||||
mkdir -p $out/bin |
||||
cp get_iplayer $out/bin |
||||
sed -i 's|^update_script|#update_script|' $out/bin/get_iplayer |
||||
wrapProgram $out/bin/get_iplayer --suffix PATH : ${ffmpeg.bin}/bin:${flvstreamer}/bin:${vlc}/bin:${rtmpdump}/bin --prefix PERL5LIB : $PERL5LIB |
||||
''; |
||||
|
||||
src = fetchurl { |
||||
url = ftp://ftp.infradead.org/pub/get_iplayer/get_iplayer-2.86.tar.gz; |
||||
sha256 = "0zhcw0ikxrrz1jayx7jjgxmdf7gzk4pmzfvpraxmv64xwzgc1sc1"; |
||||
url = ftp://ftp.infradead.org/pub/get_iplayer/get_iplayer-2.94.tar.gz; |
||||
sha256 = "16p0bw879fl8cs6rp37g1hgrcai771z6rcqk2nvm49kk39dx1zi4"; |
||||
}; |
||||
|
||||
} |
||||
|
@ -0,0 +1,77 @@ |
||||
/* Beware! |
||||
After starting Guake it will give the error message "Guake can not init! Gconf Error. Have you installed guake.schemas properly?", |
||||
which will have to be resolved manually, because I have not found a way to automate this, without being impure. |
||||
|
||||
If you have Guake installed, you can use `nix-build -A gnome3.guake` to get the path to the build directory in the nix store, |
||||
which then can be used in the following command to install the schemas file of Guake: |
||||
gconftool-2 --install-schema-file /path/returned/by/nix-build/share/gconf/schemas/guake.schemas |
||||
|
||||
It can be removed again by the following command: |
||||
gconftool-2 --recursive-unset /apps/guake |
||||
*/ |
||||
{ stdenv, fetchurl, lib |
||||
, pkgconfig, libtool, intltool, makeWrapper |
||||
, dbus, gtk2, gconf, python2, python2Packages, libutempter, vte, keybinder, gnome2, gnome3 }: |
||||
|
||||
with lib; |
||||
|
||||
let inputs = [ dbus gtk2 gconf python2 libutempter vte keybinder gnome3.gnome_common ]; |
||||
pySubDir = "lib/${python2.libPrefix}/site-packages"; |
||||
pyPath = makeSearchPath pySubDir (attrVals [ "dbus" "notify" "pyGtkGlade" "pyxdg" ] python2Packages ++ [ gnome2.gnome_python ]); |
||||
in stdenv.mkDerivation rec { |
||||
name = "guake-${version}"; |
||||
version = "0.8.3"; |
||||
|
||||
src = fetchurl { |
||||
url = "https://github.com/Guake/guake/archive/${version}.tar.gz"; |
||||
sha256 = "1lbmdz3i9a97840h8239s360hd37nmhy3hs6kancxbzl1512ak1y"; |
||||
}; |
||||
|
||||
nativeBuildInputs = [ pkgconfig libtool intltool makeWrapper ]; |
||||
|
||||
buildInputs = inputs ++ (with python2Packages; [ pyGtkGlade pyxdg ]); |
||||
|
||||
patchPhase = '' |
||||
patchShebangs . |
||||
''; |
||||
|
||||
configureScript = "./autogen.sh"; |
||||
|
||||
configureFlags = [ |
||||
"--sysconfdir=/etc" |
||||
"--localstatedir=/var" |
||||
"--disable-schemas-install" |
||||
]; |
||||
|
||||
installFlags = [ |
||||
# Configuring the installation to not install gconf schemas is not always supported, |
||||
# therefore gconftool-2 has this variable, which will make gconftool-2 not update any of the databases. |
||||
"GCONF_DISABLE_MAKEFILE_SCHEMA_INSTALL=1" |
||||
"sysconfdir=\${out}/etc" |
||||
"localstatedir=\${TMPDIR}" |
||||
]; |
||||
|
||||
postInstall = '' |
||||
mkdir -p $out/share/gconf/schemas |
||||
cp data/guake.schemas $out/share/gconf/schemas |
||||
''; |
||||
|
||||
postFixup = '' |
||||
for bin in $out/bin/{guake,guake-prefs}; do |
||||
substituteInPlace $bin \ |
||||
--replace '/usr/bin/env python2' ${python2}/bin/python2 |
||||
wrapProgram $bin \ |
||||
--prefix XDG_DATA_DIRS : "$out/share:$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH" \ |
||||
--prefix LD_LIBRARY_PATH : ${makeLibraryPath inputs} \ |
||||
--prefix PYTHONPATH : "$out/${pySubDir}:${pyPath}:$PYTHONPATH" |
||||
done |
||||
''; |
||||
|
||||
meta = { |
||||
description = "Drop-down terminal for GNOME"; |
||||
homepage = http://guake-project.org; |
||||
license = licenses.gpl2; |
||||
platforms = platforms.linux; |
||||
maintainers = [ maintainers.msteen ]; |
||||
}; |
||||
} |
@ -0,0 +1,34 @@ |
||||
{ stdenv, fetchurl, patchelf, makeWrapper, xorg, gcc }: |
||||
|
||||
assert stdenv.isLinux; |
||||
|
||||
stdenv.mkDerivation rec { |
||||
name = "IPMIView-${version}"; |
||||
version = "20151223"; |
||||
|
||||
src = fetchurl { |
||||
url = "ftp://ftp.supermicro.com/utility/IPMIView/Linux/IPMIView_V2.11.0_bundleJRE_Linux_x64_${version}.tar.gz"; |
||||
sha256 = "1rv9j0id7i2ipm25n60bpfdm1gj44xg2aj8rnx4s6id3ln90q121"; |
||||
}; |
||||
|
||||
buildInputs = [ patchelf makeWrapper ]; |
||||
|
||||
buildPhase = with xorg; '' |
||||
patchelf --set-rpath "${libX11}/lib:${libXext}/lib:${libXrender}/lib:${libXtst}/lib:${libXi}/lib" ./jre/lib/amd64/xawt/libmawt.so |
||||
patchelf --set-rpath "${gcc.cc}/lib" ./libiKVM64.so |
||||
patchelf --set-rpath "${libXcursor}/lib:${libX11}/lib:${libXext}/lib:${libXrender}/lib:${libXtst}/lib:${libXi}/lib" --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" ./jre/bin/javaws |
||||
patchelf --set-rpath "${gcc.cc}/lib:$out/jre/lib/amd64/jli" --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" ./jre/bin/java |
||||
''; |
||||
|
||||
installPhase = '' |
||||
mkdir -p $out/bin |
||||
cp -R . $out/ |
||||
echo "$out/jre/bin/java -jar $out/IPMIView20.jar" > $out/bin/IPMIView |
||||
chmod +x $out/bin/IPMIView |
||||
''; |
||||
|
||||
meta = with stdenv.lib; { |
||||
license = licenses.unfree; |
||||
}; |
||||
} |
||||
|
@ -0,0 +1,35 @@ |
||||
{stdenv, fetchurl, pkgconfig, gtk2, synergy}: |
||||
|
||||
stdenv.mkDerivation rec { |
||||
name = "quicksynergy-${version}"; |
||||
version = "0.9.0"; |
||||
src = fetchurl { |
||||
url = "http://downloads.sourceforge.net/project/quicksynergy/Linux/${version}/quicksynergy-${version}.tar.gz"; |
||||
sha256 = "1pi8503bg8q1psw50y6d780i33nnvfjqiy9vnr3v52pdcfip8pix"; |
||||
}; |
||||
buildInputs = [ |
||||
pkgconfig |
||||
gtk2 |
||||
synergy |
||||
]; |
||||
preBuild = " |
||||
sed -i 's@/usr/bin@${synergy.out}/bin@' src/synergy_config.c |
||||
"; |
||||
meta = { |
||||
description = "GUI application to share mouse and keyboard between computers"; |
||||
longDescription = " |
||||
QuickSynergy is a graphical interface (GUI) for easily configuring |
||||
Synergy2, an application that allows the user to share his mouse and |
||||
keyboard between two or more computers. |
||||
|
||||
Without the need for any external hardware, Synergy2 uses the TCP-IP |
||||
protocol to share the resources, even between machines with diferent |
||||
operating systems, such as Mac OS, Linux and Windows. |
||||
|
||||
Remember to open port 24800 (used by synergys program) if you want to |
||||
host mouse and keyboard."; |
||||
homepage = https://code.google.com/p/quicksynergy/; |
||||
license = stdenv.lib.licenses.gpl2; |
||||
maintainers = [ stdenv.lib.maintainers.spinus ]; |
||||
}; |
||||
} |
@ -1,59 +0,0 @@ |
||||
diff --git a/Build.PL b/Build.PL
|
||||
index 8b21c15..fd3aff0 100644
|
||||
--- a/Build.PL
|
||||
+++ b/Build.PL
|
||||
@@ -33,9 +33,6 @@ my $sudo = grep { $_ eq '--sudo' } @ARGV;
|
||||
my $gui = grep { $_ eq '--gui' } @ARGV;
|
||||
my $xs_only = grep { $_ eq '--xs' } @ARGV;
|
||||
if ($gui) {
|
||||
- %prereqs = qw(
|
||||
- Wx 0.9918
|
||||
- );
|
||||
%recommends = qw(
|
||||
Growl::GNTP 0.15
|
||||
Wx::GLCanvas 0
|
||||
diff --git a/lib/Slic3r/GUI.pm b/lib/Slic3r/GUI.pm
|
||||
index 842ff44..ea0af64 100644
|
||||
--- a/lib/Slic3r/GUI.pm
|
||||
+++ b/lib/Slic3r/GUI.pm
|
||||
@@ -26,7 +26,7 @@ use Slic3r::GUI::OptionsGroup::Field;
|
||||
use Slic3r::GUI::SimpleTab;
|
||||
use Slic3r::GUI::Tab;
|
||||
|
||||
-our $have_OpenGL = eval "use Slic3r::GUI::PreviewCanvas; 1";
|
||||
+our $have_OpenGL = 0;
|
||||
|
||||
use Wx 0.9901 qw(:bitmap :dialog :icon :id :misc :systemsettings :toplevelwindow
|
||||
:filedialog);
|
||||
diff --git a/lib/Slic3r/GUI/Plater/2DToolpaths.pm b/lib/Slic3r/GUI/Plater/2DToolpaths.pm
|
||||
index 8e48a72..7bed973 100644
|
||||
--- a/lib/Slic3r/GUI/Plater/2DToolpaths.pm
|
||||
+++ b/lib/Slic3r/GUI/Plater/2DToolpaths.pm
|
||||
@@ -90,18 +90,20 @@ sub set_z {
|
||||
package Slic3r::GUI::Plater::2DToolpaths::Canvas;
|
||||
|
||||
use Wx::Event qw(EVT_PAINT EVT_SIZE EVT_ERASE_BACKGROUND EVT_IDLE EVT_MOUSEWHEEL EVT_MOUSE_EVENTS);
|
||||
-use OpenGL qw(:glconstants :glfunctions :glufunctions);
|
||||
-use base qw(Wx::GLCanvas Class::Accessor);
|
||||
-use Wx::GLCanvas qw(:all);
|
||||
use List::Util qw(min first);
|
||||
use Slic3r::Geometry qw(scale unscale epsilon);
|
||||
|
||||
__PACKAGE__->mk_accessors(qw(print z layers color init dirty bb));
|
||||
|
||||
-# make OpenGL::Array thread-safe
|
||||
-{
|
||||
- no warnings 'redefine';
|
||||
- *OpenGL::Array::CLONE_SKIP = sub { 1 };
|
||||
+if ($Slic3r::GUI::have_OpenGL) {
|
||||
+ use OpenGL qw(:glconstants :glfunctions :glufunctions);
|
||||
+ use Wx::GLCanvas qw(:all);
|
||||
+ use base qw(Wx::GLCanvas Class::Accessor);
|
||||
+ # make OpenGL::Array thread-safe
|
||||
+ {
|
||||
+ no warnings 'redefine';
|
||||
+ *OpenGL::Array::CLONE_SKIP = sub { 1 };
|
||||
+ }
|
||||
}
|
||||
|
||||
sub new {
|
@ -0,0 +1,43 @@ |
||||
{fetchurl, stdenv, makeWrapper, gtk3, python3Packages}: |
||||
let |
||||
version = "0.9.2"; |
||||
in |
||||
stdenv.mkDerivation { |
||||
name = "solaar-${version}"; |
||||
src = fetchurl { |
||||
sha256 = "0954grz2adggfzcj4df4mpr4d7qyl7w8rb4j2s0f9ymawl92i05j"; |
||||
url = "https://github.com/pwr/Solaar/archive/${version}.tar.gz"; |
||||
}; |
||||
|
||||
buildInputs = [gtk3 python3Packages.pygobject3 python3Packages.pyudev]; |
||||
enableParallelBuilding = true; |
||||
installPhase = '' |
||||
mkdir -p "$out"; |
||||
''; |
||||
postInstall = '' |
||||
wrapProgram "$out/bin/solaar" \ |
||||
--prefix PYTHONPATH : "$PYTHONPATH" \ |
||||
--prefix GI_TYPELIB_PATH : "$GI_TYPELIB_PATH" |
||||
wrapProgram "$out/bin/solaar-cli" \ |
||||
--prefix PYTHONPATH : "$PYTHONPATH" \ |
||||
--prefix GI_TYPELIB_PATH : "$GI_TYPELIB_PATH" |
||||
''; |
||||
meta = with stdenv.lib; { |
||||
description = "Linux devices manager for the Logitech Unifying Receiver"; |
||||
longDescription = '' |
||||
Solaar is a Linux device manager for Logitech’s Unifying Receiver |
||||
peripherals. It is able to pair/unpair devices to the receiver, and for |
||||
most devices read battery status. |
||||
|
||||
It comes in two flavors, command-line and GUI. Both are able to list the |
||||
devices paired to a Unifying Receiver, show detailed info for each |
||||
device, and also pair/unpair supported devices with the receiver. |
||||
|
||||
To be able to use it, make sure you have access to /dev/hidraw* files. |
||||
''; |
||||
license = licenses.gpl2; |
||||
homepage = https://pwr.github.io/Solaar/; |
||||
platforms = platforms.linux; |
||||
maintainers = [maintainers.spinus]; |
||||
}; |
||||
} |
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in new issue