irpf2022
maintainer dbermond
· 0 votes
· scanned 2026-08-03 00:08:14.047287
LOW
View on AUR ↗
Why flagged
The package downloads a government-official IRPF program from a plausibly legitimate Brazilian tax authority host; the source is a prebuilt executable but from an official government domain, and the rest of the package consists of standard install steps for Java and desktop integration.
Triggered rules
LOW
AI review downgraded a static finding
llm_review
The static rules flagged this MEDIUM, but an AI model (qwen/qwen3-235b-a22b-07-25) reviewed the full PKGBUILD and judged it LOW (confidence 95%): The package downloads a government-official IRPF program from a plausibly legitimate Brazilian tax authority host; the source is a prebuilt executable but from an official government domain, and the rest of the package consists of standard install steps for Java and desktop integration.
1 higher static finding superseded - not the current verdict (shown for transparency)
MEDIUM
source=() URL on a non-standard host
source_untrusted_domain
One or more source=() URLs point to a host outside the trusted allowlist (github.com, gitlab.com, codeberg.org, pypi.org, …).
-
PKGBUILD:19
source=("https://downloadirpf.receita.fazenda.gov.br/irpf/${pkgver%%.*}/irpf/arquivos/IRPF${pkgver%%.*}-${pkgver#*.}.zip"
PKGBUILD
1 offending line(s) highlighted
1
# Maintainer : Daniel Bermond <dbermond@archlinux.org>
2
3
pkgname=irpf2022
4
pkgver=2022.2.3
5
pkgrel=1
6
pkgdesc='Brazilian physical person income tax (IRPF) program (2022 version)'
7
arch=('any')
8
url='https://www.gov.br/receitafederal/pt-br/centrais-de-conteudo/download/pgd/dirpf'
9
license=('LicenseRef-Custom')
10
depends=(
11
'hicolor-icon-theme'
12
'java-runtime=11'
13
'sh')
14
optdepends=(
15
'cups: for print support'
16
'gvfs: for importing pre-filled data from a gov.br account')
17
makedepends=(
18
'icoutils')
19
source=("https://downloadirpf.receita.fazenda.gov.br/irpf/${pkgver%%.*}/irpf/arquivos/IRPF${pkgver%%.*}-${pkgver#*.}.zip"
20
'irpf.desktop'
21
'irpf.sh'
22
'LICENSE')
23
sha256sums=('6a50be7833936ee843a88cdc5c0769031cbe2d35b37ae0b7b780b30db8683c79'
24
'da94b677c77a9637cda73811c133f9cb838a243916c497065fab5cd654c56edc'
25
'5b07c9124145ad8e2a8c436c759e17e8ab69304b6a5ddb5a0308b2382e4b4251'
26
'a406e102e2c10c202bd7a0ba775b004c0f04440544db73ce6923172a62aacd67')
27
28
prepare() {
29
wrestool -x -t 14 -o "IRPF${pkgver%%.*}" "IRPF${pkgver%%.*}/IRPF${pkgver%%.*}.exe"
30
icotool -x -o "IRPF${pkgver%%.*}" "IRPF${pkgver%%.*}/IRPF${pkgver%%.*}.exe"_*_*_*.ico
31
}
32
33
package() {
34
install -D -m755 irpf.sh "${pkgdir}/usr/bin/${pkgname}"
35
install -D -m644 irpf.desktop "${pkgdir}/usr/share/applications/${pkgname}.desktop"
36
install -D -m644 LICENSE -t "${pkgdir}/usr/share/licenses/${pkgname}"
37
install -D -m644 "IRPF${pkgver%%.*}"/{{irpf,pgd-updater}.jar,IRPF2022.acb} -t "${pkgdir}/usr/share/java/${pkgname}"
38
install -D -m644 "IRPF${pkgver%%.*}/Leia-me.htm" -t "${pkgdir}/usr/share/doc/${pkgname}"
39
cp -dr --no-preserve='ownership' "IRPF${pkgver%%.*}/help" "${pkgdir}/usr/share/doc/${pkgname}"
40
cp -dr --no-preserve='ownership' "IRPF${pkgver%%.*}/"lib{,-modulos} "${pkgdir}/usr/share/java/${pkgname}"
41
ln -sr "${pkgdir}/usr/share/doc/${pkgname}/help" "${pkgdir}/usr/share/java/${pkgname}/help"
42
43
local _file
44
local _res
45
while read -r -d '' _file
46
do
47
_res="$(sed 's/\.png$//;s/^.*_//;s/x.*$//' <<< "$_file")"
48
install -D -m644 "$_file" "${pkgdir}/usr/share/icons/hicolor/${_res}x${_res}/apps/${pkgname}.png"
49
done < <(find "IRPF${pkgver%%.*}" -maxdepth 1 -type f -name "IRPF${pkgver%%.*}.exe"_*_*_*_*_*x*x*.png -print0)
50
}
51
Scan history
| Scanned at (UTC) | Severity | Rules |
|---|---|---|
| 2026-08-03 00:08:14 | LOW | 2 |
| 2026-08-02 00:16:08 | LOW | 2 |
| 2026-08-01 00:11:18 | LOW | 2 |
| 2026-07-31 00:14:10 | LOW | 2 |
| 2026-07-30 00:17:23 | LOW | 2 |
| 2026-07-29 00:25:53 | LOW | 2 |
| 2026-07-28 00:07:28 | LOW | 2 |
| 2026-07-27 00:24:32 | LOW | 2 |
| 2026-07-26 00:07:32 | LOW | 2 |
| 2026-07-25 00:13:44 | LOW | 2 |
| 2026-07-24 00:02:28 | LOW | 2 |
| 2026-07-23 00:14:47 | LOW | 2 |
| 2026-07-22 00:29:32 | LOW | 2 |
| 2026-07-21 00:24:15 | LOW | 2 |
| 2026-07-20 00:19:49 | LOW | 2 |
| 2026-07-19 00:17:08 | LOW | 2 |
| 2026-07-18 00:14:48 | LOW | 2 |
| 2026-07-17 00:06:16 | LOW | 2 |
| 2026-07-16 00:05:41 | LOW | 2 |
| 2026-07-15 00:09:25 | LOW | 2 |