commit:     08c931129e5bb1c492c2cd0438db444d01d79995
Author:     Matt Jolly <kangie <AT> gentoo <DOT> org>
AuthorDate: Sat Feb 28 00:37:25 2026 +0000
Commit:     Matt Jolly <kangie <AT> gentoo <DOT> org>
CommitDate: Sat Feb 28 22:31:46 2026 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=08c93112

www-client/chromium: Prepare for slotting

Update the support files script to properly suffix the various channels,
the launcher scripts to accept the new names, and the ebuilds to install
the non-suffixed desktop entry. This will only impact new installs, no
need for a revbump and slotted chromium will replace these ebuilds
anyway.

Signed-off-by: Matt Jolly <kangie <AT> gentoo.org>

 www-client/chromium/chromium-138.0.7204.157.ebuild |  2 +-
 www-client/chromium/chromium-145.0.7632.109.ebuild |  2 +-
 www-client/chromium/chromium-145.0.7632.116.ebuild |  2 +-
 www-client/chromium/chromium-146.0.7680.31.ebuild  |  2 +-
 www-client/chromium/files/chromium-launcher-r7.sh  |  2 +-
 www-client/chromium/files/chromium-launcher-r8.sh  |  2 +-
 .../chromium/files/generate-support-files.py       | 39 +++++++++++++++++-----
 7 files changed, 36 insertions(+), 15 deletions(-)

diff --git a/www-client/chromium/chromium-138.0.7204.157.ebuild 
b/www-client/chromium/chromium-138.0.7204.157.ebuild
index 7eb54d6a9e5e..07da72932a78 100644
--- a/www-client/chromium/chromium-138.0.7204.157.ebuild
+++ b/www-client/chromium/chromium-138.0.7204.157.ebuild
@@ -1514,7 +1514,7 @@ src_install() {
        done
 
        # Install desktop entry
-       domenu out/Release/chromium-browser-chromium.desktop
+       domenu out/Release/chromium-browser.desktop
 
        # Install GNOME default application entry (bug #303100).
        insinto /usr/share/gnome-control-center/default-apps

diff --git a/www-client/chromium/chromium-145.0.7632.109.ebuild 
b/www-client/chromium/chromium-145.0.7632.109.ebuild
index 6a0de7542fc2..7d35738680d3 100644
--- a/www-client/chromium/chromium-145.0.7632.109.ebuild
+++ b/www-client/chromium/chromium-145.0.7632.109.ebuild
@@ -1634,7 +1634,7 @@ src_install() {
        done
 
        # Install desktop entry
-       domenu out/Release/chromium-browser-chromium.desktop
+       domenu out/Release/chromium-browser.desktop
 
        # Install GNOME default application entry (bug #303100).
        insinto /usr/share/gnome-control-center/default-apps

diff --git a/www-client/chromium/chromium-145.0.7632.116.ebuild 
b/www-client/chromium/chromium-145.0.7632.116.ebuild
index d64bf865b247..015207b21b0b 100644
--- a/www-client/chromium/chromium-145.0.7632.116.ebuild
+++ b/www-client/chromium/chromium-145.0.7632.116.ebuild
@@ -1602,7 +1602,7 @@ src_install() {
        done
 
        # Install desktop entry
-       domenu out/Release/chromium-browser-chromium.desktop
+       domenu out/Release/chromium-browser.desktop
 
        # Install GNOME default application entry (bug #303100).
        insinto /usr/share/gnome-control-center/default-apps

diff --git a/www-client/chromium/chromium-146.0.7680.31.ebuild 
b/www-client/chromium/chromium-146.0.7680.31.ebuild
index a7c2b9b839de..c07600924375 100644
--- a/www-client/chromium/chromium-146.0.7680.31.ebuild
+++ b/www-client/chromium/chromium-146.0.7680.31.ebuild
@@ -1595,7 +1595,7 @@ src_install() {
        done
 
        # Install desktop entry
-       domenu out/Release/chromium-browser-chromium.desktop
+       domenu out/Release/chromium-browser.desktop
 
        # Install GNOME default application entry (bug #303100).
        insinto /usr/share/gnome-control-center/default-apps

diff --git a/www-client/chromium/files/chromium-launcher-r7.sh 
b/www-client/chromium/files/chromium-launcher-r7.sh
index 1163ff3ddc09..a9ca5aee1a4f 100644
--- a/www-client/chromium/files/chromium-launcher-r7.sh
+++ b/www-client/chromium/files/chromium-launcher-r7.sh
@@ -54,6 +54,6 @@ if @@OZONE_AUTO_SESSION@@; then
 fi
 
 # Set the .desktop file name
-export CHROME_DESKTOP="chromium-browser-chromium.desktop"
+export CHROME_DESKTOP="chromium-browser.desktop"
 
 exec -a "chromium-browser" "$PROGDIR/chrome" 
--extra-plugin-dir=/usr/lib/nsbrowser/plugins ${CHROMIUM_FLAGS} "$@"

diff --git a/www-client/chromium/files/chromium-launcher-r8.sh 
b/www-client/chromium/files/chromium-launcher-r8.sh
index 482b047b58d1..45bc0d698b33 100644
--- a/www-client/chromium/files/chromium-launcher-r8.sh
+++ b/www-client/chromium/files/chromium-launcher-r8.sh
@@ -59,6 +59,6 @@ if @@OZONE_AUTO_SESSION@@; then
 fi
 
 # Set the .desktop file name
-export CHROME_DESKTOP="chromium-browser-chromium.desktop"
+export CHROME_DESKTOP="chromium-browser.desktop"
 
 exec -a "chromium-browser" "$PROGDIR/chrome" 
--extra-plugin-dir=/usr/lib/nsbrowser/plugins ${CHROMIUM_FLAGS} "$@"

diff --git a/www-client/chromium/files/generate-support-files.py 
b/www-client/chromium/files/generate-support-files.py
index 0533c68450ec..ac6e3fb9cf32 100644
--- a/www-client/chromium/files/generate-support-files.py
+++ b/www-client/chromium/files/generate-support-files.py
@@ -22,8 +22,28 @@ def main():
         required=True,
         help="Installation directory (e.g. /usr/lib/chromium-browser)",
     )
+    parser.add_argument(
+        "-c",
+        "--channel",
+        default="stable",
+        choices=["stable", "beta", "unstable", "dev", "canary"],
+        help="Channel to build for (default: stable)",
+    )
     args = parser.parse_args()
 
+    # Normalise channel name (upstream uses 'unstable' for dev)
+    channel = args.channel
+    if channel == "dev":
+        channel = "unstable"
+
+    # Define suffixes based on channel
+    channel_suffix = ""
+    menu_suffix = ""
+
+    if channel != "stable":
+        channel_suffix = f"-{channel}"
+        menu_suffix = f" ({channel})"
+
     # Configure contexts strictly for file generation
     # Common variables used across templates
     context = {
@@ -32,16 +52,17 @@ def main():
         "EXTRA_DESKTOP_ENTRIES": "",
         "FULLDESC": "An open-source browser project that aims to build a 
safer, faster, and more stable way to experience the web.",
         "HELPURL": "https://wiki.gentoo.org/wiki/Chromium";,
-        "INSTALLDIR": args.installdir,
+        "INSTALLDIR": args.installdir,  # Note: We've patched the installer 
scripts to automatically append the channel suffix, but we'll use the arg since 
we bypass all that.
         "MAINTMAIL": "Gentoo Chromium Project <[email protected]>",
-        "MENUNAME": "Chromium",
-        "PACKAGE": "chromium-browser",
+        "MENUNAME": f"Chromium{menu_suffix}",
+        "PACKAGE": f"chromium-browser{channel_suffix}",
         "PRODUCTURL": "https://www.chromium.org/";,
         "PROGNAME": "chrome",
         "PROJECT_LICENSE": "BSD, LGPL-2, LGPL-2.1, MPL-1.1, MPL-2.0, 
Apache-2.0, and others",
         "SHORTDESC": "Open-source foundation of many web browsers including 
Google Chrome",
-        "URI_SCHEME": "x-scheme-handler/chromium",
-        "USR_BIN_SYMLINK_NAME": "chromium-browser",
+        # Use a distinct scheme handler for slotted installs to avoid conflicts
+        "URI_SCHEME": f"x-scheme-handler/chromium{channel_suffix}",
+        "USR_BIN_SYMLINK_NAME": f"chromium-browser{channel_suffix}",
     }
 
     # upstream is currently (M145) converting from upper to lower case
@@ -52,28 +73,28 @@ def main():
     # Generate Desktop file
     installer.process_template(
         Path("chrome/installer/linux/common/desktop.template"),
-        Path("out/Release/chromium-browser-chromium.desktop"),
+        Path(f"out/Release/chromium-browser{channel_suffix}.desktop"),
         context,
     )
 
     # Generate Manpage
     installer.process_template(
         Path("chrome/app/resources/manpage.1.in"),
-        Path("out/Release/chromium-browser.1"),
+        Path(f"out/Release/chromium-browser{channel_suffix}.1"),
         context,
     )
 
     # Generate AppData (AppStream)
     installer.process_template(
         Path("chrome/installer/linux/common/appdata.xml.template"),
-        Path("out/Release/chromium-browser.appdata.xml"),
+        Path(f"out/Release/chromium-browser{channel_suffix}.appdata.xml"),
         context,
     )
 
     # Generate GNOME Default Apps entry
     installer.process_template(
         Path("chrome/installer/linux/common/default-app.template"),
-        Path("out/Release/chromium-browser.xml"),
+        Path(f"out/Release/chromium-browser{channel_suffix}.xml"),
         context,
     )
 

Reply via email to