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

2023-02-23 Thread Sean Whitton
control: tag -1 + pending

Hello,

On Thu 23 Feb 2023 at 12:27PM -04, Joey Hess wrote:

> 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.

Thank you very much for the information and for the patch.

Given our freeze, I can add m68k to the list of architectures for those
build-deps, but I don't think we should apply Joey's patch for now.  But
let's let 10.20230126 migrate to testing first.  I've committed the
change to git; please remind me if I don't upload it a couple of days
from now.

-- 
Sean Whitton


signature.asc
Description: PGP signature


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

2023-02-23 Thread Joey Hess
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 
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   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.Exter

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

2023-02-23 Thread John Paul Adrian Glaubitz
Hi Joey!

On Thu, 2023-02-23 at 12:27 -0400, Joey Hess wrote:
> 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.

FWIW, adding m68k to the architecture list makes the package build fine.

So, either way, I think m68k should be enabled to use all the possible build
dependencies and doesn't need any limitation.

Adrian

-- 
 .''`.  John Paul Adrian Glaubitz
: :' :  Debian Developer
`. `'   Physicist
  `-GPG: 62FF 8A75 84E0 2956 9546  0006 7426 3B37 F5B5 F913



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

2023-02-21 Thread Sean Whitton
Hello,

On Sun 19 Feb 2023 at 07:52PM +01, John Paul Adrian Glaubitz wrote:

> git-annex currently FTBFS on m68k with an error message that indicates that 
> some
> build dependencies are missing:
>
> Configuring git-annex-10.20230126...
> Setup: Encountered missing or private dependencies:
> clientsession,
> wai,
> wai-extra,
> warp >=3.2.8,
> warp-tls >=3.2.2,
> yesod >=1.4.3,
> yesod-core >=1.6.0,
> yesod-form >=1.4.8,
> yesod-static >=1.5.1
>
> Looking at debian/control, these build dependencies are for some reason only 
> enabled
> for a subset of architectures, namely those where the build dependency 
> doesn't arise

Joey, do you know why d/control restricts these build deps as it does?

-- 
Sean Whitton


signature.asc
Description: PGP signature


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

2023-02-19 Thread John Paul Adrian Glaubitz
Source: git-annex
Version: 10.20230126-1
Severity: normal
User: debian-...@lists.debian.org
Usertags: m68k
X-Debbugs-Cc: debian-...@lists.debian.org

Hello!

git-annex currently FTBFS on m68k with an error message that indicates that some
build dependencies are missing:

Configuring git-annex-10.20230126...
Setup: Encountered missing or private dependencies:
clientsession,
wai,
wai-extra,
warp >=3.2.8,
warp-tls >=3.2.2,
yesod >=1.4.3,
yesod-core >=1.6.0,
yesod-form >=1.4.8,
yesod-static >=1.5.1

Looking at debian/control, these build dependencies are for some reason only 
enabled
for a subset of architectures, namely those where the build dependency doesn't 
arise:

--- debian/control.old  2023-02-13 19:07:12.0 +0100
+++ debian/control  2023-02-19 19:37:53.133167401 +0100
@@ -34,16 +34,16 @@
libghc-hinotify-dev (>= 0.3.10) [linux-any],
libghc-dbus-dev (>= 0.10.7) [linux-any],
libghc-fdo-notify-dev (>= 0.3) [linux-any],
-   libghc-yesod-dev (>= 1.2.6.1)   [i386 amd64 arm64 armel armhf 
kfreebsd-i386 kfreebsd-amd64 mips mips64el mipsel powerpc ppc64el s390x],
-   libghc-yesod-core-dev (>= 1.6.0)[i386 amd64 arm64 armel armhf 
kfreebsd-i386 kfreebsd-amd64 mips mips64el mipsel powerpc ppc64el s390x],
-   libghc-yesod-form-dev (>= 1.3.15)   [i386 amd64 arm64 armel armhf 
kfreebsd-i386 kfreebsd-amd64 mips mips64el mipsel powerpc ppc64el s390x],
-   libghc-yesod-static-dev (>= 1.2.4)  [i386 amd64 arm64 armel armhf 
kfreebsd-i386 kfreebsd-amd64 mips mips64el mipsel powerpc ppc64el s390x],
-   libghc-shakespeare-dev (>= 2.0.0)   [i386 amd64 arm64 armel armhf 
kfreebsd-i386 kfreebsd-amd64 mips mips64el mipsel powerpc ppc64el s390x],
-   libghc-clientsession-dev[i386 amd64 arm64 armel armhf 
kfreebsd-i386 kfreebsd-amd64 mips mips64el mipsel powerpc ppc64el s390x],
-   libghc-warp-dev (>= 3.0.0.5)[i386 amd64 arm64 armel armhf 
kfreebsd-i386 kfreebsd-amd64 mips mips64el mipsel powerpc ppc64el s390x],
-   libghc-warp-tls-dev [i386 amd64 arm64 armel armhf 
kfreebsd-i386 kfreebsd-amd64 mips mips64el mipsel powerpc ppc64el s390x],
-   libghc-wai-dev  [i386 amd64 arm64 armel armhf 
kfreebsd-i386 kfreebsd-amd64 mips mips64el mipsel powerpc ppc64el s390x],
-   libghc-wai-extra-dev[i386 amd64 arm64 armel armhf 
kfreebsd-i386 kfreebsd-amd64 mips mips64el mipsel powerpc ppc64el s390x],
+   libghc-yesod-dev (>= 1.2.6.1),
+   libghc-yesod-core-dev (>= 1.6.0),
+   libghc-yesod-form-dev (>= 1.3.15),
+   libghc-yesod-static-dev (>= 1.2.4),
+   libghc-shakespeare-dev (>= 2.0.0),
+   libghc-clientsession-dev,
+   libghc-warp-dev (>= 3.0.0.5),
+   libghc-warp-tls-dev,
+   libghc-wai-dev,
+   libghc-wai-extra-dev,
libghc-dav-dev (>= 1.0),
libghc-persistent-dev (>= 2.8.1),
libghc-persistent-template-dev,

Thus, I would suggest removing the white-list and enabling the build 
dependencies
for all architectures.

Adrian

--
 .''`.  John Paul Adrian Glaubitz
: :' :  Debian Developer
`. `'   Physicist
  `-GPG: 62FF 8A75 84E0 2956 9546  0006 7426 3B37 F5B5 F913