<div dir="ltr">So I am working on building my first set of manylinux1 wheels. The first candidate is psycopg2. I was able to generate the wheel which brings in all the necessary libs:<div><br></div><div><div># auditwheel show dist/psycopg2-2.6.1-cp27-cp27mu-linux_x86_64.whl </div><div><br></div><div>psycopg2-2.6.1-cp27-cp27mu-linux_x86_64.whl is consistent with the</div><div>following platform tag: "linux_x86_64".</div><div><br></div><div>The wheel references the following external versioned symbols in</div><div>system-provided shared libraries: GLIBC_2.3.</div><div><br></div><div>The following external shared libraries are required by the wheel:</div><div>{</div><div>    "libc.so.6": "/lib64/<a href="http://libc-2.5.so">libc-2.5.so</a>",</div><div>    "libcom_err.so.2": "/lib64/libcom_err.so.2.1",</div><div>    "libcrypt.so.1": "/lib64/<a href="http://libcrypt-2.5.so">libcrypt-2.5.so</a>",</div><div>    "libcrypto.so.6": "/lib64/libcrypto.so.0.9.8e",</div><div>    "libdl.so.2": "/lib64/<a href="http://libdl-2.5.so">libdl-2.5.so</a>",</div><div>    "libgssapi_krb5.so.2": "/usr/lib64/libgssapi_krb5.so.2.2",</div><div>    "libk5crypto.so.3": "/usr/lib64/libk5crypto.so.3.1",</div><div>    "libkeyutils.so.1": "/lib64/<a href="http://libkeyutils-1.2.so">libkeyutils-1.2.so</a>",</div><div>    "libkrb5.so.3": "/usr/lib64/libkrb5.so.3.3",</div><div>    "libkrb5support.so.0": "/usr/lib64/libkrb5support.so.0.1",</div><div>    "liblber-2.3.so.0": "/usr/lib64/liblber-2.3.so.0.2.31",</div><div>    "libldap_r-2.3.so.0": "/usr/lib64/libldap_r-2.3.so.0.2.31",</div><div>    "libpq.so.5": "/usr/pgsql-9.5/lib/libpq.so.5.8",</div><div>    "libpthread.so.0": "/lib64/<a href="http://libpthread-2.5.so">libpthread-2.5.so</a>",</div><div>    "libresolv.so.2": "/lib64/<a href="http://libresolv-2.5.so">libresolv-2.5.so</a>",</div><div>    "libsasl2.so.2": "/usr/lib64/libsasl2.so.2.0.22",</div><div>    "libselinux.so.1": "/lib64/libselinux.so.1",</div><div>    "libsepol.so.1": "/lib64/libsepol.so.1",</div><div>    "libssl.so.6": "/lib64/libssl.so.0.9.8e",</div><div>    "libz.so.1": "/lib64/libz.so.1.2.3"</div><div>}</div><div><br></div><div>In order to achieve the tag platform tag "manylinux1_x86_64" the</div><div>following shared library dependencies will need to be eliminated:</div><div><br></div><div>libcom_err.so.2, libcrypto.so.6, libgssapi_krb5.so.2,</div><div>libk5crypto.so.3, libkeyutils.so.1, libkrb5.so.3, libkrb5support.so.0,</div><div>liblber-2.3.so.0, libldap_r-2.3.so.0, libpq.so.5, libresolv.so.2,</div><div>libsasl2.so.2, libselinux.so.1, libsepol.so.1, libssl.so.6, libz.so.1</div><div>[root@03bf985a7c8a psycopg2-2.6.1]# auditwheel repair dist/psycopg2-2.6.1-cp27-cp27mu-linux_x86_64.whl </div><div>Repairing psycopg2-2.6.1-cp27-cp27mu-linux_x86_64.whl</div><div>Grafting: /usr/lib64/libsasl2.so.2.0.22</div><div>Grafting: /lib64/libsepol.so.1</div><div>Grafting: /usr/lib64/libk5crypto.so.3.1</div><div>Grafting: /lib64/libselinux.so.1</div><div>Grafting: /lib64/libcom_err.so.2.1</div><div>Grafting: /lib64/libz.so.1.2.3</div><div>Grafting: /usr/lib64/libldap_r-2.3.so.0.2.31</div><div>Grafting: /usr/pgsql-9.5/lib/libpq.so.5.8</div><div>Grafting: /usr/lib64/libkrb5support.so.0.1</div><div>Grafting: /lib64/<a href="http://libkeyutils-1.2.so">libkeyutils-1.2.so</a></div><div>Grafting: /lib64/<a href="http://libresolv-2.5.so">libresolv-2.5.so</a></div><div>Grafting: /usr/lib64/libgssapi_krb5.so.2.2</div><div>Grafting: /usr/lib64/libkrb5.so.3.3</div><div>Grafting: /usr/lib64/liblber-2.3.so.0.2.31</div><div>Grafting: /lib64/libssl.so.0.9.8e</div><div>Grafting: /lib64/libcrypto.so.0.9.8e</div><div>Setting RPATH: psycopg2/_psycopg.so</div><div><br></div><div>Writing fixed-up wheel written to /build/psycopg2-2.6.1/wheelhouse/psycopg2-2.6.1-cp27-cp27mu-linux_x86_64.whl</div></div><div><br></div><div>However, attempting to use this wheel on Ubuntu 14.04 results in a failure to load libpython2.7.so.1:</div><div><br></div><div><div>  ImportError: libpython2.7.so.1.0: cannot open shared object file: No such file or directory</div></div><div><br></div><div>PEP 513 addresses libpythonX.Y.so.1 but only to say that it does not need to be linked, nor should it be. Is my understanding correct, then, that I would need to fix psycopg2 myself to *not* link to libpython (if this works - won't there be unresolved symbols at link time?)? Is there a more general solution to this problem?</div><div><br></div><div>Related, some of these are concerning to me. Although CentOS 5 receives updates, so its OpenSSL should be secure and bug-free, this is still OpenSSL 0.9.8e. And bundling SELinux and Kerberos/GSSAPI libs also makes me a bit worried.</div><div><br></div><div>--nate</div></div>