The attached ebuild works fine on my machine. The use of the hardened-gcc flags should probably be coupled to some other flag, I dunno, 'have hardened-gcc' or something? Does that exist? Anyway, that should be easy to fix, everything else should be fine. Reproducible: Always Steps to Reproduce: 1. 2. 3.
Created attachment 24413 [details] ebuild for 'monotone' version control system
check out 'has_version' in ebuild(5)
believe it or not, just cause it says mono doesnt make it a dotnet app, yet ;)
monotone is a free, distributed version control system. it provides fully disconnected operation, manages complete tree versions, keeps its state in a local transactional database, supports overlapping branches and extensible metadata, exchanges work over plain network protocols, performs history-sensitive merging, and delegates trust functions to client-side RSA certificates.
Oops. Just wrote an ebuild today and forget to check bugs.gentoo.org first. Anyway, I want to point out a few points: - When they say boost 1.30.0, they mean it. Any other version (I tried 1.31.0) will not compile. It appears that the mere appearance of 1.31.0 is enough to screw it up. When I have 1.30.0 and 1.31.0 simultaneously (I didn't use autoclean and forget to emerge clean), it still fail. So I made the versions explicit in my ebuild - there's a --disable-dependency-tracking option on the .configure. According to .configure --help, it speeds up one-time builds (which is what we're doing). I think it probably just excludes the dependencies on all the stdio.h and stuff (like of like g++ -MM) because that's not going to change unless you somehow run 2 emerge processes and is emerging gcc on the other emerge. - there's a make pdf target that produces a monotone.pdf for you to dodoc Good job. I've been waiting for some ebuild to show up since 0.7... The fact that it can do version control thru emails makes it an ideal choice for people too cheap to have a server (me!). This is usually the case for some small student projects among a few guys. And I can't really use my linux box as a cvs/subversion server because power outages are way too often here in Ann Arbor, MI. :-(
Clement, thanks for the helpful suggestions! I'll update the ebuild "real soon now" to incorporate the improvements. I'm just waiting for the 1.10 version to be released, because I it contains sweeping changes from the older versions. I'll attach a new ebuild to this PR as soon as possible.
I will attach an updated version of the file for Monotone 0.13 any moment now. I'v tested it on x86 and it worked fine. I did not invoke the 'pdf' target during the doc-build, though, because this would need latex, and I thought that's a bit much of a dependency to add just to get PDFs, especially with HTML, man, and info documentation in place already.
Created attachment 32142 [details] ebuild for monotone 0.13
*** Bug 54014 has been marked as a duplicate of this bug. ***
Gah, checked bugzilla before submitting, but missed this one apparently...
I see no support for the sqlite and lua flags, are there any reasons for not including them? It greatly speeds up the compilation process...
Monotone uses patched versions of the libraries, sqlite in particular. Linking against system libraries instead of the versions shipped with the tool is not a good idea, IMHO. Graydon has said that he ships the code with Monotone precisely so that he can patch them, and he has and will continue to.
Created attachment 33436 [details] ebuild for monotone 1.13 with improved hardened support Monotone depends on sys-devel/gcc-3.3.3 now, because this version fixes the errors that caused the build to fail with -O3. Thus, we no longer need to flush the {c,cxx}flags passed from make.conf. I've also added the flags '-fno-pic -fno-stack-protector', because SSP/PIE breaks the LUA interpreter built into Monotone. Unfortunately, the 1.13 release still has problems, so this ebuild should probably not be unmasked for a while. The current developer version already works fine. I'll see whether it's worth creating patches, or whether I'll just wait for 1.14 to be released.
I'm assuming you're meaning 0.13 here? You seem to have skipped to 1.x stuff, which doesn't exist as far as I can see :)
Uh ... right. :-) Sorry.
Created attachment 36693 [details] ebuild for monotone 1.14
It seems that at least crypto++ library (cryptopp subdir) sholud be compiled with -O0 flag, because of many optimized asm code inside. Without that netsync protocol doesn't work properly (at least in v0.14 that I checked). After I recompiled whole package with -O0 (for being sure) I didn't notice any problem.
Created attachment 41806 [details] Ebuild for the monotone version control system Hard-code compiler flags because to aggressive optimizations cause trouble with the crypto library included in Monotone.
Wojciech, you are right. Curiously enough, I had compiled a Monotone version with -O3 and all before which worked fine. I assumed, the new GCC fixed things. But apparently not. I've updated the ebuild accordingly.
Created attachment 41975 [details] ebuild for monotone Disable SSP but not PIE when building Monotone.
There's new monotone version: 0.15. It's based on 'chagesets' graydon's branch, and incompatibile with previous versions (both db schema and netsync protocol), but really more useful.
Ha! You beat me to it. :-) All you need to do is to change the name of the file, building the software hasn't changed, I tried it a few hours ago. Shall I submit a new attachment? I figure it's probably not really necessary? To provide some useful link for anyone else interested in the package: http://www.venge.net/monotone/README.changesets That contains, among other things, the instructions how to migrate your databases for the new version.
Yes, I know, I have already intalled it too, but to be more precise we should change topic of this bug, and I can't do it myself :-). W.
Right. ;-)
*** Bug 73236 has been marked as a duplicate of this bug. ***
Uh, can we get this committed to the tree please? This much activity, and it deserves to be in there. dev-util/monotone should do nicely. AfC Sydney
I've added a version based on Peter's. Peter thanks for the ebuild that based this. Can you pay a bit more attentio to http://www.gentoo.org/proj/en/devrel/handbook/handbook.xml?part=2&chap=1 before your next one please. main issues: copyright header, use tabs not spaces, use make DESTDIR=${D} install over einstall whereever possible, use the flag-o-matic for manipulating CFLAGS. The ebuild breaks on src_test (when the src_test is removed) as follows: Add maketest to your FEATURES and remove the src_test from the ebuild and see if you can make a patch to fix it. if i686-pc-linux-gnu-g++ -DLOCALEDIR=\"/usr/share/locale\" -DHAVE_CONFIG_H -I. -I. -I. -DBUILD_UNIT_TESTS -I./lua -I./sqlite -DNDEBUG -DBOOST_DISABLE_THREADS -Wall -pipe -fno-stack-protector-all -fno-stack-protector -MT unit_tests-packet.o -MD -MP -MF ".deps/unit_tests-packet.Tpo" -c -o unit_tests-packet.o `test -f 'packet.cc' || echo './'`packet.cc; \ then mv -f ".deps/unit_tests-packet.Tpo" ".deps/unit_tests-packet.Po"; else rm -f ".deps/unit_tests-packet.Tpo"; exit 1; fi if i686-pc-linux-gnu-g++ -DLOCALEDIR=\"/usr/share/locale\" -DHAVE_CONFIG_H -I. -I. -I. -DBUILD_UNIT_TESTS -I./lua -I./sqlite -DNDEBUG -DBOOST_DISABLE_THREADS -Wall -pipe -fno-stack-protector-all -fno-stack-protector -MT unit_tests-sanity.o -MD -MP -MF ".deps/unit_tests-sanity.Tpo" -c -o unit_tests-sanity.o `test -f 'sanity.cc' || echo './'`sanity.cc; \ then mv -f ".deps/unit_tests-sanity.Tpo" ".deps/unit_tests-sanity.Po"; else rm -f ".deps/unit_tests-sanity.Tpo"; exit 1; fi if i686-pc-linux-gnu-g++ -DLOCALEDIR=\"/usr/share/locale\" -DHAVE_CONFIG_H -I. -I. -I. -DBUILD_UNIT_TESTS -I./lua -I./sqlite -DNDEBUG -DBOOST_DISABLE_THREADS -Wall -pipe -fno-stack-protector-all -fno-stack-protector -MT unit_tests-vocab.o -MD -MP -MF ".deps/unit_tests-vocab.Tpo" -c -o unit_tests-vocab.o `test -f 'vocab.cc' || echo'./'`vocab.cc; \ then mv -f ".deps/unit_tests-vocab.Tpo" ".deps/unit_tests-vocab.Po"; else rm -f ".deps/unit_tests-vocab.Tpo"; exit 1; fi distcc[9784] (dcc_writex) ERROR: failed to write: Connection reset by peer distcc[9784] (dcc_build_somewhere) Warning: failed to distribute to 10.10.10.10, running locally instead if i686-pc-linux-gnu-g++ -DLOCALEDIR=\"/usr/share/locale\" -DHAVE_CONFIG_H -I. -I. -I. -DBUILD_UNIT_TESTS -I./lua -I./sqlite -DNDEBUG -DBOOST_DISABLE_THREADS -Wall -pipe -fno-stack-protector-all -fno-stack-protector -MT unit_tests-rcs_file.o -MD -MP -MF ".deps/unit_tests-rcs_file.Tpo" -c -o unit_tests-rcs_file.o `test -f 'rcs_file.cc' || echo './'`rcs_file.cc; \ then mv -f ".deps/unit_tests-rcs_file.Tpo" ".deps/unit_tests-rcs_file.Po"; else rm -f ".deps/unit_tests-rcs_file.Tpo"; exit 1; fi if i686-pc-linux-gnu-g++ -DLOCALEDIR=\"/usr/share/locale\" -DHAVE_CONFIG_H -I. -I. -I. -DBUILD_UNIT_TESTS -I./lua -I./sqlite -DNDEBUG -DBOOST_DISABLE_THREADS -Wall -pipe -fno-stack-protector-all -fno-stack-protector -MT unit_tests-xdelta.o -MD -MP -MF ".deps/unit_tests-xdelta.Tpo" -c -o unit_tests-xdelta.o `test -f 'xdelta.cc' || echo './'`xdelta.cc; \ then mv -f ".deps/unit_tests-xdelta.Tpo" ".deps/unit_tests-xdelta.Po"; else rm -f ".deps/unit_tests-xdelta.Tpo"; exit 1; fi distcc[9817] ERROR: compile /var/tmp/ccache/xdelta.tmp.frog.local.9812.ii on localhost failed In file included from /usr/include/boost/random.hpp:46, from xdelta.cc:705: /usr/include/boost/random/lagged_fibonacci.hpp: In member function `void boost::random::lagged_fibonacci_01<RealType, w, p, q>::init_modulus()': /usr/include/boost/random/lagged_fibonacci.hpp:276: error: `std::pow' has not been declared /usr/include/boost/random/lagged_fibonacci.hpp: In member function `void boost::random::lagged_fibonacci_01<RealType, w, p, q>::seed(It&, It)': /usr/include/boost/random/lagged_fibonacci.hpp:309: error: `std::fmod' has not been declared /usr/include/boost/random/lagged_fibonacci.hpp:310: error: `std::pow' has not been declared /usr/include/boost/random/lagged_fibonacci.hpp: In function `std::basic_ostream<_CharT2, _Traits2>& boost::random::operator<<(std::basic_ostream<_CharT2, _Traits2>&, const boost::random::lagged_fibonacci_01<RealType, w, p, q>&)': /usr/include/boost/random/lagged_fibonacci.hpp:357: error: `std::pow' has not been declared In file included from /usr/include/boost/random/ranlux.hpp:25, from /usr/include/boost/random.hpp:47, from xdelta.cc:705: /usr/include/boost/random/subtract_with_carry.hpp: In member function `void boost::random::subtract_with_carry_01<RealType, w, s, r, val>::init_modulus()': /usr/include/boost/random/subtract_with_carry.hpp:268: error: `std::pow' has not been declared /usr/include/boost/random/subtract_with_carry.hpp: In member function `void boost::random::subtract_with_carry_01<RealType, w, s, r, val>::seed(uint32_t)': /usr/include/boost/random/subtract_with_carry.hpp:280: error: `std::fmod' has not been declared /usr/include/boost/random/subtract_with_carry.hpp: In member function `void boost::random::subtract_with_carry_01<RealType, w, s, r, val>::seed(It&, It)': /usr/include/boost/random/subtract_with_carry.hpp:295: error: `std::fmod' has not been declared /usr/include/boost/random/subtract_with_carry.hpp:296: error: `std::pow' has not been declared /usr/include/boost/random/subtract_with_carry.hpp: In function `std::basic_ostream<_CharT2, _Traits2>& boost::random::operator<<(std::basic_ostream<_CharT2, _Traits2>&, const boost::random::subtract_with_carry_01<RealType, w, s, r, val>&)': /usr/include/boost/random/subtract_with_carry.hpp:351: error: `std::pow' has not been declared make[3]: *** [unit_tests-xdelta.o] Error 1 make[3]: Leaving directory `/var/tmp/portage/monotone-0.15/work/monotone-0.15' make[2]: *** [check-am] Error 2 make[2]: Leaving directory `/var/tmp/portage/monotone-0.15/work/monotone-0.15' make[1]: *** [check-recursive] Error 1 make[1]: Leaving directory `/var/tmp/portage/monotone-0.15/work/monotone-0.15' make: *** [check] Error 2 !!! ERROR: dev-util/monotone-0.15 failed. !!! Function src_test, Line 518, Exitcode 0 !!! Make check failed. See above for details. !!! If you need support, post the topmost build error, NOT this status message. I get the following error with use=doc too: make[1]: Leaving directory `/var/tmp/portage/monotone-0.15/work/monotone-0.15' mkdir -p html makeinfo --number-sections --html --output html monotone.texi monotone.texi:140: @image file `figures/parent-child.jpg' (for HTML) not readable: No such file or directory. monotone.texi:179: @image file `figures/parent-child-names-hashes.jpg' (for HTML) not readable: No such file ordirectory. monotone.texi:208: @image file `figures/parent-child-hashes.jpg' (for HTML) not readable: No such file or directory. monotone.texi:237: @image file `figures/three-versions.jpg' (for HTML) not readable: No such file or directory. monotone.texi:278: @image file `figures/difference-between-versions.jpg' (for HTML) not readable: No such file or directory. monotone.texi:324: @image file `figures/manifest.jpg' (for HTML) not readable: No such file or directory. monotone.texi:369: @image file `figures/file-id-manifest-id.jpg' (for HTML) not readable: No such file or directory. monotone.texi:414: @image file `figures/revision.jpg' (for HTML) not readable: No such file or directory. monotone.texi:466: @image file `figures/revision-chaining.jpg' (for HTML) not readable: No such file or directory. monotone.texi:508: @image file `figures/statement.jpg' (for HTML) not readable: No such file or directory. monotone.texi:549: @image file `figures/cert.jpg' (for HTML) not readable: No such file or directory. monotone.texi:621: @image file `figures/general-workflow.jpg' (for HTML) not readable: No such file or directory. monotone.texi:662: @image file `figures/local-workflow.jpg' (for HTML) not readable: No such file or directory. monotone.texi:707: @image file `figures/network-workflow.jpg' (for HTML) not readable: No such file or directory. monotone.texi:780: @image file `figures/linear-history.jpg' (for HTML) not readable: No such file or directory. monotone.texi:813: @image file `figures/fork.jpg' (for HTML) not readable: No such file or directory. monotone.texi:844: @image file `figures/merge.jpg' (for HTML) not readable: No such file or directory. monotone.texi:918: @image file `figures/two-branches.jpg' (for HTML) not readable: No such file or directory. monotone.texi:963: @image file `figures/branch-heads.jpg' (for HTML) not readable: No such file or directory. makeinfo: Removing output file `/var/tmp/portage/monotone-0.15/work/monotone-0.15/html/index.html' due to errors; use --force to preserve. make: *** [html] Error 1 !!! ERROR: dev-util/monotone-0.15 failed. !!! Function src_install, Line 50, Exitcode 2 !!! emake html failed !!! If you need support, post the topmost build error, NOT this status message. bash-2.05b$ emerge info Portage 2.0.51-r8 (default-linux/x86/2004.3, gcc-3.4.3, glibc-2.3.4.20040808-r1, 2.6.9-gentoo-r9 i686) ================================================================= System uname: 2.6.9-gentoo-r9 i686 AMD Athlon(tm) XP 1900+ Gentoo Base System version 1.4.16 Python: dev-lang/python-2.3.4 [2.3.4 (#1, Oct 24 2004, 08:06:09)] distcc 2.16 i686-pc-linux-gnu (protocols 1 and 2) (default port 3632) [enabled] ccache version 2.3 [enabled] dev-lang/python: 2.3.4 sys-devel/autoconf: 2.59-r5 sys-devel/automake: 1.8.5-r1 sys-devel/binutils: 2.15.90.0.1.1-r3 sys-devel/libtool: 1.5.2-r7 virtual/os-headers: 2.6.8.1-r1 ACCEPT_KEYWORDS="x86" AUTOCLEAN="yes" CFLAGS="-pipe" CHOST="i686-pc-linux-gnu" CONFIG_PROTECT="/etc /usr/X11R6/lib/X11/xkb /usr/kde/2/share/config /usr/kde/3.3/env /usr/kde/3.3/share/config /usr/kde/3.3/shutdown /usr/kde/3/share/config /usr/lib/mozilla/defaults/pref /usr/share/config /usr/share/texmf/dvipdfm/config/ /usr/share/texmf/dvips/config/ /usr/share/texmf/tex/generic/config/ /usr/share/texmf/tex/platex/config/ /usr/share/texmf/xdvi/ /var/qmail/control" CONFIG_PROTECT_MASK="/etc/gconf /etc/terminfo /etc/env.d" CXXFLAGS="-pipe" DISTDIR="/usr/portage/distfiles" FEATURES="autoconfig ccache cvs distcc distlocks sandbox sfperms sign userpriv usersandbox maketest collision-detect strict keepwork nostrip verify-rdepend"