aboutsummaryrefslogtreecommitdiffstats
path: root/packaging/rpm
diff options
context:
space:
mode:
authorChristophe Besson <cbesson@gmail.com>2026-10-01 16:58:47 +0200
committerChristophe Besson <cbesson@gmail.com>2026-10-01 16:58:47 +0200
commit03f560bb4aaeda0e06c95684c187a394593c88e3 (patch)
tree0d4732c101d1bdbe942a82171aaf3ba786457847 /packaging/rpm
parentd0feb2619bf95ba729cf44513ab7370add10f5f8 (diff)
downloadmeshbay-03f560bb4aaeda0e06c95684c187a394593c88e3.tar.gz
fix(packaging): meshbay-common clears its compiled bytecode before an upgrade
The postinst compiles __pycache__ directories the package does not own; on the next upgrade they kept dpkg from removing directories the new version no longer ships, and it warned. preinst/prerm (deb) and %pre/%preun (rpm) remove them first. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Diffstat (limited to 'packaging/rpm')
-rw-r--r--packaging/rpm/meshbay-common.spec14
1 files changed, 14 insertions, 0 deletions
diff --git a/packaging/rpm/meshbay-common.spec b/packaging/rpm/meshbay-common.spec
index 948de9a..147dc17 100644
--- a/packaging/rpm/meshbay-common.spec
+++ b/packaging/rpm/meshbay-common.spec
@@ -17,6 +17,20 @@ Installs to /opt/meshbay-common/venv/.
%install
cp -a %{_staging_root}/* %{buildroot}/
+# Bytecode written at run time into __pycache__ is not the package's, and would
+# keep rpm from removing a directory the new version no longer ships.
+%pre
+if [ "$1" -ge 2 ]; then
+ find /opt/meshbay-common/venv -depth -type d -name __pycache__ \
+ -exec rm -rf {} + 2>/dev/null || true
+fi
+
+%preun
+if [ "$1" -eq 0 ]; then
+ find /opt/meshbay-common/venv -depth -type d -name __pycache__ \
+ -exec rm -rf {} + 2>/dev/null || true
+fi
+
%files
/opt/meshbay-common