← Back to team overview

syncany-team team mailing list archive

Re: Making Syncany Linux friendly

 

Hi Duncan,

first of all, thank you for your efforts, and my apologies for the extreme
delay of my answer.

>
> I saw a thread about moving to maven. Don't do this. Packaging Java
> software for Linux is usually hard, but maven makes it 100x harder. Why?
> Because getting maven package built from source for a distribution means
> hundred of dependencies. Probably more than what maven will ever help build.
> Just imagine that "make" on Linux would need KDE to build itself. There are
> good things to get from maven: directory layout, dependency management, etc.
> Get those. But please stay away from maven.
>
>
I must say, after placing around with maven (and lots of fighting against
it), I agree with you on this one. The move to maven was very rushed because
I didn't expect it to be so such a pain. Especially since it does not
integrate as well with NetBeans as Ant does.


> So after building the first Syncany package from source (but using the
> binary jars in /lib) I tried to cleanup lib/*. I wrote an ivy.xml file. ivy
> is a simple dependency manager. It solves _one_ of the problems maven
> solves, without bringing all the other complex stuff.
>
> The idea is simple. The source should not include any jars. The place where
> to get the jars is in ivysettings.xml and the dependencies for different
> configurations is in ivy.xml. As a developer you do "ant something" and it
> would download all the jars to lib/. Done. Any distro that ships binaries
> can include these in the _binary_ dist, but the source dist should be
> generated without those. Linux package descriptions will delete them anyway.
>
> I would like to contribute these ivy files and the modified build.xml.
> However I am still struggling with some jars, as they are not available in
> any public artifact repository or are not "resolvable". After that I will
> have to find out how to deal with bzr :-(
> I am also looking in how to organize the ivy dependencies with regard to
> the plugins.
>
> If you plan to support Linux, stay with ant. ant + ivy gives you most of
> the benefits and still more flexibility, while still allowing for packagers
> to just "find . -name *.jar | xargs rm -f" and then create a CLASSPATH from
> the packaged (and built from source) dependencies.
>

Ivy sounds very promising. Did you have the time to push something on
Launchpad? Maybe you can show me some code. You can also add me on
Jabber/XMPP/GTalk if you want (or come in the IRC channel #syncany on
freenode). That would make it easier.

Thank you so much for your interest and help!

Best regards,
Philipp

References