private static function check_dependencies_missing_from_system(&$required_test_dependencies, &$generic_names_of_packages_needed = false)
 {
     $generic_dependencies_parser = new pts_exdep_generic_parser();
     $vendor_dependencies_parser = new pts_exdep_platform_parser(self::vendor_identifier('package-list'));
     $kernel_architecture = phodevi::read_property('system', 'kernel-architecture');
     $needed_os_packages = array();
     foreach ($required_test_dependencies as $package => $dependents) {
         if ($vendor_dependencies_parser->is_package($package)) {
             $package_data = $vendor_dependencies_parser->get_package_data($package);
             $arch_compliant = empty($package_data['arch_specific']) || in_array($kernel_architecture, $package_data['arch_specific']);
             if (!empty($package_data['file_check'])) {
                 $add_dependency = self::file_missing_check($package_data['file_check']);
             } else {
                 if ($generic_dependencies_parser->is_package($package)) {
                     // If the OS/platform-specific package didn't supply a file check list, obtain it from the generic listing
                     $generic_package_data = $generic_dependencies_parser->get_package_data($package);
                     $add_dependency = empty($generic_package_data['file_check']) || self::file_missing_check($generic_package_data['file_check']);
                 }
             }
             if ($add_dependency && $arch_compliant && $package_data['os_package'] != null) {
                 if (!in_array($package_data['os_package'], $needed_os_packages)) {
                     array_push($needed_os_packages, $package_data['os_package']);
                 }
                 if ($generic_names_of_packages_needed !== false && !in_array($package, $generic_names_of_packages_needed)) {
                     array_push($generic_names_of_packages_needed, $package);
                 }
             } else {
                 unset($required_test_dependencies[$package]);
             }
         }
     }
     if (count($required_test_dependencies) > 0) {
         foreach ($required_test_dependencies as $i => $dependency) {
             $package_data = $generic_dependencies_parser->get_package_data($i);
             $file_present = !empty($package_data['file_check']) && !self::file_missing_check($package_data['file_check']);
             if ($file_present) {
                 unset($required_test_dependencies[$i]);
             }
         }
     }
     return $needed_os_packages;
 }
 public function get_dependency_names()
 {
     $dependency_names = array();
     $exdep_generic_parser = new pts_exdep_generic_parser();
     foreach ($this->get_external_dependencies() as $dependency) {
         if ($exdep_generic_parser->is_package($dependency)) {
             $package_data = $exdep_generic_parser->get_package_data($dependency);
             $dependency_names[] = $package_data['title'];
         }
     }
     return $dependency_names;
 }