dotnet-markdig
LOW
maintainer ChrisTX
0 votes
scanned 2026-10-31 05:57:59.662655
Why flagged
Uploaded within the last 14 days with 2 or fewer community votes — little peer review so far.
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.
PKGBUILD
1
# Maintainer: Christian Pfeiffer <cpfeiffer at rev-crew dot info>
2
# shellcheck disable=SC2034,SC2154
3
# shellcheck shell=bash
4
5
pkgname=dotnet-markdig
6
pkgver=1.5.1
7
pkgrel=1
8
pkgdesc="Fast, powerful, CommonMark compliant, extensible Markdown processor for .NET (NuGet packages)"
9
arch=('any')
10
url='https://github.com/xoofx/markdig'
11
license=('BSD-2-Clause')
12
_dotnetsdkver="10.0"
13
makedepends=(
14
dotnet-sdk-"$_dotnetsdkver"
15
git
16
)
17
source=("git+$url.git#tag=$pkgver")
18
sha512sums=('7d7b7f3a70d3728ee622ebcd0b70688f9f75ff8eb8acd2955d6fde713e8c5667bc0ce844db50072a698f82e48102129362ff703d65fa20f3bc0877eb1cd78ae6')
19
b2sums=('02c70f99d35eb9dd7bd76e34d8c22cffe3858ca2814ba9a6346493ae6e77b6de1985c4e7183d23ae246e60744eab5c8119b775c7497c123bc599a5c1842b1d39')
20
21
_dotnet_env() {
22
export NUGET_PACKAGES="$srcdir/nuget"
23
export DOTNET_CLI_HOME="$srcdir/dotnet-home"
24
export DOTNET_CLI_TELEMETRY_OPTOUT=1
25
export DOTNET_NOLOGO=1
26
27
# The version is set like upstream's MinVer setup (src/Markdig/Markdig.targets) does it
28
_build_arguments=(
29
--configuration Release
30
-p:Version="$pkgver"
31
-p:AssemblyVersion="${pkgver%.*}.0.0"
32
-p:FileVersion="$pkgver.0"
33
-p:ContinuousIntegrationBuild=true
34
)
35
}
36
37
prepare() {
38
cd markdig || exit
39
# Pins an SDK we don't have
40
rm src/global.json
41
# MinVer is a prebuilt tool that derives the version from git, it's passed in build() instead.
42
# The .NET Framework build would need prebuilt reference assemblies.
43
sed -i -e '/<PackageReference Include="MinVer">/,/<\/PackageReference>/d' \
44
-e '/<Target Name="PatchVersion"/,/<\/Target>/d' \
45
-e 's|<TargetFrameworks>net462;|<TargetFrameworks>|' \
46
src/Markdig/Markdig.targets
47
}
48
49
build() {
50
_dotnet_env
51
cd markdig || exit
52
# Markdig.Signed is the same library, strong named with the key in its folder
53
local _project
54
for _project in Markdig Markdig.Signed; do
55
dotnet pack "src/$_project/$_project.csproj" "${_build_arguments[@]}" \
56
-p:IncludeSymbols=false --output "$srcdir/nupkg"
57
done
58
}
59
60
check() {
61
_dotnet_env
62
cd markdig || exit
63
dotnet test src/Markdig.Tests/Markdig.Tests.csproj "${_build_arguments[@]}" --framework "net$_dotnetsdkver"
64
}
65
66
# Fails if a binary in $pkgdir, also inside the .nupkg files there, is identical to one of the packages
67
# restored from a remote feed like nuget.org into $1, so no prebuilt binary slips in instead of one built
68
# from source
69
_check_prebuilt() {
70
local _extracted="$srcdir/check-prebuilt" _metadata _file _hash _found=0
71
local _binaries=(-type f '(' -name '*.dll' -o -name '*.exe' -o -name '*.so' -o -name '*.so.*' -o -name '*.dylib' ')')
72
local -A _prebuilt=()
73
while IFS= read -r -d '' _metadata; do
74
grep -qE '"source": *"https?://' "$_metadata" || continue
75
while IFS= read -r -d '' _file; do
76
_prebuilt[$(sha256sum <"$_file")]="${_file#"$1"/}"
77
done < <(find "${_metadata%/*}" "${_binaries[@]}" -print0)
78
done < <(find "$1" -name .nupkg.metadata -print0)
79
80
rm -rf "$_extracted"
81
mkdir -p "$_extracted"
82
while IFS= read -r -d '' _file; do
83
mkdir -p "$_extracted/${_file#"$pkgdir"/}"
84
bsdtar -xf "$_file" -C "$_extracted/${_file#"$pkgdir"/}"
85
done < <(find "$pkgdir" -type f -name '*.nupkg' -print0)
86
while IFS= read -r -d '' _file; do
87
_hash=$(sha256sum <"$_file")
88
if [[ -v "_prebuilt[$_hash]" ]]; then
89
echo "Prebuilt binary: ${_file#"$_extracted"/} is ${_prebuilt[$_hash]}" >&2
90
_found=1
91
fi
92
done < <(find "$pkgdir" "$_extracted" "${_binaries[@]}" -print0)
93
rm -rf "$_extracted"
94
return "$_found"
95
}
96
97
package() {
98
install -Dm644 "$srcdir"/nupkg/{Markdig,Markdig.Signed}."$pkgver".nupkg \
99
-t "$pkgdir/usr/share/dotnet/nuget-packages/"
100
install -Dm644 markdig/license.txt -t "$pkgdir/usr/share/licenses/$pkgname/"
101
102
_check_prebuilt "$srcdir/nuget"
103
}
104
Scan history
| Scanned at (UTC) | Severity | Rules |
|---|---|---|
| 2026-10-31 05:57:59 | Low | 1 |