PaulHowarth/Blog/2019-12

Paul's Blog Entries for December 2019

Sunday 1st December 2019

Fedora Project

  • Cleaned up and rebuilt perl-XML-TreePP (0.43) in Rawhide

  • Branched and built perl-XML-TreePP (0.43) for EPEL-8

Monday 2nd December 2019

Fedora Project

  • Updated perl-Compress-Raw-Lzma to 2.092 in Rawhide:

    • Use lzma_allocator (GH#2)

Local Packages

  • Updated perl-Compress-Raw-Lzma to 2.092 as per the Fedora version

Tuesday 3rd December 2019

Fedora Project

  • Updated perl-Test-Simple to 1.302170 in Rawhide:

    • Fix unwanted END phase event (GH#840)

  • Updated perltidy to 20191203 in Rawhide (see CHANGES.md for details)

Local Packages

  • Updated check (0.13.0) not to package the obsolete ChangeLog file (Bug #1778647)

  • Updated perl-Perl-Tidy to 20191203 as per the fedora perltidy package

  • Updated perl-Test-Simple to 1.302170 as per the Fedora version

Wednesday 4th December 2019

Fedora Project

  • Updated perl-MCE to 1.864 in Rawhide:

    • Bug fix to MCE::Signal - Shared manager not exiting, introduced in 1.863

    • Use monotonic clock if available in MCE->yield and MCE::Child->yield

  • Updated perl-MCE-Shared to 1.864 in Rawhide:

    • Use monotonic clock if available in MCE::Hobo->yield

    • Bumped MCE dependency to 1.864

  • Updated python-paramiko to 2.7.0 in Rawhide:

    • Implement support for OpenSSH 6.5-style private key files (typically denoted as having 'BEGIN OPENSSH PRIVATE KEY' headers instead of PEM format's 'BEGIN RSA PRIVATE KEY' or similar); if you were getting any sort of weird auth error from "modern" keys generated on newer operating system releases (such as macOS Mojave), this is the first update to try (GH#602, GH#618, GH#1313, GH#1343)

    • Token expansion in 'ssh_config' used a different method of determining the local username ('$USER' environment variable), compared to what the (much older) client connection code does ('getpass.getuser', which includes '$USER' but may check other variables first, and is generally much more comprehensive); both modules now use 'getpass.getuser'

    • A couple of outright '~paramiko.config.SSHConfig' parse errors were previously represented as vanilla 'Exception' instances; as part of recent feature work a more specific exception class, '~paramiko.ssh_exception.ConfigParseError', has been created; it is now also used in those older spots, which is naturally backwards compatible

    • Implement support for the 'Match' keyword in 'ssh_config' files; previously, this keyword was simply ignored and keywords inside such blocks were treated as if they were part of the previous block (GH#717)

    • Note: this feature adds a new optional install dependency 'Invoke' (https://www.pyinvoke.org), for managing 'Match exec' subprocesses

    • Additional installation 'extras_require' "flavors" ('ed25519', 'invoke', and 'all') have been added to our packaging metadata

    • Paramiko's use of 'subprocess' for 'ProxyCommand' support is conditionally imported to prevent issues on limited interpreter platforms like Google Compute Engine; however, any resulting 'ImportError' was lost instead of preserved for raising (in the rare cases where a user tried leveraging 'ProxyCommand' in such an environment); this has been fixed

    • Perform deduplication of 'IdentityFile' contents during 'ssh_config' parsing; previously, if your config would result in the same value being encountered more than once, 'IdentityFile' would contain that many copies of the same string

    • Implement most 'canonical hostname' 'ssh_config' functionality ('CanonicalizeHostname', 'CanonicalDomains', 'CanonicalizeFallbackLocal', and 'CanonicalizeMaxDots'; 'CanonicalizePermittedCNAMEs' has not yet been implemented) - all were previously silently ignored (GH#897)

    • Explicitly document which ssh_config features we currently support; previously users just had to guess, which is simply no good

    • Add new convenience classmethod constructors to '~paramiko.config.SSHConfig': '~paramiko.config.SSHConfig.from_text', '~paramiko.config.SSHConfig.from_file', and '~paramiko.config.SSHConfig.from_path'; no more annoying two-step process!

Local Packages

  • Updated perl-MCE to 1.864 as per the Fedora version

  • Updated perl-MCE-Shared to 1.864 as per the Fedora version

Thursday 5th December 2019

Fedora Project

  • Updated perl-IO-Compress to 2.092 in Rawhide (no changes)

  • Updated perl-IO-Compress-Lzma to 2.092 in Rawhide:

    • t/oooprereq.t: Fix list of dumped packages

    • t/oooprereq.t: Dump version data

Local Packages

  • Updated perl-Compress-Raw-Bzip2 to 2.092 (no changes)

  • Updated perl-Compress-Raw-Zlib to 2.092 (no changes)

  • Updated perl-IO-Compress to 2.092 as per the Fedora version

  • Updated perl-IO-Compress-Lzma to 2.092 as per the Fedora version

Friday 6th December 2019

Local Packages

  • Updated dovecot:

    • Updated dovecot to 2.3.9:

      • Changed several event field names for consistency and to avoid conflicts in parent-child event relationships:
        • SMTP server command events: Renamed "name" to "cmd_name"

        • Events inheriting from a mailbox: Renamed "name" to "mailbox"

        • Server connection events have only "remote_ip", "remote_port", "local_ip" and "local_port"

        • Removed duplicate "client_ip", "ip" and "port"

        • Mail storage events: Removed "service" field; use "service:<name>" category instead

        • HTTP client connection events: Renamed "host" to "dest_host" and "port" to "dest_port"

      • auth: Drop Postfix socketmap support: it hasn't been working with recent Postfix versions for a while now

      • push-notification-lua: The "subject" field is now decoded to UTF8 instead of kept as MIME-encoded

      • push-notification-lua: Added new "from_address", "from_display_name", "to_address" and "to_display_name" fields; the display names are decoded to UTF8

      • Added various new fields to existing events; see http://doc.dovecot.net/admin_manual/list_of_events.html

      • Add lmtp_add_received_header setting; it can be used to prevent LMTP from adding "Received:" headers

      • doveadm: Support SSL/STARTTLS for proxied doveadm connections based on doveadm_ssl setting and proxy ssl/tls settings

      • Log filters support now "service:<name>", which matches all events for the given service; it can also be used as a category

      • lib: Use libunwind to get abort backtraces with function names where available

      • lmtp: When the LMTP proxy changes the username (from passdb lookup), add an appropriate ORCPT parameter

      • lmtp: Add lmtp_client_workarounds setting to implement workarounds for clients that send MAIL and RCPT commands with additional spaces before the path and for clients that omit <> brackets around the path; see example-config/conf.d/20-lmtp.conf

      • lda/lmtp: Invalid MAIL FROM addresses were rejected too aggressively; now mails from addresses with unicode characters are delivered, but their Return-Path header will be <> instead of the given MAIL FROM address

      • lmtp: The lmtp_hdr_delivery_address setting is ignored

      • imap: imap_command_finished event's "args" and "human_args" parameters were always empty

      • mbox: Seeking in zlib and bzip2 compressed input streams didn't work correctly

      • imap-hibernate: Process crashed when client got destroyed while it was attempted to be unhibernated, and the unhibernation fails

      • *-login: Proxying may have crashed if SSL handshake to the backend failed immediately; this was unlikely to happen in normal operation

      • *-login: If TLS handshake to upstream server failed during proxying, login process could crash due to invalid memory access

      • *-login: v2.3 regression: Using SASL authentication without initial response may have caused SSL connections to hang; this happened often at least with PHP's IMAP library

      • *-login: When login processes are flooded with authentication attempts, it starts logging errors about "Authentication server sent unknown id"; this is still expected, however, it also caused the login process to disconnect from auth server and potentially log some user's password in the error message

      • dict-sql: SQL prepared statements were not shared between sessions; this resulted in creating a lot of prepared statements, which was especially inefficient when using Cassandra backend with a lot of Cassandra nodes

      • auth: auth_request_finished event didn't have success=yes parameter set for successful authentications

      • auth: userdb dict - Trying to list users crashed

      • submission: Service could be configured to allow anonymous authentication mechanism and anonymous user access
      • LAYOUT=index: Corrupted dovecot.list.index caused folder creation to panic

      • doveadm: HTTP server crashes if request target starts with double "/"

      • dsync: Remote dsync started hanging if the initial doveadm "dsync-server" command was sent in the same TCP packet as the following dsync handshake (v2.3.8 regression)

      • lib: Several "input streams" had a bug that in some rare situations might cause it to access freed memory, which could lead to crashes or corruption; the only currently known effect of this is that using zlib plugin with external mail attachments (mail_attachment_dir) could cause fetching the mail to return a few bytes of garbage data at the beginning of the header (note that the mail wasn't saved corrupted, but fetching it caused corrupted mail to be sent to the client)

      • lib-storage: If a mail only has quoted content, use the quoted text for generating message snippet (IMAP PREVIEW) instead of returning empty snippet

      • lib-storage: When vsize header was rebuilt, newly calculated message sizes were added to dovecot.index.cache instead of being directly saved into vsize records in dovecot.index

      • lib: JSON generator was escaping UTF-8 characters unnecessarily
    • Updated pigeonhole to 0.5.9:

      • Added events for Sieve and ManageSieve, see https://doc.dovecot.org/admin_manual/list_of_events/#pigeonhole

      • Pigeonhole: Implement the Sieve "special-use" extension described in RFC 8579

      • duplicate: Test only compared the handles, which would cause different values to be cached as the same duplicate test; fix to also compare the actual hashes

      • imap_sieve_filter: IMAP FILTER command had various bugs in error handling; errors may have been duplicated for each email, errors may have been missing entirely, command tag and ERRORS/WARNINGS parameters were swapped

  • Updated schily to 2019.12.05

Sunday 8th December 2019

Fedora Project

  • Updated perl-Compress-Raw-Bzip2 to 2.093 in Rawhide (no changes)

  • Updated perl-Compress-Raw-Lzma to 2.093 in Rawhide:

    • Lzma.xs: Add allocator to lzma_properties_decode (GH#2)

  • Updated perl-Compress-Raw-Zlib to 2.093 in Rawhide (no changes)

  • Updated perl-IO-Compress to 2.093 in Rawhide (no changes)

  • Updated perl-IO-Compress-Lzma to 2.093 in Rawhide:

    • Fixed minor typo in the pod (GH#3)

Local Packages

  • Updated perl-Compress-Raw-Bzip2 to 2.093 as per the Fedora version

  • Updated perl-Compress-Raw-Lzma to 2.093 as per the Fedora version

  • Updated perl-Compress-Raw-Zlib to 2.093 as per the Fedora version

  • Updated perl-IO-Compress to 2.093 as per the Fedora version

  • Updated perl-IO-Compress-Lzma to 2.093 as per the Fedora version

Monday 9th December 2019

Fedora Project

Wednesday 11th December 2019

Fedora Project

  • Updated python-paramiko to 2.7.1 in Rawhide:

    • The new-style private key format (added in 2.7.0) suffered from an unpadding bug that had been fixed earlier for Ed25519 (as that key type has always used the newer format); that fix has been refactored and applied to the base key class (GH#1567)

    • Fix a bug in support for ECDSA keys under the newly-supported OpenSSH key format (GH#1565, GH#1566)

Local Packages

  • Updated perl-Type-Tiny to 1.008000:

    • Type::Tiny has a website: http://typetiny.toby.ink/

    • Resolved all remaining bugs from RT
    • Completed everything on TODO

    • Rewrite of the manual
    • Lots more test cases (now almost 14,000 test cases total!)
    • wrap_methods/wrap_subs in Type::Params

  • Updated unrar to 5.80

Friday 13th December 2019

Fedora Project

  • Updated milter-regex to 2.7 in Rawhide

    • Add -t option to test the configuration file and exit with a status

  • Updated perl-Cpanel-JSON-XS 4.18 in Rawhide:

    • Add new method ->type_all_string (GH#156); when type_all_string is set then the encode method produces stable, deterministic string types in the resulting JSON - this can be an alternative to Cpanel::JSON::XS::Type when having deterministic output is required but string JSON types are enough for any output

    • Move SvGETMAGIC() from encode_av() and encode_hv() to encode_sv() (GH#156)

    • Add Math::BigInt and Math::BigFloat as recommended dependencies (GH#157)

  • Took orphaned packages python-fluidity-sm and python-lexicon (dependencies of python-invoke, which is a dependency of python-paramiko, which is a package I actually care about)

Local Packages

  • Updated dovecot to 2.3.9.1:

    • Mails with group addresses in From or To fields caused crash in push notification drivers (CVE-2019-19722)

  • In addition, the package now builds with lz4, libexttextcat and libstemmer from Fedora 32 onwards

  • Updated perl-Cpanel-JSON-XS 4.18 as per the Fedora version

Saturday 14th December 2019

Fedora Project

  • Updated perl-IO-stringy to 2.112 in Rawhide:

    • Added the change log from any prior source that could be found, and formatted the log to fit metacpan.org loose standards
    • Change use vars qw() to our $whatever instead

    • Hide IO::WrapTie subclasses from PAUSE

    • Rebuild Makefile.PL to contain all of the prerequisites

    • Convert README to README.md

    • Fix the documentation in the main module, IO::Stringy to better indicate where to get info and how to use the module

    • Fix the dist's META information to indicate the original author and license

    • Add a LICENSE file

    • Add AppVeyor CI testing

    • Add Travis CI testing
    • Update t/IO_InnerFile.t to use Test::More and a proper TEMP file (CPAN RT#103895)

Local Packages

  • Rebuilt GeoIP (1.6.12) for EL-8

  • Rebuilt GeoIP-GeoLite-data (2018.06) for EL-8

  • Updated perl-IO-stringy to 2.112 as per the Fedora version

Sunday 15th December 2019

Local Packages

  • Updated dovecot to 2.3.9.2:

    • Mails with empty From/To headers can also cause crash in push notification drivers

Tuesday 17th December 2019

Fedora Project

  • Updated perl-B-Keywords to 1.21 in Rawhide:

    • isa was added with 5.31.7

    • Improved t/z_kwalitee.t

Local Packages

  • Updated perl-B-Keywords to 1.21 as per the Fedora version

Wednesday 18th December 2019

Fedora Project

  • Updated perl-Module-Extract-Use to 1.044 in Rawhide:

    • Handle a couple of new cases:
      • Include the modules specified by parent or base

      • Find the requires in expressions, like 'my $r = require Foo'

    • Small documentation and examples updates
  • I added a patch to fix t/rt/79273.t, which only gets run if Test::Manifest is present (GH#5)

  • Submitted a Review Request for a python-should_dsl package (test dependency of python-fluidity-sm)

Local Packages

Thursday 19th December 2019

Fedora Project

Local Packages

  • Updated perl-Module-Extract-Use to 1.045 as per the Fedora version

Friday 20th December 2019

Fedora Project

  • Imported, branched and built python-should_dsl (2.1.2) for F-30, F-31, Rawhide, EPEL-8 and EPEL-8 Playground

  • Updated perl-Test-Prereq to 2.003 in Rawhide:

    • Uniq the list of modules this extracts; Module::Extract::Use 1.045 changed slightly to return a bit more than it used to do

Local Packages

  • Updated perl-Test-Prereq to 2.003 as per the Fedora version

Saturday 21st December 2019

Local Packages

  • Updated perl-EV to 4.31:

    • (libev) Handle backends with minimum wait time a bit better by not waiting in the presence of already-expired timers

    • (libev) Use timerfd to detect time jumps

    • (libev) New loop flag: EVFLAG_NOTIMERFD

  • Updated perl-Module-CoreList to 5.20191220:

    • Updated for v5.31.7

Sunday 22nd December 2019

Fedora Project

  • Updated perl-Test-Warnings to 0.028 in Rawhide:

    • Allow for warnings->import being called after importing the "warnings" sub

Local Packages

  • Updated perl-Test-Warnings to 0.028 as per the Fedora version

Thursday 26th December 2019

Fedora Project

  • Updated perl-MCE to 1.865 in Rawhide:

    • Bug fix for two-way IPC stalling on Windows in MCE::Channel::Threads: see https://www.perlmonks.org/?node_id=11110612

    • Remove the check for MSWin32 in MCE::Channel::Mutex; MCE::Channel since the 1st release silently defaults to MCE::Channel::Threads on Windows

    • Small tweak to MCE::Signal

  • Updated perl-Module-Find to 0.15 in Rawhide:

    • Removed file readability check (GH#4, CPAN RT#99055)

    • Now supports @INC hooks (GH#6)

    • Now filters out filenames starting with a dot (GH#7)

    • Now uses strict (GH#8)

    • Fixed CPAN RT#122016: test/ files show up in metacpan

    • Module::Find now uses @ModuleDirs (if specified) for loading modules (CPAN RT#127657); previously, when using setmoduledirs() to set an array of directories that did not contain @INC, Module::Find would find the modules correctly, but load them from @INC

Local Packages

  • Updated perl-MCE to 1.865 as per the Fedora version

  • Updated perl-Module-Find to 0.15 as per the Fedora version

Saturday 28th December 2019

Local Packages

  • Updated perl-Type-Tiny to 1.008001:

    • Types::TypeTiny honours $Type::Tiny::AvoidCallbacks

    • Types::TypeTiny now better mocks Type::Library, offering is_* and assert_* functions for export

    • Use improved inline_assert when building the coderef for &{$type} overloading

Tuesday 31st December 2019

Local Packages

  • Updated davfs2 to 1.5.6:

    • Various fixes in umount_davfs:

      • Replace GNU extension 'a' with option 'm' in fscanf, fixing crash on umount (Bug #56286)

      • Remove calls to setuid and setgid

      • Adjust message
    • Ignore EEXIST when creating DAV_SYS_RUN (Bug #57233)

    • Check for iconv.h and iconv (Bug #56178)

Previous Month: November 2019
Next Month: January 2020

Recent