úÎlg¨A      !"#$%&'()*+,-./0123456789:;<=>?@Don Stewart <dons@galois.com>.(The type of pkgbuild parsers for String !Result type for pkgbuild parsers 3A PKGBUILD data structure with additional metadata contents of pkgbuild file #version of cabal2arch used, if any header strings Valid linux platforms (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 !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 $Printing with no quotes %Empty state structure &':Run a PKG reader on an input String, returning a PKGBUILD ()*+Recursively parse the pkgbuild ,-"Look for problems in the PKGBUILD /  !"#$%&'()*A+,-. !"#  $ %&'()*+,-.     !" !"#$%&'()*+,- Don StewartBCD.Type for AUR RPC responses. /0 unique ID of the package on AUR 1url of AUR package 2string name of package 32either the AUR version (version,rev) or a string 44numeric category of the package (e.g. 17 == System) 5package synopsis 66which repository is it stored in (community, AUR etc) 71url (sanity check: should be hackage url mostly) 8url path to package source. 9type of license :votes on package ;&is the package flagged as out of date E%Wrap up a package name a bit safely. FGHType for AUR RPC requests. They can be info queries, or search queries. HI<(Query AUR for information on a package  $ info "xmonad"  * Right (AURInfo { packageID = 10593 + , packageName = "xmonad" f , packageVersion = Right (Version {versionBranch = [0,8,1] , versionTags = []},"1.2")i % , packageCategory = 17 ^ , packageDesc = "A lightweight X11 tiled window manager written in Haskell" $ , packageLocation = 3 7 , packageURL = "http://xmonad.org/" C , packagePath = "/packages/xmonad/xmonad.tar.gz" / , packageLicense = "custom:BSD3" # , packageVotes = 260 , , packageOutOfDate = False }) =JSearch AUR for packages matching pattern. Returns a list of info results. >Return the parsed PKGBUILD 0 pkgbuild :: String -> IO (Either String [String]) -- (Either String PkgBuild) J>List packages not built with up to date version of cabal2arch URL for AUR RPC server KQuery the server LMUseful combinators NOParse a AURInfo. ./0123456789:;<=>./0123456789:;<=>. /0123456789:;/0123456789:;<=>?;Take as input a list of package names, return an html page 9 with interesting facts about the state of the packages. Pcommand to run any arguments standard input 1either the stdout, or an exitcode and any output @CLoad a table of packag names associated with their latest versions QRST?@?@?@U       !"#$%&'()*+,--./0123456789:;<=>?@@ABBCDEFGHIJKLFMNOParchlinux-0.2.4Distribution.ArchLinux.PkgBuildDistribution.ArchLinux.AURDistribution.ArchLinux.ReportWarningsGetPKGunResultPAnnotatedPkgBuild pkgBuiltWith pkgHeaderpkgBodyArchListArchArch Arch_X86_64Arch_X86ArchDep ArchOptionsStripPkgBuild arch_pkgname arch_pkgver arch_pkgrel arch_pkgdesc arch_archarch_url arch_licensearch_makedepends arch_depends arch_source arch_md5sum arch_build arch_install arch_options emptyPkgBuild dispNoQuotesemptyPkg decodePackage runGetPKGgetInputsetInput<$> readPackagerecentCabal2ArchVersion oldCabal2ArchAURInfo packageIDpackageURLinAUR packageNamepackageVersionpackageCategory packageDescpackageLocation packageURL packagePathpackageLicense packageVotespackageOutOfDateinfosearchpackagereportloadPackageIndexline AURSearchflattenName AURRequest InfoRequest SearchRequesturleval<=><&> parseInfo myReadProcessloadHackageDownloadsfilepathloadBuildStatus