Thanks for the helpful tip, grknight.
I do not recall tinkering, i.e. changing use flags, with my PHP package since I became aware of the problem, my fix was to install the package media-libs/exiftool and to change the Lychee configuration to use a shell command. Otherwise, it looks like my PHP settings have unicode and exif activated:
Code: Select all
janus /var/www/salemdata.us/htdocs/photos # cd /
janus / # eix -I php |grep -oP '.{1,5}unicode.{1,5}'
type unicode webp
type unicode xml
type unicode xml
janus / # eix -I php |grep -oP '.{1,5}exif.{1,5}'
hant exif ffi
curl exif file
curl exif file
janus / # date
Tue May 17 08:14:17 PDT 2022
janus / #
Ahah, I now remember how I troubleshot this. Lychee has their logs exposed through their administrative interface on the left: "Show Logs"
Code: Select all
2022-05-14 22:16:48 -- notice -- App\Metadata\Extractor::extract -- 177 -- Falling back to native adapter.
2022-05-14 22:16:48 -- error -- App\Metadata\Extractor::extract -- 172 -- Given path () to the exiftool binary is invalid
I then carefully (see below) went through the
server requirements that Lychee specifies and could not match up their "Mbstring" with any USE flag in Gentoo, so I concluded that I did not have multibyte support. Per grknight's posting above, I do have multibyte support since the USE flag unicode is active.
Here are my notes from that investigation:
Code: Select all
per: https://lycheeorg.github.io/docs/installation.html
Lychee requires:
Lychee 4.4.0 and later:
PHP >= 8.0 with these PHP extensions:
Y BCMath
Y Ctype
Y Exif
Y Ffmpeg (optional — to generate video thumbnails)
Y Fileinfo
Y GD
Y Imagick (optional — to generate better thumbnails)
? JSON
? Mbstring
? OpenSSL
Y PDO
Y Tokenizer
Y XML
Y ZIP
Questionable ones:
JSON -
I do have:
[I] dev-php/json-schema
Available versions: 5.2.10^t 5.2.11^t {test}
Installed versions: 5.2.11^t(22:19:37 04/27/22)(-test)
Homepage: https://github.com/justinrainbow/json-schema
Description: PHP implementation of JSON schema
[I] dev-php/jsonlint
Available versions: ~1.8.2^t 1.8.3-r1 {test}
Installed versions: 1.8.3-r1(21:24:29 04/27/22)
Homepage: https://github.com/Seldaek/jsonlint
Description: JSON Lint for PHP
Mbstring - multibyte string??
Multibyte String https://www.php.net/manual/en/book.mbstring.php
OpenSSL - I do have SSL
janus /usr/local/src/Lychee/app/Image # equery uses dev-lang/php
[ Legend : U - final flag setting for installation]
[ : I - package is installed with flag ]
[ Colors : set, unset ]
* Found these USE flags for dev-lang/php-8.0.16-r1:
U I
+ + acl : Add support for Access Control Lists
+ + apache2 : Add Apache2 support
- - apparmor : Support FPM application confinement through sys-libs/libapparmor
- - argon2 : Enable password hashing algorithm from app-crypt/argon2
+ + bcmath : Add support for libbcmath
- - berkdb : Add support for sys-libs/db (Berkeley DB for MySQL)
+ + bzip2 : Use the bzlib compression library
- - calendar : Add support for calendars (not using mcal!)
- - cdb : Add support for the CDB database engine from the author of qmail
+ + cgi : Add CGI script support
- - cjk : Add support for Multi-byte character languages (Chinese, Japanese, Korean)
+ + cli : Enable CLI SAPI
+ + ctype : Enable ctype functions
+ + curl : Add support for client-side URL transfer library
- - debug : Enable extra debug codepaths, like asserts and extra output. If you want to get meaningful backtraces see
https://wiki.gentoo.org/wiki/Project:Quality_Assurance/Backtraces
- - embed : Enable embed SAPI
- - enchant : Add supports Enchant spelling library.
+ + exif : Add support for reading EXIF headers from JPEG and TIFF images
- - ffi : Add foreign function interface (ffi extension) support
+ + fileinfo : Add fileinfo extension support
+ + filter : Add filter extension support
+ + flatfile : Add dbm support for flat files
- - fpm : Enable the FastCGI Process Manager SAPI
+ + ftp : Add FTP (File Transfer Protocol) support
+ + gd : Adds support for gd (bundled with PHP)
+ + gdbm : Add support for sys-libs/gdbm (GNU database libraries)
- - gmp : Add support for dev-libs/gmp (GNU MP library)
+ + iconv : Enable support for the iconv character set conversion library
- - imap : Add support for IMAP (Internet Mail Application Protocol)
- - inifile : Add dbm support for .ini files
+ + intl : Enables the intl extension for extended internalization support
- - iodbc : Add support for iODBC library
+ + ipv6 : Add support for IP version 6
+ + jit : Enable PCRE JIT support
- - kerberos : Add kerberos support
- - ldap : Add LDAP support (Lightweight Directory Access Protocol)
- - ldap-sasl : Add SASL support for the PHP LDAP extension
- - libedit : Use the libedit library (replacement for readline)
- - lmdb : Enable support for dev-db/lmdb db backend
- - mhash : Add support for the mhash library
- - mssql : Add support for Microsoft SQL Server database
+ + mysql : Add mySQL Database support
+ + mysqli : Add support for the improved mySQL libraries
+ + nls : Add Native Language Support (using gettext - GNU locale utilities)
- - oci8-instant-client : Use dev-db/oracle-instantclient-basic as Oracle provider instead of requiring a full Oracle server install
- - odbc : Add ODBC Support (Open DataBase Connectivity)
+ + opcache : Enables built-in opcode cache, replacing pecl-apc et al.
- - pcntl : Add support for process creation functions
+ + pdo : Enable the bundled PDO extensions
+ + phar : Enables the phar extension to provide phar archive support
- - phpdbg : Enable the PHP Debug Command Line SAPI (like gdb for php)
+ + posix : Add support for POSIX-compatible functions
+ + postgres : Add support for the postgresql database
- - qdbm : Add support for the qdbm (Quick Database Manager) library
+ + readline : Enable support for libreadline, a GNU line-editing library that almost everyone wants
+ + session : Add persistent session support
- - session-mm : Include dev-libs/mm support for session storage
- - sharedmem : Add support for shared memory use
+ + simplexml : Support for SimpleXML
- - snmp : Add support for the Simple Network Management Protocol if available
- - soap : Add support for SOAP (Simple Object Access Protocol)
- - sockets : Add support for tcp/ip sockets
- - sodium : Enable support for crypto through dev-libs/libsodium
+ + spell : Add dictionary support
+ + sqlite : Add support for sqlite - embedded sql database
+ + ssl : Add support for SSL/TLS connections (Secure Socket Layer / Transport Layer Security)
- - systemd : Enable use of systemd-specific libraries and features like socket activation or session tracking
- - sysvipc : Support for System V-compatible inter-process communication
- - test : Enable dependencies and/or preparations necessary to run tests (usually controlled by FEATURES=test but can be toggled
independently)
- - threads : Add threads support for various packages. Usually pthreads
+ + tidy : Add support for HTML Tidy
+ + tokenizer : Add support for the PHP file parser
- - tokyocabinet : Enable support for dev-db/tokyocabinet db backend
+ + truetype : Add support for FreeType and/or FreeType2 fonts
+ + unicode : Add support for Unicode
- - webp : Enable webp support for GD in php-7.x
+ + xml : Add support for XML files
+ + xmlreader : Enable XMLReader support
+ + xmlwriter : Enable XMLWriter support
- - xpm : Add support for XPM graphics format
- - xslt : Enable the XSL extension
+ + zip : Enable support for ZIP archives
+ + zlib : Add support for zlib (de)compression
janus /usr/local/src/Lychee/app/Image #
So, now the state of matters is 1) Gentoo's PHP has Multibyte support activated through the USE flag unicode, 2) I have EXIF support enable in PHP, and 3) Lychee's native PHP support failed. Looks like something between the Gentoo's unicode support vs. Lychee's harnessing exif. But, I have a works-for-me solution: use the acknowledged superior command line tool. This discussion may help others who wish to pursue this matter further.
Thank you, again, for those who participated in this topic.