This patch moves the processing of usr/sbin/pkcs_slot/pkcs_slot.in
to use a sed script at build time instead of relying on configure
to process it at configure time.

Also use the right autoconf macros to try to identify where
(and what) utilities to use.

In addition, try to use standard directory variables.

Signed-off-by: Klaus Heinrich Kiwi <[email protected]>
---
 configure.in                    |   15 +++++---
 usr/sbin/pkcs_slot/Makefile.am  |   13 +++++++
 usr/sbin/pkcs_slot/pkcs_slot.in |   70 +++++++++++++++++++-------------------
 3 files changed, 57 insertions(+), 41 deletions(-)

diff --git a/configure.in b/configure.in
index 6eb03cc..f876241 100644
--- a/configure.in
+++ b/configure.in
@@ -35,11 +35,15 @@ AC_FUNC_STRFTIME
 AC_FUNC_VPRINTF
 AC_CHECK_FUNCS([getcwd])
 
-# Used in the init scripts
-AC_SUBST(ID, /usr/bin/id)
-AC_SUBST(USERMOD, /usr/sbin/usermod)
-AC_SUBST(GROUPADD, /usr/sbin/groupadd)
-
+dnl Used in various scripts
+AC_PATH_PROG([ID], [id], [/us/bin/id])
+AC_PATH_PROG([USERMOD], [usermod], [/usr/sbin/usermod])
+AC_PATH_PROG([GROUPADD], [groupadd], [/usr/sbin/groupadd])
+AC_PATH_PROG([CAT], [cat], [/bin/cat])
+AC_PATH_PROG([CHMOD], [chmod], [/bin/chmod])
+AC_PATH_PROG([CHGRP], [chgrp], [/bin/chgrp])
+AC_PROG_SED
+AC_PROG_MKDIR_P
 dnl i.e., /usr/local or /usr
 if test "x$prefix" = xNONE; then
   prefix=$ac_default_prefix
@@ -302,7 +306,6 @@ AC_OUTPUT([Makefile usr/Makefile \
           usr/sbin/pkcs11_startup/Makefile \
           usr/sbin/pkcs11_startup/pkcs11_startup \
           usr/sbin/pkcs_slot/Makefile \
-          usr/sbin/pkcs_slot/pkcs_slot \
           usr/sbin/pkcsconf/Makefile \
           usr/sbin/pkcscca_migrate/Makefile \
           usr/lib/pkcs11/methods/Makefile \
diff --git a/usr/sbin/pkcs_slot/Makefile.am b/usr/sbin/pkcs_slot/Makefile.am
index 1bc259b..3ac2b4d 100644
--- a/usr/sbin/pkcs_slot/Makefile.am
+++ b/usr/sbin/pkcs_slot/Makefile.am
@@ -1 +1,14 @@
 sbin_SCRIPTS = pkcs_slot
+
+EXTRA_DIST = pkcs_slot.in
+
+CLEANFILES = pkcs_slot
+
+pkcs_slot: pkcs_slot.in
+       @SED@   -e s...@libdir\@!"@libdir@"!g                   \
+               -e s...@localstatedir\@!"@localstatedir@"!g     \
+               -e s...@mkdir_p\@!"@MKDIR_P@"!g                 \
+               -e s...@chgrp\@!"@CHGRP@"!g                     \
+               -e s...@chmod\@!"@CHMOD@"!g < $< > $...@-t
+       @CHMOD@ +x $...@-t
+       mv $...@-t $@
diff --git a/usr/sbin/pkcs_slot/pkcs_slot.in b/usr/sbin/pkcs_slot/pkcs_slot.in
index c4845b5..8f06372 100644
--- a/usr/sbin/pkcs_slot/pkcs_slot.in
+++ b/usr/sbin/pkcs_slot/pkcs_slot.in
@@ -298,42 +298,42 @@
 
 
 
-DEEP4758_DLL="@STDLL_PATH@/PKCS11_4758.so"
+DEEP4758_DLL="@libdir@/opencryptoki/stdll/PKCS11_4758.so"
 DEEP4758_DLL_FN="PKCS11_4758.so"
 DEEP4758_INIT="SC_Initialize"
 
-SOFT_DIR="@DB_PATH@/swtok"
-SOFT_DLL="@STDLL_PATH@/libpkcs11_sw.so"
+SOFT_DIR="@localstatedir@/lib/opencryptoki/swtok"
+SOFT_DLL="@libdir@/opencryptoki/stdll/libpkcs11_sw.so"
 SOFT_DLL_FN="libpkcs11_sw.so"
 SOFT_INIT="ST_Initialize"
 
-ICA_DIR="@DB_PATH@/lite"
-ICA_DLL="@STDLL_PATH@/libpkcs11_ica.so"
+ICA_DIR="@localstatedir@/lib/opencryptoki/lite"
+ICA_DLL="@libdir@/opencryptoki/stdll/libpkcs11_ica.so"
 ICA_DLL_FN="libpkcs11_ica.so"
 ICA_INIT="ST_Initialize"
 
-BCOM_DIR="@DB_PATH@/bcom"
-BCOM_DLL="@STDLL_PATH@/PKCS11_BC.so"
+BCOM_DIR="@localstatedir@/lib/opencryptoki/bcom"
+BCOM_DLL="@libdir@/opencryptoki/stdll/PKCS11_BC.so"
 BCOM_DLL_FN="PKCS11_BC.so"
 BCOM_INIT="ST_Initialize"
 
-AEP_DIR="@DB_PATH@/aep"
-AEP_DLL="@STDLL_PATH@/PKCS11_AEP.so"
+AEP_DIR="@localstatedir@/lib/opencryptoki/aep"
+AEP_DLL="@libdir@/opencryptoki/stdll/PKCS11_AEP.so"
 AEP_DLL_FN="PKCS11_AEP.so"
 AEP_INIT="ST_Initialize"
 
-CR_DIR="@DB_PATH@/cr"
-CR_DLL="@STDLL_PATH@/PKCS11_CR.so"
+CR_DIR="@localstatedir@/lib/opencryptoki/cr"
+CR_DLL="@libdir@/opencryptoki/stdll/PKCS11_CR.so"
 CR_DLL_FN="PKCS11_CR.so"
 CR_INIT="ST_Initialize"
 
-TPM_DIR="@DB_PATH@/tpm"
-TPM_DLL="@STDLL_PATH@/libpkcs11_tpm.so"
+TPM_DIR="@localstatedir@/lib/opencryptoki/tpm"
+TPM_DLL="@libdir@/opencryptoki/stdll/libpkcs11_tpm.so"
 TPM_DLL_FN="libpkcs11_tpm.so"
 TPM_INIT="ST_Initialize"
 
-CCA_DIR="@DB_PATH@/ccatok"
-CCA_DLL="@STDLL_PATH@/libpkcs11_cca.so"
+CCA_DIR="@localstatedir@/lib/opencryptoki/ccatok"
+CCA_DLL="@libdir@/opencryptoki/stdll/libpkcs11_cca.so"
 CCA_DLL_FN="libpkcs11_cca.so"
 CCA_INIT="ST_Initialize"
 
@@ -357,11 +357,11 @@ DEVICE=$1
 DEPTH=$2
 
 # Check for the existance of the directories 
-if [ ! -d @DB_PATH@ ]
+if [ ! -d @localstatedir@/lib/opencryptoki ]
 then
-       mkdir -p @DB_PATH@
-        chgrp pkcs11 @DB_PATH@
-       chmod -R g+rwx @DB_PATH@
+       @MKDIR_P@ @localstatedir@/lib/opencryptoki
+        @CHGRP@ pkcs11 @localstatedir@/lib/opencryptoki
+       @CHMOD@ -R g+rwX @localstatedir@/lib/opencryptoki
 fi
 
 
@@ -372,9 +372,9 @@ then
     if [ $? -ne 0 ]
     then
        mkdir  $SOFT_DIR
-       chgrp pkcs11 $SOFT_DIR
+       @CHGRP@ pkcs11 $SOFT_DIR
        mkdir "$SOFT_DIR"/TOK_OBJ
-       chgrp pkcs11 "$SOFT_DIR"/TOK_OBJ
+       @CHGRP@ pkcs11 "$SOFT_DIR"/TOK_OBJ
     fi
     SYS_SLOT="Soft"
 fi
@@ -386,7 +386,7 @@ then
     if [ $? -ne 0 ]
     then
        mkdir  $TPM_DIR
-       chgrp pkcs11 $TPM_DIR
+       @CHGRP@ pkcs11 $TPM_DIR
     fi
     SYS_SLOT="TPM"
 fi
@@ -397,9 +397,9 @@ then
     if [ $? -ne 0 ]
     then
        mkdir  $CCA_DIR
-       chgrp pkcs11 $CCA_DIR
+       @CHGRP@ pkcs11 $CCA_DIR
        mkdir "$CCA_DIR"/TOK_OBJ
-       chgrp pkcs11 "$CCA_DIR"/TOK_OBJ
+       @CHGRP@ pkcs11 "$CCA_DIR"/TOK_OBJ
     fi
     SYS_SLOT="CCA"
 fi
@@ -415,9 +415,9 @@ then
     if [ $? -ne 0 ]
     then
        mkdir  $ICA_DIR
-       chgrp pkcs11 $ICA_DIR
+       @CHGRP@ pkcs11 $ICA_DIR
        mkdir "$ICA_DIR"/TOK_OBJ
-       chgrp pkcs11 "$ICA_DIR"/TOK_OBJ
+       @CHGRP@ pkcs11 "$ICA_DIR"/TOK_OBJ
     fi
     SYS_SLOT="ICA"
 fi
@@ -428,9 +428,9 @@ then
     if [ $? -ne 0 ]
     then
        mkdir  $BCOM_DIR
-       chgrp pkcs11 $BCOM_DIR
+       @CHGRP@ pkcs11 $BCOM_DIR
        mkdir "$BCOM_DIR"/TOK_OBJ
-       chgrp pkcs11 "$BCOM_DIR"/TOK_OBJ
+       @CHGRP@ pkcs11 "$BCOM_DIR"/TOK_OBJ
     fi
     SYS_SLOT="BCOM"
 fi
@@ -441,9 +441,9 @@ then
     if [ $? -ne 0 ]
     then
        mkdir  $AEP_DIR
-       chgrp pkcs11 $AEP_DIR
+       @CHGRP@ pkcs11 $AEP_DIR
        mkdir "$AEP_DIR"/TOK_OBJ
-       chgrp pkcs11 "$AEP_DIR"/TOK_OBJ
+       @CHGRP@ pkcs11 "$AEP_DIR"/TOK_OBJ
     fi
     SYS_SLOT="AEP"
 fi
@@ -454,9 +454,9 @@ then
     if [ $? -ne 0 ]
     then
         mkdir  $CR_DIR
-        chgrp pkcs11 $CR_DIR
+        @CHGRP@ pkcs11 $CR_DIR
         mkdir "$CR_DIR"/TOK_OBJ
-        chgrp pkcs11 "$CR_DIR"/TOK_OBJ
+        @CHGRP@ pkcs11 "$CR_DIR"/TOK_OBJ
     fi
     SYS_SLOT="CRNT"
 fi
@@ -473,7 +473,7 @@ fi
 SLOT_DESCRIPTION=`echo $MANUFACTURER $SYSTEM  "("$SYS_SLOT")"`
 
 
-cfgfi...@config_path@/@CONFIG_FILE@
+cfgfi...@localstatedir@/lib/opencryptoki/pk_config_data
 
 if [ $DEPTH = "deep" ]
 then
@@ -502,8 +502,8 @@ then
 echo 
"TRUE|0|$SLOT_DESCRIPTION|$MANUFACTURER|TRUE|FALSE|TRUE|0|0|1|1|NONE|$CCA_DLL_FN|$CCA_INIT"
 >>$CFGFILE
 fi
 
-cd @DB_PATH@
-chmod -R g+wrx .
+...@chmod@ -R g+wrX @localstatedir@/lib/opencryptoki
+
 
 
 exit $OK
-- 
1.6.2.5


------------------------------------------------------------------------------
Come build with us! The BlackBerry&reg; Developer Conference in SF, CA
is the only developer event you need to attend this year. Jumpstart your
developing skills, take BlackBerry mobile applications to market and stay 
ahead of the curve. Join us from November 9&#45;12, 2009. Register now&#33;
http://p.sf.net/sfu/devconf
_______________________________________________
Opencryptoki-tech mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/opencryptoki-tech

Reply via email to