# # TODO NOTES: # # batch and perform MD5 checksum checks # output file of what we decided was golden # be sure we return a status that gets warning message sent if we are unhappy # check that we are setting the dates correctly # see if we can work with files under lang\ (or other sub-directories) # be sure Wade is happy # # FileName: PopFilter.pl # # Script for building Windows .Net Server builds and XP Client SP1 together. # Have any changes to this file reviewed by DavePr, BryanT, or BPerkins before checking in. # # Usage = PopFilter.pl [-fake] # Usage = PopFilter.pl [-fake] [-vbl=vblreleasedir] [-xpsp1=xpsp1dir] [-nttree=nttreedir] [-nocompare] # # Function: Populate missing files in nttreedir from vblreleaseddir so # 1) Find the XPSP1 directory, searching under # xpsp1dir # SDXROOT\.. # VBL_RELEASE # \\winbuilds\release\main\usa # And read in the Version information and the GoldTimestamps # 2) Read in SDXROOT\dbdir\LockedDB and parse into several piles: # CheckFiles -- non-PE files that should be found to be completely unchanged -- measured by # an external date/size/checksum. .inf files are checked for size/date after # removing the DriverVer= line This check probably will just say UNICODE INFs miscompare. # CheckPEFiles -- PE files that should be found to be completely unchanged -- measured by # an internal date/checksum. # PEReplaceFiles -- PE files that are expected to have been re-built, but should be the same as measured # by xpsp1compdir /i /b /y [someday just /y]. # 3) Check CheckFiles unless -nocompare. # 4) Check CheckPEFiles unless -nocompare. # 5) Check PEReplaceFiles against XPSP1\Reference\* -- unless -nocompare or CHK or ClientSDXRoot in version != SDXROOT # 6) Pick a source directory for PEReplaceFiles according to the following algorithm # XPSP1\Checked -- if this is a checked build, and this directory exists # XPSP1\Gold -- if this directory exists # XPSP1\Reference -- otherwise # 7) Replace files (unless check said not to). # # [-verbose] -- chatter while working # [-fake] -- don't actually make any changes # [-force] -- force copies even if errors on comparisons -- but miscompares never copied # [-filter] -- copy over the files from the client if no mismatches or -force # [-nofilter] -- do not copy over the client files (kind of an official -fake). The default is $NoFilter -- for now. # [-test] -- hook for special testing # # [-nodates] -- turn off date comparisons in non-PE files and rely on size and checksum # ####################################### ### TEMPORARY -- REMOVE THESE LINES ### ####################################### # [-ignoreinf] -- temporary flag to ignore INF files if sizes match, since the DriverVer issues wasn't fixed in the last test run # [-testfilter=flags] -- restrict testing to files with the specified flags (BN, BF, PF, ...) # [-testlimits=flags] -- limit testing to that specified by the flags {CF, PECF, RF) # # # VBLpath will be computed from BuildMachines.txt if not supplied either # on the command line, or in the VBL_RELEASE environment variable. # # WARNING: # WARNING: make sure pathname comparisons are case insensitive. # WARNING: Either convert the case (e.g. with 'lc') or do the comparisons like this: # WARNING: if ($foo =~ /^\Q$bar\E$/i) {} # WARNING: or if ($foo !~ /^\Q$bar\E$/i) {} # WARNING: