]> andersk Git - openssh.git/blobdiff - buildpkg.sh.in
- (tim) [configure.ac sshd.8] Enable locked account check (a "*LK*" string)
[openssh.git] / buildpkg.sh.in
index 656754c10d54c3f8f1dcedb5580c29a300f42119..f90ae6e8113e928361ba72e92149af95e00afc41 100644 (file)
@@ -21,6 +21,8 @@ REMOVE_FAKE_ROOT_WHEN_DONE=yes
 # that support the -R option to pkgadd.
 #TEST_DIR=/var/tmp     # leave commented out for production build
 PKGNAME=OpenSSH
+# revisions within the same version (REV=a)
+#REV=
 SYSVINIT_NAME=opensshd
 MAKE=${MAKE:="make"}
 SSHDUID=67     # Default privsep uid
@@ -43,7 +45,7 @@ PKG_POSTREMOVE_LOCAL=../pkg-postremove.local
 PKG_REQUEST_LOCAL=../pkg-request.local
 # end of sourced files
 #
-OPENSSHD_IN=@top_srcdir@/contrib/solaris/opensshd.in
+OPENSSHD=opensshd.init
 
 PATH_GROUPADD_PROG=@PATH_GROUPADD_PROG@
 PATH_USERADD_PROG=@PATH_USERADD_PROG@
@@ -168,11 +170,7 @@ fi
 ## Setup our run level stuff while we are at it.
 mkdir -p $FAKE_ROOT${TEST_DIR}/etc/init.d
 
-## setup our initscript correctly
-sed -e "s#%%configDir%%#${sysconfdir}#g"       \
-    -e "s#%%openSSHDir%%#$prefix#g"            \
-    -e "s#%%pidDir%%#${piddir}#g"              \
-       ${OPENSSHD_IN}  > $FAKE_ROOT${TEST_DIR}/etc/init.d/${SYSVINIT_NAME}
+cp ${OPENSSHD} $FAKE_ROOT${TEST_DIR}/etc/init.d/${SYSVINIT_NAME}
 chmod 744 $FAKE_ROOT${TEST_DIR}/etc/init.d/${SYSVINIT_NAME}
 
 [ "${PERMIT_ROOT_LOGIN}" = no ]  &&  \
@@ -210,7 +208,7 @@ NAME="OpenSSH Portable for ${UNAME_S}"
 DESC="Secure Shell remote access utility; replaces telnet and rlogin/rsh."
 VENDOR="OpenSSH Portable Team - http://www.openssh.com/portable.html"
 ARCH=$ARCH
-VERSION=$VERSION
+VERSION=$VERSION$REV
 CATEGORY="Security,application"
 BASEDIR=/
 CLASSES="none"
@@ -284,11 +282,11 @@ installf ${PKGNAME} \${PKG_INSTALL_ROOT}$TEST_DIR/etc/rcS.d/${SYSVINITSTOPT}${SY
        installf ${PKGNAME} \${PKG_INSTALL_ROOT}$TEST_DIR/etc/rc2.d/${SYSVINITSTART}${SYSVINIT_NAME}=../init.d/${SYSVINIT_NAME} s
 else
        [ "$RCS_D" = yes ]  &&  \
-installf ${PKGNAME} \${PKG_INSTALL_ROOT}$TEST_DIR/etc/rcS.d/${SYSVINITSTOPT}${SYSVINIT_NAME}=$TEST_DIR/etc/init.d/${SYSVINIT_NAME} l
-       installf ${PKGNAME} \${PKG_INSTALL_ROOT}$TEST_DIR/etc/rc0.d/${SYSVINITSTOPT}${SYSVINIT_NAME}=$TEST_DIR/etc/init.d/${SYSVINIT_NAME} l
+installf ${PKGNAME} \${PKG_INSTALL_ROOT}$TEST_DIR/etc/rcS.d/${SYSVINITSTOPT}${SYSVINIT_NAME}=\${PKG_INSTALL_ROOT}$TEST_DIR/etc/init.d/${SYSVINIT_NAME} l
+       installf ${PKGNAME} \${PKG_INSTALL_ROOT}$TEST_DIR/etc/rc0.d/${SYSVINITSTOPT}${SYSVINIT_NAME}=\${PKG_INSTALL_ROOT}$TEST_DIR/etc/init.d/${SYSVINIT_NAME} l
        [ "$RC1_D" = no ]  ||  \
-       installf ${PKGNAME} \${PKG_INSTALL_ROOT}$TEST_DIR/etc/rc1.d/${SYSVINITSTOPT}${SYSVINIT_NAME}=$TEST_DIR/etc/init.d/${SYSVINIT_NAME} l
-       installf ${PKGNAME} \${PKG_INSTALL_ROOT}$TEST_DIR/etc/rc2.d/${SYSVINITSTART}${SYSVINIT_NAME}=$TEST_DIR/etc/init.d/${SYSVINIT_NAME} l
+       installf ${PKGNAME} \${PKG_INSTALL_ROOT}$TEST_DIR/etc/rc1.d/${SYSVINITSTOPT}${SYSVINIT_NAME}=\${PKG_INSTALL_ROOT}$TEST_DIR/etc/init.d/${SYSVINIT_NAME} l
+       installf ${PKGNAME} \${PKG_INSTALL_ROOT}$TEST_DIR/etc/rc2.d/${SYSVINITSTART}${SYSVINIT_NAME}=\${PKG_INSTALL_ROOT}$TEST_DIR/etc/init.d/${SYSVINIT_NAME} l
 fi
 
 # If piddir doesn't exist we add it. (Ie. --with-pid-dir=/var/opt/ssh)
@@ -320,11 +318,27 @@ then
 else
        echo "UsePrivilegeSeparation enabled in config (or defaulting to on)."
 
-       # create group if required
-       if cut -f1 -d: \${PKG_INSTALL_ROOT}/etc/group | egrep '^'$SSH_PRIVSEP_USER'\$' >/dev/null
+       # user required?
+       if cut -f1 -d: \${PKG_INSTALL_ROOT}/etc/passwd | egrep '^'$SSH_PRIVSEP_USER'\$' >/dev/null
        then
-               echo "PrivSep group $SSH_PRIVSEP_USER already exists."
+               echo "PrivSep user $SSH_PRIVSEP_USER already exists."
+               SSH_PRIVSEP_GROUP=\`grep "^$SSH_PRIVSEP_USER:" \${PKG_INSTALL_ROOT}/etc/passwd | awk -F: '{print \$4}'\`
+               SSH_PRIVSEP_GROUP=\`grep ":\$SSH_PRIVSEP_GROUP:" \${PKG_INSTALL_ROOT}/etc/group | awk -F: '{print \$1}'\`
        else
+               DO_PASSWD=yes
+       fi
+       [ -z "\$SSH_PRIVSEP_GROUP" ]  &&  SSH_PRIVSEP_GROUP=$SSH_PRIVSEP_USER
+
+       # group required?
+       if cut -f1 -d: \${PKG_INSTALL_ROOT}/etc/group | egrep '^'\$SSH_PRIVSEP_GROUP'\$' >/dev/null
+       then
+               echo "PrivSep group \$SSH_PRIVSEP_GROUP already exists."
+       else
+               DO_GROUP=yes
+       fi
+
+       # create group if required
+       [ "\$DO_GROUP" = yes ]  &&  {
                # Use gid of 67 if possible
                if cut -f3 -d: \${PKG_INSTALL_ROOT}/etc/group | egrep '^'$SSHDGID'\$' >/dev/null
                then
@@ -332,15 +346,12 @@ else
                else
                        sshdgid="-g $SSHDGID"
                fi
-               echo "Creating PrivSep group $SSH_PRIVSEP_USER."
-               \$chroot ${PATH_GROUPADD_PROG} \$sshdgid $SSH_PRIVSEP_USER
-       fi
+               echo "Creating PrivSep group \$SSH_PRIVSEP_GROUP."
+               \$chroot ${PATH_GROUPADD_PROG} \$sshdgid \$SSH_PRIVSEP_GROUP
+       }
 
        # Create user if required
-       if cut -f1 -d: \${PKG_INSTALL_ROOT}/etc/passwd | egrep '^'$SSH_PRIVSEP_USER'\$' >/dev/null
-       then
-               echo "PrivSep user $SSH_PRIVSEP_USER already exists."
-       else
+       [ "\$DO_PASSWD" = yes ]  &&  {
                # Use uid of 67 if possible
                if cut -f3 -d: \${PKG_INSTALL_ROOT}/etc/passwd | egrep '^'$SSHDGID'\$' >/dev/null
                then
@@ -351,7 +362,7 @@ else
                echo "Creating PrivSep user $SSH_PRIVSEP_USER."
                \$chroot ${PATH_USERADD_PROG} -c 'SSHD PrivSep User' -s /bin/false -g $SSH_PRIVSEP_USER \$sshduid $SSH_PRIVSEP_USER
                \$chroot ${PATH_PASSWD_PROG} -l $SSH_PRIVSEP_USER
-       fi
+       }
 fi
 
 [ "\${POST_INS_START}" = "yes" ]  &&  ${TEST_DIR}/etc/init.d/${SYSVINIT_NAME} start
@@ -530,7 +541,7 @@ cd ..
 
 echo "Building package.."
 pkgmk -d ${FAKE_ROOT} -f $FAKE_ROOT/prototype -o
-echo | pkgtrans -os ${FAKE_ROOT} ${START}/$PKGNAME-$VERSION-$UNAME_S-$ARCH.pkg
+echo | pkgtrans -os ${FAKE_ROOT} ${START}/$PKGNAME-$VERSION$REV-$UNAME_S-$ARCH.pkg
        ;;
 
        justpkg.sh)
@@ -541,10 +552,11 @@ cat >> $FAKE_ROOT/pkginfo << _EOF
 PSTAMP="${UNAME_S} ${OS_VER} ${ARCH} `date '+%d%b%Y %H:%M'`"
 _EOF
 pkgmk -d ${FAKE_ROOT} -f $FAKE_ROOT/prototype -o
-echo | pkgtrans -os ${FAKE_ROOT} ${START}/$PKGNAME-$VERSION-$UNAME_S-$ARCH.pkg
+echo | pkgtrans -os ${FAKE_ROOT} ${START}/$PKGNAME-$VERSION$REV-$UNAME_S-$ARCH.pkg
        ;;
 
 esac
 
 [ "${REMOVE_FAKE_ROOT_WHEN_DONE}" = yes ]  &&  rm -rf $FAKE_ROOT
+exit 0
 
This page took 0.038614 seconds and 4 git commands to generate.