libcrypt-smime-perl 0.21-1build1 missing source build dependency?

Asked by Robert Hardy

I'm trying to find or package up the various dependencies of ASSP.
I'm looking to have packaged what actually runs best with it not necessarily the minimum requirements.
I believe one of those runs best with packages is libcrypt-smime-perl 0.25.

The first step is to be able to rebuild the current version of libcrypt-smime-perl 0.21-1build1.
I did this on a VM running current 18.04 (among other places.)

To test a rebuild of the package I did the following:
$ dget -xu https://launchpad.net/ubuntu/+archive/primary/+files/libcrypt-smime-perl_0.21-1build1.dsc
[ successful download text deleted]
$ debuild -us -sa
 dpkg-buildpackage -rfakeroot -us -uc -ui -sa
dpkg-buildpackage: info: source package libcrypt-smime-perl
dpkg-buildpackage: info: source version 0.21-1build1
dpkg-buildpackage: info: source distribution bionic
dpkg-buildpackage: info: source changed by Steve Langasek <email address hidden>
 dpkg-source --before-build libcrypt-smime-perl-0.21
dpkg-buildpackage: info: host architecture amd64
 fakeroot debian/rules clean
dh clean --with perl_openssl
   dh_clean
 dpkg-source -b libcrypt-smime-perl-0.21
dpkg-source: info: using source format '3.0 (quilt)'
dpkg-source: info: building libcrypt-smime-perl using existing ./libcrypt-smime-perl_0.21.orig.tar.gz
dpkg-source: info: building libcrypt-smime-perl in libcrypt-smime-perl_0.21-1build1.debian.tar.xz
dpkg-source: info: building libcrypt-smime-perl in libcrypt-smime-perl_0.21-1build1.dsc
 debian/rules build
dh build --with perl_openssl
   dh_update_autotools_config
   dh_autoreconf
   dh_auto_configure
        perl -I. Makefile.PL INSTALLDIRS=vendor "OPTIMIZE=-g -O2 -fdebug-prefix-map=/tmp/libcrypt-smime-perl-0.21=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2" "LD=x86_64-linux-gnu-gcc -g -O2 -fdebug-prefix-map=/tmp/libcrypt-smime-perl-0.21=. -fstack-protector-strong -Wformat -Werror=format-security -Wl,-Bsymbolic-functions -Wl,-z,relro -Wl,-z,now"
Checking if your kit is complete...
Looks good
checking for gettimeofday... yes
checking for time... yes
checking for libcrypto... 1.1.0g
checking for LIBCRYPTO_CFLAGS...
checking for LIBCRYPTO_LIBS... -lcrypto
Generating a Unix-style Makefile
Writing Makefile for Crypt::SMIME
Writing MYMETA.yml and MYMETA.json
   dh_auto_build
        make -j2 -O
make[1]: Entering directory '/tmp/libcrypt-smime-perl-0.21'
mlpod2pod SMIME.mlpod > SMIME.pod
/bin/sh: 1: mlpod2pod: not found
Makefile:290: recipe for target 'SMIME.pod' failed
make[1]: *** [SMIME.pod] Error 127
make[1]: Leaving directory '/tmp/libcrypt-smime-perl-0.21'
make[1]: *** Waiting for unfinished jobs....
dh_auto_build: make -j2 -O returned exit code 2
debian/rules:6: recipe for target 'build' failed
make: *** [build] Error 25
dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2
debuild: fatal error at line 1152:
dpkg-buildpackage -rfakeroot -us -uc -ui -sa failed

This is clearly looking for mlpod2pod which I haven't been able to find.

Doing the exact same process with libcrypt-smime-perl_0.19-2build1.dsc, the latest Artful Aardbark release, it works as expected and never runs mlpod2pod i.e. it gets to this point and keeps building:
Generating a Unix-style Makefile
Writing Makefile for Crypt::SMIME
Writing MYMETA.yml and MYMETA.json
   dh_auto_build
        make -j1
make[1]: Entering directory '/tmp/libcrypt-smime-perl-0.19'
cp lib/SMIME/JA.pod blib/lib/Crypt/SMIME/JA.pod
cp lib/SMIME.pm blib/lib/Crypt/SMIME.pm
[ rest of successful build deleted... ]

What Ubuntu package is giving you mlpod2pod which allows you complete the source package build?
This seems to be part of Pod::MultiLang http://search.cpan.org/dist/Pod-MultiLang/ but I can't find anything like libpod-multilang-perl.
I realize this seems to only be needed to build the source package but shouldn't it be listed as build dependency?

Question information

Language:
English Edit question
Status:
Solved
For:
Ubuntu libcrypt-smime-perl Edit question
Assignee:
No assignee Edit question
Solved by:
Robert Hardy
Solved:
Last query:
Last reply:
Revision history for this message
Manfred Hampl (m-hampl) said :
#1

I looked into the original source of the package, and it contains both SMIME.mlpod and SMIME.pod, with SMIME.pod having a later modification time. So there should not be a need that "make" runs the "mlpod2pod SMIME.mlpod > SMIME.pod" command (and hence no need to have it as a dependency, especially if that program seems not to exist on Ubuntu at all).

I suggest that you create a bug report.

Do you have the Ubuntu-provided make program, or a version from somewhere else?

Revision history for this message
Robert Hardy (rhardy) said :
#2

I was using whatever make is there by default. make -v gives GNU Make 4.1.

I ended up creating a working libcrypt-smime-perl_0.25-1ubuntu2~bionic1 based on starting with the previous 0.19-2build1 from Artful Aardvark and then implementing the changes needed to build 0.25 i.e.:
  * Declare compliance with Debian Policy 4.1.3.
  * Bump debhelper compatibility level to 10 and Build-Depends debhelper >= 10.

I suspect what happened is when the tree was moved to the 18.04 server using scp -r all the mtimes were made the same.
1st time I've seen a build fall apart based on the mtime of source files... That is an argument for packaging libpod-multilang-perl.

No idea how to properly contribute the updated build but feel free to nab it if it helps.