diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index f83a344c..c603e606 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -22,25 +22,12 @@ jobs: with: python-version: '3.12' - - name: Setup mac dependencies - if: matrix.os == 'macos-15' - run: | - # Create directory for Macport installs - sudo mkdir -p /opt/local - - # Conigure permissions on that directory - sudo chmod -R 777 /opt/local - - # Add the path to GITHUB_PATH - echo "/opt/local/bin:/opt/local/sbin" >> "$GITHUB_PATH" - uses: actions/cache@v4 with: path: | ~/.cargo/registry ~/.cargo/git target - cli/libpff-20231205 - /opt/local key: ${{ runner.os }}-build-${{ hashFiles('**/Cargo.lock', 'scripts/build-install') }} - name: Install build deps diff --git a/.github/workflows/rust.yml b/.github/workflows/rust.yml index dc80964a..5d9e1d9d 100644 --- a/.github/workflows/rust.yml +++ b/.github/workflows/rust.yml @@ -22,11 +22,10 @@ jobs: ~/.cargo/registry ~/.cargo/git target - cli/libpff-20231205 key: ${{ runner.os }}-build-${{ hashFiles('**/Cargo.lock', 'scripts/build-install') }} - name: Install build dependencies - run: sudo apt install git autoconf automake autopoint libtool pkg-config + run: sudo apt install pkg-config # Needs to be separate job because clippy currently (incorrectly) shares cache with cargo # (See https://github.com/rust-lang/rust-clippy/issues/4612) @@ -41,25 +40,12 @@ jobs: steps: - uses: actions/checkout@v4 - - name: Setup mac dependencies - if: matrix.os == 'macos-15' - run: | - # Create directory for Macport installs - sudo mkdir -p /opt/local - - # Conigure permissions on that directory - sudo chmod -R 777 /opt/local - - # Add the path to GITHUB_PATH - echo "/opt/local/bin:/opt/local/sbin" >> "$GITHUB_PATH" - uses: actions/cache@v4 with: path: | ~/.cargo/registry ~/.cargo/git target - cli/libpff-20231205 - /opt/local key: ${{ runner.os }}-build-${{ hashFiles('**/Cargo.lock', 'scripts/build-install') }} - name: Install build deps diff --git a/CHANGELOG.md b/CHANGELOG.md index cf94d488..764d4fda 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,8 @@ +# Unreleased +- Drop the autotools build dependency: libpff now builds from a release tarball that ships a + pre-generated `configure`, so `autoconf`/`automake`/`libtool` (and the macOS MacPorts bootstrap) + are no longer required to build from source + # v0.41.0 - Add `re prune` to delete comments and emails older than a cutoff, backing them up to disk first (optionally scoped to a single mailbox via `--mailbox`) diff --git a/README.md b/README.md index f69adf22..9283fedd 100644 --- a/README.md +++ b/README.md @@ -120,13 +120,15 @@ Make sure you have the following build dependencies installed: ##### Debian/Ubuntu ``` -sudo apt install autoconf automake autopoint libtool pkg-config +sudo apt install build-essential pkg-config curl zlib1g-dev ``` ##### macOS +Install the Xcode Command Line Tools, which provide the C compiler and `make`: + ``` -sudo port install autoconf automake gettext libtool pkgconfig +xcode-select --install ``` Build it the usual way using cargo diff --git a/scripts/build-install b/scripts/build-install index fd8809e7..d91101b4 100755 --- a/scripts/build-install +++ b/scripts/build-install @@ -5,23 +5,15 @@ set -ex case $BUILD_PLATFORM in "ubuntu-24.04") sudo apt-get install \ - autoconf \ - automake \ - autopoint \ - libtool \ pkg-config \ musl-tools ;; "macos-15") - wget https://github.com/macports/macports-base/releases/download/v2.10.5/MacPorts-2.10.5-15-Sequoia.pkg - sudo installer -pkg MacPorts-2.10.5-15-Sequoia.pkg -target / - export PATH=/opt/local/bin:/opt/local/sbin:$PATH - sudo port install \ - autoconf \ - automake \ - gettext \ - libtool \ - pkgconfig + # libpff now builds from a release tarball that ships a pre-generated + # `configure`, so autotools are no longer required. The remaining build + # dependencies (C compiler, make) come from the Xcode Command Line Tools, + # which are preinstalled on the macOS runner -- nothing to install here. + : ;; *) >&2 echo "fatal: unknown BUILD_PLATFORM '$BUILD_PLATFORM'"