mirror of
https://gitlab.com/fdroid/fdroidserver.git
synced 2024-08-17 03:40:11 +02:00
Initially, the scanner used libmagic which used magic numbers in the file's content to detect what kind of file it appears to be. Since that library isn't available on all systems, we added support for two other libraries, mimetypes amongst them. The issue with mimetypes is that it only uses the file's extension, not its actual content. So this ends in variable behaviour depending on what system you're using fdroidserver on. For example, an executable binary without extension would be ignored if mimetypes was being used. We now drop all libraries - mimetypes too as it depends on the system's mime.types file - and instead check extensions ourselves. On top of that, do a simple binary content check to find binary executables that don't have an extension. The new in-house code without any dependencies doesn't add any new checks, so no builds should break. The current checks still work: % fdroid scanner app.openconnect:1029 [...] Found executable binary at assets/raw/armeabi/curl Found executable binary at assets/raw/mips/curl Found executable binary at assets/raw/x86/curl Found JAR file at lib/XposedBridgeApi-54.jar Found JAR file at libs/acra-4.5.0.jar Found JAR file at libs/openconnect-wrapper.jar Found JAR file at libs/stoken-wrapper.jar Found shared library at libs/armeabi/libopenconnect.so Found shared library at libs/armeabi/libstoken.so Found shared library at libs/mips/libopenconnect.so Found shared library at libs/mips/libstoken.so Found shared library at libs/x86/libopenconnect.so Found shared library at libs/x86/libstoken.so
34 lines
1.4 KiB
YAML
34 lines
1.4 KiB
YAML
before_script:
|
|
- apt-get -q update -y
|
|
- echo " == Installing packages required by this CI script"
|
|
- apt-get -q install -y wget tar
|
|
- echo " == Installing packages required by fdroidserver"
|
|
- apt-get -q install -y python
|
|
python-git python-imaging python-libcloud python-logilab-astng
|
|
python-paramiko python-pip python-pyasn1 python-pyasn1-modules
|
|
python-requests python-virtualenv python-yaml
|
|
rsync
|
|
- echo " == Installing packages required by the test suite"
|
|
- apt-get -q install -y pyflakes pylint pep8 dash bash ruby
|
|
- echo " == Installing packages required to build Pillow"
|
|
- apt-get -q install -y python-dev libjpeg-dev zlib1g-dev
|
|
- echo " == Installing OpenJDK 7"
|
|
- apt-get -q install -y openjdk-7-jdk
|
|
- echo " == Installing packages required by the 32-bit SDK"
|
|
- apt-get -q install -y lib32stdc++6 lib32z1
|
|
- echo " == Installing the Android SDK"
|
|
- wget -q -O android-sdk.tgz https://dl.google.com/android/android-sdk_r24.3.4-linux.tgz
|
|
- tar -x -z -f android-sdk.tgz
|
|
- mv android-sdk-linux android-sdk
|
|
- export ANDROID_HOME=$PWD/android-sdk
|
|
- export PATH="$ANDROID_HOME/tools:$PATH"
|
|
- echo " == Installing Android SDK components"
|
|
- echo y | android -s update sdk --no-ui -a -t platform-tools,tools,build-tools-23.0.1
|
|
- export PATH="$ANDROID_HOME/platform-tools:$PATH"
|
|
- export PATH="$ANDROID_HOME/build-tools/23.0.1:$PATH"
|
|
|
|
test:
|
|
script:
|
|
- cd tests
|
|
- ./complete-ci-tests
|