filee-git

LOW
maintainer Felitendo 0 votes scanned 2026-10-22 07:34:22.999679
View on AUR
Why flagged

The package builds from a legitimate Git repository, downloads verifiable font assets with checksums, and compiles an additional dependency from a pinned commit; the only concerns are a SKIP'd checksum for the source and recent upload with few votes, but no evidence of malicious behavior.

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.

Low AI review llm_review

An AI model (qwen/qwen3-235b-a22b-2507) reviewed this and agrees it is LOW (confidence 95%): The package builds from a legitimate Git repository, downloads verifiable font assets with checksums, and compiles an additional dependency from a pinned commit; the only concerns are a SKIP'd checksum for the source and recent upload with few votes, but no evidence of malicious behavior.

PKGBUILD

1# Maintainer: Felitendo
2# This PKGBUILD is updated automatically:
3# https://github.com/Felitendo/PKGBUILDS
4
5pkgname=filee-git
6pkgver=2.0.0.r14.g014e851
7pkgrel=1
8pkgdesc="Offline file converter for images, PDF, Office, HWP, video, audio, e-books and archives (git)"
9arch=('x86_64')
10url="https://github.com/KnifeLemon/Filee"
11license=('MIT')
12# Framework-dependent build, so Arch's .NET runtime replaces the one upstream
13# bundles. The rest are the system libraries upstream's INSTALL.txt lists.
14depends=('dotnet-runtime-10.0' '7zip' 'glibc' 'gcc-libs' 'openssl' 'krb5'
15 'fontconfig' 'freetype2' 'libx11' 'libice' 'libsm' 'libxrandr'
16 'libxkbcommon' 'libxi' 'libxtst' 'libxt' 'libinput' 'systemd-libs'
17 'wayland' 'hicolor-icon-theme')
18# rust: rhwp. python: reads the font list from upstream's PowerShell script.
19makedepends=('dotnet-sdk-10.0' 'rust' 'git' 'python')
20# Filee cannot download LibreOffice and Ghostscript on Linux. The others it
21# can download itself, but it uses a system copy when there is one.
22optdepends=('libreoffice: Office documents'
23 'ghostscript: PostScript and PDF compression'
24 'ffmpeg: video and audio'
25 'pandoc-cli: more document formats'
26 'calibre: e-books'
27 'noto-fonts-cjk: Korean, Chinese and Japanese text')
28provides=('filee')
29conflicts=('filee')
30options=('!strip' '!debug')
31source=("${pkgname}::git+${url}.git")
32sha256sums=('SKIP')
33
34pkgver() {
35 cd "$pkgname"
36 git describe --long --tags --abbrev=7 --match 'v[0-9]*' \
37 | sed 's/^v//; s/\([^-]*-g\)/r\1/; s/-/./g'
38}
39
40prepare() {
41 cd "$pkgname"
42
43 # The UI fonts are not in git. Upstream's build/fetch-fonts.ps1 pins each
44 # one by URL and SHA-256. PowerShell is not in the Arch repos, so the list
45 # is read from that script and fetched with curl.
46 python3 - build/fetch-fonts.ps1 > "$srcdir/fonts.txt" << 'EOF'
47import re, sys
48text = open(sys.argv[1], encoding="utf-8").read()
49variables = {}
50expand = lambda s: re.sub(r"\$(\w+)", lambda m: variables[m.group(1)], s)
51for name, value in re.findall(r"""^\$(\w+) = ["']([^"']*)["']\s*$""", text, re.M):
52 variables[name] = expand(value)
53fonts = re.findall(r"""^\s*'([^']+)'\s*=\s*@\("([^"]+)", '([0-9A-Fa-f]{64})'\)""", text, re.M)
54if not fonts:
55 sys.exit("no fonts found in " + sys.argv[1])
56for name, url, sha in fonts:
57 print(name, expand(url), sha.lower())
58EOF
59 local _font _url _sha
60 mkdir -p src/Filee.App/Assets/Fonts
61 while read -r _font _url _sha; do
62 curl -fsSL -o "src/Filee.App/Assets/Fonts/$_font" "$_url"
63 echo "$_sha src/Filee.App/Assets/Fonts/$_font" | sha256sum -c --quiet
64 done < "$srcdir/fonts.txt"
65
66 # rhwp turns HWP and HWPX into PDF. Filee only runs its own copy in
67 # engines/rhwp, so it is built here from the commit that upstream's Linux
68 # build pins in build/build-linux-native.py.
69 local _commit
70 _commit=$(grep -Po '^RHWP_COMMIT = "\K[0-9a-f]{40}' build/build-linux-native.py)
71 rm -rf "$srcdir/rhwp"
72 git init -q "$srcdir/rhwp"
73 git -C "$srcdir/rhwp" fetch -q --depth 1 https://github.com/edwardkim/rhwp "$_commit"
74 git -C "$srcdir/rhwp" checkout -q --detach FETCH_HEAD
75
76 cd "$srcdir/rhwp"
77 export RUSTUP_TOOLCHAIN=stable
78 cargo fetch --locked --target "$(rustc -vV | sed -n 's/^host: //p')"
79}
80
81build() {
82 cd "$pkgname"
83
84 export DOTNET_CLI_TELEMETRY_OPTOUT=1 DOTNET_NOLOGO=1
85 # keep NuGet's cache inside the build tree instead of ~/.nuget
86 export NUGET_PACKAGES="$srcdir/nuget"
87
88 # Same publish as upstream's build/build-portable.ps1, but not
89 # self-contained. NuGet restores from nuget.org here, so build() needs
90 # network access.
91 local _project
92 for _project in Filee.App Filee.Cli; do
93 dotnet publish "src/$_project/$_project.csproj" -c Release -r linux-x64 \
94 --self-contained false -p:FileeRelease=true -p:PublishReadyToRun=false \
95 -o "$srcdir/publish"
96 done
97
98 cd "$srcdir/rhwp"
99 export RUSTUP_TOOLCHAIN=stable
100 export CARGO_TARGET_DIR=target
101 cargo build --release --frozen --bin rhwp
102}
103
104package() {
105 install -d "$pkgdir/opt/filee"
106 cp -a "$srcdir/publish/." "$pkgdir/opt/filee/"
107
108 install -Dm755 "$srcdir/rhwp/target/release/rhwp" "$pkgdir/opt/filee/engines/rhwp/rhwp"
109 install -Dm644 "$srcdir/rhwp/LICENSE" "$pkgdir/opt/filee/engines/rhwp/LICENSE"
110 # Arch's 7-Zip instead of the copy upstream bundles. Its 7z starts the
111 # full program with every format, which is what upstream's 7zz is.
112 install -d "$pkgdir/opt/filee/engines/7zip"
113 ln -s /usr/bin/7z "$pkgdir/opt/filee/engines/7zip/7zz"
114
115 # same command name as upstream's install.sh gives the CLI
116 install -d "$pkgdir/usr/bin"
117 ln -s /opt/filee/filee-cli "$pkgdir/usr/bin/filee"
118
119 cd "$pkgname"
120
121 # the entry upstream's install.sh writes, with the path of this package
122 install -Dm644 /dev/stdin "$pkgdir/usr/share/applications/com.filee.app.desktop" << 'EOF'
123[Desktop Entry]
124Type=Application
125Name=Filee
126Comment=Convert files offline
127Exec=/opt/filee/Filee --convert %F
128Icon=filee
129Terminal=false
130Categories=Utility;
131StartupWMClass=Filee
132EOF
133 install -Dm644 src/Filee.App/Assets/Icons/filee.png \
134 "$pkgdir/usr/share/icons/hicolor/512x512/apps/filee.png"
135
136 # KWin script for the experimental Wayland gesture, so Plasma users can
137 # turn it on in System Settings
138 install -d "$pkgdir/usr/share/kwin/scripts"
139 cp -r installer/linux/kwin/filee-donut "$pkgdir/usr/share/kwin/scripts/"
140
141 install -Dm644 LICENSE THIRD-PARTY-NOTICES.md -t "$pkgdir/opt/filee"
142 install -Dm644 LICENSE THIRD-PARTY-NOTICES.md -t "$pkgdir/usr/share/licenses/$pkgname"
143}
144

Scan history

Scanned at (UTC)SeverityRules
2026-10-22 07:34:22 Low 2

Report a package

Reports go to the AURWatch maintainer (one person) and are read by hand. No login required.

0 / 4000
Your suggestion