nixpkgs/pkgs/development/libraries/libticables2/default.nix
2023-01-04 11:08:13 +01:00

74 lines
2 KiB
Nix

{ stdenv
, lib
, fetchurl
, fetchpatch
, pkg-config
, autoreconfHook
, glib
, libusb1
}:
stdenv.mkDerivation rec {
pname = "libticables2";
version = "1.3.5";
src = fetchurl {
url = "mirror://sourceforge/tilp/${pname}-${version}.tar.bz2";
sha256 = "08j5di0cgix9vcpdv7b8xhxdjkk9zz7fqfnv3l4apk3jdr8vcvqc";
};
patches = [
(fetchpatch {
name = "add-support-for-aarch64-macos-target-triple.patch";
url = "https://github.com/debrouxl/tilibs/commit/ef41c51363b11521460f33e8c332db7b0a9ca085.patch";
stripLen = 2;
sha256 = "sha256-oTR1ACEZI0fjErpnFXTCnfLT1mo10Ypy0q0D8NOPNsM=";
})
];
nativeBuildInputs = [
autoreconfHook
pkg-config
];
buildInputs = [
libusb1
glib
];
configureFlags = [
"--enable-libusb10"
];
postInstall = ''
mkdir -p $out/etc/udev/rules.d
cat > $out/etc/udev/rules.d/69-libsane.rules << EOF
ACTION!="add", GOTO="libticables_end"
# serial device (assume TI calculator)
KERNEL=="ttyS[0-3]", ENV{ID_PDA}="1"
# parallel device (assume TI calculator)
SUBSYSTEM=="ppdev", ENV{ID_PDA}="1"
# SilverLink
SUBSYSTEM=="usb", ATTR{idVendor}=="0451", ATTR{idProduct}=="e001", ENV{ID_PDA}="1"
# TI-84+ DirectLink
SUBSYSTEM=="usb", ATTR{idVendor}=="0451", ATTR{idProduct}=="e003", ENV{ID_PDA}="1"
# TI-89 Titanium DirectLink
SUBSYSTEM=="usb", ATTR{idVendor}=="0451", ATTR{idProduct}=="e004", ENV{ID_PDA}="1"
# TI-84+ SE DirectLink
SUBSYSTEM=="usb", ATTR{idVendor}=="0451", ATTR{idProduct}=="e008", ENV{ID_PDA}="1"
# TI-Nspire DirectLink
SUBSYSTEM=="usb", ATTR{idVendor}=="0451", ATTR{idProduct}=="e012", ENV{ID_PDA}="1"
LABEL="libticables_end"
EOF
'';
meta = with lib; {
changelog = "http://lpg.ticalc.org/prj_tilp/news.html";
description = "This library is part of the TiLP framework";
homepage = "http://lpg.ticalc.org/prj_tilp/";
license = licenses.gpl2Plus;
maintainers = with maintainers; [ siraben luc65r ];
platforms = with platforms; linux ++ darwin;
};
}