I am a Python Core developer and the owner of the bsddb3 Berkeley DB bindings for Python. The original code, not the pkgsrc integration. I just migrated to SmartOS and I noticed that current bsddb3 bindings can not find the Berkeley DB libraries in the system. I have updates my module to expand the search and now it compiles cleanly on SmartOS native zones and, I hope (somebody could try?) on other pkgsrc supported systems. In the process, nevertheless, I have found an issue with the flags used to compile both Python 2 and Python 3. Long story short: - You are using "-I/opt/local/include/db4" with Python 3. That is completely unnecessary, because Python 3 doesn't include a bsddb module. It was dropped in the 2->3 transition. My guess is that that flag was just kept when Python 3 was integrated, using python 3 integration as a template. It should be simply dropped, it has no effect in python but it has a (negative) effect when compiling external modules, in this case the bsddb3 bindings. - Python 2 also has "-I/opt/local/include/db4" in order to compile the builtin bsddb bindings. Nevertheless, that is wrong. The search details should be patched in the bsddb source code, not in thru python compilation flags. If you do that, it will interfere with other external modules like... my bsddb3 bindings. Since I am a python core developer, I plan to include support for pkgsrc in the included bsddb code for future Python 2.7.14, so these kludges can be dropped. My questions then are: 1. I usually work against Joyent pkgsrc repository. Supposedly they would move those patches upstream. Given the nature of the issues and the unknown (so far, I just starting this journey) diligence of Joyent, maybe should I try a up to down strategy?. 2. What versions of pkgsrc should I target?. "current" (future 2017Q1) only?. Joyent supports 201XQ4 for three years, if I recall correctly. 3. If you decide that I should do this work on original pkgsrc instead of Joyent one, how must I proceed?. Are pkgsrc developer guide details current?. 4. When Python 2.7.14 is out, what would be the procedure to clean the "unneeded" patches in pkgsrc?. Is this the right mailing list to discuss those issues?. Any advice welcomed. Thanks. -- Jesús Cea Avión _/_/ _/_/_/ _/_/_/ jcea%jcea.es@localhost - http://www.jcea.es/ _/_/ _/_/ _/_/ _/_/ _/_/ Twitter: @jcea _/_/ _/_/ _/_/_/_/_/ jabber / xmpp:jcea%jabber.org@localhost _/_/ _/_/ _/_/ _/_/ _/_/ "Things are not so easy" _/_/ _/_/ _/_/ _/_/ _/_/ _/_/ "My name is Dump, Core Dump" _/_/_/ _/_/_/ _/_/ _/_/ "El amor es poner tu felicidad en la felicidad de otro" - Leibniz
Attachment:
signature.asc
Description: OpenPGP digital signature