Browse Source

Bug: 206527
Description: Enable rpmbuild of directory server
Fix Description: You can set env. vars. to override all of the LIB and INCLUDE paths with the
make -e flag. I moved all of the external component packaging stuff into the
packageDirectory target of ldap/cm/Makefile, and moved the "packaging" of the
internal files into the releaseDirectory target. So the releaseDirectory
target will now copy all of the ldapserver binaries and runtime files into
their correct places under RELDIR, which is then used to create the rpm. There
were a couple of other places that needed to change the way a particular file
was packaged in order ot make sure it was packaged in the core ds and not as an
external component.
Tested on: RHEL4
Reviewed by: nhosoi (Thanks!)

Rich Megginson 19 years ago
parent
commit
bcaf265a82
6 changed files with 110 additions and 100 deletions
  1. 3 0
      Makefile
  2. 3 6
      components.mk
  3. 3 1
      ldap/admin/src/ds_newinst.pl
  4. 82 83
      ldap/cm/Makefile
  5. 10 1
      lib/ldaputil/Makefile
  6. 9 9
      nsconfig.mk

+ 3 - 0
Makefile

@@ -316,6 +316,9 @@ Acceptance:
 Longduration:
 	cd ldap/cm; $(MAKE) Longduration $(MFLAGS)
 
+releaseDirectory:
+	cd ldap/cm; $(MAKE) $(MFLAGS) releaseDirectory
+
 setupDirectory:
 	cd ldap/cm; $(MAKE) $(MFLAGS) releaseDirectory;
 	cd ldap/cm; $(MAKE) $(MFLAGS) packageDirectory;

+ 3 - 6
components.mk

@@ -389,7 +389,9 @@ else
   SASL_LIB_ROOT_NAME = sasl2
   SASL_LIBS = lib$(SASL_LIB_ROOT_NAME).a
   ifeq ($(ARCH), Linux)
-    GSSAPI_LIBS=-lgssapi_krb5
+# I don't think we need this anymore
+    GSSAPI_LIBS=
+#    GSSAPI_LIBS=-lgssapi_krb5
   endif
   ifeq ($(ARCH), SOLARIS)
     GSSAPI_LIBS=-lgss
@@ -645,11 +647,6 @@ ifeq ($(USE_64), 1)
   endif
 endif
 
-# must package certmap.conf ourselves if not using admin server
-ifneq ($(USE_ADMINSERVER), 1)
-  PACKAGE_SRC_DEST += $(BUILD_ROOT)/lib/ldaputil/certmap.conf shared/config
-endif
-
 # must define dependencies last because they depend on the definitions above
 ifeq ($(INTERNAL_BUILD), 1)
 include $(BUILD_ROOT)/internal_comp_deps.mk

+ 3 - 1
ldap/admin/src/ds_newinst.pl

@@ -183,7 +183,9 @@ $cgiargs{adminport} = $table{admin}->{Port};
 
 # If this is set, the new DS instance will be set up for use as
 # a Configuration DS (e.g. o=NetscapeRoot)
-$cgiargs{cfg_sspt} = $table{slapd}->{SlapdConfigForMC};
+if ($table{slapd}->{SlapdConfigForMC} =~ /yes/i) {
+    $cgiargs{cfg_sspt} = "1";
+}
 # set this to 1 to register this DS with an existing Configuration DS
 # or 0 to create this DS as a new Configuration DS
 $cgiargs{use_existing_config_ds} = $table{slapd}->{UseExistingMC};

+ 82 - 83
ldap/cm/Makefile

@@ -306,6 +306,88 @@ dummy:
 importAdmin:
 
 releaseDirectory:
+	$(INSTALL) -m 644 $(BUILD_DRIVE)$(BUILD_ROOT)/ldap/ldif/*.ldif $(RELDIR)/bin/slapd/install/ldif
+	$(INSTALL) -m 644 $(BUILD_DRIVE)$(BUILD_ROOT)/ldap/schema/*.ldif $(RELDIR)/bin/slapd/install/schema
+	$(INSTALL) -m 644 $(BUILD_DRIVE)$(BUILD_ROOT)/ldap/schema/slapd-collations.conf $(RELDIR)/bin/slapd/install/config
+
+# the httpd library
+ifneq ($(ARCH), WINNT)
+	$(INSTALL) -m 755 $(OBJDIR)/$(NSHTTPD_DLL)$(DLL_PRESUF).$(DLL_SUFFIX)* $(RELDIR)/bin/slapd/lib
+endif
+
+# Images for IM Presence plugin
+ifdef BUILD_PRESENCE
+	$(INSTALL) -m 644 $(BUILD_DRIVE)$(BUILD_ROOT)/ldap/servers/plugins/presence/images/*.gif $(RELDIR)/bin/slapd/install/presence
+endif
+
+ifdef USE_PURIFY
+	-$(INSTALL) -m 755 $(DB_LIBPATH)/*.so_pure* $(RELDIR)/lib
+	-$(INSTALL) -m 755 $(NSCP_DISTDIR)/lib/*.so_pure* $(RELDIR)/lib
+	rm -f $(RELDIR)/bin/slapd/server/ns-slapd
+	mv -f $(RELDIR)/bin/slapd/server/ns-slapd.pure $(RELDIR)/bin/slapd/server/ns-slapd
+endif
+ifdef USE_QUANTIFY
+	rm -f $(RELDIR)/bin/slapd/server/ns-slapd
+	mv -f $(RELDIR)/bin/slapd/server/ns-slapd.quantify $(RELDIR)/bin/slapd/server/ns-slapd
+endif
+
+	$(INSTALL) -m 755 $(OBJDIR)/lib/libsi18n/ns-slapd.properties $(RELDIR)/bin/slapd/property;
+
+# Install LDAP Readme and License files at root of SLAPD Release sub-directory.
+ifeq ($(ARCH), WINNT)
+	if [ -d $(LDAPDIR)/docs ] ; then \
+		cd $(LDAPDIR)/docs; \
+		perl $(NT_RELTOOLS)/unx2dos.plx WINNT LICENSE.txt $(RELDIR)/bin/slapd; \
+		perl $(NT_RELTOOLS)/unx2dos.plx WINNT LICENSE.txt $(RELDIR); \
+		perl $(NT_RELTOOLS)/unx2dos.plx WINNT README.txt $(RELDIR)/bin/slapd; \
+		perl $(NT_RELTOOLS)/unx2dos.plx WINNT README.txt $(RELDIR); \
+	fi
+else
+	if [ -d $(LDAPDIR)/docs ] ; then \
+		cd $(LDAPDIR)/docs; \
+		$(INSTALL) -m 755 README.txt LICENSE.txt $(RELDIR)/bin/slapd; \
+		$(INSTALL) -m 755 README.txt LICENSE.txt $(RELDIR); \
+	fi
+endif
+
+# include the old configuration files in the package so we can use them
+# for comparison purposes during migration
+	$(INSTALL) -m 444 $(LDAPDIR)/cm/v1confs/*.* $(RELDIR)/bin/slapd/install/version1
+	$(INSTALL) -m 444 $(LDAPDIR)/cm/v3confs/*.* $(RELDIR)/bin/slapd/install/version3
+	$(INSTALL) -m 444 $(LDAPDIR)/cm/v4confs/40/*.*  $(RELDIR)/bin/slapd/install/version4/40
+	$(INSTALL) -m 444 $(LDAPDIR)/cm/v4confs/41/*.*  $(RELDIR)/bin/slapd/install/version4/41
+	$(INSTALL) -m 444 $(LDAPDIR)/cm/v4confs/411/*.* $(RELDIR)/bin/slapd/install/version4/411
+	$(INSTALL) -m 444 $(LDAPDIR)/cm/v4confs/412/*.* $(RELDIR)/bin/slapd/install/version4/412
+
+# for RPM, include the post install setup program
+ifdef BUILD_RPM
+	$(INSTALL) -m 755 $(BUILD_DRIVE)$(BUILD_ROOT)/ldap/cm/newinst/setup $(RELDIR)/setup
+endif # BUILD_RPM
+
+	find $(RELDIR) -exec chmod go-w {} \;
+# $(RELDIR)/bin/slapd/server may host a core file if the server crashes
+# shortly after startup (otherwise, cores go in slapd-instance/logs)
+# For security reasons, it's readable only by the owner
+# but it needs to be executable (11) so that it can
+# load in shared libs from slapd/lib after the setuid
+	chmod 711 $(RELDIR)/bin/slapd/server
+
+$(INSTDIR):
+	$(MKDIR) -p $@
+
+$(INSTDIR)/slapd:
+ifeq ($(USE_SETUPUTIL), 1)
+	$(MKDIR) -p $@
+endif
+
+# Packaging for UNIX is totally different than NT, so we conditionally execute here
+
+ifneq ($(ARCH), WINNT)
+
+# ---THE UNIX PACKAGE---
+packageDirectory: $(INSTDIR) $(INSTDIR)/slapd \
+	$(ADMSERV_DEP)
+
 # LIBS_TO_PKG is defined in components.mk - these are component files (not directories) to install
 # with the other component files that we don't necessarily pick up from the admin server build
 # see below for windows packaging
@@ -422,7 +504,6 @@ ifdef PACKAGE_UNDER_JAVA
 	done
 endif
 
-	$(INSTALL) -m 644 $(BUILD_DRIVE)$(BUILD_ROOT)/ldap/ldif/*.ldif $(RELDIR)/bin/slapd/install/ldif
 	$(INSTALL) -m 644 $(BUILD_DRIVE)$(BUILD_ROOT)/ldap/dsml/*.dsml $(RELDIR)/bin/slapd/install/dsml
 
 ### Package up the orgchart ###
@@ -445,9 +526,6 @@ endif
 endif # USE_ORGCHART
 ### end orgchart package ###
 
-	$(INSTALL) -m 644 $(BUILD_DRIVE)$(BUILD_ROOT)/ldap/schema/*.ldif $(RELDIR)/bin/slapd/install/schema
-	$(INSTALL) -m 644 $(BUILD_DRIVE)$(BUILD_ROOT)/ldap/schema/slapd-collations.conf $(RELDIR)/bin/slapd/install/config
-
 # libdb for windows special and smartheap
 ifeq ($(ARCH), WINNT)
 	$(INSTALL) -m 755 $(DB_LIBPATH)/$(DB_LIBNAME).$(DLL_SUFFIX)  $(RELDIR)/bin/slapd/server
@@ -515,12 +593,6 @@ ifeq ($(ARCH), WINNT)
 	$(INSTALL) -m 755 $(DB_LIBPATH)/$(DB_LIBNAME).lib $(RELDIR)/plugins/slapd/slapi/examples/lib
 endif
 
-# the httpd library
-ifneq ($(ARCH), WINNT)
-	$(INSTALL) -m 755 $(OBJDIR)/$(NSHTTPD_DLL)$(DLL_PRESUF).$(DLL_SUFFIX)* $(RELDIR)/bin/slapd/lib
-	$(INSTALL) -m 755 $(OBJDIR)/$(NSHTTPD_DLL)$(DLL_PRESUF).$(DLL_SUFFIX)* $(RELDIR)/clients/lib
-endif
-
 # install the ds jar file in the <server root>/$(DS_JAR_DEST_PATH) directory
 # also install the other jar files we use
 ifeq ($(USE_CONSOLE), 1)
@@ -539,11 +611,6 @@ ifeq ($(USE_JAVATOOLS), 1)
 	fi
 endif
 
-# Images for IM Presence plugin
-ifdef BUILD_PRESENCE
-	$(INSTALL) -m 644 $(BUILD_DRIVE)$(BUILD_ROOT)/ldap/servers/plugins/presence/images/*.gif $(RELDIR)/bin/slapd/install/presence
-endif
-
 # docs
 	-$(RM) -r $(RELDIR)/manual/en/slapd
 	-$(MKDIR) $(RELDIR)/manual/en/slapd
@@ -566,78 +633,10 @@ endif
       fi ; \
 	fi
 
-ifdef USE_PURIFY
-	-$(INSTALL) -m 755 $(DB_LIBPATH)/*.so_pure* $(RELDIR)/lib
-	-$(INSTALL) -m 755 $(NSCP_DISTDIR)/lib/*.so_pure* $(RELDIR)/lib
-	rm -f $(RELDIR)/bin/slapd/server/ns-slapd
-	mv -f $(RELDIR)/bin/slapd/server/ns-slapd.pure $(RELDIR)/bin/slapd/server/ns-slapd
-endif
-ifdef USE_QUANTIFY
-	rm -f $(RELDIR)/bin/slapd/server/ns-slapd
-	mv -f $(RELDIR)/bin/slapd/server/ns-slapd.quantify $(RELDIR)/bin/slapd/server/ns-slapd
-endif
-
 # Copy db tools 
 	$(INSTALL) -m 755 $(DB_BINPATH)/db_printlog$(EXE_SUFFIX) $(RELDIR)/bin/slapd/server
 	$(INSTALL) -m 755 $(DB_BINPATH)/db_verify$(EXE_SUFFIX) $(RELDIR)/bin/slapd/server
 
-	$(INSTALL) -m 755 $(OBJDIR)/lib/libsi18n/ns-slapd.properties $(RELDIR)/bin/slapd/property;
-
-# Install LDAP Readme and License files at root of SLAPD Release sub-directory.
-ifeq ($(ARCH), WINNT)
-	if [ -d $(LDAPDIR)/docs ] ; then \
-		cd $(LDAPDIR)/docs; \
-		perl $(NT_RELTOOLS)/unx2dos.plx WINNT LICENSE.txt $(RELDIR)/bin/slapd; \
-		perl $(NT_RELTOOLS)/unx2dos.plx WINNT LICENSE.txt $(RELDIR); \
-		perl $(NT_RELTOOLS)/unx2dos.plx WINNT README.txt $(RELDIR)/bin/slapd; \
-		perl $(NT_RELTOOLS)/unx2dos.plx WINNT README.txt $(RELDIR); \
-	fi
-else
-	if [ -d $(LDAPDIR)/docs ] ; then \
-		cd $(LDAPDIR)/docs; \
-		$(INSTALL) -m 755 README.txt LICENSE.txt $(RELDIR)/bin/slapd; \
-		$(INSTALL) -m 755 README.txt LICENSE.txt $(RELDIR); \
-	fi
-endif
-
-# include the old configuration files in the package so we can use them
-# for comparison purposes during migration
-	$(INSTALL) -m 444 $(LDAPDIR)/cm/v1confs/*.* $(RELDIR)/bin/slapd/install/version1
-	$(INSTALL) -m 444 $(LDAPDIR)/cm/v3confs/*.* $(RELDIR)/bin/slapd/install/version3
-	$(INSTALL) -m 444 $(LDAPDIR)/cm/v4confs/40/*.*  $(RELDIR)/bin/slapd/install/version4/40
-	$(INSTALL) -m 444 $(LDAPDIR)/cm/v4confs/41/*.*  $(RELDIR)/bin/slapd/install/version4/41
-	$(INSTALL) -m 444 $(LDAPDIR)/cm/v4confs/411/*.* $(RELDIR)/bin/slapd/install/version4/411
-	$(INSTALL) -m 444 $(LDAPDIR)/cm/v4confs/412/*.* $(RELDIR)/bin/slapd/install/version4/412
-
-# for RPM, include the post install setup program
-ifdef BUILD_RPM
-	$(INSTALL) -m 755 $(BUILD_DRIVE)$(BUILD_ROOT)/ldap/cm/newinst/setup $(RELDIR)/setup
-endif # BUILD_RPM
-
-	find $(RELDIR) -exec chmod go-w {} \;
-# $(RELDIR)/bin/slapd/server may host a core file if the server crashes
-# shortly after startup (otherwise, cores go in slapd-instance/logs)
-# For security reasons, it's readable only by the owner
-# but it needs to be executable (11) so that it can
-# load in shared libs from slapd/lib after the setuid
-	chmod 711 $(RELDIR)/bin/slapd/server
-
-$(INSTDIR):
-	$(MKDIR) -p $@
-
-$(INSTDIR)/slapd:
-ifeq ($(USE_SETUPUTIL), 1)
-	$(MKDIR) -p $@
-endif
-
-# Packaging for UNIX is totally different than NT, so we conditionally execute here
-
-ifneq ($(ARCH), WINNT)
-
-# ---THE UNIX PACKAGE---
-packageDirectory: $(INSTDIR) $(INSTDIR)/slapd \
-	$(ADMSERV_DEP)
-
 # this gets setup, setup.inf, silent.inf, the zip wrapper, and svrcore, among others
 ifeq ($(USE_SETUPUTIL), 1)
 	cp -R $(SETUPUTIL_BINPATH)/* $(INSTDIR)

+ 10 - 1
lib/ldaputil/Makefile

@@ -60,7 +60,9 @@ MCC_INCLUDE=-I$(BUILD_ROOT)/include \
 			 $(DBM_INCLUDE) $(LDAPSDK_INCLUDE) \
 			 $(SECURITY_INCLUDE) $(NSPR_INCLUDE) 
 
-all: $(OBJDEST) $(LOCAL_DEPS) $(LIBS)
+CERTMAP_CONF = $(RELDIR)/shared/config/certmap.conf
+
+all: $(OBJDEST) $(LOCAL_DEPS) $(LIBS) $(CERTMAP_CONF)
 
 $(OBJDEST):
 	mkdir -p $(OBJDEST)
@@ -92,5 +94,12 @@ $(LIBS):  $(OBJS)
 	$(AR) $(OBJS)
 	$(RANLIB) $@
 
+$(CERTMAP_CONF): certmap.conf
+	rm -f $@
+	if [ ! -d $(dir $@) ] ; then \
+		mkdir -p $(dir $@) ; \
+	fi
+	cp $< $(dir $@)
+
 include $(INCLUDE_DEPENDS)
 

+ 9 - 9
nsconfig.mk

@@ -69,18 +69,18 @@ ifdef INTERNAL_BUILD
 	USE_SETUPUTIL:=0
 	USE_PERLDAP:=1
 else
-	USE_ADMINSERVER:=1
-	USE_CONSOLE:=1
-	USE_DSMLGW:=1
-	USE_ORGCHART:=1
-	USE_DSGW:=1
-	USE_JAVATOOLS:=1
-	USE_SETUPUTIL:=1
-	USE_PERLDAP:=1
+	USE_ADMINSERVER:=0
+	USE_CONSOLE:=0
+	USE_DSMLGW:=0
+	USE_ORGCHART:=0
+	USE_DSGW:=0
+	USE_JAVATOOLS:=0
+	USE_SETUPUTIL:=0
+	USE_PERLDAP:=0
 	GET_JAVA_FROM_PATH := 1
 	GET_ANT_FROM_PATH := 1
 	USE_PERL_FROM_PATH := 1
-	BUILD_JAVA_CODE := 1
+	BUILD_JAVA_CODE := 0
 endif
 
 include $(BUILD_ROOT)/nsdefs.mk