Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: NixOS/nixpkgs
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: e59fe2084719
Choose a base ref
...
head repository: NixOS/nixpkgs
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: 4b6a41a939fa
Choose a head ref
  • 2 commits
  • 4 files changed
  • 2 contributors

Commits on Mar 8, 2019

  1. dsseries: init at 1.0.5-1

    callahad committed Mar 8, 2019

    Verified

    This commit was signed with the committer’s verified signature. The key has expired.
    callahad Dan Callahan
    Copy the full SHA
    c80385d View commit details

Commits on Mar 15, 2019

  1. Merge pull request #57077 from callahad/brother-dsseries

    dsseries: init at 1.0.5-1
    ryantm authored Mar 15, 2019

    Verified

    This commit was created on GitHub.com and signed with GitHub’s verified signature. The key has expired.
    Copy the full SHA
    4b6a41a View commit details
1 change: 1 addition & 0 deletions nixos/modules/module-list.nix
Original file line number Diff line number Diff line change
@@ -310,6 +310,7 @@
./services/hardware/ratbagd.nix
./services/hardware/sane.nix
./services/hardware/sane_extra_backends/brscan4.nix
./services/hardware/sane_extra_backends/dsseries.nix
./services/hardware/tcsd.nix
./services/hardware/tlp.nix
./services/hardware/thinkfan.nix
26 changes: 26 additions & 0 deletions nixos/modules/services/hardware/sane_extra_backends/dsseries.nix
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
{ config, lib, pkgs, ... }:

with lib;

{
options = {

hardware.sane.dsseries.enable =
mkEnableOption "Brother DSSeries scan backend" // {
description = ''
When enabled, will automatically register the "dsseries" SANE backend.
This supports the Brother DSmobile scanner series, including the
DS-620, DS-720D, DS-820W, and DS-920DW scanners.
'';
};
};

config = mkIf (config.hardware.sane.enable && config.hardware.sane.dsseries.enable) {

hardware.sane.extraBackends = [ pkgs.dsseries ];
services.udev.packages = [ pkgs.dsseries ];
boot.kernelModules = [ "sg" ];

};
}
53 changes: 53 additions & 0 deletions pkgs/applications/graphics/sane/backends/dsseries/default.nix
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
{ stdenv, fetchurl, rpmextract }:

stdenv.mkDerivation rec {
name = "libsane-dsseries-${version}";
version = "1.0.5-1";

src = fetchurl {
url = "https://download.brother.com/welcome/dlf100974/${name}.x86_64.rpm";
sha256 = "1wfdbfbf51cc7njzikdg48kwpnpc0pg5s6p0s0y3z0q7y59x2wbq";
};

nativeBuildInputs = [ rpmextract ];

unpackCmd = ''
mkdir ${name} && pushd ${name}
rpmextract $curSrc
popd
'';

patchPhase = ''
substituteInPlace etc/udev/rules.d/50-Brother_DSScanner.rules \
--replace 'GROUP="users"' 'GROUP="scanner", ENV{libsane_matched}="yes"'
mkdir -p etc/sane.d/dll.d
echo "dsseries" > etc/sane.d/dll.d/dsseries.conf
'';

installPhase = ''
mkdir -p $out
cp -dr etc $out
cp -dr usr/lib64 $out/lib
'';

preFixup = ''
for f in `find $out/lib/sane/ -type f`; do
# Make it possible to find libstdc++.so.6
patchelf --set-rpath ${stdenv.cc.cc.lib}/lib:$out/lib/sane $f
# Horrible kludge: The driver hardcodes /usr/lib/sane/ as a dlopen path.
# We can directly modify the binary to force a relative lookup instead.
# The new path is NULL-padded to the same length as the original path.
sed -i "s|/usr/lib/sane/%s|%s\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00|g" $f
done
'';

meta = {
description = "Brother DSSeries SANE backend driver";
homepage = http://www.brother.com;
platforms = stdenv.lib.platforms.linux;
license = stdenv.lib.licenses.unfree;
maintainers = with stdenv.lib.maintainers; [ callahad ];
};
}
2 changes: 2 additions & 0 deletions pkgs/top-level/all-packages.nix
Original file line number Diff line number Diff line change
@@ -22917,6 +22917,8 @@ in

brscan4 = callPackage ../applications/graphics/sane/backends/brscan4 { };

dsseries = callPackage ../applications/graphics/sane/backends/dsseries { };

mkSaneConfig = callPackage ../applications/graphics/sane/config.nix { };

sane-frontends = callPackage ../applications/graphics/sane/frontends.nix { };