[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: RFS: brother-inkjet-dcpj952n/3.0.0-2 [ITP] -- printer driver for Brother Inkjet printers



There was already earlier a contributor who tried to distro-package the Brother drivers for Ubuntu. He patched and modified a lot and it did not take long until he gave up and I did not want to continue maintaining this mess and abandoned it.

The really bad thing now, many years after the last incarnations of LPD (like LPRng) have been abandoned, leaving CUPS as the only maintained printing system, Brother still insists on proprietary LPD core drivers and free software wrapper scripts to make them "working" with CUPS.

The free wrappers make the impression that there are free software drivers for Brother's printers from Brother, which is not true.

No one needs LPD drivers and the CUPS drivers are so bad because one tries to make drivers for a completely different printing architecture work under CUPS.

They are also missing all concepts of sharing code between applications (what is a library?) and the same code gets repeated in every package.

So if you really want to have a Brother printer, make sure that it does IPP Everywhere or AirPrint. These are driverless printing methods which are in Ubuntu from version 17.04 (Zesty) on and they are also in current Debian Experimental.

   Till

On 12/14/2016 03:19 PM, Didier 'OdyX' Raboud wrote:
Le mardi, 13 décembre 2016, 20.02:07 h CET Roger Shimizu a écrit :
I also found this page:
-
https://github.com/illwieckz/debian_copyist_brother/tree/master/material/
sources

I didn't know there were so many packages from Brother ..

Yeah. That's a big mess there.

However I think there may be more Japan local models with unique drivers.
I'll try to collect those drivers.

BTW. What's the result of GSoC2015, other than the github repo above?
It'd be great if there's some progress ..

I concluded the initial project with these comments:
* Brother makes it really complicated by bundling various files in
various licenses in literally hundreds of different packages with lots
of overlap and no publicly accessible source repository;
* In the middle of the project phase, Brother reworked their website and
broke the files reachability by hiding most behind a webform.

Where I'm going to, is that I wonder if we could not have a wider
packaging work around the Brother drivers: they come in vastly different
forms, but bundle essentially a wide set of mostly-identical scripts. Many
of these scripts assume they are installed in /opt and also assume 'lpd'
is still the printer server in use.
(…)
That amounts to saying I don't think the package as packaged currently is
really suitable for Debian main.

Yes. So I guess it's better to remove my repo from alioth.

Don't worry, it's fine. It's also good to have a first attempt there.

If supporting all Brother models is too difficult task, I think it'd
be better if we can get drivers of a few "popular" models into Debian
main (or non-free if main is not right place).

Sure. It'd be good to start somewhere. But if that "somewhere" has an english
website, it's also quite easier for me. :-)

As you have probably seen from the git repository above, there are a lot of
problems to solve:
- Most if not all the cupswrapper* scripts do dangerous or stupid things:
  - including writing temporary printer filters
  - assuming everything is in /opt
  - need to run as root
  - force-create printers in CUPS
  - some of these are written in csh
  - etc
- There is _a lot_ of duplication of code between these drivers.
- There are stupid things spread around:
- "Connecting more than one machine with the same model number is not
supported"
- "Some drivers are duplicated for SI unit (mm) or Imperial units (inch),
see the TD-2020 for example."
- "Many PPD are not distributed directly but embedded in Shell or C-Chell
scripts from cupswrapper package, sometimes as heredocs, sometimes as a
long list of echo commands."
- Some drivers need the "LPR" driver, which is not available under a FLOSS
licence.

So far, the only way to drive any kind of sense out of all this was this
approach: take all of what Brother makes available, put it in a giant
repository, analyze what is free and what isn't, and drive conclusions from
there. A possibility here is still to consider the problem too hard to fix, but
it feels there is an opportunity for a global solution.

If I had energy & time, I'd start with de-piling what this cupswrapper script
does for the current package, and try to automatically extract the useful bits
(filter script, PPD file), in the build-process, to provide these static assets
as part of the binary package.

I hope I haven't demoralized you too much here. :-/



Reply to: