Difference between revisions of "User FAQ"

From GNUstepWiki
Jump to navigation Jump to search
m (removed unnecessary level-1 heading and newlines)
(Updated for paragraphs)
Line 1: Line 1:
 
{{stub}}
 
{{stub}}
  
[[Category:FAQ]]
 
  
 
== GNUstep General Information ==
 
== GNUstep General Information ==
=== What is GNUstep? ===
+
=== What is GNUstep? ===
=== What is the OpenStep standard? ===
+
GNUstep is the Free Software Foundation's effort to implement NeXT Software, Inc.'s (now Apple Computer, Inc.) [[OpenStep]] Standard. Also we are building developer and user applications based on this standard which may someday be used to form a complete desktop experience. For more details, take a look at the [[Introduction to GNUstep|introduction]].
=== What platforms does GNUstep run on? ===
+
 
=== Does GNUstep run on Windows? ===
+
=== What is the OpenStep standard? ===
 +
OpenStep is an Application Programming Interface (API) for creating applications using the Objective-C language. It was published by NeXT Computer, Inc. in 1994.
 +
 
 +
OpenStep consists of three parts: the `Foundation Kit', a library of non-graphical objects; the `Application Kit', a library of objects useful in creating graphical applications; and the `Display PostScript System' (DPS), an interface for drawing to the screen using the PostScript graphics language. DPS support is not being persued at this time however.
 +
 
 +
You can obtain a copy of the OpenStep standard from the GNUstep web site http://www.gnustep.org or it's mirror sites.
 +
 
 +
=== What platforms does GNUstep run on? ===
 +
See the list of [[Platform compatibility|supported platforms]] for information on what machines GNUstep builds on and what the status of the ports is. Probably a few days porting to any other UNIX system where current gcc compilers and gdb debugger work.
 +
 
 +
=== Does GNUstep run on Windows? ===
 +
The primary targets for GNUstep are free UNIX system-based platforms such as GNU/Linux and FreeBSD.
 +
 
 +
That being said, the base library should run on Windows NT, 98, 2000, and XP with the Cygwin UNIX system-emulation environment from Cygnus (http://www.cygwin.com/), or the MinGW environment (http://www.mingw.org).
 +
 
 +
The GUI library uses the win32 backend library to work under Windows. The backend library is a thin layer that converts the GNUstep methods to handle drawing of GUI elements to calls to the Windows API. This project is currently in beta.
 +
 
 
=== What is GNUstep's position towards KDE and the GNOME project? ===   
 
=== What is GNUstep's position towards KDE and the GNOME project? ===   
=== How can I get GNUstep? ===
+
You can use GNUstep with GNOME and/or KDE. GNUstep displays on top of X11. You can still do programming in C (since Objective-C is just a super-set of C), and when GCC gets around to it, you'll be able to mix C++ and Objective-C code in the same file.
=== How do you run GNUstep? ===
+
 
=== Is there a web site? ===
+
GNUstep, is much more than a window manager or desktop environment. It frees you to develop cross-platform applications without the work of developing an OS independent framework from scratch. It gives you lots of basic functionality, from font panels to Unicode strings to distributed objects.
=== When is GNUstep intended to be available? ===
+
 
 +
=== How can I get GNUstep? ===
 +
Many distributions include packaged versions of GNUstep (Debian, etc). To compile from sratch, download the GNUstep Startup package or take a look at [[Platform compatibility]] list. Get the latest releases from [ftp://ftp.gnustep.org/pub/gnustep/core FTP].
 +
 
 +
=== How do you run GNUstep? ===
 +
You are presumably under the misapprehension that GNUstep is some sort of program or window manager.
 +
 
 +
It isn't.
 +
 
 +
GNUstep is a whole load of things -- primarily a set of libraries for developing software.
 +
 
 +
At present, it's those libraries, plus various command-line based support tools and service providing daemons, plus various GUI development tools, a GUI desktop/workspace application, etc.
 +
 
 +
At no stage will you ever 'run' GNUstep -- you will run applications and tools and will make use of it's services. At some point you may well find packages distributed as 'GNUstep' systems in the way that you get 'GNU/Linux' systems packaged today. Look at Simply GNUstep http://simplygnustep.sourceforge.net/ for instance.
 +
 
 +
If you want to see a sample GUI application running you need to build GNUstep and look at the example applications in the gnustep-examples package. Build 'Finger' or 'Ink' and start it with 'openapp Finger.app' or 'openapp Ink.app'
 +
 
 +
To look best, use WindowMaker (the currently preferred GNUstep window manager) as your window manager.
 +
 
 +
=== Is there a web site? ===
 +
See http://www.gnustep.org/.
 +
 
 +
=== When is GNUstep intended to be available? ===
 +
It's usable now. Major releases are made about every six months. However, if you are a serious developer, it's probably best to use the latest snapshots.
 +
 
 
=== What is usable? ===   
 
=== What is usable? ===   
 +
Most of GNUstep is quite usable and there are many complex applications that work well. However, GNUstep does not completely track the latest changes that Apple makes to their interface and there are still some parts that need some work).
 +
 +
What does this mean for users? Many applications will run quite well. Applications that require very complex text handling and some unusual features and/or some of the latest additions to Cocoa may not work as well.
 +
  
 
== Compiling and Installing ==
 
== Compiling and Installing ==
=== How do I compile GNUstep on my machine? ===
+
=== How do I compile GNUstep on my machine? ===
=== Are there any precompiled packages available? ===
+
Read the file `GNUstep-HOWTO', which comes with the GNUstep distribution (gnustep-make), and also is available separately on the GNUstep web site.
=== What are these type and size warnings? ===   
+
 
 +
=== Are there any precompiled packages available? ===
 +
Check http://www.gnustep.org/resources/sources.html for links to RPMs, Debian packages, and BSD ports. There's also Windows installers, Mac OS X binaries and others.
 +
 
 +
=== What are these type and size warnings? ===
 +
These warnings:
 +
   /usr/bin/ld: warning: type and size of dynamic symbol
 +
  `__objc_class_name_NSConstantString' are not defined
 +
are a common occurence and are due to a mismatch between gcc and ld. They don't do any harm so they can be safely ignored. They have been fixed in GCC version 3.1.
 +
 
 
=== What are these import warnings? ===   
 
=== What are these import warnings? ===   
 +
Do you get this obnoxious warning whenever you compile an application, tool, or Objective-C program:
 +
  warning: using `#import' is not recommended
 +
  [...]
 +
Up until gcc 3.4, the #import directive was not implemented correctly. As a result, the GCC compiler automatically emitted a warning whenever #import was used. As of gcc 3.4, this problem has been fixed, so presumably, this warning is no longer emitted when code is compiled. If you are using an early compiler, you can supress these warnings by adding -Wno-import to your include (cpp) flags.
 +
  
 
== Compatibility and Layout ==
 
== Compatibility and Layout ==
Line 27: Line 84:
 
=== What's up with the directory structure? ===   
 
=== What's up with the directory structure? ===   
 
=== Why not use framework bundles? ===   
 
=== Why not use framework bundles? ===   
 +
  
 
== Troubleshooting ==
 
== Troubleshooting ==
Line 36: Line 94:
 
=== No characters displayed ===   
 
=== No characters displayed ===   
 
=== No Makefile ===   
 
=== No Makefile ===   
 +
  
 
== Misc ==
 
== Misc ==
Line 60: Line 119:
  
 
Take a look at the [[Objective-C]] page.
 
Take a look at the [[Objective-C]] page.
 +
 +
 +
 +
[[Category:FAQ]]

Revision as of 10:53, 9 September 2006

This article or section is a stub (i.e., in need of additional material).
You can help us by expanding it


GNUstep General Information

What is GNUstep?

GNUstep is the Free Software Foundation's effort to implement NeXT Software, Inc.'s (now Apple Computer, Inc.) OpenStep Standard. Also we are building developer and user applications based on this standard which may someday be used to form a complete desktop experience. For more details, take a look at the introduction.

What is the OpenStep standard?

OpenStep is an Application Programming Interface (API) for creating applications using the Objective-C language. It was published by NeXT Computer, Inc. in 1994.

OpenStep consists of three parts: the `Foundation Kit', a library of non-graphical objects; the `Application Kit', a library of objects useful in creating graphical applications; and the `Display PostScript System' (DPS), an interface for drawing to the screen using the PostScript graphics language. DPS support is not being persued at this time however.

You can obtain a copy of the OpenStep standard from the GNUstep web site http://www.gnustep.org or it's mirror sites.

What platforms does GNUstep run on?

See the list of supported platforms for information on what machines GNUstep builds on and what the status of the ports is. Probably a few days porting to any other UNIX system where current gcc compilers and gdb debugger work.

Does GNUstep run on Windows?

The primary targets for GNUstep are free UNIX system-based platforms such as GNU/Linux and FreeBSD.

That being said, the base library should run on Windows NT, 98, 2000, and XP with the Cygwin UNIX system-emulation environment from Cygnus (http://www.cygwin.com/), or the MinGW environment (http://www.mingw.org).

The GUI library uses the win32 backend library to work under Windows. The backend library is a thin layer that converts the GNUstep methods to handle drawing of GUI elements to calls to the Windows API. This project is currently in beta.

What is GNUstep's position towards KDE and the GNOME project?

You can use GNUstep with GNOME and/or KDE. GNUstep displays on top of X11. You can still do programming in C (since Objective-C is just a super-set of C), and when GCC gets around to it, you'll be able to mix C++ and Objective-C code in the same file.

GNUstep, is much more than a window manager or desktop environment. It frees you to develop cross-platform applications without the work of developing an OS independent framework from scratch. It gives you lots of basic functionality, from font panels to Unicode strings to distributed objects.

How can I get GNUstep?

Many distributions include packaged versions of GNUstep (Debian, etc). To compile from sratch, download the GNUstep Startup package or take a look at Platform compatibility list. Get the latest releases from FTP.

How do you run GNUstep?

You are presumably under the misapprehension that GNUstep is some sort of program or window manager.

It isn't.

GNUstep is a whole load of things -- primarily a set of libraries for developing software.

At present, it's those libraries, plus various command-line based support tools and service providing daemons, plus various GUI development tools, a GUI desktop/workspace application, etc.

At no stage will you ever 'run' GNUstep -- you will run applications and tools and will make use of it's services. At some point you may well find packages distributed as 'GNUstep' systems in the way that you get 'GNU/Linux' systems packaged today. Look at Simply GNUstep http://simplygnustep.sourceforge.net/ for instance.

If you want to see a sample GUI application running you need to build GNUstep and look at the example applications in the gnustep-examples package. Build 'Finger' or 'Ink' and start it with 'openapp Finger.app' or 'openapp Ink.app'

To look best, use WindowMaker (the currently preferred GNUstep window manager) as your window manager.

Is there a web site?

See http://www.gnustep.org/.

When is GNUstep intended to be available?

It's usable now. Major releases are made about every six months. However, if you are a serious developer, it's probably best to use the latest snapshots.

What is usable?

Most of GNUstep is quite usable and there are many complex applications that work well. However, GNUstep does not completely track the latest changes that Apple makes to their interface and there are still some parts that need some work).

What does this mean for users? Many applications will run quite well. Applications that require very complex text handling and some unusual features and/or some of the latest additions to Cocoa may not work as well.


Compiling and Installing

How do I compile GNUstep on my machine?

Read the file `GNUstep-HOWTO', which comes with the GNUstep distribution (gnustep-make), and also is available separately on the GNUstep web site.

Are there any precompiled packages available?

Check http://www.gnustep.org/resources/sources.html for links to RPMs, Debian packages, and BSD ports. There's also Windows installers, Mac OS X binaries and others.

What are these type and size warnings?

These warnings:

 /usr/bin/ld: warning: type and size of dynamic symbol
 `__objc_class_name_NSConstantString' are not defined

are a common occurence and are due to a mismatch between gcc and ld. They don't do any harm so they can be safely ignored. They have been fixed in GCC version 3.1.

What are these import warnings?

Do you get this obnoxious warning whenever you compile an application, tool, or Objective-C program:

 warning: using `#import' is not recommended
 [...]

Up until gcc 3.4, the #import directive was not implemented correctly. As a result, the GCC compiler automatically emitted a warning whenever #import was used. As of gcc 3.4, this problem has been fixed, so presumably, this warning is no longer emitted when code is compiled. If you are using an early compiler, you can supress these warnings by adding -Wno-import to your include (cpp) flags.


Compatibility and Layout

Can I run NeXT OPENSTEP or Mac OS X programs on GNUstep?

Is GNUstep following changes to OpenStep and Mac OS X?

Do we have to have the NEXTSTEP look and feel?

What's up with the directory structure?

Why not use framework bundles?

Troubleshooting

Problems compiling (loading shared libs)

Problems compiling (GNUstep Internal Error)

Problems with Alt key

Problems with gcc3

Problems with fonts

No characters displayed

No Makefile

Misc

Why don't you just have Gorm output Renaissance files?

Philosophical and architectural incompatibilities.

Is there a way to install GNUstep on Mac OS X?

Yes!

Is there any way to use gnustep-make and gnustep-base without using openapp/opentool?

Can GNUstep help with porting applications from MacOS-X? Is there any HOWTO on that? See for example Tamsys. How difficult it should be to port it to Linux and GNUstep?

Somehow relevant may be discussion on How to port to GNUstep Answered. Unfortunately this link is broken now. Dredge around in the google discussion group, I guess. I couldn't find anything helpful.

Can I deploy my GNUstep application without requiring people to install GNUstep?

No. Compare it to running Java applications without people requiring to install Java runtime environment.

How can I get more information on Objective-C ?

Take a look at the Objective-C page.