Re: [PATCH] ruby: fix ruby 3.1 warnings

2021-05-17 Thread David Bremner
Đoàn Trần Công Danh  writes:

>
> FWIW, I've sent a couple of patches to Git project.
> git-am and git-mailinfo 2.32-rc0+ [1] now understands --quoted-cr to strip
> those annoying CR.
>
> [1]: https://lore.kernel.org/git/xmqqh7j13kmc.fsf@gitster.g/T/#u

Thank you! That has been a longstanding irritatant.

d
___
notmuch mailing list -- notmuch@notmuchmail.org
To unsubscribe send an email to notmuch-le...@notmuchmail.org


Re: [PATCH] ruby: fix ruby 3.1 warnings

2021-05-17 Thread Đoàn Trần Công Danh
On 2021-04-19 21:50:52+0300, Tomi Ollila  wrote:
> On Mon, Apr 19 2021, David Bremner wrote:
> 
> > Felipe Contreras  writes:
> >
> >> Hello.
> >>
> >> On Sat, Apr 17, 2021 at 7:20 AM David Bremner  wrote:
> >>
> >>> Thanks for the patch. I have a couple of questions / comments
> >>>
> >>> - It doesn't apply against current master (5248f55d5f1). Can you rebase
> >>>   it?
> >>
> >> Huh? That's precisely the commit I used as a base. It applies cleanly.
> >>
> >
> > Ah right, you hit an annoying mailman bug related to encodings and line
> > endings. I have unmangled the patch and applied it to master.
> 
> ...which is not actually a bug, just features of git and mailman
> that does not work together...
> 
> IIRC what happens there:
> 
> - smtp server receives message encoded as 8bit, possibly only LF 
>   (line-feed 0x10) as line endings (I saw this when sent to myself
>message routed back to me via smtp.iki.fi)
> 
> - if only LF as line ending, something in pipeline changes that to CRLF
>   (carriage-return line-feed 0x13 0x10) (allowed according to specs)
> 
> - now (if not before) mailman gets the message, notices it has 8bit
>   encoding, converts that message to have base64 encoding
> 
> - mailman sends the email now base64-encoded to recipients
> 
> - user saves message and runs git-am to the message
> 
> - since content now has CRLF line endings and the content it is comparing
>   to has only NL, the content just does not match. git-am cannot know that
>   (w/o some magical heuristics) that the CRs are actually extra characters
>   should not be there (having CRLF may be as relevant as only LF)
> 
> In another machine I still have David's email to mailman in one firefox
> tab; I recall trying to write something there to explain why mailman
> is buggy there, but eventually could not be convincing enough ;/)
> 
> git-am could have an option to strip CR's from messages just to overcome
> the possibility shown above 

FWIW, I've sent a couple of patches to Git project.
git-am and git-mailinfo 2.32-rc0+ [1] now understands --quoted-cr to strip
those annoying CR.

[1]: https://lore.kernel.org/git/xmqqh7j13kmc.fsf@gitster.g/T/#u

-- 
Danh
___
notmuch mailing list -- notmuch@notmuchmail.org
To unsubscribe send an email to notmuch-le...@notmuchmail.org


Re: [PATCH] ruby: fix ruby 3.1 warnings

2021-04-19 Thread Felipe Contreras
On Mon, Apr 19, 2021 at 1:50 PM Tomi Ollila  wrote:

> (otoh?) latest git-send-email has this option: --8bit-encoding
> -- and if not given (and not in git config), according to namual page,
> will prompt for an encoding (IIRC I've seen this w/ git 2.30)

I have this configured:

  sendemail.assume8bitEncoding = utf-8

I don't know if this is the right thing to do, but in git world
everything is utf-8.

-- 
Felipe Contreras
___
notmuch mailing list -- notmuch@notmuchmail.org
To unsubscribe send an email to notmuch-le...@notmuchmail.org


Re: [PATCH] ruby: fix ruby 3.1 warnings

2021-04-19 Thread Tomi Ollila
On Mon, Apr 19 2021, David Bremner wrote:

> Felipe Contreras  writes:
>
>> Hello.
>>
>> On Sat, Apr 17, 2021 at 7:20 AM David Bremner  wrote:
>>
>>> Thanks for the patch. I have a couple of questions / comments
>>>
>>> - It doesn't apply against current master (5248f55d5f1). Can you rebase
>>>   it?
>>
>> Huh? That's precisely the commit I used as a base. It applies cleanly.
>>
>
> Ah right, you hit an annoying mailman bug related to encodings and line
> endings. I have unmangled the patch and applied it to master.

...which is not actually a bug, just features of git and mailman
that does not work together...

IIRC what happens there:

- smtp server receives message encoded as 8bit, possibly only LF 
  (line-feed 0x10) as line endings (I saw this when sent to myself
   message routed back to me via smtp.iki.fi)

- if only LF as line ending, something in pipeline changes that to CRLF
  (carriage-return line-feed 0x13 0x10) (allowed according to specs)

- now (if not before) mailman gets the message, notices it has 8bit
  encoding, converts that message to have base64 encoding

- mailman sends the email now base64-encoded to recipients

- user saves message and runs git-am to the message

- since content now has CRLF line endings and the content it is comparing
  to has only NL, the content just does not match. git-am cannot know that
  (w/o some magical heuristics) that the CRs are actually extra characters
  should not be there (having CRLF may be as relevant as only LF)

In another machine I still have David's email to mailman in one firefox
tab; I recall trying to write something there to explain why mailman
is buggy there, but eventually could not be convincing enough ;/)

git-am could have an option to strip CR's from messages just to overcome
the possibility shown above 

(otoh?) latest git-send-email has this option: --8bit-encoding
-- and if not given (and not in git config), according to namual page,
will prompt for an encoding (IIRC I've seen this w/ git 2.30)

HTH :D

Tomi
___
notmuch mailing list -- notmuch@notmuchmail.org
To unsubscribe send an email to notmuch-le...@notmuchmail.org


Re: [PATCH] ruby: fix ruby 3.1 warnings

2021-04-19 Thread David Bremner
Felipe Contreras  writes:

> Hello.
>
> On Sat, Apr 17, 2021 at 7:20 AM David Bremner  wrote:
>
>> Thanks for the patch. I have a couple of questions / comments
>>
>> - It doesn't apply against current master (5248f55d5f1). Can you rebase
>>   it?
>
> Huh? That's precisely the commit I used as a base. It applies cleanly.
>

Ah right, you hit an annoying mailman bug related to encodings and line
endings. I have unmangled the patch and applied it to master.
___
notmuch mailing list -- notmuch@notmuchmail.org
To unsubscribe send an email to notmuch-le...@notmuchmail.org


Re: [PATCH] ruby: fix ruby 3.1 warnings

2021-04-18 Thread Felipe Contreras
Hello.

On Sat, Apr 17, 2021 at 7:20 AM David Bremner  wrote:

> Thanks for the patch. I have a couple of questions / comments
>
> - It doesn't apply against current master (5248f55d5f1). Can you rebase
>   it?

Huh? That's precisely the commit I used as a base. It applies cleanly.

> - What version of ruby is generating those warnings? I don't see it with
>   ruby 2.7. I guess that's not necessarily a blocker, as long as the
>   patched version still builds and runs with older ruby.

Yeah, not a blocker. I'm using Ruby 3.0.

-- 
Felipe Contreras
___
notmuch mailing list -- notmuch@notmuchmail.org
To unsubscribe send an email to notmuch-le...@notmuchmail.org


Re: [PATCH] ruby: fix ruby 3.1 warnings

2021-04-17 Thread David Bremner
Felipe Contreras  writes:

>   init.c:214:5: warning: ‘rb_cData’ is deprecated: by: rb_cObject.  Will be 
> removed in 3.1. [-Wdeprecated-declarations]
>
> Signed-off-by: Felipe Contreras 

Hi Felipe;

Thanks for the patch. I have a couple of questions / comments

- It doesn't apply against current master (5248f55d5f1). Can you rebase
  it?

- What version of ruby is generating those warnings? I don't see it with
  ruby 2.7. I guess that's not necessarily a blocker, as long as the
  patched version still builds and runs with older ruby.

d


signature.asc
Description: PGP signature
___
notmuch mailing list -- notmuch@notmuchmail.org
To unsubscribe send an email to notmuch-le...@notmuchmail.org


[PATCH] ruby: fix ruby 3.1 warnings

2021-04-16 Thread Felipe Contreras
  init.c:214:5: warning: ‘rb_cData’ is deprecated: by: rb_cObject.  Will be 
removed in 3.1. [-Wdeprecated-declarations]

Signed-off-by: Felipe Contreras 
---
 bindings/ruby/init.c | 18 +-
 1 file changed, 9 insertions(+), 9 deletions(-)

diff --git a/bindings/ruby/init.c b/bindings/ruby/init.c
index 5556b43e..819fd1e3 100644
--- a/bindings/ruby/init.c
+++ b/bindings/ruby/init.c
@@ -211,7 +211,7 @@ Init_notmuch (void)
  *
  * Notmuch database interaction
  */
-notmuch_rb_cDatabase = rb_define_class_under (mod, "Database", rb_cData);
+notmuch_rb_cDatabase = rb_define_class_under (mod, "Database", rb_cObject);
 rb_define_alloc_func (notmuch_rb_cDatabase, notmuch_rb_database_alloc);
 rb_define_singleton_method (notmuch_rb_cDatabase, "open", 
notmuch_rb_database_open, -1); /* in database.c */
 rb_define_method (notmuch_rb_cDatabase, "initialize", 
notmuch_rb_database_initialize, -1); /* in database.c */
@@ -237,7 +237,7 @@ Init_notmuch (void)
  *
  * Notmuch directory
  */
-notmuch_rb_cDirectory = rb_define_class_under (mod, "Directory", rb_cData);
+notmuch_rb_cDirectory = rb_define_class_under (mod, "Directory", 
rb_cObject);
 rb_undef_method (notmuch_rb_cDirectory, "initialize");
 rb_define_method (notmuch_rb_cDirectory, "destroy!", 
notmuch_rb_directory_destroy, 0); /* in directory.c */
 rb_define_method (notmuch_rb_cDirectory, "mtime", 
notmuch_rb_directory_get_mtime, 0); /* in directory.c */
@@ -250,7 +250,7 @@ Init_notmuch (void)
  *
  * Notmuch file names
  */
-notmuch_rb_cFileNames = rb_define_class_under (mod, "FileNames", rb_cData);
+notmuch_rb_cFileNames = rb_define_class_under (mod, "FileNames", 
rb_cObject);
 rb_undef_method (notmuch_rb_cFileNames, "initialize");
 rb_define_method (notmuch_rb_cFileNames, "destroy!", 
notmuch_rb_filenames_destroy, 0); /* in filenames.c */
 rb_define_method (notmuch_rb_cFileNames, "each", 
notmuch_rb_filenames_each, 0); /* in filenames.c */
@@ -261,7 +261,7 @@ Init_notmuch (void)
  *
  * Notmuch query
  */
-notmuch_rb_cQuery = rb_define_class_under (mod, "Query", rb_cData);
+notmuch_rb_cQuery = rb_define_class_under (mod, "Query", rb_cObject);
 rb_undef_method (notmuch_rb_cQuery, "initialize");
 rb_define_method (notmuch_rb_cQuery, "destroy!", notmuch_rb_query_destroy, 
0); /* in query.c */
 rb_define_method (notmuch_rb_cQuery, "sort", notmuch_rb_query_get_sort, 
0); /* in query.c */
@@ -279,7 +279,7 @@ Init_notmuch (void)
  *
  * Notmuch threads
  */
-notmuch_rb_cThreads = rb_define_class_under (mod, "Threads", rb_cData);
+notmuch_rb_cThreads = rb_define_class_under (mod, "Threads", rb_cObject);
 rb_undef_method (notmuch_rb_cThreads, "initialize");
 rb_define_method (notmuch_rb_cThreads, "destroy!", 
notmuch_rb_threads_destroy, 0); /* in threads.c */
 rb_define_method (notmuch_rb_cThreads, "each", notmuch_rb_threads_each, 
0); /* in threads.c */
@@ -290,7 +290,7 @@ Init_notmuch (void)
  *
  * Notmuch messages
  */
-notmuch_rb_cMessages = rb_define_class_under (mod, "Messages", rb_cData);
+notmuch_rb_cMessages = rb_define_class_under (mod, "Messages", rb_cObject);
 rb_undef_method (notmuch_rb_cMessages, "initialize");
 rb_define_method (notmuch_rb_cMessages, "destroy!", 
notmuch_rb_messages_destroy, 0); /* in messages.c */
 rb_define_method (notmuch_rb_cMessages, "each", notmuch_rb_messages_each, 
0); /* in messages.c */
@@ -302,7 +302,7 @@ Init_notmuch (void)
  *
  * Notmuch thread
  */
-notmuch_rb_cThread = rb_define_class_under (mod, "Thread", rb_cData);
+notmuch_rb_cThread = rb_define_class_under (mod, "Thread", rb_cObject);
 rb_undef_method (notmuch_rb_cThread, "initialize");
 rb_define_method (notmuch_rb_cThread, "destroy!", 
notmuch_rb_thread_destroy, 0); /* in thread.c */
 rb_define_method (notmuch_rb_cThread, "thread_id", 
notmuch_rb_thread_get_thread_id, 0); /* in thread.c */
@@ -321,7 +321,7 @@ Init_notmuch (void)
  *
  * Notmuch message
  */
-notmuch_rb_cMessage = rb_define_class_under (mod, "Message", rb_cData);
+notmuch_rb_cMessage = rb_define_class_under (mod, "Message", rb_cObject);
 rb_undef_method (notmuch_rb_cMessage, "initialize");
 rb_define_method (notmuch_rb_cMessage, "destroy!", 
notmuch_rb_message_destroy, 0); /* in message.c */
 rb_define_method (notmuch_rb_cMessage, "message_id", 
notmuch_rb_message_get_message_id, 0); /* in message.c */
@@ -349,7 +349,7 @@ Init_notmuch (void)
  *
  * Notmuch tags
  */
-notmuch_rb_cTags = rb_define_class_under (mod, "Tags", rb_cData);
+notmuch_rb_cTags = rb_define_class_under (mod, "Tags", rb_cObject);
 rb_undef_method (notmuch_rb_cTags, "initialize");
 rb_define_method (notmuch_rb_cTags, "destroy!", notmuch_rb_tags_destroy, 
0); /* in tags.c */
 rb_define_method (notmuch_rb_cTags, "each", notmuch_rb_tags_ea