This project ships helper scripts under packaging/ to build:
- a Debian package (
.deb) for Ubuntu/Debian/Linux Mint - a portable source/runtime archive (
tar.gz)
- Debian/Ubuntu-like environment
gitdpkg-debtar
Optional (post-install hooks in .deb call these if available):
desktop-file-utils(update-desktop-database)gtk-update-icon-cache
From repository root:
chmod +x packaging/build_deb.sh packaging/build_tarball.sh packaging/netneighbor
./packaging/build_deb.sh
./packaging/build_tarball.shBoth scripts default to the repository root VERSION file (first non-empty line).
You can still override explicitly, e.g. ./packaging/build_deb.sh 0.7.0.
Use packaging/release.sh to run build + checks in one go:
./packaging/release.shWhat it does:
- Python syntax sanity checks (
app.py,ui/main_window.py,discovery/manager.py,utils/app_version.py) - Bash syntax checks for packaging scripts
- Build
.debandtar.gz - Verify
.debmetadata (Version,Installed-Size) - Verify embedded runtime
VERSIONand desktop entryVersion=... - Generate checksums file:
dist/SHA256SUMS-<version>.txt
Optional arguments:
./packaging/release.sh <version> [architecture]Outputs:
dist/netneighbor_<version>_<arch>.debdist/netneighbor-<version>.tar.gz
-
App files:
/usr/share/netneighbor/ -
Launcher:
/usr/bin/netneighbor -
Desktop entry:
/usr/share/applications/netneighbor.desktop -
Icons (SVG scalable):
/usr/share/icons/hicolor/scalable/apps/io.esp3d.netneighbor.svg— app/launcher icon (source:assets/svg/netneighbor_icon.svg)/usr/share/icons/hicolor/scalable/apps/io.esp3d.netneighbor-tray.svg— coloured tray icon for light GTK themes (source:assets/svg/netneighbor-tray.svg)/usr/share/icons/hicolor/scalable/status/io.esp3d.netneighbor-tray-symbolic.svg— white symbolic tray icon for dark GTK themes (source:assets/svg/netneighbor-tray-symbolic.svg)
The tray code (
ui/tray_indicator.py) selects the icon at startup based ongtk-theme-name: themes containing"dark"or withgtk-application-prefer-dark-theme=trueuse the symbolic (white) variant; others use the coloured variant.In dev mode (running from source) the same icons are resolved via
assets/icons/hicolor/symlinks registered withGtk.IconTheme.append_search_path().
The .deb embeds runtime-relevant tracked paths only (discovery/, ui/, utils/, model/, data/, config/, assets/, locale/, plus entrypoint/docs files listed in packaging/build_deb.sh).
Desktop category is network-oriented:
Categories=Network;Utility;GTK;Depends (hard):
python3,python3-gi,python3-gi-cairo,gir1.2-gtk-3.0,python3-zeroconf
Recommends (installed by default with apt install ./…deb unless --no-install-recommends):
samba-common-bin— providesnmblookupfor NetBIOS discovery (not the Samba server).gir1.2-ayatanaappindicator3-0.1|gir1.2-appindicator3-0.1— GObject bindings so the panel tray icon works on typical desktops.
sudo apt install ./dist/netneighbor_<version>_amd64.deb
netneighbor
sudo apt remove netneighborNotes:
apt remove/apt purgedo not delete per-user data under~/.config/netneighborand~/.cache/netneighbor.- For explicit user-data cleanup, run:
./packaging/cleanup-user-data.shtar -xzf dist/netneighbor-<version>.tar.gz
cd netneighbor-<version>
./run.shNotes:
tar.gzdoes not register desktop launchers/icons automatically.install-desktop.shincluded in the tarball installs launcher + icon under~/.local.- System GTK/PyGObject dependencies must already be present.