<?xml version="1.0" encoding="utf-8" ?>
<rss version="2.0" 
   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
   xmlns:admin="http://webns.net/mvcb/"
   xmlns:dc="http://purl.org/dc/elements/1.1/"
   xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
   xmlns:wfw="http://wellformedweb.org/CommentAPI/"
   xmlns:content="http://purl.org/rss/1.0/modules/content/"
    xmlns:creativeCommons="http://backend.userland.com/creativeCommonsRssModule" >
<channel>
    
    <title>Marcus D. Hanwell's Blog - Gentoo</title>
    <link>http://blog.cryos.net/</link>
    <description>Random thoughts, life, work, open source, open science, diving...</description>
    <dc:language>en</dc:language>
    <admin:errorReportsTo rdf:resource="mailto:blog@cryos.net" />
    <generator>Serendipity 1.7-alpha1 - http://www.s9y.org/</generator>
    
    <image>
        <url>http://blog.cryos.net/templates/default/img/s9y_banner_small.png</url>
        <title>RSS: Marcus D. Hanwell's Blog - Gentoo - Random thoughts, life, work, open source, open science, diving...</title>
        <link>http://blog.cryos.net/</link>
        <width>100</width>
        <height>21</height>
    </image>

<item>
    <title>Avogadro 1.0.3 Released</title>
    <link>http://blog.cryos.net/archives/251-Avogadro-1.0.3-Released.html</link>
            <category>Avogadro</category>
            <category>Chemistry</category>
            <category>Gentoo</category>
            <category>GSoC</category>
            <category>KDE</category>
    
    <comments>http://blog.cryos.net/archives/251-Avogadro-1.0.3-Released.html#comments</comments>
    <wfw:comment>http://blog.cryos.net/wfwcomment.php?cid=251</wfw:comment>

    <slash:comments>1</slash:comments>
    <wfw:commentRss>http://blog.cryos.net/rss.php?version=2.0&amp;type=comments&amp;cid=251</wfw:commentRss>
    

    <author>marcus@cryos.net (Marcus D. Hanwell)</author>
    <content:encoded>
    &lt;span&gt;&lt;p&gt;I am pleased to be able to announce the availability of &lt;a href=&quot;http://avogadro.openmolecules.net/&quot;&gt;Avogadro&lt;/a&gt; &lt;a href=&quot;https://sourceforge.net/projects/avogadro/files/avogadro/1.0.3/&quot;&gt;1.0.3&lt;/a&gt;! What happened to Avogadro 1.0.2 I hear you ask...shortly after tagging Michael reported an issue with i18n building/installations. So 1.0.3 contains a couple of very small build system fixes, but see the &lt;a href=&quot;http://avogadro.openmolecules.net/wiki/Avogadro_1.0.2&quot;&gt;1.0.2 release notes&lt;/a&gt; for details of most of the fixes.&lt;/p&gt;

&lt;p&gt;As always, we appreciate your feedback. There are still a few issues outstanding, but many things were fixed. These binaries are also built against much newer versions of Qt and Open Babel where significant improvements have also been made. There may be one or two more releases of the 1.0 line if necessary (I have streamlined the release process with a view to making more releases), but I would like to focus our efforts on an unstable release for 1.1. Once 1.1 is stable, a 1.2.0 release will be cut and branched. There are lots of new features in master that we would love more feedback on.&lt;/p&gt;&lt;/span&gt; 
    </content:encoded>

    <pubDate>Mon, 25 Apr 2011 12:58:39 -0400</pubDate>
    <guid isPermaLink="false">http://blog.cryos.net/archives/251-guid.html</guid>
    <creativeCommons:license>http://creativecommons.org/licenses/by-sa/3.0/</creativeCommons:license>
</item>
<item>
    <title>CMake External Projects: Building Project Dependencies</title>
    <link>http://blog.cryos.net/archives/248-CMake-External-Projects-Building-Project-Dependencies.html</link>
            <category>Avogadro</category>
            <category>Chemistry</category>
            <category>FOSS</category>
            <category>Gentoo</category>
            <category>KDE</category>
            <category>Kitware</category>
    
    <comments>http://blog.cryos.net/archives/248-CMake-External-Projects-Building-Project-Dependencies.html#comments</comments>
    <wfw:comment>http://blog.cryos.net/wfwcomment.php?cid=248</wfw:comment>

    <slash:comments>3</slash:comments>
    <wfw:commentRss>http://blog.cryos.net/rss.php?version=2.0&amp;type=comments&amp;cid=248</wfw:commentRss>
    

    <author>marcus@cryos.net (Marcus D. Hanwell)</author>
    <content:encoded>
    &lt;span&gt;&lt;p&gt;Historically projects have attempted to minimize their dependency list, and often bundle in small third party libraries in an attempt to make things easier for new developers/users to compile their code. In the &lt;a href=&quot;http://avogadro.openmolecules.net/&quot;&gt;Avogadro project&lt;/a&gt; we have bundled a few really small libraries, but on the whole have maintained a dependency list and tried to keep it smaller. As I work on new code, I see opportunities to break off bits of functionality, such as with OpenQube, but don&#039;t want to add yet another thing a new user or developer must download, compile and install somewhere.&lt;/p&gt;

&lt;p&gt;Linux packagers, myself included, dislike the practice of bundling in libraries. It means that instead of patching one libxml2, we get to patch one plus the three or four in our tree that have been bundled (often with different version, some local patches). The problem is less pronounced on Linux where package managers are ubiquitous and we are able to provide a list of packages to install, but even there we might be developing against versions not yet in the main distribution repository. This is one of the reasons I have always favored rolling release distributions over the periodic.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://www.kitware.com/products/html/BuildingExternalProjectsWithCMake2.8.html&quot;&gt;CMake&#039;s external project&lt;/a&gt; module helps us to deal with this issue in quite an elegant fashion. Coupled with meta repositories to bring several source trees together, CMake is able to direct the build of several projects, passing locations between projects and expressing dependencies between the projects being built. This means that something like &lt;a href=&quot;http://www.openbabel.org/&quot;&gt;Open Babel&lt;/a&gt; can build zlib and libxml2 before building the main Open Babel library. External projects and CMake allow us to download the source, create the build trees and even direct the build of non-CMake based projects like libxml2.&lt;/p&gt;

&lt;p&gt;I have a prototype of this that I just put up to build the core of Avogadro, its working name is &lt;a href=&quot;https://github.com/cryos/avogadro-squared&quot;&gt;Avogadro Squared&lt;/a&gt; as I was feeling geeky that day and had no good names. One thing you should note is that everything in there is an external project, and Avogadro is the last one to be built (it depends on all of the other projects). It requires minimal changes to the projects it contains, it uses git submodules for some of the source, and CMake&#039;s download and tar functionality for zlib and libxml2. I will be adding options to simply use system versions of the libraries it can build, but Linux distributions etc can continue using the Avogadro repository directly.&lt;/p&gt;

&lt;p&gt;As a new developer or user I can checkout the meta repository, have git download the submodules and CMake download the source tarballs. I can then build the entire project, and then continue to work in the Avogadro subdirectory of the build tree after that. That build tree is almost identical to the one I would have ended up with had I not used the meta repository, except it points to the dependencies I just built. I can then use vim, and IDE or whatever I choose to work on the inner projects. This works across Linux, Mac and Windows to get new users and developers up and running very quickly while only loosely coupling the dependencies to the Avogadro project.&lt;/p&gt;

&lt;p&gt;I have worked on other larger projects, such as &lt;a href=&quot;http://titan.sandia.gov&quot;&gt;Titan&lt;/a&gt; and &lt;a href=&quot;http://www.paraview.org/&quot;&gt;ParaView&lt;/a&gt; that are using this approach to a greater or lesser extent. Titan can actually built Qt, Boost, VTK, protobuf, Trilinos and a host of other dependencies before building the Titan libraries and applications. I think Avogadro Squared is an example of just how minimal a meta repository can be, although I will be extending it with more dependencies it really is just a glue repository.&lt;/p&gt;&lt;/span&gt; 
    </content:encoded>

    <pubDate>Sat, 05 Mar 2011 16:41:21 -0500</pubDate>
    <guid isPermaLink="false">http://blog.cryos.net/archives/248-guid.html</guid>
    <creativeCommons:license>http://creativecommons.org/licenses/by-sa/3.0/</creativeCommons:license>
</item>

</channel>
</rss>

