h$B;M      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~          provisional haskell98 Safe-Inferred  Safe-Inferred3hackportType holding all of the  constructors.hackport!WrongCacheVersion | InvalidCachehackportThrow a .hackportCatch a .hackport"Show the error string for a given .hackportneeded for spec test-suite   Safe-Inferred(   GPL-3+haskell@gentoo.orgNone0hackportConvert the Cabal  into the Gentoo format, as a .Generally, if the license is one of the common free-software or open-source licenses, ! should return the license as a  :convertLicense (SPDX.License $ SPDX.simpleLicenseExpression SPDX.GPL_3_0_or_later)Right "GPL-3+"convertLicense (SPDX.License $ SPDX.simpleLicenseExpression SPDX.GPL_3_0_only) Right "GPL-3"If it is a more obscure license, this should alert the user by returning a  :convertLicense (SPDX.License $ SPDX.simpleLicenseExpression SPDX.EUPL_1_1)Left ...hackport9Extract only the dependencies which are not bundled with GHC.  Safe-Inferred[  Safe-InferredhackportType representing CABAL_FEATURES in an ebuild.GPL-3+haskell@gentoo.org Safe-InferredhackportType representing the aggregated (best inferred) metadata for a new ebuild of a package.hackportFind the existing package metadata from the last available ebuild.GPL-3+haskell@gentoo.orgNone hackport Maybe determine the appropriate  of the Cabal package from a given GHC version.cabalFromGHC [8,8,3]Just (mkVersion [3,0,1,0])cabalFromGHC [9,9,9,9]Nothinghackport3Is the package a core dependency of any version of GHC? >>> packageIsCoreInAnyGHC (Cabal.mkPackageName "array") Truehackport-Check if a dependency is satisfiable given a  representing the core packages in a GHC version. Packages that are not core will always be accepted, packages that are core in any ghc must be satisfied by the .hackportGiven a  it returns the miminum GHC version to build a package, and a list of core packages to that GHC version.GPL-3+haskell@gentoo.org Safe-InferredY hackport$A data type for the Gentoo-specific  metadata.xml file. Currently defines functions for the maintainer email and USE flags and their descriptions.hackport This should always be ["haskell@gentoo.org"].hackportOnly active USE flags, if any.hackportMaybe return a  from a .Trying to parse an empty  should return :pureMetadataFromFile T.emptyNothing Parsing a  metadata.xml without USE flags should always be equivalent to :pureMetadataFromFile (makeDefaultMetadata Map.empty) == Just makeMinimalMetadataTrue Parsing a  metadata.xml with USE flags should always be equivalent to  plus the supplied USE flags:pureMetadataFromFile (makeDefaultMetadata (Map.fromList [("name","description")])) == Just (makeMinimalMetadata {metadataUseFlags = Map.fromList [("name","description")] } )TruehackportApply  to a .hackportRemove global USE flags from the flags +, as these should not be within the local  metadata.xml;. For now, this is manually specified rather than parsing use.desc.hackportPretty print as valid XML a list of flags and their descriptions from a given .hackportPretty print a human-readable list of flags and their descriptions from a given .hackport/A minimal metadata for use as a fallback value.hackportPretty print the  metadata.xml string.  Safe-InferredhackportUse variable modificatorhackportno modificatorhackportmodificator (Equiv mark)hackport? modificator (Question mark)hackport ! modificator (eXclamation mark)hackport modificator  provisional haskell98 Safe-Inferredhackport-Various allowed suffixes in Portage versions.!hackportPortage-style version type.#hackport[1,42,3] ~= 1.42.3$hackportoptional letter&hackportrevision, 0 means nonehackportConvert from a  to a Portage !.\verNum -> fromCabalVersion (Cabal.mkVersion verNum) == Version verNum Nothing [] 0hackport! parser using .hackportPrints a valid Portage ! string.!"#$%&GPL-3+haskell@gentoo.orgNone 'hackportPortage-style ', containing a + and a !.+hackportPortage-style +, containing a / and a .2hackport Transform a ' into a .packageIdToFilePath (PackageId (PackageName (Category "dev-haskell") (Cabal.mkPackageName "foo-bar2")) (Portage.Version [3,0,0] (Just 'b') [Portage.RC 2] 1 ))4"dev-haskell/foo-bar2/foo-bar2-3.0.0b_rc2-r1.ebuild"3hackportMaybe generate a ' from a . Note that the ? must have its file extension stripped before being passed to 3.filePathToPackageId (Category "dev-haskell") "foo-bar2-3.0.0b_rc2-r1"Just (PackageId {packageId = PackageName {category = Category {unCategory = "dev-haskell"}, cabalPkgName = PackageName "foo-bar2"}, pkgVersion = Version {versionNumber = [3,0,0], versionChar = Just 'b', versionSuffix = [RC 2], versionRevision = 1}})4hackport Create a +) from supplied category and package name s.5hackport Create a ' from a / and .6hackport Convert a " into lowercase. Internally uses :.9normalizeCabalPackageName (Cabal.mkPackageName "FooBar1")PackageName "foobar1"7hackportApply 6 to the  of a supplied .8hackport Convert a ' into a  .9hackportParse a  as a package in the form of [category/]name[-version]: Note that we cannot use the  function to parse the :, since it fails the entire parse if it tries to parse a Version. See  below."If parsing a valid package string:parseFriendlyPackage "category-name/package-name1-0.0.0.1a_beta2-r4"Right (Just (Category {unCategory = "category-name"}),PackageName "package-name1",Just (Version {versionNumber = [0,0,0,1], versionChar = Just 'a', versionSuffix = [Beta 2], versionRevision = 4}))%If malformed, return an error string:parseFriendlyPackage "category-name/package-name-1-0.0.0.1a_beta2-r4"Left ...:hackportPretty-print a lowercase ..Note the difference between this function and 6: this function returns a , the other a ..cabal_pn_to_PN (Cabal.mkPackageName "FooBar1") "foobar1"!"#$%&'(*)+,-./0123456789:/01+,-.'(*)!"#$%&45896732:NoneQhackportType describing an overlay.[hackportIs  found in Q?^hackportMake sure there is only one ebuild for each version number (by selecting the highest ebuild version revision)PQRSTUVWXYZ[\]^_`aVWXYZQRSTU\`_aP^][None hackportIf a package already exist in the overlay, find which category it has. If it does not exist, we default to 'dev-haskell'.GPL-3+haskell@gentoo.orgNone#hackportType of dependency version.,A dependency version may either be an exact !% or a version range between a given  and .hackport$Type of upper bound of a dependency.hackport less than (<)hackportless than or equal to (<=)hackportno upper boundhackport$Type of lower bound of a dependency.hackportgreater than (>)hackportgreater than or equal to (>=)hackportno lower boundhackport(Type of SLOT dependency of a dependency.hackportnothing specialhackport:=hackport ':slotno'hackport True if left 3 constraint is the same as (or looser than) right  constraint.None#GPL-3+haskell@gentoo.orgNone$whackportSet the SLOT for a given .None$GPL-3+haskell@gentoo.orgNone0J hackport Parse a ["] as a valid package string. E.g. category/name-1.0.0 . Return # if the string to parse is invalid. When the [ ] is valid:4readPackageString ["dev-haskell/packagename1-1.0.0"]Right (Just (Category {unCategory = "dev-haskell"}),PackageName "packagename1",Just (Version {versionNumber = [1,0,0], versionChar = Nothing, versionSuffix = [], versionRevision = 0})) When the [ ] is empty:readPackageString []Left ...hackportMaybe return a ' of the next highest version for a given package, relative to the provided '. For example:8let ebuildDir = ["foo-bar2-3.0.1.ebuild","metadata.xml"]let newPkgId = Portage.PackageId (Portage.PackageName (Portage.Category "dev-haskell") (Cabal.mkPackageName "foo-bar2")) (Portage.Version [3,0,2] Nothing [] 0 )'getPreviousPackageId ebuildDir newPkgIdJust (PackageId {packageId = PackageName {category = Category {unCategory = "dev-haskell"}, cabalPkgName = PackageName "foo-bar2"}, pkgVersion = Version {versionNumber = [3,0,1], versionChar = Nothing, versionSuffix = [], versionRevision = 0}})hackport Alias for msum.!\a -> first_just_of a == M.msum ahackportRemove with or use prefixes from flag names.drop_prefix "with_conduit" "conduit"drop_prefix "use-https""https"drop_prefix "no_examples" "no_examples"hackportSquash debug-related USE flags under the debug global USE flag.squash_debug "use-debug-foo""debug"squash_debug "foo-bar" "foo-bar"hackportGentoo allows underscore ('_' ) names in IUSE only for  USE_EXPAND values. If it's not a user-specified rename mangle it into a hyphen ().+convert_underscores "remove_my_underscores""remove-my-underscores"hackport Perform all IUSE mangling.mangle_iuse "use_foo-bar_debug""debug"mangle_iuse "with-bar_quux" "bar-quux"hackportConvert all stable keywords to testing (unstable) keywords. Preserve arch masks (-).to_unstable "amd64""~amd64"to_unstable "~amd64""~amd64"to_unstable "-amd64""-amd64"hackport Generate a  of  names and their descriptions.8For example, if we construct a singleton list holding a  with  foo and  bar, we should get a  containing those values:let flags = [(Cabal.emptyFlag (Cabal.mkFlagName "foo")) {Cabal.flagDescription = "bar"}]metaFlags flagsfromList [("foo","bar")]hackport Return a  if it is not a  USE_EXPAND.If the ! has a prefix matching any valid  USE_EXPAND, then return . Otherwise return  .hackportStrip  USE_EXPAND s from a [].hackport!list of ebuilds for given packagehackport new PackageIdhackport#maybe PackageId of previous version None0None0#GPL-3+haskell@gentoo.orgNone4 hackport2Type representing the information contained in an .ebuild.hackportJust  myOldName. if the package name contains upper charactershackport$raw block for src_prepare() contentshackport&raw block for src_configure() contentshackporthints to ebuild writers/readers on what hackport options were used to produce an ebuildhackportGenerate a minimal  template.hackportPretty-print an  as a .hackportConvert http urls into https urls, unless whitelisted as http-only.toHttps "http://darcs.net""http://darcs.net"toHttps "http://pandoc.org""https://pandoc.org"toHttps "https://github.com""https://github.com"hackportSort IUSE alphabeticallysort_iuse ["+a","b"] ["+a","b"]hackportDrop trailing dot(s).drop_tdot "foo.""foo"drop_tdot "foo...""foo"hackportPlace a 9 between quotes, and correctly handle special characters.(C) 2005, Duncan CouttsGPL-2+haskell@gentoo.orgNone6hackport Generate a  from a / and a .hackportMap  over [].hackportConvert  into .GPL-3+haskell@gentoo.orgNone7hackportCabal-1 style , with a top-level  function.hackportDependencies of an ebuild.hackport Construct a  using  for the .hackportExtract only the build dependencies for libraries and executables for a given package.hackport$Resolve package dependencies from a  into an . GPL-3+haskell@gentoo.orgNone9hhackport!This function is executed by the merge command of HackPort#. Its functionality is as follows: Feed user input to readPackageString#Look for a matching package on the hackage databaseRun i with the supplied information9Generate a coloured diff between the old and new ebuilds.Various information is printed in between these steps depending on the .ihackportGenerate an ebuild from a .hihiNone: jklmnopqrstuv jklmnopqrstuv  experimental haskell98 Safe-Inferred:d Safe-Inferred:|}~|}~None: None;)hackportType containing global flags.hackportDefault .!"#$%&'()*+,-./0123456789:;<=>?@ABBCDEFGGHIJJKLMMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnnopqrrstuvwxyz{|}~                               BJG:K 9hackport-0.7.2.1-1OygFJYGTmY8Q1y3r3WxcM-hackport-internalErrorPaths_hackportPortage.PackageIdPortage.OverlayMergeStatus Portage.HostOverlaysHackPort.GlobalFlags AnsiColor Portage.CabalPortage.EBuild.RenderPortage.EBuild.CabalFeature Portage.EMetaPortage.GHCCorePortage.Metadata Portage.UsePortage.VersionPortage.ResolvePortage.Dependency.TypesPortage.Dependency.BuilderPortage.TablesPortage.Dependency.Normalize Merge.UtilsCabalFlagDescriptionPortage.Dependency.PrintPortage.DependencyPortage.EBuild Cabal2EbuildMerge.DependenciesUtil HackPortError ArgumentErrorConnectionFailedPackageNotFoundInvalidTarballURLInvalidSignatureURLVerificationFailedDownloadFailedUnknownCompressionUnpackingFailed NoCabalFoundExtractionFailedCabalParseFailed BashNotFound BashError NoOverlayMultipleOverlaysUnknownVerbosityLevel InvalidServerthrowExcatchExhackPortShowError$fExceptionHackPortError$fShowHackPortError$fEqHackPortErrorversion getBinDir getLibDir getDynLibDir getDataDir getLibexecDir getSysconfDirgetDataFileNameVersion versionNumber versionChar versionSuffixversionRevision PackageId packageId pkgVersion PackageNamecategory cabalPkgNameCategory unCategorypackageIdToFilePathfilePathToPackageId mkPackageNamefromCabalPackageIdnormalizeCabalPackageNamenormalizeCabalPackageIdtoCabalPackageIdparseFriendlyPackagecabal_pn_to_PN$fParsecCategory$fPrettyCategory$fNFDataCategory$fParsecPackageName$fPrettyPackageName$fNFDataPackageName$fParsecPackageId$fPrettyPackageId$fNFDataPackageId $fEqPackageId$fOrdPackageId$fShowPackageId$fReadPackageId$fEqPackageName$fOrdPackageName$fShowPackageName$fReadPackageName $fEqCategory $fOrdCategory$fShowCategory$fReadCategory DirectoryTreeOverlay overlayPath overlayMapoverlayMetadataExistingEbuildebuildId ebuildCabalId ebuildPath inOverlayloadLazy filterByEmail reduceOverlayreadOverlayByPackage readOverlaygetDirectoryTree$fHasUnitIdExistingEbuild$fPackageExistingEbuild $fShowOverlay$fShowExistingEbuild$fOrdExistingEbuild$fEqExistingEbuildmergemergeGenericPackageDescription FileStatusSameDiffers OverlayOnly PortageOnly HackageOnlyStatusDirectionPortagePlusOverlayOverlayToPortageHackageToOverlay fromStatusstatus runStatus$fFunctorFileStatus$fOrdFileStatus$fShowFileStatus$fEqFileStatus$fEqStatusDirection LocalInfo distfiles_dir overlay_list portage_dirgetInfo$fReadLocalInfo$fShowLocalInfogetOverlayPath GlobalFlags globalVersionglobalNumericVersionglobalPathToOverlayglobalPathToPortagedefaultGlobalFlagswithHackPortContextColorDefaultBlackRedGreenYellowBlueMagentaCyanWhiteinColorboldconvertLicensehackport-0.7.2.1-1OygFJYGTmY8Q1y3r3WxcM-hackport-external-libs-CabalDistribution.SPDX.LicenseLicensebaseGHC.BaseString Data.EitherRightLeftpartition_dependsRenderrender CabalFeatureLibProfileHaddockHoogleHsColour TestSuiteEMetafindExistingMetalicensekeywords cabal_flags description cabalFromGHCDistribution.Types.VersionpackageIsCoreInAnyGHCdependencySatisfiable Distribution.Simple.PackageIndex PackageIndexminimumGHCVersionToBuildPackage,Distribution.Types.GenericPackageDescriptionGenericPackageDescription-Distribution.PackageDescription.Configuration finalizePD)Distribution.Types.ComponentRequestedSpecdefaultComponentRequestedSpecplatformMetadatametadataEmailsmetadataUseFlagspureMetadataFromFile text-1.2.3.2Data.Text.InternalText GHC.MaybeNothingmakeMinimalMetadatametadataFromFileGHC.IOFilePathstripGlobalUseFlagscontainers-0.6.2.1Data.Map.InternalMapprettyPrintFlagsprettyPrintFlagsHumanmakeDefaultMetadataUseFlagEQXNUsemkUsemkNotUsemkQUsedispUsesSuffixfromCabalVersion$fParsecVersionDistribution.ParsecParsec$fPrettyVersionPAlphaBetaPreRCis_livetoCabalVersionDistribution.Types.PackageNameDistribution.Types.PackageIdPackageIdentifierMaybeparsecparseCabalPackageNameresolveCategoryresolveCategoriesresolveFullPortageNameDRangeLBoundUBoundStrictUB NonstrictUB InfinityBStrictLB NonstrictLBZeroB SlotDependAnySlotAnyBuildTimeSlot GivenSlotdep_as_broad_as DependencyAtom DependAtom DependAnyOf DependAllOf DependIfUseDAttrDExactrange_is_case_ofis_empty_dependencydep_is_case_ofempty_dependency addDepUseFlag setSlotDepmkUseDependencyoverAtomset_build_slotnormalize_dependreadPackageStringgetPreviousPackageId first_just_of drop_prefix squash_debugconvert_underscoresGHC.Num- mangle_iuse to_unstable metaFlagsDistribution.Types.Flag PackageFlagFlagNamedropIfUseExpandflagNameJustdropIfUseExpandsdep2strdep2str_noindentEBuildcabal_pn src_prepare src_configure used_optionsebuildTemplate showEBuildtoHttps sort_iuse drop_tdotquotefeatureshomepagenameslot hackage_namerevisionhackportVersioniusedepend depend_extrardepend rdepend_extra cabal2ebuild%Distribution.Types.PackageDescriptionPackageDescriptionconvertDependenciesconvertDependencyDistribution.Types.DependencyRetroPackageDescription buildDependsEDep mkRetroPD exeAndLibDepsresolveDependenciespackageDescriptiondeprdeprdep_edep_eDistribution.Verbosity Verbosityrun_cmd