Author: rmeggins
Update of /cvs/dirsec/winsync/passwordsync In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv32256/passwordsync
Modified Files: build.bat package.mak Added Files: unzip.vbs Log Message: Resolves: bug 426421 245630 476095 Description: Windows Console uses nss libraries from \windows\system32 Fix Description: Windows Console still uses nss libraries from system32, but now passsync uses the same NSS version as Windows Console, so there should be no conflict Description: install LDAP SDK DLLs in sync service dir, not system32 Fix Description: only files that need to go in system32 are installed there - everything else is installed in the passync home directory Description: upgrade/build components bug Fix Description: Now using NSPR 4.7.3, NSS 3.12.2, Mozldap 6.0.5 In addition, you can now build passsync in a Windows only environmnet - uses bitsadmin instead of wget for downloading, and uses unzip.vbs instead of unzip - this should simplify the build environment so that you don't have to figure out which combination of mks/cygwin/msys needs to be installed. I also upgraded to the latest version of wix and had to upgrade a couple of wxs elements. I also added the ability to upgrade passsync in the future with the use of the Upgrade element. Platforms tested: Windows Server 2003
--- NEW FILE unzip.vbs --- ' unzip a zip file
Sub Usage() WScript.Echo "Usage: cscript unzip.vbs \path\to\file.zip [destinationfolder]" WScript.Echo "Example: cscript unzip.vbs ..\src\foo.zip ..\dest" WScript.Echo "NOTE: The .zip file must have a .zip extension, so if" WScript.Echo "you are trying to unzip a .jar file, you must copy or rename it" WScript.Echo "to have a .zip extension" WScript.Echo "If the destinationfolder does not exist, it will be created" WScript.Echo "Use '.' for the current directory" WScript.Echo "If the destinationfolder is not specified, '.' will be used" End Sub
' see if args are correct Set objArgs = WScript.Arguments If objArgs.Count < 1 then Usage WScript.Quit(1) End If
' get our FSO object Set objFSO = CreateObject("Scripting.FileSystemObject") ' src zip file is arg 0 SRC = objFSO.GetAbsolutePathName(objArgs(0)) ' dest folder is arg 1 or "." If objArgs.Count < 2 then DEST = objFSO.GetAbsolutePathName(".") Else DEST = objFSO.GetAbsolutePathName(objArgs(1)) End If ' debugging - print args ' For I = 0 to objArgs.Count - 1 ' WScript.Echo "arg ", I, " ", objArgs(I) ' Next
' create dest folder if it does not exist If not objFSO.FolderExists(DEST) Then objFSO.CreateFolder(DEST) WScript.Echo "Created new folder", DEST End If
Set objShell = CreateObject("Shell.Application") Set objSrc = objShell.Namespace(SRC) Set objDest = objShell.Namespace(DEST) ' For Each item in objSrc.Items ' WScript.Echo "item = ", item ' Next objDest.CopyHere(objSrc.Items)
WScript.Echo "Done. Copied contents of " & SRC & " to " & DEST
' Set WshShell = WScript.CreateObject("WScript.Shell") ' WScript.Echo "CD =", WshShell.CurrentDirectory
' Set objFolder = objFSO.GetFolder(".") ' WScript.Echo "name = ", objFolder.Name
Index: build.bat =================================================================== RCS file: /cvs/dirsec/winsync/passwordsync/build.bat,v retrieving revision 1.10 retrieving revision 1.11 diff -u -r1.10 -r1.11 --- build.bat 10 Nov 2005 00:04:05 -0000 1.10 +++ build.bat 16 Feb 2009 22:37:32 -0000 1.11 @@ -39,10 +39,20 @@
@echo off
+rem set DOWNLOAD=echo DOWNLOAD +set DOWNLOAD="c:\program files\support tools\bitsadmin" /wrap /transfer passsyncbuild /download /priority normal +set UNZIP=cscript //nologo "%CD%\unzip.vbs" +@rem set DOWNLOAD=wget --no-directories +@rem set UNZIP=unzip -q + if [%BUILD_DEBUG%] == [optimize] ( set FLAVOR=WINNT5.0_OPT.OBJ + set CFG1="passsync - Win32 Release" + set CFG2="passhook - Win32 Release" ) else ( set FLAVOR=WINNT5.0_DBG.OBJ + set CFG1="passsync - Win32 Debug" + set CFG2="passhook - Win32 Debug" )
rem ======== Set Various Build Directories ======== @@ -53,70 +63,91 @@ set LIBROOT=..\components%FLAVOR% rem ------ Convert LIBROOT to absolute ------ call :relative %LIBROOT% LIBROOT -mkdir %LIBROOT% +mkdir "%LIBROOT%"
set PKGDIR=%OBJDEST%\package\passsync -mkdir %PKGDIR% +mkdir "%PKGDIR%"
set DISTDIR=..\dist%FLAVOR% rem ------ Convert DISTDIR to absolute ------ call :relative %DISTDIR% DISTDIR -mkdir %DISTDIR% +mkdir "%DISTDIR%" + +set WIXVER=2.0.5805.0 +set WIXDIR=..\wix +rem ------ Convert WIXDIR to absolute ------ +call :relative %WIXDIR% WIXDIR
set WXSDIR=%CD%\wix
rem ======== Fetch Components ======== if [%INTERNAL_BUILD%] == [1] ( - set COMPONENT_URL=http://ftp-rel.sfbay.redhat.com/share/builds/components + set COMPONENT_URL=http://tsunami.dsdev.sjc.redhat.com/share/builds/components + set COMPONENT_URL2=http://tsunami.dsdev.sjc.redhat.com/share/builds/verification ) else ( - set COMPONENT_URL=http://directory.fedora.redhat.com/built/components + set COMPONENT_URL=http://directory.fedoraproject.org/built/components )
rem ------ NSPR ------ -set NSPR_LOCATION=%COMPONENT_URL%/nspr/v4.6 -if NOT EXIST %LIBROOT%\nspr ( - pushd %CD% - mkdir %LIBROOT%\nspr - cd %LIBROOT%\nspr +set NSPR_LOCATION=%COMPONENT_URL%/nspr/v4.7.3 +if NOT EXIST "%LIBROOT%\nspr" ( + mkdir "%LIBROOT%\nspr" + mkdir "%LIBROOT%\nspr\include" + pushd "%LIBROOT%\nspr" echo %NSPR_LOCATION%/%FLAVOR% > version.txt - wget --no-directories %NSPR_LOCATION%/%FLAVOR%/mdbinary.jar - wget --no-directories -Pinclude %NSPR_LOCATION%/%FLAVOR%/mdheader.jar - unzip -q mdbinary.jar + %DOWNLOAD% %NSPR_LOCATION%/%FLAVOR%/mdbinary.jar "%LIBROOT%\nspr\mdbinary.jar" + %DOWNLOAD% %NSPR_LOCATION%/%FLAVOR%/mdheader.jar "%LIBROOT%\nspr\mdheader.jar" + + ren mdbinary.jar mdbinary.zip + ren mdheader.jar mdheader.zip + %UNZIP% mdbinary.zip cd include - unzip -q mdheader.jar + %UNZIP% ..\mdheader.zip popd )
rem ------ NSS ------ -set NSS_LOCATION=%COMPONENT_URL%/nss/NSS_3_10_2_RTM -if NOT EXIST %LIBROOT%\nss ( - pushd %CD% - mkdir %LIBROOT%\nss - cd %LIBROOT%\nss +set NSS_LOCATION=%COMPONENT_URL%/nss/NSS_3_12_2_RTM +if NOT EXIST "%LIBROOT%\nss" ( + mkdir "%LIBROOT%\nss" + mkdir "%LIBROOT%\nss\include" + pushd "%LIBROOT%\nss" echo %NSS_LOCATION%/%FLAVOR% > version.txt - wget --no-directories %NSS_LOCATION%/%FLAVOR%/mdbinary.jar - wget --no-directories -Pinclude %NSS_LOCATION%/xpheader.jar - unzip -q mdbinary.jar + %DOWNLOAD% %NSS_LOCATION%/%FLAVOR%/mdbinary.jar "%LIBROOT%\nss\mdbinary.jar" + %DOWNLOAD% %NSS_LOCATION%/include/xpheader.jar "%LIBROOT%\nss\xpheader.jar" + ren mdbinary.jar mdbinary.zip + ren xpheader.jar xpheader.zip + %UNZIP% mdbinary.zip cd include - unzip -q xpheader.jar + %UNZIP% ..\xpheader.zip popd )
rem ------ LDAPSDK ------ -set LDAPSDK_LOCATION=%COMPONENT_URL%/ldapsdk50/v5.16 -if NOT EXIST %LIBROOT%\ldapsdk ( - pushd %CD% - mkdir %LIBROOT%\ldapsdk - cd %LIBROOT%\ldapsdk +set LDAPSDK_LOCATION=%COMPONENT_URL2%/ldapcsdk/v6.0.5/20090128.1 +if NOT EXIST "%LIBROOT%\ldapsdk" ( + mkdir "%LIBROOT%\ldapsdk" + pushd "%LIBROOT%\ldapsdk" echo %LDAPSDK_LOCATION%/%FLAVOR% > version.txt - wget --no-directories %LDAPSDK_LOCATION%/%FLAVOR%/ldapcsdk516.zip - unzip -q ldapcsdk516.zip + %DOWNLOAD% %LDAPSDK_LOCATION%/%FLAVOR%/ldapcsdk.zip "%LIBROOT%\ldapsdk\ldapcsdk.zip" + %UNZIP% ldapcsdk.zip + popd +) + +rem ------ WIX ------ +set WIX_LOCATION=%COMPONENT_URL%/wix +if NOT EXIST "%WIXDIR%" ( + mkdir "%WIXDIR%" + pushd "%WIXDIR%" + echo %WIX_LOCATION% > version.txt + %DOWNLOAD% %WIX_LOCATION%/wix-%WIXVER%.zip "%WIXDIR%\wix-%WIXVER%.zip" + %UNZIP% wix-%WIXVER%.zip popd )
set OK=0
-pushd %CD% +pushd "%CD%"
rem ======== Build ======== rem ------ Set Build Paths ------ @@ -127,7 +158,10 @@ cd passsync echo -------- Beginning PassSync Build --------
-nmake /f passsync.mak +rem nmake CFG=%CFG1% /nologo /d /p /g /f passsync.mak +rem /d /p /g are debugging flags +rem /nologo is the shut up flag +nmake CFG=%CFG1% /nologo /f passsync.mak set /a OK=%OK% + %ERRORLEVEL%
if [%OK%] GTR [1] ( @@ -141,7 +175,7 @@ cd ..\passhook echo -------- Beginning Passhook Build --------
-nmake /f passhook.mak +nmake /nologo CFG=%CFG2% /f passhook.mak set /a OK=%OK% + %ERRORLEVEL%
if [%OK%] GTR [1] ( @@ -155,11 +189,11 @@ cd .. echo -------- Beginning Packaging --------
-nmake /f package.mak +nmake /nologo CFG=%CFG1% /f package.mak set /a OK=%OK% + %ERRORLEVEL%
-if EXIST %PKGDIR%\PassSync.msi ( - copy /Y %PKGDIR%\PassSync.msi %DISTDIR% +if EXIST "%PKGDIR%\PassSync.msi" ( + copy /Y "%PKGDIR%\PassSync.msi" "%DISTDIR%" set /a OK=%OK% + %ERRORLEVEL% )
Index: package.mak =================================================================== RCS file: /cvs/dirsec/winsync/passwordsync/package.mak,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- package.mak 10 Nov 2005 19:28:45 -0000 1.1 +++ package.mak 16 Feb 2009 22:37:32 -0000 1.2 @@ -38,28 +38,23 @@ # END COPYRIGHT BLOCK # # Packaging nmake Makefile for PassSync.msi +CANDLE=$(WIXDIR)\candle +LIGHT=$(WIXDIR)\light
ALL : PassSync.msi
LAYOUT : copy /Y "$(OBJDEST)\passsync\passsync.exe" "$(PKGDIR)" copy /Y "$(OBJDEST)\passhook\passhook.dll" "$(PKGDIR)" - copy /Y "$(LIBROOT)\ldapsdk\lib\nsldap32v50.dll" "$(PKGDIR)" - copy /Y "$(LIBROOT)\ldapsdk\lib\nsldapssl32v50.dll" "$(PKGDIR)" - copy /Y "$(LIBROOT)\ldapsdk\lib\nsldappr32v50.dll" "$(PKGDIR)" - copy /Y "$(LIBROOT)\nspr\lib\libnspr4.dll" "$(PKGDIR)" - copy /Y "$(LIBROOT)\nspr\lib\libplds4.dll" "$(PKGDIR)" - copy /Y "$(LIBROOT)\nspr\lib\libplc4.dll" "$(PKGDIR)" - copy /Y "$(LIBROOT)\nss\lib\nss3.dll" "$(PKGDIR)" - copy /Y "$(LIBROOT)\nss\lib\ssl3.dll" "$(PKGDIR)" - copy /Y "$(LIBROOT)\nss\lib\softokn3.dll" "$(PKGDIR)" - copy /Y "$(LIBROOT)\nss\lib\smime3.dll" "$(PKGDIR)" + copy /Y "$(LIBROOT)\ldapsdk\lib*.dll" "$(PKGDIR)" + copy /Y "$(LIBROOT)\nspr\lib*.dll" "$(PKGDIR)" + copy /Y "$(LIBROOT)\nss\lib*.dll" "$(PKGDIR)" copy /Y "$(LIBROOT)\nss\bin\certutil.exe" "$(PKGDIR)" copy /Y "$(LIBROOT)\nss\bin\pk12util.exe" "$(PKGDIR)"
PassSync.msi : LAYOUT - mkdir "$(PKGDIR)\Binary" + if not exist "$(PKGDIR)\Binary" mkdir "$(PKGDIR)\Binary" copy /Y wix\Binary "$(PKGDIR)\Binary" cd "$(PKGDIR)" - candle "$(WXSDIR)\PassSync.wxs" - light PassSync.wixobj + "$(CANDLE)" "$(WXSDIR)\PassSync.wxs" + "$(LIGHT)" PassSync.wixobj
389-commits@lists.fedoraproject.org