úÎmgÍB      !"#$%&'()*+,-./0123456789:;<=>?@A 8A list of Dependencies which are automatically satified  when GHC is installed. =A list of packages to preferably use (e.g. Haskell Platform) 7A hash-map where keys are library names and values are / names of the corresponding ArchLinux package. BCDEDon Stewart <dons@galois.com>7F(The type of pkgbuild parsers for String GHI!Result type for pkgbuild parsers 3A PKGBUILD data structure with additional metadata contents of pkgbuild file #version of cabal2arch used, if any header strings package name on Hackage JValid linux platforms KLMN(A data type to represent PKGBUILD files :The name of the package. This has be a unix-friendly name - as it will be used in the package filename. :The version of the software as released from the authorii  (e.g. 2.7.1). 6This is the release number specific to the Arch Linux = release. This allows package maintainers to make updates to ; the packages configure flags, for example. A pkgrel of 1 = is typically used for each upstream software release and is 0 incremented for intermediate PKGBUILD updates. :This should be a brief description of the package and its A functionality. Try to keep the description to one line of text. 4Defines on which architectures the given package is * available (e.g. arch=(i686 x86_64)). ?This field contains a URL that is associated with the software : being packaged. This is typically the projects website. ?This field specifies the license(s) that apply to the package. % Commonly-used licenses are found in usrsharelicenses common. If A you see the packages license there, simply reference it in the B license field (e.g. license=(GPL)). If the package provides a  license not found in usrsharelicensescommon, then you should 3 include the license in the package itself and set C license=(custom) or license=(custom:LicenseName). The license  should be placed in $pkgdirusrsharelicenses$pkgname when A building the package. If multiple licenses are applicable for a 3 package, list all of them: license=(GPL FDL). DAn array of packages that this package depends on to build, but are E not needed at runtime. Packages in this list follow the same format  as depends. CAn array of packages that this package depends on to run. Packages E in this list should be surrounded with single quotes and contain at < least the package name. Entries can also include a version  requirement of the form name version, where   is one of five - comparisons: >= (greater than or equal to), <= (less than or equal ) to), = (equal to), > (greater than), or < (less than). ?An array of source files required to build the package. Source @ files must either reside in the same directory as the PKGBUILD E file, or be a fully-qualified URL that makepkg will use to download D the file. In order to make the PKGBUILD as useful as possible, use D the $pkgname and $pkgver variables if possible when specifying the E download location. Any files that are compressed will automatically A be extracted, unless found in the noextract array listed below. CThis array contains an MD5 hash for every source file specified in @ the source array (in the same order). makepkg will use this to B verify source file integrity during subsequent builds. To easily B generate md5sums, run makepkg -g >> PKGBUILD. If desired, move = the md5sums line to an appropriate location. NOTE: makepkg @ supports multiple integrity algorithms and their corresponding B arrays (i.e. sha1sums for the SHA1 algorithm); however, official / packages use only md5sums for the time being. The build hook The packaging hook OSpecifies a special install script that is to be included in the package. This N file should reside in the same directory as the PKGBUILD, and will be copied L into the package by makepkg. It does not need to be included in the source ( array (e.g. install=pkgname.install). !JThis array allows you to override some of makepkgs default behavior when J building packages. To set an option, just include the option name in the N options array. To reverse the default behavior, place an ! at the front of M the option. Only specify the options you specifically want to override, the P rest will be taken from makepkg.conf(5). NOTE: force is a special option only J used in a PKGBUILD(5), do not use it unless you know what you are doing. "An empty PKGBUILD OP#+Extract just the package name from ArchDep QPrinting with no quotes $Empty state structure %R:Run a PKG reader on an input String, returning a PKGBUILD STUVRecursively parse the pkgbuild WRead a quoted list of depends XY>Translate an abstract PkgBuild file into a document structure Z[0Helper function to escape strings for PKGBUILDs \&   !"#$%&  !" $ #%&    ! !"#$%&'"Data type for source repositories ()The path to the repository *+!Reads a directory into a package ,0Reads a specified path into a SrcRepo structure -..Dumps a topologically sorted list of packages ' starting with an optionally given key /0Helper function 124Enumerate all build-time dependencies for a package 3DOutput the recursive dependencies of a package in topological order 4AExtract the subrepository of recursive dependencies of a package 5GOutput reverse dependencies of a list of packages in topological order 63Extract reverse dependencies of a list of packages 7-Find version inconsistencies in a repository 89,Check package dependencies against the repo :;check for existence of the right version is the repository ' (return Nothing if package not found) '()*+,-./0123456789:'()*+,-./0123456789:'()*()*+,-./0123456789:,Arch Haskell Team <arch-haskell@haskell.org>;Configure package for system ]<>Translate a generic cabal file into a PKGBUILD (using default # values for pkgname and pkgrel). =DTranslate a generic cabal file into a PKGBUILD, using the specified / ArchLinux package name and package release. ^_>A PKGBUILD skeleton for Haskell libraries (hasLibrary = True) `>A PKGBUILD skeleton for Haskell programs (hasLibrary = False) >abcde?"Look for problems in the PKGBUILD ;<=>?;<=?>;<=>?,Arch Haskell Team <arch-haskell@haskell.org>@2Check for inconsistencies in version requirements 5 returns a list of pairs (package, conflicting dep). AReturns the latest versions @A@A@Af       !"#$%&'(()*+,-./0123456789:;<=>?@ABCDEFFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcde archlinux-1.2%Distribution.ArchLinux.SystemProvidesDistribution.ArchLinux.PkgBuildDistribution.ArchLinux.SrcRepo'Distribution.ArchLinux.CabalTranslation)Distribution.ArchLinux.HackageTranslationSystemProvides corePackagesplatformPackagestranslationTableemptySystemProvidesparseSystemProvidesAnnotatedPkgBuild pkgBuiltWith pkgHeaderhkgNamepkgBodyArchListArchDepPkgBuild arch_pkgname arch_pkgver arch_pkgrel arch_pkgdesc arch_archarch_url arch_licensearch_makedepends arch_depends arch_source arch_md5sum arch_build arch_package arch_install arch_options emptyPkgBuildpkgnameFromArchDepemptyPkg decodePackagepkg2docSrcRepo repo_path repo_contents getPkgFromDirgetRepoFromDir insertpkgdumpContentsTopoarchProvidedPkgs isExternalDep trueDepends strDependsgetDependenciesgetDependencyRepogetReverseDependenciesgetReverseDependencyRepo isConflictinglistVersionConflictsisConflictingWith isSatisfiedBypreprocessCabal cabal2pkg cabal2pkg'install_hook_name oldCabal2ArchgetVersionConflictsgetLatestVersions depstr2hs parseDeplisttrstr2hsparseTranslationTableGetPKGunResultPArchArch Arch_X86_64Arch_X86 ArchOptionsStripmydisp zeroVersion dispNoQuotes runGetPKGgetInputsetInputline readPackage readDepends str2archdep<=> rawpkg2doc escapeForBashescapeCharForBashremoveCoreFrom<->stubPackageLibrarystubPackageProgram install_hook findCLibsshouldNotBeLibraries gtk2hsIfyrecentCabal2ArchVersion