git: 22e6df529b6b - main - security/unix-selfauth-helper: Update to 1.0.1

From: Felix Palmen <zirias_at_FreeBSD.org>
Date: Fri, 12 Aug 2022 13:08:54 UTC
The branch main has been updated by zirias:

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

commit 22e6df529b6b46ef831b0834a390ba4080856f61
Author:     Felix Palmen <zirias@FreeBSD.org>
AuthorDate: 2022-08-12 13:07:58 +0000
Commit:     Felix Palmen <zirias@FreeBSD.org>
CommitDate: 2022-08-12 13:07:58 +0000

    security/unix-selfauth-helper: Update to 1.0.1
    
    Add warning about base bug: pam_exec.so contained a bug that would
    prevent the helper to work correctly in most cases. For 13.x-RELEASE,
    add a script checking the patch level and displaying a warning on
    installation.
    
    Approved by:            tcberner (mentor)
    Differential Revision:  https://reviews.freebsd.org/D36115
---
 security/unix-selfauth-helper/Makefile             |  2 +-
 security/unix-selfauth-helper/distinfo             |  6 +--
 security/unix-selfauth-helper/pkg-post-install.lua | 53 ++++++++++++++++++++++
 3 files changed, 57 insertions(+), 4 deletions(-)

diff --git a/security/unix-selfauth-helper/Makefile b/security/unix-selfauth-helper/Makefile
index cb12102b94d7..acab471f6b9b 100644
--- a/security/unix-selfauth-helper/Makefile
+++ b/security/unix-selfauth-helper/Makefile
@@ -1,5 +1,5 @@
 PORTNAME=	unix-selfauth-helper
-PORTVERSION=	1.0
+DISTVERSION=	1.0.1
 DISTVERSIONPREFIX=	v
 CATEGORIES=	security
 
diff --git a/security/unix-selfauth-helper/distinfo b/security/unix-selfauth-helper/distinfo
index b544eeb0fea9..b87f0b8f8154 100644
--- a/security/unix-selfauth-helper/distinfo
+++ b/security/unix-selfauth-helper/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1655634372
-SHA256 (Zirias-unix-selfauth-helper-v1.0_GH0.tar.gz) = 5a1aff046fb9e76555d7289afbe9c54d73269b5903a2f77f40b456840149a6ef
-SIZE (Zirias-unix-selfauth-helper-v1.0_GH0.tar.gz) = 3924
+TIMESTAMP = 1659607930
+SHA256 (Zirias-unix-selfauth-helper-v1.0.1_GH0.tar.gz) = 24d72c04cc6f42b198378926af0e3d3c0efd7d39e68616482c8b218d4732d261
+SIZE (Zirias-unix-selfauth-helper-v1.0.1_GH0.tar.gz) = 3927
diff --git a/security/unix-selfauth-helper/pkg-post-install.lua b/security/unix-selfauth-helper/pkg-post-install.lua
new file mode 100644
index 000000000000..24b211cc0246
--- /dev/null
+++ b/security/unix-selfauth-helper/pkg-post-install.lua
@@ -0,0 +1,53 @@
+function getfbsduvers ()
+	local osrel = io.open("/etc/os-release")
+	if (not osrel) then return nil end
+	local reldat = {}
+	for line in osrel:lines() do
+		local k, v = string.match(line,
+			'%s*(.+)%s*=%s*"?%s*([^"]+)%s*"?')
+		if (k and v) then reldat[k] = v end
+	end
+	osrel:close()
+	if (not reldat["ID"] or reldat["ID"] ~= "freebsd") then return nil end
+	return reldat["VERSION"]
+end
+
+function printwarning (uvers, required)
+	local msg=[=[
+======
+Message from $pkg:
+
+!!! ATTENTION !!!
+
+You are currently running FreeBSD $vcurr.
+
+Correct operation of $pkg requires a bugfix that was delivered
+in $vreq.
+
+This package is probably installed as a dependency of some screen locker,
+and without the bugfix, YOU WILL PROBABLY BE UNABLE TO UNLOCK YOUR SCREEN.
+
+Please use freebsd-update(8) to update your system before you continue.
+
+See also:
+<URL:https://security.FreeBSD.org/advisories/FreeBSD-EN-22:19.pam_exec.asc>
+]=]
+	local warning = string.gsub(msg, '$(%w+)',
+		{pkg = pkg_name, vcurr = uvers, vreq = required})
+	pkg.print_msg(warning)
+end
+
+fbsduvers = getfbsduvers()
+if (fbsduvers and string.match(fbsduvers, '-RELEASE')) then
+	umaj = tonumber(string.match(fbsduvers, '^[0-9]+'))
+	umin = tonumber(string.match(fbsduvers, '%.([0-9]+)-'))
+	uplv = tonumber(string.match(fbsduvers, '-p([0-9]+)'))
+	if (not uplv) then uplv = 0 end
+	if (umaj == 13 and umin <= 1) then
+		if (umin == 0 and uplv < 12) then
+			printwarning(fbsduvers, "13.0-RELEASE-p12")
+		elseif (umin == 1 and uplv < 1) then
+			printwarning(fbsduvers, "13.1-RELEASE-p1")
+		end
+	end
+end