commit:     8c3c9b3ee65110b260bad3d6f77384cd54151b04
Author:     Bernard Cafarelli <voyageur <AT> gentoo <DOT> org>
AuthorDate: Mon Dec  6 13:25:32 2021 +0000
Commit:     Bernard Cafarelli <voyageur <AT> gentoo <DOT> org>
CommitDate: Mon Dec  6 13:26:00 2021 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=8c3c9b3e

gnustep-apps/gworkspace: fix compilation with current gnustep

Thanks Antti Aspinen for the report and patch link
Patch adapted from master commit ea0f7fef5efd798a8bcad59d20fe48eb4232d730

Package-Manager: Portage-3.0.28, Repoman-3.0.3
Signed-off-by: Bernard Cafarelli <voyageur <AT> gentoo.org>

 .../gworkspace-0.9.4-ImageViewerProtocol.patch     | 186 +++++++++++++++++++++
 gnustep-apps/gworkspace/gworkspace-0.9.4-r1.ebuild |  44 +++++
 2 files changed, 230 insertions(+)

diff --git 
a/gnustep-apps/gworkspace/files/gworkspace-0.9.4-ImageViewerProtocol.patch 
b/gnustep-apps/gworkspace/files/gworkspace-0.9.4-ImageViewerProtocol.patch
new file mode 100644
index 000000000000..d2bfd54e60bf
--- /dev/null
+++ b/gnustep-apps/gworkspace/files/gworkspace-0.9.4-ImageViewerProtocol.patch
@@ -0,0 +1,186 @@
+diff -Naur 
gworkspace-0.9.4.orig/Inspector/ContentViewers/ImageViewer/ImageViewer.h 
gworkspace-0.9.4/Inspector/ContentViewers/ImageViewer/ImageViewer.h
+--- gworkspace-0.9.4.orig/Inspector/ContentViewers/ImageViewer/ImageViewer.h   
2016-06-07 18:13:08.000000000 +0200
++++ gworkspace-0.9.4/Inspector/ContentViewers/ImageViewer/ImageViewer.h        
2021-12-06 14:18:12.024085590 +0100
+@@ -1,8 +1,9 @@
+ /* ImageViewer.h
+  *  
+- * Copyright (C) 2004-2016 Free Software Foundation, Inc.
++ * Copyright (C) 2004-2020 Free Software Foundation, Inc.
+  *
+- * Author: Enrico Sersale <[email protected]>
++ * Authors: Enrico Sersale <[email protected]>
++ *          Riccardo Mottola <[email protected]>
+  * Date: January 2004
+  *
+  * This file is part of the GNUstep Inspector application
+@@ -36,6 +37,7 @@
+ @class NSWorkspace;
+ @class ProgressView;
+ @class ImageResizer;
++
+ @protocol ContentInspectorProtocol
+ 
+ - (void)contentsReadyAt:(NSString *)path;
+@@ -51,7 +53,7 @@
+ 
+ @end
+ 
+-@interface ImageViewer : NSView <ContentViewersProtocol>
++@interface ImageViewer : NSView <ContentViewersProtocol, ImageViewerProtocol>
+ {
+   NSArray *extsarr;
+   BOOL valid; 
+@@ -76,9 +78,9 @@
+   NSWorkspace *ws;
+ }
+ 
+-- (void)setResizer:(id)anObject;
++- (oneway void)setResizer:(id)anObject;
+ 
+-- (void)imageReady:(NSDictionary *)imginfo;
++- (oneway void)imageReady:(NSDictionary *)imginfo;
+ 
+ - (void)editFile:(id)sender;
+ 
+diff -Naur 
gworkspace-0.9.4.orig/Inspector/ContentViewers/ImageViewer/ImageViewer.m 
gworkspace-0.9.4/Inspector/ContentViewers/ImageViewer/ImageViewer.m
+--- gworkspace-0.9.4.orig/Inspector/ContentViewers/ImageViewer/ImageViewer.m   
2016-06-07 18:13:08.000000000 +0200
++++ gworkspace-0.9.4/Inspector/ContentViewers/ImageViewer/ImageViewer.m        
2021-12-06 14:18:12.024085590 +0100
+@@ -198,7 +198,7 @@
+   }
+ }
+ 
+-- (void)setResizer:(id)anObject
++- (oneway void)setResizer:(id)anObject
+ {
+     NSSize imsize = [imview bounds].size;
+ 
+@@ -207,6 +207,7 @@
+     [anObject setProtocolForProxy: @protocol(ImageResizerProtocol)];
+     resizer = (ImageResizer *)anObject;
+     RETAIN (resizer);
++    [resizer setProxy: self];
+     [self addSubview: progView]; 
+     [progView start];    
+     [resizer readImageAtPath: imagePath setSize: imsize];
+@@ -214,7 +215,7 @@
+ 
+ 
+ 
+-- (void)imageReady:(NSDictionary *)imginfo
++- (oneway void)imageReady:(NSDictionary *)imginfo
+ {
+   NSData *imgdata;
+   BOOL imgok;
+diff -Naur 
gworkspace-0.9.4.orig/Inspector/ContentViewers/ImageViewer/Resizer.h 
gworkspace-0.9.4/Inspector/ContentViewers/ImageViewer/Resizer.h
+--- gworkspace-0.9.4.orig/Inspector/ContentViewers/ImageViewer/Resizer.h       
2016-06-01 18:35:46.000000000 +0200
++++ gworkspace-0.9.4/Inspector/ContentViewers/ImageViewer/Resizer.h    
2021-12-06 14:18:12.024085590 +0100
+@@ -1,9 +1,10 @@
+ /* Resizer.m
+ h
+  *  
+- * Copyright (C) 2005-2016 Free Software Foundation, Inc.
++ * Copyright (C) 2005-2020 Free Software Foundation, Inc.
+  *
+- * Author: Enrico Sersale <[email protected]>
++ * Authors: Enrico Sersale <[email protected]>
++ *          Riccardo Mottola <[email protected]>
+  * Date: May 2016
+  *
+  * This file is part of the GNUstep Inspector application
+@@ -23,14 +24,15 @@
+  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA.
+  */
+ 
+-
+-NSConnection *serverConnection;
++#import "ContentViewersProtocol.h"
+ 
+ @interface ImageResizer : NSObject
+ {
+-
++  id <ImageViewerProtocol> imageViewerProxy;
+ }
+ 
++- (void)setProxy:(id <ImageViewerProtocol>)ivp;
++
+ - (void)readImageAtPath:(NSString *)path
+                 setSize:(NSSize)imsize;
+ 
+diff -Naur 
gworkspace-0.9.4.orig/Inspector/ContentViewers/ImageViewer/Resizer.m 
gworkspace-0.9.4/Inspector/ContentViewers/ImageViewer/Resizer.m
+--- gworkspace-0.9.4.orig/Inspector/ContentViewers/ImageViewer/Resizer.m       
2016-06-07 17:28:36.000000000 +0200
++++ gworkspace-0.9.4/Inspector/ContentViewers/ImageViewer/Resizer.m    
2021-12-06 14:18:45.928073537 +0100
+@@ -33,24 +33,13 @@
+   do { if (GW_DEBUG_LOG) \
+     NSLog(format , ## args); } while (0)
+ 
+-@protocol ImageViewerProtocol
+-
+-- (oneway void)setResizer:(id)anObject;
+-
+-- (oneway void)imageReady:(NSDictionary *)dict;
+-
+-@end
+-
+-
+-
+-
+-
+ @implementation ImageResizer
+ 
+ + (void)connectWithPorts:(NSArray *)portArray
+ {
+   NSAutoreleasePool *pool;
+   ImageResizer *serverObject;
++  NSConnection *serverConnection;
+ 
+   pool = [[NSAutoreleasePool alloc] init];
+ 
+@@ -77,6 +66,11 @@
+ 
+ #define MIX_LIM 16
+ 
++- (void)setProxy:(id <ImageViewerProtocol>)ivp
++{
++  imageViewerProxy = ivp;
++}
++
+ - (void)readImageAtPath:(NSString *)path
+                 setSize:(NSSize)imsize
+ {
+@@ -191,7 +185,7 @@
+     
+     RELEASE (srcImage);
+   }
+-  [(id <ImageViewerProtocol>)[serverConnection rootProxy] imageReady: info];
++  [imageViewerProxy imageReady: info];
+   RELEASE (arp);
+ }
+ 
+diff -Naur gworkspace-0.9.4.orig/Inspector/ContentViewersProtocol.h 
gworkspace-0.9.4/Inspector/ContentViewersProtocol.h
+--- gworkspace-0.9.4.orig/Inspector/ContentViewersProtocol.h   2010-06-16 
19:45:53.000000000 +0200
++++ gworkspace-0.9.4/Inspector/ContentViewersProtocol.h        2021-12-06 
14:18:12.025085590 +0100
+@@ -1,8 +1,9 @@
+ /* ContentViewersProtocol.h
+  *  
+- * Copyright (C) 2004 Free Software Foundation, Inc.
++ * Copyright (C) 2004-2020 Free Software Foundation, Inc.
+  *
+- * Author: Enrico Sersale <[email protected]>
++ * Authors: Enrico Sersale <[email protected]>
++ *          Riccardo Mottola <[email protected]>
+  * Date: January 2004
+  *
+  * This file is part of the GNUstep GWorkspace application
+@@ -48,4 +49,12 @@
+ 
+ @end 
+ 
++/* Proxy for DO connection */
+ 
++@protocol ImageViewerProtocol
++
++- (oneway void)setResizer:(id)anObject;
++
++- (oneway void)imageReady:(NSDictionary *)dict;
++
++@end

diff --git a/gnustep-apps/gworkspace/gworkspace-0.9.4-r1.ebuild 
b/gnustep-apps/gworkspace/gworkspace-0.9.4-r1.ebuild
new file mode 100644
index 000000000000..774ee0d4ccf5
--- /dev/null
+++ b/gnustep-apps/gworkspace/gworkspace-0.9.4-r1.ebuild
@@ -0,0 +1,44 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+inherit gnustep-2
+
+DESCRIPTION="A workspace manager for GNUstep"
+HOMEPAGE="http://www.gnustep.org/experience/GWorkspace.html";
+SRC_URI="ftp://ftp.gnustep.org/pub/gnustep/usr-apps/${P}.tar.gz";
+
+KEYWORDS="~amd64 ~ppc ~x86"
+LICENSE="GPL-2"
+SLOT="0"
+
+IUSE="+gwmetadata"
+
+DEPEND=">=gnustep-base/gnustep-gui-0.25.0
+       gwmetadata? (
+               >=gnustep-apps/systempreferences-1.0.1_p24791
+               >=dev-db/sqlite-3.2.8
+       )"
+RDEPEND="${DEPEND}"
+
+PATCHES=( "${FILESDIR}"/${P}-ImageViewerProtocol.patch )
+
+src_configure() {
+       local myconf=""
+       use kernel_linux && myconf="${myconf} --with-inotify"
+       use gwmetadata && myconf="${myconf} --enable-gwmetadata"
+
+       egnustep_env
+       econf ${myconf}
+}
+
+src_install() {
+       egnustep_env
+       egnustep_install
+
+       if use doc;
+       then
+               dodir /usr/share/doc/${PF}
+               cp "${S}"/Documentation/*.pdf "${D}"/usr/share/doc/${PF}
+       fi
+}

Reply via email to