Gitweb links:

...log 
http://git.netsurf-browser.org/libparserutils.git/shortlog/6b0cbf086ca8eb8fe74b69f0c9ecf274eb2397ca
...commit 
http://git.netsurf-browser.org/libparserutils.git/commit/6b0cbf086ca8eb8fe74b69f0c9ecf274eb2397ca
...tree 
http://git.netsurf-browser.org/libparserutils.git/tree/6b0cbf086ca8eb8fe74b69f0c9ecf274eb2397ca

The branch, master has been updated
       via  6b0cbf086ca8eb8fe74b69f0c9ecf274eb2397ca (commit)
       via  f3815edb70f70c1651d929684a2ba26e81ee8f76 (commit)
       via  b4cd0d4a8e1c077a02c7785e6ab6aec55731e50f (commit)
      from  0c9fe18f4a83db6ae3122dc3c3cabe150e3a4e6f (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commitdiff 
http://git.netsurf-browser.org/libparserutils.git/commit/?id=6b0cbf086ca8eb8fe74b69f0c9ecf274eb2397ca
commit 6b0cbf086ca8eb8fe74b69f0c9ecf274eb2397ca
Author: Michael Drake <[email protected]>
Commit: Michael Drake <[email protected]>

    ci: actions: Add cross compilation jobs

diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml
index 8ed8f4d..effb52b 100644
--- a/.github/workflows/build.yaml
+++ b/.github/workflows/build.yaml
@@ -1,10 +1,11 @@
-name: "Linux Build"
+name: "Build"
 
 on: [push]
 
 jobs:
+  # Native linux builds
   linux:
-    name: '${{ matrix.os }}: ${{ matrix.compiler.vendor }}'
+    name: 'Linux: ${{ matrix.os }}: ${{ matrix.compiler.vendor }}'
     runs-on: ${{ matrix.os }}
     strategy:
       fail-fast: false
@@ -74,3 +75,160 @@ jobs:
           export TARGET_WORKSPACE="$(pwd)/projects"
           source projects/env.sh
           make test
+
+  # Cross compile using toolchains built in the toolchains repo.
+  cross:
+    name: 'Cross: ${{ matrix.toolchain }}' # ATM toolchain unique across builds
+    runs-on: ubuntu-24.04 # Matches toolchains workflow
+    strategy:
+      fail-fast: false
+      matrix:
+        toolchain:
+          - arm-riscos-gnueabi
+          - arm-unknown-riscos
+          - i686-w64-mingw32
+          - m5475-atari-mint
+          - m68k-atari-mint
+          - m68k-unknown-amigaos
+          - ppc-amigaos
+          - x86_64-w64-mingw32
+
+    steps:
+    - name: Checkout repository
+      uses: actions/checkout@v6
+      with:
+        fetch-depth: 1
+
+    - name: apt-get install packages
+      run: sudo apt-get update -qq &&
+           sudo apt-get install --no-install-recommends -y
+               bison
+               build-essential
+               ccache
+               check
+               clang
+               flex
+               git
+               gperf
+               jlha-utils
+               libcurl4-openssl-dev
+               libhtml-parser-perl
+               libjpeg-dev
+               libpng-dev
+               librsvg2-dev
+               llvm
+               nsis
+               pkg-config
+
+    - name: Get env.sh
+      run: |
+           mkdir projects
+           wget -O projects/env.sh 
https://raw.githubusercontent.com/netsurf-browser/netsurf/refs/heads/master/docs/env.sh
+
+
+    - name: ccache
+      uses: hendrikmuhs/[email protected]
+      with:
+        key: ${{ github.job }}-${{ matrix.toolchain }}
+        max-size: 128M
+
+    # look for toolchain for this branch name first, then default to master
+    - name: Download toolchain
+      run: |
+        set -e
+        
+        TOOLCHAIN_NAME="${{ matrix.toolchain }}"
+        BRANCH_NAME="${{ github.ref_name }}"
+        
+        # Function to try downloading toolchain from a specific tag
+        download_toolchain() {
+          local ref="$1"
+          local 
download_url="https://github.com/netsurf-browser/toolchains/releases/download/${ref}/${TOOLCHAIN_NAME}.tar.gz";
+          
+          echo "Trying to download toolchain from ref: $ref"
+          echo "URL: $download_url"
+          
+          if curl -f -L -o "${TOOLCHAIN_NAME}.tar.gz" "$download_url"; then
+            echo "Got toolchain with ref: $ref"
+            return 0
+          else
+            echo "Failed to download toolchain with ref: $ref"
+            return 1
+          fi
+        }
+        
+        # Try branch-specific toolchain first
+        safe_branch=$(echo "$BRANCH_NAME" | sed 's/[^a-zA-Z0-9._-]/-/g')
+        branch_tag="gh-${safe_branch}-unstable"
+        
+        if download_toolchain "$branch_tag"; then
+          echo "Downloaded branch-specific toolchain"
+        elif download_toolchain "gh-master-unstable"; then
+          echo "Downloaded fallback master toolchain"
+        else
+          echo "Failed to download any toolchain variant"
+          exit 1
+        fi
+
+    - name: Install toolchain
+      run: |
+        echo "Installing toolchain: ${{ matrix.toolchain }}"
+        sudo tar -xzf "${{ matrix.toolchain }}.tar.gz" -C /
+        rm "${{ matrix.toolchain }}.tar.gz"
+        echo "Toolchain testament:"
+        cat /opt/netsurf/${{ matrix.toolchain }}/BUILD_INFO.txt
+
+    - name: Build and install project libs
+      env:
+        HOST: "${{ matrix.toolchain }}"
+        TARGET_WORKSPACE: "${{ github.workspace }}/projects" # Same as 
"$(pwd)/projects"
+        TARGET: ${{ github.event.repository.name }}
+        Q:
+      run: |
+        echo "HOST=$HOST"
+        echo "TARGET_WORKSPACE=$TARGET_WORKSPACE"
+        
+        echo "Looking for cross-compiler tools..."
+        echo "Expected path: /opt/netsurf/${HOST}/cross/bin/"
+        if [ -f "/opt/netsurf/${HOST}/cross/bin/${HOST}-gcc" ]; then
+          echo "Found: /opt/netsurf/${HOST}/cross/bin/${HOST}-gcc"
+          echo "Testing if it's executable:"
+          /opt/netsurf/${HOST}/cross/bin/${HOST}-gcc --version || echo "Failed 
to execute gcc --version"
+          echo "Testing dumpmachine output:"
+          /opt/netsurf/${HOST}/cross/bin/${HOST}-gcc -dumpmachine || echo 
"Failed to execute gcc -dumpmachine"
+        else
+          echo "NOT FOUND: /opt/netsurf/${HOST}/cross/bin/${HOST}-gcc"
+        fi
+        
+        echo "Sourcing env.sh with error checking..."
+        set -e  # Exit on any error
+        if ! source projects/env.sh; then
+          echo "env.sh failed with exit code $?"
+          exit 1
+        fi
+        echo "env.sh sourced successfully"
+        echo "BUILD=$BUILD"
+        echo "HOST=$HOST"
+        echo "TARGET_WORKSPACE=$TARGET_WORKSPACE"
+        echo "USE_CPUS=$USE_CPUS"
+
+        echo "Cloning libs..."
+        ns-clone -d -s -b ${GITHUB_REF_NAME}
+        echo "Building and installing tools..."
+        ns-make-tools install
+        echo "Building and installing libs..."
+        ns-make-libs install
+
+    - name: Build Library
+      env:
+        HOST: "${{ matrix.toolchain }}"
+        TARGET_WORKSPACE: "${{ github.workspace }}/projects" # Same as 
"$(pwd)/projects"
+        Q:
+      run: |
+        echo "Sourcing env.sh with error checking..."
+        set -e  # Exit on any error
+        if ! source projects/env.sh; then
+          echo "env.sh failed with exit code $?"
+          exit 1
+        fi
+        make -j"$(nproc)"


commitdiff 
http://git.netsurf-browser.org/libparserutils.git/commit/?id=f3815edb70f70c1651d929684a2ba26e81ee8f76
commit f3815edb70f70c1651d929684a2ba26e81ee8f76
Author: Michael Drake <[email protected]>
Commit: Michael Drake <[email protected]>

    ci: actions: Use matching branch name for deps if available

diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml
index 5047e0f..8ed8f4d 100644
--- a/.github/workflows/build.yaml
+++ b/.github/workflows/build.yaml
@@ -52,7 +52,7 @@ jobs:
       run: |
           export TARGET_WORKSPACE="$(pwd)/projects"
           source projects/env.sh
-          ns-clone -d -s
+          ns-clone -d -s -b ${GITHUB_REF_NAME}
           ns-make-libs install
 
     - name: Build Library


commitdiff 
http://git.netsurf-browser.org/libparserutils.git/commit/?id=b4cd0d4a8e1c077a02c7785e6ab6aec55731e50f
commit b4cd0d4a8e1c077a02c7785e6ab6aec55731e50f
Author: Michael Drake <[email protected]>
Commit: Michael Drake <[email protected]>

    ci: actions: Update to checkout v6

diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml
index c3905f6..5047e0f 100644
--- a/.github/workflows/build.yaml
+++ b/.github/workflows/build.yaml
@@ -22,7 +22,7 @@ jobs:
 
     steps:
     - name: Checkout repository
-      uses: actions/checkout@v3
+      uses: actions/checkout@v6
       with:
         fetch-depth: 1
 


-----------------------------------------------------------------------

Summary of changes:
 .github/workflows/build.yaml | 166 +++++++++++++++++++++++++++++++++++++++++--
 1 file changed, 162 insertions(+), 4 deletions(-)

diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml
index c3905f6..effb52b 100644
--- a/.github/workflows/build.yaml
+++ b/.github/workflows/build.yaml
@@ -1,10 +1,11 @@
-name: "Linux Build"
+name: "Build"
 
 on: [push]
 
 jobs:
+  # Native linux builds
   linux:
-    name: '${{ matrix.os }}: ${{ matrix.compiler.vendor }}'
+    name: 'Linux: ${{ matrix.os }}: ${{ matrix.compiler.vendor }}'
     runs-on: ${{ matrix.os }}
     strategy:
       fail-fast: false
@@ -22,7 +23,7 @@ jobs:
 
     steps:
     - name: Checkout repository
-      uses: actions/checkout@v3
+      uses: actions/checkout@v6
       with:
         fetch-depth: 1
 
@@ -52,7 +53,7 @@ jobs:
       run: |
           export TARGET_WORKSPACE="$(pwd)/projects"
           source projects/env.sh
-          ns-clone -d -s
+          ns-clone -d -s -b ${GITHUB_REF_NAME}
           ns-make-libs install
 
     - name: Build Library
@@ -74,3 +75,160 @@ jobs:
           export TARGET_WORKSPACE="$(pwd)/projects"
           source projects/env.sh
           make test
+
+  # Cross compile using toolchains built in the toolchains repo.
+  cross:
+    name: 'Cross: ${{ matrix.toolchain }}' # ATM toolchain unique across builds
+    runs-on: ubuntu-24.04 # Matches toolchains workflow
+    strategy:
+      fail-fast: false
+      matrix:
+        toolchain:
+          - arm-riscos-gnueabi
+          - arm-unknown-riscos
+          - i686-w64-mingw32
+          - m5475-atari-mint
+          - m68k-atari-mint
+          - m68k-unknown-amigaos
+          - ppc-amigaos
+          - x86_64-w64-mingw32
+
+    steps:
+    - name: Checkout repository
+      uses: actions/checkout@v6
+      with:
+        fetch-depth: 1
+
+    - name: apt-get install packages
+      run: sudo apt-get update -qq &&
+           sudo apt-get install --no-install-recommends -y
+               bison
+               build-essential
+               ccache
+               check
+               clang
+               flex
+               git
+               gperf
+               jlha-utils
+               libcurl4-openssl-dev
+               libhtml-parser-perl
+               libjpeg-dev
+               libpng-dev
+               librsvg2-dev
+               llvm
+               nsis
+               pkg-config
+
+    - name: Get env.sh
+      run: |
+           mkdir projects
+           wget -O projects/env.sh 
https://raw.githubusercontent.com/netsurf-browser/netsurf/refs/heads/master/docs/env.sh
+
+
+    - name: ccache
+      uses: hendrikmuhs/[email protected]
+      with:
+        key: ${{ github.job }}-${{ matrix.toolchain }}
+        max-size: 128M
+
+    # look for toolchain for this branch name first, then default to master
+    - name: Download toolchain
+      run: |
+        set -e
+        
+        TOOLCHAIN_NAME="${{ matrix.toolchain }}"
+        BRANCH_NAME="${{ github.ref_name }}"
+        
+        # Function to try downloading toolchain from a specific tag
+        download_toolchain() {
+          local ref="$1"
+          local 
download_url="https://github.com/netsurf-browser/toolchains/releases/download/${ref}/${TOOLCHAIN_NAME}.tar.gz";
+          
+          echo "Trying to download toolchain from ref: $ref"
+          echo "URL: $download_url"
+          
+          if curl -f -L -o "${TOOLCHAIN_NAME}.tar.gz" "$download_url"; then
+            echo "Got toolchain with ref: $ref"
+            return 0
+          else
+            echo "Failed to download toolchain with ref: $ref"
+            return 1
+          fi
+        }
+        
+        # Try branch-specific toolchain first
+        safe_branch=$(echo "$BRANCH_NAME" | sed 's/[^a-zA-Z0-9._-]/-/g')
+        branch_tag="gh-${safe_branch}-unstable"
+        
+        if download_toolchain "$branch_tag"; then
+          echo "Downloaded branch-specific toolchain"
+        elif download_toolchain "gh-master-unstable"; then
+          echo "Downloaded fallback master toolchain"
+        else
+          echo "Failed to download any toolchain variant"
+          exit 1
+        fi
+
+    - name: Install toolchain
+      run: |
+        echo "Installing toolchain: ${{ matrix.toolchain }}"
+        sudo tar -xzf "${{ matrix.toolchain }}.tar.gz" -C /
+        rm "${{ matrix.toolchain }}.tar.gz"
+        echo "Toolchain testament:"
+        cat /opt/netsurf/${{ matrix.toolchain }}/BUILD_INFO.txt
+
+    - name: Build and install project libs
+      env:
+        HOST: "${{ matrix.toolchain }}"
+        TARGET_WORKSPACE: "${{ github.workspace }}/projects" # Same as 
"$(pwd)/projects"
+        TARGET: ${{ github.event.repository.name }}
+        Q:
+      run: |
+        echo "HOST=$HOST"
+        echo "TARGET_WORKSPACE=$TARGET_WORKSPACE"
+        
+        echo "Looking for cross-compiler tools..."
+        echo "Expected path: /opt/netsurf/${HOST}/cross/bin/"
+        if [ -f "/opt/netsurf/${HOST}/cross/bin/${HOST}-gcc" ]; then
+          echo "Found: /opt/netsurf/${HOST}/cross/bin/${HOST}-gcc"
+          echo "Testing if it's executable:"
+          /opt/netsurf/${HOST}/cross/bin/${HOST}-gcc --version || echo "Failed 
to execute gcc --version"
+          echo "Testing dumpmachine output:"
+          /opt/netsurf/${HOST}/cross/bin/${HOST}-gcc -dumpmachine || echo 
"Failed to execute gcc -dumpmachine"
+        else
+          echo "NOT FOUND: /opt/netsurf/${HOST}/cross/bin/${HOST}-gcc"
+        fi
+        
+        echo "Sourcing env.sh with error checking..."
+        set -e  # Exit on any error
+        if ! source projects/env.sh; then
+          echo "env.sh failed with exit code $?"
+          exit 1
+        fi
+        echo "env.sh sourced successfully"
+        echo "BUILD=$BUILD"
+        echo "HOST=$HOST"
+        echo "TARGET_WORKSPACE=$TARGET_WORKSPACE"
+        echo "USE_CPUS=$USE_CPUS"
+
+        echo "Cloning libs..."
+        ns-clone -d -s -b ${GITHUB_REF_NAME}
+        echo "Building and installing tools..."
+        ns-make-tools install
+        echo "Building and installing libs..."
+        ns-make-libs install
+
+    - name: Build Library
+      env:
+        HOST: "${{ matrix.toolchain }}"
+        TARGET_WORKSPACE: "${{ github.workspace }}/projects" # Same as 
"$(pwd)/projects"
+        Q:
+      run: |
+        echo "Sourcing env.sh with error checking..."
+        set -e  # Exit on any error
+        if ! source projects/env.sh; then
+          echo "env.sh failed with exit code $?"
+          exit 1
+        fi
+        make -j"$(nproc)"


-- 
Lexer/parser utility functions

Reply via email to