Package: release.debian.org Severity: normal Tags: jessie User: release.debian....@packages.debian.org Usertags: pu
This fixes 2 regressions with regard to the wheezy version. Both changes are already in unstable as part of new upstream releases. debdiff is attached. -- System Information: Debian Release: stretch/sid APT prefers buildd-unstable APT policy: (500, 'buildd-unstable'), (500, 'unstable'), (500, 'testing'), (1, 'experimental') Architecture: amd64 (x86_64) Kernel: Linux 3.16.0-4-amd64 (SMP w/4 CPU cores) Locale: LANG=pt_BR.UTF-8, LC_CTYPE=pt_BR.UTF-8 (charmap=UTF-8) Shell: /bin/sh linked to /bin/dash Init: systemd (via /run/systemd/system) -- Antonio Terceiro <terce...@debian.org>
diff -Nru feed2imap-1.2.3/debian/changelog feed2imap-1.2.3/debian/changelog --- feed2imap-1.2.3/debian/changelog 2014-10-07 18:40:39.000000000 -0300 +++ feed2imap-1.2.3/debian/changelog 2015-05-10 20:52:43.000000000 -0300 @@ -1,3 +1,12 @@ +feed2imap (1.2.3-1+deb8u1) jessie; urgency=medium + + * debian/patches/0001-Fix-usage-of-filters.patch: apply upstream patch to + fix usage of filters (Closes: #783444) + * debian/patches/0002-Fix-regression-in-include-images-option.patch: apply + upstream patch to fix the `include-images` option (Closes: #784591) + + -- Antonio Terceiro <terce...@debian.org> Sun, 10 May 2015 20:08:43 -0300 + feed2imap (1.2.3-1) unstable; urgency=medium * New upstream release. diff -Nru feed2imap-1.2.3/debian/patches/0001-Fix-usage-of-filters.patch feed2imap-1.2.3/debian/patches/0001-Fix-usage-of-filters.patch --- feed2imap-1.2.3/debian/patches/0001-Fix-usage-of-filters.patch 1969-12-31 21:00:00.000000000 -0300 +++ feed2imap-1.2.3/debian/patches/0001-Fix-usage-of-filters.patch 2015-05-10 20:52:43.000000000 -0300 @@ -0,0 +1,72 @@ +From c1e5c1c00bd996140d2a74ee4b5e50182b846bc6 Mon Sep 17 00:00:00 2001 +From: Antonio Terceiro <terce...@softwarelivre.org> +Date: Sun, 3 May 2015 20:13:29 -0300 +Subject: [PATCH] Fix usage of filters + +- avoid accessing $? unless it is actually available +- when calling a filter, make sure to release the mutex even if there is + an exception during the filter handling. + +The long term solution is to drastically reorganize concurrency code. +--- + feed2imap-test | 5 +++++ + lib/feed2imap/feed2imap.rb | 35 +++++++++++++++++++---------------- + 2 files changed, 24 insertions(+), 16 deletions(-) + +diff --git a/lib/feed2imap/feed2imap.rb b/lib/feed2imap/feed2imap.rb +index 64663c6..b84b6b6 100644 +--- a/lib/feed2imap/feed2imap.rb ++++ b/lib/feed2imap/feed2imap.rb +@@ -130,7 +130,7 @@ class Feed2Imap + # thread-safe, and we need to get the right exitcode + mutex.lock + s = %x{#{feed.execurl}} +- if $?.exitstatus != 0 ++ if $? && $?.exitstatus != 0 + @logger.warn("Command for #{feed.name} exited with status #{$?.exitstatus} !") + end + mutex.unlock +@@ -143,22 +143,25 @@ class Feed2Imap + # thread-safe, and we need to get the right exitcode. + mutex.lock + # hack hack hack, avoid buffering problems +- stdin, stdout, stderr = Open3::popen3(feed.filter) +- inth = Thread::new do +- stdin.puts s +- stdin.close ++ begin ++ stdin, stdout, stderr = Open3::popen3(feed.filter) ++ inth = Thread::new do ++ stdin.puts s ++ stdin.close ++ end ++ output = nil ++ outh = Thread::new do ++ output = stdout.read ++ end ++ inth.join ++ outh.join ++ s = output ++ if $? && $?.exitstatus != 0 ++ @logger.warn("Filter command for #{feed.name} exited with status #{$?.exitstatus}. Output might be corrupted !") ++ end ++ ensure ++ mutex.unlock + end +- output = nil +- outh = Thread::new do +- output = stdout.read +- end +- inth.join +- outh.join +- s = output +- if $?.exitstatus != 0 +- @logger.warn("Filter command for #{feed.name} exited with status #{$?.exitstatus}. Output might be corrupted !") +- end +- mutex.unlock + end + if Time::now - fetch_start > F2I_WARNFETCHTIME + @logger.info("Fetching feed #{feed.name} took #{(Time::now - fetch_start).to_i}s") +-- +2.1.4 + diff -Nru feed2imap-1.2.3/debian/patches/0002-Fix-regression-in-include-images-option.patch feed2imap-1.2.3/debian/patches/0002-Fix-regression-in-include-images-option.patch --- feed2imap-1.2.3/debian/patches/0002-Fix-regression-in-include-images-option.patch 1969-12-31 21:00:00.000000000 -0300 +++ feed2imap-1.2.3/debian/patches/0002-Fix-regression-in-include-images-option.patch 2015-05-10 20:52:43.000000000 -0300 @@ -0,0 +1,102 @@ +From 4614e1fa4ff4cb5d7442f680a053298e0cc80819 Mon Sep 17 00:00:00 2001 +From: Antonio Terceiro <terce...@softwarelivre.org> +Date: Sun, 10 May 2015 20:40:19 -0300 +Subject: [PATCH] Fix regression in `include-images` option + +test/tc_httpfetcher.rb can't still be re-enabled because it hits the +network, and a hostname that is no longer valid. +--- + feed2imap-test | 1 + + lib/feed2imap/itemtomail.rb | 3 ++- + test/tc_httpfetcher.rb | 20 +++++++++++++------- + 3 files changed, 16 insertions(+), 8 deletions(-) + +diff --git a/lib/feed2imap/itemtomail.rb b/lib/feed2imap/itemtomail.rb +index fcf8f8b..455a136 100644 +--- a/lib/feed2imap/itemtomail.rb ++++ b/lib/feed2imap/itemtomail.rb +@@ -99,7 +99,8 @@ def item_to_mail(config, item, id, updated, from = 'Feed2Imap', inline_images = + htmlpart.body.gsub!(/(<img[^>]+)src="(\S+?\/([^\/]+?\.(png|gif|jpe?g)))"([^>]*>)/i) do |match| + # $2 contains url, $3 the image name, $4 the image extension + begin +- image = Base64.encode64(HTTPFetcher::fetch($2, Time.at(0)).chomp) + "\n" ++ fetcher = HTTPFetcher.new ++ image = Base64.encode64(fetcher.fetch($2, Time.at(0)).chomp) + "\n" + cid = "#{Digest::MD5.hexdigest($2)}@#{config.hostname}" + if not cids.include?(cid) + cids << cid +diff --git a/test/tc_httpfetcher.rb b/test/tc_httpfetcher.rb +index d44b3ee..e904086 100755 +--- a/test/tc_httpfetcher.rb ++++ b/test/tc_httpfetcher.rb +@@ -9,7 +9,7 @@ class HttpFetcherTest < Test::Unit::TestCase + def test_get_https + s = '' + assert_nothing_raised do +- s = HTTPFetcher::fetch('https://linuxfr.org/pub/', Time::at(0)) ++ s = fetcher.fetch('https://linuxfr.org/pub/', Time::at(0)) + end + assert(s.length > 20) + end +@@ -21,7 +21,7 @@ class HttpFetcherTest < Test::Unit::TestCase + def test_get_httpnotmodif + s = 'aaa' + assert_nothing_raised do +- s = HTTPFetcher::fetch('http://www.lucas-nussbaum.net/feed2imap_tests/notmodified.php', Time::new()) ++ s = fetcher.fetch('http://www.lucas-nussbaum.net/feed2imap_tests/notmodified.php', Time::new()) + end + assert_nil(s) + end +@@ -29,7 +29,7 @@ class HttpFetcherTest < Test::Unit::TestCase + def test_get_redir1 + s = 'aaa' + assert_nothing_raised do +- s = HTTPFetcher::fetch("http://www.lucas-nussbaum.net/feed2imap_tests/redir.php?redir=#{MAXREDIR}", Time::at(0)) ++ s = fetcher.fetch("http://www.lucas-nussbaum.net/feed2imap_tests/redir.php?redir=#{MAXREDIR}", Time::at(0)) + end + assert_equal('OK', s) + end +@@ -37,14 +37,14 @@ class HttpFetcherTest < Test::Unit::TestCase + def test_get_redir2 + s = '' + assert_raise(RuntimeError) do +- s = HTTPFetcher::fetch("http://www.lucas-nussbaum.net/feed2imap_tests/redir.php?redir=#{MAXREDIR + 1}", Time::at(0)) ++ s = fetcher.fetch("http://www.lucas-nussbaum.net/feed2imap_tests/redir.php?redir=#{MAXREDIR + 1}", Time::at(0)) + end + end + + def test_httpauth + s = '' + assert_nothing_raised do +- s = HTTPFetcher::fetch("http://aaa:b...@ensilinx1.imag.fr/~lucas/f2i_redirauth.php", Time::at(0)) ++ s = fetcher.fetch("http://aaa:b...@ensilinx1.imag.fr/~lucas/f2i_redirauth.php", Time::at(0)) + end + assert_equal("Login: aaa / Password: bbb \n", s) + end +@@ -52,7 +52,7 @@ class HttpFetcherTest < Test::Unit::TestCase + def test_redirauth + s = '' + assert_nothing_raised do +- s = HTTPFetcher::fetch("http://aaa:b...@ensilinx1.imag.fr/~lucas/f2i_redirauth.php?redir=1", Time::at(0)) ++ s = fetcher.fetch("http://aaa:b...@ensilinx1.imag.fr/~lucas/f2i_redirauth.php?redir=1", Time::at(0)) + end + assert_equal("Login: aaa / Password: bbb \n", s) + end +@@ -60,7 +60,13 @@ class HttpFetcherTest < Test::Unit::TestCase + def test_notfound + s = '' + assert_raises(RuntimeError) do +- s = HTTPFetcher::fetch("http://ensilinx1.imag.fr/~lucas/notfound.html", Time::at(0)) ++ s = fetcher.fetch("http://ensilinx1.imag.fr/~lucas/notfound.html", Time::at(0)) + end + end ++ ++ private ++ ++ def fetcher ++ HTTPFetcher.new ++ end + end +-- +2.1.4 + diff -Nru feed2imap-1.2.3/debian/patches/series feed2imap-1.2.3/debian/patches/series --- feed2imap-1.2.3/debian/patches/series 1969-12-31 21:00:00.000000000 -0300 +++ feed2imap-1.2.3/debian/patches/series 2015-05-10 20:52:43.000000000 -0300 @@ -0,0 +1,2 @@ +0001-Fix-usage-of-filters.patch +0002-Fix-regression-in-include-images-option.patch
signature.asc
Description: Digital signature