Re: Debian 9.13 perl-5.24-1 compile from source dist/Time-HiRes Warning: No Makefile!
On Thu, 1 Oct 2020 at 07:11, David Christensen wrote: > On 2020-09-30 03:31, David wrote: > > On Wed, 30 Sep 2020 at 14:57, David Christensen > > wrote: > >> I have installed the source code for the 'perl' package: > >> $ apt-get source perl > I read: > debian/README.Debian > debian/Documentation > debian/README.source > README > README.linux > Unfortunately, none provide simple instructions for building on Debian. >From what I have observed, I think your expectation that such instructions would be provided in that location is inconsistent with the practice and aims of the Debian project. Debian is basically a software packaging project. Your apt-get source command downloaded a source _package_. The purpose of a source _package_ is to build installable (aka binary) packages, and Debian provides instruction on how to do that. If you want to work with un-packaged source code, you would obtain it from the upstream Perl project (not from Debian), and also be responsible yourself for ensuring that all its build dependencies are present. When source code has complex dependencies, then I find it easier to be lazy and just take advantage of the work that has already been done by the Debian maintainers to satisfy that requirement. > > I suggest you try the usual method > > using debuild here: > >https://wiki.debian.org/BuildingTutorial#Rebuild_without_changes [...] > After 42 minutes, it seems to have worked: And during that 42 minutes, you can do something more interesting than trying to solve build dependency problems :) [...] > Hopefully, that will be sufficient for now. Great, I'm glad to hear it worked for you so that you could move closer to your goal.
Re: Debian 9.13 perl-5.24-1 compile from source dist/Time-HiRes Warning: No Makefile!
On 2020-09-30 14:28, Greg Wooledge wrote: On Wed, Sep 30, 2020 at 05:24:37PM -0400, Greg Wooledge wrote: On Wed, Sep 30, 2020 at 02:11:11PM -0700, David Christensen wrote: Unfortunately, none provide simple instructions for building on Debian. Is that what you want? https://www.debian.org/doc/manuals/maint-guide/ It occurs to me that you might simply want to build *other people's* packages from source on Debian. The way you normally do that is: apt-get -b source pkgname If you've already got the package source downloaded and extracted (e.g. via apt-get source pkgname) and you've modified it and now you want to build a package out of it, then you simply use: dpkg-buildpackage -uc -us -rfakeroot inside the pkgname-version/ subdirectory. But reading the NMG is still not a bad idea. The "Debian New Maintainers' Guide" looks like it could be helpful. Thank you. :-) David
Re: Debian 9.13 perl-5.24-1 compile from source dist/Time-HiRes Warning: No Makefile!
On Wed, Sep 30, 2020 at 05:24:37PM -0400, Greg Wooledge wrote: > On Wed, Sep 30, 2020 at 02:11:11PM -0700, David Christensen wrote: > > Unfortunately, none provide simple instructions for building on Debian. > > Is that what you want? > > https://www.debian.org/doc/manuals/maint-guide/ It occurs to me that you might simply want to build *other people's* packages from source on Debian. The way you normally do that is: apt-get -b source pkgname If you've already got the package source downloaded and extracted (e.g. via apt-get source pkgname) and you've modified it and now you want to build a package out of it, then you simply use: dpkg-buildpackage -uc -us -rfakeroot inside the pkgname-version/ subdirectory. But reading the NMG is still not a bad idea.
Re: Debian 9.13 perl-5.24-1 compile from source dist/Time-HiRes Warning: No Makefile!
On Wed, Sep 30, 2020 at 02:11:11PM -0700, David Christensen wrote: > Unfortunately, none provide simple instructions for building on Debian. Is that what you want? https://www.debian.org/doc/manuals/maint-guide/
Re: Debian 9.13 perl-5.24-1 compile from source dist/Time-HiRes Warning: No Makefile!
On 2020-09-30 03:31, David wrote: On Wed, 30 Sep 2020 at 14:57, David Christensen wrote: I have installed the source code for the 'perl' package: $ apt-get source perl Ok. You haven't yet said why though, so our suggestions can't be tailored to your goals until you advise what those might be. I wish to debug the Data::Dumper library installed with the 'perl' package on Debian 9. When I attempt to compile the package per the instructions in INSTALL: I know nothing about Perl, but having rebuilt quite a number of Debian source packages I can offer general advice that might be useful if you are unaware of it. First, I wouldn't start from there. Have you done any research on "how to build Debian packages"? At this point, it is not my goal to build a Debian package. My goal is to write test scripts that demonstrate a bug, revise Dumper.pm, Dumper.xs, and/or other files as required, recompile, and test; all using an unprivileged account. If not, that would be advisable. I haven't checked this package, but at a guess INSTALL sounds like it will be the instructions provided with the original source, before packaging. So those instructions could possibly be unaware of Debian-specific requirements or modifications or methods or library locations. I read: debian/README.Debian debian/Documentation debian/README.source README README.linux Unfortunately, none provide simple instructions for building on Debian. $ cd perl-5.24.1 $ sh Configure -de $ make That's ignoring any Debian patches. "apt-get source.." applied the Debian patches previously. I suggest you try the usual method using debuild here: https://wiki.debian.org/BuildingTutorial#Rebuild_without_changes Okay. I'll start over. Here are the root commands: 2020-09-30 12:39:27 root@tinkywinky ~ # apt-get update Hit:1 http://security.debian.org/debian-security stretch/updates InRelease Hit:2 http://download.virtualbox.org/virtualbox/debian stretch InRelease Ign:3 http://ftp.us.debian.org/debian stretch InRelease Hit:4 http://ftp.us.debian.org/debian stretch-updates InRelease Hit:5 http://ftp.us.debian.org/debian stretch Release Reading package lists... Done 2020-09-30 12:40:06 root@tinkywinky ~ # apt-get install build-essential fakeroot devscripts Reading package lists... Done Building dependency tree Reading state information... Done build-essential is already the newest version (12.3). devscripts is already the newest version (2.17.6+deb9u2). fakeroot is already the newest version (1.21-3.1). 0 upgraded, 0 newly installed, 0 to remove and 28 not upgraded. 2020-09-30 12:40:32 root@tinkywinky ~ # grep deb-src /etc/apt/sources.list deb-src http://ftp.us.debian.org/debian/ stretch main non-free contrib deb-src http://security.debian.org/debian-security stretch/updates main deb-src http://ftp.us.debian.org/debian/ stretch-updates main 2020-09-30 12:42:08 root@tinkywinky ~ # apt-get install perl Reading package lists... Done Building dependency tree Reading state information... Done perl is already the newest version (5.24.1-3+deb9u7). 0 upgraded, 0 newly installed, 0 to remove and 28 not upgraded. 2020-09-30 12:43:26 root@tinkywinky ~ # apt-get build-dep perl Reading package lists... Done Reading package lists... Done Building dependency tree Reading state information... Done 0 upgraded, 0 newly installed, 0 to remove and 28 not upgraded. Here are the unprivileged commands: 2020-09-30 12:41:30 dpchrist@tinkywinky ~ $ mkdir -p src/debian; cd src/debian 2020-09-30 12:42:24 dpchrist@tinkywinky ~/src/debian $ apt-get source perl dpkg-source: info: applying fixes/CVE-2020-10878.diff dpkg-source: info: applying fixes/CVE-2020-12723.diff dpkg-source: info: applying fixes/io-socket-ip-nov4.diff 2020-09-30 12:42:40 dpchrist@tinkywinky ~/src/debian $ cd perl-5.24.1/ 2020-09-30 12:44:24 dpchrist@tinkywinky ~/src/debian/perl-5.24.1 $ debuild -b -uc -us dpkg-deb: building package 'perl' in '../perl_5.24.1-3+deb9u7_amd64.deb'. dpkg-genbuildinfo --build=binary dpkg-genchanges --build=binary >../perl_5.24.1-3+deb9u7_amd64.changes dpkg-genchanges: info: binary-only upload (no source code included) dpkg-source --after-build perl-5.24.1 dpkg-source: info: using options from perl-5.24.1/debian/source/options: --tar-ignore=debian/.git-dpm dpkg-buildpackage: info: binary-only upload (no source included) After 42 minutes, it seems to have worked: 2020-09-30 14:04:35 dpchrist@tinkywinky ~/src/debian/perl-5.24.1 $ ls -A1t .. perl_5.24.1-3+deb9u7_amd64.build perl_5.24.1-3+deb9u7_amd64.changes perl_5.24.1-3+deb9u7_amd64.buildinfo perl_5.24.1-3+deb9u7_amd64.deb libperl-dev_5.24.1-3+deb9u7_amd64.deb libperl5.24_5.24.1-3+deb9u7_amd64.deb perl-debug_5.24.1-3+deb9u7_amd64.deb perl-base_5.24.1-3+deb9u7_amd64.deb perl-5.24.1 perl-modules-5.24_5.24.1-3+deb9u7_all.deb perl-doc_5.24.1-3+deb9u7_all.deb perl_5.24.1-3+deb9u7.debian.tar.xz perl_5.24.1-3+deb9u7.dsc perl_5.24.1.orig.tar.xz I just need to compile Dumper.xs:
Re: Debian 9.13 perl-5.24-1 compile from source dist/Time-HiRes Warning: No Makefile!
On Wed, 30 Sep 2020 at 14:57, David Christensen wrote: > I have installed the source code for the 'perl' package: > > $ apt-get source perl Ok. You haven't yet said why though, so our suggestions can't be tailored to your goals until you advise what those might be. > When I attempt to compile the package per the instructions in INSTALL: I know nothing about Perl, but having rebuilt quite a number of Debian source packages I can offer general advice that might be useful if you are unaware of it. First, I wouldn't start from there. Have you done any research on "how to build Debian packages"?If not, that would be advisable. I haven't checked this package, but at a guess INSTALL sounds like it will be the instructions provided with the original source, before packaging. So those instructions could possibly be unaware of Debian-specific requirements or modifications or methods or library locations. > $ cd perl-5.24.1 > > $ sh Configure -de > > > $ make That's ignoring any Debian patches. I suggest you try the usual method using debuild here: https://wiki.debian.org/BuildingTutorial#Rebuild_without_changes There is some more information here: https://debian-handbook.info/browse/stable/debian-packaging.html#sect.rebuilding-package All the components that you wish to build are likely to be built during the binary package builds. Although it is possible that things will become complicated if the perl source package is a large package that builds many binary packages.
Debian 9.13 perl-5.24-1 compile from source dist/Time-HiRes Warning: No Makefile!
debian-user: I have a computer with Debian: $ cat /etc/debian_version ; uname -a 9.13 Linux tinkywinky 4.9.0-13-amd64 #1 SMP Debian 4.9.228-1 (2020-07-05) x86_64 GNU/Linux I have installed the source code for the 'perl' package: $ apt-get source perl When I attempt to compile the package per the instructions in INSTALL: $ cd perl-5.24.1 $ sh Configure -de $ make ./miniperl -Ilib make_ext.pl lib/auto/Time/HiRes/HiRes.so MAKE="make" LIBPERL_A=libperl.a LINKTYPE=dynamic Makefile.PL: The "xdefine" exists, skipping the configure step. ("/home/dpchrist/src/debian-9/perl-5.24.1/miniperl Makefile.PL --configure" to force the configure step) Warning: No Makefile! make[1]: Entering directory '/home/dpchrist/src/debian-9/perl-5.24.1/dist/Time-HiRes' make[1]: *** No rule to make target 'all'. Stop. make[1]: Leaving directory '/home/dpchrist/src/debian-9/perl-5.24.1/dist/Time-HiRes' make[1]: Entering directory '/home/dpchrist/src/debian-9/perl-5.24.1/dist/Time-HiRes' make[1]: *** No rule to make target 'all'. Stop. make[1]: Leaving directory '/home/dpchrist/src/debian-9/perl-5.24.1/dist/Time-HiRes' Unsuccessful make(dist/Time-HiRes): code=512 at make_ext.pl line 569. makefile:600: recipe for target 'lib/auto/Time/HiRes/HiRes.so' failed make: *** [lib/auto/Time/HiRes/HiRes.so] Error 2 Looking at dist/Time-HiRes, I see 'xdefine'. I do not see 'Makefile': $ ls -AF1 dist/Time-HiRes/ Changes HiRes.pm HiRes.xs Makefile.PL fallback/ hints/ ppport.h t/ typemap xdefine Comparing the attempted build for Time-HiRes against other successful module builds, I see this message for Time-HiRes: Makefile.PL: The "xdefine" exists, skipping the configure step. The above messages was emitted by the main() subroutine in dist/Time-HiRes/Makefile.PL. Changing into the module directory and running the suggested command (with an appropriate -I option): $ cd dist/Time-HiRes $ /home/dpchrist/src/debian-9/perl-5.24.1/miniperl -I../../lib Makefile.PL --configure Configuring Time::HiRes... Using hints hints/linux.pl... Extra libraries: -lrt... Have syscall()... looking for syscall.h... NOT found. Looking for gettimeofday()... found. Looking for setitimer()... found. Looking for getitimer()... found. You have interval timers (both setitimer and getitimer). Looking for ualarm()... found. Looking for usleep()... found. Looking for nanosleep()... testing... found. You can mix subsecond sleeps with signals, if you want to. (It's still not portable, though.) Looking for clock_gettime()... NOT found. Looking for clock_getres()... NOT found. Looking for clock_nanosleep()... NOT found. Looking for clock()... NOT found. Looking for stat() subsecond timestamps... Trying struct stat st_atimespec.tv_nsec...NOT found. Trying struct stat st_atimensec...NOT found. Trying struct stat st_atime_n...NOT found. Trying struct stat st_atim.tv_nsec...NOT found. Trying struct stat st_uatime...NOT found. You do not seem to have stat subsecond timestamps. Can't load module B, dynamic loading not available in this perl. (You may need to build a new perl executable which either supports dynamic loading or has the B module statically linked into it.) at /home/dpchrist/src/debian-9/perl-5.24.1/lib/B.pm line 28. BEGIN failed--compilation aborted at /home/dpchrist/src/debian-9/perl-5.24.1/lib/B.pm line 28. Compilation failed in require at /home/dpchrist/src/debian-9/perl-5.24.1/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker.pm line 1275. Suggestions? David