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

Packaged Python doesn't compile extensions with thread-local "errno" #207

Open
jcea opened this issue Jun 19, 2019 · 6 comments
Open

Packaged Python doesn't compile extensions with thread-local "errno" #207

jcea opened this issue Jun 19, 2019 · 6 comments
Assignees

Comments

@jcea
Copy link

jcea commented Jun 19, 2019

pkgsrc 2019Q1.

I have spend quite a few hours triaging this.

Packaged python, when installing new C-based python packages using "pip install", doesn't use "thread local" "errno". Result: erratic behavior in multithread applications. I have solved it manually adding "-D_REENTRANT" when compiling new extensions to be used in multithread python code.

The relevant code lives in "/usr/include/errno.h":

#if defined(_REENTRANT) || defined(_TS_ERRNO) || _POSIX_C_SOURCE - 0 >= 199506L
extern int *___errno();
#define errno (*(___errno()))
#else
extern int errno;
/* ANSI C++ requires that errno be a macro */
#if __cplusplus >= 199711L
#define errno errno
#endif
#endif  /* defined(_REENTRANT) || defined(_TS_ERRNO) */

Of course, the right way to do this would be via "_POSIX_C_SOURCE", most probably.

STEPS to reproduce:

  1. Create a new directory. "cd" into it.

  2. Create a file named "test.c" with this content, extracted from https://stackoverflow.com/a/52344223/322220:

#include <stdio.h>                                                                                                                                             
#include <pthread.h>                                                                                                                                           
#include <errno.h>                                                                                                                                             
#define NTHREADS 5                                                                                                                                             
void *thread_function(void *);                                                                                                                                 

int                                                                                                                                                            
main()                                                                                                                                                         
{                                                                                                                                                              
   pthread_t thread_id[NTHREADS];                                                                                                                              
   int i, j;                                                                                                                                                   

   for(i=0; i < NTHREADS; i++)                                                                                                                                 
   {
      pthread_create( &thread_id[i], NULL, thread_function, NULL );                                                                                            
   }                                                                                                                                                           

   for(j=0; j < NTHREADS; j++)                                                                                                                                 
   {                                                                                                                                                           
      pthread_join( thread_id[j], NULL);                                                                                                                       
   }                                                                                                                                                           
   return 0;                                                                                                                                                   
}                                                                                                                                                              

void *thread_function(void *dummyPtr)                                                                                                                          
{                                                                                                                                                              
   printf("Thread number %ld addr(errno):%p\n", pthread_self(), &errno);                                                                                       
}
  1. Create a file "setup.py" with this content:
from setuptools import Extension
from setuptools import setup

# Compile the module with defaults.
ext_modules = [Extension(
    name='test_default',
    sources=['test.c'],
)]

setup(
    name = 'test_default',
    ext_modules = ext_modules,
)

# Compile the same module with an explicit '-D_REENTRANT'.
ext_modules = [Extension(
    name='test_reentrant',
    sources=['test.c'],
    extra_compile_args=['-D_REENTRANT'],
)]

setup(
    name = 'test_reentrant',
    ext_modules = ext_modules,
)
  1. Create a "Makefile" with the following content. Remember that each indented line MUST start with a tab, even the empty lines:
all:
        @python3.7 setup.py build
        
        @echo
        
        @echo "We show 'errno' addresses by thread with default compilation"
        @gcc build/lib.solaris-2.11-i86pc.64bit-3.7/test_default.so
        @LD_LIBRARY_PATH=./build/lib.solaris-2.11-i86pc.64bit-3.7/ ./a.out
        
        @echo
        
        @echo "We show 'errno' addresses by thread compiling with an explicit '-D_REENTRANT'"
        @gcc build/lib.solaris-2.11-i86pc.64bit-3.7/test_reentrant.so
        @LD_LIBRARY_PATH=./build/lib.solaris-2.11-i86pc.64bit-3.7/ ./a.out
  1. Now, do "make".

  2. You will see something similar to this:

running build
running build_ext
running build
running build_ext

We show 'errno' addresses by thread with default compilation
Thread number 4 addr(errno):fffffc7fef312e98
Thread number 6 addr(errno):fffffc7fef312e98
Thread number 5 addr(errno):fffffc7fef312e98
Thread number 3 addr(errno):fffffc7fef312e98
Thread number 2 addr(errno):fffffc7fef312e98

We show 'errno' addresses by thread compiling with an explicit '-D_REENTRANT'
Thread number 2 addr(errno):fffffc7fee7b034c
Thread number 6 addr(errno):fffffc7fee7b234c
Thread number 5 addr(errno):fffffc7fee7b1b4c
Thread number 3 addr(errno):fffffc7fee7b0b4c
Thread number 4 addr(errno):fffffc7fee7b134c

Here we are showing the address of "errno" with multiple threads. You can see that using -D_REENTRANT, the addresses are different per thread, good. Nevertheless, compiling with the default python environment, "errno" address is the same for all threads.

So, my conclusion is that compilation parameter in the packaged Python are wrong and they will break extension modules with weird symptoms when running in a multithreaded python process.

This is a serious bug, probably affecting plenty of old pkgsrc releases, including LTS.

@jperkin
Copy link
Collaborator

jperkin commented Jun 19, 2019

While unfortunate, I'm not convinced this is a bug. The illumos compilation environment is set up so that users are expected to add -D_REENTRANT when targetting a multithreaded environment. To quote the standard section of text that appears in various manual pages on this:

       When compiling multithreaded applications, the _REENTRANT flag must be
       defined on the compile line.  This flag should only be used in
       multithreaded applications.

Ordinarily this is hidden behind the -pthread compiler flag that is used whenever multithreaded applications are built, for example:

$ /opt/local/gcc7/bin/gcc -dM -E - </dev/null | grep _REENTRANT
$
$ /opt/local/gcc7/bin/gcc -dM -pthread -E - </dev/null | grep _REENTRANT
#define _REENTRANT 1
$

There is nothing in your example that I can see that would allow python to determine that the program it is compiling will be multithreaded and thus needs to add -pthread to the build. Whether adding -pthread globally is still considered to be a drawback I do not know.

As for adding _POSIX_C_SOURCE by default, that comes with its own issues. The illumos headers are strict about how the POSIX standards and C standards interact, and builds fail if they do not match correctly. For example, if you attempt to use _POSIX_C_SOURCE=199506L in the default compilation environment that is now C99 the build will fail. Conversely, if you attempt to use _POSIX_C_SOURCE=200112L or newer but some part of the build specifies pre-C99 flags, the build will fail. These also interact badly with _XOPEN_SOURCE that users from other platforms sprinkle liberally all over their code to get it to compile without knowing it will cause problems on illumos.

So while it is undoubtedly frustrating, I think the only path forwards that avoids such issues and perhaps harder to diagnose problems where threads are enabled when unused is to continue adding -D_REENTRANT or compiling with -pthread when you know that the target application is going to use threads.

Note that Solaris appears to have resolved this issue in their 11.4 release, it may be that we can do something similar: https://blogs.oracle.com/solaris/mtreentrant-v2

I'll leave this issue open for a bit in case anyone from the OS side wants to provide some context or perhaps some better suggestions for a way forward.

@jperkin jperkin self-assigned this Jun 19, 2019
@jlevon
Copy link

jlevon commented Jun 19, 2019

@jperkin FYI the _POSIX_C_SOURCE pedantry was fixed last year via:

9812 headers should be free of SUS compiler tyranny

It's been a while since I was in Python land, but IIRC there is a Pyconfig.h header that gets included when compiling Python extensions. That is supposed to reflect the default compilation environment to use. Is it possible that we can define _REENTRANT (or POSIX_C_SOURCE+EXTENSIONS?) there?

(It'd be awesome to get rid of the need for it altogether, but that's an unknown amount of possibly tricky work.)

@jcea
Copy link
Author

jcea commented Jun 19, 2019

While unfortunate, I'm not convinced this is a bug. The illumos compilation environment is set up so that users are expected to add -D_REENTRANT when targetting a multithreaded environment. To quote the standard section of text that appears in various manual pages on this:

I know about "-mt", I have been fighting this kind of issues since 1996 :-).

But Python is special. I elaborate.

When you compile Python, it keep around compilation details about how to compile future external modules to be "consistent" and "compatible" with the installed python interpreter.

What we have here is a Python interpreter compiled with thread support (good!), but it doesn't know how to compile external modules correctly to be compatible with threads. It is not providing "-D_REENTRANT" or whatever is needed to enable that support.

I am not requesting to add "-pthread" or whatever by default, system wide. I am saying that provided python supports threads, but it can not install extensions supporting threads correctly. That is why I am filing this bug as "pkgsrc" and not as "illumos".

There is something missing in the way we compile python that generates a thread-compatible interpreter UNABLE to compile extensions thread-compatible.

There is nothing in your example that I can see that would allow python to determine that the program it is compiling will be multithreaded and thus needs to add -pthread to the build. Whether adding -pthread globally is still considered to be a drawback I do not know.

Our Python is thread compatible and it MUST BE ABLE to compile extensions as thread-compatible. That is the point of this bug report.

Basically, if python is compiled with thread support, it must compile&install modules as thread-safe, even if a particular python program uses no threads at all.

As for adding _POSIX_C_SOURCE by default, that comes with its own issues.

Yes, I suffer this pain frequently :).

So while it is undoubtedly frustrating, I think the only path forwards that avoids such issues and perhaps harder to diagnose problems where threads are enabled when unused is to continue adding -D_REENTRANT or compiling with -pthread when you know that the target application is going to use threads.

My point is that python takes care of this, when done correctly.

According to "/opt/local/lib/python3.7/config-3.7/Makefile", python is compiled with "--with threads" but I don't see any thread-related compilation switch in "CONFIGURE_CFLAGS" or related variables. I don't know what kind of magic is involved in pkgsrc compilation of python to provide a thread-compatible interpreter, but it is not reaching the "and now python can compile extension modules compatible with main interpreter configuration".

What kind of trick is done in pkgsrc to generate a thread-compatible interpreter. Maybe it should be replaced by a simple "a --with-threads in Solaris/derivatives must add -pthreads to the compiler flags". Such a python interpreter would be able to compile extensions with the right flags.

Note that Solaris appears to have resolved this issue in their 11.4 release, it may be that we can do something similar: https://blogs.oracle.com/solaris/mtreentrant-v2

I will check it out, thanks for the point. Nevertheless this bug is not about system wide thread safe compilation, but specific to the way we compile python.

In any case, solving this system wide would be very nice. It is a frequent compatibility bumper and if "real" Solaris have done it, we should do too :).

I'll leave this issue open for a bit in case anyone from the OS side wants to provide some context or perhaps some better suggestions for a way forward.

Please, reconsider. This is a real bug not requiring system-wide action. it "only" requires compile python in the right way :).

@jperkin
Copy link
Collaborator

jperkin commented Jun 19, 2019

To be clear I was never advocating this be done system-wide, only python-wide. If you are certain that adding -D_REENTRANT to the default python build flags will not impact any python software then I'm certainly happy to do that and it's easy enough for me to do, I just do not have the confidence that you have that it won't cause issues in ways that might be incredibly difficult to diagnose.

@jlevon we still build on older platforms so the feature tests still apply unfortunately.

@jcea
Copy link
Author

jcea commented Sep 28, 2019

Sorry for leaving this to stale. I have been quite busy.

@jperkin , there are some news about this. "lmdb" and Python will be released with fixes, but in the meantime (and for old but supported python releases), you "should" (asked respectfully) add "-D_REENTRANT" when compiling Python interpreter.

Some details:

jnwatson/py-lmdb#213
jnwatson/py-lmdb#214

python/cpython#16446
https://bugs.python.org/issue38301

@jcea
Copy link
Author

jcea commented Sep 28, 2019

I don't think -D_REENTRANT has a negative impact in other python modules, because any module doing #include "python.h" will get the symbol defined anyway. The problem is with modules not including the header in every single file or when including it "too late".

jperkin pushed a commit that referenced this issue Nov 6, 2019
SoftHSM2 is not a drop-in replacement for SoftHSM version 1, so this
is added as a separate package.  See softhsm2-migrate(1) for
migration instructions.

Upstream changes since SoftHSM version 1.x:

SoftHSM 2.5.0 - 2018-09-24

* Issue #323: Support for EDDSA with vendor defined mechanisms.
  (Patch from Francis Dupont)
* Issue #362: CMake Build System Support for SoftHSM.
  (Patch from Constantine Grantcharov)
* Issue #368: Support migrating 32-bit SoftHSMv1 DB on 64-bit system (LP64).
* Issue #385: Default is not to build EDDSA since it has not been released in
  OpenSSL.
* Issue #387: Windows: Add VS2017 detection to Configure.py.
  (Patch from Jaroslav Imrich)
* Issue #412: Replace PKCS11 headers with a version from p11-kit.
  (Patch from Alexander Bokovoy)

Bugfixes:
* Issue #366: Support cross-compilation.
  (Patch from Michael Weiser)
* Issue #377: Duplicate symbol error with custom p11test.
* Issue #386: Use RDRAND in OpenSSL if that engine is available.
* Issue #388: Update DBTests.cpp to fix x86 test failure.
  (Patch from tcely)
* Issue #393: Not setting CKA_PUBLIC_KEY_INFO correctly.
  (Patch from pkalapat)
* Issue #401: Wrong key and keyserver mentioned in installation documentation.
  (Patch from Berry A.W. van Halderen)
* Issue #408: Remove mutex callbacks after C_Finalize().
  (Patch from Alexander Bokovoy)


SoftHSM 2.4.0 - 2018-02-27

* Issue #135: Support PKCS#8 for GOST.
* Issue #140: Support for CKA_ALLOWED_MECHANISMS.
  (Patch from Brad Hess)
* Issue #141: Support CKA_ALWAYS_AUTHENTICATE for private key objects.
* Issue #220: Support for CKM_DES3_CMAC and CKM_AES_CMAC.
* Issue #226: Configuration option for Windows build to enable build with
  static CRT (/MT).
* Issue #325: Support for CKM_AES_GCM.
* Issue #334: Document that initialized tokens will be reassigned to another
  slot (based on the token serial number).
* Issue #335: Support for CKM_RSA_PKCS_PSS.
  (Patch from Nikos Mavrogiannopoulos)
* Issue #341: Import AES keys with softhsm2-util.
  (Patch from Pavel Cherezov)
* Issue #348: Document that OSX needs pkg-config to detect cppunit.
* Issue #349: softhsm2-util will check the configuration and report any
  issues before loading the PKCS#11 library.

Bugfixes:
* Issue #345: Private objects are presented to security officer in search
  results.
* Issue #358: Race condition when multiple applications are creating and
  reading object files.


SoftHSM 2.3.0 - 2017-07-03

* Issue #130: Upgraded to PKCS#11 v2.40.
  * Minor changes to some return values.
  * Added CKA_DESTROYABLE to all objects. Used by C_DestroyObject().
  * Added CKA_PUBLIC_KEY_INFO to certificates, private, and public key
    objects. Will be accepted from application, but SoftHSM will
    currently not calculate it.
* Issue #142: Support for CKM_AES_CTR.
* Issue #155: Add unit tests for SessionManager.
* Issue #189: C_DigestKey returns CKR_KEY_INDIGESTIBLE when key
  attribute CKA_EXTRACTABLE = false. Whitelist SHA algorithms to allow
  C_DigestKey in this case.
* Issue #225: Show slot id after initialization.
* Issue #247: Run AppVeyor (Windows CI) for each PR and merge.
* Issue #257: Set CKA_DECRYPT/CKA_ENCRYPT flags on key import to true.
  (Patch from Martin Domke)
* Issue #261: Add support for libeaycompat lib for FIPS on Windows.
  (Patch from Matt Hauck)
* Issue #262: Support importing ECDSA P-521 in softhsm-util.
* Issue #276: Support for Botan 2.0.
* Issue #279: Editorial changes from Mountain Lion to Sierra.
  (Patch from Mike Neumann)
* Issue #283: More detailed error messages when initializing SoftHSM.
* Issue #285: Support for LibreSSL.
  (Patch from Alon Bar-Lev)
* Issue #286: Update .gitignore.
  (Patch from Alon Bar-Lev)
* Issue #291: Change to enable builds and reports on new Jenkinks
  environment.
* Issue #293: Detect cppunit in autoconf.
  (Patch from Alon Bar-Lev)
* Issue #309: CKO_CERTIFICATE and CKO_PUBLIC_KEY now defaults to
  CKA_PRIVATE=false.
* Issue #314: Update README with information about logging.
* Issue #330: Adjust log levels for failing to enumerate object store.
  (Patch from Nikos Mavrogiannopoulos)

Bugfixes:
* Issue #216: Better handling of CRYPTO_set_locking_callback() for OpenSSL.
* Issue #265: Fix deriving shared secret with ECC.
* Issue #280: HMAC with sizes less than L bytes is strongly discouraged.
  Set a lower bound equal to L bytes in ulMinKeySize and check it when
  initializing the operation.
* Issue #281: Fix test of p11 shared library.
  (Patch from Lars Silvén)
* Issue #289: Minor fix of 'EVP_CipherFinal_ex'.
  (Patch from Viktor Tarasov)
* Issue #297: Fix build with cppunit.
  (Patch from Ludovic Rousseau)
* Issue #302: Export PKCS#11 symbols from the library.
  (Patch from Ludovic Rousseau)
* Issue #305: Zero pad key to fit the block in CKM_AES_KEY_WRAP.
* Issue #313: Detecting CppUnit when using Macports.
  (Patch from mouse07410)


SoftHSM 2.2.0 - 2016-12-05

* Issue #143: Delete a token using softhsm2-util.
* Issue #185: Change access mode bits for /var/lib/softhsm/tokens/
  to 1777. All users can now create tokens, but only access their own.
  (Patch from Rick van Rein)
* Issue #186: Reinitializing a token will now keep the token, but all
  token objects are deleted, the user PIN is removed and the token
  label is updated.
* Issue #190: Support for OpenSSL 1.1.0.
* Issue #198: Calling C_GetSlotList with NULL_PTR will make sure that
  there is always a slot with an uninitialized token available.
* Issue #199: The token serial number will be used when setting the slot
  number. The serial number is set after the token has been initialized.
  (Patch from Lars Silvén)
* Issue #203: Update the command utils to use the token label or serial
  to find the token and its slot number.
* Issue #209: Possibility to test other PKCS#11 implementations with the
  CppUnit test.
  (Patch from Lars Silvén)
* Issue #223: Mark public key as non private by default.
  (Patch from Nikos Mavrogiannopoulos)
* Issue #230: Install p11-kit module, to disable use --disable-p11-kit.
  (Patch from David Woodhouse)
* Issue #237: Add windows continuous integration build.
  (Patch from Peter Polacko)

Bugfixes:
* Issue #201: Missing new source file and test configuration in the
  Windows build project.
* Issue #205: ECDSA P-521 support for OpenSSL and better test coverage.
* Issue #207: Fix segmentation faults in loadLibrary function.
  (Patch from Jaroslav Imrich)
* Issue #215: Update the Homebrew install notes for OSX.
* Issue #218: Fix build warnings.
* Issue #235: Add the libtool install command for OSX.
  (Patch from Mark Wylde)
* Issue #236: Use GetEnvironmentVariable instead of getenv on Windows.
  (Patch from Jaroslav Imrich)
* Issue #239: Crash on module unload with OpenSSL.
  (Patch from David Woodhouse)
* Issue #241: Added EXTRALIBS to Windows utils project.
  (Patch from Peter Polacko)
* Issue #250: C++11 not detected.
* Issue #255: API changes in Botan 1.11.27.
* Issue #260: Fix include guard to check WITH_FIPS.
  (Patch from Matt Hauck)
* Issue #268: p11test fails on 32-bit systems.
* Issue #270: Build warning about "converting a string constant".
* Issue #272: Fix C++11 check to look for unique_ptr.
  (Patch from Matt Hauck)


SoftHSM 2.1.0 - 2016-03-14

* Issue #136: Improved guide and build scripts for Windows.
  (Thanks to Jaroslav Imrich)
* Issue #144: The password prompt in softhsm2-util can now be
  interrupted (ctrl-c).
* Issue #166: Add slots.removable config option.
  (Patch from Sumit Bose)
* Issue #180: Windows configure script improvements.
  (Patch from Arnaud Grandville)

Bugfixes:
* Issue #128: Prioritize the return values in C_GetAttributeValue.
  (Patch from Nicholas Wilson)
* Issue #129: Fix errors reported by Visual Studio 2015.
  (Patch from Jaroslav Imrich)
* Issue #132: Handle the CKA_CHECK_VALUE correctly for certificates
  and symmetric key objects.
* Issue #154: Fix the Windows build and destruction order of objects.
  (Patch from Arnaud Grandville)
* Issue #162: Not possible to create certificate objects containing
  CKA_CERTIFICATE_CATEGORY, CKA_NAME_HASH_ALGORITHM, or
  CKA_JAVA_MIDP_SECURITY_DOMAIN.
* Issue #163: Do not attempt decryption of empty byte strings.
  (Patch from Michal Kepien)
* Issue #165: Minor changes after a PVS-Studio code analysis, and
  C_EncryptUpdate crash if no ciphered data is produced.
  (Patch from Arnaud Grandville)
* Issue #169: One-byte buffer overflow in call to EVP_DecryptUpdate.
* Issue #171: Problem while closing library that is initialized but
  improperly finalized.
* Issue #173: Adjust return values for the template parsing.
* Issue #174: C_DeriveKey() error with leading zero bytes.
* Issue #177: CKA_NEVER_EXTRACTABLE set to CK_FALSE on objects
  created with C_CreateObject.
* Issue #182: Resolve compiler warning.
  (Patch from Josh Datko)
* Issue #184: Stop discarding the global OpenSSL libcrypto state.
  (Patch from Michal Trojnara)
* SOFTHSM-123: Fix library cleanup on BSD.


SoftHSM 2.0.0 - 2015-07-17

* SOFTHSM-121: Test cases for C_DecryptUpdate/C_DecryptFinal.
* Support C_DecryptUpdate/C_DecryptFinal for symmetric algorithms.
  (Patch from Thomas Calderon)

Bugfixes:
* SOFTHSM-120: Segfault after renaming variables.


SoftHSM 2.0.0b3 - 2015-04-17

* SOFTHSM-113: Support for Botan 1.11.15
* SOFTHSM-119: softhsm2-util: Support ECDSA key import
  (Patch from Magnus Ahltorp)
* SUPPORT-139: Support deriving generic secrets, DES, DES2, DES3, and AES.
  Using DH, ECDH or symmetric encryption.

Bugfixes:
* SOFTHSM-108: A marked as trusted certificate cannot be imported.
* SOFTHSM-109: Unused parameter and variable warnings.
* SOFTHSM-110: subdir-objects warnings from autoreconf.
* SOFTHSM-111: Include FIPS-NOTES.md in dist.
* SOFTHSM-112: CKM_AES_KEY_WRAP* conflict in pkcs11.h.
* SOFTHSM-114: Fix memory leak in a test script.
* SOFTHSM-115: Fix static analysis warnings.
* SUPPORT-154: A marked as non-modifiable object cannot be generated.
* SUPPORT-155: auto_ptr is deprecated in C++11, use unique_ptr.
* SUPPORT-157: Derived secrets were truncated after encryption and
  could thus not be decrypted.
* Mutex should call MutexFactory wrapper functions.
  (Patch from Jerry Lundstrom)
* Return detailed error message to loadLibrary().
  (Patch from Petr Spacek)


SoftHSM 2.0.0b2 - 2014-12-28

* SOFTHSM-50: OpenSSL FIPS support.
* SOFTHSM-64: Updated build script for Windows.
* SOFTHSM-100: Use --free with softhsm2-util to initialize the first
  free token.
* SOFTHSM-103: Allow runtime configuration of log level.
* SOFTHSM-107: Support for CKM_<symcipher>_CBC_PAD.
* Add support for CKM_RSA_PKCS_OAEP key un/wrapping.
  (Patch from Petr Spacek)
* Use OpenSSL EVP interface for AES key wrapping.
  (Patch from Petr Spacek)
* Allow reading configuration file from user's home directory.
  (Patch from Nikos Mavrogiannopoulos)

Bugfixes:
* SOFTHSM-102: C_DeriveKey() uses OBJECT_OP_GENERATE.
* Coverity found a number of issues.


SoftHSM 2.0.0b1 - 2014-09-10

* SOFTHSM-84: Check that all mandatory attributes are given during
  the creation process.
* SOFTHSM-92: Enable -fvisibility=hidden on per default
* SUPPORT-137: Implement C_EncryptUpdate and C_EncryptFinal
  (Patch from Martin Paljak)
* Add support for CKM_RSA_PKCS key un/wrapping
  (Patch from Petr Spacek)

Bugfixes:
* SOFTHSM-66: Attribute handling when using multiple threads
* SOFTHSM-93: Invalid C++ object recycling.
* SOFTHSM-95: umask affecting the calling application.
* SOFTHSM-97: Check if Botan has already been initialized.
* SOFTHSM-98: Handle mandatory attributes for DSA, DH, and ECDSA
  correctly.
* SOFTHSM-99: Binary encoding of GOST values.
* SUPPORT-136: softhsm2-keyconv creates files with sensitive material
  in insecure way.


SoftHSM 2.0.0a2 - 2014-03-25

* SOFTHSM-68: Display a better configure message when there is a
  version of Botan with a broken ECC/GOST/OID implementation.
* SOFTHSM-70: Improved handling of the database backend.
* SOFTHSM-71: Supporting Botan 1.11.
* SOFTHSM-76: Do not generate RSA keys smaller than 1024 bit when
  using the Botan crypto backend.
* SOFTHSM-83: Support CKA_VALUE_BITS for CKK_DH private key object.
* SOFTHSM-85: Rename libsofthsm.so to libsofthsm2.so and prefix the
  command line utilties with softhsm2-.
* SOFTHSM-89: Use constants and not strings for signaling algorithms.
* SUPPORT-129: Possible to use an empty template in C_GenerateKey.
  The class and key type are inherited from the generation mechanism.
  Some mechanisms do however require a length attribute. [SOFTHSM-88]
* SUPPORT-131: Support RSA-PSS using SHA1, SHA224, SHA256, SHA384,
  or SHA512. [SOFTHSM-87]

Bugfixes:
* SOFTHSM-39: Fix 64 bit build on sparc sun4v.
* SOFTHSM-69: GOST did not work when you disabled ECC.
* SOFTHSM-78: Correct the attribute checks for a number of objects.
* SOFTHSM-80: Prevent segfault in OpenSSL GOST HMAC code.
* SOFTHSM-91: Fix a warning from static code analysis.
* Fixed a number of memory leaks.


SoftHSM 2.0.0a1 - 2014-02-10

This is the first alpha release of SoftHSMv2. It focuses on a higher
level of security by encrypting sensitive information and using
unswappable memory. There is also a more generalized crypto backend,
where you can use Botan or OpenSSL.
jperkin pushed a commit that referenced this issue Feb 12, 2020
* Version 3.6.12 (released 2020-02-01)

** libgnutls: Introduced TLS session flag (gnutls_session_get_flags())
   to identify sessions that client request OCSP status request (#829).

** libgnutls: Added support for X448 key exchange (RFC 7748) and Ed448
   signature algorithm (RFC 8032) under TLS (#86).

** libgnutls: Added the default-priority-string option to system configuration;
   it allows overriding the compiled-in default-priority-string.

** libgnutls: Added support for GOST CNT_IMIT ciphersuite (as defined by
   draft-smyshlyaev-tls12-gost-suites-07).
   By default this ciphersuite is disabled. It can be enabled by adding
   +GOST to priority string. In the future this priority string may enable
   other GOST ciphersuites as well.  Note, that server will fail to negotiate
   GOST ciphersuites if TLS 1.3 is enabled both on a server and a client. It
   is recommended for now to disable TLS 1.3 in setups where GOST ciphersuites
   are enabled on GnuTLS-based servers.

** libgnutls: added priority shortcuts for different GOST categories like
   CIPHER-GOST-ALL, MAC-GOST-ALL, KX-GOST-ALL, SIGN-GOST-ALL, GROUP-GOST-ALL.

** libgnutls: Reject certificates with invalid time fields. That is we reject
   certificates with invalid characters in Time fields, or invalid time formatting
   To continue accepting the invalid form compile with --disable-strict-der-time
   (#207, #870).

** libgnutls: Reject certificates which contain duplicate extensions. We were
   previously printing warnings when printing such a certificate, but that is
   not always sufficient to flag such certificates as invalid. Instead we now
   refuse to import them (#887).

** libgnutls: If a CA is found in the trusted list, check in addition to
   time validity, whether the algorithms comply to the expected level prior
   to accepting it. This addresses the problem of accepting CAs which would
   have been marked as insecure otherwise (#877).

** libgnutls: The min-verification-profile from system configuration applies
   for all certificate verifications, not only under TLS. The configuration can
   be overriden using the GNUTLS_SYSTEM_PRIORITY_FILE environment variable.

** libgnutls: The stapled OCSP certificate verification adheres to the convention
   used throughout the library of setting the 'GNUTLS_CERT_INVALID' flag.

** libgnutls: On client side only send OCSP staples if they have been requested
   by the server, and on server side always advertise that we support OCSP stapling
   (#876).

** libgnutls: Introduced the gnutls_ocsp_req_const_t which is compatible
   with gnutls_ocsp_req_t but const.

** certtool: Added the --verify-profile option to set a certificate
   verification profile. Use '--verify-profile low' for certificate verification
   to apply the 'NORMAL' verification profile.

** certtool: The add_extension template option is considered even when generating
   a certificate from a certificate request.

** API and ABI modifications:
GNUTLS_SFLAGS_CLI_REQUESTED_OCSP: Added
GNUTLS_SFLAGS_SERV_REQUESTED_OCSP: Added
gnutls_ocsp_req_const_t: Added
jperkin pushed a commit that referenced this issue Mar 25, 2020
Update ruby-rbnacl to 7.1.1.


## [7.1.1] (2020-01-27)

- Test on Ruby 2.7 ([#208])
- Add project metadata to the gemspec ([#207])
- Resolve FFI deprecation warning ([#206])

## [7.1.0] (2019-09-07)

- Attached signature API ([#197], [#202])
- Fix the `generichash` state definition ([#200])

## [7.0.0] (2019-05-23)

- Drop support for Ruby 2.2 ([#194])

## [6.0.1] (2019-01-27)

- Add fallback `sodium_constants` for Argon2 ([#189])
- Support libsodium versions used by Heroku ([#186])
- Sealed boxes ([#184])
jperkin pushed a commit that referenced this issue Aug 25, 2020
v1.4.0 (2020-06-07)
-------------------

Features
^^^^^^^^
* `#197 <https://github.com/readthedocs/sphinx-autoapi/issues/197>`: Added
  ``autoapi.__version__`` and ``autoapi.__version_info__`` attributes
  for accessing version information.
* `#201 <https://github.com/readthedocs/sphinx-autoapi/issues/201>`: (Python)
  Added the ``autoapi_member_order`` option to allow the order that members
  are documentated to be configurable.
* `#203 <https://github.com/readthedocs/sphinx-autoapi/issues/203>`: (Python)
  A class without a docstring inherits one from its parent.
  A methods without a docstring inherits one from the method that it overrides.
* `#204 <https://github.com/readthedocs/sphinx-autoapi/issues/204>`: (Python)
  Added the ``imported-members`` AutoAPI option to be able to enable or disable
  documenting objects imported from the same top-level package or module
  without needing to override templates.

Bug Fixes
^^^^^^^^^
* `#198 <https://github.com/readthedocs/sphinx-autoapi/issues/198>`:
  Documentation describes the required layout for template override directories.
* `#195 <https://github.com/readthedocs/sphinx-autoapi/issues/195>`: (Python)
  Fixed incorrect formatting when ``show-inheritance-diagram``
  and ``private-members`` are turned on.
* `#193 <https://github.com/readthedocs/sphinx-autoapi/issues/193>` and
* `#208 <https://github.com/readthedocs/sphinx-autoapi/issues/208>`: (Python)
  Inheritance diagrams can follow imports to find classes to document.
* `#213 <https://github.com/readthedocs/sphinx-autoapi/issues/213>`: (Python)
  Fixed module summary never showing.

Trivial/Internal Changes
^^^^^^^^^^^^^^^^^^^^^^^^
* black shows diffs by default
* `#207 <https://github.com/readthedocs/sphinx-autoapi/issues/207>`:
  Fixed a typo in the code of the golang tutorial.
jperkin pushed a commit that referenced this issue Sep 16, 2020
Update ruby-mixlib-shellout package to 3.1.6.

3.1.6 (2020-09-10)

* Use dir instead of FILE #220 (tas50)
* Simplify things a bit with &. #221 (tas50)

3.1.4 (2020-08-13)

* Fix a few typos #217 (tas50)
* Optimize requires for non-omnibus installs #218 (tas50)

3.1.2 (2020-07-24)

* convert helper to default_paths API #216 (lamont-granquist)

3.1.1 (2020-07-18)
3.1.0 (2020-07-17)

* shellout_spec: make "current user" independent of the environment #203
  (terceiro)
* Minor doc fixes #205 (phiggins)
* extracting shell_out helper to mixlib-shellout #206 (lamont-granquist)
* Bumping minor version #207 (lamont-granquist)
* Test on Ruby 2.7 final, update chefstyle, and other CI fixes #208 (tas50)
* Bump minor for release #210 (lamont-granquist)
* Bumping minor for release again, again. #211 (lamont-granquist)
jperkin pushed a commit that referenced this issue Sep 30, 2020
Release rpyc 3.4.4
- Fix refcount leakage when unboxing from cache (#196)
- Fix TypeError when dispatching exceptions on py2 (unicode)
- Respect ``rpyc_protocol_config`` for default Service getattr (#202)
- Support unix domain sockets (#100,#208)
- Use first accessible server in ``connect_by_service`` (#220)
- Fix deadlock problem with logging (#207,#212)

Release rpyc 3.4.3
- Add missing endpoints config in ThreadPoolServer (#222)
- Fix jython support (#156,#171)
- Improve documentation (#158,#185,#189,#198 and more)
jperkin pushed a commit that referenced this issue Oct 19, 2020
0.25.9          (2019-06-18):

* Bugfix: %GITHUB%/issues/261
       Issue with iterating Python sequences
* Bugfix: %GITHUB%/issues/271
       Chose cell coordinates on "Make Cell"
* Bugfix: %GITHUB%/issues/272
       Error message if trying to run macros in unsupported languages
* Bugfix: %GITHUB%/issues/275
       "Write without context" did not have an effect with OASIS
* Bugfix: %GITHUB%/issues/276
       LayerPropertiesNodeRef was not working as documented
* Bugfix: %GITHUB%/issues/278
       Lost reference with ObjectInstPath#shape
* Bugfix: %GITHUB%/issues/281
       Width and space violations are reported now also for
       the "kissing corners" case

0.25.8          (2019-02-23):

* Bugfix: %GITHUB%/issues/234
       Issues with LayoutView#save_image_with_options
* Bugfix: %GITHUB%/issues/232
       Crash on reading .lyp files with big stipple pattern
* Bugfix: %GITHUB%/issues/228
       Bug in Region#interact and DRC's "interact" function.
* Bugfix: %GITHUB%/issues/225
       Mirrored custom stipple pattern

0.25.7          (2019-01-09):

* Bugfix: %GITHUB%/issues/200
       Safer iteration of cell instances and shapes (with
       modifications of container during iteration) - in this
       case while flattening instances
* Bugfix: %GITHUB%/issues/209
       Reader options were grayed out in stream import feature.
* Bugfix: %GITHUB%/issues/207
       Basic.TEXT PCell was rounding bias a spacing values to
       integer multiples.
* Bugfix: %GITHUB%/issues/203
       A segfault was fixed that happend on certain platforms
       when closing the application (e.g. CentOS7).
* Bugfix: (RBA/pya) Technology#load was not working
       Instead of load, the technology was saved.
jperkin pushed a commit that referenced this issue Jan 13, 2021
1.12.0 (2020-12-23)

External changes

* Various improvements to README inspired by #207 and #390 - thanks to
  @nitishr for his work on #390 (fed0eee6)

* Improve documentation related to StateMachine classes - thanks to
  @nitishr (#425 & #427)

* Fix regression in cardinality introduced in v1.10.0 (59454a8) and
  reported in #473 - thanks to @srvance for reporting and @nitishr for
  fixing (#474)

* Fix documentation for Mocha::Expectation#when - thanks to @olleolleolle
  (b4f59daa & #477)

* Remove Mocha::Mock#respond_to? from documentation - thanks to @nitishr
  (#480)

* Improvements to documentation for Expectation#yields & #multiple_yields
  - thanks to @andyw8 for reporting in #495 (1b6571c)

* Remove documentation & tests from gem to reduce its size by over 50% -
  thanks to @gabetax (#500)

* Update documentation to point to travis-ci.com instead of travis-ci.org

Internal changes

* Refactor StateMachine-related classes - thanks to @nitishr (#425 & #427)

* Remove redundant test - thanks to @nitishr (8e4f1a7c)

* Add Ruby 2.7 to Travis CI matrix - thanks to @bastelfreak (fc5ea2f2)

* Simplify Mockery - thanks to @nitishr (#449)

* Update Travis CI badge to point to main vs master branch (bd8028f8)

* Generate docs using newer version of yard (v0.9.25) (c619afac)

* Manually upgrade jquery in docs from v1.7.1 -> v1.9.0 to fix
  CVE-2017-16011 (211098a5, dd5eeedb & 1b76e4d5; also see #492)

* Remove reference to non-existent jquery source map to fix error in
  Chrome developer tools (20156555)

* Temporarily ignore Ruby v1.8.7 build failures (e5b9feef)
jperkin pushed a commit that referenced this issue Apr 8, 2021
Bug-fix and maintenance update after the previous version 0.4.3.
All users of wildmidi-0.4.x are strongly encouraged to upgrade.

What's new in 0.4.4:

    Fixed integer overflow in midi parser sample count calculation (bug #200).
    Fixed 8 bit ping pong GUS patch loaders (bug #207).
    Fixed wrong variable use in reverb code (bug #210).
    Reset block status of tty after playback (bug #211).
    Fixed broken file name handling for 'save as midi' command during playback.
    Clamp MUS volume commands (PR #226).
    CMake project improvements (bugs: #214, #216, #217, #218) - cmake version 3.1 or newer is now required.
jperkin pushed a commit that referenced this issue Aug 23, 2021
# rio 0.5.27
* Documentation fixes for CRAN.

# rio 0.5.26
* Added support for "zsav" format. (#273)

# rio 0.5.25
* Modified tests per email request from CRAN.
* Added `coerce_character` argument (default FALSE) to `factorize()`
  to enable coercing character columns to factor. (#278)

# rio 0.5.24
* Fix handling of "label" and "labels" attributes when exporting using
  haven methods (SPSS, Stata, SAS). (#268, h/t Ruben Arslan)
* Fix (a different bug?) handling factors by haven::labelled() (#271,
  Alex Bokov)
* HTML import can now handle multiple tbody elements within a single
  table, a th element in a non-header row, and empty elements in
  either the header or data. (#260, #263, #264 Bill Denney)

# rio 0.5.23
* CSVY support is now provided by `data.table::fread()` and
  `data.table::fwrite()`, providing significant performance gains.
* Added an internal `arg_reconcile()` function to streamline the task
  of removing/renaming arguments for compatibility with various
  functions (#245, Alex Bokov)

# rio 0.5.22
* Added an `export_list()` function to write a list of data frames to
  multiple files using a vector of file names or a file
  pattern. (#207, h/t Bill Denney)
* Added an `is_file_text()` function to determine whether a file is in
  a plain-text format. Optionally narrower subsets of characters can
  be specified, e.g. ASCII. (#236 Alex Bokov)

# rio 0.5.21
* Added support for Apache Arrow (Parquet) files. (#214)
* Fix dropping of variable label in `characterize()` and
  `factorize()`. (#204, h/t David Armstrong)
* `import_list()` now returns a `filename` attribute for each data
  frame in the list (when importing from multiple files), in order to
  distinguish files with the same base name but different extensions
  (e.g., `import_list(c("foo.csv", "foo.tsv"))`). (#208, h/t Vimal
  Rawat)
* Import of DBF files now does not convert strings to factors. (#202,
  h/t @jllipatz)
* Implemented `import()` method for .dump R files. (#240)

# rio 0.5.20
* Additional pointers were added to indicate how to load .doc, .docx,
  and .pdf files (#210, h/t Bill Denney)
* Ensure that tests only run if the corresponding package is
  installed.  (h/t Bill Denney)
* Escape ampersands for html and xml export (#234 Alex Bokov)

# rio 0.5.19
* Fix behavior of `export()` to plain text files when `append = TRUE`
  (#201, h/t Juli�$BC!�(Bn Urbano)
* `import_list()` now preserve names of Excel sheets, etc. when the
  'which' argument is specified. (#162, h/t Danny Parsons)
* Modify message and errors when working with unrecognized file
  formats. (#195, h/t Trevor Davis)
* Add support for GraphPad Prism .pzfx files (#205, h/t Bill Denney)

# rio 0.5.18
* Adjust `import()`/`export()` for JSON file formats to allow non-data
  frame objects. Behavior modeled after RDS format. (#199 h/t Nathan
  Day)

# rio 0.5.17
* Fix `the condition has length > 1 and only the first element will be
  used` warning in `gather_attributes()`. (#196, h/t Ruben Arslan)
jperkin pushed a commit that referenced this issue Aug 25, 2021
# shinyjs 2.0.0 (2020-08-24)

- **IMPORTANT CHANGE** Remove commercial license (it only existed
    because some big companies asked for it, but it ended up being a
    bigger headache for 99% of the community)

- **BREAKING CHANGE** When using `extendShinyjs()`, the `functions`
    parameter must always be provided.

- **BREAKING CHANGE** When using `extendShinyjs()`, the `script` path
    parameter now behaves like any other Shiny web resource, which
    means it cannot be loaded from the local file system. The path
    must be discoverable by the browser, so it either needs to be a
    public URL, inside a `www` folder, or available via
    `addResourcePath()`.

- New feature: add a `refresh()` function (#205)

- New feature: add `asis` parameter to `reset()` function, which works
  like it does in all other functions that support `asis` (#146)

- Fix bug: `extendShinyjs()` now works with any web URL or any
  resource path (#201)

- Fix bug: `reset()` didn't work when a sliderInput was initialized
  with `value=NULL` (#207)

- Remove `V8` as a package dependency.

# shinyjs 1.1 (2020-01-12)

This update was 2 years in the making because it required a lot of
testing by users to ensure none of these features cause any regression
bugs in real apps.

- **BREAKING CHANGE** The `includeShinyjs` parameter in `runcodeUI()`
    is now deprecated
- Fix bug: shinyjs functions used inside a module with a `selector`
  argument instead of an `id` argument didn't work (#175)
- Fix bug: shinyjs functions did not work with IDs that had a space in
  them (#176)
- Fix bug: non-selectize select inputs could not be disabled (#186)
- Fix bug: `click()` now works with download buttons (#198)

- New feature: added `asis` parameter to any function that takes an
  ID. When `asis=TRUE`, the ID will not be namespaced when inside a
  module (#118)

- New feature: added `id` parameter to `runcode()`, allowing it to
  work inside Shiny modules (#184)

- New feature: `onevent()` returns the `offsetX` and `offsetY` event
  properties

- New feature: `onevent()` accepts a `properties` parameter that
  allows the user to retrieve additional properties that are not
  whitelisted by default (#159)

- New feature: `hide()`/`show()` now only bubble up the DOM tree to
  the nearest input container if the current element is an input
  (#153)

- Documentation: added documentation about `useShinyjs()` side effects
  and about including `shinyjs` in packages (#182)
jperkin pushed a commit that referenced this issue Sep 21, 2021
0.1.5.00X
===================

Major changes:

- New function `add_osm_features` to enable OR-combinations of features in
  single queries.

0.1.5
===================

Minor changes:

- Bug fix in `getbb()` via #232, thanks to @changwoo-lee
- hard-code WKT string for EPSG:4326, to avoid obsolete proj4strings (#218)
- bug fix in `print` method via #236; thanks to @odeleongt

0.1.4
===================

Major changes:

- New `osm_enclosing()` function; thanks to @barryrowlingson via #199
- `opq()` now has additional `datetime` and `datetime2` parameters which can be
  used to extract historical data prior to `datetime`, or differences between
  two datetimes by specifying `datetime2`; thanks to @neogeomat for the idea in
  issue#179.
- opq() also has additional `nodes_only` parameter to return nodes as points
  only, for efficient extraction of strictly point-based OSM data; thanks to
  @gdkrmr for the idea in issue#221.

Minor changes:

- New contributor Enrico Spinielli (@espinielli), via #207, #210, #211, #212 - Thanks!
jperkin pushed a commit that referenced this issue Nov 28, 2021
0.5.8 (2021-11-10)

Added

* Added more documentation files to packaged gem, e.g. SECURITY.md,
  CODE_OF_CONDUCT.md

Fixed

* Removed reference to RUBY_VERSION from gemspec, as it depends on rake
  release, which is problematic on some ruby engines. (by @pboling)

0.5.7 (2021-11-02)

Added

* Setup Rubocop (#205, #208 by @pboling)
* Added CODE_OF_CONDUCT.md (#217, #218 by @pboling)
* Added FUNDING.yml (#217, #218 by @pboling)
* Added Client Certificate Options: :ssl_client_cert and :ssl_client_key
  (#136, #220 by @pboling)
* Handle a nested array of hashes in OAuth::Helper.normalize (#80, #221 by
  @pboling)

Changed

* Switch from TravisCI to Github Actions (#202, #207, #176 by @pboling)
* Upgrade webmock to v3.14.0 (#196 by @pboling)
* Upgrade em-http-request to v1.1.7 (#173 by @pboling)
* Upgrade mocha to v1.13.0 (#193 by @pboling)
* HISTORY renamed to CHANGELOG.md, and follows Keep a Changelog (#214, #215
  by @pboling)
* CHANGELOG, LICENSE, and README now ship with packaged gem (#214, #215 by
  @pboling)
* README.rdoc renamed to README.md (#217, #218 by @pboling)
* Require plaintext signature method by default (#135 by @confiks &
  @pboling)

Fixed

* Fixed Infinite Redirect in v0.5.5, v0.5.6 (#186, #210 by @pboling)
* Fixed NoMethodError on missing leading slash in path (#194, #211 by
  @pboling)
* Fixed NoMethodError on nil request object (#165, #212 by @pboling)
* Fixed Unsafe String Comparison (#156, #209 by @pboling and @drosseau)
* Fixed typos in Gemspec (#204, #203, #208 by @pboling)
* Copyright Notice in LICENSE - added correct years (#217, #218 by @pboling)
* Fixed request proxy Class constant reference scopes - was missing :: in
  many places (#225, #226 by @pboling)

Removed

* Remove direct development dependency on nokogiri (#299 by @pboling)
jperkin pushed a commit that referenced this issue Dec 2, 2021
Change log:

4.16.10
======
- Fix signal disconnect in thunar_window_unrealize to prevent crash
- Don't go beyond THUNAR_N_VISIBLE_COLUMNS while parsing col widths

4.16.9
======
- Listen to changes on shortcuts to update them when required
- Use move action when dragging files of different users (#196)
- Fix file-icon update when file is cut (Issue #588)
- Open correct folder on middle-click in tree-view (Issue #626)
- Disable automatic queueing of file transferes (Issue #569)
- Fix GLib-CRITICAL in list-view (Issue #487)
- thunar_file_is_executable() now checks if .desktop file is safe
- Fix missing folder in history when opened in new tab (Issue #594)
- Fixing various memory leaks (Issue #573)
- Update manpage (Issue #121)
- Dont show "execute" on context menu for folders
- Translation Updates:
  Albanian, Arabic, Armenian, Armenian (Armenia), Asturian, Basque,
  Bengali, Bulgarian, Catalan, Chinese (China), Chinese (Hong Kong),
  Chinese (Taiwan), Czech, Danish, Dutch, Eastern Armenian, English
  (Australia), English (United Kingdom), Esperanto, Estonian, Finnish,
  French, Galician, German, Greek, Hebrew, Hungarian, Icelandic,
  Indonesian, Interlingue, Italian, Japanese, Kazakh, Korean, Latvian,
  Malay, Norwegian Bokmål, Norwegian Nynorsk, Occitan (post 1500),
  Panjabi (Punjabi), Persian (Iran), Polish, Portuguese, Portuguese
  (Brazil), Romanian, Serbian, Slovak, Spanish, Swedish, Telugu, Thai,
  Turkish, Urdu, Urdu (Pakistan), Vietnamese

4.16.8
======
- Activating Desktop Icon does not Use Default Application (Issue #575)
- Translation Updates: Spanish

4.16.7
======
- Prevent crash if invalid-symlink is used as bookmark (Issue #552)
- Dont execute files, passed via command line due to security risks
- Avoid excessively checking whether files are executables (#180)
- CDDA appears twice in side pane (Issue #486)
- Critical error when opening Edit menu (Issue #542)
- Shortcuts view regression : Watch trash for changes (Issue #538)
- Translation Updates:
  Arabic, Bulgarian, Estonian, Galician, Hungarian, Italian, Norwegian
  Bokmål, Portuguese, Spanish, Swedish, Thai, Turkish

4.16.6
======
- Reload current directory before selecting new files (Issue #524)
- tree-view: Hide menu-item "properties" for unmounted devices
- Removed 'the root folder has no parent' dialog box
- Revamp documentation to modernize/uniformize accross components
- Remove watches on shortcuts (Issue #513) (Issue #47)
- Translation Updates:
  Finnish, Occitan

4.16.5
======
- Revert "Bookmarks no longer need an existing file (Issue #47)"

4.16.4
======
- Bookmarks no longer need an existing, underlying file (Issue #47)
- Regression: Select copied files after copy operation (Issue #520)
- Reintroduce alternative zoom shortcuts (Issue #514)
- Prevent hangup if a copy task that is blocked is resumed (Issue #467)
- Regression: Allow custom image files for UCA icons (Issue #517)
- Dont merge folders when creating copy with same name (Issue #491)
- Fix incorrect return value in scroll event handler (Issue #512)
- Translation Updates:
  Galician, Hebrew, Italian, Occitan

4.16.3
======
- By default show all available volumes
- Regression: Skip app info updates on sendto actions (Issue #502)
- Regression: Toggle menu visibility on F10 if menu hidden (Issue #498)
- Regression: "Shift" + "Select Trash in menu" has to trigger delete
- Dont select previous file after delete/trash (Issue #477)
- Increase min. size of "text" field in bulk renamer (Issue #474)
- Translation Updates:
  Albanian, Arabic, Armenian, 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),
  Esperanto, Estonian, Finnish, French, Galician, German, Greek,
  Hebrew, Hungarian, Icelandic, Indonesian, Interlingue, Italian,
  Japanese, Kazakh, Korean, Latvian, Malay, Norwegian Bokmål,
  Norwegian Nynorsk, Occitan (post 1500), Panjabi (Punjabi), Persian
  (Iran), Polish, Portuguese, Romanian, Serbian, Slovak, Swedish,
  Telugu, Thai, Turkish, Ukrainian, Urdu, Urdu (Pakistan), Vietnamese

4.16.2
======
- Regression: "Open with other application" missing (Issue #470)
- Always create new files and folders in current directory (Issue #462)
- Translation Updates:
  Albanian, Arabic, Armenian, 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),
  Esperanto, Estonian, Finnish, French, Galician, German, Greek,
  Hebrew, Hungarian, Icelandic, Indonesian, Interlingue, Italian,
  Japanese, Kazakh, Korean, Latvian, Lithuanian, Malay, Norwegian
  Bokmål, Norwegian Nynorsk, Occitan (post 1500), Panjabi (Punjabi),
  Persian (Iran), Polish, Portuguese, Portuguese (Brazil), Romanian,
  Russian, Serbian, Slovak, Spanish, Swedish, Telugu, Thai, Turkish,
  Ukrainian, Urdu, Urdu (Pakistan), Vietnamese

4.16.1
======
- Prevent crash on Ctrl+H when there is no sidepane (Issue #453)
- Roleback to previous spinner handling (Issue #448)

4.16.0
======
- Fix action of Back/Forward mouse gesture when using RTL (Issue #90)
- Prevent crash on mouse gesture action (Issue #443)
- Avoid crashes when closing thunar with ctrl+w (#336)
- Ignore double-click events from back/forward mouse button (Issue #371)
- Remove GLIB_CHECK_VERSION IFDEFs which are obsolete after glib bump
- bump minimum required exo version to 4.15.3
- Wrap box around spinner to prevent flickering (Issue #440)
- Use g_drive_is_removable over g_drive_is_media_removable
- bump glib (and gio, gthread, etc) to 2.50.0
- Do not duplicate app_info when added via custom command (Issue #309)
- Escape all whitespace characters in custom command path
- Remove hidden quotes for "Open with"->"custom command" (Issue #425)
- Ignore unknown XML elements in UCA.xml
- Regression: Fix broken bulk renamer context menu (Issue #436)
- Revert of b12247c2 and proper fix for Issue #423
- Remove duplicated code in renamer and prevent possible leak
- Prevent possible crash of thunar_launcher_poke (Issue #436)
- Fix combo box entry order (Issue #435)
- Remove TODO file
- Change focus when clicking an emblem entry (Issue #315)
- Bump GLib minimum version to 2.44
- Prevent Gtk-CRITICAL when terminating session (Issue #430)
- Missing thunarx support on the shortcut view (Issue #423)
- Translation Updates:
  Basque, Chinese (China), Czech, Danish, Estonian, Korean, Norwegian
  Nynorsk, Turkish, Vietnamese

4.15.3
======
- No special treatment on "rename" for .desktop files (Issue #56)
- Show full filename/extention for .desktop files (Issue #56)
- Focus view when location selector is closed (Issue #420)
- Thunar shows wrong content after outside operations (Issue #355)
- Regression: Restore file menu section arrangement
- Use same README.md structure than other xfce projects
- Fall back to fast content type if regular is unavilable in file
  attributes (!36)
- Fix Regressions around menu bar spinner (Issue #394)
- Fix error for custom date format in details view (issue #389)
- Add support for transparency in gtk-themes (!31)
- Regression: Apply accel keys only to current tab (Issue #386)
- Translation Updates:
  Albanian, Arabic, Armenian, Armenian (Armenia), Basque, Bengali,
  Catalan, Chinese (Hong Kong), Czech, Danish, Dutch, Eastern Armenian,
  English (Australia), English (United Kingdom), Esperanto, Estonian,
  Finnish, French, Greek, Hebrew, Hungarian, Icelandic, Indonesian,
  Interlingue, Kazakh, Korean, Latvian, Malay, Norwegian Bokmål,
  Norwegian Nynorsk, Occitan (post 1500), Panjabi (Punjabi), Persian
  (Iran), Polish, Portuguese, Portuguese (Brazil), Romanian, Serbian,
  Slovak, Spanish, Swedish, Telugu, Thai, Turkish, Ukrainian, Urdu, Urdu
  (Pakistan), Uyghur, Vietnamese,

4.15.2
======
- Regression: Dont crash when starting thunar with gvfs disabled
- Move mount/unmount/eject actions into launcher (Issue #349)
- Use thunar-menu and launcher in tree-view (Issue# 349)
- Use the new icon when running with elevated privileges (root)
- Remove limit on paths to check in thunar_file_accepts_drop (Issue #350)
- AC_CONFIG_MACRO_DIR → AC_CONFIG_MACRO_DIRS (MR !27)
- Avoid crashes when using details view (Issue #307)
- Fix unavailable rubber banding in detailed view (Issue #326)
- Remove obsolete dispose method to prevent warning (Issue #319)
- Show device indentifier in side pane tooltip (Issue #207)
- Make use of shared field codes expansion of libxfce4util (MR !23)
- Implement directory specific sort-column and sort-order (Issue #8)
- Add an option to delete saved directory specific settings (Issue #8)
- Implements directory specific view type (Issue #8)
- Add features to support directory specific view settings (Issue #8)
- Regression: Add missing seperator to icon view submenu
- Replace _thunar_assert() with _thunar_return_if_fail() in order to
  prevent crash when build with debug on FreeBSD (MR !22)
- Menu items cut/copy/paste do not work for location entry (Issue #303)
- Translation Updates:
  Albanian, Bulgarian, Catalan, Chinese (China), Chinese (Taiwan), Czech,
  Danish, Dutch, French, Galician, German, Hebrew, Italian, Japanese,
  Kazakh, Korean, Norwegian Bokmål, Portuguese, Portuguese (Brazil),
  Spanish, Swedish, Turkish,

4.15.1
======
- Shorten strings for different views (Issue #247)
- Segfault when file is created while files are selected (Issue #339)
- Thunar hangs when closing windows using CTRL+W (Issue #336)
- Regression: Missing accelerators for bookmark items (Issue #331)
- Fixed SEGV when the side pane is hidden (Issue #335)
- Regression: Window menu not updated properly (Issue #320)
- Support queued copy (configurable) (Issue #294)
- Regression: "Create Archive..." doesn't show (Fixes #329)
- Translation Updates:
  Albanian, Bulgarian, Catalan, Chinese (China), Chinese (Taiwan),
  Danish, Dutch, Esperanto, Estonian, French, Galician, Hebrew, Italian,
  Kazakh, Norwegian Bokmål, Portuguese, Portuguese (Brazil), Spanish,
  Turkish,

4.15.0
======
- Fix unavailable rubber banding in detailed view (Issue #326)
- Context menu entries in Thunar flutter while downloading (Issue #276)
- Improve cusor handling after file deletion in thunar (Issue #69)
- Fix regression: Trying to open a .desktop file from the context menu
  leads to the execution of the file (Issue #325)
- Use numbering on label "open new window/tab" only for multiple windows/tabs
  (MR #15)
- Remove "Sort by" and "View as" from menu item labels (Issue #247)
- Add new app icon and switch to rDNS icon name (MR #11)
- Replace deprecated GtkActionEntry with XfceGtkActionEntry (Issue #293)
- Menus are now updated when selection changes not only when opened (Issue #293)
- Merge all file-context-menus into one (Issue #198)
- Ghost file ocasionally remains when dropping file into directory (Fixes #312)
- Use XfceFilenameInput to validate long filenames (Bug #13720)
- Support for variables like $HOME in address bar (Bug #12165)
- Fix eject button click detection when using RTL languages (Bug #11387)
- Remove upper case from group names in shortcuts view
- Option to rename a file when existing copy conflicts (Bug #16686)
- Remove suffix "- FileManager" from window title
- Move from exo-csource to xdt-csource (Bug #16717)
- Pause button on copy/move (Bug #16685)
- Allow drag-and-drop of multiple files in icon view (Bug #2487)
- Add keywords to .desktop files to thunar (Bug #16618)
- Reduce vertical space in Templates info popup
- Hide android phone from network group (Bug #11584)
- Reduce size of Templates info popup
- Do not add "cant-write" emblem to files in the Trash
- Hide Browse Network entry in shortcuts view if not supported
- Move 'network' to the bottom of tree view (Bug #16516)
- Add examples to "Select by Pattern" dialog (Bug #16587)
- Improve tooltips in shortcuts view (Bug #16566)
- Rename "Disconnect" context menu entry in side pane (Bug #16558)
- Make path entry matching case-insensitive (Bug #12747)
- Add new bookmarks to bottom of list in shortcuts view (Bug #16526)
- Move places above devices in shortcuts view (Bug #11586)
- Add desktop actions for home, computer and trash (Bug #16497)
- Option to use static icon instead of folder icon (Bug #16501)
- Remove top level desktop entry from tree view (Bug #16474)
- Easy access to computer:/// (Bug #16472)
- Use libxfce4ui close-multiple-tab dialog (Bug #16254)
- Replace deprecated G_FILE_MONITOR_EVENT_MOVED (Bug #16328)
- Use symbolic icon for eject (Bug #16281)
- Prevent ghost files after "move" on remote locations (Bug #15704)
- Add a confirmation dialog when closing a window with multiple open tabs.
- Improve explanation string for "invert selection" action (Bug #15625)
- Improve layout of Permissions tab (Bug #15557)
- Remove superfluous shell script "ThunarBulkRename" (Bug #15373)
- Make labels in permissions chooser wrap
- Add a small delay when dismissing notifications (Bug #14552)
- File / Folder size text in statusbar sometimes is ambiguous (Bug #14203)
- Add missing parameter to ThunarBrowserPokeDeviceFunc function
- Add property to enable/disable frames on thumbnails (Bug #14433)
- Improved spacing between widgets in Properties and Preferences dialogs
- Fixed numerous compiler warnings
- Fixed numerous warning and critical messages
- Translation Updates:
  Albanian, Amharic, Arabic, Armenian, 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),
  Esperanto, Estonian, Finnish, French, Galician, German, Greek, Hebrew,
  Hungarian, Icelandic, Indonesian, Interlingue, Italian, Japanese,
  Kazakh, Korean, Latvian, Lithuanian, Malay, Norwegian Bokmål,
  Norwegian Nynorsk, Occitan (post 1500), Panjabi (Punjabi), Persian
  (Iran), Polish, Portuguese, Portuguese (Brazil), Romanian, Russian,
  Serbian, Slovak, Slovenian, Spanish, Swedish, Telugu, Thai, Turkish,
  Uighur, Ukrainian, Urdu, Urdu (Pakistan), Vietnamese
jperkin pushed a commit that referenced this issue Jun 18, 2022
Changelog:
6 May 2022: Wouter
	- Merge #209: IXFR out
	  This adds IXFR out functionality to NSD. NSD can copy IXFRs from
	  upstream to downstream clients, or create IXFRs from zonefiles.
	  The options store-ixfr: yes and create-ixfr: yes can be used to
	  turn this on. Default is turned off. The options ixfr-number and
	  ixfr-size can be used to tune the number of IXFR transfers and
	  total data size stored. This is configured per zone, the IXFRs
	  are served to the hosts that are allowed to perform zone transfers.
	  And if TSIG is configured, signed with the same key. The content
	  is stored to file if a zonefile is configured for the zone, in
	  the zonefile.ixfr and zonefile.ixfr.2, .. files. They contain
	  readable text format. The number of IXFRs is num.rixfr in
	  statistics output, also per zone if per zone statistics are enabled.
	  If offline, nsd-checkzone -i can create ixfr files.
	  NSD already supports requesting IXFRs, this addition allows NSD
	  to serve IXFR transfers to clients.
	  NSD stops responding with NOTIMPL to IXFR requests, also for zones
	  that do not have IXFR enabled. The clients gets a full zone reply
	  or a status reply if the serial is up to date.
	- set version to 4.5.0 for feature change.
	- Tag for 4.5.0rc1 release. It became the 4.5.0 release on 13 May 2022.

14 April 2022: Wouter
	- Update cirrus script FreeBSD version.

25 March 2022: Wouter
	- Fix spelling error in comment in svcbparam_lookup_key.

2 March 2022: Wouter
	- Fix code analyzer zero divide warning.
	- Fix code analyzer large value with assertion.
	- Fix another code analyzer zero divide warning.
	- Fix code analyzer warning about uninitialized temp storage in loop.

10 February 2022: Wouter
	- Tag for 4.4.0rc1 release. This became 4.4.0 release on 17 Feb 2022,
	  the code repository continues with version 4.4.1.

9 February 2022: Wouter
	- Fix unit tests for nds-control-setup exit code and the
	  xfrd-tcp-max default.

7 February 2022: Wouter
	- Merge #207 Sync nsd-control-setup with unbound-control-setup to
	  generate certificates with SANs.

28 January 2022: Wouter
	- Fix #206: build with --without-ssl fails.

27 January 2022: Wouter
	- current code branch continues as version 4.4.0, because of added
	  feature.

26 January 2022: Wouter
	- Merge #193: Lower memory usage of the XFRD process by default.
	  Instead of preallocating all elements, they are allocated when used.
	  There are options for managing the memory usage, defaults are the
	  same as before. xfrd-tcp-max sets the number of sockets for tcp
	  connections that xfrd can make to download zone contents. And
	  xfrd-tcp-pipeline the number of simultaneous transfers over the
	  same connection.

12 January 2022: Wouter
	- Fix to document nsd-checkzone -p in the man page for nsd-checkzone.

7 January 2022: Wouter
	- Fix to change file mode before changing file owner for the
	  nsd-control unix socket file.

3 January 2022: Wouter
	- Merge #204 from jonathangray: correct some spelling mistakes.

15 December 2021: Wouter
	- Fix #200: nsd-checkzone succeeds even with incorrect serial in SOA
	  record.

2 December 2021: Wouter
	- Fix socket_partitioning unit test for FreeBSD.
	- Fix SVCB test to work around older dig with drill.
	- Fix unit test to not syslog setlogin failures.
jperkin pushed a commit that referenced this issue Jul 4, 2022
This release is the first release of chardet that no longer
supports Python < 3.6.

In addition to that change, it features the following user-facing
changes:

    Added a prober for Johab Korean (#207, @grizlupo)
    Added a prober for UTF-16/32 BE/LE (#109, #206, @jpz)
    Added test data for Croatian, Czech, Hungarian, Polish, Slovak,
    Slovene, Greek, and Turkish, which should help prevent future
    errors with those languages
    Improved XML tag filtering, which should improve accuracy for
    XML files (#208)
    Tweaked SingleByteCharSetProber confidence to match latest
    uchardet (#209)
    Made detect_all return child prober confidences (#210)
    Updated examples in docs (#223, @domdfcoding)
    Documentation fixes (#212, #224, #225, #226, #220, #221, #244
    from too many to mention)
    Minor performance improvements (#252, @deedy5)
    Add support for Python 3.10 when testing (#232, @jdufresne)
    Lots of little development cycle improvements, mostly thanks
    to @jdufresne
jperkin pushed a commit that referenced this issue Dec 3, 2022
1.53      2022-10-08 12:26:55-07:00 America/Los_Angeles
	* dist.ini - changed bugtracker.web to
	  https://github.com/finance-quote/finance-quote/issues
	* DWS.pm - Set $info{$symbol, 'symbol'} to $symbol.
	* Union.pm - #231 - reworked for a different CSV file.
        * CurrencyRates/AlphaVantage.pm - API CURRENCY_EXCHANGE_RATE
          no longer accepts free API keys. Changed to use FX_DAILY API.
          Issue #229 PR #230
        * Set minimum version for LWP::UserAgent in dist.ini to
          honor redirects.
        * CurrencyRates/AlphaVantage.pm - Added logic to account
          for empty JSON returned from currency exchange fetch.
        * Bourso.pm - Added Europe and France back as failover
          methods. These were removed some time ago in commit e26484b.
        * Tradeville.pm - Changed hostname in URL to tradeville.ro.
          Added logic to better account for the symbol not being
          found.
        * YahooJSON.pm - #202 - Account for symbols with '&'.
        * Minor change to isoTime function in Quote.pm.
        * Updated TSP.pm - PR #227 - update URL and handling of dates.

1.52      2022-07-03 15:15:38-07:00 America/Los_Angeles
        * Quote.pm - Fixed logic for FQ_LOAD_QUOTELET starting with "-defaults"
          reported in issue #197. PR #199.
        * AlphaVantage currency module: Don't recurse infinitely when exchange
          rate is less than .001 (PR 193)
        * Bourso.pm - Fixed data bug reported in issue #174 with PR #194.
        * TSP.pm - Minor fix for URL used to retrieve data. PR #195.
          Note: URL was changed after the PR was merged.
          Module remains in a non-working status.
        * TesouroDireto.pm - New module for Brazilian's National Treasury
          public bounds. PR #198.
        * Bloomberg.pm - Update Bloomberg class names #205. Correct html
          parsing errors.
        * MorningstarCH.pm - Re-enabled and fixed in #207.
        * ZA.pm - Change to return price from sharenet in major denomination.
          PR #208.
        * Changes to SourceForge project website HTML files.
        * Add [Prereqs] to dist.ini. #215

1.51      2021-07-04 14:41:59-07:00 America/Los_Angeles
        * Fix bugs in t/fq-object-methods.t
        * Add code to hide warning in t/currency_lookup.t

1.50      2021-06-26 20:52:16-07:00 America/Los_Angeles
        * New modules: CurrencyRates
        * Updated modules: ASX, TIAA-CREF, Fool, Currencies
        * Corrected some POD issues (thanks to the Debian Perl Group)
jperkin pushed a commit that referenced this issue Mar 12, 2023
# rgl 1.0.1

## Major changes

* The long promised deprecations of the `rgl.*` functions
have happened.  Now deprecated: `rgl.abclines`,
`rgl.bbox`, `rgl.bg`, `rgl.clear`, `rgl.clipplanes`,
`rgl.close`, `rgl.light`, `rgl.lines`,
`rgl.linestrips`, `rgl.material`,  `rgl.open`,
`rgl.planes`, `rgl.points`, `rgl.quads`,
`rgl.select3d`, `rgl.set`, `rgl.setAxisCallback`,
`rgl.sprites`, `rgl.surface`, `rgl.texts`,
`rgl.triangles`, and `rgl.viewpoint`.
* A vignette "Deprecating the `rgl.*` interface"
has been added.
* Also deprecated: `elementId2Prefix`, `writeWebGL`

## Minor changes

* Since `rgl.material` is deprecated and no
longer contains the list of material types in its
argument list, `rgl.material.names` and `rgl.material.readonly` have been
added.
* Similarly, `rgl.par3d.names` and `rgl.par3d.readonly`
contain lists of properties that may be set or queried
in `par3d()`.
* The flexibility improvements for `surface3d()` in
0.111.6 were incomplete.
* Argument `flip` has been added to `surface3d()` to allow
front and back to be switched.

# rgl 0.111.6

## Minor changes

* Added a panning example to the help page for `setUserCallbacks()`.
* Replaced all calls to `sprintf` from C/C++ code with calls to
`snprintf`.
* `surface3d` and `rgl.surface` are now more flexible,
allowing any of the 3 coordinates to be a vector or matrix
as long as at least one is a matrix.
* `material3d` can now specify an `id` to query properties
for individual objects.
* Since `rgl.material` is soon to be deprecated and no
longer contain the list of material types in its
argument list, `rgl.material.names` and `rgl.material.readonly` have been
added.
* Similarly, `rgl.par3d.names` and `rgl.par3d.readonly`
contain lists of properties that may be set or queried
in `par3d()`.
* Made some examples conditional on interactive use
to save time on CRAN.

## Bug fixes

* Default mouse modes used when a window is opened by an `rgl.*`
call (which is not recommended!) now match
the defaults in `rgl::r3dDefaults`.
* Missing values could cause `surface3d()` to segfault.
* The C source code for `gl2psGetFileFormat` missed declaring
a prototype.

# rgl 0.110.2

## Major changes

* Material property `"blend"` has been added, to allow
various kinds of blending for semi-transparent objects
(issue #245).

## Minor changes

* The `Buffer` object now handles reading of sparse
accessors.
* Low level drawing of primitives has been made more
memory efficient.  This is only likely to make a
noticeable change with very large objects, where R
was running out of memory because of unnecessary
duplication. (Related to issue #260.)
* Recycling of x, y and z vectors in several functions
is more consistent.
* The `polygon3d()` function now chooses coordinates
automatically, as `triangulate()` does (PR #262.)
* The `mtext3d()` and related functions such as
`title3d()` now accept language objects
other than expressions, as `plotmath3d()` always has
(issue #273).

## Bug fixes

* The bounding box could be calculated incorrectly
if data all had large values (issue #250).
* Shiny displays failed to load the shaders (issue #249).
* `transform3d()` failed due to missing argument (issue #253).
* `readOBJ()` is now more flexible in what kinds of
separators it will accept. (issue #258).
* Failure to initialize could cause a segfault.
* On non-macOS platforms, gray-scale textures failed
to display, with a message about an invalid enumerant.
* The third coordinate for `adj` that was added in 0.108.3
was not rendered properly in `rglwidget()` displays of
text.  This sometimes caused text to disappear when it
was near the far limit of the display (issue #269).
* The X11 error fix in 0.109.6 could result in R
freezing in `Rcmdr`.
* Low level drawing functions are now more consistent
about returning an invisible `NULL` if asked to plot zero
items, rather than raising an error or crashing (issue #274).
* Calling `axis3d()` with no ticks or labels no longer triggers
an error, it now silently returns `NULL`.

# rgl  0.109.6

## Minor changes

* `rglwidget()` displays now act on "pointer" events,
not just "mouse" events, so they should be more usable
on touch screens and tablets (PR #240).

## Bug fixes

* Plotting `scene3d()` objects didn't handle suppressed
axes properly, drawing the default axis instead (issue
#241).
* On some systems using X11, `rgl` would segfault when
the "fixed" font was not found.
* X11 errors could cause R to abort.

# rgl  0.109.2

## Major changes

* Changes to support glTF animation:
  - Handling of `embedding = "modify"` for the model matrix
    has changed.  Now the centering step is only done for
    `embedding = "replace"`.  In addition, various bugs
    have been fixed.
  - If a subscene has no lights defined, the lights from the parent
    are used.
  - `plot.rglscene()` now ends with the root subscene as
    current.  It also allows specification of `open3d()`
    parameters in a list.
  - The `MATn` types in `Buffer` are returned as arrays with
    dim `c(n, n, count)`.
  - The `plot3d.rglscene` method now passes `...` to `open3d()`.
  - The `setUserShaders()` function now allows arrays of 4x4 matrices as "uniforms", and allows additional textures to be specified.
* `sprites3d()` now has the option of
`rotating = TRUE`, to allow 3D sprites to rotate with
the scene.
* Added `getShaders()` function to get shaders used in WebGL.
* Now detects if `rgl` is running within `reprex::reprex()`
and if so arranges that a screenshot will be included in the
output.
* Added default shaders to be used in `rglwidget()`, rather than
constructing them on the fly.  This incompatibly affects the use
of lights and clipping planes with user shaders:  their data
is now stored in arrays rather than multiple numbered variables.

## Minor changes

* Now that `pkgdown` 2.0.0 has been released, a number
of internal workarounds to support the development version
have been removed.
* Added `as.mesh3d()` methods for `"rglsubscene"` and `"rglscene"`.
* `open3d()` now handles `useNULL` and `silent` arguments
passed in `params`.
* Controls passed to `playwidget()` may now include a
component specifying HTML dependencies.
* Added `rglwidgetClass.readAccessor()` method to let other
code use the buffering.
* Changed the internal organization of bounding box calculations.
* All functions that produce meshes now accept
material properties.  Newly modified to do so using the `...`
argument:  `cylinder3d()`, and `getBoundary3d()`.
* Updated the system requirements and installation instructions.
* Solid bounding box decorations now try harder to display 3 faces (issue #206).
* Now that `webshot2` is on CRAN, instructions for
installing it from Github have been removed.
* Sometimes `webshot2` snapshots are very slow, so
the default for the `webshot` argument to `snapshot3d()`
now depends on the `RGL_USE_WEBSHOT` environment
variable, using `TRUE` if it is unset. (Reported by Prof. B. D. Ripley.)
* If the Chrome browser is not found, `snapshot3d(webshot = TRUE)` now issues a warning and
reverts to using `rgl.snapshot()`.
* Buffers now use "normalized integers" to store
color or texture coordinate values that lie between 0
and 1 when it saves some space.
* At the request of CRAN, the `akima` package is no
longer suggested.

## Bug fixes

* `as.mesh3d.rglobject()` didn't handle objects with indices
properly.
* In WebGL, the front vs back calculation sometimes
got the wrong result (issue #164).
* `pop3d(tag = x)` did not always find the objects with `tag == x` if they were not in the current subscene.
* The default values for `front` and `back` in `rgl.material`
and `material3d` are now `"filled"`, as documented in some
places.
* The `fog` setting wasn't handled properly by `bg3d()`.
* Numerous cases of partial argument matching were fixed
(suggestion of Henrik Bengtsson in issue #170.)
* Argument `col` is accepted as a synonym for `color` in `material3d()` and `rgl.material()`.
* `planes3d()` objects were not displayed consistently
in `rgl` windows and WebGL displays, because the bounding
boxes were not computed consistently (issue #169).
* Some initialization wasn't done properly in Shiny apps,
so they failed after a redraw (issue #173).
* Buffers are now optional, as they don't work with
Shiny scene changes (also issue #173).
* The NULL device would sometimes miscalculate the
bounding box.
* `selectpoints3d(closest = TRUE)` selected too many points
when multiple objects were in the scene.
* Clearing nested subscenes could cause a segfault and crash.
* In `knitr` and `rmarkdown`, blank plots could be shown
when `par3d(skipRedraw=TRUE)` was set (issue #188).
* Objects drawn with `sprites3d()` weren't lit correctly
in WebGL (issue #189).
* Objects with textures were sometimes drawn more than once, both
before the texture loaded and after.  This was most noticeable for
objects with user textures.
* Axis mode `"pretty"` got lost when scenes were redrawn.
* Tick labels were sometimes lost in WebGL displays and
`snapshot3d()` results (issue #197).
* The new material properties from 0.107.10 and 0.108.3
were not handled properly by `plotmath3d()`.
* `rglMouse()` did not set the default value of the drop-down
selector properly (issue #213).
* `merge.mesh3d()`, used by `filledContour3d()`, didn't handle
colors properly (issue #212).
* `bg3d(sphere = TRUE)` has been fixed (issue #207).
* Textures were not appearing on spheres, and front-back
differences weren't being rendered (issue #217).
* When "knitting" within RStudio under R 4.2.0 on
Windows, `rgl` scenes didn't appear (reported by
Dieter Menne.) A workaround has been added.
* In `rglwidget()`, axis labels were not always
displayed, and did not move with solid bounding box
decorations properly (issue #206).
* On some systems, `lines3d()` using both missing values
and transparency did not draw properly (issue #234,
originally reported by Gaspar Jekely).
* The `rglShared()` example failed when `crosstalk`
was uninstalled.


# rgl  0.108.3.2

## Bug fixes

* Changes introduced in 0.100.50 lacked checks; these caused
segfaults in Windows with R 4.2.0 and RStudio (issue #208).
* A typo caused problems loading fonts on some systems.

# rgl  0.108.3

## Major changes

* Added `getBoundary3d()` function to extract the boundary
edges of a mesh.
* Added material property `tag`, a string associated
with each object.  The value is reported by `ids3d(tags = TRUE)` and
may be used to select objects in most functions that use ids,
but otherwise is
largely ignored by `rgl`.  The `tagged3d()` function returns
information on tags.
* Primitive types (points, lines, segments, triangles, quads)
can now accept an `indices` parameter, similar to the
indices in `mesh3d` objects.
* Added `Buffer` object, based on glTF design, for holding binary
data for `rglwidget()`.

## Minor changes

* Allowed for a third coordinate in `text3d()`'s `adj`
parameter.
* Added support for `adj`, `pos` and `offset` to
`sprites3d()`.
* Added support for `pos` values of `0` (at specified
location), `5` (in front of it), and `6` (behind it) in
`text3d()`, `sprites3d()` and `plotmath3d()`.
* `crosstalk` is now a Suggested package, rather than
a required one.
* The `Makevars.ucrt` file has been modified with
contributions from Tomas Kalibera to work with his `winutf8`
build of R.
* `bgplot3d()` no longer pauses for each page when running
examples.
* `deldir` version 1.0-2 is incompatible with `rgl`.  Added
the `checkDeldir()` function to avoid running it.
* `shade3d()` treated texture coordinates like colors, and
  duplicated the first one for the whole face when `meshColor = "faces"` was chosen.
  Instead, they are now treated like vertex coordinates.
  (Reported by Michael Sumner in issue #145).
* Corrected the documentation and made the implementations
of `asHomogeneous()`, `asEuclidean()` etc. more consistent.
* An `as.rglscene()` generic has been added, though no methods
are defined in this package.
* `downlit` 0.4.0 has been released with support for `rgl`, so instructions
for installing the devel version have been removed.

## Bug fixes

* Fixed rendering of text as sprites3d() objects.
* Added `--static` flag to configure script for FreeType
  installation.  (Suggestion of Simon Urbanek and Prof. Brian Ripley.)
* `shade3d()`, `wire3d()` and `dots3d()` overrode
  `"front"` and `"back"` material settings in mesh objects.
* `rglwidget()` handling of bounding box decorations had
  several bugs.
* `rgl` could not find routines in the DLL on some Windows
installs (Issue 148.)
* Some cases where allocations were not protected have been fixed.
jperkin added a commit that referenced this issue Jul 10, 2023
Also fix issue with newer msgfmt unable to use /dev/null as an output file.

Version 4.0.1 (2023-06-30)

core: force key "return" to command "/input return" when migrating legacy keys
core: display actual key name and command with key Alt+k, remove key Alt+K
      (grab raw key) and associated commands /input grab_raw_key and /input
      grab_raw_key_command
core: check for newline characters in string_is_whitespace_char (issue #1968)
api: do not convert option name to lower case in API functions
     config_set_plugin and config_set_desc_plugin
guile: fix crash on quit with Guile < 3 (issue #1965)
irc: reply to a CTCP request sent to self nick (issue #1966)
irc: sent "QUIT" message to servers connected with TLS on /upgrade

Version 4.0.0 (2023-06-24)

New features

core: use human readable key bindings, separate keys with comma in combos,
      remove modifier "meta2-", add option legacy in command /key (issue #1238,
      task #10317)
core: make keys normal options, so they are shown and can be updated with /set
      and /fset commands (task #12427, task #11783)
core: add key Alt+K (upper case) to grab raw key and its command (issue #1238)
core: add option key in command /debug (issue #1238)
core: force ctrl keys to lower case when they are added (issue #1875)
core: use 256 colors by default and always allow 256 colors, find nearest color
      if less colors are available in terminal (issue #1920)
core: insert multiple pasted lines in input instead of sending immediately, add
      keys to move and delete in a single line and whole input, add option
      weechat.look.input_multiline_lead_linebreak (issue #1502, issue #1503,
      issue #1504)
core: render newline characters in chat line messages (issue #1908)
core: don’t split on newline characters in printf_date_tags when
      input_multiline is set (issue #1909)
core: add key @l in cursor mode to quote line, add variable
      "_chat_focused_line" in function hashtable sent to hook_focus callback
      (issue #1913, issue #1914)
core: add option split_return in command /input (issue #1916)
core: send all command line parameters not beginning with a dash to all plugins
core: add command /reset to reset options to their default values
core: add option rename in command /bar
core: add relative move of read marker with /buffer set unread [+/-]N (issue
      #1895)
core: add access to hashtable properties in evaluation of expressions (issue
      #1888)
core: display similar command names when a command is unknown (issue #1877)
core: rename option weechat.color.status_name_ssl to
      weechat.color.status_name_tls
core: add option weechat.color.status_name_insecure to display buffer name with
      a specific color when not connected with TLS to the server
core, plugins: make many identifiers case sensitive (issue #1872, issue #398,
      bug #32213)
core: add item "mouse_status" in default status bar, change default color to
      lightgreen
core, trigger: add options weechat.color.chat_status_disabled and
      weechat.color.chat_status_enabled, remove options trigger.color.trigger
      and trigger.color.trigger_disabled, add enabled/disabled status color in
      output of /filter list (issue #1820)
core: add completions "filters_names_disabled" and "filters_names_enabled",
      used in completion of /filter disable and /filter enable
api: add function config_set_version (issue #1238)
api: don’t split on newline by default in functions command and command_options
     when input_multiline is set to 0
api: add optional argument with version in info "version_number"
api: add info "auto_load_scripts"
alias: use lower case for default aliases, rename all aliases to lower case on
       upgrade (issue #1872)
alias: add $& to replace all arguments with double quotes escaped (issue #1140,
       issue #1190)
alias: add options missing and rename in command /alias
fifo: add support of escaped chars in text or commands sent (issue #1950)
fset: add options fset.color.color_name and fset.color.color_name_selected
      (issue #1920)
irc: rename "ssl" options to "tls", connect with TLS and port 6697 by default
irc: add support of capabilities "batch" and "draft/multiline" (issue #1292,
     issue #1923)
irc: add support of capability "echo-message" (issue #139)
irc: display CTCP ACTION to channel on the channel buffer (issue #207)
irc: display STATUSMSG actions differently from standard actions on channels
     (issue #1577)
irc: add modifier "irc_cap_sync_req" (issue #1767)
irc: add support of "LINELEN" in message 005 (max message length in bytes)
     (issue #1927)
irc: add support of "UTF8ONLY" in message 005 (issue #1688)
irc: add command /action (issue #201, issue #1577)
irc: add command /rules (issue #1864)
irc: add command /knock (issue #7)
irc: add server option "registered_mode", add fields "authentication_method"
     and "sasl_mechanism_used" in server (issue #1625)
irc: add option join in command /autojoin
irc: use key when /joining in open channel buffer (issue #1260)
irc: add option buffer in command /autojoin sort (issue #1876)
irc: add ${username} in server options "nicks" and "username", change their
     default values to use it
irc: add infos "irc_server_cap" and "irc_server_cap_value"
irc: add option irc.look.display_host_notice
irc: add tag "new_host_xxx" in message displayed for command CHGHOST (issue
     #1808)
logger: add option logger.file.log_conditions (issue #1942)
logger: add info "logger_log_file"
relay: rename "ssl" options and protocol to "tls"
relay: make TLS certificate/key loading error handling more verbose (issue
       #1558)
relay: add modifiers "relay_client_irc_in", "relay_client_irc_out1" and
       "relay_client_irc_out" in irc protocol
relay: add support of capability "echo-message" in irc protocol (issue #1949)
relay: add handshake option "escape_commands" in weechat protocol
trigger: add completions "trigger_names_disabled" and "trigger_names_enabled",
         used in completion of /trigger disable and /trigger enable

Bug fixes

core: fix refresh of bar item "input_search" after buffer switch in root bars
      (issue #1939)
core: fix completion after newline in input (issue #1925)
core: fix partial completion when the common prefix found is empty (issue #340)
core: display a specific error when trying to bind a key without area in mouse
      context
core: fix display of key with command /key bindctxt <context> <key>
core: fix default value of bar options (issue #846)
core: allow any valid boolean value in command /bar set <name> separator xxx
core: run config hooks only when value or default value is actually changed in
      set/reset/unset functions
core: fix crash in case of NULL message sent to function
      gui_chat_printf_y_date_tags (issue #1883)
core: allow command /input move_next_word going to the end of line (issue
      #1881)
core: ignore incomplete ctrl/meta/meta2 codes in keys
core: fix display glitch in command errors when a wide char is set in option
      weechat.look.command_chars (issue #1871)
core: fix update of terminal title in some terminals like suckless terminal
      (stterm) (issue #1882)
core: fix infinite loop on startup when running some gui commands before the
      switch to core buffer is performed (issue #1917)
api: readjust string size in function string_dyn_free when string is not freed
buflist: do not display keys added in default context on first load
exec: remove trailing "M" (carriage return) in output of commands
fset: remove scroll to top of fset buffer when options are added or removed
      (issue #1892)
guile: fix crash when plugin is loaded on GNU/Hurd (issue #1951)
irc: fix format of IRC tags displayed in messages (use "=" to separate key from
     value, do not convert "_" to "-") (issue #1929)
irc: reset all internal servers variables when disconnecting
irc: start from the beginning of nicks at automatic reconnection (issue #337,
     issue #965)
irc: fix join of channels in "autojoin" server option on first connection to
     server if auto reconnection is performed (issue #1873)
irc: update autojoin option with redirected channels when autojoin_dynamic is
     enabled (issue #1898)
irc: update secure data when server autojoin option contains ${sec.data.xxx}
     and option autojoin_dynamic is enabled (issue #1934)
irc: don’t switch to buffer of joined channel if it was not manually joined nor
     present in server autojoin option
irc: fix target buffer for commands 432/433 (erroneous nickname/nickname
     already in use) when the nickname looks like a channel
irc: display command 437 on server buffer when nickname cannot change while
     banned on channel (issue #88)
irc: add messages 415 (cannot send message to channel) and 742 (mode cannot be
     set)
irc: add missing tag "log3" in notify messages
irc: add missing tags "irc_cap" and "log3" in cap messages (client capability)
irc: fix split of CTCP message with no arguments
irc: remove extra space in CTCP ACTION message sent without arguments
logger: fix display of multiline messages in backlog (issue #1926)
lua: fix crash with print when the value to print is not a string (issue #1904,
     issue #1905)
relay: fix crash on /upgrade when at least a client is connected with weechat
       protocol
relay: fix connection with IRC clients sending "CAP REQ :" (without capability)
       and not sending "CAP END" (issue #1040)
ruby: fix crash on quit when a child process is still running (issue #1889,
      issue #1915)
ruby: fix crash in display of exception backtrace with Ruby 3 (issue #1631,
      issue #1886)
script: remove trailing "J" (line feed char) in source of scripts displayed
spell: check buffer pointer received in info "spell_dict"
trigger: make default triggers "cmd_pass", "cmd_pass_register" and
         "server_pass" compatible with multiline input (issue #1935)
typing: fix crash when pointer buffer is not received in callback for signal
        "input_text_changed" (issue #1869)
typing: remove nicks typing even when option typing.look.enabled_self is off
        (issue #1718)

Tests

core: add tests on URL functions
gui: add tests on bar and key functions
alias: add tests on alias functions
irc: check tags in messages displayed by IRC plugin
irc: add tests on function irc_server_alloc_with_url
irc: add tests on message/notice/action/CTCP sent
logger: add tests on tail functions
relay: add tests on "irc" protocol

Build

core: remove build with autotools (issue #1860)
core: remove RPM packaging
core: remove build of .bz2 and .zst files in make dist
core: remove obsolete cpack config
core: add "stable-number" and "devel-number" in script version.sh
core: add quotes around paths in CMake files (issue #29)
doc: convert docgen.py to C, remove autogen files from repository, add
     parameter --doc-gen to weechat-headless binary, add CMake option
     ENABLE_DOC_INCOMPLETE
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 Oct 27, 2023
3.2.2
* Corrected handling of messages at the buffer boundary in the SingleLogger
  #211

3.2.1
* Fixing a bug where a single logger is not killed

3.2.0
* newFastLogger1 ensures the ordering of logs #207

3.1.2
* Require unix-compat >= 0.2 #206
* Remove Safe if directory >= 1.3.8 #199
jperkin pushed a commit that referenced this issue Nov 6, 2023
profanity 0.14.0 needs this new version.

pkgsrc changes:
remove patch-configure.ac, applied in this version.

changes from changelog:
0.12.3
- Improve TCP-connection establishment (#221)
- Handle case where the server doesn't provide the `bind`
     feature (#224)
- Fix configure script for non-bash shells (#218)
- Parse JID's according to RFC7622 (#219)
- Fix potential memory leak in internal DNS resolver (#219)
- Fix potential memory leaks in `xmpp_conn_set_cafile()` and
    `xmpp_conn_set_capath()` (#219)
- Internal improvements (#219)

0.12.2
- Fix reconnect issues when Stream Management is enabled (#211)
- Fix resolver ... this time for real hopefully (fixup of #200) (#214)
- Fix clearing of password cache on resumed connection (#214)
- Improve detection&implementation of `va_copy` (#213)
- Fix Valgrind CI builds against LibreSSL (#212)
- Fix perf example on platforms where an `rdtsc()` equivalent
     isn't implemented (#212)

0.12.1
- Fix compilation in buildroot (#207)
- Fixes regarding OpenSSL (#208)
- Fix some build steps when builddir != srcdir (#208)
- Allow the user to disable build of examples (#209)
- CI builds against OpenSSL 3 (#206)
- Change the call signature of the following API:
    - xmpp_conn_set_client_cert() - the PKCS#12 file has now to
        be passed via the `cert` parameter. Originally it
        was via `key`. Currently both styles are supported,
        but in a future release only passing via `cert` will be
        accepted.
jperkin pushed a commit that referenced this issue Nov 6, 2023
Overview of changes in gnome-calculator 45.0.1
    * Retagging release

Overview of changes in gnome-calculator 45.0
    * Search provider performance improvements !154, !155, !156 (Christian Hergert)
    * Use numeric font instead of monospace #290 (Robert Roth)
    * Fixed electron-volt unit abbreviation #347 (Robert Roth)
    * Fixed erroneous Joule unit name #348 (Robert Roth)
    * Fixed missing build dependency !157 (Jeremy Bicha)

Overview of changes in gnome-calculator 45.beta
    * Fixed variable and function popover reverse typing #335, #320 (Robert Roth)
    * Better left/right cursor key handling !153 (Seth Falco)
    * Improved toolbar using Adwaita library !151 (Felipe Kinoshita)
    * Flatpak build improvements (Robert Roth)

Overview of changes in gnome-calculator 45.alpha
    * Remember window size #328 !146 (Leonard K, Alice Mikhaylenko)
    * Allow opening Main Menu by pressing F10 !142 !149 (Automeris naranja)
    * Extend bit-shifting limit #306 !143 (J Sory)
    * Added new energy units !143 (J Sory)
    * Added TWD support via Bank of Canada rates #27 !148 (Mário Adriano)
    * Added legal section for exchange rate source attribution (Robert Roth)
    * Added United Nations Treasury exchange rate datasource (Robert Roth)
    * Added Jamaican Dollar currency #291 (Robert Roth)
    * Added Ukrainian hryvnia currency #278 (Robert Roth)
    * Added Nigerian Naira currency #142 (Robert Roth)
    * Changed symbolic icon to C on the clear button #336 (Robert Roth)
    * Dropped VEF currency support #78 (Robert Roth)
    * Use new vala-nightly SDK extension for flatpak (Robert Roth)

Overview of changes in gnome-calculator 44.beta
    * Improved factorization !141 (J. Sory)
    * Number format selection documentation improvements #321 (Robert Roth)
    * Made builtin function descriptions translatable #323 (Robert Roth)
    * Fixed display showing 0 on startup #318 (Robert Roth)
    * Improved button tooltips !132 (sunflowerskater)
    * Added signed int support to programming mode !110 (Erik Wolf)
    * i and e constants updated according to ISO 80000-2:2009 !137 (majjejjam)
    * Help overlay updates !133 (Sabri Ünal)
    * Added preferences shortcut !129 (Sabri Ünal)
    * Destroy dialog after clicking cancel #310 (Jaycee Santos)

Overview of changes in gnome-calculator 43.0.1
    * Fixed appdata versioning (Robert Roth)

Overview of changes in gnome-calculator 43.0
    * Removed old issue tracker references !128 (Jake Dane)

Overview of changes in gnome-calculator 43.rc
    * Fix crash when entering new function name !124 (Nathaniel Russel)
    * Fix source view border !121 (Alexander Mikhaylenko)
    * Flatpak build update !122 (Bartłomiej Piotrowski)
    * Port about window to libadwaita !119 (Christopher Davis)
    * Port to libsoup3 !120 (AppleME)

Overview of changes in gnome-calculator 43.alpha
    * Fixed broken undo/redo #266 (Robert Roth)
    * Make sure variable name definitions work with whitespace too (Robert Roth)
    * Fix translatable strings !116 (Maximiliano)
    * Fixed missing implicit multiplication with variable and root #279 (Robert Roth)
    * meson warning fixes (Robert Roth)

Overview of changes in gnome-calculator 42.2
    * Fixed incorrect history with bits toggling #281 (Robert Roth)
    * Fixed crash when typing in variable popover #282 (Robert Roth)
    * Fixed incorrect libxml usage #283 (Luca Bacci, Robert Roth)

Overview of changes in gnome-calculator 42.1
    * Fixed broken undo/redo #266 (Robert Roth)
    * Removed automatic closing brace addition #271 (Robert Roth)
    * Fixed incorrect percentage symbol precedence handling #236, #275 (Robert Roth)

Overview of changes in gnome-calculator 42.rc
    * Use new gnome post_install script !106 (Bobby Rong)
    * gcalc build fixes (Daniel Espinoza Ortiz)
    * Updated screenshots (Christopher Davis)
    * Set default focus to entry (Robert Roth)

Overview of changes in gnome-calculator 42.beta
    * Fixed build issues with GCI entry controller tests #250 (Robert Roth)
    * Force LTR in history view #252 (Robert Roth)
    * programing mode: Force bit digits to be always LTR #258 (Yosef Or Boczko)
    * Use AdwApplication (Alexander Mikhaylenko)
    * ui: Fix styles !105 (Alexander Mikhaylenko)

Overview of changes in gnome-calculator 42.alpha
    * build: Support flatpak development builds (Óscar Fernández Díaz)
    * build: migrated to GTK4 !98 (Cristopher Davis, Robert Roth)
    * entry: Added currencies completion provider (Robert Roth)
    * entry: Fixed percentage evaluation error #237 (Robert Roth)
    * internal: Moved history view from MathDisplay to MathWindow (Robert Roth)
    * window: set default width for basic and keyboard mode #240 (Robert Roth)
    * buttons: removed destructive action class from clear button #242 (Robert Roth)
    * converter: search support in unit selector, separate conversion category selector #108 (Robert Roth)

Overview of changes in gnome-calculator 41.0
    * Use first translated symbol for conversion with button #219 (Robert Roth)
    * Appdata includes hardware support information (Adrien Plazas)

Overview of changes in gnome-calculator 41.alpha
    * Adaptive preferences window !85 (Adrien Plazas)
    * Fixed currency conversion using convert button #216 (Robert Roth)
    * User interface reworked, adaptive UI !81 (Adrien Plazas)
    * Enlarged calculator icon in help !82 (Sabri Ünal)
    * Code cleanup (Robert Roth)
    * Fixed kilohertz shorthand !87 (scootergrisen)
    * Fixed donation link !88 (René Genz)
    * Added support using calculator without currency conversion for privacy !89 (Ray Strode)
    * Added support for function description of custom functions using @ !90 (Martin Jirku)

Overview of changes in gnome-calculator 40.rc
    * Resize window after switching mode !78 (joshas)
    * Fixed compilation warnings (Robert Roth)
    * Support offline currency conversion tests #208 (Robert Roth)
    * Use official unit on conversion button click #207 (Robert Roth)
    * Fixed temperature unit typos #211 (Robert Roth)
    * Ellipsize conversion labels #17 (Robert Roth)
    * Added Ctrl+Delete shortcut for clearing the current equation #187 (Robert Roth)
    * Allow multiple decimal points #166. #5 (Robert Roth)
    * Added Ctrl+O shortcut for degrees symbol (Robert Roth)
    * Use gtk-sourceview 4.8 !80 (Robert Roth)

Overview of changes in gnome-calculator 40.beta
    * Fixed CI build (Robert Roth)
    * Fixed issues with initial loading of currencies (Robert Roth)
    * Rework currency retrieval preparing for currency provider plugins (Robert Roth)
    * Fixed commandline conversions #33 (Robert Roth)
    * Added currency conversion tests (Robert Roth)
    * Added support for frequencies conversion (Dave Hulst)
    * Added support for converting to and from weeks (Dave Hulst)
    * Added support for converting to and from centuries and decades (Dave Hulst)
    * Increase buttons font size #201 (Robert Roth)
    * Added % button to Advanced mode (Dave Hulst)
    * Show 4 decimals in converter instead of only two #203 (Robert Roth)
    * Added style classes to buttons !76 (Dave Hulst)

Overview of changes in gnome-calculator 40.alpha
    * Use libhandy for window and headerbar !69 (Cristopher Davis)
    * Use C instead of Clr in help !70 (scootergrisen)
    * Fixed broken currency conversion on first start #199 (Robert Roth)
    * Removed duplicate word from help #198 (Robert Roth)
    * Added lbs shortcut for pounds conversion (Robert Roth)
    * Fixed inconsistent word size (A. M. Roswell)
    * Removed unused trunc button from programming mode #41 (Robert Roth)
    * Fixed deprecation warnings
    * Added Serbian Dinar with fixed rate #49 (Robert Roth)
    * Added Bangladeshi Taka with fixed rate #191 (A. M. Roswell)
    * Updated mailing list contact to Discourse (Robert Roth)
    * Added basic help page for programming mode (A. M. Roswell)
    * Added insert character code button (A. M. Roswell)
    * Dim inapplicable bits on word size change #189 (A. M. Roswell)
    * Make the conversion labels selectable (Robert Roth)
    * Do not convert on swap #170 (Robert Roth)
    * Word size changer in programming mode !58 (A. M. Roswell)
    * Added metric cups conversion unit !53 (Lucy Coleclough)
    * Fixed astronomical unit conversion !51 (Thomas Nilsson)
    * Fixed feet-based units name, added mph and kph shortcuts #180 (Robert Roth)
    * Use shell copy to clipboard action #178 (Robert Roth)
    * Fixed preferences of angle units !56 (Delton Ding)

Overview of changes in gnome-calculator 3.38.0

Overview of changes in gnome-calculator 3.37.92

Overview of changes in gnome-calculator 3.37.90
    * Add tooltips for bits in programming mode !46 (Olliver Schinagl)
    * snap packaging updates (Ken VanDine)
    * Added link to website in About #155 (Robert Roth)
    * Added speed conversions !49 (Mathieu Heurtevin)
    * History view follows preferences #105, #159, #168 (Robert Roth)
    * Added month as time unit #158 (Robert Roth)
    * Better help for variables example usage #154 (Robert Roth)
    * Defined pi variable, added pi button in programming mode #153 (Robert Roth)
    * CI build fixes (Robert Roth)
    * Updated app icon !47 (Jakub Steiner)
    * Fixed bug returning empty string as result #152 (Robert Roth)
    * Support latex-style multiplication #164 (Robert Roth)
    * Added support for tau constant #46 (Robert Roth)
    * Unify constant handling (Robert Roth)
    * Separate UI files from sources (Robert Roth)
    * Moved number format selection to separate menu #24 (Robert Roth)
    * Replaces mode selector shortcuts with Ctrl+Alt (Robert Roth)
    * Clear answer if editing right before it #59, #161 (Robert Roth)
    * Moved preferences dialog to UI file (Robert Roth)
    * Refresh bits panel after calculation #38 (Robert Roth)
    * Removed past author addresses #174 (Robert Roth)

Overview of changes in gnome-calculator 3.36.0

Overview of changes in gnome-calculator 3.35.92
    * doc: Don't pass --fatal-warnings to valadoc (Rico Tzschichholz)
    * Removed obsolete keyboard shortcut #148 (Robert Roth)
    * help: Update icon for 3.36 (Andre Klapper)

Overview of changes in gnome-calculator 3.35.90
    * Drop padding around the display !40 (Adrien Plazas)
    * Updated Keyboard Shortcuts (Sabri Ünal)
    * Handle Escape and Enter correctly with completion #144 (Robert Roth)
    * Added F10 for primary menu shortcut #148 (Robert Roth)
    * Updated app icon !43 (Tobias Bernard)
    * Added Rack Units to the conversions !37 (Léo Gillot-Lamure)
    * Fixed freeze on calculating atan(+/-i) #139 (Robert Roth)
    * Fixed mode shortcuts by removing blocking mnemonics #138 (Robert Roth)
    * Implemented result history browsing using alt left/right #129 (Robert Roth)
    * Added translator comments for possible modes as command line arguments !38 (Rafael Fontenelle)

Overview of changes in gnome-calculator 3.35.3
    * Help updates (Andre Klapper)

Overview of changes in gnome-calculator 3.35.2
    * List possible modes in commandline help #112 (Robert Roth)
    * Add square feet unit #132 (Robert Roth)
    * Base conversion display selectable #123 (Robert Roth)
    * Created nightly icon (Jakub Steiner)
    * Snap build updates (Heather Ellsworth)
    * GCalc library code fixes (Rico Tzschichholz, Daniel Espinoza Ortiz)
    * Update required meson version (Diego Escalante Urrelo)
    * Adapt code to changed gtk+-3.0 bindings (Rico Tzschichholz)
    * Added GCi libary and tests for controllers for widgets (Daniel Espinoza Ortiz)
    * Solve on = key if input isq not a variable name #22 (Alberto González Palomo)

Overview of changes in gnome-calculator 3.33.92
    * README updates (Roger)

Overview of changes in gnome-calculator 3.33.90
    * Flatpak build cleanup (Jordan Petridis)
    * Debug messages cleanup (Daniel Espinosa Ortiz)

Overview of changes in gnome-calculator 3.33.3
    * calculator library build fixes (Daniel Espinosa Ortiz)
    * CI build fixes (Ken VanDine)
    * Added mnemonics for primary menu items #113 (Robert Roth)
    * Dropped leading zeros octal prefix #114, #109, #110 (Robert Roth)

Overview of changes in gnome-calculator 3.33.2
    * Separated calculator library !19 (Daniel Espinosa Ortiz)
    * Ensure icon is available for shell (Ken VanDine)
    * Support entering left/right shift with keyboard #98 (Robert Roth)
    * Fixed CFA conversion rate #102 (Robert Roth)
    * Remove copy icon from search provider results #103 (Robert Roth)
    * Do not assume octal base for binary numbers #101 (Robert Roth)
    * Show thousands separator in unit converter #102 (Robert Roth)
    * Use currency name instead of display name for conversion #106 (Robert Roth)
    * Quit warns and closes all windows #51 (Robert Roth)
    * Avoid normalizing the equation twice in search #104 (Pascal Nowack)
    * Ignore keypresses while calculating results #47 (Robert Roth)
    * Only allow one decimal point in numbers #5 (Robert Roth)
    * Application icon updated in help (Andre Klapper)
jperkin pushed a commit that referenced this issue Nov 6, 2023
v4.0.1 Latest

Bugfix release.

    Update test suite to pass on Python 3.12 (#207)

v4.0.0

Breaking changes

    Require block and timeout arguments to always be keyword arguments. (PR: #198)
    Remove support for Python 3.7. It reached end-of-life in June 2023. (PR: #190)

Features

    Type hints: All typing stubs have been inlined in the source code and have been greatly improved. They are now tested using both Mypy and Pyright. (PR: #192, #193, #195)
    Type hints: Due to the dynamic nature of ActorProxy objects, it is impossible to automatically type them correctly. pykka.typing is a new module with helpers for manually typing ActorProxy objects. Check out the docs for how to use the helpers. (PR: #199)
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 Jan 25, 2024
# withr 3.0.0

## Performance of withr

* `defer()` is now a thin wrapper around `base::on.exit()`. This is
  possible thanks to two contributions that we made to R 3.5:

  - We added an argument for FIFO cleanup: `on.exit(after = FALSE)`.
  - Calling `sys.on.exit()` elsewhere than top-level didn't work. This
    is needed for manual invokation with `deferred_run()`.

  Following this change, `defer()` is now much faster (although still
  slower than `on.exit()` which is a primitive function and about as
  fast as it gets). This also increases the compatibility of `defer()`
  with `on.exit()` (all handlers are now run in the expected order
  even if they are registered with `on.exit()`) and standalone
  versions of `defer()`.


## Breaking change

* When `source()` is used with a local environment, as opposed to
  `globalenv()` (the default), you now need to set
  `options(withr.hook_source = TRUE)` to get proper withr support
  (running `defer()` or `local_` functions at top-level of a script).
  THis support is disabled by default in local environments to avoid a
  performance penalty in normal usage of withr features.


## Other features and bugfixes

* `deferred_run()` now reports the number of executed expressions with
  a message.

* `deferred_run()` can now be run at any point in a knitr file (#235).

,* `local_tempfile()` now writes `lines` in UTF-8 (#210) and always uses
  `\n` for newlines (#216).

* `local_pdf()` and friends now correctly restore to the previously
  active device (#138).

* `local_()` now works even if withr isn't attached (#207).

* `local_par()` and `with_par()` now work if you don't set any parameters
  (#238).

* `with_language()` now properly resets the translation cache (#213).

* Fixes for Debian packaging.


# withr 2.5.2

* Fixes for CRAN checks.


# withr 2.5.1

* Fixes for CRAN checks.
jperkin pushed a commit that referenced this issue Feb 14, 2024
v0.20.1

What's Changed

    Switch to GitHub Actions CI. by @patrickt in #166
    Add the same PR template as for tree-sitter-javascript by @mjambon in #169
    Fixed CRLF behavior for tests by @ahelwer in #188
    Fix CRLF behavior mismatch during error recovery by @ahelwer in #189
    Endless methods by @aibaars in #190
    Add forwarded parameters/arguments by @aibaars in #191
    Disable C++ exceptions when compile for wasm32-wasi by @glebpom in #192
    Pattern matching by @aibaars in #193
    Improve grammar after the introduction of case-in pattern matching by @aibaars in #197
    Add parenthesized_pattern by @aibaars in #198
    Ruby 3.1 features by @aibaars in #201
    Update to Node 16 by @mattmassicotte in #206
    C bindings by @mattmassicotte in #199
    Parser improvements by @aibaars in #207
    CI: use windows-2019 for now by @aibaars in #209
    Add named rules for the various call operators by @aibaars in #211
    Update Makefile by @mattmassicotte in #213
    Allow newer tree-sitter upstream library. by @patrickt in #215
    Bump tree-sitter version to 0.20 by @hendrikvanantwerpen in #214
    Fix parse error in 'foo! if condition' by @aibaars in #216
    Parser improvements: != operator and key: [line_break] by @aibaars in #220
    Some improvements to the parser by @aibaars in #222
    Wrap class, module, method, and block bodies in a named node by @npezza93 in #224
    Parser improvments: quoted heredocs and short-hand interpolations by @aibaars in #225
    Add body field for end-less methods by @aibaars in #226
    Swift bindings by @mattmassicotte in #227
    fix: rename reserved word “arguments” by @drwpow in #229
    Bump versions in #208
    Anonymous (hash) splat arguments by @aibaars in #233
    One-line pattern matching by @aibaars in #194
    Scanner: do not skip LINE_BREAKs before .. and ... by @aibaars in #238
    Fix non-termination in parser by @aibaars in #239
    Fix scanning of division vs regex before line ending by @aibaars in #246
    Fix 'case' with newlines before expression by @aibaars in #247
jperkin pushed a commit that referenced this issue Feb 20, 2024
ELinks 0.17.0
-------------

Released on 2023-12-25

* fix for some 32-bit systems and select-only builds
* fix for gettext in Windows builds


ELinks 0.17.0rc2
----------------

Released on 2023-12-10

* Avoid division by zero. Refs #276
* Fix for FSP under Windows


ELinks 0.17.0rc1
----------------

Released on 2023-12-02

* configuration files are now saved to ~/.config/elinks/ or $XDG_CONFIG_HOME/elinks/ #199
  User must copy files from ~/.elinks/ to ~/.config/elinks/ himself or herself
* HOME_ETC support was dropped, you can set ELINKS_CONFDIR instead
* idn2 in place of idn #206
* libcss support (a few netsurf's libraries are required). Set document.css.libcss = 1 to enable
* experimental libsixel support (image/*; img2sixel %s; copiousoutput) in ~/.mailcap
  Must be enabled in a few places in configuration: set document.plain.sixel = 1
  and in terminal options. Do not try it on metered remote connections
* testing libcurl support (explicit FTPS and SFTP among others)
  To enable set protocol.ftp.use_curl = 1
  set protocol.http.use_curl = 1 for http/https
* ui.sessions.postpone_unlink option. Delete temporary files at exit instead of immediately after
  closing viewer #257
* redefined isspace #249
* Serbian translation update
* compilation fixes

ELinks 0.16.1.1
---------------

Released on 2023-05-01

* updated POTFILES #230

ELinks 0.16.1
-------------

Released on 2023-04-30

* handle SECTION html element #207
* allocate more memory for BLOCKQUOTE #214
* encode A href to terminal codepage and encode bytes with highest bit set as %HEX #221
* Serbian translation update
* install doc by default in meson #224
* tests fixes
jperkin pushed a commit that referenced this issue Apr 3, 2024
Features / Improvements ✨
    Links should be "openable" (#43)
    Add support for previewing images in room scrollback (#108)
    Enable sending strikethrough text (#141)
    Support composing messages in an external editor (#155)
    Add support for logging in with SSO (#160)
    Add new command for logging out of iamb session (#162)
    Support custom sorting for room and user lists (#170)
    feat: desktop file for GUI environment launchers (#178)
    Add a new :chats window that lists both DMs and Rooms (#184)
    Add support for desktop notifications (#192)
    Support coloring entire message with the user color (#193)
    Indicate and sort on rooms with unread messages (#205)
    Support following the .well-known entries for a username's domain (#209)
    Add support for threads (#216)
    Add support for custom key macros (#217)
    Support displaying shortcodes instead of Emojis in messages (#222)
    Support configuring user gutter width (#223)
    Enable autolinking when rendering Markdown (#226)
    Support notifications via terminal bell (#227)
    Support loading a TOML configuration (#229)
    Add commands for importing and exporting room keys (#233)

Documentation / README updates 📚
    Fix example config (#140)
    Add more documentation (#166)
    Update README.md to add openSUSE Tumbleweed (#191)
    Add snap install instructions (#210)
    Add example of mapping "V" to toggle message selection mode (#195)
    Update manual pages to use mdoc(7) and list commands (#230)
    Add an icon for iamb (#232)

Bug Fixes 🐞
    Fix not showing display names in already synced rooms (#171)
    Fix image preview offset (#179)
    Update to ratatui-image@0.4.3 to use native sixel lib (#181)
    Fix truncation/padding for non-ASCII sender names (#182)
    Fix crash on small image preview (#198)
    Download rooms keys from backups if they exist (#211)
    Ignore key releases on platforms that support it (#220)
    Provide better error message for M_UNKNOWN_TOKEN (#101)
    Fix entering thread view when there's no messages yet (#224)
    Fix image previews in replies (#225)
    Reset message bar when ! is passed with :cancel (#231)
    Wait to log in before starting background tasks (#234)

Performance ⏱️
    Reduce CPU usage by instead fetching read receipts after related sync events (#168)
    Load receipts for room before acquiring lock (#213)

Building / Housekeeping 🧹
    Update Cargo.lock file (#157)
    Update modalkit for newer ratatui and crossterm
    Fix CI workflow (#164)
    Use mozilla-actions/sccache-action for caching builds (#169)
    Enable direnv for Nix flakes (#183)
    Update to matrix-sdk@0.7.1 (#200)
    Rename Nix flake build input from pkgconfig to pkg-config (#203)
    Update modalkit dependencies (#204)
    Move LTO into its own "release-lto" profile (#207)
    Fix Nix flake hashes (#206)
    Pull in modalkit repository with a Cargo.lock (#208)
    Nix flake updates (#214)
    Update to ratatui-image@0.8.1 (#215)
    Support linking against system OpenSSL (#218)
    GitHub workflow should use --locked to avoid broken Cargo.lock (#219)
    Fix odd Windows-only compile error (#221)
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

3 participants