DKIM-Filter: OpenDKIM Filter v2.11.0 delorie.com 482L9AqA1339912 Authentication-Results: delorie.com; dkim=pass (1024-bit key, unprotected) header.d=cygwin.com header.i=@cygwin.com header.a=rsa-sha256 header.s=default header.b=buTrH1FK X-Recipient: archive-cygwin AT delorie DOT com DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 1E6B93858416 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cygwin.com; s=default; t=1725311349; bh=3XQvP4/FryKNs3j523gTpdJHYLGOWSpLGWMrnPCCSto=; h=Date:Subject:To:References:In-Reply-To:List-Id:List-Unsubscribe: List-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:Cc: From; b=buTrH1FKHDcsat2tm1NK1LD8r5vzVFWWGemoUZTXnxnLonV4fDMK7QrxCb4iK6ZTY aZnoId63+IHC+VEAKAZcNCWMVhW0TnIB/F/0V1dGKJMljvonaPfdzUDEA1EsHnAuEQ yC8i434oriFEDOXKaETY1ITV1BynchYKUDnir2ak= X-Original-To: cygwin AT cygwin DOT com Delivered-To: cygwin AT cygwin DOT com DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 548243858C66 ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 548243858C66 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1725311325; cv=none; b=MVmjWBKa8v2i9n8DrrABHrrsn1MeaK9OV/VEmlvHm7s0uGzOzBQ1VVRUxOSn9etRnWEARLe2bANlW9oaPW3IOX98UG2akNqjUVa6yIPjR6Sguuuj7Jf3t8t+HP/PqlCoUwRcXH407OXMv4Y/vt/2roLHqvXvEhnhlxwR5eTNwvs= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1725311325; c=relaxed/simple; bh=2AE/MPdP+X+Eby4s+3pyM1eDAM19xBG3nNmNRwKcprs=; h=Message-ID:Date:MIME-Version:Subject:To:From; b=mC0m72tgU2Sq9aQ1tF8/VUQFgR3Rma2NUvXejZXgxcVwQJdGevbh58E2vecom8bYa8pRuIkWDZTjpgA27MXaBoryWvDe2KhCW31a6kzocEzYNdJEjTWkmbVvuc2YdisNep2vcDfQFiUxzNrc4ZwpLw5osEEcfHewED77irtG4to= ARC-Authentication-Results: i=1; server2.sourceware.org Message-ID: Date: Mon, 2 Sep 2024 15:08:39 -0600 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: Minor flaws in the Cygwin Perl installation; missing directories (Perl 5.40.0-1) Content-Language: en-CA To: cygwin AT cygwin DOT com References: Organization: Systematic Software In-Reply-To: X-Rspamd-Queue-Id: 61BC680009 X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00, KAM_DMARC_STATUS, KAM_LOTSOFHASH, RCVD_IN_MSPIKE_H3, RCVD_IN_MSPIKE_WL, SPF_HELO_PASS, SPF_PASS, TXREP, T_SCC_BODY_TEXT_LINE, UNPARSEABLE_RELAY autolearn=no autolearn_force=no version=3.4.6 X-Rspamd-Server: rspamout02 X-Stat-Signature: htynrg39qzhbbmq3f96bbkak66h3fz7u X-Session-Marker: 427269616E2E496E676C69734053797374656D6174696353572E61622E6361 X-Session-ID: U2FsdGVkX1/m0D7WBsR6q4VZ1ASeEDUy5Nxbepfipug= X-HE-Tag: 1725311320-554564 X-HE-Meta: U2FsdGVkX19xaVaI2++/Y2FS5vmMvhJ4v273YKWrXWSVMQO9qzv/2zcWAu4ZVrvFevNMbDs7RuaN6Cge8tXlSCJqw4gvbrzq4Iv21G16jaqAb6nxo0bbY1TCneAPuUKxL4qdm5L4b+uDgZPIoWybzRc4N+nIGQmZE1JRMOb5YtajLZV5yQrkJqk1tB6OLK0mhzebY+kuUsD8k954a6hVQeMfbuDTYik08qOWW5ry0jGh5K6xrlpsZ2tuAF/lsbblBXpa143NM4fxKQw2oKUv7GuG0mQJAqlWnZDUdoysC1Q+7PVabGFrfbIkYeHUARNTEKI7cQG6I/2HkByneox0iW1HTbxOkWCvNgoHJS0V25NZdszaamuoQ99iheOYmOLnzASewWPMhGMFwXkONIZmVD5a79Nn0H9C/iJq8be1Vf52CNdqEZ9ki61K/++XKo0pxEm2n+Nhi6KSbQxoKDiE2CUFeLtQsDg4eFpJk65ZCqMrDOUK0tHDlrRnNEtbJrUK X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org X-BeenThere: cygwin AT cygwin DOT com X-Mailman-Version: 2.1.30 Precedence: list List-Id: General Cygwin discussions and problem reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , From: Brian Inglis via Cygwin Reply-To: cygwin AT cygwin DOT com Cc: Brian Inglis Content-Type: text/plain; charset="utf-8"; Format="flowed" Errors-To: cygwin-bounces~archive-cygwin=delorie DOT com AT cygwin DOT com Sender: "Cygwin" Content-Transfer-Encoding: 8bit X-MIME-Autoconverted: from base64 to 8bit by delorie.com id 482L9AqA1339912 On 2024-09-02 10:48, Soren via Cygwin wrote: > The Perl interpreter uses directories contained in the internal array @INC to > find libraries. Cygwin's Perl 5.40.0-1 installation leaves several > directories uncreated but listed in @INC. > Like so (from $perl -V): > > @INC: > /usr/local/lib/perl5/site_perl/5.40/x86_64-cygwin-threads > /usr/local/share/perl5/site_perl/5.40 > /usr/lib/perl5/vendor_perl/5.40/x86_64-cygwin-threads > /usr/share/perl5/vendor_perl/5.40 > /usr/lib/perl5/5.40/x86_64-cygwin-threads > /usr/share/perl5/5.40 > > ------------------------------ > > Let's look at the error messages we get. > > Can't stat /usr/local/lib/perl5/site_perl/5.40/x86_64-cygwin-threads: > No such file > or directory at C:\Users\Sally\Documents\Scripts\seekinc.pl line 30. > Can't stat /usr/local/share/perl5/site_perl/5.40: No such file or directory at > C:\Users\Sally\Documents\Scripts\seekinc.pl line 30. > Can't stat /usr/share/perl5/vendor_perl/5.40: No such file or directory at > C:\Users\Sally\Documents\Scripts\seekinc.pl line 30. > > It's micro-optimization, sure, but having Perl stat non-existent > directories every time it runs; this is just not nice. And this is not the > only issue. > > Observe the following, please: > ------------------------------ > @INCCount > /usr/local/share/perl5/site_perl/5.40 0 > /usr/local/lib/perl5/site_perl/5.40/x86_64-cygwin-threads 0 > /usr/lib/perl5/vendor_perl/5.40/x86_64-cygwin-threads 2 > /usr/lib/perl5/5.40/x86_64-cygwin-threads 112 > /usr/share/perl5/5.40 1287 > /usr/share/perl5/vendor_perl/5.40 0 > ------------------------------ > > The left-hand column lists Perl's @INC and the right-hand numbers are > counts of the libraries or modules found under those parent directories. > No, I did not count them manually. > > I wrote a simple script in Perl to generate these. > > The 3 base directories with 0 files under them don't exist. For one example > of consequences: If one were to use cpanplus, it would want to place files > under /usr/local/share/perl5/site_perl/5.40 and suchlike. I love using > cpanplus. Watching it run the builds, tests and installations automatically > is very relaxing ;-). > > These examples are all from a Perl installation I did this evening, with no > Perl ever installed before; completely "clean". > > Please check your own installation of cygwin-perl. By the way, the script > used to investigate @INC (I call such programs "introspective" scripts) is > on GitHub at: https://github.com/somian/seekinc/blob/main/seekinc.pl Perhaps the perl package build could benefit from adding: KEEPDIRS="$PERL_ARCHLIB $PERL_LIB $PERL_SITELIB $PERL_VENDORARCH $PERL_VENDORLIB" where: PERL_ARCHLIB=/usr/lib/perl5/5.40/x86_64-cygwin-threads PERL_LIB=/usr/share/perl5/5.40 PERL_SITELIB=/usr/local/share/perl5/site_perl/5.40 PERL_VENDORARCH=/usr/lib/perl5/vendor_perl/5.40/x86_64-cygwin-threads PERL_VENDORLIB=/usr/share/perl5/vendor_perl/5.40 for the benefit of those who do not install many perl packages? > One further anomaly: In output of cygcheck: > > perl 5.40.0-1 Incomplete > > How do we fix this at Cygwin package build time? Add options -h -v to cygcheck for details on any operation: $ cygcheck -chv xxd Cygwin Package Information Last downloaded files to: D:/var/cache/setup/packages Last downloaded files from: https://mirror.cpsc.ucalgary.ca/mirror/cygwin.com/ Package Version Status Missing file: /usr/share/man/fr.ISO8859-1/man1/xxd.1.gz from package xxd Missing file: /usr/share/man/fr.UTF-8/man1/xxd.1.gz from package xxd Missing file: /usr/share/man/fr/man1/xxd.1.gz from package xxd Missing file: /usr/share/man/it.ISO8859-1/man1/xxd.1.gz from package xxd Missing file: /usr/share/man/it.UTF-8/man1/xxd.1.gz from package xxd Missing file: /usr/share/man/it/man1/xxd.1.gz from package xxd Missing file: /usr/share/man/ja/man1/xxd.1.gz from package xxd Missing file: /usr/share/man/pl.ISO8859-2/man1/xxd.1.gz from package xxd Missing file: /usr/share/man/pl.UTF-8/man1/xxd.1.gz from package xxd Missing file: /usr/share/man/pl/man1/xxd.1.gz from package xxd Missing file: /usr/share/man/ru.KOI8-R/man1/xxd.1.gz from package xxd Missing file: /usr/share/man/ru.UTF-8/man1/xxd.1.gz from package xxd xxd 9.0.2155-2 Incomplete Looks like I blew away a bunch of non-English man locale directories at some point! ;^> What thoroughly confused me recently was perl-Locale-gettext and perl-gettext both being installed, obsoleting each other, same package versions but newer package with lower release, depending on different perl versions: $ grep 'perl-\(Locale-\)\?gettext' /etc/setup/installed.db perl-Locale-gettext perl-Locale-gettext-1.07-1.tar.bz2 1 perl-gettext perl-gettext-1.07-5.tar.bz2 0 perl5_040 perl-Locale-gettext-1.07-1.tar.bz2 0 $ cygcheck -chv perl-{Locale-,}gettext Cygwin Package Information Last downloaded files to: D:/var/cache/setup/packages Last downloaded files from: https://mirror.cpsc.ucalgary.ca/mirror/cygwin.com/ Package Version Status perl-gettext 1.07-5 OK perl-Locale-gettext 1.07-1 OK $ cygcheck -l perl-{Locale-,}gettext /usr/lib/perl5/vendor_perl/5.36/x86_64-cygwin-threads/auto/Locale/gettext/gettext.dll /usr/lib/perl5/vendor_perl/5.36/x86_64-cygwin-threads/Locale/gettext.pm /usr/share/doc/perl-gettext/README /usr/share/man/man3/Locale.gettext.3pm.gz /usr/lib/perl5/vendor_perl/5.40/x86_64-cygwin-threads/auto/Locale/gettext/gettext.dll /usr/lib/perl5/vendor_perl/5.40/x86_64-cygwin-threads/Locale/gettext.pm /usr/share/doc/perl-Locale-gettext/README /usr/share/man/man3/Locale.gettext.3pm.gz $ ls -glo \ /usr/lib/perl5/vendor_perl/5.36/x86_64-cygwin-threads/auto/Locale/gettext/gettext.dll \ /usr/lib/perl5/vendor_perl/5.36/x86_64-cygwin-threads/Locale/gettext.pm \ /usr/share/doc/perl-gettext/README /usr/share/man/man3/Locale.gettext.3pm.gz \ /usr/lib/perl5/vendor_perl/5.40/x86_64-cygwin-threads/auto/Locale/gettext/gettext.dll \ /usr/lib/perl5/vendor_perl/5.40/x86_64-cygwin-threads/Locale/gettext.pm \ /usr/share/doc/perl-Locale-gettext/README \ /usr/share/man/man3/Locale.gettext.3pm.gz -rwxr-xr-x 1 15379 May 1 2023 /usr/lib/perl5/vendor_perl/5.36/x86_64-cygwin-threads/auto/Locale/gettext/gettext.dll -rw-r--r-- 1 6854 Sep 28 2015 /usr/lib/perl5/vendor_perl/5.36/x86_64-cygwin-threads/Locale/gettext.pm -rwxr-xr-x 1 14867 Aug 18 09:44 /usr/lib/perl5/vendor_perl/5.40/x86_64-cygwin-threads/auto/Locale/gettext/gettext.dll -r--r--r-- 1 6854 Sep 28 2015 /usr/lib/perl5/vendor_perl/5.40/x86_64-cygwin-threads/Locale/gettext.pm -rw-r--r-- 1 6635 May 1 2023 /usr/share/doc/perl-gettext/README -rw-r--r-- 1 6635 Aug 18 09:44 /usr/share/doc/perl-Locale-gettext/README -r--r--r-- 1 2416 Aug 18 09:44 /usr/share/man/man3/Locale.gettext.3pm.gz -r--r--r-- 1 2416 Aug 18 09:44 /usr/share/man/man3/Locale.gettext.3pm.gz $ awk '$1 ~ /perl-(Locale-)?gettext/' RS='\n\n@ ' FS='\n' ~/mirror/x86_64/setup.ini perl-Locale-gettext sdesc: "Perl distribution Locale-gettext" ldesc: "Perl distribution Locale-gettext, providing Perl modules: Locale::gettext. Perl bindings for POSIX i18n gettext functions." category: Perl version: 1.07-1 install: x86_64/release/perl-Locale-gettext/perl-Locale-gettext-1.07-1.tar.zst 11985 ad1165f38beb6d4b7203cef931c86eaf5729830666a17225de2452ddef37eac3f0303c42e6c40a054f404fe01ec1a4080346531dc37a8b39a935d5358a8b3bbc source: x86_64/release/perl-Locale-gettext/perl-Locale-gettext-1.07-1-src.tar.zst 9319 42d81bb4008069bfec60b03dbda8a09aa601724a59d060ad2ac853bb994bf682e37de43901ced6021c9801e65ffc47f469ec1aada89851e84f58592737f73662 depends2: cygwin, libgcc1, libintl8, perl5_040, perl_base *obsoletes: perl-gettext* build-depends: cygport, libcrypt-devel ... perl-gettext sdesc: "Perl distribution gettext" ldesc: "Perl distribution gettext, providing Perl modules: Locale::gettext. Perl bindings for POSIX i18n gettext functions." category: Perl version: 1.07-5 install: x86_64/release/perl-gettext/perl-gettext-1.07-5.tar.zst 12330 5bc206eda8007b7d091cb1da5f4ce93c98eae298c5b3d9e03ccb7412c239b709d4c47764a96b58950abbb0b48a9b04c0448e688b6ededd4cf9d7932bb394c74b source: x86_64/release/perl-gettext/perl-gettext-1.07-5-src.tar.zst 9328 0cb87614767a1d212e96c40cea760d4c253be88c72700fb50a54ce12f5d454aaf53b0bc0ffc9183160c38b4ad574f2c8556a2a6f5185b1b419f1410813d48ece depends2: cygwin, libgcc1, libintl8, perl5_036, perl_base *obsoletes: perl-Locale-gettext* build-depends: cygport, libcrypt-devel, libintl-devel ... -- Take care. Thanks, Brian Inglis Calgary, Alberta, Canada La perfection est atteinte Perfection is achieved non pas lorsqu'il n'y a plus rien à ajouter not when there is no more to add mais lorsqu'il n'y a plus rien à retirer but when there is no more to cut -- Antoine de Saint-Exupéry -- Problem reports: https://cygwin.com/problems.html FAQ: https://cygwin.com/faq/ Documentation: https://cygwin.com/docs.html Unsubscribe info: https://cygwin.com/ml/#unsubscribe-simple