Some scanners may disappear from system after upgrade to Leap 15.6

Symptom: A scanner which worked fine in previous system versions is no longer recognized by the system. If this is the case, running scanimage -vL will reveal the cause.

Cause: The package sane-backends requires package libnsl1 be installed., but this may not necessarily be the case in all situations. It certainly was not in mine. Libnsl1 is not even listed in the requires for package sane-backends, which provides the scanimage program.

Solution: Install package libnsl1with zipper or YaST, then open the Scan dialog in YaST. If the scanner does not now appear, ready to be configured, it is probably necessary to reboot.
Once the scanner does appear, it should work again without problem.

Recommendation: As mentioned, neither libnsl1 nor any of its provides is listed as a dependency in the sane-backends package. If this is because of some omission upstream, they need to be informed of the matter. If it is simply due to an omission when preparing the SUSE package, then either libnsl1 or libnsl.so.1 needs to be added to the sane-backends list of requires.

1 Like

I’m not aware of this requirement with sane-backends as such. For the most part, Avahi (libavahi-*) is used for network device discovery. The libnsl1 library is very old and was superseded by libnsl2 anyway. Which scanner backends still depend on it? FWIW, here’s an old RH bug report discussing a Brother vendor SANE backend as apparently using it, but not a common requirement? So, the dependency requirement should be with the proprietary (eg brscan3) package where required.

I think also its a Brother Problem:

[10:33:33.512620] [dll] load: searching backend `brother3' in `/usr/lib64/sane'
[10:33:33.512632] [dll] load: trying to load `/usr/lib64/sane/libsane-brother3.so.1'
[10:33:33.512650] [dll] load: dlopen()ing `/usr/lib64/sane/libsane-brother3.so.1'
[10:33:33.512858] [dll] load: dlopen() failed (libnsl.so.1: cannot open shared object file: No such file or directory)

After deleting brscan3 (from Brother), I do net get the above error.

For sure

# ldd /usr/lib64/sane/libsane-brother3.so.1
        linux-vdso.so.1 (0x00007fac74520000)
        libpthread.so.0 => /lib64/libpthread.so.0 (0x00007fac744f3000)
        libnsl.so.1 => not found
        libusb-0.1.so.4 => not found
        libm.so.6 => /lib64/libm.so.6 (0x00007fac74407000)
        libdl.so.2 => /lib64/libdl.so.2 (0x00007fac74404000)
        libc.so.6 => /lib64/libc.so.6 (0x00007fac73e00000)
        /lib64/ld-linux-x86-64.so.2 (0x00007fac74522000)

brscan4 has the Problem not:

[10:40:07.853439] [dll] load: searching backend `brother4' in `/usr/lib64/sane'
[10:40:07.853449] [dll] load: trying to load `/usr/lib64/sane/libsane-brother4.so.1'
[10:40:07.853475] [dll] load: dlopen()ing `/usr/lib64/sane/libsane-brother4.so.1'
[10:40:07.853659] [dll] init: initializing backend `brother4'
[10:40:07.867610] [dll] init: backend `brother4' is version 1.0.1

Yes, I found the same.

I can only report my own experience. I have all the core Avahi stuff installed, so that isn’t being used here. I told you about scanimage -vL:
When I ran it, before installing libnsl1, the reported error was “libnsl.so.1 missing” so I tend to think that the sane-backend package needs it, yes? Or have I missed one aspect of all this here, ie. did scanimage try every installed backend on the system, and maybe the error message did actually come from brscan3? In retrospect, I probably should have thought of this at the time.
The post on the RH forums talks about brscan4, which does have this problem. My scanner uses brscan3, which also has it – so the requirement is likely global with all Brother backends. The RH post shows that Brother was made aware of the issue back in 2018, so I have to wonder if they have intentions ever to upgrade their drivers.
Anyway, thanks for all for the very useful information. It has got me pointed in the right direction, which is an issue at Brother, not in sane-backends. For now, if you have a Brother scanner that disappeared, just install libnsl1 as an interim fix, and hope for the best in the future.
AFAIAC, this topic can probably be closed now.

Yeah, that meas nothing on its own.

No

Yes, Sauerland and I demonstrated that the Brother brscan3 backend was built to use it ie backend specific-requirement. :wink:

Thankfully, most network hardware should be discovered with the help of Avahi, otherwise explicit IP addressees or hostnames may be needed and added to the relevant backend config files. The legacy Brother driver looks like an exception here.

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.