Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 307139 - ebuild request : dev-libs/botan-1.9*
Summary: ebuild request : dev-libs/botan-1.9*
Status: RESOLVED LATER
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: [OLD] Library (show other bugs)
Hardware: All Linux
: High enhancement (vote)
Assignee: Jack Lloyd
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2010-02-28 03:15 UTC by Thomas Capricelli
Modified: 2011-04-07 17:00 UTC (History)
3 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments
1.9.4 ebuild (botan-1.9.4.ebuild,2.41 KB, text/plain)
2010-03-10 14:11 UTC, Jack Lloyd
Details
dev-libs/botan-1.9.8 ebuild (botan-1.9.8.ebuild,2.69 KB, text/plain)
2010-06-14 13:49 UTC, Jack Lloyd
Details
dev-libs/botan-1.9.10.ebuild (botan-1.9.10.ebuild,2.54 KB, text/plain)
2010-10-18 23:06 UTC, Jack Lloyd
Details
Updated ebuild (botan-1.9.10.ebuild,2.52 KB, text/plain)
2010-11-17 13:10 UTC, Dane Smith (RETIRED)
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Thomas Capricelli 2010-02-28 03:15:56 UTC
botan has been releasing 1.9.x, which contains python bindings (so i guess that should depend on USE=python).
This, and more, is really intersting, to me at least.


Reproducible: Always
Comment 1 Jack Lloyd 2010-03-01 14:56:30 UTC
In principle there is no problem with this, but I am hesitant about 1.9 being packaged for any distro because the development tree is quite explicitly not stable (especially in terms of API/ABI stability - it is relatively common for there to be major changes along these trees). That said Gentoo has an easier time with this than most distros (1.7 being packaged in Debian was a total mess) thanks to building from source and tools like revdep-rebuild. Definitely I'd be against marking any 1.9 release as non-~ though, regular users (of say monotone which is a dependency (maybe the only one in portage proper atm?)) should not have to deal with this.

That said: I'll attach an ebuild to this PR for 1.9.4 when that is released (probably later this month), I don't have the time to work on an ebuild at the moment and if any dev release is going to be packaged in any form I'd prefer it be that one (as it adds a lot of new features like SSL/TLS, the GOST ECC signature scheme, and many new SIMD optimizations). Which you could use in a portage overlay locally, or if Gentoo wants to redistribute then OK.
Comment 2 Thomas Capricelli 2010-03-01 16:26:32 UTC
Oh, do you mean that they follow the scheme 1.x is the stable branch for x even and unstable for x odd ? I had not understood that.
I agree with you that this should not bet stable (non-~), and i would already be very happy to have 1.9.4 in some overlay, even hard masked..

Thanks for your work anyway.
Comment 3 Jack Lloyd 2010-03-01 16:34:05 UTC
Yes 1.1, 1.3, 1.5, 1.7, 1.9 were/are the development branches that are after a time stabilized to an API compatible (and in 1.8/1.10 also ABI compatible) branch that gets only bug fixes. These are the branches intended for general consumption; the dev releases are mostly so people can follow along, assist in development, or if they really want specific new features that are added along the way before they become generally available in a stable release.
Comment 4 Thomas Capricelli 2010-03-10 01:43:32 UTC
http://botan.randombit.net/news/releases/1_9_4.html
:-)
Comment 5 Jack Lloyd 2010-03-10 14:11:39 UTC
Created attachment 222983 [details]
1.9.4 ebuild

As promised, here is an ebuild for 1.9.4. It respects the python use flag to build the boost python wrappers, but the whole build setup for the python stuff is really pretty poor. Right now it's hardcoded for building/installing itself for python2.6 only, for one thing. I would not recommend this for inclusion into portage due to this, but feel free to mess around with it.

(And patches to improve the Python wrappers in any way would be happily accepted)
Comment 6 Thomas Capricelli 2010-03-11 01:12:46 UTC
Thanks a lot! It works well here (~amd64).

I dont know about the build system for python, but i'm not surprised that it is 'rough'.... the python bindings are in a very early stage, though already quite useful (at least for me :-)

Anyway, thanks again!
Comment 7 Thomas Capricelli 2010-06-04 02:56:14 UTC
botan 1.9.x are released quite often. We are now at 1.9.7. And each release brings interesting stuff (at least for us). Could we have, say, the next one(1.9.8) in portage ? 
(masked if needed)
Of course i agree it should certainly be at the very least unstable (~amd64,~x86)
Comment 8 Thomas Capricelli 2010-06-11 00:25:40 UTC
renaming the ebuild to 1.9.7 works for me
Comment 9 Jack Lloyd 2010-06-14 13:49:58 UTC
Created attachment 235263 [details]
dev-libs/botan-1.9.8 ebuild

Attached a new ebuild for 1.9.8, with some small changes ported in from the 1.8.8-r1 ebuild for OS X.

Caveat: dev-vcs/monotone will build with 1.9, but refuses to run "error: This monotone binary does not work with Botan 1.9.x." - checking the source, it just categorically rejects anything over 1.9.0. Think this is due to ABI stability (or lack thereof) in 1.9, not sure though.
Comment 10 Thomas Capricelli 2010-10-18 22:16:02 UTC
i've installed botan-1.9.8.ebuild today, and really few files are installed. Most importantly the main .so seems to be missing.. ?


------------------------------------------------------------------------
# equery  files botan
 * Searching for botan ...
 * Contents of dev-libs/botan-1.9.8:
/usr
/usr/lib
/usr/lib/debug
/usr/lib/debug/usr
/usr/lib/debug/usr/lib
/usr/lib/debug/usr/lib/python2.6
/usr/lib/debug/usr/lib/python2.6/site-packages
/usr/lib/debug/usr/lib/python2.6/site-packages/botan
/usr/lib/debug/usr/lib/python2.6/site-packages/botan/_botan.so.debug
/usr/lib/python2.6
/usr/lib/python2.6/site-packages
/usr/lib/python2.6/site-packages/botan
/usr/lib/python2.6/site-packages/botan/__init__.py
/usr/lib/python2.6/site-packages/botan/_botan.so
# ldd /usr/lib/python2.6/site-packages/botan/_botan.so
        linux-vdso.so.1 =>  (0x00007ffff2fff000)
        libbotan-1.9.8.so => not found
        libboost_python-1_42.so.1.42.0 => /usr/lib/libboost_python-1_42.so.1.42.0 (0x00007fd07ab4d000)
        libstdc++.so.6 => /usr/lib/gcc/x86_64-pc-linux-gnu/4.4.4/libstdc++.so.6 (0x00007fd07a83b000)
        libm.so.6 => /lib/libm.so.6 (0x00007fd07a5ba000)
        libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x00007fd07a3a2000)
        libc.so.6 => /lib/libc.so.6 (0x00007fd07a03c000)
        libutil.so.1 => /lib/libutil.so.1 (0x00007fd079e39000)
        libpthread.so.0 => /lib/libpthread.so.0 (0x00007fd079c1b000)
        libdl.so.2 => /lib/libdl.so.2 (0x00007fd079a17000)
        /lib64/ld-linux-x86-64.so.2 (0x00007fd07b029000)
------------------------------------------------------------------------
Comment 11 Thomas Capricelli 2010-10-18 22:19:33 UTC
if i edit the ebuild with vim, the following line in src_install() is red, which usually means there's an error according to the vim syntax coloring specification file.

    emake DESTDIR="${ED}usr" install || die "emake install failed"

Though i have no idea of what's wrong. That's probably related to missing installed file. The python files are installed later on.

Comment 12 Thomas Capricelli 2010-10-18 22:53:29 UTC
oops, fortunately the former botan-1.9.7.ebuild still works and installs everything! Just so that you know!
Comment 13 Jack Lloyd 2010-10-18 23:06:12 UTC
Created attachment 251191 [details]
dev-libs/botan-1.9.10.ebuild

It's an EAPI problem I think. At some point someone updated the version of the ebuild in CVS to EAPI 3 but I continued using EAPI 2 in my local dev branch ebuild. ${ED} is EAPI 3 only, so things broke entirely, and clearly I didn't test that ebuild very carefully before I uploaded it.

Attaching a new version for 1.9.10 that seems to fix this.
Comment 14 Thomas Capricelli 2010-10-18 23:31:40 UTC
yeps, confirmed, this one works a lot better, thanks for the very quick answer/fix!
Comment 15 Dane Smith (RETIRED) gentoo-dev 2010-11-12 18:17:47 UTC
Jack, I can add the -1.9* ebuild to the tree masked if you like. As you're the upstream maintainer, I'm going to differ to your judgment though as to whether or not this makes sense.
Comment 16 Jack Lloyd 2010-11-12 22:18:44 UTC
Dane,

I would definitely lean against including the 1.9 ebuilds, at least until things have reached the stage of being release candidates for 1.10, which probably won't happen before spring.

There is also at least one issue with the current 1.9 release and the latest monotone release:

http://code.monotone.ca/p/monotone/issues/104/

This should be resolved in the following releases of botan and/or monotone.
Comment 17 Thomas Capricelli 2010-11-12 22:34:37 UTC
if 1.9.* are included in the main tree and hardmasked, the message that the API is not to be relied upon will be clear enough i think. Please add it :)
Comment 18 Dane Smith (RETIRED) gentoo-dev 2010-11-16 20:38:13 UTC
(In reply to comment #17)
> if 1.9.* are included in the main tree and hardmasked, the message that the API
> is not to be relied upon will be clear enough i think. Please add it :)
> 
I'm sorry, but I don't follow this. What's wrong with the API in botan-1.8*?

On a related note, I am willing to keep 1.9* masked in my overlay if people need it. It should show up soon. Overlay name is c1pher. It will be hardmasked.
Comment 19 Thomas Capricelli 2010-11-16 22:09:29 UTC
There's nothing wrong with API of 1.8.x.
Botan 1.9.x (not 1.8) is a development branch, and as such the api is not stable, this is why Jack (author of botan) is worried about inclusion in gentoo. What i'm saying is that hardmasking it makes it clear enough for people not to rely on it. Nothing else.
Comment 20 Dane Smith (RETIRED) gentoo-dev 2010-11-17 13:10:18 UTC
Created attachment 254629 [details]
Updated ebuild
Comment 21 Dane Smith (RETIRED) gentoo-dev 2010-11-17 13:16:59 UTC
Ok. Some notes:

Everyone: I've added the 1.9.10 ebuild to my overlay (c1pher in layman). Feel free to use it. When Jack thinks it's safe to have it in the main tree, I will gladly add it, for now though, that will be it's home.

Jack: Couple things. First, I made a couple changes to the ebuild. (See attached). Most notable is the use of PYTHON_DEPEND. Seeing that the build system is dependent on Python (as best as I can tell) it's an unconditional depend on Python-2 >= 2.6 with all of the version 3* pythons masked. (PYTHON_RESTRICT_ABIS). If you haven't seen this before, it's very handy [1].

Also, there are some QA issues that will need to be addressed before this goes to gx86.

 * QA Notice: Files built without respecting LDFLAGS have been detected
 *  Please include the following list of files in your report:
 * /usr/lib/python2.6/site-packages/botan/_botan.so

If you need me to look into it, feel free to shoot me an e-mail. As I'm not familiar with the build system, I'm going to leave it to you for the moment though.

[1] http://www.gentoo.org/proj/en/Python/developersguide.xml
Comment 22 Dane Smith (RETIRED) gentoo-dev 2010-12-01 18:57:22 UTC
Bumped to 1.9.11 in my overlay.

In the meantime, I'm closing this. I will continue to manage botan in my overlay while it remains in testing. Jack, when you feel confident that this should be in the main tree, reopen it (and if it's 1.10.* changes the Summary) and I will move what I have into the main tree.

Note: It appears to me that 1.9.11 may have some compile issues. So I would recommend against updating if you're using this. I will remove the keywords from it until Jack and I have it worked out.
Comment 23 Thomas Capricelli 2010-12-31 18:26:02 UTC
i confirm 1.9.11 has compile issues. I've bumped 1.9.10 to 1.9.11 in my (local) overlay and it fails to compile:

x86_64-pc-linux-gnu-g++ -Ibuild/include -march=native -O2 -pipe  -D_REENTRANT -Wno-long-long -W -Wall -fPIC -fvisibility=hidden -c src/engine/openssl/ossl_bc.cpp -o build/lib/ossl_bc.o
src/engine/openssl/ossl_arc4.cpp: In member function ‘virtual Botan::StreamCipher* Botan::<unnamed>::ARC4_OpenSSL::clone() const’:
src/engine/openssl/ossl_arc4.cpp:24: error: cannot allocate an object of abstract type ‘Botan::<unnamed>::ARC4_OpenSSL’
src/engine/openssl/ossl_arc4.cpp:20: note:   because the following virtual functions are pure within ‘Botan::<unnamed>::ARC4_OpenSSL’:
build/include/botan/sym_algo.h:28: note:        virtual Botan::Key_Length_Specification Botan::SymmetricAlgorithm::key_spec() const
src/engine/openssl/ossl_arc4.cpp: In constructor ‘Botan::<unnamed>::ARC4_OpenSSL::ARC4_OpenSSL(size_t)’:
src/engine/openssl/ossl_arc4.cpp:26: error: no matching function for call to ‘Botan::StreamCipher::StreamCipher(int, int)’
build/include/botan/stream_cipher.h:19: note: candidates are: Botan::StreamCipher::StreamCipher()
build/include/botan/stream_cipher.h:19: note:                 Botan::StreamCipher::StreamCipher(const Botan::StreamCipher&)
src/engine/openssl/ossl_arc4.cpp: In member function ‘virtual Botan::StreamCipher* Botan::OpenSSL_Engine::find_stream_cipher(const Botan::SCAN_Name&, Botan::Algorithm_Factory&) const’:
src/engine/openssl/ossl_arc4.cpp:75: error: cannot allocate an object of abstract type ‘Botan::<unnamed>::ARC4_OpenSSL’
src/engine/openssl/ossl_arc4.cpp:20: note:   since type ‘Botan::<unnamed>::ARC4_OpenSSL’ has pure virtual functions
src/engine/openssl/ossl_arc4.cpp:77: error: cannot allocate an object of abstract type ‘Botan::<unnamed>::ARC4_OpenSSL’
src/engine/openssl/ossl_arc4.cpp:20: note:   since type ‘Botan::<unnamed>::ARC4_OpenSSL’ has pure virtual functions
make: *** [build/lib/ossl_arc4.o] Error 1
Comment 24 Jack Lloyd 2010-12-31 18:48:38 UTC
Yes, the OpenSSL plugin and the Python wrappers had compilation problems in 1.9.11. Both were fixed in 1.9.12.
Comment 25 Dane Smith (RETIRED) gentoo-dev 2011-01-03 15:14:16 UTC
(In reply to comment #23)
> i confirm 1.9.11 has compile issues. I've bumped 1.9.10 to 1.9.11 in my (local)
> overlay and it fails to compile:
> 
> x86_64-pc-linux-gnu-g++ -Ibuild/include -march=native -O2 -pipe  -D_REENTRANT
> -Wno-long-long -W -Wall -fPIC -fvisibility=hidden -c
> src/engine/openssl/ossl_bc.cpp -o build/lib/ossl_bc.o
> src/engine/openssl/ossl_arc4.cpp: In member function ‘virtual
> Botan::StreamCipher* Botan::<unnamed>::ARC4_OpenSSL::clone() const’:
> src/engine/openssl/ossl_arc4.cpp:24: error: cannot allocate an object of
> abstract type ‘Botan::<unnamed>::ARC4_OpenSSL’
> src/engine/openssl/ossl_arc4.cpp:20: note:   because the following virtual
> functions are pure within ‘Botan::<unnamed>::ARC4_OpenSSL’:
> build/include/botan/sym_algo.h:28: note:        virtual
> Botan::Key_Length_Specification Botan::SymmetricAlgorithm::key_spec() const
> src/engine/openssl/ossl_arc4.cpp: In constructor
> ‘Botan::<unnamed>::ARC4_OpenSSL::ARC4_OpenSSL(size_t)’:
> src/engine/openssl/ossl_arc4.cpp:26: error: no matching function for call to
> ‘Botan::StreamCipher::StreamCipher(int, int)’
> build/include/botan/stream_cipher.h:19: note: candidates are:
> Botan::StreamCipher::StreamCipher()
> build/include/botan/stream_cipher.h:19: note:                
> Botan::StreamCipher::StreamCipher(const Botan::StreamCipher&)
> src/engine/openssl/ossl_arc4.cpp: In member function ‘virtual
> Botan::StreamCipher* Botan::OpenSSL_Engine::find_stream_cipher(const
> Botan::SCAN_Name&, Botan::Algorithm_Factory&) const’:
> src/engine/openssl/ossl_arc4.cpp:75: error: cannot allocate an object of
> abstract type ‘Botan::<unnamed>::ARC4_OpenSSL’
> src/engine/openssl/ossl_arc4.cpp:20: note:   since type
> ‘Botan::<unnamed>::ARC4_OpenSSL’ has pure virtual functions
> src/engine/openssl/ossl_arc4.cpp:77: error: cannot allocate an object of
> abstract type ‘Botan::<unnamed>::ARC4_OpenSSL’
> src/engine/openssl/ossl_arc4.cpp:20: note:   since type
> ‘Botan::<unnamed>::ARC4_OpenSSL’ has pure virtual functions
> make: *** [build/lib/ossl_arc4.o] Error 1
> 

For what it's worth, I keep an up-to-date and semi-tested ebuild in my overlay 'c1pher'

Both of those compile issues were spotted and fixed there. My ebuild is also cleaned up to comply with some of the Python ebuild guidelines.

If you can, I would suggest using my overlay for this. It's in there masked. Just unmask it and emerge away. If you run into issues, all you need to do is shoot me an e-mail and I will get with Jack and get them resolved. It saves everyone time and effort.

Just my 2 cents.
Comment 26 Thomas Capricelli 2011-01-03 15:31:34 UTC
yes, i forgot to say : i've switched to the ebuild in your overlay since then. It installs fine, thanks a lot!
Comment 27 Thomas Capricelli 2011-04-07 17:00:17 UTC
Argh, since i've switched over to python 2.7, all botan stuff is broken. Even if i (or python-updater) reinstall.

The reason is that python-2.6 is _hardcoded_ in the ebuild!!
Even the one in the c1pher overlay.