summaryrefslogtreecommitdiff
path: root/sys-apps/bleachbit
diff options
context:
space:
mode:
authorroot <root@alpha.trunkmasters.com>2026-06-12 19:09:37 -0500
committerroot <root@alpha.trunkmasters.com>2026-06-12 19:09:37 -0500
commitb590c8d7572b727d565cc0b8ff660d43569845de (patch)
tree06f7a4102ea4e845df8b66660f252920d52952f9 /sys-apps/bleachbit
parent24f9cbfc4c34fdb6a6e03311674414e881ceab47 (diff)
downloadbaldeagleos-repo-b590c8d7572b727d565cc0b8ff660d43569845de.tar.gz
baldeagleos-repo-b590c8d7572b727d565cc0b8ff660d43569845de.tar.xz
baldeagleos-repo-b590c8d7572b727d565cc0b8ff660d43569845de.zip
Adding metadata
Diffstat (limited to 'sys-apps/bleachbit')
-rw-r--r--sys-apps/bleachbit/Manifest4
-rw-r--r--sys-apps/bleachbit/bleachbit-4.6.0-r1.ebuild87
-rw-r--r--sys-apps/bleachbit/bleachbit-4.6.2.ebuild88
-rw-r--r--sys-apps/bleachbit/bleachbit-5.0.0.ebuild96
-rw-r--r--sys-apps/bleachbit/bleachbit-5.0.2.ebuild113
-rw-r--r--sys-apps/bleachbit/files/bleachbit-5.0.2-chardet-6.patch68
-rw-r--r--sys-apps/bleachbit/files/bleachbit-5.0.2-py3.14.patch81
-rw-r--r--sys-apps/bleachbit/files/bleachbit-5.0.2-pygobject-deprecation.patch21
-rw-r--r--sys-apps/bleachbit/metadata.xml8
9 files changed, 566 insertions, 0 deletions
diff --git a/sys-apps/bleachbit/Manifest b/sys-apps/bleachbit/Manifest
new file mode 100644
index 000000000000..fb2c1269f1f1
--- /dev/null
+++ b/sys-apps/bleachbit/Manifest
@@ -0,0 +1,4 @@
+DIST bleachbit-4.6.0.tar.bz2 667238 BLAKE2B c150ef9ff5c5f3d8241c5d8a8b8ad5b3f7a23aef24c21ef67a8680f56f3844893fd0e8513f47936ac3a667a15f0d6df2186658be282846309f3ad79f545a380d SHA512 fd0888195bc1fd6dfdc19ca4b35906554e0b6bf22c7f12db01ff8a5790a8a358aedd39f0c0906eb98e67ea5344c655e7f042516cc0c17b59637463d01927a33a
+DIST bleachbit-4.6.2.tar.bz2 672065 BLAKE2B abf475306f6e53610fd53a6b51dcba0d4a7e5d25090a2531bdae5171bedddaad07e348a41fb88242c5282b8ed5c245040ef1272e40b69fe8f67bf34ed970e7ff SHA512 0ef2ea4f02a1e3cfbd7a321c6c5ba36859e7fb9c77e6bb75798a82267481846454625d6807748247966ca345902dcf125efae87c6b55aec35819dfdf9eb4d700
+DIST bleachbit-5.0.0.tar.bz2 698441 BLAKE2B bd253f1e83cc535c5d1ab424b24326b6c5c2205dc6b62ea8ec44700502ff01cac880b6257a4eb7cad2765bf3a053e8987109646c2f872812e1ce383fe3437c6f SHA512 47b41904c18d2c701586cd42de4348289051d82edcd7b27bed082b66916f36fe0e1c0d9624264aec3c40a8eb981e5326ed0a1775c76e97299fd2d8dd0865c18d
+DIST bleachbit-5.0.2.tar.bz2 738219 BLAKE2B e798143f40dcbc81902244fab2c81ac7461e907daf867b959bcee1f29e74db143748abff3e6e3d61a8a543622e7f52d8f787f5ad5994ab625b326c7484383379 SHA512 d5fd637293a8e2742fa713355fe990ebe82703a9fd048b8ec7006d65d96a8f09632a45a7edc13c1f47945e33f1fe5d3c8bba100f74c1282777fbd70e8390c0d3
diff --git a/sys-apps/bleachbit/bleachbit-4.6.0-r1.ebuild b/sys-apps/bleachbit/bleachbit-4.6.0-r1.ebuild
new file mode 100644
index 000000000000..612d3cc71bdd
--- /dev/null
+++ b/sys-apps/bleachbit/bleachbit-4.6.0-r1.ebuild
@@ -0,0 +1,87 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{13..14} )
+PYTHON_REQ_USE="sqlite(+)"
+DISTUTILS_SINGLE_IMPL=1
+
+inherit desktop distutils-r1 virtualx
+
+DESCRIPTION="Clean junk to free disk space and to maintain privacy"
+HOMEPAGE="https://www.bleachbit.org"
+SRC_URI="https://download.bleachbit.org/${P}.tar.bz2"
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="amd64 ~arm ~arm64 x86"
+
+RDEPEND="
+ $(python_gen_cond_dep '
+ dev-python/chardet[${PYTHON_USEDEP}]
+ dev-python/pygobject:3[${PYTHON_USEDEP}]
+ ')
+ x11-libs/gtk+:3[introspection]
+"
+BDEPEND="
+ sys-devel/gettext
+ test? (
+ $(python_gen_cond_dep 'dev-python/mock[${PYTHON_USEDEP}]')
+ )
+"
+
+distutils_enable_tests unittest
+
+# tests fail under FEATURES=usersandbox
+RESTRICT="test"
+
+python_prepare_all() {
+ if use test; then
+ # avoid tests requiring internet access
+ rm tests/Test{Chaff,Update}.py || die
+
+ # fails due to non-existent $HOME/.profile
+ rm tests/TestInit.py || die
+
+ # only applicable to Windows installer
+ rm tests/TestNsisUtilities.py || die
+
+ # these fail on upstream Travis CI as well as on Gentoo
+ sed -e "s/test_notify(self)/_&/" \
+ -i tests/TestGUI.py || die
+
+ sed -e "s/test_get_proc_swaps(self)/_&/" \
+ -i tests/TestMemory.py || die
+ fi
+
+ distutils-r1_python_prepare_all
+}
+
+python_compile_all() {
+ emake -C po local
+}
+
+python_test() {
+ virtx emake tests
+}
+
+python_install() {
+ distutils-r1_python_install
+ python_newscript ${PN}.py ${PN}
+}
+
+python_install_all() {
+ distutils-r1_python_install_all
+ emake -C po DESTDIR="${D}" install
+
+ insinto /usr/share/bleachbit/cleaners
+ doins cleaners/*.xml
+
+ insinto /usr/share/bleachbit
+ doins data/app-menu.ui
+
+ doicon ${PN}.png
+ domenu org.${PN}.BleachBit.desktop
+}
diff --git a/sys-apps/bleachbit/bleachbit-4.6.2.ebuild b/sys-apps/bleachbit/bleachbit-4.6.2.ebuild
new file mode 100644
index 000000000000..14f1e8f2d215
--- /dev/null
+++ b/sys-apps/bleachbit/bleachbit-4.6.2.ebuild
@@ -0,0 +1,88 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{13..14} )
+PYTHON_REQ_USE="sqlite(+)"
+DISTUTILS_SINGLE_IMPL=1
+
+inherit desktop distutils-r1 virtualx
+
+DESCRIPTION="Clean junk to free disk space and to maintain privacy"
+HOMEPAGE="https://www.bleachbit.org"
+SRC_URI="https://download.bleachbit.org/${P}.tar.bz2"
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="amd64 ~arm ~arm64 x86"
+
+RDEPEND="
+ $(python_gen_cond_dep '
+ dev-python/chardet[${PYTHON_USEDEP}]
+ dev-python/pygobject:3[${PYTHON_USEDEP}]
+ ')
+ x11-libs/gtk+:3[introspection]
+"
+BDEPEND="
+ sys-devel/gettext
+ test? (
+ $(python_gen_cond_dep 'dev-python/mock[${PYTHON_USEDEP}]')
+ )
+"
+
+distutils_enable_tests unittest
+
+python_prepare_all() {
+ if use test; then
+ # avoid tests requiring internet access
+ rm tests/Test{Chaff,Update}.py || die
+
+ # fails due to non-existent $HOME/.profile
+ rm tests/TestInit.py || die
+
+ # fails due to permission error on /proc
+ sed -e "s/test_make_self_oom_target_linux(self)/_&/" \
+ -i tests/TestMemory.py || die
+
+ # only applicable to Windows installer
+ rm tests/TestNsisUtilities.py || die
+
+ # these fail on upstream Travis CI as well as on Gentoo
+ sed -e "s/test_notify(self)/_&/" \
+ -i tests/TestGUI.py || die
+
+ sed -e "s/test_get_proc_swaps(self)/_&/" \
+ -i tests/TestMemory.py || die
+ fi
+
+ distutils-r1_python_prepare_all
+}
+
+python_compile_all() {
+ emake -C po local
+}
+
+python_test() {
+ virtx emake tests
+}
+
+python_install() {
+ distutils-r1_python_install
+ python_newscript ${PN}.py ${PN}
+}
+
+python_install_all() {
+ distutils-r1_python_install_all
+ emake -C po DESTDIR="${D}" install
+
+ insinto /usr/share/bleachbit/cleaners
+ doins cleaners/*.xml
+
+ insinto /usr/share/bleachbit
+ doins data/app-menu.ui
+
+ doicon ${PN}.png
+ domenu org.${PN}.BleachBit.desktop
+}
diff --git a/sys-apps/bleachbit/bleachbit-5.0.0.ebuild b/sys-apps/bleachbit/bleachbit-5.0.0.ebuild
new file mode 100644
index 000000000000..eb38e1469fb2
--- /dev/null
+++ b/sys-apps/bleachbit/bleachbit-5.0.0.ebuild
@@ -0,0 +1,96 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{13..14} )
+PYTHON_REQ_USE="sqlite(+)"
+DISTUTILS_SINGLE_IMPL=1
+
+inherit desktop distutils-r1 virtualx
+
+DESCRIPTION="Clean junk to free disk space and to maintain privacy"
+HOMEPAGE="https://www.bleachbit.org"
+SRC_URI="https://download.bleachbit.org/${P}.tar.bz2"
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~riscv ~x86"
+
+RDEPEND="
+ $(python_gen_cond_dep '
+ dev-python/chardet[${PYTHON_USEDEP}]
+ dev-python/psutil[${PYTHON_USEDEP}]
+ dev-python/pygobject:3[${PYTHON_USEDEP}]
+ ')
+ x11-libs/gtk+:3[introspection]
+"
+BDEPEND="
+ sys-devel/gettext
+"
+
+distutils_enable_tests unittest
+
+python_prepare_all() {
+ if use test; then
+ # avoid tests requiring internet access
+ rm tests/Test{Chaff,GuiChaff,Network,Update}.py || die
+
+ sed -e "s/test_chaff(self)/_&/" \
+ -i tests/TestGUI.py || die
+
+ # fails due to invalid language code format pt_pt
+ sed -e "s/test_assertIsLanguageCode_live(self)/_&/" \
+ -i tests/TestCommon.py || die
+
+ # fails due to non-existent $HOME/.profile
+ rm tests/TestInit.py || die
+
+ # fails due to permission error on /proc
+ sed -e "s/test_make_self_oom_target_linux(self)/_&/" \
+ -i tests/TestMemory.py || die
+
+ # only applicable to Windows
+ rm tests/{TestNsisUtilities,TestWindows}.py || die
+
+ # random failures, some also on upstream CI
+ sed -e "s/test_notify(self)/_&/" \
+ -i tests/TestGUI.py || die
+
+ sed -e "s/test_get_proc_swaps(self)/_&/" \
+ -i tests/TestMemory.py || die
+
+ sed -e "s/test_is_process_running(self)/_&/" \
+ -i tests/TestUnix.py || die
+ fi
+
+ distutils-r1_python_prepare_all
+}
+
+python_compile_all() {
+ emake -C po local
+}
+
+python_test() {
+ virtx emake tests
+}
+
+python_install() {
+ distutils-r1_python_install
+ python_newscript ${PN}.py ${PN}
+}
+
+python_install_all() {
+ distutils-r1_python_install_all
+ emake -C po DESTDIR="${D}" install
+
+ insinto /usr/share/bleachbit/cleaners
+ doins cleaners/*.xml
+
+ insinto /usr/share/bleachbit
+ doins data/app-menu.ui
+
+ doicon ${PN}.png
+ domenu org.${PN}.BleachBit.desktop
+}
diff --git a/sys-apps/bleachbit/bleachbit-5.0.2.ebuild b/sys-apps/bleachbit/bleachbit-5.0.2.ebuild
new file mode 100644
index 000000000000..fd9305719d18
--- /dev/null
+++ b/sys-apps/bleachbit/bleachbit-5.0.2.ebuild
@@ -0,0 +1,113 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{13..14} )
+PYTHON_REQ_USE="sqlite(+)"
+DISTUTILS_SINGLE_IMPL=1
+
+inherit desktop distutils-r1 virtualx
+
+DESCRIPTION="Clean junk to free disk space and to maintain privacy"
+HOMEPAGE="https://www.bleachbit.org"
+SRC_URI="https://download.bleachbit.org/${P}.tar.bz2"
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~riscv ~x86"
+
+RDEPEND="
+ $(python_gen_cond_dep '
+ dev-python/chardet[${PYTHON_USEDEP}]
+ dev-python/psutil[${PYTHON_USEDEP}]
+ dev-python/pygobject:3[${PYTHON_USEDEP}]
+ ')
+ x11-libs/gtk+:3[introspection]
+"
+BDEPEND="
+ sys-devel/gettext
+"
+
+distutils_enable_tests unittest
+
+PATCHES=(
+ "${FILESDIR}"/bleachbit-5.0.2-chardet-6.patch
+ "${FILESDIR}"/bleachbit-5.0.2-py3.14.patch
+ "${FILESDIR}"/bleachbit-5.0.2-pygobject-deprecation.patch
+)
+
+python_prepare_all() {
+ distutils-r1_python_prepare_all
+
+ if use test; then
+ # avoid tests requiring internet access
+ rm tests/Test{Chaff,GuiChaff,Network,Update}.py || die
+
+ sed -e "s/test_chaff(self)/_&/" \
+ -i tests/TestGUI.py || die
+
+ # fails due to invalid language code format pt_pt
+ sed -e "s/test_assertIsLanguageCode_live(self)/_&/" \
+ -i tests/TestCommon.py || die
+
+ # fails due to non-existent $HOME/.profile
+ rm tests/TestInit.py || die
+
+ # fails due to permission error on /proc
+ sed -e "s/test_make_self_oom_target_linux(self)/_&/" \
+ -i tests/TestMemory.py || die
+
+ # only applicable to Windows
+ rm tests/{TestNsisUtilities,TestWindows}.py || die
+
+ # random failures, some also on upstream CI
+ sed -e "s/test_notify(self)/_&/" \
+ -i tests/TestGUI.py || die
+
+ sed -e "s/test_get_proc_swaps(self)/_&/" \
+ -i tests/TestMemory.py || die
+
+ sed -e "s/test_is_process_running(self)/_&/" \
+ -i tests/TestUnix.py || die
+
+ # Fails if user has filesystems outside of the accepted subset
+ # ['btrfs', 'ext4', 'ext3', 'squashfs', 'unknown']
+ # This is an issue for example if you use xfs.
+ # Instead of adding every possible filesystem lets just skip it.
+ sed -e "s/test_get_filesystem_type(self)/_&/" \
+ -i tests/TestFileUtilities.py || die
+
+ # Assumes loginshell is the uid.
+ sed -e "s/test_get_real_uid(self)/_&/" \
+ -i tests/TestGeneral.py || die
+ fi
+}
+
+python_compile_all() {
+ emake -C po local
+}
+
+python_test() {
+ virtx eunittest -p Test*.py
+}
+
+python_install() {
+ distutils-r1_python_install
+ python_newscript ${PN}.py ${PN}
+}
+
+python_install_all() {
+ distutils-r1_python_install_all
+ emake -C po DESTDIR="${D}" install
+
+ insinto /usr/share/bleachbit/cleaners
+ doins cleaners/*.xml
+
+ insinto /usr/share/bleachbit
+ doins data/app-menu.ui
+
+ doicon ${PN}.png
+ domenu org.${PN}.BleachBit.desktop
+}
diff --git a/sys-apps/bleachbit/files/bleachbit-5.0.2-chardet-6.patch b/sys-apps/bleachbit/files/bleachbit-5.0.2-chardet-6.patch
new file mode 100644
index 000000000000..85136069d0b8
--- /dev/null
+++ b/sys-apps/bleachbit/files/bleachbit-5.0.2-chardet-6.patch
@@ -0,0 +1,68 @@
+https://github.com/bleachbit/bleachbit/commit/73e6c69dce3893396026d55bf86b54e1c4f6fb26
+
+From 73e6c69dce3893396026d55bf86b54e1c4f6fb26 Mon Sep 17 00:00:00 2001
+From: Andrew Ziem <ahz001@gmail.com>
+Date: Sun, 15 Mar 2026 15:59:13 -0600
+Subject: [PATCH] Fix test_detect_encoding() with chardet 6.0.0
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+The old version was tested with chardet verisons including 5.2.0, which
+worked.
+
+The test failed on OpenSUSE Tumbleweed with python313-chardet-6.0.0-1.1
+
+[ 86s] FAIL: test_detect_encoding (tests.TestFileUtilities.FileUtilitiesTestCase.test_detect_encoding) (encoding='EUC-KR')
+[ 86s] Unit test for detect_encoding
+[ 86s] ----------------------------------------------------------------------
+[ 86s] Traceback (most recent call last):
+[ 86s] File "/srv/hal9000/rpmbuild/BUILD/bleachbit-5.1.1-build/bleachbit-5.1.1/tests/TestFileUtilities.py", line 1003, in test_detect_encoding
+[ 86s] self.assertEqual(
+[ 86s] ~~~~~~~~~~~~~~~~^
+[ 86s] det, expected_encoding,
+[ 86s] ^^^^^^^^^^^^^^^^^^^^^^^
+[ 86s] f"{file_contents} -> {det}, check that chardet is available")
+[ 86s] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+[ 86s] AssertionError: 'CP949' != 'EUC-KR'
+[ 86s] - CP949
+[ 86s] + EUC-KR
+[ 86s] : 나는 유리를 먹을 수 있어요. 그래도 아프지 않아요 -> CP949, check that chardet is available
+--- a/tests/TestFileUtilities.py
++++ b/tests/TestFileUtilities.py
+@@ -989,20 +989,25 @@ def test_detect_encoding(self):
+ """Unit test for detect_encoding"""
+ eat_glass = '나는 유리를 먹을 수 있어요. 그래도 아프지 않아요'
+ bom = '\ufeff' + eat_glass # Add BOM for utf-8-sig
+- tests = (('This is just an ASCII file', 'ascii'),
+- (eat_glass, 'utf-8'),
+- (eat_glass, 'EUC-KR'),
+- (bom, 'UTF-8-SIG'))
+- for file_contents, expected_encoding in tests:
+- with self.subTest(encoding=expected_encoding):
++ tests = (('This is just an ASCII file', ['ascii']),
++ (eat_glass, ['utf-8']),
++ # Accept both EUC-KR and CP949 for Korean
++ (eat_glass, ['EUC-KR', 'CP949']),
++ (bom, ['UTF-8-SIG']))
++ for file_contents, expected_encodings in tests:
++ with self.subTest(encoding=expected_encodings):
++ # Use first encoding for writing
++ write_encoding = expected_encodings[0]
++
+ with tempfile.NamedTemporaryFile(mode='w', delete=False,
+- encoding=expected_encoding) as temp:
++ encoding=write_encoding) as temp:
+ temp.write(file_contents)
+ temp.flush()
+ det = detect_encoding(temp.name)
+- self.assertEqual(
+- det, expected_encoding,
+- f"{file_contents} -> {det}, check that chardet is available")
++
++ self.assertIn(
++ det, expected_encodings,
++ f"{file_contents} -> {det}, expected one of {expected_encodings}")
+
+ @common.skipIfWindows
+ def test_ego_owner(self):
diff --git a/sys-apps/bleachbit/files/bleachbit-5.0.2-py3.14.patch b/sys-apps/bleachbit/files/bleachbit-5.0.2-py3.14.patch
new file mode 100644
index 000000000000..4ca814c7d789
--- /dev/null
+++ b/sys-apps/bleachbit/files/bleachbit-5.0.2-py3.14.patch
@@ -0,0 +1,81 @@
+https://github.com/bleachbit/bleachbit/commit/3d6099e59d9aef25d31e725de2c5e58f7beb9b4e
+
+Modified to apply as a backport
+
+From 3d6099e59d9aef25d31e725de2c5e58f7beb9b4e Mon Sep 17 00:00:00 2001
+From: Andrew Ziem <ahz001@gmail.com>
+Date: Thu, 5 Feb 2026 21:24:47 -0700
+Subject: [PATCH] Fix and test Python 3.14+pyttest
+
+--- a/tests/TestGUI.py
++++ b/tests/TestGUI.py
+@@ -24,8 +24,10 @@
+ """
+
+ import os
++import sys
+ import unittest
+ import time
+ import types
++import warnings
+ from unittest import mock
+
+@@ -86,7 +80,22 @@ def tearDownClass(cls):
+ @classmethod
+ def refresh_gui(cls, delay=0):
+ while Gtk.events_pending():
+- Gtk.main_iteration_do(blocking=False)
++ if sys.version_info >= (3, 14):
++ with warnings.catch_warnings():
++ warnings.simplefilter("error")
++ warnings.filterwarnings(
++ "ignore",
++ message=".*asyncio.AbstractEventLoopPolicy.*",
++ category=DeprecationWarning
++ )
++ warnings.filterwarnings(
++ "ignore",
++ message=".*asyncio.get_event_loop_policy.*",
++ category=DeprecationWarning
++ )
++ Gtk.main_iteration_do(blocking=False)
++ else:
++ Gtk.main_iteration_do(blocking=False)
+ time.sleep(delay)
+
+ @classmethod
+--- a/tests/TestGuiChaff.py
++++ b/tests/TestGuiChaff.py
+@@ -27,6 +27,8 @@
+ import tempfile
+ import time
+ import unittest
++import warnings
++import sys
+ from unittest.mock import patch, MagicMock
+
+ from tests import common
+@@ -64,7 +66,22 @@ def setUpClass(cls):
+ @classmethod
+ def refresh_gui(cls, delay=0):
+ while Gtk.events_pending():
+- Gtk.main_iteration_do(blocking=False)
++ if sys.version_info >= (3, 14):
++ with warnings.catch_warnings():
++ warnings.simplefilter("error")
++ warnings.filterwarnings(
++ "ignore",
++ message=".*asyncio.AbstractEventLoopPolicy.*",
++ category=DeprecationWarning
++ )
++ warnings.filterwarnings(
++ "ignore",
++ message=".*asyncio.get_event_loop_policy.*",
++ category=DeprecationWarning
++ )
++ Gtk.main_iteration_do(blocking=False)
++ else:
++ Gtk.main_iteration_do(blocking=False)
+ time.sleep(delay)
+
+ def setUp(self):
diff --git a/sys-apps/bleachbit/files/bleachbit-5.0.2-pygobject-deprecation.patch b/sys-apps/bleachbit/files/bleachbit-5.0.2-pygobject-deprecation.patch
new file mode 100644
index 000000000000..92dacbb02fcb
--- /dev/null
+++ b/sys-apps/bleachbit/files/bleachbit-5.0.2-pygobject-deprecation.patch
@@ -0,0 +1,21 @@
+https://github.com/bleachbit/bleachbit/commit/2614948630d286847ecc843e0622d017c26e2563
+Modified to apply as a backport
+
+From 2614948630d286847ecc843e0622d017c26e2563 Mon Sep 17 00:00:00 2001
+From: Andrew Ziem <ahz001@gmail.com>
+Date: Sun, 1 Feb 2026 15:33:26 -0700
+Subject: [PATCH] Fix two GTK deprecation warnings
+
+The zebra striping was not working anyway (tested on Linux and Windows)
+--- a/bleachbit/GUI.py
++++ b/bleachbit/GUI.py
+@@ -258,7 +258,7 @@ def quit(self, _action=None, _param=None, init_configuration=False):
+
+ def get_system_information_dialog(self):
+ """Show system information dialog"""
+- dialog = Gtk.Dialog(_("System information"), self._window)
++ dialog = Gtk.Dialog(title=_("System information"), transient_for=self._window)
+ dialog.set_default_size(600, 400)
+ txtbuffer = Gtk.TextBuffer()
+ from bleachbit import SystemInformation
+
diff --git a/sys-apps/bleachbit/metadata.xml b/sys-apps/bleachbit/metadata.xml
new file mode 100644
index 000000000000..55ab542c1c6d
--- /dev/null
+++ b/sys-apps/bleachbit/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <upstream>
+ <bugs-to>https://github.com/bleachbit/bleachbit/issues</bugs-to>
+ </upstream>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>