aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Morante <daniel@morante.net>2021-06-15 20:19:59 +0000
committerKevin Bowling <kbowling@FreeBSD.org>2021-06-15 20:21:26 +0000
commit4caa832223fcbc6d344fe51c52b5b39d40160952 (patch)
tree61d2125ec4d60b12cc653a6af584eece138752d6
parent08359d131104c03f1e73208cf81a82b1daabe4d4 (diff)
downloadports-4caa832223fcbc6d344fe51c52b5b39d40160952.tar.gz
ports-4caa832223fcbc6d344fe51c52b5b39d40160952.zip
multimedia/navidrome: Music server and streamer
iNavidrome is a self-hosted, open source music server and streamer compatible with Subsonic/Airsonic written in Go. https://www.navidrome.org/ PR: 254286 Approved by: new maintainer
-rw-r--r--multimedia/navidrome/Makefile245
-rw-r--r--multimedia/navidrome/distinfo337
-rw-r--r--multimedia/navidrome/files/config.toml.sample.in73
-rw-r--r--multimedia/navidrome/files/navidrome.in51
-rw-r--r--multimedia/navidrome/files/pkg-message.in27
-rw-r--r--multimedia/navidrome/pkg-descr7
-rw-r--r--multimedia/navidrome/pkg-plist6
7 files changed, 746 insertions, 0 deletions
diff --git a/multimedia/navidrome/Makefile b/multimedia/navidrome/Makefile
new file mode 100644
index 000000000000..5a87dacc5ca3
--- /dev/null
+++ b/multimedia/navidrome/Makefile
@@ -0,0 +1,245 @@
+# Created by: Daniel Morante <daniel@morante.net>
+
+PORTNAME= navidrome
+DISTVERSIONPREFIX= v
+DISTVERSION= 0.40.0
+CATEGORIES= multimedia
+MASTER_SITES= http://cdn.pacyworld.com/morante.net/freebsd/ports/distfiles/navidrome/:npmcache
+DISTFILES= ${PORTNAME}-npm-cache-${DISTVERSION}${EXTRACT_SUFX}:npmcache
+DIST_SUBDIR= navidrome
+
+MAINTAINER= daniel@morante.net
+COMMENT= Modern Music Server and Streamer compatible with Subsonic/Airsonic
+
+LICENSE= GPLv3
+LICENSE_FILE= ${WRKSRC}/LICENSE
+
+BUILD_DEPENDS+= npm>0:www/npm \
+ go-bindata:devel/go-bindata
+LIB_DEPENDS+= libtag.so:audio/taglib
+RUN_DEPENDS+= ffmpeg:multimedia/ffmpeg
+
+USES= go:modules pkgconfig
+USE_GITHUB= yes
+GH_TUPLE= \
+ BurntSushi:toml:v0.3.1:burntsushi_toml/vendor/github.com/BurntSushi/toml \
+ ClickHouse:clickhouse-go:v1.4.3:clickhouse_clickhouse_go/vendor/github.com/ClickHouse/clickhouse-go \
+ Djarvur:go-err113:5174e21577d5:djarvur_go_err113/vendor/github.com/Djarvur/go-err113 \
+ Masterminds:semver:v1.5.0:masterminds_semver/vendor/github.com/Masterminds/semver \
+ Masterminds:squirrel:v1.5.0:masterminds_squirrel/vendor/github.com/Masterminds/squirrel \
+ OpenPeeDeeP:depguard:v1.0.1:openpeedeep_depguard/vendor/github.com/OpenPeeDeeP/depguard \
+ ashanbrown:forbidigo:v1.0.0:ashanbrown_forbidigo/vendor/github.com/ashanbrown/forbidigo \
+ ashanbrown:makezero:7b7cdbb3025a:ashanbrown_makezero/vendor/github.com/ashanbrown/makezero \
+ astaxie:beego:v1.12.3:astaxie_beego/vendor/github.com/astaxie/beego \
+ aymerick:douceur:v0.2.0:aymerick_douceur/vendor/github.com/aymerick/douceur \
+ bombsimon:wsl:v3.1.0:bombsimon_wsl_v3/vendor/github.com/bombsimon/wsl/v3 \
+ bradleyjkemp:cupaloy:v2.3.0:bradleyjkemp_cupaloy/vendor/github.com/bradleyjkemp/cupaloy \
+ cespare:reflex:v0.3.0:cespare_reflex/vendor/github.com/cespare/reflex \
+ cespare:xxhash:v2.1.1:cespare_xxhash_v2/vendor/github.com/cespare/xxhash/v2 \
+ chris-ramon:douceur:v0.2.0:chris_ramon_douceur \
+ cloudflare:golz4:ef862a3cdc58:cloudflare_golz4/vendor/github.com/cloudflare/golz4 \
+ cloudfoundry:go-diodes:f77fb823c7ee:cloudfoundry_go_diodes/vendor/code.cloudfoundry.org/go-diodes \
+ creack:pty:v1.1.11:creack_pty/vendor/github.com/creack/pty \
+ daixiang0:gci:v0.2.8:daixiang0_gci/vendor/github.com/daixiang0/gci \
+ davecgh:go-spew:v1.1.1:davecgh_go_spew/vendor/github.com/davecgh/go-spew \
+ deluan:rest:b71e558c45d0:deluan_rest/vendor/github.com/deluan/rest \
+ denis-tingajkin:go-header:v0.4.2:denis_tingajkin_go_header/vendor/github.com/denis-tingajkin/go-header \
+ denisenkom:go-mssqldb:v0.9.0:denisenkom_go_mssqldb/vendor/github.com/denisenkom/go-mssqldb \
+ dgrijalva:jwt-go:v3.2.0:dgrijalva_jwt_go/vendor/github.com/dgrijalva/jwt-go \
+ disintegration:imaging:v1.6.2:disintegration_imaging/vendor/github.com/disintegration/imaging \
+ djherbis:atime:v1.0.0:djherbis_atime/vendor/gopkg.in/djherbis/atime.v1 \
+ djherbis:fscache:a0daa9e52747:djherbis_fscache/vendor/github.com/djherbis/fscache \
+ djherbis:stream:v1.3.1:djherbis_stream/vendor/gopkg.in/djherbis/stream.v1 \
+ dominikh:go-tools:v0.0.1-2020.1.6:dominikh_go_tools/vendor/honnef.co/go/tools \
+ dustin:go-humanize:v1.0.0:dustin_go_humanize/vendor/github.com/dustin/go-humanize \
+ esimonov:ifshort:v1.0.0:esimonov_ifshort/vendor/github.com/esimonov/ifshort \
+ fatih:color:v1.10.0:fatih_color/vendor/github.com/fatih/color \
+ fsnotify:fsnotify:v1.4.9:fsnotify_fsnotify/vendor/github.com/fsnotify/fsnotify \
+ go-bindata:go-bindata:v3.1.2:go_bindata_go_bindata/vendor/github.com/go-bindata/go-bindata \
+ go-chi:chi:v1.5.1:go_chi_chi/vendor/github.com/go-chi/chi \
+ go-chi:cors:v1.1.1:go_chi_cors/vendor/github.com/go-chi/cors \
+ go-chi:httprate:v0.4.0:go_chi_httprate/vendor/github.com/go-chi/httprate \
+ go-chi:jwtauth:v4.0.4:go_chi_jwtauth/vendor/github.com/go-chi/jwtauth \
+ go-critic:go-critic:v0.5.3:go_critic_go_critic/vendor/github.com/go-critic/go-critic \
+ go-ini:ini:v1.57.0:go_ini_ini/vendor/gopkg.in/ini.v1 \
+ go-sql-driver:mysql:v1.5.0:go_sql_driver_mysql/vendor/github.com/go-sql-driver/mysql \
+ go-tomb:tomb:dd632973f1e7:go_tomb_tomb/vendor/gopkg.in/tomb.v1 \
+ go-toolsmith:astcast:v1.0.0:go_toolsmith_astcast/vendor/github.com/go-toolsmith/astcast \
+ go-toolsmith:astcopy:v1.0.0:go_toolsmith_astcopy/vendor/github.com/go-toolsmith/astcopy \
+ go-toolsmith:astequal:v1.0.0:go_toolsmith_astequal/vendor/github.com/go-toolsmith/astequal \
+ go-toolsmith:astfmt:v1.0.0:go_toolsmith_astfmt/vendor/github.com/go-toolsmith/astfmt \
+ go-toolsmith:astp:v1.0.0:go_toolsmith_astp/vendor/github.com/go-toolsmith/astp \
+ go-toolsmith:strparse:v1.0.0:go_toolsmith_strparse/vendor/github.com/go-toolsmith/strparse \
+ go-toolsmith:typep:v1.0.2:go_toolsmith_typep/vendor/github.com/go-toolsmith/typep \
+ go-xmlfmt:xmlfmt:d5b6f63a941b:go_xmlfmt_xmlfmt/vendor/github.com/go-xmlfmt/xmlfmt \
+ go-yaml:yaml:9f266ea9e77c:go_yaml_yaml_1/vendor/gopkg.in/yaml.v3 \
+ go-yaml:yaml:v2.4.0:go_yaml_yaml/vendor/gopkg.in/yaml.v2 \
+ gobwas:glob:v0.2.3:gobwas_glob/vendor/github.com/gobwas/glob \
+ gofrs:flock:v0.8.0:gofrs_flock/vendor/github.com/gofrs/flock \
+ golang-sql:civil:cb61b32ac6fe:golang_sql_civil/vendor/github.com/golang-sql/civil \
+ golang:crypto:75b288015ac9:golang_crypto/vendor/golang.org/x/crypto \
+ golang:image:e7c1f5e7dbb8:golang_image/vendor/golang.org/x/image \
+ golang:mod:v0.4.0:golang_mod/vendor/golang.org/x/mod \
+ golang:net:c7110b5ffcbb:golang_net/vendor/golang.org/x/net \
+ golang:protobuf:v1.4.3:golang_protobuf/vendor/github.com/golang/protobuf \
+ golang:sys:489259a85091:golang_sys/vendor/golang.org/x/sys \
+ golang:text:v0.3.4:golang_text/vendor/golang.org/x/text \
+ golang:tools:9ed45478a130:golang_tools/vendor/golang.org/x/tools \
+ golang:xerrors:5ec99f83aff1:golang_xerrors/vendor/golang.org/x/xerrors \
+ golangci:check:cfe4005ccda2:golangci_check/vendor/github.com/golangci/check \
+ golangci:dupl:3e9179ac440a:golangci_dupl/vendor/github.com/golangci/dupl \
+ golangci:errcheck:ef45e06d44b6:golangci_errcheck/vendor/github.com/golangci/errcheck \
+ golangci:go-misc:927a3d87b613:golangci_go_misc/vendor/github.com/golangci/go-misc \
+ golangci:gocyclo:0a533e8fa43d:golangci_gocyclo/vendor/github.com/golangci/gocyclo \
+ golangci:gofmt:244bba706f1a:golangci_gofmt/vendor/github.com/golangci/gofmt \
+ golangci:golangci-lint:v1.36.0:golangci_golangci_lint/vendor/github.com/golangci/golangci-lint \
+ golangci:ineffassign:42439a7714cc:golangci_ineffassign/vendor/github.com/golangci/ineffassign \
+ golangci:lint-1:297bf364a8e0:golangci_lint_1/vendor/github.com/golangci/lint-1 \
+ golangci:maligned:b1d89398deca:golangci_maligned/vendor/github.com/golangci/maligned \
+ golangci:misspell:950f5d19e770:golangci_misspell/vendor/github.com/golangci/misspell \
+ golangci:prealloc:215b22d4de21:golangci_prealloc/vendor/github.com/golangci/prealloc \
+ golangci:revgrep:d9c87f5ffaf0:golangci_revgrep/vendor/github.com/golangci/revgrep \
+ golangci:unconvert:28b1c447d1f4:golangci_unconvert/vendor/github.com/golangci/unconvert \
+ google:go-cmp:v0.5.4:google_go_cmp/vendor/github.com/google/go-cmp \
+ google:subcommands:v1.0.1:google_subcommands/vendor/github.com/google/subcommands \
+ google:uuid:v1.2.0:google_uuid/vendor/github.com/google/uuid \
+ google:wire:v0.5.0:google_wire/vendor/github.com/google/wire \
+ gorilla:css:v1.0.0:gorilla_css/vendor/github.com/gorilla/css \
+ gostaticanalysis:analysisutil:v0.4.1:gostaticanalysis_analysisutil/vendor/github.com/gostaticanalysis/analysisutil \
+ gostaticanalysis:comment:v1.4.1:gostaticanalysis_comment/vendor/github.com/gostaticanalysis/comment \
+ hashicorp:golang-lru:v0.5.4:hashicorp_golang_lru/vendor/github.com/hashicorp/golang-lru \
+ hashicorp:hcl:v1.0.0:hashicorp_hcl/vendor/github.com/hashicorp/hcl \
+ inconshreveable:mousetrap:v1.0.0:inconshreveable_mousetrap/vendor/github.com/inconshreveable/mousetrap \
+ jgautheron:goconst:ccae5bf973f3:jgautheron_goconst/vendor/github.com/jgautheron/goconst \
+ jingyugao:rowserrcheck:72ab7603b68a:jingyugao_rowserrcheck/vendor/github.com/jingyugao/rowserrcheck \
+ jirfag:go-printf-func-name:45db9963cdd3:jirfag_go_printf_func_name/vendor/github.com/jirfag/go-printf-func-name \
+ karrick:godirwalk:v1.16.1:karrick_godirwalk/vendor/github.com/karrick/godirwalk \
+ kballard:go-shellquote:95032a82bc51:kballard_go_shellquote/vendor/github.com/kballard/go-shellquote \
+ kennygrant:sanitize:6a0bfdde8629:kennygrant_sanitize/vendor/github.com/kennygrant/sanitize \
+ kisielk:gotool:v1.0.0:kisielk_gotool/vendor/github.com/kisielk/gotool \
+ kr:pretty:v0.2.1:kr_pretty/vendor/github.com/kr/pretty \
+ kr:text:v0.2.0:kr_text/vendor/github.com/kr/text \
+ kulti:thelper:v0.2.1:kulti_thelper/vendor/github.com/kulti/thelper \
+ kunwardeep:paralleltest:v1.0.2:kunwardeep_paralleltest/vendor/github.com/kunwardeep/paralleltest \
+ kyoh86:exportloopref:v0.1.8:kyoh86_exportloopref/vendor/github.com/kyoh86/exportloopref \
+ lann:builder:47ae307949d0:lann_builder/vendor/github.com/lann/builder \
+ lann:ps:62de8c46ede0:lann_ps/vendor/github.com/lann/ps \
+ leighmcculloch:gochecknoglobals:acfc0b28355a:leighmcculloch_gochecknoglobals/vendor/4d63.com/gochecknoglobals \
+ lib:pq:v1.9.0:lib_pq/vendor/github.com/lib/pq \
+ magiconair:properties:v1.8.1:magiconair_properties/vendor/github.com/magiconair/properties \
+ maratori:testpackage:v1.0.1:maratori_testpackage/vendor/github.com/maratori/testpackage \
+ matoous:godox:5d6d842e92eb:matoous_godox/vendor/github.com/matoous/godox \
+ mattn:go-colorable:v0.1.8:mattn_go_colorable/vendor/github.com/mattn/go-colorable \
+ mattn:go-isatty:v0.0.12:mattn_go_isatty/vendor/github.com/mattn/go-isatty \
+ mattn:go-sqlite3:v2.0.3:mattn_go_sqlite3/vendor/github.com/mattn/go-sqlite3 \
+ mbilski:exhaustivestruct:v1.1.0:mbilski_exhaustivestruct/vendor/github.com/mbilski/exhaustivestruct \
+ microcosm-cc:bluemonday:v1.0.4:microcosm_cc_bluemonday/vendor/github.com/microcosm-cc/bluemonday \
+ mitchellh:go-homedir:v1.1.0:mitchellh_go_homedir/vendor/github.com/mitchellh/go-homedir \
+ mitchellh:mapstructure:v1.3.2:mitchellh_mapstructure/vendor/github.com/mitchellh/mapstructure \
+ moricho:tparallel:v0.2.1:moricho_tparallel/vendor/github.com/moricho/tparallel \
+ mvdan:gofumpt:v0.1.0:mvdan_gofumpt/vendor/mvdan.cc/gofumpt \
+ mvdan:interfacer:c20040233aed:mvdan_interfacer/vendor/mvdan.cc/interfacer \
+ mvdan:lint:adc824a0674b:mvdan_lint/vendor/mvdan.cc/lint \
+ mvdan:unparam:b37ab49443f7:mvdan_unparam/vendor/mvdan.cc/unparam \
+ nakabonne:nestif:v0.3.0:nakabonne_nestif/vendor/github.com/nakabonne/nestif \
+ nbutton23:zxcvbn-go:e56b841a3c88:nbutton23_zxcvbn_go/vendor/github.com/nbutton23/zxcvbn-go \
+ nishanths:exhaustive:v0.1.0:nishanths_exhaustive/vendor/github.com/nishanths/exhaustive \
+ nishanths:predeclared:v0.2.1:nishanths_predeclared/vendor/github.com/nishanths/predeclared \
+ nxadm:tail:v1.4.4:nxadm_tail/vendor/github.com/nxadm/tail \
+ ogier:pflag:v0.0.1:ogier_pflag/vendor/github.com/ogier/pflag \
+ oklog:run:v1.1.0:oklog_run/vendor/github.com/oklog/run \
+ onsi:ginkgo:v1.15.0:onsi_ginkgo/vendor/github.com/onsi/ginkgo \
+ onsi:gomega:v1.10.5:onsi_gomega/vendor/github.com/onsi/gomega \
+ pelletier:go-toml:v1.8.0:pelletier_go_toml/vendor/github.com/pelletier/go-toml \
+ phayes:checkstyle:bfd46e6a821d:phayes_checkstyle/vendor/github.com/phayes/checkstyle \
+ pkg:errors:v0.9.1:pkg_errors/vendor/github.com/pkg/errors \
+ pmezard:go-difflib:v1.0.0:pmezard_go_difflib/vendor/github.com/pmezard/go-difflib \
+ polyfloyd:go-errorlint:19bd8db6546f:polyfloyd_go_errorlint/vendor/github.com/polyfloyd/go-errorlint \
+ pressly:goose:v2.7.0:pressly_goose/vendor/github.com/pressly/goose \
+ protocolbuffers:protobuf-go:v1.25.0:protocolbuffers_protobuf_go/vendor/google.golang.org/protobuf \
+ quasilyte:go-ruleguard:408e96760278:quasilyte_go_ruleguard/vendor/github.com/quasilyte/go-ruleguard \
+ quasilyte:regex:30656e2c4a95:quasilyte_regex_syntax/vendor/github.com/quasilyte/regex \
+ ryancurrah:gomodguard:v1.2.0:ryancurrah_gomodguard/vendor/github.com/ryancurrah/gomodguard \
+ ryanrolds:sqlclosecheck:v0.3.0:ryanrolds_sqlclosecheck/vendor/github.com/ryanrolds/sqlclosecheck \
+ securego:gosec:v2.6.1:securego_gosec_v2/vendor/github.com/securego/gosec/v2 \
+ shazow:go-diff:b6b7b6733b8c:shazow_go_diff/vendor/github.com/shazow/go-diff \
+ sirupsen:logrus:v1.7.0:sirupsen_logrus/vendor/github.com/sirupsen/logrus \
+ sonatard:noctx:v0.0.1:sonatard_noctx/vendor/github.com/sonatard/noctx \
+ sourcegraph:go-diff:v0.6.1:sourcegraph_go_diff/vendor/github.com/sourcegraph/go-diff \
+ spf13:afero:v1.3.1:spf13_afero/vendor/github.com/spf13/afero \
+ spf13:cast:v1.3.1:spf13_cast/vendor/github.com/spf13/cast \
+ spf13:cobra:v1.1.1:spf13_cobra/vendor/github.com/spf13/cobra \
+ spf13:jwalterweatherman:v1.1.0:spf13_jwalterweatherman/vendor/github.com/spf13/jwalterweatherman \
+ spf13:pflag:v1.0.5:spf13_pflag/vendor/github.com/spf13/pflag \
+ spf13:viper:v1.7.1:spf13_viper/vendor/github.com/spf13/viper \
+ ssgreg:nlreturn:v2.1.0:ssgreg_nlreturn_v2/vendor/github.com/ssgreg/nlreturn/v2 \
+ stretchr:objx:v0.1.1:stretchr_objx/vendor/github.com/stretchr/objx \
+ stretchr:testify:v1.7.0:stretchr_testify/vendor/github.com/stretchr/testify \
+ subosito:gotenv:v1.2.0:subosito_gotenv/vendor/github.com/subosito/gotenv \
+ tdakkota:asciicheck:d7f85be797a2:tdakkota_asciicheck/vendor/github.com/tdakkota/asciicheck \
+ tetafro:godot:v1.4.3:tetafro_godot/vendor/github.com/tetafro/godot \
+ timakin:bodyclose:f7f2e9bca95e:timakin_bodyclose/vendor/github.com/timakin/bodyclose \
+ tomarrell:wrapcheck:df9e8bcb914d:tomarrell_wrapcheck/vendor/github.com/tomarrell/wrapcheck \
+ tommy-muehle:go-mnd:v2.3.1:tommy_muehle_go_mnd_v2/vendor/github.com/tommy-muehle/go-mnd/v2 \
+ ultraware:funlen:v0.0.3:ultraware_funlen/vendor/github.com/ultraware/funlen \
+ ultraware:whitespace:v0.0.4:ultraware_whitespace/vendor/github.com/ultraware/whitespace \
+ unrolled:secure:v1.0.8:unrolled_secure/vendor/github.com/unrolled/secure \
+ uudashr:gocognit:v1.0.1:uudashr_gocognit/vendor/github.com/uudashr/gocognit \
+ wader:tag:d072771f6a51:wader_tag/vendor/github.com/dhowden/tag \
+ xrash:smetrics:89a2a8a1fb0b:xrash_smetrics/vendor/github.com/xrash/smetrics \
+ ziutek:mymysql:v1.5.4:ziutek_mymysql/vendor/github.com/ziutek/mymysql
+
+USE_RC_SUBR= ${PORTNAME}
+
+_BUILD_SHA= 8799358
+
+GO_BUILDFLAGS= -ldflags="-X github.com/navidrome/navidrome/consts.gitSha=${_BUILD_SHA} -X github.com/navidrome/navidrome/consts.gitTag=${GH_TAGNAME}-FREEBSD" -tags=embed,netgo
+
+MAKE_ENV+= npm_config_offline=true
+
+SUB_FILES+= pkg-message config.toml.sample
+SUB_LIST+= PORTNAME=${PORTNAME} \
+ NAVIDROMEUSER=${USERS} \
+ NAVIDROMEGROUP=${GROUPS}
+
+USERS= www
+GROUPS= www
+
+.include <bsd.port.options.mk>
+
+# Compiler runs out of memory when compiling the ui on 32-bit platforms:
+# https://github.com/navidrome/navidrome/issues/524
+.if ${ARCH} != amd64 || ${ARCH} != aarch64
+MAKE_ENV+= NODE_OPTIONS='--max-old-space-size=1492'
+.endif
+
+post-extract:
+ @${MKDIR} ${WRKSRC}/vendor/github.com/chris-ramon
+ @${RLN} ${WRKSRC_aymerick_douceur} ${WRKSRC}/vendor/github.com/chris-ramon/douceur
+
+pre-build:
+ cd ${WRKSRC}/ui && ${SETENV} ${MAKE_ENV} npm ci
+ cd ${WRKSRC}/ui && ${SETENV} ${MAKE_ENV} npm run build
+ cd ${WRKSRC} && \
+ ${SETENV} ${MAKE_ENV} ${LOCALBASE}/bin/go-bindata -fs -prefix "resources" -tags embed -ignore="\\\*.go" -pkg resources -o resources/embedded_gen.go resources/...
+ cd ${WRKSRC} && \
+ ${SETENV} ${MAKE_ENV} ${LOCALBASE}/bin/go-bindata -fs -prefix "ui/build" -tags embed -nocompress -pkg assets -o assets/embedded_gen.go ui/build/...
+
+post-install:
+ @${MKDIR} ${STAGEDIR}${ETCDIR}
+ @${MKDIR} ${STAGEDIR}${DESTDIR}/var/db/${PORTNAME}
+ @${MKDIR} ${STAGEDIR}${DATADIR}/music
+ ${INSTALL_DATA} ${WRKDIR}/config.toml.sample \
+ ${STAGEDIR}${ETCDIR}/config.toml.sample
+
+# Helper target to make the generation of node_modules easier
+make-npm-cache:
+ # Run "make extract" before executing this target
+ @cd ${WRKDIR} && ${RM} -r .npm
+ @cd ${WRKSRC}/ui \
+ && ${SETENV} HOME=${WRKDIR} npm ci
+ @cd ${WRKDIR} \
+ && ${TAR} -czf ${PORTNAME}-npm-cache-${DISTVERSION}${EXTRACT_SUFX} .npm \
+ && ${ECHO} "Please upload the file ${WRKDIR}/${PORTNAME}-npm-cache-${DISTVERSION}${EXTRACT_SUFX}"
+
+.include <bsd.port.mk>
diff --git a/multimedia/navidrome/distinfo b/multimedia/navidrome/distinfo
new file mode 100644
index 000000000000..23553fb27941
--- /dev/null
+++ b/multimedia/navidrome/distinfo
@@ -0,0 +1,337 @@
+TIMESTAMP = 1615742277
+SHA256 (navidrome/navidrome-npm-cache-0.40.0.tar.gz) = 49da763cd44dc38ce2ea7f90e4c667bd0c3fb82388ccd5a2fca3df7f549dd990
+SIZE (navidrome/navidrome-npm-cache-0.40.0.tar.gz) = 62994488
+SHA256 (navidrome/navidrome-navidrome-v0.40.0_GH0.tar.gz) = 3f4c9462c033e9c87a191da4aa0d1a742e5a7e5394e8f54e2f71a44cecfe9650
+SIZE (navidrome/navidrome-navidrome-v0.40.0_GH0.tar.gz) = 9021803
+SHA256 (navidrome/BurntSushi-toml-v0.3.1_GH0.tar.gz) = 6593da894578ba510a470735ffbdc88ce88033094dc5a8f4d3957ab87e18803f
+SIZE (navidrome/BurntSushi-toml-v0.3.1_GH0.tar.gz) = 42077
+SHA256 (navidrome/ClickHouse-clickhouse-go-v1.4.3_GH0.tar.gz) = 6a4a8882ecaf2042317086f06290509d30cae5db3b742047bc339f48c0622478
+SIZE (navidrome/ClickHouse-clickhouse-go-v1.4.3_GH0.tar.gz) = 697373
+SHA256 (navidrome/Djarvur-go-err113-5174e21577d5_GH0.tar.gz) = 7699daea0eea426e5bc6018b423a0a71138ba5989862dc941407c5d5f80d7c4e
+SIZE (navidrome/Djarvur-go-err113-5174e21577d5_GH0.tar.gz) = 8678
+SHA256 (navidrome/Masterminds-semver-v1.5.0_GH0.tar.gz) = c9140eddfb03dc862f826e7761561260b9a840afa7519cc0919e89a43b5be5ba
+SIZE (navidrome/Masterminds-semver-v1.5.0_GH0.tar.gz) = 21188
+SHA256 (navidrome/Masterminds-squirrel-v1.5.0_GH0.tar.gz) = 75ffb7555e2cde9fa25622c031b0b72058b5644e6d7eb004238c250957d97c52
+SIZE (navidrome/Masterminds-squirrel-v1.5.0_GH0.tar.gz) = 30302
+SHA256 (navidrome/OpenPeeDeeP-depguard-v1.0.1_GH0.tar.gz) = 0f45087f31a7e1489c5c854e561749b8208bbab0abe734df4f94442766959384
+SIZE (navidrome/OpenPeeDeeP-depguard-v1.0.1_GH0.tar.gz) = 17641
+SHA256 (navidrome/ashanbrown-forbidigo-v1.0.0_GH0.tar.gz) = e121ad8bba9d4e8d14c116fc0e4a9780dcbdf26fad837a56cd43af327c8ec814
+SIZE (navidrome/ashanbrown-forbidigo-v1.0.0_GH0.tar.gz) = 5149
+SHA256 (navidrome/ashanbrown-makezero-7b7cdbb3025a_GH0.tar.gz) = eed4c183e6772ef04453e7d00afb63a6713ff71fa2309e4aa888b4c6de46295c
+SIZE (navidrome/ashanbrown-makezero-7b7cdbb3025a_GH0.tar.gz) = 6398
+SHA256 (navidrome/astaxie-beego-v1.12.3_GH0.tar.gz) = 948b105f83170a8124174b45b29e9f36675e2346e1f50a7f66c3bc3bef3fa336
+SIZE (navidrome/astaxie-beego-v1.12.3_GH0.tar.gz) = 312199
+SHA256 (navidrome/aymerick-douceur-v0.2.0_GH0.tar.gz) = ceed015cddc99b600ccbbd6aa0ebe39063554049f70153887d3df7c21fefedbb
+SIZE (navidrome/aymerick-douceur-v0.2.0_GH0.tar.gz) = 20914
+SHA256 (navidrome/bombsimon-wsl-v3.1.0_GH0.tar.gz) = 9496cccc3ba50ee7e555a1a837801de44883827725cc665d22c4ca66429c4ef5
+SIZE (navidrome/bombsimon-wsl-v3.1.0_GH0.tar.gz) = 26463
+SHA256 (navidrome/bradleyjkemp-cupaloy-v2.3.0_GH0.tar.gz) = 8aeed220eb63ddaf634a365ad77752124eea80400d59e7f549e40796a29341ed
+SIZE (navidrome/bradleyjkemp-cupaloy-v2.3.0_GH0.tar.gz) = 274579
+SHA256 (navidrome/cespare-reflex-v0.3.0_GH0.tar.gz) = cadb2d439bedc81df0f14e33ef14e3dfc088b95965bf7a6b2e880eb5220a39d5
+SIZE (navidrome/cespare-reflex-v0.3.0_GH0.tar.gz) = 17909
+SHA256 (navidrome/cespare-xxhash-v2.1.1_GH0.tar.gz) = 0ee31178d2c5a1249be4e26294a2f428008dc4e1ecbbfbe47f74e41026df1148
+SIZE (navidrome/cespare-xxhash-v2.1.1_GH0.tar.gz) = 9292
+SHA256 (navidrome/chris-ramon-douceur-v0.2.0_GH0.tar.gz) = ceed015cddc99b600ccbbd6aa0ebe39063554049f70153887d3df7c21fefedbb
+SIZE (navidrome/chris-ramon-douceur-v0.2.0_GH0.tar.gz) = 20914
+SHA256 (navidrome/cloudflare-golz4-ef862a3cdc58_GH0.tar.gz) = 324ef2685faede75c6ea0c8fde73d31bc411b0ac604e999d32de9bf7a8fb8147
+SIZE (navidrome/cloudflare-golz4-ef862a3cdc58_GH0.tar.gz) = 28881
+SHA256 (navidrome/cloudfoundry-go-diodes-f77fb823c7ee_GH0.tar.gz) = b24b1022add7bd9c8eaf2e9dc5e88459c51bbe6b7b248e7cf721557585ede46c
+SIZE (navidrome/cloudfoundry-go-diodes-f77fb823c7ee_GH0.tar.gz) = 11813
+SHA256 (navidrome/creack-pty-v1.1.11_GH0.tar.gz) = ee903119251fdf7d90dae890fec40015c5b6049daa68ec8d8750c3ebceaaf5ed
+SIZE (navidrome/creack-pty-v1.1.11_GH0.tar.gz) = 8396
+SHA256 (navidrome/daixiang0-gci-v0.2.8_GH0.tar.gz) = 55fdfe1d60095c742939d51dca001dbbd379b7b0d4af9b22f694462194da57e2
+SIZE (navidrome/daixiang0-gci-v0.2.8_GH0.tar.gz) = 8484
+SHA256 (navidrome/davecgh-go-spew-v1.1.1_GH0.tar.gz) = 7d82b9bb7291adbe7498fe946920ab3e7fc9e6cbfc3b2294693fad00bf0dd17e
+SIZE (navidrome/davecgh-go-spew-v1.1.1_GH0.tar.gz) = 42152
+SHA256 (navidrome/deluan-rest-b71e558c45d0_GH0.tar.gz) = d3fecd4a6b04cd8f45f37cf2c1cc7a12b7e170cf9e60f6cb5c80295c0bd31e0a
+SIZE (navidrome/deluan-rest-b71e558c45d0_GH0.tar.gz) = 10464
+SHA256 (navidrome/denis-tingajkin-go-header-v0.4.2_GH0.tar.gz) = 158e094296ff2eab1a22592800077576582de21fc5187b891306c57813d74fa7
+SIZE (navidrome/denis-tingajkin-go-header-v0.4.2_GH0.tar.gz) = 20760
+SHA256 (navidrome/denisenkom-go-mssqldb-v0.9.0_GH0.tar.gz) = a7f37c85fc2348a50a574cfe30b821d59ccea2224732735fbfcf50e826fbb692
+SIZE (navidrome/denisenkom-go-mssqldb-v0.9.0_GH0.tar.gz) = 522803
+SHA256 (navidrome/dgrijalva-jwt-go-v3.2.0_GH0.tar.gz) = 197465ef53219f3aeb1a6940b70e16d288fe4e4108d4831b91ea101118440e63
+SIZE (navidrome/dgrijalva-jwt-go-v3.2.0_GH0.tar.gz) = 36960
+SHA256 (navidrome/disintegration-imaging-v1.6.2_GH0.tar.gz) = ddc0cbbf306630d39ee710ff055bb9503d30598485f76f51564ee3ae13d6611a
+SIZE (navidrome/disintegration-imaging-v1.6.2_GH0.tar.gz) = 2212334
+SHA256 (navidrome/djherbis-atime-v1.0.0_GH0.tar.gz) = 208e5483fa0380c842605c09f52ba82b328c8ae996d6734da873e60587893f02
+SIZE (navidrome/djherbis-atime-v1.0.0_GH0.tar.gz) = 2911
+SHA256 (navidrome/djherbis-fscache-a0daa9e52747_GH0.tar.gz) = 65261046b5643b062596e50e4d95effa975bff3b5772981180d51158fab547f6
+SIZE (navidrome/djherbis-fscache-a0daa9e52747_GH0.tar.gz) = 14412
+SHA256 (navidrome/djherbis-stream-v1.3.1_GH0.tar.gz) = f6997602a6c4a8fffd6281e06c62999f789782c7ae3bbcef0081a984ace5afc0
+SIZE (navidrome/djherbis-stream-v1.3.1_GH0.tar.gz) = 10997
+SHA256 (navidrome/dominikh-go-tools-v0.0.1-2020.1.6_GH0.tar.gz) = 2c0dfc658e239436a1e4493daacd57c9eafe91a4423a8dce6ec35c11e5895b3e
+SIZE (navidrome/dominikh-go-tools-v0.0.1-2020.1.6_GH0.tar.gz) = 408274
+SHA256 (navidrome/dustin-go-humanize-v1.0.0_GH0.tar.gz) = e4540bd50ac855143b4f2e509313079c50cf5d8774f09cc10dbca5ae9803d8ba
+SIZE (navidrome/dustin-go-humanize-v1.0.0_GH0.tar.gz) = 17260
+SHA256 (navidrome/esimonov-ifshort-v1.0.0_GH0.tar.gz) = 6d1f126d23809628af04d478b3024c66ebb007a69ede4b4aeadcf6e872b93f2b
+SIZE (navidrome/esimonov-ifshort-v1.0.0_GH0.tar.gz) = 7671
+SHA256 (navidrome/fatih-color-v1.10.0_GH0.tar.gz) = a00342a7ffb8b119346dce56e152a111cbb9eab3970c429cc2ed4272aec2858e
+SIZE (navidrome/fatih-color-v1.10.0_GH0.tar.gz) = 1267532
+SHA256 (navidrome/fsnotify-fsnotify-v1.4.9_GH0.tar.gz) = 4f888b1cb132026227826751d156c0a2958e7d492e5e38386cde8848ef494dcb
+SIZE (navidrome/fsnotify-fsnotify-v1.4.9_GH0.tar.gz) = 31900
+SHA256 (navidrome/go-bindata-go-bindata-v3.1.2_GH0.tar.gz) = fa6e8bf0e2e2a0cee46df56c584bfc97f3efa8f97be7fe691e66224f2c1df0c4
+SIZE (navidrome/go-bindata-go-bindata-v3.1.2_GH0.tar.gz) = 19674
+SHA256 (navidrome/go-chi-chi-v1.5.1_GH0.tar.gz) = 5cccd5cbe201fb9f945c116c18b9501f0cd96b4fc430179a4e304e0b9c879139
+SIZE (navidrome/go-chi-chi-v1.5.1_GH0.tar.gz) = 80744
+SHA256 (navidrome/go-chi-cors-v1.1.1_GH0.tar.gz) = a149306df4956999f97e6c7d2ae9180c61a6c03eacaa61b49a1ee54196bf025b
+SIZE (navidrome/go-chi-cors-v1.1.1_GH0.tar.gz) = 8349
+SHA256 (navidrome/go-chi-httprate-v0.4.0_GH0.tar.gz) = 586f1bb3e8cb2c11648ce96c9d05f2615f471a4867d611697c56114a070718d4
+SIZE (navidrome/go-chi-httprate-v0.4.0_GH0.tar.gz) = 4144
+SHA256 (navidrome/go-chi-jwtauth-v4.0.4_GH0.tar.gz) = 3916050c69087ec0dd12ed15bcbb7248743d5652387c5c43be02cd159a8e9964
+SIZE (navidrome/go-chi-jwtauth-v4.0.4_GH0.tar.gz) = 7605
+SHA256 (navidrome/go-critic-go-critic-v0.5.3_GH0.tar.gz) = e6989276118cffdf5258ccb8577e3ccd9fd2a22b90d4776fef388d0d36287906
+SIZE (navidrome/go-critic-go-critic-v0.5.3_GH0.tar.gz) = 143277
+SHA256 (navidrome/go-ini-ini-v1.57.0_GH0.tar.gz) = e612924cffa395825f32e65db18cff0366705952433e52c6efc81fc1c3adfd2a
+SIZE (navidrome/go-ini-ini-v1.57.0_GH0.tar.gz) = 48424
+SHA256 (navidrome/go-sql-driver-mysql-v1.5.0_GH0.tar.gz) = 9d98b46623037447a26a51a203540bf605b6e6220d31f2efc7396242fcb660b5
+SIZE (navidrome/go-sql-driver-mysql-v1.5.0_GH0.tar.gz) = 90474
+SHA256 (navidrome/go-tomb-tomb-dd632973f1e7_GH0.tar.gz) = b67f4ee9324a78176bc3196fe262388696aeb3f31d9879d498200219f9c4c554
+SIZE (navidrome/go-tomb-tomb-dd632973f1e7_GH0.tar.gz) = 3631
+SHA256 (navidrome/go-toolsmith-astcast-v1.0.0_GH0.tar.gz) = 62b99f2b94319da15c4d2c2a869a94999fa20003fd50a27189c620192b595a48
+SIZE (navidrome/go-toolsmith-astcast-v1.0.0_GH0.tar.gz) = 7452
+SHA256 (navidrome/go-toolsmith-astcopy-v1.0.0_GH0.tar.gz) = 62add5436ef2bf5ee5884e7936c5395dee89107774e87978f7a6074df02f7dc2
+SIZE (navidrome/go-toolsmith-astcopy-v1.0.0_GH0.tar.gz) = 4529
+SHA256 (navidrome/go-toolsmith-astequal-v1.0.0_GH0.tar.gz) = 2d327b8be838ac46ef568836fe29bdfddf699072e23632979af30d98917c911d
+SIZE (navidrome/go-toolsmith-astequal-v1.0.0_GH0.tar.gz) = 6935
+SHA256 (navidrome/go-toolsmith-astfmt-v1.0.0_GH0.tar.gz) = 0c299440e84b1e7dc60e03198c8c5fe7e9b9d3f72f5de67fbc55d8d09482b3a7
+SIZE (navidrome/go-toolsmith-astfmt-v1.0.0_GH0.tar.gz) = 2654
+SHA256 (navidrome/go-toolsmith-astp-v1.0.0_GH0.tar.gz) = 08ddce86dd9578c428470d5f713eab535c91d34c9e007e7ebe364851b1046d92
+SIZE (navidrome/go-toolsmith-astp-v1.0.0_GH0.tar.gz) = 3283
+SHA256 (navidrome/go-toolsmith-strparse-v1.0.0_GH0.tar.gz) = b07b8ab3fdc67b642c530d5f0776ab171bb9946cb8dfe468e4a98a2818c270f1
+SIZE (navidrome/go-toolsmith-strparse-v1.0.0_GH0.tar.gz) = 2469
+SHA256 (navidrome/go-toolsmith-typep-v1.0.2_GH0.tar.gz) = 3f02d53a8f3229a65b98cc3a668234bf7d500ed50d5740d0ccc1c81947120d09
+SIZE (navidrome/go-toolsmith-typep-v1.0.2_GH0.tar.gz) = 4302
+SHA256 (navidrome/go-xmlfmt-xmlfmt-d5b6f63a941b_GH0.tar.gz) = edcdd41cfaa8896b8ea60d45b532431625b552de695a3c60196a71ff3f4ae89e
+SIZE (navidrome/go-xmlfmt-xmlfmt-d5b6f63a941b_GH0.tar.gz) = 5269
+SHA256 (navidrome/go-yaml-yaml-9f266ea9e77c_GH0.tar.gz) = 63efc9aabcbb56b2c9469927784fd67ecb3a79720c4fa754c511335a04156d04
+SIZE (navidrome/go-yaml-yaml-9f266ea9e77c_GH0.tar.gz) = 86898
+SHA256 (navidrome/go-yaml-yaml-v2.4.0_GH0.tar.gz) = d8e94679e5fff6bd1a35e10241543929a5f3da44f701755babf99b3daf0faac0
+SIZE (navidrome/go-yaml-yaml-v2.4.0_GH0.tar.gz) = 73209
+SHA256 (navidrome/gobwas-glob-v0.2.3_GH0.tar.gz) = 325026fc78bcebcf31151b6e060f4e1c3321b04ded3dab63b63610b323c10850
+SIZE (navidrome/gobwas-glob-v0.2.3_GH0.tar.gz) = 25962
+SHA256 (navidrome/gofrs-flock-v0.8.0_GH0.tar.gz) = 64aa198aee88a6b560e2eb9a87794594e0b57c08a784dcb4bd8a0825b9ec5de6
+SIZE (navidrome/gofrs-flock-v0.8.0_GH0.tar.gz) = 8978
+SHA256 (navidrome/golang-sql-civil-cb61b32ac6fe_GH0.tar.gz) = ebc100d46719b1374b59e59bc63baffaec6a2bface5b0d519024f43c097cdc3e
+SIZE (navidrome/golang-sql-civil-cb61b32ac6fe_GH0.tar.gz) = 8359
+SHA256 (navidrome/golang-crypto-75b288015ac9_GH0.tar.gz) = 6e74e21bf9dfdbf0a8dac8cb205fbc3bfd8dff308a24080b9d6093a3858f0db2
+SIZE (navidrome/golang-crypto-75b288015ac9_GH0.tar.gz) = 1729931
+SHA256 (navidrome/golang-image-e7c1f5e7dbb8_GH0.tar.gz) = 424ce3674771f00cc1112826e745efb121bc378bd9e68eac33bbf2198451ed1e
+SIZE (navidrome/golang-image-e7c1f5e7dbb8_GH0.tar.gz) = 4895813
+SHA256 (navidrome/golang-mod-v0.4.0_GH0.tar.gz) = d4458f389f596223fd9730d83d592d5f7fbc5603a4a9ca25fd9a21a140c34553
+SIZE (navidrome/golang-mod-v0.4.0_GH0.tar.gz) = 102301
+SHA256 (navidrome/golang-net-c7110b5ffcbb_GH0.tar.gz) = 605f6a51c193b119a568c40151f74ec8a4634fe94cb01627bb7a1ad7cfe684fe
+SIZE (navidrome/golang-net-c7110b5ffcbb_GH0.tar.gz) = 1248997
+SHA256 (navidrome/golang-protobuf-v1.4.3_GH0.tar.gz) = 5736f943f8647362f5559689df6154f3c85d261fb088867c8a68494e2a767610
+SIZE (navidrome/golang-protobuf-v1.4.3_GH0.tar.gz) = 171969
+SHA256 (navidrome/golang-sys-489259a85091_GH0.tar.gz) = e40f9bc523e1a324d2936f0c6ec031ca9230a1db6efb89fcdb3cbba2552cdd36
+SIZE (navidrome/golang-sys-489259a85091_GH0.tar.gz) = 1098362
+SHA256 (navidrome/golang-text-v0.3.4_GH0.tar.gz) = 39eabfef83413361eafd4353ee9d9821707853235f2e55f3d5b1d38ce698fe89
+SIZE (navidrome/golang-text-v0.3.4_GH0.tar.gz) = 8354508
+SHA256 (navidrome/golang-tools-9ed45478a130_GH0.tar.gz) = 1d82f3d6458724354b457b29f601020c35e43b7336cc95d293efae961eba5dc7
+SIZE (navidrome/golang-tools-9ed45478a130_GH0.tar.gz) = 2675062
+SHA256 (navidrome/golang-xerrors-5ec99f83aff1_GH0.tar.gz) = 71975d658357e170fd6a41f92539cde8b39c9cd8bfe5931b6311bc5f5c0da0d7
+SIZE (navidrome/golang-xerrors-5ec99f83aff1_GH0.tar.gz) = 13664
+SHA256 (navidrome/golangci-check-cfe4005ccda2_GH0.tar.gz) = c8379c7a28b77302a2a1d88dbdd549037ed34a983851b0eb1e0f186e9895af3d
+SIZE (navidrome/golangci-check-cfe4005ccda2_GH0.tar.gz) = 16555
+SHA256 (navidrome/golangci-dupl-3e9179ac440a_GH0.tar.gz) = f56e3ca1b26fbb7a4d84bce6ca2c885043bb8c0fd1ab49ef85d5df02a8afefe2
+SIZE (navidrome/golangci-dupl-3e9179ac440a_GH0.tar.gz) = 18817
+SHA256 (navidrome/golangci-errcheck-ef45e06d44b6_GH0.tar.gz) = af7e397832da5eb444f7eac443035c20ae647e40168e89e5f69558b866e902cb
+SIZE (navidrome/golangci-errcheck-ef45e06d44b6_GH0.tar.gz) = 12102
+SHA256 (navidrome/golangci-go-misc-927a3d87b613_GH0.tar.gz) = afe282d37513ec99c43fbe42082ec63c99bb69c7e9cdd40dc23a94602aff44dc
+SIZE (navidrome/golangci-go-misc-927a3d87b613_GH0.tar.gz) = 149084
+SHA256 (navidrome/golangci-gocyclo-0a533e8fa43d_GH0.tar.gz) = b739f2dbd02176174dee5fbfe215a2ec35fb0e2ec39e85d5327c726daa725094
+SIZE (navidrome/golangci-gocyclo-0a533e8fa43d_GH0.tar.gz) = 3583
+SHA256 (navidrome/golangci-gofmt-244bba706f1a_GH0.tar.gz) = 57fdba40ca9468b006d6886d86e7be32edfc5f23bc176b6cb5b250b9b0a93331
+SIZE (navidrome/golangci-gofmt-244bba706f1a_GH0.tar.gz) = 23042
+SHA256 (navidrome/golangci-golangci-lint-v1.36.0_GH0.tar.gz) = 3476288341b2c6e2b5a426334ec982769a9ea5341e0336198fd33c7250b4928b
+SIZE (navidrome/golangci-golangci-lint-v1.36.0_GH0.tar.gz) = 1270880
+SHA256 (navidrome/golangci-ineffassign-42439a7714cc_GH0.tar.gz) = 14508dfb45de83b77fe8a6fc082328c6a641f514875c692c8c5b6265fe442c1f
+SIZE (navidrome/golangci-ineffassign-42439a7714cc_GH0.tar.gz) = 8824
+SHA256 (navidrome/golangci-lint-1-297bf364a8e0_GH0.tar.gz) = d3c7eb9a32c5953e436eeb31a73a3e7c43e72ace1f03e30514e31bba36ed7816
+SIZE (navidrome/golangci-lint-1-297bf364a8e0_GH0.tar.gz) = 31585
+SHA256 (navidrome/golangci-maligned-b1d89398deca_GH0.tar.gz) = d517ddfaddf53e1abf5f90ce7169004472fc0c653aa0b8c51066f5135ec5afbe
+SIZE (navidrome/golangci-maligned-b1d89398deca_GH0.tar.gz) = 3376
+SHA256 (navidrome/golangci-misspell-950f5d19e770_GH0.tar.gz) = 5c265268de96218bb80115e4463227859470ce7f01e47e6625eb158a802ebc00
+SIZE (navidrome/golangci-misspell-950f5d19e770_GH0.tar.gz) = 240268
+SHA256 (navidrome/golangci-prealloc-215b22d4de21_GH0.tar.gz) = ea1317414c239c301b7bd8b6219de2e90436b9a80191af44154b6a475b11a23b
+SIZE (navidrome/golangci-prealloc-215b22d4de21_GH0.tar.gz) = 9198
+SHA256 (navidrome/golangci-revgrep-d9c87f5ffaf0_GH0.tar.gz) = fa595c0b235058a2a62f8b7ba2b41ccec28c087d1ccb1d23b74ca51344bacc76
+SIZE (navidrome/golangci-revgrep-d9c87f5ffaf0_GH0.tar.gz) = 11455
+SHA256 (navidrome/golangci-unconvert-28b1c447d1f4_GH0.tar.gz) = 558fc4cbd54fe7a44b8510774004139a31ca3baa5929b34fb5024431658958f2
+SIZE (navidrome/golangci-unconvert-28b1c447d1f4_GH0.tar.gz) = 6782
+SHA256 (navidrome/google-go-cmp-v0.5.4_GH0.tar.gz) = 1e4a881d0bc4974107218d08834e2815f634a8bd9b76633fd30ace36d8a6c72b
+SIZE (navidrome/google-go-cmp-v0.5.4_GH0.tar.gz) = 101019
+SHA256 (navidrome/google-subcommands-v1.0.1_GH0.tar.gz) = 7ddd3eac82240ce08b75f9b03ff50483e121329517d9c20570207aaddfeff14f
+SIZE (navidrome/google-subcommands-v1.0.1_GH0.tar.gz) = 8927
+SHA256 (navidrome/google-uuid-v1.2.0_GH0.tar.gz) = 53ba896ce398435b3ba4f9375f5d4908b09c79daaa54ecd4e5000b7bef984380
+SIZE (navidrome/google-uuid-v1.2.0_GH0.tar.gz) = 14158
+SHA256 (navidrome/google-wire-v0.5.0_GH0.tar.gz) = 97f21d31d8a2b3b04feeee1467697c863919b62882ab2ec450ee282dab076812
+SIZE (navidrome/google-wire-v0.5.0_GH0.tar.gz) = 88112
+SHA256 (navidrome/gorilla-css-v1.0.0_GH0.tar.gz) = 9decf83063b85bcd5392f645fac322e986b5fc596b3e44c3be02ee5939106f4c
+SIZE (navidrome/gorilla-css-v1.0.0_GH0.tar.gz) = 6443
+SHA256 (navidrome/gostaticanalysis-analysisutil-v0.4.1_GH0.tar.gz) = 460e9364b2045c3bfff2c2de0148f51f921a9a81c184beca346fd10827e6c0c0
+SIZE (navidrome/gostaticanalysis-analysisutil-v0.4.1_GH0.tar.gz) = 12576
+SHA256 (navidrome/gostaticanalysis-comment-v1.4.1_GH0.tar.gz) = 3bc6a5173277049acf574ec27b8dae9791502a3ad5d532bdb6dab72d5ac8303a
+SIZE (navidrome/gostaticanalysis-comment-v1.4.1_GH0.tar.gz) = 5288
+SHA256 (navidrome/hashicorp-golang-lru-v0.5.4_GH0.tar.gz) = d50c188af0cc8b22e7e4b79e9071694fa06428a9964b22d68dc997fa787a177a
+SIZE (navidrome/hashicorp-golang-lru-v0.5.4_GH0.tar.gz) = 13428
+SHA256 (navidrome/hashicorp-hcl-v1.0.0_GH0.tar.gz) = 50632428210503070fd2fde748c88b7414bf84a6a0eadebf9d8e596a033bead2
+SIZE (navidrome/hashicorp-hcl-v1.0.0_GH0.tar.gz) = 70658
+SHA256 (navidrome/inconshreveable-mousetrap-v1.0.0_GH0.tar.gz) = 5edc7731c819c305623568e317aa253d342be3447def97f1fa9e10eb5ad819f6
+SIZE (navidrome/inconshreveable-mousetrap-v1.0.0_GH0.tar.gz) = 2290
+SHA256 (navidrome/jgautheron-goconst-ccae5bf973f3_GH0.tar.gz) = da9d196ee36f2baccc0d4b5db3ad4bdfab3fedd347c7e9618f750668b635ea85
+SIZE (navidrome/jgautheron-goconst-ccae5bf973f3_GH0.tar.gz) = 6073
+SHA256 (navidrome/jingyugao-rowserrcheck-72ab7603b68a_GH0.tar.gz) = 8d1d2f21507aeb628824719f18430aa30efbbc79b679dbe43c3c925c03833b72
+SIZE (navidrome/jingyugao-rowserrcheck-72ab7603b68a_GH0.tar.gz) = 6829
+SHA256 (navidrome/jirfag-go-printf-func-name-45db9963cdd3_GH0.tar.gz) = 8bc0556d24f5f85fac6032dc3677e6967d3bc9ecd2bb8a5d429345ac85be98d3
+SIZE (navidrome/jirfag-go-printf-func-name-45db9963cdd3_GH0.tar.gz) = 2572
+SHA256 (navidrome/karrick-godirwalk-v1.16.1_GH0.tar.gz) = a0416d5027f6ce66e6a22a9fb7d60ddc756b6e5e8f20398f3c3d43aa0092fd25
+SIZE (navidrome/karrick-godirwalk-v1.16.1_GH0.tar.gz) = 27116
+SHA256 (navidrome/kballard-go-shellquote-95032a82bc51_GH0.tar.gz) = dde336eb697f7f9c26cf6d1467f75b6cf559262c1b0b110d28fff29790f76bc5
+SIZE (navidrome/kballard-go-shellquote-95032a82bc51_GH0.tar.gz) = 4328
+SHA256 (navidrome/kennygrant-sanitize-6a0bfdde8629_GH0.tar.gz) = 8cb2fe88c9b142b89e485aacf295e3a3e24ffdf9eac8448362cb8a1a0bb1e10e
+SIZE (navidrome/kennygrant-sanitize-6a0bfdde8629_GH0.tar.gz) = 8692
+SHA256 (navidrome/kisielk-gotool-v1.0.0_GH0.tar.gz) = 3ee18c8a10449e1a826287aaa7686b175adccf27b20268aeb6c5bf810ccf3d3b
+SIZE (navidrome/kisielk-gotool-v1.0.0_GH0.tar.gz) = 9414
+SHA256 (navidrome/kr-pretty-v0.2.1_GH0.tar.gz) = 01db9d66df2482ad7ade0cf1e194c2d703de4c2ed0a0b1bd3758ab31c5e35ea5
+SIZE (navidrome/kr-pretty-v0.2.1_GH0.tar.gz) = 8761
+SHA256 (navidrome/kr-text-v0.2.0_GH0.tar.gz) = 59b5e4a7fd4097be87fad0edcaf342fdc971d0c8fdfb4f2d7424561471992e7c
+SIZE (navidrome/kr-text-v0.2.0_GH0.tar.gz) = 8699
+SHA256 (navidrome/kulti-thelper-v0.2.1_GH0.tar.gz) = 887af851f5bb0296cb8bfc0b2ffc1db4c9406b0062692afbc20f5d7e23c6b1fa
+SIZE (navidrome/kulti-thelper-v0.2.1_GH0.tar.gz) = 9719
+SHA256 (navidrome/kunwardeep-paralleltest-v1.0.2_GH0.tar.gz) = 9551b500ae3a558256fef979a5339ed8fd917e226354c7f190cc09f30154b471
+SIZE (navidrome/kunwardeep-paralleltest-v1.0.2_GH0.tar.gz) = 4002756
+SHA256 (navidrome/kyoh86-exportloopref-v0.1.8_GH0.tar.gz) = de263858322aa1d17d09a0e6644cc3663581087bfde25da0507543061f3adc38
+SIZE (navidrome/kyoh86-exportloopref-v0.1.8_GH0.tar.gz) = 8995
+SHA256 (navidrome/lann-builder-47ae307949d0_GH0.tar.gz) = 84932a9525df377fc28eb75501fb5385ecf0d08134ac434314578634f741d3b0
+SIZE (navidrome/lann-builder-47ae307949d0_GH0.tar.gz) = 5811
+SHA256 (navidrome/lann-ps-62de8c46ede0_GH0.tar.gz) = 368bddfa4195be5efc255aca58a473ffacfcebf4dca4281f7f109637446db215
+SIZE (navidrome/lann-ps-62de8c46ede0_GH0.tar.gz) = 5527
+SHA256 (navidrome/leighmcculloch-gochecknoglobals-acfc0b28355a_GH0.tar.gz) = 2735a8681b068f7a4c0e885bbf9e1e7920c1f52106354281b365e7fa21e3b8c2
+SIZE (navidrome/leighmcculloch-gochecknoglobals-acfc0b28355a_GH0.tar.gz) = 6487
+SHA256 (navidrome/lib-pq-v1.9.0_GH0.tar.gz) = 9c60e717d83c717de9eae5b71497e546a4c3a384179b2f776fd86e01b8545637
+SIZE (navidrome/lib-pq-v1.9.0_GH0.tar.gz) = 103393
+SHA256 (navidrome/magiconair-properties-v1.8.1_GH0.tar.gz) = 4449df3d2be86608bfc997228f66f1cff57bf620cc5bf9ba44339c7e4c5612dd
+SIZE (navidrome/magiconair-properties-v1.8.1_GH0.tar.gz) = 29735
+SHA256 (navidrome/maratori-testpackage-v1.0.1_GH0.tar.gz) = 85d28cc3da935b038837c28a3beb954f78c7107b86fe2d157c1f0d58a61cea0b
+SIZE (navidrome/maratori-testpackage-v1.0.1_GH0.tar.gz) = 6629
+SHA256 (navidrome/matoous-godox-5d6d842e92eb_GH0.tar.gz) = 69104d52555749bef6474feee4893fb15598b5571bd45445284c09914b1310f6
+SIZE (navidrome/matoous-godox-5d6d842e92eb_GH0.tar.gz) = 7415
+SHA256 (navidrome/mattn-go-colorable-v0.1.8_GH0.tar.gz) = 1027954f9abbe06b6e117e3047af70204dd0eb4f8c27fcd459fb2574b279755f
+SIZE (navidrome/mattn-go-colorable-v0.1.8_GH0.tar.gz) = 9571
+SHA256 (navidrome/mattn-go-isatty-v0.0.12_GH0.tar.gz) = addbdc341d7685ed4cc8d2d8a8fd2bd9b784bde00d0ea99fb251039fc10c611c
+SIZE (navidrome/mattn-go-isatty-v0.0.12_GH0.tar.gz) = 4548
+SHA256 (navidrome/mattn-go-sqlite3-v2.0.3_GH0.tar.gz) = ed015860c9b3e701d8cce7dcb0bcb2e2f53071718334465b10abb696f7de0e58
+SIZE (navidrome/mattn-go-sqlite3-v2.0.3_GH0.tar.gz) = 2335418
+SHA256 (navidrome/mbilski-exhaustivestruct-v1.1.0_GH0.tar.gz) = 4a8390515389483e6bdffadf8d3d05acf98e642fe1b2abc781162a00f2bd5c29
+SIZE (navidrome/mbilski-exhaustivestruct-v1.1.0_GH0.tar.gz) = 4609
+SHA256 (navidrome/microcosm-cc-bluemonday-v1.0.4_GH0.tar.gz) = 0640b89597a9c733dc1bf290c48b4e29fd2d8f7a7cab982930cc0f00d7ddeb74
+SIZE (navidrome/microcosm-cc-bluemonday-v1.0.4_GH0.tar.gz) = 160297
+SHA256 (navidrome/mitchellh-go-homedir-v1.1.0_GH0.tar.gz) = 646671c73a84a8dfb4a5a76b80c7b63549ffefa906524d45077301bc7da76600
+SIZE (navidrome/mitchellh-go-homedir-v1.1.0_GH0.tar.gz) = 3362
+SHA256 (navidrome/mitchellh-mapstructure-v1.3.2_GH0.tar.gz) = 08bd503588e7c45b209af16c517352dec6cc89aa4e6dd7773d1aec85c11f2ba8
+SIZE (navidrome/mitchellh-mapstructure-v1.3.2_GH0.tar.gz) = 25319
+SHA256 (navidrome/moricho-tparallel-v0.2.1_GH0.tar.gz) = c869b73f01178b2f2fb58a81f3a03d716f4cb16648d24357e6855d327c3eb7d9
+SIZE (navidrome/moricho-tparallel-v0.2.1_GH0.tar.gz) = 8071
+SHA256 (navidrome/mvdan-gofumpt-v0.1.0_GH0.tar.gz) = 802c92d3df222c9b266d785305107c58a26ea186c4dbb5989b0db97b9bce0367
+SIZE (navidrome/mvdan-gofumpt-v0.1.0_GH0.tar.gz) = 140649
+SHA256 (navidrome/mvdan-interfacer-c20040233aed_GH0.tar.gz) = d7f5ad906997b12f4b70f8c1f1ccb8935397e5c07a16b2df52717360e7f796eb
+SIZE (navidrome/mvdan-interfacer-c20040233aed_GH0.tar.gz) = 13979
+SHA256 (navidrome/mvdan-lint-adc824a0674b_GH0.tar.gz) = 6f90750f25acee3aa855757ea8a46ee8694e9d18d778712a61157948a9a98fff
+SIZE (navidrome/mvdan-lint-adc824a0674b_GH0.tar.gz) = 2641
+SHA256 (navidrome/mvdan-unparam-b37ab49443f7_GH0.tar.gz) = 56b0f48c09596acab4ea798a1427b61cde3bf8b13796771bf650a74b5ab97748
+SIZE (navidrome/mvdan-unparam-b37ab49443f7_GH0.tar.gz) = 18658
+SHA256 (navidrome/nakabonne-nestif-v0.3.0_GH0.tar.gz) = ac06d2f816e637a092b00431905a9e9ee59e47d24372015eed8055eef2edc3dd
+SIZE (navidrome/nakabonne-nestif-v0.3.0_GH0.tar.gz) = 10011
+SHA256 (navidrome/nbutton23-zxcvbn-go-e56b841a3c88_GH0.tar.gz) = 5d3f24f8dfe24c31e4e7425ef966ab535e5ce289c121bed485b7cc0377372c71
+SIZE (navidrome/nbutton23-zxcvbn-go-e56b841a3c88_GH0.tar.gz) = 881837
+SHA256 (navidrome/nishanths-exhaustive-v0.1.0_GH0.tar.gz) = f649d65f117d0ae1ef541be24bda3e2f303229da8d1ed0e4b7cc1f31245937bd
+SIZE (navidrome/nishanths-exhaustive-v0.1.0_GH0.tar.gz) = 15918
+SHA256 (navidrome/nishanths-predeclared-v0.2.1_GH0.tar.gz) = 57a6942a8d55406c3b0ce91653d22fbc4c84158a96194fcdd5030ecf290a7eb4
+SIZE (navidrome/nishanths-predeclared-v0.2.1_GH0.tar.gz) = 11719
+SHA256 (navidrome/nxadm-tail-v1.4.4_GH0.tar.gz) = 08a132336f9043bdb364f2c50552f3105263108b97319f3b69fbcccfacbef76b
+SIZE (navidrome/nxadm-tail-v1.4.4_GH0.tar.gz) = 1238275
+SHA256 (navidrome/ogier-pflag-v0.0.1_GH0.tar.gz) = 7c6ece58dc487a58a4892b69f2e93cc6357040a1e19ea50f244dec4cd396a782
+SIZE (navidrome/ogier-pflag-v0.0.1_GH0.tar.gz) = 15176
+SHA256 (navidrome/oklog-run-v1.1.0_GH0.tar.gz) = 00c8e2d2071fca7db49027aaaf1e846fa863c4d8a5be33b49898d828ba88cdb5
+SIZE (navidrome/oklog-run-v1.1.0_GH0.tar.gz) = 7991
+SHA256 (navidrome/onsi-ginkgo-v1.15.0_GH0.tar.gz) = 5e94aa7b4305c5fd753ad82021bf4a884cdc7344d6f9b848ca742144267f51ee
+SIZE (navidrome/onsi-ginkgo-v1.15.0_GH0.tar.gz) = 158395
+SHA256 (navidrome/onsi-gomega-v1.10.5_GH0.tar.gz) = fe1433468aed5849c29112e74128a859d88a9f8d741448acc946b94848edb6f3
+SIZE (navidrome/onsi-gomega-v1.10.5_GH0.tar.gz) = 99860
+SHA256 (navidrome/pelletier-go-toml-v1.8.0_GH0.tar.gz) = 535241212044f52bc40c8eb08d15342c75cef8e6c887ceb1e18d25aad4ab3633
+SIZE (navidrome/pelletier-go-toml-v1.8.0_GH0.tar.gz) = 96286
+SHA256 (navidrome/phayes-checkstyle-bfd46e6a821d_GH0.tar.gz) = ead6e6a5ffe113699d8d157f774a74d3d95bf116369cf3057ecd3f269a817a94
+SIZE (navidrome/phayes-checkstyle-bfd46e6a821d_GH0.tar.gz) = 3879
+SHA256 (navidrome/pkg-errors-v0.9.1_GH0.tar.gz) = 56bfd893023daa498508bfe161de1be83299fcf15376035e7df79cbd7d6fa608
+SIZE (navidrome/pkg-errors-v0.9.1_GH0.tar.gz) = 13415
+SHA256 (navidrome/pmezard-go-difflib-v1.0.0_GH0.tar.gz) = 28f3dc1b5c0efd61203ab07233f774740d3bf08da4d8153fb5310db6cea0ebda
+SIZE (navidrome/pmezard-go-difflib-v1.0.0_GH0.tar.gz) = 11398
+SHA256 (navidrome/polyfloyd-go-errorlint-19bd8db6546f_GH0.tar.gz) = 21c42215af587ffd99ddedf05b4368b5b0a4611a04adb3c104d3e7f3d97f2704
+SIZE (navidrome/polyfloyd-go-errorlint-19bd8db6546f_GH0.tar.gz) = 5841
+SHA256 (navidrome/pressly-goose-v2.7.0_GH0.tar.gz) = ce4115e3184d0929a90c5e4215d303aa5243e8d49f8576154396098f0c6536fd
+SIZE (navidrome/pressly-goose-v2.7.0_GH0.tar.gz) = 6320070
+SHA256 (navidrome/protocolbuffers-protobuf-go-v1.25.0_GH0.tar.gz) = c1c04d6e36c0d0fb6f3374197f9025d7e6df13f38a974098be020617c00fbaf2
+SIZE (navidrome/protocolbuffers-protobuf-go-v1.25.0_GH0.tar.gz) = 1258804
+SHA256 (navidrome/quasilyte-go-ruleguard-408e96760278_GH0.tar.gz) = f4e9e6ca219db6340e33813f7721a1f6a8d4c5214b6d242c301ee8bc458d36ac
+SIZE (navidrome/quasilyte-go-ruleguard-408e96760278_GH0.tar.gz) = 188648
+SHA256 (navidrome/quasilyte-regex-30656e2c4a95_GH0.tar.gz) = e2177c6931f513fce13f8e042ec42234b2db7906288f984ec1a483add23e6e3d
+SIZE (navidrome/quasilyte-regex-30656e2c4a95_GH0.tar.gz) = 17497
+SHA256 (navidrome/ryancurrah-gomodguard-v1.2.0_GH0.tar.gz) = b2c114e8863bbaff221feb8d1101ed7d5456402c29f636fbbc08463e0381f7a8
+SIZE (navidrome/ryancurrah-gomodguard-v1.2.0_GH0.tar.gz) = 13996
+SHA256 (navidrome/ryanrolds-sqlclosecheck-v0.3.0_GH0.tar.gz) = 6c591fe24a5bbe5f2d8b8a42d855966640b0e0acc0e641dbce5ec9784e0720d0
+SIZE (navidrome/ryanrolds-sqlclosecheck-v0.3.0_GH0.tar.gz) = 7659
+SHA256 (navidrome/securego-gosec-v2.6.1_GH0.tar.gz) = 2b86e4b9ecaf5c8ef61949c4091d43cf7f20e96fd411d08d72189ec20038a7c8
+SIZE (navidrome/securego-gosec-v2.6.1_GH0.tar.gz) = 83168
+SHA256 (navidrome/shazow-go-diff-b6b7b6733b8c_GH0.tar.gz) = d98aea135da22d3df806b7d39e9259fe1b8fc95e3e44dbce1b4a9ebc7d453c42
+SIZE (navidrome/shazow-go-diff-b6b7b6733b8c_GH0.tar.gz) = 4887
+SHA256 (navidrome/sirupsen-logrus-v1.7.0_GH0.tar.gz) = a7baaa1c646441d002f3867b5998b6b45b629ecfad317d468a981e23e0c9c6ca
+SIZE (navidrome/sirupsen-logrus-v1.7.0_GH0.tar.gz) = 46392
+SHA256 (navidrome/sonatard-noctx-v0.0.1_GH0.tar.gz) = f9b8c9cbc0c8ee007d15d9d9c4e0111119d37ad78917a6ad35aff07a64aa3a44
+SIZE (navidrome/sonatard-noctx-v0.0.1_GH0.tar.gz) = 6873
+SHA256 (navidrome/sourcegraph-go-diff-v0.6.1_GH0.tar.gz) = 37bfa55516d98ac1112ad614a05f196182085933bb15ff5f9060130b16c15bf8
+SIZE (navidrome/sourcegraph-go-diff-v0.6.1_GH0.tar.gz) = 63366
+SHA256 (navidrome/spf13-afero-v1.3.1_GH0.tar.gz) = 026337edf26fdc5929dd975498a89e6145773d24d7d927ded9e2b4d424abf819
+SIZE (navidrome/spf13-afero-v1.3.1_GH0.tar.gz) = 52631
+SHA256 (navidrome/spf13-cast-v1.3.1_GH0.tar.gz) = 4fa8d06903b490ae6f1316e55c5446d5648eea2b450671ebc54d4bbe79bc46b1
+SIZE (navidrome/spf13-cast-v1.3.1_GH0.tar.gz) = 11102
+SHA256 (navidrome/spf13-cobra-v1.1.1_GH0.tar.gz) = 9bf1769caad54bc5a8bd738ddbcceeb57a19fc3158af30e44b3bbb6b8e63ab6d
+SIZE (navidrome/spf13-cobra-v1.1.1_GH0.tar.gz) = 143402
+SHA256 (navidrome/spf13-jwalterweatherman-v1.1.0_GH0.tar.gz) = 4fd850a792c5738954c4801cf549d8d0bf53edd17139cd39d179aa5abf7ec68d
+SIZE (navidrome/spf13-jwalterweatherman-v1.1.0_GH0.tar.gz) = 6871
+SHA256 (navidrome/spf13-pflag-v1.0.5_GH0.tar.gz) = 9a2cae1f8e8ab0d2cc8ebe468e871af28d9ac0962cf0520999e3ba85f0c7b808
+SIZE (navidrome/spf13-pflag-v1.0.5_GH0.tar.gz) = 50796
+SHA256 (navidrome/spf13-viper-v1.7.1_GH0.tar.gz) = de85215b50e9fbb2cdf63b0aa9df826a866dff8f718ba2dc3f5866e98d5bd39a
+SIZE (navidrome/spf13-viper-v1.7.1_GH0.tar.gz) = 82641
+SHA256 (navidrome/ssgreg-nlreturn-v2.1.0_GH0.tar.gz) = 641676ca9ea102bc5223af1fbc06d0bd8ae99c452fa28f81b79b315201fdf146
+SIZE (navidrome/ssgreg-nlreturn-v2.1.0_GH0.tar.gz) = 4658
+SHA256 (navidrome/stretchr-objx-v0.1.1_GH0.tar.gz) = 3bb0a581651f4c040435a70167ab60b723c5af04a5b0326af3c8b01ccc6fdcf0
+SIZE (navidrome/stretchr-objx-v0.1.1_GH0.tar.gz) = 75768
+SHA256 (navidrome/stretchr-testify-v1.7.0_GH0.tar.gz) = 560c0984072cb436b17bbce5699b205d5aa2beb58ef7a94530d7724b5739a8d6
+SIZE (navidrome/stretchr-testify-v1.7.0_GH0.tar.gz) = 91073
+SHA256 (navidrome/subosito-gotenv-v1.2.0_GH0.tar.gz) = 5f6826992c11981018c77377f33dbc56d0be932e0d38a2f51e795c99725e7ba5
+SIZE (navidrome/subosito-gotenv-v1.2.0_GH0.tar.gz) = 7359
+SHA256 (navidrome/tdakkota-asciicheck-d7f85be797a2_GH0.tar.gz) = 0795be1c1973cd381679b96df33e6767ceae641525cf9a7231ce7ac9491fb21c
+SIZE (navidrome/tdakkota-asciicheck-d7f85be797a2_GH0.tar.gz) = 3627
+SHA256 (navidrome/tetafro-godot-v1.4.3_GH0.tar.gz) = 5d9510ba7202a60a9687f841b48d14ed5070b9453566b3e5d51adbe5896c95ee
+SIZE (navidrome/tetafro-godot-v1.4.3_GH0.tar.gz) = 14957
+SHA256 (navidrome/timakin-bodyclose-f7f2e9bca95e_GH0.tar.gz) = 4f3433c74632c8f2dddf53d8913f05a878097b8bab88946bf91cf606b5ee74c5
+SIZE (navidrome/timakin-bodyclose-f7f2e9bca95e_GH0.tar.gz) = 6618
+SHA256 (navidrome/tomarrell-wrapcheck-df9e8bcb914d_GH0.tar.gz) = e05581ff401efd3b486a3e98212fc0593621585895631050ee8efe0059ab1ca6
+SIZE (navidrome/tomarrell-wrapcheck-df9e8bcb914d_GH0.tar.gz) = 9160
+SHA256 (navidrome/tommy-muehle-go-mnd-v2.3.1_GH0.tar.gz) = 61a51971cf2301cfb5e91d56badfc14e08f904d32971f7e4b99f293d0c0700d8
+SIZE (navidrome/tommy-muehle-go-mnd-v2.3.1_GH0.tar.gz) = 1407628
+SHA256 (navidrome/ultraware-funlen-v0.0.3_GH0.tar.gz) = d28f408972a0be299c3d82648fd3631d163cf1eeb94630fb677d3b2a945be862
+SIZE (navidrome/ultraware-funlen-v0.0.3_GH0.tar.gz) = 2019
+SHA256 (navidrome/ultraware-whitespace-v0.0.4_GH0.tar.gz) = 1e08c7f134cc54b76997a15e19f70d2f83e13cbb6f9184c2c14b597b307bcbbf
+SIZE (navidrome/ultraware-whitespace-v0.0.4_GH0.tar.gz) = 2361
+SHA256 (navidrome/unrolled-secure-v1.0.8_GH0.tar.gz) = 3a60fbf23078c8e16665e342e9edd9f8fe4a32b17e474bba385949ca48ca669d
+SIZE (navidrome/unrolled-secure-v1.0.8_GH0.tar.gz) = 13471
+SHA256 (navidrome/uudashr-gocognit-v1.0.1_GH0.tar.gz) = dc69a43d6ecd6f7361bec54a65db5b0a0fc5480143abed0c9a281d25bfb696ae
+SIZE (navidrome/uudashr-gocognit-v1.0.1_GH0.tar.gz) = 5110
+SHA256 (navidrome/wader-tag-d072771f6a51_GH0.tar.gz) = b7c9aa1f930143d056e42eb644dcbe1fa7d020b5259f5802bcc733af66d9e15c
+SIZE (navidrome/wader-tag-d072771f6a51_GH0.tar.gz) = 1798685
+SHA256 (navidrome/xrash-smetrics-89a2a8a1fb0b_GH0.tar.gz) = eb61a33f8ec4d965c75574ff3c22a9a5fd26fe69ead8bf7b7381a786df4b4859
+SIZE (navidrome/xrash-smetrics-89a2a8a1fb0b_GH0.tar.gz) = 1823869
+SHA256 (navidrome/ziutek-mymysql-v1.5.4_GH0.tar.gz) = 111b478d6190786ee098af3f365be0e33ed59e30ec4a2a9066b714515089f062
+SIZE (navidrome/ziutek-mymysql-v1.5.4_GH0.tar.gz) = 61564
diff --git a/multimedia/navidrome/files/config.toml.sample.in b/multimedia/navidrome/files/config.toml.sample.in
new file mode 100644
index 000000000000..9cadbe155d1f
--- /dev/null
+++ b/multimedia/navidrome/files/config.toml.sample.in
@@ -0,0 +1,73 @@
+# Navidrome Configuration File
+# Anything that is commented out will use the default value shown
+#
+# Note: This file is installed by the port and not distributed as part of Navidrome
+
+# Folder where your music library is stored. Can be read-only
+MusicFolder = "%%DATADIR%%/music"
+# Folder to store application data (DB, cache…).
+#DataFolder = "/var/db/navidrome"
+# How frequently to scan for changes in your music library. Set it to 0 to disable scans
+#ScanInterval = "1m"
+
+# Log level. Useful for troubleshooting. Possible values: error, info, debug, trace. Default: info
+LogLevel = "info"
+
+# HTTP port Navidrome will use
+#Port = 4533
+# IP address the server will bind to. Comment out to use 0.0.0.0 and :: (all IPs)
+Address = "127.0.0.1"
+
+# Enables transcoding configuration in the UI
+#EnableTranscodingConfig = false
+# Size of transcoding cache. Set to 0 to disable cache
+#TranscodingCacheSize = "100MB"
+# Size of image (art work) cache. Set to 0 to disable cache
+#ImageCacheSize = "100MB"
+# Enable/disable .m3u playlist auto-import
+#AutoImportPlaylists = true
+
+# Base URL (only the path part) to configure Navidrome behind a proxy (ex: /music). Comment out to leave empty
+#BaseUrl = ""
+# Change background image used in the Login page. Comment out to use random music image from Unsplash.com
+#UILoginBackgroundUrl = ""
+# Add a welcome message to the login screen
+#UIWelcomeMessage = ""
+# Send basic info to your own Google Analytics account. Must be in the format UA-XXXXXXXX Empty (disabled)
+#GATrackingID = ""
+
+# List of ignored articles when sorting/indexing artists
+#IgnoredArticles = "The El La Los Las Le Les Os As O A"
+# Match query strings anywhere in searchable fields, not only in word boundaries. Useful for languages where words are not space separated
+#SearchFullString = false
+
+# Configure the order to look for cover art images. Use special embedded value to get embedded images from the audio files
+#CoverArtPriority = "embedded, cover.*, folder.*, front.*"
+# Set JPEG quality percentage for resized cover art images
+#CoverJpegQuality = 75
+# Enable the option in the UI to download music/albums/artists/playlists from the server
+#EnableDownloads = true
+
+# How long Navidrome will wait before closing web ui idle sessions
+#SessionTimeout = "24h"
+# How many login requests can be processed from a single IP during the AuthWindowLength. Set to 0 to disable the limit rater
+#AuthRequestLimit = 5
+# Window Length for the authentication rate limit
+#AuthWindowLength = "20s"
+# Select metadata extractor implementation. Options: taglib or ffmpeg
+#Scanner.Extractor = "taglib"
+
+# Last.FM ApiKey
+#LastFM.ApiKey = ""
+# Last.FM Shared Secret
+#LastFM.Secret = ""
+# Two letter-code for language to be used to retrieve biographies from Last.FM
+#LastFM.Language = "en"
+
+# Spotify Client ID
+#Spotify.ID = ""
+# Spotify Client Secret
+#Spotify.Secret = ""
+
+# Use Gravatar images as the user profile image. Needs the user’s email to be filled. Defaule: false
+EnableGravatar = true
diff --git a/multimedia/navidrome/files/navidrome.in b/multimedia/navidrome/files/navidrome.in
new file mode 100644
index 000000000000..afa980975d3c
--- /dev/null
+++ b/multimedia/navidrome/files/navidrome.in
@@ -0,0 +1,51 @@
+#!/bin/sh
+#
+# PROVIDE: %%PORTNAME%%
+# REQUIRE: NETWORKING
+# KEYWORD:
+#
+# Add the following lines to /etc/rc.conf to enable %%PORTNAME%%:
+# %%PORTNAME%%_enable="YES"
+#
+# %%PORTNAME%%_enable (bool): Set to YES to enable %%PORTNAME%%
+# Default: NO
+# %%PORTNAME%%_config (str): %%PORTNAME%% configration file
+# Default: %%ETCDIR%%/config.toml
+# %%PORTNAME%%_datafolder (str): %%PORTNAME%% Folder to store application data
+# Default: %%NAVIDROMEUSER%%
+# %%PORTNAME%%_user (str): %%PORTNAME%% daemon user
+# Default: %%NAVIDROMEUSER%%
+# %%PORTNAME%%_group (str): %%PORTNAME%% daemon group
+# Default: %%NAVIDROMEUSER%%
+
+. /etc/rc.subr
+
+name="%%PORTNAME%%"
+rcvar="%%PORTNAME%%_enable"
+load_rc_config $name
+
+: ${%%PORTNAME%%_user:="%%NAVIDROMEUSER%%"}
+: ${%%PORTNAME%%_group:="%%NAVIDROMEGROUP%%"}
+: ${%%PORTNAME%%_enable:="NO"}
+: ${%%PORTNAME%%_config:="%%ETCDIR%%/config.toml"}
+: ${%%PORTNAME%%_flags=""}
+: ${%%PORTNAME%%_facility:="daemon"}
+: ${%%PORTNAME%%_priority:="debug"}
+: ${%%PORTNAME%%_datafolder:="/var/db/${name}"}
+
+required_dirs=${%%PORTNAME%%_datafolder}
+required_files=${%%PORTNAME%%_config}
+procname="%%PREFIX%%/bin/${name}"
+pidfile="/var/run/${name}.pid"
+start_precmd="${name}_precmd"
+command=/usr/sbin/daemon
+command_args="-S -l ${%%PORTNAME%%_facility} -s ${%%PORTNAME%%_priority} -T ${name} -t ${name} -p ${pidfile} \
+ ${procname} --configfile ${%%PORTNAME%%_config} --datafolder ${%%PORTNAME%%_datafolder} ${%%PORTNAME%%_flags}"
+
+%%PORTNAME%%_precmd()
+{
+ install -o ${%%PORTNAME%%_user} /dev/null ${pidfile}
+}
+
+run_rc_command "$1"
+
diff --git a/multimedia/navidrome/files/pkg-message.in b/multimedia/navidrome/files/pkg-message.in
new file mode 100644
index 000000000000..a714d0d283db
--- /dev/null
+++ b/multimedia/navidrome/files/pkg-message.in
@@ -0,0 +1,27 @@
+[
+{ type: install
+ message: <<EOM
+
+To run Navidrome at startup, enable it in your /etc/rc.conf:
+sysrc navidrome_enable="YES"
+
+To start Navidrome:
+service navidrome start
+
+To configure Navidrome edit:
+%%ETCDIR%%/config.toml
+
+Navidrome will listen on port 4533 and bind to 127.0.0.1.
+This can be changed in the configuration file above or by passing extra flags
+using "navidrome_flags" in /etc/rc.conf.
+
+navidrome_flags="--address 0.0.0.0 --port 80"
+
+Navidrome is configured to scan for music under "%%DATADIR%%/music".
+This can be changed in the configuration file or by adding "--musicfolder <path>"
+to "navidrome_flags".
+
+EOM
+}
+]
+
diff --git a/multimedia/navidrome/pkg-descr b/multimedia/navidrome/pkg-descr
new file mode 100644
index 000000000000..9fbe16dc8657
--- /dev/null
+++ b/multimedia/navidrome/pkg-descr
@@ -0,0 +1,7 @@
+Modern Music Server and Streamer compatible with Subsonic/Airsonic.
+
+Navidrome is an open source web-based music collection server and streamer.
+It gives you freedom to listen to your music collection from any browser or
+mobile device. It's like your personal Spotify!
+
+WWW: https://www.navidrome.org/
diff --git a/multimedia/navidrome/pkg-plist b/multimedia/navidrome/pkg-plist
new file mode 100644
index 000000000000..231410d44df6
--- /dev/null
+++ b/multimedia/navidrome/pkg-plist
@@ -0,0 +1,6 @@
+@sample %%ETCDIR%%/config.toml.sample
+bin/navidrome
+@dir %%DATADIR%%/music
+@owner www
+@group www
+@dir /var/db/navidrome