On Mon 20 Jun 2022, at 17:34, The Wanderer <wande...@fastmail.fm> wrote:
> On 2022-06-20 at 12:01, Brian wrote:
>
>> On Mon 20 Jun 2022 at 09:28:30 -0400, The Wanderer wrote:
>> 
>>> On 2022-06-20 at 08:59, Brian wrote:
>
>>>> The ability to print to an IPP printer involves discovering its
>>>> URI. CUPS gets the URI via avahi-daemon whether it is an
>>>> on-demand or manual queue.
>>> 
>>> But that discovery doesn't have to be done by CUPS; once the URI is
>>> known, it should be possible for CUPS to simply accept the URI and
>>> work with it from then on, without discovery entering into the
>>> picture.
>> 
>> "...once the URIis known"? What mechaism does that? Incidentally, a
>> URI is required to query a printer for its attributes.
>
> Any of a number of mechanisms.
>
> CUPS could run discovery once, then either A: present the discovered URI
> with a prompt for whether to add it to its local list of known printers
> or B: add it to that list automatically, and then in either case not run
> discovery again until something asks it to.
>
> The user could run discovery manually (e.g. from the command line), then
> enter the discovered URI into CUPS.
>
> The user could look at another computer where the URI is already present
> in CUPS, and copy that across to the computer at hand.
>
> I could probably come up with more options if I thought about it for
> long enough.
>
>>>> Setting up a  manual queue for a moden printer is still available
>>>> but is unnecessary. 'lpstat -e' showves every printer on a subnet
>>>> and they should (barring bugs) appear in an application's print
>>>> dialog without any intervention.
>>> 
>>> The thing is, though, sometimes this is *undesirable*.
>> 
>> It is possible that upstream CUPS would agree. The intention is to
>> do something about it eventually.
>
> Depending on what the "something" is, that could be a very positive
> development!
>
>>> Going back to my workplace as an example, we have one subnet per
>>> building per floor, and one printer per classroom; we want the
>>> computers in each room to be able to see and print to the printer
>>> from that classroom, *only*. Having the ones from the other
>>> classrooms show up in the applications' print dialog would be a
>>> problem.
>> 
>> DNS-SD doesn't traverse subnets.
>
> Yes, but we don't have one subnet per classroom, we have one subnet per
> floor, with multiple classrooms per floor.
>
>>>> You can control whether Avahi browses for printers or not but
>>>> cannt make it selective in its browsing. DNS-SD is an
>>>> all-or-nothing public service discovery protocol. Perhaps think
>>>> of the display screens at airports.
>>> 
>>> That's just about discovery, though. I'm talking about what's done
>>> with the discovered information.
>>> 
>>> It sounds to me as if it's being said that CUPS takes the
>>> discovered information and automatically puts every discovered
>>> printer into the list of printers that will be made available in
>>> the print dialog (or equivalent).
>>> 
>>> That should not be the only option. It should also be possible to
>>> run discovery, manually select zero or more printers from the set
>>> discovered, and add *just those printers* to the list of those
>>> that will be shown in the print dialog
>>> 
>>> (It should also be possible to add printers to that list manually,
>>> without running discovery, if you know the necessary information.)
>> 
>> That's certainly possible at present.
>
> I figured, and seemed to recall, but did not want to assume.
>
>>> The result would be being able to be sure that the list of printers
>>> available in the print dialog will only change if someone manually
>>> modifies it, rather than changing automatically if the set of
>>> printers discoverable on the network changes.
>> 
>> Other would see the automatic change as a definite plus.
>
> And in some cases so would I! But not in others. And my interpretation
> of Gene's original complaint, as you quoted it, would suggest that he is
> in a case where he also would not.
>
> That's why whether or not this discovery-and-updating process is
> performed automatically should be *configurable*.
>
>>>> I beleive filtering of a printer list using LDAP is something
>>>> being considered for inclusion in a future CUPS.
>>> 
>>> Why should LDAP need to be involved? Unless you're using an
>>> external print server to get the printer list from (in which case
>>> things become in some ways simpler and in other ways considerably
>>> more complicated), the list of printers that applications should
>>> see is local, and should be able to be maintained locally without
>>> bringing external things such as LDAP into the picture.
>> 
>> My understanding of LDAP is very limited. All I know is that CUPS
>> will eshew simple filtering. It has been tried, and didn't work.
>
> I don't even know why filtering would be involved. You're not starting
> with a longer list and filtering it to show only a subset; you're
> starting with an empty list, populating it (either manually, or
> automatically but only on demand) from a longer one, storing the
> resulting list, and later showing it on demand.
>
> Or, at least, that's the way it *should* work.
>
> If there's a reason why filtering needs to be involved, given that "two
> separate lists" model, I'd be interested in seeing that reason
> clarified.
>
> (I can see why it would be useful in a model which says that the list
> which is available to applications is always updated automatically from
> the list generated by discovery; in that context you'd need some way to
> tell the system which things from the discovered list should be included
> or excluded from the made-available list. But since that shouldn't be
> the only behavior, filtering shouldn't be the starting point for
> thinking about this.)
>
> -- 
>    The Wanderer
>
> The reasonable man adapts himself to the world; the unreasonable one
> persists in trying to adapt the world to himself. Therefore all
> progress depends on the unreasonable man.         -- George Bernard Shaw
>
>
> Attachments:
> * signature.asc

My understanding is that /queues/ appear in application dialogs and seem to be 
what is at issue.

I can't test this as my combination of cups + printer isn't working as 
expected, but from /etc/cups/cups-browsed.conf:

"# Set CreateIPPPrinterQueues to "No" to not auto-create print queues
# for IPP network printers.

[...]

# cups-browsed by default creates local print queues for each shared
# CUPS print queue which it discovers on remote machines in the local
# network(s). Set CreateRemoteCUPSPrinterQueues to "No" if you do not
# want cups-browsed to do this. For example you can set cups-browsed
# to only create queues for IPP network printers setting
# CreateIPPPrinterQueues not to "No" and CreateRemoteCUPSPrinterQueues
# to "No"."

If cups or avahi still provide a list of /printers/ when setting up /queues/ 
manually, doesn't this provide a mechanism to achieve "list-on-demand" with 
queues otherwise hidden to applications and system-config-printer?

Best wishes,
Gareth

Reply via email to