Bug 1220520

Summary: Configure remote printer: does not disable local cups entirely
Product: [openSUSE] openSUSE Distribution Reporter: Bernd Nachtigall <bnacht>
Component: YaST2Assignee: Johannes Meixner <jsmeix>
Status: RESOLVED WONTFIX QA Contact: Jiri Srain <jsrain>
Severity: Minor    
Priority: P5 - None CC: jsmeix, suse-beta
Version: Leap 15.5   
Target Milestone: ---   
Hardware: Other   
OS: All   
Whiteboard:
Found By: --- Services Priority:
Business Priority: Blocker: ---
Marketing QA Status: --- IT Deployment: ---

Description Bernd Nachtigall 2024-02-28 08:56:06 UTC
Fresh installed Leap; Configure a remote printer; Get the message that the local cups will be disabled -> OK; But after that I get the message that the local cups is running again.

It looks like YaST does only disable cups.service; cups.socket and cups.path, but not stop them (missing --now ?)

After I stop the three units the config was successful.
Comment 1 Johannes Meixner 2024-07-05 11:39:01 UTC
In general regarding the YaST printer module:

In practice the YaST printer module is no longer
acually further developed since it was
"converted from YCP to Ruby by YCP Killer" that happened
in July 2013, see the yast2-printer.changes entry
----------------------------------------------------------
Wed Jul 31 08:37:43 UTC 2013 - yast-devel@opensuse.org

- converted from YCP to Ruby by YCP Killer
  (https://github.com/yast/ycp-killer)
- version 3.0.0
----------------------------------------------------------
at
https://build.opensuse.org/package/view_file/YaST:Head/yast2-printer/yast2-printer.changes?expand=1

My last change is dated Mon Jan 19 14:51:39 UTC 2015
and my last actual development enhancements are dated
before it was "converted from YCP to Ruby by YCP Killer".

Since that time the YaST printer module is kept working as is
as far as possible with reasonable effort by YaST team members
who know about how to deal with their generated Ruby code.

Since my YCP code was converted into generated Ruby code
it is no longer my code and it is no longer code
that I could further develop with reasonable effort.

Because the YaST printer module is based on the traditional
way how printing had worked with CUPS <= 1.5.4
(in particular for printing in the network)
within a traditional system environment at that time
(in particular before systemd - i.e. with old SysVinit),
the YaST printer module has various shortcomings and bugs
with nowadays CUPS within a nowadays system environment.

According to
https://bugzilla.suse.com/page.cgi?id=status_resolution_matrix.html
I can only close it as "wontfix" because this issue is a bug
but I cannot fix it in practice in foreseeable future.
Comment 2 Christian Boltz 2024-07-05 17:20:46 UTC
Johannes, I understand your frustration, but WONTFIX still isn't a good idea, and moves (actually copies) your frustration to the user.

Let me assign the bug to the YaST team instead, who hopefully can fix this bug.
Comment 3 Stefan Hundhammer 2024-07-06 13:44:39 UTC
We do not maintain this module.

It has a very special structure of its own, relying mostly on very long pipelines of shell commands (including for things that have better counterparts in all interpreted languages; like 'grep' or 'sed' and whatnot). Because of that, it was always hard to maintain and very difficult to debug.

If this would be really needed by any paying customer with a maintenance contract, we'd have to rewrite it from scratch; anything else would be just burying new landmines.

But in this day and age, there is really no need for a YaST module for printing anymore anyway. Every single one of the major desktops has much simpler and more intuitive tools for setting up a printer; be it KDE Plasma, GNOME or Xfce, or all their derivatives.

In addition to that, there is the CUPS web UI. And in a corporate environment printers are administered centrally.

YaST printer has been factually dead for a long time. May it rest in peace.
Comment 4 Stefan Hundhammer 2024-07-06 13:46:19 UTC
Restoring the old asignee and bug resolution.
Comment 5 Stefan Hundhammer 2024-07-06 13:52:45 UTC
Please refrain from reopening this again.
This issue has been discussed to death numerous time already.

Even if a community builds around this, this would be a major effort, and still the only viable solution would be a complete rewrite. The endless shell pipelines that are called from this YaST module, impossible to debug and to maintain, let alone test, would be painful enough.

But together with that auto-translated code it becomes even worse, because the YCP-to-Ruby code converter aimed at code correctness, and readability and maintainability suffered heavily from it. It's hard to understand (let alone change) for hard-core Ruby developers who are also (!) hard-core YCP developers. The number of such people in this world can be counted on one hand.

YaST printer was a useful tool 15-20 years ago when there were no alternatives. But today, there are several; there is simply no need to try to keep this zombie code alive.
Comment 6 Johannes Meixner 2024-07-08 08:03:17 UTC
Stefan Hundhammer

thank you for your explanatory reasoning
why that old outdated and obsoleted YaST module
should be removed.

We all who worked or (still have to) work with its code
see that clearly and know that since a long time.

Years ago I did some attempts in several ways
to get it removed but there was always no response
so I had to give up because I cannot endlessly
waste my time with useless attempts.

FYI
some background information how it happened that the
current YaST printer code became the official one:

I developed it on my own only as a proof of concept
for UI enhancements of the older YaST printer module.

So at that time (in 2008) I made an
"experimental YaST printer module"
to get not just nice looking design ideas
but something which is really implemented
so that one can test how its usability is
"out there in the real world".

I documented all that in

https://en.opensuse.org/Archive:YaST_Printer_redesign

I never intended that my experimental code in my
"experimental YaST printer module" should ever
become official code in an official YaST module.

In June 2008 I was on parental leave
and when I came back in August 2008 I noticed
that my "experimental YaST printer module"
had become the official YaST printer module.

I was rather shocked at that time because
my "experimental YaST printer module"
was missing major functionality, in particular
regarding printing via network and cupsd config.

So from August 2008 until December 2008
I had to quickly hack in the missing functionality
to get it somehow ready to use for the upcoming
openSUSE 11.1 release on December 18 2008, see
"openSUSE 11.1 includes a new printer module" in

https://lists.opensuse.org/archives/list/announce@lists.opensuse.org/message/ZNCYS2AGGEELE4NKOL75ZNNHOONAEYJF/

One can also retrace that in the YaST printer
RPM changes entries at that time, see

https://build.opensuse.org/projects/YaST:Head/packages/yast2-printer/files/yast2-printer.changes

starting at "Mon Aug 11 14:11:31 CEST 2008"

This way I became "de facto" author and maintainer of the
official YaST printer module which I never intended.
Comment 7 Christian Boltz 2024-07-09 13:03:13 UTC
Thanks for the explanations!

Given that nobody wants to maintain this module (which is understandable), can you please file a delete request so that it gets removed from Tumbleweed?
Comment 8 Stefan Hundhammer 2024-07-11 09:40:13 UTC
Johannes explained how he tried that several times, but it was always denied.

I am not sure if that was only to keep it around for business products like SLE, or in general. Of course we have to keep it for business products under paid maintenance contracts (SLE-15 SPx, SLE-12 SPx).
Comment 9 Johannes Meixner 2024-07-12 12:35:02 UTC
I can no longer find my older ones that I tried years ago
because their URLs (which I still find in my old stuff)
are no longer accessible as nowadays all that decayed
into various continuous streams of information flow
that all just pass by - into nowhere...

The latest one I could find and which might be even
public accessible is

https://code.opensuse.org/leap/features/issue/33

which also passed by about a years ago.

At SUSE we have a feaw matching internal issues.
I found the above by following links in our internal issues.
And - guess what (no real surprise) - those internal issues
died out some years ago (i.e. no further activity there).

So again I wasted now about one more hour of my working time
(that our SUSE customers have to pay who have in practice
null interest in the YaST printer module - otherwise we
would have to deal with tons of customer issues with it)
with archeology regarding the YaST printer module - sigh!

Don't worry - I got now personally interested to dig out
what its current state might be ;-)

Regardless of that:

I wish you all a nice weekend!