Package Details: brscan4 0.4.4_4-2

Git Clone URL: (read-only)
Package Base: brscan4
Description: SANE drivers from Brother for brscan4 compatible models
Upstream URL:
Keywords: printer
Licenses: GPL, custom:brother
Submitter: Harey
Maintainer: Harey
Last Packager: Harey
Votes: 89
Popularity: 1.767169
First Submitted: 2011-08-01 08:43
Last Updated: 2018-01-12 11:23

Latest Comments

ron2138 commented on 2018-06-13 21:31

  1. The upstream URL recorded above can not be found

  2. . I believe the this is the current URL.

  3. Replying ettavolt comment on 2018-06-13 05:13 and Harey comment on 2018-06-12 09:20: On 2018-06-19 I sent a message through Email Support. Got #180619-000271 reference number for follow up. A reply by email was they will provide this to the software engineers.

ettavolt commented on 2018-06-13 05:13

Man ( says that /etc/udev/rules.d/ is for local administrator. Local = per-machine. Package isn't machine-dependent (though it may be useful only for some that have Brother's scanner connected). Having rules in /usr/lib would allow a simple disabling via linking /etc/udev/rules.d/40-brscan4.rules to /dev/null. And this way won't interfere with package updates (while deleting file does).

Harey commented on 2018-06-12 09:20

The output of 'pacman -Qo /usr/lib/udev/rules.d/' makes me feel it is better to leave this directory alone ;). As far as you don't have a pressing argument I will stay with /etc/udev/rules.d/. One could interpret 'vendor' as 'Archlinux' as well...

ron2138 commented on 2018-06-11 22:54

Currently, /etc/udev/rules.d/40-brscan4.rules are installed by brscan4. I think it would be better if that file will be installed under /usr/lib/udev/rules.d/. The reason is that, as far as I can tell, /usr/lib/udev/rules.d/ are for vendor files, while /etc/udev/rules.d are for local files.

Harey commented on 2018-01-12 17:14

So you should file a bug for sane in Archlinux's bugtracker and see what the devs think about the situation...

ettavolt commented on 2018-01-12 12:21

Works, thank you. But for a bit different reason. ☺

So, what's happening with my DCP-1510 (as I understand it now):

40-brscan: MODE 664, GROUP lp, libsane_matched=yes

49-sane: MODE 664, GROUP scanner

50-udev-defaults: GROUP="lp" (because ENV{ID_USB_INTERFACES}==":0701??:")

70-uaccess: TAG+uaccess (because libsane_matched=yes)

Systemd somehow adds current-user ACL for uaccess-TAGged devices (this package owns udev-defaults and uaccess). Since brscan4 has priority of 40 (higher than 70 of uaccess) scanner works for current user without modification of his group. I think Arch's sane has to generate ACL-based udev rules (instead of what's generated now).

Here you can remove MODE and GROUP actions. The combination of sane.rules and udev-default.rules will do exactly the same (checked for DCP-1510).

Harey commented on 2018-01-12 11:24

ettavolt: OK, this seems quite logical to me. I pushed a new version of the package with the change you proposed. Let's see what happens ;)

ettavolt commented on 2018-01-11 10:44

Sorry, forgot to enable notifications. Basically udev is applying files from /etc and /usr in lexical order (without directory paths). Sane's rules are chowning scanner ports to 'scanner' group if ENV{libsane_matched}=="yes" (see the bottom of /usr/lib/udev/rules.d/49-sane.rules). "brscan4" is lexically after "49-sane". That's why ENV{libsane_matched}="yes" in "brscan4" will be applied after sane's rules and thus a Brother's scanner port won't be chowned to 'scanner'.

BTW, I wonder why is there MODE=xxx GROUP=xxx in the sane's rules file? This changes are reapplied by ENV{libsane_matched}=="yes" condition…

Harey commented on 2017-11-08 07:33

Why? Please explain the background a little bit. I guess this would affect the way mfc models are working.

ettavolt commented on 2017-11-08 06:46

Please change udev rules to have a 'priority' higher than SANE's rules.
SANE has 49 (see I have brscan4's rules applying correctly on priority 40.

This should work:

./mk-udev-rules opt/brother/scanner/brscan4/{Brsane4.ini,models4/*.ini} > etc/udev/rules.d/40-$pkgname.rules

All comments