From 916dc46943a91260198042011fb4d83cabc30519 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Aur=C3=A9lien=20Joga?= Date: Wed, 15 Apr 2026 15:53:49 +0200 Subject: [PATCH 1/4] Clarify that only ubuntu 24.04 is tested --- .github/workflows/ail_framework_test.yml | 2 +- README.md | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/.github/workflows/ail_framework_test.yml b/.github/workflows/ail_framework_test.yml index b8185ceb..09024497 100644 --- a/.github/workflows/ail_framework_test.yml +++ b/.github/workflows/ail_framework_test.yml @@ -15,7 +15,7 @@ jobs: # This workflow contains a single job called "build" ail_test: # The type of runner that the job will run on - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 # TODO: Matrix strategy for Python versions is defined but never used. # Currently all jobs use the same system Python, making this redundant. diff --git a/README.md b/README.md index ca2def9e..8ae6cf8b 100644 --- a/README.md +++ b/README.md @@ -219,7 +219,7 @@ git clone https://github.com/ail-project/ail-framework.git cd ail-framework git submodule update --init --recursive -# Install dependencies on Debian/Ubuntu-based distributions +# Install dependencies on Ubuntu ./installing_deps.sh # Start AIL @@ -227,10 +227,11 @@ cd bin ./LAUNCH.sh -l ``` -The default [installing_deps.sh](./installing_deps.sh) script targets Debian and Ubuntu based distributions. +The default [installing_deps.sh](./installing_deps.sh) script is only tested on Ubuntu. ### Requirements +- Ubuntu 24.04 - Python 3.8+ [How to size the hardware requirements for AIL?](https://ail-project.org/faq.html) From 6b9a5f55b9f7c8b90084225dca267ef185727768 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Aur=C3=A9lien=20Joga?= Date: Wed, 15 Apr 2026 16:07:59 +0200 Subject: [PATCH 2/4] Explicit intent on CI using ubuntu-latest instead of a given version --- .github/workflows/ail_framework_test.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/ail_framework_test.yml b/.github/workflows/ail_framework_test.yml index 09024497..a1abdf90 100644 --- a/.github/workflows/ail_framework_test.yml +++ b/.github/workflows/ail_framework_test.yml @@ -15,7 +15,9 @@ jobs: # This workflow contains a single job called "build" ail_test: # The type of runner that the job will run on - runs-on: ubuntu-24.04 + # Specifying -latest as a feature: when the version bumps, if it breaks the CI, + # it'll be a nudge to fix what broke & add the new Ubuntu version supported + runs-on: ubuntu-latest # TODO: Matrix strategy for Python versions is defined but never used. # Currently all jobs use the same system Python, making this redundant. From f43a3aa2dd85a0db17ae1ce32ca044f0c4f51d9d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Aur=C3=A9lien=20Joga?= Date: Wed, 15 Apr 2026 16:20:36 +0200 Subject: [PATCH 3/4] Introduce devcontainer --- .devcontainer/Dockerfile | 11 +++++++++++ .devcontainer/devcontainer.json | 20 +++++++++++++++++++ installing_deps.sh | 34 ++++++++++++++++----------------- 3 files changed, 47 insertions(+), 18 deletions(-) create mode 100644 .devcontainer/Dockerfile create mode 100644 .devcontainer/devcontainer.json diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile new file mode 100644 index 00000000..f282d783 --- /dev/null +++ b/.devcontainer/Dockerfile @@ -0,0 +1,11 @@ +FROM ubuntu:24.04 + +# pre-seed the timezone info +RUN ln -sf /usr/share/zoneinfo/UTC /etc/localtime \ + # install sudo as it's not in the base image & installing_deps.sh expects it + && apt-get update && apt-get install --assume-yes git sudo \ + # Make sudo works right away + && echo 'ubuntu ALL=(root) NOPASSWD:ALL' > /etc/sudoers.d/ubuntu \ + && chmod 0440 /etc/sudoers.d/ubuntu + +USER ubuntu \ No newline at end of file diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json new file mode 100644 index 00000000..30aad5f3 --- /dev/null +++ b/.devcontainer/devcontainer.json @@ -0,0 +1,20 @@ +// For format details, see https://aka.ms/devcontainer.json. +{ + "build": { + "dockerfile": "Dockerfile", + "context": ".." + }, + "remoteUser": "ubuntu", + // Features to add to the dev container. More info: https://containers.dev/features. + // "features": {}, + + // Use 'forwardPorts' to make a list of ports inside the container available locally. + // "forwardPorts": [], + "onCreateCommand": "git submodule update --init --recursive", + + // Use 'postCreateCommand' to run commands after the container is created. + "postCreateCommand": "./installing_deps.sh", + + // Configure tool-specific properties. + // "customizations": {}, +} diff --git a/installing_deps.sh b/installing_deps.sh index fcdd0d73..aaa8d751 100755 --- a/installing_deps.sh +++ b/installing_deps.sh @@ -8,39 +8,37 @@ set -e sudo apt-get update -sudo apt-get install python3-pip virtualenv python3-dev python3-tk libfreetype6-dev \ - screen g++ unzip libsnappy-dev cmake -qq - -sudo apt-get install automake libtool make gcc pkg-config -qq +packages="python3-pip virtualenv python3-dev python3-tk libfreetype6-dev screen g++ unzip libsnappy-dev cmake automake libtool make gcc pkg-config" #Needed for downloading jemalloc -sudo apt-get install wget -qq +packages="${packages} wget" #Needed for bloom filters -sudo apt-get install libssl-dev libfreetype6-dev python3-numpy -qq +packages="${packages} libssl-dev libfreetype6-dev python3-numpy" # pycld3 -sudo apt-get install protobuf-compiler libprotobuf-dev -qq +packages="${packages} protobuf-compiler libprotobuf-dev" # qrcode -sudo apt-get install python3-opencv -y -sudo apt-get install libzbar0 -y +packages="${packages} python3-opencv libzbar0" # DNS deps -sudo apt-get install libadns1 libadns1-dev -qq +packages="${packages} libadns1 libadns1-dev" #Needed for redis-lvlDB -sudo apt-get install libev-dev libgmp-dev -qq # TODO NEED REVIEW +packages="${packages} libev-dev libgmp-dev" # TODO NEED REVIEW #Need for generate-data-flow graph -sudo apt-get install graphviz -qq +packages="${packages} graphviz" # ssdeep -sudo apt-get install libfuzzy-dev -qq -sudo apt-get install build-essential libffi-dev autoconf -qq +packages="${packages} libfuzzy-dev build-essential libffi-dev autoconf" # sflock, gz requirement -sudo apt-get install p7zip-full -qq # TODO REMOVE ME +packages="${packages} p7zip-full" # TODO REMOVE ME + +# resolve needed packages & install all at once while keeping history of why some packages are needed. +sudo apt-get install --assume-yes ${packages} # SUBMODULES # git submodule update --init --recursive @@ -49,7 +47,7 @@ git submodule update --init --recursive test ! -d redis/ && git clone https://github.com/redis/redis.git pushd redis/ git checkout 5.0 -make +make -j popd # tlsh @@ -67,7 +65,7 @@ test ! -d pgpdump && git clone https://github.com/kazu-yamamoto/pgpdump.git pushd pgpdump/ autoreconf -fiW all ./configure -make +make -j sudo make install popd @@ -79,7 +77,7 @@ unzip yara_temp/yara.zip -d yara_temp/ pushd yara_temp/yara-${YARA_VERSION} ./bootstrap.sh ./configure -make +make -j sudo make install make check popd From 1ed5bf5572b378ac8a8dd97adf613fb48ace99d1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Aur=C3=A9lien=20Joga?= Date: Wed, 15 Apr 2026 16:20:55 +0200 Subject: [PATCH 4/4] Revert "Introduce devcontainer" This reverts commit f43a3aa2dd85a0db17ae1ce32ca044f0c4f51d9d. --- .devcontainer/Dockerfile | 11 ----------- .devcontainer/devcontainer.json | 20 ------------------- installing_deps.sh | 34 +++++++++++++++++---------------- 3 files changed, 18 insertions(+), 47 deletions(-) delete mode 100644 .devcontainer/Dockerfile delete mode 100644 .devcontainer/devcontainer.json diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile deleted file mode 100644 index f282d783..00000000 --- a/.devcontainer/Dockerfile +++ /dev/null @@ -1,11 +0,0 @@ -FROM ubuntu:24.04 - -# pre-seed the timezone info -RUN ln -sf /usr/share/zoneinfo/UTC /etc/localtime \ - # install sudo as it's not in the base image & installing_deps.sh expects it - && apt-get update && apt-get install --assume-yes git sudo \ - # Make sudo works right away - && echo 'ubuntu ALL=(root) NOPASSWD:ALL' > /etc/sudoers.d/ubuntu \ - && chmod 0440 /etc/sudoers.d/ubuntu - -USER ubuntu \ No newline at end of file diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json deleted file mode 100644 index 30aad5f3..00000000 --- a/.devcontainer/devcontainer.json +++ /dev/null @@ -1,20 +0,0 @@ -// For format details, see https://aka.ms/devcontainer.json. -{ - "build": { - "dockerfile": "Dockerfile", - "context": ".." - }, - "remoteUser": "ubuntu", - // Features to add to the dev container. More info: https://containers.dev/features. - // "features": {}, - - // Use 'forwardPorts' to make a list of ports inside the container available locally. - // "forwardPorts": [], - "onCreateCommand": "git submodule update --init --recursive", - - // Use 'postCreateCommand' to run commands after the container is created. - "postCreateCommand": "./installing_deps.sh", - - // Configure tool-specific properties. - // "customizations": {}, -} diff --git a/installing_deps.sh b/installing_deps.sh index aaa8d751..fcdd0d73 100755 --- a/installing_deps.sh +++ b/installing_deps.sh @@ -8,37 +8,39 @@ set -e sudo apt-get update -packages="python3-pip virtualenv python3-dev python3-tk libfreetype6-dev screen g++ unzip libsnappy-dev cmake automake libtool make gcc pkg-config" +sudo apt-get install python3-pip virtualenv python3-dev python3-tk libfreetype6-dev \ + screen g++ unzip libsnappy-dev cmake -qq + +sudo apt-get install automake libtool make gcc pkg-config -qq #Needed for downloading jemalloc -packages="${packages} wget" +sudo apt-get install wget -qq #Needed for bloom filters -packages="${packages} libssl-dev libfreetype6-dev python3-numpy" +sudo apt-get install libssl-dev libfreetype6-dev python3-numpy -qq # pycld3 -packages="${packages} protobuf-compiler libprotobuf-dev" +sudo apt-get install protobuf-compiler libprotobuf-dev -qq # qrcode -packages="${packages} python3-opencv libzbar0" +sudo apt-get install python3-opencv -y +sudo apt-get install libzbar0 -y # DNS deps -packages="${packages} libadns1 libadns1-dev" +sudo apt-get install libadns1 libadns1-dev -qq #Needed for redis-lvlDB -packages="${packages} libev-dev libgmp-dev" # TODO NEED REVIEW +sudo apt-get install libev-dev libgmp-dev -qq # TODO NEED REVIEW #Need for generate-data-flow graph -packages="${packages} graphviz" +sudo apt-get install graphviz -qq # ssdeep -packages="${packages} libfuzzy-dev build-essential libffi-dev autoconf" +sudo apt-get install libfuzzy-dev -qq +sudo apt-get install build-essential libffi-dev autoconf -qq # sflock, gz requirement -packages="${packages} p7zip-full" # TODO REMOVE ME - -# resolve needed packages & install all at once while keeping history of why some packages are needed. -sudo apt-get install --assume-yes ${packages} +sudo apt-get install p7zip-full -qq # TODO REMOVE ME # SUBMODULES # git submodule update --init --recursive @@ -47,7 +49,7 @@ git submodule update --init --recursive test ! -d redis/ && git clone https://github.com/redis/redis.git pushd redis/ git checkout 5.0 -make -j +make popd # tlsh @@ -65,7 +67,7 @@ test ! -d pgpdump && git clone https://github.com/kazu-yamamoto/pgpdump.git pushd pgpdump/ autoreconf -fiW all ./configure -make -j +make sudo make install popd @@ -77,7 +79,7 @@ unzip yara_temp/yara.zip -d yara_temp/ pushd yara_temp/yara-${YARA_VERSION} ./bootstrap.sh ./configure -make -j +make sudo make install make check popd