protected function _buildPackage($manifest, $date = null)
 {
     if (null === $date) {
         $date = time();
     }
     // Get manifest data
     if (is_string($manifest)) {
         $manifestData = (require $manifest);
         if (empty($manifestData['package'])) {
             throw new Exception(sprintf('Missing package data for package in path: %s', $manifestPath));
         }
         $manifestData = $manifestData['package'];
     } else {
         if (is_array($manifest)) {
             $manifestData = $manifest;
         } else {
             throw new Exception('Invalid manifest data type');
         }
     }
     // Override date (for now at least)
     $manifestData['date'] = $date;
     // Build package file
     $package = new Engine_Package_Manifest($manifestData);
     // Build archive
     $archiveFile = Engine_Package_Archive::deflate($package, $this->_outputPath);
     // Verify archive for integrity
     $extractedPath = Engine_Package_Archive::inflate($archiveFile, $this->_outputPath);
     $loaded = new Engine_Package_Manifest($extractedPath);
     // Remove verified archive
     Engine_Package_Utilities::fsRmdirRecursive($extractedPath, true);
     return $archiveFile;
 }