[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Packaging issue on gradle's library dependency



Hi Roger,

Thank you for contributing to Debian!

I haven't dug too much about your package, but I think you are right
about Proguard missing the POM files. Currently "proguard" does not
generate maven-repo data which are POMs stored in
/usr/share/maven-repo. It will be great to submit a wishlist bug to
src:proguard, but if you want to get your package prepared soon you
can avoid using gradle-debian-helper (--buildsystem=gradle) by
directly invoking Gradle in your debian/rules. But you need to do some
extra work:

# 1. Invoking Gradle

See <http://anonscm.debian.org/cgit/pkg-java/bintray-client-java.git/tree/debian/rules?h=debian/0.8.1-1>.
The point is you need to add "--offline --gradle-user-home
.gradlehome" and after the invocation you need to remove .gradle and
.gradlehome.

# 2. Patch build scripts

Replace all repository closures with:

repositories {
  flatDir { dirs '/usr/share/java' }
  maven { url 'file:///usr/share/maven-repo' }
}

After that the build should be successful. If any problems about
missing dependencies occur then you also need to replace the
dependencies' artifactId to the corresponding filenames in
/usr/share/java, and make the dependencies forward-compatible. For
example: "foo:bar:1.0" => "foo:bar:[1.0, )", like intervals you
learned from high school maths.

This is how I solve the problems before gradle-debian-helper appears.
I am not familiar with gradle-debian-helper yet so maybe ebourg and
apo may have some ideas on improving it according to this problem.

Regards,
Kai-Chung Yan

2015-12-19 23:51 GMT+08:00 Roger Shimizu <rogershimizu@gmail.com>:
> Dear Java Team,
>
> I'm in the progress of packaging a java program, smali. [0]
> I met some problems, usually these should go to mentors list for help.
> But it's quite java related, so here it is.
>
> I cloned original repo from github, added the debian/ folder, and used
> it's original gradle configuration to build. But it failed.
> I already push it to my github in "pkg-smali" branch. [1]
>
> the log looked like this:
> ==========================
> Compiling build file '/home/roger/smali/baksmali/build.gradle' using
> SubsetScriptTransformer.
>     Replacing proguard:gradle:jar:5.2.1  ->  proguard:gradle:jar:debian
>
> FAILURE: Build failed with an exception.
>
> * What went wrong:
> A problem occurred configuring project ':baksmali'.
>> Could not resolve all dependencies for configuration ':baksmali:classpath'.
> ==========================
> (full log is also enclosed)
>
> I already installed proguard package by apt, also confirmed there's jar file:
> - /usr/share/java/proguard.jar
> inside this jar, there's "proguard/gradle/" folder.
>
> So I don't know what's the problem.
> I guess that maybe gradle need the "pom" file for the library, which
> is lack of for proguard package.
>
> Am I right? If so, do I need to submit a bugreport to proguard?
>
> Sorry I'm a newbie of java packaging.
> Please keep me in CC list when reply. Thank you!
>
> BTW. Here's the command I tried to build:
>   git clone https://github.com/rogers0/smali
>   git checkout -b pkg-smali origin/pkg-smali
>   gbp buildpackage -us -uc --git-verbose --git-ignore-branch 2>&1 |
> tee ../log.txt
>
> [0]: https://bugs.debian.org/808397
> [1]: https://github.com/rogers0/smali/tree/pkg-smali
>
> Cheers,
> Roger



-- 
/*
* 殷啟聰 | Kai-Chung Yan
* 一生只向真理與妻子低頭
* Full-time student of National Taichung University of Education
* LinkedIn: <https://linkedin.com/in/seamlik>
* Blog: <seamlik.logdown.com>
*/


Reply to: