tcurdt / jdeb

This library provides an Ant task and a Maven plugin to create Debian packages from Java builds in a truly cross platform manner.
https://github.com/tcurdt/jdeb
Apache License 2.0
524 stars 317 forks source link

New ant/maven task/target for ppa #61

Open i30817 opened 12 years ago

i30817 commented 12 years ago

Ok, i had a 'plan' that unfortunately is dashed to pieces on ubuntu security strategy.

I wanted to create a ppa, sign my deb, and upload the stuff to the ppa so users could get updates. However, on the last step: https://help.launchpad.net/Packaging/PPA/Uploading

I realized that ubuntu doesn't allow deb files, but needs to actually build in the server, probably so they have the source so they can pin any security reports on your identity (guess signed deb files are not enough for them).

Well, i don't know if there is a way to workaround that 'build' requirement for things like a jar (which would be ridiculous, to the point of pointlessness), but currently jdeb is useless for ppa's anyway because it's input files are not the ones jdeb produces.

So i opened this issue to see if it's possible to actually upload a java package in a ubuntu ppa or if it's hopeless (or it's not hopeless, but best done outside jdeb since it doesn't have anything to do with packaging a deb anymore, that i suspect is the case).

Anyway, this decision from ubuntu probably makes jdeb pointless for launchpad ppa's. Maybe some other repository allows debs, i don't know.

i30817 commented 12 years ago

Grrr, ant support for javatools doesn't actually work for netbeans projects (they want to put in the compiled jars in debian/tmp while the netbeans ant puts it into dist.

Then they call clean after for some stupid reason? (Maybe clean in eclipse doesn't delete the compiled jars?)

ebourg commented 12 years ago

That's basically the "build from source" mantra from Debian. In my opinion the scope of jdeb should be limited to binary packages. If you want to build packages and submit them to the official Debian/Ubuntu repository you'd better use the Debian tools for this task.

i30817 commented 12 years ago

Yeah i found that out. Very unfortunate considering that ppa are so handy. Stupid thing is that it doesn't actually support ant even though it builds and cleans with it (ant has no 'install' target and so, can't actually be used with their tools to put out a compilable package since dh_auto_install chokes on that). Seems my project is going to make the maven jump.

ebourg commented 12 years ago

The other annoying part if you want to play by the rules is that all the dependencies have to be available as Debian packages. You can't include the jars directly in your package. That's very frustrating when you are used to Maven.

i30817 commented 12 years ago

One thing it would be very nice is if someone could make launchpad recognize that the build.xml file has a jdeb target and leave off their crufty build system and just call 'ant debian' and check the resulting package with lintian and the other deb checkers. They would still have the source, they could pass on the signing key by a property (somehow). Know where this can be suggested? Because, let me tell you, after the pain i just had converting my project to maven only to realize that some packages are not in the repos and so it will not install anyway, i'm ready for something else. Going to try the apache ivy for the deps and jar-ing the classes that don't have a debian lib.

i30817 commented 12 years ago

Actually i've now asked a bit and they told me the rules file can invoke ant - which means that it should be possible to install a deb to a ppa with a build.xml and jdeb, as long as your ant file can output the correct, well named deb to the right place. Problem is, the upload process to a ppa still requires stuff like _.dsc _amd64.changes and things like that.

ebourg commented 11 years ago

We have to build source packages for that. I'm increasingly interested in this area, so I'll probably give it a try.