When built with ut uid-1.3.12, generate more random UUIDs than before
Use nextRandom to generate the random UUID, rather than using randomIO. This gets fixes for the following two bugs in the uuid library. However, this did not impact git-annex much, so a hard depedency has not been added on uuid-1.3.12. https://github.com/aslatter/uuid/issues/15 "v4 UUIDs are not that random" This doesn't greatly affect git-annex, because even with only 2^64 possible UUIDs, the chance that two git-annex repositories that are clones of the same git repo get the same UUID is miniscule. And, git-annex generates only one UUID per run, so preducting subsequent UUIDs is not a problem. https://github.com/aslatter/uuid/issues/16 "Remove Random instance for UUID, or mark it as deprecated" git-annex was using that instance; let's stop before it gets deprecated or removed.
This commit is contained in:
parent
5235fb1185
commit
e5225f08fc
3 changed files with 7 additions and 3 deletions
|
@ -35,8 +35,8 @@ import qualified Git.Config
|
||||||
import Config
|
import Config
|
||||||
|
|
||||||
import qualified Data.UUID as U
|
import qualified Data.UUID as U
|
||||||
|
import qualified Data.UUID.V4 as U4
|
||||||
import qualified Data.UUID.V5 as U5
|
import qualified Data.UUID.V5 as U5
|
||||||
import System.Random
|
|
||||||
import Data.Bits.Utils
|
import Data.Bits.Utils
|
||||||
|
|
||||||
configkey :: ConfigKey
|
configkey :: ConfigKey
|
||||||
|
@ -44,7 +44,7 @@ configkey = annexConfig "uuid"
|
||||||
|
|
||||||
{- Generates a random UUID, that does not include the MAC address. -}
|
{- Generates a random UUID, that does not include the MAC address. -}
|
||||||
genUUID :: IO UUID
|
genUUID :: IO UUID
|
||||||
genUUID = UUID . show <$> (randomIO :: IO U.UUID)
|
genUUID = UUID . show <$> U4.nextRandom
|
||||||
|
|
||||||
{- Generates a UUID from a given string, using a namespace.
|
{- Generates a UUID from a given string, using a namespace.
|
||||||
- Given the same namespace, the same string will always result
|
- Given the same namespace, the same string will always result
|
||||||
|
|
|
@ -13,6 +13,9 @@ git-annex (6.20160726) UNRELEASED; urgency=medium
|
||||||
* git-annex.cabal: Temporarily limit to persistent <2.5
|
* git-annex.cabal: Temporarily limit to persistent <2.5
|
||||||
since esqueleto 2.4.3 is not compatible with the newer version.
|
since esqueleto 2.4.3 is not compatible with the newer version.
|
||||||
* Removed dependency on json library; all JSON is now handled by aeson.
|
* Removed dependency on json library; all JSON is now handled by aeson.
|
||||||
|
* When built with uuid-1.3.12, generate more random UUIDs than before.
|
||||||
|
(However, this did not impact git-annex much, so a hard depedency has
|
||||||
|
not been added on uuid-1.3.12.)
|
||||||
|
|
||||||
-- Joey Hess <id@joeyh.name> Wed, 20 Jul 2016 12:03:15 -0400
|
-- Joey Hess <id@joeyh.name> Wed, 20 Jul 2016 12:03:15 -0400
|
||||||
|
|
||||||
|
|
|
@ -328,7 +328,8 @@ Executable git-annex
|
||||||
QuickCheck (>= 2.1),
|
QuickCheck (>= 2.1),
|
||||||
stm (>= 2.3),
|
stm (>= 2.3),
|
||||||
mtl (>= 2),
|
mtl (>= 2),
|
||||||
process, data-default, case-insensitive, uuid, random, dlist,
|
uuid (>= 1.2.6),
|
||||||
|
process, data-default, case-insensitive, random, dlist,
|
||||||
unix-compat, SafeSemaphore, async, directory, filepath, IfElse,
|
unix-compat, SafeSemaphore, async, directory, filepath, IfElse,
|
||||||
MissingH, hslogger, monad-logger,
|
MissingH, hslogger, monad-logger,
|
||||||
utf8-string, bytestring, text, sandi,
|
utf8-string, bytestring, text, sandi,
|
||||||
|
|
Loading…
Reference in a new issue