Re: CoolKey build environment and packaging

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Friday 26 January 2007, Bob Relyea wrote:
> Hi Alon,
> 
> Alon Bar-Lev wrote:
> > So to summerize:
> >
> > 1. Consider dropping NSS specific hacks... We can discuss this if you 
> > like, and I will try to help to understand why any is needed.
> >   
> Actually the 'NSS' specific hacks are really CoolKey private extensions. 
> It's very common for PKCS #11 modules to have private extensions only 
> understood by it's management tools. NSS doesn't even use them.

A cleaner approach would be adding a new entry, such as C_GetFunctionListPrivate
or something similar and have your extensions there... You can also
have a function sets a global variable which is called before C_Initialize so
that you get desired behavior.

But making the extensions compile time option, will not allow you to
use the same code in management and standard mode...

Or I may miss something... What is NSS_HIDE_NONSTANDARD_OBJECTS?

> > 2. Add --disable-nss-install to configure to allow disabling NSS auto 
> > installation.
> >   
> This is already be fixed in the cvs tip, we just need to make a new 
> release. My assumption is most packagers would *NOT* need this option.

I fixed this a little.

> > 3. Fix "make install" so that the static/linkage files will not be 
> > installed. Only the so is needed.
> >   
> I'd definitely welcome a patch for this. The static libraries are not 
> needed.

Done.

> > 4. Release standard source tarballs for versions.
> >   
> I thought I had a standard place for the tarballs. Obviously that is not 
> the case. I'll get one out.

Great!

> > 5. Optionally split "libckyapplet" in to its own package.
> >   
> By package do you mean 'tar ball?' libckyapplet is really only useful 
> for libcoolkey and it's management tool. If it wasn't for the latter it 
> would be part of the pkcs #11 module itself.

The management tool is external package, right?
So we not introduce three packages?
library
pkcs11
management

Best Regards,
Alon Bar-Lev.

I fixed more than I had to... I hope you will not be angry.
Also "make dist" is working so you can produce tarballs.

The patch is against CVS HEAD.

A few notes:

1. Why do you have --disable-pcsclite? Your code cannot be built
without it.

2. I recommend modifying the name of the pk11install to something
more coolkey like, so that if it is installed using "make install" it will
not cause conflict.

3. automake does not support #include "*.c" (rightfully...),
please consider revising dynlink*.c, the simplest way is to
include all of the options and #ifdef the whole file, removing
the dynlink.c.

4. There is an issue with RSA Security license... But we will discuss this
after we finish with this patch.

---

diff -urNp coolkey/configure.in coolkey.work/configure.in
--- coolkey/configure.in	2007-01-18 02:59:11.000000000 +0200
+++ coolkey.work/configure.in	2007-01-26 18:46:36.000000000 +0200
@@ -20,21 +20,22 @@
 # END COPYRIGHT BLOCK
 
 # Require autoconf 2.52
-AC_PREREQ(2.52)
+AC_PREREQ([2.52])
 
 # Process this file with autoconf to produce a configure script.
-AC_INIT(coolkey,"1.1.0")
+AC_INIT([coolkey], ["1.1.0_beta1"])
 AC_CONFIG_SRCDIR([src/coolkey/coolkey.cpp])
 AC_CANONICAL_TARGET([])
-AM_INIT_AUTOMAKE(coolkey, "1.1.0")
+AM_INIT_AUTOMAKE([coolkey], [${PACKAGE_VERSION}])
 AC_CONFIG_HEADERS([config.h])
 
 AM_MAINTAINER_MODE
 
 # Add argument for debuging
 AC_ARG_ENABLE(debug, 
-  [  --enable-debug          add debugging code (default=yes)])
-if test "$enable_debug" = "no" -o "$enable_debug" = "false"
+  [  --disable-debug         add debugging code],,
+  [enable_debug="no"])
+if test "$enable_debug" != "yes"
 then
   AC_MSG_WARN([Debugging support is completely disabled!])
 else
@@ -87,15 +88,14 @@ esac
 
 # Add argument for pk11install
 AC_ARG_ENABLE(pk11install, 
-  [  --enable-pk11install          build an installer for legacy user apps(default=no)])
-if test "$enable_pk11install" = "yes" -o "$enable_pk11install" = "true"
+  [  --enable-pk11install    build an installer for legacy user apps],,
+  [enable_pk11install="no"])
+if test "${enable_pk11install}" = "yes"
 then
-if test $WINDOWS -ne 1; then
-  PKG_CHECK_MODULES(NSS, nss, true, [ AC_MSG_ERROR(could not find NSS Crypto libraries) ])
-fi
-  enable_pk11install = "yes"
+  if test $WINDOWS -ne 1; then
+    PKG_CHECK_MODULES(NSS, nss, , AC_MSG_ERROR(could not find NSS Crypto libraries))
+  fi
 else
-  enable_pk11install = "no"
   AC_MSG_WARN([skipping pk11install])
 fi
 
@@ -104,31 +104,30 @@ fi
 AC_PROG_CC
 AC_PROG_CXX
 AC_PROG_LIBTOOL
+PKG_PROG_PKG_CONFIG
 AC_PROG_INSTALL
 AC_PROG_LN_S
 
 # Checks for libraries.
 if test $WINDOWS -ne 1; then
-AC_CHECK_LIB(z, uncompress, , AC_MSG_ERROR(could not locate libz compression library))
-AC_CHECK_LIB(dl, dlopen, , AC_MSG_ERROR(could not locate dynamic library services library))
+  AC_CHECK_LIB(z, uncompress, , AC_MSG_ERROR(could not locate libz compression library))
+  AC_CHECK_LIB(dl, dlopen, , AC_MSG_ERROR(could not locate dynamic library services library))
 fi
 
 # add our compiled static libraries
 AC_SUBST(LIBCKYAPPLET)
-LIBCKYAPPLET="\${top_builddir}/src/libckyapplet/libckyapplet.la"
+LIBCKYAPPLET="\$(top_builddir)/src/libckyapplet/libckyapplet.la"
 
 AC_ARG_WITH(pcsclite,
-  [  --with-pcsclite         Use pcsc-lite (default=yes)])
-if test "$with_pcsclite" = "no" -o "$with_pcsclite" = "false"
-then
-  with_pcsclite=no
-else
+  [  --without-pcsclite      Use pcsc-lite],,
+  [with_pcsclite="yes"])
+if test "${with_pcsclite}" = "yes"; then
       PKG_CHECK_MODULES(PCSC, libpcsclite, [ with_pcsclite=yes ],
         [ if test -f /usr/local/lib/pkgconfig/libpcsclite.pc ; then
                 AC_MSG_ERROR([use PKG_CONFIG_PATH=/usr/local/lib/pkgconfig ./configure])
           else
                 AC_MSG_WARN([pcsc-lite not found])
-                with_pcsclite=no
+                with_pcsclite="no"
         fi
       ])
 fi
@@ -140,8 +139,8 @@ AC_SUBST(PCSC_LIBS)
 AC_SUBST(SCARD_LIB_NAME)
 AM_CONDITIONAL(HAVE_PCSC, test x$with_pcsclite = xyes)
 AM_CONDITIONAL(BUILD_PK11INSTALL, test x$enable_pk11install = xyes)
+AM_CONDITIONAL(WINDOWS, test x$WINDOWS = x1)
 
-AC_DEFINE(DEBUG, 1, [Define to 1 if you want to include debugging code.])
 # Checks for header files.
 AC_HEADER_STDC
 AC_CHECK_HEADERS([string.h syslog.h fcntl.h unistd.h])
diff -urNp coolkey/Makefile.am coolkey.work/Makefile.am
--- coolkey/Makefile.am	2006-12-01 00:35:22.000000000 +0200
+++ coolkey.work/Makefile.am	2007-01-26 15:54:02.000000000 +0200
@@ -25,8 +25,6 @@ if BUILD_PK11INSTALL
 SUBDIRS += src/install
 endif
 
-ACLOCAL_AMFLAGS = -I m4
-
-EXTRA_DIST =
+EXTRA_DIST = LICENSE
 
 DISTCLEANFILES = 
diff -urNp coolkey/src/coolkey/coolkey.cpp coolkey.work/src/coolkey/coolkey.cpp
--- coolkey/src/coolkey/coolkey.cpp	2006-06-09 21:39:11.000000000 +0300
+++ coolkey.work/src/coolkey/coolkey.cpp	2007-01-26 16:09:41.000000000 +0200
@@ -24,6 +24,7 @@
 #include <map>
 #include <set>
 #include <memory>
+#include <cstdio>
 #include "log.h"
 #include "PKCS11Exception.h"
 #ifdef _WIN32
@@ -34,8 +35,6 @@
 #include "cky_base.h"
 #include "params.h"
 
-#define NULL 0
-
 /* static module data --------------------------------  */
 
 static Log *log = NULL;
diff -urNp coolkey/src/coolkey/Makefile.am coolkey.work/src/coolkey/Makefile.am
--- coolkey/src/coolkey/Makefile.am	2007-01-18 03:00:25.000000000 +0200
+++ coolkey.work/src/coolkey/Makefile.am	2007-01-26 18:39:33.000000000 +0200
@@ -21,8 +21,10 @@
 
 SUBDIRS = 
 AM_CPP_FLAGS =
+EXTRA_DIST = coolkeypk11.def
 pkcs11dir = $(libdir)/pkcs11
-pkcs11_LTLIBRARIES = libcoolkeypk11.la
+tmpdir = $(prefix)/tmp
+tmp_LTLIBRARIES = libcoolkeypk11.la
 
 libcoolkeypk11_la_SOURCES = \
 	coolkey.cpp \
@@ -33,7 +35,6 @@ libcoolkeypk11_la_SOURCES = \
 	object.cpp \
 	PKCS11Exception.cpp \
 	slot.cpp    \
-	config.h \
 	locking.h \
 	log.h \
 	machdep.h \
@@ -65,7 +66,10 @@ coolkeypk11.sym: coolkeypk11.def
 clean-generic:
 	rm -f coolkeypk11.sym
 
-
+install-data-hook:
+	$(mkinstalldirs) $(DESTDIR)$(pkcs11dir)
+	mv $(DESTDIR)$(tmpdir)/libcoolkeypk11.so $(DESTDIR)$(pkcs11dir)
+	rm -fr $(DESTDIR)$(tmpdir)
 
 #MODULE = coolkeypk11
 #REQUIRES = ckyapplet zlib
diff -urNp coolkey/src/install/Makefile.am coolkey.work/src/install/Makefile.am
--- coolkey/src/install/Makefile.am	2007-01-18 03:02:35.000000000 +0200
+++ coolkey.work/src/install/Makefile.am	2007-01-26 18:44:06.000000000 +0200
@@ -21,7 +21,11 @@
 
 INCLUDES=$(NSS_CFLAGS)
 
-bin_PROGRAMS=pk11install
-
 pk11install_SOURCES = pk11install.c 
 pk11install_LDADD = $(NSS_LIBS) -lsoftokn3
+
+if BUILD_PK11INSTALL
+bin_PROGRAMS=pk11install
+else
+EXTRA_DIST=$(pk11install_SOURCES)
+endif
diff -urNp coolkey/src/libckyapplet/Makefile.am coolkey.work/src/libckyapplet/Makefile.am
--- coolkey/src/libckyapplet/Makefile.am	2006-12-01 00:35:28.000000000 +0200
+++ coolkey.work/src/libckyapplet/Makefile.am	2007-01-26 18:37:39.000000000 +0200
@@ -23,16 +23,22 @@ SUBDIRS = 
 
 AM_CFLAGS =
 
+EXTRA_DIST = \
+	dynlink_win.c \
+	dynlink_unix.c \
+	dynlink_mac.c
+
 # bleh what do I add just to get static but pic libraries?
 bogusdir = $(libdir)/bogus
 lib_LTLIBRARIES = libckyapplet.la
 
 libckyapplet_la_SOURCES = \
+	cky_list.i \
 	cky_applet.c \
 	cky_base.c \
 	cky_card.c \
 	cky_factory.c \
-	dynlink.c 
+	dynlink.c
 
 quote=\"
 

_______________________________________________
Coolkey-devel mailing list
Coolkey-devel@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/coolkey-devel

[Index of Archives]     [Fedora Desktop]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite News]     [KDE Users]     [Fedora Women]

  Powered by Linux