how to "re-enable" perl after 5.32 install; how to reinstall all perl-mods?

L A Walsh cygwin@tlinx.org
Wed Jun 2 19:04:48 GMT 2021


On 2021/06/01 21:32, Brian Inglis wrote:
> $ grep ^perl- /etc/setup/installed.db | cut -d' ' -f1 | paste -d, -s
> perl-Algorithm-Diff,perl-Authen-SASL,perl-Authen-SASL-XS,...
> ...,perl-namespace-autoclean,perl-namespace-clean
> $ wget -NP /tmp/ https://cygwin.com/setup-x86_64.exe
> $ cygstart /tmp/setup-x86_64 -fgnqrP \
>   `grep ^perl- /etc/setup/installed.db | cut -d' ' -f1 | paste -d, -s`
----
Thanks, mostly.  It did try to install them, but the solver was/is
too smart, it comes up with 2 solutions 1/2 to uninstall 5.32,
install 5.30-x  and a bunch of other modules, and
(2/2) (Default) Don't uninstall 5.30 and keep 5.32.

I think the db-base in /etc/setup contains all the 5.32
compat modules -- so it basically saw all those uninstalls/reinstall
and just told me it was taking the easier path! ;-)

How does one pick a non-default choice at that point (not that
this was the only problem -- seems I have existing modules
installed in 5.32 under a local site_lib directory.
Problem there is that the existing modules there don't link:
HiRes.c: loadable library and perl binaries are mismatched (got 
handshake key 0x
800000770, needed 0x0)

But if i just push that dir out of the way, the 1st prog
I tried (pcalc that led to me trying cpan which didn't
work) now works, however the 2nd prog "dedup", wouldn't
work because of a missing prereq from CPAN which won't make:
>  dedup
Can't locate POSIX/RT/Semaphore.pm in @INC (you may need to install the 
POSIX::RT::Semaphore module)
---
Tried making that, but I don't think it is compatible
with 5.32 due to incompatible changes in perl (vaguely remember
something like that, but not sure...)

But it fails with:
>  cpan -i POSIX::RT::Semaphore
Loading internal logger. Log::Log4perl recommended for better logging
CPAN::SQLite not installed, trying to work without
Reading '/Share/CPAN/Metadata'
  Database was generated on Tue, 01 Jun 2021 01:29:03 GMT
Running install for module 'POSIX::RT::Semaphore'
CPAN: LWP::UserAgent loaded ok (v6.54)
Fetching with LWP:
http://mirrors.kernel.org/CPAN/authors/id/M/MJ/MJP/POSIX-RT-Semaphore-0.05.tar.gz
CPAN: YAML loaded ok (v1.30)
CPAN: Digest::SHA loaded ok (v6.02)
Fetching with LWP:
HASH(0x811899ad8)authors/id/M/MJ/MJP/CHECKSUMS
Fetching with LWP:
HASH(0x811899ad8)authors/id/M/MJ/MJP/CHECKSUMS.gz
Fetching with LWP:
http://mirrors.kernel.org/CPAN/authors/id/M/MJ/MJP/CHECKSUMS
CPAN: Compress::Zlib loaded ok (v2.093)
Checksum for 
/Share/CPAN/sources/authors/id/M/MJ/MJP/POSIX-RT-Semaphore-0.05.tar.gz ok
CPAN: Archive::Tar loaded ok (v2.36)
CPAN: CPAN::Meta::Requirements loaded ok (v2.140)
CPAN: Parse::CPAN::Meta loaded ok (v2.150010)
CPAN: CPAN::Meta loaded ok (v2.150010)
Configuring M/MJ/MJP/POSIX-RT-Semaphore-0.05.tar.gz with Makefile.PL
Checking if your kit is complete...
Looks good
Generating a Unix-style Makefile
Writing Makefile for POSIX::RT::Semaphore
Writing MYMETA.yml and MYMETA.json
  MJP/POSIX-RT-Semaphore-0.05.tar.gz
  /usr/bin/perl Makefile.PL -- OK
Running make for M/MJ/MJP/POSIX-RT-Semaphore-0.05.tar.gz
CPAN: Module::CoreList loaded ok (v5.20210123)
cp Semaphore.pm blib/lib/POSIX/RT/Semaphore.pm
Running Mkbootstrap for Semaphore ()
"/usr/bin/perl.exe" "/usr/share/perl5/5.32/ExtUtils/xsubpp"  -typemap 
'/usr/share/perl5/5.32/ExtUtils/typemap' -typemap 
'/var/cache/CPAN/build/POSIX-RT-Semaphore-0.05-2/typemap'  Semaphore.xs 
 > Semaphore.xsc
chmod 644 "Semaphore.bs"
"/usr/bin/perl.exe" -MExtUtils::Command::MM -e 'cp_nonempty' -- 
Semaphore.bs blib/arch/auto/POSIX/RT/Semaphore/Semaphore.bs 644
mv Semaphore.xsc Semaphore.c
gcc -c  -I. -DPERL_USE_SAFE_PUTENV -U__STRICT_ANSI__ -D_GNU_SOURCE -ggdb 
-O2 -pipe -Wall -Werror=format-security -D_FORTIFY_SOURCE=2 
-fstack-protector-strong --param=ssp-buffer-size=4 
-fdebug-prefix-map=/mnt/share/cygpkgs/perl/perl.x86_64/build=/usr/src/debug/perl-5.32.1-1 
-fdebug-prefix-map=/mnt/share/cygpkgs/perl/perl.x86_64/src/perl-5.32.1=/usr/src/debug/perl-5.32.1-1 
-fwrapv -fno-strict-aliasing -DUSEIMPORTLIB -O3   -DVERSION=\"0.05\" 
-DXS_VERSION=\"0.05\"  
"-I/usr/lib/perl5/5.32/x86_64-cygwin-threads/CORE"  -DHAVE_SEM_DESTROY 
-DHAVE_SEM_GETVALUE -DHAVE_SEM_INIT -DHAVE_SEM_OPEN -DHAVE_SEM_POST 
-DHAVE_SEM_TIMEDWAIT -DHAVE_SEM_TRYWAIT -DHAVE_SEM_UNLINK 
-DHAVE_SEM_WAIT Semaphore.c
Semaphore.c: In function ‘XS_POSIX__RT__Semaphore_unlink’:
Semaphore.c:269:8: warning: variable ‘pkg’ set but not used 
[-Wunused-but-set-variable]
  269 |  char* pkg;
      |        ^~~
Semaphore.c: In function ‘XS_POSIX__RT__Semaphore__Unnamed_init’:
Semaphore.c:586:8: warning: variable ‘pkg’ set but not used 
[-Wunused-but-set-variable]
  586 |  char* pkg;
      |        ^~~
Semaphore.c: In function ‘XS_POSIX__RT__Semaphore__Named_open’:
Semaphore.c:686:8: warning: variable ‘pkg’ set but not used 
[-Wunused-but-set-variable]
  686 |  char* pkg;
      |        ^~~
At top level:
Semaphore.xs:92:1: warning: ‘function_not_implemented’ defined but not 
used [-Wunused-function]
   92 | function_not_implemented(void)
      | ^~~~~~~~~~~~~~~~~~~~~~~~
rm -f blib/arch/auto/POSIX/RT/Semaphore/Semaphore.dll
g++  --shared  -Wl,--enable-auto-import -Wl,--export-all-symbols 
-Wl,--enable-auto-image-base -fstack-protector-strong  Semaphore.o  -o 
blib/arch/auto/POSIX/RT/Semaphore/Semaphore.dll  \
  /usr/lib/perl5/5.32/x86_64-cygwin-threads/CORE/cygperl5_32.dll -lrt   \
 
chmod 755 blib/arch/auto/POSIX/RT/Semaphore/Semaphore.dll
Manifying 1 pod document
  MJP/POSIX-RT-Semaphore-0.05.tar.gz
  /usr/bin/make -j -j -- OK
CPAN: CPAN::DistnameInfo loaded ok (v0.12)
Running make test for MJP/POSIX-RT-Semaphore-0.05.tar.gz
"/usr/bin/perl.exe" -MExtUtils::Command::MM -e 'cp_nonempty' -- 
Semaphore.bs blib/arch/auto/POSIX/RT/Semaphore/Semaphore.bs 644
PERL_DL_NONLAZY=1 "/usr/bin/perl.exe" "-MExtUtils::Command::MM" 
"-MTest::Harness" "-e" "undef *Test::Harness::Switches; test_harness(0, 
'blib/lib', 'blib/arch')" t/*.t
t/01util.t ................ ok    
t/can.t ................... UNIVERSAL does not export anything at 
t/can.t line 10.
BEGIN failed--compilation aborted at t/can.t line 10.
# Looks like your test exited with 255 before it could output anything.
t/can.t ................... Dubious, test returned 255 (wstat 65280, 0xff00)
Failed 26/26 subtests
t/ctors.t ................. ok    
t/fork-inherit-named.t .... ok  
t/fork-inherit-unnamed.t .. ok  
t/fork-reopen.t ........... ok  
t/invalid.t ............... ok    
t/named.t ................. ok    
t/pod.t ................... ok  
t/threaded.t .............. ok    
t/unnamed.t ............... ok    
t/use_basic.t ............. ok  
t/use_consts.t ............ ok  

Test Summary Report
-------------------
t/can.t                 (Wstat: 65280 Tests: 0 Failed: 0)
  Non-zero exit status: 255
  Parse errors: Bad plan.  You planned 26 tests but ran 0.
Files=13, Tests=170,  5 wallclock secs ( 0.09 usr  0.05 sys +  1.07 
cusr  0.92 csys =  2.14 CPU)
Result: FAIL
Failed 1/13 test programs. 0/170 subtests failed.
make: *** [Makefile:1026: test_dynamic] Error 255
  MJP/POSIX-RT-Semaphore-0.05.tar.gz
  /usr/bin/make test -- NOT OK
//hint// to see the cpan-testers results for installing this module, try:
  reports MJP/POSIX-RT-Semaphore-0.05.tar.gz

--------------------------------
Trying to use the old 5.32 tree a fall back for anything
that fell to relying on /usr/local/lib/perl5/site_perl/5.32, I get the

mistmatched nonsense..(damn**)
HiRes.c: loadable library and perl binaries are mismatched (got 
handshake key 0x800000770, needed 0x0)

**-now perl libs are checking for version mismatches at dl-load time?
ARG! - it seems it used to work before this update, but is this
a new 5.32 update?  Got handshake key 0x800000770, needed 0x0? what
does that hex code mean? or what version was/is it looking for?

Sigh...where are the flags to 'setup' documented?

Last time I tried  setup.exe -h, it just hopped into the standard
download dialogues...

Thanks! ;^) (sigh)








More information about the Cygwin mailing list