Преглед на файлове

feat: integrate NoMount VFS hooks (redo of #270)

* feat: integrate NoMount VFS hooks and add corresponding build workflow support

* ci: switch NoMount integration to upstream dev setup.sh method

Replace the master-branch copy+patch flow with the upstream dev
integration script (curl | bash -s dev): symlink fs/nomount to
kernel/src with its own Kconfig/Makefile, no in-tree VFS patches.
Keep CONFIG_NOMOUNT=y via set-kernel-config.

---------

Co-authored-by: soranerai <aire1@protonmail.com>
James McConnell преди 3 седмици
родител
ревизия
53de8deced
променени са 3 файла, в които са добавени 47 реда и са изтрити 0 реда
  1. 39 0
      .github/actions/nomount/action.yml
  2. 6 0
      .github/workflows/build.yml
  3. 2 0
      .github/workflows/main.yml

+ 39 - 0
.github/actions/nomount/action.yml

@@ -0,0 +1,39 @@
+name: 'Setup NoMount'
+description: 'Integrate NoMount VFS hooks and enable CONFIG_NOMOUNT'
+
+inputs:
+  kernel_version:
+    description: 'Kernel major/minor version (for example, 5.10 or 6.6)'
+    required: true
+
+runs:
+  using: composite
+  steps:
+    - name: Fetch and integrate NoMount (dev method)
+      shell: bash
+      env:
+        KERNEL_VERSION: ${{ inputs.kernel_version }}
+      run: |
+        set -euo pipefail
+
+        KERNEL_DIR="${{ github.workspace }}/kernel/common"
+        test -d "$KERNEL_DIR/fs" || {
+          echo "Kernel source directory does not exist: $KERNEL_DIR" >&2
+          exit 1
+        }
+
+        cd "$KERNEL_DIR"
+        curl -fsSL https://raw.githubusercontent.com/maxsteeel/nomount/refs/heads/dev/kernel/setup.sh | bash -s dev
+
+        test -L "fs/nomount" || {
+          echo "NoMount integration failed: fs/nomount symlink missing" >&2
+          exit 1
+        }
+
+        echo "NoMount integrated (dev method, kernel $KERNEL_VERSION)"
+
+    - name: Enable NoMount in kernel defconfig
+      uses: ./.github/actions/set-kernel-config
+      with:
+        config_list: |
+          CONFIG_NOMOUNT=y

+ 6 - 0
.github/workflows/build.yml

@@ -158,6 +158,12 @@ jobs:
         os_patch_level: ${{ inputs.os_patch_level }}
         sublevel: ${{ steps.extract.outputs.sublevel }}
 
+    - name: Setup NoMount
+      if: contains(inputs.feature_set, 'NOMOUNT') || inputs.feature_set == 'FULL'
+      uses: ./.github/actions/nomount
+      with:
+        kernel_version: ${{ inputs.kernel_version }}
+
     - name: Baseband Guard
       if: (contains(inputs.feature_set, 'BBG') || inputs.feature_set == 'FULL')
       uses: ./.github/actions/bbg

+ 2 - 0
.github/workflows/main.yml

@@ -32,6 +32,7 @@ on:
         description: "Feature Set"
         type: choice
         options:
+          - KSUN+SUSFS+NOMOUNT
           - KSUN+SUSFS+BBG+NET+DS
           - KSUN+SUSFS+BBG
           - KSUN+SUSFS+NET
@@ -41,6 +42,7 @@ on:
           - KSUN+NET
           - KSUN+DS
           - KSUN
+          - NOMOUNT
           - NONE
           - FULL
         default: FULL