Install this version:
emerge -a =media-gfx/brscan5-1.5.1.0
If this version is masked, you can unmask it using the autounmask tool or standard emerge options:
autounmask =media-gfx/brscan5-1.5.1.0
Or alternatively:
emerge --autounmask-write -a =media-gfx/brscan5-1.5.1.0
| Version | EAPI | Keywords | Slot |
|---|---|---|---|
| 1.5.1.0 | 8 | ~amd64 | 0 |
# Copyright 1999-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
inherit unpacker udev
DESCRIPTION="SANE driver for Brother scanners (brscan5)"
HOMEPAGE="https://support.brother.com/g/b/index.aspx"
SRC_URI="https://download.brother.com/welcome/dlf104033/${PN}-$(ver_rs 3 -).amd64.deb"
S="${WORKDIR}/opt/brother/scanner/brscan5"
LICENSE="Brother"
SLOT="0"
KEYWORDS="~amd64"
RESTRICT="bindist mirror strip"
RDEPEND="
dev-libs/libusb:1
media-gfx/sane-backends
net-dns/avahi[dbus]
sys-apps/dbus
virtual/libudev
"
QA_PREBUILT="opt/brother/*"
src_install() {
local brscan=/opt/brother/scanner/brscan5
# Install the full Brother scanner tree to /opt
insinto ${brscan}
doins -r *
# Mark executables
fperms 0755 ${brscan}/{brsaneconfig5,brscan_cnetconfig,setupSaneScan5}
# Mark libraries executable
find "${ED}"${brscan} -name '*.so*' -exec chmod 0755 {} + || die
# Internal Brother libraries are dlopen'd by the SANE backend at runtime.
# Make them discoverable via ld.so.conf.d rather than symlinking into /usr/lib64.
insinto /etc/ld.so.conf.d
newins - 50-${PN}.conf <<< ${brscan}
# SANE's dll backend searches only LIBDIR (/usr/lib64/sane/) for backend
# .so files via fopen(), ignoring the ld.so cache. This symlink is needed
# even with ld.so.conf.d above.
# https://gitlab.com/sane-project/backends/-/blob/1.4.0/backend/dll.c#L482
dosym -r ${brscan}/libsane-brother5.so.1.0.7 \
/usr/lib64/sane/libsane-brother5.so.1
# SANE dll.d configuration
insinto /etc/sane.d/dll.d
newins - ${PN} <<< brother5
# brscan5 configuration
insinto /etc/opt/brother/scanner/brscan5
doins brscan5.ini
doins brsanenetdevice.cfg
# User-facing binary symlink
dosym -r ${brscan}/brsaneconfig5 /usr/bin/brsaneconfig5
# udev rules (strip deprecated SYSFS entries, install with clean name)
sed -i '/SYSFS/d' udev-rules/NN-brother-mfp-brscan5-1.0.2-2.rules || die
udev_newrules udev-rules/NN-brother-mfp-brscan5-1.0.2-2.rules 40-${PN}.rules
}
pkg_postinst() {
udev_reload
# https://bugs.gentoo.org/961463
ldconfig -X
# HOSTNAME is "BRW" followed by MAC for wi-fi
# HOSTNAME is "BRN" followed by MAC for etherent
elog "Your scanner's HOSTNAME can be discovered via avahi:"
elog " avahi-browse -rt _scanner._tcp"
elog "To connect a network scanner using network discovery:"
elog " brsaneconfig5 -a name=SCANNER model=MODEL nodename=HOSTNAME.local"
}
pkg_postrm() {
udev_reload
# https://bugs.gentoo.org/961463
ldconfig -X
}
dev-libs/libusb:1 media-gfx/sane-backends net-dns/avahi[dbus] sys-apps/dbus virtual/libudev