GNU bug report logs - #50749
28.0.50; three gnus-icalendar issues w.r.t. RFC5546 and party crashers

Previous Next

Package: emacs;

Reported by: Alexandre Duret-Lutz <adl <at> lrde.epita.fr>

Date: Thu, 23 Sep 2021 07:49:01 UTC

Severity: normal

Tags: patch

Found in version 28.0.50

Fixed in version 29.1

Done: Lars Ingebrigtsen <larsi <at> gnus.org>

Bug is archived. No further changes may be made.

To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 50749 in the body.
You can then email your comments to 50749 AT debbugs.gnu.org in the normal way.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to bug-gnu-emacs <at> gnu.org:
bug#50749; Package emacs. (Thu, 23 Sep 2021 07:49:01 GMT) Full text and rfc822 format available.

Acknowledgement sent to Alexandre Duret-Lutz <adl <at> lrde.epita.fr>:
New bug report received and forwarded. Copy sent to bug-gnu-emacs <at> gnu.org. (Thu, 23 Sep 2021 07:49:01 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Alexandre Duret-Lutz <adl <at> lrde.epita.fr>
To: bug-gnu-emacs <at> gnu.org
Cc: Jan Tatarik <Jan.Tatarik <at> gmail.com>
Subject: 28.0.50; three gnus-icalendar issues w.r.t. RFC5546 and party crashers
Date: Thu, 23 Sep 2021 09:47:59 +0200
[Message part 1 (text/plain, inline)]
Hi,

At my job, some colleagues regularly send iCal invitations to mailing
lists, and expect the recipients of these mailing lists to accept the
invitation individually to indicate whether they are coming or not.

The iCal invitations only lists the mailing list has an "attendee", not
the all final recipients.

When I receive such an invitation in Gnus,
gnus-icalendar-event->gnus-calendar will tell me that
"You are not listed as an attendee", and rightly so.

However the code in gnus-icalendar-event:inline-reply-buttons
prevents me from replying to the invitation by hiding the
buttons.  This is not desired: I still want to reply.

RFC5546 specifically allows users not listed as attendee to reply to an
invitation.  Section 3.2.3 refers to those as a party crashers.

Patch 0002 fixes this issue, which is the most important to me.  In that
patch, I was hesitant to remove the (lwarn...) message.  I have tested
that party crashing work with invitations sent to me (indirectly) by
Outlook users.  It does not work with Google Calendar, but I think the
issue is on their side (someone else reported this on stackoverflow
at https://stackoverflow.com/questions/66519665/ )

While working on that and discovering RFC5546 (which is completely new to
me), I found two other issues in the gnus-icalendar code.

One is that when replying to an iCal invitation, the mail should be sent
to the "organizer" of that event, not to the sender of the email.  This
matters for forwarded invitations, for instance (and forwarded
invitations in turn are related to supporting party crashers).  Also
some calendar systems can use dedicated email addresses to handle those
events: Google Calendar, for instance, uses mail addresses in
"...@group.calendar.google.com" for secondary calendars, and lists those
as organizers of events in these calendars (but so far, mail replies to
those event seems simply ignored, I'll try to find a place where to
report that).

Patch 0001 fixes the recipient of the invitation response.


Finally, while displaying the mail sent for party-crasher responses
(after patch 0002), I noticed that gnus-icalendar-event->gnus-calendar
was still telling me that "You are not listed as an attendee", despite
actually being the only attendee listed.  This is because the code
assumes that a missing ROLE parameter on the ATTENDEE line signifies
NON-PARTICIPANT.  That's not what RFC5546 specifies in section 4.2.1:
the default value for the "ROLE" parameter is "REQ-PARTICIPANT" and it
need not be enumerated.  Patch 0003 fixes that.



[0001-reply-to-the-organizer-of-an-ical-event.patch (text/x-diff, attachment)]
[0002-allow-party-crashers-to-respond-to-ical-events.patch (text/x-diff, attachment)]
[0003-default-role-for-attendees-is-REQ-PARTICIPANT.patch (text/x-diff, attachment)]

Added tag(s) patch. Request was from Lars Ingebrigtsen <larsi <at> gnus.org> to control <at> debbugs.gnu.org. (Thu, 23 Sep 2021 21:48:01 GMT) Full text and rfc822 format available.

Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#50749; Package emacs. (Thu, 23 Sep 2021 21:50:02 GMT) Full text and rfc822 format available.

Message #10 received at 50749 <at> debbugs.gnu.org (full text, mbox):

From: Lars Ingebrigtsen <larsi <at> gnus.org>
To: Alexandre Duret-Lutz <adl <at> lrde.epita.fr>
Cc: 50749 <at> debbugs.gnu.org, Jan Tatarik <Jan.Tatarik <at> gmail.com>
Subject: Re: bug#50749: 28.0.50; three gnus-icalendar issues w.r.t. RFC5546
 and party crashers
Date: Thu, 23 Sep 2021 23:49:46 +0200
Alexandre Duret-Lutz <adl <at> lrde.epita.fr> writes:

> While working on that and discovering RFC5546 (which is completely new to
> me), I found two other issues in the gnus-icalendar code.

Thanks; skimming the patches, I they make sense to me, but perhaps Jan
has further comments here.

But I see that you have many FSF copyright assignments on file, but not
one for Emacs?  These patches are collectively too big to apply without
one -- would you be willing to sign one?

If so, here's the form to get started:


Please email the following information to assign <at> gnu.org, and we
will send you the assignment form for your past and future changes.

Please use your full legal name (in ASCII characters) as the subject
line of the message.
----------------------------------------------------------------------
REQUEST: SEND FORM FOR PAST AND FUTURE CHANGES

[What is the name of the program or package you're contributing to?]
Emacs

[Did you copy any files or text written by someone else in these changes?
Even if that material is free software, we need to know about it.]

[Do you have an employer who might have a basis to claim to own
your changes?  Do you attend a school which might make such a claim?]

[For the copyright registration, what country are you a citizen of?]

[What year were you born?]

[Please write your email address here.]

[Please write your postal address here.]

[Which files have you changed so far, and which new files have you written
so far?]




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#50749; Package emacs. (Thu, 23 Sep 2021 23:58:02 GMT) Full text and rfc822 format available.

Message #13 received at 50749 <at> debbugs.gnu.org (full text, mbox):

From: Alexandre Duret-Lutz <adl <at> lrde.epita.fr>
To: Lars Ingebrigtsen <larsi <at> gnus.org>
Cc: 50749 <at> debbugs.gnu.org
Subject: Re: bug#50749: 28.0.50; three gnus-icalendar issues w.r.t. RFC5546
 and party crashers
Date: Fri, 24 Sep 2021 01:57:04 +0200
Lars Ingebrigtsen <larsi <at> gnus.org> writes:
> But I see that you have many FSF copyright assignments on file, but not
> one for Emacs?  These patches are collectively too big to apply without
> one -- would you be willing to sign one?

I knew this was coming :-)  Form sent.




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#50749; Package emacs. (Fri, 24 Sep 2021 14:36:01 GMT) Full text and rfc822 format available.

Message #16 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Jan Tatarik <jan.tatarik <at> gmail.com>
To: Alexandre Duret-Lutz <adl <at> lrde.epita.fr>
Cc: bug-gnu-emacs <at> gnu.org
Subject: Re: 28.0.50; three gnus-icalendar issues w.r.t. RFC5546 and party
 crashers
Date: Fri, 24 Sep 2021 16:35:32 +0200
On Thu, Sep 23 2021, Alexandre Duret-Lutz wrote:

> Hi,

> At my job, some colleagues regularly send iCal invitations to mailing
> lists, and expect the recipients of these mailing lists to accept the
> invitation individually to indicate whether they are coming or not.

> The iCal invitations only lists the mailing list has an "attendee", not
> the all final recipients.

> When I receive such an invitation in Gnus,
> gnus-icalendar-event->gnus-calendar will tell me that
> "You are not listed as an attendee", and rightly so.

> However the code in gnus-icalendar-event:inline-reply-buttons
> prevents me from replying to the invitation by hiding the
> buttons.  This is not desired: I still want to reply.

[...]

Looks ok to me, thank you.




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#50749; Package emacs. (Sat, 25 Sep 2021 00:46:02 GMT) Full text and rfc822 format available.

Message #19 received at 50749 <at> debbugs.gnu.org (full text, mbox):

From: Lars Ingebrigtsen <larsi <at> gnus.org>
To: Alexandre Duret-Lutz <adl <at> lrde.epita.fr>
Cc: 50749 <at> debbugs.gnu.org
Subject: Re: bug#50749: 28.0.50; three gnus-icalendar issues w.r.t. RFC5546
 and party crashers
Date: Sat, 25 Sep 2021 02:45:02 +0200
Alexandre Duret-Lutz <adl <at> lrde.epita.fr> writes:

> I knew this was coming :-)  Form sent.

Great!   I'll mark this bug as "pending" as in "to be applied when the
paperwork is done".

-- 
(domestic pets only, the antidote for overdose, milk.)
   bloggy blog: http://lars.ingebrigtsen.no




Added tag(s) pending. Request was from Lars Ingebrigtsen <larsi <at> gnus.org> to control <at> debbugs.gnu.org. (Sat, 25 Sep 2021 00:46:02 GMT) Full text and rfc822 format available.

Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#50749; Package emacs. (Fri, 01 Oct 2021 08:17:01 GMT) Full text and rfc822 format available.

Message #24 received at 50749 <at> debbugs.gnu.org (full text, mbox):

From: Alexandre Duret-Lutz <adl <at> lrde.epita.fr>
To: Lars Ingebrigtsen <larsi <at> gnus.org>
Cc: 50749 <at> debbugs.gnu.org
Subject: Re: bug#50749: 28.0.50; three gnus-icalendar issues w.r.t. RFC5546
 and party crashers
Date: Fri, 01 Oct 2021 10:15:58 +0200
> Great!   I'll mark this bug as "pending" as in "to be applied when the
> paperwork is done".

Assignment is now on file.




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#50749; Package emacs. (Fri, 01 Oct 2021 12:10:01 GMT) Full text and rfc822 format available.

Message #27 received at 50749 <at> debbugs.gnu.org (full text, mbox):

From: Lars Ingebrigtsen <larsi <at> gnus.org>
To: Alexandre Duret-Lutz <adl <at> lrde.epita.fr>
Cc: 50749 <at> debbugs.gnu.org, Jan Tatarik <jan.tatarik <at> gmail.com>
Subject: Re: bug#50749: 28.0.50; three gnus-icalendar issues w.r.t. RFC5546
 and party crashers
Date: Fri, 01 Oct 2021 14:09:01 +0200
Alexandre Duret-Lutz <adl <at> lrde.epita.fr> writes:

>> Great!   I'll mark this bug as "pending" as in "to be applied when the
>> paperwork is done".
>
> Assignment is now on file.

Yup; so I've applied all three of your patches to the trunk (i.e., Emacs
29).

-- 
(domestic pets only, the antidote for overdose, milk.)
   bloggy blog: http://lars.ingebrigtsen.no




bug marked as fixed in version 29.1, send any further explanations to 50749 <at> debbugs.gnu.org and Alexandre Duret-Lutz <adl <at> lrde.epita.fr> Request was from Lars Ingebrigtsen <larsi <at> gnus.org> to control <at> debbugs.gnu.org. (Fri, 01 Oct 2021 12:10:02 GMT) Full text and rfc822 format available.

Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#50749; Package emacs. (Fri, 01 Oct 2021 12:16:02 GMT) Full text and rfc822 format available.

Message #32 received at 50749 <at> debbugs.gnu.org (full text, mbox):

From: Lars Ingebrigtsen <larsi <at> gnus.org>
To: Alexandre Duret-Lutz <adl <at> lrde.epita.fr>
Cc: 50749 <at> debbugs.gnu.org
Subject: Re: bug#50749: 28.0.50; three gnus-icalendar issues w.r.t. RFC5546
 and party crashers
Date: Fri, 01 Oct 2021 14:15:16 +0200
Alexandre Duret-Lutz <adl <at> lrde.epita.fr> writes:

>> Great!   I'll mark this bug as "pending" as in "to be applied when the
>> paperwork is done".
>
> Assignment is now on file.

I forgot to check whether there were any test regressions.
gnus-icalendar-parse fails, but the following change makes it pass.

I'm not very familiar with this code -- was this change intended?

diff --git a/test/lisp/gnus/gnus-icalendar-tests.el b/test/lisp/gnus/gnus-icalendar-tests.el
index 90c3a34a5c..61fe9701fe 100644
--- a/test/lisp/gnus/gnus-icalendar-tests.el
+++ b/test/lisp/gnus/gnus-icalendar-tests.el
@@ -103,7 +103,7 @@ gnus-icalendar-parse
                       (should (string= (format-time-string "%Y-%m-%d %H:%M" end-time) "2020-12-08 16:00"))
                       (should (string= uid "iipdt88slddpeu7hheuu09sfmd <at> google.com"))
                       (should (not rsvp))
-                      (should (eq participation-type 'non-participant))))
+                      (should (eq participation-type 'required))))
       (setenv "TZ" tz))))
 
 (ert-deftest gnus-icalendary-byday ()


-- 
(domestic pets only, the antidote for overdose, milk.)
   bloggy blog: http://lars.ingebrigtsen.no




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#50749; Package emacs. (Fri, 01 Oct 2021 15:40:02 GMT) Full text and rfc822 format available.

Message #35 received at 50749 <at> debbugs.gnu.org (full text, mbox):

From: Alexandre Duret-Lutz <adl <at> lrde.epita.fr>
To: Lars Ingebrigtsen <larsi <at> gnus.org>
Cc: 50749 <at> debbugs.gnu.org
Subject: Re: bug#50749: 28.0.50; three gnus-icalendar issues w.r.t. RFC5546
 and party crashers
Date: Fri, 01 Oct 2021 17:39:47 +0200
Lars Ingebrigtsen <larsi <at> gnus.org> writes:
> I forgot to check whether there were any test regressions.

Sorry, I should have known better a looked for that.

> gnus-icalendar-parse fails, but the following change makes it pass.
>
> I'm not very familiar with this code -- was this change intended?
>
> diff --git a/test/lisp/gnus/gnus-icalendar-tests.el b/test/lisp/gnus/gnus-icalendar-tests.el
> index 90c3a34a5c..61fe9701fe 100644
> --- a/test/lisp/gnus/gnus-icalendar-tests.el
> +++ b/test/lisp/gnus/gnus-icalendar-tests.el
> @@ -103,7 +103,7 @@ gnus-icalendar-parse
>                        (should (string= (format-time-string "%Y-%m-%d %H:%M" end-time) "2020-12-08 16:00"))
>                        (should (string= uid "iipdt88slddpeu7hheuu09sfmd <at> google.com"))
>                        (should (not rsvp))
> -                      (should (eq participation-type 'non-participant))))
> +                      (should (eq participation-type 'required))))
>        (setenv "TZ" tz))))

Reading the test case, it looks like an event that does not list any
attendee.  So I'd expect 'non-participant.

Looks my third patch is wrong then.

In 

    (let* (...
           (role (or (plist-get (cadr attendee) 'ROLE) "REQ-PARTICIPANT"))

I meant to set REQ-PARTICIPANT only when the attendee list is non-empty
but the 'ROLE property is not found (= I have been listed as an attendee
of the event without being given a role).  But the above code will set
REQ-PARTICIPANT even if attendee is empty (= I'm not listed, as in the
test case).

Let me learn from my mistake and see if I can find how to run these tests
and add a test case for for what I intended to fix.




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#50749; Package emacs. (Fri, 01 Oct 2021 16:01:01 GMT) Full text and rfc822 format available.

Message #38 received at 50749 <at> debbugs.gnu.org (full text, mbox):

From: Alexandre Duret-Lutz <adl <at> lrde.epita.fr>
To: Lars Ingebrigtsen <larsi <at> gnus.org>
Cc: 50749 <at> debbugs.gnu.org
Subject: Re: bug#50749: 28.0.50; three gnus-icalendar issues w.r.t. RFC5546
 and party crashers
Date: Fri, 01 Oct 2021 18:00:20 +0200
[Message part 1 (text/plain, inline)]
Alexandre Duret-Lutz <adl <at> lrde.epita.fr> writes:
> Let me learn from my mistake and see if I can find how to run these tests
> and add a test case for for what I intended to fix.

Here.

[0001-missing-attendees-are-not-REQ-PARTICIPANT.patch (text/x-diff, attachment)]

Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#50749; Package emacs. (Sat, 02 Oct 2021 08:57:02 GMT) Full text and rfc822 format available.

Message #41 received at 50749 <at> debbugs.gnu.org (full text, mbox):

From: Lars Ingebrigtsen <larsi <at> gnus.org>
To: Alexandre Duret-Lutz <adl <at> lrde.epita.fr>
Cc: 50749 <at> debbugs.gnu.org
Subject: Re: bug#50749: 28.0.50; three gnus-icalendar issues w.r.t. RFC5546
 and party crashers
Date: Sat, 02 Oct 2021 10:56:07 +0200
Alexandre Duret-Lutz <adl <at> lrde.epita.fr> writes:

>> Let me learn from my mistake and see if I can find how to run these tests
>> and add a test case for for what I intended to fix.
>
> Here.

Thanks; applied to Emacs 28.

-- 
(domestic pets only, the antidote for overdose, milk.)
   bloggy blog: http://lars.ingebrigtsen.no




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#50749; Package emacs. (Sat, 02 Oct 2021 08:57:02 GMT) Full text and rfc822 format available.

Message #44 received at 50749 <at> debbugs.gnu.org (full text, mbox):

From: Lars Ingebrigtsen <larsi <at> gnus.org>
To: Alexandre Duret-Lutz <adl <at> lrde.epita.fr>
Cc: 50749 <at> debbugs.gnu.org
Subject: Re: bug#50749: 28.0.50; three gnus-icalendar issues w.r.t. RFC5546
 and party crashers
Date: Sat, 02 Oct 2021 10:56:45 +0200
Lars Ingebrigtsen <larsi <at> gnus.org> writes:

> Thanks; applied to Emacs 28.

Sorry; I meant Emacs 29.

-- 
(domestic pets only, the antidote for overdose, milk.)
   bloggy blog: http://lars.ingebrigtsen.no




bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Sat, 30 Oct 2021 11:24:06 GMT) Full text and rfc822 format available.

This bug report was last modified 2 years and 171 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.