git: e8162ac5393e - main - net-p2p/sonarr: Disable built-in updater and take maintainership

From: Guangyuan Yang <ygy_at_FreeBSD.org>
Date: Sat, 29 Jan 2022 10:06:42 UTC
The branch main has been updated by ygy:

URL: https://cgit.FreeBSD.org/ports/commit/?id=e8162ac5393e1a1adb8e777e8314e13f1aab5d4a

commit e8162ac5393e1a1adb8e777e8314e13f1aab5d4a
Author:     Michiel van Baak Jansen <michiel@vanbaak.eu>
AuthorDate: 2022-01-29 10:06:24 +0000
Commit:     Guangyuan Yang <ygy@FreeBSD.org>
CommitDate: 2022-01-29 10:06:24 +0000

    net-p2p/sonarr: Disable built-in updater and take maintainership
    
    PR:             261340
---
 net-p2p/sonarr/Makefile              |  24 +++-
 net-p2p/sonarr/files/package_info.in |   5 +
 net-p2p/sonarr/files/pkg-message.in  |  26 +++++
 net-p2p/sonarr/files/sonarr.in       |   3 +-
 net-p2p/sonarr/pkg-plist             | 217 +++++++++++++++++++++++++++++++++++
 5 files changed, 268 insertions(+), 7 deletions(-)

diff --git a/net-p2p/sonarr/Makefile b/net-p2p/sonarr/Makefile
index 1b2b13e7608e..a4071cdc7e5c 100644
--- a/net-p2p/sonarr/Makefile
+++ b/net-p2p/sonarr/Makefile
@@ -1,11 +1,11 @@
 PORTNAME=	sonarr
 PORTVERSION=	3.0.6.1342
-PORTREVISION=	0
+PORTREVISION=	1
 CATEGORIES=	net-p2p
 MASTER_SITES=	http://download.sonarr.tv/v3/main/${PORTVERSION}/
 DISTNAME=	Sonarr.main.${PORTVERSION}.linux
 
-MAINTAINER=	ports@FreeBSD.org
+MAINTAINER=	michiel@vanbaak.eu
 COMMENT=	PVR for Usenet and BitTorrent users
 
 LICENSE=	GPLv3
@@ -19,8 +19,17 @@ USE_RC_SUBR=	sonarr
 
 NO_ARCH=	YES
 NO_BUILD=	YES
+
 WRKSRC=	${WRKDIR}/Sonarr
 
+SUB_FILES=	${PORTNAME} package_info pkg-message
+SUB_LIST=	DATADIR=${DATADIR} \
+		GROUPS=${GROUPS} \
+		MAINTAINER=${MAINTAINER} \
+		PKGVERSION=${PKGVERSION} \
+		PORTNAME=${PORTNAME} \
+		USERS=${USERS}
+
 USERS=	sonarr
 GROUPS=	sonarr
 
@@ -31,12 +40,15 @@ X11_LIB_DEPENDS+=libgdiplus.so:x11-toolkits/libgdiplus
 
 .include <bsd.port.options.mk>
 
+post-extract:
+	${RM} -rf ${WRKSRC}/Sonarr.Update
+
 do-install:
-	${INSTALL} -d -m 755 ${STAGEDIR}/${DATADIR}
-	cd ${WRKSRC} && ${COPYTREE_SHARE} \* ${STAGEDIR}/${DATADIR}
+	${INSTALL} -d -m 755 ${STAGEDIR}/${DATADIR}/bin/
+	cd ${WRKSRC} && ${COPYTREE_SHARE} \* ${STAGEDIR}/${DATADIR}/bin/ "! -name Sonarr.exe"
+	${INSTALL_SCRIPT} ${WRKSRC}/Sonarr.exe ${STAGEDIR}/${DATADIR}/bin/
 
 post-install:
-	@${FIND} -s ${STAGEDIR}${DATADIR} -not -type d | ${SORT} | \
-		${SED} -e 's#^${STAGEDIR}${PREFIX}/##' >> ${TMPPLIST}
+	${INSTALL_DATA} ${WRKDIR}/package_info ${STAGEDIR}/${DATADIR}/
 
 .include <bsd.port.mk>
diff --git a/net-p2p/sonarr/files/package_info.in b/net-p2p/sonarr/files/package_info.in
new file mode 100644
index 000000000000..7d6e176c2663
--- /dev/null
+++ b/net-p2p/sonarr/files/package_info.in
@@ -0,0 +1,5 @@
+PackageVersion=%%PKGVERSION%%
+PackageAuthor=%%MAINTAINER%%
+UpdateMethod=External
+UpdateMethodMessage=use 'pkg upgrade' or [create a PR](https://bugs.freebsd.org/bugzilla/enter_bug.cgi?component=Individual%20Port%28s%29&product=Ports%20%26%20Packages) requesting an update of the port
+Branch=main
diff --git a/net-p2p/sonarr/files/pkg-message.in b/net-p2p/sonarr/files/pkg-message.in
new file mode 100644
index 000000000000..dcb8d54f86a2
--- /dev/null
+++ b/net-p2p/sonarr/files/pkg-message.in
@@ -0,0 +1,26 @@
+[
+{ type: install
+  message: <<EOM
+
+This package installs a service file.
+Enable it with "sysrc %%PORTNAME%%_enable=TRUE"
+Start it with "service %%PORTNAME%% start".
+
+If you are running this in a jail please set "allow_mlock=1" or similar
+for this jail otherwise the program will fail to start
+
+Finally, the built-in updater is disabled.
+If you like to use the updater, remove the file %%DATADIR%%/package_info,
+chown the directory %%DATADIR%%/bin to %%USERS%% and restart %%PORTNAME%%
+The built-in updater can now be configured in the Settings tab of %%PORTNAME%%
+
+NOTE: While the built-in updater will update %%PORTNAME%% it has side-effects:
+it breaks the ability of pkg to check for corruption in %%PORTNAME%% files
+it breaks the ability of pkg to determine if it has removed files correctly
+during "pkg remove %%PORTNAME%%" and also
+it breaks the fundamental understanding that updates should be handled only
+by the system that put the files there in the first place.
+
+EOM
+}
+]
diff --git a/net-p2p/sonarr/files/sonarr.in b/net-p2p/sonarr/files/sonarr.in
index ca87b8ba3bb4..4846bf5bcef2 100644
--- a/net-p2p/sonarr/files/sonarr.in
+++ b/net-p2p/sonarr/files/sonarr.in
@@ -19,11 +19,12 @@ load_rc_config $name
 : ${sonarr_enable="NO"}
 : ${sonarr_user:="sonarr"}
 : ${sonarr_data_dir:="%%PREFIX%%/sonarr"}
+: ${sonarr_exec_dir:="%%DATADIR%%/bin"}
 
 pidfile="${sonarr_data_dir}/sonarr.pid"
 procname="%%PREFIX%%/bin/mono"
 command="/usr/sbin/daemon"
-command_args="-f ${procname} %%DATADIR%%/Sonarr.exe --nobrowser --data=${sonarr_data_dir}"
+command_args="-f ${procname} --debug ${sonarr_exec_dir}/Sonarr.exe --nobrowser --data=${sonarr_data_dir}"
 start_precmd=sonarr_precmd
 
 sonarr_precmd()
diff --git a/net-p2p/sonarr/pkg-plist b/net-p2p/sonarr/pkg-plist
new file mode 100644
index 000000000000..d72846fa78cb
--- /dev/null
+++ b/net-p2p/sonarr/pkg-plist
@@ -0,0 +1,217 @@
+%%DATADIR%%/bin/0Harmony.dll
+%%DATADIR%%/bin/BouncyCastle.Crypto.dll
+%%DATADIR%%/bin/CookComputing.XmlRpcV2.dll
+%%DATADIR%%/bin/FluentMigrator.Runner.dll
+%%DATADIR%%/bin/FluentMigrator.dll
+%%DATADIR%%/bin/FluentValidation.dll
+%%DATADIR%%/bin/ICSharpCode.SharpZipLib.dll
+%%DATADIR%%/bin/Ical.Net.Collections.dll
+%%DATADIR%%/bin/Ical.Net.dll
+%%DATADIR%%/bin/LogentriesCore.dll
+%%DATADIR%%/bin/LogentriesCore.dll.mdb
+%%DATADIR%%/bin/LogentriesNLog.dll
+%%DATADIR%%/bin/LogentriesNLog.dll.mdb
+%%DATADIR%%/bin/MailKit.dll
+%%DATADIR%%/bin/Marr.Data.dll
+%%DATADIR%%/bin/Marr.Data.dll.mdb
+%%DATADIR%%/bin/Microsoft.AspNet.SignalR.Core.dll
+%%DATADIR%%/bin/Microsoft.AspNet.SignalR.SystemWeb.dll
+%%DATADIR%%/bin/Microsoft.Owin.Diagnostics.dll
+%%DATADIR%%/bin/Microsoft.Owin.Host.HttpListener.dll
+%%DATADIR%%/bin/Microsoft.Owin.Host.SystemWeb.dll
+%%DATADIR%%/bin/Microsoft.Owin.Hosting.dll
+%%DATADIR%%/bin/Microsoft.Owin.Security.dll
+%%DATADIR%%/bin/Microsoft.Owin.dll
+%%DATADIR%%/bin/Microsoft.Win32.Primitives.dll
+%%DATADIR%%/bin/MimeKit.dll
+%%DATADIR%%/bin/MonoTorrent.dll
+%%DATADIR%%/bin/MonoTorrent.dll.mdb
+%%DATADIR%%/bin/NLog.dll
+%%DATADIR%%/bin/Nancy.Authentication.Basic.dll
+%%DATADIR%%/bin/Nancy.Authentication.Forms.dll
+%%DATADIR%%/bin/Nancy.Owin.dll
+%%DATADIR%%/bin/Nancy.dll
+%%DATADIR%%/bin/Newtonsoft.Json.dll
+%%DATADIR%%/bin/NodaTime.dll
+%%DATADIR%%/bin/OAuth.dll
+%%DATADIR%%/bin/Org.Mentalis.dll
+%%DATADIR%%/bin/Owin.dll
+%%DATADIR%%/bin/RestSharp.dll
+%%DATADIR%%/bin/Sentry.PlatformAbstractions.dll
+%%DATADIR%%/bin/Sentry.Protocol.dll
+%%DATADIR%%/bin/Sentry.dll
+%%DATADIR%%/bin/SixLabors.Core.dll
+%%DATADIR%%/bin/SixLabors.Fonts.dll
+%%DATADIR%%/bin/SixLabors.ImageSharp.Drawing.dll
+%%DATADIR%%/bin/SixLabors.ImageSharp.dll
+%%DATADIR%%/bin/SixLabors.Shapes.dll
+%%DATADIR%%/bin/SocksWebProxy.dll
+%%DATADIR%%/bin/Sonarr.Api.V3.dll
+%%DATADIR%%/bin/Sonarr.Api.V3.dll.mdb
+%%DATADIR%%/bin/Sonarr.Api.dll
+%%DATADIR%%/bin/Sonarr.Api.dll.mdb
+%%DATADIR%%/bin/Sonarr.Common.dll
+%%DATADIR%%/bin/Sonarr.Common.dll.mdb
+%%DATADIR%%/bin/Sonarr.Core.dll
+%%DATADIR%%/bin/Sonarr.Core.dll.config
+%%DATADIR%%/bin/Sonarr.Core.dll.mdb
+%%DATADIR%%/bin/Sonarr.Host.dll
+%%DATADIR%%/bin/Sonarr.Host.dll.mdb
+%%DATADIR%%/bin/Sonarr.Http.dll
+%%DATADIR%%/bin/Sonarr.Http.dll.mdb
+%%DATADIR%%/bin/Sonarr.Mono.dll
+%%DATADIR%%/bin/Sonarr.Mono.dll.mdb
+%%DATADIR%%/bin/Sonarr.RuntimePatches.dll
+%%DATADIR%%/bin/Sonarr.RuntimePatches.dll.mdb
+%%DATADIR%%/bin/Sonarr.SignalR.dll
+%%DATADIR%%/bin/Sonarr.SignalR.dll.mdb
+%%DATADIR%%/bin/Sonarr.exe
+%%DATADIR%%/bin/Sonarr.exe.config
+%%DATADIR%%/bin/Sonarr.exe.mdb
+%%DATADIR%%/bin/System.AppContext.dll
+%%DATADIR%%/bin/System.Buffers.dll
+%%DATADIR%%/bin/System.Collections.Concurrent.dll
+%%DATADIR%%/bin/System.Collections.Immutable.dll
+%%DATADIR%%/bin/System.Collections.NonGeneric.dll
+%%DATADIR%%/bin/System.Collections.Specialized.dll
+%%DATADIR%%/bin/System.Collections.dll
+%%DATADIR%%/bin/System.ComponentModel.Annotations.dll
+%%DATADIR%%/bin/System.ComponentModel.EventBasedAsync.dll
+%%DATADIR%%/bin/System.ComponentModel.Primitives.dll
+%%DATADIR%%/bin/System.ComponentModel.TypeConverter.dll
+%%DATADIR%%/bin/System.ComponentModel.dll
+%%DATADIR%%/bin/System.Console.dll
+%%DATADIR%%/bin/System.Data.Common.dll
+%%DATADIR%%/bin/System.Data.SQLite.dll
+%%DATADIR%%/bin/System.Diagnostics.Contracts.dll
+%%DATADIR%%/bin/System.Diagnostics.Debug.dll
+%%DATADIR%%/bin/System.Diagnostics.FileVersionInfo.dll
+%%DATADIR%%/bin/System.Diagnostics.Process.dll
+%%DATADIR%%/bin/System.Diagnostics.StackTrace.dll
+%%DATADIR%%/bin/System.Diagnostics.TextWriterTraceListener.dll
+%%DATADIR%%/bin/System.Diagnostics.Tools.dll
+%%DATADIR%%/bin/System.Diagnostics.TraceSource.dll
+%%DATADIR%%/bin/System.Diagnostics.Tracing.dll
+%%DATADIR%%/bin/System.Drawing.Primitives.dll
+%%DATADIR%%/bin/System.Dynamic.Runtime.dll
+%%DATADIR%%/bin/System.Globalization.Calendars.dll
+%%DATADIR%%/bin/System.Globalization.Extensions.dll
+%%DATADIR%%/bin/System.Globalization.dll
+%%DATADIR%%/bin/System.IO.Compression.ZipFile.dll
+%%DATADIR%%/bin/System.IO.FileSystem.DriveInfo.dll
+%%DATADIR%%/bin/System.IO.FileSystem.Primitives.dll
+%%DATADIR%%/bin/System.IO.FileSystem.Watcher.dll
+%%DATADIR%%/bin/System.IO.FileSystem.dll
+%%DATADIR%%/bin/System.IO.IsolatedStorage.dll
+%%DATADIR%%/bin/System.IO.MemoryMappedFiles.dll
+%%DATADIR%%/bin/System.IO.Pipes.dll
+%%DATADIR%%/bin/System.IO.UnmanagedMemoryStream.dll
+%%DATADIR%%/bin/System.IO.dll
+%%DATADIR%%/bin/System.Linq.Expressions.dll
+%%DATADIR%%/bin/System.Linq.Parallel.dll
+%%DATADIR%%/bin/System.Linq.Queryable.dll
+%%DATADIR%%/bin/System.Linq.dll
+%%DATADIR%%/bin/System.Memory.dll
+%%DATADIR%%/bin/System.Net.NameResolution.dll
+%%DATADIR%%/bin/System.Net.NetworkInformation.dll
+%%DATADIR%%/bin/System.Net.Ping.dll
+%%DATADIR%%/bin/System.Net.Primitives.dll
+%%DATADIR%%/bin/System.Net.Requests.dll
+%%DATADIR%%/bin/System.Net.Security.dll
+%%DATADIR%%/bin/System.Net.Sockets.dll
+%%DATADIR%%/bin/System.Net.WebHeaderCollection.dll
+%%DATADIR%%/bin/System.Net.WebSockets.Client.dll
+%%DATADIR%%/bin/System.Net.WebSockets.dll
+%%DATADIR%%/bin/System.Numerics.Vectors.dll
+%%DATADIR%%/bin/System.ObjectModel.dll
+%%DATADIR%%/bin/System.Reflection.Extensions.dll
+%%DATADIR%%/bin/System.Reflection.Primitives.dll
+%%DATADIR%%/bin/System.Reflection.dll
+%%DATADIR%%/bin/System.Resources.Reader.dll
+%%DATADIR%%/bin/System.Resources.ResourceManager.dll
+%%DATADIR%%/bin/System.Resources.Writer.dll
+%%DATADIR%%/bin/System.Runtime.CompilerServices.Unsafe.dll
+%%DATADIR%%/bin/System.Runtime.CompilerServices.VisualC.dll
+%%DATADIR%%/bin/System.Runtime.Extensions.dll
+%%DATADIR%%/bin/System.Runtime.Handles.dll
+%%DATADIR%%/bin/System.Runtime.InteropServices.RuntimeInformation.dll
+%%DATADIR%%/bin/System.Runtime.InteropServices.dll
+%%DATADIR%%/bin/System.Runtime.Numerics.dll
+%%DATADIR%%/bin/System.Runtime.Serialization.Formatters.dll
+%%DATADIR%%/bin/System.Runtime.Serialization.Json.dll
+%%DATADIR%%/bin/System.Runtime.Serialization.Primitives.dll
+%%DATADIR%%/bin/System.Runtime.Serialization.Xml.dll
+%%DATADIR%%/bin/System.Runtime.dll
+%%DATADIR%%/bin/System.Security.Claims.dll
+%%DATADIR%%/bin/System.Security.Cryptography.Algorithms.dll
+%%DATADIR%%/bin/System.Security.Cryptography.Csp.dll
+%%DATADIR%%/bin/System.Security.Cryptography.Encoding.dll
+%%DATADIR%%/bin/System.Security.Cryptography.Primitives.dll
+%%DATADIR%%/bin/System.Security.Cryptography.X509Certificates.dll
+%%DATADIR%%/bin/System.Security.Principal.dll
+%%DATADIR%%/bin/System.Security.SecureString.dll
+%%DATADIR%%/bin/System.Text.Encoding.Extensions.dll
+%%DATADIR%%/bin/System.Text.Encoding.dll
+%%DATADIR%%/bin/System.Text.RegularExpressions.dll
+%%DATADIR%%/bin/System.Threading.Overlapped.dll
+%%DATADIR%%/bin/System.Threading.Tasks.Parallel.dll
+%%DATADIR%%/bin/System.Threading.Tasks.dll
+%%DATADIR%%/bin/System.Threading.Thread.dll
+%%DATADIR%%/bin/System.Threading.ThreadPool.dll
+%%DATADIR%%/bin/System.Threading.Timer.dll
+%%DATADIR%%/bin/System.Threading.dll
+%%DATADIR%%/bin/System.ValueTuple.dll
+%%DATADIR%%/bin/System.Xml.ReaderWriter.dll
+%%DATADIR%%/bin/System.Xml.XDocument.dll
+%%DATADIR%%/bin/System.Xml.XPath.XDocument.dll
+%%DATADIR%%/bin/System.Xml.XPath.dll
+%%DATADIR%%/bin/System.Xml.XmlDocument.dll
+%%DATADIR%%/bin/System.Xml.XmlSerializer.dll
+%%DATADIR%%/bin/UI/Content/Fonts/Roboto-Light.ttf
+%%DATADIR%%/bin/UI/Content/Fonts/Roboto-Light.woff
+%%DATADIR%%/bin/UI/Content/Fonts/Roboto-Light.woff2
+%%DATADIR%%/bin/UI/Content/Fonts/Roboto-Regular.ttf
+%%DATADIR%%/bin/UI/Content/Fonts/Roboto-Regular.woff
+%%DATADIR%%/bin/UI/Content/Fonts/Roboto-Regular.woff2
+%%DATADIR%%/bin/UI/Content/Fonts/UbuntuMono-Regular.eot
+%%DATADIR%%/bin/UI/Content/Fonts/UbuntuMono-Regular.ttf
+%%DATADIR%%/bin/UI/Content/Fonts/UbuntuMono-Regular.woff
+%%DATADIR%%/bin/UI/Content/Fonts/fonts.css
+%%DATADIR%%/bin/UI/Content/Fonts/text-security-disc.ttf
+%%DATADIR%%/bin/UI/Content/Fonts/text-security-disc.woff
+%%DATADIR%%/bin/UI/Content/Images/404.png
+%%DATADIR%%/bin/UI/Content/Images/Icons/android-chrome-192x192.png
+%%DATADIR%%/bin/UI/Content/Images/Icons/android-chrome-512x512.png
+%%DATADIR%%/bin/UI/Content/Images/Icons/apple-touch-icon.png
+%%DATADIR%%/bin/UI/Content/Images/Icons/browserconfig.xml
+%%DATADIR%%/bin/UI/Content/Images/Icons/favicon-16x16.png
+%%DATADIR%%/bin/UI/Content/Images/Icons/favicon-32x32.png
+%%DATADIR%%/bin/UI/Content/Images/Icons/favicon-debug-16x16.png
+%%DATADIR%%/bin/UI/Content/Images/Icons/favicon-debug-32x32.png
+%%DATADIR%%/bin/UI/Content/Images/Icons/favicon-debug.ico
+%%DATADIR%%/bin/UI/Content/Images/Icons/favicon.ico
+%%DATADIR%%/bin/UI/Content/Images/Icons/manifest.json
+%%DATADIR%%/bin/UI/Content/Images/Icons/mstile-144x144.png
+%%DATADIR%%/bin/UI/Content/Images/Icons/mstile-150x150.png
+%%DATADIR%%/bin/UI/Content/Images/Icons/mstile-310x150.png
+%%DATADIR%%/bin/UI/Content/Images/Icons/mstile-310x310.png
+%%DATADIR%%/bin/UI/Content/Images/Icons/mstile-70x70.png
+%%DATADIR%%/bin/UI/Content/Images/Icons/safari-pinned-tab.svg
+%%DATADIR%%/bin/UI/Content/Images/error.png
+%%DATADIR%%/bin/UI/Content/Images/logo.svg
+%%DATADIR%%/bin/UI/Content/Images/poster-dark.png
+%%DATADIR%%/bin/UI/Content/robots.txt
+%%DATADIR%%/bin/UI/Content/styles.css
+%%DATADIR%%/bin/UI/Content/styles.css.map
+%%DATADIR%%/bin/UI/index.html
+%%DATADIR%%/bin/UI/index.js
+%%DATADIR%%/bin/UI/index.js.map
+%%DATADIR%%/bin/UI/login.html
+%%DATADIR%%/bin/UI/oauth.html
+%%DATADIR%%/bin/UI/vendors.js
+%%DATADIR%%/bin/UI/vendors.js.LICENSE.txt
+%%DATADIR%%/bin/UI/vendors.js.map
+%%DATADIR%%/bin/antlr.runtime.dll
+%%DATADIR%%/bin/netstandard.dll
+%%DATADIR%%/bin/release_info
+%%DATADIR%%/package_info