opentaxsolver2023
maintainer gcb0
· 0 votes
· scanned 2026-08-03 00:08:14.047287
LOW
View on AUR ↗
Why flagged
The source uses a Subversion checkout from a project-owned SourceForge repository, which is a normal and legitimate method for AUR packages; the non-standard host is part of SourceForge's infrastructure, and the SKIP'd checksum is due to version control, not unverifiable binary distribution.
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 source uses a Subversion checkout from a project-owned SourceForge repository, which is a normal and legitimate method for AUR packages; the non-standard host is part of SourceForge's infrastructure, and the SKIP'd checksum is due to version control, not unverifiable binary distribution.
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:23
source=("${pkgname}" "${pkgname}-${pkgver}::svn://svn.code.sf.net/p/opentaxsolver/SrcCodeRepo/trunk/OTS_${year}#revision=${_snvrevision}")
PKGBUILD
1 offending line(s) highlighted
1
# Maintainer: gcb0 <1705-gcb@users.noreply.gitlab.archlinux.org>
2
#set -xe
3
year=2023
4
pkgname=opentaxsolver$year
5
pkgver=21.06
6
# ^ same as upstream. No hypen! `s/-/_/`, and later source=("${pkgname}-${pkgver//_/-}.tar.gz")
7
_snvrevision=r137
8
pkgrel=1
9
pkgdesc="An easy-to-use text-based calculator for U.S.A Tax Forms"
10
arch=('i686' 'x86_64' 'armv7h' 'aarch64')
11
url="http://opentaxsolver.sourceforge.net/"
12
license=('GPL2')
13
#groups=(OTS)
14
depends=()
15
checkdepends=()
16
optdepends=(
17
'gtk4: GUI support'
18
'libreoffice: Edit generated PDFs'
19
)
20
21
# SOURCES :: from subversion
22
makedepends=('subversion')
23
source=("${pkgname}" "${pkgname}-${pkgver}::svn://svn.code.sf.net/p/opentaxsolver/SrcCodeRepo/trunk/OTS_${year}#revision=${_snvrevision}")
24
sha256sums=('c24fc0b104cb7270b9a877eb9101f169fc08409cf7649879443504f657064c6b'
25
'SKIP')
26
verify() {
27
# NOTE this happens before files are moved to $srcdir... must use the dir on the prefix of source=()
28
cd "${pkgname}-${pkgver}/src/"
29
# hacky checksum
30
if [[ "f7212bd7eb8b3786614b011c7d082020f198e1bd08ce55fa48a664ae7bb538ea -" \
31
!= $(cat *c | sha256sum) ]];
32
then
33
echo "got wrong checksum for requested revision!" >&2
34
return 2;
35
fi
36
}
37
# pkgver() { ... this is silly as we use fixed revision, but keeping here in case anyone want to do a -svn packge
38
# # TODO: this returns MAJ.MIN e.g. "21.03", which is not valid?
39
# # TODO: add 'r123' for the svn revision on the version? e.g. "21.03-r146"
40
# cd "$srcdir/${pkgname}-${pkgver}/src/"
41
# # get actual version from changelog
42
# local ver=$(grep --max-count=1 '* v' ../0_README.txt | cut -c 8-12)
43
# echo $ver >&2
44
# return $ver
45
# }
46
47
# SOURCES :: from upstream artifact (fail as sf.net likes to redirects to webpage from time to time)
48
# makedepends=()
49
# source=("${pkgname}" "https://phoenixnap.dl.sourceforge.net/project/opentaxsolver/OTS_${year}/v${pkgver}_linux/OpenTaxSolver${year}_${pkgver}_linux64.tgz")
50
# sha256sums=('c24fc0b104cb7270b9a877eb9101f169fc08409cf7649879443504f657064c6b'
51
# '76f6a29d824ad3229555f04c7bf91c76fe8d16bdb822c31f6b410480d948a90b')
52
# prepare() {
53
# # normalize srcdir path tree with svn sources. for consistency on other methods.
54
# cd "$srcdir/"
55
# ln -s "OpenTaxSolver${year}_${pkgver}_linux64/" "${pkgname}-${pkgver}"
56
# }
57
58
59
build() {
60
cd "$srcdir/${pkgname}-${pkgver}/src/"
61
make
62
cd Gui_gtk
63
make
64
}
65
66
# all files must live in /var/lib/pkgname because program have no concept of
67
# systemdirs. All must live relative to the executable. This also requires a
68
# wrapper
69
package() {
70
cd "$srcdir/${pkgname}-${pkgver}/"
71
local -r INSTALL="install --preserve-timestamps --owner=root --group=root"
72
73
# NOTE: $pkgdir is absolute.
74
$INSTALL --mode=0755 -d "${pkgdir}/usr/bin/"
75
$INSTALL --mode=0755 -d "${pkgdir}/var/lib/${pkgname}/src/"
76
$INSTALL --mode=0755 -d "${pkgdir}/var/lib/${pkgname}/bin/"
77
78
# NOTE: to use glob on install we can't use quotes... this will break if this project
79
# ever adds spaces to filenames i guess.
80
$INSTALL --mode=0755 --target-directory="${pkgdir}/var/lib/${pkgname}/bin/" bin/*
81
82
# our wrapper
83
# TODO: create .desktop file for this
84
$INSTALL --mode=0755 --target-directory="${pkgdir}/usr/bin/" "${srcdir}/${pkgname}"
85
86
# this is convoluted but ensure right permissions/ownership
87
local formdir
88
#for formdir in "AZ_140" "CA_540" "Form_2210" "Form_8606" "Form_8812" "Form_8829" "Form_8959" "Form_8960" "Form_8995" "Form_CA_5805" "HSA_Form_8889" "MA_1" "NC_D400" "NJ_1040" "NY_IT201" "OH_IT1040" "PA_40" "US_1040" "US_1040_Sched_C" "US_1040_Sched_SE" "VA_760";
89
for formdir in tax_form_files/*;
90
do
91
$INSTALL --mode=0755 -d "${pkgdir}/var/lib/${pkgname}/${formdir}/"
92
$INSTALL --mode=0644 --target-directory="${pkgdir}/var/lib/${pkgname}/${formdir}/" \
93
${formdir}/*.txt
94
done
95
96
$INSTALL --mode=0755 -d "${pkgdir}/var/lib/${pkgname}/src/formdata/"
97
$INSTALL --mode=0644 --target-directory="${pkgdir}/var/lib/${pkgname}/src/formdata/" \
98
src/formdata/*.dat
99
}
100
101
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 |