Hi Shivani,

thank you for looking into the issue!

> Could you please provide the printer model name you are using?

HP LaserJet M1536dnf MFP

> HPLIP does not need to install plugin in order to print. It only
requires plugin in order to     > scan.

Unfortunately, it is not true for several devices, e.g.:

hp laserjet cp 1025nw
hp laserjet professional p 1102w

Their PDL is zjstream, which is supported only by binary blob downloaded
via hp-plugin.

> Previously, few entities in models.dat had remained as plugin=1 , which has 
> been removed in 
> 3.20.6 release.

Actually, 'plugin=1' doesn't mean the plugin is needed for printing, but
it means whether it is needed or not. The reason why the plugin is
needed is covered by 'plugin-reason' (e.g. plugin-reason=64 means the
plugin is needed for scanning). So when all 'plugin=1' entries were
removed, all those devices think they don't need a plugin (for printing,
or scanning, or both) and fail to print/scan anything if the plugin
wasn't installed previously (common use case when installing a printer
on freshly installed OS).

If I look into current upstream models.dat, it seems only scanjet models
are marked as they need plugin. Multi-function devices are not taken
into account.

Ad previous 'plugin=0/1' settings - I'm not sure how many HP devices you
have at hand for testing, but at least when I look into
scan/sane/hpaio.c:

if ((ma.scantype == HPMUD_SCANTYPE_MARVELL) || (ma.scantype == 
HPMUD_SCANTYPE_MARVELL2))
       return marvell_open(devicename, pHandle);
if (ma.scantype == HPMUD_SCANTYPE_SOAP)
       return soap_open(devicename, pHandle);
if (ma.scantype == HPMUD_SCANTYPE_SOAPHT)
       return soapht_open(devicename, pHandle);
if (ma.scantype == HPMUD_SCANTYPE_LEDM)
       return ledm_open(devicename, pHandle);
if ((ma.scantype == HPMUD_SCANTYPE_SCL) || (ma.scantype == 
HPMUD_SCANTYPE_SCL_DUPLEX) ||(ma.scantype == HPMUD_SCANTYPE_PML))
       return sclpml_open(devicename, pHandle);
if (ma.scantype == HPMUD_SCANTYPE_ESCL)
       return escl_open(devicename, pHandle);
if (ma.scantype == HPMUD_SCANTYPE_ORBLITE)
       return orblite_open(devicename, pHandle);
else
       return SANE_STATUS_UNSUPPORTED;

all device types except for SCL and PML call bb_load() function, which loads 
symbols from binary plugins downloaded via hp-plugin.
To sum it up, I would say most devices which are able to scan and didn't have 
'plugin=1' and 'plugin-reason=64' had bad entries in models.dat and supposed to 
require a binary plugin for scanning.

> Also plugin has nothing to do with python version. It will work on
python3 as well.

I wasn't the one who thought it is a python issue.

> Please install plugin via ,
> $sh hplip-3.20.6.plugin.run

This will certainly help, but you are missing the point. Before
hplip-3.20.6, hp-setup (with models.dat help) was able to install the
plugin automatically, when it recognized that found device needs it.
models.dat is used as a database about device features, including
plugin.

After hplip-3.20.6, models.dat lost info for several models regarding
plugin, making them unusable unless you manually install the plugin.

IMO making a device work, which your suggestion does, is quite different
from 'making a device work in user-friendly way', which hp-setup offered
(for those devices, which plugin/plugin-reason were set correctly)
before version 3.20.6 and which should be preferred for a long-term
solution.

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1883898

Title:
  version 3.20.6 turns off plugin requirement for most printers

To manage notifications about this bug go to:
https://bugs.launchpad.net/hplip/+bug/1883898/+subscriptions

-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to