btrfs-file-restorer
maintainer 1000hz
· 0 votes
· scanned 2026-08-03 00:08:14.047287
MEDIUM
View on AUR ↗
Why flagged
The package installs a prebuilt binary from a GitHub release (unofficial for the AUR), which is a supply-chain risk if the source is swapped, though it is checksum-verified and likely benign.
Triggered rules
LOW
Few votes, recently uploaded
zero_votes_recent
Uploaded within the last 14 days with 2 or fewer community votes — little peer review so far.
MEDIUM
AI review of an ambiguous pattern
llm_review
The static rules found a suspicious pattern they could not resolve, so an AI model (qwen/qwen3-235b-a22b-2507) reviewed it and judged it MEDIUM (confidence 95%): The package installs a prebuilt binary from a GitHub release (unofficial for the AUR), which is a supply-chain risk if the source is swapped, though it is checksum-verified and likely benign.
PKGBUILD
1
# Maintainer: 1000Hz <1000Hz radiowave + aur at gmail>
2
pkgname=btrfs-file-restorer
3
pkgver=1.0.1
4
pkgrel=1
5
pkgdesc="A GUI tool to recover files from damaged and unmountable btrfs filesystem"
6
arch=('x86_64')
7
url="https://github.com/dsvi/Btrfs-File-Restorer"
8
license=('zlib')
9
10
depends=('hicolor-icon-theme' 'btrfs-progs')
11
makedepends=('binutils')
12
13
source=("https://github.com/dsvi/Btrfs-File-Restorer/releases/download/v${pkgver}/btrfs-file-restorer_${pkgver}-1_amd64.deb")
14
sha256sums=('6f5f3278550a2b47a88cd870dd6635489aee4783fce575e2ad40c13b76ecebdb')
15
16
package() {
17
# 1. Extract the .deb archive
18
ar x "btrfs-file-restorer_${pkgver}-1_amd64.deb"
19
bsdtar -xf data.tar.* -C "${pkgdir}"
20
rm -f control.tar.* data.tar.* debian-binary
21
22
# 2. Move the entire app from /opt to /usr/lib
23
install -d "${pkgdir}/usr/lib"
24
mv "${pkgdir}/opt/btrfs-file-restorer" "${pkgdir}/usr/lib/"
25
rmdir "${pkgdir}/opt"
26
27
# 3. Symlink the binary to /usr/bin
28
install -d "${pkgdir}/usr/bin"
29
ln -s "/usr/lib/btrfs-file-restorer/bin/btrfs-file-restorer" "${pkgdir}/usr/bin/btrfs-file-restorer"
30
31
# 4. Move the icon to the standard hicolor directory
32
install -d "${pkgdir}/usr/share/icons/hicolor/256x256/apps"
33
mv "${pkgdir}/usr/lib/btrfs-file-restorer/lib/btrfs-file-restorer.png" \
34
"${pkgdir}/usr/share/icons/hicolor/256x256/apps/btrfs-file-restorer.png"
35
36
# 5. Patch and install the desktop file
37
# (Note: We still use a quick 'find' for the .desktop file only, because
38
# jpackage inconsistently places it in either /opt/... or /usr/share/applications/)
39
install -d "${pkgdir}/usr/share/applications"
40
local _desktop_file=$(find "${pkgdir}" -name "*.desktop" -type f | head -n 1)
41
42
if [ -n "${_desktop_file}" ]; then
43
# Overwrite Exec and Icon lines with clean, standard paths
44
sed -i "s|^Exec=.*|Exec=/usr/bin/btrfs-file-restorer|g" "${_desktop_file}"
45
sed -i "s|^Icon=.*|Icon=btrfs-file-restorer|g" "${_desktop_file}"
46
47
# Move to standard location and ensure it has the clean name
48
mv "${_desktop_file}" "${pkgdir}/usr/share/applications/btrfs-file-restorer.desktop"
49
chmod 644 "${pkgdir}/usr/share/applications/btrfs-file-restorer.desktop"
50
fi
51
}
52
Changes since previous scan
--- PKGBUILD @ 2026-07-23 17:25+++ PKGBUILD @ 2026-08-03 00:08@@ -1,6 +1,6 @@ # Maintainer: 1000Hz <1000Hz radiowave + aur at gmail> pkgname=btrfs-file-restorer-pkgver=1.0.0+pkgver=1.0.1 pkgrel=1 pkgdesc="A GUI tool to recover files from damaged and unmountable btrfs filesystem" arch=('x86_64')@@ -11,7 +11,7 @@ makedepends=('binutils') source=("https://github.com/dsvi/Btrfs-File-Restorer/releases/download/v${pkgver}/btrfs-file-restorer_${pkgver}-1_amd64.deb")-sha256sums=('b20dae6a11694fa564534441b9e5daf19b03873360439debfd93a316bad8d70f')+sha256sums=('6f5f3278550a2b47a88cd870dd6635489aee4783fce575e2ad40c13b76ecebdb') package() { # 1. Extract the .deb archiveScan history
| Scanned at (UTC) | Severity | Rules |
|---|---|---|
| 2026-08-03 00:08:14 | MEDIUM | 2 |
| 2026-08-02 00:16:08 | MEDIUM | 2 |
| 2026-08-01 00:11:18 | MEDIUM | 2 |
| 2026-07-31 00:14:10 | MEDIUM | 2 |
| 2026-07-30 00:17:23 | MEDIUM | 2 |
| 2026-07-29 00:25:53 | MEDIUM | 2 |
| 2026-07-28 00:07:28 | MEDIUM | 2 |
| 2026-07-27 00:24:32 | MEDIUM | 2 |
| 2026-07-26 00:07:32 | MEDIUM | 2 |
| 2026-07-25 00:13:44 | MEDIUM | 2 |
| 2026-07-24 00:02:28 | MEDIUM | 2 |
| 2026-07-23 19:25:44 | MEDIUM | 2 |
| 2026-07-23 17:25:21 | MEDIUM | 2 |
| 2026-07-23 00:14:47 | MEDIUM | 2 |
| 2026-07-22 23:22:13 | MEDIUM | 2 |