Repository navigation
π§ debup v4.2.1 β Security Hardening & Reliability Release
A bridge between GitHub Releases and APT β now truly fail-closed.
v4.2.0 focuses on three pillars: security hardening, reliability fixes, and localization polish. No breaking CLI changes, no config migration β existing installations upgrade transparently.
π‘οΈ Security
- GPG verification is now fail-closed. The key is downloaded to a temp file, fingerprint-verified, then atomically moved to
/etc/apt/keyrings. Previously the key was written to disk before validation. - SHA-256 verification is now fail-closed. A missing checksum asset or a missing
sha256sum/shasumutility now aborts installation instead of silently skipping. dbp -rno longer purges without confirmation. Interactive[y/N]prompt by default;-y/--yesrequired for automation.dbp -rno longer vulnerable to regex injection via crafted package names (sed-based filtering replaced by Bash-native line filtering).</dev/ttyfailures fixed in CI/cron. Newprompt_readhelper falls back to non-interactive defaults with an explicit warning.- Single-request HTTP probe for the GPG URL (
%{http_code}+%{content_type}in one HEAD), with reliable detection of HTML 404 pages masquerading as200 OK.
π Reliability fixes
- Temp dir leak on success β
/tmp/debup-install.*and/tmp/debup-build.*were never cleaned on nominal runs. Newcleanup_tempdir_nowhelper:rm -rfthen reset. .debloss on install-skip β option 3 (build from source) produced the.debinside/tmp/debup-build.*and lost it when the user answeredn. Build output now goes directly to the user's CWD.- Duplicate tracking entries β
grep -qF "^debup|"treated^literally and never matched, causing duplicates in/etc/debup/sources.liston every re-install. - Self-tracking now works for options 2 and 3 β
dbp -uwas silently a no-op for GitHub-release and source builds. - Root-owned source tree crash β build no longer fails with
Permission deniedwhen a previoussudo dpkg-deb --buildleftroot:rootfiles behind; clearchownhint provided. - Missing build dependencies β
git/dpkg-debnow auto-installed in option 3. $HOMEpollution β option 3 now builds in a dedicatedmktemp -dinstead of~/debup.- Post-install
PATHverification β all three options confirmdbp/debupare reachable. - GitHub tag normalization β new
normalize_gh_taghandlesrelease-,app-v,cli-v0.5.0-linux-amd64,v1.2.3-beta.1, dpkg epochs (1:1.2.3-1), etc. - GitHub search URL encoding β
&,#,%,+,?,/in queries are now safely encoded viajq -sRr @uri.
π Added
dbp(no argument) now runs a quick update check β non-destructive summary across APT + tracked GitHub packages. Perfect forcron/ MOTD hooks.--non-interactive/-y/--yesdocumented ininstaller.sh, with automatic fallback to APT-repo install when no TTY is available.git clone --depth 1in option 3 β faster, less disk usage..debpreserved on install failure β option 3 keeps the built package in your CWD even whenapt-get installfails;apt-get install -fsuggested.--dry-runnow surfaces version normalization (latest_tag β normalized_ver).
π Localization
- 6 languages aligned:
en,fr,de,es,it,pt. - Missing keys added:
MSG_HELP_INSPECT,MSG_PROMPT_REMOVE_CONFIRM,MSG_ERR_UNKNOWN_OPTION,MSG_NO_TTY,MSG_ERR_NO_TTY,MSG_VERSION_NORMALIZED. - Typos fixed:
de.sh:einenGPGβeinen GPG,InstallationwirdβInstallation wird,[y/N]β[j/N].pt.sh:[y/N]β[s/N].fr.sh:[y/N]β[o/N].
en.shduplicateMSG_ERR_NO_ELEVATEremoved.MSG_USAGE_REMOVEnow shows[-y]in all 6 languages.
π§ Changed
installer.sh: per-option traps replaced by a single global accumulating trap (_cleanup_all).installer.sh:apt-get update -qqis non-blocking in option 1 (|| warning).installer.sh: checksum asset resolution is prioritized (<deb>.sha256βchecksums.txtβ*.sha256).README.md: the "Search informations" section now usesdbp -f <owner>/<repo>(was incorrectly-i, which installs).README.md: GitHub token storage is documented as user-level${XDG_CONFIG_HOME:-$HOME/.config}/debup/token(default) + root-level/etc/debup/debup.conf.
ποΈ Removed
debup: dead variableARCH_REGEX(assigned, never read).installer.sh: redundant secondcurl -sILcall forContent-Type.- Locales:
MSG_ERR_CMD_REQUIRED(replaced byMSG_CMD_REQUIRED_SUFFIX).
π¦ Installation
Fresh install (recommended β APT repository)
curl -sSL https://raw.githubusercontent.com/Ruraam/debup/main/installer.sh | bashAutomated / CI
curl -sSL https://raw.githubusercontent.com/Ruraam/debup/main/installer.sh | bash -s -- -yUpgrade from v4.1.x or earlier
If you installed via the APT repository (option 1):
sudo apt update && sudo apt upgrade debupIf you installed via latest release (option 2) or build from source (option 3):
dbp -u