Re: Reminder!!! GNUstep meeting 12:30-1:30est

2024-04-12 Thread Fred Kiefer
I cannot make it on Saturday. We have an invitation from friends and I won’t be 
back in time.

My point for the discussion would be the same as last time, to prepare a shared 
release of all core libraries. My contribution could be to write up the news 
sections for gui and back but somebody else would have to cut the releases. The 
first step should be to step a release date let#s say in a months time.

Cheers,
Fred

> Am 11.04.2024 um 09:36 schrieb Gregory Casamento :
> 
> Jitsi Meeting - 
> https://meet.jit.si/TheatricalNecessitiesFormulateNotably
> 
> Anybody is welcome.  Please come!!!
> 
> Gregory Casamento
> GNUstep Lead Developer / Black Lotus, Principal Consultant
> http://www.gnustep.org - http://heronsperch.blogspot.com
> https://www.patreon.com/bePatron?u=352392 - Become a Patron
> https://www.openhub.net/languages/objective_c - OpenHub standings




Re: Gorm build error

2024-03-25 Thread Fred Kiefer
Looks like Gorm is using the instance variable directly while it should be 
using the corresponding method. No idea why this is the case but it should be 
easy to fix.

> Am 25.03.2024 um 04:07 schrieb Boris D. :
> 
> Hello,
> Trying to build the latest release of Gorm (gorm-1.3.1.tar.gz) on Ubuntu
> 22.04 results in the following error:
> 
> Making all for app Gorm...
>  Creating Gorm.app/
>  Compiling file Gorm.m ...
>  Compiling file main.m ...
>  Linking app Gorm ...
> GormCore/./obj/libGormCore.so: error: undefined reference to
> '__objc_ivar_offset_NSMatrix._selectedCells.^^C'
> 
> Any suggestions?
> 
> 




Re: NSString subclass responsibility

2024-03-24 Thread Fred Kiefer
I was hoping for somebody else to answer this. There are different subclasses 
that provide the implementation for NSString, most importantly GSString. Within 
an Obj-C application NSString in itself is never instantiated. The problem you 
are facing is that your non Obj-C code may try to instantiate an NSString 
object. Just stick to the [[NSString alloc] init] pattern or get your 
strings from one of the factory methods.

Hope this helps,
Fred

> Am 23.03.2024 um 20:03 schrieb Boris D. :
> 
> Hello,
> In NSString.m, -length is defined as follows:
> 
> - (NSUInteger) length
> {
>   [self subclassResponsibility: _cmd];
>   return 0;
> }
> 
> My code links with the gnustep-base library but is not compiled from
> Objective-C source. Am I supposed to use a subclass of NSString instead
> of NSString directly? Which class provides this implementation?
> 
> 




Re: WebSite: navigation to bug reporting

2024-02-16 Thread Fred Kiefer
I like the way you put it in the menu. The name „External“ is really a bit 
confusing, but at the moment I don’t have a better idea.

Cheers,
Fred

> Am 16.02.2024 um 15:38 schrieb Riccardo Mottola :
> 
> Hi,
> 
> I want to uniform the bug reporting on our website.
> Originally, we had a single page on savannah for all projects. I found this 
> better than the current situation of github, were every sub-project has its 
> own issue tracker. This makes reclassifying a bug impossible and also confuse 
> newcomers.
> 
> But is what it is, I created a single page which should help as a collector 
> and points to te trackers of the most common projects.
> See it here: https://home.gnustep.org/bugs.html
> 
> We also had a wiki page: https://mediawiki.gnustep.org/index.php/Report_Bugs
> But the wiki was not available for a long time and also, now it needs to be 
> promoted.
> 
> It would be best if bugs.gnuste.org could point to 
> https://home.gnustep.org/bugs.html eventually.
> 
> But question: where to put the navigation?
> Under a "menu" like you can see here: https://home.gnustep.org/index.html
> (name of menu and structure are another topic, current name is "External")
> 
> Or on a separate item, maybe even in a prominent place like at right, as 
> here: https://home.gnustep.org/jigs/index.html
> 
> Both have pro,  say yours.
> 
> Riccardo
> 




Re: GNUstep bi-monthly Meeting Reminder...

2024-02-10 Thread Fred Kiefer
Not that I know of. I don’t want to be the moderator as I have to leave soon. i 
wait for five more minutes and give up then.

Cheers,
Fred

> Am 10.02.2024 um 18:47 schrieb lars.sonchocky-helld...@hamburg.de:
> 
> Has the meeting be canceled again?
> 
> Kind regards,
> 
> Lars
> 
>> Am 08.02.2024 um 00:11 schrieb Gregory Casamento :
>> 
>> The meeting is on the 10th which is this saturday.   Here is the link:
>> 
>> https://meet.jit.si/TheatricalNecessitiesFormulateNotably 
>> The meeting is open to everyone.  Please feel free to attend.  It starts at 
>> 12:30EST and goes to 2:30PM EST.   This is an informal meeting, though we 
>> may discuss some important topics.
>> 
>> Yours, GC
>> -- 
>> Gregory Casamento
>> GNUstep Lead Developer / OLC, Principal Consultant
>> http://www.gnustep.org - http://heronsperch.blogspot.com
>> https://www.patreon.com/bePatron?u=352392 - Become a Patron
>> https://www.openhub.net/languages/objective_c - OpenHub standings
> 




Re: Bi-monthly GNUstep Meeting this Saturday?

2024-02-10 Thread Fred Kiefer
I am currently trying to join this meeting. Looks like there is no moderator 
present. Has this meeting been cancelled or postponed? I will only be able to 
attend for another half hour so if we don#t start soon, I will have to drop out.

Cheers,
Fred

> Am 08.02.2024 um 01:28 schrieb Gregory Casamento :
> 
> Lars,
> 
> We should have the meeting.  I've spoken to Riccardo and he may not be able 
> to make it due to other commitments, but I would still like to have it.
> 
> Yours, GC
> 
> On Wed, Feb 7, 2024 at 5:38 PM lars.sonchocky-helld...@hamburg.de 
>  wrote:
> Hi everybody,
> 
> my calendar says that our bi-monthly GNUstep Video Call is up this Saturday 
> (10.02.2024) at 18:30 MET / 17:30 GMT / 12:30 ET / 9:30 PT:
> 
> https://meet.jit.si/TheatricalNecessitiesFormulateNotably
> 
> Will we hold the meeting this time or will we skip it again?
> 
> 
> Kind regards,
> 
> Lars
> 
> 
> -- 
> Gregory Casamento
> GNUstep Lead Developer / OLC, Principal Consultant
> http://www.gnustep.org - http://heronsperch.blogspot.com
> https://www.patreon.com/bePatron?u=352392 - Become a Patron
> https://www.openhub.net/languages/objective_c - OpenHub standings




Re: Images disappear after Display Resolution Change

2024-01-06 Thread Fred Kiefer
Let me try to explain roughly what happens when an image gets displayed. First 
we try to find the best representation for this image. We may already have 
different representations when loading an image from a file and we also regard 
the created cached versions as representations (This might be wrong!). After 
that  we get the cached version for this representation (creating one if there 
isn’t one). Now this cached version might be generated for a different 
resolution or even for e different colour order. So we should compare the 
device description for the cached versions with the current device description. 
There is at the moment no code in place to store that. 
And if I remember correctly things are even worse. The cached representations 
is just drawn into a hidden window for the current display. That way a cached 
representation is only suitable for the display it was created for. Decoupling 
this should be the first step.

> Am 06.01.2024 um 11:02 schrieb Riccardo Mottola :
> 
> Fred Kiefer wrote:
>> This looks like a nice way to work around this issue. At the moment I am not 
>> sure, whether it is such a good idea to have every image in an application 
>> to watch out for a screen change notification. But from my side it would be 
>> OK to enable this and see if we get negative results.
>> With the code itself I have a few minor white space issues. Feel free to 
>> open a pull request and we can try to get it through before the year ends.
> 
> if you like that approach for libs-gui, I wonder if something needs to be 
> done in GWorkspace and what.. and furthermore if then potentially *any* 
> application needs to be resolution-change aware.
> 
> We could try to look at this in a next hacking session.
> 
> Is there an easy way to cause a resolution change without things like putting 
> a laptop to sleep or switching monitors? I'm thinking if perhaps issuing 
> xrandr commands would be enough. We need this to be able to reproduce as well 
> as test all applications that handle images.
> 
> Riccardo
> 




Re: Images disappear after Display Resolution Change

2023-12-30 Thread Fred Kiefer
This looks like a nice way to work around this issue. At the moment I am not 
sure, whether it is such a good idea to have every image in an application to 
watch out for a screen change notification. But from my side it would be OK to 
enable this and see if we get negative results.
With the code itself I have a few minor white space issues. Feel free to open a 
pull request and we can try to get it through before the year ends.

Cheers,
Fred

> Am 30.12.2023 um 17:23 schrieb Ondrej Florian :
> 
> I think I managed to fix the problem by clearing NSImage cache after 
> receiving NSApplicationDidChangeScreenParametersNotification
> 
> Please see:
> https://github.com/onflapp/libs-gui/commit/2b6a26b2f013d79971165abf7b10a56b5e42c619
>  
> 
> There is still problem with GWorkspace though.
> Non-scaled icons works fine but scaled icons (e.g. list / browser view) do 
> not.




Re: Christmas wishes and a failing installation of gnustep-gui on FreeBSD.

2023-12-27 Thread Fred Kiefer
Looks like we need to switch line 101 and 102 in the file AppKit.texi. I will 
try this change tomorrow and hope this changes the issue for you. What I am not 
sure is, when this change will reach you as you don’t seem to compile from the 
git source code.

Cheers,
Fred

> Am 27.12.2023 um 09:31 schrieb Edwin Ancaer :
> 
> 
> Hello all, 
> 
> I must admit my Christmas Wishes for you all are not entirely without 
> self-interest 
> I recently had to reinstall GNUStep on my FreeBSD laptop. As I'm on FreeBSD, 
> I used the ports system. When installing the gnustem-gui port, I had an 
> error. The installation displayed a list  of missing html documents, and 
> ended with error code 1. 
> 
> gmake[3]: Leaving directory 
> '/usr/ports/x11-toolkits/gnustep-gui/work/libs-gui-gui-0_28_0/Documentation'
> gmake[2]: Leaving directory 
> '/usr/ports/x11-toolkits/gnustep-gui/work/libs-gui-gui-0_28_0'
> > Compressing man pages (compress-man)
> ===>   Installing ldconfig configuration file
> ===>  Installing for gnustep-gui-0.28.0_1
> ===>  Checking if gnustep-gui is already installed
> ===>   Registering installation for gnustep-gui-0.28.0_1
> pkg-static: Unable to access file 
> /usr/ports/x11-toolkits/gnustep-gui/work/stage/usr/local/GNUstep/System/Library/Documentation/Developer/Gui/ProgrammingManual/AppKit/Affine-Transformations.html:No
>  such file or directory
> pkg-static: Unable to access file 
> /usr/ports/x11-toolkits/gnustep-gui/work/stage/usr/local/GNUstep/System/Library/Documentation/Developer/Gui/ProgrammingManual/AppKit/Application-Makefiles.html:No
>  such file or directory
> ...
> ...
> ...
> pkg-static: Unable to access file 
> /usr/ports/x11-toolkits/gnustep-gui/work/stage/usr/local/GNUstep/System/Library/Documentation/Developer/Gui/ProgrammingManual/AppKit/theviewconcept.html:No
>  such file or directory
> *** Error code 1
> 
> Stop.
> make[1]: stopped in /usr/ports/x11-toolkits/gnustep-gui
> *** Error code 1
> 
> Stop.
> 
> The only error I found until now was with a call to texi2pdf  for AppKit.texi 
> . I suppose my version of texi2pdf  is too old or too new,  but before I 
> start messing with versions, could  someone tell me if the error above can be 
> caused by texi2pdf failing. After all, it is complaining about missing HTML 
> documents, not PDFs. I tried the texi2pdf with the AppKit.texi file from the 
> command line, and I got the same error as the one from the installation: 
> 
> gmake[4]: Entering directory 
> '/usr/ports/x11-toolkits/gnustep-gui/work/libs-gui-gui-0_28_0/Documentation/manual'
> Making all for doc AppKit...
> texi2pdf   \
> AppKit.texi -o AppKit.pdf
> This is pdfTeX, Version 3.14159265-2.6-1.40.16 (Web2C 2015) (preloaded 
> format=pdfetex)
>  restricted \write18 enabled.
> entering extended mode
> (./AppKit.texi (/usr/local/share/texmf-dist/tex/texinfo/texinfo.tex
> Loading texinfo [version 2015-05-06.11]: pdf, fonts, markup, glyphs,
> page headings, tables, conditionals, indexing, sectioning, toc, environments,
> defuns, macros, cross references, insertions,
> (/usr/local/share/texmf-dist/tex/generic/epsf/epsf.tex
> This is `epsf.tex' v2.7.4 <14 February 2011>
> ) localization, formatting, and turning on texinfo input format.)
> (/usr/ports/x11-toolkits/gnustep-gui/work/libs-gui-gui-0_28_0/Documentation/man
> ual/AppKit.aux) 
> [1{/usr/local/share/texmf-dist/fonts/map/pdftex/updmap/pdftex.m
> ap}] [2]
> ./AppKit.texi:101: This command can appear only outside of any environment, 
> not
>  in environment @titlepage.
> @badenverr ...temp , not @inenvironment @thisenv }
>   
> @checkenv ...@ifx @thisenv @temp @else @badenverr 
>   @fi 
> @chapmacro #1#2#3->@checkenv {}
>@let @prevchapterdefs =@lastchapterdefs @let 
> ...
> 
> @startcontents ... @chapmacro {#1}{Yomitfromtoc}{}
>   @savepageno = @pageno 
> @beg...
> 
> @contents ->@startcontents {@putwordTOC }
>  @openin 1 @tocreadfilename @space 
> @...
> l.101 @contents
>
> ? 
> ./AppKit.texi:101: Emergency stop.
> @badenverr ...temp , not @inenvironment @thisenv }
>   
> @checkenv ...@ifx @thisenv @temp @else @badenverr 
>   @fi 
> @chapmacro #1#2#3->@checkenv {}
>@let @prevchapterdefs =@lastchapterdefs @let 
> ...
> 
> @startcontents ... @chapmacro {#1}{Yomitfromtoc}{}
>   @savepageno = @pageno 
> @beg...
> 
> @contents ->@startcontents {@putwordTOC }
>  @openin 1 @tocreadfilename @space 
> @...
> l.101 @contents
>
> ./AppKit.texi:101:  ==> Fatal error occurred, no output PDF file produced!
> Transcript written on AppKit.log.
> makeinfo --html \
>

Re: BUG App Name in GNOME

2023-09-09 Thread Fred Kiefer
Not sure what is happening here, it could be that GNOME is only looking at the 
window class hint  name and if I remember correctly, we set that to GNUStep 
(Must be somewhere in XGServerWindow.m). Do all applications get gathered up 
under the same menu entry?

Cheers,
Fred

On the road

> Am 09.09.2023 um 21:07 schrieb dr_c...@me.com:
> 
> I noticed that when I open a GNUStep app in GNOME, the app title says 
> "GNUStep" instead of "TextEdit" or "GWorkspace". Is there a way to ensure 
> that it says the name, or is this something related to how I have setup my 
> desktop?
> 
> Thanks!
> 
> 
> 
> 




Re: Improved and Fixed Screen Math For Parity With Mac OS and Squashing Bugs

2023-09-07 Thread Fred Kiefer
It is gone now, maybe I was looking at an old version of the code? In the git 
history you can still see it on line 546.

On the road

> Am 07.09.2023 um 01:38 schrieb dr_c...@me.com:
> 
> So I read the code again, and I just wasn't able to find where I was 
> dividing twice. I set a rule that I only preformed division at the NSEvent 
> construction site (to ensure that all the math that happens up until that 
> point was surly in pixels. Would you mind showing me the line. I assume it 
> it's in XGServerEvent.m. I might just be tired, or I confused myself. Thanks!
> 
>> On Sep 6, 2023, at 3:37 AM, Fred Kiefer  wrote:
>> 
>> This looks a lot better, though I only looked at the back part. There are a 
>> few typos and at one place (mouse events) you are doing the division twice.
>> 
>> Cheers,
>> Fred
>> 
>> On the road
>> 
>>>> Am 06.09.2023 um 04:31 schrieb dr_c...@me.com:
>>>> 
>>> Hello All, 
>>> 
>>> I just finished rebasing my code on the current libs-gui and libs-back and 
>>> cleaning it up so it follows the current indentation conventions for 
>>> GNUStep. I compiled it, and it all works (except for one bug that I am 
>>> trying to track down that may be unrelated). The links below should work 
>>> with the better re-based code. 
>>> 
>>> (1) libs-back 
>>> https://github.com/austintatiousness/libs-back/tree/improved-screen-maths
>>> (2) libs-gui 
>>> https://github.com/austintatiousness/libs-gui/tree/improved-screen-maths
>>> 
>>> Bug: 
>>> There is one bug that I am still trying to track down that I believe is 
>>> from GORM files or deferred windows. In a 2x scale factor, they display 
>>> still at half the height. No idea why. It might have to do with the order 
>>> the the screen gets attached to the window? Maybe they are deferred? 
>>> Something I notice was that when the affected windows are allocated and 
>>> first set up, the correct sizes are reported to libs-gui and libs-base (i 
>>> tracked this with a bunch of NSLogs), but at some points libs-base sends 
>>> another NSEvent with it half the size causing the window to resize to half 
>>> the size. Maybe there is a rect cached somewhere that it is using and math 
>>> is preformed on it to cut it in half. I just can't figure where the event 
>>> is originating form. 
>>> 
>>> Thanks for reading!
>>> 
>>> 
>>> 
>>>> On Sep 5, 2023, at 9:17 AM, dr_c...@me.com wrote:
>>>> 
>>>> You're not wrong it is currently messy code. I had tried so many different 
>>>> things before I fully understood the drawing system and the Back->GUI 
>>>> interactions. Though, I thought I did pull out all of the code that I used 
>>>> to mitigate the issue before as with my adjustments, they were no longer 
>>>> needed. It was a LOT of learning. I started on a copy that was a few weeks 
>>>> old, but I thought that I re-synced those changes in before I moved the 
>>>> code back in. May I didn't. 
>>>> 
>>>> So, what I will do is clone it again and add back each change so the code 
>>>> matches better and you can see the changes more clearly and try not to 
>>>> adjust any of the indentation. It might look like more changes were made 
>>>> when you do a code comparison because I had modified and changed back so 
>>>> many things and then back when I realized it wasn't needed. To be honest, 
>>>> in the end, it really ended up just being som minor changes in Back and 
>>>> changing how NSWindow adjusted the base decoration view and adding a new 
>>>> method to scale drawing. 
>>>> 
>>>> I will post an update soon to clean up some of the code to make the code 
>>>> comparison cleaner in both back and base. 
>>>> 
>>>> Thanks! 
>>>> 
>>>>> On Sep 5, 2023, at 3:37 AM, Fred Kiefer  wrote:
>>>>> 
>>>>> I had a short look at your changes and sadly these don’t resemble the 
>>>>> clear idea you expressed in your mail. There are many leftovers from your 
>>>>> previous attempts to tackle the issue. You also missed out on the changes 
>>>>> that happened to GNUstep since you forked off your branch. A simple 
>>>>> rebase would help here. On the other hand, you are using an unmatched 
>>>>> indentation pattern and added plenty of empty newlines. Maybe it would be 
>>>>> best if

Re: Improved and Fixed Screen Math For Parity With Mac OS and Squashing Bugs

2023-09-06 Thread Fred Kiefer
This looks a lot better, though I only looked at the back part. There are a few 
typos and at one place (mouse events) you are doing the division twice.

Cheers,
Fred

On the road

> Am 06.09.2023 um 04:31 schrieb dr_c...@me.com:
> 
> Hello All, 
> 
> I just finished rebasing my code on the current libs-gui and libs-back and 
> cleaning it up so it follows the current indentation conventions for GNUStep. 
> I compiled it, and it all works (except for one bug that I am trying to track 
> down that may be unrelated). The links below should work with the better 
> re-based code. 
> 
> (1) libs-back 
> https://github.com/austintatiousness/libs-back/tree/improved-screen-maths
> (2) libs-gui 
> https://github.com/austintatiousness/libs-gui/tree/improved-screen-maths
> 
> Bug: 
> There is one bug that I am still trying to track down that I believe is from 
> GORM files or deferred windows. In a 2x scale factor, they display still at 
> half the height. No idea why. It might have to do with the order the the 
> screen gets attached to the window? Maybe they are deferred? Something I 
> notice was that when the affected windows are allocated and first set up, the 
> correct sizes are reported to libs-gui and libs-base (i tracked this with a 
> bunch of NSLogs), but at some points libs-base sends another NSEvent with it 
> half the size causing the window to resize to half the size. Maybe there is a 
> rect cached somewhere that it is using and math is preformed on it to cut it 
> in half. I just can't figure where the event is originating form. 
> 
> Thanks for reading!
> 
> 
> 
>> On Sep 5, 2023, at 9:17 AM, dr_c...@me.com wrote:
>> 
>> You're not wrong it is currently messy code. I had tried so many different 
>> things before I fully understood the drawing system and the Back->GUI 
>> interactions. Though, I thought I did pull out all of the code that I used 
>> to mitigate the issue before as with my adjustments, they were no longer 
>> needed. It was a LOT of learning. I started on a copy that was a few weeks 
>> old, but I thought that I re-synced those changes in before I moved the code 
>> back in. May I didn't. 
>> 
>> So, what I will do is clone it again and add back each change so the code 
>> matches better and you can see the changes more clearly and try not to 
>> adjust any of the indentation. It might look like more changes were made 
>> when you do a code comparison because I had modified and changed back so 
>> many things and then back when I realized it wasn't needed. To be honest, in 
>> the end, it really ended up just being som minor changes in Back and 
>> changing how NSWindow adjusted the base decoration view and adding a new 
>> method to scale drawing. 
>> 
>> I will post an update soon to clean up some of the code to make the code 
>> comparison cleaner in both back and base. 
>> 
>> Thanks! 
>> 
>>> On Sep 5, 2023, at 3:37 AM, Fred Kiefer  wrote:
>>> 
>>> I had a short look at your changes and sadly these don’t resemble the clear 
>>> idea you expressed in your mail. There are many leftovers from your 
>>> previous attempts to tackle the issue. You also missed out on the changes 
>>> that happened to GNUstep since you forked off your branch. A simple rebase 
>>> would help here. On the other hand, you are using an unmatched indentation 
>>> pattern and added plenty of empty newlines. Maybe it would be best if you 
>>> start anew from the current GNUstep code and just implement your idea?
>>> 
>>> Hope this helps,
>>> Fred
>>> 
>>> On the road
>>> 
>>>>> Am 05.09.2023 um 09:17 schrieb Fred Kiefer :
>>>>> 
>>>> 
>>>> Hi,
>>>> 
>>>> This approach sounds sensible to me. But as you said, it will take some 
>>>> more effort to spread it through the whole library, especially all the 
>>>> different backends. And there is also the case where GNUstep does the 
>>>> window decoration drawing.
>>>> I am currently travelling and wont be able to review your code in detail 
>>>> before I am back home. But I will try to have a quick look to maybe point 
>>>> out some further difficulties.
>>>> 
>>>> Cheers,
>>>> Fred
>>>> 
>>>> 
>>>> On the road
>>>> 
>>>>> Am 05.09.2023 um 01:29 schrieb dr_c...@me.com:
>>>>> 
>>>>> Hello Friends, 
>>>>> 
>>>>> As you may have read I have been working on getting some of the 
>>>>&

Re: Improved and Fixed Screen Math For Parity With Mac OS and Squashing Bugs

2023-09-05 Thread Fred Kiefer
I had a short look at your changes and sadly these don’t resemble the clear 
idea you expressed in your mail. There are many leftovers from your previous 
attempts to tackle the issue. You also missed out on the changes that happened 
to GNUstep since you forked off your branch. A simple rebase would help here. 
On the other hand, you are using an unmatched indentation pattern and added 
plenty of empty newlines. Maybe it would be best if you start anew from the 
current GNUstep code and just implement your idea?

Hope this helps,
Fred

On the road

> Am 05.09.2023 um 09:17 schrieb Fred Kiefer :
> 
> 
> Hi,
> 
> This approach sounds sensible to me. But as you said, it will take some more 
> effort to spread it through the whole library, especially all the different 
> backends. And there is also the case where GNUstep does the window decoration 
> drawing.
> I am currently travelling and wont be able to review your code in detail 
> before I am back home. But I will try to have a quick look to maybe point out 
> some further difficulties.
> 
> Cheers,
> Fred
> 
> 
> On the road
> 
>>> Am 05.09.2023 um 01:29 schrieb dr_c...@me.com:
>>> 
>> Hello Friends, 
>> 
>> As you may have read I have been working on getting some of the ScreenFactor 
>> bugs squashed. One of my theories is that a lot of GNUStep developers are 
>> assuming screen scaling of 1. This creates a problem where the values coming 
>> in from NSEvent, NSScreen are in pixels and not points. I noticed that apps 
>> like GWorkspace used the screen resolution (in pixels) to generate its 
>> desktop and center its dock which cause the dock and desktop items to 
>> disappear. Originally, I fixed this by going in my version and dividing by 
>> the correct scale. I then noticed that these little bugs were everywhere. I 
>> also noticed that sometimes the NSString value of a NSRect saved to Plists 
>> were in pixels as well, creating a problem when screen scaling would change. 
>> Suffices to say, I wanted a fix that would allow all these other projects to 
>> display correctly with out having to go to each one and divide by scale 
>> factor for the offending views. 
>> 
>> There are two libraries that this affects (my version of the projects are 
>> here)
>> (1) libs-back 
>> https://github.com/austintatiousness/libs-back/tree/improved-screen-maths
>> (2) libs-gui 
>> https://github.com/austintatiousness/libs-gui/tree/improved-screen-maths
>> 
>> To fix this, I proposed that we allow AppKit to assume that all geometry is 
>> in points instead of pixels according to the screen the window is on. This 
>> required only some minor changes actually. 
>> 
>> 1) When libs-back constructs NSEvents that pertain to an NSWindow, it needs 
>> to ensure that all the math is scaled by the screen factor of that window. 
>> 2) When libs-gui sends data to back, back knows that it will be in points 
>> and fixes it. 
>> 3) NSWindow needed some minor changes to its drawing routines because the 
>> assumption is no longer that that decoration view (_wv) is scaled, but 
>> instead a theoretical layer just below it is. So no longer do we to a 
>> transform on the view, but instead just do a transform right before drawing. 
>> You will see a method added to NSView - (NSAffineTransform*) 
>> _baseMatrixForDrawing , that handles the math for each view so they draw at 
>> the correct scale. 
>> 
>> When I finished fixing all of this, some of the other changes that I had 
>> previously proposed were no longer needed. 
>> 
>> Some caveats: In my tests, I only changed the X11 code, I am only using 
>> frames drawn by GNUSteap instead of the window manager. 
>> 
>> I have compiled and tested the code against GNUStep Desktop, and it all is 
>> working great. There are still a few bug fixes (I cannot figure out why 
>> items loaded from gorm sometimes are divided by the screen factor), but some 
>> of the issues I encountered in other apps are now fixed when I change my 
>> screen resolution. 
>> 
>> I would really love it if my code could be reviewed and possibly taken into 
>> consideration to being added to the official reposatory.
>> 
>> As it is right now, I'm not going to be using an old monitor for my work, 
>> and I am working on a Swift bridge so I can port some of my software. I will 
>> be using my version of the frameworks for this project because 
>> unfortunately, as the bugs currently are, my ports wouldn't work correctly. 
>> 
>> Lastly, I am hoping that I copied all the code back into my repository, 
>> please let me know know if something doesn't build. 
>> 
>> Thanks!


Re: Improved and Fixed Screen Math For Parity With Mac OS and Squashing Bugs

2023-09-05 Thread Fred Kiefer
Hi,

This approach sounds sensible to me. But as you said, it will take some more 
effort to spread it through the whole library, especially all the different 
backends. And there is also the case where GNUstep does the window decoration 
drawing.
I am currently travelling and wont be able to review your code in detail before 
I am back home. But I will try to have a quick look to maybe point out some 
further difficulties.

Cheers,
Fred


On the road

> Am 05.09.2023 um 01:29 schrieb dr_c...@me.com:
> 
> Hello Friends, 
> 
> As you may have read I have been working on getting some of the ScreenFactor 
> bugs squashed. One of my theories is that a lot of GNUStep developers are 
> assuming screen scaling of 1. This creates a problem where the values coming 
> in from NSEvent, NSScreen are in pixels and not points. I noticed that apps 
> like GWorkspace used the screen resolution (in pixels) to generate its 
> desktop and center its dock which cause the dock and desktop items to 
> disappear. Originally, I fixed this by going in my version and dividing by 
> the correct scale. I then noticed that these little bugs were everywhere. I 
> also noticed that sometimes the NSString value of a NSRect saved to Plists 
> were in pixels as well, creating a problem when screen scaling would change. 
> Suffices to say, I wanted a fix that would allow all these other projects to 
> display correctly with out having to go to each one and divide by scale 
> factor for the offending views. 
> 
> There are two libraries that this affects (my version of the projects are 
> here)
> (1) libs-back 
> https://github.com/austintatiousness/libs-back/tree/improved-screen-maths
> (2) libs-gui 
> https://github.com/austintatiousness/libs-gui/tree/improved-screen-maths
> 
> To fix this, I proposed that we allow AppKit to assume that all geometry is 
> in points instead of pixels according to the screen the window is on. This 
> required only some minor changes actually. 
> 
> 1) When libs-back constructs NSEvents that pertain to an NSWindow, it needs 
> to ensure that all the math is scaled by the screen factor of that window. 
> 2) When libs-gui sends data to back, back knows that it will be in points and 
> fixes it. 
> 3) NSWindow needed some minor changes to its drawing routines because the 
> assumption is no longer that that decoration view (_wv) is scaled, but 
> instead a theoretical layer just below it is. So no longer do we to a 
> transform on the view, but instead just do a transform right before drawing. 
> You will see a method added to NSView - (NSAffineTransform*) 
> _baseMatrixForDrawing , that handles the math for each view so they draw at 
> the correct scale. 
> 
> When I finished fixing all of this, some of the other changes that I had 
> previously proposed were no longer needed. 
> 
> Some caveats: In my tests, I only changed the X11 code, I am only using 
> frames drawn by GNUSteap instead of the window manager. 
> 
> I have compiled and tested the code against GNUStep Desktop, and it all is 
> working great. There are still a few bug fixes (I cannot figure out why items 
> loaded from gorm sometimes are divided by the screen factor), but some of the 
> issues I encountered in other apps are now fixed when I change my screen 
> resolution. 
> 
> I would really love it if my code could be reviewed and possibly taken into 
> consideration to being added to the official reposatory.
> 
> As it is right now, I'm not going to be using an old monitor for my work, and 
> I am working on a Swift bridge so I can port some of my software. I will be 
> using my version of the frameworks for this project because unfortunately, as 
> the bugs currently are, my ports wouldn't work correctly. 
> 
> Lastly, I am hoping that I copied all the code back into my repository, 
> please let me know know if something doesn't build. 
> 
> Thanks!


Re: Drawing in NSWindows and NSViews in GNUStep

2023-08-22 Thread Fred Kiefer


> Am 20.08.2023 um 16:42 schrieb Austin Clow :
> 
> I have been investigating how drawing works and am having a hard time 
> understanding where drawing begins in the object hierarchy. For example, 
> where does an NSWindow tell its decorations view to begin drawing its content 
> into the window? Thanks!


Window and view drawing start of in the static method +_handleAutodisplay: that 
gets triggered by the runloop. This informs all the registered windows to 
-_handleAutodisplay: themselves. There we check if the window actually needs to 
redraw and if this is the case call -displayIfNeeded which passes on this 
method to the window view. The window view is the decorations view you are 
interested in. From here on down the normal NSView drawing code gets used.

Hope this helps,
Fred


Re: programmatic layout of controls

2023-08-18 Thread Fred Kiefer
I would expect that you need to provide a frame rectangle at least for the top 
level view but most likely very view will require one as otherwise it does not 
even know its start size.

> Am 18.08.2023 um 17:57 schrieb Tom Sheffler :
> 
> Thanks Fred.
> 
> Indeed, that was a missing line!  
> Compiles now.  Do not see any views.
> Updated screenshot and description in repo.  Still not sure how to use this 
> correctly for layout.
> 
> Thanks,
> Tom
> 
> 
> On Fri, Aug 18, 2023 at 8:38 AM Fred Kiefer  wrote:
> Hi Tom,
> 
> I had a very short look at your stack view test code and could not see where 
> you create the object `hbox`. This might be completely unrelated to the issue 
> you are having with that code but maybe it points you in the right direction.
> 
> Cheers,
> Fred
> 
> > Am 18.08.2023 um 15:32 schrieb Tom Sheffler :
> > 
> > I wanted to create a tiny app with just a few controls and create a layout 
> > programmatically.  I began by testing NSGridView and NSStackView, but did 
> > not succeed with those.  In an older "tests-examples" project, I found some 
> > older programs that looked reasonable, so that took me down a path of using 
> > some older GNUstepGUI views.
> > 
> > FYI - my target environment is Linux, GCD, ARC, clang.
> > 
> > What I believe I found is the following:
> > - NSStackView is not ready for a completely programmatic layout.  
> > Constraint based layout is in the works but is not quite ready.
> > - GNUstepGUI GSHbox and GSVbox are sufficient, but introduce a compiler 
> > error when their headers are included in a file compiled with ARC.  There 
> > is a workaround.
> > - setting the positions of frames explicitly works and is actually pretty 
> > simple
> > 
> > What I found is that it's difficult to find some straightforward examples 
> > of layout that does not involve an Interface Builder of one form or another.
> > 
> > I put together some examples illustrating these successes and issues.  If 
> > you're interested in this topic, perhaps you can help create some simple 
> > examples of layout that work in a modern ObjC environment.
> > 
> > https://github.com/sheffler/gnustep-rowcol-layout-examples
> > 
> > Thanks,
> > Tom
> > 
> 




Re: programmatic layout of controls

2023-08-18 Thread Fred Kiefer
Hi Tom,

I had a very short look at your stack view test code and could not see where 
you create the object `hbox`. This might be completely unrelated to the issue 
you are having with that code but maybe it points you in the right direction.

Cheers,
Fred

> Am 18.08.2023 um 15:32 schrieb Tom Sheffler :
> 
> I wanted to create a tiny app with just a few controls and create a layout 
> programmatically.  I began by testing NSGridView and NSStackView, but did not 
> succeed with those.  In an older "tests-examples" project, I found some older 
> programs that looked reasonable, so that took me down a path of using some 
> older GNUstepGUI views.
> 
> FYI - my target environment is Linux, GCD, ARC, clang.
> 
> What I believe I found is the following:
> - NSStackView is not ready for a completely programmatic layout.  Constraint 
> based layout is in the works but is not quite ready.
> - GNUstepGUI GSHbox and GSVbox are sufficient, but introduce a compiler error 
> when their headers are included in a file compiled with ARC.  There is a 
> workaround.
> - setting the positions of frames explicitly works and is actually pretty 
> simple
> 
> What I found is that it's difficult to find some straightforward examples of 
> layout that does not involve an Interface Builder of one form or another.
> 
> I put together some examples illustrating these successes and issues.  If 
> you're interested in this topic, perhaps you can help create some simple 
> examples of layout that work in a modern ObjC environment.
> 
> https://github.com/sheffler/gnustep-rowcol-layout-examples
> 
> Thanks,
> Tom
> 




Re: Questions about WindowMaker's Alpha and Shadow

2023-08-16 Thread Fred Kiefer
Hi Austin,

what happens here is that we delegate this functionality to the window manager. 
That may either implement it or not. The standard for this interaction can be 
found here: https://specifications.freedesktop.org/wm-spec/wm-spec-1.3.html
If it does not work on your machine it might either be that you window manager 
does not adhere to this standard or that the interpretation differs from the 
one in GNUstep.

Hope this helps,
Fred

> Am 16.08.2023 um 02:39 schrieb dr_c...@mac.com:
> 
> I have been following some of the code back form NSWindow to see what it 
> ultimately calls. I see that setAlphaValue and setHasShadow: all call back to 
> similar methods in x11/XGServerWindow.m . I noticed they were non-functional, 
> but the methods there are not simply stubs, they have code in them. The 
> setShadow refer to _NET_WM_WINDOW_SHADOW_ATOM , so I assume these were 
> intended to work, but a shadow doesn't appear on the window. 
> 
> I would love some more context if possible! Thanks!
> 
> - Austin




Re: NSSwitch drawRect bug

2023-08-14 Thread Fred Kiefer


> Am 14.08.2023 um 08:36 schrieb H. Nikolaus Schaller :
> 
>> Am 13.08.2023 um 22:40 schrieb dr_c...@me.com:
>> 
>> Nice! Maybe even just drawSwitchInRect:dirtyRect:forState:enabled: Though, 
>> with your way, you could get more information from the control without 
>> having to enlarge method arguments every time we wanted to add something 
>> else. 
>> 
>> So maybe -(void) drawSwitch:(NSSwitch*)switch inRect:(CGRect)rect 
>> dirtyRect:(CGRect)dirtyRect {}
> 
> I am not sure if passing the dirtyRect is necessary and useful.
> The idea is that -drawRect: is usually called after setting a clipping rect 
> within -display so that drawing with bounds size is correct but will be 
> clipped away.


This is not about  correctness, as you wrote the NSView clipping will take care 
of that, this idea is about performance. When we pass on the dirty rectangle 
the drawing will be able to decide which parts actually require a redraw. This 
isn’t important for a small component like an NSSwitch but for something like 
NSMatrix or NSTableView it allows us to speed up drawing a lot. We only redraw 
and compute bits that will be visible.
In general we should always draw a view within the assigned bounds and use the 
dirty rectangle to speed things up, where this is useful. Somebody should go 
through the NSView subclasses to see where corrections in the code are required.

Hope this clears things up,
Fred


Re: NSSwitch drawRect bug

2023-08-13 Thread Fred Kiefer
This is a common problem in our drawing code, especially in GSTheme. In the 
better cases we hand on the view/controller to be drawn along with the 
requested rectangle. That way the drawing code could still optimise the 
process, by only drawing components that are actually visible.

I will change the code as suggested by you.

Cheers,
Fred

> Am 11.08.2023 um 21:23 schrieb Austin Clow :
> 
> In NSSwitch.m, the method for drawRect is as follows: 
> 
> - (void) drawRect: (NSRect)rect
> {
>   [[GSTheme theme] drawSwitchInRect: rect
>forState: _state
> enabled: [self isEnabled]];
> }
> 
> I believe it should be 
> 
> - (void) drawRect: (NSRect)rect
> {
>   [[GSTheme theme] drawSwitchInRect: [self bounds]
>forState: _state
> enabled: [self isEnabled]];
> }
> 
> As it is right now, when it redrawing a rect, it will redraw it within rect 
> causing it to draw bigger and smaller depending not he redraw area. I'm not 
> comfortable yet doing pull requests for a library I am largely unfamiliar 
> with. 
> 
> I know the drawing method is kinda ugly right now. I am thinking about 
> rewriting it. 




Re: GNUstep Testsuite

2023-08-05 Thread Fred Kiefer
You can always fallback to the inplace documentation in GNUstep make: 
https://github.com/gnustep/tools-make/tree/master/TestFramework

Hope this helps,
Fred 

> Am 05.08.2023 um 01:47 schrieb Tito Mari Francis Escaño 
> :
> 
> Hi,
> Can somebody please point me to the GNUstep Testsuite resources?
> I clicked the link in https://gnustep.github.io/developers/documentation.html 
> and it went error 404, supposedly pointing to something in Github but it 
> seems it's no longer there.
> I was hoping to learn how test-driven development is done in GNUstep and 
> Objective-C.
> Please advise.
> Thank you.




Re: tools-windows-msvc runtime error

2023-07-18 Thread Fred Kiefer
I am no Windows expert but I remember that for some compilers we needed special 
symbol handling there. We use the macro GS_EXPORT_CLASS there which boils down 
to some __declspec(dllexport) declarations on classes. Not sure whether this 
would also be needed for a class that is only locally used.

Overall it would really be helpful if you provided more information about the 
versions of the different components you are using. That is, which version of 
Windows, version of clang and libobjc2. Where did you get the GNUstep libraries 
and how did you install these?

Cheers,
Fred

> Am 18.07.2023 um 03:00 schrieb loserist :
> 
> Sure! The following is it:
> 
> * thread #1, stop reason = Exception 0xc005 encountered at address 
> 0x7ffcec4e1048: Access violation reading locatio
> n 0x
> * frame #0: 0x7ffcec4e1048 objc.dll`objc_msgSend + 40
> frame #1: 0x7ff645cc1154 abc.exe
> frame #2: 0x7ff645cc142c abc.exe
> frame #3: 0x7ffcfb967614 kernel32.dll`BaseThreadInitThunk + 20
> frame #4: 0x7ffcfc1826b1 ntdll.dll`RtlUserThreadStart + 33
> Thanks!




Re: GNUstep Desktop

2023-05-21 Thread Fred Kiefer
Wow, looks great and seems like a really impressive work! I admire how you base 
it on services one of the most undervalued features in GNUstep.

One question though: Would it be possible to merge back the forked applications 
(Addresses and BatMon) to GAP? If you two need a tie breaker to decide on which 
version to use, I am willing to volunteer.

Cheers
Fred 

> Am 21.05.2023 um 02:38 schrieb Ondrej Florian via Info-gnustep 
> :
> 
> Hi everyone,
> 
> I'd like to announce GNUstep Desktop.
> https://onflapp.github.io/gs-desktop/index.html
> 
> I have been working on it for more than a year now and it is finally complete 
> enough to be my main desktop environment.
> It is perfect for my Raspberry PI! :-)
> 
> GSDE contains many GNUstep apps and frameworks in one place.
> Enhanced, fixed, configured and integrated so that everything works together 
> seamlessly.
> 
> Notable enhancements:
> - StepTalk   - used for system scripting, fixes and enhancements 
> to the API
> - TextEdit- scriptable + enhancements for attachment and link 
> panels
> - HelpViewer - uses filters to display man, info and gsdoc pages
> - WrapperFactory - greatly enhanced, support for filters and services
> - Terminal   - a lot of improvements, refactored into Kit, 
> scriptable
> - Preferences- taken from NEXTSPACE + additional settings for 
> timezone, keys, themes
> - WindowMaker- make tweaks and fixes to fit with GNUstep
> 
> New applications:
> - WebBrowser   - Google Chrome with GNUstep UI, scriptable
> - VimGS - Vim with GNUstep UI (using TerminalKit), scriptable
> - Player  - VLC with GNUstep UI, scriptable
> - DocViewer - PDF and HTML document viewer, filters for additional 
> formats (e.g. markdown), scriptable
> - ImageViewer  - filter for additional formats, scriptable
> - RemoteView   - VNCViewer
> - Librarian - document indexing - similar to NeXT's Digital 
> Librarian
> - ScreenShot- screenshot service
> 
> Other apps:
> Gorm and ProjectCenter, GWorkspace, GNUMail
> 
> Other utilities:
> Dictionary, Affiche, FTP, TalkSoup, EdenMath, Addresses
> ForManager, DefaultsManager, Console, HtopGS, OpenUp,
> Process monitor, Volume and Battery controls.
> 
> ...and more
> 
> WebPage: https://onflapp.github.io/gs-desktop/index.html
> github: https://github.com/onflapp/gs-desktop
> 
> ---
> 
> Spending weeks and months deep in GNUstep and all those apps created with it,
> made me really appreciate all the amazing work that went into it.
> 
> I hope that GNUstep Desktop will help to renew the interest in GNUstep as 
> desktop.
> 
> Ondrej
> 
> 
> 
> ___
> Info-gnustep mailing list
> info-gnus...@gnu.org
> https://lists.gnu.org/mailman/listinfo/info-gnustep




Re: Base 1.28.1 API/ABI break?

2023-01-08 Thread Fred Kiefer



> Am 09.01.2023 um 07:58 schrieb Andreas Fink :
> 
> I usually build packages for Debian 10 & 11 for amd64 and arm64
> 
> I have encountered make check returning an error on Debian11 arm64 but not on 
> Debian 11 amd64
> 
> Built on Debian 11 intel: All OK!
> Built on Debian 11 on arm64:  2 Failed tests
> Failed test: (2023-01-09 07:39:12.574 +0100) general.m:37 ... 
> -classNamed returns the correct class
> Failed test: (2023-01-09 07:39:12.576 +0100)   general.m:61 ... 
> -principalClass returns TestClass for +bundleForClass:[TestClass class]
> 
> I'm surprised as this stuff is not really architecture specific usually.
> 

Which version of libobjc are you building against and is it the same for both 
architectures?


Re: Base 1.28.1 API/ABI break?

2023-01-08 Thread Fred Kiefer



> Am 07.01.2023 um 19:42 schrieb Yavor Doganov :
> 
> But when build-testing packages with GUI 0.30.0 I came upon this build
> failure of GDL2:
> 
> gcc EOAdaptor.m -c \
>  -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -DGNUSTEP_BASE_LIBRARY=1 
> -DGNU_RUNTIME=1 -g -DGNUSTEP -DGNUSTEP_BASE_LIBRARY=1 -DGNU_GUI_LIBRARY=1 
> -DGNU_RUNTIME=1 -DGNUSTEP_BASE_LIBRARY=1 -fno-strict-aliasing -fexceptions 
> -fobjc-exceptions -D_NATIVE_OBJC_EXCEPTIONS -pthread -fPIC -Wall -DGSWARN 
> -DGSDIAGNOSE -Wno-import -g -O2 -g -O2 
> -ffile-prefix-map=/build/gnustep-dl2-0.12.0=. -fstack-protector-strong 
> -Wformat -Werror=format-security -DDEBUG 
> -fconstant-string-class=NSConstantString -I../EOControl/. -I.. -I. 
> -I/usr/local/include/GNUstep -I/usr/include/GNUstep \
>   -o obj/EOAccess.obj/EOAdaptor.m.o
> EOAdaptor.m:132:39: error: 'NSGB2312StringEncoding' undeclared here (not in a 
> function); did you mean 'NSHZ_GB_2312StringEncoding'?
>  132 |   { @"NSGB2312StringEncoding",NSGB2312StringEncoding },
>  |   ^~
>  |   NSHZ_GB_2312StringEncoding
> EOAdaptor.m:135:39: error: 'NSBIG5StringEncoding' undeclared here (not in a 
> function); did you mean 'NSBig5StringEncoding'?
>  135 |   { @"NSBIG5StringEncoding",  NSBIG5StringEncoding },
>  |   ^~~~
>  |   NSBig5StringEncoding
> make[6]: *** [/usr/share/GNUstep/Makefiles/rules.make:521: 
> obj/EOAccess.obj/EOAdaptor.m.o] Error 1
> 
> These encodings were renamed which (IMVHO) should not happen in a
> point release that should be fully compatible.  There's a similar
> error when building SOPE (not maintained by us, Debian GNUstep team).


Which version of GDL2 are you getting this warnings from? I think the code in 
question was removed more than ten years ago. But then the last release of GDL2 
was 2009. Maybe a new release is required here?

Fred


Re: airyxOS has a new name: ravynOS

2022-09-01 Thread Fred Kiefer


> Am 31.08.2022 um 21:23 schrieb Liam Proven :
> 
> On Tue, 30 Aug 2022 at 17:50, Marco Cawthorne  wrote:
>> 
>> 
>> He compliments how much further along they are in adopting modern
>> technologies than GNUstep.
>> Pushing for Wayland is definitely 'ambitious' to say the least because
>> it seems everyone else is somewhat struggling with it. Also GNUstep
>> already relies on some of their work (libobjc2) it seems.

Not exactly, libobjc2 was developed by David Chisnall and is actually part of 
GNUstep.

As for Wayland, GNUstep has an experimental backend for that, feel free to test 
and improve it.

Cheers,
Fred


Re: Greg, are you o.k.?

2022-08-06 Thread Fred Kiefer
Greg, I hope you get better soon.

Lars, what did you discuss today and were there any agreements reached? I just 
came home a few minutes ago and tried to join the meeting but you already split 
up. I hope you had a nice meeting.

Cheers,
Fred

> Am 06.08.2022 um 22:53 schrieb lars.sonchocky-helld...@hamburg.de:
> 
> Greg, you don’t need to apologize. If you’re sick, you’re sick. We had a 
> meeting nevertheless, but I think nobody recorded it. I convey your apologies 
> by crossposting to discuss-gnustep.
> 
> Kind regards,
> 
>   Lars
> 
>> Am 06.08.2022 um 21:15 schrieb Gregory Casamento :
>> 
>> Hey Lars.  
>> 
>> I have been very sick this morning.   I apologize for not making it.  Please 
>> convey my apologies. 
>> 
>> GC
>> 
>> On Sat, Aug 6, 2022 at 14:10 lars.sonchocky-helld...@hamburg.de 
>>  wrote:
>> Greg, you didn’t make it to the quarterly GNUstep meeting today — I hope, 
>> nothing bad happened and you are o.k.
>> 
>> Kind regards,
>> 
>> Lars
>> -- 
>> Gregory Casamento
>> GNUstep Lead Developer / OLC, Principal Consultant
>> http://www.gnustep.org - http://heronsperch.blogspot.com
>> https://www.patreon.com/bePatron?u=352392 - Become a Patron
>> https://gf.me/u/x8m3sx - My GNUstep GoFundMe
>> https://teespring.com/stores/gnustep - Store
> 




Re: GNUstep Quarterly Meeting #2

2022-08-04 Thread Fred Kiefer
I won’t be able to attend the GNUstep meeting on Saturday. I have just been 
invited on a short trip over to Strasbourg and have no idea at what time we 
will be back. I might be able to join you later, as I did the last time but 
don’t wait for me.

Cheers
Fred

PS: The only news from my side is that I updated the GNUstep packages on the 
Open Suse Buildsystem. And it would be great to agree on a release date for the 
core packages.

> Am 03.08.2022 um 05:26 schrieb greg.casame...@gmail.com:
> 
>   
> Hey guys just a reminder. The meeting is this weekend. Please come. All 
> are welcome.
> 
> GC
> 
> GNUstep Quarterly Meeting #2
> Saturday Aug 6, 2022 ⋅ 12:30pm – 2:30pm (Eastern Time - New York)
> I am planning on having these in the middle of every quarter. I realize most 
> people are in Europe, so I am going to make this at a time that I believe is 
> convenient for most people. We have two months to go for this so, if you 
> would like to suggest a time please do so here on google calendar.
> Ultimately I would like to move to an open-source/free software solution for 
> scheduling as well, but for right now Google Calendar will need to do.
> 
> Please note, I would very much like this meeting to be recorded so that we 
> can learn the most from the experience.
> 
> Yours always, GC
> 
> 
> Click the following link to join the meeting from your computer: 
> https://meet.jit.si/TheatricalNecessitiesFormulateNotably
> 
> =
> 
> Just want to dial in on your phone?
> 
> Call one of the following numbers: 
> Australia: +61.8.7150.1136
> Brazil: +55.21.3500.0112
> Canada: +1.437.538.3987
> France: +33.1.87.21.0005
> Japan: +81.3.4510.2372
> Netherlands: +31.85.208.1541
> Spain: +34.932.205.409
> Switzerland: +41.61.588.0496
> UK: +44.203.885.2179
> US: +1.512.647.1431
> 
> Dial your meeting ID: '4036948717' and you will be connected!
> 
> Location
> Jitsi Meeting - https://meet.jit.si/TheatricalNecessitiesFormulateNotably 
> View map
> Guests
> greg.casame...@gmail.com - organizer
> fredkie...@gmx.de
> h...@goldelico.com
> discuss-gnustep@gnu.org
> frede...@algoriddim.com
> riccardo.mott...@libero.it
> mul...@gmail.com
> ape...@alexperez.com
> ste...@stevenrbaker.com
> h...@computer.org
> nicola.p...@brainstorm.co.uk
> fe...@gnu.org
> r...@gnu.org
> r...@gnu.org
> iaml...@gmail.com




Re: Porting GNUstep to the RISC-V architecture

2022-05-10 Thread Fred Kiefer
I committed both changes together to a tools-make branch. Somebody now has to 
check whether this still works with MSVC as config.guess seem to have dropped 
support for that platform. As far as I can tell we currently don’t have any CI 
pipeline set up for make. This is probably tested when building base.
Frederik, could you please have a look?

Cheers,
Fred

> Am 08.05.2022 um 22:49 schrieb lars.sonchocky-helld...@hamburg.de:
> 
> Hi Fred,
> 
> I did this change only in tools-make but then again I’ve built the whole 
> GNUstep hierarchy at once using that compile-all script from tools-scripts. 
> So I guess it might be different if you’re building those modules separately. 
> I think it wouldn’t hurt to update the config.guess and the config.sub 
> everywhere just to be safe.
> 
> kind regards,
> 
>   Lars
> 
>> Am 08.05.2022 um 22:24 schrieb Fred Kiefer :
>> 
>> OK, so I will undo my local change and instead update these two files. Was 
>> that change needed for all GNUstep modules?
>> 
>> Fred
>> 
>>> Am 08.05.2022 um 05:15 schrieb lars.sonchocky-helld...@hamburg.de:
>>> 
>>> From sheer excitement I forgot to answer your question: configure works 
>>> fine so far even when not updating configure and configure.ac, e.g. 
>>> replacing config.guess and config.sub with recent versions is just enough.
>>> 
>>> regards,
>>> 
>>> Lars
>>> 
>>>> Am 08.05.2022 um 01:11 schrieb Fred Kiefer :
>>>> 
>>>> Lars,
>>>> 
>>>> could you please try whether it would be sufficient to just replace these 
>>>> two file without updating configure and configure.ac?
>>>> That update is fine for me, but it would stop people with an old autoconf 
>>>> to regenerate the configure file.
>>>> 
>>>> Cheers,
>>>> Fred
>> 
> 




Re: Porting GNUstep to the RISC-V architecture

2022-05-08 Thread Fred Kiefer
OK, so I will undo my local change and instead update these two files. Was that 
change needed for all GNUstep modules?

Fred

> Am 08.05.2022 um 05:15 schrieb lars.sonchocky-helld...@hamburg.de:
> 
> From sheer excitement I forgot to answer your question: configure works fine 
> so far even when not updating configure and configure.ac, e.g. replacing 
> config.guess and config.sub with recent versions is just enough.
> 
> regards,
> 
>   Lars
> 
>> Am 08.05.2022 um 01:11 schrieb Fred Kiefer :
>> 
>> Lars,
>> 
>> could you please try whether it would be sufficient to just replace these 
>> two file without updating configure and configure.ac?
>> That update is fine for me, but it would stop people with an old autoconf to 
>> regenerate the configure file.
>> 
>> Cheers,
>> Fred




Re: Porting GNUstep to the RISC-V architecture

2022-05-07 Thread Fred Kiefer
Lars,

could you please try whether it would be sufficient to just replace these two 
file without updating configure and configure.ac?
That update is fine for me, but it would stop people with an old autoconf to 
regenerate the configure file.

Cheers,
Fred

> Am 08.05.2022 um 00:32 schrieb lars.sonchocky-helld...@hamburg.de:
> 
> Hi Fred, Hi Greg,
> 
> 
> That Autoconf was too old, was already the right idea, however differently 
> than assumed. I'll get to that in a moment. First the good news: I have made 
> significant progress in porting GNUstep to RISC-V by making changes to 
> Autoconf. Configure is basically working now, although many dependencies for 
> a real compilation of GNUstep are still missing. However, I had not installed 
> these dependencies before either.
> 
> What did I do?
> 
> First a checkout of all major GNUstep subprojects:
> 
> $ mkdir Sources
> $ cd Sources
> $ git clone http://github.com/gnustep/tools-make
> $ git clone http://github.com/gnustep/libs-base
> $ git clone http://github.com/gnustep/libs-back
> $ git clone http://github.com/gnustep/libs-gui
> $ git clone http://github.com/gnustep/tools-scripts
> 
> Then I ran the build script in tools-scripts:
> 
> $ ./tools-scripts/compile-all &> compile-all-out.txt
> 
> (see attachment)
> 
> compile-all-out.txt now revealed that already configure did not run correctly.
> 
> 
> ---8<---
> 
>  BUILDING WITH GCC
> Build command: CCFLAGS= CC=gcc ./configure --prefix=/usr/GNUstep 
> --with-layout=gnustep 
> 
> checking build system type... ./config.guess: unable to guess system type
> 
> This script, last modified 2016-04-02, has failed to recognize
> the operating system you are using. It is advised that you
> download the most up to date version of the config scripts from
> 
>  http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess
> and
>  http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub
> 
> If the version you run (./config.guess) is already up to date, please
> send the following data and any information you think might be
> pertinent to  in order to provide the needed
> information to handle your system.
> 
> config.guess timestamp = 2016-04-02
> 
> ---8<---
> 
> 
> Fred then made changes to configure and configure.ac and sent them to me.
> 
> I applied those changes and then ran this command:
> 
> $ ./tools-scripts/compile-all &> compile-all-out.1.txt
> 
> (see attachment)
> 
> It turned out that Fred's changes did not include everything necessary, 
> configure failed again (analogous to before).
> 
> A closer look at the error messages of configure suggested that especially 
> the files config.guess and config.sub had to be replaced:
> 
> ---8<---
> 
> It is advised that you
> download the most up to date version of the config scripts from
> 
>  http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess
> and
>  http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub
> 
> ---8<---
> 
> I downloaded both files (and added them to the archive in the attachment) and 
> of course replaced these two files with the new variants in tools-make. A 
> comparison of the new and old variants brought to light that in the previous 
> version of config.guess from 2016-04-02 the term "riscv" does not appear, 
> this architecture was at that time at least unknown to Autoconf.
> 
> After replacing the config.guess and config.sub files with their more recent 
> variants, I ran the following command:
> 
> $ ./tools-scripts/compile-all &> compile-all-out.2.txt
> 
> (see attachment)
> 
> Now configure ran through, however nothing has been built yet, since an ObjC 
> compiler is missing on the system.
> 
> 
> Kind regards,
> 
>   Lars
> 
> 




Re: Reminder of quarterly meetup... Sat, May 7th 2022...

2022-05-06 Thread Fred Kiefer
I am sorry, I won’t make it for tomorrows quarterly meeting. 

The most important subject for me would have been a release for the core 
libraries and as Ivan will be busy with other stuff, this seems out of reach 
for the near future.

Looking forward to see you again in the next quarter.
Fred

> Am 07.03.2022 um 10:04 schrieb Gregory Casamento :
> 
> Here are the meeting details in plain text...
> 
> It is at 12:30-2:30pm Eastern Standard Time on the day mentioned...
> 
> I am planning on having these in the middle of every quarter. I realize most 
> people are in Europe, so I am going to make this at a time that I believe is 
> convenient for most people. We have two months to go for this so, if you 
> would like to suggest a time please do so here on google calendar.
> 
> Ultimately I would like to move to an open-source/free software solution for 
> scheduling as well, but for right now Google Calendar will need to do.
> 
> Please note, I would very much like this meeting to be recorded so that we 
> can learn the most from the experience.
> 
> Yours always, GC
> 
> 
> Click the following link to join the meeting from your computer: 
> https://meet.jit.si/TheatricalNecessitiesFormulateNotably
> 
> =
> 
> Just want to dial in on your phone?
> 
> Call one of the following numbers:
> Australia: +61.8.7150.1136
> Brazil: +55.21.3500.0112
> Canada: +1.437.538.3987
> France: +33.1.87.21.0005
> Japan: +81.3.4510.2372
> Netherlands: +31.85.208.1541
> Spain: +34.932.205.409
> Switzerland: +41.61.588.0496
> UK: +44.203.885.2179
> US: +1.512.647.1431
> 
> Dial your meeting ID: '4036948717' and you will be connected!
> 
> 
> On Mon, Mar 7, 2022 at 3:54 AM Gregory Casamento  
> wrote:
> All,
> 
> The next meeting is on May 7th...  please see the link below.
> 
> https://calendar.google.com/event?action=TEMPLATE=Mzg2MHBlMzBnbG9yNjhtZGM1OHBjNHJyYzlfMjAyMjA1MDdUMTYzMDAwWiBncmVnLmNhc2FtZW50b0Bt=greg.casamento%40gmail.com
> 
> If you are interested in attending, please RSVP or just show up. :) 
> 
> For members of the GNUstep team... please remember.  These meetings, while 
> not a "steering committee", are not just social events.  They are also used 
> to discuss things and, possibly, make decisions about things that are 
> relevant to the project.
> 
> Yours, GC
> -- 
> Gregory Casamento
> GNUstep Lead Developer / OLC, Principal Consultant
> http://www.gnustep.org - http://heronsperch.blogspot.com
> https://www.patreon.com/bePatron?u=352392 - Become a Patron
> https://gf.me/u/x8m3sx - My GNUstep GoFundMe
> https://teespring.com/stores/gnustep - Store
> 
> 
> 
> -- 
> Gregory Casamento
> GNUstep Lead Developer / OLC, Principal Consultant
> http://www.gnustep.org - http://heronsperch.blogspot.com
> https://www.patreon.com/bePatron?u=352392 - Become a Patron
> https://gf.me/u/x8m3sx - My GNUstep GoFundMe
> https://teespring.com/stores/gnustep - Store




Re: Clang/LLVM migration roadmap

2022-02-06 Thread Fred Kiefer



> Am 06.02.2022 um 01:14 schrieb Gregory Casamento :
> 
> There are a number of factors that are driving this:
> --
> 1) GCC lacks support for many memory management features that are commonly 
> used today
> 2) GCC's objective-c support is lagging behind and doesn't include support 
> for @[], @{}, @autorelease, etc etc etc
> 3) Lack of bug fixes in GCC's implementation of ObjC
> 4) GCC team does not consider ObjC release critical and will and HAS released 
> with broken support for building ObjC targets.  
> All of these things are UNACCEPTABLE

Again I beg to differ. Of course the first two point are true and need to be 
addressed. But I am not aware of any critical bug in gcc that is currently 
hindering us. There are many missing features and this is really bad for 
GNUstep and ObjC as a whole. As for the position of the gcc team on ObjC, none 
of knows and we only may guess here. The one time where a gcc release knowingly 
broke ObjC was ages ago. Maybe it could happen again, we just don’t know. 
Stating something as a fact that is just a possibility is a rather annoying 
habit of our times. Please don’t do so on the GNUstep mailing list.
As is typing words in all capital letters. It really doesn’t help in polite 
conversations.

Fred


Re: Notes from meeting Q1 2022

2022-02-06 Thread Fred Kiefer



> Am 06.02.2022 um 15:42 schrieb Gregory Casamento :
> 
> Here are the "raw" notes from yesterday's meeting...
>   • Wolfgang email
>   • libobjc2
>   • PR for windows
>   • exceptions not working.
>   • fragility on other platforms.
>   • linker dependencies
>   • Xcode-lib
>   • Put solution files into instructions. — Frederick Seiffert
>   • Commit hook for @gnustep twitter account
>   • GITHUB Action 
>   • build with clang
>   • build .deb files.
>   • build .rpm files.
>   • NIGHTLY BUILD
>   • RMS
>   • Write about participation — pointless given the 
> decision to move more toward LLVM/clang

I disagree here. Most likely the sentence after the hyphen is you personal 
opinion after the meeting. At lease during the two hours I attended nobody 
stated this. The idea here was to get in touch with the gcc developers over 
better support for libobjc2 from gcc (not stated in the protocol). And as you 
didn’t know who the current gcc maintainers are I suggested to last RMS on that 
point as he wrote he already spoke to them last year on that subject.
It really would help to keep personal opinions outside of the notes. Everybody 
who attended or didn’t attend may have differing views but the notes should 
somehow represent what was discussed during the meeting. Otherwise they are 
pointless. 

>   • Phase ARC into core libraries — RFM
>   • ROADMAP to move to clang if GCC is not up to spec
>   • Reference implementation
>   • VOID LINUX — Hugo
>   • FRED TOPICS
>   • Spring release — Mention on list
>   • Updated Fred UBS



Re: ANN: GWorkspace 1.0

2021-12-24 Thread Fred Kiefer
Thank you Riccardo for your great work on this release and for the kind words 
you found fro remember  Bertrand.

Merry Christmas to you,
Fred

> Am 25.12.2021 um 01:37 schrieb Riccardo Mottola :
> 
> GWORKSPACE 1.0
> --
> 
> Christmas, in Anno Domini 2021.
> 
> This is a different announcemement than usual, since it is a special release: 
> it is tagged 1.0 after many years of work. It is different, because it is a 
> personal writing. The last release has been long ago, but many refinements 
> and improvements came in; there has been a person who spurred me improving 
> and working on GWorkspace: Bertrand Dekoninck.
> 
> Hard times were the past two years and they have not been easy and the 
> pandemic is not yet over, so in the Christmas Eve, a new release of 
> GWorkspace has been done and it is dedicated to Bertrand: so shall he be 
> remembered from us GNUsteppers, he, who had not the privilege to live till 
> Christmas with his family.
> 
> A reserved user who really gave the sensation to be interested in GNUstep and 
> its applications, thus, especially GWorkspace. Continuously he proposed 
> contributions, tested, always gentle, collaborative: a friend. I will miss 
> him, we will miss him.
> Betrand, as me, worked also on PowerPC - so it was inspiring to know that 
> supporting that Big Endian platform was useful! After the pandemic, I wanted 
> to meet hi8mfor a hacking session, but it will no longer happen on earth.
> 
> Merry Christmas and a Happy New Year!
> 
> 
> Riccardo
> 
> 
> What is new?
> 
> * "Modern mode" enables now clearer icon lables on the desktop
> * Single click launch is now an option and affects the Dock and the Tabbed 
> shelf
> * cleaned up code in Shelf and Dock Icons
> * Fixed display of available tools for documents in the inspector
> * Improved display of handled extensions for an applications
> * Improve image scaling for image content inspector and image thumbnailer
> * Better handling of removable volumes
> * Improved French, Italian and Spanish localizations, as well as new Japanese 
> and Polish ones
> * The build system was improved and cleaned up, allowing easier packaging and 
> building on different platforms
> * Fix crash in Metadata extractor
> * Fix build failure on GNU/HURD
> 
> Links for info and downloads:
> 
> http://www.gnustep.org/experience/GWorkspace.html
> http://www.gnustep.org/resources/downloads.php
> https://github.com/gnustep/apps-gworkspace
> 
> -- 
> Sent with GNUMail on GNUstep on Gentoo running on a ThinkPad T510i-i5.
> 
> 




Re: Wayland backend

2021-11-07 Thread Fred Kiefer
Great improvement! Thank you for that.

> Am 06.11.2021 um 13:33 schrieb Riccardo Canalicchio 
> :
> 
> Hello,
> following up on this, I moved forward with the implementation and I have got 
> to a working state. (with still some bugs but usable)
> Windows are shown properly, dropdown menus as well, resize and move work.
> The implementation is tested on Weston, GnomeShell and some other compositors 
> based on wlroots. It uses the protocol xdgshell widely adopted in all the 
> compositors as well the layer shell protocol which is currently adopted by 
> the wlroots compositors and ubuntu shell. 
> Here a PR: https://github.com/gnustep/libs-back/pull/33
> 
> note: To be able to associate submenus to the parent windows i had to make a 
> change to libs-gui:
> https://github.com/nongio/libs-back/blob/wayland/Source/wayland/WaylandServer.m#L894
> maybe there are better ways to do it, in case you think it's ok i would 
> proceed to make a PR for libs-gui too

Could you please explain this a bit? What is the issue here and what is your 
workaround? And what could be a better workaround in gui?

Cheers,
Fred


Re: Changing control font size

2021-09-23 Thread Fred Kiefer


> Am 23.09.2021 um 13:19 schrieb Andreas Höschler :
> 
> 
>> Ignore that list. The only defined font sizes in the defaults are 
>> @„NSFontSize“, @„NSLabelFontSize“ and @„NSSmallFontSize“. You have to use 
>> these strings if you want to set this programmatically
> 
> I have done
> 
> - (void)applicationDidFinishLaunching
> {
>#ifndef __APPLE__
>[[NSUserDefaults standardUserDefaults] setObject:[NSNumber 
> numberWithFloat:20.0] forKey:@"NSFontSize"];
>[[NSUserDefaults standardUserDefaults] setObject:[NSNumber 
> numberWithFloat:20.0] forKey:@"NSLabelFontSize"];
>#endif
>
> }
> 
> but this does not seem to have changed anything. The font used by TableViews, 
> ComboBoxes, TextFields and Buttons is still the same!?

Thinking about this a bit gave me a hint. Do the elements with the wrong font 
size come from a Gorm or NIB file? When encoding a font object we store its 
actual size and when regenerating the font we use that size. This is of course 
wrong. We should store the standard size as 0, so that the current standard 
size gets used when recreating the object. This is easy to change in the code, 
still all old NIB and Gorm files will behave wrong. We could try to treat 12 
the same as 0 when decoding. But this both won’t work for label and small 
system font size.
Anybody with a better idea out there?

>> but most likely it is easier to set them via the defaults file once.
> 
> You mean
> 
>   defaults write ScaleMaster NSFontSize 20
>   defaults write ScaleMaster NSLabelFontSize 20

Yes, that is what I was suggesting.

Fred


Re: Changing control font size

2021-09-22 Thread Fred Kiefer
Ignore that list. The only defined font sizes in the defaults are 
@„NSFontSize“, @„NSLabelFontSize“ and @„NSSmallFontSize“. You have to use these 
strings if you want to set this programmatically but most likely it is easier 
to set them via the defaults file once.

Hope this helps,
Fred

> Am 22.09.2021 um 15:40 schrieb Andreas Höschler :
> 
> Hi all,
> 
> I am building a GNUstep app on Ubuntu 20.04 and would like the font used by 
> NSButtons, NSTableView, NSComboBox etc. to be larger as normal for industrial 
> usage of the app (better readability from further away from the screen).
> 
> I found this list 
> > NSBoldFontSize
> 
> >
>  NSControlContentFontSize
> 
> >
>  NSFontSize
> 
> >
>  NSLabelFontSize
> 
> >
>  NSMenuFontSize
> 
> >
>  NSMiniFontSize
> 
> >
>  NSMessageFontSize
> 
> >
>  NSPaletteFontSize
> 
> >
>  NSSmallFontSize
> 
> >
>  NSTitleBarFontSize
> 
> >
>  NSToolTipsFontSize
> 
> >
>  NSUserFixedPitchFontSize
> 
> >
>  NSUserFontSize
> and greped through the GNUstep sources for NSControlContentFontSize but only 
> found 
> 
>   grep -r "NSControlContentFontSize" /usr/src/GNUstep/
> 
> /usr/src/GNUstep/libs-gui/Source/NSFont.m:NSControlContentFontSize  
> (none)
> /usr/src/GNUstep/libs-gui/Source/NSToolbarItem.m:  // [NSFont 
> smallSystemFontSize] or better should be NSControlContentFontSize
> 
> Is this default used at all? How would I programmatically change the font 
> size for all the controls in the user interface. I intuitively tried 
> 
>[[NSUserDefaults standardUserDefaults] setObject:[NSNumber 
> numberWithFloat:20.0] forKey:NSControlContentFontSize];
>[[NSUserDefaults standardUserDefaults] setObject:[NSNumber 
> numberWithFloat:20.0] forKey:NSLabelFontSize];
> 
> but this of course does not build since NSControlContentFontSize is 
> undefined. 
> 
> I am obviously missing the point!? :-(
> 
> Any idea?
> 
> Thanks a lot, 
> 
>  Andreas
> 
> 
> 




Re: NSInvalidArgumentException building GSspell.service

2021-09-10 Thread Fred Kiefer
The program make_services is in the unlucky situation of being the first 
Objective-C program that is executed on your system. If you run the tests of 
base (make check) you would be getting similar errors a bit earlier.
I still would prefer to better understand your setup before going into detailed 
analysis here. An as this involves a non standard architecture it would be 
great to get David and Riccardo involved as they know a lot more about GNUstep 
and clang on PowerPC.

Cheers,
Fred

> Am 10.09.2021 um 01:00 schrieb Mick Bert :
> 
> 
> 
> Again, after installing gnustep-make 2.9.0, and gnustep-base 1.28.0, 
> compiling gnustep-gui 0.29.0 on a debian powerpc port with clang 9.0.1-16.1, 
> I got the error:
> 
> Creating GSspell.service/Resources/Info-gnustep.plist...
> ././obj/make_services: Uncaught exception NSInvalidArgumentException, reason: 
> Tried to init dictionary with nil key
> 
> and I have no idea about how to proceed.
> 
> --
> 
> Mick
> 




Re: CPPFLAGS ignored compiling gui

2021-09-10 Thread Fred Kiefer
Hi Mick,

this sounds a bit strange. You are building GNUstep with clang but point it to 
use the gcc libobjc? This might work but surely it isn’t a recommended setup. 
Why would you want to do that? When using clang you should be using the GNUstep 
libobjc2.

Confused,
Fred

> Am 10.09.2021 um 00:16 schrieb Mick Bert :
> 
> Hello
> 
> I am trying to compile gnustep (latest release, downloaded a couple of days 
> ago) on a Debian 5.10.46-powerpc, with clang.
> 
> Configured gnustep-gui with 
> CPPFLAGS=-I/usr/lib/gcc/powerpc-linux-gnu/9/include and 
> CFLAGS=-I/usr/lib/gcc/powerpc-linux-gnu/9/include (which is the directory 
> containing objc/objc.h), when I run make,it fails on source 
> Model/IMCustomObject.m with error:
> 
> In file included from IMCustomObject.m:28:
> In file included from 
> /opt/Local/Library/Headers/Foundation/NSObjCRuntime.h:222:
> /opt/Local/Library/Headers/GNUstepBase/GSObjCRuntime.h:58:11: fatal error: 
> 'objc/objc.h' file not found
>  #include 
> 
> If I run make -n, I get:
> 
> clang-9 IMCustomObject.m -c -MMD -MP -DGNU_RUNTIME=1 -DGNU_GUI_LIBRARY=1 
> -DGNUSTEP -DGNUSTEP_BASE_LIBRARY=1 -DGNU_GUI_LIBRARY=1 -DGNU_RUNTIME=1 
> -DGNUSTEP_BASE_LIBRARY=1 -fno-strict-aliasing -pthread -fPIC -Wall -DGSWARN 
> -DGSDIAGNOSE -Wno-import -g -O2 -fobjc-runtime=gcc -Wall 
> -fconstant-string-class=NSConstantString -I../Headers/Additions -I../Headers 
> -I. -I/home/mick/GNUstep/Library/Headers -I/opt/Local/Library/Headers 
> -I/opt/System/Library/Headers  -o obj/libgmodel.obj/IMCustomObject.m.o
> 
> which is clearly missing the directory containing objc.h
> 
> Where should I have to specify that directory, in order it to be added to 
> that compiling command?
> 
> --
> 
> Mick
> 




Re: related websites and links

2021-08-14 Thread Fred Kiefer



> Am 14.08.2021 um 18:38 schrieb Riccardo Mottola :
> 
> 
> checking some of our pages, I found some "cruft" and I'd like your opinions 
> on it and "actions".
> 
> 1) http://www.gnustep.it/
> 
> A top-level domain which is stuck in the past - I wonder if it is of Nicola 
> and who maintains it?It is not in Italian at all!

What a great page! It is like a time machine back to the good old GNUstep from 
early 2000.  


> It contains obsolete information (e.g.Workspace pages 
> http://www.gnustep.it/enrico/gworkspace/ which are totally old and which I 
> completely replaced with http://www.gnustep.org/experience/GWorkspace.html )
> 
> Obsolete tutorial http://www.gnustep.it/pierre-yves/index.html which I 
> completely updated and redid here:
> 
> 
> JIGS - does it still exist? works? should i become part of the main 
> development pages?

As far as I know still still exists and gets used at Brainstorm, or what ever 
they are called now. It should be documented on our main web page.

> Renaissance: it is part of GNUstep and has its repository on GIT, shouldn't 
> we integrate it in the main website ?

Yes, this too, please. 


> Main website:
> 
> We should agree on where to report bugs (savannah or GIT) and choose what to 
> do with "bugs.gnustep.org" and then update accordingly. I know Greg's 
> position on it, but I'd like to raise the discussion on this again.
> 
> 
> Related projects: are these still alive? does it make sense to link and 
> sponsor them? I just checked on gnustep.org as well as on gap.nongnu.org
> 
> * www.etoile-project.org we still sponsor it high, but it is almost a dead 
> collection? At least the website is so; should we still sponsor it so 
> prominently?

We should still link to it, but maybe not that prominently.

> * http://www.nongnu.org/backbone/ - latest commit I see is 4 years old

That is not that long ago :-)
> 
> * http://interfacewm.sourceforge.net/ seems total retrocomputing :)
> 
> * ImageApps still points to https://home.gna.org/gsimageapps/ what happened 
> to them ?
> 
> * http://www.collaboration-world.com/cgi-bin/error.cgi?id=1  goes on error, 
> but the domain is half there, should we hide it in favour of gnustep-nonfsf ?
> 
> * Advogato - it is dead now... so we should kill links to it
> 
> * http://fortytwo.sourceforge.net/ didn't even know we had this project, tell 
> me about it!!!

Never heard about that either. (Or at least I don’t remember)




Re: Notes from GNUstep quarterly meet up...

2021-08-14 Thread Fred Kiefer
Hi Steven,

great that you volunteer!  Greg already replied with information on the webpage 
part. For gcc things are a bit more complicated. The notes that Greg took leave 
out a bit of the discussion there. The problem is not whether gcc maintainers 
would accept our patches. It is rather that to come up with a solution here we 
all agreed that help from some gcc developers would be required. We don’t know 
whether anybody there is willing to support us. Previous attempts were not very 
promising. What I could do is get you in contact with RMS who offered to help 
to get the necessary people together. I also have some preliminary ideas on how 
to address the issues. Contact me directly if you are interested.

Cheers,
Fred 

> Am 13.08.2021 um 01:57 schrieb Steven R. Baker :
> 
> I would like to volunteer to have website tasks assigned to me.  You can be 
> vague and open ended with these.
> 
> I’m also happy to work on the gcc bits but I’ll need a pair or a sherpa on 
> that because though I’d like to work on that, I have very little experience 
> working on compilers. 
> 
>> 12 aug. 2021 kl. 20:38 skrev Gregory Casamento :
>> 
>> 
>> Hey guys... I would like to see if we can break out this list into action 
>> items and make some issues and assign them to certain individuals.   This 
>> way we make some progress based on our discussion.
>> 
>> I will take a stab at making a list of action items and post them here.  If 
>> anyone has any feedback, let me know.
>> 
>> Thx, GC
>> 
>> On Sat, Aug 7, 2021 at 12:00 AM Gregory Casamento  
>> wrote:
>> Hey all,
>> 
>> The meet up went well.  I REALLY enjoyed meeting everyone and I found the 
>> discussion very interesting and productive.   I took notes during the 
>> meeting.  We did not have an agenda so these points came up naturally.  I 
>> have noted who brought them up.  Riccardo joined later, so I took down his 
>> thoughts.   I am glad we did this and am very much looking forward to the 
>> next time. 
>> 
>> So, for your comment and review here are the notes:
>> 
>> * Website (David Wetzel - DW)
>> * Need to have the website present a solution for installing GNUstep 
>> quickly.  Make a script…
>> * tutorials to get from to hello world quickly
>> * (Riccardo M. - RM) Discuss with Riccardo what changes are needed.
>> * Usability (DW)
>> * More command line interfaces
>> * Terminal based environment
>> * Terminal only based tutorial
>> * GCC vs. LLVM/Clang (DW)
>> * Clang has an advantage because ObjC is more of a focus
>> * Fred: Is it possible to get  gcc up to spec? 
>> * Require time from GS developers?  
>> * Who should do it?
>> * Will GCC accept our patches?
>> * RMS asked, and GCC said they would review our patches with 
>> “kinder” eye.
>> * Issues with libobjc2 - (RM) - This is a consistent issue on a lot of 
>> platforms.  LLVM/Clang Doesn’t work on ALL platforms.
>> * Doesn’t work NetBSD
>> * uses CMAKE, but would be better using STRAIGHT make as CMAKE is 
>> not available or not easy to configure
>> * Cairo - Problems (Fred Kiefer - FK)
>> * unmaintained — should we move to another library??
>> * Can we replace the current Cairo with a hw accelerated library? Or any 
>> other commonly used library that is maintained!?
>> * Cocotron (FK)
>> * Can we use any Cocotron code?
>> * MIT based.  So we may be able to reuse some of their code or take 
>> ideas from their code.
>> 
>> I will be posting these to the wiki or to the website soon.
>> 
>> Yours, GC
>> -- 
>> Gregory Casamento
>> GNUstep Lead Developer / OLC, Principal Consultant
>> http://www.gnustep.org - http://heronsperch.blogspot.com
>> https://www.patreon.com/bePatron?u=352392 - Become a Patron
>> https://gf.me/u/x8m3sx - My GNUstep GoFundMe
>> https://teespring.com/stores/gnustep - Store
>> 
>> 
>> 
>> -- 
>> Gregory Casamento
>> GNUstep Lead Developer / OLC, Principal Consultant
>> http://www.gnustep.org - http://heronsperch.blogspot.com
>> https://www.patreon.com/bePatron?u=352392 - Become a Patron
>> https://gf.me/u/x8m3sx - My GNUstep GoFundMe
>> https://teespring.com/stores/gnustep - Store




Re: GNUstep Quarterly Meeting

2021-08-06 Thread Fred Kiefer
Does this mean the meeting is basically already over? In my calendar it should 
only start in ten minutes.

Fred

> Am 06.08.2021 um 16:46 schrieb lars.sonchocky-helld...@hamburg.de:
> 
> The link worked fine, there were three of us in the conference at 10:00 am 
> EST.
> 
>> Am 06.08.2021 um 16:22 schrieb Gregory Casamento :
>> 
>> It is the link jitsi gave me.  If it isnt then i can use zoom.  But i wanted 
>> to keep it on free software.  ;)
>> 
>> On Fri, Aug 6, 2021, 9:58 AM lars.sonchocky-helld...@hamburg.de 
>>  wrote:
>> Hi Greg,
>> 
>> is this surely the correct link? It looks a bit to generic to me …
>> 
>> regards,
>> 
>>  Lars
>> 
>>> Am 22.07.2021 um 13:46 schrieb Gregory Casamento :
>>> 
>>> The meeting link is here...
>>> 
>>> Jitsi Meeting - https://meet.jit.si/LiveAttendancesConfrontInitially
>>>  
>>> It is on August 6th from 10AM to 12PM (2 hours) EST.
>>> 
>>> A few people have been explicitly invited, but anyone may attend.  You are 
>>> all hereby invited to join on that date.
>>> 
>>> Thanks for being part of this project.
>>> 
>>> Yours, GC




Re: GNUstep Quarterly Meeting

2021-08-06 Thread Fred Kiefer
I expected the meeting to start in an hour. After your mail I joined with the 
link below, but there is nobody else there.

Fred

> Am 06.08.2021 um 16:06 schrieb Gustavo Tavares :
> 
> 3 of us are here inside the link. Bob, Lars and me :) 
> 
> On Fri, Aug 6, 2021, at 10:00 AM, Gustavo Tavares wrote:
>> I'm inside the meeting. Don't see anybody Lars. Are you there?
>> 
>> On Fri, Aug 6, 2021, at 9:58 AM, lars.sonchocky-helld...@hamburg.de wrote:
>>> Hi Greg,
>>> 
>>> is this surely the correct link? It looks a bit to generic to me …
>>> 
>>> regards,
>>> 
>>> Lars
>>> 
 Am 22.07.2021 um 13:46 schrieb Gregory Casamento 
 :
 
 The meeting link is here...
 
 Jitsi Meeting - https://meet.jit.si/LiveAttendancesConfrontInitially
  
 It is on August 6th from 10AM to 12PM (2 hours) EST.
 
 A few people have been explicitly invited, but anyone may attend.  You are 
 all hereby invited to join on that date.
 
 Thanks for being part of this project.
 
 Yours, GC
 -- 
 Gregory Casamento
 GNUstep Lead Developer / OLC, Principal Consultant
 http://www.gnustep.org - http://heronsperch.blogspot.com
 https://www.patreon.com/bePatron?u=352392 - Become a Patron
 https://gf.me/u/x8m3sx - My GNUstep GoFundMe
 https://teespring.com/stores/gnustep - Store




Re: GNUstep - Documentation

2021-07-25 Thread Fred Kiefer
Bob,

you should not give up too soon. Just ignore the corebase error and go ahead 
and compile GNUstep gui and core. You will need some extra libraries for these. 
Not having done a Windows compile in years, I don't remember which ones. But 
after that you should be able to compile and run your own code.

Cheers,
Fred

On the road

Am 25.07.2021 um 11:23 schrieb Bob Plymale :

> It seems all of the documentation for install configuration is dated and no 
> longer works as described, such as the Windows installer, It didn't play 
> well, so I dropoped it. Then it was recommended to follow the tutorial 
> gnustep/tools-windows-msvc at https://github.com/gnustep/tools-windows-msvc. 
> This one had potiential but alas running the build.bat script bombed with the 
> following errors:
> 
> 1 warning generated.
>  Linking library libgnustep-corebase ...
> lld-link: error: undefined symbol: __declspec(dllimport) pthread_once
> >>> referenced by 
> >>> C:\Users\bplym\Desktop\tools-windows-msvc\src\gnustep-corebase\Source\CFRunLoop.c:436
> >>>   
> >>> obj/libgnustep-corebase.obj/CFRunLoop.c.o:(CFRunLoopGetCurrent)
> >>> referenced by 
> >>> C:\Users\bplym\Desktop\tools-windows-msvc\src\gnustep-corebase\Source\CFRunLoop.c:462
> >>>   obj/libgnustep-corebase.obj/CFRunLoop.c.o:(CFRunLoopGetMain)
> 
> lld-link: error: undefined symbol: __declspec(dllimport) pthread_getspecific
> >>> referenced by 
> >>> C:\Users\bplym\Desktop\tools-windows-msvc\src\gnustep-corebase\Source\CFRunLoop.c:438
> >>>   
> >>> obj/libgnustep-corebase.obj/CFRunLoop.c.o:(CFRunLoopGetCurrent)
> 
> lld-link: error: undefined symbol: __declspec(dllimport) pthread_setspecific
> >>> referenced by 
> >>> C:\Users\bplym\Desktop\tools-windows-msvc\src\gnustep-corebase\Source\CFRunLoop.c:442
> >>>   
> >>> obj/libgnustep-corebase.obj/CFRunLoop.c.o:(CFRunLoopGetCurrent)
> 
> lld-link: error: undefined symbol: __declspec(dllimport) pthread_key_create
> >>> referenced by 
> >>> C:\Users\bplym\Desktop\tools-windows-msvc\src\gnustep-corebase\Source\CFRunLoop.c:424
> >>>   
> >>> obj/libgnustep-corebase.obj/CFRunLoop.c.o:(_CFRunLoopCreateThreadKey)
> clang: error: linker command failed with exit code 1 (use -v to see 
> invocation)
> make[4]: *** 
> [/c/GNUstep/x64/Debug/share/GNUstep/Makefiles/Instance/library.make:307: 
> obj/gnustep-corebase.lib] Error 1
> make[3]: *** 
> [/c/GNUstep/x64/Debug/share/GNUstep/Makefiles/Instance/library.make:292: 
> internal-library-all_] Error 2
> make[2]: *** 
> [/c/GNUstep/x64/Debug/share/GNUstep/Makefiles/Master/rules.make:297: 
> libgnustep-corebase.all.library.variables] Error 2
> make[1]: *** 
> [/c/GNUstep/x64/Debug/share/GNUstep/Makefiles/Master/library.make:37: 
> internal-all] Error 2
> make: *** 
> [/c/GNUstep/x64/Debug/share/GNUstep/Makefiles/Master/serial-subdirectories.make:53:
>  internal-all] Error 2
> Failed
> 
> 
> 
> I have some macOS code that I want to make multiplatform so I was leaning 
> towards rewrite in wxWidgets so my code portable. Basically if I could get 
> objective-c to work on windows and linux that would be my portable code, and 
> to say I really enjoy coding in objective-c regardless of what Apple does 
> with thee version.
> 
> 
> 
> Bob


Re: GNUstep Windows MSVC Toolchain Error

2021-07-24 Thread Fred Kiefer
If you do not need corebase, then you should be good to go. Just ignore this 
failure. I am sure Frederik will update his scripts soon.

Fred

On the road

Am 24.07.2021 um 13:03 schrieb Bob Plymale :

> Thanks for the reply Fred,
> 
> I am not trying to build codebase by itself, I am following the steps in the 
> following link:
> 
>
> 
> GNUstep Windows MSVC Toolchain
> https://github.com/gnustep/tools-windows-msvc
> I did the prerequisites steps,  and them executed the build.bat file and the 
> script did everything.
> 
> Bob
> 
>> On 7/24/2021 6:47 AM, Fred Kiefer wrote:
>> It looks like you are trying to build corebase. This has not been ported 
>> over to the new MSVC toolchain. Has base now no longer requires the pthread 
>> library, this seems to be missing in the link statement. Do you really need 
>> corebase? If so, you will have to add pthread as a dependency there.
>> 
>> Hope this helps,
>> Fred
>> 
>> On the road
>> 
>> Am 24.07.2021 um 11:13 schrieb Bob Plymale :
>> 
>>> I can get this far with the build, but errors out.
>>> 
>>> I guess, has anyone been able to get this to work on Windows?
>>> 
>>> 
>>> 
>>> I sure could use some assistance on getting this to work if possible.
>>> 1 warning generated.
>>>  Linking library libgnustep-corebase ...
>>> lld-link: error: undefined symbol: __declspec(dllimport) pthread_once
>>> >>> referenced by 
>>> >>> C:\Users\bplym\Desktop\tools-windows-msvc\src\gnustep-corebase\Source\CFRunLoop.c:436
>>> >>>   
>>> >>> obj/libgnustep-corebase.obj/CFRunLoop.c.o:(CFRunLoopGetCurrent)
>>> >>> referenced by 
>>> >>> C:\Users\bplym\Desktop\tools-windows-msvc\src\gnustep-corebase\Source\CFRunLoop.c:462
>>> >>>   
>>> >>> obj/libgnustep-corebase.obj/CFRunLoop.c.o:(CFRunLoopGetMain)
>>> 
>>> lld-link: error: undefined symbol: __declspec(dllimport) pthread_getspecific
>>> >>> referenced by 
>>> >>> C:\Users\bplym\Desktop\tools-windows-msvc\src\gnustep-corebase\Source\CFRunLoop.c:438
>>> >>>   
>>> >>> obj/libgnustep-corebase.obj/CFRunLoop.c.o:(CFRunLoopGetCurrent)
>>> 
>>> lld-link: error: undefined symbol: __declspec(dllimport) pthread_setspecific
>>> >>> referenced by 
>>> >>> C:\Users\bplym\Desktop\tools-windows-msvc\src\gnustep-corebase\Source\CFRunLoop.c:442
>>> >>>   
>>> >>> obj/libgnustep-corebase.obj/CFRunLoop.c.o:(CFRunLoopGetCurrent)
>>> 
>>> lld-link: error: undefined symbol: __declspec(dllimport) pthread_key_create
>>> >>> referenced by 
>>> >>> C:\Users\bplym\Desktop\tools-windows-msvc\src\gnustep-corebase\Source\CFRunLoop.c:424
>>> >>>   
>>> >>> obj/libgnustep-corebase.obj/CFRunLoop.c.o:(_CFRunLoopCreateThreadKey)
>>> clang: error: linker command failed with exit code 1 (use -v to see 
>>> invocation)
>>> make[4]: *** 
>>> [/c/GNUstep/x64/Debug/share/GNUstep/Makefiles/Instance/library.make:307: 
>>> obj/gnustep-corebase.lib] Error 1
>>> make[3]: *** 
>>> [/c/GNUstep/x64/Debug/share/GNUstep/Makefiles/Instance/library.make:292: 
>>> internal-library-all_] Error 2
>>> make[2]: *** 
>>> [/c/GNUstep/x64/Debug/share/GNUstep/Makefiles/Master/rules.make:297: 
>>> libgnustep-corebase.all.library.variables] Error 2
>>> make[1]: *** 
>>> [/c/GNUstep/x64/Debug/share/GNUstep/Makefiles/Master/library.make:37: 
>>> internal-all] Error 2
>>> make: *** 
>>> [/c/GNUstep/x64/Debug/share/GNUstep/Makefiles/Master/serial-subdirectories.make:53:
>>>  internal-all] Error 2
>>> Failed
>>> 
>>> c:\Users\bplym\Desktop\tools-windows-msvc>


Re: GNUstep Windows MSVC Toolchain Error

2021-07-24 Thread Fred Kiefer
It looks like you are trying to build corebase. This has not been ported over 
to the new MSVC toolchain. Has base now no longer requires the pthread library, 
this seems to be missing in the link statement. Do you really need corebase? If 
so, you will have to add pthread as a dependency there.

Hope this helps,
Fred

On the road

Am 24.07.2021 um 11:13 schrieb Bob Plymale :

> I can get this far with the build, but errors out.
> 
> I guess, has anyone been able to get this to work on Windows?
> 
> 
> 
> I sure could use some assistance on getting this to work if possible.
> 1 warning generated.
>  Linking library libgnustep-corebase ...
> lld-link: error: undefined symbol: __declspec(dllimport) pthread_once
> >>> referenced by 
> >>> C:\Users\bplym\Desktop\tools-windows-msvc\src\gnustep-corebase\Source\CFRunLoop.c:436
> >>>   
> >>> obj/libgnustep-corebase.obj/CFRunLoop.c.o:(CFRunLoopGetCurrent)
> >>> referenced by 
> >>> C:\Users\bplym\Desktop\tools-windows-msvc\src\gnustep-corebase\Source\CFRunLoop.c:462
> >>>   obj/libgnustep-corebase.obj/CFRunLoop.c.o:(CFRunLoopGetMain)
> 
> lld-link: error: undefined symbol: __declspec(dllimport) pthread_getspecific
> >>> referenced by 
> >>> C:\Users\bplym\Desktop\tools-windows-msvc\src\gnustep-corebase\Source\CFRunLoop.c:438
> >>>   
> >>> obj/libgnustep-corebase.obj/CFRunLoop.c.o:(CFRunLoopGetCurrent)
> 
> lld-link: error: undefined symbol: __declspec(dllimport) pthread_setspecific
> >>> referenced by 
> >>> C:\Users\bplym\Desktop\tools-windows-msvc\src\gnustep-corebase\Source\CFRunLoop.c:442
> >>>   
> >>> obj/libgnustep-corebase.obj/CFRunLoop.c.o:(CFRunLoopGetCurrent)
> 
> lld-link: error: undefined symbol: __declspec(dllimport) pthread_key_create
> >>> referenced by 
> >>> C:\Users\bplym\Desktop\tools-windows-msvc\src\gnustep-corebase\Source\CFRunLoop.c:424
> >>>   
> >>> obj/libgnustep-corebase.obj/CFRunLoop.c.o:(_CFRunLoopCreateThreadKey)
> clang: error: linker command failed with exit code 1 (use -v to see 
> invocation)
> make[4]: *** 
> [/c/GNUstep/x64/Debug/share/GNUstep/Makefiles/Instance/library.make:307: 
> obj/gnustep-corebase.lib] Error 1
> make[3]: *** 
> [/c/GNUstep/x64/Debug/share/GNUstep/Makefiles/Instance/library.make:292: 
> internal-library-all_] Error 2
> make[2]: *** 
> [/c/GNUstep/x64/Debug/share/GNUstep/Makefiles/Master/rules.make:297: 
> libgnustep-corebase.all.library.variables] Error 2
> make[1]: *** 
> [/c/GNUstep/x64/Debug/share/GNUstep/Makefiles/Master/library.make:37: 
> internal-all] Error 2
> make: *** 
> [/c/GNUstep/x64/Debug/share/GNUstep/Makefiles/Master/serial-subdirectories.make:53:
>  internal-all] Error 2
> Failed
> 
> c:\Users\bplym\Desktop\tools-windows-msvc>


My future GNUstep contribution

2021-07-16 Thread Fred Kiefer
Dear GNUsteppers,

as some of you may have noticed I was on a break from the project for
some time. This hiatus was caused by the way Greg reacted on the mail
from Johannes on RMS. Just to state the obvious, I think that Johannes
was wrong here, still he deserved a friendlier reply. I was not
surprised that Johannes choose to quit the project. The tone on the
GNUstep mailing lists, and sadly on many free software projects, is
often very unfriendly.
After this I needed some time to think about what my role in such a
project should be. Why would I subject myself to treatments in my spare
time that I would not accept in a payed position?
The result of all this thinking is that I still want to contribute to
this project, for which I have worked more than twenty years. But I will
scale down my involvement. I would like to give up on chores that I
never enjoyed and work on fun stuff like problem analysis and bug fixing.

There are three main jobs that I would like to pass on:
- Maintainership of GNUstep gui and back. Here it would be great if
somebody could at least take over the review of Greg's pull requests.
Somehow we are not able to sort out our communication and this results
in a rather frustrating experience for me.
- Package building on OSB
(https://build.opensuse.org/project/show/X11:GNUstep). Here an update to
the latest GNUstep release would be needed and there is a lot room for
further improvements.
- Coverity Scan for GNUstep base
(https://scan.coverity.com/projects/gnustep-base?tab=overview). I use a
docker image to create these metrics and at the beginning of the year I
wanted to improve on that script and even extend it to cover gui as
well. Now I would rather pass this on to somebody else.

If you are interested to take over one of these jobs, please contact me
directly. I will stay out of further mailing list discussion but will
still be around to help developers and users with their issues.

Cheers,
Fred



Re: wm compatibility

2021-07-12 Thread Fred Kiefer
Yes, GNUstep has a known issue with tiling window managers. At the moment I 
cannot remember the exact cause. It must be something about window sizing and 
placing. GNUstep expects to have full control of these and this is not the case 
for for tiling window managers. As tiling window managers haven’t been that 
popular the demand to look into this and finding a workaround hasn’t been huge. 
If you really need this feature I could explain to you how to get more debug 
information about what is going on and maybe you could suggest a solution or 
workaround based on that.

Hope this helps,
Fred  

> Am 11.07.2021 um 23:11 schrieb Alan Third :
> 
> Hi,
> 
> Does GNUstep have compatibility issues with tiling window managers
> like i3? I'm seeing some odd behaviour and I'm trying to trace it's
> origin without much success.
> 
> I'm trying to tidy up some Emacs code and I'm seeing very odd
> behaviour that I can't begin to explain. When I resize a window using
> the mouse it's frame struct doesn't seem to have the correct size. The
> window (usually) displays fine, it just causes problems when I later
> try to get the height of the window and use it.
> 
> Directly setting the frame fails too, usually complaining that a size
> of ~400x400 pixels has a negative width...
> -- 
> Alan Third
> 




Re: Swizzling Alloc

2021-05-31 Thread Fred Kiefer
Hi Gustavo,

if what you want to achieve is finding leaked objects then there is abetter way 
to do so. GNUstep already has a build in leak detection: GSDebugAllocationAdd. 
This registers all allocated objects per class in a table and with the function 
GSDebugAllocationListAll you get an NSString ready to print out, showing the 
current state of this table. Doing so multiple times in you application should 
show you which classes are leaking objects.

And if you actually have a gui application, things are even more simple. Just 
one the about dialog, clock on the displayed icon and you will get a window 
displaying the content of that table. Keep on refreshing and you will see which 
classes move up to the top.

Hope this helps,
Fred

> Am 30.05.2021 um 18:59 schrieb Gustavo Tavares :
> 
> Hi All,
> 
> So—I am trying to use swizzling for my first ever and my goal is to swizzle 
> `alloc`. Why? I want to run a unqiued counter of where my objects are 
> allocated by analyzing the call stack symbols. Sort of like Valgrind so that 
> I can see where my program is leaking data—but I figured since I don't know 
> how to parse Valgrind Objective-C might be an easier way to get something 
> very similar.
> 
> Unfortunately when I follow this guide to swizzle the methods—I am getting a 
> segmentation fault. 
> https://newrelic.com/blog/best-practices/right-way-to-swizzle
> 
> He basically tell me to do: 
>> 
>> id gtkDebugAlloc(id self, SEL cmd) {  } 
>> 
>> {
>>  Method nsObjectAllocMethod = class_getClassMethod([NSObject 
>> class], @selector(alloc));
>>  IMP orginalAlloc = 
>> method_setImplementation(nsObjectAllocMethod,(IMP)gtkDebugAlloc);
>> }
> 
> Instead of:
> 
>> @interface GTKDebugObject
>> @end
>> @implementation GTKDebugObject
>> +(id)alloc { id toReturn = [self 
>> allocWithZone:NSDefaultMallocZone()]; if (toReturn { ... } return toReturn;  
>> }
>> @end
>> 
>> {
>> 
>>  Method nsObjectAllocMethod = class_getClassMethod([NSObject 
>> class], @selector(alloc));
>>  Method gtkObjectAllocMethod = 
>> class_getClassMethod([GTKDebugObject class], @selector(alloc));
>>   method_exchangeImplementations(nsObjectAllocMethod, 
>> gtkObjectAllocMethod);
>> 
>>   }
> 
> 
> Both methods immediatley give me a segmentation fault when I run this.
> 
> Not really sure where to begin debugging this given it's my first time ever 
> swizzling something.
> 
> Another approaoch would be to have my own build of `Foundation`. I am 
> probably going to do that next—but this would be a much handier tool if I 
> didn't have to rebuild my system everytime I wanted to debug my mistakes. So 
> far, I don't really know how to tell GNUmake to use another version of 
> Foundation.
> 
> It seems like I can change my Foundation library for cross-compiling but not 
> the location of Foundation lookup. 
> 
>  . /usr/GNUstep/System/Library/Makefiles/GNUstep-reset.sh
>  export LIBRARY_COMBO=ng-gnu-gnu
>  . /usr/GNUstep/System/Library/Makefiles/GNUstep.sh
> 
> Ref: http://manpages.ubuntu.com/manpages/impish/man7/library-combo.7.html
> 
> Seeing also: http://www.gnustep.org/resources/documentation/make_1.html#SEC33
> 
> Would appreciate the help as I go off and bang my head on this. Might have a 
> very easy solution. 
> 
> Thank for any help in advance,
> 
> G




Re: Call to stop contributing

2021-03-27 Thread Fred Kiefer
According to Godwni's law (https://en.wikipedia.org/wiki/Godwin%27s_law) you 
have won. Could we stop this flamewar now?

And just to make this also public: I did reply in private to you on the 
original subject (GCC support for OBJC) long before any of the discussion 
started. I was stating the actual problems and even my original offer to help 
here. But I never did get any reply on that mail. You do not seem to be 
interested in supporting GNUstep or helping with our GCC issues. My impression 
here is that you just mailed on the GNUstep mailing list to start such a 
flamewar. Now that you won it, could you please just vanish again?

Fred

> Am 27.03.2021 um 19:35 schrieb Richard Stallman :
> 
> [[[ To any NSA and FBI agents reading my email: please consider]]]
> [[[ whether defending the US Constitution against all enemies, ]]]
> [[[ foreign or domestic, requires you to follow Snowden's example. ]]]
> 
> Most of the accusations in that letter are false.
> A few are true, but they are not very important.
> 
> Meanwhile, that message demonstrates the true nature
> of the cancellationist movement: an attempt to bully people
> into obeying its party line.
> 
> In a world in which Nazis, violent nationalists and violent
> bigots grow in power, it is bizarre that people focus on crushing
> someone like me.
> 
> In fact, I do not support abuse of women or children, but that issue
> has nothing to do with the FSF, GNU or GNUstep.
> 
> The FSF does, however, support basic human rights including freedom of
> thought and speech.  We who hold views on political issues should not
> try to censor views that we disagree with.
> 
> -- 
> Dr Richard Stallman
> Chief GNUisance of the GNU Project (https://gnu.org)
> Founder, Free Software Foundation (https://fsf.org)
> Internet Hall-of-Famer (https://internethalloffame.org)



Re: Problem with the GNUStep packages in FreebSD?

2021-03-20 Thread Fred Kiefer
Hi Edwin,

> Am 20.03.2021 um 10:01 schrieb Edwin Ancaer :
> 
> Sorry to keep bothering you for what is probably a mistake I made during the 
> upgrade of FreeBSD.  But I upgraded every installed port on the system, 
> causing endless hours and hours of recompilations and installations. and 
> reduced the linker errors in GNUMail and ProjectCenter (maybe  other gnustep 
> ports are involved, but I did not try them allyet) to 1. 
> 
> Can you give any indication where to look for a solution?  
> Linking ProjectCenter gives:
> 
> cc   -L/usr/local/lib -fstack-protector-strong  -rdynamic -rdynamic -rdynamic 
>  -rdynamic -fuse-ld= -pthread -fexceptions -fobjc-runtime=gnustep-2.0 
> -fblocks  -o ProjectCenter.app/./ProjectCenter \
> ./obj/ProjectCenter.obj/PCAppController.m.o 
> ./obj/ProjectCenter.obj/PCInfoController.m.o 
> ./obj/ProjectCenter.obj/PCMenuController.m.o 
> ./obj/ProjectCenter.obj/PCPrefController.m.o 
> ./obj/ProjectCenter.obj/ProjectCenter_main.m.o   
> -L./Framework/ProjectCenter.framework/.  
> -L./Framework/ProjectCenter.framework/.  
> -L./Framework/ProjectCenter.framework/.   
> -L./Framework/ProjectCenter.framework/.
> -L/usr/ports/devel/projectcenter/work/GNUstep/Library/Libraries 
> -L/usr/local/GNUstep/Local/Library/Libraries 
> -L/usr/local/GNUstep/System/Library/Libraries  -L/usr/local/lib 
> -lProjectCenter   -lgnustep-gui-lgnustep-base   -pthread -lobjc   -lm
> ld: error: ./Framework/ProjectCenter.framework/./libProjectCenter.so: 
> undefined reference to __objc_ivar_offset_NSView._tracking_rects.
> cc: error: linker command failed with exit code 1 (use -v to see invocation)
> 
> libProjectCenter.so seems to depend on the latest gnustep libraries:
> l
> $ ldd 
> /usr/ports/devel/projectcenter/work/ProjectCenter-0.6.2/Framework/ProjectCenter.framework/libProjectCenter.so
> /usr/ports/devel/projectcenter/work/ProjectCenter-0.6.2/Framework/ProjectCenter.framework/libProjectCenter.so:
> /usr/ports/devel/projectcenter/work/ProjectCenter-0.6.2/Framework/ProjectCenter.framework/libProjectCenter.so:
> libobjc.so.4.6 => /usr/local/lib/libobjc.so.4.6 (0x8006f)
> libgnustep-base.so.1.27 => 
> /usr/local/GNUstep/System/Library/Libraries/libgnustep-base.so.1.27 
> (0x800e0)
> libgnustep-gui.so.0.28 => 
> /usr/local/GNUstep/System/Library/Libraries/libgnustep-gui.so.0.28 
> (0x80140)
> libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x800725000)
> 
> The strange thing is, that symbol seems to be in the libgnustep-gui library: 
> 
> $ nm  /usr/local/GNUstep/System/Library/Libraries/libgnustep-gui.so.0.28 | 
> grep __objc_ivar_offset_NSView._tracking_rects
> 0049f61c d __objc_ivar_offset_NSView._tracking_rects.Wolfgang Lux 
> 
> $ 


for clang _tracking_rect is package private, so it should not be visible in 
ProjectCenter. This shouldn’t be an issue as the code using it was removed from 
ProjectCenter two years ago. But somehow the package you are using still seems 
to include that old code. Looks like we need a new release of ProjectCenter. 
Until that happens you are best off by using the code from git.

Hope this helps,
Fred


Re: Problem with icns file

2021-02-27 Thread Fred Kiefer


> Am 27.02.2021 um 00:04 schrieb Bertrand Dekoninck 
> :
> Le 26/02/2021 à 23:18, Fred Kiefer a écrit :
>> Just to understand the issue a bit better. Are you using libicns to read the 
>> icns file or is the fallback to the GNUstep implementation used? The later 
>> implementation is rather limited and won’t be able to handle your added 
>> formats.
>> 
>> And why didn’t you add a 48x48 version?
> 
> To be clearer : I add for each app a resource folder in 
> Sombre.theme/Resources. Here, I add Sombre.theme/Resources/org.gap.InnerSpace.
> 
> And I place the custom icon inside. It must be named as is named the appicon 
> in InnerSpace plist file : InnerSpace_Icon.icns.
> 
> I tried to replace it with a 48x48 InnerSpace_Icon.tiff but it didn't work. 
> Should it work ? If so, I must have missed something and should retry. I 
> remember to have replaced tiff files with png files in rik.theme long ago.

Using a different type should be possible but only one file (with the same base 
name) at the time would be allowed. But I was asking why you didn’t use 48x48 
inside of the icns file.

> So to answer your question, I don't think I use libicns, unless GWorkspace 
> uses it to read icns files. But I don't see this library in its dependancies.

The libicns would be used directly by GWorkspace. It gets used by GNUstep gun, 
if present and if not we fall back to the local implementation in GNUstep gui. 
In the meantime I checked the libicns source code and they do support more 
formats than our code, but not the @2 and also not the PNG subtype you are 
using.


> I would like to be able to reproduce the same sizes as Greg in my icns file, 
> but I don't know how. If I don't generate the missing @2x files with my 
> conversion script, iconutil complains about them and fail on osX ElCapitan. I 
> tried my conversion script on osX Leopard, but it misses the iconutil tool.

Having more formats in the file won’t do any harm. All the supported formats 
will get ignored.




Re: Problem with icns file

2021-02-26 Thread Fred Kiefer
Just to understand the issue a bit better. Are you using libicns to read the 
icns file or is the fallback to the GNUstep implementation used? The later 
implementation is rather limited and won’t be able to handle your added formats.

And why didn’t you add a 48x48 version?

Cheers,
Fred

> Am 26.02.2021 um 20:21 schrieb Bertrand Dekoninck :
> 
> Hi everyone !
> 
> I'm working on theming icons again and ma facing a problem with InnerSpace 
> icns icon. This is the first icns ifle I've encountered in gnustep 
> applications resources folder.
> 
> I've created a custom SVG icon for it, which I've converted to 1024x1024 png.
> 
> I don't now how Gregory did generate its original InnerSpace_Icon.icns file.
> 
> I didn't find any linux tool to convert it to icns file and only found a 
> little script on the web using apple's sips and iconutil tools.
> 
> The problem is that the resulting icon doesn't display properly at 48x48 size 
> in GWorkspace. At this size, the icon displayed is in fact the 32x32 one and 
> is smaller than all the others. I think GNUstep and/or GWorkspace don't 
> display correctly high res icns file at this size.
> 
> I can see on Macos Preview differences between my icns and Greg's one :
> 
> Greg's contains 16x16, 32x32, 128x128, 256x256, 512x512 at 72 ppm sizes, plus 
> a 512x512@2x (1024x1024 at 144 bpm).
> 
> Mine contains the same plus 16x16@2x, 32x32@2x, 128x128@2x, 256x256@2x.
> 
> I attach the script used to generate the icon and the icon itself to this 
> mail.
> 
> Can someone help me figure out how to override this problem ?
> 
> 
> Last question : Gworkspace seems to display  icons better at 64x64 if it's an 
> icns file than a 48x48 tiff file. Should I increase the size of my icons ? 
> Would it be possible to implement bigger sizes in GWorkspace (128 ? 256 ?) 
> using bigger tiff files or this format containing multiple files? GWorkspace 
> is a little poor looking compared to other filemanagers and desktop  in this 
> area.
> 
> Cheers,
> 
> Bertrand
> 
> 
> 




Re: Dr. Brad Cox, co-creator of Objective-C

2021-01-23 Thread Fred Kiefer
Thank you Josh for sharing this. I remember fondly reading Brad Cox's book 
while i was still at University. The concept of Soft-ICs, reusable software 
components, won me over for Objective-C. So even a long time before starting to 
contributing to GNUstep  I learned and liked the language.
Thank you Brad for giving it to us!

Fred

> Am 23.01.2021 um 21:38 schrieb Josh Freeman :
> 
>   Dr. Brad Cox, who co-created the Objective-C language with business partner 
> Tom Love, has passed:
> https://www.legacy.com/us/obituaries/scnow/name/brad-cox-obituary?pid=197454225
> 
>   If you'd like to read about Objective-C's early history, Dr. Cox co-wrote 
> an article last year, titled, "The origins of Objective-C at PPI/Stepstone 
> and its evolution at NeXT":
> https://dl.acm.org/doi/10.1145/3386332  (Free online eReader, PDF download)
> 
> 




Re: GNUstep.app, was: Debian Package Repository...

2021-01-18 Thread Fred Kiefer
Great website! There is one typo on the IDE page ("Different approaches für 
building cross platform GUI“) :-)

And you should add PikoPixel to your list of apps.

Cheers,
Fred

> Am 18.01.2021 um 16:56 schrieb Johannes Brakensiek :
> 
> Hello everyone,
> 
> On 15 Dec 2020, at 21:28, Johannes Brakensiek wrote:
> 
>> In the meantime I installed Arch/Manjaro on my development laptop as you are 
>> provided with much more recent packages when using a rolling release. And 
>> the Arch PKGBUILD system is quite easy to set up, so I've created some Arch 
>> packages using clang and libobjc2. These are compiled from git sources and 
>> thus provide some sort of continous delivery for development purposes:
>> 
>> https://build.opensuse.org/project/show/home:letterus:gnustep-ngr
>> 
>> That said I'd happily provide information on how to retrigger builds for the 
>> app/project you maintain to deliver a fresh build if you wish.
>> 
>> One would have to add, that openSUSE's Open Build Service currently only 
>> provides x86_64 packages for Arch PKGBUILD files.
>> 
>> This is not the case for Debian and RPM spec files. So I would of course add 
>> packaging instructions for additional distributions and architectures in 
>> case anybody would like to provide these.
> 
>> P.S.: For Manjaro users (I really like it); Add a panel to the top of the 
>> screen, add a global menu there and set GNUstep to use the Sombre.theme from 
>> Bertrand Dekoninck. From a optical point of view it integrates nicely, I 
>> think.
> 
> just to let you know. I used the time after Christmas to prepare a little 
> showcase on how to develop GNUstep apps when coming from macOS/Cocoa (these 
> apps using AppKit) and how to integrate these into a popular desktop 
> environment (because I think that’s what new devs would be interested in):
> 
> https://gnustep.app/
> 
> It was a nice experience to put together some bits and pieces I learned and 
> explored the last year.
> 
> Hope you enjoy as well
> Johannes
> 




Re: Bug in [NSScanner scanDouble:]

2020-12-29 Thread Fred Kiefer
Looks like the code of GSScanDouble and [NSScanner scanDouble:] differ a lot. 
Both are in the file NSScanner.m and it looks like the function has been 
corrected over the years to handle different cases a lot better. The NSScanner 
code is just a straight forward number scanning as you would expect.

The easiest solution would be to reuse GSScanDouble by scanning in a buffer all 
the characters for the double value and calling the function on that value 
(handling _decimal by replacing it with a dot). But somehow this feels like the 
wrong way around. The code in NSScanner should have the correct implementation 
and GSScanDouble should  just call that. This solution would require to 
allocate and free an NSScanner object, and I am pretty sure that Richard 
wouldn’t like the extra time spend on that. I rather leave it to him to decide 
which way to go.

Fred

> Am 28.12.2020 um 23:27 schrieb Douglas Simons 
> :
> 
> Hi, sorry for posting a bug report here, but I seem to have lost my 
> credentials for accessing the bug tracker.
> 
> The scanDouble: method of NSScanner is adding a tiny fraction to the value 
> scanned (at least on Windows).
> 
> NSScanner *scanner = [NSScanner scannerWithString:@“197319600.00”];
> double val = 0.0;
> [scanner scanDouble:];
> NSLog(@"scanDouble got: %.9f", val);
> // results in val having the value 197319600.0012
> 
> Note that NSString’s doubleValue method doesn’t have this problem, so I’m 
> using that to work around this problem for now.
> 
> Thanks!
> 
> Doug




Re: What function sets up the GNUstep environment?

2020-11-03 Thread Fred Kiefer
Not sure, whether we are all looking for the same thing here. The question is 
which of the gui functionality would your server application use?

Greg is asking for Postscript output. We already have a very primitive way for 
that in the gsc classes so something would be there already. But for a better 
quality and for example PDF output we should rather use cairo. So if there is 
the need for real functionality from the backend we could use cairo just with 
the image surface drawing, that is without any X11 references. But for that you 
would have to build your own version of that library.

Similar things for fonts, if you want to use fonts in a meaningful way you will 
have to rely on a library.

The no-op backed that I was talking about would be simple to implement, but 
also quite useless. The more functionality you expect here, the more complex it 
will get.

Fred



> Am 03.11.2020 um 21:52 schrieb Gustavo Tavares :
> 
> 
> This is exactly what I need and was looking at doing just that. I did some 
> no-op classes but I have very little experience with there system to do so 
> immediately.
> 
> It doesn’t look like a lot of files but I might be wrong. There are a lot of 
> subtle interactions that I have already bumped into.
> 
> For example, right now, I’m still working through the call to +[NSProcessInfo 
> initalizeWithArguments:count:environment:] (I think I have the name right but 
> I didn’t look it up on my phone.
> 
> Calling this didn’t solve my problem immediately.
> 
> As for testing it’s pretty wonderful. I already have some tests running by 
> enclosing them in a framework (Marcel WeiHer does this in MPWTest)
> 
> The use case as a server backend is compelling too because you can save and 
> interact with User preferences for Font, Color, Theme, etc on the backend 
> just as you would on a frontend.
> 
> 
> On Tue, Nov 3, 2020, at 4:19 PM, Gregory Casamento wrote:
>> This is a really interesting notion.   Would the no-op backend (I think we 
>> need a better name) be able to print, or output postscript?  Would it be 
>> possible to use it for testing GUI in some way?
>> 
>> GC
>> 
>> 
>> On Tue, Nov 3, 2020 at 12:06 PM Fred Kiefer  wrote:
>> Your problem got me thinking. Would it help you if we offered a „no-op“ 
>> backend for GNUstep? That is a backend where both the window and the drawing 
>> system would be implemented as no-operations.
>> 
>> We could try to get this done as a special GNUstep back configuration. Most 
>> likely we could cheat here by reusing the gsc classes as a real drawing 
>> backend, which of course would not draw but raise subclassResponsibility:. 
>> That means we only need code for the window/event part and a lot of 
>> configuration to switch all the extra libraries off.
>> 
>> Cheers,
>> Fred 
>> 




Re: What function sets up the GNUstep environment?

2020-11-03 Thread Fred Kiefer
Your problem got me thinking. Would it help you if we offered a „no-op“ backend 
for GNUstep? That is a backend where both the window and the drawing system 
would be implemented as no-operations.

We could try to get this done as a special GNUstep back configuration. Most 
likely we could cheat here by reusing the gsc classes as a real drawing 
backend, which of course would not draw but raise subclassResponsibility:. That 
means we only need code for the window/event part and a lot of configuration to 
switch all the extra libraries off.

Cheers,
Fred 


> Am 03.11.2020 um 16:02 schrieb Gustavo Tavares :
> 
> Thank you! This is great.
> 
> I think I'm going to make some sort of subclass—NSCommandLineApplication.
> 
> I did implement some of the backend classes in a -doNothingMethod { ; } 
> style: GSFontInfo / GSFontEnumerator.
> 
> Previously I just tried running X11 and calling it a day—but that didn't 
> work. So goes the rabbit hole...
> 
> Looks like it will be fun though. Just gotta love Objective-C :)
> 
> Gustabo
> 
> 
> On Mon, Nov 2, 2020, at 11:20 PM, Ivan Vučica wrote:
>> Based on 
>> https://github.com/gnustep/libs-base/blob/3752016/Source/NSProcessInfo.m#L140-L154,
>>  this comes from 
>> https://github.com/gnustep/libs-base/blob/3752016/Source/NSProcessInfo.m#L919
>>  or 
>> https://github.com/gnustep/libs-base/blob/3752016/Source/NSProcessInfo.m#L1021.
>>  
>> If these were GUI apps, I’d recommend calling NSApplicationMain which takes 
>> argc and argv and sorts this out for you – in fact, that’s ideally exactly 
>> what you should do if you’re using any GUI methods.  You’re saying you’re 
>> using certain GUI classes on the server; if you believe they will actually 
>> behave correctly in a server environment without gnustep-back (not a given; 
>> hypothetically, NSColor could heavily depend on Opal’s CGColorRef), you may 
>> be able to call NSProcessInfo +initializeWithArguments:..., too.
>>  
>> Otherwise study 
>> https://github.com/gnustep/libs-gui/blob/0ccdb278d4cc8ad60f033892a5105e0532261838/Source/Functions.m#L63
>>  carefully, but don’t be surprised if lack of x11 breaks GUI classes. You 
>> break it (into pieces), you get to pick up those pieces and glue them 
>> together :)
>>  
>> (Yes, I noticed you said you went ahead and removed some backend-dependent 
>> code. This sounds like it’ll be a lot of fun…)
>>  
>> Ivan Vučica
>>  
>> From: Gustavo Tavares
>> Sent: Tuesday 3 November 2020 02:13
>> To: GNUstep Discuss
>> Subject: What function sets up the GNUstep environment?
>> 
>>  
>> Hi!
>>  
>> Was wondering what function sets up a GNUstep environemtnt?
>>  
>> Getting this error:
>>  
>> GNUSTEP Internal Error:
>> The private GNUstep function to establish the argv and environment
>> variables was not called.
>>  
>> Mismatched library versions between GNUstep Foundation (base) and AppKit
>> (gui) is most often the cause of this message. Please be sure you
>> are using known compatible versions and not a mismatched set. Generally,
>> we recommend you use versions of base and gui which were released together.
>>  
>> For more detailed assistance, please report the error to bug-gnus...@gnu.org.
>>  
>> ---
>>  
>> For context—I built a seperate framework that extracts some "GUI" classes 
>> with the intention to use them semantically on a server. (Such as NSImage, 
>> NSColor, NSFont...)
>> I already went through the business of overriding / deleting some of the 
>> backend functions so that the classes would be "initalized" and wouldn't 
>> need to be rendered to screen.
>>  
>> Stuck here. 
>> 
>> Where should I look?
>> 
>>  
>> Thank you,
>> G




Re: NSMenuItem setAttributedTitle

2020-10-23 Thread Fred Kiefer
Am 19.10.20 um 20:21 schrieb Aaron Carr:
> Hi
>
> Ive been  trying to change the font of an NSMenuItem, looking at the source, 
> setAttributedTitle is:
>
> -(void) setAttributedTitle: (NSAttributedString *)title
> {
>   // FIXME
>   [self setTitle: [title string]];
> }
>
> Am i reading this right, is it essentially bypassed ? if so, what is the best 
> way to say bold/italic/underline an NSMenuItem ?

Currently there is no proper way of doing so. You would need to grap
hold of the corresponding NSMenuItemCell and set the font there
directly. But you really shouldn't go down that way. Instead it would
not be to hard to implement attributed string support in NSMenuItem and
NSMenuItemCell, at least for the standard theme. Ivan already explained
the limits of doing this for other setups.

The main obstacle here is that the current code here needs a cleanup, or
rather a proper rewrite. There are many duplications and
inconsistencies. For example the alternate text of the menu item cell
would never be displayed.

Patches are highly welcome,
Fred





Re: NSTableView bug fix

2020-10-19 Thread Fred Kiefer
Hi Andreas,

thank you for this patch. I already committed it, this was well spotted.

There is another issue though. As I already wrote you, I never get the mails 
that you send to this mailing list. And this was also the case for these two 
mails, without Gregory replying, the whole issue would have passed unnoticed by 
me. I checked all the spam folders that I am aware of and none contained your 
mails. I really don’t have an idea where they get filtered. Please add me 
directly as recipient to your mails to the mailing list when you think that a 
mail should be addressed by me.

Cheers,
Fred

> Am 17.10.2020 um 13:18 schrieb Gregory Casamento :
> 
> 
> Andreas,
> 
> For future reference, it is usually best to clone the repository and create a 
> branch, then create a PR for consideration by the maintainer of that repo, in 
> this case, Fred Kiefer.  This is not a hard and fast rule, but it allows us 
> to keep all contributions tracked in one place.
> 
> Your change looks okay to me, but Fred has primary responsibility for 
> libs-gui, so I defer to his judgment.
> 
> Yours, GC
> 
> On Sat, Oct 17, 2020 at 5:22 AM Andreas Höschler via Discussion list for the 
> GNUstep programming environment  wrote:
> Hi all,
> 
> I sent the below fix to the group a while ago. Has this already been 
> integrated into the repository (by someone with write privileges)? I haven't 
> seen any feedback on this and just want to make sure it does not get lost. 
> 
> Thanks,
> 
>  Andreas
> 
> ***
> 
> 
> > On 11 Oct 2020, at 19:54, Andreas Höschler via Discussion list for the 
> > GNUstep programming environment  wrote:
> > 
> > Hi Fred,
> > 
> > I just hunted down a bug in NSTableView. A test app would be an application 
> > with a tableview with a couple of columns with formatters. Entering data 
> > stops working once a cell with a formatter was hit. This is due to
> > 
> > NSTableView.m - (void) validateEditing
> > 
> > existing without setting _isValidating back to NO.
> > 
> > The following fix (see the line marked with  // <---) does the trick. 
> > Could anyone please integrate this fix into the repository? :-)
> > 
> > Thanks a lot,
> > 
> > Andreas
> > 
> > ***
> > 
> > - (void) validateEditing
> > {
> >   if (_textObject && (_isValidating == NO))
> > {
> >  NSFormatter *formatter;
> >  NSString *string;
> >  id newObjectValue = nil;
> >  BOOL validatedOK = YES;
> > 
> >  // Avoid potential recursive sequences...
> >  _isValidating = YES;
> > 
> >  formatter = [_editedCell formatter];
> >  string = AUTORELEASE([[_textObject text] copy]);
> > 
> >  if (formatter != nil)
> >{
> > NSString *error;
> > 
> > if ([formatter getObjectValue:  forString: string 
> > errorDescription: ] == YES)
> >   {
> >[_editedCell setObjectValue: newObjectValue];
> > 
> >if (_dataSource_editable)
> >  {
> >   NSTableColumn *tb;
> > 
> >   tb = [_tableColumns objectAtIndex: _editedColumn];
> > 
> >   [self _setObjectValue: newObjectValue
> >   forTableColumn: tb
> >   row: _editedRow];
> >  }
> >_isValidating = NO; return; // <---
> >   }
> > else
> >   {
> >SEL sel = 
> > @selector(control:didFailToFormatString:errorDescription:);
> > 
> >if ([_delegate respondsToSelector: sel])
> >  {
> >   validatedOK = [_delegate control: self 
> >   didFailToFormatString: string 
> >   errorDescription: error];
> >  }
> >// Allow an empty string to fall through
> >else if (![string isEqualToString: @""])
> >  {
> >   validatedOK = NO;
> >  }
> >   }
> >}
> > 
> >  if (validatedOK)
> >{
> > [_editedCell setStringValue: string];
> > 
> > if (_dataSource_editable)
> >   {
> >NSTableColumn *tb;
> > 
> >tb = [_tableColumns objectAtIndex: _editedColumn];
> > 
> >[self _setObjectValue: string forTableColumn: tb row: 
> > _editedRow];
> >   }
> >}
> > 
> >  // Avoid potential recursive sequences...
> >  _isValidating = NO;
> > }
> > }
> > 
> > 
> 
> 
> 
> 
> 
> -- 
> Gregory Casamento
> GNUstep Lead Developer / OLC, Principal Consultant
> http://www.gnustep.org - http://heronsperch.blogspot.com
> https://www.patreon.com/bePatron?u=352392 - Become a Patron
> https://gf.me/u/x8m3sx - My GNUstep GoFundMe
> https://teespring.com/stores/gnustep - Store
> 




Re: A window manager written in objective-c: uroswm and gnustep support problems

2020-09-14 Thread Fred Kiefer
HI Alex,

even after reading your Github column, I still don’t quite understand the issue.

It might help you to know that all other window managers I am aware of don’t 
support the EWMH feature _NET_REQUEST_FRAME_EXTENTS, or at least none did when 
we implemented this feature. So this code path is lesser used in GNustep and 
there might be undetected issues with it. Maybe it would be best wo disable 
this feature in your window manager for now and to try to get the rest working 
first?


As for the configure event you should run the GNUstep application with the 
option „—GNU-Debug=NSEvent“ to see more information about event handling.
And did you see this comment in the GNUstep code:


  /*
According to the ICCCM, coordinates in synthetic events
(ie. non-zero send_event) are in root space, while coordinates
in real events are in the parent window's space. The parent
window might be some window manager window, so we can't
directly use those coordinates.
Thus, if the event is real, we use XTranslateCoordinates to
get the root space coordinates.
*/

This might be the reason why your events get handled incorrectly by the GNUstep 
code? But this is only guessing and won’t help. Without more data I won’t be 
able to help you.

Cheers,
Fred

> Am 14.09.2020 um 19:37 schrieb Alessandro Sangiuliano :
> 
> Hello guys, I'm still here with this problem. It is going to be tricky.
> 
> This time I have more informations;
> 
> I started to use the github projects and columns feature so I can clean ideas 
> in my mind and put all toghether.
> 
> At this column called GNUstep support
> 
> https://github.com/AlessandroSangiuliano/XcbKit/projects/2#column-10827552
> 
> i wrote in a better way the problem, but with some additional informations 
> about is going to happen after a debbugging session.
> 
> I noticed that the map just works, the client window of a GNUStep is mapped 
> where I want to be apped inside the frame window at coordinates (0, 21).
> 
> The problem happens after the map request event, in the configure window 
> request event. In the coulmn is well described.
> 
> Do you think that resetting the W;_NORMAL_HINTS of the client window will fix 
> the problem?
> 
> I don't see how to fix the offset calculation that GNUStep does.
> 
> I tried to run GNUStep Apps with window managers that are going to be really 
> poor in ICCCM and EWMH support; I tried with twm and echinus ( a dwm fork); 
> With these GNUstep Apps are positioned inside the frame in the correct way 
> (echinus is a reparenting wm).
> 
> The source code of echinus is really few lines of code, I give it a flash 
> lookm it doesn't seem that play so much with offset or whethever. I'm just 
> failing something.
> 
> GNUStep Apps are working quite well also with awesome wm, I wm that i studied 
> to get some knowledge about xcb. The have totally no support for 
> _NET_REQUEST_FRAME_EXTENTS, while they update the _NET_FRAME_EXTENTS to the 
> window. 
> 
> I do that too, putting  the array as {3,3,21,3}. These values actually are my 
> borders + the title bar window (21 in height).
> 
> I also tried to use xprop on SystemPreferences running on my desktopn 
> environment, XFCE on Manjaro, the _NET_FRAME_EXTENTS are set to {2,2,28,2}. 
> 28 is the height of the title bar window, indeed is slighty heghter than mine.
> 
> Thank you.
> 
> 
> Cheers,
> Alex.




Re: A window manager written in objective-c: uroswm and gnustep support problems

2020-08-23 Thread Fred Kiefer
Hi Alessandor,

from looking at your image I would expect that the GNUstep application, in this 
case System preferences, is expecting the wrong offset from the window manager. 
Here it would help to see which values get displayed when the first GNUstep 
application for your window manager starts up. At that time we try to determine 
how big the window borders are going to be and these values will be used later 
on to compute the internal offset for all GNUstep windows.

Hope this helps,
Fred

> Am 18.08.2020 um 18:21 schrieb Alessandro Sangiuliano :
> 
> Hello everyone, is a lot I'm not writing here due of the work i was doing I 
> had no time to code with gnustep, however now I'm back and some months ago I 
> took again my project, the window manager.
> 
> To be honest, I'm writing a kit to code window managers, XCBKit and as the 
> name says it is on top of xcb. I was insipred by the étolié XCBKit for some 
> things, but it works in a different way. However my XCBKit will have some 
> usefull code from the étoilé one escpecially the composite support, but is 
> actually really soon talking about compositing.
> 
> Actually the status of the kit + the window manager uroswm, is good but a lot 
> of work is needed. Indeed the version is 0.0.10. 
> 
> Fred helped me privately when something was not clear, the code was too young 
> and really bad to start to talk here. Actually is a bit better but still bad 
> (well not really bad, is a progress!).
> 
> The wm is able to handle gtk application in a good way, I can frame them 
> iconify them, moving resizing, closing via WM_DELETE_WINDOW etc etc.
> 
> The wm is going to be, slowly, EWMH compliant and ICCCM too where needed.
> 
> I started to write it on my old mac laptop with 10.9.5 and XCode 5, as Fred 
> saw time ago in a video I shared with him. When I reached some goals I had to 
> complete, I started the linux port on gnustep and this was really great 
> because I HAD TO CHANGE NO LINES OF CODE!
> 
> I literally had just to write the GNUmakefile start the build and all was 
> built and working, in less than 1 hour I had the port complete, so 
> CONGRATULATIONS to all GNUstep developers and contribs. I remeber some year 
> ago when I started with GNUstep porting simple apps form OSX to GNUstep 
> needed some code changes and I was expecting te same for uroswm.
> 
> So, it's time to talk about some problems I'm having to get a god support for 
> gnustep apps. 
> 
> Actually when I reparent a gnustep app in my frame the position is not what 
> I'm expecting, in the zip archive I attached you can see what I mean.
> As you can see I have no problems with the calculator and google chrome, 
> while for SystemPreferences (and other gnustep apps) I ever get the app on 
> the shifted on the right or right-bottom.
> 
> I'm pretty sure I'm not supporting some EWMH/ICCCM standard that gnustep is 
> using or asking to the window manager. For what I saw gnustep is strongly 
> supporting these stadards.
> 
> Do you have some ideas about this?
> 
> 
> 
> The branch you should look and where the developing is going is:
> 
> https://github.com/AlessandroSangiuliano/XcbKit/tree/feature/gnustep_support
> 
> Where map requests are handled:
> 
> https://github.com/AlessandroSangiuliano/XcbKit/blob/feature/gnustep_support/XCBKit/XCBConnection.m#L444
> 
> 
> Where client messages are handled:
> 
> https://github.com/AlessandroSangiuliano/XcbKit/blob/feature/gnustep_support/XCBKit/XCBConnection.m#L895
> 
> 
> Where the support for EWMH is going to be implemented:
> 
> https://github.com/AlessandroSangiuliano/XcbKit/blob/master/XCBKit/services/EWMHService.m
> 
> Same for ICCCM:
> 
> https://github.com/AlessandroSangiuliano/XcbKit/blob/master/XCBKit/services/ICCCMService.m
> 
> 
> 




Re: Buildtool : other attempt to build a ported app : the Bean.app example

2020-07-10 Thread Fred Kiefer
Hi Patrick,

all the three test that fail for you seem to be internet related. Is it 
possible that form the machine where these tests are run no external network 
connection is possible? If this is that case please ignore the failing tests.

Fred

> Am 10.07.2020 um 16:31 schrieb Patrick Cardona :
> On 2020-07-10 15:59:20 +0200 Fred Kiefer  wrote:
> 
>>> Am 10.07.2020 um 15:25 schrieb Patrick Cardona via Discussion list for the 
>>> GNUstep programming environment :
>>> Just a thing I noted : if you run 'make test' with the new gnustep-base, 
>>> some tests are failing. It might be something RFM could look at too.
>> Patrick, if you have failing tests for GNUstep base you should report these. 
>> Nobody else knows which tests are failing for you nor why this is the case. 
>> We are using Travis on GitHub and there all tests for base seem to pass. 
>> Please report back the failing test and be sure to include the test.log file 
>> with the details for these test.
> 
> Here is a brief :
> (...)
> base/GSXML/basci.m:184
> 
> Failed test: basic.m:184 ... empty plist is not valid
> 2020-07-10 10:54:58.406 basic[10942:10942] unable to find GNUstep DTD - 
> 'plist-$at line: 1 column: 95 ... failed to load HTTP resource
> (...)
> base/NSException/basic:404
> We expect a single FAIL without any explanation as
> the test is terminated by an uncaught exception ...
> /usr/GNUstep/System/Tools/gnustep-tests : ligne 404 : 18483 Abandon   
>   $RUN_CMD
> Completed file:  basic.m
> 
> I join the log and the sum files too.




Re: Buildtool : other attempt to build a ported app : the Bean.app example

2020-07-10 Thread Fred Kiefer



> Am 10.07.2020 um 15:25 schrieb Patrick Cardona via Discussion list for the 
> GNUstep programming environment :
> 
> Just a thing I noted : if you run 'make test' with the new gnustep-base, some 
> tests are failing. It might be something RFM could look at too.


Patrick, if you have failing tests for GNUstep base you should report these. 
Nobody else knows which tests are failing for you nor why this is the case. We 
are using Travis on GitHub and there all tests for base seem to pass. Please 
report back the failing test and be sure to include the test.log file with the 
details for these test.

Fred


Re: FYI: Advancements in the Objective-C runtime

2020-06-28 Thread Fred Kiefer
Thank you Lars, that was a very interesting presentation. And Ben is a lot more 
pleasant than Chris was.

> Am 28.06.2020 um 03:15 schrieb lars.sonchocky-helld...@hamburg.de:
> 
> Some pretty neat things in here:
> 
> https://developer.apple.com/videos/play/wwdc2020/10163/
> 
> this is the WWDC 2020 Talk "Advancements in the Objective-C runtime“, Ben 
> Cohen, who also works on the Swift Project, talks about some new things 
> inside the ObjC runtime of Apple. Some of those „tricks“ I consider pretty 
> nifty
> 
> This might be especially interesting for David, as an inspiration for the 
> GNUstep ObjC runtime.
> 
> 
> regards,
> 
>   Lars
> 




Re: HelpViewer 0.3 : error while linking

2020-06-17 Thread Fred Kiefer



> Am 17.06.2020 um 19:36 schrieb Patrick Cardona via Discussion list for the 
> GNUstep programming environment :
> 
> Hi All,
> 
> I am trying to compile HelpViewer (version : 0.3).
> 
> First, I had to change some header calls, because GSXML.h vas presumed to be 
> in 'Foundation' while it was in GNUstepBase.
> I modified accordingly to the right path TextFormatterXLP.h, line 35
> and HandlerStructureXLP.h to set the correct path I guessed :
> #include "GNUstepBase/GSXML.h"
> 
> But finally, I got an error with the linker :
> 
> Linking app HelpViewer ...
> mainWindowController.m:0 : erreur : référence à « ASSIGN » non définie
> mainWindowController.m:0 : erreur : référence à « RELEASE » non définie
> mainWindowController.m:0 : erreur : référence à « RELEASE » non définie
> mainWindowController.m:0 : erreur : référence à « RELEASE » non définie
> clang: error: linker command failed with exit code 1 (use -v to see 
> invocation)
> make[3]: *** 
> [/usr/GNUstep/System/Library/Makefiles/Instance/application.make:133: 
> HelpViewer.app/./HelpViewer] Error 1
> make[2]: *** 
> [/usr/GNUstep/System/Library/Makefiles/Instance/application.make:147: 
> internal-app-run-compile-submake] Error 2
> make[1]: *** [/usr/GNUstep/System/Library/Makefiles/Master/rules.make:297: 
> HelpViewer.all.app.variables] Error 2
> make: *** [/usr/GNUstep/System/Library/Makefiles/Master/application.make:38: 
> internal-all] Error 2

This just means that the file is missing an import for GNUstep.h


Re: fallback fonts? remote display - xlib

2020-06-17 Thread Fred Kiefer



> Am 16.06.2020 um 18:54 schrieb Riccardo Mottola :
> 
> I launch an app on my Raspberry with xlib and remote display.
> 
> 2020-06-16 10:40:33.831 ProjectCenter[29598:29598] No font cache available - 
> building new one - this may take several seconds (or minutes on a slow 
> machine with lots of fonts)
> 2020-06-16 10:40:33.834 ProjectCenter[29598:29598] Running 
> /GNUstep/System/Tools/font_cacher
> 2020-06-16 10:42:03.487 ProjectCenter[29598:29598] XGFont: selected font: 
> Helvetica at 12.00 ((null)) is not available.
> 2020-06-16 10:42:03.488 ProjectCenter[29598:29598] The font specified for 
> NSFont, Helvetica, can't be found.
> 2020-06-16 10:42:03.488 ProjectCenter[29598:29598] XGFont: selected font: 
> Helvetica at 12.00 ((null)) is not available.
> 2020-06-16 10:42:03.489 ProjectCenter[29598:29598] XGFont: selected font: 
> Helvetica at 12.00 ((null)) is not available.
> 2020-06-16 10:42:03.489 ProjectCenter[29598:29598] XGFont: selected font: 
> Helvetica at 12.00 ((null)) is not available.
> 2020-06-16 10:42:03.490 ProjectCenter[29598:29598] XGFont: selected font: 
> Courier at 12.00 ((null)) is not available.
> 2020-06-16 10:42:03.491 ProjectCenter[29598:29598] XGFont: selected font: 
> Fixed at 12.00 ((null)) is not available.
> 
> <<...>>
> 
> 2020-06-16 10:42:04.267 ProjectCenter[29598:29598] NSFont.m:1513 Assertion 
> failed in GSCInlineString(instance), method initWithCoder:. Couldn't find a 
> valid font when decoding.
> 2020-06-16 10:42:04.270 ProjectCenter[29598:29598] Exception occurred while 
> loading model: NSFont.m:1513  Assertion failed in GSCInlineString(instance), 
> method initWithCoder:.  Couldn't find a valid font when decoding.
> 2020-06-16 10:42:04.272 ProjectCenter[29598:29598] Failed to load Gorm
> 
> <<...>>
> 
> 2020-06-16 10:42:04.342 ProjectCenter[29598:29598] XGFont: selected font: 
> Fixed at 12.00 ((null)) is not available.
> Segmentation fault
> 
> now.. I wonder why? I launched "xfontsel" on the raspberry.
> Am I right to assume that the fonts seen there are the one availbale to the 
> backend too?
> 
> I see Helvetica, e.g.:
> 
> -*-helvetica-*-r-*-*-12-*-*-*-*-*-*-*
> 
> -*-courier-*-r-*-*-12-*-*-*-*-*-*-*
> 
> what am I missing?


Have a look into the font cache file to see which fonts are detected. maybe you 
should delete that file and have it recreated.
As you know the xlib backend is no longer supported especially not the XGFont 
class. You should check, why no better font support is found.


Re: Fresh install - issues with missing GNUstep/Library

2020-06-17 Thread Fred Kiefer



> Am 16.06.2020 um 12:44 schrieb Riccardo Mottola :
> 
> Hi,
> 
> I did a total fresh install of GNUstep (had to reinstall everything on my 
> Raspberry).
> For simplicity I used xlib, I only need a minimal GUI.
> 
> I get this trace when starting ProjectCenter:
> 
> pi@RaspberryPI1 ~/code/apps-projectcenter $ ProjectCenter
> 2020-06-16 09:00:46.810 ProjectCenter[28356:28356] styleoffsets ... guessing 
> offsets
> 2020-06-16 09:00:46.829 ProjectCenter[28356:28356] styleoffsets ... guessing 
> offsets
> 2020-06-16 09:00:46.974 ProjectCenter[28356:28356] Unsupported context depth 
> 24
> 2020-06-16 09:00:47.413 ProjectCenter[28356:28356] Library directory 
> '/home/pi/GNUstep/Library' not available!
> 2020-06-16 09:00:47.416 ProjectCenter[28356:28356] File NSData.m: 287. In 
> readContentsOfFile Open ((null)) attempt failed - bad path
> 2020-06-16 09:00:47.418 ProjectCenter[28356:28356] No font cache available - 
> building new one - this may take several seconds (or minutes on a slow 
> machine with lots of fonts)
> 2020-06-16 09:00:47.422 ProjectCenter[28356:28356] Running 
> /GNUstep/System/Tools/font_cacher
> ProjectCenter: Uncaught exception NSInvalidArgumentException, reason: Tried 
> to init array with nil object
> 
> 
> I think the depth24 context is not relevant (although, Fred... nothing 
> strange in this setup, the display is exported)
> 
> I think the whole failure is that the user has no gnustep preference 
> directory.
> usually no font_cacher is run either, xlib only and perhaps only on remote 
> display?
> 
> Maybe it fails because *both* GNUstep and GNUstep/Library have to be created 
> (whole path).
> 
> I suppose it should be created automatically?
> I created manually GNUstep/Library and font cacher started withoutissuesl.
> 
> Riccardo
> 


In font_cache we have this code:


paths = NSSearchPathForDirectoriesInDomains(NSLibraryDirectory,
  NSUserDomainMask, YES);
  if ((paths != nil) && ([paths count] > 0))
{
  path = [paths objectAtIndex: 0];
}
  else 
{
  NSLog(@"  No valid path for cached information exists. You ");
  NSLog(@"  should create ~/GNUstep/Library by hand");
  return nil;
}

This makes it unlikely that the failure was in font_cache. More likely other 
code in the library tried to access this directory. A stacktrace of the 
exception would have helped.

Fred


Re: cairo drawing problem

2020-06-11 Thread Fred Kiefer
Hi Andreas,

I did not get your original mail and it isn’t even in my spam folder where your 
previous mails.

> Am 11.06.2020 um 00:05 schrieb Josh Freeman :
> 
>   Try initializing your window as NSBackingStoreBuffered? 
> (NSBackingStoreNonretained tells the window to draw directly to the screen 
> without buffering, so the pixel data is probably unavailable for reading 
> back).

This might help but I really would like to understand where the issue comes 
from in the first place.

Looking at the code and the output below the first thing I notice is that the X 
error happens after the extraction of the view data into the bitmap image was 
finished. The most likely scenario is that the data we extracted is somehow 
invalid. That would fit in wit your suggested work around.

But all of this is just blind guessing, what we need here is example code that 
allows to reproduce this issue with GNUstep classes only.

Andreas, could you please strip down your application to pure GNUstep and if 
that still displays the error send out that code?

Cheers,
Fred

> On Jun 8, 2020, at 1:52 PM, Andreas Höschler via Discussion list for the 
> GNUstep programming environment wrote:
> 
>> 
>> Hi all,
>> 
>> I have just found some time to continue testing my app(s) on GNUstep and 
>> realised that drawing OSM maps fails under GNUstep when using the cairo 
>> backend while it works if using libart.
>> 
>> My code draws something in a NSView subclass and then uses
>> 
>> [mapView display];
>> [mapView lockFocus];
>> NSBitmapImageRep *rep = [[NSBitmapImageRep alloc] 
>> initWithFocusedViewRect:[mapView bounds]];
>> data = [[[rep representationUsingType:NSPNGFileType 
>> properties:[NSDictionary dictionaryWithObject:[NSNumber numberWithInt:1] 
>> forKey:@"NSImageInterlaced"]] retain] autorelease];
>> if ([data length] == 0) // try TIFF instead
>>   {
>>data = [[[rep representationUsingType:NSTIFFFileType 
>> properties:[NSDictionary dictionaryWithObject:[NSNumber numberWithInt:1] 
>> forKey:@"NSImageInterlaced"]] retain] autorelease];
>>if ([data length] == 0) NSLog(@"Damn! TIFF failed as well!");
>>   }
>> [mapView unlockFocus];
>> 
>> to produce a PNG from the view content. This works great with libart
>> 
>> art:
>> 
>> 
>> 2020-06-08 19:37:18.526 ESMMapServer[10165:10165] draw way inlays... 359 
>> _drawPrimaryInLays 1 _drawOtherInLays 1
>> 2020-06-08 19:37:18.527 ESMMapServer[10165:10165] BUMM
>> 2020-06-08 19:37:18.545 ESMMapServer[10165:10165] Draw 7 mapShields ...
>> 2020-06-08 19:37:18.548 ESMMapServer[10165:10165] Draw 1 mapLocs ...
>> 2020-06-08 19:37:18.549 ESMMapServer[10165:10165] Draw 2 mapLines ...
>> 2020-06-08 19:37:18.549 ESMMapServer[10165:10165]  
>> drawLine _colorName (null) _color 0 0 1
>> 2020-06-08 19:37:18.549 ESMMapServer[10165:10165]  
>> drawLine _colorName (null) _color 0 1 0
>> 2020-06-08 19:37:18.557 ESMMapServer[10165:10165]  h=--- v=--- > 0x2302ca0> f={x = 0; y = 0; width = 542; height = 620} b={x = 0; y = 0; 
>> width = 542; height = 620} locking Focus ...
>> 2020-06-08 19:37:18.557 ESMMapServer[10165:10165] getting rep ...
>> 2020-06-08 19:37:18.563 ESMMapServer[10165:10165] rep > 0x2f15450 size: {width = 542; height = 620} pixelsWide: 542 pixelsHigh: 620 
>> colorSpaceName: NSDeviceRGBColorSpace bps: 8>
>> 2020-06-08 19:37:18.665 ESMMapServer[10165:10165]  h=--- v=--- > 0x2302ca0> f={x = 0; y = 0; width = 542; height = 620} b={x = 0; y = 0; 
>> width = 542; height = 620} unocked Focus!
>> 2020-06-08 19:37:18.665 ESMMapServer[10165:10165] data 248529
>> 
>> but fails with cairo
>> 
>> cairo:
>> ===
>> 2020-06-08 19:31:52.783 ESMMapServer[9982:9982] draw way inlays... 359 
>> _drawPrimaryInLays 1 _drawOtherInLays 1
>> 2020-06-08 19:31:52.783 ESMMapServer[9982:9982] BUMM
>> 2020-06-08 19:31:52.798 ESMMapServer[9982:9982] Draw 8 mapShields ...
>> 2020-06-08 19:31:52.801 ESMMapServer[9982:9982] Draw 1 mapLocs ...
>> 2020-06-08 19:31:52.802 ESMMapServer[9982:9982] Draw 2 mapLines ...
>> 2020-06-08 19:31:52.802 ESMMapServer[9982:9982]  
>> drawLine _colorName (null) _color 0 0 1
>> 2020-06-08 19:31:52.802 ESMMapServer[9982:9982]  
>> drawLine _colorName (null) _color 0 1 0
>> 2020-06-08 19:31:52.811 ESMMapServer[9982:9982]  h=--- v=--- > 0x28e0fe0> f={x = 0; y = 0; width = 542; height = 620} b={x = 0; y = 0; 
>> width = 542; height = 620} locking Focus ...
>> 2020-06-08 19:31:52.812 ESMMapServer[9982:9982] getting rep ...
>> 2020-06-08 19:31:52.815 ESMMapServer[9982:9982] rep > 0x3698ef0 size: {width = 542; height = 620} pixelsWide: 542 pixelsHigh: 620 
>> colorSpaceName: NSDeviceRGBColorSpace bps: 8>
>> 2020-06-08 19:31:52.882 ESMMapServer[9982:9982]  h=--- v=--- > 0x28e0fe0> f={x = 0; y = 0; width = 542; height = 620} b={x = 0; y = 0; 
>> width = 

Re: Bad icons on the GWorkspace dock

2020-06-11 Thread Fred Kiefer



> Am 11.06.2020 um 00:31 schrieb Patrick Cardona via Discussion list for the 
> GNUstep programming environment :
> 
> Also I found some kind of EasterEgg : then You click on the running clock in 
> the Info Panel, it shows a new window, which has this title :
> "Memory Panel" and which shows this table : ClassName, Current, Total, Peak...

This is a standard feature of all GNUstep gui applications. Nicola Pero build 
that in to allow the inspection of memory consumption over time. This makes it 
easier to detect memory leakage.


Re: Graphos.app : error whith make

2020-05-19 Thread Fred Kiefer
Could it be that you are using a GNUstep.sh file that does not come from the 
GNUstep make you are currently using? Your GNUstep make reports its version as 
2.7.0 and at that time this variable was long gone. So either you’re GNUstep.sh 
should not contain this value or it is not related to your make installation. 
Please try to find out which GNUstep.sh gets source and where this is coming 
from.

Hope this helps,
Fred

> Am 19.05.2020 um 23:39 schrieb Patrick Cardona :
> 
> The unset method succeeded : I was able to make Graphos and StepSync.
> But the GNUSTEP_USER_ROOT was initialy made available bu GNUstep.sh : so I 
> don't understand why the GNUstep.sh define a wrong or obsolete environment 
> var.
> 
> Le 18/05/20 à 20:32, Fred Kiefer a écrit :
>> 
>> 
>>> Am 18.05.2020 um 20:17 schrieb Patrick Cardona via Discussion list for the 
>>> GNUstep programming environment :
>>> 
>>> Hi All GNUstep Masters,
>>> 
>>> Because I did not find this app from raspbian repository, I tried to make 
>>> it myself.
>>> But I encountered this error :
>>> 
>>> pi@raspberrypi:~/Fabrique/Graphos-0.7 $ make
>>> This is gnustep-make 2.7.0. Type 'make print-gnustep-make-help' for help.
>>> Running in gnustep-make version 2 strict mode.
>>> /usr/share/GNUstep/Makefiles/config-noarch.make:121: *** GNUSTEP_USER_ROOT 
>>> is obsolete. Arrêt.
>>> 
>>> So, first, it seems that arm achitecture is not recognised.
>>> And what does mean : GNUSTEP_USER_ROOT is obsolete ?
>>> Because in my env, I got such a variable :
>>> 
>>> pi@raspberrypi:~/Fabrique/Graphos-0.7 $ echo $GNUSTEP_USER_ROOT
>>> /home/pi/GNUstep
>> 
>> Just unset that variable and try again.




Re: Graphos.app : error whith make

2020-05-18 Thread Fred Kiefer



> Am 18.05.2020 um 20:17 schrieb Patrick Cardona via Discussion list for the 
> GNUstep programming environment :
> 
> Hi All GNUstep Masters,
> 
> Because I did not find this app from raspbian repository, I tried to make it 
> myself.
> But I encountered this error :
> 
> pi@raspberrypi:~/Fabrique/Graphos-0.7 $ make
> This is gnustep-make 2.7.0. Type 'make print-gnustep-make-help' for help.
> Running in gnustep-make version 2 strict mode.
> /usr/share/GNUstep/Makefiles/config-noarch.make:121: *** GNUSTEP_USER_ROOT is 
> obsolete. Arrêt.
> 
> So, first, it seems that arm achitecture is not recognised.
> And what does mean : GNUSTEP_USER_ROOT is obsolete ?
> Because in my env, I got such a variable :
> 
> pi@raspberrypi:~/Fabrique/Graphos-0.7 $ echo $GNUSTEP_USER_ROOT
> /home/pi/GNUstep

Just unset that variable and try again.


Re: [gnustep/libs-gui] * Source/NSWindow.m (-makeFirstResponder, -sendEvent:): Correct (be12d7b)

2020-05-15 Thread Fred Kiefer



> Am 15.05.2020 um 13:33 schrieb Johannes Brakensiek :
> 
> On 15 May 2020, at 9:30, Fred Kiefer wrote:
> 
> Here we don’t follow this principle and this is dangerous as a view we call 
> this method on may not be as clean as the GNUstep code itself. Patches are 
> welcome :-)
> 
> And why did I write that I „mostly“ agree? I would not follow this advice 
> when the value is completely in our control.
> 
> thank you for your explanation! Just a further question: Would it be safe to 
> just do if([v acceptsFirstMouse: theEvent]) or would that make things worse?

Yes, that would be the right thing to do in that place.

Fred


PS: You signature has expired again.


Re: [gnustep/libs-gui] * Source/NSWindow.m (-makeFirstResponder, -sendEvent:): Correct (be12d7b)

2020-05-15 Thread Fred Kiefer


> Am 15.05.2020 um 08:28 schrieb Johannes Brakensiek :
> 
> I'm new to Objective C, so this is just a question:
> 
> In the NY Times Objective C style guide I am reading:
> 
> Values MUST NOT be compared directly to YES, because YES is defined as 1, and 
> a BOOL in Objective-C is a CHAR type that is 8 bits long (so a value of 
> 1110 will return NO if compared to YES).
> https://github.com/nytimes/objective-c-style-guide
> 
> What do you think of this?

Johannes,

I am replying to the discussion mailing list, as your mail most likely should 
have gone there, replying to a GitHub mail directly makes little sense.

I mostly agree with the style guide you are citing. And I really didn’t know 
that the NY Times was using Objective C, looks like they are even hiring :-) It 
is a shame that there are so few ObjC programmer offerings in Germany.
But back to the topic. This is what is common in all C based programming 
languages and I think Richard is following this principle very strictly in 
GNUstep base. The idea is to be open in what you accept, but strict in what you 
return. As far as I am aware he even makes sure to convert values he gets from 
calls to other methods to YES or NO before returning them. GNUstep qui is not 
that clean in this respect. The one line I just moved in the commit you are 
replying to is an example:

[v acceptsFirstMouse: theEvent] == YES

Here we don’t follow this principle and this is dangerous as a view we call 
this method on may not be as clean as the GNUstep code itself. Patches are 
welcome :-)

And why did I write that I „mostly“ agree? I would not follow this advice when 
the value is completely in our control.

Cheers,
Fred





Re: GUI incompatibility

2020-05-14 Thread Fred Kiefer


> Am 14.05.2020 um 13:14 schrieb Fred Kiefer :
> 
>> Am 14.05.2020 um 12:22 schrieb Josh Freeman :
>> 
>> On May 13, 2020, at 5:52 PM, Andreas Höschler via Discussion list for the 
>> GNUstep programming environment wrote:
>> 
>>> I could fix the problem under GNUstep by simply commenting out
>>> 
>>> 
>>> /*  if (_firstResponder != v && ![v isKindOfClass: [NSButton 
>>> class]])
>>>   {
>>> // Only try to set first responder, when the view wants it.
>>> if ([v acceptsFirstResponder] && ![self makeFirstResponder: 
>>> v])
>>>   {
>>> return;
>>>   }
>>>   }
>>> */
>>> 
>>> Does anything speak against submitting this change into the public tree?
>> 
>>  That logic should remain - it's useful for when the clicked responder wants 
>> first responder status but the current first responder refuses to yield it; 
>> In that case, it's probably better to return without passing along the 
>> mouseDown event, otherwise the clicked responder will assume it's active & 
>> receiving key events, while the current first responder is preventing its 
>> own deactivation.
>> 
>>  That doesn't seem to be the cause of the issue anyway; The different 
>> behavior between GNUstep & OS X appears to be due to mismatched return 
>> values of -[NSWindow makeFirstResponder:] - if the passed responder refuses 
>> first responder status, GNUstep's version returns NO, but OS X's version 
>> returns YES:
>> https://developer.apple.com/documentation/appkit/nswindow/1419366-makefirstresponder?language=objc
> 
> Thank you Josh for pointing this out. This looks like the correct way to go.

I just committed a change in the line of Josh’s reasoning. Andreas, please give 
it a try.

Fred


Re: GUI incompatibility

2020-05-14 Thread Fred Kiefer



> Am 14.05.2020 um 12:22 schrieb Josh Freeman :
> 
> On May 13, 2020, at 5:52 PM, Andreas Höschler via Discussion list for the 
> GNUstep programming environment wrote:
> 
>> I could fix the problem under GNUstep by simply commenting out
>> 
>> 
>> /*  if (_firstResponder != v && ![v isKindOfClass: [NSButton 
>> class]])
>>{
>>  // Only try to set first responder, when the view wants it.
>>  if ([v acceptsFirstResponder] && ![self makeFirstResponder: 
>> v])
>>{
>>  return;
>>}
>>}
>> */
>> 
>> Does anything speak against submitting this change into the public tree?
> 
>   That logic should remain - it's useful for when the clicked responder wants 
> first responder status but the current first responder refuses to yield it; 
> In that case, it's probably better to return without passing along the 
> mouseDown event, otherwise the clicked responder will assume it's active & 
> receiving key events, while the current first responder is preventing its own 
> deactivation.
> 
>   That doesn't seem to be the cause of the issue anyway; The different 
> behavior between GNUstep & OS X appears to be due to mismatched return values 
> of -[NSWindow makeFirstResponder:] - if the passed responder refuses first 
> responder status, GNUstep's version returns NO, but OS X's version returns 
> YES:
> https://developer.apple.com/documentation/appkit/nswindow/1419366-makefirstresponder?language=objc

Thank you Josh for pointing this out. This looks like the correct way to go.

Fred




Re: GUI incompatibility

2020-05-14 Thread Fred Kiefer


> Am 14.05.2020 um 00:53 schrieb Andreas Höschler via Discussion list for the 
> GNUstep programming environment :
>>> I could fix the problem under GNUstep by simply commenting out
>>> 
>>> 
>>> /*  if (_firstResponder != v && ![v isKindOfClass: [NSButton 
>>> class]])
>>>   {
>>> // Only try to set first responder, when the view wants it.
>>> if ([v acceptsFirstResponder] && ![self makeFirstResponder: 
>>> v])
>>>   {
>>> return;
>>>   }
>>>   }
>>> */
>>> 
>>> Does anything speak against submitting this change into the public tree?
>> 
>> Just commenting out parts of the code won’t do. As you could probably see 
>> with your own code by adding a log statement in acceptsFirstResponder that 
>> method needs to be called. Other changes to this logic here are welcome, but 
>> they need to address more than one specific issue. Maybe you could provide 
>> more details on what happens on Cocoa?
> 
> On Cocoa this happens.
> 
>> 13/05/20 17:23:40,783 InterfaceBuilder[93679]:  
>> acceptsFirstMouse 1
>> 13/05/20 17:23:40,783 InterfaceBuilder[93679]:  
>> becomeFirstResponder 0
>> 13/05/20 17:23:40,784 InterfaceBuilder[93679]:  
>> mouseDown ..
> 
> So we might want to call acceptsFirstResponder: but not drop out if the 
> answer is NO but call mouseDown: anyway!? This would probably mimic the Cocoa 
> behaviour!


In your Cocoa output acceptsFirstMouse comes before becomeFirstResponder so 
maybe we need to move line 3972 "if (wasKey == YES || [v acceptsFirstMouse: 
theEvent] == YES)“ further up. But what should we do with the result of 
makeFirstResponder just ignore it?And what should we do with 
_lastLeftMouseDownView? At what point should that be cleared? This variable 
gets used for drag or mouse up events later on to make sure these go to the 
same view as the mouse down event. The current way of setting this value just 
before we send the mouse down event to the view seems correct. But why do we 
destroy it?

I hope to find time for a few tests on Cocoa later today or on the weekend.

Fred


Re: GUI incompatibility

2020-05-13 Thread Fred Kiefer



> Am 13.05.2020 um 23:52 schrieb Andreas Höschler :
> 
> I understand the idea behind this part
> 
>   if (_firstResponder != v && ![v isKindOfClass: [NSButton class]])
> {
>   // Only try to set first responder, when the view wants it.
>   if ([v acceptsFirstResponder] && ![self makeFirstResponder: 
> v])
> {
>   NSLog(@"Leaving early");
>   return;
> }
>}
> 
> but would suggest that this is not entirely correct. My FormTextField refuses 
> to become first responder on purpose but nevertheless relies on seeing a 
> mouseDown: call. I use that to activate an inspector. At another place in the 
> code this mouseDown: is needed to initiate a drag operation to drag the gui 
> element around. Cocoa does this correctly IMHO (sends the mouseDown:).
> 
> I could fix the problem under GNUstep by simply commenting out
> 
> 
> /*  if (_firstResponder != v && ![v isKindOfClass: [NSButton 
> class]])
> {
>   // Only try to set first responder, when the view wants it.
>   if ([v acceptsFirstResponder] && ![self makeFirstResponder: 
> v])
> {
>   return;
> }
> }
> */
> 
> Does anything speak against submitting this change into the public tree?

Just commenting out parts of the code won’t do. As you could probably see with 
your own code by adding a log statement in acceptsFirstResponder that method 
needs to be called. Other changes to this logic here are welcome, but they need 
to address more than one specific issue. Maybe you could provide more details 
on what happens on Cocoa? Maybe the order of things is wrong?

Fred


Re: GUI incompatibility

2020-05-13 Thread Fred Kiefer
The relevant section in the sendEvent: method of NSWindow looks like this:


  if (wasKey == YES || [v acceptsFirstMouse: theEvent] == YES)
{
  if ([NSHelpManager isContextHelpModeActive])
{
  [v helpRequested: theEvent];
}
  else
{
  ASSIGN(_lastLeftMouseDownView, v);
  if (toolTipVisible != nil)
{
  /* Inform the tooltips system that we have had
   * a mouse down so it should stop displaying.
   */
  [toolTipVisible mouseDown: theEvent];
}
  [v mouseDown: theEvent];
}
}

Looks like we only call acceptsFirstMouse when the window was not already key. 
If this isn’t what Cocoa does, you need to explain the expected behaviour.
This code looks like it is there on purpose but Apple may have changed their 
implementation or documentation in the meantime.

Cheers,
Fred


> Am 13.05.2020 um 17:37 schrieb Andreas Höschler via Discussion list for the 
> GNUstep programming environment :
> 
> Hi Fred,
> 
> I am still trying to get my apps to work under GNUstep. I have already worked 
> around a couple of incompatibilities between Cocoa and GNUstep that caused 
> trouble. 
> 
> I now ended up at the following problem:
> 
> I have some NSView subclass on a window
> 
>   ValueElementCarrier : ElementCarrier : ComponentCarrier : 
> ControlCarrier : NSView
> 
> ValueElementCarrier has a subview
> 
> FormTextField : NSTextField
> 
> over its complete rect. 
> 
> @implementation FormTextField
> 
> - (void)mouseDown:(NSEvent *)theEvent
> {
>NSLog(@"%@ mouseDown ..", self);
> ...
> [super mouseDown:theEvent];
> }
> 
> - (BOOL)becomeFirstResponder
> {
>BOOL result = ([(FBFormWindow *)[self window] designMode] ? NO : [super 
> becomeFirstResponder]);
>NSLog(@"%@ becomeFirstResponder %d", self, result);
>return result;
> }
> 
> - (BOOL)acceptsFirstMouse: (NSEvent*)theEvent
> {
>BOOL result = [super acceptsFirstMouse:theEvent];
>NSLog(@"%@ acceptsFirstMouse %d", self, result);
>return result;
> }
> 
> @end
> 
> 
> When I click on this FormTextField on MacOSX I get
> 
> 13/05/20 17:23:40,783 InterfaceBuilder[93679]:  
> acceptsFirstMouse 1
> 13/05/20 17:23:40,783 InterfaceBuilder[93679]:  
> becomeFirstResponder 0
> 13/05/20 17:23:40,784 InterfaceBuilder[93679]:  
> mouseDown ..
> 
> When I do the same on GNUstep I get
> 
> 13/05/20 17:23:40,783 InterfaceBuilder[93679]:  
> becomeFirstResponder 0
> 
> but no call of acceptsFirstMouse and no call of mouseDown!?  This renders my 
> up inoperable! :-(
> 
> Any idea? Should this behaviour be fixed in GNUstep (handled equally)? 
> 
> Thanks,
> 
>  Andreas
> 
> 
> 
>  
> 
> 
> 




Re: ctrl-mouse drag does not work

2020-05-11 Thread Fred Kiefer



> Am 11.05.2020 um 20:42 schrieb Andreas Höschler via Discussion list for the 
> GNUstep programming environment :
> 
> 
> I usually start a drag operation with ctrl-drag in my apps. I just realised 
> that this (no longer) works under GNUstep. Instead a context menu is raised!? 
> I first thought this was due to a WindowMaker setting. But I see the same 
> behaviour under xfce. Has this changed in GNUstep over the years? On MacSOX 
> and with the old GNUstep tree (we were using years ago) we could happily use 
> Ctrl-left-mouse-down and then drag to initiate a drag operation. Can this be 
> reenabled somehow (may be with a global default) in the current GNUstep 
> release?

I am not using Drag that much in GNUstep. This might be because I 
implemented it and still feel bad about it. But the basic principles haven’t 
changed since your version of GNUstep. For GNUstep itself no modifier key is 
required to start a drag operation pressing the left mouse button (which may of 
course be redefined to the right or any other one) of the mouse and moving the 
mouse a bit should start this. Of course specific views may require additional 
keys to be press to start specific operations. Gorm uses this when creating 
connections between elements. Gorm is really the best place to start testing 
D with GNUstep as this gets used a lot there. And there it is also easy to 
see when a Window Manager steals a specific key combination. In that case you 
will have to either reconfigure your WM or define different modifiers in 
GNUstep. For GNUstep the simplest way to redefine modifiers keys is in 
SystemPreferences.

If you have further questions please feel free to give me a direct call 
(telephone or Skype). Just send me a private email if you lost my contact 
numbers.

Cheers,
Fred  


Re: GNUstep app fails on Ubuntu 16 - found workaround

2020-05-11 Thread Fred Kiefer



> Am 11.05.2020 um 13:16 schrieb Andreas Höschler via Discussion list for the 
> GNUstep programming environment :
> 
>> Thank you Andreas for this huge amount of data. It seems to show that my 
>> guess was wrong. The problem is not happening in the GSHorizontalTypesetter 
>> and all the extra rects that are shown look correct. But when ever a wrong 
>> height shows up it looks like these lines:
>> 
>>> 2020-05-09 20:19:40.720 SOObjectBrowser[4163:4163] cache_lookup hit 1
>>> 2020-05-09 20:19:40.720 SOObjectBrowser[4163:4163] In attributed string and 
>>> got result from  c->usedRect {x = 0; y = 0; width = 1; height = 1e+07}
>> 
>> First a cache hit in the string drawing code and then the wrong height, but 
>> that height never seems to get produced by the NSLayoutManager. This must 
>> point to an error in the cache itself. I found that we do not clean the 
>> „used“ flag for the cache when setting it up. Could it be that you are just 
>> picking up a random cache entry? I am not sure about that but hacked 
>> together a fix hat initialises the cache entries as unused explicitly. Could 
>> you please pull the current code from the GNUstep repository and try again 
>> with that? This will also include my other attempts in fixing this issue. 
>> They should at least not do any harm.
> 
> I have repulled libs-gui from git and the problem is gone. My 
> 
>   2020-05-09 20:19:40.765 SOObjectBrowser[4163:4163] Got height 
> 1004.00. We correct this ...
> 
> workaround is no longer triggered. 
> 
> Thanks a lot for your effort!!

Thank you Andreas for confirming that finally I found the correct spot to fix 
the issue.

> 
>> On 10 May 2020, at 23:57, Riccardo Mottola  
>> wrote:
>> 
>> I remember this, I have a déjà-vu here! Don't remember the App, but chasing 
>> down exactly this issue, I remember that it should be at least "one line" 
>> height and that there were issue.
> 
> According to my google search result forwarded a couple of days ago this 
> issue indeed popped up for others as well. One app that apparently triggered 
> it was ProjectCenter. I have never looked into the ProjectCenter code. But 
> the problem must have occurred in all apps that do auto resizing of the 
> interface using [NSControl sizeToFit] and have image only buttons (obviously 
> a rather seldom combination). :-)

I think Riccardo was referring to the issues that your work around (returning 
zero size for an empty string) would be causing. We worked on that one together 
a few years ago that is why we both remembered the issues with that solution. 
Luckily it is no longer needed.

Cheers,
Fred 




Re: GNUstep app fails on Ubuntu 16 - found workaround

2020-05-09 Thread Fred Kiefer



> Am 09.05.2020 um 20:28 schrieb Andreas Höschler :
> 
> 
>> Thank you Andreas for pinning this down. Sadly your solution cannot be used 
>> directly. That way all text views or text cell would result in a height of 
>> zero. The returned size here has to include at least the height of a new 
>> line. This gets handled in the class GSLayoutManager (around line 2600) by 
>> adding the extra used rectangle to the returned rectangle.
>> 
>> If you still got time to look further it would help to know, how big the 
>> extra_used_rect is in your case and where these values come from. Maybe we 
>> fail to initialise the value correctly? That value should get set by the 
>> class GSHorizontalTypesetter (line 555). If the wrong value comes from there 
>> then the current font is to blame. Could you please inspect that?
>> 
>> Again thank you very much!
> 
> 
> I inserted a bunch of log statements. See below for the modified code:
> 
> 
> And here is the output that is logged when opening the form with the image 
> button. Search for "Got height 1004.00. We correct this ..." and 
> examine the lines above. Does this give us a clue? I unfortunately get lost 
> in the usedRectForTextContainer: method. :-)


Thank you Andreas for this huge amount of data. It seems to show that my guess 
was wrong. The problem is not happening in the GSHorizontalTypesetter and all 
the extra rects that are shown look correct. But when ever a wrong height shows 
up it looks like these lines:

> 2020-05-09 20:19:40.720 SOObjectBrowser[4163:4163] cache_lookup hit 1
> 2020-05-09 20:19:40.720 SOObjectBrowser[4163:4163] In attributed string and 
> got result from  c->usedRect {x = 0; y = 0; width = 1; height = 1e+07}

First a cache hit in the string drawing code and then the wrong height, but 
that height never seems to get produced by the NSLayoutManager. This must point 
to an error in the cache itself. I found that we do not clean the „used“ flag 
for the cache when setting it up. Could it be that you are just picking up a 
random cache entry? I am not sure about that but hacked together a fix hat 
initialises the cache entries as unused explicitly. Could you please pull the 
current code from the GNUstep repository and try again with that? This will 
also include my other attempts in fixing this issue. They should at least not 
do any harm.

Cheers,
Fred






Re: GNUstep app fails on Ubuntu 16 - found workaround

2020-05-09 Thread Fred Kiefer
Thank you Andreas for pinning this down. Sadly your solution cannot be used 
directly. That way all text views or text cell would result in a height of 
zero. The returned size here has to include at least the height of a new line. 
This gets handled in the class GSLayoutManager (around line 2600) by adding the 
extra used rectangle to the returned rectangle.

If you still got time to look further it would help to know, how big the 
extra_used_rect is in your case and where these values come from. Maybe we fail 
to initialise the value correctly? That value should get set by the class 
GSHorizontalTypesetter (line 555). If the wrong value comes from there then the 
current font is to blame. Could you please inspect that?

Again thank you very much!
Fred

> Am 08.05.2020 um 22:53 schrieb Andreas Höschler via Discussion list for the 
> GNUstep programming environment :
> 
> It seems [NSAttributedString size] has a problem!?
> 
> 
> I did the following:
> 
> - (NSSize) size
> {
>   if ([self length] == 0) return NSZeroSize; // <-- inserted this
> 
>   NSRect usedRect = [self boundingRectWithSize: NSZeroSize
>options: 
> NSStringDrawingUsesLineFragmentOrigin];
>   return usedRect.size;
> }
> 
> - (NSSize) sizeWithAttributes: (NSDictionary *)attrs
> {
>   if ([self length] == 0) return NSZeroSize; // <-- inserted this
> 
>   NSRect usedRect = [self boundingRectWithSize: NSZeroSize
>options: 
> NSStringDrawingUsesLineFragmentOrigin
> attributes: attrs];
>   return usedRect.size;
> }
> 
> Problem gone!! :-)
> 
> Regards,
> 
>  Andreas




Re: GNUstep app fails on Ubuntu 16 - found workaround

2020-05-08 Thread Fred Kiefer



> Am 08.05.2020 um 20:00 schrieb Andreas Höschler :
> 
> NSButtonCell.m
> ==
> - (NSSize) cellSize
> {
> ...
>   if (imageToDisplay)
> {
>   imageSize = [imageToDisplay size];
>   NSLog(@"cellSize imageSize %@", NSStringFromSize(imageSize));
> }
> ...
>   case NSImageLeft: 
>   case NSImageRight: 
> s.width = imageSize.width + titleSize.width + GSCellTextImageXDist;
> NSLog(@"imageSize.height %f titleSize.height %f", imageSize.height, 
> titleSize.height);
> s.height = MAX(imageSize.height, titleSize.height);
> break;
> ...
> 
>   // Add border size
>   s.width += border.left + border.right;
>   NSLog(@"border.top %f border.bottom %f", border.top, border.bottom);
>   s.height += border.top + border.bottom;
>   NSLog(@"returning s %@", NSStringFromSize(s));
> ...
> }
> 
> 
> 2020-05-08 19:58:14.729 SOObjectBrowser[14224:14224] cellSize imageSize 
> {width = 15; height = 15}
> 2020-05-08 19:58:14.730 SOObjectBrowser[14224:14224] imageSize.height 
> 15.00 titleSize.height 1000.00
> 2020-05-08 19:58:14.730 SOObjectBrowser[14224:14224] border.top 0.00 
> border.bottom 0.00
> 2020-05-08 19:58:14.730 SOObjectBrowser[14224:14224] returning s {width = 18; 
> height = 1e+07}
> 2020-05-08 19:58:14.730 SOObjectBrowser[14224:14224] Reporting 
> button::imagePosition 2
> 2020-05-08 19:58:14.730 SOObjectBrowser[14224:14224] Reporting 
> _cell::imagePosition 2
> 2020-05-08 19:58:14.730 SOObjectBrowser[14224:14224] Got height 
> 1004.00. We correct this ...
> 
> The mess is caused by the titleSize!? :-( I haven't set a title since this is 
> an image only button!

Now we are getting closer. But this is weird, The variable titleSize gets 
initialised with NSZeroSize and later only changed here


  if (titleToDisplay != nil)
{
  titleSize = [titleToDisplay size];
}

Could you add another NSLog line there and report the value of titleToDisplay? 
This looks like either a bug in our NSString drawing code or the compiler 
itself. We really need to get to the bottom of this. Fixing NSWindow is just a 
work around that won’t help you much.

Fred


Re: GNUstep app fails on Ubuntu 16 - found workaround

2020-05-08 Thread Fred Kiefer



> Am 08.05.2020 um 17:48 schrieb Andreas Höschler :
> 
>> that is a very interesting analysis you provided. Could you tell us a bit 
>> more about the images you are using? Or to be concrete, what is the size of 
>> one of these images? If these images report such huge values for their 
>> height this would explain the behaviour you are seeing.
> 
> The images are rather tiny. Here is the one that caused the problem in one of 
> the forms:
> 
> 

Yes, this looks rather small.

>> In NSButtonCell the computation of cellSize relies directly on the value 
>> reported by the image. It would also be interesting to know, which value 
>> gets used for the image position of the button cell. 
> 
> I don't set that. So I guess it's a default position!? Let's see ...
> 
> @implementation NSButton (sizeToContent)
> 
> - (void)sizeToFit
> {
>NSSize size = [_cell cellSize];
>if (size.height > 1.0) 
>  {  
>   NSLog(@"Reporting button::imagePosition %d", [self imagePosition]);
>   NSLog(@"Reporting _cell::imagePosition %d", [_cell imagePosition]);
>  }
>[self setFrameSize: size];
> }
> 
> @end

Could you please move the logging code one level down into the NSButtonCell and 
report from there how this is calculated? Also report the image size as seen by 
the cell. You could check the value of s.height at the end of the method and if 
it is huge report textSize, imageSize and border

An image position of 2 should be NSImageLeft, which is fine.

Cheers,
Fred


Re: GNUstep app fails on Ubuntu 16 - found workaround

2020-05-08 Thread Fred Kiefer
It turns out that we do not limit the frame of a window on creation. The lines 
of code in NSWindow look like this:


 _frame = [NSWindow frameRectForContentRect: contentRect styleMask: aStyle];
 _minimumSize = NSMakeSize(_frame.size.width - contentRect.size.width + 1,
_frame.size.height - contentRect.size.height + 1);
 _maximumSize = NSMakeSize (10e4, 10e4);

Every attempt to set the size too big later on will be blocked, but doing so on 
creation is passed through. I will have to come up with a solution for this. 
Maybe just call setFrame: in the next line?

Fred

> Am 08.05.2020 um 17:29 schrieb Fred Kiefer :
> 
> HI Andreas,
> 
> that is a very interesting analysis you provided. Could you tell us a bit 
> more about the images you are using? Or to be concrete, what is the size of 
> one of these images? If these images report such huge values for their height 
> this would explain the behaviour you are seeing.
> 
> In NSButtonCell the computation of cellSize relies directly on the value 
> reported by the image. It would also be interesting to know, which value gets 
> used for the  image position of the button cell. I don’t see a sensible way 
> we could fix this problem directly in GNUstep gui. The only way would be to 
> enforce some arbitrary limit for views and this is not possible as we may 
> have some coordinate transformation in place and seemingly huge values would 
> be converted to usable ones. As for the window enforcing limits there makes 
> sense but I vaguely remember that we already have code for that in place. 
> Although I am still looking for that limit.
> 
> Cheers,
> Fred
> 
> 
>> Am 08.05.2020 um 16:31 schrieb Andreas Höschler via Discussion list for the 
>> GNUstep programming environment :
>> 
>> In the meanwhile I have inserted an [NSException raise:...] into  
>> /libs-back/Source/x11/XWindowBuffer.m
>> 
>> if (!wi->ximage)
>>{
>>  NSLog(@"Warning: XShmCreateImage failed!");
>>  NSLog(@"Falling back to normal XImage (will be slower).");
>>  goto no_xshm;
>>}
>>  wi->shminfo.shmid = shmget(IPC_PRIVATE,
>>wi->ximage->bytes_per_line * wi->ximage->height,
>>IPC_CREAT | 0700);
>> 
>>  if (wi->shminfo.shmid == -1)
>>{
>>  NSLog(@"Warning: shmget() failed: %m.");
>>  NSLog(@"Falling back to normal XImage (will be slower).");
>> 
>>   [NSException raise:NSInternalInconsistencyException 
>> format:@"asas"]; // <-- remove this
>> 
>>  XDestroyImage(wi->ximage);
>>  goto no_xshm;
>>}
>> 
>> to get a backtrace of what triggers the shmget() problem and got this
>> 
>> #0  -[NSException raise] (self=0x46c75c0, _cmd=0x76ac64e0 
>> <_OBJC_SELECTOR_TABLE+480>) at NSException.m:1574
>> #1  0x76565bba in +[NSException raise:format:arguments:] 
>> (self=0x76ac6020 <_OBJC_Class_NSException>, 
>>_cmd=0x76ac64b0 <_OBJC_SELECTOR_TABLE+432>, name=0x76ac59e0 
>> <_OBJC_INSTANCE_4>, format=0x7fffee2ccd50 <_OBJC_INSTANCE_12>, 
>>argList=0x7fffca10) at NSException.m:1465
>> #2  0x76565b01 in +[NSException raise:format:] (self=0x76ac6020 
>> <_OBJC_Class_NSException>, _cmd=0x7fffee2cd3b0 <_OBJC_SELECTOR_TABLE+176>, 
>>name=0x76ac59e0 <_OBJC_INSTANCE_4>, format=0x7fffee2ccd50 
>> <_OBJC_INSTANCE_12>) at NSException.m:1450
>> #3  0x7fffee05d046 in +[XWindowBuffer windowBufferForWindow:depthInfo:] 
>> (self=0x7fffee2cd280 <_OBJC_Class_XWindowBuffer>, 
>>_cmd=0x7fffee2d2320 <_OBJC_SELECTOR_TABLE+320>, awindow=0x1072ce0, 
>> aDI=0x7fffcba0) at XWindowBuffer.m:322
>> #4  0x7fffee0620d7 in -[ARTGState(internal) stuff:GSSetDevice:::] 
>> (self=0x1087990, _cmd=0x7fffee2d1840 <_OBJC_SELECTOR_TABLE+352>, 
>> window=0x1072ce0, 
>>x=1, y=1547) at ARTGState.m:644
>> #5  0x7fffee05e933 in -[ARTContext(ops) GSSetDevice:::] (self=0x3f7f2f0, 
>> _cmd=0x7fffee2ca860 <_OBJC_SELECTOR_TABLE+1472>, device=0x1072ce0, x=1, 
>>y=1547) at ARTContext.m:164
>> #6  0x7fffee04a30f in GSSetDevice (ctxt=0x3f7f2f0, device=0x1072ce0, 
>> x=1, y=1547) at 
>> /usr/GNUstep/Local/Library/Headers/AppKit/DPSOperators.h:1153
>> #7  0x7fffee052111 in -[XGServer(WindowOps) setWindowdevice:forContext:] 
>> (self=0xa53760, _cmd=0x7fffee2ba080 <_OBJC_SELECTOR_TABLE+448>, win=164, 
>>ctxt=0x3f7f2f0) at XGServerWindow.m:2683
>>

Re: GNUstep app fails on Ubuntu 16 - found workaround

2020-05-08 Thread Fred Kiefer
HI Andreas,

that is a very interesting analysis you provided. Could you tell us a bit more 
about the images you are using? Or to be concrete, what is the size of one of 
these images? If these images report such huge values for their height this 
would explain the behaviour you are seeing.

In NSButtonCell the computation of cellSize relies directly on the value 
reported by the image. It would also be interesting to know, which value gets 
used for the  image position of the button cell. I don’t see a sensible way we 
could fix this problem directly in GNUstep gui. The only way would be to 
enforce some arbitrary limit for views and this is not possible as we may have 
some coordinate transformation in place and seemingly huge values would be 
converted to usable ones. As for the window enforcing limits there makes sense 
but I vaguely remember that we already have code for that in place. Although I 
am still looking for that limit.

Cheers,
Fred


> Am 08.05.2020 um 16:31 schrieb Andreas Höschler via Discussion list for the 
> GNUstep programming environment :
> 
> In the meanwhile I have inserted an [NSException raise:...] into  
> /libs-back/Source/x11/XWindowBuffer.m
> 
>  if (!wi->ximage)
> {
>   NSLog(@"Warning: XShmCreateImage failed!");
>   NSLog(@"Falling back to normal XImage (will be slower).");
>   goto no_xshm;
> }
>   wi->shminfo.shmid = shmget(IPC_PRIVATE,
> wi->ximage->bytes_per_line * wi->ximage->height,
> IPC_CREAT | 0700);
> 
>   if (wi->shminfo.shmid == -1)
> {
>   NSLog(@"Warning: shmget() failed: %m.");
>   NSLog(@"Falling back to normal XImage (will be slower).");
> 
>[NSException raise:NSInternalInconsistencyException 
> format:@"asas"]; // <-- remove this
> 
>   XDestroyImage(wi->ximage);
>   goto no_xshm;
> }
> 
> to get a backtrace of what triggers the shmget() problem and got this
> 
> #0  -[NSException raise] (self=0x46c75c0, _cmd=0x76ac64e0 
> <_OBJC_SELECTOR_TABLE+480>) at NSException.m:1574
> #1  0x76565bba in +[NSException raise:format:arguments:] 
> (self=0x76ac6020 <_OBJC_Class_NSException>, 
> _cmd=0x76ac64b0 <_OBJC_SELECTOR_TABLE+432>, name=0x76ac59e0 
> <_OBJC_INSTANCE_4>, format=0x7fffee2ccd50 <_OBJC_INSTANCE_12>, 
> argList=0x7fffca10) at NSException.m:1465
> #2  0x76565b01 in +[NSException raise:format:] (self=0x76ac6020 
> <_OBJC_Class_NSException>, _cmd=0x7fffee2cd3b0 <_OBJC_SELECTOR_TABLE+176>, 
> name=0x76ac59e0 <_OBJC_INSTANCE_4>, format=0x7fffee2ccd50 
> <_OBJC_INSTANCE_12>) at NSException.m:1450
> #3  0x7fffee05d046 in +[XWindowBuffer windowBufferForWindow:depthInfo:] 
> (self=0x7fffee2cd280 <_OBJC_Class_XWindowBuffer>, 
> _cmd=0x7fffee2d2320 <_OBJC_SELECTOR_TABLE+320>, awindow=0x1072ce0, 
> aDI=0x7fffcba0) at XWindowBuffer.m:322
> #4  0x7fffee0620d7 in -[ARTGState(internal) stuff:GSSetDevice:::] 
> (self=0x1087990, _cmd=0x7fffee2d1840 <_OBJC_SELECTOR_TABLE+352>, 
> window=0x1072ce0, 
> x=1, y=1547) at ARTGState.m:644
> #5  0x7fffee05e933 in -[ARTContext(ops) GSSetDevice:::] (self=0x3f7f2f0, 
> _cmd=0x7fffee2ca860 <_OBJC_SELECTOR_TABLE+1472>, device=0x1072ce0, x=1, 
> y=1547) at ARTContext.m:164
> #6  0x7fffee04a30f in GSSetDevice (ctxt=0x3f7f2f0, device=0x1072ce0, x=1, 
> y=1547) at /usr/GNUstep/Local/Library/Headers/AppKit/DPSOperators.h:1153
> #7  0x7fffee052111 in -[XGServer(WindowOps) setWindowdevice:forContext:] 
> (self=0xa53760, _cmd=0x7fffee2ba080 <_OBJC_SELECTOR_TABLE+448>, win=164, 
> ctxt=0x3f7f2f0) at XGServerWindow.m:2683
> #8  0x7fffee022ed5 in -[GSContext initWithContextInfo:] (self=0x3f7f2f0, 
> _cmd=0x77d676e0 <_OBJC_SELECTOR_TABLE+3520>, info=0x46cad70)
> at GSContext.m:226
> #9  0x778b598d in -[NSWindow _startBackendWindow] (self=0x108b160, 
> _cmd=0x77d67770 <_OBJC_SELECTOR_TABLE+3664>) at NSWindow.m:915
> #10 0x778b5d69 in -[NSWindow _initBackendWindow] (self=0x108b160, 
> _cmd=0x77d67890 <_OBJC_SELECTOR_TABLE+3952>) at NSWindow.m:967
> #11 0x778b66f7 in -[NSWindow 
> initWithContentRect:styleMask:backing:defer:] (self=0x108b160, 
> _cmd=0x73970980 <_OBJC_SELECTOR_TABLE+1888>, 
> contentRect=..., aStyle=15, bufferingType=2, flag=0 '\000') at 
> NSWindow.m:1100
> #12 0x7370ed00 in -[GSMarkupTagWindow platformObjectInit] 
> (self=0x21f6c20, _cmd=0x73952c80 <_OBJC_SELECTOR_TABLE+2272>)
> at GSMarkupTagWindow.m:180
> 
> The corresponding code is 
> 
> 
> GSMarkupTagWindow:
> ==
> - (void)platformObjectInit
> {
> ...
>NSLog(@"contentRect %@ style %d backingType %d", 
> NSStringFromRect(contentRect), style, backingType);
>[self setPlatformObject:[_platformObject initWithContentRect:contentRect 
> styleMask:style backing:backingType defer:NO]];
> 
> }
> 
> and the output of the log line is
> 
> 2020-05-08 

Re: cannot locate symbol "utext_setup_67"

2020-05-02 Thread Fred Kiefer
i am no expert in this area, but my first idea would be that GNUstep base was 
build with ICU 67 installed and so this function got used (in the code we just 
reference text_setup) and now this version cannot be found during linking. On a 
normal Linux system I would suggest to use ldd on gnustep-base.so to see where 
the references point to. On Android I don’t know whether this command is 
available.
The easiest way out would be to rebuild GNUstep from scratch and see if the 
error persists.

Hope this helps,
Fred

> Am 01.05.2020 um 23:34 schrieb Stefan Pauwels :
> 
> I rebuilt the Android Toolchain with the current state of master today and 
> updated the cmake arguments with "-DANDROID_STL=c++_shared“ according to the 
> examples, but now I’m getting a crash with
> 
>java.lang.UnsatisfiedLinkError: dlopen failed: cannot locate symbol 
> "utext_setup_67" referenced by „(…)==/lib/x86/libgnustep-base.so"…
> 
> Any ideas?
> Thanks!
> 
> Stefan




Re: How to ensure methods are set in my GNUstep build

2020-04-30 Thread Fred Kiefer
HI Gustavo,

that method on NSDateComponents is something that I just did add to the GNUstep 
base source last week. If you really need that code you would have to switch to 
use GNUstep directly from the up to date git repository. Basically you would 
need to update base and start the recompilation from there. Maybe it is easier 
to just start over from scratch again?

Hope this helps,
Fred

PS: As that code is pretty new, expect some glitches in the beginning.


> Am 30.04.2020 um 00:49 schrieb Gustavo Tavares :
> 
>> 
>> I've installed GNUstep using this script from Plaurent: 
>> https://github.com/plaurent/gnustep-build/blob/master/ubuntu-19.10-clang-9.0-runtime-2.0/GNUstep-buildon-ubuntu1910.sh
>> and have been successfully building some projects with it.
>> 
>> For my current project, I'm encountering a build error. I was thinking it 
>> was a config on the GNU install—and later I thought it was something I could 
>> define in a Makefile—but I can't seem to work out how to solve it.
>> 
>> The error is this:
>> 
>> MyFile.m:130:50: error: no visible @interface for 'NSDateComponents' 
>> declares the selector 'valueForComponent:'
>> 
>> I can see that the MAC_OS_VERSION and GS_API_VERSION are somehow determined 
>> in GSVersionMacros.h and that this determines whether to inlcude this 
>> NSDateComponents functionality—but I also don't know where the headers are 
>> in my system. Looking in /usr/GNUstep/System/ and ~/GNUstep/Library/Headers 
>> and I can't echo it out either.
>> 
>> https://github.com/gnustep/libs-base/blob/fc0c0da188eb4ee2800ab9643394aa16660ef6bd/Headers/GNUstepBase/GSVersionMacros.h
>> 
>> Would really appreciate it if someone could help me get this built :) What 
>> do I need to do / invoke?
>> 
>> Thank you!
>> 
>> Gustavo




Re: NSCalendar bug (mktime related)

2020-04-26 Thread Fred Kiefer
I changed a few things in NSCalendar:
First I completed NSDateComponents up to the recent Cocoa specification. That 
part should be fairly complete and correct. 
Next I tried to support more of these components in the existing NSCalendar 
methods. While doing so I noticed some oddities in that class and tried to 
clean those. And while doing that I did get even more confused about the 
interaction with NSLocale. 
Finally I tried to make NSCalendar respect the timezone of NSDateComponents. As 
Stefan already pointed out you have to be careful here not to change the state 
of the calendar itself, but the state currently also includes one ucal object, 
which means that NSCalendar is not multithread safe and that some operations 
may influence later ones. To work around this I am now using a local ucal 
object for -dateFromComponents:.

As I wrote, I am no expert in this area and my changes may have broken some 
stuff. At least the tests (plus my new one) still work. Please give this 
classes some more real testing and feel free to provide test code.

If these changes work out I am willing to implement some of the missing methods 
on NSCalendar.

@Richard:
In the header file NSCalendar.h there are some left over instance variables 
that according to the comments there could be removed in a binary compatibility 
breaking release of base. Are you planing to have the next release to be binary 
compatible or not?

Cheers,
Fred


> Am 25.04.2020 um 16:36 schrieb Stefan Bidigaray :
> 
> Hi Fred/Andreas,
> I wrote all that code, so I'm fairly familiar with it. The code is entirely 
> dependent on ICU's implementation of ucal, so the solution is to simply set 
> the Time Zone value in the ucal. The function to do this is: 
> ucal_setTimeZone() 
> (https://unicode-org.github.io/icu-docs/apidoc/released/icu4c/ucal_8h.html#ae5612988cb9dc282ccda82fda38602b2).
> 
> I no longer have a development machine with GNUstep installed, so I cannot 
> make the changes and test it. There are two methods where this needs to be 
> fixed:
> -dateByAddingComponents:toDate: and -dateFromComponents:.
> 
> The part I'm not totally sure of is if the fix should be done by calling 
> -setTimeZone: or ucal_setTimeZone(). Based on the method descriptions, I 
> believe a call to ucal_setTimeZone should be added to lines NSCalendar.m:546 
> and NSCalendar.m:611 (first a UChar timezone name must be retrieved from the 
> NSTimeZone object) since -setTimeZone: will permanently modify the NSCalendar 
> object.
> 
> Regards
> Stefan
> 
> On Sat, Apr 25, 2020 at 9:58 AM Fred Kiefer  wrote:
> Hi Andreas,
> 
> I checked the code of NSCalendar, which you could have done yourself, this is 
> free software, and we are not using mtkime there. The problem is a lot worse. 
> We just ignore the handed in time zone of the NSDateComponents. This could be 
> repaired but I am no expert on NSCalendar so if anybody else wants to look 
> into this feel free. It would be great to have a few more tests for 
> NSCalendar. Anybody willing to provide a few test cases?
> 
> Fred
> 
> > Am 23.04.2020 um 10:51 schrieb Andreas Fink :
> > 
> > Hello all,
> > 
> > I have run into a very weird thing in conversion from NSStrings to NSDate. 
> > The result is we are always off by 1h under LInux.
> > Under MacOS X I have the same problem but only with mktime() not with 
> > NSCalendar.
> > I am suspecting Gnustep implementation probably uses mktime() in the back 
> > and thus inherits this issue also for NSCalendar.
> > 
> > What I try to do is to convert aNSString with a timestamp which is always 
> > in UTC into a date.
> > So the timestamp I supply has timezone GMT+0 and no daylight savings time.
> > If the current system currently experiences daylight savings time, the 
> > result by mktime is off by 1h even if I specify timezone to be UTC in 
> > struct tm.
> > 
> > Here is a test programm for this:
> > 
> > 
> > #define _BSD_SOURCE
> > #include 
> > #include 
> > #include 
> > time_t test(void)
> > {
> >struct tm tm;
> >   memset(,0, sizeof(tm));
> > 
> > int year = 1970;
> > int month = 1;
> > int day = 1;
> > int hour = 0;
> > int minute = 0;
> > int second = 0;
> >
> > tm.tm_year = year -1900;
> >   tm.tm_mon = month -1,
> > tm.tm_mday = day;
> > tm.tm_hour = hour;
> > tm.tm_min = minute;
> > tm.tm_sec = second;
> > tm.tm_zone = "UTC";
> > tm.tm_isdst = -1;
> > tm.tm_gmtoff = 0;
> >   
> > time_t t = mktime();
> >   return t;
> > }
> > 
> > 
> > int main(in

Re: NSCalendar bug (mktime related)

2020-04-25 Thread Fred Kiefer
Hi Andreas,

I checked the code of NSCalendar, which you could have done yourself, this is 
free software, and we are not using mtkime there. The problem is a lot worse. 
We just ignore the handed in time zone of the NSDateComponents. This could be 
repaired but I am no expert on NSCalendar so if anybody else wants to look into 
this feel free. It would be great to have a few more tests for NSCalendar. 
Anybody willing to provide a few test cases?

Fred

> Am 23.04.2020 um 10:51 schrieb Andreas Fink :
> 
> Hello all,
> 
> I have run into a very weird thing in conversion from NSStrings to NSDate. 
> The result is we are always off by 1h under LInux.
> Under MacOS X I have the same problem but only with mktime() not with 
> NSCalendar.
> I am suspecting Gnustep implementation probably uses mktime() in the back and 
> thus inherits this issue also for NSCalendar.
> 
> What I try to do is to convert aNSString with a timestamp which is always in 
> UTC into a date.
> So the timestamp I supply has timezone GMT+0 and no daylight savings time.
> If the current system currently experiences daylight savings time, the result 
> by mktime is off by 1h even if I specify timezone to be UTC in struct tm.
> 
> Here is a test programm for this:
> 
> 
> #define _BSD_SOURCE
> #include 
> #include 
> #include 
> time_t test(void)
> {
>struct tm tm;
>   memset(,0, sizeof(tm));
> 
> int year = 1970;
> int month = 1;
> int day = 1;
> int hour = 0;
> int minute = 0;
> int second = 0;
>
> tm.tm_year = year -1900;
>   tm.tm_mon = month -1,
> tm.tm_mday = day;
> tm.tm_hour = hour;
> tm.tm_min = minute;
> tm.tm_sec = second;
> tm.tm_zone = "UTC";
> tm.tm_isdst = -1;
> tm.tm_gmtoff = 0;
>   
> time_t t = mktime();
>   return t;
> }
> 
> 
> int main(int argc, const char * argv[])
> {
>   time_t t;
> 
>   setenv("TZ","UTC",1);
>   t = test();
>   printf("TZ=UTC:  t=%d\n",t);
> 
>   setenv("TZ","CET",1);
>   t = test();
>   printf("TZ=CET:  t=%d\n",t);
> 
>   setenv("TZ","CEST",1);
>   t = test();
>   printf("TZ=CEST:  t=%d\n",t);
> 
>   setenv("TZ","Europe/Zurich",1);
>   t = test();
>   printf("TZ=Europe/Zurich:  t=%d\n",t);
> 
> }
> 
> 
> So the timestamp I supply has timezone GMT+0 and no daylight savings time.
> So the time_t value returned should always be 0 but its off by -1h if the 
> envirnment has the timezone set to Europe/Zurich or CET. Interestingly CEST 
> is correct (which is the current timezone in Zurich CET + Daylight savings 
> time)
> 
> TZ=UTC:  t=0
> TZ=CET:  t=-3600
> TZ=CEST:  t=0
> TZ=Europe/Zurich:  t=-3600
> 
> The output of this is indicating that the daylight savings yes/no  from the 
> supplied timezone is ignore as well as the timezone. It always bases the date 
> on the current environmental variable even though the current timezone might 
> not be the one in effect at that date.
> So it assumes that on 1.11970 we had daylight savings time (because TZ says 
> we have now) despite being in January and despite it wasn't in use in that 
> year even.
> 
> Now lets say this is a bug of mktime or maybe a wanted feature. Be is at it 
> is.
> 
> The problem is NSCalendar fails for the same issue.
> 
> 
> This piece of code works under MacOS X but fails under Linux.
> Under NSCalendar I specify the timezone explicitly and TZ environment 
> variable should not be relevant. But if NSCalendar implementation uses 
> mktime, it inherits above strange behaviour.
> 
> NSDate *dateFromStringNSCalendar(NSString *str, const char *ctimezone_str) /* 
> expects -MM-DD hh.mm.ss.SS TZ  timestamps */
> {
> int year;
> int month;
> int day;
> int hour;
> int minute;
> int seconds;
> double subsecond = 0;
> const char *cdate_str;
> const char *ctime_str;
> 
> NSArray *components = [str componentsSeparatedByString:@" "];
> if(components.count >0)
> {
> NSString *s = components[0];
> cdate_str = s.UTF8String;
> }
> if(components.count > 1)
> {
> NSString *s = components[1];
> ctime_str = s.UTF8String;
> }
> if(components.count > 2)
> {
> NSMutableArray *arr =  [components mutableCopy];
> [arr removeObjectsInRange:NSMakeRange(0,2)];
> NSString *s = [arr componentsJoinedByString:@" "];
> ctimezone_str = s.UTF8String;
> }
> 
> /* parsing date */
> sscanf(cdate_str,"%04d-%02d-%02d",
>,
>,
>);
> if(strlen(ctime_str) ==8 ) /* HH:mm:ss.SS */
> {
> sscanf(ctime_str,"%02d:%02d:%02d",
>,
>,
>);
> }
> else if(strlen(ctime_str) >=9  ) /* HH:mm:ss.SS */
> {
> sscanf(ctime_str,"%02d:%02d:%lf",
>,
>,
>);
> seconds = (int)subsecond;
> subsecond = subsecond - 

Re: md5 hashing on GNUstep

2020-04-01 Thread Fred Kiefer
Have a look at libs-base/Source/Additions/NSData+GNUstepBase.m

> Am 01.04.2020 um 19:46 schrieb H. Nikolaus Schaller :
> 
>> 
>> Am 01.04.2020 um 19:43 schrieb Andreas Höschler :
>> 
>> Hi all,
>> 
>> I have the following NSString category 
>> 
>>  @implementation NSString (NSStringJsonExtension)
>> 
>>  - (NSString *)md5
>>{
>> #ifdef __APPLE__
>> const char *cStr = [self UTF8String];
>> unsigned char result[CC_MD5_DIGEST_LENGTH];
>> CC_MD5( cStr, (int)strlen(cStr), result ); // This is the md5 call
>> return [NSString stringWithFormat:
>> @"%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x",
>> result[0], result[1], result[2], result[3], 
>> result[4], result[5], result[6], result[7],
>> result[8], result[9], result[10], result[11],
>> result[12], result[13], result[14], result[15]
>> ];  
>> #else
>> NSLog(@"md5 not yet supported on GNUstep. Please implement");
> 
> https://linux.die.net/man/3/md5_init
> 
> maybe
>   unsigned char *MD5(cStr, strlen(cStr), result);
> 
> You need to install openssl devel packages.
> 
> 
>> return nil;
>> #endif
>>}
>> 
>> @end
>> 
>> working on MacOSX (neede to access HkVision cameras). 
>> 
>> I would like to port this app to GNUstep and therefore need code that builds 
>> on Ubuntu (current GNUstep tree). The above code gives
>> 
>> SRHTTPRequest.m:93:27: error: 'CC_MD5_DIGEST_LENGTH' undeclared (first use 
>> in this function)
>>  unsigned char result[CC_MD5_DIGEST_LENGTH];
>>   ^
>> SRHTTPRequest.m:93:27: note: each undeclared identifier is reported only 
>> once for each function it appears in
>> SRHTTPRequest.m:94:6: warning: implicit declaration of function 'CC_MD5' 
>> [-Wimplicit-function-declaration]
>>  CC_MD5( cStr, (int)strlen(cStr), result ); // This is the md5 call
>>  ^
>> Any idea how to do md5 hashing on Linux/GNUstep?
>> 
>> Thanks a lot in advance!
>> 
>> Andreas




Re: Touch panel keyboard in GNUstep app

2020-03-31 Thread Fred Kiefer
The actual transfer happens in NSWindow makeFirstResponder. You should be able 
to log the current and the future first responder in that method to see who is 
requesting this. And if you run in a debugger and put a break point in this 
method you might be even able to see where this call comes from. But beware, 
this gets called quite a lot and debugging Guidebook applications may be 
difficult. The most likely caller is sendEvent: on NSWindow, but as Wolfgang 
noted this should ignore NSButton.

Fred 

> Am 31.03.2020 um 13:30 schrieb Andreas Höschler :
> 
> Hi Fred,
> 
> in the meanwhile I was able to test the 
> 
> - (void)mouseDown:(NSEvent *)theEvent
> {
>  NSLog(@"mouseDown ...");
>  [NSApp preventWindowOrdering];
> 
>  [self highlight:YES];
> 
>  NSEvent *mouseUpEvent = [[self window] 
> nextEventMatchingMask:NSLeftMouseUpMask untilDate:[NSDate distantFuture] 
> inMode:NSEventTrackingRunLoopMode dequeue:YES];
>  NSPoint mouseLocation = [self convertPoint:[mouseUpEvent locationInWindow] 
> fromView:nil];
>  BOOL mouseUpInside = [self mouse:mouseLocation inRect:[self bounds]];
> 
>  if (mouseUpInside)
>{
> if ([self target]) [[self target] performSelector:[self action] 
> withObject:self]; 
>}  
>  [self highlight:NO];  
> }
> 
> code fragment (NSButton subclass) on GNUstep. And as expected it does not 
> work there. So I am still looking for a solution ...
> 
> Do you know which part in the GNustep source tree resigns fist responder from 
> a currently active control and transfers it to a clicked button? I got 
> somehow lost in the event handling code. 
> 
> Thanks a lot,
> 
>Andreas
> 
> 
> 
>> The method preventWindowOrdering is a NOOP on GNUstep, so it won’t help you. 
>> Put if this is what helps you on MacOS then most likely your touch panel is 
>> stealing the focus. You should try to override canBecomeKeyWindow for that 
>> panel.
>> 
>> Hope this help,
>> Fred
>> 
>>> Am 30.03.2020 um 19:13 schrieb Andreas Höschler :
>>> 
 
> Am 30.03.2020 um 15:19 schrieb Andreas Höschler :
> 
> Hi Fred,
> 
>> in NSButton you find this code:
>> 
>> 
>> - (BOOL) acceptsFirstMouse: (NSEvent *)theEvent
>> {
>> return YES;
>> }
>> 
>> 
>> You will need to write a subclass to handle this different.
> 
> Thanks a lot for your response. I created a subclass KbButton and 
> overwrote this method like so
> 
> - (BOOL)acceptsFirstMouse:(NSEvent *)theEvent
> {
> NSLog(@"%@ returns acceptsFirstMouse NO", self);
> return NO;
> }
> 
> When I click on the button the currently active NSTextField looses first 
> responder and the action of the button is called 
> 
> 30/03/20 14:42:16,912 ScaleMaster[59798]: strike sender  0x7b82ae50> stringValue A
> 
> The method acceptsFirstMouse: of KbButton is never called. So this 
> unfortunately does not work, at least not on MacOSX (dev machine for the 
> project). :-( I will port the code to GNUstep and see whether GNUstep 
> behaves differently. Will let you know ...
 
 Well, yes. I'm afraid Fred's advice is wrong (even though . While the code 
 in -[NSWindow sendEvent:] indeed requires  The method acceptsFirstMouse is 
 supposed to serve a different purpose. When you activate window by 
 clicking onto it, acceptsFirstMouse governs whether this click is passed 
 to the control under the mouse (acceptsFirstMouse returns YES) or whether 
 it is only for activating the window (acceptsFirstMouse returns NO). Your 
 original approach calling setAcceptsFirstResponder: with NO looks right to 
 me. It is just that the code in -[NSEvent sendEvent:] gets the logic 
 wrong. Where it currently says
 if ([v acceptsFirstResponder] && ![self makeFirstResponder: v])
  {
return;
  }
 it should really say
 if (![v acceptsFirstResponder] || ![self makeFirstResponder: v])
  {
return;
  }
>>> 
>>> I got this working on MacOSX by subclassing NSButton and doing 
>>> 
>>> - (void)mouseDown:(NSEvent *)theEvent
>>> {
>>>  NSLog(@"mouseDown ...");
>>>  [NSApp preventWindowOrdering];
>>> 
>>>  [self highlight:YES];
>>> 
>>>  NSEvent *mouseUpEvent = [[self window] 
>>> nextEventMatchingMask:NSLeftMouseUpMask
>>>  untilDate:[NSDate distantFuture] inMode:NSEventTrackingRunLoopMode 
>>> dequeue:YES];
>>>  NSPoint mouseLocation = [self convertPoint:[mouseUpEvent locationInWindow] 
>>> fromView:nil];
>>>  BOOL mouseUpInside = [self mouse:mouseLocation inRect:[self bounds]];
>>> 
>>>  if (mouseUpInside)
>>>{
>>> if ([self target])
>>> [[self target] performSelector:[self action] withObject:self]; 
>>>}  
>>>  [self highlight:NO];  
>>> }
>>> 
>>> I haven't tested that on the GNUstep machine yet. But if it worked there as 
>>> well this would make my day.
>>> 
>>> Best wishes,
>>> 
>>> Andrea
>>> 
>> 

Re: Touch panel keyboard in GNUstep app

2020-03-30 Thread Fred Kiefer
The method preventWindowOrdering is a NOOP on GNUstep, so it won’t help you. 
Put if this is what helps you on MacOS then most likely your touch panel is 
stealing the focus. You should try to override canBecomeKeyWindow for that 
panel.

Hope this help,
Fred

> Am 30.03.2020 um 19:13 schrieb Andreas Höschler :
> 
>> 
>>> Am 30.03.2020 um 15:19 schrieb Andreas Höschler :
>>> 
>>> Hi Fred,
>>> 
 in NSButton you find this code:
 
 
 - (BOOL) acceptsFirstMouse: (NSEvent *)theEvent
 {
 return YES;
 }
 
 
 You will need to write a subclass to handle this different.
>>> 
>>> Thanks a lot for your response. I created a subclass KbButton and overwrote 
>>> this method like so
>>> 
>>> - (BOOL)acceptsFirstMouse:(NSEvent *)theEvent
>>> {
>>> NSLog(@"%@ returns acceptsFirstMouse NO", self);
>>> return NO;
>>> }
>>> 
>>> When I click on the button the currently active NSTextField looses first 
>>> responder and the action of the button is called 
>>> 
>>> 30/03/20 14:42:16,912 ScaleMaster[59798]: strike sender >> 0x7b82ae50> stringValue A
>>> 
>>> The method acceptsFirstMouse: of KbButton is never called. So this 
>>> unfortunately does not work, at least not on MacOSX (dev machine for the 
>>> project). :-( I will port the code to GNUstep and see whether GNUstep 
>>> behaves differently. Will let you know ...
>> 
>> Well, yes. I'm afraid Fred's advice is wrong (even though . While the code 
>> in -[NSWindow sendEvent:] indeed requires  The method acceptsFirstMouse is 
>> supposed to serve a different purpose. When you activate window by clicking 
>> onto it, acceptsFirstMouse governs whether this click is passed to the 
>> control under the mouse (acceptsFirstMouse returns YES) or whether it is 
>> only for activating the window (acceptsFirstMouse returns NO). Your original 
>> approach calling setAcceptsFirstResponder: with NO looks right to me. It is 
>> just that the code in -[NSEvent sendEvent:] gets the logic wrong. Where it 
>> currently says
>> if ([v acceptsFirstResponder] && ![self makeFirstResponder: v])
>>   {
>> return;
>>   }
>> it should really say
>> if (![v acceptsFirstResponder] || ![self makeFirstResponder: v])
>>   {
>> return;
>>   }
> 
> I got this working on MacOSX by subclassing NSButton and doing 
> 
> - (void)mouseDown:(NSEvent *)theEvent
> {
>   NSLog(@"mouseDown ...");
>   [NSApp preventWindowOrdering];
> 
>   [self highlight:YES];
> 
>   NSEvent *mouseUpEvent = [[self window] 
> nextEventMatchingMask:NSLeftMouseUpMask
>   untilDate:[NSDate distantFuture] inMode:NSEventTrackingRunLoopMode 
> dequeue:YES];
>   NSPoint mouseLocation = [self convertPoint:[mouseUpEvent locationInWindow] 
> fromView:nil];
>   BOOL mouseUpInside = [self mouse:mouseLocation inRect:[self bounds]];
> 
>   if (mouseUpInside)
> {
>  if ([self target])
>  [[self target] performSelector:[self action] withObject:self]; 
> }  
>   [self highlight:NO];  
> }
> 
> I haven't tested that on the GNUstep machine yet. But if it worked there as 
> well this would make my day.
> 
> Best wishes,
> 
> Andrea
> 




Re: Touch panel keyboard in GNUstep app

2020-03-25 Thread Fred Kiefer
Hi Andreas,

in NSButton you find this code:


- (BOOL) acceptsFirstMouse: (NSEvent *)theEvent
{
  return YES;
}


You will need to write a subclass to handle this different.

Cheers,
Fred

> Am 25.03.2020 um 18:56 schrieb Andreas Höschler :
> 
> Hi all,
> 
> I am just trying to add a touch panel keyboard feature to some GNUstep app, 
> meaning that I have added a bunch of NSButtons with titles "A", "B", "C",... 
> to the GUI of my app. My plan is to generate and send some key-event whenever 
> a user clicks (actually presses with his finger on a touch screen) on one of 
> the on-screen keyboard buttons. 
> 
> However, for this to work I need to make sure that the keyboard buttons never 
> get first responder but that e.g. an NSTextField in the GUI (first responder 
> before clicking on a key button) stays first responder and receives the 
> programmatically generated key-event. 
> 
> I have run
> 
>   [button setRefusesFirstResponder:YES];
> 
> on the keyboard buttons but this did not do the trick. The NSTextField that 
> is first responder before clicking on one of the key board buttons resigns 
> first responder before the action of the button is executed. :-(
> 
> Any idea how to correctly set this up?
> 
> Thanks a lot in advance!!
> 
> Best, 
> 
>   Andreas
> 
> 




Re: Wayland backend update

2020-01-06 Thread Fred Kiefer
I looked through your patch files and this seems to be great. It would be 
excellent to have a git repository where we could merge this from. You will 
need to assign the copyright for your changes to the FSF of course.
Merging this would make me happy and I am sure Ivan feels the same :-)

Fred

> Am 03.01.2020 um 22:50 schrieb Fred Kiefer :
> 
> Wow, I am impressed that somebody is working on this. I will be away for the 
> long weekend, but I promise to look into your work as soon as I am back.
> 
> Thank you and happy New Year!
> Fred
> 
>> Am 03.01.2020 um 22:36 schrieb Ladislav Michl :
>> 
>> Hi there,
>> 
>> this is quick wayland backend update based on
>> https://github.com/ivucica/libs-back/tree/ivucica-wayland
>> 
>> Note that original Sergio's patch is rebased to current master,
>> the rest is just to make things work somehow again. You can find
>> current work in progress here:
>> https://paste.debian.net/1124403
>> https://paste.debian.net/1124404
>> https://paste.debian.net/1124405
>> https://paste.debian.net/1124406
>> https://paste.debian.net/1124407
>> 
>> ..and a picture: https://ibb.co/DRFmH2T (so you can see there's work left)
>> 
>> This is just to have something to play with again. As I've never touched
>> Wayland nor GNUstep before and another winter holidays are about a year
>> in the future do not expect miracles. I can make some more cleanups
>> and perhaps prepare it for merge, but let's see how many people are
>> actually interested - Debian paste expires in 90 days ;-)
>> 
>> Happy New Year,
>>  ladis
>> 
> 
> 




Re: Wayland backend update

2020-01-03 Thread Fred Kiefer
Wow, I am impressed that somebody is working on this. I will be away for the 
long weekend, but I promise to look into your work as soon as I am back.

Thank you and happy New Year!
Fred

> Am 03.01.2020 um 22:36 schrieb Ladislav Michl :
> 
> Hi there,
> 
> this is quick wayland backend update based on
> https://github.com/ivucica/libs-back/tree/ivucica-wayland
> 
> Note that original Sergio's patch is rebased to current master,
> the rest is just to make things work somehow again. You can find
> current work in progress here:
> https://paste.debian.net/1124403
> https://paste.debian.net/1124404
> https://paste.debian.net/1124405
> https://paste.debian.net/1124406
> https://paste.debian.net/1124407
> 
> ..and a picture: https://ibb.co/DRFmH2T (so you can see there's work left)
> 
> This is just to have something to play with again. As I've never touched
> Wayland nor GNUstep before and another winter holidays are about a year
> in the future do not expect miracles. I can make some more cleanups
> and perhaps prepare it for merge, but let's see how many people are
> actually interested - Debian paste expires in 90 days ;-)
> 
> Happy New Year,
>   ladis
> 




Re: ProjectCenter running or building

2020-01-02 Thread Fred Kiefer



> Am 02.01.2020 um 19:06 schrieb Patryk Laurent :
> 
> 
> It looks like the “name” in LLDB was referring to the binary’s name. So I 
> placed an NSLog right before NSBundle.m:2280 to print out the local variable 
> name and _frameworkVersion — which is null for all the classes being loaded, 
> including “LogPanel”. Please see below. 


Sorry Patryk,
 from now on this is a clang issue and I am no longer of any help here. Maybe 
David has an idea what is going on? It would help to know which version of 
clang used to work and on which version it is failing. The next thing would be 
to write a minimal framework and an application using this to reproduce the 
issue.

Fred


Re: ProjectCenter running or building

2019-12-30 Thread Fred Kiefer
In your examples the name was „ProjectCenter“ not „LogPanel“. You need to 
continue your debugging until you get to that name. Only this resource seems to 
get loaded from a framework. For the other resources having a framework version 
of nil is correct.

Fred

> Am 30.12.2019 um 01:17 schrieb Patryk Laurent :
> 
> On December 29, 2019 at 12:31 PM, Fred Kiefer  wrote:
> 
>> Thank you for your tests. I had a look into the NSBundle code in base and 
>> from that I think that we have an issue with frameworks here. Is clang 
>> supporting frameworks?
>> The code in base doesn’t have any log statements that we could use. So this 
>> means you will have to switch to a debugger and run ProjectCenter with a 
>> breakpoint on NSBundle.m:2280 and wait until we get around with the name 
>> „LogPanel“ and see whether the framework version gets added correctly.
>> 
> 
> From within the debugger I am seeing that _frameworkVersion tends to be nil.  
> And I'm having trouble seeing the values of NSStrings...  so maybe there's 
> something up.
> 
> Patryk
> 
> 
> (base) 
> patryk@wax:~/gnustep-build/ubuntu-19.04-clang-8.0-runtime-2.0/GNUstep-build/apps-projectcenter/ProjectCenter.app$
>  lldb ./ProjectCenter 
> (lldb) target create "./ProjectCenter"
> Current executable set to './ProjectCenter' (x86_64).
> 
> (lldb) breakpoint set --file NSBundle.m --line 2280
> Breakpoint 1: no locations (pending).
> WARNING:  Unable to resolve breakpoint to any actual locations.
> 
> (lldb) run
> Process 3951 launched: 
> '/home/patryk/gnustep-build/ubuntu-19.04-clang-8.0-runtime-2.0/GNUstep-build/apps-projectcenter/ProjectCenter.app/ProjectCenter'
>  (x86_64)
> 1 location added to breakpoint 1
> Process 3951 stopped
> * thread #1, name = 'ProjectCenter', stop reason = breakpoint 1.1
> frame #0: 0x77731997 libgnustep-base.so.1.27`-[NSBundle 
> pathForResource:ofType:inDirectory:](self=0x00683768, _cmd="-", 
> name=0x77a8c978, extension=0xe1b34f3e802c, 
> subPath=0x) at NSBundle.m:2283:7
>2280   NSString *rootPath;
>2281 
>2282 #if !defined(_WIN32)
> -> 2283   if (_frameworkVersion)
>2284 rootPath = [NSString stringWithFormat: @"%@/Versions/%@", [self 
> bundlePath],
>2285   _frameworkVersion];
>2286   else
> 
> (lldb) fr va _frameworkVersion
> (NSString *) _frameworkVersion = nil
> (lldb) n
> Process 3951 stopped
> * thread #1, name = 'ProjectCenter', stop reason = step over
> frame #0: 0x777319e5 libgnustep-base.so.1.27`-[NSBundle 
> pathForResource:ofType:inDirectory:](self=0x00683768, _cmd="-", 
> name=0x77a8c978, extension=0xe1b34f3e802c, 
> subPath=0x) at NSBundle.m:2288:16
>2285   _frameworkVersion];
>2286   else
>2287 #endif
> -> 2288 rootPath = [self bundlePath];
>2289 
>2290   return [NSBundle _pathForResource: name
>2291  ofType: extension
> 
> (lldb) n
> Process 3951 stopped
> * thread #1, name = 'ProjectCenter', stop reason = step over
> frame #0: 0x777319f4 libgnustep-base.so.1.27`-[NSBundle 
> pathForResource:ofType:inDirectory:](self=0x00683768, 
> _cmd=, name=0x77a8c978, extension=0xe1b34f3e802c, 
> subPath=0x) at NSBundle.m:2290:10
>2287 #endif
>2288 rootPath = [self bundlePath];
>2289 
> -> 2290   return [NSBundle _pathForResource: name
>2291  ofType: extension
>2292  inRootPath: rootPath
>2293 inDirectory: subPath];
> 
> (lldb) fr va rootPath
> (NSString *) rootPath = 0x006838a8
> (lldb) 




  1   2   3   4   5   6   7   8   9   10   >