[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Bug#1031647: git-annex: Bogus build dependency whitelist results in FTBFS on m68k



Sean Whitton wrote:
> Joey, do you know why d/control restricts these build deps as it does?

IIRC some of those deps are or were not available on some architectures
like m68k. And the deps used to be gated behind the webapp build flag,
so it would still build on those architectures without them installed.

(I don't know how to get rmadison to display what packages are available 
on m68k? If those deps are avilable now, you could make git-annex use
them.)

Unfortunately, commit 78440ca37d75039d5eadd52eafbcd1751daba70a moved
those build dependencies from behind that build flag. See commit for
details; for some reason a new version of cabal changed its
behavior in a way that seemed buggy, and that was the only workaround
I could come up with at the time.

One way you could get git-annex to build on arches where those build
deps are not available would be to remove those build deps from the cabal 
file when building on those arches, and turning off the Assistant build
flag.

I think I have a better way though. The attached patch seems to work
around that cabal problem in a way that will keep git-annex building
when those deps are not installd. It should be in the next release of
git-annex.

-- 
see shy jo
From f24f96e0186a61ef5940ce97de2713413989b63c Mon Sep 17 00:00:00 2001
From: Joey Hess <joeyh@joeyh.name>
Date: Thu, 23 Feb 2023 10:35:19 -0400
Subject: [PATCH] move webapp build deps under Assistant build flag

git-annex.cabal: Move webapp build deps under the Assistant build flag so
git-annex can be built again without yesod etc installed.

Commit 78440ca37d75039d5eadd52eafbcd1751daba70a got rid of the webapp build
flag to work around what was apparently a cabal bug. It moved the webapp
build deps to the main build-depends list. But that prevents building
git-annex when yesod etc are not installed.

Putting them under the Assistant build flag seems to not tickle that cabal
bug, and lets git-annex build automatically with the assistant disabled
when the webapp build deps are not installed.

I hypotehesize that the problem may have involved build-depends nested
behind two build flags. Also, cabal clean may need to be run in order
for cabal to find the right solution after this change, when building in
a directory where cabal configure had been run before.

Also moved 3 modules that are needed to build git-annex w/o the assistant
out from under the Assistant build flag.

Sponsored-by: Brock Spratlen on Patreon
---
 CHANGELOG       |  2 ++
 git-annex.cabal | 37 +++++++++++++++++++------------------
 2 files changed, 21 insertions(+), 18 deletions(-)

diff --git a/CHANGELOG b/CHANGELOG
index a9dfdf469b..b833a04e23 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -6,6 +6,8 @@ git-annex (10.20230215) UNRELEASED; urgency=medium
   * info: Fix reversion in last release involving handling of unsupported
     input by continuing to handle any other inputs, before exiting nonzero
     at the end.
+  * git-annex.cabal: Move webapp build deps under the Assistant build flag
+    so git-annex can be built again without yesod etc installed.
 
  -- Joey Hess <id@joeyh.name>  Tue, 14 Feb 2023 14:11:11 -0400
 
diff --git a/git-annex.cabal b/git-annex.cabal
index d3e0193005..349bda66bb 100644
--- a/git-annex.cabal
+++ b/git-annex.cabal
@@ -377,21 +377,7 @@ Executable git-annex
    aws (>= 0.20),
    DAV (>= 1.0),
    network (>= 3.0.0.0),
-   network-bsd,
-   mountpoints,
-   yesod (>= 1.4.3), 
-   yesod-static (>= 1.5.1),
-   yesod-form (>= 1.4.8),
-   yesod-core (>= 1.6.0),
-   path-pieces (>= 0.2.1),
-   warp (>= 3.2.8),
-   warp-tls (>= 3.2.2),
-   wai,
-   wai-extra,
-   blaze-builder,
-   clientsession,
-   template-haskell,
-   shakespeare (>= 2.0.11)
+   network-bsd
   CC-Options: -Wall
   GHC-Options: -Wall -fno-warn-tabs  -Wincomplete-uni-patterns
   Default-Language: Haskell2010
@@ -432,6 +418,21 @@ Executable git-annex
   
   if flag(Assistant) && ! os(solaris) && ! os(gnu)
     CPP-Options: -DWITH_ASSISTANT -DWITH_WEBAPP
+    Build-Depends:
+      mountpoints,
+      yesod (>= 1.4.3), 
+      yesod-static (>= 1.5.1),
+      yesod-form (>= 1.4.8),
+      yesod-core (>= 1.6.0),
+      path-pieces (>= 0.2.1),
+      warp (>= 3.2.8),
+      warp-tls (>= 3.2.2),
+      wai,
+      wai-extra,
+      blaze-builder,
+      clientsession,
+      template-haskell,
+      shakespeare (>= 2.0.11)
     Other-Modules:
       Assistant
       Assistant.Alert
@@ -447,8 +448,6 @@ Executable git-annex
       Assistant.Fsck
       Assistant.Gpg
       Assistant.Install
-      Assistant.Install.AutoStart
-      Assistant.Install.Menu
       Assistant.MakeRemote
       Assistant.MakeRepo
       Assistant.Monad
@@ -540,7 +539,6 @@ Executable git-annex
       Command.Watch
       Command.WebApp
       Utility.Mounts
-      Utility.OSX
       Utility.Yesod
       Utility.WebApp
     
@@ -673,6 +671,8 @@ Executable git-annex
     Annex.WorkerPool
     Annex.WorkTree
     Annex.YoutubeDl
+    Assistant.Install.AutoStart
+    Assistant.Install.Menu
     Backend
     Backend.External
     Backend.Hash
@@ -1115,6 +1115,7 @@ Executable git-annex
     Utility.Network
     Utility.NotificationBroadcaster
     Utility.OptParse
+    Utility.OSX
     Utility.PID
     Utility.PartialPrelude
     Utility.Path
-- 
2.39.1

Attachment: signature.asc
Description: PGP signature


Reply to: