On Mon 20 Jun 2022, at 23:31, Gareth Evans <donots...@fastmail.fm> wrote:
> 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/ 

... and queues from other reachable CUPS instances ...

> 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