Package: perl Version: 5.22.1-4 Severity: wishlist The h2ph conversion of selected system header files we're doing as part of the perl build is giving me some grief in my cross building experiments, because h2ph can't be run with miniperl (it loads re.so) but needs Config.pm for the target system.
While this can be worked around, it prompted me to investigate the usefulness of the generated .ph files a bit. We know that h2ph is a gross hack (see #510984) that doesn't always work (#190887), and the generated files produce lots of warnings (#688974). codesearch.debian.net reports 48 source packages matching \b(require|do)\b.*\.ph\b I went through those and weeded out 19 false positives, leaving just 29 packages actually using those .ph files. While there may of course be local scripts using them, I don't think these numbers warrant shipping .ph files with perl, effectively on all Debian systems. I propose that we break these .ph files out into a separate perl-system-headers binary package. I would also like to separate their generation into a separate source package, which could use something like our current build time checks as its test suite, as there's no real reason to tie them to src:perl anymore. The source package could use h2ph from perl or bundle/fork its own; I'm not sure which would be cleaner. A clean transition would probably require having perl (or maybe libperl5.22) Depend: perl-system-headers for one release cycle, so we don't have to declare Breaks on all the packages currently using these .ph files. Filing bugs on those 29 packages now and trying to get them to depend on perl-system-headers for stretch would enable dropping the dependency from perl after that. I'm attaching a list of the affected packages, and another list of manually identified false positives in case we have to regenerate the list later. Thoughts? -- Niko Tyni [email protected]
eekboek # lib/EB/CPAN/Term/ReadLine/readline.pm: sys/ioctl.ph sgtty.ph plum # socket.ph sys/socket.ph acedb # sys/socket.ph libfilesys-diskspace-perl # sys/syscall.ph squid3 # scripts/*: sys/socket.ph vile # sys/ioctl.ph irssi-scripts # scripts/nicklist.pl: asm/ioctls.ph sys/ioctl.ph libfuse-perl # examples/*: linux/ioctl.ph sys/ioccom.ph syscall.ph pegasus-wms # bin/pegasus-status: sys/ioctl.ph tightvnc # vncserver: sys/socket.ph qpdf # qtest/module/TestDriver.pm: sys/ioctl.ph rcconf # rcconf: eval require sys/ioctl.ph libperl4-corelibs-perl # syslog.ph socket.ph liblinux-io-prio-perl # lib/Linux/IO_Prio.pm: syscall.ph sys/syscall.ph thp # lib/thpfunc.pl: sys/syscall.ph webmagick # utils/aub: sys/socket.ph isakmpd # regress/exchange/run.pl sys/syscall.ph lookup # server.info/network.pl: sys/socket.ph socket.ph apt-cacher # lib/Linux/IO_Prio.pm: syscall.ph sys/syscall.ph libsys-syscall-perl # syscall.ph sys/syscall.ph percona-toolkit # bin/pt-diskstats: sys/ioctl.ph libschedule-cron-perl # lib/Schedule/Cron.pm: ioctl.ph minbif # scripts/irssi/im_cacacam.pl: sys/ioctl.ph asm/ioctls.ph libterm-readline-perl-perl # ReadLine/readline.pm: sys/ioctl.ph sgtty.ph vnc4 # unix/vncserver: sys/socket.ph nas # clients/audio/auscope/auscope: sys/socket.ph syscall.ph im # IM/*: sys/syslog.ph syscall.ph sys.ph sendmail # contrib/mailprio: errno.ph sys/unistd.ph sys/file.ph fcntl.ph ifmail # misc/contrib/u-tic/u-*: errno.ph fcntl.ph stdio.ph errno.ph
migrationtools llvm-toolchain-snapshot llvm-toolchain-3.6 llvm-toolchain-3.7 libio-interface-perl libmoe dcmtk llvm-toolchain-3.5 info2man libvideo-capture-v4l-perl rplay libmsgcat-perl colplot when collectl am-utils perl nasm imgsizer

