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

Unable to verify GPG-signed packages #288

Closed
jdwhite opened this issue Nov 23, 2020 · 7 comments
Closed

Unable to verify GPG-signed packages #288

jdwhite opened this issue Nov 23, 2020 · 7 comments

Comments

@jdwhite
Copy link

jdwhite commented Nov 23, 2020

Fresh macOS Catalina install, following bootstrap instructions from https://pkgsrc.joyent.com/install-on-osx/.

Short version: after bootstrapping, installing gpg2 from the Joyent binary package repo, and importing the public signing key into a keychain pointed to by GPG_KEYRING_VERIFY in pkg_install.conf I am unable to validate as the Signature id in the signed package cannot be found:

pkg_add: unable to verify signature: Signature key id 6d94c02e1f32a9ad not found

I've spend the last couple of days trying to validate packages signed with with my own key get the same results (different Signature key id of course). After much fiddling I finally decided that I must be doing something wrong and decided to start fresh with the Joyent bootstrap as a sanity check -- except it also fails for me.

Long version: here are the terminal logs from my install to show precisely what was done.

root@jdwhites-Mac /opt # BOOTSTRAP_TAR="bootstrap-macos14-trunk-x86_64-20200716.tar.gz"
BOOTSTRAP_SHA="395be93bf6b3ca5fbe8f0b248f1f33181b8225fe"
root@jdwhites-Mac /opt # curl -O https://pkgsrc.joyent.com/packages/Darwin/bootstrap/${BOOTSTRAP_TAR}

  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 16.8M  100 16.8M    0     0  4253k      0  0:00:04  0:00:04 --:--:-- 4253k
root@jdwhites-Mac /opt # echo "${BOOTSTRAP_SHA}  ${BOOTSTRAP_TAR}" | shasum -c-

bootstrap-macos14-trunk-x86_64-20200716.tar.gz: OK
root@jdwhites-Mac /opt # curl -O https://pkgsrc.joyent.com/packages/Darwin/bootstrap/${BOOTSTRAP_TAR}.asc

  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   819  100   819    0     0   2340      0 --:--:-- --:--:-- --:--:--  2340

root@jdwhites-Mac /opt # tar zxpf bootstrap-macos14-trunk-x86_64-20200716.tar.gz -C /
root@jdwhites-Mac /opt # eval $(/usr/libexec/path_helper)

root@jdwhites-Mac /opt # which pkgin
/opt/pkg/bin/pkgin

##
##  BEGIN NOTE
##
At this point, GPG_KEYRING_VERIFY=/opt/pkg/etc/gnupg/pkgsrc.gpg and 
VERIFIED_INSTALLATION=always are set in pkg_install.conf. 
However, /opt/pkg/etc/gnupg/pkgsrc.gpg does not exist (yet).

Even though VERIFIED_INSTALLATION=always I am not prompted to
approve installation of gnupg2 nor any of its dependencies. 
Is this because /opt/pkg/etc/gnupg/pkgsrc.gpg doesn't exist?

##
## END NOTE
##

root@jdwhites-Mac /opt # pkgin in gnupg2
reading local summary...
processing local summary...
processing remote summary (https://pkgsrc.joyent.com/packages/Darwin/trunk/x86_64/All)...
pkg_summary.xz                                                                             100% 2178KB   1.1MB/s   00:02    
calculating dependencies...done.

5 packages to refresh:
  zlib-1.2.11 bzip2-1.0.8 mozilla-rootcerts-1.0.20200529nb1 openssl-1.1.1h editline-3.1.20191231nb2

1 package to upgrade:
  sqlite3-3.33.0nb1

26 packages to install:
  gnupg2-2.2.24 readline-8.0 pinentry-1.1.0nb1 openldap-client-2.4.56 npth-1.6 libusb1-1.0.23nb1 libksba-1.4.0
  libgpg-error-1.39 libgcrypt-1.8.7 libassuan-2.5.3 gnutls-3.6.15 gettext-lib-0.21 p11-kit-0.23.21 nettle-3.6 lzo-2.10
  libunistring-0.9.10 libtasn1-4.16.0 libcfg+-0.7.0 gmp-6.2.1 tcp_wrappers-7.6.4 cyrus-sasl-2.1.27nb1 libiconv-1.14nb3
  ncurses-6.2nb2 user-darwin-20170116 db4-4.8.30nb1 libffi-3.3nb4

5 to refresh, 1 to upgrade, 26 to install
34M to download, 71M to install

proceed ? [Y/n] 
user-darwin-20170116.tgz                                                                   100% 4402     4.3KB/s   00:00    
db4-4.8.30nb1.tgz                                                                          100% 4166KB   4.1MB/s   00:01    
libffi-3.3nb4.tgz                                                                          100%   55KB  55.0KB/s   00:00    
p11-kit-0.23.21.tgz                                                                        100% 3253KB   3.2MB/s   00:01    
nettle-3.6.tgz                                                                             100% 1050KB   1.0MB/s   00:00    
mozilla-rootcerts-1.0.20200529nb1.tgz                                                      100%  568KB 568.4KB/s   00:00    
lzo-2.10.tgz                                                                               100%  141KB 141.3KB/s   00:00    
libunistring-0.9.10.tgz                                                                    100% 1409KB   1.4MB/s   00:01    
libtasn1-4.16.0.tgz                                                                        100%  147KB 147.0KB/s   00:01    
libcfg+-0.7.0.tgz                                                                          100%  162KB 162.2KB/s   00:01    
gmp-6.2.1.tgz                                                                              100%  806KB 806.0KB/s   00:01    
tcp_wrappers-7.6.4.tgz                                                                     100%   85KB  85.4KB/s   00:00    
openssl-1.1.1h.tgz                                                                         100% 5620KB   2.7MB/s   00:02    
cyrus-sasl-2.1.27nb1.tgz                                                                   100%  271KB 271.5KB/s   00:01    
libiconv-1.14nb3.tgz                                                                       100% 1334KB   1.3MB/s   00:01    
ncurses-6.2nb2.tgz                                                                         100% 1540KB   1.5MB/s   00:01    
editline-3.1.20191231nb2.tgz                                                               100%  169KB 169.2KB/s   00:00    
zlib-1.2.11.tgz                                                                            100%  123KB 122.7KB/s   00:00    
sqlite3-3.33.0nb1.tgz                                                                      100% 1399KB   1.4MB/s   00:01    
readline-8.0.tgz                                                                           100%  462KB 462.0KB/s   00:01    
pinentry-1.1.0nb1.tgz                                                                      100%   96KB  96.1KB/s   00:00    
openldap-client-2.4.56.tgz                                                                 100% 1110KB   1.1MB/s   00:01    
npth-1.6.tgz                                                                               100%   18KB  18.4KB/s   00:00    
libusb1-1.0.23nb1.tgz                                                                      100%  102KB 102.3KB/s   00:00    
libksba-1.4.0.tgz                                                                          100%  243KB 242.6KB/s   00:00    
libgpg-error-1.39.tgz                                                                      100%  375KB 375.1KB/s   00:00    
libgcrypt-1.8.7.tgz                                                                        100%  915KB 914.9KB/s   00:01    
libassuan-2.5.3.tgz                                                                        100%  124KB 124.4KB/s   00:00    
gnutls-3.6.15.tgz                                                                          100% 4321KB   4.2MB/s   00:01    
gettext-lib-0.21.tgz                                                                       100%   65KB  64.8KB/s   00:00    
bzip2-1.0.8.tgz                                                                            100%   92KB  92.3KB/s   00:00    
gnupg2-2.2.24.tgz                                                                          100% 4260KB   4.2MB/s   00:01    
installing gnupg2-2.2.24...
libiconv-1.14nb3: copying /opt/pkg/share/examples/libiconv/charset.alias to /opt/pkg/lib/charset.alias
gettext-lib-0.21: copying /opt/pkg/share/examples/gettext/locale.alias to /opt/pkg/share/locale/locale.alias
libgpg-error-1.39: registering info file /opt/pkg/info/gpgrt.info
libassuan-2.5.3: registering info file /opt/pkg/info/assuan.info
libgcrypt-1.8.7: registering info file /opt/pkg/info/gcrypt.info
libksba-1.4.0: registering info file /opt/pkg/info/ksba.info
pinentry-1.1.0nb1: registering info file /opt/pkg/info/pinentry.info
gmp-6.2.1: registering info file /opt/pkg/info/gmp.info
libtasn1-4.16.0: registering info file /opt/pkg/info/libtasn1.info
nettle-3.6: registering info file /opt/pkg/info/nettle.info
libffi-3.3nb4: registering info file /opt/pkg/info/libffi.info
p11-kit-0.23.21: copying /opt/pkg/share/examples/p11-kit/pkcs11.conf.example to /opt/pkg/etc/pkcs11/pkcs11.conf
libunistring-0.9.10: registering info file /opt/pkg/info/libunistring.info
gnutls-3.6.15: registering info file /opt/pkg/info/gnutls-client-server-use-case.png
gnutls-3.6.15: registering info file /opt/pkg/info/gnutls-guile.info
gnutls-3.6.15: registering info file /opt/pkg/info/gnutls-handshake-sequence.png
gnutls-3.6.15: registering info file /opt/pkg/info/gnutls-handshake-state.png
gnutls-3.6.15: registering info file /opt/pkg/info/gnutls-internals.png
gnutls-3.6.15: registering info file /opt/pkg/info/gnutls-layers.png
gnutls-3.6.15: registering info file /opt/pkg/info/gnutls-logo.png
gnutls-3.6.15: registering info file /opt/pkg/info/gnutls-modauth.png
gnutls-3.6.15: registering info file /opt/pkg/info/gnutls-x509.png
gnutls-3.6.15: registering info file /opt/pkg/info/gnutls.info
gnutls-3.6.15: registering info file /opt/pkg/info/pkcs11-vision.png
cyrus-sasl-2.1.27nb1: Creating user ``cyrus''
===========================================================================
$NetBSD: MESSAGE,v 1.4 2017/07/26 09:21:10 hauke Exp $

cyrus-sasl-2.1.27nb1 by default does *not* install any authentication plugin
modules.  Until the necessary authentication plugin modules are
installed, e.g. security/cy2-crammd5 or security/cy2-gssapi, you
will probably get errors about "no appropriate mechs available".

The configuration files for applications using the sasl2 libraries
used to be in /opt/pkg/lib/sasl2/, but are now expected in
/opt/pkg/etc/sasl2/. You need to move them after upgrading the pkg.

cyrus-sasl-2.1.27nb1 will use the following directory as the default
path to its plugin modules:

	/opt/pkg/lib/sasl2

The search path for plugin modules can be customized by setting the
SASL_PATH variable to a colon-delimted list of directories in the shell
environment.

To allow plaintext authentication without using the auxprop mechanism, the
package security/cyrus-saslauthd should be installed.

===========================================================================
openldap-client-2.4.56: copying /opt/pkg/share/examples/openldap/ldap.conf to /opt/pkg/etc/openldap/ldap.conf
readline-8.0: registering info file /opt/pkg/info/history.info
readline-8.0: registering info file /opt/pkg/info/readline.info
readline-8.0: registering info file /opt/pkg/info/rluserman.info
gnupg2-2.2.24: registering info file /opt/pkg/info/gnupg.info
refreshing zlib-1.2.11...
upgrading sqlite3-3.33.0nb1...
installing readline-8.0...
readline-8.0: unregistering info file /opt/pkg/info/history.info
readline-8.0: unregistering info file /opt/pkg/info/readline.info
readline-8.0: unregistering info file /opt/pkg/info/rluserman.info
readline-8.0: registering info file /opt/pkg/info/history.info
readline-8.0: registering info file /opt/pkg/info/readline.info
readline-8.0: registering info file /opt/pkg/info/rluserman.info
installing pinentry-1.1.0nb1...
pinentry-1.1.0nb1: unregistering info file /opt/pkg/info/pinentry.info
pinentry-1.1.0nb1: registering info file /opt/pkg/info/pinentry.info
installing openldap-client-2.4.56...
openldap-client-2.4.56: copying /opt/pkg/share/examples/openldap/ldap.conf to /opt/pkg/etc/openldap/ldap.conf
installing npth-1.6...
installing libusb1-1.0.23nb1...
installing libksba-1.4.0...
libksba-1.4.0: unregistering info file /opt/pkg/info/ksba.info
libksba-1.4.0: registering info file /opt/pkg/info/ksba.info
installing libgpg-error-1.39...
libgpg-error-1.39: unregistering info file /opt/pkg/info/gpgrt.info
libgpg-error-1.39: registering info file /opt/pkg/info/gpgrt.info
installing libgcrypt-1.8.7...
libgcrypt-1.8.7: unregistering info file /opt/pkg/info/gcrypt.info
libgcrypt-1.8.7: registering info file /opt/pkg/info/gcrypt.info
installing libassuan-2.5.3...
libassuan-2.5.3: unregistering info file /opt/pkg/info/assuan.info
libassuan-2.5.3: registering info file /opt/pkg/info/assuan.info
installing gnutls-3.6.15...
gnutls-3.6.15: unregistering info file /opt/pkg/info/gnutls-client-server-use-case.png
gnutls-3.6.15: unregistering info file /opt/pkg/info/gnutls-guile.info
gnutls-3.6.15: unregistering info file /opt/pkg/info/gnutls-handshake-sequence.png
gnutls-3.6.15: unregistering info file /opt/pkg/info/gnutls-handshake-state.png
gnutls-3.6.15: unregistering info file /opt/pkg/info/gnutls-internals.png
gnutls-3.6.15: unregistering info file /opt/pkg/info/gnutls-layers.png
gnutls-3.6.15: unregistering info file /opt/pkg/info/gnutls-logo.png
gnutls-3.6.15: unregistering info file /opt/pkg/info/gnutls-modauth.png
gnutls-3.6.15: unregistering info file /opt/pkg/info/gnutls-x509.png
gnutls-3.6.15: unregistering info file /opt/pkg/info/gnutls.info
gnutls-3.6.15: unregistering info file /opt/pkg/info/pkcs11-vision.png
gnutls-3.6.15: registering info file /opt/pkg/info/gnutls-client-server-use-case.png
gnutls-3.6.15: registering info file /opt/pkg/info/gnutls-guile.info
gnutls-3.6.15: registering info file /opt/pkg/info/gnutls-handshake-sequence.png
gnutls-3.6.15: registering info file /opt/pkg/info/gnutls-handshake-state.png
gnutls-3.6.15: registering info file /opt/pkg/info/gnutls-internals.png
gnutls-3.6.15: registering info file /opt/pkg/info/gnutls-layers.png
gnutls-3.6.15: registering info file /opt/pkg/info/gnutls-logo.png
gnutls-3.6.15: registering info file /opt/pkg/info/gnutls-modauth.png
gnutls-3.6.15: registering info file /opt/pkg/info/gnutls-x509.png
gnutls-3.6.15: registering info file /opt/pkg/info/gnutls.info
gnutls-3.6.15: registering info file /opt/pkg/info/pkcs11-vision.png
installing gettext-lib-0.21...
gettext-lib-0.21: copying /opt/pkg/share/examples/gettext/locale.alias to /opt/pkg/share/locale/locale.alias
refreshing bzip2-1.0.8...
installing p11-kit-0.23.21...
p11-kit-0.23.21: copying /opt/pkg/share/examples/p11-kit/pkcs11.conf.example to /opt/pkg/etc/pkcs11/pkcs11.conf
installing nettle-3.6...
nettle-3.6: unregistering info file /opt/pkg/info/nettle.info
nettle-3.6: registering info file /opt/pkg/info/nettle.info
refreshing mozilla-rootcerts-1.0.20200529nb1...
===========================================================================
$NetBSD: MESSAGE,v 1.5 2014/08/10 10:47:42 wiz Exp $

Execute this command to extract and rehash all CA root certificates
distributed by the Mozilla Project, so that they can be used by third
party applications using OpenSSL. It also creates a single file
certificate bundle in PEM format which can be used by applications using
GnuTLS.

	# mozilla-rootcerts install

To mark these certificates as trusted for users of gnupg2, do
the following (assuming default PKG_SYSCONFBASE and a Bourne shell):

	# mkdir -p /usr/pkg/etc/gnupg
	# cd /usr/pkg/etc/gnupg
	# for c in /etc/openssl/certs/*.pem; do
	> openssl x509 -in $c -noout -fingerprint|sed 's|^.*=\(.*\)|\1 S|'
	> done > trustlist.txt
===========================================================================
installing lzo-2.10...
installing libunistring-0.9.10...
libunistring-0.9.10: unregistering info file /opt/pkg/info/libunistring.info
libunistring-0.9.10: registering info file /opt/pkg/info/libunistring.info
installing libtasn1-4.16.0...
libtasn1-4.16.0: unregistering info file /opt/pkg/info/libtasn1.info
libtasn1-4.16.0: registering info file /opt/pkg/info/libtasn1.info
installing libcfg+-0.7.0...
installing gmp-6.2.1...
gmp-6.2.1: unregistering info file /opt/pkg/info/gmp.info
gmp-6.2.1: registering info file /opt/pkg/info/gmp.info
installing tcp_wrappers-7.6.4...
refreshing openssl-1.1.1h...
===========================================================================
The following directories are no longer being used by openssl-1.1.1gnb2,
and they can be removed if no other packages are using them:

	/opt/pkg/etc/openssl/certs

===========================================================================
openssl-1.1.1h: copying /opt/pkg/share/examples/openssl/openssl.cnf to /opt/pkg/etc/openssl/openssl.cnf
installing cyrus-sasl-2.1.27nb1...
===========================================================================
The following users are no longer being used by cyrus-sasl-2.1.27nb1,
and they can be removed if no other software is using them:

	cyrus

===========================================================================
===========================================================================
The following groups are no longer being used by cyrus-sasl-2.1.27nb1,
and they can be removed if no other software is using them:

	mail

===========================================================================
===========================================================================
$NetBSD: MESSAGE,v 1.4 2017/07/26 09:21:10 hauke Exp $

cyrus-sasl-2.1.27nb1 by default does *not* install any authentication plugin
modules.  Until the necessary authentication plugin modules are
installed, e.g. security/cy2-crammd5 or security/cy2-gssapi, you
will probably get errors about "no appropriate mechs available".

The configuration files for applications using the sasl2 libraries
used to be in /opt/pkg/lib/sasl2/, but are now expected in
/opt/pkg/etc/sasl2/. You need to move them after upgrading the pkg.

cyrus-sasl-2.1.27nb1 will use the following directory as the default
path to its plugin modules:

	/opt/pkg/lib/sasl2

The search path for plugin modules can be customized by setting the
SASL_PATH variable to a colon-delimted list of directories in the shell
environment.

To allow plaintext authentication without using the auxprop mechanism, the
package security/cyrus-saslauthd should be installed.

===========================================================================
installing libiconv-1.14nb3...
libiconv-1.14nb3: copying /opt/pkg/share/examples/libiconv/charset.alias to /opt/pkg/lib/charset.alias
installing ncurses-6.2nb2...
refreshing editline-3.1.20191231nb2...
installing user-darwin-20170116...
installing db4-4.8.30nb1...
installing libffi-3.3nb4...
libffi-3.3nb4: unregistering info file /opt/pkg/info/libffi.info
libffi-3.3nb4: registering info file /opt/pkg/info/libffi.info
pkg_install warnings: 0, errors: 0
reading local summary...
processing local summary...
marking gnupg2-2.2.24 as non auto-removable

root@jdwhites-Mac /opt # curl -sS https://pkgsrc.joyent.com/pgp/1F32A9AD.asc | gpg2 --no-default-keyring --keyring /opt/pkg/etc/pkgsrc.gpg --import
gpg: keybox '/opt/pkg/etc/pkgsrc.gpg' created
gpg: directory '/Users/jdwhite/.gnupg' created
gpg: /Users/jdwhite/.gnupg/trustdb.gpg: trustdb created
gpg: key FAE50048FAA66EE0: public key "Joyent Package Signing <pkgsrc@joyent.com>" imported
gpg: Total number processed: 1
gpg:               imported: 1
root@jdwhites-Mac /opt # cd /opt/pkg/etc 
root@jdwhites-Mac etc # ls -l
total 40
drwxr-xr-x  3 root  wheel    96 Jul 16 03:55 gnupg
-rw-r--r--  1 root  wheel  1846 Jul 16 05:01 mk.conf
drwxr-xr-x  3 root  wheel    96 Nov 23 12:28 openldap
drwxr-xr-x  5 root  wheel   160 Nov 23 12:28 openssl
drwxr-xr-x  3 root  wheel    96 Nov 23 12:28 pkcs11
drwxr-xr-x  3 root  wheel    96 Jul 16 05:01 pkg_alternatives
-rw-r--r--  1 root  wheel   207 Jul 16 05:01 pkg_install.conf
drwxr-xr-x  3 root  wheel    96 Jul 16 05:01 pkgin
-rw-r--r--  1 root  wheel  4097 Nov 23 12:35 pkgsrc.gpg
-rw-------  1 root  wheel    32 Nov 23 12:35 pkgsrc.gpg~
drwxr-xr-x  2 root  wheel    64 Nov 23 12:28 sasl2

# root@jdwhites-Mac etc # cat pkg_install.conf 
#GPG_KEYRING_PKGVULN=/opt/pkg/share/gnupg/pkgsrc-security.gpg
GPG_KEYRING_VERIFY=/opt/pkg/etc/pkgsrc.gpg
PKG_PATH=https://pkgsrc.joyent.com/packages/Darwin/trunk/x86_64/All
VERIFIED_INSTALLATION=always

##
## Now /opt/pkg/etc/pkgsrc.gpg exists
##

root@jdwhites-Mac etc # gpg2 --list-keys --no-default-keyring --keyring /opt/pkg/etc/pkgsrc.gpg
/opt/pkg/etc/pkgsrc.gpg
-----------------------
pub   rsa4096 2015-02-03 [SC]
      74C4F303BB457421E42C4DC4FAE50048FAA66EE0
uid           [ unknown] Joyent Package Signing <pkgsrc@joyent.com>
sub   rsa4096 2015-02-03 [E]
sub   rsa4096 2016-01-11 [S]

root@jdwhites-Mac etc # pkgin in nano
calculating dependencies...done.

2 packages to install:
  nano-5.1 ncursesw-6.2

0 to refresh, 0 to upgrade, 2 to install
1438K to download, 3723K to install

proceed ? [Y/n] 
ncursesw-6.2.tgz                                                                           100%  545KB 544.8KB/s   00:01    
nano-5.1.tgz                                                                               100%  894KB 893.7KB/s   00:01    
installing nano-5.1...
BAD PACKET - bit 7 not 1, offset 0!
hi, need to implement 0, offset 2
BAD PACKET - bit 7 not 1, offset 2!
hi, need to implement 0, offset 4
BAD PACKET - bit 7 not 1, offset 36!
hi, need to implement 0, offset 41
recog_userid: not 13
recog_primary_key: not userid
short pubring recognition???
installing ncursesw-6.2...
BAD PACKET - bit 7 not 1, offset 0!
hi, need to implement 0, offset 2
BAD PACKET - bit 7 not 1, offset 2!
hi, need to implement 0, offset 4
BAD PACKET - bit 7 not 1, offset 36!
hi, need to implement 0, offset 41
recog_userid: not 13
recog_primary_key: not userid
short pubring recognition???
pkg_install warnings: 0, errors: 2
pkg_install error log can be found in /var/db/pkgin/pkg_install-err.log

root@jdwhites-Mac etc # cat /var/db/pkgin/pkg_install-err.log                  
---Nov 23 12:28:01: installing gnupg2-2.2.24...
---Nov 23 12:28:13: refreshing zlib-1.2.11...
---Nov 23 12:28:13: upgrading sqlite3-3.33.0nb1...
---Nov 23 12:28:13: installing readline-8.0...
---Nov 23 12:28:14: installing pinentry-1.1.0nb1...
---Nov 23 12:28:15: installing openldap-client-2.4.56...
---Nov 23 12:28:16: installing npth-1.6...
---Nov 23 12:28:16: installing libusb1-1.0.23nb1...
---Nov 23 12:28:16: installing libksba-1.4.0...
---Nov 23 12:28:16: installing libgpg-error-1.39...
---Nov 23 12:28:17: installing libgcrypt-1.8.7...
---Nov 23 12:28:18: installing libassuan-2.5.3...
---Nov 23 12:28:18: installing gnutls-3.6.15...
---Nov 23 12:28:20: installing gettext-lib-0.21...
---Nov 23 12:28:21: refreshing bzip2-1.0.8...
---Nov 23 12:28:21: installing p11-kit-0.23.21...
---Nov 23 12:28:22: installing nettle-3.6...
---Nov 23 12:28:22: refreshing mozilla-rootcerts-1.0.20200529nb1...
---Nov 23 12:28:22: installing lzo-2.10...
---Nov 23 12:28:22: installing libunistring-0.9.10...
---Nov 23 12:28:23: installing libtasn1-4.16.0...
---Nov 23 12:28:24: installing libcfg+-0.7.0...
---Nov 23 12:28:24: installing gmp-6.2.1...
---Nov 23 12:28:25: installing tcp_wrappers-7.6.4...
---Nov 23 12:28:25: refreshing openssl-1.1.1h...
---Nov 23 12:28:27: installing cyrus-sasl-2.1.27nb1...
---Nov 23 12:28:28: installing libiconv-1.14nb3...
---Nov 23 12:28:29: installing ncurses-6.2nb2...
pkg_delete: Couldn't remove /opt/pkg/share/terminfo/32/2621a: No such file or directory
pkg_delete: Couldn't remove /opt/pkg/share/terminfo/68/hp2621a: No such file or directory
pkg_delete: Couldn't remove /opt/pkg/share/terminfo/68/hp70092a: No such file or directory
---Nov 23 12:28:30: refreshing editline-3.1.20191231nb2...
---Nov 23 12:28:30: installing user-darwin-20170116...
---Nov 23 12:28:30: installing db4-4.8.30nb1...
---Nov 23 12:28:31: installing libffi-3.3nb4...
---Nov 23 12:37:35: installing nano-5.1...
pkg_add: unable to verify signature: Signature key id 6d94c02e1f32a9ad not found 
---Nov 23 12:37:35: installing ncursesw-6.2...
pkg_add: unable to verify signature: Signature key id 6d94c02e1f32a9ad not found

root@jdwhites-Mac etc # pkgin in tmux
calculating dependencies...done.

2 packages to install:
  tmux-3.1c libevent-2.1.12

0 to refresh, 0 to upgrade, 2 to install
961K to download, 2369K to install

proceed ? [Y/n] 
libevent-2.1.12.tgz                                                                        100%  645KB 644.7KB/s   00:00    
tmux-3.1c.tgz                                                                              100%  316KB 316.1KB/s   00:00    
installing tmux-3.1c...
BAD PACKET - bit 7 not 1, offset 0!
hi, need to implement 0, offset 2
BAD PACKET - bit 7 not 1, offset 2!
hi, need to implement 0, offset 4
BAD PACKET - bit 7 not 1, offset 36!
hi, need to implement 0, offset 41
recog_userid: not 13
recog_primary_key: not userid
short pubring recognition???
installing libevent-2.1.12...
BAD PACKET - bit 7 not 1, offset 0!
hi, need to implement 0, offset 2
BAD PACKET - bit 7 not 1, offset 2!
hi, need to implement 0, offset 4
BAD PACKET - bit 7 not 1, offset 36!
hi, need to implement 0, offset 41
recog_userid: not 13
recog_primary_key: not userid
short pubring recognition???
pkg_install warnings: 0, errors: 2
pkg_install error log can be found in /var/db/pkgin/pkg_install-err.log

@jperkin
Copy link
Collaborator

jperkin commented Nov 23, 2020

Just a comment on this part to begin with:

At this point, GPG_KEYRING_VERIFY=/opt/pkg/etc/gnupg/pkgsrc.gpg and
VERIFIED_INSTALLATION=always are set in pkg_install.conf.
However, /opt/pkg/etc/gnupg/pkgsrc.gpg does not exist (yet).

This isn't correct, the bootstrap should include that file, which contains the public signing key for the packages:

$ tar ztvf bootstrap-macos14-trunk-x86_64-20200716.tar.gz | grep gpg
-rw-r--r--  0 root   wheel    3835 Jul 16 11:55 ./opt/pkg/etc/gnupg/pkgsrc.gpg

Without that file, yes you'd hit problems as there wouldn't be a way to validate the signatures. However I think you might mean /opt/pkg/etc/pkgsrc.gpg that you refer to later?

Even though VERIFIED_INSTALLATION=always I am not prompted to
approve installation of gnupg2 nor any of its dependencies.
Is this because /opt/pkg/etc/gnupg/pkgsrc.gpg doesn't exist?

Package verification doesn't rely on GnuPG, it uses the netpgpverify library built into the pkg_install tools.

root@jdwhites-Mac etc # cat pkg_install.conf

#GPG_KEYRING_PKGVULN=/opt/pkg/share/gnupg/pkgsrc-security.gpg
GPG_KEYRING_VERIFY=/opt/pkg/etc/pkgsrc.gpg`

There should be no need to do this, and there can be incompatibilities between the keys that GnuPG exports and what netpgpverify supports. If you really want to use GPG for verification (which you can, I just don't think there is any benefit in doing so, I spent a while implementing netpgpverify support so that external commands were not necessary) then you'll probably need to also update pkg_install.conf to include GPG=/path/to/gpg2.

I think it'd help to understand what you're trying accomplish. Everything is set up out of the box to automatically validate packages, as you can see from your initial pkgin in gnupg2 it worked fine (the packages wouldn't install if the verification failed). If you just want to verify the bootstrap tarball then the instructions should provide the commands required for that, and you don't need to change pkg_install.conf. If you want to build your own packages and sign them then that's a little more involved and is described here: https://github.com/joyent/pkgsrc/wiki/pkgdev:signing

Let me know if anything needs further explanation.

@jdwhite
Copy link
Author

jdwhite commented Nov 23, 2020

Just a comment on this part to begin with:

At this point, GPG_KEYRING_VERIFY=/opt/pkg/etc/gnupg/pkgsrc.gpg and
VERIFIED_INSTALLATION=always are set in pkg_install.conf.
However, /opt/pkg/etc/gnupg/pkgsrc.gpg does not exist (yet).

This isn't correct, the bootstrap should include that file, which contains the public signing key for the packages:

You're correct; my bad. That does explain everything I asked about relating to verification of the installation of gnupg2.

root@jdwhites-Mac etc # cat pkg_install.conf

#GPG_KEYRING_PKGVULN=/opt/pkg/share/gnupg/pkgsrc-security.gpg
GPG_KEYRING_VERIFY=/opt/pkg/etc/pkgsrc.gpg`

There should be no need to do this, and there can be incompatibilities between the keys that GnuPG exports and what netpgpverify supports. If you really want to use GPG for verification (which you can, I just don't think there is any benefit in doing so, I spent a while implementing netpgpverify support so that external commands were not necessary) then you'll probably need to also update pkg_install.conf to include GPG=/path/to/gpg2.

Indeed, and even just creating a new keyring and importing your key causes verification issues, so I don't see how gpg2 works here at all. I'd seen various examples about setting GPG to /path/to/gpg2 so I thought that GnuPG was supported for signing/verification. I have no particular preference between gpg2/netpgp.

I think it'd help to understand what you're trying accomplish. Everything is set up out of the box to automatically validate packages, as you can see from your initial pkgin in gnupg2 it worked fine (the packages wouldn't install if the verification failed). If you just want to verify the bootstrap tarball then the instructions should provide the commands required for that, and you don't need to change pkg_install.conf. If you want to build your own packages and sign them then that's a little more involved and is described here: https://github.com/joyent/pkgsrc/wiki/pkgdev:signing

Ultimately, yes, building and signing my own packages is what started me down this road. I've known about your repo for a while but wanted to learn how to do this myself, plus set up my own binary repo (which is another story).

In reading the pkgdev:signing page it mentions using different gnupg2 packages depending on which pkgsrc version you're using. On my package build machine I'm using gnupg2 from pkgsrc-current. Sounds like that may be creating compatibility issues when I export my public signing key -- unsure here.

I was using gpg2 to create my signing key, but is the proper procedure to then export the public key with gpg2 or something else? netpgp says that you can export keys but I see no option to do that. I'm guessing it was either exporting with gpg2 or possibly importing with gpg2 to the pkgsrc.gpg keyring on the client machines that was mangling the public signing key. Would appreciate some clarity here.

Thank you.

@jdwhite
Copy link
Author

jdwhite commented Nov 23, 2020

root@jdwhites-Mac etc # file pkgsrc.gpg gnupg/pkgsrc.gpg 
pkgsrc.gpg:       GPG keybox database version 1, created-at Mon Nov 23 20:35:13 2020, last-maintained Mon Nov 23 20:35:13 2020
gnupg/pkgsrc.gpg: PGP/GPG key public ring (v4) created Tue Feb  3 07:11:36 2015 RSA (Encrypt or Sign) 4096 bits MPI=0xf807edd637e2537d...

Guessing netpgp/netpgpverify doesn't support key box database formats, perhaps.

@jdwhite
Copy link
Author

jdwhite commented Nov 23, 2020

gpg2 manpage talking about pubing.gpg files:

"If this file is not available, gpg defaults to the new keybox format and creates a file pubring.kbx unless that file already exists in which case that file will also be used for OpenPGP keys.

Note that in the case that both files, pubring.gpg and pubring.kbx exists but the latter has no OpenPGP keys, the legacy file pubring.gpg will be used. Take care: GnuPG versions before 2.1 will always use the file pubring.gpg because they do not know about the new keybox format. In the case that you have to use GnuPG 1.4 to decrypt archived data you should keep this file."

Sounds like either use <2.1 GnuPG, find a way to make >=2.1 GnuPG write older keyring format, use netpgp, or gpg 1.x.
I think this explains why I saw examples of others using gpg2 in there pkg_install.conf files.

@jdwhite
Copy link
Author

jdwhite commented Nov 24, 2020

I was using gpg2 to create my signing key, but is the proper procedure to then export the public key with gpg2 or something else? netpgp says that you can export keys but I see no option to do that. I'm guessing it was either exporting with gpg2 or possibly importing with gpg2 to the pkgsrc.gpg keyring on the client machines that was mangling the public signing key. Would appreciate some clarity here.

Found netpgpkeys. Unfortunately, both netpgp and netpgpkeys yield a segfault for me for every action. I just built these from pkgsrc-current on Catalina. Same results using packages from the Joyent repo.

@jdwhite
Copy link
Author

jdwhite commented Nov 24, 2020

I finally had success with signing and verifying packages using gpg v1.x in that I could successfully do a pkg_admin gpg-sign-package ... followed by a pkg_info -X .... After that success, if I replace GPG= with gpg2 (changing nothing else) then it doesn't find the secret key. Apparently gpg2 doesn't grok the 8-character version of the key id. Trying the longer version from gpg2 --list-keys doesn't work for signing ether -- can't find the key. I don't care about making it work with gpg2, was just curious since it's my impression is that gpg2 is supposed to work for gpg2 <2.1. Plus, I have a feeling that even if I could sign with gpg2 it would fail to verify due to netpgp stuff.

@jperkin
Copy link
Collaborator

jperkin commented Nov 24, 2020

Yeh, this is why I specifically have our https://github.com/joyent/pkgsrc-joyent/tree/master/gnupg20 package which retains the 2.0.x branch. I needed it because they broke gpg-agent compatibility in 2.2.x but it also seems like they broke compatibility in other areas too.

You should be able to install the gnupg20 package to get it, and then I think things should work correctly.

jperkin pushed a commit that referenced this issue Jan 13, 2021
## v0.16.0 / 2020-11-24

Features:

* Special custom unit: cells. A "cell" defaults to 37.5px, or 1/8in,
  e.g. `x: '1 cell'` means `x: 37.5`.  See the docs for details.

* Shorthands for `x`, `y`, `width`, and `height`! The words `x: 'middle'`
  and `x: 'middle + 1in'` will get interpreted.  See the docs for details.

* Autoscaling text! `ellipsize: :autoscale` will now downscale your
  `font_size` if the text ellipsized.  Thanks @Qgel! (#288, #111).

* Option checking!! Completely reworked the way we handle arguments in
  Squib internally (no external behavioral differences).  Now, when you
  give an option to Squib that is not expected.  Since every DSL method
  "knows" what options it takes, that also means we have EVERY option
  properly documented (missed a few...) AND we have an automated test that
  will tell us if we forget to document it.

* `save_png` and `save_sheet` now have a `suffix` option which defaults to
  `''`.  So now you can customize the filenames with `prefix`,
  `count_format`, and `suffix`.

Compatibility:

* When saving PNGs with sprues, outputs start counting at zero - which is
  more consistent with the rest of Squib.

* Minimum Ruby is now 2.5. NOTE: Ruby 3.0 is coming Christmas 2020!! Check
  it out.

Bugs:

* Extra page/no page issue with sprues (#320)
* Fix Ruby 2.7+ deprecations with CSV arguments (#303)

Chores:
* Reorganized the code internally. (#298) Every DSL method now has its own file.
* Moved to Github Actions
* Bump pango et al
jperkin pushed a commit that referenced this issue Jan 27, 2021
Most work done by leot@ and sjmulder@ in pkgsrc-wip.

tig-2.5.1
---------

Improvements:

 - bash/zsh completion: reimplement and decrease runtime by factor 1863. (#795)
 - Add binding to reflog view to toggle reference display.
 - Fail if tig is given an invalid or ambiguous ref. (#980)
 - Make tig process-group leader an option. (#986, #951)
 - Handle GIT_WORK_TREE environment variable.
 - The blame view requires a working tree.
 - Fix use of deprecated vwprintw() function.
 - Update utf8proc to v2.5.0.
 - Add --word-diff=plain colorizing support. (#221)

Bug fixes:

 - Fix segmentation fault. (#971)
 - Fix cursor position after "Move to parent" in blame view. (#973)
 - Fix crash on adding a line to a view. (#523)
 - Fix memory leak in diff unit.
 - Fix loop after refresh or change in refs/main split view. (#991)
 - Fix occasional crash on custom key bindings. (#1001)

tig-2.5.0
---------

Improvements:

 - Single file view enters blame mode on "b". (#804)
 - Show untracked files in the default view. (#762)
 - Disable graph if log.follow is enabled and there is only one pathspec.
   (#881)
 - Disable graph for author searches.
 - git_colors: interpret 'ul' as 'underline'.
 - Add refname variable. (#900)
 - Add -C option to specify the working directory. (#570)
 - Improve behaviour of auto and periodic refresh modes. (#389, #441, #482,
   #794, #888, #932)
 - Add support for repos created with git --work-tree. (#872)
 - Add diff-highlight to pager mode.
 - Show annotated commits in main view. (#819)
 - Introduce reflog view. (#538)
 - Add option to start with cursor on HEAD commit. (#755)
 - Support combined diffs with more than 2 parents.
 - Improve how a toggle option value is shown on the status line. (#879)
 - Add options to filter refs output. (#694)
 - Update utf8proc to v2.4.0. (#961)

Bug fixes:

 - Fix garbled cursor line with older ncurses versions.
 - Fix diff highlighting of removed lines starting with -- and added lines
   starting with ++. (#871, #875)
 - Fix loop when displaying search result if regex matches an empty string.
   (#866)
 - Add synchronous command description in tigrc.
 - Fix parsing of git rev-parse output. (#884)
 - Propagate --first-parent to diff arguments. (#861)
 - Use proper type for hash table size. (#858)
 - Fix incorrect cppcheck warning about realloc() use.
 - Don't shift signed int by 31 bits.
 - Fix Vim going background after running Tig outside of a git repository.
   (#906)
 - make-builtin-config: use "read -r". (#912)
 - Fix segfaults with readline 8.0. (#893)
 - Reset state before closing stage view automatically.
 - Don't use a child view as previous view.
 - Force reload of VIEW_FLEX_WIDTH views only when needed.
 - Combined diff uses @@@ as hunk marker.
 - Fix memory leak induced by 'tig grep'.
 - Fix memory leak in main view.
 - Exit gracefully if refs view was defined without ref column. (#897)
 - Fix pager view not moving up when child view is open.
 - make-builtin-config: Fix unportable sed usage in read_tigrc().
 - Properly detect combined diffs. (#942)

tig-2.4.1
---------

Bug fixes:

 - Add `CURSES_CFLAGS` to `CPPFLAGS`. (#856, Linuxbrew/homebrew-core#8440)

tig-2.4.0
---------

Improvements:

 - Add 'send-child-enter' option to control interaction with child views.
   (#791)
 - Update make config defaults for Cygwin to ncurses6. (#792)
 - Build against netbsd-curses. (#789)
 - Change the blame view to render more like `git blame`. (#812)
 - Improve worktree and submodule support. (#459, #781, #783)
 - Support running Tig via a Git alias. (#763)
 - Use ISO-8601 letters for short relative dates. (#759, #760)
 - Change date formatting to show time zones by default. (#428, #811)
 - Use utf8proc to handle Unicode characters. (#827)

Bug fixes:

 - Fix `file(1)` argument on Linux used for resolving encodings. (#788)
 - Fix underflow in the file search. (#800, #801)
 - Fix line numbers in grep view when scrolled. (#813)
 - Pass command line args through to the stage view. (#569, #823)
 - Fix resource leak. (#780)
 - Fix various compiler warnings and pointer arithmetic. (#799, #803)
 - Workaround potential null pointer dereferences. (#824)
 - Bind to single and double quotes by using the *<SingleQuote>* and
   *<DoubleQuote>* key mappings. (#821)
 - Make Tig the process-group leader and clean child processes. (#828, #837)
 - Fix sh compatibility in `contrib/tig-pick`. (#832)
 - Fix incorrect behaviour of up and down keys in diff view when opened from
   diff preview. (#802, #835)
 - Open the stage view when maximizing a split diff view of (un)staged changes.
   (#836)
 - Use fully qualified reference name for tags when conflicting with branch
   name. (#746, #787, #849)
 - Fix resize not working after entering command. (#845) (#846)
 - Use stack allocated memory to handle `TIG_LS_REMOTE`. (#839)
 - Fix deleted file mode line remains highlighted after hovering in diff or
   stage view. (#851)
 - Fix `TIG_LS_REMOTE` not working with git-ls-remote(1). (#853, #854)

tig-2.3.3
---------

Bug fixes:

 - Revert "Handle \n like \r (#758)". (GH #769)
 - Fix GH #164 by catching SIGHUP.
 - Change `refs_tags` type to `size_t`.

tig-2.3.2
---------

Bug fixes:

 - Fix busy loop detection to handle large repos. (GH #164)

tig-2.3.1
---------

Improvements:

 - Restore TTY attributes. (GH #725)
 - Handle `\n` like `\r`. (GH #758)

Bug fixes:

 - Add workaround that detects busy loops when Tig loses the TTY. This may
   happen if Tig does not receive the HUP signal (e.g. when started with
   `nohup`). (GH #164)
 - Fix compatibility with ncurses-5.4 which caused copy-pasting to not work
   in the prompt. (GH #767)
 - tig(1): document correct environment variable. (GH #752)

tig-2.3.0
---------

Incompatibilities:

 - The `width` setting on the `status`, `text` and `commit-title` columns was
   never applied and has been removed. (GH #617)

Improvements:

 - Improve load performance by throttling screen updates. (GH #622, #629)
 - Speed up graph rendering. (GH #638)
 - Enable scroll optimizations for Terminal.app and iTerm2. (GH #637)
 - Improve the test suite portability to not depend on GNU sed. (GH #609, #614)
 - Make build reproducible. (https://reproducible-builds.org/) (GH #613)
 - Enable binding to more symbolic keys and keys with control modifier:
   `F13`-`F19`, `ShiftLeft`, `ShiftRight`, `ShiftDel`, `ShiftHome`, `ShiftEnd`,
   `ShiftTab`, `Ctrl-C`, `Ctrl-V`, `Ctrl-S`, and `Ctrl-@`. (GH #314, #619,
   #642)
 - Persist readline history to `~/.tig_history` or `$XDG_DATA_HOME/tig/history`.
   Use `history-size` to control the number of entries to save. (GH #620, #713,
   #714, #718)
 - Preload last search from persistent history. (GH #630)
 - Add `view-close-no-quit` action, unbound by default. (GH #607)
 - Add `mouse-wheel-cursor` option (off by default) when set to true causes
   wheel actions to prefer moving the cursor instead of scrolling. (GH #608)
 - Add `truncation-delimiter` option, set to `~` by default. (GH #646)
 - Add `-q` parameter to `source` for "source-if-present". (GH #612)
 - Add `:echo` prompt command to display text in the status bar. (GH #626, #636)
 - Make `diff-highlight` colors configurable. (GH #625, #633)
 - Let Ctrl-C exit Y/N dialog, menu prompts and the file finder. (GH #632, #648)
 - Hide cursor unless at textual prompt. (GH #643)
 - Expand tilde ('~') in `:script` paths. (GH #674)
 - Show single-line output of external command in status bar. (GH #200, #557,
   #678)
 - Disable the graph when `--no-merges` is passed. (GH #687)
 - Print backtraces on segfault in debug mode.
 - Ignore script lines starting with `#` (comment). (GH #705)
 - Complete `repo:*` variables when readline is enabled. (GH #702)
 - Incorporate XTerm's `wcwidth.c` to find Unicode widths. (GH #691)

Bug fixes:

 - Fix graph display issues. (GH #419, #638)
 - Fix and improve rendering of Unicode characters. (GH #330, #621, #644, #682)
 - Handle hyphenated directory names when listing content. (GH #602)
 - Do not jump to next match when cancelling the search prompt. (GH #627)
 - Fix clearing of the status line after `Ctrl-C`. (GH #623, #649)
 - Fix handling of width on line-number and trimmed width of 1. (GH #617)
 - Set cursor position when not updating prompt contents. (GH #647)
 - Erase status line at exit time for users without altscreen-capable terminals.
   (GH #589)
 - Fix unexpected keys when restoring from suspend (`Ctrl-Z`). (GH #232)
 - contrib/vim.tigrc: Also bind G in the main as a workaround for limitations of
   the `none` action. (GH #594, #599)
 - Only override `blame-options` when commands are given and fix parsing of
   `-C`. (GH #597)
 - Fix diff name discovery to better handle prefixes.
 - Interpret button5 as wheel-down. (GH #321, #606)
 - Fix `back` / `parent` in tree view. (GH #641)
 - Fix memory corruption in `concat_argv` and file finder. (GH #634, #655)
 - Fix reading from stdin for `tig show`.
 - Document problem of outdated system-wide `tigrc` files in Homebrew. (GH #598)
 - Repaint the display when toggling `line-graphics`. (GH #527)
 - Fix custom date formatting support longer strings. (GH #522)
 - Don't segfault on ":exec" irregular args. (GH #686)
 - Fix segfault when calling htab_empty. (GH #663, #745)

tig-2.2.2
---------

Upgrade instructions:

 - The `status-untracked-dirs` option was renamed to
   `status-show-untracked-dirs` to match the new `status-show-untracked-files`
   option.

Improvements:

 - Use `diff-options` when preparing the diff in the stage view to make the diff
   state configurable. (GH #545)
 - Add 'status-show-untracked-files' option mirroring Git's
   'status.showUntrackedFiles' to toggle display of untracked files.  in the
   status view. On by default. (GH #562)
 - Update `ax_with_curses.m4` and use `pkg-config` to detect. (GH #546)
 - Add `tig-pick` script for using Tig as a commit picker. (GH #575, #580)
 - Add "smart case" option ('set ignore-case = smart-case') to ignore case when
   the search string is lower-case only. (GH #320, #579)

Bug fixes:

 - Fix author ident cache being keyed by email only. (GH #424, #526, #547)
 - Fix periodic refresh mode to properly detect ref changes. (GH #430, #591)
 - Add workaround for detecting failure to start the diff-highlight process.
 - Show diffs in the stash view when `set mailmap = true`. (GH #556)
 - Fix parsing of git-log revision arguments, such as `--exclude=...` in
   conjunction with `--all`. (GH #555)
 - Fix diff stat parsing for binary copies.
 - Fix crash when resizing terminal while search is in progress. (GH #515, #550)
 - Fix argument filtering to pass more arguments through to Git.
 - Check for termcap support in split tinfo libs. (GH #568, #585)

tig-2.2.1
---------

Improvements:

 - Support Git's 'diff-highlight' program when `diff-highlight` is set to either
   true or the path of the script to use for post-processing.
 - Add navigation between merge commits. (GH #525)
 - Add 'A' as a binding to apply a stash without dropping it.
 - Bind 'Ctrl-D' and 'Ctrl-U' to half-page movements by default.
 - manual: Mention how to change default Up/Down behavior in diff view.

Bug fixes:

 - Reorganize checking of libraries for termcap functions.
 - Fix `:goto <id>` error message.

tig-2.2
-------

Incompatibilities:

 - Note that all user-defined commands are now executed at the repository root
   instead of whatever subdirectory Tig was started in. (GH #412)
 - Remove `cmdline-args` option to avoid problems where setting it in `~/.tigrc`
   potentially breaks other views due to its "context-sensitive" nature, where
   a `git-log` option maybe cause `git-grep` to fail. (GH #431)

Improvements:

 - Use .mailmap to show canonical name and email addresses, off by default.
   Add `set mailmap = yes` to `~/.tigrc` to enable. (GH #411)
 - Highlight search results, configurable via `search-result` color. (GH #493)
 - Wrap around when searching, configurable via `wrap-search` setting.
 - Populate `%(file)` with file names from diff stat. (GH #404)
 - `tig --merge` implies `--boundary` similar to gitk.
 - Expose repository variables to external commands, e.g. `%(repo:head)` gives
   the branch name of the current HEAD and `%(repo:cdup)` for the repo root
   path.
 - Add `make uninstall`. (GH #417)
 - Add ZSH completion file (based on Bash completion) (GH #433)
 - Expose the text of the currently selected line as the %(text) (GH #457)
 - Allow users to specify rev arguments to blame (GH #439)
 - Update OSX make config to find brew installed ncurses
 - Add sample git-flow keybinding (GH #421)
 - Add chocolate theme (GH #432)
 - Show stash diffs. (GH #328)
 - Make user tigrc location configurable. (GH #479)
 - Compact relative date display mode. (GH #331)
 - Add date column option controlling whether to show local date.
 - Move to parent commit in the main view. (GH #388)
 - Add `:goto <rev>` prompt command to go to a `git-rev-parse`d revision, e.g.
   `:goto some/branch` or `:goto %(commit)^2`.
 - Respect the XDG standard for configuration files. (GH #513)
 - Show tracking information in `tig status` (GH #504)
 - Resolve diff paths when `diff.noprefix` is true. (GH #487, #488)
 - Support for custom `strftime(3)` date formats, e.g.:

	set main-view-date = custom
	set main-view-date-format = "%Y-%m-%d"

Bug fixes:

 - Prevent staged rename from displaying unstaged changes (GH #472, #491)
 - Fix corrupt chunk header during staging of single lines. (GH #410)
 - Fix out of bounds read in graph-v2 module. (GH #402)
 - Add currently checked out branch to `%(branch)`. (GH #416)
 - Size diff stats correctly for split views.
 - Fix `git-worktree` support by using `git-show-ref`. (GH #437)
 - Add currently checked out branch to `%(branch)` (GH #416)
 - Fix segfault when hitting return in empty file search (GH #464)
 - Remove separator on horizontal split when switching from vertical split
 - Do not expand `--all` when parsing `%(revargs)` (GH #442, #462)
 - Fix exit when the main view is reloaded due to option toggling. (GH #470)
 - Expand all whitespace and control characters to spaces. (GH #485)
 - Restore ability to unbind a default keybinding with `none`. (GH #483)
 - Fix blob view to honor the `wrap-lines` setting.

tig-2.1.1
---------

Improvements:

 - Add support for key combos. (GH #67)
 - See `contrib/vim.tigrc` for Vim-like keybindings. (GH #273, #351)
 - Add GitHub inspired file finder to search for and open any file. (GH #342)
 - Add `search` keymap for navigating file finder search results.

Bug fixes:

 - Fix display of multiple references per commit. (GH #390, #391)
 - Sync the prompt's cursor position with readline's internal position.
   (GH #396)
 - Keep unstaged changes view open after an staging command. (GH #399)

tig-2.1
-------

Improvements:

 - Improve C99 compliance so Tig compiles with the native compilers on
   Solaris (SunStudio cc) and AIX (xlc). (GH #380)
 - Add move-half-page-up and move-half-page-down actions. (GH #323)
 - Preserve the cursor position when changing the diff context.
 - Show 'Unstaged changes' above 'Staged changes' in the main view. (GH #383)
 - Add `:exec <flags><args...>` prompt command to execute commands.
 - Add shorthand for changing the view settings of a single column,
   eg. `set main-view-author = short`. (GH #318)
 - Show better diff context info in the stage view.
 - Add `%(lineno)` state variable. (GH #304)
 - Use hash table to speed up refs lookup. (GH #350)
 - Show the file path in the blob view when available.
 - Use `set commit-order = default` to use Git's default commit order, even when
   the commit graph is enabled. The option will turn off automatic enabling of
   `--topo-order` when the graph is shown in the main view. (GH #310, #324)
 - Speed up the diff view in large repos by loading git-describe info after the
   diff content has been read. (GH #324)
 - Add the old graph rendering as an option. (GH #310, #324)
 - Add `main-options` setting for specifying default main view options.
   Example: `set main-options = --max-count=1000`. (GH #368)
 - See `contrib/large-repo.tigrc` for settings that will help to speed up Tig in
   large repos. (GH #368)
 - Add `:save-options <file>` prompt command to save config to file. (GH #315)

Bug fixes:

 - Update manual to reflect default keybinding changes. (GH #325)
 - Fix graph support for `--first-parent`. (GH #326)
 - Fix off-by-one error when opening editor from the grep view.
 - Fix status on-branch information.
 - Fix main view to handle the case when git-log doesn't find any commits.
 - Fix corner case when parsing diff chunk when lines information is missing.
 - Ensure main view changes commits are shown right before the current HEAD.
 - Fix rendering of boundary commits.
 - Fix compilation with GNU Make 3.80 by removing `$(abspath)`. (GH #362)
 - Fix config parsing to support shell-like quoting in user-defined command,
   e.g. `bind generic <Ctrl-f> :!git log -G"%(prompt Prompt: )"` (GH #371)
 - Make diff meta information colors more consistent with Git. (GH #375)
 - Fix segfault when updating changes in a maximized stage view opened via the
   main view. (GH #376)
 - Handle line number configs where the interval is not specified. (GH #378)
 - Fix display of error messages during startup. (GH #385)
 - Show untracked files outside the current directory like git-status. (GH #230)

tig-2.0.3
---------

Improvements:

 - Add `:save-display <file>` prompt command to save the current display.
 - Add `:script <file>` prompt command for scripting the Tig UI.
 - Add test framework and convert existing tests to use it.
 - Add command-line option for starting in refs view: `tig refs`. (GH #309)
 - Make blame commit ID colors stable across reloads. (GH #303)
 - Increase blame ID and graph rendering color palette to 14 colors.
 - New setting 'split-view-width' controls the width for vertical splits. It
   takes the width of the right-most view either as a number or a percentage.
 - Expose settings holding command line argument lists: `file-args`, `rev-args`,
   and `cmdline-args`. They are mainly intended for testing purposes but also
   allows to change the filtering arguments dynamically. (GH #306)
 - Add `log-options` setting for specifying default log view options.
   Example: `set log-options = --pretty=fuller`.
 - Use option specific view flags to reload view after `:set` commands.

Bug fixes:

 - Refresh the current view when returning from an external command and
   `refresh-mode=after-command`. (GH #289)
 - Fix readline completion.
 - Fix '/' to `find-next` when readline support is enabled. (GH #302)
 - Fix readline prompt to correctly handle UTF-8 characters.
 - Add warnings for more obsolete actions and colors.
 - Fix passing of commit IDS via stdin to the main view.
 - Fix commit title overflow drawing for multibyte text. (GH #307)
 - Fix installation directory permissions.
 - Handle binary files matches reported by git-grep.
 - Toggling of "args"-typed options without any arguments will clear the current
   arguments. Example: `:toggle blame-options`.
 - Detect custom `pretty.format` settings that break the log view and fallback
   to use the `medium` format. (GH #225)
 - Fix invocation of git-diff for the blame view's line tracking. (GH #316)
 - Fix blame completion of directory names. (GH #317)
 - Fix display of conflicts in the main view when 'show-changes' is enabled.
 - Fix off-by-one error when displaying line numbers in the grep view.
 - When showing the commit graph ensure that either topo, date or author-date
   commit order is used. (Debian #757692) (GH #238)

tig-2.0.2
---------

Improvements:

 - Use git-status for diffing the index.
 - Group toggle options together in the help view.

Bug fixes:

 - Fix refs, main and grep loading when 'gui.encoding' is set. (GH #287)
 - Ignore 'gui.encoding' and 'i18n.commitencoding' when set to 'UTF-8'.
 - Add work-around for missing strndup() on Mac OS X v10.6. (GH #286)
 - Fix spurious abbreviation of author names. (GH #288)
 - Don't show empty action groups in the help view.

tig-2.0.1
---------

Bug fixes:

 - Fix compilation in watch.c.
 - Fix parsing of key bindings mapped to '^' and '<'. (GH #280, #282)

tig-2.0
-------

Incompatibilities:

 - In preparation for key combo support, key mappings for symbolic keys (e.g.
   `Up` and `Down`) must now start with `<` and end with `>`, e.g. `<Up>` and
   `<Down>`. Furthermore, escape key combos must now use `<Esc>key` instead of
   `^[key`, and control key mappings must now use `<Ctrl-key>` instead of
   `^key`.
 - Only use 'diff-options' for the diff view and introduce '%(cmdlineargs)' to
   hold non-file and non-revision flags passed on the command line. Affects all
   user-defined commands that expect '%(diffargs)' to hold both 'diff-options'
   arguments and those passed on the command line. (GH #228)
 - Remove built-in keybinding for `git gc`. Add the following line to `~/.tigrc`
   to restore it: `bind generic G ?git gc`.
 - To support view specific colors, '.' can no longer be used interchangeably
   with '-' and '_' in settings names and in particular color names.
 - Replace 'stage-next' action with prompt command using a predefined search
   (see below) and add binding (`@` by default) to also work in the diff view.
 - Most view display options must now be set via the new `*-view` options in
   tigrc. Existing options are no longer recognized, but a warning is shown.
 - Remap default bindings to have more consistent convention: use lower-case
   keys primarily for view switching and non-destructive actions, use upper-case
   keys for view-specific actions including user-defined commands. To preserve
   old default key bindings see `contrib/bindings-v1.x.tigrc`. (GH #257)

Improvements:

 - Add mouse support: scroll view, click line to move cursor, double click line
   (or click again) to "Enter" cursor line, e.g. open commit diff. Disabled by
   default, since it makes text selection less intuitive. If you enable this
   remember to hold down Shift (or Option on Mac) when selecting text.
 - Rewrite and improve the rendering of the commit graph. (GH #144, #46)
 - Add completion and history support to the prompt via readline. (GH #185)
 - Options can be configured and toggled individually for each view. Use the new
   view settings to configure the order and display options for each view
   columns. See system tigrc and tigrc(5) for examples. (GH #89, #222)
 - Add grep view as a front-end to git-grep(1): `tig grep -p strchr`. From
   within Tig, the key for switching or grepping is bound to 'g' by default.
 - Rename 'branch' view to 'refs' view and show tags. (GH #134)
 - Add main view pager mode that reads git-log's '--pretty=raw' data
   from stdin, e.g. `git reflog --pretty=raw | tig --pretty=raw`.
 - Add support for `--graph` and highlight diff stats in the log view.
 - Add default command bindings: `!` to delete branch, `!` to drop stash.
 - Add 'stage-split-chunk' action for splitting chunks in the stage view.
   Bound to '\' by default. (GH #107)
 - Add 'back' action bound to '<' by default, which will return the blame view
   to the previous revision and line after moving e.g. to the parent. (GH #124)
 - Auto-refresh views based on watched repository changes. Configure by setting
   `refresh-mode` to 'manual', 'auto', 'after-command', or 'periodic'. (GH #190)
 - All default settings are in well-documented system `tigrc`.
 - Add `:toggle` prompt command to manipulate options using keybindings. For
   example: `bind diff D :toggle diff-options --patience --notes`. (GH #69)
 - Add a new "auto" value for the 'vertical-split' option to let Tig choose the
   split orientation (this is the new default behavior). Can be toggled.
 - Make it possible to toggle the display of files in untracked directories.
 - Allow Tig to be started with no default configuration by specifying an
   alternative system `tigrc` file, e.g.: `TIGRC_SYSTEM=~/.tigrc.safe tig`. Set
   `TIGRC_SYSTEM` to the empty string to use built-in configuration instead of
 - Key mappings can contain UTF-8 multibyte unicode keys.
 - Warn about conflicting keybindings using Ctrl, e.g. `<Ctrl-f>` and
   `<Ctrl-F>`. (GH #218)
 - Extend key bindings for prompt commands (ie. `bind <keymap> <key> :<prompt>`)
   to support predefined searches, eg.: `bind stage 2 :?^@@`.
 - Git color mappings can be configured in tigrc.
 - More informative configuration error messages.
 - Make reference label formatting configurable, for example:
   `set reference-format = (branch) <tags> remote`. (GH #201)
 - Adjust author width and other view columns automatically. (GH #49)
 - Support view specific colors: `color stage.diff-add yellow default`.
 - Copy `-S`, `-G` and `--grep=` pattern to search buffer so 'find-next' and
   'find-prev' work as expected.
 - Optionally specify custom prompt for `%(prompt)` in shell commands, e.g.
   `bind main B ?git checkout -b "%(prompt Enter new branch name: )"`.
 - Add `%(remote)` and `%(tag)` symbols to complement `%(branch)`.
 - User-defined commands can now be prefixed with any of the supported flags,
   e.g. `?git checkout -b %(branch)`.
 - Open editor at line number for combined diffs e.g. diffs of unmerged files.
 - Add build configuration for Cygwin (OS name: CYGWIN_NT-6.1). (GH #92)
 - Document the Git commands supported by the pager mode.  (GH #1)
   system `tigrc` configuration. (GH #235)

Bug fixes:

 - Fix stash diff display when reloading the stash view after a deleting.
 - Set the commit reference when opening the blame view from the blob view.
 - Correctly identify and highlight the remote branch tracked by HEAD.
 - Pass --no-color after user defined arguments to ensure that colors do not
   break the output parsing. (GH #191)
 - Close stdin when pager mode is not supported.
 - Show newly created branches in the main view. (GH #196)
 - File with 0 changes breaks diffstat highlighting (GH #215)
 - Update %(branch) variable in the main view. (GH #223)
 - Disable graph rendering when either of `--reverse`, `-S`, `-G`, and `--grep`
   are passed to the main view. (GH #127)
 - Only refresh views that support it.
 - Fix author and date annotation of renamed entries in the tree view.
 - Fix use of unsafe methods in the signal handler. (GH #245)
 - Fix rendering in non-UTF8 terminals.
 - Fix stage-update-line by rewriting the diff chunk containing the line instead
   of using `--unidiff-zero` and a diff context of zero. (GH #130)
 - Fix status-update to work for untracked directories. (GH #236)
 - Don't pass log parameters given on the command line to the diff view.
jperkin pushed a commit that referenced this issue Apr 26, 2021
0.2.13.0
* Add HashMap.compose. Thanks Alexandre Esteves.

0.2.12.0
* Add HashMap.isSubmapOf[By] and HashSet.isSubsetOf. Thanks Sven
  Keidel. (#282)
* Expose internal modules. (#283)
* Documentation improvements in Data.HashSet, including a
  beginner-friendly introduction. Thanks Matt Renaud. (#267)
* HashMap.alterF: Skip key deletion for absent keys. (#288)
* Remove custom unsafeShift{L,R} definitions. (#281)
* Various other documentation improvements.

0.2.11.0
* Add HashMap.findWithDefault (soft-deprecates
  HashMap.lookupDefault). Thanks, Matt Renaud.
* Add HashMap.fromListWithKey. Thanks, Josef Svenningsson.
* Add more folding functions and use them in Foldable
  instances. Thanks, David Feuer.
* Add HashMap.!?, a flipped version of lookup. Thanks, Matt Renaud.
* Add a Bifoldable instance for HashMap. Thanks, Joseph Sible.
* Add a HasCallStack constraint to (!). Thanks, Roman Cheplyaka.

Bug fixes
* Fix a space leak affecting updates on keys with hash
  collisions. Thanks, Neil Mitchell. (#254)
* Get rid of some silly thunks that could be left lying
  around. (#232). Thanks, David Feuer.

Other changes
* Speed up the Hashable instances for HashMap and HashSet. Thanks,
  Edward Amsden.
* Remove a dependency cycle hack from the benchmark suite. Thanks,
  Andrew Martin.
* Improve documentation. Thanks, Tristan McLeay, Li-yao Xia, Gareth
  Smith, Simon Jakobi, Sergey Vinokurov, and likely others.
jperkin pushed a commit that referenced this issue Jun 15, 2021
httpuv 1.6.1
============

* The `timegm()` function is a non-standard GNU extension, so it has
  been replaced with an internal `timegm2()` function. (#300)

httpuv 1.6.0
============

* Remove BH dependency. httpuv now requires a compiler which supports
  C++11. (#297)

httpuv 1.5.5
============

* Fix SHA1 calculation, and thus WebSocket server handshakes, on
  big-endian systems. (#284)

* Fixed #195: Responses required `headers` to be a named list. Now it
  can also be `NULL`, an empty unnamed list, or it can be
  unset. (#289)

* Allow responses to omit `body` (or set it as `NULL`) to avoid
  sending a body or setting the `Content-Length` header. This is
  intended for use with HTTP 204/304 responses. (#288)

httpuv 1.5.4
============

* Fixed #275: Large HTTP request headers could get truncated if they
  spanned more than one TCP message. (#277)

* Fixed build for Solaris. (#271)

* Fixed a test that had incorrect logic. (#272)

httpuv 1.5.3.1
==============

* Updated libuv to version 1.37.0. (#266)

* Fixed #204: On UBSAN builds of R, there were warnings about
  unaligned memory access. (#246)

* Avoid creating a new Rook error stream object for each request. This
  should improve performance. (#245)

* Resolved #247: httpuv no longer returns a HTTP 400 code for static
  files when the "Content-Length" header is 0. This Content-Length
  header is inserted by some proxies even for messages without
  payloads. (#248)

* Resolved #253: Setting the FRAMEWORK environment variable would
  break compilation.  This change removes any dependency on that
  variable. (#254)

httpuv 1.5.2
============

* In the static file-serving code path, httpuv previously looked for a
  `Connection: upgrade` header; if it found this header, it would not
  try to serve a static file, and it would instead forward the HTTP
  request to the R code path. However, some proxies are configured to
  always set this header, even when the connection is not actually
  meant to be upgraded. Now, instead of looking for a `Connection:
  upgrade` header, httpuv looks for the presence of an `Upgrade`
  header (with any value), and should be more robust to
  incorrectly-configured proxies. (#215)

* Fixed handling of messages without payloads: (#219)

* Fixed #224: Static file serving on Windows did not work correctly if
  it was from a path that contained non-ASCII characters. (#227)

* Resolved #194, #233: Added a `quiet` option to `startServer`, which
  suppresses startup error messages that are normally printed to
  console (and can't be intercepted with `capture.output()`). (#234)

* Added a new function `randomPort()`, which returns a random
  available port for listening on. (#234)

* Added a new (unexported) function `logLevel()`, for controlling
  debugging information that will be printed to the
  console. Previously, httpuv occasionally printed messages like
  `ERROR: [uv_write] broken pipe` and `ERROR: [uv_write] bad file
  descriptor` by default. This happened when the server tried to write
  to a pipe that was already closed, but the situation was not
  harmful, and was already being handled correctly. Now these messages
  are printed only if the log level is set to `INFO` or
  `DEBUG`. (#223)

* If an application's `$call()` method is missing, it will now give a
  404 response instead of a 500 response. (#237)

* Disallowed backslash in static path, to prevent path traversal attacks. (#235)

* Static file serving on Windows could fail if multiple requests
  accessed the same file simultaneously. (#239)
jperkin pushed a commit that referenced this issue Aug 3, 2021
0.8.2

Changes
 - Improved yank and undo alloc'ing. Malloc as much we need from start
   in a long batch and avoid small mallocs.
 - Changed the way lua scripts are referenced in formulas. Now they are
   input as any other string formula, like this:
   \"@lua("script_name.lua", 1) being 1 if the reference should be added
   to the depgraph or not, making it evaluated just once or every time
   the depgraph is evaluated.
   NOTE that if set to 0 and the cell is referenced by another cell, it
   will be executed nonetheless.
 - Added new exec_lua configuration variable.
 - Rows now can have height higher than one LINE. See fj and fk in
   normal mode or :formatrow in command mode.
 - Wrap cell content. new autowrap config value. works when nooverlap
   and notruncate are set.
 - Open URL or file specified on cell (PR 401)
 - Import mkd files
 - Multiple frozen rows/columns (fr / fc in normal mode)
 - Added mapping_timeout configuration variable with a default value of
   1500ms (used to be a fixed value of 800ms).
 - Added mouse support in insert and command mode. The selection of a
   cell gets copied to inputbar.
 - Added command_timeout configuration variable.
 - handle hidden rows/cols in undo/redo of ir/ic/dr/dc
 - Added backwards search with '?'
 - Restore \\* from old SC. \\{char} fills the cell with n occurrences
   of {char} to complete its width
 - Store frozen rows and cols when saving file
 - Added :formatcol command (handling its undo as well)
 - Added :formatrow command (handling its undo as well)
 - Added undo of freeze row and col
 - Handle \n in cell input, and with autowrap
 - Handle undoing changes in row height produced by string input
 - Changed input bar from window to pad: permits entering string longer
   than COLS.
 - @count counts cells with strings as well, and not just with numbers.
 - Handle entering a label after :datefmt for datetime value edition.
 - New dracula / papercolor themes.
 - Added EvalRange() so that the graph is not evaluated entirely all the
   time.
 - Replaced 'EvalAll' with 'EvalRange'.
 - Removed unneeded parameters on EvalJustVertex"
 - Added eval_order in EvalRange and rebuild_graph.
 - Added @evaluate / @sevaluate functions
 - Handle @nval dependencies.
 - Handle @mycol/@myrow calls during startup when no EvalJustOneVertex
   is yet called
 - Added @getent (FR issue #451)
 - The saving format for :w command would be according to current file
   format. #493
 - modified savefile() of file.c to check current file format before
   saving a file.
 - Keep consistent with other format such as csv and save the file with
   the same format as current file.
 - Added HELP_HIGHLIGHT definition color for help page.
 - Renamed GRID_PAIR to GRID_EVEN in color.c.
 - UNDO of :fsum is handled by let.
 - calc_offscr_rows/cols rewriten and renamed to calc_mobile_rows/cols

Fixes
 - Fix old sc bug - issue #371
 - Fix when saving sc files of cells that has some string expressions -
   issue #541
 - Fix leak in nval.
 - Fix Issue #372.
 - Free lua memory at exit.
 - Fix when saving marks in file after importing xlsx file and saving it
   in sc format.
 - EXPR and NUMBER colors were overloaded by STRING color #546
 - Fix markdown export when empty col was added left to data
 - Fix in :showrows command.
 - :fsum added to command mode commands. It was missing.
 - Added :showcols command that was missing.
 - Handled issue #429
 - handled issue #374
 - Ignore SIGWINCH outside ncurses.
 - triggers: Avoid segfault when not being able to load module. Issue
   #325

0.8.1

New features
 - Braille support
 - Added latex export - issue #394
 - Added mappings for command mode
 - Work on issues #225 and #247: support mapping of ñ and other special
   chars
 - Basic ODS file import
 - Paste to a range of selected cells - (actually added on v0.8 - issue
   438 - PR 445)
 - Added txtdelim | for csv files import - issue 409
 - Added macros to --version (show version)
 - Support higher versions of lua.
 - Handle ESC key in mappings. related to issue #492.
 - Added freeze to visual mode - issue #459

Changes
 - Recognise SPACE in mappings rather than simple ' '
 - Visual change: Moved cmd multiplier to the left of mode
 - Changed default headings colors
 - many improvements to the config facility and usage - PR 519
 - improved sort for 65k rows

Fixes
 - Fix issues on CIRCULAR REFERENCES: #473 #201 #475 #321. these were as
   hard.
 - Fix issue 417 and added a date type in xlsx import.
 - Fix Engformat overlap text y número. Mostraba * (actually fixed
   on v0.8)
 - Fix column header display - overflow with column width 2 and column
   with two letters - PR 517
 - Fix isnumeric test to recognise floats: affects copy/paste - PR 450
 - Fix issue setting conf variables like nonumeric
 - Fix when showing empty text - 944844505d7cdb7d3d392a5c1d2b3ffde40a1fff
 - Fix issue #227 - this was hard. used to segfault and keep wrong
   reference after deleting row that is last in range of expr. ex.
   @AvG(B1:B4) and deleting row 4
 - Fix issue #433: large memory use with multiple linked cells.
 - Fix issue #287 - valueize didnt update depgraph
 - Solved issue #399. 'g' command of NORMAL_MODE changed to 'gt'"
 - Fixed vmaps in get_mappings function.
 - Fixed bug on 'error' in gram.y - comment on issue #482
 - Fix issue #457: cursor position could add empty rows or columns when
   exporting csv files
 - Fix issue #288: ^ misbehaving when having fixed rows
 - Fix in mouse clicks
 - Fix possible memory leak in add freeze
 - XLSX: Free memory leak when looking for specified sheet.
 - XLSX: Avoid segfault when using shared formulas. issue #218.
jperkin pushed a commit that referenced this issue Aug 25, 2021
# rvest 1.0.1

* `html_table()` correctly handles tables with cells that contain blank values
  for `rowspan` and/or `colspan`, so that e.g. `<td rowspan="">` is parsed as
  `<td rowspan=1>` (@epiben, #323).

* Fix broken example

# rvest 1.0.0

## New features

* New `html_text2()` provides a more natural rendering of HTML nodes into text,
  converting `<br>` into "\n", and removing non-significant whitespace (#175).
  By default, it also converts `&nbsp;` into regular spaces, which you can
  suppress with `preserve_nbsp = TRUE` (#284).

* `html_table()` has been re-written from scratch to more closely mimic the
  algorithm that browsers use for parsing tables. This should mean that there
  are far fewer tables for which it fails to produce some output (#63, #204,
  #215). The `fill` argument has been deprecated since it is no longer needed.
  `html_table()` now returns a tibble rather than a data frame to be compatible
  with the rest of the tidyverse (#199). Its performance has been considerably
  improved (#237). It also gains a `na.strings` argument to control what values
  are converted to `NA` (#107), and a `convert` argument to control whether to
  run the conversion (#311).

* New `html_form_submit()` allows you to submit a form directly, without
  needing to create a session (#300).

* rvest is now licensed as MIT (#287).

## API changes

Since this is the 1.0.0 release, I included a large number of API changes to make rvest more compatible with current tidyverse conventions. Older functions have been deprecated, so existing code will continue to work (albeit with a few new warnings).

* rvest now imports xml2 rather than depending on it. This is cleaner because
  it avoids attaching all the xml2 functions that you're less likely to use.
  To reduce the change of breakages, rvest re-exports xml2 functions
  `read_html()` and `url_absolute()`, but your code may now need an explicit
  `library(xml2)`.

* `html_form()` now returns an object with class `rvest_form` (instead of form).
   Fields within a form now have class `rvest_field`, instead of a
  variety of classes that were lacking the `rvest_` prefix. All functions for
  working with forms have a common `html_form_` prefix: `set_values()` became
  `html_form_set()`. `submit_form()` was renamed to `session_submit()` because
  it returns a session.

* `html_node()` and `html_nodes()` have been superseded in favor of
  `html_element()`  and `html_elements()` since they (almost) always return
  elements, not nodes (#298).

* `html_session()` is now `session()` and returns an object of class
  `rvest_session` (instead of `session`). All functions that work with session
  objects now have a common `session_` prefix.

* Long deprecated `html()`, `html_tag()`, `xml()` functions have been removed.

* `minimal_html()` (which doesn't appear to be used by any other package)
  has had its arguments flipped to make it more intuitive.

* `guess_encoding()` has been renamed to `html_encoding_guess()` to avoid
  a clash with `stringr::guess_encoding()` (#209). `repair_encoding()` has
  been deprecated because it doesn't appear to work.

* `pluck()` is no longer exported to avoid a clash with `purrr::pluck()`;
  if you need it use `purrr::map_chr()` and friends instead (#209).

* `xml_tag()`, `xml_node()`, and `xml_nodes()` have been formally deprecated
  in favor of their `html_` equivalents.

## Minor improvements and bug fixes

* The "harvesting the web" vignette has been rewritten to focus more on basics
  rvest, eliminating the screenshots to keep the installed package as svelte as
  possible. It's also been renamed to `vignette("rvest")` since it's the
  vignette that you should read first.

* The SelectorGadget vignette is now a web-only article,
  <https://rvest.tidyverse.org/articles/articles/selectorgadget.html>,
  so we can be more generous with screenshots since they're no longer bundled
  with every install of the package. Together with the rewrite of the other
  vignette, this means that rvest is now ~90 Kb instead of ~1.1 Mb.

* All uses of IMDB have been eliminated since the site explicitly prohibits
  scraping (#195).

* `session_submit()` errors if `form` doesn't have a `url` (#288).

* New `session_forward()` function to complement `session_back()`.
  It now allows you to pick the submission button by position (#156).
  The `...` argument is deprecated; please use `config` instead.

* `html_form_set()` can now accept character vectors allowing you to select
  multiple checkboxes in a set or select multiple values from a multi-`<select>`
  (#127, with help from @juba). It also uses dynamic dots so that you can use
  `!!!` if you have a list of values (#189).

# rvest 0.3.6

* Remove failing example
jperkin pushed a commit that referenced this issue Nov 28, 2021
This release does not contain new "ABI features". The ABI (Application
Binary Interface) is 100% compatible with releases 1.3.5 - 1.3.7.

CHANGES IN FLTK 1.3.8                                 RELEASED: Nov 20 2021

FLTK 1.3.8 is a maintenance release with some fixes and enhancements.

Details:

  Albrecht Schlosser:
    Make "FLTK_CONSOLIDATE_MOTION" user-definable (issue #76)
    Fix compiler warnings (backported from 1.4)
    Add new dialog fl_choice_n() with extended return values (#282)

  ManoloFLTK:
    Account for deprecation of [NSBitmapImageRep initWithFocusedViewRect:]
      in macOS 10.14
    macOS: fix fullscreen window when other windows were created before
    Fix issue #287: "FLTK 1.3.6 doesn't handle fullscreen on macOS"
    Fix issue #288: "FLTK 1.3.6+ doesn't notify window movement on macOS"
    Fix issue #279: "HiDpi issue on macOS with retina display"
    macOS: Allow building with non-Apple compiler that may not support
      blocks
jperkin pushed a commit that referenced this issue Jun 2, 2022
Upstream changes:
scales 1.2.0
New features

    label_number():

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

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

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

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

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

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

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

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

Bug fixes and minor improvements

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

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

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

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

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

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

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

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

scales 1.1.1

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

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

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

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

    ordinal_french() gains plural and gender arguments (@stephLH, #256).
jperkin pushed a commit that referenced this issue Jun 2, 2022
Upstream changes:
Changes in 0.4-20 (2022-04-29)

    Remove check for Yahoo Finance cookies because the site no longer responds with a cookie, and that caused the connection attempt to fail. This affected getSymbols(), getDividends(), and getSplits(). Thanks to several users for reporting, and especially to @pverspeelt and @alihru for investigating potential fixes! #358

    Update getSymbols.yahooj() for changes to the web page. #312

    Add HL() and supporting functions. These are analogues to HLC(), OHLC(), etc.Thanks for Karl Gauvin for the nudge to implement them.

    Add adjusted close to getSymbols.tiingo() output. Thanks to Ethan Smith for the suggestion and patch! #289 #345

    Use a Date index for getSymbols.tiingo() daily data. Thanks to Ethan Smith for the report! #350

    Remove unneeded arguments to the getSymbols.tiingo() implementation. Thanks to Ethan Smith for the suggestion and patch! #343 #343

    Load dividends and splits data into the correct environment when the user provides a value for the env argument. The previous behavior always loaded the data into the environment the function was called from. Thanks to Stewart Wright for the report and patch! #33

    Make getOptionChain() return all the fields that Yahoo Finance provides. Thanks to Adam Childers (@rhizomatican) for the patch! #318 #336

    Add orats as a source for getOptionChain(). Thanks to Steve Bronder (@SteveBronder) for the suggestion and implementation! #325

    Improve the error message when getSymbols() cannot import data for a symbol because the symbol is not valid or does not have historical data. Thanks to Peter Carl for the report. #333

    Fix the getMetals() example in the documentation. The example section previously had an example of getFX(). Thanks to Gerhard Nachtmann

    for the report and patch! #330

    Fix getQuote() so it returns data when the ticker symbol contains an “&”. Thanks to @pankaj3009 for the report! #324

    Fix addMACD() when col is specified. Thanks to @nvalueanalytics for the report! #321

Changes in 0.4-18 (2020-11-29)

    Fix issues handling https:// in getSymbols.yahooj(). Thanks to @Lobo1981 and @tchevri for the reports and @ethanbsmith for the suggestion to move from XML to xml2. #310 #312

    Fix getSymbols.yahoo(), getDividends(), and getSplits() so they all handle download errors and retry again. Thanks for @helgasoft for the report on getSymbols.yahoo() and @msfsalla for the report on getDividends() and getSplits(). #307 #314

    Add implied volatility and last trade date to getOptionChain() output. Thanks to @hd2581 and @romanlelek for the reports. And thanks to @rjvelasquezm for noticing the error when lastTradeDate is NULL. #224 #304

    Fix getOptionChain() to throw a warning and return NULL for every expiry that doesn’t have data. #299

    Add “Defaults” handling to getQuote() and getQuote.yahoo(). Thanks to @ethanbsmith for the report. #291

    Add Bid and Ask fields to the output from getQuote(). Thanks to @jrburl for the report and PR. #302

    Fix “Defaults” to handle unexported function (e.g. getQuote.av(). Thanks to @helgasoft for the report. #316

    importDefaults() doesn’t call get() on vector with length > 1. Thanks to Kurt Hornik for the report. #319

Changes in 0.4-17 (2020-03-31)

    chartTheme() now works when quantmod is not attached. Thanks to Kurt Hornik for the report.

Changes in 0.4-16 (2020-03-08)

    Remove disk I/O from getSymbols() and getQuote(). This avoids any disk contention, and makes the implementation pattern more consistent with other functions that import data. Thanks to Ethan Smith suggestion and PR. #280 #281

    Make getQuote() robust to symbols without data, so it does not error if one or more symbols are not found. Also return quotes in the same order as the ‘Symbols’ argument. Thanks to Ethan Smith feature request and PR. #279 #282 #288

    Handle semicolon-delimited symbol string handling to main getQuote() function. This makes getQuote() consistent with getSymbols(). Thanks to Ethan Smith suggestion and PR. #284 #285

    Fix ex-dividend and pay date mapping. getQuote() returned the dividend pay date labeled as the ex-dividend date. Thanks to @matiasandina for the report. #287

    Fix Yahoo Finance split ratio. The delimiter changed from “/” to “:”. For example, a 2-for-1 split was 1/2 but is now “2:1”. Thanks to @helgasoft for the report. #292

    Error messages from getQuote.alphavantage() and getQuote.tiingo() no longer contain the API key when symbols can’t be found. #286

    Fix getQuote.alphavantage() by replacing the defunct batch quote request with a loop over the single quote request. Thanks to @helgasoft for the report and patch. #296

    Update getOptionChain() to handle empty volume or open interest Thank to @jrburl for the report and PR. #299 #300
jperkin pushed a commit that referenced this issue Jul 4, 2022
## [2.3.4]

### Fixed

* Vulnerability fixing: the `--fix` flag now works for vulnerabilities found in
  requirement subdependencies. A new line is now added to the requirement file
  to explicitly pin the offending subdependency
  ([#297](pypa/pip-audit#297))

## [2.3.3]

### Changed

* CLI: `pip-audit` now warns on the combination of `-s osv` and
  `--require-hashes`, notifying users that only the PyPI service
  can fully verify hashes
  ([#298](pypa/pip-audit#298))

### Fixed

* CLI/Dependency sources: `--cache-dir=...` and other flags that affect
  dependency resolver behavior now work correctly when auditing a
  `pyproject.toml` dependency source
  ([#300](pypa/pip-audit#300))

## [2.3.2] - 2022-05-14

### Changed

* CLI: `pip-audit`'s progress spinner has been refactored to make it
  faster and more responsive
  ([#283](pypa/pip-audit#283))

* CLI, Vulnerability sources: the error message used to report
  connection failures to vulnerability sources was improved
  ([#287](pypa/pip-audit#287))

* Vulnerability sources: the OSV service is now more resilient
  to schema changes ([#288](pypa/pip-audit#288))

* Vulnerability sources: the PyPI service provides a better
  error message during some cases of service degradation
  ([#294](pypa/pip-audit#294))

### Fixed

* Vulnerability sources: a bug stemming from an incorrect assumption
  about OSV's schema guarantees was fixed
  ([#284](pypa/pip-audit#284))

* Caching: `pip-audit` now respects `pip`'s `PIP_NO_CACHE_DIR`
  and will not attempt to use the `pip` cache if present
  ([#290](pypa/pip-audit#290))
jperkin pushed a commit that referenced this issue Sep 4, 2022
2.0.2 (2022-06-28)

Bug fixes:

* Fix additional incompatible character encodings error when building
  uploaded bodies (Jeremy Evans #311)

2.0.1 (2022-06-27)

Bug fixes:

* Fix incompatible character encodings error when building uploaded file
  bodies (Jeremy Evans #308 #309)

2.0.0 (2022-06-24)

Breaking changes:

* Digest authentication support is now deprecated, as it relies on digest
  authentication support in rack, which has been deprecated (Jeremy Evans
  #294)
* Rack::Test::Utils.build_primitive_part no longer handles array values
  (Jeremy Evans #292)
* Rack::Test::Utils module methods other than build_nested_query and
  build_multipart are now private methods (Jeremy Evans #297)
* Rack::MockSession has been combined into Rack::Test::Session, and remains
  as an alias to Rack::Test::Session, but to keep some backwards
  compatibility, Rack::Test::Session.new will accept a Rack::Test::Session
  instance and return it (Jeremy Evans #297)
* Previously protected methods in Rack::Test::Cookie{,Jar} are now private
  methods (Jeremy Evans #297)
* Rack::Test::Methods no longer defines build_rack_mock_session, but for
  backwards compatibility, build_rack_test_session will call
  build_rack_mock_session if it is defined (Jeremy Evans #297)
* Rack::Test::Methods::METHODS is no longer defined (Jeremy Evans #297)
* Rack::Test::Methods#_current_session_names has been removed (Jeremy Evans
  #297)
* Headers used/accessed by rack-test are now lower case, for rack 3
  compliance (Jeremy Evans #295)
* Frozen literal strings are now used internally, which may break code that
  mutates static strings returned by rack-test, if any (Jeremy Evans #304)

Minor enhancements:

* rack-test now works with the rack main branch (what will be rack 3)
  (Jeremy Evans #280 #292)
* rack-test only loads the parts of rack it uses when running on the rack
  main branch (what will be rack 3) (Jeremy Evans #292)
* Development dependencies have been significantly reduced, and are now a
  subset of the development dependencies of rack itself (Jeremy Evans #292)
* Avoid creating multiple large copies of uploaded file data in memory
  (Jeremy Evans #286)
* Specify HTTP/1.0 when submitting requests, to avoid responses with
  Transfer-Encoding: chunked (Jeremy Evans #288)
* Support :query_params in rack environment for parameters that are appended
  to the query string instead of used in the request body (Jeremy Evans #150
  #287)
* Reduce required ruby version to 2.0, since tests run fine on Ruby 2.0
  (Jeremy Evans #292)
* Support :multipart env key for request methods to force multipart input
  (Jeremy Evans #303)
* Force multipart input for request methods if content type starts with
  multipart (Jeremy Evans #303)
* Improve performance of Utils.build_multipart by using an append-only
  design (Jeremy Evans #304)
* Improve performance of Utils.build_nested_query for array values (Jeremy
  Evans #304)

Bug fixes:

* The CONTENT_TYPE of multipart requests is now respected, if it starts with
  multipart/ (Tom Knig #238)
* Work correctly with responses that respond to to_a but not to_ary (Sergio
  Faria #276)
* Raise an ArgumentError instead of a TypeError when providing a StringIO
  without an original filename when creating an UploadedFile (Nuno Correia
  #279)
* Allow combining both an UploadedFile and a plain string when building a
  multipart upload (Mitsuhiro Shibuya #278)
* Fix the generation of filenames with spaces to use path escaping instead
  of regular escaping, since path unescaping is used to decode it (Muir
  Manders, Jeremy Evans #275 #284)
* Rewind tempfile used for multipart uploads before it is submitted to the
  application (Jeremy Evans, Alexander Dervish #261 #268 #286)
* Fix Rack::Test.encoding_aware_strings to be true only on rack 1.6+ (Jeremy
  Evans #292)
* Make Rack::Test::CookieJar#valid? return true/false (Jeremy Evans #292)
* Cookies without a domain attribute no longer are submitted to requests for
  subdomains of that domain, for RFC 6265 compliance (Jeremy Evans #292)
* Increase required rack version to 1.3, since tests fail on rack 1.2 and
  below (Jeremy Evans #293)
@jperkin jperkin closed this as completed Oct 25, 2022
jperkin pushed a commit that referenced this issue Apr 8, 2023
Features
 - Support reading query param and header values from a file, see #288
   (@ducaale)
 - Highlight Syntax errors found while tokenizing a JSON path, see #260
   (@ducaale)
 - Support outputting the metadata of a response via --meta, --print=m or -vv,
   see #240 (@ducaale)

Bug fixes
 - Fix panic when when parsing connection timeout, see #295 (@sorairolake)

Breaking changes
 - Remove -m as a short flag for --multipart, see #299 (@ducaale)
jperkin pushed a commit that referenced this issue Jun 17, 2023
Changes in CUPS v2.4.4 - 2023-06-06
-----------------------------------

- Fix segfault in `cupsGetNamedDest()` when trying to get default printer, but
  the default printer is not set (Issue #719)


Changes in CUPS v2.4.3 (2023-06-01)
-----------------------------------

- Added a title with device uri for found network printers (Issues #402, #393)
- Added new media sizes defined by IANA (Issues #501)
- Added quirk for GoDEX label printers (Issue #440)
- Fixed `--enable-libtool-unsupported` (Issue #394)
- Fixed configuration on RISC-V machines (Issue #404)
- Fixed the `device_uri` invalid pointer for driverless printers with `.local`
  hostname (Issue #419)
- Fixed an OpenSSL crash bug (Issue #409)
- Fixed a potential SNMP OID value overflow issue (Issue #431)
- Fixed an OpenSSL certificate loading issue (Issue #465)
- Fixed Brazilian Portuguese translations (Issue #288)
- Fixed `cupsd` default keychain location when building with OpenSSL
  (Issue #529)
- Fixed default color settings for CMYK printers as well (Issue #500)
- Fixed duplicate PPD2IPP media-type names (Issue #688)
- Fixed possible heap buffer overflow in `_cups_strlcpy()` (fixes CVE-2023-32324)
- Fixed InputSlot heuristic for photo sizes smaller than 5x7" if there is no
  media-source in the request (Issue #569)
- Fixed invalid memory access during generating IPP Everywhere queue
  (Issue #466)
- Fixed lprm if no destination is provided (Issue #457)
- Fixed memory leaks in `create_local_bg_thread()` (Issue #466)
- Fixed media size tolerance in `ippeveprinter` (Issue #487)
- Fixed passing command name without path into `ippeveprinter` (Issue #629)
- Fixed saving strings file path in `printers.conf` (Issue #710)
- Fixed TLS certificate generation bugs (Issue #652)
- `ippDeleteValues` would not delete the last value (Issue #556)
- Ignore some of IPP defaults if the application sends its PPD alternative
  (Issue #484)
- Make `Letter` the default size in `ippevepcl` (Issue #543)
- Now accessing Admin page in Web UI requires authentication (Issue #518)
- Now look for default printer on network if needed (Issue #452)
- Now we poll `media-col-database` separately if we fail at first (Issue #599)
- Now report fax attributes and values as needed (Issue #459)
- Now localize HTTP responses using the Content-Language value (Issue #426)
- Raised file size limit for importing PPD via Web UI (Issue #433)
- Raised maximum listen backlog size to INT MAX (Issue #626)
- Update print-color-mode if the printer is modified via ColorModel PPD option
  (Issue #451)
- Use localhost when printing via printer application (Issue #353)
- Write defaults into /etc/cups/lpoptions if we're root (Issue #456)
jperkin pushed a commit that referenced this issue Jun 28, 2023
Upstream changes:
1.40 - 30 April 2023
 - Note usage with dzil (Steve Rogerson) (GH-319)
 - Fix html_basic report (jkahrman) (GH-318)
 - Use CPAN::Meta (Slaven Rezić) (GH-314)
 - Make non-interactive output less noisy (jkahrman) (GH-312)
 - Avoid infinite recursion in Type::Tiny and other places (Ed J) (GH-307)
 - Add ignore_covered_err option (Tina Müller) (GH-323)
 - Handle empty hashes and arrays on condition RHS in 5.37.6 and later

1.39 - 29 April 2023
 - Remove dependency on B::Debug (Jim Keenan) (GH-289)
 - Raise minimum version to 5.12
 - Correct spelling of Pod::Coverage trustme parameter (Oliver Youle) (GH-302)
 - Fix annotations in html_basic report (Opera Wang) (GH-310)

1.38 - 5 June 2022
 - Improve documentation

1.37 - 5 June 2022
 - Fix Subroutine module docs (bkerin) (GH-262)
 - Use github actions instead of travis (Zakariyya Mughal) (GH-291)
 - Improve mkdir error messages (Felipe Gasper) (GH-296)
 - Remove asterisk from gcov count (Zakariyya Mughal) (GH-294)
 - Test against 5.36.0
 - Avoid warnings from check_files (Nicolas R) (GH-292)
 - Support __SUB__ (Graham Knop) (GH-290, GH-243, GH-285)
 - Support uncoverable count ranges (Tina Müller) (GH-288)
 - Improve gcov support for XS code (Ed J) (GH-280)
 - Allow overriding of HTML code highlighting (Jesús Alonso Abad) (GH-271)
 - Improve contributing docs
jperkin pushed a commit that referenced this issue Sep 1, 2023
41.0 (2023-08-18)
-----------------

* Allow HTML5 `figcaption` tag through cleaner (#291)
* Test `README.rst` from this project (#288)
jperkin pushed a commit that referenced this issue Sep 19, 2023
Changes since 0.11.1:

eza v0.12.0 (final rust v1.65 release)

Changelog

Bug Fixes

  * Expand --all help
  * RUSTSEC-2020-0071
  * Generalize gitignore to ignore all eza deb packages
  * Canonicalize errors when the destination of a symbolic link is bad
  * Handle other canonicalize errors in hyperlinks and git
  * Fix windows build when canonicalize returns an error
  * Change trycmd config to use test/itest folder for testing
  * Revert to old apt install command suggestion and add hint
  * Remove stray backslashes
  * Is_some_and is an unstable Rust feature until 1.70
  * Revert "Support for Windows Hidden Files"
  * Shellcheck warnings
  * Revert "Support for Windows Hidden Files"
  * Shellcheck warnings
  * Exit 13 on os error 13
  * Rewrite comment
  * Improve trace strings
  * Tracing typo

Documentation

  * Expand --all documentation
  * Add pthorpe92 gist
  * Remove xtests section from readme
  * Add deprecation warning to xtests/readme
  * Add deprecation warning to just xtest commands
  * Add deprecation warning to vagrantfile
  * Add MacPorts install info
  * Add gentoo
  * Fix gentoo install
  * Add docs for --git-repos & --git-repos-no-status
  * Fix gpg armor flag for deb release in readme
  * Add better explanation of git repos + no status
  * Add scoop install info
  * Remove color specifications. change unknown git repo status to ~
  * Fix missing color specification from man page

Features

  * Add audit workflow
  * Add trycmd as dev-dependency
  * Add minimal trycmd binary
  * Add a few trycmd tests as example
  * Document and change output for --git-repos
  * Add apt installation workflow
  * Adds filtering on Windows hidden files
  * Adds filtering on Windows hidden files
  * Adds filtering on Windows hidden files
  * Added shellcheck to treefmt
  * Adds filtering on Windows hidden files
  * Add PERMISSION_DENIED exit code

Miscellaneous Tasks

  * Bump chrono from 0.4.27 to 0.4.30
  * Removal of xtests
  * Removal of vagrant
  * Remove deprecated devtools
  * Run spellcheck

Refactor

  * Over-engineer deb-package.sh
  * Hide xtests folder
  * Split trycmd into tests for all, unix and windows
  * Limit unit-tests run on workflow change to unit-tests itself
  * Moved generateTest.sh to devtools/
  * Renamed the file
  * Add tracing to various code parts
  * Make std::process::exit global

Revert

  * "Support for Windows Hidden Files"

Styling

  * Remove TODO message on the absolute_path property
  * Fix shellcheck issues in deb-package.sh
  * Fix shellcheck issues in deb-package.sh
  * Fix shellcheck issues in deb-package.sh

Testing

  * Remove vhs from flake
  * Remove vhs-runner files
  * Dump trycmd from nix sandbox
  * Fix name of trydump
  * Add trycmd
  * Add nix feature
  * Add example long tests for sandbox
  * Set itests files to unix epoch
  * Set itest files to unix epoch
  * Refactor setting unix epoch
  * Auto discard old definitions
  * Fix test reference
  * Add long_all_nix.toml
  * Add long_blocksize_nix.toml
  * Add long_extended_nix.toml
  * Add long_git_nix.toml
  * Add long_git_repos_nix.toml
  * Add long_git_repos_no_status_nix.toml
  * Add long_grid_nix.toml
  * Add long_header_nix.toml
  * Add long_icons_nix.toml
  * Add long_octal_nix.toml
  * Add long_time_style_relative_nix.toml
  * Freeze nix tests
  * Fix trydump when no files to delete
  * Adding more content to test
  * Modified unix and all tests
  * Regenerate nix tests
  * Convert windows tests with new itest dir
  * Fixed windows tests being wrong
  * Added a test generator
  * Add more unix_tests
  * Fixed unix tests to remove any distro specific
  * Removed git test breaking on nix

Build

  * Add compression, checksum gen for bin
  * Update flake.lock, cargo.lock
  * Add deny.toml
  * Remove org warnings
  * Remove itest
  * Update flake.lock
  * Add itest, idump
  * Make trycmd part of checks

Ci

  * Don't use nix feature on ci
  * Enforce conventional commits
  * Enforce conventional commits

New Contributors

  * @NekoiNemo made their first contribution in #253
  * @sevz17 made their first contribution in #268
  * @herbygillot made their first contribution in #266
  * @m-czernek made their first contribution in #287
  * @sitiom made their first contribution in #302
  * @MartinFillon made their first contribution in #288
  * @aidandenlinger made their first contribution in #303
  * @alamb3142 made their first contribution in #225
  * @9glenda made their first contribution in #293

Full Changelog: eza-community/eza@v0.11.1...v0.12.0
jperkin pushed a commit that referenced this issue Jan 9, 2024
What's Changed
- Changed: Aeruginous CHANGELOG fragment creation logic by @kevinmatthes in #279
- Changed: Use native rust support for async traits by @AmmarAbouZor in #265
- Added: Add full screen mode by @orhun in #281
- Changed: Main Footer Height is calculated dynamically by @AmmarAbouZor in #284
- Fixed: App will be redrawn on not handled input too by @AmmarAbouZor in #285
- Fixed: CHANGELOG creation logic; fixes #286 by @kevinmatthes in #287
- Fixed: Call to Aeruginous; fixes #286 by @kevinmatthes in #288
- Fixed: Commit fetch depth in CHANGELOG assembly; fixes #286 by @kevinmatthes in #289
jperkin pushed a commit that referenced this issue Mar 4, 2024
ugrep v5.0.0

new and updated regex engine to speed up searching patterns described in #288 using a new heuristic DFA cut algorithm
new option --exclude-fs default to exclude file systems that aren't specified as search targets #349
new option --all (-@) to #342 to search all files except hidden: cancel previous file and directory search restrictions
TUI regex syntax highlighting improved for --fixed-strings (-F) when used with option --bool (-% and -%%)
fix #350 Linux procfs handling not as expected
fix #355 "context before lines" sometimes incorrectly displayed (due to a misfiring optimization in a recent release)
jperkin pushed a commit that referenced this issue Mar 26, 2024
17.1.0 (2024-03-21)

Added

* [Java] Assume numbers use either a comma or period for the thousands
  separator instead of non-breaking spaces. (#290)

Fixed

* [Java] Parse negative numbers in Norwegian (and 59 other languages) (#290)
* [Python] Remove support for Python 3.7 and extend support to 3.12 (#280)
* [Python] The ParameterType constructor's transformer should be optional
  (#288)
jperkin pushed a commit that referenced this issue Apr 9, 2024
Just a small bugfix/doc release while new features finish up for the v0.5 series
Fixes
 - Ignore the case when doing header name lookups (#256)
 - Fix a crash when rendering headerless table (#279)
 - Fixes an issue where 1-pixel wide selections would linger (#288)
 - Fixes a crash caused by a mismatch in client/server version support on linux+wayland (#298)

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

Internal
 - The usual swarm of non-user-facing changes
jperkin pushed a commit that referenced this issue Apr 9, 2024
[1.3.0] - 2024-04-08
 - Introduced thumbnail mode, enabling users to keep an eye on Sniffnet while
   doing other tasks (#484)
 - Added support for ICMP connections and messages (#417 — fixes #288)
 - Added capability to identify 6000+ upper layer services, protocols, trojans,
   and worms (#450 — fixes #374)
 - Added feature to optionally export the analysis as a PCAP file with a custom
   path (#473 — fixes #162 and #291)
 - Introduced new filtering capabilities to allow users specify custom values
   of ports and IP addresses (#414)
 - The size of text and widgets can now be customised by setting a proper zoom
   value (fixes #202 and #344)
 - Added possibility to totally customize the app's theme via styles defined in
   TOML files (#286 and #419)
 - Upgraded inspect page table: multiple new search filters, additional sorting
   options, and always keep a correct fields alignment (#442 — fixes #63)
 - Added support for more link types in addition to Ethernet: raw IP packets
   and null/loopback packets are now correctly parsed (#421)
 - Support changing sort strategy for network hosts and services in overview
   page, showing most recent items by default (#452)
 - IP addresses can now be copied to clipboard from the popup related to a
   given entry of the connections table, and a new search parameter has been
   introduced in Inspect page to allow users filter their connections based on
   IP address values (#409)
 - Traffic chart is now smoother and overall better-looking thanks to the new
   spline-based interpolation (#461)
 - Added Japanese translation 🇯🇵 (#343)
 - Added Uzbek translation 🇺🇿 (#385)
 - Window size and position are now remembered, so that Sniffnet can reopen
   with the same window properties
 - Users can now provide custom paths for MMDB files to allow using the
   commercial versions of the country and ASN databases (fixes #243)
 - Added new command line option --restore-default to restore the default
   configurations of the app (settings, window properties, and device selected
   at startup)
 - The app's configurations are now stored only on application close, instead
   of needlessly store them each time the settings popup is closed (#420)
 - The textual output report is not generated anymore
 - Settings "Language" tab has been removed. Language selection and other
   options are now included in a new settings tab "General" (#365)
 - Updated Portuguese translation to v1.2 (#398)
 - Cleaned code implementing the concept of first class theming (#339)
 - Migrate to Iced 0.12 (#470)
 - Added documentation about Sniffnet installation on Nix and Tiny Core Linux
   (respectively #394 and #341)
 - General aesthetic improvements
 - Fixed bug about not delivered favorite notifications in presence of old
   outgoing connections
 - Fixed bug causing the application's icon not to be visible in some Linux
   environments
 - Fixed a build failure on powerpc64 (#356fixes #353)
 - Fixed a typo in Russian translation (#389)
 - Fixed icon inconsistency in case of directed broadcast traffic
 - Made byte strings consistent across the app, and added support for Terabytes
   and Petabytes representations
 - Fixed hosts and services data bar lengths inconsistencies in overview page
 - Minor improvements to Spanish translation (#454)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants