stefan-langenmaier / brother-overlay

Portage overlay for Brother printer and scanner software
GNU General Public License v3.0
34 stars 41 forks source link

media-gfx/brscan4: consolidation request / differences? #100

Open mjsir911 opened 3 years ago

mjsir911 commented 3 years ago

Hello,

It seems that there are a lot of shared efforts under media-gfx/brother-scan4-bin in this repository & gentoo's official media-gfx/brscan4.

What are the differences between the two? Different approaches taken in this repository's? Gentoo's seems relatively recent, so there might be some stuff it could learn from the ebuilds in this repository (eg sane-backends[usb])

Gentoo's seems to be maintained by @ulm currently. Is there any way forward for consolidated efforts?

Thanks, -- Marco Sirabella

ulm commented 3 years ago

I see the media-gfx/brscan4 package in the Gentoo repo only as a stopgap solution for older scanners. Newer models (since 2016?) should support Avahi/Bonjour discovery (a.k.a. Apple AirScan) and announce themselves as _uscan._tcp service type. In which case you don't need any proprietary driver package.

Same applies to printers, only that Brother supported driverless printing somewhat earlier (since 2014 at least). See this list of supported printers.

Edit: It's a different story of course if the printer or scanner is connected via USB.

mjsir911 commented 3 years ago

Hi @ulm, thank you for your thoughts

I see the media-gfx/brscan4 package in the Gentoo repo only as a stopgap solution for older scanners.

Will this affect the attention given to media-gfx/brscan4 / reliability of it long term? brother-overlay has been maintaining brother-scan4-bin fairly regularly for a long time and it's been working well for me, but I would prefer to use a ::gentoo ebuild if it's given care.

Newer models (since 2016?) should support Avahi/Bonjour discovery (a.k.a. Apple AirScan) and announce themselves as _uscan._tcp service type. In which case you don't need any proprietary driver package.

This is good to know, but speaking for myself:

  1. I don't even have avahi-daemon enabled by default, haven't known to use it with printing (and other users might not, either)
  2. The current printer I have on hand: HP DeskJet 2540, does not show up in a avahi-browse --all list. I can't test for brother/brscan4 right now, but it doesn't seem flawless!

I would like to get the original author / maintainer of media-gfx/brother-scan4-bin involved in this, they should know the original intentions best, but from a quick look over the ebuild, here's a list of differences that might be worth considering copying over into ::gentoo, or at least questioning why it's done that way:

ulm commented 3 years ago

Will this affect the attention given to media-gfx/brscan4 / reliability of it long term? brother-overlay has been maintaining brother-scan4-bin fairly regularly for a long time and it's been working well for me, but I would prefer to use a ::gentoo ebuild if it's given care.

The package has just been added and has two developers listed as maintainers, so you can assume that it will be maintained for the foreseeable future (and I've maintained it in my overlay since 2014).

This is good to know, but speaking for myself:

1. I don't even have `avahi-daemon` enabled by default, haven't known to use it with printing (and other users might not, either)

You don't necessarily need avahi-daemon. If the device supports driverless printing or scanning, you can also manually enter it into the cups and sane configuration.

2. The current printer I have on hand: HP DeskJet 2540, does not show up in a `avahi-browse --all` list. I can't test for brother/brscan4 right now, but it doesn't seem flawless!

At least this list claims that it is supported.

* is the license a EULA? It's labelled `brother-eula` here

No, they call it EULA, but it has all elements of a free software license. Nevertheless, the package isn't free because (AFAIK) they don't distribute the sources.

* A few patches modifying udev rules, although it looks like `brscan4` doesn't even copy over `opt/brother/scanner/udev-rules/type1/NN-brother-mfp-type1.rules`, so maybe unneccessary? Are udev rules needed for usb? See [544f4fe](https://github.com/stefan-langenmaier/brother-overlay/commit/544f4fef1fe8436abea736d300f3cb49144c3cee)

Hm, I don't need any special udev rules here. When connected via USB, the device shows up in scanimage -L out of the box.

* `usb` USE flag, for `media-gfx/sane-backends[usb?]`

That's strongly discouraged by our policy, because it doesn't affect the package itself but only runtime dependencies. If the user wants USB for sane-backends, the right place is to enable the flag there (or globally).

* Additionally, `brother-scan4-bin` pulls in `sys-auth/nss-mdns` when USE=avahi

Yeah, that's a matter of taste. It's not needed as a runtime dependency directly.

* https://github.com/stefan-langenmaier/brother-overlay/blob/bd7f27e3399297ff80dfa64ed57cf1054792b573/media-gfx/brother-scan4-bin/brother-scan4-bin-0.4.8-r1.ebuild#L70-L71

It is a config file, so it should be in /etc/opt, because /opt (like /usr) is considered read-only. We have a symbolic link to it from /opt: https://github.com/gentoo/gentoo/blob/3853ca2def9372e20bc7fd971b385f32c2288221/media-gfx/brscan4/brscan4-0.4.10.1.ebuild#L32-L37

* different `postinst` messages/logic: https://github.com/stefan-langenmaier/brother-overlay/blob/bd7f27e3399297ff80dfa64ed57cf1054792b573/media-gfx/brother-scan4-bin/brother-scan4-bin-0.4.8-r1.ebuild#L75-L84

Sure, we could add that extra message. OTOH, you must work hard to avoid both elogind and systemd, and the acl flag is enabled by default. :smile: Also consolekit is a thing of the past.

mjsir911 commented 3 years ago

Thank you for the detailed response! You've addressed the major differences between the packages & alleviated my concerns :)

I'm going to leave this issue open for the time being to wait to see if anything actionable will be associated with it, but that's all from me!

Thanks a lot, -- Marco Sirabella

stefan-langenmaier commented 3 years ago

Hi @mjsir911 thanks for raising this question and thanks @ulm for all the information. I wasn't aware of the package in the ::gentoo repository. I can't give a lot of further details but only a little historical background. I had a couple of Brother printers in my office and found some ebuilds in different repos. So I collected printer drivers and people started to contribute. :) I tried to keep a minimal level of quality but the level was not up for the official Gentoo repo so I never worried.

I don't want to duplicate efforts or create confusion, so what are you suggestions regarding this package? Should it be removed here? Is there a general/official migration guide/strategy for packages from third-party repos to the official one. Would be happy to stream line it.

Thanks in advance!

ulm commented 3 years ago

I am not aware of any such policy, except for official repositories like GURU. In your own repository you have the authority. :smile:

I also don't have any strong opinion about removal of the package from your overlay. On the one hand it is of course duplication. On the other hand it goes along here with brscan2 and brscan3 which aren't in the main repo. And they won't be added unless somebody who has the right hardware can maintain them (so not me).

mjsir911 commented 3 years ago

I'm :+1: for removing/limiting the package in this overlay, but I see a few practical problems with that:

  1. Users that have media-gfx/brother-scan4-bin will have to upgrade to media-gfx/brscan4 if the ebuild is removed. Can this be fixed with profiles/updates/* to re-point to the new package?
  2. In brother-scan4-bin, the canonical config file is /opt/brother/scanner/brscan4/Brsane4.ini, while for brscan4 it is a symlink to /opt/brother/scanner/brscan4/Brsane4.ini, so on reinstall my config is lost. This isn't a fun upgrade path for users :(

A few solutions sorted by ease:

mjsir911 commented 3 years ago

To add on to this, media-gfx/brother-scan4-bin keeps trying to reinstall on my on my system because I've selected net-print/brother-mfcl2700dw-bin.

This package doesn't seem to do anything, so I'm going to deselect it, but addressing the consolidation would at least prevent portage from attempting to emerge both brscan4 & brother-scan4-bin at the same time.