boost.icl submodule added, cmake files need attention

142 views
Skip to first unread message

Eric Niebler

unread,
Nov 10, 2010, 12:56:43 PM11/10/10
to rypp...@googlegroups.com
A new library has been added to boost, ICL, so I created a new boost
submodule for it. When you "git pull" the boost supermodule, you need to
"git submodule init" to set up the mapping for it. The "git submodule
update" will pull the submodule down.

I gave it my "best guess" CMake support, which is untested and probably
broken. Marcus, I don't suppose you'd be willing to have a look, would you?

--
Eric Niebler
BoostPro Computing
http://www.boostpro.com

signature.asc

David Abrahams

unread,
Nov 10, 2010, 3:02:13 PM11/10/10
to rypp...@googlegroups.com
At Wed, 10 Nov 2010 12:56:43 -0500,

Eric Niebler wrote:
>
> A new library has been added to boost, ICL, so I created a new boost
> submodule for it. When you "git pull" the boost supermodule, you need to
> "git submodule init" to set up the mapping for it. The "git submodule
> update" will pull the submodule down.
>
> I gave it my "best guess" CMake support, which is untested and probably
> broken. Marcus, I don't suppose you'd be willing to have a look, would you?

Guys, I just found out that someone has been maintaining CMake support
for unmodularized Boost at
http://gitorious.org/~denisarnaud/boost/denisarnauds-zeuners-boost-cmake

This is what RedHat is now using to build and distribute their RPMs.
We should take a look at this; it may be possible to simply port it to
modularized boost. Someone should probably get in touch with the guy
and ask him for details about what he's been doing.


--
Dave Abrahams
BoostPro Computing
http://www.boostpro.com

Mateusz Loskot

unread,
Nov 11, 2010, 4:49:39 PM11/11/10
to rypp...@googlegroups.com

David,

I know Denis. He is one of the fellow supporting my and others' efforts
around SOCI projcet (http://soci.sf.net). Denis is a C++ and Boost user
and major maintainer of RPM packages for SOCI and other software

I'm not sure if this copy at gitorious.org is still maintained.
Here is Denis' account at github with boost-cmake repo:

https://github.com/denisarnaud

Best regards,
--
Mateusz Loskot, http://mateusz.loskot.net
Charter Member of OSGeo, http://osgeo.org
Member of ACCU, http://accu.org

David Abrahams

unread,
Nov 12, 2010, 2:22:47 PM11/12/10
to rypp...@googlegroups.com
At Thu, 11 Nov 2010 21:49:39 +0000,

Mateusz Loskot wrote:
>
> On 10/11/10 20:02, David Abrahams wrote:
> > At Wed, 10 Nov 2010 12:56:43 -0500,
> > Eric Niebler wrote:
> >>
> >> A new library has been added to boost, ICL, so I created a new boost
> >> submodule for it. When you "git pull" the boost supermodule, you need to
> >> "git submodule init" to set up the mapping for it. The "git submodule
> >> update" will pull the submodule down.
> >>
> >> I gave it my "best guess" CMake support, which is untested and probably
> >> broken. Marcus, I don't suppose you'd be willing to have a look, would you?
> >
> > Guys, I just found out that someone has been maintaining CMake support
> > for unmodularized Boost at
> > http://gitorious.org/~denisarnaud/boost/denisarnauds-zeuners-boost-cmake
> >
> > This is what RedHat is now using to build and distribute their RPMs.
> > We should take a look at this; it may be possible to simply port it to
> > modularized boost. Someone should probably get in touch with the guy
> > and ask him for details about what he's been doing.
>
> David,
>
> I know Denis. He is one of the fellow supporting my and others' efforts
> around SOCI projcet (http://soci.sf.net). Denis is a C++ and Boost user
> and major maintainer of RPM packages for SOCI and other software
>
> I'm not sure if this copy at gitorious.org is still maintained.

It seems to be getting updated, FWIW.

> Here is Denis' account at github with boost-cmake repo:
>
> https://github.com/denisarnaud

Thanks! Do you think you could convince Denis to make a post here,
describing what he's been doing?

Thanks,

Eric Niebler

unread,
Nov 12, 2010, 4:30:20 PM11/12/10
to rypp...@googlegroups.com

... and whether he'd be willing to help us with CMake support for
modularized boost? Hey, it doesn't hurt to ask, right? :-)

signature.asc

David Abrahams

unread,
Nov 12, 2010, 4:34:21 PM11/12/10
to rypp...@googlegroups.com
At Fri, 12 Nov 2010 16:30:20 -0500,

Eric Niebler wrote:
>
> On 11/12/2010 2:22 PM, David Abrahams wrote:
> > At Thu, 11 Nov 2010 21:49:39 +0000, Mateusz Loskot wrote:
> >> Here is Denis' account at github with boost-cmake repo:
> >>
> >> https://github.com/denisarnaud
> >
> > Thanks! Do you think you could convince Denis to make a post here,
> > describing what he's been doing?
>
> ... and whether he'd be willing to help us with CMake support for
> modularized boost? Hey, it doesn't hurt to ask, right? :-)

Good thinking, Eric!

Mateusz Loskot

unread,
Nov 12, 2010, 5:13:05 PM11/12/10
to rypp...@googlegroups.com, Eric Niebler
On 12/11/10 21:30, Eric Niebler wrote:
> On 11/12/2010 2:22 PM, David Abrahams wrote:
>> At Thu, 11 Nov 2010 21:49:39 +0000, Mateusz Loskot wrote:
>>> Here is Denis' account at github with boost-cmake repo:
>>>
>>> https://github.com/denisarnaud
>>
>> Thanks! Do you think you could convince Denis to make a post here,
>> describing what he's been doing?
>
> ... and whether he'd be willing to help us with CMake support for
> modularized boost? Hey, it doesn't hurt to ask, right? :-)

David, Eric,

It surely does not hurt and I'll ask.

Cheers,

Denis Arnaud

unread,
Nov 15, 2010, 4:25:45 PM11/15/10
to ryppl
Dear All,

I'd be very happy to help where I can.

In short, the easiest way would be to apply a CMake-ify patch (e.g.,
https://github.com/denisarnaud/boost-svn/blob/master/cmakeify_boost_1440.patch)
to the Boost pristine source code (preferably, from the Subversion
release branch), and add Eric's work (extension to the new ICL
library).

Some details:
--------------------
The Gitorious replication (http://gitorious.org/boost/svn) of the
Boost Subversion repository (http://svn.boost.org/svn/boost) seems no
longer maintained (the last update occurred the 15th September, 2010).
However, just having a look at http://gitorious.org/boost#more and
http://gitorious.org/+boost-hackers apparently indicates that you guys
are the administrators of that Gitorious clone and of the associated
CMake-ified Boost project...
From my understanding, Troy D. Straszheim (http://gitorious.org/
~straszheim) has/had some Shell scripts, somewhere on a server, in
order to keep the Gitorious clone in sync with the Boost Subversion
repository. So, apparently, those scripts do no longer run.

Last year, Isidor Zeuner (http://gitorious.org/~zeuner) took the lead
on the Boost-CMake Gitorious repository from Troy, as Troy was too
busy to maintain it himself. (Isidor made a branch for the Boost
release 1.44.0 (http://gitorious.org/~zeuner/boost/zeuners-boost-cmake/
commits/1.44.0), based on the previous branches from Troy. So, I did a
pre-release of the Fedora/RedHat package of Boost-1.44.0-RC (https://
bugzilla.redhat.com/show_bug.cgi?id=607615#c17), based on Isidor's
(CMake-)1.44.0 branch.

But there were some strange bugs, mainly due to discrepancies between
the (non-CMake-related) Boost source of both repositories (pristine
Subversion and Gitorious CMake). After a closer look, I noticed that
both repositories had slightly diverged, and decided to build a new
Boost-CMake repository from scratch, rebased from the Boost pristine
Subversion one. I "just" extracted the CMake-related files from Isidor/
Troy's branch (I still have the Shell script I used for that, if
anyone is interested), and applied the corresponding (CMake-ify) patch
(https://github.com/denisarnaud/boost-svn/blob/master/
cmakeify_boost_1440.patch) to the pristine Boost source code. That was
the way I then released the Fedora/RedHat package (https://
bugzilla.redhat.com/show_bug.cgi?id=607615#c18).

Cheers,

Denis

Mateusz Loskot

unread,
Nov 15, 2010, 4:45:02 PM11/15/10
to rypp...@googlegroups.com, Denis Arnaud
On 15/11/10 21:25, Denis Arnaud wrote:
> Dear All,
>
> I'd be very happy to help where I can.
> [...]

Denis,

Thank you very much for showing up here in person.

Regards,

David Abrahams

unread,
Nov 15, 2010, 5:04:12 PM11/15/10
to rypp...@googlegroups.com
At Mon, 15 Nov 2010 13:25:45 -0800 (PST),

Denis Arnaud wrote:
>
> Dear All,
>
> I'd be very happy to help where I can.

Wonderful!

> In short, the easiest way would be to apply a CMake-ify patch (e.g.,
> https://github.com/denisarnaud/boost-svn/blob/master/cmakeify_boost_1440.patch)

Wow, that is one big-*ssed patch! Could you give a (very) brief
summary of what it does?

> to the Boost pristine source code (preferably, from the Subversion
> release branch), and add Eric's work (extension to the new ICL
> library).

I don't think that's really been done yet. Eric has mostly been doing
modularization, i.e., maintaining a script to split Boost up into
separate Git repos for each library.

> Some details:
> --------------------
> The Gitorious replication (http://gitorious.org/boost/svn) of the
> Boost Subversion repository (http://svn.boost.org/svn/boost) seems no
> longer maintained (the last update occurred the 15th September,
> 2010).

See http://github.com/ryppl/boost-svn, which is updated regularly from
SVN.

> However, just having a look at http://gitorious.org/boost#more and
> http://gitorious.org/+boost-hackers apparently indicates that you guys
> are the administrators of that Gitorious clone and of the associated
> CMake-ified Boost project...
> From my understanding, Troy D. Straszheim (http://gitorious.org/
> ~straszheim) has/had some Shell scripts, somewhere on a server, in
> order to keep the Gitorious clone in sync with the Boost Subversion
> repository. So, apparently, those scripts do no longer run.

I could of course easily add sync from the GitHub clone, if you want
the gitorious site for something. Now that we have the one on
GitHub, though, I'm inclined to dismantle the one at Gitorious.

> Last year, Isidor Zeuner (http://gitorious.org/~zeuner) took the lead
> on the Boost-CMake Gitorious repository from Troy, as Troy was too
> busy to maintain it himself.

Wow, I really wish Troy had told me that (or, if he did, I forgot --
always a possibility)!

> (Isidor made a branch for the Boost release 1.44.0
> (http://gitorious.org/~zeuner/boost/zeuners-boost-cmake/
> commits/1.44.0), based on the previous branches from Troy. So, I did
> a pre-release of the Fedora/RedHat package of Boost-1.44.0-RC
> (https:// bugzilla.redhat.com/show_bug.cgi?id=607615#c17), based on
> Isidor's (CMake-)1.44.0 branch.
>
> But there were some strange bugs, mainly due to discrepancies between
> the (non-CMake-related) Boost source of both repositories (pristine
> Subversion and Gitorious CMake). After a closer look, I noticed that
> both repositories had slightly diverged, and decided to build a new
> Boost-CMake repository from scratch, rebased from the Boost pristine
> Subversion one. I "just" extracted the CMake-related files from Isidor/
> Troy's branch (I still have the Shell script I used for that, if
> anyone is interested), and applied the corresponding (CMake-ify) patch
> (https://github.com/denisarnaud/boost-svn/blob/master/
> cmakeify_boost_1440.patch) to the pristine Boost source code. That was
> the way I then released the Fedora/RedHat package (https://
> bugzilla.redhat.com/show_bug.cgi?id=607615#c18).

It seems like we could do this with a branch in Git, by simply merging
into it from the official svn release branch(?)

Eric Niebler

unread,
Nov 15, 2010, 5:14:30 PM11/15/10
to rypp...@googlegroups.com
On 11/15/2010 5:04 PM, David Abrahams wrote:
> At Mon, 15 Nov 2010 13:25:45 -0800 (PST), Denis Arnaud wrote:
>>
>> Dear All,
>>
>> I'd be very happy to help where I can.
>
> Wonderful!

Seconded!

>> In short, the easiest way would be to apply a CMake-ify patch (e.g.,
>> https://github.com/denisarnaud/boost-svn/blob/master/cmakeify_boost_1440.patch)
>
> Wow, that is one big-*ssed patch! Could you give a (very) brief
> summary of what it does?
>
>> to the Boost pristine source code (preferably, from the Subversion
>> release branch), and add Eric's work (extension to the new ICL
>> library).
>
> I don't think that's really been done yet. Eric has mostly been doing
> modularization, i.e., maintaining a script to split Boost up into
> separate Git repos for each library.

I did add a module for ICL and gave it CMake files, but the CMake
support on modularized boost is so broken right now, I can't test it,
and I don't even know where to start. I've filed bugs and Marcus has
promised to look as time allows.

I doubt the patch would Just Work on a modularized boost. But it might
not be a bad starting point. Just throw out the broken modularized-CMake
stuff and start over. I suspect that's beyond my current CMake
abilities, though.

Denis, is this a task you'd be willing to take on? I can show you how
we've split up boost into modules. The rest might not be that hard.

signature.asc

Denis Arnaud

unread,
Nov 15, 2010, 5:15:53 PM11/15/10
to ryppl
I'm currently trying to import the (whole trunk of the) Boost
Subversion repository into GitHub, so that I can easily maintain the
latter in sync with the former myself. [The good thing with GitHub is
that the SSL protocol allows to read/write to the git repository from
behind a firewall, whereas Gitorious only allows to have read access]

In case I've some success with that pristine clone, I'll "plug it"
into the Boost-CMake GitHub replication (e.g.,
https://github.com/denisarnaud/boost-cmake/tree/pristine-release ,
https://github.com/denisarnaud/boost-cmake/tree/pristine-master ,
https://github.com/denisarnaud/boost-cmake/tree/cmake-release and
https://github.com/denisarnaud/boost-cmake/tree/cmake-master ).

Of course, those efforts are in parallel with Ryppl, targeting to
minimise the overhead in the release of RPM packages for Fedora/RedHat
(and for any other distributions, which some other developers may want
to contribute to). We can surely share most of the CMake-related
files. And, eventually, I'll happily switch to Ryppl for the Linux
releases of the Boost packages :)

Cheers

Denis

Denis Arnaud

unread,
Nov 15, 2010, 5:26:39 PM11/15/10
to ryppl
On Nov 15, 11:04 pm, David Abrahams <d...@boostpro.com> wrote:

> Wow, that is one big-*ssed patch!  Could you give a (very) brief
> summary of what it does?

Basically, it adds CMakeLists.txt files to every source directory, as
well as the CMake structure in the tools directory.

> See http://github.com/ryppl/boost-svn, which is updated regularly from
> SVN.

Cool! That is what I was looking for. So, you can disregard my last
post (about the GitHub replication of Boost Subversion).

> I could of course easily add sync from the GitHub clone, if you want
> the gitorious site for something. Now that we have the one on
> GitHub, though, I'm inclined to dismantle the one at Gitorious.

That makes sense (to keep only the GitHub version). You could maybe
add a note on the Gitorious page (http://gitorious.org/boost) pointing
to the new GitHub repository (http://github.com/ryppl/boost-svn)?

> > [..] as Troy was too busy to maintain it himself.
>
> Wow, I really wish Troy had told me that (or, if he did, I forgot --
> always a possibility)!

Well, he was too busy to maintain Boost-CMake on Gitorious, but it may
be because he had some other duties with you guys :)


> It seems like we could do this with a branch in Git, by simply merging
> into it from the official svn release branch(?)

Yes, exactly. That's one of the advantages to use Git :)

Denis

Denis Arnaud

unread,
Nov 15, 2010, 5:34:39 PM11/15/10
to ryppl
On Nov 15, 11:14 pm, Eric Niebler <e...@boostpro.com> wrote:
> I did add a module for ICL and gave it CMake files, but the CMake
> support on modularized boost is so broken right now, I can't test it,
> and I don't even know where to start. I've filed bugs and Marcus has
> promised to look as time allows.
>
> I doubt the patch would Just Work on a modularized boost. But it might
> not be a bad starting point. Just throw out the broken modularized-CMake
> stuff and start over. I suspect that's beyond my current CMake
> abilities, though.
>
> Denis, is this a task you'd be willing to take on? I can show you how
> we've split up boost into modules. The rest might not be that hard.

Once I get a clean way to produce my own CMake-related Git branches,
I'll have a look at it. However, I'm not a CMake expert, either. I'll
try to start from the non-modularised version of Boost, and "just" add
CMakeLists.txt files in the ICL sub-directories. I see no reason why
it should fail... but we never know!

--
Denis

Eric Niebler

unread,
Nov 15, 2010, 7:51:22 PM11/15/10
to rypp...@googlegroups.com

Your last sentence makes me think that I didn't make it clear what the
difficulty is. Certainly, applying this patch to non-modularized boost
and adding support for ICL should be simple. The hard part is then
applying these changes to modularized boost.

Modularized boost is boost carved up so that each library, each tool,
and even major parts of cmake build support itself, lives in a separate,
self-contained git repository. "Boost" is a super-module that refers to
all these others via the git submodule mechanism. In order to pull boost
apart like this, we've had to change the directory layout. In addition,
since there is no longer a unified <boost/...> header directory, we
added a build step called "genheaders" that makes a unified header
directory by generating forwarding headers.

To make the non-modularized cmake support work for modularized boost,
you'd need to fix up the paths in all the cmakefiles, add the
"genheaders" target, and move any generally useful cmake utilities into
a separate boost-cmake module. And maybe some other stuff I'm not aware
of. That's the project started (but not quite finished) by Troy.

signature.asc

Denis Arnaud

unread,
Nov 16, 2010, 3:59:20 AM11/16/10
to ryppl
On Nov 16, 1:51 am, Eric Niebler <e...@boostpro.com> wrote:
> Certainly, applying this patch to non-modularized boost
> and adding support for ICL should be simple. The hard part is then
> applying these changes to modularized boost.
> [...]
>

Yes, I suspected that the main difficulty was lying in the modularised
Boost. However, your clear explanation will serve as a good bootstrap
for anyone wishing to go further along that way. As I said, I am not a
CMake expert yet, and I certainly cannot improve the CMake support in
modularised Boost for now. But, as I like to learn to new things, and
above all, as I sincerely would like to contribute to the success of
modularised Boost, I'll devote some of my spare time to better
understand CMake issues and how to solve them.

--
Denis
Reply all
Reply to author
Forward
0 new messages