NAME
Fink::VirtPackage - Provide "virtual" packages for Fink and related tools
SYNOPSIS
Fink::VirtPackage is generally not used directly, but is instead used by the fink-virtual-pkgs tool.
DESCRIPTION
Fink::VirtPackage is used to inject "fake" package data into the fink database, as well as to generate a list of dpkg- and apt-get-compatible packages to satisfy dependencies outside of Fink.
TESTS
- darwin
This test checks for the darwin version by running the system uname(1) call. This should *always* exist.
- system-perl
This package represents the version of the perl in /usr/bin. It is determined by parsing the $^V variable in a perl script. It also provides the perlXXX-core package that corresponds with it's version.
- system-javaXX
This package represents an installed version of Apple's Java. It is considered present if the /System/Library/Frameworks/JavaVM.framework/Versions/[VERSION]/Commands directory exists.
- system-javaXX-dev
This package represents an installed version of Apple's Java SDK. It is considered present if the /System/Library/Frameworks/JavaVM.framework/Versions/[VERSION]/Headers directory exists.
- system-java
This is a convenience package that represents the latest Java version that is considered installed, based on the previous tests.
- system-java-dev
This is a convenience package that represents the latest Java SDK version that is considered installed, based on the previous tests.
- system-java3d
This package represents the Java3D APIs available as a separate download from Apple. It is considered present if the j3dcore.jar file exists in the system Java extensions directory.
- system-javaai
This package represents the JavaAdvancedImaging APIs available as a separate download from Apple. It is considered present if the jai_core.jar file exists in the system Java extensions directory.
- cctools-XXX
This package represents the compiler tools provided by Apple. It is considered present if either /usr/bin/what /usr/bin/ld or /usr/bin/ld -v contain a valid cctools-XXX string.
- cctools-single-module
This package represents whether the cctools linker is capable of using the -single_module flag. It is considered present if a dummy file can be linked using the -single_module flag.
- gcc-*
The GCC virtual packages exist based on gcc* commands in /usr/bin. They are considered present based on the successful execution of "gcc --version".
- broken-gcc
This package represents broken versions of the GCC compiler as shipped by Apple. Currently it checks for the XCode 1.5 cc1plus.
- gimp-print-shlibs
This package represents the GIMP printing libraries provided by Apple on Mac OS X 10.3 and higher. They are considered present if libgimpprint.*.dylib exists in /usr/lib.
- system-xfree86-shlibs
This package represents the shared libraries from an X11 installation (be it XFree86, X.org, Apple's X11, or something else). It is considered present if libX11.*.dylib exists.
- system-xfree86
This package represents an X11 implementation up to and including the X server. It is considered present if an X server is found.
- system-xfree86-dev
This package represents the development headers and libraries for X11. It is considered present if the X11/Xlib.h header is found.
- extra X11 provides
Depending on the existence of certain files, the system-xfree86* packages can Provide a number of extra virtual packages.
- libgl and libgl-shlibs
These packages represent the existence of the OpenGL libraries. They are considered present if libGL.1.dylib is found.
- libgl-dev
This package represents the existence of the OpenGL development headers and libraries. It is considered present if GL/gl.h and libGL.dylib are found.
- xftX-shlibs
This package represents the shared libraries for the modern font API for X. It currently creates a Provide for major versions 1 and 2 of the libXft.[version].dylib library if it is found.
- xftX and xftX-dev
These packages represent the development headers and library for the Xft font API. It is considered present if libXft.dylib exists and the version number X is based on the version the symlink points to.
- fontconfigX-shlibs
This package reprents the font configuration API for X11. It is considered present if libfontconfig.*.dylib is found.
- fontconfigX and fontconfigX-dev
These packages represent the development headers and library for the X11 font configuration API. It is considered present if libXft.dylib exists.
- rman
This package represents the X11-based man-page reader. It is considered present if /usr/X11R6/bin/rman exists.
- xfree86-base-threaded and xfree86-base-threaded-shlibs
These packages represent whether libXt has support for threading. It is considered present if the pthread_mutex_lock symbol exists in the library.
- libgl and libgl-shlibs
- Growl
This package represents the Growl notification system. For more info on this package see http://growl.info/.
INTERNAL APIs
- $self->query_package(package_name)
Query a package by name.
Returns false when not installed, returns the full version when installed and configured.
- $self->list(%options)
Retrieves a complete hash of all virtual packages, with versions, regardless of installed status.
The list is a hash reference, with the package name as key and the value a reference to a hash containing the package attributes. The package and version attributes are guaranteed to exist.
%options is provided for future implementation, but currently does nothing.
- &has_header($headername)
Searches for a header file in a list of common places.
Returns true if found, false if not.
- &has_lib($libname)
Searches for a library in a list of common places.
Returns true if found, false if not.
- &check_x11_version()
Attempts to determine the version of X11 based on a number of heuristics, including parsing the versions in man pages (less expensive) and running Xserver -version (more expensive).
Returns the X11 version if found.