Fink::VirtPackage(3) Fink documentation Fink::VirtPackage(3)NAMEFink::VirtPackage - Provide "virtual" packages for Fink and related
tools
SYNOPSISFink::VirtPackage is generally not used directly, but is instead used
by the fink-virtual-pkgs tool.
DESCRIPTIONFink::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
"kernel"
This test checks for the kernel name and version by running the
system uname(1) call. This should *always* exist.
"macosx"
This test checks for the Mac OS X version by running the sw_vers(1)
command and parsing the output. It should exist on all Mac OS X
installations (but not pure Darwin systems).
"64bit-cpu"
The package is present when the CPU is 64bit-capable.
"cups-dev"
This package represents and existing installation of the CUPS
headers in /usr/include/cups.
It is called "cups-dev" instead of "system-cups-dev" for the
purposes of versioned cups-dev dependencies.
"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 and/or
Oracle's Java. It is considered present if the
/System/Library/Frameworks/JavaVM.framework/Versions/[VERSION]/Commands
and or the
/Library/Java/JavaVirtualMachines/jdk1.7.0_21.jdk/Contents/Home/bin
directories exist.
"system-javaXX-dev"
This package represents an installed version of Apple's Java SDK or
Oracle's JDK. It is considered present if the
/System/Library/Frameworks/JavaVM.framework/Versions/[VERSION]/Headers
and or
/Library/Java/JavaVirtualMachines/jdk<version>.jdk/Contents/Home/include
directories exist.
"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.
"xcode.app"
This package represents your Xcode.app version.
"xcode"
This package represents your Xcode CLI tools version.
"system-sdk-*"
These packages represent the SDKs available as part of the Xcode
tools.
"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".
"clang"
The clang virtual package is considered present based on the
successful execution of "/usr/bin/clang -v".
"llvm-gcc"
The llvm-gcc virtual package is considered present based on the
successful execution of "/usr/bin/llvm-gcc -v".
"broken-gcc"
This package represents broken versions of the GCC compiler as
shipped by Apple. Currently it checks for the Xcode 1.5 cc1plus.
"dev-tools"
This package represents a developer suite of command-line compilers
and related programs, for example, Apple's DevTools (OS X <= 10.2)
or Xcode (OS X >= 10.3). This package is considered "installed" iff
/usr/bin/gcc and /usr/bin/make exist and are executable.
"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.1.dylib exists in /usr/lib.
"gimp-print7-shlibs"
This package represents the GIMP printing libraries provided by
Apple on Mac OS X 10.4 and higher. They are considered present if
libgimpprint.7.dylib exists in /usr/lib.
[pkgconfig packages]
Fink will scan for .pc files in common places, and create virtual
packages. (See &package_from_pkgconfig).
"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
version 1 of the libXft.[version].dylib library if it is found.
Major version 2 is no longer checked or provided as an x11
virtual package (long masked by a real package suite in fink of
the same name).
"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. As with xftX-shlibs, only version 1 is
considered.
"fontconfigX-shlibs"
"fontconfigX" and "fontconfigX-dev"
These packages represent components of the font configuration
API for X11. Version 1 was checked.
They are no longer checked or provided as an x11 virtual
package (long masked by the real fontconfig2* package suite in
fink).
"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.
"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 copy of the 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.
&package_from_pkgconfig($name)
Creates a virtual package from a pkgconfig file.
If $name is a relative path, searches /usr, /usr/X11, and
/usr/X11R6 pkgconfig directories and takes the first match.
The package name will be the in the form "system-pkgconfig-name".
Returns a package object hash.
&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.
&gen_gcc_hash($package, $version, $build, $is_64bit, $dpkg_status)
Return a ref to a hash representing a gcc* package pdb structure.
The passed values are will not be altered.
&gen_compile_script(\%pkg_hash)
Return the text to put in compilescript for a package, given a ref
to a hash containing other parts (descdetail and homepage) and of
the package description.
Fink 0.36.3.1 2013-12-30 Fink::VirtPackage(3)