ant-ivy-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Xavier Hanin" <xavier.ha...@gmail.com>
Subject Re: better native code support
Date Fri, 11 Jul 2008 12:37:41 GMT
On Tue, Jul 8, 2008 at 2:08 PM, Shawn Castrianni <
Shawn.Castrianni@halliburton.com> wrote:

> IVY might be thought of as just a tool for managing dependencies for Java
> code.  Perhaps the same thing is thought of about ANT being just a build
> tool for Java code.  However, I am using both ANT and IVY to build modules
> with both java and native code on multiple platforms with great success.  I
> use IVY's configuration concept to manage the .so's for the various unix
> platforms and the .dll's for the various windows platforms.  Someone
> building on a windows machine would get the windows dependencies by default
> and someone building on a unit platform would get the unix dependencies by
> default.  An installer module could override the default and specify * for
> the configuration and get all platform's dependencies for the DVD image.
>
> One thing that IVY might be able to improve is symbolic link handling.
>  Typically on the unix platform, .so llibraries have their version encoded
> into the filename like:
>
> libxerces-c.so.26.0
>
> and then there are symbolic links (sometimes more than one) that point to
> the real file:
>
> libxerces-c.so.26 -> libxerces-c.so.26.0
> libxerces-c.so -> libxerces-c.so.26.0
>
> Currently, I am publishing all three files as artifacts but the symbolic
> links do not survive the round trip from publish to resolve/retrieve.  They
> get converted to 3 identical files wasting disk space in the repository
> unnecessarily.
>
> Would it be a good idea to perhaps add another attribute to the artifact
> xml tag called alias which could be a comma delimited list of alias names?
>  Something like:
>
> ....
> <artifact name="libxerces-c" ext="so.26.0" type="bin"
> alias="libxerces-c.so.26,libxerces-c.so"/>
> ....
>
> Then ivy would only publish one artifact with the real filename of
> libxerces-c.so.26.0 saving disk space in the ivy repository.  Then on a
> resolve/retrieve, it would download the real file and then on unix, create
> symbolic links for each alias, and on windows, either ignore the aliases or
> make real file copies.
>
> I don't know if this has any bad ramifications on the rest of IVY
> functionality.  I am just suggesting it as an idea.
>
> Any comments?

The idea of an alias sounds interesting, even though I think this can be
done using triggers or a task called after retrieve (maybe together with
extra attributes). Another way is to use retrieve with custom patterns, and
use the symlink option supported by the retrieve task.

OTOH, the advantage of supporting this directly in Ivy is that it would
avoid duplicating the same logic for every user needing to use similar
things. The only problem I see is that the role of the alias is still not
absolutely clear to me. Would the alias be used at retrieve time only? And
what would the alias replace? One token, or the full filename as your
example suggests?

Xavier


>
>
> ---
> Shawn Castrianni
>
> ----------------------------------------------------------------------
> This e-mail, including any attached files, may contain confidential and
> privileged information for the sole use of the intended recipient.  Any
> review, use, distribution, or disclosure by others is strictly prohibited.
>  If you are not the intended recipient (or authorized to receive information
> for the intended recipient), please contact the sender by reply e-mail and
> delete all copies of this message.




-- 
Xavier Hanin - Independent Java Consultant
http://xhab.blogspot.com/
http://ant.apache.org/ivy/
http://www.xoocode.org/

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message