Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

pkgin on Mac upgrade fails at perl-5.30.2 #256

Closed
mmayer opened this issue Apr 15, 2020 · 9 comments
Closed

pkgin on Mac upgrade fails at perl-5.30.2 #256

mmayer opened this issue Apr 15, 2020 · 9 comments
Assignees

Comments

@mmayer
Copy link

mmayer commented Apr 15, 2020

$ defaults read "/System/Library/CoreServices/SystemVersion" ProductVersion
10.15.4

$ sudo pkgin -y update && sudo pkgin -y upgrade
processing remote summary (https://pkgsrc.joyent.com/packages/Darwin/trunk/x86_64/All)...
database for https://pkgsrc.joyent.com/packages/Darwin/trunk/x86_64/All is up-to-date
calculating dependencies...done.

1 package to upgrade:
perl-5.30.2

0 to refresh, 1 to upgrade, 0 to install
0B to download, -2.6M to install

upgrading perl-5.30.2...
pkg_install warnings: 0, errors: 1
pkg_install error log can be found in /var/db/pkgin/pkg_install-err.log

$ tail /var/db/pkgin/pkg_install-err.log
pkg_add: 1 package addition failed
---Apr 14 22:23:44: upgrading perl-5.30.2...
pkg_add: Can't open +CONTENTS of depending package p5-Net-SSLeay-1.85nb1
pkg_add: 1 package addition failed
---Apr 14 22:24:43: upgrading perl-5.30.2...
pkg_add: Can't open +CONTENTS of depending package p5-Net-SSLeay-1.85nb1
pkg_add: 1 package addition failed
---Apr 14 22:27:42: upgrading perl-5.30.2...
pkg_add: Can't open +CONTENTS of depending package p5-Net-SSLeay-1.85nb1
pkg_add: 1 package addition failed

As far as I can tell, p5-Net-SSLeay-1.85nb1 no longer even exists as binary package.

$ pkgin avail | grep SSLeay
p5-Crypt-SSLeay-0.72nb7 Crypt::SSLeay - OpenSSL glue that provides LWP https support
p5-Net-SSLeay-1.88 Perl5 module for using OpenSSL

@jperkin
Copy link
Collaborator

jperkin commented Apr 15, 2020

Yeh, this is a known issue that I'm having trouble reproducing in a debug environment. There's a problem where the list of +REQUIRED_BY packages gets out of sync and not updated correctly during an upgrade, and then fails for subsequent operations, but even with a test environment that performs random upgrades in a loop I can't seem to trigger it, though I've seen it myself locally in the past, just not at a time when I can debug it.

I'll try to get back to my test suite to see if I can find the correct way to trigger it.

@jperkin jperkin self-assigned this Apr 15, 2020
@mmayer
Copy link
Author

mmayer commented Apr 15, 2020

Thanks for your prompt reply. Would it help if I provided my DB file or any other related files?
And can I recover from this condition in some way?
Thanks!

@jperkin
Copy link
Collaborator

jperkin commented Apr 17, 2020

You can recover by manually editing the broken +REQUIRED_BY files, so in your case /opt/pkg/.pkgdb/perl-5.30.2/+REQUIRED_BY - you will likely see that there are two lines for p5-Net-SSLeay, one of which will be the broken one and one the version you have installed, so removing the broken one should get you past this.

It's interesting that this has been seen before with this particular package combination, there might be something to go on.

Unfortunately sometimes this bug can be quite widespread, I've seen it happen across a number of ruby packages, and that was quite a pain to go through and manually remove all the broken entries.

@jperkin
Copy link
Collaborator

jperkin commented Apr 17, 2020

Hmm, I might have found something, if you look in your /var/db/pkgin/pkg_install-err.log file and search for the perl-5.30.1 upgrade (or similar), are there a bunch of warnings afterwards, like:

pkg_add: Dependency of p5-Net-SSLeay-1.85nb1 fulfilled by perl-5.28.2, but not by perl-5.30.1
pkg_add: Dependency of p5-Socket6-0.29 fulfilled by perl-5.28.2, but not by perl-5.30.1
pkg_add: Dependency of p5-Net-IP-1.26nb6 fulfilled by perl-5.28.2, but not by perl-5.30.1

?

@jperkin
Copy link
Collaborator

jperkin commented Apr 17, 2020

Ok yep, that's the bug, I've finally been able to reproduce this in my test suite:

$ ./pkgtest.sh 
Installing agrin-1.0
Installing bepretty-1.0
Installing cohelper-1.0
Installing duckweed-1.0
Installing excitement-1.0
Installing feminate-1.0
Installing gaspingly-1.0
Installing hassock-1.0
Installing imputrescence-1.0
pkg_add: Dependency of imputrescence-1.0 fulfilled by duckweed-1.0, but not by duckweed-2.0
Upgrade 1, pkgs 9 -> 9 -> 9
pkg_add: Dependency of cohelper-1.0nb1 fulfilled by agrin-1.0nb1, but not by agrin-2.0
pkg_add: Dependency of feminate-2.0 fulfilled by agrin-1.0nb1, but not by agrin-2.0
pkg_add: Dependency of feminate-2.0 fulfilled by bepretty-1.0nb1, but not by bepretty-2.0
Upgrade 2, pkgs 9 -> 9 -> 9
pkg_add: Can't open +CONTENTS of depending package cohelper-1.0nb1
pkg_add: 1 package addition failed

The problem occurs when there is a strict dependency match of pkg>=x<y and then an upgrade happens for >=y. I'll start taking a look at a fix.

@jperkin
Copy link
Collaborator

jperkin commented Apr 17, 2020

Proposed patch:

diff --git a/pkgtools/pkg_install/files/delete/pkg_delete.c b/pkgtools/pkg_install/files/delete/pkg_delete.c
index e9c73577cbb4..87656e87edbd 100644
--- a/pkgtools/pkg_install/files/delete/pkg_delete.c
+++ b/pkgtools/pkg_install/files/delete/pkg_delete.c
@@ -597,17 +597,28 @@ remove_pkg(const char *pkg)
         * Errors in the remaining part are counted, but don't stop the
         * processing.
         */
-
        for (p = plist.head; p; p = p->next) {
-           if (p->type != PLIST_PKGDEP)
-               continue;
-           if (Verbose)
-               printf("Attempting to remove dependency "
-                      "on package `%s'\n", p->name);
-           if (Fake)
-               continue;
-           match_installed_pkgs(p->name, remove_depend,
+               char *depmatch, *sep;
+               if (p->type != PLIST_PKGDEP)
+                       continue;
+               if (Verbose)
+                       printf("Attempting to remove dependency "
+                           "on package `%s'\n", p->name);
+               if (Fake)
+                       continue;
+               /*
+                * Convert any specific version match into a general match
+                * to catch any cases where a package has been forcibly
+                * upgraded to a version that no longer matches.
+                */
+               depmatch = xstrdup(p->name);
+               if ((sep = strpbrk(depmatch, "<>")) != NULL) {
+                       *sep = '\0';
+                       depmatch = xasprintf("%s-[0-9]*", depmatch);
+               }
+               match_installed_pkgs(depmatch, remove_depend,
                                 __UNCONST(pkg));
+               free(depmatch);
        }
 
        free_plist(&plist);

I've been running this in my test script for a while and it's working as expected. Further testing required.

@mmayer
Copy link
Author

mmayer commented Apr 17, 2020

Thanks for your help.

Unfortunately, there was one mismatch after the next once I started editing +REQUIRED_BY (i.e. it would complain about the subsequent package and then the next). So, I ended up recursively uninstalling Perl and then reinstalling it and the packages I had before. Luckily, it wasn't too painful.

As for the multiple entries in my pkg_install-err.log, I was just running update & upgrade a few times in a row to see if it would sort itself out after another update.

@jperkin
Copy link
Collaborator

jperkin commented Apr 20, 2020

I've pushed a fixed version of pkg_install out to the trunk release for wider testing, though this will only help once installed.

If the pkgdb becomes out of sync again when upgrading to the fixed version, an easier fix is to run pkg_admin rebuild && pkg_admin rebuild-tree, sorry that I wasn't aware of the latter previously (not sure how I missed it all this time!)

jperkin pushed a commit to NetBSDfr/pkgin that referenced this issue Apr 27, 2020
There are a number of known issues with +REQUIRED_BY files getting out
of sync when performing forced upgrades or replacements as pkgin does.
These lead to infamous "Can't open +CONTENTS of..." errors when next
attempting to upgrade, as +REQUIRED_BY files contain entries for
packages that no longer exist.

Attempting to fix pkg_install to ensure correct consistency during
replacements is difficult, and there's no guarantee that the installed
pkg_install tools would have any future fixes, and so a simpler
workaround for pkgin for now is to simply rebuild all the +REQUIRED_BY
files after each upgrade.

With recent proposed changes to pkg_install this operation has been
improved, and so the additional runtime (less than 1 second for most
situations) should not be noticeable for most users.

Resolves errors seen in TritonDataCenter/pkgsrc#158, TritonDataCenter/pkgsrc#190,
TritonDataCenter/pkgsrc#256 and many other ad-hoc reports.
netbsd-srcmastr pushed a commit to NetBSD/pkgsrc that referenced this issue Jul 1, 2020
Includes fixes to +REQUIRED_BY generation, performance improvements,
build fixes against newer libnetpgpverify, and better error messages.

When combined with newer pkgin releases, this should now eliminate the
various "pkg_add: Can't open +CONTENTS of depending package ..." errors
that users had frequently observed during upgrades (TritonDataCenter#158,
TritonDataCenter#190, TritonDataCenter#256, and many IRC logs).
jperkin pushed a commit that referenced this issue Jul 14, 2020
### All Platforms
- Allow the RPC server to listen on an IPv6 address ([#161](transmission/transmission#161))
- Change `TR_CURL_SSL_VERIFY` to `TR_CURL_SSL_NO_VERIFY` and enable verification by default ([#334](transmission/transmission#334))
- Go back to using hash as base name for resume and torrent files (those stored in configuration directory) ([#122](transmission/transmission#122))
- Handle "fields" argument in "session-get" RPC request; if "fields" array is present in arguments, only return session fields specified; otherwise return all the fields as before
- Limit the number of incorrect authentication attempts in embedded web server to 100 to prevent brute-force attacks ([#371](transmission/transmission#371))
- Set idle seed limit range to 1..40320 (4 weeks tops) in all clients ([#212](transmission/transmission#212))
- Add Peer ID for Xfplay, PicoTorrent, Free Download Manager, Folx, Baidu Netdisk torrent clients ([#256](transmission/transmission#256), [#285](transmission/transmission#285), [#355](transmission/transmission#355), [#363](transmission/transmission#363), [#386](transmission/transmission#386))
- Announce `INT64_MAX` as size left if the value is unknown (helps with e.g. Amazon S3 trackers) ([#250](transmission/transmission#250))
- Add `TCP_FASTOPEN` support (should result in slight speedup) ([#184](transmission/transmission#184))
- Improve ToS handling on IPv6 connections ([#128](transmission/transmission#128), [#341](transmission/transmission#341), [#360](transmission/transmission#360), [#692](transmission/transmission#692), [#737](transmission/transmission#737))
- Abort handshake if establishing DH shared secret fails (leads to crash) ([#27](transmission/transmission#27))
- Don't switch trackers while announcing (leads to crash) ([#297](transmission/transmission#297))
- Improve completion scripts execution and error handling; add support for .cmd and .bat files on Windows ([#405](transmission/transmission#405))
- Maintain a "session ID" file (in temporary directory) to better detect whether session is local or remote; return the ID as part of "session-get" response (TRAC-5348, [#861](transmission/transmission#861))
- Change torrent location even if no data move is needed ([#35](transmission/transmission#35))
- Support CIDR-notated blocklists ([#230](transmission/transmission#230), [#741](transmission/transmission#741))
- Update the resume file before running scripts ([#825](transmission/transmission#825))
- Make multiscrape limits adaptive ([#837](transmission/transmission#837))
- Add labels support to libtransmission and transmission-remote ([#822](transmission/transmission#822))
- Parse `session-id` header case-insensitively ([#765](transmission/transmission#765))
- Sanitize suspicious path components instead of rejecting them ([#62](transmission/transmission#62), [#294](transmission/transmission#294))
- Load CA certs from system store on Windows / OpenSSL ([#446](transmission/transmission#446))
- Add support for mbedtls (formely polarssl) and wolfssl (formely cyassl), LibreSSL ([#115](transmission/transmission#115), [#116](transmission/transmission#116), [#284](transmission/transmission#284), [#486](transmission/transmission#486), [#524](transmission/transmission#524), [#570](transmission/transmission#570))
- Fix building against OpenSSL 1.1.0+ ([#24](transmission/transmission#24))
- Fix quota support for uClibc-ng 1.0.18+ and DragonFly BSD ([#42](transmission/transmission#42), [#58](transmission/transmission#58), [#312](transmission/transmission#312))
- Fix a number of memory leaks (magnet loading, session shutdown, bencoded data parsing) ([#56](transmission/transmission#56))
- Bump miniupnpc version to 2.0.20170509 ([#347](transmission/transmission#347))
- CMake-related improvements (Ninja generator, libappindicator, systemd, Solaris and macOS) ([#72](transmission/transmission#72), [#96](transmission/transmission#96), [#117](transmission/transmission#117), [#118](transmission/transmission#118), [#133](transmission/transmission#133), [#191](transmission/transmission#191))
- Switch to submodules to manage (most of) third-party dependencies
- Fail installation on Windows if UCRT is not installed

### Mac Client
- Bump minimum macOS version to 10.10
- Dark Mode support ([#644](transmission/transmission#644), [#722](transmission/transmission#722), [#757](transmission/transmission#757), [#779](transmission/transmission#779), [#788](transmission/transmission#788))
- Remove Growl support, notification center is always used ([#387](transmission/transmission#387))
- Fix autoupdate on High Sierra and up by bumping the Sparkle version ([#121](transmission/transmission#121), [#600](transmission/transmission#600))
- Transition to ARC ([#336](transmission/transmission#336))
- Use proper UTF-8 encoding (with macOS-specific normalization) when setting download/incomplete directory and completion script paths ([#11](transmission/transmission#11))
- Fix uncaught exception when dragging multiple items between groups ([#51](transmission/transmission#51))
- Add flat variants of status icons for message log ([#134](transmission/transmission#134))
- Optimize image resources size ([#304](transmission/transmission#304), [#429](transmission/transmission#429))
- Update file icon when file name changes ([#37](transmission/transmission#37))
- Update translations

### GTK+ Client
- Add queue up/down hotkeys ([#158](transmission/transmission#158))
- Modernize the .desktop file ([#162](transmission/transmission#162))
- Add AppData file ([#224](transmission/transmission#224))
- Add symbolic icon variant for the Gnome top bar and when the high contrast theme is in use ([#414](transmission/transmission#414), [#449](transmission/transmission#449))
- Update file icon when its name changes ([#37](transmission/transmission#37))
- Switch from intltool to gettext for translations ([#584](transmission/transmission#584), [#647](transmission/transmission#647))
- Update translations, add new translations for Portuguese (Portugal)

### Qt Client
- Bump minimum Qt version to 5.2
- Fix dropping .torrent files into main window on Windows ([#269](transmission/transmission#269))
- Fix prepending of drive letter to various user-selected paths on Windows ([#236](transmission/transmission#236), [#307](transmission/transmission#307), [#404](transmission/transmission#404), [#437](transmission/transmission#437), [#699](transmission/transmission#699), [#723](transmission/transmission#723), [#877](transmission/transmission#877))
- Fix sorting by progress in presence of magnet transfers ([#234](transmission/transmission#234))
- Fix .torrent file trashing upon addition ([#262](transmission/transmission#262))
- Add queue up/down hotkeys ([#158](transmission/transmission#158))
- Reduce torrent properties (file tree) memory usage
- Display tooltips in torrent properties (file tree) in case the names don't fit ([#411](transmission/transmission#411))
- Improve UI look on hi-dpi displays (YMMV)
- Use session ID (if available) to check if session is local or not ([#861](transmission/transmission#861))
- Use default (instead of system) locale to be more flexible ([#130](transmission/transmission#130))
- Modernize the .desktop file ([#162](transmission/transmission#162))
- Update translations, add new translations for Afrikaans, Catalan, Danish, Greek, Norwegian Bokmål, Slovenian

### Daemon
- Use libsystemd instead of libsystemd-daemon (TRAC-5921)
- Harden transmission-daemon.service by disallowing privileges elevation ([#795](transmission/transmission#795))
- Fix exit code to be zero when dumping settings ([#487](transmission/transmission#487))

### Web Client
- Fix tracker error XSS in inspector (CVE-?)
- Fix performance issues due to improper use of `setInterval()` for UI refresh (TRAC-6031)
- Fix recognition of `https://` links in comments field ([#41](transmission/transmission#41), [#180](transmission/transmission#180))
- Fix torrent list style in Google Chrome 59+ ([#384](transmission/transmission#384))
- Show ETA in compact view on non-mobile devices ([#146](transmission/transmission#146))
- Show upload file button on mobile devices ([#320](transmission/transmission#320), [#431](transmission/transmission#431), [#956](transmission/transmission#956))
- Add keyboard hotkeys for web interface ([#351](transmission/transmission#351))
- Disable autocompletion in torrent URL field ([#367](transmission/transmission#367))

### Utils
- Prevent crash in transmission-show displaying torrents with invalid creation date ([#609](transmission/transmission#609))
- Handle IPv6 RPC addresses in transmission-remote ([#247](transmission/transmission#247))
- Add `--unsorted` option to transmission-show ([#767](transmission/transmission#767))
- Widen the torrent-id column in transmission-remote for cleaner formatting ([#840](transmission/transmission#840))
@jperkin
Copy link
Collaborator

jperkin commented Jul 20, 2020

This was fixed with recent changes in pkg_install and pkgin.

@jperkin jperkin closed this as completed Jul 20, 2020
jperkin pushed a commit that referenced this issue Aug 25, 2020
v0.17.0: 2020-08-13
- Do not modify (clean up) search query to find more matches (4583efd)
- Remove special search handling for phone numbers (a570a85)
- Remove extra pruning from email, phone and postaddress subcommand (3f315f9, 1b9ce98, c704ce1)
- Add query syntax for search terms (#131)
- Add newline at the end of "show --format=pretty" (#256)
- Add -H to select header from which add-email should read (#258)
- Expand environment variables in paths in the config file (#269)
- Deprecate --strict-search (the new query syntax can be used instead)
jperkin pushed a commit that referenced this issue Sep 9, 2020
0.2.2
Changes

-DBus: Fetch playback progress when position is queried (fixes #223, #236)
-DBus: Fix trackid replacing string with d-bus path, Seek & SetPosition
implementation (#252)
-Add notifications (#247)
-Do not delete from empty queue (fixes #253)
-Make contextmenu aware of commands (e.g. for Vim-like bindings)
(fixes #108, #157, #178, #199, #250)
-Use libc for setlocale() to fix non-ASCII (#256)
jperkin pushed a commit that referenced this issue Feb 13, 2021
2.5.5 (2021-02-05)

* #256 Use libev 4.33, featuring experimental io_uring
   support. (@jcmfernandes)

* #260 Workaround for ARM-based macOS Ruby: Use pure Ruby for M1, since
   the native extension is crashing on M1 (arm64). (@jasl)

* #252 JRuby: Fix javac -Xlint warnings (@headius)
jperkin pushed a commit that referenced this issue Mar 8, 2021
Informally OK'ed by joerg@

Pkgsrc changes:
 * Add comment the patches which lacked them.
 * Adjust PLIST.

Upstream changes:

Version 2.17.3, 2020-12-21
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

* Change base64, base58, base32, and hex encoding and decoding opearations
  to run in constant time (GH #2549)

* Fix a build problem on PPC64 building with Clang (GH #2547)

* Fix an install problem introduced in 2.17.2 affecting MSVC 2015

* Fix use of -L flag in linking when configured using ``--with-external-libdir``
  (GH #2496)

* Fix a build problem on big-endian PowerPC related to VSX instructions
  in the AES code. (GH #2515)


Version 2.17.2, 2020-11-13
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

* Fix an build problem on ppc64 introduced with certain recent
  versions of GCC or binutils where using the DARN instruction
  requires using an appropriate -mcpu flag to enable the instruction
  in the assembler. (GH #2481 2463)

* Resolve an issue in the modular square root algorithm where a loop
  to find a quadratic non-residue could, for a carefully chosen
  composite modulus, not terminte in a timely manner. (GH #2482 #2476)

* Fix a regression in MinGW builds introduced in 2.17.1

Version 2.17.1, 2020-11-07
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

* Fix a build problem that could occur if Python was not in the PATH.
  This was known to occur on some installations of macOS.

* Re-enable support for the x86 CLMUL instruction on Visual C++, which was
  accidentally disabled starting in 2.12.0. (GH #2460)

Version 2.17.0, 2020-11-05
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

* Fix a bug in ECDSA which could occur when the group size and hash length
  differ. In this case, on occasion the generated signature would not be
  accepted by other ECDSA implementations. This was particularly likely to
  affect users of 160-bit or 239-bit curves. (GH #2433 #2415)

* Fix a bug in ECDSA verification when the public key was chosen to be
  a small multiple of the group generator. In that case, verification
  would fail even if the signature was actually valid. (GH #2425)

* SIV's functionality of supporting multiple associated data inputs has been
  generalized onto the AEAD_Mode interface. However at the moment SIV is the
  only AEAD implemented which supports more than one AD. (GH #2440)

* The contents of ASN.1 headers ``asn1_str.h``, ``asn1_time.h``, ``asn1_oid.h``
  and ``alg_id.h`` have been moved to ``asn1_obj.h``. The header files remain
  but simply forward the include to ``asn1_obj.h``. These now-empty header files
  are deprecated, and will be removed in a future major release. (GH #2441)

* The contents of X.509/PKIX headers ``asn1_attribute.h`` ``asn1_alt_name.h``
  ``name_constraint.h`` ``x509_dn.h`` ``cert_status.h`` and ``key_constraint.h``
  have been merged into ``pkix_enums.h`` (for enumerations) and ``pkix_types.h``
  (for all other definitions). The previous header files remain but simply
  forward the include to the new header containing the definition. These
  now-empty header files are deprecated, and will be removed in a future major
  release. (GH #2441)

* A number of other headers including those related to HOTP/TOTP, XMSS,
  PKCS11, PSK_DB have also been merged. Any now deprecated/empty headers
  simply include the new header and issue a deprecation warning.
  (GH #2443 #2446 #2447 2448 #2449)

* Small optimizations in the non-hardware assisted AES key generation
  code path (GH #2417 #2418)

* Move the GHASH code to a new module in utils, making it possible
  to build GMAC support without requiring GCM (GH #2416)

* Add more detection logic for AVX-512 features (GH #2430)

* Avoid std::is_pod which is deprecated in C++20 (GH #2429)

* Fix a bug parsing deeply nested cipher names (GH #2426)

* Add support for ``aarch64_be`` target CPU (GH #2422)

* Fix order of linker flags so they are always applied effectively (GH #2420)

* Prevent requesting DER encoding of signatures when the algorithm
  did not support it (GH #2419)

Version 2.16.0, 2020-10-06
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

* Now userspace PRNG objects (such as AutoSeeded_RNG and HMAC_DRBG)
  use an internal lock, which allows safe concurrent use. This however
  is purely a precaution in case of accidental sharing of such RNG
  objects; for performance reasons it is always preferable to use
  a RNG per thread if a userspace RNG is needed. (GH #2399)

* DL_Group and EC_Group objects now track if they were created from a
  known trusted group (such as P-256 or an IPsec DH parameter).  If
  so, then verification tests can be relaxed, as compared to
  parameters which may have been maliciously constructed in order to
  pass primality checks. (GH #2409)

* RandomNumberGenerator::add_entropy_T assumed its input was a POD
  type but did not verify this. (GH #2403)

* Support OCSP responders that live on a non-standard port (GH #2401)

* Add support for Solaris sandbox (GH #2385)

* Support suffixes on release numbers for alpha/beta releases (GH #2404)

* Fix a bug in EAX which allowed requesting a 0 length tag, which had
  the effect of using a full length tag. Instead omit the length field,
  or request the full tag length explicitly. (GH #2392 #2390)

* Fix a memory leak in GCM where if passed an unsuitable block cipher
  (eg not 128 bit) it would throw an exception and leak the cipher
  object. (GH #2392 #2388)

Version 2.15.0, 2020-07-07
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

* Fix a bug where the name constraint extension did not constrain the
  alternative DN field which can be included in a subject alternative name. This
  would allow a corrupted sub-CA which was otherwise constrained by a name
  constraint to issue a certificate with a prohibited DN.

* Fix a bug in the TLS server during client authentication where where
  if a (disabled by default) static RSA ciphersuite was selected, then
  no certificate request would be sent. This would have an equivalent
  effect to a client which simply replied with an empty Certificate
  message. (GH #2367)

* Replace the T-Tables implementation of AES with a 32-bit bitsliced
  version. As a result AES is now constant time on all processors.
  (GH #2346 #2348 #2353 #2329 #2355)

* In TLS, enforce that the key usage given in the server certificate
  allows the operation being performed in the ciphersuite. (GH #2367)

* In X.509 certificates, verify that the algorithm parameters are
  the expected NULL or empty. (GH #2367)

* Change the HMAC key schedule to attempt to reduce the information
  leaked from the key schedule with regards to the length of the key,
  as this is at times (as for example in PBKDF2) sensitive information.
  (GH #2362)

* Add Processor_RNG which wraps RDRAND or the POWER DARN RNG
  instructions. The previous RDRAND_RNG interface is deprecated.
  (GH #2352)

* The documentation claimed that mlocked pages were created with a
  guard page both before and after. However only a trailing guard page
  was used. Add a leading guard page. (GH #2334)

* Add support for generating and verifying DER-encoded ECDSA signatures
  in the C and Python interfaces. (GH #2357 #2356)

* Workaround a bug in GCC's UbSan which triggered on a code sequence
  in XMSS (GH #2322)

* When building documentation using Sphinx avoid parallel builds with
  version 3.0 due to a bug in that version (GH #2326 #2324)

* Fix a memory leak in the CommonCrypto block cipher calls (GH #2371)

* Fix a flaky test that would occasionally fail when running the tests
  with a large number of threads. (GH #2325 #2197)

* Additional algorithms are now deprecated: XTEA, GOST, and Tiger.
  They will be removed in a future major release.

Version 2.14.0, 2020-04-06
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

* Add support for using POWER8+ VPSUMD instruction to accelerate GCM
  (GH #2247)

* Optimize the vector permute AES implementation, especially improving
  performance on ARMv7, Aarch64, and POWER. (GH #2243)

* Use a new algorithm for modular inversions which is both faster and
  more resistant to side channel attacks. (GH #2287 #2296 #2301)

* Address an issue in CBC padding which would leak the length of the
  plaintext which was being padded. Unpadding during decryption was
  not affected. Thanks to Maximilian Blochberger for reporting this.
  (GH #2312)

* Optimize NIST prime field reductions, improving ECDSA by 3-9% (GH #2295)

* Increase the size of the ECC blinding mask and scale it based on the
  size of the group order. (GH #880 #893 #2308)

* Add server side support for the TLS asio wrapper. (GH #2229)

* Add support for using Windows certificate store on MinGW (GH #2280)

* Use the library thread pool instead of a new thread for RSA computations,
  improving signature performance by up to 20%. (GH #2257)

* Precompute and cache additional fields in ``X509_Certificate`` (GH #2250)

* Add a CLI utility ``cpu_clock`` which estimates the speed of the
  processor cycle counter. (GH #2251)

* Fix a bug which prevented using DER-encoded ECDSA signatures with a PKCS11
  key (GH #2293)

* Enable use of raw block ciphers from CommonCrypto (GH #2278)

* Support for splitting up the amalgamation file by ABI extension has
  been removed. Instead only ``botan_all.cpp`` and ``botan_all.h`` are
  generated. (GH #2246)

* Improve support for baremetal systems with no underlying OS, with
  target OS ``none`` (GH #2303 #2304 #2305)

* The build system now avoids using ``-rpath=$ORIGIN`` or (on macOS)
  install_name which allowed running the tests from the build
  directory without setting ``LD_LIBRARY_PATH``/``DYLD_LIBRARY_PATH``
  environment variables. Instead set the dynamic linker variables
  appropriately, or use ``make check``. (GH #2294 #2302)

* Add new option ``--name-amalgamation`` which allows naming the
  amalgamation output, instead of the default ``botan_all``. (GH #2246)

* Avoid using symbolic links on Windows (GH #2288 #2286 #2285)

* Fix a bug that prevented compilation of the amalgamation on ARM and
  POWER processors (GH #2245 #2241)

* Fix some build problems under Intel C++ (GH #2260)

* Remove use of Toolhelp Windows library, which was known to trigger
  false positives under some antivirus systems. (GH #2261)

* Fix a compilation problem when building on Windows in Unicode mode.
  Add Unicode build to CI to prevent regressions. (GH #2254 #2256)

* Work around a GCC bug affecting old libc (GH #2235)

* Workaround a bug in macOS 10.15 which caused a test to crash.
  (GH #2279 #2268)

* Avoid a crash in PKCS8::load_key due to a bug in Clang 8.
  (GH #2277)

Version 2.13.0, 2020-01-06
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

* Add Roughtime client (GH #2143 #1842)

* Add support for XMSS X.509 certificates (GH #2172)

* Add support for X.509 CRLs in FFI layer and Python wrapper (GH #2213)

* It is now possible to disable TLS v1.0/v1.1 and DTLS v1.0 at build time.
  (GH #2188)

* The format of encrypted TLS sessions has changed, which will
  invalidate all existing session tickets. The new format will make
  it easier to support ticket key rotation in the future. (GH #2225)

* Improve RSA key generation performance (GH #2148)

* Make gcd computation constant-time (GH #2147)

* Add AVX2 implementation of SHACAL2 (GH #2196)

* Update BSI policy to reflect 2019 update of TR 02102-2 (GH #2195)

* Support more functionality for X.509 in the Python API (GH #2165)

* Add ``generic`` CPU target useful when building for some new or unusual
  platform.

* Disable MD5 in BSI or NIST modes (GH #2188)

* Disable stack protector on MinGW as it causes crashes with some recent
  versions. (GH #2187)

* On Windows the DLL is now installed into the binary directory (GH #2233)

* Previously Windows required an explicit ``.lib`` suffix be added when
  providing an explicit library name, as is used for example for Boost.
  Now the ``.lib`` suffix is implicit, and should be omitted.

* Remove the 32-bit x86 inline asm for Visual C++ as it seemed to not offer
  much in the way of improved performance. (GH #2204 #256)

* Resolve all compile time warnings generated by GCC, Clang and MSVC.
  Modify CI to compile with warnings-as-errors. (GH #2170 #2206 #2211 #2212)

* Fix bugs linking to 3rd party libraries on Windows due to invalid
  link specifiers. (GH #2210 #2215)

* Add long input and NIST Monte-Carlo hash function tests.

* Fix a bug introduced in 2.12.0 where ``TLS::Channel::is_active`` and
  ``TLS::Channel::is_closed`` could simultaneously return true.
  (GH #2174 #2171)

* Use ``std::shared_ptr`` instead of ``boost::shared_ptr`` in some examples.
  (GH #2155)

Version 2.12.1, 2019-10-14
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

* Fix a bug that prevented building with nmake (GH #2142 #2141)

* Fix an issue where make install would attempt to build targets which
  were disabled. (GH #2140)

* If the option ``--without-documentation`` is used, avoid invoking the
  documentation build script. (GH #2138)

* Fix a bug that prevented compilation on x86-32 using GCC 4.9 (GH #2139)

* Fix a bug in CCM encryption, where it was possible to call ``finish`` without
  ever setting a nonce (GH #2151 #2150)

* Improve ECIES/DLIES interfaces. If no initialization vector was set, they
  would typically produce hard to understand exceptions. (GH #2151 #2150)

Version 2.12.0, 2019-10-07
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

* Many currently public headers are being deprecated. If any such header is
  included by an application, a warning is issued at compile time. Headers
  issuing this warning will be made internal in a future major release.
  (GH #2061)

* RSA signature performance improvements (GH #2068 #2070)

* Performance improvements for GCM (GH #2024 #2099 #2119), OCB (#2122),
  XTS (#2123) and ChaCha20Poly1305 (GH #2117), especially for small messages.

* Add support for constant time AES using NEON and AltiVec (GH
  #2093 #2095 #2100)

* Improve performance of POWER8 AES instructions (GH #2096)

* Add support for the POWER9 hardware random number generator (GH #2026)

* Add support for 64-bit version of RDRAND, doubling performance
  on x86-64 (GH #934 #2022)

* In DTLS server, support a client crashing and then reconnecting from
  the same source port, as described in RFC 6347 sec 4.2.8 (GH #2029)

* Optimize DTLS MTU splitting to split precisely to the set MTU (GH #2042)

* Add support for the TLS v1.3 downgrade indicator. (GH #2027)

* Improve the error messages generated when an invalid TLS state
  transition occurs (GH #2030)

* Fix some edge cases around TLS close_notify support. (GH #2054)

* Modifications to support GOST 34.10-2012 signatures (GH #2055
  #2056 #1860 #1897)

* Add some new APIs on ``OID`` objects (GH #2057)

* Properly decode OCSP responses which indicate an error (GH #2110)

* Add a function to remove an X.509 extension from an Extensions object.
  (GH #2101 #2073 #2065)

* Support Argon2 outputs longer than 64 bytes (GH #2079 #2078)

* Correct a bug in CAST-128 which caused incorrect computation using
  11, 13, 14, or 15 byte keys. (GH #2081)

* Fix a bug which would cause Streebog to produce incorrect outputs for
  certain messages (GH #2082 #2083)

* Fix a bug that prevented loading EC points with an affine x or y
  value of 0. For certain curves such points can exist. (GH #2102)

* Fix a bug which would cause PBKDF2 to go into a very long loop if
  it was requested to use an iteration count of 0. (GH #2090 #2088)

* The BearSSL provider has been removed (GH #2020)

* Add a new ``entropy`` cli which allows sampling the output of
  the entropy sources.

* Add new ``base32_enc`` and ``base32_dec`` cli for base32 encoding
  operations. (GH #2111)

* Support setting TLS policies in CLIs like ``tls_client`` and
  ``tls_proxy_server`` (GH #2047)

* The tests now run in multithreaded mode by default. Provide option
  ``--test-threads=1`` to return to previous single-threaded
  behavior. (GH #2071 #2075)

* Cleanups in TLS record layer (GH #2021)

* Fix typos in some OCSP enums which used "OSCP" instead. (GH #2048)

* In the Python module, avoid trying to load DLLs for names that
  don't match the current platform (GH #2062 #2059)

* In the Python module, also look for ``botan.dll`` so Python
  wrapper can run on Windows.  (GH #2059 #2060)

* Add support for TOTP algorithm to the Python module. (GH #2112)

* Now the minimum Windows target is set to Windows 7 (GH #2036 #2028)

* Add ``BOTAN_FORCE_INLINE`` macro to resolve a performance issue
  with BLAKE2b on MSVC (GH #2092 #2089)

* Avoid using ``__GNUG__`` in headers that may be consumed by a C
  compiler (GH #2013)

* Improve the PKCS11 tests (GH #2115)

* Fix a warning from Klocwork (GH #2128 #2129)

* Fix a bug which caused amalgamation builds to fail on iOS (GH #2045)

* Support disabling thread local storage, needed for building on
  old iOS (GH #2045)

* Add a script to help with building for Android, using Docker (GH
  #2016 #2033 #513)

* Add Android NDK build to Travis CI (GH #2017)
jperkin pushed a commit that referenced this issue Jun 15, 2021
# pillar 1.6.1

- Bump required versions of ellipsis and vctrs to avoid warning during package load.
- `obj_sum()` no longer includes shape twice (#315).


# pillar 1.6.0

## Features

- New `num()` and `char()` offer a flexible way to customize the display of numeric and character columns (#191, #84).
- New `"pillar.max_dec_width"` option (#308).
- New `format_type_sum.AsIs()` avoids the need to implement your own `format_type_sum()` method (#286).
- `align()` gains `space` argument to control the character used for filling (#285).
- Numbers in scientific and decimal notation are formatted with the same rules regarding significant or decimal digits (#297).

## Bug fixes

- Load the debugme package only if the `DEBUGME` environment variable is set.
- More accurate detection if the decimal dot is necessary, and how many digits to show after the decimal dot (#298).
- Use display width instead of number of characters when truncating character columns.

## Documentation

- New `vignette("numbers")` and `vignette("digits")` (#308).

## Internal

- Compatibility with vctrs 0.3.7 (#291).
- `format.pillar_shaft_simple()` requires `"na"` attribute and no longer defaults to `pillar_na()` (#273).


# pillar 1.5.1

## Features

- New `format_glimpse()` (#177).

## Bug fixes

- Color and formatting can now be reliably turned off by setting the `"cli.num_colors"` option to 1 (#269).

## Documentation

- Add examples for new functions (#264).
- Fix lifecycle badges everywhere.


# pillar 1.5.0

## Breaking changes

- `obj_sum()` now always returns a string. `pillar_shaft.list()` iterates over its elements and calls `obj_sum()` for each (#137).

- Breaking: `print.pillar()` and `print.pillar_ornament()` now show  `<pillar>` `<pillar_ornament>` in the first line (#227, #228).

- pillar has been re-licensed as MIT (#215).

## Extensibility

- New `size_sum()` generic (#239).

- New `ctl_new_pillar()` and `ctl_new_compound_pillar()` used via `print.tbl()`, `format.tbl()` and `tbl_format_setup.tbl()` (#230).

- New `new_pillar()` low-level constructor (#230).

- New `new_pillar_component()` and `pillar_component()` (#230).

- New articles `vignette("extending")` and `vignette("printing")` (#251).

## Formatting

- All printing code has been moved from tibble to pillar (#179), including `glimpse()` (#234). This concentrates the printing code in one package and allows for better extensibility.

- Improve formatting for `"Surv"` and `"Surv2"` classes from the survival package (#199).

- Vectors of the `vctrs_unspecified()` class are formatted better (#256).

- Arrays are now formatted by showing only their first slice (#142).

- Avoid wrapping extra column names with spaces (#254).

## Internal

- Now using debugme to simplify understand the complex control flow, see `vignette("debugme")` (#248).

- New `format.pillar_ornament()` (#228).

- Using testthat 3e (#218).

- Avoid pillar.bold option in most tests (#216).

- Change internal storage format for `colonnade()` and `extra_cols()` (#204).


# pillar 1.4.7

- Adapt to changed environment on CRAN's Solaris machine.


# pillar 1.4.6

- Restore compatibility with R 3.2.


# pillar 1.4.5

## Features

- New `pillar.min_chars` option allows controlling the minimum number of characters shown for a character column (#178, @statsmaths).

- `bit64::integer64()` columns are now formatted the same way as numeric columns (#175).

- New `align()` to support easy alignment of strings within a character vector (existing function exported by @davidchall, #185).

## Technical

- `pillar_shaft()`, `format_type_sum()` and `extra_cols()` issue a warning if dots are unused.

- `new_pillar_title()` and `new_pillar_type()` warn if `...` is not empty.

## Internal

- Use lifecycle package.

- Remove compatibility code for R < 3.3.


# pillar 1.4.4

- `obj_sum()` uses `vctrs::vec_size()` internally.

- `is_vector_s3.default()` is soft-deprecated and no longer used. Please ensure that `vctrs::vec_is()` is `TRUE` for your class.

- Rely on vctrs for type abbreviations.


# pillar 1.4.3

- `new_pillar_shaft_simple()` gains `na` argument to control appearance of `NA` values.

- String columns are quoted if at least one value needs quotes (#171).

- Apply subtle style to `list_of` columns (#172).

- Fix formatting if mantissa is very close to 1 (#174).

- Use `as.character()` instead of `as_character()`.

- Remove compatibility with testthat < 2.0.0.
jperkin pushed a commit that referenced this issue Dec 2, 2021
Change log:

4.16.3
======
- panel: Change width of default panel-2 to 1% (Fixes #454)
- panel: Fix xfce4-panel-CRITICAL
- panel: Fix xfce4-panel-CRITICAL when already running
- libxfce4panel: Do not destroy context menu if popped up (Fixes #442)
- launcher: Check for menu item initialization
- launcher: Fix garcon-CRITICAL at startup
- systray: Fix GObject-CRITICAL
- systray: Fix Gtk-CRITICAL at startup/shutdown
- systray: Fix libsystray-CRITICAL
- tasklist: Fix Gtk-CRITICAL
- Silent `-Wcast-align` from Clang
- Translation Updates:
  Bulgarian, English (Australia), Estonian, Hebrew, Italian, Norwegian
  Bokmål, Occitan (post 1500), Portuguese, Spanish, Swedish

4.16.2
======
- Add icons to help and about items in panel menu
- Modernize documentation (developer.xfce.org)
- Translation Updates:
  Croatian, Estonian, Georgian, Ukrainian

4.16.1
======
- pager: Use gobject bindings (Fixes #376)
- pager: Switch to new workspaces icon name
- launcher: avoid double fork
- statustray: Display tooltip title of statusnotifier items as plaintext
- statustray: Prevent crash when parsing properties (Fixes #379)
- windowmenu: fix use-after-free in window_menu_plugin_window_item_new
- Fix compilation warnings
- Update `.gitignore`
- Translation Updates:
  Albanian, Amharic, Arabic, Armenian (Armenia), Asturian, Basque,
  Belarusian, Bengali, Bulgarian, Catalan, Chinese (China), Chinese
  (Hong Kong), Chinese (Taiwan), Croatian, Czech, Danish, Dutch,
  Eastern Armenian, English (Australia), English (United Kingdom),
  Estonian, Finnish, French, Galician, Georgian, German, Greek, Hebrew,
  Hungarian, Icelandic, Indonesian, Interlingue, Italian, Japanese,
  Kazakh, Korean, Lithuanian, Malay, Norwegian Bokmål, Norwegian
  Nynorsk, Occitan (post 1500), Panjabi (Punjabi), Polish, Portuguese,
  Portuguese (Brazil), Romanian, Russian, Serbian, Sinhala, Slovak,
  Slovenian, Spanish, Swedish, Thai, Turkish, Ukrainian, Vietnamese

4.16.0
======
- panel: Fix intellihide with CSD (Fixes #368)
- tasklist: Fix wireframe for CSD windows (Fixes #338)
- tasklist: Auto-adjust icon size (Closes #90)
- Revert "tasklist: Auto-adjust icon size (Closes #90)"
- Fix GSourceFunc removal
- Remove GSourceFunc casts
- Remove GLIB_CHECK_VERSION IFDEFs which are obsolete after glib bump


4.15.6
======
- settings: Use spinbuttons for size and nrows
- settings: Update item listview toolbar
- Make dbusmenu-gtk3-0.4 optional, disables StatusNotifier integration
- gobject introspection wants a capital letter for the gir file
- Use new xfce_spawn API
- Bump GLib (and gio, gthread, etc) minimum to 2.50.0
- Update .gitignore
- Add README.md to EXTRA_DIST
- Fix compiler warnings
- Fix memory leaks
- Drop generated code from repo
- Revert "launcher: Appear "checked" on click (Fixes #256)"
- Translation Updates:
  Chinese (China), Estonian, Norwegian Nynorsk, Russian, Serbian,
  Slovak, Slovenian, Turkish, Vietnamese

4.15.5
======
- actions: Switch to new session icons (Fixes #332)
- add-items: Drop not-so-helpful dialog subtitle
- add-items: Bump default dialog size (Fixes #258)
- launcher: Appear "checked" on click (Fixes #256)
- tasklist: Limit blinking notification
- intellihide: Check if cursor is over the panel (Fixes #311)
- launcher: Set plugin icon as fallback (Fixes #329)
- Add new README.md
- Fixed icon for about dialog and added more icons for better scaling
- Unref datetime objects
- Translation Updates:
  Albanian, Amharic, Arabic, Armenian (Armenia), Basque, Belarusian,
  Bengali, Bulgarian, Catalan, Chinese (China), Chinese (Hong Kong),
  Chinese (Taiwan), Croatian, Czech, Danish, Dutch, Eastern Armenian,
  English (Australia), English (United Kingdom), Estonian, Finnish,
  French, Galician, Georgian, German, Greek, Hebrew, Hungarian,
  Icelandic, Indonesian, Interlingue, Italian, Japanese, Kazakh, Korean,
  Lithuanian, Malay, Norwegian Bokmål, Norwegian Nynorsk, Occitan (post
  1500), Panjabi (Punjabi), Polish, Portuguese, Portuguese (Brazil),
  Romanian, Russian, Serbian, Sinhala, Slovak, Slovenian, Spanish,
  Swedish, Thai, Turkish, Ukrainian, Uyghur, Vietnamese

4.15.4
======
- New plugin: statustray (supports statusnotifier and systray)
- plugins: Add new rDNS icons for all plugins
- Use shared field codes expansion
- tasklist: Add "Launch New Instance" item to menu (Fixes #158)
- Translation Updates:
  Albanian, Chinese (China), Chinese (Taiwan), Croatian, Estonian,
  French, Hebrew, Japanese, Kazakh, Korean, Lithuanian, Norwegian
  Bokmål, Polish, Portuguese, Portuguese (Brazil), Serbian, Swedish,
  Turkish

4.15.3
======
- Add new app icon and rDNS icon name
- Fix background of 48px app icons (Bug #16873)
- dark-mode: Make property unique across panels
- tasklist: Allow keyboard navigation within groups (Fixes #270)
- applicationsmenu: Correctly block autohiding (Fixes #287)
- action buttons: Fix combobox signal
- action buttons: Drop 'inverted buttons' setting (#223)
- action buttons: Add button title options (Bug #8980)
- action buttons: Fix separator width (Bug #15558)
- launcher: Fix launcher menu button state (Fixes #264)
- launcher: Fix crash with actions menu (Bug #16823)
- launcher: Fix in default panel configuration
- Improve docs for xfce_panel_plugin_position_widget (Bug #9438)
- Add Gio to libxfce4panel gir includes
- Add basic GitLab pipeline
- Fix whitespace error
- Fix panel build with vala 0.48 (Bug #16426)
- Fix build
- Update gitignore (Fixes #295)
- Drop references to Gtk2 and 4.6 panel plugins
- Translation Updates:
  Albanian, Amharic, Arabic, Armenian (Armenia), Belarusian, Bengali,
  Bulgarian, Catalan, Chinese (China), Chinese (Hong Kong), Chinese
  (Taiwan), Croatian, Czech, Danish, Dutch, Eastern Armenian, English
  (Australia), English (United Kingdom), Estonian, Finnish, French,
  Galician, Georgian, German, Greek, Hebrew, Hungarian, Icelandic,
  Indonesian, Interlingue, Italian, Japanese, Kazakh, Korean, Lithuanian,
  Malay, Norwegian Bokmål, Norwegian Nynorsk, Occitan (post 1500),
  Panjabi (Punjabi), Polish, Portuguese, Portuguese (Brazil), Romanian,
  Russian, Sinhala, Slovak, Slovenian, Spanish, Swedish, Thai, Turkish,
  Uighur, Ukrainian, Vietnamese

4.15.2
======
- panel: Improve autohide animation
- panel: Add "popdown-speed" property to adjust autohide animation
- panel: Fix autohide state machine
- panel: Fix cancellation of autohide animation
- panel: Immediately show panel in intellihide
- panel: Don't tamper with leave_opacity value (Bug #16296)
- launcher: Show desktop actions in context menu
- plugin: Show custom menu items below plugin name
- tasklist: Hide brackets for min windows by default
- tasklist: Fix crash middle-click-closing grouped windows (Bug #16410)
- systray: Basic support for symbolic icons
- systray: Silence deprecation warnings
- systray: Remove superfluous warning
- Improve wording in "Remove plugin" dialog (Bug #9000)
- settings: Add keywords for discoverability (Bug #10694)
- Fix GTimeVal deprecation (Bug #16643)
- Fix memory leak in panel plugin wrapper (Bug #16640)
- Update docstring
- Update libxfce4panel symbols
- Make var names more consistent
- Fix cast
- Fix typo
- Fix indentation
- Translation Updates:
  Albanian, Basque, Belarusian, Bulgarian, Catalan, Chinese (China),
  Chinese (Taiwan), Croatian, Danish, Dutch, Finnish, French, Galician,
  Georgian, German, Hebrew, Hungarian, Italian, Japanese, Kazakh,
  Lithuanian, Malay, Norwegian Bokmål, Polish, Portuguese, Portuguese
  (Brazil), Russian, Serbian, Slovenian, Spanish, Turkish, Ukrainian

4.15.1
======
- Enable dark-mode by default
- tic-tac-toe: Fix XfceTitledDialog with CSD
- add-item dialog: Fix XfceTitledDialog with CSD
- systray: Improve app icon lookup
- directorymenu: Add create folder/document menuitems (Bug #15639)
- directorymenu: Add option to hide folder/terminal menuitems (Bug
#15630)
- plugins: Fix enter/leave opacity w/o compositing (Bug #14577)
- clock: Drop leading zeros for days in default layout
- clock: Add back hour:min to format presets (Bug #16035)
- panel: Make sure "span monitors" is conditionally sensitive
- tasklist: Fix drag&drop in deskbar mode (Bug #16298)
- Fix autohide with bg color or image (Bug #16064)
- Improve the marching ants animation
- Remove extra underscore (Bug #16266)
- Use an empty placeholder icon for launcher (Bug #15819)
- Always provide files for vala binding in dist tarball
- Replace GtkStock icon
- Use symbolic window-close button image
- Fix doc typos
- Fix indentation
- Translation Updates:
  Albanian, Basque, Bulgarian, Catalan, Chinese (China), Chinese
  (Taiwan), Croatian, Czech, Danish, Dutch, English (United Kingdom),
  Finnish, French, Galician, Georgian, German, Greek, Hungarian,
  Interlingue, Italian, Japanese, Lithuanian, Norwegian Bokmål, Polish,
  Portuguese, Portuguese (Brazil), Russian, Serbian, Slovak, Slovenian,
  Spanish, Swedish, Turkish

4.15.0
======
 - Drop support for Gtk2 and 4.6 plugins
 - Drop Gtk2/4.6-only references from the docs
 - Don't show or try to load Gtk2 plugins anymore
 - Add dark mode preference
 - autohide: Add sliding out animation
 - Draw panel border based on position and length
 - appmenu: Listen to icon theme changes (Bug #15861)
 - appmenu: Use panel's icon size
 - clock: Validate timezone entry (Bug #16036)
 - prefs: Plug memory leaks (Bug #16016)
 - docs: Fix build by dropping unused refs (Bug #16031)
 - pager: Fix scrolling in pager-buttons (Bug #15614)
 - pager: Face-lift of settings dialog
 - pager: Only show scroll-option with buttons
 - pager: Add option to show workspace number
 - systray: Drop "Show frame" option (Bug #14186)
 - tasklist: Resize when windows get removed (Bug #14394)
 - systray: Fix icons without compositing (Bug #14577)
 - windowlist: Make layout consistent with xfdesktop
 - windowlist: Replace deprecated gtk_widget_modify_font
 - launcher: Fix visual state of arrow-button (Bug #15818)
 - launcher: Avoid excessive left padding on popup menu (Bug #15819)
 - Fix typos and improve code formatting
 - Translation Updates:
   Albanian, Arabic, Armenian (Armenia), Belarusian, Bulgarian, Chinese
   (China), Chinese (Taiwan), Croatian, Danish, Dutch, French, Galician,
   German, Greek, Hebrew, Hungarian, Indonesian, Italian, Japanese,
   Lithuanian, Malay, Norwegian Bokmål, Polish, Portuguese, Portuguese
   (Brazil), Russian, Serbian, Slovak, Spanish, Swedish, Thai, Turkish
jperkin pushed a commit that referenced this issue Feb 21, 2022
0.6.2.0
* Safely prepare for when cabal factors out Cabal-syntax

0.6.1.0
* Support basic auth in package-indices (#252)
* Fix tests due to new aeson handling of unescaped control sequences (#256)
* Bump a lot of bounds on packages we depend on
jperkin pushed a commit that referenced this issue Apr 29, 2022
# magrittr 2.0.3

* Fixed a C level protection issue in `%>%` (#256).


# magrittr 2.0.2

* New eager pipe `%!>%` for sequential evaluation (#247). Consider
  using `force()` in your functions instead to make them strict, if
  sequentiality is required. See the examples in `?"pipe-eager"`.

* Fixed an issue that could cause pipe invocations to fail in versions of
  R built with `--enable-strict-barrier`. (#239, @kevinushey)
jperkin pushed a commit that referenced this issue Jun 2, 2022
Upstream changes:
scales 1.2.0
New features

    label_number():

        New style_positive and style_negative argument control how positive and negative numbers are styled (#249, #262).

        The prefix comes after the negative sign, rather than before it, yielding (e.g) the correct -$1 instead of $-1.

        New scale_cut argument enables independent scaling of different parts of the range. This is useful in label_dollar() to support scaling of large numbers by suffix (e.g. “M” for million, “B” for billion). It can be used with cut_short_scale() when billion = thousand million and cut_long_scale() when billion = million million (initial implementation provided by @davidchall). Additionally, the accuracy is now computed per scale category, so rescaled values can have different numbers of decimal places (#339).

        label_number_si() is deprecated because it previously used short scale abbreviations instead of the correct SI prefixes. You can mimic the previous results with label_number(scale_cut = cut_scale_short()) or get real SI labels with label_number(scale_cut = cut_SI("m")) (#339, with help from @davidchall).

    label_bytes() now correctly accounts for the scale argument when choosing auto units (@davidchall, #235).

    label_date() and label_time() gain a locale argument that allows you to set the locale used to generate day and month names (#309).

    New label_log() displays the base and a superscript exponent, for use with logarithmic axes (@davidchall, #312).

    New compose_trans() allows arbitrary composition of transformers. This is mostly easily achieved by passing a character vector whenever you might previously have passed the name of a single transformer. For example, scale_y_continuous(trans = c("log10", "reverse")) will create a reverse log-10 scale (#287).

Bug fixes and minor improvements

    breaks_width() now supports units like "3 months" in the offset argument.

    col_quantile() no longer errors if data is sufficiently skewed that we can’t generate the requested number of unique colours (#294).

    dollar(negative_parens) is deprecated in favour of style_negative = "parens".

    hue_pal() respects h.start once again (#288).

    label_number_auto() correctly formats single numbers that are greater than 1e+06 without an error (@karawoo, #321)

    manual_pal() now always returns an unnamed colour vector, which is easy to use with ggplot2::discrete_scale() (@yutannihilation, #284).

    time_trans() and date_trans() have domains of the correct type so that they can be transformed without error (#298).

    Internal precision(), used when accuracy = NULL, now avoids displaying unnecessary digits (@davidchall, #304).

scales 1.1.1

    breaks_width() now handles difftime/hms objects (@bhogan-mitre, #244).

    hue_pal() now correctly inverts color palettes when direction = -1 (@dpseidel, #252).

    Internal precision(), used when accuracy = NULL, now does a better job when duplicate values are present (@teunbrand, #251). It also does a better job when there’s a mix of finite and non-finite values (#257).

    New oob_keep() to keep data outside range, allowing for zoom-limits when oob_keep is used as oob argument in scales. Existing out of bounds functions have been renamed with the oob_-prefix to indicate their role (@teunbrand, #255).

    ordinal_french() gains plural and gender arguments (@stephLH, #256).
jperkin pushed a commit that referenced this issue Sep 13, 2022
37.1 (2022-09-03)
-----------------

* Allow HTML5 `nav` tag through cleaner (#259)

37.0 (2022-08-21)
-----------------

* Remove command line example from docs (#197)
* Multiple pyproject.toml fixes (#251)
* Confirm handling multiple inline strong (#252)
* Convert RST output to HTML5 (#253)
* Add Typing to classifiers (#254)
* Development tweaks - coverage reporting, actions updates (#255)
* Add test confirming behavior with unknown lexers (#256)

36.0 (2022-08-06)
-----------------

* Enable gitpod development (#238)
* Allow rst admonitions to render (#242)
* Add badges to README (#243)
* Update codebase for modern Python (#244)
* Fix table cell spans (#245)
* Allow ``math`` directive in rst (#246)
* Preserve ``lang`` attribute in ``pre`` (#247)

35.0 (2022-04-19)
-----------------

* Add py.typed to the built wheel (#228)
* Use isolated build for tox (#229)
* Fix renderer ignore (#230)
* Remove legacy check command and distutils (#233)
* Emit a warning when no content is rendered (#231)
* Drop support for Python 3.6 (#236)
* Update html attribute order in tests (#235)

34.0 (2022-03-11)
-----------------

* Add static types (#225)

33.0 (2022-03-05)
-----------------

* Support cmarkgfm>=0.8.0 (#224)

33.0 (2022-02-05)
-----------------

* Support cmarkgfm>=0.8.0 (#224)
* Support Python 3.10

32.0 (2021-12-13)
-----------------

* Allow start attribute in ordered lists (#216)
* No limit rendering RST one column field names (#219)

31.0 (2021-12-09)
-----------------

* Render disabled checkboxes from Markdown (#217)

30.0 (2021-09-30)
-----------------

* support cmarkgfm>=0.6.0 (#209)
jperkin pushed a commit that referenced this issue Apr 28, 2023
Upstream's changelist:

[2.2] fix CVE-2022-45188 by @rdmark in #254
[2.2] papd: Fix incorrect type in printer status check by @smagoun in #320
[2.2] Improvements to the macusers script by @rdmark in #263
[2.2] man pages: create an a2boot man page by @rdmark in #235
[2.2] Improve systemd service dependencies, improving stability at
      boot on wifi only hosts by @rdmark in #233
[2.2] Update manual to match current behavior and correct typos by
      @rdmark in #230 #234 #257
[2.2] Remove release notes code since it's no longer used by @rdmark
      in #256
Create Github workflow that builds, tests, and runs static analysis by
@rdmark in #255 #290 #314
jperkin pushed a commit that referenced this issue Jun 11, 2023
Upstream changes:
4.57 2023-05-01

    [ DOCUMENTATION ]
    - Documentation tweaks around uploadInfo() and hooks (GH #256, thanks to rlauer6)

4.56 2023-03-01

    [ TESTING ]
    - add new cookie field 'Priority' to CGI::Cookie code (GH #253, thanks to Pavel)
jperkin pushed a commit that referenced this issue Sep 10, 2023
Enhancements

    Update LSP spec to latest by @karthiknadig in #230
    Add --output-dir switch to code generator by @karthiknadig in #239

Dotnet

    Dotnet: Code generation for LSP methods by @karthiknadig in #222
    Generate request, notification and options classes by @karthiknadig in #224
    dotnet: Add test case generation by @karthiknadig in #226
    Add devcontainer support to repo by @timheuer in #234
    Add dotnet test and format check to GHA by @karthiknadig in #240
    Add response types and improve test suite by @karthiknadig in #243
    Generate dotnet project package. by @karthiknadig in #252
    Format Generated Code by @karthiknadig in #257
    Use record instead of class for LSP types. by @karthiknadig in #258
    Use ImmutableArray and ImmutableDictionary by @karthiknadig in #256

Bug Fixes

    Fix bug with structuring LSPObject type by @karthiknadig in #229
    dotnet: Fix issues with OrType serialization by @karthiknadig in #232
    Improve documentation tags in generated code by @karthiknadig in #250
    Fix warning with generated converter code by @karthiknadig in #251
    Fix for missing notebook selector hook by @karthiknadig in #260
jperkin pushed a commit that referenced this issue Oct 3, 2023
v0.15.2
Changes
 - HOTFIX: revert windows crate's version to 0.44.0 (6d3a2ea)

v0.15.1
What's Changed
 - Make it possible to enable streaming only in daemon mode by @Schnouki in #242
 - Add support for getting track's data from CLI get command by @aome510 in #245
 - Add player event hook command by @aome510 in #244
 - filter out unplayable/unavailable tracks by @rileyallyn in #207
 - Optimize CLI command runtime by @aome510 in #249
 - Update player_event_hook_command usage by @aome510 in #251
 - Set PulseAudio app properties using environment variables by @Schnouki in #252
 - Consistent Spotify naming by @jacksongoode in #256
 - Add audio normalization device config option by @jsbmg in #255
 - Add Mute command by @BKasin in #253
 - Improve rendering performance for liked tracks page by @aome510 in #262
 - [Windows]: Create dummy window to handle media control by @rashil2000 in #261
jperkin pushed a commit that referenced this issue Nov 9, 2023
[1.0.0] - 2023-11-07

A quick note to any packages. The generated shell completions and man page are
now in the gen directory of the repo. They're also included in the pre-built
release artifacts on the releases page.

Improvements
 #115 Do not replace symlink with output file (@SimplyDanny)
      Fixes an issue where a symlink would be replaced with a regular file
 #124 Fix tests (@Linus789)
      Removed displaying the file path when passing the --preview flag and fixed how text coloring was handled in tests

Breaking
 #192 Rename --string-mode to --fixed-strings (@CosmicHorrorDev)
      Renamed -s --string-mode to -f --fixed-strings to better match similar
      tools
      -s and --string-mode will still continue to work for backwards
      compatibility, but are no longer documented
 #258 Error on $<num><non_num> capture replacement names (@CosmicHorrorDev)
      Previously when you tried to use a numbered capture group right before
      some letters in the replacement text (e.g. $1foo) then it would be
      considered the impossible-to-use 1foo capture. The correct way to pass
      the numbered capture group in this case would be to surround the number
      with curly braces like so ${1}foo. The error just detects this case and
      informs the user of the issue

Docs
 #93 Add note about in-place file modification to --help output (@jchook)
 #148 Doc: nitpick -- has no special meaning to shells (@hexagonrecursion)
 #181 Fix man page -f flag help text (@ulope)
      Fixed copy-pasted text in the man page's -f flag's help text
 #186 Improve error message for failed replacements (@CosmicHorrorDev)
 #187 Freshen up README (@CosmicHorrorDev)
      Added a repology badge to document different installation methods
      Improved the formatting of the benchmarks
 #207 Documenting $ escape (@yahkbar)
      Adds a section in the README that covers that $$ is a literal $ in the
      replacement text
 #227 Improve README readability (@vassudanagunta)
      Various formatting improvements
 #231 Use clap_mangen and roff to generate manpage (@nc7s)
      This change ensures the man page contents stay in sync with the CLI
      automatically, and fixes some broken rendering of the existing manpage
 #243 Exclude unsupported packages from the repology badge (@CosmicHorrorDev)

Pre-built Releases
 (11295fb) Add ARM target (@chmln)
           Added the arm-unknown-linux-gnueabihf target to CI and releases
 #114 Adding aarch64-apple-darwin target (@yahkbar)
 #143 Fix paths to release binary in "publish" action (@skrattaren)
 #179 Build Adjustments (@yahkbar)
      striped release binaries and added the aarch64-ubuntu-linux-musl target
 #204 Adding armv7-unknown-linux-gnueabihf target (@yahkbar)
      Added the armv7-unknown-linux-gnueabihf target to the list of targets to
      build in CI and for each release
 #205 Resolving broken aarch64-apple-darwin tests (@yahkbar)
      Switched aarch64-apple-darwin to only try building the executable without
      running the tests since there seems to be no easy way to test for ARM
      Apple targets
 #206 Adding Windows builds back (@yahkbar)
      Added the x86_64-pc-windows-gnu and x86_64-windows-musl targets back to
      the list of targets to build in CI and for each release

Internal
 #118 Fix master (@SimplyDanny)
      Fixes several cross-compilation issues that effected different targets
      in CI
 #182 cargo update (@CosmicHorrorDev)
      Bumps dependencies to their latest compatible versions
 #183 Switch memmap -> memmap2 (@CosmicHorrorDev)
      Switches away from an unmaintained crate
 #184 Add editor config file matching rustfmt config (@CosmicHorrorDev)
      Adds an .editorconfig file matching the settings listed in the
      .rustfmt.toml file
 #185 Fix warnings and clippy lints (@CosmicHorrorDev)
 #188 Switch atty for is-terminal (@CosmicHorrorDev)
      Switches away from an unmaintained crate
 #189 Replace structopt with clap v4 (@CosmicHorrorDev)
      Switches away from a defacto deprecated crate
 #190 Change how all shell variants are expressed (@CosmicHorrorDev)
      Tiny tidying up PR
 #196 Move generating static assets to a cargo-xtask task (@CosmicHorrorDev)
      Moves the generation of the man page and shell completions from a build
      script to a cargo-xtask task
 #197 Add a release checklist (@CosmicHorrorDev)
 #209 Dependency updates (@yahkbar)
 #235 Update generated assets (@CosmicHorrorDev)
 #236 Tone down dependabot (@CosmicHorrorDev)
 #245 Update sd to 2021 edition (@CosmicHorrorDev)
      Updates sd to the Rust 2021 edition
 #248 Misc Cargo.toml tweaks (@CosmicHorrorDev)
      Switches to use workspace edition and dependencies where appropriate
 #249 Resolve CI warnings (@CosmicHorrorDev)
      Switched from actions-rs actions to dtolnay@rust-toolchain
      Switched from using ::set-output to $GITHUB_ENV
 #251 Update dependencies (@CosmicHorrorDev)
 A lot of sad CI tweaking:
      #252 Fix build target usage in CI (@CosmicHorrorDev)
      #253 Improve publishing CI job (@CosmicHorrorDev)
      #256 More CI tweaks (@CosmicHorrorDev)
      #257 Fix publish action (@CosmicHorrorDev)
 #267 Rework the replacements flag (@CosmicHorrorDev)
 #269 Make modified text blue instead of green (@CosmicHorrorDev)
 #271 Fix release checklist indentation (@CosmicHorrorDev)
 #272 Remove outdated release checklist step (@CosmicHorrorDev)
 #274 Prepare 1.0.0-beta.0 release (@CosmicHorrorDev)
 #275 Update sd version in lockfile (@CosmicHorrorDev)
jperkin pushed a commit that referenced this issue Dec 17, 2023
3.2.7 (2023-11-13)

* Land #255, Fix an issue with SMB2 create context padding

3.2.8 (2023-11-13)

* Land #256, Add support for callback hooks in share providers

3.3.0 (2023-12-12)

* Land #257, Close the opened directory after listing it's contents
* Land #258, Fix intermittent test failure with zero length fields

3.3.1 (2023-12-15)

* Land #259, Update and refactor Efsrpc
jperkin pushed a commit that referenced this issue Feb 7, 2024
3.0.0 / 2024-01-05

* PR #265 - Change Readline for Reline for Ruby 3.3 compat (@abinoam)
* PR #264 - Add abbrev gem as dependency (@mathieujobin)
* PR #263 - Release 3.0.0.pre.1
*     Raise minimum Ruby version requirement to 3.0
* PR #262 - Do not call stty on non-tty (@kbrock)
* PR #260 / I #43 - Ctrl-U (erase line) handling (@abinoam, issue by
  @gutenye)
* PR #259 / I #236 - Handle Ctrl-C when Question#echo = false (@abinoam,
  @Fahhetah, issue by @aspyct)
* PR #258 / I #246 - Add validation class support (@abinoam, issue by
  @Joshfindit)
    - Make it dry-types compatible through the use of #valid?
    - Solve the multiple answers in one line problem with a combination of
      custom coercion (parser) and custom validation
* PR #257 / I #233 - Show Question#default hint for non String values
  (@abinoam, issue by @branch14)
    - Add Question#default_hint_show to allow disabling it.
* PR #256 / I #249 - Fix Array validation in Question#in (@abinoam, issue by
  @esotericpig)


3.0.1 (2024-01-20)

* PR #268 - Remove unused abbrev dependency (@zvkemp)
jperkin pushed a commit that referenced this issue Mar 20, 2024
Changelog:

2.13.c.5
Highlights
New features

    New custom key commands (#256)
    Support basic control chars (\n, \r, \b, \t) in text options (#238)
    Added support for the XF86AudioMicMute media key (#273)
    Added tab completion for Bash and Zsh (#230)

Perf improvements

    Lazy-load slideshow images (#242)
    Disable debug build by default; faster blurring (#251)

Changes by PR

    fix --max and --fill not scaling image when the image has the same aspect ratio as the screen by @Rio6 in #228
    Add link to new active port by @loralighte in #233
    chore: rename variables for examples, remove unused variables by @graves501 in #229
    fix(typo): fix wrong greeter_y_expr and typo error message in arguments parser. by @cmsxbc in #237
    Tab completion (#204) by @JezerM in #230
    Slideshow images loaded when needed (#241) by @JezerM in #242
    feat(control char): add basic control char support by @cmsxbc in #238
    build: disable debug and sanitizers by default by @alanswanson in #251
    Shell command options for media keys by @jclds139 in #256
    Support for XF86AudioMicMute by @kwesthaus in #273
    Fix: Remove breaking space in zsh completion by @kwesthaus in #274
jperkin pushed a commit that referenced this issue Apr 9, 2024
Just a small bugfix/doc release while new features finish up for the v0.5 series
Fixes
 - Ignore the case when doing header name lookups (#256)
 - Fix a crash when rendering headerless table (#279)
 - Fixes an issue where 1-pixel wide selections would linger (#288)
 - Fixes a crash caused by a mismatch in client/server version support on linux+wayland (#298)

Docs
 - Exclude outdated repos from the repology badge (#271)
 - Add more instructions for building from source (#280)

Internal
 - The usual swarm of non-user-facing changes
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants