diff --git a/.github/workflows/regenerate-manifest.yml b/.github/workflows/regenerate-manifest.yml index db04aea1..b94f864a 100644 --- a/.github/workflows/regenerate-manifest.yml +++ b/.github/workflows/regenerate-manifest.yml @@ -7,53 +7,79 @@ on: workflow_dispatch: jobs: - regenerate-manifests: + regenerate: runs-on: ubuntu-latest container: image: gentoo/stage3:latest + options: --privileged steps: - - name: Checkout repository - uses: actions/checkout@v4 + - name: Cache Gentoo packages + uses: actions/cache@v4 with: - fetch-depth: 0 - ref: ${{ github.event.pull_request.head.ref }} - repository: ${{ github.event.pull_request.head.repo.full_name }} + path: | + /var/db/repos/gentoo + /var/cache/binpkgs + key: gentoo-${{ runner.os }} + restore-keys: | + gentoo-${{ runner.os }} - name: Configure Gentoo environment run: | + # Disable sandbox features that don't work in Docker + cat >> /etc/portage/make.conf <> $GITHUB_OUTPUT - exit 0 - fi + - name: Configure Git + run: | + git config --global --add safe.directory "$GITHUB_WORKSPACE" + git config --global user.name "github-actions[bot]" + git config --global user.email "github-actions[bot]@users.noreply.github.com" + - name: Find modified files + uses: bjw-s-labs/action-changed-files@v0.4.1 + id: find-changed + with: + patterns: '**/*.ebuild' - echo "Modified ebuilds:" - echo "$MODIFIED_EBUILDS" - echo "has_changes=true" >> $GITHUB_OUTPUT - echo "ebuilds<> $GITHUB_OUTPUT - echo "$MODIFIED_EBUILDS" >> $GITHUB_OUTPUT - echo "EOF" >> $GITHUB_OUTPUT + - name: Fix distfiles permissions + run: | + mkdir -p /var/cache/distfiles + chown portage:portage /var/cache/distfiles + chmod 775 /var/cache/distfiles - name: Regenerate manifests - if: steps.find-ebuilds.outputs.has_changes == 'true' + if: steps.find-changed.outputs.changed_files run: | - # Set the repository location export PORTDIR_OVERLAY="${GITHUB_WORKSPACE}" - echo "${{ steps.find-ebuilds.outputs.ebuilds }}" | while read -r EBUILD; do + # Process each modified ebuild + echo "${{ steps.find-changed.outputs.changed_files }}" | tr ' ' '\n' | while read -r EBUILD; do + EBUILD=$(echo "$EBUILD" | tr -d "[]'") if [ -z "$EBUILD" ]; then continue fi @@ -77,49 +103,18 @@ jobs: echo "✓ Manifest generated for $EBUILD" done - - name: Check for manifest changes - if: steps.find-ebuilds.outputs.has_changes == 'true' - id: check-changes - run: | - if git diff --quiet '**/Manifest'; then - echo "No manifest changes detected." - echo "manifests_changed=false" >> $GITHUB_OUTPUT - else - echo "Manifest changes detected:" - git diff --name-only '**/Manifest' - echo "manifests_changed=true" >> $GITHUB_OUTPUT - fi - - name: Commit and push manifest changes - if: steps.check-changes.outputs.manifests_changed == 'true' - run: | - git config user.name "github-actions[bot]" - git config user.email "github-actions[bot]@users.noreply.github.com" - - # Add all Manifest files - git add '**/Manifest' - - # Commit - git commit -m "chore: regenerate manifests - - 🤖 Generated with GitHub Actions" - - # Push to the PR branch - git push - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + if: steps.find-changed.outputs.changed_files + uses: EndBug/add-and-commit@v9.1.4 + with: + message: "Regenerate manifests for modified ebuilds" + add: '**/Manifest' + author_name: 'github-actions[bot]' + author_email: 'github-actions[bot]@users.noreply.github.com' + push: true - name: Summary - if: steps.find-ebuilds.outputs.has_changes == 'true' + if: steps.find-changed.outputs.changed_files run: | echo "## Manifest Regeneration Summary" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY - - if [ "${{ steps.check-changes.outputs.manifests_changed }}" == "true" ]; then - echo "✅ Manifests were regenerated and committed to the PR" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY - echo "### Modified Manifests:" >> $GITHUB_STEP_SUMMARY - git diff HEAD~1 --name-only '**/Manifest' | sed 's/^/- /' >> $GITHUB_STEP_SUMMARY - else - echo "â„šī¸ No manifest changes were needed" >> $GITHUB_STEP_SUMMARY - fi + echo "✅ Manifests regenerated for modified ebuilds" >> $GITHUB_STEP_SUMMARY diff --git a/AGENTS.md b/AGENTS.md new file mode 100644 index 00000000..385eb69d --- /dev/null +++ b/AGENTS.md @@ -0,0 +1,13 @@ +### Attribution Requirements + +AI agents must disclose what tool and model they are using in the "Assisted-by" commit footer: + +```text +Assisted-by: [Model Name] via [Tool Name] +``` + +Example: + +```text +Assisted-by: GLM 4.6 via Claude Code +``` \ No newline at end of file diff --git a/eclass/pikernel-build.eclass b/eclass/pikernel-build.eclass index 5e2eb8fd..3c8706c8 100644 --- a/eclass/pikernel-build.eclass +++ b/eclass/pikernel-build.eclass @@ -22,7 +22,11 @@ inherit kernel-build IUSE="+bcm2711 +bcm2712 -initramfs" -REQUIRED_USE="|| ( bcm2711 bcm2712)" +if [[ ${EAPI} == 8 ]]; then + REQUIRED_USE+=" || ( bcm2711 bcm2712 )" +else + REQUIRED_USE+=" bcm2711? ( bcm2711 ) bcm2712? ( bcm2712 )" +fi SLOT="0" diff --git a/generate-raspberrypi-kernel-ebuild.py b/generate-raspberrypi-kernel-ebuild.py new file mode 100755 index 00000000..7ef56a63 --- /dev/null +++ b/generate-raspberrypi-kernel-ebuild.py @@ -0,0 +1,381 @@ +#!/usr/bin/env python3 +# Script to automatically generate new raspberrypi-kernel ebuild files +# Fetches the latest versions automatically from upstream sources + +import os +import re +import sys +import datetime +from packaging.version import parse as parse_version + +try: + import requests +except ImportError: + print("Error: 'requests' library not found. Please install it with 'pip install requests'", file=sys.stderr) + sys.exit(1) + +# --- Configuration --- +HEADERS = {"Accept": "application/vnd.github.v3+json"} +EBUILD_DIR = "sys-kernel/raspberrypi-kernel" + +# --- Helper Functions --- + +def fetch_json(url): + """Fetches JSON from a URL and handles errors.""" + try: + response = requests.get(url, headers=HEADERS) + response.raise_for_status() + return response.json() + except requests.exceptions.RequestException as e: + print(f"Error fetching URL {url}: {e}", file=sys.stderr) + return None + +def check_url_exists(url): + """Checks if a URL exists by sending a HEAD request.""" + try: + response = requests.head(url, timeout=5) + return response.status_code == 200 + except requests.exceptions.RequestException: + return False + +def get_latest_rpi_kernel_tag(): + """Fetches the latest stable kernel tag from the Raspberry Pi linux repo.""" + print("Fetching latest Raspberry Pi kernel release...") + tags = fetch_json("https://api.github.com/repos/raspberrypi/linux/tags") + if not tags: + return None + for tag in tags: + if tag['name'].startswith('stable_'): + stable_date = tag['name'].replace('stable_', '') + print(f" Latest stable date: {stable_date}") + return stable_date + return None + +def get_kernel_version_from_makefile(stable_date): + """Extracts the kernel version from the Makefile of a given stable tag.""" + print("Fetching kernel version from tag...") + url = f"https://raw.githubusercontent.com/raspberrypi/linux/stable_{stable_date}/Makefile" + try: + response = requests.get(url) + response.raise_for_status() + makefile_content = response.text + version = re.search(r"^VERSION\s*=\s*(\d+)", makefile_content, re.M) + patchlevel = re.search(r"^PATCHLEVEL\s*=\s*(\d+)", makefile_content, re.M) + sublevel = re.search(r"^SUBLEVEL\s*=\s*(\d+)", makefile_content, re.M) + if version and patchlevel and sublevel: + kernel_version = f"{version.group(1)}.{patchlevel.group(1)}.{sublevel.group(1)}" + print(f" Kernel version: {kernel_version}") + return kernel_version + except requests.exceptions.RequestException as e: + print(f"Error fetching Makefile: {e}", file=sys.stderr) + return None + +def get_genpatches_version(kernel_version): + """Finds the appropriate genpatches version by checking for existing files.""" + major_minor = ".".join(kernel_version.split('.')[:2]) + print(f"Checking for genpatches for kernel {major_minor}...") + for i in range(50, 0, -1): + version_to_check = f"{major_minor}-{i}" + url = f"https://dev.gentoo.org/~alicef/dist/genpatches/genpatches-{version_to_check}.base.tar.xz" + if check_url_exists(url): + print(f" Genpatches version: {version_to_check}") + return version_to_check + + print("Warning: Could not find genpatches, using previous version pattern") + major, minor = major_minor.split('.') + prev_minor = int(minor) - 1 + fallback_version = f"{major}.{prev_minor}-38" + print(f" Genpatches version: {fallback_version}") + return fallback_version + +def get_gentoo_config_version(): + """Fetches the latest gentoo-kernel-config tag.""" + print("Fetching latest gentoo-kernel-config version...") + tags = fetch_json("https://api.github.com/repos/projg2/gentoo-kernel-config/tags") + if tags: + for tag in tags: + if tag['name'].startswith('g'): + version = tag['name'] + print(f" Gentoo config version: {version}") + return version + print(" Warning: Could not fetch, using fallback: g17") + return "g17" # A known good fallback + +def get_fedora_config_version(kernel_version): + """Finds the best matching fedora-kernel-config version.""" + print("Fetching all fedora-kernel-config tags...") + all_tags = [] + page = 1 + per_page = 100 # Max allowed by GitHub API + + while True: + url = f"https://api.github.com/repos/projg2/fedora-kernel-config-for-gentoo/tags?page={page}&per_page={per_page}" + tags = fetch_json(url) + if not tags: + break + + all_tags.extend(tags) + print(f" Fetched page {page} with {len(tags)} tags (total: {len(all_tags)})") + + # Stop if we got less than the requested number (last page) + if len(tags) < per_page: + break + + page += 1 + + if not all_tags: + print(" Error: No tags found in repository", file=sys.stderr) + return None + + # Filter and sort tags + gentoo_tags = sorted( + [tag['name'] for tag in all_tags if tag['name'].endswith('-gentoo')], + key=lambda v: parse_version(v.replace('-gentoo', '')), + reverse=True # Sort in descending order + ) + + print(f" Found {len(gentoo_tags)} gentoo config tags") + print(f" Latest 5 tags: {gentoo_tags[:5]}") + + target_version = parse_version(kernel_version) + major_minor = f"{target_version.major}.{target_version.minor}" + + # First try exact match + exact_match = f"{kernel_version}-gentoo" + if exact_match in gentoo_tags: + print(f" Found exact config version: {exact_match}") + return exact_match + + # Then try minor version matches (6.12.x) + minor_matches = [tag for tag in gentoo_tags + if tag.startswith(f"{major_minor}.") or tag == f"{major_minor}-gentoo"] + + if minor_matches: + # Get the highest patch version available + best_minor_match = sorted( + minor_matches, + key=lambda v: parse_version(v.replace('-gentoo', '')) + )[-1] + print(f" Found minor version match: {best_minor_match}") + + # Verify the config exists + config_url = f"https://raw.githubusercontent.com/projg2/fedora-kernel-config-for-gentoo/{best_minor_match}/kernel-x86_64-fedora.config" + if check_url_exists(config_url): + return best_minor_match + else: + print(f" Warning: Config URL doesn't exist for {best_minor_match}", file=sys.stderr) + + # Then try previous minor version (6.11.x) + prev_minor = int(major_minor.split('.')[1]) - 1 + if prev_minor >= 0: # Make sure we don't go negative + prev_major_minor = f"{target_version.major}.{prev_minor}" + prev_minor_matches = [tag for tag in gentoo_tags + if tag.startswith(f"{prev_major_minor}.") or tag == f"{prev_major_minor}-gentoo"] + + if prev_minor_matches: + best_prev_minor_match = sorted( + prev_minor_matches, + key=lambda v: parse_version(v.replace('-gentoo', '')) + )[-1] + print(f" Found previous minor version match: {best_prev_minor_match}") + + # Verify the config exists + config_url = f"https://raw.githubusercontent.com/projg2/fedora-kernel-config-for-gentoo/{best_prev_minor_match}/kernel-x86_64-fedora.config" + if check_url_exists(config_url): + return best_prev_minor_match + else: + print(f" Warning: Config URL doesn't exist for {best_prev_minor_match}", file=sys.stderr) + + # If we get here, no suitable version was found + print(f" Error: Could not find a suitable fedora-kernel-config version for {kernel_version}", file=sys.stderr) + print(f" Available gentoo tags: {gentoo_tags}", file=sys.stderr) + return None + + + +def get_ebuild_revision(kernel_version): + """Determines the next revision number for the ebuild.""" + revision = 1 + while os.path.exists(os.path.join(EBUILD_DIR, f"raspberrypi-kernel-{kernel_version}-r{revision}.ebuild")): + revision += 1 + print(f" Using revision: r{revision}") + return revision + +def generate_ebuild_content(data): + """Generates the ebuild file content from a template.""" + return f"""# Copyright 2020-{data['current_year']} Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 +# Largely derived from gentoo-kernel-{data['kernel_version']}.ebuild + +EAPI=8 + +inherit pikernel-build + +MY_P=linux-stable_{data['stable_date']} +GENPATCHES_P=genpatches-{data['genpatches_version']} +# https://koji.fedoraproject.org/koji/packageinfo?packageID=8 +# forked to https://github.com/projg2/fedora-kernel-config-for-gentoo +CONFIG_VER={data['config_version']} +GENTOO_CONFIG_VER={data['gentoo_config_version']} + +DESCRIPTION="Raspberry Pi Foundation Linux kernel built with Gentoo patches" +HOMEPAGE=" + https://wiki.gentoo.org/wiki/Project:Distribution_Kernel + https://www.kernel.org/ + https://github.com/raspberrypi/linux +" +SRC_URI+=" + https://github.com/raspberrypi/linux/archive/refs/tags/stable_{data['stable_date']}.tar.gz -> rpi-kernel-$(MY_P).tar.gz + https://dev.gentoo.org/~alicef/dist/genpatches/${{GENPATCHES_P}}.base.tar.xz + https://dev.gentoo.org/~alicef/dist/genpatches/${{GENPATCHES_P}}.extras.tar.xz + https://github.com/projg2/gentoo-kernel-config/archive/${{GENTOO_CONFIG_VER}}.tar.gz + -> gentoo-kernel-config-${{GENTOO_CONFIG_VER}}.tar.gz + amd64? ( + https://raw.githubusercontent.com/projg2/fedora-kernel-config-for-gentoo/${{CONFIG_VER}}/kernel-x86_64-fedora.config + -> kernel-x86_64-fedora.config.${{CONFIG_VER}} + ) + arm64? ( + https://raw.githubusercontent.com/projg2/fedora-kernel-config-for-gentoo/${{CONFIG_VER}}/kernel-aarch64-fedora.config + -> kernel-aarch64-fedora.config.${{CONFIG_VER}} + ) + ppc64? ( + https://raw.githubusercontent.com/projg2/fedora-kernel-config-for-gentoo/${{CONFIG_VER}}/kernel-ppc64le-fedora.config + -> kernel-ppc64le-fedora.config.${{CONFIG_VER}} + ) + x86? ( + https://raw.githubusercontent.com/projg2/fedora-kernel-config-for-gentoo/${{CONFIG_VER}}/kernel-i686-fedora.config + -> kernel-i686-fedora.config.${{CONFIG_VER}} + ) +" +S=${{WORKDIR}}/${{MY_P}} + +LICENSE="GPL-2" +KEYWORDS="~arm ~arm64" +IUSE="debug hardened bcm2711 bcm2712" +REQUIRED_USE=" + arm? ( savedconfig ) + hppa? ( savedconfig ) + riscv? ( savedconfig ) + sparc? ( savedconfig ) +" + +RDEPEND=" + !sys-kernel/gentoo-kernel-bin:${{SLOT}} +" +BDEPEND=" + debug? ( dev-util/pahole ) +" +PDEPEND=" + >=virtual/dist-kernel-${{PV}} +" + +QA_FLAGS_IGNORED=" + usr/src/linux-.*/scripts/gcc-plugins/.*.so + usr/src/linux-.*/vmlinux + usr/src/linux-.*/arch/powerpc/kernel/vdso.*/vdso.*.so.dbg +" + +src_prepare() {{ + # Copied from raspberrypi-sources-6.1.21_p20230405.ebuild + UNIPATCH_EXCLUDE=" + 10* + 15* + 1700 + 2000 + 29* + 3000 + 4567" + + # Copied from kernel-2.eclass + + # So now lets get rid of the patch numbers we want to exclude + for i in ${{UNIPATCH_EXCLUDE}}; do + ebegin "Excluding Patch #${{i}}" + rm -f ${{WORKDIR}}/${{i}}* 2>/dev/null; + eend $? + done + + # Only set PATCHES if there are patches remaining... + if compgen -G "${{WORKDIR}}/*.patch" > /dev/null; then + local PATCHES=( + # meh, genpatches have no directory + "${{WORKDIR}}"/*.patch + ) + else + echo "No patches selected" + fi + + default +}} + +# Override function from kernel-install eclass to skip checking of kernel.release file(s). +pkg_preinst() {{ + debug-print-function ${{FUNCNAME}} "${{@}}" +}} +""" + +def main(): + """Main script execution.""" + stable_date = get_latest_rpi_kernel_tag() + if not stable_date: + sys.exit(1) + + kernel_version = get_kernel_version_from_makefile(stable_date) + if not kernel_version: + sys.exit(1) + + genpatches_version = get_genpatches_version(kernel_version) + if not genpatches_version: + sys.exit(1) + + gentoo_config_version = get_gentoo_config_version() + if not gentoo_config_version: + sys.exit(1) + + config_version = get_fedora_config_version(kernel_version) + if not config_version: + sys.exit(1) + + revision = get_ebuild_revision(kernel_version) + + ebuild_name = f"raspberrypi-kernel-{kernel_version}-r{revision}.ebuild" + ebuild_path = os.path.join(EBUILD_DIR, ebuild_name) + + ebuild_data = { + 'current_year': datetime.date.today().year, + 'kernel_version': kernel_version, + 'stable_date': stable_date, + 'genpatches_version': genpatches_version, + 'config_version': config_version, + 'gentoo_config_version': gentoo_config_version, + } + + content = generate_ebuild_content(ebuild_data) + + print(f"\nGenerating ebuild: {ebuild_path}\n") + + try: + os.makedirs(EBUILD_DIR, exist_ok=True) + with open(ebuild_path, 'w') as f: + f.write(content) + except IOError as e: + print(f"Error writing ebuild file {ebuild_path}: {e}", file=sys.stderr) + sys.exit(1) + + print(f"✓ Successfully created: {ebuild_path}\n") + print("Summary:") + print(f" Kernel version: {kernel_version}") + print(f" Stable date: {stable_date}") + print(f" Genpatches version: {genpatches_version}") + print(f" Config version: {config_version}") + print(f" Gentoo config version: {gentoo_config_version}") + print(f" Revision: r{revision}\n") + print("Next steps:") + print(f" 1. Verify the ebuild is correct: cat {ebuild_path}") + print(f" 2. Generate the manifest: ebuild {ebuild_path} manifest") + print(f" 3. Test the ebuild: emerge -av ={ebuild_name.replace('.ebuild', '')}") + + +if __name__ == "__main__": + main() + diff --git a/generate-raspberrypi-kernel-ebuild.sh b/generate-raspberrypi-kernel-ebuild.sh index 87afda2b..e5208a11 100755 --- a/generate-raspberrypi-kernel-ebuild.sh +++ b/generate-raspberrypi-kernel-ebuild.sh @@ -46,33 +46,43 @@ echo " Genpatches version: ${GENPATCHES_VERSION}" # Fetch latest gentoo-kernel-config version echo "Fetching latest gentoo-kernel-config version..." -GENTOO_CONFIG_VERSION=$(curl -s https://api.github.com/repos/projg2/gentoo-kernel-config/tags | grep -o '"name": "g[0-9]*"' | head -1 | grep -o 'g[0-9]*') +GENTOO_CONFIG_VERSION=$(curl -s https://api.github.com/repos/projg2/gentoo-kernel-config/tags | grep -o '"name": "g[0-9]*"' | head -1 | grep -o 'g[0-9]*' || echo "") if [ -z "$GENTOO_CONFIG_VERSION" ]; then - GENTOO_CONFIG_VERSION="g13" - echo " Warning: Could not fetch, using default: ${GENTOO_CONFIG_VERSION}" + GENTOO_CONFIG_VERSION="g17" # A known good fallback + echo " Warning: Could not fetch, using fallback: ${GENTOO_CONFIG_VERSION}" else echo " Gentoo config version: ${GENTOO_CONFIG_VERSION}" fi # Fetch latest fedora-kernel-config version for the kernel series echo "Fetching latest fedora-kernel-config version..." -ALL_TAGS=$(curl -s https://api.github.com/repos/projg2/fedora-kernel-config-for-gentoo/tags | grep -o '"name": "[^"]*"' | cut -d'"' -f4) +ALL_TAGS=$(curl -s https://api.github.com/repos/projg2/fedora-kernel-config-for-gentoo/tags | grep -o '"name": "[^"]*"' | cut -d'"' -f4 | grep -- "-gentoo$" | sort -V) # Try exact kernel series match (e.g., 6.6.x-gentoo) -CONFIG_VERSION=$(echo "$ALL_TAGS" | grep "^${KERNEL_MAJOR_MINOR}\." | grep -- "-gentoo$" | sort -V | tail -1) +CONFIG_VERSION=$(echo "$ALL_TAGS" | grep "^${KERNEL_MAJOR_MINOR}\." | tail -1) +# If no exact match, find the latest version that is not newer than the current kernel if [ -z "$CONFIG_VERSION" ]; then - echo " No exact match for ${KERNEL_MAJOR_MINOR}, trying closest version..." - # Find any version from the same major series - CONFIG_VERSION=$(echo "$ALL_TAGS" | grep "^${KERNEL_MAJOR}\." | grep -- "-gentoo$" | sort -V | tail -1) + echo " No exact match for ${KERNEL_MAJOR_MINOR}, finding latest version older than ${KERNEL_VERSION}..." + # Filter tags that are less than or equal to the current kernel version and take the latest one + CONFIG_VERSION=$(echo "$ALL_TAGS" | awk -v ver="${KERNEL_VERSION}" '{ if ($1 <= ver) print $1 }' | tail -1) fi if [ -z "$CONFIG_VERSION" ]; then - CONFIG_VERSION="${KERNEL_MAJOR_MINOR}.12-gentoo" - echo " Warning: Could not fetch, using estimated: ${CONFIG_VERSION}" + echo "Error: Could not determine a valid fedora-kernel-config version." + exit 1 else - echo " Config version: ${CONFIG_VERSION}" + echo " Found potential config version: ${CONFIG_VERSION}" +fi + +# Verify the found config version actually exists +FEDORA_CONFIG_URL="https://raw.githubusercontent.com/projg2/fedora-kernel-config-for-gentoo/${CONFIG_VERSION}/kernel-x86_64-fedora.config" +echo " Verifying URL: ${FEDORA_CONFIG_URL}" +if ! curl -s --head --fail "${FEDORA_CONFIG_URL}" > /dev/null; then + echo "Error: Fedora config version ${CONFIG_VERSION} does not exist at expected URL." + exit 1 fi +echo " Config version is valid: ${CONFIG_VERSION}" # Determine revision number REVISION=1 @@ -116,7 +126,7 @@ HOMEPAGE=" https://github.com/raspberrypi/linux " SRC_URI+=" - https://github.com/raspberrypi/linux/archive/refs/tags/stable_${STABLE_DATE}.tar.gz + https://github.com/raspberrypi/linux/archive/refs/tags/stable_${STABLE_DATE}.tar.gz -> rpi-$(MY_P).tar.gz https://dev.gentoo.org/~alicef/dist/genpatches/\${GENPATCHES_P}.base.tar.xz https://dev.gentoo.org/~alicef/dist/genpatches/\${GENPATCHES_P}.extras.tar.xz https://github.com/projg2/gentoo-kernel-config/archive/\${GENTOO_CONFIG_VER}.tar.gz diff --git a/sys-kernel/raspberrypi-kernel/Manifest b/sys-kernel/raspberrypi-kernel/Manifest index a17a76af..2ac650fc 100644 --- a/sys-kernel/raspberrypi-kernel/Manifest +++ b/sys-kernel/raspberrypi-kernel/Manifest @@ -4,13 +4,21 @@ DIST genpatches-5.15-68.base.tar.xz 2897744 BLAKE2B e1aebd74737e787df999aabb0153 DIST genpatches-5.15-68.extras.tar.xz 3932 BLAKE2B 34fd77b8464322ad369de5b86dd8dc83ce7510bca139d4e6036b0b2ab34d1c80698b5f965e44a09dd25ee3b4d80abbccc5920e7984803be2451281c74ff735ea SHA512 970a1e5a03f786d05bb1ae9217a467442f16344fffcf2c77a2572c6db656b0fcd5b3329eae193999c47bbb45c8b02f0fd9010760ef74a6aacc474729f0ee9369 DIST genpatches-6.1-25.base.tar.xz 1200876 BLAKE2B 7050f6e95a28f5886cce9b53823f6219a22a5b23cad5471bfa9e83eca208b8369395075e9aabdbe4d33b53b8c01aff3d3d0886115850e327baf12a946b851e1d SHA512 ea30e0d44ab64a2aa36ad7a83cf2df7924ba5e699c92268bc5f3d54acadefc9c836a00e7e27cc02400a6751ffe1c3cd45e6b9891a3fc0aa8d23ad8e535f18e4c DIST genpatches-6.1-25.extras.tar.xz 3812 BLAKE2B f73698c57031c9d7f5edd9ba2b865e32064c38b528649a8144f856bacf35ae3570d1fc936ee25a88bd52fd0765fff05bec42686b8b3fc5566df187bd57d59be5 SHA512 ac2bdccbc6bd1de82cbdfe4edac978e068445b8e064bcc6a833b04f15b86592304c19651884dc0769719ade1b220c8c0f704beca240ce24ab370621ad6849aee +DIST genpatches-6.12-62.base.tar.xz 3466908 BLAKE2B 167186bbcfaf0dd03538a78cb57a4e176f1c3f58d836669665c61b9ead463fde1f3e24e658590671d27ba115c9532e72af22c3657300571d3614e99c9e6d209f SHA512 aa4a33f6bda897298541a4f97a865361e6c03704e98086a20fa0ca5b2b475f2e8073b0596f7621c8d4e53edb2a7a5af873e69b85e9d8f8542817e5c4809b8184 +DIST genpatches-6.12-62.extras.tar.xz 4060 BLAKE2B 82ed105cfb4535c6913c7b98ae3f440bbbf487b113fff6b53cd944aedfa3aeab2ab3110c0f52a56122db0c24b661b08e7f8c7d1554b6e13c300a9ff2e820ad7a SHA512 8178e8a645b6f0e8a116813faad07aaa6f6b3e4408554e5f069619c34d495335e7eec55cbd2398c35a48900d65d34499588f57baa0e9a34af927a051af991756 DIST gentoo-kernel-config-g1.tar.gz 4283 BLAKE2B 44dd51ec45ebc71bffcd6d85a2fefba053f7bce8035057f0bbe928e24816ad4ba03c9bf67dcfcd6d6d1833c0a2ea93e0fd486c2093664dc41ccce316e1e60588 SHA512 3a45f28df9d457df0fe0d185da8b10f4e35f49dad75075e041e8cf3cf6972fecc8145cd557b0bf3a8dea20ddffae0194f88e61c1e5098fa0a5ca301d40aeea2e +DIST gentoo-kernel-config-g17.tar.gz 6024 BLAKE2B 53ecea1c19cc83bc3f6e13ad3b2e813999a09e2b29526115480e8ea7b870da2f4728918713f8eb0b351730b2cdd9f75e7515dc99a9b34a4079f7d15a1cd78425 SHA512 a5a78da8027492a229f54bfbcddf4e8e14304280db01d856071a9eb1ed9cd86111254498c5546a9908d617a012c914e8ded0afad5bdf28e9f237e321b9ab0f63 DIST gentoo-kernel-config-g7.tar.gz 4625 BLAKE2B 72ba0d038ee34ca5eb26d43bd373735aef3a50d02b414993ea05485e49d83d46df98a6cb0f6f3170a8ec0c99b557432fd9a11cbb92ff7c2837625a7f4469831e SHA512 2d74a8ca9f5402b4290ed93cd3ddba04a7f2ff42c8d8d3f2cbbe22fc20daa0fca119368daa8af39b7a26b1b99e4e3187c3c5d95886a651675ad94ff98d686628 DIST kernel-aarch64-fedora.config.5.15.19 242615 BLAKE2B 94e59440681535e38137b71814e1ae53f57a347f62cf31e0c1c8571ae43d9ae9be9957743c8cbc9ec74850c964eaabefe6799a28bc311ea7b99ee31391b47fb1 SHA512 fb77d3b73a215f97d70cd6d8c96ed20e497786b99ed7d7a7f2ed60cc1251289c1a4c7e058c41b5efac62e4a9b4b3d917dbdb11585955bba2b6584981430f4ddb DIST kernel-aarch64-fedora.config.6.1.7-gentoo 252811 BLAKE2B f6bad0d23132bf0dfbaa25db928a95f39763b6500fd1df9b4aeca4351e3e75f185891c0df96b111ad840e4bac431d74a9b11e7344e766ab49715663c89e4dbfc SHA512 41ebf195d8b656801d49c6bb693ebe1404b6725d70d88d93a75bc4af230030d65ef0701ea931846b022a3c598dcca068fbc38ecf6d064262b3f5b88e57060437 +DIST kernel-aarch64-fedora.config.6.12.41-gentoo 288081 BLAKE2B 08273a34c387621d0ccffcc325a0a34b40e0a8fbe78f2429c8a9efc73aa05f8fb563ed53e5fadb25662089f23ebafb61b2d08f91ea00b073e67e702798255e9c SHA512 58ea4f247aa9af6f7535ab5fe44dae2fbf286c7fbceeda86df532125807bbd4c25a89ddeeff4284592efefbaaef5022626abad7f1d1d64976e3040dc6e89251a DIST kernel-i686-fedora.config.5.15.19 222233 BLAKE2B 9e0f4dd37058f59610e46a87d3165039e76299d3c186fbfc3312101bac1b8b198de404075f5bbc6f5e2ba04cfd45f9d02bdf94b01c3ed11b9275f37f11ee7617 SHA512 49ffc39de86763e707a5c0c07c1367d34e9249615f29fdf97904d7b61a375a86fc4ba37a2f02b5f61e4c76ad65d9ba12716d2523af6faa003f6336d7ae61a953 DIST kernel-i686-fedora.config.6.1.7-gentoo 228053 BLAKE2B 1b06ca68465d7833905b6236a6ccf9a594f44613cbd102990c1667c1ece53ad982fa3abbfe475333e3297331ce1cfadf27c00c3e7de6293e213278e8ca97cd3b SHA512 1ed70eb5254a04d99d28ad901d4556dfa7e8ec8b739a0a33040315718effe9348e75ca8ac19d3b33fa7b3dcad9b4bb0531075692087c0dbe57ec6a4d873a4b27 DIST kernel-ppc64le-fedora.config.5.15.19 213339 BLAKE2B db6bbc9f402b8b48a2441e39d1a78dc112656ae842bc5594065cfd2ec3f6d462e4bde200e8736a70192af35fb3a5d1fc42683783a5b7620881f3a95bb0bc5f4d SHA512 b43439c24be8fa8bdd17d4c0beece799544ae45b2c289f0202fa5eb7a52dce0165a0cbc924b0decf877582af9688efd675cbfbd2313ff85fcc2c8563bba4b1ad DIST kernel-ppc64le-fedora.config.6.1.7-gentoo 218278 BLAKE2B f4dda4430e9801c4660be4bbf6e4b37052e720656e77c928adb7176ff3dba55feb2fe66dd564d41a181809488941cf392ec9c94d786e4a3d813fbe5d683d305f SHA512 a5e12ab1045fae61b494938047cf1c2a3c34693d3d242968e4ab564a012c70e6d232b9d5333347f5ba114a64bb59dd96919b38c5a1327fb8c5154ef40ad28d2c DIST kernel-x86_64-fedora.config.5.15.19 223286 BLAKE2B 239995703c01dcb6d179133dd115bc0a57872c07d7a08afaf4d92cf6d78f0c17b19487b5b399ac7fdde5d460fa7931628147817a569fef2c3a62951c96054bdf SHA512 9bee4aff7e5ef4ada57bee7496aaf47b8fdd5c936c4c9b580660d130db0678eaecdebdbcab0dfcaf5c17a71f6419069840db10f5886806b6fc810f8a3619554f DIST kernel-x86_64-fedora.config.6.1.7-gentoo 228685 BLAKE2B e68236ccc1d51b2aff850eda9f3197b7ea95b8a88716bc7b07dad30348a86fdbb99a948060300dddae73ca82267d851d357f1c9547a9dcefae1364deebdbd124 SHA512 42bec2ddb9cf7eb6e84bbdeb23eb98dc11c9cea41f6134b776010c6b36833b520a290f0ef0145379de15c7f7834398fa5e3aaabd7258d7d4e89567faa09eeb4c +DIST kernel-x86_64-fedora.config.6.12.41-gentoo 256210 BLAKE2B f14f7de8ae573561824df47cf94c3c0ce52a820456ebd0e618e4c1e7f5454b7d3f6f86c559a3cd98dd94c55aaeed397f3d0cee6b0e37cf6b47d3aedd920a9dea SHA512 ea87b4b45c78888e02d0288dd5844cf2d97a14e251b565c7d6451a0e62fbe0dbef38f46715467af2f869995d6bbc8be61d5b70476a86d607a5bfa27fbaf36e92 +DIST rpi-kernel-stable_20250916.tar.gz 246822724 BLAKE2B 65250b110ddc9b0510e2e64f1b15c43495a8e073dde40f43c6c0257ffe377067c4d6125aa3c5a2ae39af8586e3d98ac54efd73500774351b48ab57edf6441e42 SHA512 5818d7ac495dc31a27c9b967bf146d291ab6fd06b99e819d9c685d5413472593cd99a4d7ce10218c45d7fb631adceed8e20806b1f2f9909277ce0de7ad204565 +DIST stable_20231024.tar.gz 222264345 BLAKE2B e46d694e12b75190bc3de1932f017477fcd42f4c7f4b156438e3bd2ece43b9619cdd283e99944f3140829b065cb1e38cdd466aeb0453fdd810450a6f8d594b8e SHA512 0d7637e2de61c95f6a0af83bc3960f37cb233bd2d17517c19c45e34c4f858bbf1e71aed44fb292ee178416dffc80829e91f76aba3087ee5170e412ed698c728a +DIST stable_20231123.tar.gz 222298325 BLAKE2B cea675ff341f4a3e26f91461056175df1aff281cc86bbbda2dfd4a534911aaf19508efbccfd14f707a9051a2d974eba1252606c3ae0ff4c064f29608e8ee7ee9 SHA512 5ca2ed0fabc098687952230d7161ce51f078faf5de3fa55bbf2482054edb7ecd1fdcc247d82f9db14bb4e08030e679942d8ab845e171c08a7694ef6f58bc1f92 diff --git a/sys-kernel/raspberrypi-kernel/raspberrypi-kernel-6.6.31-r1.ebuild b/sys-kernel/raspberrypi-kernel/raspberrypi-kernel-6.12.47-r1.ebuild similarity index 81% rename from sys-kernel/raspberrypi-kernel/raspberrypi-kernel-6.6.31-r1.ebuild rename to sys-kernel/raspberrypi-kernel/raspberrypi-kernel-6.12.47-r1.ebuild index a199ea4b..4e15a539 100644 --- a/sys-kernel/raspberrypi-kernel/raspberrypi-kernel-6.6.31-r1.ebuild +++ b/sys-kernel/raspberrypi-kernel/raspberrypi-kernel-6.12.47-r1.ebuild @@ -1,17 +1,17 @@ -# Copyright 2020-2023 Gentoo Authors +# Copyright 2020-2025 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 -# Largely derived from gentoo-kernel-6.6.31.ebuild +# Largely derived from gentoo-kernel-6.12.47.ebuild EAPI=8 inherit pikernel-build -MY_P=linux-stable_20240529 -GENPATCHES_P=genpatches-6.5-38 +MY_P=linux-stable_20250916 +GENPATCHES_P=genpatches-6.12-62 # https://koji.fedoraproject.org/koji/packageinfo?packageID=8 # forked to https://github.com/projg2/fedora-kernel-config-for-gentoo -CONFIG_VER=6.6.12-gentoo -GENTOO_CONFIG_VER=g13 +CONFIG_VER=6.12.41-gentoo +GENTOO_CONFIG_VER=g17 DESCRIPTION="Raspberry Pi Foundation Linux kernel built with Gentoo patches" HOMEPAGE=" @@ -20,7 +20,7 @@ HOMEPAGE=" https://github.com/raspberrypi/linux " SRC_URI+=" - https://github.com/raspberrypi/linux/archive/refs/tags/stable_20240529.tar.gz + https://github.com/raspberrypi/linux/archive/refs/tags/stable_20250916.tar.gz -> rpi-kernel-stable_20250916.tar.gz https://dev.gentoo.org/~alicef/dist/genpatches/${GENPATCHES_P}.base.tar.xz https://dev.gentoo.org/~alicef/dist/genpatches/${GENPATCHES_P}.extras.tar.xz https://github.com/projg2/gentoo-kernel-config/archive/${GENTOO_CONFIG_VER}.tar.gz @@ -33,14 +33,6 @@ SRC_URI+=" https://raw.githubusercontent.com/projg2/fedora-kernel-config-for-gentoo/${CONFIG_VER}/kernel-aarch64-fedora.config -> kernel-aarch64-fedora.config.${CONFIG_VER} ) - ppc64? ( - https://raw.githubusercontent.com/projg2/fedora-kernel-config-for-gentoo/${CONFIG_VER}/kernel-ppc64le-fedora.config - -> kernel-ppc64le-fedora.config.${CONFIG_VER} - ) - x86? ( - https://raw.githubusercontent.com/projg2/fedora-kernel-config-for-gentoo/${CONFIG_VER}/kernel-i686-fedora.config - -> kernel-i686-fedora.config.${CONFIG_VER} - ) " S=${WORKDIR}/${MY_P} @@ -107,4 +99,3 @@ src_prepare() { pkg_preinst() { debug-print-function ${FUNCNAME} "${@}" } -