Perl / perl5

🐪 The Perl programming language
https://dev.perl.org/perl5/
Other
1.91k stars 542 forks source link

PRE-BBC - CPAN distributions which will break when apostrophe as package separator is removed. #20863

Open demerphq opened 1 year ago

demerphq commented 1 year ago

Module:

Description This is a bug to collect the names of CPAN distributions that will be broken when apostrophe as a package separator is removed, but which are not broken directly right now and merely warn. There are also other tickets where people are reporting CPAN distributions that are actually broken by the new deprecations.

Steps to Reproduce Build any of the listed modules with the latest code in blead.

Expected behavior These modules should not warn about use of deprecated features.

Perl configuration Strictly speaking this is not-applicable, any sufficiently recent perl with apostrophe as a package separator deprecations is affected.

perl -V
Summary of my perl5 (revision 5 version 37 subversion 10) configuration:
  Commit id: 10c7b2021d05bc5b69caa39f144a06954fa66d68
  Platform:
    osname=linux
    osvers=5.14.0-1057-oem
    archname=x86_64-linux-thread-multi
    uname='linux oncidium 5.14.0-1057-oem #64-ubuntu smp mon jan 23 17:02:19 utc 2023 x86_64 x86_64 x86_64 gnulinux '
    config_args='-de -Dcc=ccache gcc -Dld=gcc -Dprefix=/home/yorton/perl5/perlbrew/perls/latest_blead -Doptimize=-g -Dusedevel -Dman1dir=none -Dman3dir=none -DDEBUGGING -Dusemultiplicity -Duse64bitall -Dusethreads -Dusedevel -Aeval:scriptdir=/home/yorton/perl5/perlbrew/perls/latest_blead/bin'
    hint=recommended
    useposix=true
    d_sigaction=define
    useithreads=define
    usemultiplicity=define
    use64bitint=define
    use64bitall=define
    uselongdouble=undef
    usemymalloc=n
    default_inc_excludes_dot=define
  Compiler:
    cc='gcc'
    ccflags ='-D_REENTRANT -D_GNU_SOURCE -fwrapv -DDEBUGGING -fno-strict-aliasing -pipe -fstack-protector-strong -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64'
    optimize='-g'
    cppflags='-D_REENTRANT -D_GNU_SOURCE -fwrapv -DDEBUGGING -fno-strict-aliasing -pipe -fstack-protector-strong -I/usr/local/include'
    ccversion=''
    gccversion='9.4.0'
    gccosandvers=''
    intsize=4
    longsize=8
    ptrsize=8
    doublesize=8
    byteorder=12345678
    doublekind=3
    d_longlong=define
    longlongsize=8
    d_longdbl=define
    longdblsize=16
    longdblkind=3
    ivtype='long'
    ivsize=8
    nvtype='double'
    nvsize=8
    Off_t='off_t'
    lseeksize=8
    alignbytes=8
    prototype=define
  Linker and Libraries:
    ld='gcc'
    ldflags =' -fstack-protector-strong -L/usr/local/lib'
    libpth=/usr/local/lib /usr/lib/x86_64-linux-gnu /usr/lib /usr/lib64
    libs=-lpthread -ldl -lm -lcrypt -lutil -lc
    perllibs=-lpthread -ldl -lm -lcrypt -lutil -lc
    libc=libc-2.31.so
    so=so
    useshrplib=false
    libperl=libperl.a
    gnulibc_version='2.31'
  Dynamic Linking:
    dlsrc=dl_dlopen.xs
    dlext=so
    d_dlsymun=undef
    ccdlflags='-Wl,-E'
    cccdlflags='-fPIC'
    lddlflags='-shared -g -L/usr/local/lib -fstack-protector-strong'

Characteristics of this binary (from libperl): 
  Compile-time options:
    DEBUGGING
    HAS_TIMES
    MULTIPLICITY
    PERLIO_LAYERS
    PERL_COPY_ON_WRITE
    PERL_DONT_CREATE_GVSV
    PERL_HASH_FUNC_SIPHASH13
    PERL_HASH_USE_SBOX32
    PERL_MALLOC_WRAP
    PERL_OP_PARENT
    PERL_PRESERVE_IVUV
    PERL_TRACK_MEMPOOL
    PERL_USE_DEVEL
    PERL_USE_SAFE_PUTENV
    USE_64_BIT_ALL
    USE_64_BIT_INT
    USE_ITHREADS
    USE_LARGE_FILES
    USE_LOCALE
    USE_LOCALE_COLLATE
    USE_LOCALE_CTYPE
    USE_LOCALE_NUMERIC
    USE_LOCALE_TIME
    USE_PERLIO
    USE_PERL_ATOF
    USE_REENTRANT_API
    USE_THREAD_SAFE_LOCALE
  Built under linux
  Compiled at Feb 27 2023 10:12:45
  %ENV:
    PERLBREW_CONFIGURE_FLAGS="-de -Dcc=ccache\ gcc -Dld=gcc"
    PERLBREW_HOME="/home/yorton/.perlbrew"
    PERLBREW_MANPATH="/home/yorton/perl5/perlbrew/perls/latest_blead/man"
    PERLBREW_PATH="/home/yorton/perl5/perlbrew/bin:/home/yorton/perl5/perlbrew/perls/latest_blead/bin"
    PERLBREW_PERL="latest_blead"
    PERLBREW_ROOT="/home/yorton/perl5/perlbrew"
    PERLBREW_SHELLRC_VERSION="0.88"
    PERLBREW_VERSION="0.88"
  @INC:
    /home/yorton/perl5/perlbrew/perls/latest_blead/lib/site_perl/5.37.10/x86_64-linux-thread-multi
    /home/yorton/perl5/perlbrew/perls/latest_blead/lib/site_perl/5.37.10
    /home/yorton/perl5/perlbrew/perls/latest_blead/lib/5.37.10/x86_64-linux-thread-multi
    /home/yorton/perl5/perlbrew/perls/latest_blead/lib/5.37.10
haarg commented 1 year ago

Here's a list of dists likely to have problems:

Acme-Cant
Acme-ESP
Acme-Eatemup
Acme-ICan-tBelieveItCanSort
Acme-ICan-tSpell
Acme-UNIVERSAL-can-t
Acme-UNIVERSAL-cannot
Bundle-PBib
CDent
CGI-SpeedyCGI
CSS-DOM
Carp-Assert
CfgTie
Class-Meta-Declare
D-oh
D-oh-Year
E-Mail-Acme
Font-TTF-Scripts
Foorum
Fuckin-Lazy
Future-HTTP
HTML-DOM
HTML-Paging-SQL
HTML-QuickCheck
ILL-GS
JE
Jacode
Linux-Pid
MHonArc
Module-ConfigureRequires
MoneyWorks-pm
Net-BitTorrent
PDF-Tiny
Perl-Lint
Perl-PrereqScanner-NotQuiteLite
Perl-Tidy
Perl4-CoreLibs
PersistentPerl
Socket-Class
Term-Cap
Test-HTML-Content
Test-utf8
UNIVERSAL-cant
WWW-Mechanize-Chrome
WWW-Scripter
WWW-Scripter-Plugin-Ajax
WWW-Scripter-Plugin-JavaScript
WWW-Scripter-Plugin-JavaScript-SpiderMonkey
XML-XForms-Validate
constant-lexical
sdf

This is using some rough regexes and manual filtering, so I'm sure it's missing plenty. And a number of these are already broken with modern perl versions.

demerphq commented 1 year ago

A few of those I have already files tickets for. Eg, all the high river @cpansprout modules. (JE, CSS-DOM, HTML-DOM, etc)

andk commented 1 year ago

FWIW an XRef: #20782 was, as far as I know, the first issue reporting breakage by the commit that started the deprecation of Apostrophe as a package separator; that commit was 7e2d91e6d3

demerphq commented 1 year ago

@andk this issue is not meant to replace that one. We should continue to use that one for actual breakage. This is for things that arent broken directly themselves, but will be once the deprecation goes through.