Novell Linux SDK

Table of Contents

Overview
Platforms
Languages
Tools
IDEs and Related Tools
Web and Graphics
Documentation Utilities
Other Tools and Libraries
YAST
Known Issues
Further Information

Abstract

This document gives you an overview of the Novell SUSE LINUX SDK contents, a brief explanation of each included tool, and where you can go to get more detailed information.

Overview

This SDK is a comprehensive tool kit that supports application development for SUSE LINUX Enterprise Server (SLES) 9 and Novell Linux Desktop (NLD). In fact, to provide you a comprehensive build system, this SDK includes all the open source tools that were used to build the SLES product. It provides you, as a developer, Independent Software Vendor (ISV), or Independent Hardware Vendor (IHV), all the tools you need to port applications to all of the platforms supported by SLES and NLD.

The SDK also contains integrated development environments (IDEs), debuggers, code editors, and other related tools. It supports most major programming languages (including C, C++, Java, and most scripting languages).

For your convenience, the SDK includes multiple Perl packages that are not included in SLES.

Platforms

Novell SUSE LINUX is based on the Linux kernel 2.6 and glibc 2.3. Its multi-platform capabilities allow it to operate on a wide variety of platforms, including the following processors:

  • x86, AMD64, and Intel EM64T

  • Itanium Processor Family (IPF)

  • Power

  • IBM S/390 and IBM zSeries, Enterprise

Languages

While the SDK supports many languages, it focuses on development for the following languages:

  • C and C++ are general purpose programming languages that are designed for system programming and are the most often-used programming languages for Linux. The SLES product already includes the GNU GCC Compiler Collection v3.3.3, which contains front ends for C and C++ (in addition to Fortran, Java, and Objective-C) and the libraries for these languages. For example, libgcc, libstdc++, and libgcj.

  • Java is an object-oriented, portable, general-purpose programming language. Included in the SDK are all the tools you need to develop Java applications. However, be aware of the following differences between the supported platforms of the SUSE LINUX architecture and the available Java Developer Kit (JDK) releases:

    • IBMJava2-SDK-1.4.1 is available on x86, ppc, 390, and 390x.

    • BEA JDK 1.4.2 is available on IPF.

    • Java2-1.4.2 (SUN) is available on x86 and x86_64.

  • Perl is optimized for scanning arbitrary text files, extracting information from those files, and printing reports based on the extracted information. In addition to Perl, many Perl modules, Apache, and Apache2, SLES contains mod_perl and bindings to KDE and YAST2.

  • Python is an interpreted, interactive, object-oriented programming language that is somehwat similar to Perl. Python bridges the gap between C and shell programming, making it suitable for rapid prototyping or as an extension language for C applications. Included in the SDK is mod_python for Apache.

  • PHP is a widely-used, general-purpose scripting language that is especially suited for Web development and can be embedded into HTML to create dynamic Web pages. The SDK includes Quanta, which is an IDE that allows you to write HTML and PHP pages for the Apache or Apache2 servers that are included in SLES 9. Also included in the SDK are mod_php4, apache2_mod_php4, and other related PHP packages.

  • Ruby 1.8.1 is a full, object-oriented, interpreted scripting language that is similar in scope to Perl and Python. The SDK also includes apache2_mod_ruby.

  • HTML is an authoring language used to create documents for the World Wide Web and is a non-proprietary format based on SGML.

Tools

To assist you in your development efforts, we've gathered a wide variety of IDEs, package managers, project managers, debuggers, version managers, and other software tools into this convenient SDK.

For highlights of each type of tool and where to go to get more information, see the following sections:

IDEs and Related Tools

For your convenience, the SUSE LINUX SDK contains a few Integrated Development Environments (IDEs) and other programming-related tools. The following tools are available under the YAST install selection labeled "SDK IDEs and Related Tools":

KDevelop3

KDevelop3 is an IDE for the X Windows System, QT, KDE, and Gnome. It's main features are a plug-in based architecture that allows you to add, replace, and remove functions without altering the source code.

KDevelop supports many other tools, such as Apache Ant, Java build tools, compiler plug-ins that define compiler options, and Doxygen (which automatically generates API documentation in various formats). It also contains some project management options, such as allowing hand-made modifications to be recognized by the IDE.

Some other useful features of KDevelop3 include support for 15 different languages and language parsers, as well as a class browser, and class, method, and attribute wizards for object-oriented languages. To aid you in debugging your application code, KDevelop contains the integrated debugger, GDB, and a Java debugger. You can set line, address, conditional, and method breakpoints and watchpoints.

KDevelop supports several version control systems including CVS, Perforce, Subversion, Clearcase, and Application Wizard.

For more information on KDevelop3, see the following resources:

Eric

Eric is a full-featured Python IDE that is written in PyQT using the QScintilla editor widget. It includes a source browser that has built-in class browsing capabilities, integrated interfaces to the CVS and Subversion version control systems, an integrated Python debugger, integrated profiling, an interactive Python shell with debugger support and command-line completion, and CORBA support based on omniORB.

Eric includes a project browser that shows source files, forms, translations, and any other file or directory that is part of the project--each on its own tab.

For more information on Eric, see the Eric Home Page.

Anjuta

Anjuta is a versatile IDE for C and C++ that was written for GTK and Gnome. Its main features include a fully customizable, integrated editor with automatic syntax highlighting, code formatting, and code folding and hiding.

It also includes an interactive debugger that was built with KDevelop's GDB and allows breakpoints, watches, signal, stack manipulation, dynamic tag browsing, and many other functions. Anjuta provides some project and build file management features, as well as built-in application wizards.

For more information on Anjuta, see the following resources:

Eclipse

Eclipse 2.1 is designed for building IDEs that can be used to create applications as diverse as Web sites, embedded Java programs, C++ programs, and Enterprise JavaBeans. It is included in the SDK on its own CD and also contains a full-featured Java development environment.

The Eclipse platform is designed and built to support the following requirements:

  • a variety of tools for application development

  • an unrestricted set of tool providers--including (ISVs)

  • tools to manipulate arbitrary content types (for example, HTML, Java, C, JSP, EJB, XML, and GIF)

  • seamless integration of tools within and across different content types and tool providers

  • GUI and non-GUI based application development environments

  • a wide range of operating systems (including Windows and Linux)

Currently, Eclipse is for the x86 architecture only, but the Eclipse Foundation is working on porting Eclipse to 64-bit architectures.

For more information on Eclipse, see the following resources:

Mono

Mono is an open source alternative to Microsoft's .NET Development Framework build environment. It includes a C# compiler, a common language runtime, and a set of class libraries. Mono implements both ADO.NET and ASP.NET.

For more information on Mono, see the following resources:

DDD

GNU Data Display Debugger (DDD) is a graphical front-end for command-line debuggers (such as GDB and the Perl and Python debuggers). In addition to standard features, such as the ability to view source code, DDD can also display data structures as graphs in its interactive graphical data display.

You can use DDD to debug programs written in many programming languages, such as C, C++, Pascal, MODULA-2, FORTRAN, ADA, and even at the assembler code level.

For more information on DDD, see the DDD Home Page.

Dia

Dia is an open sourced, GTK based, diagram creation program and works similarly to the Visio Windows program. Using Dia, you can draw, export, and print diagrams for entity relationships, UMLs, and networks--even if the diagrams span multiple pages. It also handles flowcharts and simple circuits, as well as advanced features like compression. By writing simple XML files, you can use a subset of SVG to draw new shapes.

For more information on Dia, see the following resources:

Quanta

Quanta (also known as Quanta Plus) is a Web development tool for the K Desktop environment. It is designed for quick Web development and works as an IDE for XML, HTML, and SGML. If you're a Web developer, Quanta increases your efficiency because it contains an intuitive and powerful multiple document interface (MDI). By using custom actions, scripts, and configurable toolbars that you create, you can automate almost any task. Quanta also has editing capabilities.

To install Quanta, you need KDE 3 and Qt 3.0x.

For more information about Quanta, see the following resources:

Source-Navigator

Source-Navigator is a source code analysis tool. It provides such features as displaying relationships between classes, functions, and members; ediitng; and displaying call trees. You can use its search feature to find every instance of a particular function or its grep tool to find a specific string in your code. Using its included build system, you can also automatically generate your own makefiles.

Source-Navigator works with the Insight GUI interface for GDB and supports C, C++, Java, and FORTRAN.

For more information on Source-Navigator, see the following resources:

Subversion

Subversion is an open sourced versioning control system that was designed to be a replacement for CVS. It lets you version directories, properties, renamed files, and file meta data.

For more information about Subversion, see the following resources:

Valgrind

Valgrind is available only on x86 platforms. It debugs and profiles various Linux systems and has proven very useful while creating SLES. Using Valgrind, you can automatically detect memory management and threading defects and retrieve detailed profiling reports.

For more information about Valgrind, see the following resources:

Web and Graphics

The SDK contains tools to help you develop Web pages and manage XSL stylesheets. The following tools are available under the YAST install selection labeled "SDK Web and Graphics":

ImageMagick

ImageMagick is a collection of tools and libraries that allow you to modify and convert images from one format to another. Over 89 major image formats are supported, including the tif, jpeg, png, pdf, and gif formats. Using ImageMagick, you can create images dynamically, which is useful when designing Web applications. It even aids you in creating animated sequences.

ImageMagick supports the C, C++, Perl, Java, PHP, Python, and Ruby programming languages.

For more information on ImageMagick, see the following resources:

Lynx

Lynx is a text-based browser. You can use Lynx to display HTML documents and files on remote systems and access Web information.

For more information on Lynx, see the following resources:

WML

Website META Language (WML) is an open source, HTML generation tool kit that consists of nine different parsers that work with different scripting and text processing languages. WML uses a sequential filtering scheme that generates one of the nine language processing passes, with some of the passes supporting include files. WML reads an input file, applies passes 1-9 (or the passes you specify), and produces related HTML output files.

WML also provides include files so that you can write your own custom HTML tags and extend its functionality through Perl.

For more information on WML, see the following resources:

GIMP

GNU Image Manipulation Program (GIMP) is an image tool that helps you develop the user interface for your product. It provides tasks such as creating and modifying images and retouching photos. GIMP is a cross-platform application that works on most operating systems, in many languages.

For more information on GIMP, see the following resources:

Documentation Utilities

To assist you in creating and publishing documentation for your application, the SDK includes the following tools:

DocBook

DocBook is a Document Type Definition (DTD) and defines how XML and SGML should be structured and, subsequently, formatted. Using DocBook, authors can exchange and reuse technical information.

For more information on DocBook, see the following resources:

Doxygen

Doxygen is a documentation system for C, C++, C#, Java, Objective-C, and PHP. Doxygen is similar to JavaDoc and other source-file documentation generators. It allows you to add documentation comments directly in your code and then generate HTML documentation files. This process improves synchronization between the code--its parameters, and functions--and the documentation for your application.

For more information on Doxygen, see the following resources:

XEmacs

XEmacs is a free, open source text editor and application development system that relates to GNU Emacs. It provides a graphical user interface.

For more information on XEmacs, see the following resources:

Other Tools and Libraries

The SDK includes quite a few miscellaneous tools to help you in your development efforts, including build and testing tools. Because we included so many packages in the SDK, there isn't room to list all of the tools. However, this section includes highlights of the following tools--the ones that we found to be most useful when producing the SLES product.

PyQt

PyQt provides a set of bindings for the Python language that work with the Qt C++ application development framework. (For more information about Qt, see the Qt Home Page.)

You can use PyQt to develop Qt applications for the UNIX, Linux, MacOS, and Windows platforms.

For more information on PyQt, see the following resources:

build

The build package contains a small, automatic build application that SUSE developed internally to help build the multiple packages and updates that are necessary for the SLES product. This build application allows you to update files and then automatically schedule the build process to include any specific updates in any future build packages.

DejaGnu

DejaGnu provides a single front end, testing harness, framework, and infrastructure so that you can thoroughly test your applications. It's written in Expect, which uses the tool command language (TCL).

For more information about DejaGnu, see the following resources:

KDE SDK

The KDE SDK (kdesdk3) lets you develop various applications for your KDE desktop. (For more information, about the K Desktop Environment, see the KDE Web site.)

For more information about KDE development, see the following resources:

xslide

The xslide package contains an Emacs major mode that allows you to edit XSL stylesheets and run XSL processes. It's listed in SourceForge as an IDE for Emacs.

For more information about xslide, see the SourceForge xslide Project Home Page.

CUPS DDK

Common UNIX Printing System (CUPS) is a cross-platform printing management system that works on all UNIX and Linux platforms. It's based on the Internet Printing Protocol (IPP) and provides services to most PostScript and raster printers.

This SDK includes the CUPS Driver Developer Kit to provide a suite of standard drivers, a PPD file compiler, and other utilities that you can use to develop printer drivers for CUPS and other printing environments.

For more information on CUPS and its DDK, see the following resources:

OProfile

OProfile collects various statistics (or profiles) for Linux systems with very low processor overhead. There are two parts to OProfile--the kernel driver and a daemon. Only the kernel part is active in SLES. OProfile can help you gather interesting statistics on all parts of your system: hardware and software interrupt handlers, kernel modules, the kernel itself, shared libraries, and applications. OProfile also includes several post-profiling tools for turning raw statistics into useful information.

For more information about OProfile, see the following resources:

xine

The xine product is an open source multimedia player that plays CDs, DVDs, and VCDs. You can use it to decode multimedia files, display multimedia streams over the Internet, and process and playback videos.

For more information about xine, see the following resources:

YAST

YAST (Yet Another Setup Tool) is a powerful configuration and installation platform. Among other features, it seamlessly manages RPMs, including post installation add-on selections and multiple installation sources (such as SUSE CDs and additional product and patch CDs, FTP servers, and even local directories).

YAST contains a user interface abstraction that provides both the graphical user interface (the YAST2 QT UI) and the text interface (the YAST2 NCurses UI).

YAST2 is built around its own scripting language, YCP, but it also supports other programming languages, such as C, Perl, and shell scripts.

The SUSE SDK provides a YAST2 SDK, which includes an interpreter, API documentation, and module samples and examples. For SDK 9, all of the YAST components are together on one CD.

Known Issues

You should be aware of the following issues:

Further Information

To fully benefit from the momentum that SUSE LINUX is currently enjoying, you can certify your software by either becoming a SUSE Technology Partner or by joining the SUSE LINUX Ready Program. Once your applications are certified, you can make information available to the public by using the SUSE LINUX Solution Directory.

Have a lot of fun!