Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 0 additions & 1 deletion Cabal/Cabal.cabal
Original file line number Diff line number Diff line change
Expand Up @@ -150,7 +150,6 @@ library
Distribution.Simple.Program.Ld
Distribution.Simple.Program.ResponseFile
Distribution.Simple.Program.Run
Distribution.Simple.Program.Script
Distribution.Simple.Program.Strip
Distribution.Simple.Program.Types
Distribution.Simple.Register
Expand Down
114 changes: 0 additions & 114 deletions Cabal/src/Distribution/Simple/Program/Script.hs

This file was deleted.

74 changes: 4 additions & 70 deletions Cabal/src/Distribution/Simple/Register.hs
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,6 @@
{-# LANGUAGE FlexibleContexts #-}
{-# LANGUAGE RankNTypes #-}

-----------------------------------------------------------------------------

-- |
-- Module : Distribution.Simple.Register
-- Copyright : Isaac Jones 2003-2004
Expand All @@ -14,19 +12,16 @@
--
-- This module deals with registering and unregistering packages. There are a
-- couple ways it can do this, one is to do it directly. Another is to generate
-- a script that can be run later to do it. The idea here being that the user
-- is shielded from the details of what command to use for package registration
-- for a particular compiler. In practice this aspect was not especially
-- popular so we also provide a way to simply generate the package registration
-- the package registration
-- file which then must be manually passed to @ghc-pkg@. It is possible to
-- generate registration information for where the package is to be installed,
-- or alternatively to register the package in place in the build tree. The
-- latter is occasionally handy, and will become more important when we try to
-- build multi-package systems.
--
-- This module does not delegate anything to the per-compiler modules but just
-- mixes it all in this module, which is rather unsatisfactory. The script
-- generation and the unregister feature are not well used or tested.
-- mixes it all in this module, which is rather unsatisfactory. The
-- unregister feature is not well used or tested.
module Distribution.Simple.Register
( register
, registerWithHandles
Expand Down Expand Up @@ -77,7 +72,6 @@ import Distribution.Simple.Errors
import Distribution.Simple.Flag
import Distribution.Simple.Program
import qualified Distribution.Simple.Program.HcPkg as HcPkg
import Distribution.Simple.Program.Script
import Distribution.Simple.Setup.Common
import Distribution.Simple.Setup.Haddock (HaddockTarget (ForDevelopment))
import Distribution.Simple.Setup.Register
Expand All @@ -90,8 +84,6 @@ import Distribution.Version
import System.Directory
import System.FilePath (isAbsolute)

import qualified Data.ByteString.Lazy.Char8 as BS.Char8

-- -----------------------------------------------------------------------------
-- Registration

Expand Down Expand Up @@ -197,7 +189,6 @@ registerAll verbHandles pkg lbi regFlags ipis =
case () of
_
| modeGenerateRegFile -> writeRegistrationFileOrDirectory
| modeGenerateRegScript -> writeRegisterScript
| otherwise -> do
for_ ipis $ \ipi -> do
setupMessage'
Expand All @@ -222,8 +213,6 @@ registerAll verbHandles pkg lbi regFlags ipis =
(makeSymbolicPath (prettyShow (packageId pkg) <.> "conf"))
(fromFlag (regGenPkgConf regFlags))

modeGenerateRegScript = fromFlag (regGenScript regFlags)

-- FIXME: there's really no guarantee this will work.
-- registering into a totally different db stack can
-- fail if dependencies cannot be satisfied.
Expand All @@ -233,7 +222,6 @@ registerAll verbHandles pkg lbi regFlags ipis =
++ maybeToList (flagToMaybe (regPackageDB regFlags))
common = registerCommonFlags regFlags
verbosity = mkVerbosity verbHandles (fromFlag (setupVerbosity common))
mbWorkDir = mbWorkDirLBI lbi

writeRegistrationFileOrDirectory = do
-- Handles overwriting both directory and file
Expand All @@ -255,17 +243,6 @@ registerAll verbHandles pkg lbi regFlags ipis =
(regFile </> (number i ++ "-" ++ prettyShow (IPI.installedUnitId installedPkgInfo)))
(IPI.showInstalledPackageInfo installedPkgInfo)

writeRegisterScript =
case compilerFlavor (compiler lbi) of
UHC -> notice verbosity "Registration scripts not needed for uhc"
_ ->
withHcPkg
verbosity
"Registration scripts are not implemented for this compiler"
(compiler lbi)
(withPrograms lbi)
(writeHcPkgRegisterScript verbosity mbWorkDir ipis packageDbs)

generateRegistrationInfo
:: Verbosity
-> PackageDescription
Expand Down Expand Up @@ -449,38 +426,6 @@ registerPackage verbosity comp progdb mbWorkDir packageDbs installedPkgInfo regi
UHC -> UHC.registerPackage verbosity mbWorkDir comp progdb packageDbs installedPkgInfo
_ -> dieWithException verbosity RegisteringNotImplemented

writeHcPkgRegisterScript
:: Verbosity
-> Maybe (SymbolicPath CWD (Dir Pkg))
-> [InstalledPackageInfo]
-> PackageDBStack
-> HcPkg.ConfiguredProgram
-> IO ()
writeHcPkgRegisterScript verbosity mbWorkDir ipis packageDbs hpi = do
let genScript installedPkgInfo =
let invocation =
HcPkg.registerInvocation
hpi
Verbosity.Normal
mbWorkDir
packageDbs
installedPkgInfo
HcPkg.defaultRegisterOptions
in invocationAsSystemScript buildOS invocation
scripts = map genScript ipis
-- TODO: Do something more robust here
regScript = unlines scripts

let out_file = interpretSymbolicPath mbWorkDir regScriptFileName
info verbosity ("Creating package registration script: " ++ out_file)
writeUTF8File out_file regScript
setFileExecutable out_file

regScriptFileName :: SymbolicPath Pkg File
regScriptFileName = case buildOS of
Windows -> makeSymbolicPath "register.bat"
_ -> makeSymbolicPath "register.sh"

-- -----------------------------------------------------------------------------
-- Making the InstalledPackageInfo

Expand Down Expand Up @@ -730,7 +675,6 @@ unregisterWithHandles :: VerbosityHandles -> PackageDescription -> LocalBuildInf
unregisterWithHandles verbHandles pkg lbi regFlags = do
let pkgid = packageId pkg
common = registerCommonFlags regFlags
genScript = fromFlag (regGenScript regFlags)
verbosity = mkVerbosity verbHandles (fromFlag (setupVerbosity common))
packageDb =
fromFlagOrDefault
Expand All @@ -745,12 +689,7 @@ unregisterWithHandles verbHandles pkg lbi regFlags = do
mbWorkDir
packageDb
pkgid
in if genScript
then
writeFileAtomic
unregScriptFileName
(BS.Char8.pack $ invocationAsSystemScript buildOS invocation)
else runProgramInvocation verbosity invocation
in runProgramInvocation verbosity invocation
setupMessage verbosity "Unregistering" pkgid
withHcPkg
verbosity
Expand All @@ -759,11 +698,6 @@ unregisterWithHandles verbHandles pkg lbi regFlags = do
(withPrograms lbi)
unreg

unregScriptFileName :: FilePath
unregScriptFileName = case buildOS of
Windows -> "unregister.bat"
_ -> "unregister.sh"

internalPackageDBPath :: LocalBuildInfo -> SymbolicPath Pkg (Dir Dist) -> SymbolicPath Pkg (Dir PkgDB)
internalPackageDBPath lbi distPref =
case compilerFlavor (compiler lbi) of
Expand Down
16 changes: 0 additions & 16 deletions Cabal/src/Distribution/Simple/Setup/Register.hs
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,6 @@ import Distribution.Verbosity
data RegisterFlags = RegisterFlags
{ registerCommonFlags :: !CommonSetupFlags
, regPackageDB :: Flag PackageDB
, regGenScript :: Flag Bool
, regGenPkgConf :: Flag (Maybe (SymbolicPath Pkg (Dir PkgConf)))
, regInPlace :: Flag Bool
, regPrintId :: Flag Bool
Expand Down Expand Up @@ -89,7 +88,6 @@ defaultRegisterFlags =
RegisterFlags
{ registerCommonFlags = defaultCommonSetupFlags
, regPackageDB = NoFlag
, regGenScript = Flag False
, regGenPkgConf = NoFlag
, regInPlace = Flag False
, regPrintId = Flag False
Expand Down Expand Up @@ -137,13 +135,6 @@ registerCommand =
regInPlace
(\v flags -> flags{regInPlace = v})
trueArg
, option
""
["gen-script"]
"instead of registering, generate a script to register later"
regGenScript
(\v flags -> flags{regGenScript = v})
trueArg
, option
""
["gen-pkg-config"]
Expand Down Expand Up @@ -196,13 +187,6 @@ unregisterCommand =
)
]
)
, option
""
["gen-script"]
"Instead of performing the unregister command, generate a script to unregister later"
regGenScript
(\v flags -> flags{regGenScript = v})
trueArg
]
}

Expand Down
1 change: 0 additions & 1 deletion cabal-install/src/Distribution/Client/ProjectPlanning.hs
Original file line number Diff line number Diff line change
Expand Up @@ -4343,7 +4343,6 @@ setupHsRegisterFlags
Cabal.RegisterFlags
{ registerCommonFlags = common
, regPackageDB = mempty -- misfeature
, regGenScript = mempty -- never use
, regGenPkgConf = toFlag (Just (makeSymbolicPath pkgConfFile))
, regInPlace = case elabBuildStyle of
BuildInplaceOnly{} -> toFlag True
Expand Down

This file was deleted.

8 changes: 8 additions & 0 deletions changelog.d/pr-11834.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
---
synopsis: Decommission `v1-register --gen-script` and `v1-unregister --gen-script`
packages: [Cabal,cabal-install]
prs: 11834
significance: significant
---

Command line interface `cabal v1-register --gen-script` and `cabal v1-unregister --gen-script` as well as corresponding `./Setup register --gen-script` and `./Setup unregister --gen-script` are decommissioned. Instead of `cabal v1-register --gen-script` one can generate a package config file with `register --gen-pkg-config` and register it with `ghc-pkg register`. Instead of `cabal v1-unregister --gen-script` just run `ghc-pkg unregister`.
Loading
Loading