Skip to content

Conversation

@minddrive
Copy link

These changes will probably need to be handled in a better way, but wanted
to start with what I have now to determine the proper fix moving forward.

Due to a newer-than-standard GCC being installed on our system (6.3.1),
some additional changes (mostly pulled from the Ubuntu 16.04 config) were
needed to get a full build.

The 'url' additions to device-mapper and libvirt were needed to allow
the tarballs to be extracted.

The '--with-user'/'--with-group' additions to device-mapper were needed
to build as non-root (otherwise installation of certain files failed as
it tried to chown them).

As it stands, not everyone should be building with a newer GCC on CentOS 6,
so probably finding a way to conditionalize on the version of GCC would be
a better solution, but I'm unsure of how to do this, being a bit new to buildout.
Suggestions greatly appreciated.

Due to a newer-than-standard GCC being installed on our system (6.3.1),
some additional changes (mostly pulled from the Ubuntu 16.04 config) were
needed to get a full build.

The 'url' additions to device-mapper and libvirt were needed to allow
the tarballs to be extracted.

The '--with-user'/'--with-group' additions to device-mapper were needed
to build as non-root (otherwise installation of certain files failed as
it tried to chown them).
version = 1.02.28
configure-options = --prefix=${options:prefix} --disable-rpath --libdir=${options:prefix}/lib64 --disable-selinux
configure-options = --prefix=${options:prefix} --disable-rpath --libdir=${options:prefix}/lib64 --disable-selinux --with-user=$USER --with-group=$GROUP
url = ${urls:source}/${:name}-${:version}.tgz
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The correct url should be with .tar.gz. There was a sync problem between our external and internal source repositories. Our internal repository contained .tar.gz archives while the external incorrectly had only tgz archives for libvirt and device-mapper. I fixed this now, and the files now use tar.gz, so you should remove the url definitions.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good to know about this one, thanks!

@wiggin15
Copy link
Contributor

Unfortunately this change breaks our local setup. The patches for libgcrypt seem to cause redefinition errors for the patched functions, like this:

../mpi/.libs/libmpi.a(ec.o): In function `_gcry_mpih_cmp':
ec.c:(.text+0x2dd): multiple definition of `_gcry_mpih_cmp'
../mpi/.libs/libmpi.a(mpi-add.o):mpi-add.c:(.text+0x2dd): first defined here

@minddrive
Copy link
Author

Yeah, I suspect it's breaking the local setup since you're using the usual GCC. I'm unsure how to conditionalize for when there's a newer GCC installed; any suggestions would be greatly welcome.

@wiggin15
Copy link
Contributor

I think that we can try to bump libgcrypt to 1.7.3 and libgpg-error to 1.22 in all configurations. These versions should work for both gcc's. This way we can eliminate the need for patches for libgcrypt and we'll need less explicit options in ubuntu-16.04 and in redhat-64-bit-with-libvirt. I'll need to run this on our full matrix of supported platform to see if that will work.

jenkins-infinidat pushed a commit that referenced this pull request Mar 13, 2018
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

Successfully merging this pull request may close these issues.

2 participants