Hello community, here is the log from the commit of package pan.13360 for openSUSE:Leap:15.2:Update checked in at 2020-07-19 14:26:18 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Leap:15.2:Update/pan.13360 (Old) and /work/SRC/openSUSE:Leap:15.2:Update/.pan.13360.new.3592 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "pan.13360" Sun Jul 19 14:26:18 2020 rev:1 rq:821268 version:0.146 Changes: -------- New Changes file: --- /dev/null 2020-07-16 02:54:20.700682797 +0200 +++ /work/SRC/openSUSE:Leap:15.2:Update/.pan.13360.new.3592/pan.changes 2020-07-19 14:26:18.535742550 +0200 @@ -0,0 +1,839 @@ +------------------------------------------------------------------- +Sun Jul 5 11:32:35 UTC 2020 - Atri Bhattacharya <[email protected]> + +- Add pan-fix-sending-with-gmime30.patch: Fix message sending when + using gmime 3.0 (boo#1166404, + https://gitlab.gnome.org/GNOME/pan/-/issues/103, + https://gitlab.gnome.org/GNOME/pan/-/issues/114). + +------------------------------------------------------------------- +Thu Nov 21 14:20:16 UTC 2019 - Bjørn Lie <[email protected]> + +- Update to version 0.146: + + Use an int instead of a char. + + Fix segfault when build with gmime-3. + + Fix to build Pan with options --with-gmime30 and + --with-gmime-crypto. + + Fix ypart begin for bpf ranges. + + Updated translations. +- Replace pkgconfig(gmime-2.6) with pkgconfig(gmime-3.0) and pass + --with-gmime30 to configure. + +------------------------------------------------------------------- +Thu May 31 12:01:13 UTC 2018 - [email protected] + +- Update to version 0.145: + + Do not use front() on empty vector. + + Bug 793228 nzb file with empty segment lists crash pan. + + Bug 793277 Use after free in main(). + + Updated translations. +- Drop patches incorporated upstream: + + pan-fix-empty-nzb-crash.patch. + + pan-do-not-use-front-on-empty-vector.patch. + + pan-fix-use-after-free-in-main.patch. + +------------------------------------------------------------------- +Fri May 4 21:39:13 UTC 2018 - [email protected] + +- Add upstream bug fix patches: + + pan-fix-use-after-free-in-main.patch: Use after free in main() + (bgo#793277). + + pan-fix-empty-nzb-crash.patch: nzb file with empty segment + lists crash pan (bgo#793228). + + pan-do-not-use-front-on-empty-vector.patch: Do not use front() + on empty vector. + +------------------------------------------------------------------- +Thu Feb 8 09:34:12 UTC 2018 - [email protected] + +- Adapt license file location according to new suggestion around + %%license + +------------------------------------------------------------------- +Mon Jan 15 19:51:50 UTC 2018 - [email protected] + +- Update to version 0.144: + * Validate pan.appdata.xml.in and tweak cleanfiles. + * Remove outdated FSF address. + * Update README. + * Add man page. + * Upgrade pan.appdata.xml.in. + * Require GMime 3.0 to be explicitly enabled, don't fallback to + it (bgo#791435). + * Patch for GMime 3.0. Porting to GMime 3.0 still not completed + (bgo#786438). + * Can't open nzb files from desktop (bgo#789988). + * Follow Icon Theme Specification. + * Updated translations. +- Drop update-desktop-files BuildRequires and stop using + suse_update_desktop_file macro and drop post(un) handling of + desktop_database_post, no longer needed. +- Use autosetup and make_build macros, modernize spec. +- Update description. + +------------------------------------------------------------------- +Tue Dec 26 19:12:17 UTC 2017 - [email protected] + +- Remove filler wording from description. +- Avoid running fdupes across partition boundaries. + +------------------------------------------------------------------- +Fri Dec 22 18:51:15 UTC 2017 - [email protected] + +- Update to version 0.143: + * Use xdg-open instead of deprecated gnome-open. + * Fix nits wrt GMime 3.0. + * First patch to enable GMime 3.0 lib. Porting to GMime 3.0 not + yet completed. + * One more Unicode apostrophe. + * Edit strings. + * Added autohiding attachments panel. + * Fixed groups/body panels resizing in GTK 3. + * Attempt to fix display of threads with unread articles. + * Use Unicode in translatable strings. + * Fixed showing combobox options unlocalized. + * Enable all TLS versions supported by GnuTLS. + * Updated translations. + +------------------------------------------------------------------- +Fri Jul 28 22:46:10 UTC 2017 - [email protected] + +- Update to version 0.142: + * Update docs for password storage change. + * Fix some ISO C++ 11 warnings. + * Change use-gnome-keyring to use-password-storage. + * Build libsecret & gcr with gtk3 only, gnome-keyring with gtk2. + * Remove dependency on deprecated libgnome-keyring. New libraries + used: libsecret and gcr (GTK+ 3 only). + * Rewrite autogen.sh to drop dependency on gnome-common. + * Nuke intltool. + * Forgot to update HELP_LINGUAS. + * Fix the strftime test for mingw64. + * Update docs and include COPYING-DOCS. + * Re-add help menu item for manual. + * Add new documentation infrastructure. + * Fixed typos in a string. + * Improve help. + * Final fixes to the help system. + * Tweak the help support. + * Add gnome-doc-utils basic support. + * Add Pan manual. + * Fix size of preference window too large (bgo#697983). + * Fix Header Pane menu not shown when built without option + --with-gnutls (bgo#777711). + * Mention crypto in configure output. + * Updated translations. +- Drop old conditionals for gtk2 and obsolete versions of openSUSE. +- Following the above and upstream changes, drop the following + BuildRequires: intltool, translation-update-upstream, + pkgconfig(gmime-2.4), pkgconfig(gnome-keyring-1), + pkgconfig(gtk+-2.0) and pkgconfig(gtkspell-2.0). +- Following upstream changes, add new BuildRequires: gettext, + libxml2-tools, itstool pkgconfig(libsecret-1) and + pkgconfig(gcr-3). +- Pass --enable-manual to configure, build the new manual. + +------------------------------------------------------------------- +Sat Mar 4 19:33:12 UTC 2017 - [email protected] + +- Update to version 0.141: + * Treat a 500 response to MODE READER as OK. + * Fix various memory leaks. + * Fix for clang static analyzer. + * Fix for cannot start after removing last news server. + * Do not overwrite silently draft file (bgo#704227). + * Get rid of deprecated g_atexit() calls. + * Fix for closing Pan without server config (bgo#729329). + * Deprecated g_type_init() with glib2 > 2.36. + * Updated translations. + +------------------------------------------------------------------- +Mon May 30 13:04:58 UTC 2016 - [email protected] + +- Switch to building with gtk3: bnc#728311 and bgo#669403 seem to + be solved for the combination of recent gtk3 and current version + of pan. + +------------------------------------------------------------------- +Mon May 30 09:35:13 UTC 2016 - [email protected] + +- Update to version 0.140: + + Long list of changes, see entries under v0.140 at + https://git.gnome.org/browse/pan2/plain/NEWS. +- Drop fix-desktop-file-11.0.diff; incorporated upstream. Also + drop gnome-patch-translation BuildRequires and all patch0 related + commands. +- No longer add News and Network categories to desktop file by + invoking suse_update_desktop_file; already added to upstream + desktop file. +- Package appdata file. +- Upstream dropped CHANGELOG file and replaced it with NEWS. +- Conditionally apply translations-update-upstream BuildRequires + and macro for non-openSUSE only. + +------------------------------------------------------------------- +Mon Jul 23 02:50:41 UTC 2012 - [email protected] + +- Update to version 0.139: + + std::logic_error thrown ("basic_string::_S_construct null not + valid") (bgo#678445) + + Added error popup for posting to a disabled server. + + Patches to SSL socket handling. + + Clear last-visited (group/article) on middle-click. + + Updated translations. +- Changes from version 0.138: + + Hotkey for showing/hiding signatures in the article body. + (bgo#350496) + + Keep position on selected item on re-order. (bgo#443702) + + Remember last read post. (bgo#448416) + + Open url in browser. (bgo#464335) + + Signature printed double when line needs to be wrapped. + (bgo#533178) + + Tasks marked "Stopped" should also remain stopped when pan is + restarted. (bgo#543319) + + "Save at" options other then %g and %G. (bgo#550007) + + Filter Cross-posters. (bgo#587585) + + pan 136 using secure ssl and get continuous popups for certs + but no connection. (bgo#673927) ++++ 642 more lines (skipped) ++++ between /dev/null ++++ and /work/SRC/openSUSE:Leap:15.2:Update/.pan.13360.new.3592/pan.changes New: ---- pan-0.146.tar.bz2 pan-fix-sending-with-gmime30.patch pan.changes pan.spec ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ pan.spec ++++++ # # spec file for package pan # # Copyright (c) 2020 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed # upon. The license for this file, and modifications and additions to the # file, is the same license as for the pristine package itself (unless the # license for the pristine package is not an Open Source License, in which # case the license is the MIT License). An "Open Source License" is a # license that conforms to the Open Source Definition (Version 1.9) # published by the Open Source Initiative. # Please submit bugfixes or comments via https://bugs.opensuse.org/ # Name: pan Version: 0.146 Release: 0 Summary: A Newsreader for GNOME License: GPL-2.0-or-later Group: Productivity/Networking/News/Clients URL: http://pan.rebelbase.com/ Source0: http://pan.rebelbase.com/download/releases/%{version}/source/%{name}-%{version}.tar.bz2 # PATCH-FIX-UPSTREAM pan-fix-sending-with-gmime30.patch boo#1166404 [email protected] -- Fix message sending when using gmime 3.0 Patch0: pan-fix-sending-with-gmime30.patch BuildRequires: fdupes BuildRequires: gcc-c++ BuildRequires: gettext >= 0.19.7 BuildRequires: itstool BuildRequires: libxml2-tools BuildRequires: pkgconfig BuildRequires: pkgconfig(enchant) >= 1.6.0 BuildRequires: pkgconfig(gcr-3) BuildRequires: pkgconfig(gmime-3.0) BuildRequires: pkgconfig(gnutls) >= 2.12.10 BuildRequires: pkgconfig(gtk+-3.0) BuildRequires: pkgconfig(gtkspell3-3.0) >= 2.0.16 BuildRequires: pkgconfig(libnotify) >= 0.4.1 BuildRequires: pkgconfig(libsecret-1) Recommends: %{name}-lang %description Pan is a Usenet newsreader that's good at both text and binaries. It supports offline reading, scoring and killfiles, yEnc, NZB, PGP handling, multiple servers, and secure connections. %lang_package %prep %autosetup -p1 %build %configure \ --with-gtk3 \ --with-gnutls \ --with-dbus \ --enable-gkr \ --enable-manual \ --enable-libnotify \ --with-gmime30 \ %{nil} %make_build %install %make_install %find_lang %{name} %{?no_lang_C} %fdupes %{buildroot}/%{_prefix} %files %license COPYING COPYING-DOCS %doc AUTHORS NEWS README %doc %{_datadir}/help/C/%{name}/ %{_mandir}/man?/pan.?%{ext_man} %{_bindir}/%{name} %{_datadir}/applications/%{name}.desktop %{_datadir}/icons/hicolor/*/apps/%{name}.png %dir %{_datadir}/appdata %{_datadir}/appdata/%{name}.appdata.xml %files lang -f %{name}.lang %changelog ++++++ pan-fix-sending-with-gmime30.patch ++++++ >From 495bfb2eb9228b5b5cef8b50e11af577e4b473f8 Mon Sep 17 00:00:00 2001 From: Detlef Graef <[email protected]> Date: Sun, 5 Jul 2020 08:47:54 +0200 Subject: [PATCH] Fix for GMime3 build (Posting error). Issues #103 and #114 --- pan/gui/post-ui.cc | 176 ++++++++++++++++++++++++++++++++------------- 1 file changed, 126 insertions(+), 50 deletions(-) diff --git a/pan/gui/post-ui.cc b/pan/gui/post-ui.cc index 8769ec5..eb21384 100644 --- a/pan/gui/post-ui.cc +++ b/pan/gui/post-ui.cc @@ -1598,86 +1598,178 @@ namespace GMimeMessage* PostUI :: new_message_from_ui (Mode mode, bool copy_body) { +#ifdef HAVE_GMIME_30 GMimeMessage * msg(0); - msg = g_mime_message_new (false); + msg = g_mime_message_new (true); + const char * charset_cstr = _charset.c_str(); // headers from the ui: From const Profile profile (get_current_profile ()); std::string s; profile.get_from_header (s); -#ifdef HAVE_GMIME_30 - g_mime_message_add_mailbox (msg, GMIME_ADDRESS_TYPE_SENDER, NULL, s.c_str()); + g_mime_message_add_mailbox (msg, GMIME_ADDRESS_TYPE_FROM, profile.username.c_str(), profile.address.c_str()); + + // headers from the ui: Subject + const char * cpch (gtk_entry_get_text (GTK_ENTRY(_subject_entry))); + if (cpch) { + g_mime_message_set_subject (msg, cpch, charset_cstr); + } + + // headers from the ui: To + const StringView to (gtk_entry_get_text (GTK_ENTRY(_to_entry))); + if (!to.empty()) + pan_g_mime_message_add_recipients_from_string (msg, GMIME_ADDRESS_TYPE_TO, to.str); + + // headers from the ui: Newsgroups + const StringView groups (gtk_entry_get_text (GTK_ENTRY(_groups_entry))); + if (!groups.empty()) + g_mime_object_set_header ((GMimeObject *) msg, "Newsgroups", groups.str, charset_cstr); + + // headers from the ui: Followup-To + const StringView followupto (gtk_entry_get_text (GTK_ENTRY(_followupto_entry))); + if (!followupto.empty()) + g_mime_object_set_header ((GMimeObject *) msg, "Followup-To", followupto.str, charset_cstr); + + // headers from the ui: Reply-To + const StringView replyto (gtk_entry_get_text (GTK_ENTRY(_replyto_entry))); + if (!replyto.empty()) + g_mime_object_set_header ((GMimeObject *) msg, "Reply-To", replyto.str, charset_cstr); + + // headers from posting profile(via prefs): X-Face + if (!profile.xface.empty()) + { + std::string f; + f += " " + profile.xface; + g_mime_object_set_header ((GMimeObject *) msg, "X-Face", f.c_str(), charset_cstr); + } + + // add the 'hidden headers' (references) + const gchar * h_key_str; + foreach_const (str2str_t, _hidden_headers, it) + if ((mode==DRAFTING) || (it->first.find ("X-Draft-")!=0)) + { + h_key_str = it->first.c_str(); + if ( g_ascii_strncasecmp (h_key_str, "Content", 7) ) + { + g_mime_object_set_header ((GMimeObject *) msg, it->first.c_str(), it->second.c_str(), charset_cstr); + } + } + + // build headers from the 'more headers' entry field + std::map<std::string,std::string> headers; + GtkTextBuffer * buf (_headers_buf); + GtkTextIter start, end; + gtk_text_buffer_get_bounds (buf, &start, &end); + char * pch = gtk_text_buffer_get_text (buf, &start, &end, false); + StringView key, val, v(pch); + v.trim (); + while (v.pop_token (val, '\n') && val.pop_token(key,':')) { + key.trim (); + val.eat_chars (1); + val.trim (); + std::string key_str (key.to_string()); + if (extra_header_is_editable (key, val)) + g_mime_object_set_header ((GMimeObject *) msg, key.to_string().c_str(), + val.to_string().c_str(), charset_cstr); + } + g_free (pch); + + // User-Agent + if ((mode==POSTING || mode == UPLOADING) && _prefs.get_flag (USER_AGENT_PREFS_KEY, true)) + g_mime_object_set_header ((GMimeObject *) msg, "User-Agent", get_user_agent(), charset_cstr); + + // Message-ID for single text-only posts + if (mode==DRAFTING || ((mode==POSTING || mode==UPLOADING) && _prefs.get_flag (MESSAGE_ID_PREFS_KEY, false))) { + const std::string message_id = generate_message_id(profile); + pan_g_mime_message_set_message_id (msg, message_id.c_str()); + } + + // body & charset + { + std::string body; + if (copy_body) body = get_body(); + + GMimeStream * stream = g_mime_stream_mem_new_with_buffer (body.c_str(), body.size()); + + const std::string charset ((mode==POSTING && !_charset.empty()) ? _charset : "UTF-8"); + if (charset != "UTF-8") { + // add a wrapper to convert from UTF-8 to $charset + GMimeStream * tmp = g_mime_stream_filter_new (stream); + g_object_unref (stream); + GMimeFilter * filter = g_mime_filter_charset_new ("UTF-8", charset.c_str()); + g_mime_stream_filter_add (GMIME_STREAM_FILTER(tmp), filter); + g_object_unref (filter); + stream = tmp; + } + GMimeDataWrapper * content_object = g_mime_data_wrapper_new_with_stream (stream, GMIME_CONTENT_ENCODING_DEFAULT); + g_object_unref (stream); + GMimePart * part = g_mime_part_new (); + g_mime_part_set_content (part, content_object); + + pch = g_strdup_printf ("text/plain; charset=%s", charset.c_str()); + GMimeContentType * type = g_mime_content_type_parse (NULL, pch); + g_free (pch); + g_mime_object_set_content_type ((GMimeObject *) part, type); // part owns type now. type isn't refcounted. + + if (mode != UPLOADING) g_mime_part_set_content_encoding (part, _enc); + + g_object_unref (content_object); + g_mime_message_set_mime_part (msg, GMIME_OBJECT(part)); + g_object_unref (part); + } + + return msg; + #else + + GMimeMessage * msg(0); + msg = g_mime_message_new (false); + + // headers from the ui: From + const Profile profile (get_current_profile ()); + std::string s; + profile.get_from_header (s); g_mime_message_set_sender (msg, s.c_str()); -#endif // headers from the ui: Subject const char * cpch (gtk_entry_get_text (GTK_ENTRY(_subject_entry))); if (cpch) { -#ifdef HAVE_GMIME_30 - g_mime_message_set_subject (msg, cpch, NULL); -#else g_mime_message_set_subject (msg, cpch); -#endif } // headers from the ui: To const StringView to (gtk_entry_get_text (GTK_ENTRY(_to_entry))); if (!to.empty()) -#ifdef HAVE_GMIME_30 - pan_g_mime_message_add_recipients_from_string (msg, GMIME_ADDRESS_TYPE_TO, to.str); -#else pan_g_mime_message_add_recipients_from_string (msg, GMIME_RECIPIENT_TYPE_TO, to.str); -#endif // headers from the ui: Newsgroups const StringView groups (gtk_entry_get_text (GTK_ENTRY(_groups_entry))); if (!groups.empty()) -#ifdef HAVE_GMIME_30 - g_mime_object_set_header ((GMimeObject *) msg, "Newsgroups", groups.str, NULL); -#else g_mime_object_set_header ((GMimeObject *) msg, "Newsgroups", groups.str); -#endif // headers from the ui: Followup-To const StringView followupto (gtk_entry_get_text (GTK_ENTRY(_followupto_entry))); if (!followupto.empty()) -#ifdef HAVE_GMIME_30 - g_mime_object_set_header ((GMimeObject *) msg, "Followup-To", followupto.str, NULL); -#else g_mime_object_set_header ((GMimeObject *) msg, "Followup-To", followupto.str); -#endif // headers from the ui: Reply-To const StringView replyto (gtk_entry_get_text (GTK_ENTRY(_replyto_entry))); if (!replyto.empty()) -#ifdef HAVE_GMIME_30 - g_mime_object_set_header ((GMimeObject *) msg, "Reply-To", replyto.str, NULL); -#else g_mime_object_set_header ((GMimeObject *) msg, "Reply-To", replyto.str); -#endif // headers from posting profile(via prefs): X-Face if (!profile.xface.empty()) { std::string f; f += " " + profile.xface; -#ifdef HAVE_GMIME_30 - g_mime_object_set_header ((GMimeObject *) msg, "X-Face", f.c_str(), NULL); -#else g_mime_object_set_header ((GMimeObject *) msg, "X-Face", f.c_str()); -#endif } // add the 'hidden headers' foreach_const (str2str_t, _hidden_headers, it) if ((mode==DRAFTING) || (it->first.find ("X-Draft-")!=0)) -#ifdef HAVE_GMIME_30 - g_mime_object_set_header ((GMimeObject *) msg, it->first.c_str(), it->second.c_str(), NULL); -#else g_mime_object_set_header ((GMimeObject *) msg, it->first.c_str(), it->second.c_str()); -#endif // build headers from the 'more headers' entry field std::map<std::string,std::string> headers; @@ -1693,23 +1785,14 @@ PostUI :: new_message_from_ui (Mode mode, bool copy_body) val.trim (); std::string key_str (key.to_string()); if (extra_header_is_editable (key, val)) -#ifdef HAVE_GMIME_30 - g_mime_object_set_header ((GMimeObject *) msg, key.to_string().c_str(), - val.to_string().c_str(), NULL); -#else g_mime_object_set_header ((GMimeObject *) msg, key.to_string().c_str(), val.to_string().c_str()); -#endif } g_free (pch); // User-Agent if ((mode==POSTING || mode == UPLOADING) && _prefs.get_flag (USER_AGENT_PREFS_KEY, true)) -#ifdef HAVE_GMIME_30 - g_mime_object_set_header ((GMimeObject *) msg, "User-Agent", get_user_agent(), NULL); -#else g_mime_object_set_header ((GMimeObject *) msg, "User-Agent", get_user_agent()); -#endif // Message-ID for single text-only posts if (mode==DRAFTING || ((mode==POSTING || mode==UPLOADING) && _prefs.get_flag (MESSAGE_ID_PREFS_KEY, false))) { @@ -1738,19 +1821,10 @@ PostUI :: new_message_from_ui (Mode mode, bool copy_body) g_object_unref (stream); GMimePart * part = g_mime_part_new (); pch = g_strdup_printf ("text/plain; charset=%s", charset.c_str()); - -#ifdef HAVE_GMIME_30 - GMimeContentType * type = g_mime_content_type_parse (NULL, pch); -#else GMimeContentType * type = g_mime_content_type_new_from_string (pch); -#endif g_free (pch); g_mime_object_set_content_type ((GMimeObject *) part, type); // part owns type now. type isn't refcounted. -#ifdef HAVE_GMIME_30 - g_mime_part_set_content(part, content_object); -#else g_mime_part_set_content_object (part, content_object); -#endif if (mode != UPLOADING) g_mime_part_set_content_encoding (part, _enc); g_object_unref (content_object); g_mime_message_set_mime_part (msg, GMIME_OBJECT(part)); @@ -1758,6 +1832,8 @@ PostUI :: new_message_from_ui (Mode mode, bool copy_body) } return msg; + +#endif } void -- GitLab
