stavekontrolden

LOW
maintainer Freso 11 votes scanned 2026-11-01 00:21:48.120785
View on AUR
Why flagged

The package downloads a LibreOffice extension (.oxt file) from the project's official domain, which is a standard archive format containing dictionaries and license texts; even though the host is not on a standard whitelist, the content is non-executable data used for spell-checking and poses minimal risk.

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-2507) reviewed the full PKGBUILD and judged it LOW (confidence 95%): The package downloads a LibreOffice extension (.oxt file) from the project's official domain, which is a standard archive format containing dictionaries and license texts; even though the host is not on a standard whitelist, the content is non-executable data used for spell-checking and poses minimal risk.

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:27 source=("https://stavekontrolden.dk/dictionaries/da_DK/da_DK-$pkgver.oxt")

PKGBUILD

1 offending line(s) highlighted
1# Maintainer: Frederik “Freso” S. Olesen <archlinux@freso.dk>
2# Contributor: Frederik Nordahl Jul Sabroe <frederikns at gmail dot com>
3# Contributor: adament <adament@adament.net>
4# Contributor: Jamie Magee <jamie dot magee at gmail dot com>
5pkgname=stavekontrolden
6pkgver=2.9.159
7pkgrel=1
8pkgdesc='Danish dictionaries; for use with multiple programs'
9arch=('any')
10url='https://stavekontrolden.dk/'
11license=('GPL-3.0-only AND (GPL-2.0-only AND LGPL-2.1-only AND MPL-1.1)')
12optdepends=(
13 'hunspell: the spell checking libraries and apps'
14 'hyphen: for use of hyphenation rules'
15 'libmythes: for use of thesaurus dictionary')
16makedepends=(
17 'libarchive'
18 'coreutils'
19 'findutils')
20provides=(
21 'libreoffice-extension-da_dk'
22 'openoffice-extension-da_dk'
23 'hunspell-da'
24 'hyphen-da'
25 'mythes-da')
26conflicts=("${provides[@]}")
27source=("https://stavekontrolden.dk/dictionaries/da_DK/da_DK-$pkgver.oxt")
28b2sums=('8c3c83ae8eaebcae8250932c86361b42105a91a3c2170aaf9849f640d84c191f925db691bf39373fb316c1205ac8bdfca1f695f914fe41dbc2f3442bae786643')
29
30package() {
31 # LibreOffice extension
32 _extension_dir="${pkgdir}"/usr/lib/libreoffice/share/extensions/da_DK
33 install -dm755 "${_extension_dir}"
34 bsdtar -xf da_DK-$pkgver.oxt -C "${_extension_dir}"/
35
36 # Symlink for OpenOffice
37 install -dm755 "${pkgdir}"/opt/openoffice4/share/extensions
38 ln -s /usr/lib/libreoffice/share/extensions/da_DK "${pkgdir}"/opt/openoffice4/share/extensions/da_DK
39
40 # set types and make directories
41 _types=('hunspell' 'hyphen' 'mythes')
42 for type in "${_types[@]}"; do
43 install -dm755 "${pkgdir}"/usr/share/"$type"
44 done
45
46 _link_dir=../../lib/libreoffice/share/extensions/da_DK
47
48 # hunspell
49 ln -s $_link_dir/da_DK.dic "${pkgdir}"/usr/share/hunspell/da_DK.dic
50 ln -s $_link_dir/da_DK.aff "${pkgdir}"/usr/share/hunspell/da_DK.aff
51
52 # hyphen
53 ln -s $_link_dir/hyph_da_DK.dic "${pkgdir}"/usr/share/hyphen/hyph_da_DK.dic
54 ln -s $_link_dir/hyph_da_DK.dic "${pkgdir}"/usr/share/hyphen/hyph_da.dic
55
56 # thesaurus (mythes)
57 ln -s $_link_dir/th_da_DK.dat "${pkgdir}"/usr/share/mythes/th_da_DK.dat
58 ln -s $_link_dir/th_da_DK.idx "${pkgdir}"/usr/share/mythes/th_da_DK.idx
59
60 # myspell/dicts symlinks
61 install -dm755 "${pkgdir}"/usr/share/myspell/dicts
62 pushd "$pkgdir"/usr/share/myspell/dicts > /dev/null
63 for type in "${_types[@]}"; do
64 for file in "${pkgdir}"/usr/share/"$type"/*; do
65 ln -Ls ../../"$type"/"$(basename "$file")" .
66 done
67 done
68 popd > /dev/null
69
70 install -dm755 "${pkgdir}"/usr/share/doc/$pkgname
71 ln -s ../$_link_dir/README_da_DK.txt "${pkgdir}"/usr/share/doc/$pkgname/README_da_DK.txt
72 ln -s ../$_link_dir/HYPH_da_DK_README.txt "${pkgdir}"/usr/share/doc/$pkgname/HYPH_da_DK_README.txt
73 install -dm755 "${pkgdir}"/usr/share/licenses/$pkgname
74 ln -s ../$_link_dir/README_da_DK.txt "${pkgdir}"/usr/share/licenses/$pkgname/README_da_DK.txt
75 ln -s ../$_link_dir/HYPH_da_DK_README.txt "${pkgdir}"/usr/share/licenses/$pkgname/HYPH_da_DK_README.txt
76
77 # Remove world writable bits
78 chmod --recursive go-w "${pkgdir}"
79 # Remove executable bits
80 find "${pkgdir}"/ -type f -exec chmod -x {} +
81}
82

Changes since previous scan

--- PKGBUILD @ 2026-10-30 00:29
+++ PKGBUILD @ 2026-11-01 00:21
@@ -3,7 +3,7 @@
# Contributor: adament <adament@adament.net>
# Contributor: Jamie Magee <jamie dot magee at gmail dot com>
pkgname=stavekontrolden
-pkgver=2.9.157
+pkgver=2.9.159
pkgrel=1
pkgdesc='Danish dictionaries; for use with multiple programs'
arch=('any')
@@ -25,7 +25,7 @@
'mythes-da')
conflicts=("${provides[@]}")
source=("https://stavekontrolden.dk/dictionaries/da_DK/da_DK-$pkgver.oxt")
-b2sums=('9d361ce9653c2cdf3e045599b58b86aea5bdeae81f80c822a43620554bad648e0306f53ab64b316f40d0fff0232f8851e1b5824f17806693a4d44088b9602c41')
+b2sums=('8c3c83ae8eaebcae8250932c86361b42105a91a3c2170aaf9849f640d84c191f925db691bf39373fb316c1205ac8bdfca1f695f914fe41dbc2f3442bae786643')
package() {
# LibreOffice extension

Scan history

Scanned at (UTC)SeverityRules
2026-11-01 00:21:48 Low 2
2026-10-31 00:07:41 Low 2
2026-10-30 15:56:05 Medium 1
2026-10-30 00:29:30 Low 2
2026-10-29 00:13:55 Low 2
2026-10-28 15:50:30 Medium 1
2026-10-28 00:06:54 Low 2
2026-10-27 00:23:28 Low 2
2026-10-26 15:45:54 Medium 1
2026-10-26 00:12:40 Low 2
2026-10-25 00:20:48 Low 2
2026-10-24 00:14:55 Low 2
2026-10-23 00:02:19 Low 2
2026-10-22 13:35:05 Medium 1
2026-10-22 00:13:10 Low 2
2026-10-21 00:12:50 Low 2
2026-10-20 13:28:00 Medium 1
2026-10-20 00:10:31 Low 2
2026-10-19 00:03:55 Low 2
2026-10-18 13:22:09 Medium 1

Report a package

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

0 / 4000
Your suggestion