forked from mirrors/nixpkgs
ckb-next: 0.2.9 -> 0.3.2
In this update: * binaries `ckb` and `ckb-daemon` are renamed to `ckb-next` and `ckb-next-daemon` * build system changed from qmake to cmake * the directory searched for animation plugins no longer needs to be patched, as a result of the build system change * modprobe patch has been bumped, since the source repository layout has changed * the cmake scripts are quite FHS-centric and require patching to fix install locations
This commit is contained in:
parent
119d539d72
commit
85526bce87
|
@ -26,7 +26,7 @@ in
|
|||
systemd.services.ckb = {
|
||||
description = "Corsair Keyboard Daemon";
|
||||
wantedBy = ["multi-user.target"];
|
||||
script = "${cfg.package}/bin/ckb-daemon";
|
||||
script = "${cfg.package}/bin/ckb-next-daemon";
|
||||
serviceConfig = {
|
||||
Restart = "always";
|
||||
StandardOutput = "syslog";
|
||||
|
|
|
@ -1,12 +0,0 @@
|
|||
diff --git a/src/ckb/animscript.cpp b/src/ckb/animscript.cpp
|
||||
index f49a64c..d7a3459 100644
|
||||
--- a/src/ckb/animscript.cpp
|
||||
+++ b/src/ckb/animscript.cpp
|
||||
@@ -30,7 +30,7 @@ QString AnimScript::path(){
|
||||
#ifdef __APPLE__
|
||||
return QDir(QApplication::applicationDirPath() + "/../Resources").absoluteFilePath("ckb-animations");
|
||||
#else
|
||||
- return QDir("/usr/lib").absoluteFilePath("ckb-animations");
|
||||
+ return QDir(QApplication::applicationDirPath() + "/../libexec").absoluteFilePath("ckb-animations");
|
||||
#endif
|
||||
}
|
|
@ -1,13 +1,26 @@
|
|||
diff --git a/src/ckb-daemon/usb_linux.c b/src/ckb-daemon/usb_linux.c
|
||||
index 8673f86..4714305 100644
|
||||
--- a/src/ckb-daemon/usb_linux.c
|
||||
+++ b/src/ckb-daemon/usb_linux.c
|
||||
@@ -440,7 +440,7 @@ static void udev_enum(){
|
||||
|
||||
int usbmain(){
|
||||
diff --git a/src/daemon/input_linux.c b/src/daemon/input_linux.c
|
||||
index 1cedb07..8e0b24b 100644
|
||||
--- a/src/daemon/input_linux.c
|
||||
+++ b/src/daemon/input_linux.c
|
||||
@@ -58,7 +58,7 @@ int os_inputopen(usbdevice* kb){
|
||||
/// First check whether the uinput module is loaded by the kernel.
|
||||
///
|
||||
// Load the uinput module (if it's not loaded already)
|
||||
- if(system("modprobe uinput") != 0)
|
||||
+ if(system("@kmod@/bin/modprobe uinput") != 0)
|
||||
ckb_warn("Failed to load uinput module\n");
|
||||
- if(system("modprobe uinput") != 0) {
|
||||
+ if(system("@kmod@/bin/modprobe uinput") != 0) {
|
||||
ckb_fatal("Failed to load uinput module\n");
|
||||
return 1;
|
||||
}
|
||||
diff --git a/src/gui/mainwindow.cpp b/src/gui/mainwindow.cpp
|
||||
index 3601146..3f2f78f 100644
|
||||
--- a/src/gui/mainwindow.cpp
|
||||
+++ b/src/gui/mainwindow.cpp
|
||||
@@ -251,7 +251,7 @@ void MainWindow::updateVersion(){
|
||||
daemonWarning.append(tr("<br /><b>Warning:</b> System Extension by \"Fumihiko Takayama\" is not allowed in Security & Privacy. Please allow it and then unplug and replug your devices."));
|
||||
#elif defined(Q_OS_LINUX)
|
||||
QProcess modprobe;
|
||||
- modprobe.start("modprobe", QStringList("uinput"));
|
||||
+ modprobe.start("@kmod@/bin/modprobe", QStringList("uinput"));
|
||||
|
||||
// Create the udev object
|
||||
if(!modprobe.waitForFinished())
|
||||
qDebug() << "Modprobe error";
|
||||
|
|
|
@ -1,15 +1,15 @@
|
|||
{ stdenv, fetchFromGitHub, substituteAll, udev
|
||||
, pkgconfig, qtbase, qmake, zlib, kmod }:
|
||||
, pkgconfig, qtbase, cmake, zlib, kmod }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
version = "0.2.9";
|
||||
version = "0.3.2";
|
||||
name = "ckb-next-${version}";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "ckb-next";
|
||||
repo = "ckb-next";
|
||||
rev = "v${version}";
|
||||
sha256 = "0hl41znyhp3k5l9rcgz0gig36gsg95ivrs1dyngv45q9jkr6fchm";
|
||||
sha256 = "0ri5n7r1vhsgk6s64abvqcdrs5fmlwprw0rxiwfy0j8a9qcic1dr";
|
||||
};
|
||||
|
||||
buildInputs = [
|
||||
|
@ -20,11 +20,12 @@ stdenv.mkDerivation rec {
|
|||
|
||||
nativeBuildInputs = [
|
||||
pkgconfig
|
||||
qmake
|
||||
cmake
|
||||
];
|
||||
|
||||
patches = [
|
||||
./ckb-animations-location.patch
|
||||
./install-dirs.patch
|
||||
./systemd-service.patch
|
||||
(substituteAll {
|
||||
name = "ckb-modprobe.patch";
|
||||
src = ./ckb-modprobe.patch;
|
||||
|
@ -32,17 +33,6 @@ stdenv.mkDerivation rec {
|
|||
})
|
||||
];
|
||||
|
||||
doCheck = false;
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
|
||||
install -D --mode 0755 --target-directory $out/bin bin/ckb-daemon bin/ckb
|
||||
install -D --mode 0755 --target-directory $out/libexec/ckb-animations bin/ckb-animations/*
|
||||
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
description = "Driver and configuration tool for Corsair keyboards and mice";
|
||||
homepage = https://github.com/ckb-next/ckb-next;
|
||||
|
|
32
pkgs/tools/misc/ckb/install-dirs.patch
Normal file
32
pkgs/tools/misc/ckb/install-dirs.patch
Normal file
|
@ -0,0 +1,32 @@
|
|||
diff --git a/src/daemon/CMakeLists.txt b/src/daemon/CMakeLists.txt
|
||||
index 09056a7..1bb4595 100644
|
||||
--- a/src/daemon/CMakeLists.txt
|
||||
+++ b/src/daemon/CMakeLists.txt
|
||||
@@ -456,7 +456,7 @@ endif ()
|
||||
if (LINUX)
|
||||
install(
|
||||
FILES "${CMAKE_SOURCE_DIR}/linux/udev/99-ckb-daemon.rules"
|
||||
- DESTINATION "/etc/udev/rules.d"
|
||||
+ DESTINATION "${CMAKE_INSTALL_PREFIX}/lib/udev/rules.d"
|
||||
PERMISSIONS
|
||||
OWNER_READ OWNER_WRITE
|
||||
GROUP_READ
|
||||
diff --git a/src/libs/ckb-next/CMakeLists.txt b/src/libs/ckb-next/CMakeLists.txt
|
||||
index ecc591c..35de563 100644
|
||||
--- a/src/libs/ckb-next/CMakeLists.txt
|
||||
+++ b/src/libs/ckb-next/CMakeLists.txt
|
||||
@@ -75,12 +75,12 @@ if(NOT MACOS)
|
||||
NAMESPACE
|
||||
${CMAKE_PROJECT_NAME}::
|
||||
DESTINATION
|
||||
- "/usr/lib/cmake/${CMAKE_PROJECT_NAME}/${PROJECT_NAME}")
|
||||
+ "${CMAKE_INSTALL_PREFIX}/lib/cmake/${CMAKE_PROJECT_NAME}/${PROJECT_NAME}")
|
||||
|
||||
install(
|
||||
FILES
|
||||
"cmake/${PROJECT_NAME}Config.cmake"
|
||||
"${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}/${PROJECT_NAME}ConfigVersion.cmake"
|
||||
DESTINATION
|
||||
- "/usr/lib/cmake/${CMAKE_PROJECT_NAME}/${PROJECT_NAME}")
|
||||
+ "${CMAKE_INSTALL_PREFIX}/lib/cmake/${CMAKE_PROJECT_NAME}/${PROJECT_NAME}")
|
||||
endif()
|
45
pkgs/tools/misc/ckb/systemd-service.patch
Normal file
45
pkgs/tools/misc/ckb/systemd-service.patch
Normal file
|
@ -0,0 +1,45 @@
|
|||
diff --git a/src/daemon/CMakeLists.txt b/src/daemon/CMakeLists.txt
|
||||
index 09056a7..72a7249 100644
|
||||
--- a/src/daemon/CMakeLists.txt
|
||||
+++ b/src/daemon/CMakeLists.txt
|
||||
@@ -249,12 +249,7 @@ elseif (LINUX)
|
||||
# but it is not enabled by default and systemd is used instead. (Ubuntu 15.04+)
|
||||
|
||||
# A way to check for upstart
|
||||
- execute_process(
|
||||
- COMMAND initctl --version
|
||||
- OUTPUT_VARIABLE initctl_output
|
||||
- OUTPUT_STRIP_TRAILING_WHITESPACE)
|
||||
-
|
||||
- if ("${initctl_output}" MATCHES "upstart")
|
||||
+ if (FALSE)
|
||||
message(STATUS "upstart detected")
|
||||
set(CKB_NEXT_INIT_SYSTEM "upstart" CACHE INTERNAL "")
|
||||
set(DISALLOW_SYSVINIT TRUE)
|
||||
@@ -292,7 +287,7 @@ elseif (LINUX)
|
||||
endif ()
|
||||
|
||||
# A way to check for systemd
|
||||
- if (EXISTS "/run/systemd/system")
|
||||
+ if (TRUE)
|
||||
message(STATUS "systemd detected")
|
||||
set(CKB_NEXT_INIT_SYSTEM "systemd" CACHE INTERNAL "")
|
||||
set(DISALLOW_SYSVINIT TRUE)
|
||||
@@ -328,7 +323,7 @@ elseif (LINUX)
|
||||
endif ()
|
||||
|
||||
# A way to check for OpenRC
|
||||
- if (EXISTS "/run/openrc/softlevel")
|
||||
+ if (FALSE)
|
||||
message(STATUS "OpenRC detected")
|
||||
set(CKB_NEXT_INIT_SYSTEM "OpenRC" CACHE INTERNAL "")
|
||||
set(DISALLOW_SYSVINIT TRUE)
|
||||
@@ -419,7 +414,7 @@ if ("${CKB_NEXT_INIT_SYSTEM}" STREQUAL "launchd")
|
||||
elseif ("${CKB_NEXT_INIT_SYSTEM}" STREQUAL "systemd")
|
||||
install(
|
||||
FILES "${CMAKE_CURRENT_BINARY_DIR}/service/ckb-next-daemon.service"
|
||||
- DESTINATION "/usr/lib/systemd/system"
|
||||
+ DESTINATION "${CMAKE_INSTALL_PREFIX}/lib/systemd/system"
|
||||
PERMISSIONS
|
||||
OWNER_READ OWNER_WRITE
|
||||
GROUP_READ
|
Loading…
Reference in a new issue