# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2

# based on ebuilds from funtoo and flow overlay

EAPI=8

inherit rpm udev

BUILD=1
MY_PN=brscan4

DESCRIPTION="Brother scanner tool version 4"
HOMEPAGE="http://support.brother.com/g/s/id/linux/en/index.html"
SRC_URI="amd64? ( http://download.brother.com/welcome/dlf105203/${MY_PN}-${PV}-${BUILD}.x86_64.rpm )
	x86? (	http://download.brother.com/welcome/dlf105202/${MY_PN}-${PV}-${BUILD}.i386.rpm )
	https://download.brother.com/welcome/dlf103900/brother-udev-rule-type1-1.0.2-0.noarch.rpm"
LICENSE="GPL-2 brother-eula no-source-code"
SLOT="0"

KEYWORDS="~amd64 ~x86"
RESTRICT="mirror strip"
IUSE="usb avahi"

RDEPEND="
	net-libs/libnsl
	media-gfx/sane-backends[usb?]
	virtual/libusb:0

	avahi? ( net-dns/avahi
		sys-auth/nss-mdns )
"
DEPEND=""

PATCHES=( "${FILESDIR}/${PN}-fix-udev-rules.patch" )

S="${WORKDIR}"

src_install() {
	local brscan4dir="opt/brother/scanner/brscan4"

	exeinto usr/$(get_libdir)/sane
	doexe usr/$(get_libdir)/sane/libsane-brother4.so.1.0.7
	dosym libsane-brother4.so.1.0.7 /usr/$(get_libdir)/sane/libsane-brother4.so.1
	dosym libsane-brother4.so.1.0.7 /usr/$(get_libdir)/sane/libsane-brother4.so

	udev_newrules opt/brother/scanner/udev-rules/type1/NN-brother-mfp-type1.rules 41-brother-mfp-type1.rules

	cd ${brscan4dir} || die
	insinto ${brscan4dir}
	doins -r Brsane4.ini brsanenetdevice4.cfg models4

	exeinto ${brscan4dir}
	doexe brsaneconfig4
	doexe brscan_gnetconfig
	doexe brscan_cnetconfig

	# Install necessary symlinks (as found in rpm and used by brsaneconfig4)
	dosym ../../${brscan4dir}/brsaneconfig4 /usr/bin/brsaneconfig4
	dodir etc/${brscan4dir}
	for config in Brsane4.ini brsanenetdevice4.cfg models4 ; do
		dosym ../../../../../${brscan4dir}/${config} /etc/${brscan4dir}/${config}
	done

	# Install sane configuration so it does not collide with other packages
	echo "brother4" > brscan4.conf || die
	insinto etc/sane.d/dll.d
	doins brscan4.conf

	echo 'CONFIG_PROTECT="/opt/brother/scanner/brscan4/brsanenetdevice4.cfg"' > "${T}/50brscan4" || die
	doenvd "${T}/50brscan4"
}

pkg_postinst() {
	if ! has_version sys-auth/consolekit[acl] && \
		! has_version sys-auth/elogind[acl] && \
		! has_version sys-apps/systemd[acl]
	then
		elog "You may need to be in the scanner or plugdev group in order to use the scanner"
	fi

	elog "To add a network scanner to sane, run:"
	elog "brsaneconfig4 -a name=(name your device) model=(model name) ip=xx.xx.xx.xx"
	elog "or simply run brsaneconfig4 for more options"
}