secure-software-engineering / FlowDroid

FlowDroid Static Data Flow Tracker
GNU Lesser General Public License v2.1
1.02k stars 292 forks source link

Seeking Guidance on FlowDroid v2.12 Build Issue #691

Open AnnabellaM opened 5 months ago

AnnabellaM commented 5 months ago

Dear all,

I was trying to build the version 2.12.0 of FlowDroid but it failed with many errors such as "cannot find symbol" or "incompatible types". I attached the complete log below. The previous version 2.111.1 works perfect though.

I have attached the complete log below for your reference. Could someone take a look and provide any guidance on how to address these errors? I truly appreciate any help you can provide.

log_v2.12.txt

StevenArzt commented 5 months ago

That's strange. We run continuous builds and these builds run just fine. What was your command line for the compilation? Did you use the clean target to ensure that there are no leftovers from previous builds?

Did you also build Soot locally to ensure that you have the newest Soot version?

AnnabellaM commented 5 months ago

Hi Steven @StevenArzt , thank you so much for the prompt reply!

What was your command line for the compilation? Did you use the clean target to ensure that there are no leftovers from previous builds?

The command line I used for compilation was mvn install -DskipTests, then I also tried with mvn clean compile package -DskipTests, it failed with the same results.

Did you also build Soot locally to ensure that you have the newest Soot version?

I checked out the v2.12 version of FlowDroid and ran the mvn clean compile package -DskipTests command under the FlowDroid folder. Please correct me if I'm wrong, I think in this way I did include the newest soot version as well since soot-infoflow is a module under FlowDroid folder.

log_v2.12.txt

timll commented 5 months ago

The commit tagged v2.12 has a mismatch in versions. Change the pom.xml of the soot-infoflow-android etc. to depend on soot-infoflow:2.12.0 instead of soot-infoflow:2.12.0-SNAPSHOT, then your build should run through. Seems like our local maven repos at that time coincidentally worked with the wrong pom file.

(I assume your maven repository contains some other earlier 2.12.0-SNAPSHOT build, which misses some commits and, therefore, produces these weird errors. In a clean build, I got a much more helpful error.)

StevenArzt commented 5 months ago

You can also just use the most recent version from the "develop" branch. However, for this development version, you also need to build Soot from the current development branch because FlowDroid depends on the latest changes to Soot.

AnnabellaM commented 5 months ago

Dear @StevenArzt and @timll, I changed the occurrences of soot-infoflow:2.12.0-SNAPSHOT to soot-infoflow:2.12.0 in the pom.xml of both soot-infoflow-android, soot-infoflow-summary, soot-infoflow-cmd and soot-infoflow-integration, and FlowDroid builds successfully now. Thank you so much for your guidance, I really appreciate!! :D