commit
b3df41c011
@ -1,21 +0,0 @@ |
||||
{ config, lib, pkgs, ... }: |
||||
|
||||
{ |
||||
|
||||
options.programs.clickshare-csc1.enable = |
||||
lib.options.mkEnableOption '' |
||||
Barco ClickShare CSC-1 driver/client. |
||||
This allows users in the <literal>clickshare</literal> |
||||
group to access and use a ClickShare USB dongle |
||||
that is connected to the machine |
||||
''; |
||||
|
||||
config = lib.modules.mkIf config.programs.clickshare-csc1.enable { |
||||
environment.systemPackages = [ pkgs.clickshare-csc1 ]; |
||||
services.udev.packages = [ pkgs.clickshare-csc1 ]; |
||||
users.groups.clickshare = {}; |
||||
}; |
||||
|
||||
meta.maintainers = [ lib.maintainers.yarny ]; |
||||
|
||||
} |
@ -1,122 +0,0 @@ |
||||
{ lib |
||||
, stdenv |
||||
, fetchurl |
||||
, alsa-lib |
||||
, autoPatchelfHook |
||||
, binutils-unwrapped |
||||
, libav_0_8 |
||||
, libnotify |
||||
, libresample |
||||
, libusb1 |
||||
, qt4 |
||||
, rpmextract |
||||
, unzip |
||||
, xorg |
||||
, usersGroup ? "clickshare" # for udev access rules |
||||
}: |
||||
|
||||
|
||||
# This fetches the latest firmware version that |
||||
# contains a linux-compatible client binary. |
||||
# Barco no longer supports linux, so updates are unlikely: |
||||
# https://www.barco.com/de/support/clickshare-csc-1/knowledge-base/KB1191 |
||||
|
||||
|
||||
stdenv.mkDerivation rec { |
||||
pname = "clickshare-csc1"; |
||||
version = "01.07.00.033"; |
||||
src = fetchurl { |
||||
name = "clickshare-csc1-${version}.zip"; |
||||
url = "https://www.barco.com/services/website/de/TdeFiles/Download?FileNumber=R33050020&TdeType=3&MajorVersion=01&MinorVersion=07&PatchVersion=00&BuildVersion=033"; |
||||
sha256 = "0h4jqidqvk4xkaky5bizi7ilz4qzl2mh68401j21y3djnzx09br3"; |
||||
}; |
||||
|
||||
nativeBuildInputs = [ |
||||
autoPatchelfHook |
||||
binutils-unwrapped |
||||
rpmextract |
||||
unzip |
||||
]; |
||||
buildInputs = [ |
||||
alsa-lib |
||||
libav_0_8 |
||||
libnotify |
||||
libresample |
||||
libusb1 |
||||
qt4 |
||||
xorg.libX11 |
||||
xorg.libXdamage |
||||
xorg.libXfixes |
||||
xorg.libXinerama |
||||
xorg.libXtst |
||||
]; |
||||
sourceRoot = "."; |
||||
|
||||
# The source consists of nested archives. |
||||
# We extract them archive by archive. |
||||
# If the filename contains version numbers, |
||||
# we use a wildcard and check that there |
||||
# is actually only one file matching. |
||||
postUnpack = |
||||
let |
||||
rpmArch = |
||||
if stdenv.hostPlatform.isx86_32 then "i386" else |
||||
if stdenv.hostPlatform.isx86_64 then "x86_64" else |
||||
throw "unsupported system: ${stdenv.hostPlatform.system}"; |
||||
in |
||||
'' |
||||
ls clickshare_baseunit_*.*_all.signed_release.ipk | wc --lines | xargs test 1 = |
||||
tar --verbose --extract --one-top-level=dir1 < clickshare_baseunit_*.*_all.signed_release.ipk |
||||
mkdir dir2 |
||||
( cd dir2 ; ar xv ../dir1/firmware.ipk ) |
||||
tar --verbose --gzip --extract --one-top-level=dir3 --exclude='dev/*' < dir2/data.tar.gz |
||||
ls dir3/clickshare/clickshare-*-*.${rpmArch}.rpm | wc --lines | xargs test 1 = |
||||
mkdir dir4 |
||||
cd dir4 |
||||
rpmextract ../dir3/clickshare/clickshare-*-*.${rpmArch}.rpm |
||||
''; |
||||
|
||||
installPhase = '' |
||||
runHook preInstall |
||||
mkdir --verbose --parents $out |
||||
mv --verbose --target-directory=. usr/* |
||||
rmdir --verbose usr |
||||
cp --verbose --recursive --target-directory=$out * |
||||
runHook postInstall |
||||
''; |
||||
|
||||
# Default udev rule restricts access to the |
||||
# clickshare USB dongle to the `wheel` group. |
||||
# We replace it with the group |
||||
# stated in the package arguments. |
||||
# Also, we patch executable and icon paths in .desktop files. |
||||
preFixup = '' |
||||
substituteInPlace \ |
||||
$out/lib/udev/rules.d/99-clickshare.rules \ |
||||
--replace wheel ${usersGroup} |
||||
substituteInPlace \ |
||||
$out/share/applications/clickshare.desktop \ |
||||
--replace Exec= Exec=$out/bin/ \ |
||||
--replace =/usr =$out |
||||
substituteInPlace \ |
||||
$out/etc/xdg/autostart/clickshare-launcher.desktop \ |
||||
--replace =/usr =$out |
||||
''; |
||||
|
||||
meta = { |
||||
homepage = "https://www.barco.com/de/support/clickshare-csc-1/drivers"; |
||||
downloadPage = "https://www.barco.com/de/Support/software/R33050020"; |
||||
platforms = [ "i686-linux" "x86_64-linux" ]; |
||||
license = lib.licenses.unfree; |
||||
maintainers = [ lib.maintainers.yarny ]; |
||||
description = "Linux driver/client for Barco ClickShare CSC-1"; |
||||
longDescription = '' |
||||
Barco ClickShare is a wireless presentation system |
||||
where a USB dongle transmits to a base station |
||||
that is connected with a beamer. |
||||
The USB dongle requires proprietary software that |
||||
captures the screen and sends it to the dongle. |
||||
This package provides the necessary software for Linux. |
||||
''; |
||||
}; |
||||
} |
Loading…
Reference in new issue