Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 380257 - >=dev-vcs/monotone-1.0-r1 tests fail with >=dev-libs/botan-1.10
Summary: >=dev-vcs/monotone-1.0-r1 tests fail with >=dev-libs/botan-1.10
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All Linux
: Normal normal (vote)
Assignee: johnny
URL: https://code.monotone.ca/p/monotone/i...
Whiteboard:
Keywords:
: 382151 (view as bug list)
Depends on: 380481
Blocks:
  Show dependency tree
 
Reported: 2011-08-22 17:36 UTC by Dennis Schridde
Modified: 2013-08-28 13:35 UTC (History)
3 users (show)

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


Attachments
build.log (build.log,18.47 KB, text/plain)
2011-08-22 17:36 UTC, Dennis Schridde
Details
Proposed patch (botan-1.10.patch,10.67 KB, patch)
2011-09-07 17:36 UTC, Martin von Gagern
Details | Diff
Proposed patch (botan-1.10.patch,11.76 KB, patch)
2011-09-07 19:41 UTC, Martin von Gagern
Details | Diff
Proposed patch (botan-1.10.patch,17.71 KB, patch)
2011-09-08 11:20 UTC, Martin von Gagern
Details | Diff
/var/tmp/portage/dev-vcs/monotone-1.0-r1/temp/build.log (build.log,76.74 KB, text/plain)
2011-09-12 08:30 UTC, Juergen Rose
Details
Upstream merge f4feb3fd (monotone-1.0-botan-1.10.patch,25.67 KB, patch)
2012-04-24 08:37 UTC, Martin von Gagern
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Dennis Schridde 2011-08-22 17:36:07 UTC
dev-vcs/monotone-0.99.1 fails to build against dev-libs/botan-1.10.1, see attached build.log.

Reproducible: Always
Comment 1 Dennis Schridde 2011-08-22 17:36:20 UTC
Created attachment 284233 [details]
build.log
Comment 2 Tony Vroon (RETIRED) gentoo-dev 2011-08-24 11:55:19 UTC
Thank you for your report. It appears the problem is in how botan was packaged, and the other report was more comprehensive on this.

*** This bug has been marked as a duplicate of bug 380481 ***
Comment 3 Dennis Schridde 2011-08-29 11:02:39 UTC
The issue still persists today: dev-vcs/monotone-0.99.1 still does not build against dev-libs/botan-1.10.1 with following errors [excerpt]:

x86_64-pc-linux-gnu-g++  -I.    -I/usr/include/botan-1.10            -pipe -O2 -march=athlon64-sse3 -ftree-vectorize -Wall -W -Wno-unused -c -o transforms.o transforms.cc
transforms.cc: In function ‘std::string xform(const string&, origin::type) [with XFM = Botan::Gzip_Compression, std::string = std::basic_string<char>]’:
transforms.cc:198:1: error: cannot allocate an object of abstract type ‘Botan::Gzip_Compression’
gzip.hh:36:7: note:   because the following virtual functions are pure within ‘Botan::Gzip_Compression’:
/usr/include/botan-1.10/botan/filter.h:25:27: note:     virtual std::string Botan::Filter::name() const
/usr/include/botan-1.10/botan/filter.h:32:20: note:     virtual void Botan::Filter::write(const byte*, size_t)

This makes me think that dev-libs/botan really should be slotted and that >=dev-libs/botan-1.10 really is incompatible with dev-vcs/monotone-0.99.1, not just using the pkg-config file in the wrong way. -> Reopening
Comment 4 Peter Volkov (RETIRED) gentoo-dev 2011-09-05 13:30:52 UTC
Thank you. Fixed in the tree.
Comment 5 Dennis Schridde 2011-09-05 18:24:24 UTC
I am not sure what is going on here, but I still get such error for dev-vcs/monotone-1.0 and dev-libs/botan-1.10.1:
x86_64-pc-linux-gnu-g++  -I.    -I/usr/include/botan-1.10            -pipe -O2 -march=athlon64-sse3 -ftree-vectorize -Wall -W -Wno-unused -c -o src/transforms.o src/transforms.cc
src/transforms.cc: In function ‘std::string xform(const string&, origin::type) [with XFM = Botan::Gzip_Compression, std::string = std::basic_string<char>]’:
src/transforms.cc:198:1: error: cannot allocate an object of abstract type ‘Botan::Gzip_Compression’
src/gzip.hh:36:7: note:   because the following virtual functions are pure within ‘Botan::Gzip_Compression’:
/usr/include/botan-1.10/botan/filter.h:32:20: note:     virtual void Botan::Filter::write(const byte*, size_t)
src/transforms.cc:198:1: error: cannot allocate an object of abstract type ‘Botan::Gzip_Compression’
src/gzip.hh:36:7: note:   since type ‘Botan::Gzip_Compression’ has pure virtual functions
src/transforms.cc: In function ‘std::string xform(const string&, origin::type) [with XFM = Botan::Gzip_Decompression, std::string = std::basic_string<char>]’:
src/transforms.cc:199:1: error: cannot allocate an object of abstract type ‘Botan::Gzip_Decompression’
src/gzip.hh:60:7: note:   because the following virtual functions are pure within ‘Botan::Gzip_Decompression’:
/usr/include/botan-1.10/botan/filter.h:32:20: note:     virtual void Botan::Filter::write(const byte*, size_t)
src/transforms.cc:199:1: error: cannot allocate an object of abstract type ‘Botan::Gzip_Decompression’
src/gzip.hh:60:7: note:   since type ‘Botan::Gzip_Decompression’ has pure virtual functions
src/transforms.cc: In function ‘void pack(const T&, base64<gzip<INNER> >&)’:
src/transforms.cc:214:46: error: cannot allocate an object of abstract type ‘Botan::Gzip_Compression’
src/gzip.hh:36:7: note:   since type ‘Botan::Gzip_Compression’ has pure virtual functions
src/transforms.cc:224:31: error: cannot allocate an object of abstract type ‘Botan::Gzip_Compression’
src/gzip.hh:36:7: note:   since type ‘Botan::Gzip_Compression’ has pure virtual functions
src/transforms.cc: In function ‘void unpack(const base64<gzip<INNER> >&, T&)’:
src/transforms.cc:234:46: error: cannot allocate an object of abstract type ‘Botan::Gzip_Decompression’
src/gzip.hh:60:7: note:   since type ‘Botan::Gzip_Decompression’ has pure virtual functions
src/transforms.cc:243:31: error: cannot allocate an object of abstract type ‘Botan::Gzip_Decompression’
src/gzip.hh:60:7: note:   since type ‘Botan::Gzip_Decompression’ has pure virtual functions

Despite NEWS claiming otherwise: "Added compatibility with Botan 1.9.9 and newer." Seems they overlooked something.

Looking at src/gzip.hh, they declare "void write(const byte input[], u32bit length);", but the error message says "virtual void Botan::Filter::write(const byte*, size_t)" is missing.

Assumption: On 64-bit systems u32bit is probably not compatible with size_t. (The latter should be 64bit large on those systems.)
Comment 6 Martin von Gagern 2011-09-07 14:30:34 UTC
I just got a different error, which I reported in bug #382151. Not sure how the two relate, and on what factors it depends whether people see one or the other. Might be a parallel build make race deciding that.
Comment 7 Martin von Gagern 2011-09-07 16:35:57 UTC
The bug from comment #5 is due to the botan revision c2c4400b94e56a99a92bd62e390f08e917a8e858 which changed the length argument of Filter::write from u32bit to size_t. At least this time the commit message acknowledges the fact that this will break existing code.

I'm currently in the process of writing a patch to address both this bug here and bug #382151. If I make it within a few hours, I'll post here. Otherwise I don#t know when I'll find the time, so don't hold your breath.
Comment 8 Martin von Gagern 2011-09-07 17:36:37 UTC
Created attachment 285793 [details, diff]
Proposed patch

This patch at least makes monotone compile against botah 1.10.1 on my system. Should not break for older botan versions either. Apparently botan 1.9.11 introduced a lot of api changes. I've checked the relevant tag for each of the affected changes, and they are all included in botan since 1.9.11.
Comment 9 Martin von Gagern 2011-09-07 19:41:50 UTC
Created attachment 285811 [details, diff]
Proposed patch

(In reply to comment #8)
> This patch at least makes monotone compile against botah 1.10.1 on my system.

Compile, but not install, as it fails to build its man page. Instead it prints the following error:
mtn: error: this monotone binary does not work with Botan 1.9.x

So I had to adjust that check as well. I though there should be no need for such checks if SONAMEs are chosen reasonably, but with recent botan experiences, I wouldn't be too sure.

Anyway, updated the patch to adjust this runtime check. With the new patch and USE=-emacs (work around bug #382177) as well as USE=-bash-completion (work around bug #382191) I finally got monotone to merge, and got old botan 1.8 out of my preserved libraries.
Comment 10 Martin von Gagern 2011-09-08 11:20:48 UTC
Created attachment 285847 [details, diff]
Proposed patch

Yet another patch, which takes care of changes in the Botan exception hierarchy, and is required for access to the passphrase-protected private key as well as to distinguish hex numbers from mail addresses in the argument to the pubkey command. Still some tests from the test suite failing, but I guess I wouldn't block monotone on that for ~ARCH. Just block stabilizing it, perhaps.
Comment 11 Peter Volkov (RETIRED) gentoo-dev 2011-09-09 10:26:22 UTC
*** Bug 382151 has been marked as a duplicate of this bug. ***
Comment 12 Peter Volkov (RETIRED) gentoo-dev 2011-09-11 11:28:37 UTC
Thank you Martin. Temporary I've applied this patch, but without investigation what makes tests fail this is really no go for stable. I'll keep this bug open. Or... I'll wait what upstream tells us.
Comment 13 Juergen Rose 2011-09-12 08:29:47 UTC
monotone-1.0-r1, which, as I think, includes the patch, still fails to install for me with:

...
/usr/bin/xgettext: warning: file `src/std_hooks.lua' extension `lua' is unknown; will try C
...
make[1]: Leaving directory `/var/tmp/portage/dev-vcs/monotone-1.0-r1/work/monotone-1.0'
!!! dohtml: html/* does not exist
 * ERROR: dev-vcs/monotone-1.0-r1 failed (install phase):
 *   dohtml failed



root@condor:/usr/local/portage/dev-vcs(99)# emerge -pqv =dev-vcs/monotone-1.0-r1
[ebuild     U ] dev-vcs/monotone-1.0-r1 [0.99.1] USE="ipv6 nls -doc* -test% (-bash-completion%*) (-emacs%*)" 




root@condor:/usr/local/portage/dev-vcs(99)# emerge -pqv =dev-vcs/monotone-1.0-r1
[ebuild     U ] dev-vcs/monotone-1.0-r1 [0.99.1] USE="ipv6 nls -doc* -test% (-bash-completion%*) (-emacs%*)" 
[4]+  Done                    emacs -i $GEOMETRY $NO_DOS_CONV -name "$BASENAME" "$*"
root@condor:/usr/local/portage/dev-vcs(100)# emerge --info =dev-vcs/monotone-1.0-r1
Portage 2.1.10.15 (default/linux/amd64/10.0/desktop, gcc-4.5.3, glibc-2.13-r4, 3.0.4-gentoo x86_64)
=================================================================
                        System Settings
=================================================================
System uname: Linux-3.0.4-gentoo-x86_64-Intel-R-_Core-TM-2_CPU_6600_@_2.40GHz-with-gentoo-2.0.3
Timestamp of tree: Mon, 12 Sep 2011 06:00:01 +0000
app-shells/bash:          4.2_p10
dev-java/java-config:     2.1.11-r3
dev-lang/python:          2.7.2-r2, 3.2-r2
dev-util/cmake:           2.8.5-r2
dev-util/pkgconfig:       0.26
sys-apps/baselayout:      2.0.3
sys-apps/openrc:          0.9.3-r1
sys-apps/sandbox:         2.5
sys-devel/autoconf:       2.13, 2.68
sys-devel/automake:       1.9.6-r3, 1.10.3, 1.11.1-r1
sys-devel/binutils:       2.21.1-r1
sys-devel/gcc:            4.4.6-r1, 4.5.3-r1
sys-devel/gcc-config:     1.4.1-r1
sys-devel/libtool:        2.4-r1
sys-devel/make:           3.82-r1
sys-kernel/linux-headers: 2.6.39 (virtual/os-headers)
sys-libs/glibc:           2.13-r4
Repositories: gentoo java-overlay lordvan x11 sunrise arcon bicatali science local x-cpan g-octave
ACCEPT_KEYWORDS="amd64 ~amd64"
ACCEPT_LICENSE="* -@EULA PUEL dlj-1.1 skype-eula googleearth AdobeFlash-10.1 cadsoft Oracle-BCLA-JavaSE"
CBUILD="x86_64-pc-linux-gnu"
CFLAGS="-march=native -O2 -pipe"
CHOST="x86_64-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/share/config /usr/share/gnupg/qualified.txt /usr/share/maven-bin-3.0/conf /usr/share/openvpn/easy-rsa /var/lib/hsqldb"
CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/dconf /etc/env.d /etc/env.d/java/ /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/php/apache2-php5.3/ext-active/ /etc/php/cgi-php5.3/ext-active/ /etc/php/cli-php5.3/ext-active/ /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo /etc/texmf/language.dat.d /etc/texmf/language.def.d /etc/texmf/updmap.d /etc/texmf/web2c"
CXXFLAGS="-march=native -O2 -pipe"
DISTDIR="/usr/portage/distfiles"
FEATURES="assume-digests binpkg-logs distlocks ebuild-locks fixlafiles fixpackages news parallel-fetch protect-owned sandbox sfperms strict unknown-features-warn unmerge-logs unmerge-orphans userfetch"
FFLAGS="-march=native -O2 -pipe"
GENTOO_MIRRORS="http://linux.rz.ruhr-uni-bochum.de/download/gentoo-mirror http://ftp-stud.fht-esslingen.de/pub/Mirrors/gentoo/ rsync://ftp.fi.muni.cz/pub/linux/gentoo ftp://ftp.wh2.tu-dresden.de/pub/mirrors/gentoo rsync://gd.tuwien.ac.at/opsys/linux/gentoo ftp://sunsite.informatik.rwth-aachen.de/pub/Linux/gentoo ftp://ftp.tu-clausthal.de/pub/linux/gentoo http://gentoo.oregonstate.edu"
LANG="en_US.UTF-8"
LDFLAGS="-Wl,-O1 -Wl,--as-needed"
LINGUAS="de fr"
MAKEOPTS="-j3"
PKGDIR="/usr/portage/packages/"
PORTAGE_CONFIGROOT="/"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --stats --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/usr/portage"
PORTDIR_OVERLAY="/var/lib/layman/java-overlay /var/lib/layman/lordvan /var/lib/layman/x11 /var/lib/layman/sunrise /var/lib/layman/arcon /var/lib/layman/bicatali /var/lib/layman/science /usr/local/portage /var/lib/cpan /var/lib/g-octave"
SYNC="rsync://rsync.gentoo.org/gentoo-portage"
USE="64bit R X Xaw3d a52 aac abiword accessibility acl acpi admin afs alsa amd64 ao apache2 applet archive arpack asf aspell assistant audacious audiofile automap automount bash-completion beagle berkdb blas blast bluetooth boo boost branding bzip2 cairo cdda cddb cdf cdio cdparanoia cdr cg cgi chm cli consolekit corba cracklib crypt css cuda cups curl cxx daap db dbase dbi dbm dbus declarative designer devhelp device-mapper dga dia djvu doc dri ds2490 ds9097 ds9097u dts dv dvb dvd dvdr dvi dynamicplugin eds elf emacs emboss emf encode epiphany evo examples exif expat extensions extra extras fam fame ffmpeg fftw firefox fits flac fltk fontconfig foomaticdb fortran fortran95 fpx fts3 fuse galago garmin gcj gd gdal gdbm gdu gedit geoip geolocation geos gfortran gif gimp ginac git glade glib glpk gml gmp gmtsuppl gnome gnome-keyring gnome-print gnuplot gnutls gphoto2 gpm grammar graphics graphtft graphviz grass gs gsl gsm gstreamer gtk gudev guile harness hddtemp hdf hdf5 hdri http httpd hvm hwdb iconv icq icu id3 ide imagemagick imap innodb inotify ipod ipv6 irda ithreads jabber jadetex java java6 jbig john jpeg jpeg2k kdrive kerberos kpathsea kqemu kvm ladspa lame lapack latex latex3 lcms ldap lensfun libffi libgda libnotify libsamplerate lirc lm_sensors lua lzo mad mail maildir mapnik math matroska mkl mmx mmxext mng modules mono moonlight motif mozilla mp3 mp4 mpeg mpi mplayer mtp mudflap multilib musicbrainz mysql mysqli nautilus ncurses neXt netcdf netpbm network networking networkmanager nfs nls nntp nptl nptlonly nsplugin ntfs ntp numpy obex objc ocaml octave odbc ogdi ogg ole openexr opengl openmp overview pae pam pango pcre pda pdf perl plotutils plugins png podcast policykit portaudio posix postgres postscript ppds pppd preview-latex proj projectx pstricks pulseaudio python python-bindings q16 q32 qemu qhull qt3support qt4 quicktime readline reiserfs reports rle romio rpc rrdcgi rrdtool sage samba sasl science sdk sdl secure-delete semantic-desktop server session sip slang slp smbclient smp sms sndfile snmp soup sox speex spell sql sqlite sse sse2 ssl ssse3 startup-notification stlport subtitles subversion suexec svg svm swig sysfs szip t1lib tcl tcpd tex tex4ht texmacs tgif theora threads thunderbird tidy tiff tk tntc tools truetype udev unicode usb userlocales utempter v4l2 vaapi video virtualbox vorbis wav webdav webdav-serf webkit wmf wxwidgets x264 xattr xcb xemacs xext xft xine xml xmlreader xmlrpc xorg xpm xulrunner xv xvid xvmc yaml zlib zvbi" ALSA_CARDS="intel8x0" ALSA_PCM_PLUGINS="adpcm alaw asym copy dmix dshare dsnoop empty extplug file hooks iec958 ioplug ladspa lfloat linear meter mmap_emul mulaw multi null plug rate route share shm softvol" APACHE2_MODULES="actions alias auth_basic auth_digest authn_anon authn_dbd authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache cgid dav dav_fs dav_lock dbd deflate dir disk_cache env expires ext_filter file_cache filter headers ident imagemap include info log_config logio mem_cache mime mime_magic negotiation proxy proxy_ajp proxy_balancer proxy_connect proxy_http rewrite setenvif so speling status unique_id userdir usertrack vhost_alias" CALLIGRA_FEATURES="kexi words flow plan stage tables krita karbon braindump" CAMERAS="canon" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" DVB_CARDS="tda10045 tda10046lifeview" ELIBC="glibc" GPSD_PROTOCOLS="ashtech aivdm earthmate evermore fv18 garmin garmintxt gpsclock itrax mtk3301 nmea ntrip navcom oceanserver oldstyle oncore rtcm104v2 rtcm104v3 sirf superstar2 timing tsip tripmate tnt ubx" INPUT_DEVICES="keyboard mouse evdev" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LINGUAS="de fr" NETBEANS_MODULES="apisupport cnd dlight enterprise ergonomics groovy gsf harness ide identity j2ee java mobility nb php profiler ruby websvccommon xml" PHP_TARGETS="php5-3" QEMU_SOFTMMU_TARGETS="i386 ppc ppc64 x86_64" QEMU_USER_TARGETS="arm i386 x86_64" RUBY_TARGETS="ruby18" USERLAND="GNU" VIDEO_CARDS="nv nouveau vesa" XTABLES_ADDONS="quota2 psd pknock lscan length2 ipv4options ipset ipp2p iface geoip fuzzy condition tee tarpit sysrq steal rawnat logmark ipmark dhcpmac delude chaos account"
Unset:  CPPFLAGS, CTARGET, EMERGE_DEFAULT_OPTS, INSTALL_MASK, LC_ALL, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS
Comment 14 Juergen Rose 2011-09-12 08:30:43 UTC
Created attachment 286213 [details]
/var/tmp/portage/dev-vcs/monotone-1.0-r1/temp/build.log
Comment 15 Martin von Gagern 2011-09-12 09:34:41 UTC
(In reply to comment #13)
> /usr/bin/xgettext: warning: file `src/std_hooks.lua' extension `lua' is
> unknown; will try C

Only a warning, appears unrelated and probably harmless.

> !!! dohtml: html/* does not exist

Different bug, not related to botan version, but to USE=doc instead. The html and figures directories have been moved to the doc subdirectory.
Comment 16 Peter Volkov (RETIRED) gentoo-dev 2011-09-12 10:41:04 UTC
(In reply to comment #15)
> > !!! dohtml: html/* does not exist
> 
> Different bug, not related to botan version, but to USE=doc instead. The html
> and figures directories have been moved to the doc subdirectory.

Fixed without revision bump.
Comment 17 Juergen Rose 2011-09-12 12:52:57 UTC
After resyncing it works for me now, even with the doc USE flag.

Thanks.
Comment 18 Martin von Gagern 2012-04-24 08:37:24 UTC
Created attachment 309903 [details, diff]
Upstream merge f4feb3fd

(In reply to comment #12)
> Thank you Martin. Temporary I've applied this patch, but without
> investigation what makes tests fail this is really no go for stable. I'll
> keep this bug open. Or... I'll wait what upstream tells us.

Upstream merged my branch, after including some more modifications. I'm attaching the complete patch with all the difference this merge introduced into monotone trunk. It applies cleanly, and compile looks well so far, too. So it should be suitable as a direct replacement for the patch currently in portage. Of course there is still some chance that at runtime the patch relies on some prior modification to trunk which isn't include in the 1.0 release, but I doubt it.
Comment 19 Peter Volkov (RETIRED) gentoo-dev 2013-08-28 13:35:22 UTC
Thank you Martin, patch in tree. I did revbump since it touches code itself (not only test cases).