From f6af5f502094ba8e892e7a9e7407924a7f79ba67 Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Fri, 7 Apr 2017 18:03:09 -0400 Subject: version: Added "dependency versions" line. This commit was sponsored by Anthony DeRobertis on Patreon. --- BuildFlags.hs | 81 --------------- BuildInfo.hs | 113 +++++++++++++++++++++ CHANGELOG | 1 + Command/Version.hs | 3 +- ...of_a_library_corresponding_to_a_build_flag.mdwn | 6 ++ git-annex.cabal | 2 +- 6 files changed, 123 insertions(+), 83 deletions(-) delete mode 100644 BuildFlags.hs create mode 100644 BuildInfo.hs diff --git a/BuildFlags.hs b/BuildFlags.hs deleted file mode 100644 index 68dfabbe8..000000000 --- a/BuildFlags.hs +++ /dev/null @@ -1,81 +0,0 @@ -{- git-annex build flags reporting - - - - Copyright 2013 Joey Hess - - - - Licensed under the GNU GPL version 3 or higher. - -} - -{-# LANGUAGE CPP #-} - -module BuildFlags where - -buildFlags :: [String] -buildFlags = filter (not . null) - [ "" -#ifdef WITH_ASSISTANT - , "Assistant" -#else -#warning Building without the assistant. -#endif -#ifdef WITH_WEBAPP - , "Webapp" -#else -#warning Building without the webapp. You probably need to install Yesod.. -#endif -#ifdef WITH_PAIRING - , "Pairing" -#else -#warning Building without local pairing. -#endif -#ifdef WITH_TESTSUITE - , "Testsuite" -#else -#warning Building without the testsuite. -#endif -#ifdef WITH_S3 - , "S3" -#if MIN_VERSION_aws(0,10,6) - ++ "(multipartupload)" -#endif -#if MIN_VERSION_aws(0,13,0) - ++ "(storageclasses)" -#endif -#else -#warning Building without S3. -#endif -#ifdef WITH_WEBDAV - , "WebDAV" -#else -#warning Building without WebDAV. -#endif -#ifdef WITH_INOTIFY - , "Inotify" -#endif -#ifdef WITH_FSEVENTS - , "FsEvents" -#endif -#ifdef WITH_KQUEUE - , "Kqueue" -#endif -#ifdef WITH_DBUS - , "DBus" -#endif -#ifdef WITH_DESKTOP_NOTIFY - , "DesktopNotify" -#endif -#ifdef WITH_CONCURRENTOUTPUT - , "ConcurrentOutput" -#else -#warning Building without ConcurrentOutput -#endif -#ifdef WITH_TORRENTPARSER - , "TorrentParser" -#endif -#ifdef WITH_MAGICMIME - , "MagicMime" -#endif - -- Always enabled now, but users may be used to seeing these flags - -- listed. - , "Feeds" - , "Quvi" - ] diff --git a/BuildInfo.hs b/BuildInfo.hs new file mode 100644 index 000000000..29455f61c --- /dev/null +++ b/BuildInfo.hs @@ -0,0 +1,113 @@ +{- git-annex build info reporting + - + - Copyright 2013-2017 Joey Hess + - + - Licensed under the GNU GPL version 3 or higher. + -} + +{-# LANGUAGE CPP #-} + +module BuildInfo where + +import Data.List +import qualified Data.CaseInsensitive as CI + +buildFlags :: [String] +buildFlags = filter (not . null) + [ "" +#ifdef WITH_ASSISTANT + , "Assistant" +#else +#warning Building without the assistant. +#endif +#ifdef WITH_WEBAPP + , "Webapp" +#else +#warning Building without the webapp. You probably need to install Yesod.. +#endif +#ifdef WITH_PAIRING + , "Pairing" +#else +#warning Building without local pairing. +#endif +#ifdef WITH_TESTSUITE + , "Testsuite" +#else +#warning Building without the testsuite. +#endif +#ifdef WITH_S3 + , "S3" +#if MIN_VERSION_aws(0,10,6) + ++ "(multipartupload)" +#endif +#if MIN_VERSION_aws(0,13,0) + ++ "(storageclasses)" +#endif +#else +#warning Building without S3. +#endif +#ifdef WITH_WEBDAV + , "WebDAV" +#else +#warning Building without WebDAV. +#endif +#ifdef WITH_INOTIFY + , "Inotify" +#endif +#ifdef WITH_FSEVENTS + , "FsEvents" +#endif +#ifdef WITH_KQUEUE + , "Kqueue" +#endif +#ifdef WITH_DBUS + , "DBus" +#endif +#ifdef WITH_DESKTOP_NOTIFY + , "DesktopNotify" +#endif +#ifdef WITH_CONCURRENTOUTPUT + , "ConcurrentOutput" +#else +#warning Building without ConcurrentOutput +#endif +#ifdef WITH_TORRENTPARSER + , "TorrentParser" +#endif +#ifdef WITH_MAGICMIME + , "MagicMime" +#endif + -- Always enabled now, but users may be used to seeing these flags + -- listed. + , "Feeds" + , "Quvi" + ] + +-- Not a complete list, let alone a listing transitive deps, but only +-- the ones that are often interesting to know. +dependencyVersions :: [String] +dependencyVersions = map fmt $ sortOn (CI.mk . fst) + [ ("feed", VERSION_feed) + , ("uuid", VERSION_uuid) + , ("bloomfilter", VERSION_bloomfilter) + , ("http-client", VERSION_http_client) + , ("persistent-sqlite", VERSION_persistent_sqlite) + , ("cryptonite", VERSION_cryptonite) +#ifdef WITH_S3 + , ("aws", VERSION_aws) +#endif +#ifdef WITH_WEBDAV + , ("DAV", VERSION_DAV) +#endif +#ifdef WITH_TORRENTPARSER + , ("torrent", VERSION_torrent) +#endif +#ifdef WITH_WEBAPP + , ("yesod", VERSION_yesod) +#endif +#ifdef TOOL_VERSION_ghc + , ("ghc", TOOL_VERSION_ghc) +#endif + ] + where + fmt (p, v) = p ++ "-" ++ v diff --git a/CHANGELOG b/CHANGELOG index d988a969e..a3a7a9d54 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -20,6 +20,7 @@ git-annex (6.20170322) UNRELEASED; urgency=medium * gcrypt: Support re-enabling to change eg, encryption parameters. This was never supported before. * git annex add -u now supported, analagous to git add -u + * version: Added "dependency versions" line. -- Joey Hess Wed, 29 Mar 2017 12:41:46 -0400 diff --git a/Command/Version.hs b/Command/Version.hs index ece5fbb05..7af928750 100644 --- a/Command/Version.hs +++ b/Command/Version.hs @@ -10,7 +10,7 @@ module Command.Version where import Command import qualified Build.SysConfig as SysConfig import Annex.Version -import BuildFlags +import BuildInfo import Types.Key import qualified Types.Backend as B import qualified Types.Remote as R @@ -63,6 +63,7 @@ showPackageVersion :: IO () showPackageVersion = do vinfo "git-annex version" SysConfig.packageversion vinfo "build flags" $ unwords buildFlags + vinfo "dependency versions" $ unwords dependencyVersions vinfo "key/value backends" $ unwords $ map (formatKeyVariety . B.backendVariety) Backend.list vinfo "remote types" $ unwords $ map R.typename Remote.remoteTypes diff --git a/doc/todo/Display_the_version_of_a_library_corresponding_to_a_build_flag.mdwn b/doc/todo/Display_the_version_of_a_library_corresponding_to_a_build_flag.mdwn index eebb529c5..42dfce2a9 100644 --- a/doc/todo/Display_the_version_of_a_library_corresponding_to_a_build_flag.mdwn +++ b/doc/todo/Display_the_version_of_a_library_corresponding_to_a_build_flag.mdwn @@ -15,3 +15,9 @@ It would show: build flags: ...etc... TorrentParser-1.2.1 Feeds-2.3.1 Quvi-1.0.0 key/value backends: SHA256E SHA256 SHA512E SHA512 SHA224E SHA224 SHA384E SHA384 SHA3_256E SHA3_256 SHA3_512E SHA3_512 SHA3_224E SHA3_224 SHA3_384E SHA3_384 SKEIN256E SKEIN256 SKEIN512E SKEIN512 SHA1E SHA1 MD5E MD5 WORM URL remote types: git gcrypt p2p S3 bup directory rsync web bittorrent webdav tahoe glacier ddar hook external + +> Well, I think better not to complicate the build flags list, which the +> user may want to refer to, with this. Also, there should be a way to +> indicate versions for libraries that don't have a build flag, when the +> version is a common question. So, let's add it as a separate line of +> data. [[done]] --[[Joey]] diff --git a/git-annex.cabal b/git-annex.cabal index 200ea30ae..81ac944fb 100644 --- a/git-annex.cabal +++ b/git-annex.cabal @@ -664,7 +664,7 @@ Executable git-annex Build.Standalone Build.TestConfig Build.Version - BuildFlags + BuildInfo CmdLine CmdLine.Action CmdLine.Batch -- cgit v1.2.3