View | Details | Raw Unified | Return to bug 238560 | Differences between
and this patch

Collapse All | Expand All

(-)google-compute-engine-oslogin-20191018.00/Makefile (-23 / +16 lines)
Lines 1-15 Link Here
1
# $FreeBSD$
1
# $FreeBSD$
2
2
3
PORTNAME=	google-compute-engine-oslogin
3
PORTNAME=	google-compute-engine-oslogin
4
DISTVERSION=	1.5.3
4
DISTVERSION=	20191018.00
5
PORTREVISION=	2
6
CATEGORIES=	sysutils
5
CATEGORIES=	sysutils
7
6
8
MAINTAINER=	ports@FreeBSD.org
7
MAINTAINER=	ports@FreeBSD.org
9
COMMENT=	OS Login Guest Environment for Google Compute Engine
8
COMMENT=	OS Login Guest Environment for Google Compute Engine
10
9
11
LICENSE=	APACHE20
10
LICENSE=	APACHE20
12
LICENSE_FILE=	${WRKSRC}/../../LICENSE
11
LICENSE_FILE=	${WRKSRC}/packaging/debian/copyright
13
12
14
LIB_DEPENDS=	libcurl.so:ftp/curl \
13
LIB_DEPENDS=	libcurl.so:ftp/curl \
15
		libjson-c.so:devel/json-c
14
		libjson-c.so:devel/json-c
Lines 20-50 Link Here
20
USE_LDCONFIG=	yes
19
USE_LDCONFIG=	yes
21
USE_GITHUB=	yes
20
USE_GITHUB=	yes
22
GH_ACCOUNT=	GoogleCloudPlatform
21
GH_ACCOUNT=	GoogleCloudPlatform
23
GH_PROJECT=	compute-image-packages
22
GH_PROJECT=	guest-oslogin
24
GH_TAGNAME=	20190522
23
GH_TAGNAME=	5a710bb
25
24
26
MAKE_ARGS=	JSON_INCLUDE_PATH=${LOCALBASE}/include/json-c \
25
PLIST_SUB+=	DISTVERSION=${DISTVERSION}
27
		BIN_INSTALL_PATH=/bin \
28
		PAM_INSTALL_PATH=/lib \
29
		AUTHKEYS_INSTALL_PATH=/bin \
30
		NSS_LIBRARY_SONAME=nss_oslogin.so.1
31
26
32
WRKSRC_SUBDIR=	packages/google-compute-engine-oslogin
27
MAKE_ARGS=	CPPFLAGS="-Iinclude -I${LOCALBASE}/include/json-c -I${LOCALBASE}/include" \
28
		LDLIBS="-lcurl -ljson-c -L${LOCALBASE}/lib" \
29
		DESTDIR=${STAGEDIR}${PREFIX} \
30
		PREFIX=${PREFIX} \
31
		LIBDIR=${PREFIX}/lib \
32
		PAMDIR=${PREFIX}/lib \
33
		MANDIR=${PREFIX}/man
33
34
34
PLIST_SUB=	DISTVERSION=${DISTVERSION}
35
36
post-patch:
37
	@${REINPLACE_CMD} -e 's!%%PREFIX%%!${PREFIX}!' \
38
		${WRKSRC}/bin/google_oslogin_control \
39
		${WRKSRC}/libnss_cache_oslogin/nss_cache_oslogin.c \
40
		${WRKSRC}/nss_cache/nss_cache.cc
41
42
post-install:
35
post-install:
43
	${LN} -sf libnss_${PORTNAME}-${DISTVERSION}.so ${STAGEDIR}${PREFIX}/lib/nss_oslogin.so.1
36
	${LN} -sf libnss_oslogin-${DISTVERSION}.so ${STAGEDIR}${PREFIX}/lib/nss_oslogin.so.1
44
	${LN} -sf libnss_cache_${PORTNAME}-${DISTVERSION}.so ${STAGEDIR}${PREFIX}/lib/nss_cache_oslogin.so.1
37
	${LN} -sf libnss_cache_oslogin-${DISTVERSION}.so ${STAGEDIR}${PREFIX}/lib/nss_cache_oslogin.so.1
45
	${STRIP_CMD} ${STAGEDIR}${PREFIX}/bin/google_authorized_keys \
38
	${STRIP_CMD} ${STAGEDIR}${PREFIX}/bin/google_authorized_keys \
46
		${STAGEDIR}${PREFIX}/lib/libnss_google-compute-engine-oslogin-${DISTVERSION}.so \
39
		${STAGEDIR}${PREFIX}/lib/libnss_oslogin-${DISTVERSION}.so \
47
		${STAGEDIR}${PREFIX}/lib/libnss_cache_google-compute-engine-oslogin-${DISTVERSION}.so \
40
		${STAGEDIR}${PREFIX}/lib/libnss_cache_oslogin-${DISTVERSION}.so \
48
		${STAGEDIR}${PREFIX}/lib/pam_oslogin_admin.so \
41
		${STAGEDIR}${PREFIX}/lib/pam_oslogin_admin.so \
49
		${STAGEDIR}${PREFIX}/lib/pam_oslogin_login.so
42
		${STAGEDIR}${PREFIX}/lib/pam_oslogin_login.so
50
43
(-)google-compute-engine-oslogin-20191018.00/distinfo (-3 / +3 lines)
Lines 1-3 Link Here
1
TIMESTAMP = 1559044433
1
TIMESTAMP = 1571819820
2
SHA256 (GoogleCloudPlatform-compute-image-packages-1.5.3-20190522_GH0.tar.gz) = 8cfb338c3c768ea7e76e479728a1438b2f10b0df13bddd70c9fbcbfc1273efd6
2
SHA256 (GoogleCloudPlatform-guest-oslogin-20191018.00-5a710bb_GH0.tar.gz) = e2416461d61b1f4a81cf13a883ea2922271d09882c951eec61c1d3ca398c927e
3
SIZE (GoogleCloudPlatform-compute-image-packages-1.5.3-20190522_GH0.tar.gz) = 132314
3
SIZE (GoogleCloudPlatform-guest-oslogin-20191018.00-5a710bb_GH0.tar.gz) = 36556
(-)google-compute-engine-oslogin-20191018.00/files/patch-bin_google__oslogin__control (-103 lines)
Lines 1-103 Link Here
1
--- bin/google_oslogin_control.orig	2019-06-14 12:36:44 UTC
2
+++ bin/google_oslogin_control
3
@@ -154,6 +154,7 @@ modify_pam_config() (
4
     pam_account_oslogin="account    optional pam_oslogin_admin.so"
5
     pam_account_admin="account    requisite pam_oslogin_login.so"
6
     pam_session_homedir="session    optional pam_mkhomedir.so"
7
+    pam_account_su="account    optional pam_oslogin_login.so"
8
   fi
9
 
10
   local added_config=""
11
@@ -201,6 +202,11 @@ modify_pam_config() (
12
     # Get location of system-remote-login.
13
     insert=$($sed -rn "/^auth\s+include\s+system-remote-login/=" "$pam_sshd_config")
14
     # TODO: find su_insert point for arch linux.
15
+  elif is_freebsd; then
16
+    # Get location of the first auth occurrence.
17
+    insert=$($sed -rn '/^auth/=' "$pam_sshd_config" | head -1)
18
+    # Get location of the first account occurrence.
19
+    su_insert=$($sed -rn '/^account/=' "$pam_su_config" | head -1)
20
   fi
21
 
22
   added_config="$added_comment"
23
@@ -223,7 +229,7 @@ modify_pam_config() (
24
   # Insert su blocker at top of `su:account` stack.
25
   if [ -n "$su_insert" ] && ! grep -qE "$pam_account_su" "$pam_su_config"; then
26
     added_su_config="${added_comment}\n${pam_account_su}"
27
-    sed -i"" "${su_insert}i ${added_su_config}" "$pam_su_config"
28
+    $sed -i"" "${su_insert}i ${added_su_config}" "$pam_su_config"
29
   fi
30
 
31
   # Append account modules at end of `sshd:account` stack.
32
@@ -314,16 +320,24 @@ restart_sshd() {
33
     return 0
34
   fi
35
   echo "Restarting SSHD"
36
-  for svc in "ssh" "sshd"; do
37
-    restart_service "$svc"
38
-  done
39
+  if is_freebsd; then
40
+    restart_service "sshd"
41
+  else
42
+    for svc in "ssh" "sshd"; do
43
+      restart_service "$svc"
44
+    done
45
+  fi
46
 }
47
 
48
 restart_svcs() {
49
   echo "Restarting optional services."
50
-  for svc in "nscd" "unscd" "systemd-logind" "cron" "crond"; do
51
-    restart_service "$svc"
52
-  done
53
+  if is_freebsd; then
54
+    restart_service "cron"
55
+  else
56
+    for svc in "nscd" "unscd" "systemd-logind" "cron" "crond"; do
57
+      restart_service "$svc"
58
+    done
59
+  fi
60
 }
61
 
62
 setup_google_dirs() {
63
@@ -347,18 +361,34 @@ remove_google_dirs() {
64
 }
65
 
66
 activate() {
67
-  for func in modify_sshd_conf modify_nsswitch_conf \
68
-              modify_pam_config setup_google_dirs restart_svcs restart_sshd \
69
-              modify_group_conf; do
70
+  if is_freebsd; then
71
+    # In FreeBSD there is no pam_group config file similar to
72
+    # /etc/security/group.conf.
73
+    funcs="modify_sshd_conf modify_nsswitch_conf modify_pam_config \
74
+	    setup_google_dirs restart_svcs restart_sshd"
75
+  else
76
+    funcs="modify_sshd_conf modify_nsswitch_conf modify_pam_config \
77
+	    setup_google_dirs restart_svcs restart_sshd modify_group_conf"	
78
+  fi
79
+
80
+  for func in "$funcs"; do
81
     $func
82
     [ $? -eq 0 ] || return 1
83
   done
84
 }
85
 
86
 deactivate() {
87
-  for func in remove_google_dirs restore_nsswitch_conf \
88
-              restore_sshd_conf restore_pam_config restart_svcs restart_sshd \
89
-              restore_group_conf; do
90
+  if is_freebsd; then
91
+    # In FreeBSD there is no pam_group config file similar to
92
+    # /etc/security/group.conf.
93
+    funcs="remove_google_dirs restore_nsswitch_conf restore_sshd_conf \
94
+	    restore_pam_config restart_svcs restart_sshd"
95
+  else
96
+    funcs="remove_google_dirs restore_nsswitch_conf restore_sshd_conf \
97
+	    restore_pam_config restart_svcs restart_sshd restore_group_conf"
98
+  fi
99
+
100
+  for func in "$funcs"; do
101
     $func
102
   done
103
 }
(-)google-compute-engine-oslogin-20191018.00/files/patch-google__oslogin__control (+21 lines)
Line 0 Link Here
1
--- google_oslogin_control.orig	2019-10-18 20:10:43 UTC
2
+++ google_oslogin_control
3
@@ -39,7 +39,8 @@ modify_nsswitch_conf() {
4
 
5
   if ! grep -q '^passwd:.*oslogin' "$nss_config"; then
6
     $sed -i"" '/^passwd:/ s/$/ cache_oslogin oslogin/' "$nss_config"
7
-    $sed -i"" '/^group:/ s/$/ cache_oslogin oslogin/' "$nss_config"
8
+    # OsLogin for group database is still not supported for FreeBSD
9
+    # $sed -i"" '/^group:/ s/$/ cache_oslogin oslogin/' "$nss_config"
10
   fi
11
 
12
   if is_freebsd && grep -q '^passwd:.*compat' "$nss_config"; then
13
@@ -51,7 +52,7 @@ restore_nsswitch_conf() {
14
   local nss_config="${1:-${nss_config}}"
15
 
16
   $sed -i"" '/^passwd:/ s/ cache_oslogin oslogin//' "$nss_config"
17
-  $sed -i"" '/^group:/ s/ cache_oslogin oslogin//' "$nss_config"
18
+  # $sed -i"" '/^group:/ s/ cache_oslogin oslogin//' "$nss_config"
19
   if is_freebsd; then
20
     $sed -i"" '/^passwd:/ s/files/compat/' "$nss_config"
21
   fi
(-)google-compute-engine-oslogin-20191018.00/files/patch-src_Makefile (+29 lines)
Line 0 Link Here
1
--- src/Makefile.orig	2019-10-23 08:18:46 UTC
2
+++ src/Makefile
3
@@ -70,17 +70,21 @@ install: all
4
 	install -d $(DESTDIR)$(PAMDIR)
5
 	install -d $(DESTDIR)$(BINDIR)
6
 	install -d $(DESTDIR)$(MANDIR)/man8
7
-	install -m 0644 -t $(DESTDIR)$(LIBDIR) $(NSS_OSLOGIN) $(NSS_CACHE_OSLOGIN)
8
+	install -m 0644 $(NSS_CACHE_OSLOGIN) $(DESTDIR)$(LIBDIR)
9
+	install -m 0644 $(NSS_OSLOGIN) $(DESTDIR)$(LIBDIR)
10
 	ln -sf $(NSS_OSLOGIN)         $(DESTDIR)$(LIBDIR)/$(NSS_OSLOGIN_SONAME)
11
 	ln -sf $(NSS_CACHE_OSLOGIN)   $(DESTDIR)$(LIBDIR)/$(NSS_CACHE_OSLOGIN_SONAME)
12
-	install -m 0644 -t $(DESTDIR)$(PAMDIR) $(PAM_ADMIN) $(PAM_LOGIN)
13
-	install -m 0755 -t $(DESTDIR)$(BINDIR) $(BINARIES) $(TOPDIR)/google_oslogin_control
14
-	install -m 0644 -t $(DESTDIR)$(MANDIR)/man8 $(TOPDIR)/man/nss-oslogin.8 $(TOPDIR)/man/nss-cache-oslogin.8
15
+	install -m 0644 $(PAM_LOGIN) $(DESTDIR)$(PAMDIR)
16
+	install -m 0644 $(PAM_ADMIN) $(DESTDIR)$(PAMDIR)
17
+	install -m 0755 $(TOPDIR)/google_oslogin_control $(DESTDIR)$(BINDIR)
18
+	install -m 0755 $(BINARIES) $(DESTDIR)$(BINDIR)
19
+	install -m 0644 $(TOPDIR)/man/nss-cache-oslogin.8 $(DESTDIR)$(MANDIR)/man8
20
+	install -m 0644 $(TOPDIR)/man/nss-oslogin.8 $(DESTDIR)$(MANDIR)/man8
21
 	gzip -9 $(DESTDIR)$(MANDIR)/man8/nss-oslogin.8
22
 	gzip -9 $(DESTDIR)$(MANDIR)/man8/nss-cache-oslogin.8
23
 	ln -sf nss-oslogin.8.gz       $(DESTDIR)$(MANDIR)/man8/$(NSS_OSLOGIN_SONAME).8.gz
24
 	ln -sf nss-cache-oslogin.8.gz $(DESTDIR)$(MANDIR)/man8/$(NSS_CACHE_OSLOGIN_SONAME).8.gz
25
 ifdef INSTALL_SELINUX
26
 	install -d $(DESTDIR)/usr/share/selinux/packages
27
-	install -m 0644 -t $(DESTDIR)/usr/share/selinux/packages $(TOPDIR)/selinux/oslogin.pp
28
+	install -m 0644 $(TOPDIR)/selinux/oslogin.pp $(DESTDIR)/usr/share/selinux/packages
29
 endif
(-)google-compute-engine-oslogin-20191018.00/files/patch-src_nss_nss__cache__oslogin.c (+11 lines)
Line 0 Link Here
1
--- src/nss/nss_cache_oslogin.c.orig	2019-10-23 07:01:45 UTC
2
+++ src/nss/nss_cache_oslogin.c
3
@@ -439,7 +439,7 @@ DECLARE_NSS_METHOD_TABLE(methods,
4
     { NSDB_PASSWD, "getgrent_r", __nss_compat_getgrent_r,
5
       (void*)_nss_cache_oslogin_getgrent_r },
6
     { NSDB_PASSWD, "endgrent",   __nss_compat_endgrent,
7
-      (void*)_nss_cache_oslogin_endgrent },
8
+      (void*)_nss_cache_endgrent },
9
     { NSDB_PASSWD, "setgrent",   __nss_compat_setgrent,
10
       (void*)_nss_cache_oslogin_setgrent },
11
 )
(-)google-compute-engine-oslogin-20191018.00/files/patch-src_nss_nss__oslogin.cc (+11 lines)
Line 0 Link Here
1
--- src/nss/nss_oslogin.cc.orig	2019-10-23 06:43:42 UTC
2
+++ src/nss/nss_oslogin.cc
3
@@ -225,7 +225,7 @@ enum nss_status _nss_oslogin_initgroups_dyn(const char
4
   if (p_file == NULL)
5
     return NSS_STATUS_NOTFOUND;
6
   struct passwd *userp;
7
-  while ((userp = fgetpwent(p_file)) != NULL)
8
+  while ((userp = getpwent()) != NULL)
9
     if (strcmp(userp->pw_name, user) == 0)
10
       return NSS_STATUS_NOTFOUND;
11
   fclose(p_file);
(-)google-compute-engine-oslogin-20191018.00/pkg-descr (-1 / +1 lines)
Lines 16-19 Link Here
16
16
17
- bin contains a shell script for (de)activating the package components.
17
- bin contains a shell script for (de)activating the package components.
18
18
19
WWW: https://github.com/GoogleCloudPlatform/compute-image-packages/tree/master/packages/google-compute-engine-oslogin
19
WWW: https://github.com/GoogleCloudPlatform/guest-oslogin
(-)google-compute-engine-oslogin-20191018.00/pkg-plist (-3 / +9 lines)
Lines 1-9 Link Here
1
bin/google_authorized_keys
1
bin/google_authorized_keys
2
bin/google_oslogin_control
2
bin/google_oslogin_control
3
bin/google_oslogin_nss_cache
3
bin/google_oslogin_nss_cache
4
lib/libnss_cache_google-compute-engine-oslogin-%%DISTVERSION%%.so
4
lib/libnss_cache_oslogin-%%DISTVERSION%%.so
5
lib/libnss_google-compute-engine-oslogin-%%DISTVERSION%%.so
5
lib/libnss_cache_oslogin.so.2
6
lib/nss_oslogin.so.1
6
lib/libnss_oslogin-%%DISTVERSION%%.so
7
lib/libnss_oslogin.so.2
7
lib/nss_cache_oslogin.so.1
8
lib/nss_cache_oslogin.so.1
9
lib/nss_oslogin.so.1
8
lib/pam_oslogin_admin.so
10
lib/pam_oslogin_admin.so
9
lib/pam_oslogin_login.so
11
lib/pam_oslogin_login.so
12
man/man8/libnss_cache_oslogin.so.2.8.gz
13
man/man8/libnss_oslogin.so.2.8.gz
14
man/man8/nss-cache-oslogin.8.gz
15
man/man8/nss-oslogin.8.gz

Return to bug 238560