PaulHowarth/Blog/2020-12

Paul's Blog Entries for December 2020

Tuesday 1st December 2020

Fedora Project

  • Updated perl-Types-Serialiser to 1.01 in Rawhide:

    • Implement Types::Serialiser::as_bool

    • Slight documentation tweaks

Local Packages

  • Updated perl-PAR-Dist to 0.51:

    • Fix problem with Cwd::realpath(): some versions of Cwd::realpath() must be called on an existing path, otherwise they will return undef

  • Updated perl-Types-Serialiser to 1.01 as per the Fedora version

Thursday 3rd December 2020

Fedora Project

  • Updated perl-Class-Singleton to 1.6 in Rawhide:

    • Fixed confusing Changes entry about Perl's licensing terms (CPAN RT#132843)

    • Added optional Changes testing (skipped unless AUTHOR_TESTING)

    • Reformatted Changes file as per CPAN::Changes::Spec

    • Added optional POD coverage testing (skipped unless AUTHOR_TESTING)

    • Added optional Perl::Critic testing (skipped unless AUTHOR_TESTING)

    • Made code Perl::Critic clean

    • Added optional POD testing (skipped unless AUTHOR_TESTING)

    • Included GitHub repository URLs in metadata now that source code has been uploaded to GitHub (as of version 1.5)

    • Included META.json file in addition to META.yml

    • Set minimum required ExtUtils::MakeMaker version to 6.64 to ensure that all parameters used are supported, to save jumping through hoops to support earlier versions (this should not be a problem since ExtUtils::MakeMaker 6.64 is easily installed into Perl 5.8.1 and above, that being the whole point of the new choice of minimum supported Perl version)

    • Set minimum required Perl version to 5.8.1; this is in line with the minimum requirement of the "Perl Toolchain"
    • Corrected typo in a comment (CPAN RT#86336)

  • Updated perltidy to 20201202 (see CHANGES.md for details)

Local Packages

  • Updated libgpg-error to 1.39:

    • New option parser with features to implement system wide configuration files
    • New functions to build file names
    • New function to help reallocating arrays
    • Protect gpgrt_inc_errorcount against counter overflow

    • Improve cross-building for new platforms (https://dev.gnupg.org/T4774)

    • Support 64-bit big-endian MIPS architecture (https://dev.gnupg.org/T4952)

    • Support static link for Windows with -lws2_32 (https://dev.gnupg.org/T4623)

    • On Windows gpgrt_fopen, gpgrt_chdir, and gpgrt_mkdir now handle UTF-8 names (https://dev.gnupg.org/T4083)

    • Make timeout of gpgrt_poll work correctly on Windows if no file descriptors are active

    • New function gpgrt_fcancel as alternative to gpgrt_close; this function avoids flushing out buffered data and also tries to delete a newly-created file

    • Changes to ease cross-building (https://dev.gnupg.org/T4973)

    • "gpg-error --lib-version" works again

    • New symbols (in 1.38): gpgrt_fnameconcat, gpgrt_absfnameconcat, gpgrt_reallocarray, gpgrt_set_confdir, gpgrt_argparser, ARGPARSE_FLAG_SYS, ARGPARSE_FLAG_USER, ARGPARSE_FLAG_VERBOSE, ARGPARSE_FLAG_USERVERS, ARGPARSE_FLAG_WITHATTR, ARGPARSE_NO_CONFFILE, ARGPARSE_CONFFILE, ARGPARSE_OPT_CONFFILE, ARGPARSE_ATTR_FORCE, ARGPARSE_ATTR_IGNORE, ARGPARSE_TYPE_MASK, ARGPARSE_PERMISSION_ERROR, ARGPARSE_INVALID_META, ARGPARSE_UNKNOWN_META, ARGPARSE_UNEXPECTED_META, ARGPARSE_conffile, ARGPARSE_noconffile, ARGPARSE_verbatim, ARGPARSE_header, GPGRT_CONFDIR_USER, GPGRT_CONFDIR_SYS

    • New symbols (in 1.39): gpgrt_fcancel

  • Updated perl-Class-Singleton to 1.6 as per the Fedora version

  • Updated perl-Perl-Tidy to 20201202 as per the Fedora perltidy package

  • Updated python2-subversion to sync with subversion-1.14.0-9 in Rawhide

  • Updated sendmail (8.16.1) to enable CDB map support from Fedora 34 onwards (Bug #1781181)

Friday 4th December 2020

Fedora Project

  • Updated perl-IO-AIO to 4.73 in Rawhide:

    • def0.h was not up-to-date, running into musl problems

    • IO::AIO::splice and IO::AIO::tee didn't properly return 64 bit values

    • Added IO::AIO::accept4

    • Added various F_SEAL-related fcntl constants

    • Removed experimental marker for fdlimit functions

    • fiemap now includes the last segment even if it overflows the end offset, which is arguably the correct behaviour

Local Packages

  • Updated perl-IO-AIO to 4.73 as per the Fedora version

Saturday 5th December 2020

Fedora Project

  • Updated perl-DateTime to 1.54 in Rawhide:

    • Documentation updates
  • Updated perl-DBD-CSV to 0.56 in Rawhide:

    • Fix Changes (add missing entry for 0.54)

    • Bugtracker ⇒ GitHub Issues

    • f_dir should exist (CVE fix in DBI-1.644 / DBD::File-0.45)

    • TODO tests better skipped if failing

Local Packages

  • Updated perl-DateTime to 1.54 as per the Fedora version

Monday 7th December 2020

Fedora Project

  • Updated perl-Array-Compare to 3.0.7 in Rawhide:

    • Fix documentation typo
    • Add bugtracker info
  • Updated perl-Test-EOL to 2.02 in Rawhide:

    • Better matching on files, directories to be ignored, e.g. no longer confuses directory "vincent" for "inc" (CPAN RT#133862, GH#1)

    • Handle long @INC lines by passing through $PERL5LIB (CPAN RT#123448)

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

Local Packages

  • Updated perl-Array-Compare to 3.0.7 as per the Fedora version

  • Updated perl-Moo (2.004004) to add runtime dependency on Devel::GlobalDestruction with Perl < 5.14

  • Updated perl-Test-EOL to 2.02 as per the Fedora version

  • Updated perl-Perl-Tidy to 20201207 as per the Fedora perltidy package

  • Updated unrar to 6.00

Wednesday 9th December 2020

Local Packages

  • Updated curl to 7.74.0:

    • hsts: Add experimental support for Strict-Transport-Security

    • CVE-2020-8286: Inferior OCSP verification

    • CVE-2020-8285: FTP wildcard stack overflow

    • CVE-2020-8284: Trusting FTP PASV responses

    • acinclude: Detect manually set minimum macos/ipod version

    • alt-svc: Enable (in the build) by default
    • alt-svc: Minimize variable scope and avoid "DEAD_STORE"

    • asyn: Use 'struct thread_data *' instead of 'void *'

    • checksrc: Warn on empty line before open brace

    • CI/appveyor: Disable test 571 in two cmake builds
    • CI/azure: Improve on flakiness by avoiding libtool wrappers

    • CI/tests: Enable test target on TravisCI for CMake builds
    • CI/travis: Add brotli and zstd to the libssh2 build

    • cirrus: Build with FreeBSD 12.2 in CirrusCI
    • cmake: Call the feature unixsockets without dash
    • cmake: Check for linux/tcp.h

    • cmake: Correctly handle linker flags for static libs
    • cmake: Don't pass -fvisibility=hidden to clang-cl on Windows

    • cmake: Don't use reserved target name 'test'

    • cmake: Make BUILD_TESTING dependent option

    • cmake: Make CURL_ZLIB a tri-state variable

    • cmake: Set the unicode feature in curl-config on Windows

    • cmake: Store IDN2 information in curl_config.h

    • cmake: Use libcurl.rc in all Windows builds

    • configure: Pass -pthread to Libs.private for pkg-config

    • configure: Use pkgconfig to find openSSL when cross-compiling

    • connect: Repair build without ipv6 availability

    • curl.1: Add an "OUTPUT" section at the top of the manpage

    • curl.se: New home

    • curl: Add compatibility for Amiga and GCC 6.5

    • curl: Only warn not fail, if not finding the home dir

    • curl_easy_escape: Limit output string length to 3 * max input

    • Curl_pgrsStartNow: Init speed limit time stamps at start

    • curl_setup: USE_RESOLVE_ON_IPS is for Apple native resolver use

    • curl_url_set.3: Fix typo in the RETURN VALUE section

    • CURLOPT_DNS_USE_GLOBAL_CACHE.3: Fix typo

    • CURLOPT_HSTS.3: Document the file format

    • CURLOPT_NOBODY.3: Fix typo

    • CURLOPT_TCP_NODELAY.3: Fix comment in example code

    • CURLOPT_URL.3: Clarify SCP/SFTP URLs are for uploads as well

    • docs: Document the 8MB input string limit
    • docs: Fix typos and markup in ETag manpage sections
    • docs: Fix various typos in documentation
    • examples/httpput: Remove use of CURLOPT_PUT

    • FAQ: Refreshed
    • file: Avoid duplicated code sequence
    • ftp: Retry getpeername for FTP with TCP_FASTOPEN

    • gnutls: Fix memory leaks (certfields memory wasn't released)

    • header.d: Mention the "Transfer-Encoding: chunked" handling

    • HISTORY: The new domain

    • http3: Fix two build errors, silence warnings
    • http3: Use the master branch of GnuTLS for testing
    • http: Pass correct header size to debug callback for chunked post

    • http_proxy: Use enum with state names for 'keepon'

    • httpput-postfields.c: New example doing PUT with POSTFIELDS

    • infof/failf calls: Fix format specifiers

    • libssh2: Fix build with disabled proxy support

    • libssh2: Fix transport over HTTPS proxy

    • libssh2: Require version 1.0 or later

    • Makefile.m32: Add support for HTTP/3 via ngtcp2+nghttp3

    • Makefile.m32: Add support for UNICODE builds

    • mqttd: fclose test file when done

    • NEW-PROTOCOL: Document what needs to be done to add one

    • ngtcp2: Adapt to recent nghttp3 updates

    • ngtcp2: Advertise h3 ALPN unconditionally

    • ngtcp2: Fix build error due to symbol name change

    • ngtcp2: Use the minimal version of QUIC supported by ngtcp2

    • ntlm: Avoid malloc(0) on zero length user and domain

    • openssl: Acknowledge SRP disabling in configure properly

    • openssl: Free mem_buf in error path

    • openssl: Guard against OOM on context creation
    • openssl: Use OPENSSL_init_ssl() with ≥ 1.1.0

    • os400: Sync libcurl API options

    • packages/OS400: Make the source code-style compliant

    • quiche: Close the connection
    • quiche: Remove 'static' from local buffer

    • range.d: Clarify that curl will not parse multipart responses

    • range.d: Fix typo

    • Revert "multi: implement wait using winsock events"

    • rtsp: Error out on empty Session ID, unified the code
    • rtsp: Fixed Session ID comparison to refuse prefix
    • rtsp: Fixed the RTST Session ID mismatch in test 570
    • runtests: Return error if no tests ran

    • runtests: Revert the mistaken edit of $CURL

    • runtests: Show keywords when no tests ran

    • scripts/completion.pl: Parse all opts

    • socks: Check for DNS entries with the right port number
    • src/tool_filetime: Disable -Wformat on mingw for this file

    • strerror: Use 'const' as the string should never be modified

    • test122[12]: Remove these two tests

    • test506: Make it not run in c-ares builds

    • tests/*server.py: Close log file after each log line

    • tests/server/tftpd.c: Close upload file right after transfer

    • tests/util.py: Fix compatibility with Python 2

    • tests: Add missing global_init/cleanup calls

    • tests: Fix some http/2 tests for older versions of nghttpx

    • tool_debug_cb: Do not assume zero-terminated data

    • tool_help: Make "output" description less confusing

    • tool_operate: --retry for HTTP 408 responses too

    • tool_operate: Bail out properly on errors during parallel transfers

    • tool_operate: Fix compiler warning when --libcurl is disabled

    • tool_writeout: Use off_t getinfo-types instead of doubles

    • travis: Use ninja-build for CMake builds

    • travis: Use valgrind when running tests for debug builds

    • urlapi: Don't accept blank port number field without scheme

    • urlapi: URL encode a '+' in the query part

    • urldata: Remove 'void *protop' and create the union 'p'

    • vquic/ngtcp2.h: Define local_addr as sockaddr_storage

Thursday 10th December 2020

Fedora Project

  • Updated perl-MIME-Types to 2.18 in Rawhide:

    • Update with newest data
    • Mojo 6.0 changed types() into mapping()

    • Mojo 7.94 adds experimental file_type()

    • Mojo 7.94 adds experimental content_type()

Local Packages

  • Updated curl (7.74.0) not to rewrite shebangs in the test suite to use python3 explicitly

  • Updated perl-Lingua-EN-Inflect to 1.905:

    • Removed gratuitous use of Env.pm

  • Updated perl-MIME-Types to 2.18 as per the Fedora version

Friday 11th December 2020

Local Packages

  • Updated getmail to 5.15:

    • Fix example spamc arguments in FAQ

    • Document exit codes in manpages

Monday 14th December 2020

Fedora Project

  • Updated perl-Algorithm-Diff to 1.201 in Rawhide:

Local Packages

  • Updated perl-Algorithm-Diff to 1.201 as per the Fedora version

  • Updated python2-subversion to sync with subversion-1.14.0-10 in Rawhide

Tuesday 15th December 2020

Fedora Project

  • Updated geoipupdate to 4.6.0 in Rawhide:

    • Show version number in verbose output
    • Retry downloads in more scenarios: previously we would not retry failures occurring when reading the response body, but now we do

Local Packages

  • Updated geoipupdate to 4.6.0 as per the Fedora version

  • Updated perl-DateTime-Locale to 1.29:

    • Rebuilt all locale data with the data from CLDR 38.0.0 and glibc 2.32

Wednesday 16th December 2020

Fedora Project

  • Updated perl-DateTime-Format-Strptime to 1.78 in Rawhide:

    • Fix tests for new failure caused by locale data changes in DateTime::Locale 1.29 (GH#28)

    • Added a warning about using locale-specific patterns; some of these patterns can change quite a bit as the locale data is updated, so using them for parsing does not produce stable results across time - this is what caused the test failures that this release fixes

Local Packages

  • Updated perl-DateTime-Format-Strptime to 1.78 as per the Fedora version

  • Updated perl-DateTime-Locale to 1.30:

    • The previous release included some locale data for locales that had been deleted from CLDR 38.0.0
  • Updated perl-Test2-Suite to 0.000139:

    • Add ISA checks (GH#230)

    • Fix Manual module that was missing package/return true (GH#229)

Friday 18th December 2020

Fedora Project

  • Updated perl-DBD-CSV to 0.57 in Rawhide:

    • META fixes

Local Packages

  • Updated perl-DBD-CSV to 0.57 as per the Fedora version

  • New package perl-Net-SMTP-TLS (0.12)

  • New package perl-SVN-Notify (2.87)

  • New package perl-Text-Trac (0.24)

Saturday 19th December 2020

Fedora Project

  • Updated perl-Moose to 2.2014 in Rawhide:

  • Enhancements
    • Include details about expected values when Enum type checks fail (GH#174)

  • Documentation
    • Fix misleading missing semicolon in exceptions example (GH#170)

  • Other
    • Allow internal packages to be indexed by PAUSE; this avoids their permissions being captured (possibly unintentionally) by others
    • Sub::Identify prerequisite removed, in favour of already-existing local code

Local Packages

  • Updated perl-Moose to 2.2014 as per the Fedora version

Monday 21st December 2020

Fedora Project

  • Orphaned trac-accountmanager-plugin and trac-spamfilter-plugin since they can't even compile against trac 1.5 in Rawhide, and I've abandoned use of trac myself anyway since I couldn't get it to work with my subversion repository after updating to Fedora 33

  • Updated perl-Array-Compare to 3.0.8 in Rawhide:

    • Only support versions 5.10+
  • Updated perl-MetaCPAN-Client to 2.029000 in Rawhide:

    • Added checksum_sha256 and checksum_md5 fields support (GH#110)

    • Clean up old files

Local Packages

  • Updated perl-Array-Compare to 3.0.8 as per the Fedora version

  • Updated perl-Convert-UUlib to 1.8:

    • No bugfixes in this release due to lack of known bugs, but the major changes in this release might have introduced new bugs, so watch out
    • Update large decoder example to disable OPT_AUTOCHK and use Smerge -1

    • Some micro-optimizations
      • Avoid costly string comparisons by comparing hashes when inserting items, which speeds up insertion by a constant factor
      • Improve uulist (and other) structure layout and size

      • Reverse the order of file list items, which heuristically improves match speed with large usenet file lists
      • Use getc instead of fgetc, which makes no difference on gnu/linux

      • Clean up _FP symbol names not to start with an underscore

      • Use feof_unlocked and ferror_unlocked

      • Implement a faster ASCII-only strnicmp

    • Miscellaneous very minor code improvements
      • Remove quite a bit of pre-posix/dos/etc. cruft
      • Use flockfile, if available, for a potential but small speed gain

      • Speed up inner yenc decoder loop

      • Kentnl said that this module should no longer claim to be a simple interface to uulib, as the bundled copy is now better maintained than the original upstream library

  • Updated perl-MetaCPAN-Client to 2.029000 as per the Fedora version

  • Updated perl-Module-CoreList to 5.20201220:

    • Updated for v5.33.5

Wednesday 23rd December 2020

Local Packages

  • Updated perl-DateTime-Locale to 1.31:

    • The docs for each locale now show examples of its strftime patterns as well

  • Updated perl-DateTime-TimeZone to 2.46:

    • This release is based on version 2020e of the Olson database
    • Contemporary changes for Russia (Volgograd)
    • Fixed handling of Etc/GMT[+-]XX zones: confusingly, the POSIX interpretation is that Etc/GMT+1 is 1 hour behind UTC, and Etc/GMT-1 is 1 hour ahead, which is the opposite of what this module started doing in the 2.38 release when it added support for these zones (GH#47)

Thursday 24th December 2020

Fedora Project

  • Updated perl-Text-CSV_XS to 1.45 in Rawhide:

    • Update to Devel::PPPort 3.62

    • Allow adding to existing data in csv (out => $ref)

    • examples/csv2xlsx: -L # to limit records to export

    • examples/csv2xlsx: --de # for possible double-encoding fix

    • examples/csv2xlsx: Check if .xlsx is creatable before conversion

    • Add examples/csv-split

    • Small documentation additions
    • Fix META issue for bug tracker

Local Packages

  • Updated perl-Text-CSV_XS to 1.45 as per the Fedora version

Monday 28th December 2020

Local Packages

  • Updated perl-Term-ReadLine-Gnu to 1.37:

    • readline-8.1 support

      • New functions rl_activate_mark, rl_deactivate_mark, rl_keep_mark_active and rl_mark_active_p

      • Use native operate_and_get_next on GNU ReadLine 8.1 and later

    • Gnu.xs: warns if attempted completion function returns undef in position 0 (CPAN RT#132384)

    • ppport.h: Update from version 3.31 to version 3.52

    • Fixes to be more CPAN Testers friendly
    • Makefile.PL exits 0 when $TERM is not set properly (CPAN RT#128806)

    • Update URLs of the GNU Readline Library manual website (CPAN RT#131362)

    • Update URLs of soundgrab

Wednesday 30th December 2020

Fedora Project

  • Updated gtkwave to 3.3.108 in Rawhide:

    • Added View/Leading Zero Removal toggle item also controlled by lz_removal rc var

    • User submitted patch using gtk_widget_get_scale_factor()

    • Add include of X11/X.h for Arch Linux

    • Fix VZT writer crash when dumpoff is invoked before first timestep

    • Fix convert_ffo(), which scanned in wrong direction

    • Fix use after free in fstapi.c

  • Updated perl-IO-AIO to 4.75 in Rawhide:

    • Added pidfd_open, pidfd_getfd and pidfd_send_signal functions

    • Rework bin/treescan to avoid recursion; this fixes two bugs where a deep directory traversal or a lot of command line arguments could cause it to crash

    • Support defining syscall numbers in gendef0

    • Added (but not documented) open_tree, AT_* and move_mount flags

    • Added (but not documented) waitid-P_*, FSPICK_*, FSOPEN_*, FSCONFIG_*, MOUNT_ATTR_* constants

Local Packages

  • Updated gtkwave to 3.3.108 as per the Fedora version

  • Updated perl-IO-AIO to 4.75 as per the Fedora version

Thursday 31st December 2020

Fedora Project

  • Updated python-invoke to 1.5.0 in Rawhide:

    • Allow any string-compatible object to be passed to 'Context.cd', enabling use of (for example) 'pathlib.Path' instances (GH#454, GH#577, GH#583, GH#607, GH#681)

    • Don't silently discard help text for task arguments whose names happen to contain underscores (GH#409, GH#580, GH#611)

    • Don't silently ignore task help specifiers that don't actually map to the decorated task's arguments (e.g. '@task(help={"foo": "help for foo"})' wrapping a task without a 'foo' argument) (GH#398, GH#580, GH#611)

    • Allow subcollections to act as the default 'tasks' of their parent collections (via the new 'default' kwarg to '~invoke.collection.Collection.add_collection'); this means that non-trivial task trees can specify, e.g. "use my test subcollection's default task as the global default task" and similar (GH#197)

    • Enhanced test coverage in a handful of modules whose coverage was under 90%
    • '~invoke.context.MockContext' now populates its 'NotImplementedError' exception instances (typically raised when a command is executed that had no pre-prepared result) with the command string that triggered them; this makes it much easier to tell what exactly in a test caused the error

    • '~invoke.context.MockContext' now accepts a few quality-of-life shortcuts as keys and values in its 'run'/'sudo' arguments:

      • Keys may be compiled regular expression objects, as well as strings, and will match any calls whose commands match the regex
      • Values may be 'True' or 'False' as shorthand for otherwise empty '~invoke.runners.Result' objects with exit codes of '0' or '1' respectively

      • Values may also be strings, as shorthand for otherwise empty '~invoke.runners.Result' objects with those strings given as the 'stdout' argument

    • Add a new 'repeat' kwarg to '~invoke.context.MockContext' which, when True (default: False) causes stored results for its methods to be yielded repeatedly instead of consumed (GH#441)

    • Immutable iterable result values handed to '~invoke.context.MockContext' would yield errors (due to the use of 'pop()'); the offending logic has been retooled to be more iterator-focused and now works for tuples and etc.

    • Update the testing documentation a bit: cleaned up existing examples and added new sections for the other updates in the 1.5 release
    • Automatically populate the 'command' attribute of '~invoke.runners.Result' objects returned by '~invoke.context.MockContext' methods, with the command string triggering that result; previously, users had to do this by hand or otherwise suffered inaccurate result objects (GH#700)

    • Upgrade '~invoke.context.MockContext' to wrap its methods in 'Mock' objects if the '(unittest.)mock' library is importable; this makes testing Invoke-using codebases even easier

Previous Month: November 2020
Next Month: January 2021

Recent