aboutsummaryrefslogtreecommitdiffstats
path: root/security/courier-authlib-base
diff options
context:
space:
mode:
authoroliver <oliver@FreeBSD.org>2005-03-02 05:02:00 +0800
committeroliver <oliver@FreeBSD.org>2005-03-02 05:02:00 +0800
commitab59166426018aa13b29035100b58b27e1883105 (patch)
treeaf0ab910c43dd5f0ae26425ed927d8eeafee96ec /security/courier-authlib-base
parent231318f3bc1120f309c050e7bd39d984415a7866 (diff)
downloadfreebsd-ports-gnome-ab59166426018aa13b29035100b58b27e1883105.tar.gz
freebsd-ports-gnome-ab59166426018aa13b29035100b58b27e1883105.tar.zst
freebsd-ports-gnome-ab59166426018aa13b29035100b58b27e1883105.zip
Add BSD master.passwd processing to pw2userdb
Bump PORTREVISION PR: ports/78163 Submitted by: Jose M Rodriguez <josemi@freebsd.jazztel.es>
Diffstat (limited to 'security/courier-authlib-base')
-rw-r--r--security/courier-authlib-base/Makefile2
-rw-r--r--security/courier-authlib-base/files/patch-userdb::pw2userdb.in104
2 files changed, 105 insertions, 1 deletions
diff --git a/security/courier-authlib-base/Makefile b/security/courier-authlib-base/Makefile
index 03babfe85151..a033447050b8 100644
--- a/security/courier-authlib-base/Makefile
+++ b/security/courier-authlib-base/Makefile
@@ -7,7 +7,7 @@
PORTNAME= courier-authlib
PORTVERSION= 0.54
-PORTREVISION= 1
+PORTREVISION= 2
CATEGORIES= mail
MASTER_SITES= ${MASTER_SITE_SOURCEFORGE}
MASTER_SITE_SUBDIR= courier
diff --git a/security/courier-authlib-base/files/patch-userdb::pw2userdb.in b/security/courier-authlib-base/files/patch-userdb::pw2userdb.in
new file mode 100644
index 000000000000..7cb79aa49b02
--- /dev/null
+++ b/security/courier-authlib-base/files/patch-userdb::pw2userdb.in
@@ -0,0 +1,104 @@
+--- userdb/pw2userdb.in.orig Wed Jul 19 13:55:15 2000
++++ userdb/pw2userdb.in Tue Mar 1 21:58:51 2005
+@@ -7,6 +7,8 @@
+ # Copyright 1998 - 1999 Double Precision, Inc. See COPYING for
+ # distribution information.
+
++# Adapted to BSD master.passwd
++
+ use Getopt::Long;
+
+ #
+@@ -22,42 +24,66 @@
+ if $vpopuid;
+
+ $passwd="/etc/passwd" unless $passwd =~ /./;
+-$shadow="/etc/shadow" unless $shadow =~ /./;
++$shadow="/etc/master.passwd" unless $shadow =~ /./;
+
+ $domain="" unless $domain =~ /./;
+ $domain="\@$domain" if $domain =~ /./;
+
+-open(PASSWD, $passwd) || die "$!\n";
+-
+-while (<PASSWD>)
++if (! $noshadow && $shadow =~ /master.passwd$/)
+ {
+- chop if /\n$/;
+- next if /^#/;
+- ($acct,$passwd,$uid,$gid,$name,$home,$shell)=split( /:/ );
+-
+- ($uid,$gid)=($fixed_uid,$fixed_gid) if $vpopuid;
+-
+- $PASSWORD{$acct}=$passwd if $passwd ne "x";
+- $UID{$acct}=$uid;
+- $GID{$acct}=$gid;
+- $HOME{$acct}=$home;
+- $SHELL{$acct}=$shell;
+-
+- $name =~ s/\|/./g; # Just in case
+- $GECOS{$acct}=$name;
+-}
+-close (PASSWD);
++ open(PASSWD, $shadow) || die "$!\n";
+
+-if ( -f $shadow && ! $noshadow)
+-{
+- open (SHADOW, $shadow) || die "$!\n";
+- while (<SHADOW>)
++ while (<PASSWD>)
+ {
++ chop if /\n$/;
+ next if /^#/;
+- ($acct,$passwd,$dummy)=split(/:/);
++ ($acct,$passwd,$uid,$gid,$class,$change,$expire,$name,$home,$shell)=split( /:/ );
++
++ ($uid,$gid)=($fixed_uid,$fixed_gid) if $vpopuid;
++ $name =~ s/\|/./g; # Just in case
++
+ $PASSWORD{$acct}=$passwd;
++ $UID{$acct}=$uid;
++ $GID{$acct}=$gid;
++ $HOME{$acct}=$home;
++ $SHELL{$acct}=$shell;
++ $GECOS{$acct}=$name;
++ }
++ close (PASSWD);
++} else {
++ open(PASSWD, $passwd) || die "$!\n";
++
++ while (<PASSWD>)
++ {
++ chop if /\n$/;
++ next if /^#/;
++ ($acct,$passwd,$uid,$gid,$name,$home,$shell)=split( /:/ );
++
++ ($uid,$gid)=($fixed_uid,$fixed_gid) if $vpopuid;
++
++ $PASSWORD{$acct}=$passwd if $passwd ne "x";
++ $UID{$acct}=$uid;
++ $GID{$acct}=$gid;
++ $HOME{$acct}=$home;
++ $SHELL{$acct}=$shell;
++
++ $name =~ s/\|/./g; # Just in case
++ $GECOS{$acct}=$name;
++ }
++ close (PASSWD);
++
++ if ( -f $shadow && ! $noshadow)
++ {
++ open (SHADOW, $shadow) || die "$!\n";
++ while (<SHADOW>)
++ {
++
++ next if /^#/;
++ ($acct,$passwd,$dummy)=split(/:/);
++ $PASSWORD{$acct}=$passwd;
++ }
++ close (SHADOW);
+ }
+- close (SHADOW);
+ }
+
+ while ( defined ($key=each %UID))