Git Product home page Git Product logo

apps-gworkspace's Issues

Can't compile on Arch Linux

Error code from make is

Linking bundle ImageViewer ...
/usr/bin/ld: ./obj/ImageViewer.obj/Resizer.m.o:(.bss+0x0): multiple definition of `serverConnection'; ./obj/ImageViewer.obj/ImageViewer.m.o:(.bss+0x0): first defined here
collect2: error: ld returned 1 exit status
make[6]: *** [/usr/share/GNUstep/Makefiles/Instance/bundle.make:205: ImageViewer.inspector/./ImageViewer] Error 1
make[5]: *** [/usr/share/GNUstep/Makefiles/Instance/bundle.make:193: internal-bundle-run-compile-submake] Error 2
make[4]: *** [/usr/share/GNUstep/Makefiles/Master/rules.make:297: ImageViewer.all.bundle.variables] Error 2
make[3]: *** [/usr/share/GNUstep/Makefiles/Master/bundle.make:37: internal-all] Error 2
make[2]: *** [/usr/share/GNUstep/Makefiles/Master/serial-subdirectories.make:53: internal-all] Error 2
make[1]: *** [/usr/share/GNUstep/Makefiles/Master/serial-subdirectories.make:53: internal-all] Error 2
make: *** [/usr/share/GNUstep/Makefiles/Master/serial-subdirectories.make:53: internal-all] Error 2

keyboard prefix selection and navigation

Some UI behaviour.
I just introduced that once enter opens a file, the prefix buffer is reset.

Should navigating with arrows and thus select another item reset it?
Should mouse-clicking clear it?

DBKit linking against installed instead of local copy....

Steps:

  1. build GWorkspace and install after installing GNUstep
  2. make ABI incompatible change
  3. rebuild GWorkspace (without doing make uninstall)

Result: you will get an error building fswatcher, since it links with the installed DBKit.
Expected: fswatcher should build and link against the built DBKit in the build dir, not the system installed version.

GWorkspace is failing to build

Making all for tool fswatcher...
Compiling file fswatcher.m ...
Linking tool fswatcher ...
/usr/GNUstep/System/Library/Libraries/libDBKit.so: error: undefined reference to '__objc_class_name_NSAutoreleasePool'
/usr/GNUstep/System/Library/Libraries/libDBKit.so: error: undefined reference to '__objc_class_name_NSMutableData'
/usr/GNUstep/System/Library/Libraries/libDBKit.so: error: undefined reference to '__objc_class_name_NSNumber'
/usr/GNUstep/System/Library/Libraries/libDBKit.so: error: undefined reference to '__objc_class_name_NSData'
/usr/GNUstep/System/Library/Libraries/libDBKit.so: error: undefined reference to '__objc_class_name_NSMutableSet'
/usr/GNUstep/System/Library/Libraries/libDBKit.so: error: undefined reference to '__objc_class_name_NSFileHandle'
/usr/GNUstep/System/Library/Libraries/libDBKit.so: error: undefined reference to '__objc_class_name_NSMutableDictionary'
/usr/GNUstep/System/Library/Libraries/libDBKit.so: error: undefined reference to '__objc_class_name_NSFileManager'
/usr/GNUstep/System/Library/Libraries/libDBKit.so: error: undefined reference to '__objc_class_name_NSObject'
/usr/GNUstep/System/Library/Libraries/libDBKit.so: error: undefined reference to '__objc_class_name_NSMutableArray'/usr/GNUstep/System/Library/Libraries/libDBKit.so: error: undefined reference to '__objc_class_name_NSRecursiveLock'
/usr/GNUstep/System/Library/Libraries/libDBKit.so: error: undefined reference to '__objc_class_name_NSException'
/usr/GNUstep/System/Library/Libraries/libDBKit.so: error: undefined reference to 'objc_class_name_NSString'
clang-9: error: linker command failed with exit code 1 (use -v to see invocation)
/usr/GNUstep/System/Library/Makefiles/Instance/tool.make:89: recipe for target 'obj/fswatcher' failed
make[5]: *** [obj/fswatcher] Error 1
/usr/GNUstep/System/Library/Makefiles/Instance/tool.make:74: recipe for target 'internal-tool-all
' failed
make[4]: *** [internal-tool-all
] Error 2
/usr/GNUstep/System/Library/Makefiles/Master/rules.make:297: recipe for target 'fswatcher.all.tool.variables' failed
make[3]: *** [fswatcher.all.tool.variables] Error 2
/usr/GNUstep/System/Library/Makefiles/Master/tool.make:71: recipe for target 'internal-all' failed
make[2]: *** [internal-all] Error 2
/usr/GNUstep/System/Library/Makefiles/Master/serial-subdirectories.make:53: recipe for target 'internal-all' failedmake[1]: *** [internal-all] Error 2
/usr/GNUstep/System/Library/Makefiles/Master/serial-subdirectories.make:53: recipe for target 'internal-all' failedmake: *** [internal-all] Error 2
heron@hal-hc-vm apps-gworkspace %

On error Content Inspector shows wrong Icon

Content Inspector shows both the file icon and the resized content.
If first a file is shown with valid icon and content, then a file with invalid content is selected, the old icon remains displayed.

rename SympleDialog

looks like a typo... SimpleDialog comes to my mind, but a better name accepted.

Fiend drag operations

verify Fiend Drag operations
Move & Copy have little sense, probably generic has to be used, since it is either docking the item or using it as an argument.

GWorkspace won't start when built with PDFKit support

I have built and installed PDFKit from https://github.com/gnustep/gap

Then I proceed to build and install GWorkspace:

./configure
make -j4
sudo -E make install

After installing, I try to open GWorkspace:

openapp GWorkspace

But it won't start. I only see this message in terminal:

Unknown protocol versionzsh: IOT instruction (core dumped)  openapp GWorkspace

And immediately terminates.

If I uninstall PDFKit, then uninstall, clean, configure, make and install againt GWorkspace, it opens and works without any issue.

reproducible crasher creating many files in ~/Desktop

I'm on OpenBSD amd64, and when I run the following in ~/Desktop

for I in $(jot 255);do touch $I.txt;done

running latest released versions of gnustep-base, gui, and back, GWorkspace 1.0.0, but the crasher also initially observed in the prior version.

GWorkspace crashes with following backtrace:

Program received signal SIGSEGV, Segmentation fault.
0x0000012f5a209a56 in -[GWDesktopView tile] (self=0x131f3271808, _cmd=0x12f5a2c8ec0 <objc_selector_list+1184>) at Desktop/GWDesktopView.m:222
222           if (NSEqualRects(grid[index], [icon frame]) == NO) {
(gdb) bt
#0  0x0000012f5a209a56 in -[GWDesktopView tile] (self=0x131f3271808, _cmd=0x12f5a2c8ec0 <objc_selector_list+1184>) at Desktop/GWDesktopView.m:222
#1  0x0000012f5a2100be in -[GWDesktopView(NodeRepContainer) watchedPathChanged:] (self=0x131f3271808, _cmd=0x12f5a2bb9c8 <objc_selector_list+2208>, info=0x131bb3f3988) at Desktop/GWDesktopView.m:1244
#2  0x0000012f5a20557f in -[GWDesktopManager watcherNotification:] (self=0x131bc228e08, _cmd=0x12f5a2bb9d8 <objc_selector_list+2224>, notif=0x131b9b204c8) at Desktop/GWDesktopManager.m:551
#3  0x00000131d02b89fe in -[NSObject performSelector:withObject:] (self=0x131bc228e08, _cmd=0x131d04c2318 <objc_selector_list+464>, aSelector=0x12f5a2bb9d8 <objc_selector_list+2224>, 
    anObject=0x131b9b204c8) at NSObject.m:2022
#4  0x00000131d02a1729 in -[NSNotificationCenter _postAndRelease:] (self=0x1320c42dfc8, _cmd=0x131d04c2268 <objc_selector_list+288>, notification=0x131b9b204c8) at NSNotificationCenter.m:1198
#5  0x00000131d02a1ef5 in -[NSNotificationCenter postNotificationName:object:userInfo:] (self=0x1320c42dfc8, _cmd=0x131d04c2328 <objc_selector_list+480>, name=0x12f5a2a7fd0 <objc_str>, 
    object=0x131bb3f3988, info=0x0) at NSNotificationCenter.m:1273
#6  0x00000131d02a1dd3 in -[NSNotificationCenter postNotificationName:object:] (self=0x1320c42dfc8, _cmd=0x12f5a2ab870 <objc_selector_list+5440>, name=0x12f5a2a7fd0 <objc_str>, object=0x131bb3f3988)
    at NSNotificationCenter.m:1253
#7  0x0000012f5a1f6528 in -[GWorkspace watchedPathDidChange:] (self=0x1317fd98c08, _cmd=0x132540c4a90 <objc_selector_list+1040>, dirinfo=0x131b9b22688) at GWorkspace.m:1856
#8  0x000001321f810b8d in ffi_call_unix64 () from /usr/local/lib/libffi.so.1.2
#9  0x000001321f81025d in ffi_call_int () from /usr/local/lib/libffi.so.1.2
#10 0x00000131d03d4918 in GSFFIInvokeWithTargetAndImp (inv=0x132258ed788, anObject=0x1317fd98c08, imp=0x12f5a1f63b0 <-[GWorkspace watchedPathDidChange:]>) at GSFFIInvocation.m:370
#11 0x00000131d03d4f2a in -[GSFFIInvocation invokeWithTarget:] (self=0x132258ed788, _cmd=0x131d04aa068 <objc_selector_list+224>, anObject=0x1317fd98c08) at GSFFIInvocation.m:452
#12 0x00000131d026c188 in -[NSInvocation invoke] (self=0x132258ed788, _cmd=0x131d04851c0 <objc_selector_list+464>) at NSInvocation.m:673
#13 0x00000131d01ec7b0 in -[NSConnection(Private) _service_forwardForProxy:] (self=0x131908f2e08, _cmd=0x131d0485400 <objc_selector_list+1040>, aRmc=0x13181487208) at NSConnection.m:2721
#14 0x00000131d01ea9a0 in -[NSConnection(Private) handlePortMessage:] (self=0x1323c430a08, _cmd=0x131d0536408 <objc_selector_list+768>, msg=0x131b9b20508) at NSConnection.m:2320
#15 0x00000131d03c2f86 in -[NSMessagePort handlePortMessage:] (self=0x13247c4ffc8, _cmd=0x131d0536408 <objc_selector_list+768>, m=0x131b9b20508) at NSMessagePort.m:1581
#16 0x00000131d03bfc42 in -[GSMessageHandle receivedEvent:type:extra:forMode:] (self=0x131908f2808, _cmd=0x131d0536638 <objc_selector_list+1328>, data=0x13247c4ffc8, type=ET_RPORT, extra=0x13, 
    mode=0x131d04e6ad0 <objc_str>) at NSMessagePort.m:884
#17 0x00000131d03c3824 in -[NSMessagePort receivedEvent:type:extra:forMode:] (self=0x13247c4ffc8, _cmd=0x131d0565af0 <objc_selector_list+368>, data=0x13247c4ffc8, type=ET_RPORT, extra=0x13, 
    mode=0x131d04e6ad0 <objc_str>) at NSMessagePort.m:1710
#18 0x00000131d0428fab in -[GSRunLoopCtxt pollUntil:within:] (self=0x131b4235e08, _cmd=0x131d04e7d70 <objc_selector_list+1216>, milliseconds=1482, contexts=0x131bb3cb308) at GSRunLoopCtxt.m:600
#19 0x00000131d030bf5c in -[NSRunLoop acceptInputForMode:beforeDate:] (self=0x131bb3d7a48, _cmd=0x131d04e7cb0 <objc_selector_list+1024>, mode=0x131d04e6ad0 <objc_str>, limit_date=0x13211ffd328)
    at NSRunLoop.m:1254
#20 0x00000131d030c4a7 in -[NSRunLoop runMode:beforeDate:] (self=0x131bb3d7a48, _cmd=0x132362c3198 <objc_selector_list+736>, mode=0x131d04e6ad0 <objc_str>, date=0x131d2a02d68) at NSRunLoop.m:1334
#21 0x000001323600f085 in -[GSDisplayServer(EventOps) getEventMatchingMask:beforeDate:inMode:dequeue:] (self=0x131bb3ce808, _cmd=0x131bcce7f80, mask=4294967295, limit=0x131d2a02d68, 
    mode=0x131d04e6ad0 <objc_str>, flag=1 '\001') at GSDisplayServer.m:1041
#22 0x0000013235d96b88 in DPSGetEvent (ctxt=0x131bb3ce808, mask=4294967295, limit=0x131d2a02d68, mode=0x131d04e6ad0 <objc_str>) at ../Headers/Additions/GNUstepGUI/GSDisplayServer.h:201
#23 0x0000013235d9798a in -[NSApplication nextEventMatchingMask:untilDate:inMode:dequeue:] (self=0x13221e39208, _cmd=0x132360ef480 <objc_selector_list+5072>, mask=4294967295, 
    expiration=0x131d2a02d68, mode=0x131d04e6ad0 <objc_str>, flag=1 '\001') at NSApplication.m:2202
#24 0x0000013235d95b52 in -[NSApplication run] (self=0x13221e39208, _cmd=0x12f5a29ac20 <objc_selector_list+48>) at NSApplication.m:1576
#25 0x0000012f5a1e8873 in gnustep_base_user_main (argc=1, argv=0x7f7ffffcdf88, env=0x7f7ffffcdf98) at main.m:38
#26 0x00000131d02f0467 in main (argc=1, argv=0x7f7ffffcdf88, env=0x7f7ffffcdf98) at NSProcessInfo.m:1008
#27 0x0000012f5a1e85b8 in _start ()
(gdb) frame 0
#0  0x0000012f5a209a56 in -[GWDesktopView tile] (self=0x131f3271808, _cmd=0x12f5a2c8ec0 <objc_selector_list+1184>) at Desktop/GWDesktopView.m:222
222           if (NSEqualRects(grid[index], [icon frame]) == NO) {
(gdb) print index
$1 = -1
(gdb) print grid[index]
$2 = {origin = {x = 0, y = 0}, size = {width = 0, height = 0}}
(gdb) print [icon frame]
$3 = {origin = {x = 0, y = 0}, size = {width = 64, height = 70}}
(gdb) list
217       for (i = 0; i < [icons count]; i++) {
218         FSNIcon *icon = [icons objectAtIndex: i];
219         int index = [icon gridIndex];
220       
221         if (index < gridcount) {
222           if (NSEqualRects(grid[index], [icon frame]) == NO) {
223             [icon setFrame: grid[index]];
224           }
225         } else {
226           int freeindex = [self firstFreeGridIndex];
(gdb) print index
$4 = -1
(gdb) print gridcount
$5 = 1512865688

Maybe an NS(U)Integer vs. int problem, or something within the logic. I tried to move everything to NSUInteger and the -1 to NSNotFound, but that didn't work out, maybe must have overlooked something, or well, it's somewhere in the logic.

check uninitialized operation warnings

FSNListView.m: In function '-[FSNListViewDataSource addColumn:]':
FSNListView.m:170:3: warning: passing argument 1 of 'initWithIdentifier:' from distinct Objective-C type
  170 |   NSTableColumn *column = [[NSTableColumn alloc] initWithIdentifier: identifier];
      |   ^~~~~~~~~~~~~
FSNBrowserColumn.m: In function '-[FSNBrowserColumn(DraggingDestination) concludeDragOperation:]':
FSNBrowserColumn.m:1503:3: warning: 'operation' may be used uninitialized [-Wmaybe-uninitialized]
 1503 |   [opDict setObject: operation forKey: @"operation"];
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
FSNBrowserColumn.m:1433:13: note: 'operation' was declared here
 1433 |   NSString *operation, *source;
      |             ^~~~~~~~~
FSNIcon.m: In function '-[FSNIcon(DraggingDestination) concludeDragOperation:]':
FSNIcon.m:1830:7: warning: 'operation' may be used uninitialized [-Wmaybe-uninitialized]
 1830 |       [opDict setObject: operation forKey: @"operation"];
      |       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
FSNIcon.m:1742:13: note: 'operation' was declared here
 1742 |   NSString *operation, *source;
      |             ^~~~~~~~~
FSNIconsView.m: In function '-[FSNIconsView(DraggingDestination) concludeDragOperation:]':
FSNIconsView.m:2272:3: warning: 'operation' may be used uninitialized [-Wmaybe-uninitialized]
 2272 |   [opDict setObject: operation forKey: @"operation"];
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
FSNIconsView.m:2199:13: note: 'operation' was declared here
 2199 |   NSString *operation, *source;
      |             ^~~~~~~~~
FSNBrowserColumn.m: In function '-[FSNBrowserColumn(DraggingDestination) concludeDragOperation:inMatrixCell:]':
FSNBrowserColumn.m:1749:7: warning: 'operation' may be used uninitialized [-Wmaybe-uninitialized]
 1749 |       [opDict setObject: operation forKey: @"operation"];
      |       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
FSNBrowserColumn.m:1675:13: note: 'operation' was declared here
 1675 |   NSString *operation, *source;
      |             ^~~~~~~~~
FSNListView.m: In function '-[FSNListViewDataSource(DraggingDestination) listViewConcludeDragOperation:]':
FSNListView.m:2012:5: warning: 'operation' may be used uninitialized [-Wmaybe-uninitialized]
 2012 |     [opDict setObject: operation forKey: @"operation"];
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
FSNListView.m:1931:15: note: 'operation' was declared here
 1931 |     NSString *operation, *source;
      |  

Fiend/FiendLeaf.m: In function '-[FiendLeaf(DraggingDestination) concludeDragOperation:]':
Fiend/FiendLeaf.m:694:20: warning: 'operation' may be used uninitialized [-Wmaybe-uninitialized]
  693 |       [gw performFileOperation: operation source: source
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  694 |                    destination: [node path] files: files tag: &tag];
      |                    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Fiend/FiendLeaf.m:654:17: note: 'operation' was declared here


rationalize drag operation checks

drag operation and mask mapping is uplicated in many classes and among different methods. Try using inheritance and utility methods to clean this up.

Content Inspector shows garbage for certain 16 bit images

Apparently the preconditions are:

  • image is small and doesn't need to be resized
  • image is in 16bit monochrome format in PNG
    the same image in TIFF format works.

A guess could be the difference in color space, the two images report:

NSCalibratedWhiteColorSpace (PNG, broken)
NSDeviceWhiteColorSpace (TIFF, works)

The affected code is in Resizer.m

moving a directory into a remote location results in data-loss

This is a critical bug and involves data loss.

I've tried this with NFS directories and SSHFS.

This can be reproduced on GWorkspace 1.0 and -git, with GNUstep's -git as well as the tarballs for Make v2.9.0, Base v1.28.0, GUI v0.29.0, Back v0.29.0

Steps to reproduce:

  1. Create a directory with some dummy files in it on a local hard disk drive.
  2. Cut or copy the directory into a remote location, either one mounted via NFS or SSHFS.
  3. You will discover that only the directory has been moved, and none of the files within, as well as sub-directories, exist.
  4. If you cut the directory from the local location, you will experience data loss.

Notes:
Running GWorkspace in a Terminal does not output anything of note.

remove old SUPPORTS_XOR

in GWDesktopView there is still workaround code for GUI 0.22

It is old enough so that we can drop it.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.