Git Product home page Git Product logo

apps-gworkspace's Introduction

GWorkspace is GNUstep's Workspace Manager and offers a File Manager and an optional Desktop with associated services and tools.
Inspired by the NeXT workspace manager, it incorporates modern features and offers many conveniencies.

File Manager:
     * Classical column browser view
     * List view
     * Icons view with possibility of Thumbnails

Recycler (stand-alone or integrated in Desktop's Dock)

Desktop (can be shown or hidden) with Dock and Tabbed shelf to keep order in favourites and running applications.

Contents inspector with image previewing and extensible through plug-in bundles.

Volume checking and unmounting.

Optional search (database backed) and live folders.

GWorkspace implements NSWorkspace, so it offers to GNUstep applications services to open files through it as well as copy and recycle operations.

apps-gworkspace's People

Contributors

buzzdeee avatar ericwa avatar gcasa avatar ivucica avatar koluckirafal avatar nico-31415 avatar rfm avatar rmottola avatar wlux avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

apps-gworkspace's Issues

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.

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

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 %

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.

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

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.

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.

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.

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.