-
Notifications
You must be signed in to change notification settings - Fork 8
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
Config changes needed to build on CentOS 6 with newer GCC #13
base: develop
Are you sure you want to change the base?
Conversation
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).
@@ -7,11 +7,23 @@ parts = zlib ncurses readline openssl openssh libgpg-error libgcrypt gettext lib | |||
gnu | |||
recipe = hexagonit.recipe.cmmi | |||
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 |
There was a problem hiding this comment.
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.
There was a problem hiding this comment.
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!
Unfortunately this change breaks our local setup. The patches for libgcrypt seem to cause redefinition errors for the patched functions, like this:
|
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. |
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. |
see pull request #13
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.