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:
Speed up LCS when $keyGen is undef (CPAN RT#101105)
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:
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