Skip to content
This repository was archived by the owner on Mar 10, 2026. It is now read-only.
This repository was archived by the owner on Mar 10, 2026. It is now read-only.

Samsung printer drivers incorrectly use Emulators keyword to configure themselves #5562

Description

@neiser

As reported in the comments here https://aur.archlinux.org/pkgbase/samsung-unified-driver there's a regression when using the version 2.2.11 instead of 2.2.10. Instead of printing the file, it prints the error message

SPL-C ERROR - Please use the proper driver
POSITION : 0x0 (0)
SYSTEM : src_5.47/xl_image
LINE : 629
VERSION : SPL-C 5.47 01-15-2010

I've bisected the problem using my printer Samsung CLX-3185 and found the following commit to be the first commit introducing the regression 558bba7

Unfortunately, I cannot test the current master version if the regression still persists, as I'm getting a nasty compilation error after applying ArchLinux patches:

Compiling ippeveprinter.c...
ippeveprinter.c:163:3: error: unknown type name 'ippeve_srv_t'; did you mean
      'ippeve_job_t'?
  ippeve_srv_t          ipp_ref,        /* Bonjour IPP service */
  ^~~~~~~~~~~~
  ippeve_job_t
ippeveprinter.c:156:29: note: 'ippeve_job_t' declared here
typedef struct ippeve_job_s ippeve_job_t;
                            ^
ippeveprinter.c:163:17: error: field has incomplete type 'ippeve_job_t' (aka
      'struct ippeve_job_s')
  ippeve_srv_t          ipp_ref,        /* Bonjour IPP service */
                        ^
ippeveprinter.c:156:16: note: forward declaration of 'struct ippeve_job_s'
typedef struct ippeve_job_s ippeve_job_t;
               ^
ippeveprinter.c:164:4: error: field has incomplete type 'ippeve_job_t' (aka
      'struct ippeve_job_s')
                        ipps_ref,       /* Bonjour IPPS service */
                        ^
...

When I try to revert the problematic commit 558bba7 on v2.2.11, I get the following linking error:

Linking libcups.so.2...
clang-8: warning: argument unused during compilation: '-pie' [-Wunused-command-line-argument]
Making all in test...
Compiling ippfind.c...
Linking ippfind...
/usr/bin/ld: ../cups/libcups.so: undefined reference to `ppd_free'
clang-8: error: linker command failed with exit code 1 (use -v to see invocation)
make[1]: *** [Makefile:186: ippfind] Error 1
make: *** [Makefile:38: all] Error 1

Which I was able to fix by adding the line

#define ppd_free(p)	if (p) free(p)	/* Safe free macro */

back to cups/ppd.c

The finally build package with this "reverted" v2.2.11 did not show the regression, which pretty much indicates that 558bba7 is really the problem here (although the related PR #5475 told me that it just removed dead code, maybe not so dead at all...)

Maybe someone can help me fixing those compile errors on the master branch, or can manually check if the above commit has been reverted in the meantime.

I'm happy to provide more information on the problem or test proposed patches (if I get them to compile on my machine).

Metadata

Metadata

Assignees

Labels

Type

No type

Fields

No fields configured for issues without a type.

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions