Bug 1036785

Summary: libffi-devel needed for building python bcrypt module
Product: OpenShift Online Reporter: Gianluca Sforna <giallu>
Component: ImageAssignee: Michal Fojtik <mfojtik>
Status: CLOSED CURRENTRELEASE QA Contact: libra bugs <libra-bugs>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 2.xCC: bmeng, chunchen, xtian
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2014-01-30 00:51:32 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:

Description Gianluca Sforna 2013-12-02 15:43:26 UTC
adding bcrypt to setup.py of a python application fails because of a missing libffi-devel package.

Small snippet from deploy log:

remote:   Running setup.py egg_info for package bcrypt
remote:     Package libffi was not found in the pkg-config search path.
remote:     Perhaps you should add the directory containing `libffi.pc'
remote:     to the PKG_CONFIG_PATH environment variable
remote:     No package 'libffi' found

Comment 1 Michal Fojtik 2013-12-02 16:53:58 UTC
PR here:

https://github.com/openshift/origin-server/pull/4271

Comment 2 openshift-github-bot 2013-12-02 18:09:41 UTC
Commit pushed to master at https://github.com/openshift/origin-server

https://github.com/openshift/origin-server/commit/31738386b1e1e19e2f7e1fb8398e791c70c9a0ba
Bug 1036785 - Added libffi-devel to python cart requires

Comment 3 Qiushui Zhang 2013-12-03 10:01:47 UTC
Tested on devenv_4087.

After "bcrypt", git add and commit.  
[openshift@dhcp-10-143 py]$ git push 
[master 48a2b29] this is a comment
 Committer: openshift <openshift.redhat.com>
Your name and email address were configured automatically based
on your username and hostname. Please check that they are accurate.
You can suppress this message by setting them explicitly:

    git config --global user.name "Your Name"
    git config --global user.email you

After doing this, you may fix the identity used for this commit with:

    git commit --amend --reset-author

 1 file changed, 1 insertion(+)
warning: push.default is unset; its implicit value is changing in
Git 2.0 from 'matching' to 'simple'. To squelch this message
and maintain the current behavior after the default changes, use:

  git config --global push.default matching

To squelch this message and adopt the new behavior now, use:

  git config --global push.default simple

See 'git help config' and search for 'push.default' for further information.
(the 'simple' mode was introduced in Git 1.7.11. Use the similar mode
'current' instead of 'simple' if you sometimes use older versions of Git)

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@       WARNING: POSSIBLE DNS SPOOFING DETECTED!          @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
The RSA host key for py-qiuzhang.dev.rhcloud.com has changed,
and the key for the corresponding IP address 54.235.31.73
is unchanged. This could either mean that
DNS SPOOFING is happening or the IP address for the host
and its host key have changed at the same time.
Offending key for IP in /home/openshift/.ssh/known_hosts:436
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that a host key has just been changed.
The fingerprint for the RSA key sent by the remote host is
93:76:28:d1:35:a1:d3:c5:21:bc:5b:ca:35:e2:19:98.
Please contact your system administrator.
Add correct host key in /home/openshift/.ssh/known_hosts to get rid of this message.
Offending RSA key in /home/openshift/.ssh/known_hosts:132
Password authentication is disabled to avoid man-in-the-middle attacks.
Keyboard-interactive authentication is disabled to avoid man-in-the-middle attacks.
Counting objects: 5, done.
Compressing objects: 100% (3/3), done.
Writing objects: 100% (3/3), 311 bytes | 0 bytes/s, done.
Total 3 (delta 2), reused 0 (delta 0)
remote: Building git ref 'master', commit 48a2b29
remote:   - Created/Updated virtenv and activated it.
remote:  - Found setup.py. Processing it ...
remote: running develop
remote: running egg_info
remote: creating YourAppName.egg-info
remote: writing YourAppName.egg-info/PKG-INFO
remote: writing dependency_links to YourAppName.egg-info/dependency_links.txt
remote: writing requirements to YourAppName.egg-info/requires.txt
remote: writing top-level names to YourAppName.egg-info/top_level.txt
remote: writing manifest file 'YourAppName.egg-info/SOURCES.txt'
remote: reading manifest file 'YourAppName.egg-info/SOURCES.txt'
remote: writing manifest file 'YourAppName.egg-info/SOURCES.txt'
remote: running build_ext
remote: Creating /var/lib/openshift/529daac2d27479f4f000014a/app-root/runtime/dependencies/python/virtenv/venv/lib/python3.3/site-packages/YourAppName.egg-link (link to .)
remote: Adding YourAppName 1.0 to easy-install.pth file
remote: 
remote: Installed /var/lib/openshift/529daac2d27479f4f000014a/app-root/runtime/repo
remote: Processing dependencies for YourAppName==1.0
remote: Searching for bcrypt
remote: Reading http://mirror1.ops.rhcloud.com/mirror/python/web/simple/bcrypt/
remote: Best match: bcrypt 1.0.2
remote: Downloading http://mirror1.ops.rhcloud.com/mirror/python/web/packages/source/b/bcrypt/bcrypt-1.0.2.tar.gz#md5=c5df008669d17dd6eeb5e2042d5e136f
remote: Processing bcrypt-1.0.2.tar.gz
remote: Writing /tmp/easy_install-kp4k3w/bcrypt-1.0.2/setup.cfg
remote: Running bcrypt-1.0.2/setup.py -q bdist_egg --dist-dir /tmp/easy_install-kp4k3w/bcrypt-1.0.2/egg-dist-tmp-4kq71i
remote: Checking .pth file support in .
remote: /var/lib/openshift/529daac2d27479f4f000014a/python/virtenv/venv/bin/python -E -c pass
remote: Searching for cffi
remote: Reading http://pypi.python.org/simple/cffi/
remote: Best match: cffi 0.8.1
remote: Downloading https://pypi.python.org/packages/source/c/cffi/cffi-0.8.1.tar.gz#md5=1a877bf113bfe90fdefedbf9e39310d2
remote: Processing cffi-0.8.1.tar.gz
remote: Writing /tmp/easy_install-kp4k3w/bcrypt-1.0.2/temp/easy_install-gkbdnz/cffi-0.8.1/setup.cfg
remote: Running cffi-0.8.1/setup.py -q bdist_egg --dist-dir /tmp/easy_install-kp4k3w/bcrypt-1.0.2/temp/easy_install-gkbdnz/cffi-0.8.1/egg-dist-tmp-thnm4u
remote: cc -c c/check__thread.c -o c/check__thread.o
remote: 
remote: Installed /tmp/easy_install-kp4k3w/bcrypt-1.0.2/cffi-0.8.1-py3.3-linux-x86_64.egg
remote: Searching for pycparser
remote: Reading http://pypi.python.org/simple/pycparser/
remote: Best match: pycparser 2.10
remote: Downloading https://pypi.python.org/packages/source/p/pycparser/pycparser-2.10.tar.gz#md5=d87aed98c8a9f386aa56d365fe4d515f
remote: Processing pycparser-2.10.tar.gz
remote: Writing /tmp/easy_install-kp4k3w/bcrypt-1.0.2/temp/easy_install-h5hbac/pycparser-2.10/setup.cfg
remote: Running pycparser-2.10/setup.py -q bdist_egg --dist-dir /tmp/easy_install-kp4k3w/bcrypt-1.0.2/temp/easy_install-h5hbac/pycparser-2.10/egg-dist-tmp-yrg215
remote: zip_safe flag not set; analyzing archive contents...
remote: 
remote: Installed /tmp/easy_install-kp4k3w/bcrypt-1.0.2/pycparser-2.10-py3.3.egg
remote: Adding bcrypt 1.0.2 to easy-install.pth file
remote: 
remote: Installed /var/lib/openshift/529daac2d27479f4f000014a/app-root/runtime/dependencies/python/virtenv/venv/lib/python3.3/site-packages/bcrypt-1.0.2-py3.3.egg
remote: Searching for CherryPy
remote: Reading http://mirror1.ops.rhcloud.com/mirror/python/web/simple/CherryPy/
remote: Reading http://www.cherrypy.org
remote: Reading http://download.cherrypy.org/cherrypy/3.1.0rc1/
remote: Reading http://download.cherrypy.org/cherrypy/3.1.0/
remote: Reading http://sourceforge.net/project/showfiles.php?group_id=56099
remote: Reading http://download.cherrypy.org/cherrypy/3.0.1/
remote: Reading http://download.cherrypy.org/cherrypy/3.1.0beta3/
remote: Reading http://download.cherrypy.org/cherrypy/3.0.3/
remote: Reading http://download.cherrypy.org/cherrypy/2.2.1/
remote: Reading http://download.cherrypy.org/cherrypy/2.3.0/
remote: Reading http://download.cherrypy.org/cherrypy/3.0RC1/
remote: Reading http://trac.cherrypy.org/cgi-bin/trac.cgi/wiki/CherryPyDownload
remote: Reading http://download.cherrypy.org/cherrypy/3.1.2/
remote: Reading http://download.cherrypy.org/cherrypy/3.0.2/
remote: Reading http://download.cherrypy.org/cherrypy/3.1.1/
remote: Reading http://download.cherrypy.org/cherrypy/3.0.4/
remote: Reading http://download.cherrypy.org/cherrypy/3.2.2/
remote: Reading http://download.cherrypy.org/cherrypy/3.2.0/
remote: Reading http://download.cherrypy.org/cherrypy/3.0.0/
remote: Reading http://download.cherrypy.org/cherrypy/3.1beta/
remote: Reading http://download.cherrypy.org/cherrypy/3.2.3/
remote: Best match: CherryPy 3.2.4
remote: Downloading http://mirror1.ops.rhcloud.com/mirror/python/web/packages/source/C/CherryPy/CherryPy-3.2.4.zip#md5=c536caebc207731a0fba378818f841be
remote: Processing CherryPy-3.2.4.zip
remote: Writing /tmp/easy_install-x5pk__/CherryPy-3.2.4/setup.cfg
remote: Running CherryPy-3.2.4/setup.py -q bdist_egg --dist-dir /tmp/easy_install-x5pk__/CherryPy-3.2.4/egg-dist-tmp-9xs5or
remote: zip_safe flag not set; analyzing archive contents...
remote: cherrypy.test.__pycache__.modwsgi.cpython-33: module references __file__
remote: cherrypy.test.__pycache__.test_wsgiapps.cpython-33: module references __file__
remote: cherrypy.test.__pycache__.modfcgid.cpython-33: module references __file__
remote: cherrypy.test.__pycache__.test_routes.cpython-33: module references __file__
remote: cherrypy.test.__pycache__.benchmark.cpython-33: module references __file__
remote: cherrypy.test.__pycache__.test_config.cpython-33: module references __file__
remote: cherrypy.test.__pycache__.test_core.cpython-33: module references __file__
remote: cherrypy.test.__pycache__.test_logging.cpython-33: module references __file__
remote: cherrypy.test.__pycache__.modfastcgi.cpython-33: module references __file__
remote: cherrypy.test.__pycache__.helper.cpython-33: module references __file__
remote: cherrypy.test.__pycache__.test_static.cpython-33: module references __file__
remote: cherrypy.test.__pycache__.test_virtualhost.cpython-33: module references __file__
remote: cherrypy.test.__pycache__.test_states.cpython-33: module references __file__
remote: cherrypy.test.__pycache__.checkerdemo.cpython-33: module references __file__
remote: cherrypy.test.__pycache__.test_request_obj.cpython-33: module references __file__
remote: cherrypy.test.__pycache__.test_misc_tools.cpython-33: module references __file__
remote: cherrypy.test.__pycache__.test_session.cpython-33: module references __file__
remote: cherrypy.test.__pycache__.modpy.cpython-33: module references __file__
remote: cherrypy.test.__pycache__.test_caching.cpython-33: module references __file__
remote: cherrypy.test.__pycache__.test_config_server.cpython-33: module references __file__
remote: cherrypy.__pycache__._cpmodpy.cpython-33: module references __file__
remote: cherrypy.__pycache__._cptree.cpython-33: module references __file__
remote: cherrypy.scaffold.__pycache__.__init__.cpython-33: module references __file__
remote: cherrypy.lib.__pycache__.cpstats.cpython-33: module references __file__
remote: cherrypy.lib.__pycache__.covercp.cpython-33: module references __file__
remote: cherrypy.lib.__pycache__.profiler.cpython-33: module references __file__
remote: cherrypy.lib.__pycache__.gctools.cpython-33: module MAY be using inspect.getframeinfo
remote: cherrypy.process.__pycache__.plugins.cpython-33: module references __file__
remote: cherrypy.tutorial.__pycache__.tut03_get_and_post.cpython-33: module references __file__
remote: cherrypy.tutorial.__pycache__.tut08_generators_and_yield.cpython-33: module references __file__
remote: cherrypy.tutorial.__pycache__.tut01_helloworld.cpython-33: module references __file__
remote: cherrypy.tutorial.__pycache__.tut04_complex_site.cpython-33: module references __file__
remote: cherrypy.tutorial.__pycache__.tut10_http_errors.cpython-33: module references __file__
remote: cherrypy.tutorial.__pycache__.tut07_sessions.cpython-33: module references __file__
remote: cherrypy.tutorial.__pycache__.tut09_files.cpython-33: module references __file__
remote: cherrypy.tutorial.__pycache__.tut05_derived_objects.cpython-33: module references __file__
remote: cherrypy.tutorial.__pycache__.tut02_expose_methods.cpython-33: module references __file__
remote: cherrypy.tutorial.__pycache__.tut06_default_method.cpython-33: module references __file__
remote: Adding CherryPy 3.2.4 to easy-install.pth file
remote: Installing cherryd script to /var/lib/openshift/529daac2d27479f4f000014a/python/virtenv/venv/bin
remote: 
remote: Installed /var/lib/openshift/529daac2d27479f4f000014a/app-root/runtime/dependencies/python/virtenv/venv/lib/python3.3/site-packages/CherryPy-3.2.4-py3.3.egg
remote: Searching for cffi
remote: Reading http://mirror1.ops.rhcloud.com/mirror/python/web/simple/cffi/
remote: Best match: cffi 0.8.1
remote: Downloading http://mirror1.ops.rhcloud.com/mirror/python/web/packages/source/c/cffi/cffi-0.8.1.tar.gz#md5=1a877bf113bfe90fdefedbf9e39310d2
remote: Processing cffi-0.8.1.tar.gz
remote: Writing /tmp/easy_install-wn0s6b/cffi-0.8.1/setup.cfg
remote: Running cffi-0.8.1/setup.py -q bdist_egg --dist-dir /tmp/easy_install-wn0s6b/cffi-0.8.1/egg-dist-tmp-psx173
remote: cc -c c/check__thread.c -o c/check__thread.o
remote: Adding cffi 0.8.1 to easy-install.pth file
remote: 
remote: Installed /var/lib/openshift/529daac2d27479f4f000014a/app-root/runtime/dependencies/python/virtenv/venv/lib/python3.3/site-packages/cffi-0.8.1-py3.3-linux-x86_64.egg
remote: Searching for pycparser
remote: Reading http://mirror1.ops.rhcloud.com/mirror/python/web/simple/pycparser/
remote: Best match: pycparser 2.10
remote: Downloading http://mirror1.ops.rhcloud.com/mirror/python/web/packages/source/p/pycparser/pycparser-2.10.tar.gz#md5=d87aed98c8a9f386aa56d365fe4d515f
remote: Processing pycparser-2.10.tar.gz
remote: Writing /tmp/easy_install-cb_ig5/pycparser-2.10/setup.cfg
remote: Running pycparser-2.10/setup.py -q bdist_egg --dist-dir /tmp/easy_install-cb_ig5/pycparser-2.10/egg-dist-tmp-vwi7la
remote: zip_safe flag not set; analyzing archive contents...
remote: Adding pycparser 2.10 to easy-install.pth file
remote: 
remote: Installed /var/lib/openshift/529daac2d27479f4f000014a/app-root/runtime/dependencies/python/virtenv/venv/lib/python3.3/site-packages/pycparser-2.10-py3.3.egg
remote: Finished processing dependencies for YourAppName==1.0
remote:  - Done processing setup.py
remote: Preparing build for deployment
remote: Deployment id is 80cdd39e
remote: Activating deployment
remote: Result: success
remote: Activation status: success
remote: Deployment completed with status: success
To ssh://529daac2d27479f4f000014a.rhcloud.com/~/git/py.git/
   abc0670..48a2b29  master -> master
[openshift@dhcp-10-143 py]$ 

Mark the bug as verified.