Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Audit dependency chain #8

Open
NattyNarwhal opened this issue Mar 27, 2019 · 4 comments
Open

Audit dependency chain #8

NattyNarwhal opened this issue Mar 27, 2019 · 4 comments

Comments

@NattyNarwhal
Copy link
Member

NattyNarwhal commented Mar 27, 2019

Testing on a fresh i 7.2 LPAR. Yum bootstrap will install these RPMs by default, so it's a matter of what needs to be installed afterwards. Install rpm-build, rpmdevtools, and curl (to fetch the tarballs). Some things I noticed, using giflib as an example:

  • IBM's libtool doesn't declare grep-gnu as a dependency when libtoolize needs it.

Using giflib as an example:

  • tar-gnu and bzip2 are not declared. Should this be a dependency on the part of rpm-build? Otherwise, it won't extract the tarball. I assume substitute bzip2 for gzip or xz as needed.

  • Some things are declared. Yum will happily install those. It does bring in an undeclared make-gnu dependency.

================================================================================
 Package                 Arch             Version           Repository     Size
================================================================================
Installing:
 autoconf                noarch           2.69-1            ibm           889 k
 automake                noarch           1.15-1            ibm           653 k
 libtool                 ppc64            2.4.6-3           ibm           688 k
 libutil-devel           ppc64            0.6.1-0           ibm           8.8 k
 sed-gnu                 ppc64            4.4-0             ibm           418 k
Installing for dependencies:
 libutil2                ppc64            0.6.1-0           ibm            16 k
 make-gnu                ppc64            4.2-0             ibm           467 k

Transaction Summary
================================================================================
Install       7 Packages
  • Rerun, the step for autoreconf (we need to occasionally regenerate the configure scripts, otherwise they won't pick up dynamic linking with PASE svr4 sonames) can't find m4-gnu and libtoolize warns about the missing grep-gnu.

  • No cc. Time to add gcc-aix, which only covers C for now.

  • diff barfs at the end of packaging. Time for diffutils.

  • Successful build.

I think a lot of these are the implied steps of building RPMs. Some are of the RPM's (like GCC, even if autowhatever is depended on explicitly) and undeclared dependencies of say, autotools, but some are implied steps when building the RPM you shouldn't have to worry about. Some of those I can think of:

  • For rpm-build

    • Compression tools as needed and maybe tar-gnu (as it is explicitly used) for extracting.

    • make-gnu as it runs the GNU make tool explicitly when building.

    • diffutils for finalizing the package

  • For autotools

    • grep-gnu for libtool

    • m4-gnu for what provides autoconf

@NattyNarwhal
Copy link
Member Author

Building libart_lgpl, triggers something that makes it need coreutils-gnu for mktemp when assembling the RPM. Hmmm.

@NattyNarwhal
Copy link
Member Author

Building lzo exposing no gzip or patch-gnu.

@NattyNarwhal
Copy link
Member Author

+ cd lzo-2.10
+ autoreconf -fiv
autoreconf: Entering directory `.'
autoreconf: configure.ac: not using Gettext
autoreconf: running: aclocal --force
autoreconf: configure.ac: tracing
autoreconf: running: libtoolize --copy --force
/QOpenSys/pkgs/bin/libtoolize[9]: /QOpenSys/pkgs/bin/grep:  not found
libtoolize: putting auxiliary files in '.'.
libtoolize: copying file './ltmain.sh'
autoreconf: running: /QOpenSys/pkgs/bin/autoconf --force
autoreconf: running: /QOpenSys/pkgs/bin/autoheader --force
autoreconf: running: automake --add-missing --copy --force-missing
Makefile.am:17: error: 'pkgconfig_DATA' is used but 'pkgconfigdir' is undefined
autoreconf: automake failed with exit status: 1
error: Bad exit status from /QOpenSys/var/tmp/rpm-tmp.ocl3Qb (%build)

Missing pkg-config.

@NattyNarwhal
Copy link
Member Author

Also keep in mind this is BuildDepends, not regular Depends. I haven't tested runtime dependencies, and I can do that after my binge with a new LPAR without many assumptions made.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant