Index | Thread | Search

From:
Jeremie Courreges-Anglas <jca@wxcvbn.org>
Subject:
Re: x11/gnustep/libobjc2 failed to build
To:
Sebastian Reitenbach <sebastia@l00-bugdead-prods.de>
Cc:
Stuart Henderson <stu@spacehopper.org>, Antoine Jacoutot <ajacoutot@bsdfrog.org>, Theo Buehler <tb@theobuehler.org>, ports@openbsd.org
Date:
Mon, 4 Mar 2024 22:48:46 +0100

Download raw body.

Thread
Le Mon, Mar 04, 2024 at 10:26:02PM +0100, Sebastian Reitenbach a écrit :
> On Sunday, March 03, 2024 21:56 CET, Stuart Henderson <stu@spacehopper.org> wrote:
> 
> > On 2024/03/03 20:52, Stuart Henderson wrote:
> > > On 2024/03/03 20:31, Sebastian Reitenbach wrote:
> > > > If I understand removing the @pkgpath fixed the bigger part of the issue?
> > 
> > PS "bigger part of the issue" = "bulk builds were breaking because the
> > dependency loop resulted in too much disk space being eatern" but the
> > remaining problem is still fairly important.
> > 
> 
> 
> The conflicting file is the include/Block.h
> 
> Nothing that depends on libobjc2, really needs it. gnustep-base is configured to
> not search for Blocks runtime.

I'm testing something similar, slightly more conservative: move
Block.h and Block_private.h to /usr/local/include/gnustep/; the idea
is that directory is prepended to C(PP)FLAGS during the build of the
gnustep ports/consumers, thus ports that really need to include
Block.h can find it out of the box.  This partial build is still
ongoing:

  I=515 B=21 Q=2 T=25 F=0 !=0

and so far ''stat /usr/local/include/gnustep/Block.h'' says no port
has tried to include the file.  So you're definitely on the right
track.  The build should complete later this night.

> This, with another bump of libdispatch, and removed @conflict in PLIST
> should do the trick.
> 
> OK?

You're just moving a header, so why the shared lib major bump?
(You've already bumped the major in the last update.)

Depending on my ongoing build it could be better to move both Block*.h
headers to /usr/local/include/gnustep where they can be used, or to
just zap both of them if they're really not useful.

> Sebastian
> 
> Index: Makefile
> ===================================================================
> RCS file: /cvs/ports/x11/gnustep/libobjc2/Makefile,v
> diff -u -r1.35 Makefile
> --- Makefile	3 Mar 2024 12:28:24 -0000	1.35
> +++ Makefile	4 Mar 2024 20:02:11 -0000
> @@ -4,15 +4,15 @@
>  
>  # note: this port does not use the gnustep module
>  VERSION =	2.2
> -REVISION =	1
> +REVISION =	2
>  GH_ACCOUNT =	gnustep
>  GH_PROJECT =	libobjc2
>  GH_TAGNAME =	v${VERSION}
>  DISTNAME =	libobjc2-${VERSION:S/_//}
>  PKGNAME =	gnustep-${DISTNAME}
>  
> -SHARED_LIBS +=	objc2	2.0
> -SHARED_LIBS +=  objcxx	1.0
> +SHARED_LIBS +=	objc2	3.0
> +SHARED_LIBS +=  objcxx	2.0
>  
>  CATEGORIES =	x11/gnustep devel
>  
> @@ -45,5 +45,8 @@
>  
>  MAKE_FLAGS +=   LIBOBJCLIBNAME=objc2 \
>                  LIBOBJC=libobjc2
> +
> +post-install:
> +	mv ${PREFIX}/include/Block.h ${PREFIX}/include/Block-libobjc2.h
>  
>  .include <bsd.port.mk>
> Index: pkg/PLIST
> ===================================================================
> RCS file: /cvs/ports/x11/gnustep/libobjc2/pkg/PLIST,v
> diff -u -r1.6 PLIST
> --- pkg/PLIST	3 Mar 2024 12:28:24 -0000	1.6
> +++ pkg/PLIST	4 Mar 2024 20:02:11 -0000
> @@ -1,5 +1,4 @@
> -@conflict libdispatch-*
> -include/Block.h
> +include/Block-libobjc2.h
>  include/Block_private.h
>  include/gnustep/
>  include/gnustep/objc/
> 

-- 
jca