first commit
This commit is contained in:
commit
cd1e91bb99
287 changed files with 86425 additions and 0 deletions
11
rasta_exp/docker/thresher/README.md
Normal file
11
rasta_exp/docker/thresher/README.md
Normal file
|
@ -0,0 +1,11 @@
|
|||
# Thresher
|
||||
|
||||
- [source](https://github.com/cuplv/thresher)
|
||||
- [fork](https://github.com/ryutaro-kodama/thresher)
|
||||
- [paper](https://dl.acm.org/doi/10.1145/2499370.2462186)
|
||||
- language: Java 7
|
||||
- Build: Makefile
|
||||
- language: Java 8
|
||||
- Build: Maven
|
||||
- number of years without at least 1 commit since first commit: 9
|
||||
- License: Apache 2.0
|
62
rasta_exp/docker/thresher/hopper_home_build/Dockerfile
Normal file
62
rasta_exp/docker/thresher/hopper_home_build/Dockerfile
Normal file
|
@ -0,0 +1,62 @@
|
|||
FROM ubuntu:14.04
|
||||
|
||||
# RUN sed -i -e "s/archive.ubuntu.com/old-releases.ubuntu.com/g" /etc/apt/sources.list
|
||||
|
||||
RUN apt-get update && apt-get install -y git time
|
||||
|
||||
RUN mkdir /workspace
|
||||
RUN git init /workspace/hopper && \
|
||||
cd /workspace/hopper && \
|
||||
git remote add origin https://github.com/cuplv/hopper.git && \
|
||||
git fetch --depth=1 origin 9f0e99360468f74762cacc81dcba933ac255bc87 && \
|
||||
git reset --hard FETCH_HEAD
|
||||
|
||||
RUN git init /workspace/droidel && \
|
||||
cd /workspace/droidel && \
|
||||
git remote add origin https://github.com/cuplv/droidel.git && \
|
||||
git fetch --depth=1 origin 04dd9858a20d166571b56af164059aad5ebe60d2 && \
|
||||
git reset --hard FETCH_HEAD
|
||||
|
||||
RUN apt-get update && apt-get install -y openjdk-7-jdk ant wget unzip maven maven2 binutils g++ \
|
||||
make scala python
|
||||
|
||||
RUN cd /workspace/ && \
|
||||
wget http://downloads.sourceforge.net/project/dex2jar/dex2jar-2.0-20140818.061505-10.zip && \
|
||||
unzip dex2jar-2.0-20140818.061505-10.zip && rm dex2jar-2.0-20140818.061505-10.zip && \
|
||||
mv dex2jar-2.0-SNAPSHOT dex2jar && \
|
||||
chmod +x /workspace/dex2jar/*
|
||||
|
||||
RUN cd /workspace/ && \
|
||||
wget -O - https://github.com/sbt/sbt/releases/download/v0.13.18/sbt-0.13.18.tgz | tar xzv && \
|
||||
cd sbt && \
|
||||
mkdir -p /root/.ivy2/local && \
|
||||
cp -r lib/local-preloaded/* /root/.ivy2/local/
|
||||
|
||||
ENV PATH="/workspace/sbt/bin:/workspace/dex2jar:$PATH"
|
||||
|
||||
RUN mkdir /workspace/hopper/lib && git init /workspace/hopper/lib/z3 && \
|
||||
cd /workspace/hopper/lib/z3 && \
|
||||
git remote add origin https://github.com/Z3Prover/z3.git && \
|
||||
git fetch --depth=1 origin 7f6ef0b6c0813f2e9e8f993d45722c0e5b99e152 && \
|
||||
git reset --hard FETCH_HEAD && \
|
||||
python scripts/mk_make.py --java && cd build && make && \
|
||||
cp *.jar ../.. && cp *.so ../..
|
||||
|
||||
RUN sed -i 's#cd walautil#cd walautil \&\& git checkout 6aad86d730da36f6b21363a14612eb7fa45535ac#' /workspace/droidel/lib/install_deps.sh && \
|
||||
sed -i 's#cd jphantom#cd jphantom \&\& git checkout 097a8f82bd09cf32b7826fa3876be4018c3eb562#' /workspace/droidel/lib/install_deps.sh && \
|
||||
sed -i 's#javac#javac -encoding ISO-8859-1#g' /workspace/droidel/stubs/compile_stubs.sh && \
|
||||
cd /workspace/droidel/lib/ && ./install_deps.sh && \
|
||||
cd /workspace/droidel && sbt compile && sbt publishLocal
|
||||
|
||||
COPY android-4.4.2.jar /workspace/droidel/stubs/
|
||||
|
||||
RUN cd /workspace/droidel/stubs/ && \
|
||||
./compile_stubs.sh android-4.4.2.jar && \
|
||||
cp /workspace/droidel/stubs/out/droidel_android-4.4.2.jar /workspace/hopper/lib/
|
||||
|
||||
RUN cd /workspace/hopper && \
|
||||
sed -i 's#target/scala-2.10/hopper_2.10-0.1-one-jar.jar#/workspace/hopper/target/scala-2.10/hopper_2.10-0.1-one-jar.jar#' /workspace/hopper/hopper.sh && \
|
||||
sed -i 's#pwd#dirname -- "$(readlink -f "${BASH_SOURCE}")"#' /workspace/hopper/hopper.sh && \
|
||||
sbt one-jar
|
||||
|
||||
COPY run.sh /
|
BIN
rasta_exp/docker/thresher/hopper_home_build/android-4.4.2.jar
Normal file
BIN
rasta_exp/docker/thresher/hopper_home_build/android-4.4.2.jar
Normal file
Binary file not shown.
151
rasta_exp/docker/thresher/hopper_home_build/errors
Normal file
151
rasta_exp/docker/thresher/hopper_home_build/errors
Normal file
|
@ -0,0 +1,151 @@
|
|||
JarClassLoader: Warning: Null manifest from input stream associated with: lib/libz3java.so
|
||||
JarClassLoader: Warning: Null manifest from input stream associated with: lib/javax.inject-1.jar
|
||||
JarClassLoader: Warning: Null manifest from input stream associated with: lib/libz3.s
|
||||
|
||||
13CC67ECBFF7B04A052F3690E553BE321285B9379D9CF0A9FCB479FD772DF395.apk:
|
||||
```
|
||||
128 invokevirtual < Application, Lcom/reg/MainRegActivity$2, onClick(Landroid/view/View;)V > v128,v122 @128 exception:v130
|
||||
BB127
|
||||
|
||||
at scala.Predef$.assert(Predef.scala:179)
|
||||
at edu.colorado.hopper.executor.UnstructuredSymbolicExecutor$class.forkToPredecessorBlocks(UnstructuredSymbolicExecutor.scala:459)
|
||||
at edu.colorado.hopper.executor.DefaultSymbolicExecutor.forkToPredecessorBlocks(UnstructuredSymbolicExecutor.scala:34)
|
||||
at edu.colorado.hopper.executor.UnstructuredSymbolicExecutor$class.executeBackwardIntraproceduralWhile(UnstructuredSymbolicExecutor.scala:406)
|
||||
at edu.colorado.hopper.executor.DefaultSymbolicExecutor.executeBackwardIntraproceduralWhile(UnstructuredSymbolicExecutor.scala:34)
|
||||
at edu.colorado.hopper.executor.UnstructuredSymbolicExecutor$class.executeBackwardWhileHelper(UnstructuredSymbolicExecutor.scala:776)
|
||||
at edu.colorado.hopper.executor.DefaultSymbolicExecutor.executeBackwardWhileHelper(UnstructuredSymbolicExecutor.scala:34)
|
||||
at edu.colorado.hopper.executor.UnstructuredSymbolicExecutor$class.executeBackwardWhile(UnstructuredSymbolicExecutor.scala:759)
|
||||
at edu.colorado.hopper.executor.DefaultSymbolicExecutor.executeBackwardWhile(UnstructuredSymbolicExecutor.scala:34)
|
||||
at edu.colorado.hopper.executor.UnstructuredSymbolicExecutor$class.executeBackward(UnstructuredSymbolicExecutor.scala:815)
|
||||
at edu.colorado.hopper.executor.DefaultSymbolicExecutor.executeBackward(UnstructuredSymbolicExecutor.scala:34)
|
||||
at edu.colorado.hopper.executor.UnstructuredSymbolicExecutor$class.executeBackward(UnstructuredSymbolicExecutor.scala:803)
|
||||
at edu.colorado.hopper.executor.DefaultSymbolicExecutor.executeBackward(UnstructuredSymbolicExecutor.scala:34)
|
||||
at edu.colorado.hopper.client.android.AndroidLeakClient$$anonfun$generateWitness$1.apply(AndroidLeakClient.scala:258)
|
||||
at edu.colorado.hopper.client.android.AndroidLeakClient$$anonfun$generateWitness$1.apply(AndroidLeakClient.scala:247)
|
||||
at scala.collection.LinearSeqOptimized$class.exists(LinearSeqOptimized.scala:80)
|
||||
at scala.collection.immutable.List.exists(List.scala:84)
|
||||
at edu.colorado.hopper.client.android.AndroidLeakClient.generateWitness(AndroidLeakClient.scala:247)
|
||||
at edu.colorado.hopper.client.android.AndroidLeakClient.refuteFieldErrorForward(AndroidLeakClient.scala:184)
|
||||
at edu.colorado.hopper.client.android.AndroidLeakClient$$anonfun$refuteFieldErrors$1.apply(AndroidLeakClient.scala:121)
|
||||
at edu.colorado.hopper.client.android.AndroidLeakClient$$anonfun$refuteFieldErrors$1.apply(AndroidLeakClient.scala:119)
|
||||
at scala.collection.TraversableOnce$$anonfun$foldLeft$1.apply(TraversableOnce.scala:144)
|
||||
at scala.collection.TraversableOnce$$anonfun$foldLeft$1.apply(TraversableOnce.scala:144)
|
||||
at scala.collection.mutable.LinkedHashSet.foreach(LinkedHashSet.scala:87)
|
||||
at scala.collection.TraversableOnce$class.foldLeft(TraversableOnce.scala:144)
|
||||
at scala.collection.AbstractTraversable.foldLeft(Traversable.scala:105)
|
||||
at edu.colorado.hopper.client.android.AndroidLeakClient.refuteFieldErrors(AndroidLeakClient.scala:119)
|
||||
at edu.colorado.hopper.client.android.AndroidLeakClient.check(AndroidLeakClient.scala:81)
|
||||
at edu.colorado.hopper.client.android.AndroidLeakClient.check(AndroidLeakClient.scala:24)
|
||||
at edu.colorado.hopper.driver.Main$.main(Main.scala:72)
|
||||
at edu.colorado.hopper.driver.Main.main(Main.scala)
|
||||
... 6 more
|
||||
```
|
||||
|
||||
62BDA1D7ABB522DEFE0A82731792D0E3F9DB38969778B837CB1B51782051F46B.apk:
|
||||
```
|
||||
902 v996 = invokevirtual < Application, Lcom/nd/dianjin/b, onTouch(Landroid/view/View;Landroid/view/MotionEvent;)Z > v994,v26,v201 @902 exception:v997
|
||||
BB844
|
||||
|
||||
at scala.Predef$.assert(Predef.scala:179)
|
||||
at edu.colorado.hopper.executor.UnstructuredSymbolicExecutor$class.forkToPredecessorBlocks(UnstructuredSymbolicExecutor.scala:459)
|
||||
at edu.colorado.hopper.executor.DefaultSymbolicExecutor.forkToPredecessorBlocks(UnstructuredSymbolicExecutor.scala:34)
|
||||
at edu.colorado.hopper.executor.UnstructuredSymbolicExecutor$class.executeBackwardIntraproceduralWhile(UnstructuredSymbolicExecutor.scala:406)
|
||||
at edu.colorado.hopper.executor.DefaultSymbolicExecutor.executeBackwardIntraproceduralWhile(UnstructuredSymbolicExecutor.scala:34)
|
||||
at edu.colorado.hopper.executor.UnstructuredSymbolicExecutor$class.executeBackwardWhileHelper(UnstructuredSymbolicExecutor.scala:776)
|
||||
at edu.colorado.hopper.executor.DefaultSymbolicExecutor.executeBackwardWhileHelper(UnstructuredSymbolicExecutor.scala:34)
|
||||
at edu.colorado.hopper.executor.UnstructuredSymbolicExecutor$class.executeBackwardWhile(UnstructuredSymbolicExecutor.scala:759)
|
||||
at edu.colorado.hopper.executor.DefaultSymbolicExecutor.executeBackwardWhile(UnstructuredSymbolicExecutor.scala:34)
|
||||
at edu.colorado.hopper.executor.UnstructuredSymbolicExecutor$class.executeBackward(UnstructuredSymbolicExecutor.scala:815)
|
||||
at edu.colorado.hopper.executor.DefaultSymbolicExecutor.executeBackward(UnstructuredSymbolicExecutor.scala:34)
|
||||
at edu.colorado.hopper.executor.UnstructuredSymbolicExecutor$class.executeBackward(UnstructuredSymbolicExecutor.scala:803)
|
||||
at edu.colorado.hopper.executor.DefaultSymbolicExecutor.executeBackward(UnstructuredSymbolicExecutor.scala:34)
|
||||
at edu.colorado.hopper.client.android.AndroidLeakClient$$anonfun$generateWitness$1.apply(AndroidLeakClient.scala:258)
|
||||
at edu.colorado.hopper.client.android.AndroidLeakClient$$anonfun$generateWitness$1.apply(AndroidLeakClient.scala:247)
|
||||
at scala.collection.LinearSeqOptimized$class.exists(LinearSeqOptimized.scala:80)
|
||||
at scala.collection.immutable.List.exists(List.scala:84)
|
||||
at edu.colorado.hopper.client.android.AndroidLeakClient.generateWitness(AndroidLeakClient.scala:247)
|
||||
at edu.colorado.hopper.client.android.AndroidLeakClient.refuteFieldErrorForward(AndroidLeakClient.scala:184)
|
||||
at edu.colorado.hopper.client.android.AndroidLeakClient$$anonfun$refuteFieldErrors$1.apply(AndroidLeakClient.scala:121)
|
||||
at edu.colorado.hopper.client.android.AndroidLeakClient$$anonfun$refuteFieldErrors$1.apply(AndroidLeakClient.scala:119)
|
||||
at scala.collection.TraversableOnce$$anonfun$foldLeft$1.apply(TraversableOnce.scala:144)
|
||||
at scala.collection.TraversableOnce$$anonfun$foldLeft$1.apply(TraversableOnce.scala:144)
|
||||
at scala.collection.mutable.LinkedHashSet.foreach(LinkedHashSet.scala:87)
|
||||
at scala.collection.TraversableOnce$class.foldLeft(TraversableOnce.scala:144)
|
||||
at scala.collection.AbstractTraversable.foldLeft(Traversable.scala:105)
|
||||
at edu.colorado.hopper.client.android.AndroidLeakClient.refuteFieldErrors(AndroidLeakClient.scala:119)
|
||||
at edu.colorado.hopper.client.android.AndroidLeakClient.check(AndroidLeakClient.scala:81)
|
||||
at edu.colorado.hopper.client.android.AndroidLeakClient.check(AndroidLeakClient.scala:24)
|
||||
at edu.colorado.hopper.driver.Main$.main(Main.scala:72)
|
||||
at edu.colorado.hopper.driver.Main.main(Main.scala)
|
||||
... 6 more
|
||||
```
|
||||
|
||||
K9Mail:
|
||||
```
|
||||
Exception in thread "main" java.lang.reflect.InvocationTargetException
|
||||
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
|
||||
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
|
||||
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
|
||||
at java.lang.reflect.Method.invoke(Method.java:606)
|
||||
at com.simontuffs.onejar.Boot.run(Boot.java:340)
|
||||
at com.simontuffs.onejar.Boot.main(Boot.java:166)
|
||||
Caused by: java.lang.RuntimeException:
|
||||
at scala.sys.package$.error(package.scala:27)
|
||||
at edu.colorado.walautil.Util$.Assert(Util.scala:23)
|
||||
at edu.colorado.walautil.Util$.Assert(Util.scala:22)
|
||||
at edu.colorado.hopper.client.android.AndroidLeakClient.refuteFieldErrorForward(AndroidLeakClient.scala:198)
|
||||
at edu.colorado.hopper.client.android.AndroidLeakClient$$anonfun$refuteFieldErrors$1.apply(AndroidLeakClient.scala:121)
|
||||
at edu.colorado.hopper.client.android.AndroidLeakClient$$anonfun$refuteFieldErrors$1.apply(AndroidLeakClient.scala:119)
|
||||
at scala.collection.TraversableOnce$$anonfun$foldLeft$1.apply(TraversableOnce.scala:144)
|
||||
at scala.collection.TraversableOnce$$anonfun$foldLeft$1.apply(TraversableOnce.scala:144)
|
||||
at scala.collection.mutable.LinkedHashSet.foreach(LinkedHashSet.scala:87)
|
||||
at scala.collection.TraversableOnce$class.foldLeft(TraversableOnce.scala:144)
|
||||
at scala.collection.AbstractTraversable.foldLeft(Traversable.scala:105)
|
||||
at edu.colorado.hopper.client.android.AndroidLeakClient.refuteFieldErrors(AndroidLeakClient.scala:119)
|
||||
at edu.colorado.hopper.client.android.AndroidLeakClient.check(AndroidLeakClient.scala:81)
|
||||
at edu.colorado.hopper.client.android.AndroidLeakClient.check(AndroidLeakClient.scala:24)
|
||||
at edu.colorado.hopper.driver.Main$.main(Main.scala:72)
|
||||
at edu.colorado.hopper.driver.Main.main(Main.scala)
|
||||
... 6 more
|
||||
```
|
||||
|
||||
|
||||
DroidLife:
|
||||
```
|
||||
v343 = phi v10,v12,v14,v16,v18,v20,v22,v24,v26,v28,v30,v32,v34,v36,v38,v40,v42,v44,v46,v48,v50,v52,v54,v56,v58,v60,v62,v64,v66,v68,v70,v72,v74,v76,v78,v80,v82,v84,v86,v88,v90,v92
|
||||
296 invokevirtual < Application, Lorg/jtb/droidlife/CustomDialog$Builder$1, onClick(Landroid/content/DialogInterface;I)V > v341,v343,v344 @296 exception:v345
|
||||
BB268
|
||||
|
||||
at scala.Predef$.assert(Predef.scala:179)
|
||||
at edu.colorado.hopper.executor.UnstructuredSymbolicExecutor$class.forkToPredecessorBlocks(UnstructuredSymbolicExecutor.scala:459)
|
||||
at edu.colorado.hopper.executor.DefaultSymbolicExecutor.forkToPredecessorBlocks(UnstructuredSymbolicExecutor.scala:34)
|
||||
at edu.colorado.hopper.executor.UnstructuredSymbolicExecutor$class.executeBackwardIntraproceduralWhile(UnstructuredSymbolicExecutor.scala:406)
|
||||
at edu.colorado.hopper.executor.DefaultSymbolicExecutor.executeBackwardIntraproceduralWhile(UnstructuredSymbolicExecutor.scala:34)
|
||||
at edu.colorado.hopper.executor.UnstructuredSymbolicExecutor$class.executeBackwardWhileHelper(UnstructuredSymbolicExecutor.scala:776)
|
||||
at edu.colorado.hopper.executor.DefaultSymbolicExecutor.executeBackwardWhileHelper(UnstructuredSymbolicExecutor.scala:34)
|
||||
at edu.colorado.hopper.executor.UnstructuredSymbolicExecutor$class.executeBackwardWhile(UnstructuredSymbolicExecutor.scala:759)
|
||||
at edu.colorado.hopper.executor.DefaultSymbolicExecutor.executeBackwardWhile(UnstructuredSymbolicExecutor.scala:34)
|
||||
at edu.colorado.hopper.executor.UnstructuredSymbolicExecutor$class.executeBackward(UnstructuredSymbolicExecutor.scala:815)
|
||||
at edu.colorado.hopper.executor.DefaultSymbolicExecutor.executeBackward(UnstructuredSymbolicExecutor.scala:34)
|
||||
at edu.colorado.hopper.executor.UnstructuredSymbolicExecutor$class.executeBackward(UnstructuredSymbolicExecutor.scala:803)
|
||||
at edu.colorado.hopper.executor.DefaultSymbolicExecutor.executeBackward(UnstructuredSymbolicExecutor.scala:34)
|
||||
at edu.colorado.hopper.client.android.AndroidLeakClient$$anonfun$generateWitness$1.apply(AndroidLeakClient.scala:258)
|
||||
at edu.colorado.hopper.client.android.AndroidLeakClient$$anonfun$generateWitness$1.apply(AndroidLeakClient.scala:247)
|
||||
at scala.collection.LinearSeqOptimized$class.exists(LinearSeqOptimized.scala:80)
|
||||
at scala.collection.immutable.List.exists(List.scala:84)
|
||||
at edu.colorado.hopper.client.android.AndroidLeakClient.generateWitness(AndroidLeakClient.scala:247)
|
||||
at edu.colorado.hopper.client.android.AndroidLeakClient.refuteFieldErrorForward(AndroidLeakClient.scala:184)
|
||||
at edu.colorado.hopper.client.android.AndroidLeakClient$$anonfun$refuteFieldErrors$1.apply(AndroidLeakClient.scala:121)
|
||||
at edu.colorado.hopper.client.android.AndroidLeakClient$$anonfun$refuteFieldErrors$1.apply(AndroidLeakClient.scala:119)
|
||||
at scala.collection.TraversableOnce$$anonfun$foldLeft$1.apply(TraversableOnce.scala:144)
|
||||
at scala.collection.TraversableOnce$$anonfun$foldLeft$1.apply(TraversableOnce.scala:144)
|
||||
at scala.collection.mutable.LinkedHashSet.foreach(LinkedHashSet.scala:87)
|
||||
at scala.collection.TraversableOnce$class.foldLeft(TraversableOnce.scala:144)
|
||||
at scala.collection.AbstractTraversable.foldLeft(Traversable.scala:105)
|
||||
at edu.colorado.hopper.client.android.AndroidLeakClient.refuteFieldErrors(AndroidLeakClient.scala:119)
|
||||
at edu.colorado.hopper.client.android.AndroidLeakClient.check(AndroidLeakClient.scala:81)
|
||||
at edu.colorado.hopper.client.android.AndroidLeakClient.check(AndroidLeakClient.scala:24)
|
||||
at edu.colorado.hopper.driver.Main$.main(Main.scala:72)
|
||||
at edu.colorado.hopper.driver.Main.main(Main.scala)
|
||||
... 6 more
|
||||
```
|
26
rasta_exp/docker/thresher/hopper_home_build/run.sh
Executable file
26
rasta_exp/docker/thresher/hopper_home_build/run.sh
Executable file
|
@ -0,0 +1,26 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
APK_FILENAME=$1
|
||||
|
||||
export TIME="time: %e
|
||||
kernel-cpu-time: %S
|
||||
user-cpu-time: %U
|
||||
max-rss-mem: %M
|
||||
avg-rss-mem: %t
|
||||
avg-total-mem: %K
|
||||
page-size: %Z
|
||||
nb-major-page-fault: %F
|
||||
nb-minor-page-fault: %R
|
||||
nb-fs-input: %I
|
||||
nb-fs-output: %O
|
||||
nb-socket-msg-received: %r
|
||||
nb-socket-msg-sent: %s
|
||||
nb-signal-delivered: %k
|
||||
exit-status: %x"
|
||||
|
||||
JAR_FILENAME=$(echo ${APK_FILENAME} | sed 's/.apk/-dex2jar.jar/')
|
||||
|
||||
cd /mnt
|
||||
#/usr/bin/time -o /mnt/report -q /usr/bin/timeout --kill-after=20s ${TIMEOUT}
|
||||
sh -c "d2j-dex2jar.sh ${APK_FILENAME} && /workspace/hopper/hopper.sh -app ${JAR_FILENAME} -droidel_home /workspace/droidel -android_jar /workspace/hopper/lib/droidel_android-4.4.2.jar -check_android_leaks"
|
||||
#> /mnt/stdout 2> /mnt/stderr
|
86
rasta_exp/docker/thresher/thresher_home_build/Dockerfile
Normal file
86
rasta_exp/docker/thresher/thresher_home_build/Dockerfile
Normal file
|
@ -0,0 +1,86 @@
|
|||
FROM ubuntu:14.04
|
||||
|
||||
# RUN sed -i -e "s/archive.ubuntu.com/old-releases.ubuntu.com/g" /etc/apt/sources.list
|
||||
|
||||
RUN apt-get update && apt-get install -y git time
|
||||
|
||||
RUN mkdir /workspace
|
||||
RUN git init /workspace/thresher && \
|
||||
cd /workspace/thresher && \
|
||||
git remote add origin https://github.com/cuplv/thresher.git && \
|
||||
git fetch --depth=1 origin f1befd23fb5583e5ee257d9a5ea3f42a2ef14c34 && \
|
||||
git reset --hard FETCH_HEAD
|
||||
|
||||
RUN apt-get update && apt-get install -y make openjdk-6-jdk libgomp1 wget unzip python autoconf g++
|
||||
|
||||
RUN cd /workspace/ && \
|
||||
wget http://downloads.sourceforge.net/project/dex2jar/dex2jar-2.0-20140818.061505-10.zip && \
|
||||
unzip dex2jar-2.0-20140818.061505-10.zip && rm dex2jar-2.0-20140818.061505-10.zip && \
|
||||
mv dex2jar-2.0-SNAPSHOT dex2jar
|
||||
|
||||
RUN cd /workspace/ && \
|
||||
wget -O - https://github.com/sbt/sbt/releases/download/v0.13.18/sbt-0.13.18.tgz | tar xzv && \
|
||||
cd sbt && \
|
||||
mkdir -p /root/.ivy2/local && \
|
||||
cp -r lib/local-preloaded/* /root/.ivy2/local/
|
||||
# Install deps for ScalaZ3
|
||||
RUN mkdir -p /root/.sbt/preloaded/org/scalatest/scalatest_2.10/1.9.1 && \
|
||||
wget -O /root/.sbt/preloaded/org/scalatest/scalatest_2.10/1.9.1/scalatest_2.10-1.9.1.pom https://repo1.maven.org/maven2/org/scalatest/scalatest_2.10/1.9.1/scalatest_2.10-1.9.1.pom && \
|
||||
wget -O /root/.sbt/preloaded/org/scalatest/scalatest_2.10/1.9.1/scalatest_2.10-1.9.1.jar https://repo1.maven.org/maven2/org/scalatest/scalatest_2.10/1.9.1/scalatest_2.10-1.9.1.jar && \
|
||||
mkdir -p /root/.sbt/preloaded/org/sonatype/oss/oss-parent/7 && \
|
||||
wget -O /root/.sbt/preloaded/org/sonatype/oss/oss-parent/7/oss-parent-7.pom https://repo1.maven.org/maven2/org/sonatype/oss/oss-parent/7/oss-parent-7.pom && \
|
||||
mkdir -p /root/.sbt/preloaded/org/scala-lang/scala-library/2.10.2 && \
|
||||
wget -O /root/.sbt/preloaded/org/scala-lang/scala-library/2.10.2/scala-library-2.10.2.pom https://repo1.maven.org/maven2/org/scala-lang/scala-library/2.10.2/scala-library-2.10.2.pom && \
|
||||
wget -O /root/.sbt/preloaded/org/scala-lang/scala-library/2.10.2/scala-library-2.10.2.jar https://repo1.maven.org/maven2/org/scala-lang/scala-library/2.10.2/scala-library-2.10.2.jar && \
|
||||
mkdir -p /root/.sbt/preloaded/org/scala-lang/scala-compiler/2.10.2 && \
|
||||
wget -O /root/.sbt/preloaded/org/scala-lang/scala-compiler/2.10.2/scala-compiler-2.10.2.pom https://repo1.maven.org/maven2/org/scala-lang/scala-compiler/2.10.2/scala-compiler-2.10.2.pom && \
|
||||
wget -O /root/.sbt/preloaded/org/scala-lang/scala-compiler/2.10.2/scala-compiler-2.10.2.jar https://repo1.maven.org/maven2/org/scala-lang/scala-compiler/2.10.2/scala-compiler-2.10.2.jar && \
|
||||
mkdir -p /root/.sbt/preloaded/org/scala-lang/scala-reflect/2.10.2 && \
|
||||
wget -O /root/.sbt/preloaded/org/scala-lang/scala-reflect/2.10.2/scala-reflect-2.10.2.pom https://repo1.maven.org/maven2/org/scala-lang/scala-reflect/2.10.2/scala-reflect-2.10.2.pom && \
|
||||
wget -O /root/.sbt/preloaded/org/scala-lang/scala-reflect/2.10.2/scala-reflect-2.10.2.jar https://repo1.maven.org/maven2/org/scala-lang/scala-reflect/2.10.2/scala-reflect-2.10.2.jar && \
|
||||
mkdir -p /root/.sbt/preloaded/org/scala-lang/jline/2.10.2 && \
|
||||
wget -O /root/.sbt/preloaded/org/scala-lang/jline/2.10.2/jline-2.10.2.pom https://repo1.maven.org/maven2/org/scala-lang/jline/2.10.2/jline-2.10.2.pom && \
|
||||
wget -O /root/.sbt/preloaded/org/scala-lang/jline/2.10.2/jline-2.10.2.jar https://repo1.maven.org/maven2/org/scala-lang/jline/2.10.2/jline-2.10.2.jar && \
|
||||
mkdir -p /root/.sbt/preloaded/org/scala-lang/scala-actors/2.10.7 && \
|
||||
wget -O /root/.sbt/preloaded/org/scala-lang/scala-actors/2.10.7/scala-actors-2.10.7.pom https://repo1.maven.org/maven2/org/scala-lang/scala-actors/2.10.7/scala-actors-2.10.7.pom && \
|
||||
wget -O /root/.sbt/preloaded/org/scala-lang/scala-actors/2.10.7/scala-actors-2.10.7.jar https://repo1.maven.org/maven2/org/scala-lang/scala-actors/2.10.7/scala-actors-2.10.7.jar
|
||||
|
||||
ENV PATH="/workspace/sbt/bin:$PATH"
|
||||
|
||||
RUN apt-get update && apt-get install -y libjansi-java && \
|
||||
wget -O /workspace/scala-2.10.7.deb https://downloads.lightbend.com/scala/2.10.7/scala-2.10.7.deb && \
|
||||
dpkg -i /workspace/scala-2.10.7.deb
|
||||
|
||||
RUN sed -i 's#git clone https://github.com/wala/WALA.git#git clone --branch R_1.3.6 https://github.com/wala/WALA.git#' /workspace/thresher/build/install_deps.sh && \
|
||||
sed -i 's/mv WALA lib/mv WALA lib \&\& (cd lib\/WALA \&\& git checkout ca3f89eac98a81396fc97452bb7d80d46f9c164c)/' /workspace/thresher/build/install_deps.sh && \
|
||||
sed -i 's#git clone https://git01.codeplex.com/z3#git clone --branch z3-4.3.0 https://github.com/Z3Prover/z3.git#' /workspace/thresher/build/install_deps.sh && \
|
||||
sed -i 's#git clone https://github.com/psuter/ScalaZ3.git#git clone --branch v2.1 https://github.com/psuter/ScalaZ3.git#' /workspace/thresher/build/install_deps.sh && \
|
||||
sed -i 's#Z3_VERSION=.*#Z3_VERSION=4.3-unix-64b#' /workspace/thresher/build/build_deps.sh && \
|
||||
sed -i 's#cd $BASE/lib/ScalaZ3/z3/x64/ && mkdir $Z3_VERSION && cd $Z3_VERSION#mkdir -p "$BASE/lib/ScalaZ3/z3/$Z3_VERSION" \&\& cd "$_"#' /workspace/thresher/build/build_deps.sh && \
|
||||
sed -i 's#Z3_VERSION =.*#Z3_VERSION = 4.3-unix-64b#' /workspace/thresher/build/Makefile_scalaz3 && \
|
||||
cat /workspace/thresher/build/build_deps.sh && \
|
||||
sed -i 's#SCALA_VERSION =.*#SCALA_VERSION = 2.10#' /workspace/thresher/build/Makefile_scalaz3 && \
|
||||
sed -i 's#sbt package#sbt package \&\& sbt package#' /workspace/thresher/build/Makefile_scalaz3 && \
|
||||
sed -i 's#SCALA_VERSION =.*#SCALA_VERSION = 2.10#' /workspace/thresher/Makefile && \
|
||||
sed -i 's#/scala_#/scala-#g' /workspace/thresher/build/Makefile_scalaz3 && \
|
||||
sed -i 's#/scala_#/scala-#g' /workspace/thresher/Makefile && \
|
||||
sed -i 's#LD_LIBRARY_PATH=#LD_LIBRARY_PATH=lib-bin/:#' /workspace/thresher/build/Makefile_scalaz3 && \
|
||||
cd /workspace/thresher && \
|
||||
make install-deps && \
|
||||
sed -i 's#sbt.version=.*#sbt.version=0.13.18#' /workspace/thresher/lib/ScalaZ3/project/build.properties && \
|
||||
sed -i 's#scalaVersion := .*#scalaVersion := "2.10.7"#' /workspace/thresher/lib/ScalaZ3/build.sbt && \
|
||||
echo "-Dhttps.protocols=TLSv1.2" > /workspace/thresher/lib/ScalaZ3/.jvmopts && \
|
||||
sed -i 's#2.10.2#2.10.2#' /workspace/thresher/lib/ScalaZ3/build.sbt && \
|
||||
cd /workspace/thresher/lib/z3 && \
|
||||
autoconf && \
|
||||
/workspace/thresher/lib/z3/configure && \
|
||||
cd /workspace/thresher && \
|
||||
make deps && \
|
||||
mkdir /workspace/thresher/bin && \
|
||||
make && \
|
||||
make tests && \
|
||||
sed -i 's#LD_LIBRARY_PATH=#LD_LIBRARY_PATH=$THRESHER_HOME/lib/ScalaZ3/lib-bin/:#' /workspace/thresher/thresher.sh && \
|
||||
sed -i 's#SCALA_VERSION=.*#SCALA_VERSION=2.10#' /workspace/thresher/thresher.sh && \
|
||||
sed -i 's#Z3_VERSION=.*#Z3_VERSION=4.3-unix-64b#' /workspace/thresher/thresher.sh && \
|
||||
sed -i 's#/scala_#/scala-#g' /workspace/thresher/thresher.sh && \
|
||||
sed -i 's#java -cp .:#java -cp .:lib/ScalaZ3/jar-releases/64/scala-2.9.1/scalaz3-3.2.c.jar:#g' /workspace/thresher/thresher.sh
|
Loading…
Add table
Add a link
Reference in a new issue