OpenSolaris
Collectives
Discussions
Documentation
Download
Source Browser
Free CD
Log-in
|
en
Project jds
:
Getting Involved
>
Building the Code
Top Menu
Show
:
Comments
Attachments
History
Information
Print
:
Print
Print preview
Export as PDF
Export as RTF
Export as HTML
Export as XAR
Wiki code for
Building the Code
Hide Line numbers
1: == Building OSD on OpenSolaris 2: 3: === Introduction 4: 5: 1. [[Compilers>>#jds-compilers]] 6: 1. [[Package Requirements>>#jds-package-requirements]] 7: 1. [[OSD Common Build Environment>>#jds-cbe]] 8: 1. [[OSD Build Sources>>#jds-build-sources]] 9: 1. [[Quickstart to building OSD>>#jds-build-quickstart-jds]] 10: 1. [[Building Solaris Packages>>#jds-build-solaris-packages]] 11: 1. [[Manually building packages with pkgbuild>>#jds-build-manual-pkgbuild]] 12: 1. [[Automatically building packages with pkgtool>>#jds-build-automatic-pkgtool]] 13: 14: === 1. Compilers 15: 16: We recommend to build OSD with [[Sun Studio 11>>Community Group tools.sun_studio_11_tools]] or [[Sun Studio 10>>Community Group tools.sun_studio_tools]]. Building with [[gcc>>Community Group tools.gcc]] is also possible, but may require a little extra work during the build. We would much welcome patches to fix this so that both compilers can be used out of the box. The rest of this document assumes you are building the OSD sources with Sun Studio. 17: 18: === 2. Package Requirements 19: 20: Some of the OSD components require other packages to be available on your system in order for you to build. 21: 22: |SUNWgpch|SUNWgtar|SUNWwgetu 23: 24: You can find these packages on your Solaris install media. The cbe-install script will assist with installing them. 25: 26: === 3. OSD Common Build Environment 27: 28: The OSD Common Build Environment (CBE) is a set of build tools required to build GNOME, Mozilla and Evolution on Solaris. It includes the following tools - 29: 30: > |Apache ant|GNU autoconf|GNU automake 31: |GNU bison|CVS|GNU diffutils 32: |GNU fileutils|GNU flex|GNU gettext 33: |GNU libtool|GNU m4|GNU make 34: |pkgbuild|rsync *|subversion 35: 36: *=optional 37: 38: Download the latest tarball from the [[OSD download center>>http://dlc.sun.com/osol/jds/downloads/cbe/]]. 39: 40: The latest version of CBE builds packages by default in ~/packages, while installing the tools in /opt/jdsbld. Installing the CBE for your architecture gives you the opportunity of easily installing packages, rather than having to build the tools yourself. 41: 42: You don’t need root access for installing the CBE or building GNOME, but the build user needs to have the ’Software Installation’ profile for installing the packages that the CBE creates. In a typical case, you need to add the following profile to /etc/user_attr - 43: 44: {{{ 45: 46: osduser::::profiles=Software Installation 47: 48: }}} 49: 50: Then run the cbe-install script as follows - 51: 52: {{{ 53: 54: osduser@osdbuild:~> ./cbe-install 55: Checking for required packages... 56: Installing the OSD Common Build Environment (CBE) version 1.6.1 57: The recommended C compiler(s) for this version of the OSD CBE is/are: 58: Sun Studio 11 (Venus) (cc: Sun C 5.8 Patch 121016-02 2006/03/31) 59: Sun Studio 10 (Vulcan) (cc: Sun C 5.7 Patch 117837-04 2005/05/11) 60: Enter the path to the C compiler [/opt/SUNWspro/bin/cc]: 61: This version of the CBE comes with some optional utilities. 62: These are not required for building the OSD code, nevertheless 63: they are useful to have on your system. 64: Please see the README file for the list of optional utilities. 65: Would you like to install the optional packages? [yes]: 66: Installing package SFpkgbuild 67: 68: Installation of was successful. 69: Installing package CBEmake 70: .... 71: .... 72: + cd /home/osduser/packages/BUILD 73: + rm -rf /var/tmp/pkgbuild-osduser/CBEenv-1.6.1-build 74: + exit 0 75: Installing package CBEenv 76: 77: Installation of was successful. 78: CBE setup complete 79: Run 80: . /opt/jdsbld/bin/env.sh 81: or 82: source /opt/jdsbld/bin/env.csh 83: depending on your shell, to use this build environment. 84: Installation log saved in /tmp/jds-cbe-1.6.1.install.log.4030 85: 86: }}} 87: 88: You may want to put the following in your profile, adjusting to your shell of preference - {{code}} {{/code}} 89: 90: {{{ 91: 92: JDS_CBE_ENV_QUIET=1 . /opt/jdsbld/bin/env.sh 93: 94: }}} 95: 96: Note: if you already have a previous version of the OSD CBE installed, the cbe-install script will upgrade it to the new version. 97: 98: The OSD CBE sets up the following default directory structure for you to build packages - 99: 100: > |=Location|=Description 101: |$HOME/packages/BUILD/|Sources are unpacked, patched and built 102: |$HOME/packages/PKGMAPS/|Information for contents of Solaris packages and any pre/post install scripts 103: |$HOME/packages/PKGS/|Binary packages are produced 104: |$HOME/packages/SOURCES/|Source code, patches and other miscellaneous files used in the build 105: |$HOME/packages/SPECS/|Spec files 106: |$HOME/packages/SPKGS/|Source packages are produced 107: 108: === 4. OSD Build Sources 109: 110: Once you have installed the OSD CBE, you are now ready to fetch the build sources. You can get the latest set of OSD sources from the SVN repository with anonymous access - {{code}} {{/code}} 111: 112: {{{ 113: 114: osduser@osdbuild:~/> svn co svn+ssh://anon@svn.opensolaris.org/svn/jds/spec-files/trunk spec-files 115: 116: }}} 117: 118: Once you have downloaded the sources, take some time to take a [[ source code tour>>Project jds.source_code_tour]] to get a feel of the build structure. The current OSD source code on ’trunk’ is based on **GNOME 2.24**, along with a number of other components. Other branches are available by doing the following - {{code}} {{/code}} 119: 120: {{{ 121: 122: osduser@osdbuild:~/> svn list svn+ssh://anon@svn.opensolaris.org/svn/jds/spec-files/branches 123: 217update/ 124: gnome-2-10/ 125: gnome-2-12/ 126: gnome-2-14/ 127: gnome-2-16/ 128: osduser@osdbuild:~/> svn co svn+ssh://anon@svn.opensolaris.org/svn/jds/spec-files/branches/gnome-2-16 spec-files-gnome-2-16-branch 129: 130: }}} 131: 132: As part of our policy for developing on OSD, we only apply and manage patches on top of a pre existing community released tarball. Not only does this allow us to separate out our work into atomic changes, it also maximizes the chances of getting these changes upstream in the original community. Along with the build sources that you just downloaded, you will also need to download the original community tarball - this can be done manually, or automatically using pkgtool. 133: 134: Solaris specific manual pages are found in tarballs named SUNWgnome-something-manpages-//version//.tar.bz2. These tarballs are generated from the manual page files found in spec-files/manpages. To generate the tarballs, use the following commands: 135: 136: {{code}} {{/code}} 137: 138: {{{ 139: 140: osduser@osdbuild:~> cd spec-files/manpages 141: osduser@osdbuild:~> make 142: 143: }}} 144: 145: The manpage tarballs will be placed in the spec-files/sun-manpage-tarballs directory. 146: 147: Solaris specific changes to translations are found in tarballs named module-po-sun-//version//.tar.bz2. These tarballs are generated from the .po files found in spec-files/po-sun. To generate the tarballs, use the following commands: 148: 149: {{code}} {{/code}} 150: 151: {{{ 152: 153: osduser@osdbuild:~> cd spec-files/po-sun 154: osduser@osdbuild:~> make 155: 156: }}} 157: 158: The manpage tarballs will be placed in the spec-files/po-sun/po-sun-tarballs directory. 159: 160: === 5. Quickstart to building OSD 161: 162: First, set up the environment for building OSD - 163: 164: {{{ 165: 166: osduser@osdbuild:~> . /opt/jdsbld/bin/env.sh 167: 168: }}} 169: 170: Uninstall the existing OSD packages using pkgtool - 171: 172: {{{ 173: 174: osduser@osdbuild:~> cd spec-files 175: osduser@osdbuild:~> pkgtool uninstall-pkgs *.spec 176: 177: }}} 178: 179: This command extracts the package names from the spec files and then uninstalls them using the pkgrm command. Packages are uninstalled even if other installed packages require them. It is advised that you are not logged into GNOME during this step as it uninstalls all GNOME packages. Use a CDE session, remote login or a failsafe session instead. 180: 181: Now build the entire stack - 182: 183: {{{ 184: 185: osduser@osdbuild:~> pkgtool ~--download build -v *.spec 186: 187: }}} 188: 189: pkgtool will read all spec files to determine the build order, then builds and installs them one by one. For more details on building OSD manually, see the following sections. 190: 191: Build log files for individual packages are placed in /tmp by default. You can change this using the ~--logdir option or specifying logdir in ~/.pkgtoolrc: 192: 193: {{{ 194: 195: osduser@osdbuild:~> echo ’logdir: /path/to/my/logdir’ >> ~/.pkgtoolrc 196: 197: }}} 198: 199: === 6. Building Solaris Packages 200: 201: At the heart of the OSD build environment is [[pkgbuild>>http://pkgbuild.sourceforge.net/]], a perl script for building Solaris SVr4 packages from an RPM spec file. It is intended to be a plug-in replacement of the rpmbuild command on many Linux distributions. pkgbuild allows you to build a **single package** at a time. 202: 203: Building a package goes through 4 stages - 204: 205: > |=Stage|=Description 206: |Preparation|Sources are unpacked, and patched. 207: |Compilation|Sources are compiled locally. 208: |Installation|The compiled binaries and data are installed into a temporary directory. 209: |Package|The compiled binaries and data in the temporary directory are put into a package. 210: 211: A command summary of pkgbuild is as follows - 212: 213: {{{ 214: 215: osduser@osdbuild:~> pkgbuild ~--help 216: pkgbuild version 1.3.2 217: Copyright 2003-2008 - Sun Microsystems, Inc. 218: This may be freely redistributed under the terms of the GNU GPL 219: 220: * = the option is implemented 221: 222: Usage: 223: * ~--help - print this message 224: * ~--version - print the version of rpm being used 225: * ~--interactive - start a shell in the build directory if fails 226: and allow to continue after the shell terminates 227: all modes support the following arguments: 228: ~--rcfile <file> - use <file> instead of /etc/rpmrc and $HOME/.rpmrc 229: -v - be a little more verbose 230: -vv - be incredibly verbose (for debugging) 231: * -b<stage> <spec> 232: -t<stage> <tarball> - build package, where <stage> is one of: 233: * p - prep (unpack sources and apply patches) 234: l - list check (do some cursory checks on %files) 235: * c - compile (prep and compile) 236: * i - install (prep, compile, install) 237: * b - binary package (prep, compile, install, package) 238: * a - bin/src package (prep, compile, install, package) 239: * ~--short-circuit - skip straight to specified stage (only for c,i) 240: ~--clean - remove build tree when done 241: ~--rmsource - remove sources and spec file when done 242: ~--sign - generate PGP/GPG signature 243: ~--buildroot <dir> - use <dir> as the build root 244: ~--target=<platform>+ - build the packages for the build targets 245: platform1...platformN. 246: ~--nobuild - do not execute any stages 247: ~--timecheck <secs> - set the time check to <secs> seconds (0 disables) 248: * ~--define "<name> <value>" 249: - define <name> as <value> as if you had 250: "%define <name> <value>" in the spec file 251: 252: * ~--rebuild <src_pkg> - install source package, build binary package and 253: remove spec file, sources, patches, and icons. 254: ~--rmsource <spec> - remove sources and spec file 255: ~--recompile <src_pkg> - like ~--rebuild, but don’t build any package 256: 257: }}} 258: 259: === 7. Manually building your first package with pkgbuild 260: 261: As an example package to build, take SUNWspeex. Speex is an open source and patent-free speech multimedia codec. As mentioned in the [[source code tour>>Project jds.source_code_tour]], the Solaris SUNWspeex package is built from a RPM spec file. Looking at the SUNWspeex.spec file within the **spec-files** directory of the OSD build sources, you will notice the lines - 262: 263: {{{ 264: 265: %include Solaris.inc 266: %use speex = speex.spec 267: 268: }}} 269: 270: The SUNWspeex.spec file includes much of the core information already detailed in the speex.spec "base" spec file, which is in the **spec-files/base-specs**. As such, the SUNWspeex.spec file is an **extension**, detailing how the Solaris package is created. You will need both of these files to successfully build the package - copy them to **~/packages/SPECS**. Along with that, you’ll notice it includes some default settings as detailed in Solaris.inc. This, and other include files are in the **spec-files/include** directory. Copy this file, along with default-depend.inc into **~/packages/SPECS**. Also, copy the default-copyright.txt file, (which is available in the **ext-sources** top-level directory) into **~/packages/SOURCES**. 271: 272: Within the speex.spec file you will notice the block of lines - 273: 274: {{{ 275: 276: Name: speex 277: License: Xiph 278: Group: Application/Devel 279: Version: 1.0.5 280: Distribution: Java Desktop System 281: Vendor: Sun Microsystems, Inc. 282: Summary: An open-source, patent-free speech codec 283: Source: http://www.speex.org/download/%{name}-%{version}.tar.gz 284: URL: http://www.speex.org/ 285: 286: }}} 287: 288: This describes much of the core information about the package - what version and license it uses, along with details of where to download it. While we have automated much of the process of downloading the sources from their original community as you will see a little later, for now, proceed to download [[speex-1.0.5.tar.gz>>http://www.speex.org/download/speex-1.0.5.tar.gz]]. Copy the downloaded file to **/jds/packages/SOURCES**. 289: 290: Now you are ready to build your first package. All the spec files and the sources are in the correct directory locations under **~/packages/**, as follows - 291: 292: > |=Location|=Contents 293: |$HOME/packages/SOURCES/|speex-1.0.5.tar.gz, default-copyright.txt 294: |$HOME/packages/SPECS/|speex.spec, SUNWspeex.spec, Solaris.inc, default-depend.inc 295: 296: We want to create a full binary and source SUNWspeex package, so we will use the -ba option with pkgbuild - 297: 298: {{{ 299: 300: osduser@osdbuild:~> . /opt/jdsbld/bin/env.sh 301: osduser@osdbuild:~> cd ~/packages/SPECS 302: osduser@osdbuild:~> pkgbuild -ba SUNWspeex.spec 303: Executing(%prep): /bin/bash /var/tmp/pkgbuild-tmp-1.11242 304: + umask 022 305: + uname -a 306: SunOS zenity 5.10 Generic i86pc i386 i86pc 307: + cd /home/osduser/packages/BUILD 308: + rm -rf SUNWspeex-2.12.0 309: + mkdir SUNWspeex-2.12.0 310: + cd /home/osduser/packages/BUILD 311: + cd /home/osduser/packages/BUILD/SUNWspeex-2.12.0 312: + rm -rf speex-1.0.5 313: + /usr/bin/gzip -dc /home/osduser/packages/SOURCES/speex-1.0.5.tar.gz 314: + /bin/tar xf - 315: + STATUS=0 316: + ’[’ 0 -ne 0 ’]’ 317: + cd speex-1.0.5 318: + ++ /usr/xpg4/bin/id -u 319: + ’[’ 100 = 0 ’]’ 320: + ++ /usr/xpg4/bin/id -u 321: + ’[’ 100 = 0 ’]’ 322: + /bin/chmod -Rf a+rX,g-w,o-w . 323: + cd .. 324: + exit 0 325: Executing(%build): /bin/bash /var/tmp/pkgbuild-tmp-2.11242 326: + umask 022 327: + uname -a 328: SunOS zenity 5.10 Generic i86pc i386 i86pc 329: + cd /home/osduser/packages/BUILD 330: + cd SUNWspeex-2.12.0 331: + cd /home/osduser/packages/BUILD/SUNWspeex-2.12.0 332: + cd speex-1.0.5 333: ++ /usr/sbin/psrinfo 334: ++ grep on-line 335: ++ wc -l 336: ++ tr -d ’ ’ 337: + CPUS=1 338: + test x1 = x -o 1 = 0 339: + CFLAGS=’-i -x04 -xspace -xstrconst -xpentium -mr’ 340: + ./configure ~--enable-shared ~--enable-static ~--prefix=/usr ~--sysconfdir=/etc ~--mandir=/usr/share/man 341: ..... 342: ..... 343: ## Packaging one part. 344: /home/osduser/packages/SPKGS/SUNWspeex-src/pkgmap 345: /home/osduser/packages/SPKGS/SUNWspeex-src/pkginfo 346: /home/osduser/packages/SPKGS/SUNWspeex-src/install/copyright 347: /home/osduser/packages/SPKGS/SUNWspeex-src/reloc/share/src/SUNWspeex-2.12.0/SOURCES/default-copyright.txt 348: /home/osduser/packages/SPKGS/SUNWspeex-src/reloc/share/src/SUNWspeex-2.12.0/SOURCES/speex-1.0.5.tar.gz 349: /home/osduser/packages/SPKGS/SUNWspeex-src/reloc/share/src/SUNWspeex-2.12.0/SPECS/..pkgbuild 350: /home/osduser/packages/SPKGS/SUNWspeex-src/reloc/share/src/SUNWspeex-2.12.0/SPECS/SUNWspeex.spec 351: /home/osduser/packages/SPKGS/SUNWspeex-src/reloc/share/src/SUNWspeex-2.12.0/SPECS/Solaris.inc 352: /home/osduser/packages/SPKGS/SUNWspeex-src/reloc/share/src/SUNWspeex-2.12.0/SPECS/default-depend.inc 353: /home/osduser/packages/SPKGS/SUNWspeex-src/reloc/share/src/SUNWspeex-2.12.0/SPECS/speex.spec 354: ## Validating control scripts. 355: ## Packaging complete. 356: Executing(%clean): /bin/bash /var/tmp/pkgbuild-tmp-15.11388 357: + umask 022 358: + uname -a 359: SunOS zenity 5.10 Generic i86pc i386 i86pc 360: + cd /home/osduser/packages/BUILD 361: + cd SUNWspeex-2.12.0 362: + rm -rf /var/tmp/SUNWspeex-2.12.0-build 363: + exit 0 364: 365: }}} 366: 367: === 8. Automatically building packages with pkgtool 368: 369: While using pkgbuild allows you to build Solaris packages easily, it doesn’t allow for automatic dependency checking, and very much relies on the spec files and the sources to be in the correct place. pkgtool is a wrapper script around pkgbuild that helps to solve this problem. pkgtool will also allow you to download the original source community tarballs. Not only is pkgtool very useful in this respect, it also acts as a tinderbox script allowing you log your builds and report any errors that might have occurred. A command summary of pkgtool is as follows - 370: 371: {{{ 372: 373: osduser@osdbuild:~> pkgtool ~--help 374: pkgtool [options] [command] specs... 375: 376: Options: 377: 378: General: 379: 380: -v|~--verbose: 381: Increase verbosity: the more -v’s the more diag messages. 382: 383: -q|~--quiet: 384: Silent operation. 385: 386: ~--halt-on-errors: 387: Halt on the first build error, do not attempt to continue. 388: 389: ~--rcfile=file 390: Read default configuration from file. 391: Default: ./.pkgtoolrc, ~/.pkgtoolrc 392: 393: ~--norc 394: Ignore the default rc files. 395: 396: ~--dumprc 397: Print the current configuration in a format suitable 398: for an rc file, then exit. 399: 400: ~--download 401: 402: Automatically download sources if not found in the local 403: search paths (requires wget) Specify your proxy servers 404: using the http_proxy and ftp_proxy environment variables. 405: 406: ~--download-to=dir 407: 408: Save downloaded files in dir. By default, files are 409: downloaded to /usr/src/packages/SOURCES. Implies ~--download. 410: 411: ~--interactive [EXPERIMENTAL] 412: 413: Interactive mode: pkgbuild/rpm output is displayed on 414: the standard output; pkgbuild is executed in interactive 415: mode which makes it start a subshell if the build fails 416: 417: Directories and search paths: 418: 419: ~--specdirs=path, ~--spec=path: 420: Specify a colon separated list of directories to search 421: for spec files in 422: 423: ~--tarballdirs=path, ~--tarballs=path, ~--tar=path: 424: Specify a colon separated list of directories to search 425: for tarballs in 426: 427: ~--sourcedirs=path, ~--src=path: 428: Specify a colon separated list of directories to search 429: for additional source files in 430: 431: ~--patchdirs=path, ~--patches=path, ~--patch=path 432: Specify a colon separated list of directories to search 433: for patches (source diffs) in 434: 435: ~--topdir=dir 436: Use dir as the rpm base directory (aka %topdir, where the 437: SPECS, SOURCES, RPMS, SRPMS, BUILD directories are found). 438: Default: /usr/src/packages 439: 440: ~--logdir=dir, ~--log=dir: 441: Write build logs to dir. 442: 443: Options controlling the build: 444: 445: ~--nodeps, ~--deps: 446: Ignore/verify dependencies before building a component. 447: Default: ~--deps 448: 449: ~--with foo, ~--without foo 450: This option is passed on to rpm/pkgbuild as is. Use it 451: for enabling/disabling conditional build options. 452: 453: ~--target=arch 454: This option is passed on to rpm/pkgbuild as is. 455: 456: ~--pkgformat={filesystem|fs|datastream|ds} 457: Create Solaris packages in filesystem or datastream format. 458: This option is ignored when running on Linux. 459: Default: filesystem 460: 461: ~--nightly, ~--nonightly: 462: Suffix/Don’t suffix the rpm Release with the current date. 463: Default: ~--nonightly; See also: ~--date-format 464: 465: ~--date-format=format, ~--date=format: 466: Use "date +format" to generate the date suffix for 467: the nightly builds. Default: %y%m%d 468: 469: Reporting: 470: 471: ~--mail-errors-to=address 472: 473: Send the last few lines of the build log to address 474: if the build fails 475: 476: ~--report=file 477: 478: Write a build report to file (in HTML format) 479: 480: ~--prodname=string 481: 482: The name of the product as appears in the build report 483: 484: ~--full-path: 485: Print the full path to the package when running install-order 486: 487: Commands: 488: 489: build-install Build and install the specs listed on the command line. 490: The build order is determined by the dependencies 491: defined in the spec files. 492: 493: build Same as build-install 494: 495: build-only Build the specs listed on the command line, don’t install 496: them. 497: 498: prep run the %prep section of the spec files listed on the 499: command line 500: 501: spkg create source package(s) only (no build done) 502: 503: build-order Print the build order of the specs listed on the 504: command line. 505: 506: install-order Print the rpms in the order they should be installed 507: 508: install-pkgs (not implemented yet): install the packages defined 509: by the spec files listed on the command line from 510: the PKGS directory. No build is done. Useful to 511: install packages previously built using the build-only 512: command. 513: 514: uninstall-pkgs Uninstall all packages defined in the spec files listed 515: on the command line. (runs rpm ~--erase ~--nodeps on 516: Linux, pkgrm on Solaris) 517: 518: download Download the source files from the URLs specified in 519: the spec files listed on the command line. Source 520: files found in the local search paths will not be 521: downloaded. (See ~--tarballdirs, ~--sourcedirs, 522: ~--download-to) 523: 524: specs... 525: 526: List of spec files to build. Either full path names or names of spec 527: files in the spec directory search path. 528: 529: }}} 530: 531: ==== Build examples with pkgtool 532: 533: Print out the build order of the packages - 534: 535: {{{ 536: 537: osduser@osdbuild:Solaris> pkgtool -q build-order *.spec 538: /export/home/osduser/osd-spec-files/SUNWPython.spec 539: /export/home/osduser/osd-spec-files/SUNWTiff.spec 540: /export/home/osduser/osd-spec-files/SUNWaspell.spec 541: .... 542: 543: }}} 544: 545: Download all the community source tarballs needed to build the SUNWgnome-panel package - 546: 547: {{{ 548: 549: osduser@osdbuild:~> pkgtool download SUNWgnome-panel.spec 550: 551: }}} 552: 553: Download, build, and install all the packages in the correct order. You will need to set the environmental variables http_proxy and ftp_proxy if necessary - 554: 555: {{{ 556: 557: osduser@osdbuild:~> pkgtool ~--download build-install *.spec 558: 559: }}} 560: 561: Uninstall packages SUNWgnome-utils and SUNWgnome-config-editor - 562: 563: {{{ 564: 565: osduser@osdbuild:~> pkgtool uninstall-pkgs SUNWgnome-utils.spec SUNWgnome-config-editor.spec 566: 567: }}} 568: 569: Build the SUNWgnome-img-viewer package, but don’t install it - 570: 571: {{{ 572: 573: osduser@osdbuild:~> pkgtool build-only SUNWgnome-img-viewer.spec 574: 575: }}}
Search
Collectives
Community Group
Academic and Research
Accessibility
Advocacy
Appliances
Approachability
Architecture Process and Tools
BrandZ
Chinese Users
Community Advisory Board
Databases
Desktop
Device Drivers
Distribution
Documentation
DTrace
Emerging Platforms
Fault Management
Games on OpenSolaris
HA Clusters
HPC Developer
Installation and Packaging
Internationalization and Localization
Laptop
Logical Domains
Modular Debugger (MDB)
Networking
NFS
Observability
OpenSolaris Governing Board (OGB)
OpenSolaris Printing
OS/Net (ON)
Performance
Power Management
PowerPC
Security
Service Management Facility (smf(5))
Software Porters
Solaris Volume Manager
Storage
Systems Administration Community Group
Testing
Tools Home
Unix File Systems (UFS)
Website Community
X Window System
Xen
ZFS
Zones
Project
ADSL Modem Enhancement
ARC Process Definition
ARM Platform Port
Automatic Data Migration
BIND Update
Bluetooth Stack & Drivers
Brocade FC HBA - Initiator
Brocade FC HBA - Target
Brussels - unified network link configuration
Caiman, Solaris Install Revisited
Celeste
Český portál
Chime Visualization Tool for DTrace
CIFS client for Solaris
CIFS Server
Clearview: Network Interface Coherence
Cluster Agent: Informix Dynamic Server
Cluster Agent: OpenSolaris Container
Cluster Agent: OpenSolaris xVM
Cluster Agent: Oracle E-Business Suite
Cluster agent: PostgreSQL
Cluster Agent: Samba
Cluster Agent: Tomcat
CMT
Coarse Data Flow Parallelism
Colorado: Open HA Cluster on OpenSolaris
Command Assistant
Common Array Manager
Companion - /opt/sfw: Free and Open Source software
COMSTAR: Common Multiprotocol SCSI Target
Content
Contest
CPU Observability
Credentials Process Groups
Crossbow: Network Virtualization and Resource Control
Crypto KMS Agent Toolkit
Cryptographic Framework
Data Migration Manager
Data Tethers
Deutsches Portal
Device Detection Tool
Device Driver Utility
Device Manager
Device Mapper
Direct Rendering Infrastructure & 3D drivers
DTrace Guide
Duckwater: Simplified name services management
Easy Tools
Emancipation
Emulex Fibre Channel Device Driver
Emulex Advanced Ethernet Device Driver
Enable/Enhance Solaris support for Intel Platform
Enhance the support of USB webcams
Enhanced SMF Profiles
Enhancements for AMD-based Platforms
Erlang DTrace Integration
Ethernet bridge module for Solaris
Evaluate Conary
Events Registry
Ext3 file system support
F/OSS Package Base
Facilitation
Fibre Channel over Ethernet
Fine Grained Access Policy (FGAP)
Fingerprint Authentication
Flexible Mandatory Access Control
Forensic Tools
Fully Open X Project
Fuse on Solaris
gcore
Generic Machine Check Architecture Improvements
Google SOC
HA-JBoss
HA-MySQL
Hadoop Live CD
Hitachi
HoneyComb Fixed Content Storage
HPC Stack
Image Packaging System
Improved Performance MIB
Indiana
Innovation Awards
Input Method
Intel Graphics
Internet Key Exchange, version 2
Interrupt Resource Management
IP Datapath Refactoring
IP over Infiniband
IPsec Tunnel Reform
iSCSI Extensions for Remote DMA (iSER)
iSNS Server
JeOS - Just enough Operating System
JKstat - a java binding for libkstat
Journaled File System (JFS)
K Desktop Environment
Kerberos
Kernel Sockets
Kernel SSL Enhancements
Key Management Framework
Korn Shell 93 integration/migration project
Labeled IPsec
LatencyTOP
Layer 2 Filtering
LDoms Manager
Lending
libMicro - portable microbenchmarks
Link Layer Discovery
Live Media: Technologies for distributions running from CD and other media
Locale Data
lofi compression and cryptography support
lx64 brand
Media Management System
Mega_sas
Mexico
MilaX minimal Live Distribution
MIPS Platform Port
Mozilla DTrace
MRSL.NONsharedDevice
Multi-lingual Glossary
Multi-pathing software (MPxIO)
Multiple disk sector size support
Multiple DOI
Muskoka: An open repository for OpenSolaris technical content
Navigator
Nemo: A Framework for High-Performance Networking
Network Auto-Magic
Network Data Management Protocol
Network MIBs
Network Storage
Network Time Protocol (NTP)
Nevada Globalization
New Design of 4over6 Mechanism Based on OpenSolaris
NFS RDMA transport update and performance analysis
NFS Server in non-Global Zones
NFS version 4.1 pNFS
NFSv4 namespace extensions
Nightingale: Port Songbird to OpenSolaris
NPort ID Virtualization (NPIV)
NUMA
Object Storage Device (OSD) support for Solaris
OHACGE Script Based Plug-in
ON/Nevada (ONNV) Project
Open Development Infrastructure
Open HA Cluster Utilities
Open Sound System
OpenGrok
OpenPegasus CIM Server
OpenRTI
OpenSolaris Busybox
OpenSolaris Desktop
OpenSolaris Hispano
OpenSolaris Security Audit
OpenSolaris support for the QEMU processor emulator: host and guest
PEF: Packet Event Framework
Performance Wrappers
Pkgfactory
Polski Portal
Portail Francophone
Portal Brasil
Portals
Power Management Usability Interfaces
Presto: Automatic Printing Configuration
Printable Many Page Solaris Manuals
Promise SuperTrak RAID HBA Driver
QLogic Converged Network Adapter GLDv3 NIC Driver
Quagga Routing Protocol Suite Integration
RAID Configuration Utility
RBridge (IETF TRILL) support
RDMA Offload Framework
Reno: Login Process Enhancements for Interop
Resource Management
s10brand
SAM/QFS
SCM Migration Project
SCSI RDMA Protocol
SDcard Drivers
Sensor Abstraction Layer
Session Initiation Protocol
SFW
Shell: bourne shell, korn shell, C shell, etc.
Sierra: Intel WiFi Chipsets Support
Simple Panels
SM-HBA Based SAS HBA Management
SMF Documentation
Solaris iSCSI Target
Solaris PowerPC Port
SourceJuicer
Sparks: name service switch/nscd enhancements
Squashfs
Star integration/migration project
Starfish
Starter Kit
Storage Power Management
Sun Security Toolkit
Sun StorageTek Availability Suite
Support for OpenFabrics User Verbs / API on OpenSolaris OS
Support gcc4/GCCfss in Solaris
Suspend/Resume
SVR4 Packaging
Systemz
Tamarack: Removable Media Enhancements in Solaris
Tesla: OpenSolaris Enhanced Power Management
Test Development
Tickless Kernel Architecture
TIPC
Trademarks
Trusted networking interface policy database for Trusted Extensions
Trusted Platform Module support
Use Case
Validated Execution Project
Virtual Console
Virtual Network Machines
Visual Panels
Visualization for HPC
Volo
VRRP: Virtual Router Redundancy Protocol Implementation
VSCAN service
Web Stack
Website
Winchester: Schema mapping and ID mapping for AD Interoperability
Wireless USB Support
Wireless Wide Area Network
X Consolidation
x86 Generic FMA Topology Enumerator
Xen Gate
Xfce: A lightweight desktop environment
ZFS Boot and Install
ZFS on disk encryption support
Zone Manager
Zone Statistics
Русский портал
البوابة العربية
भारतीय पोर्टल
中国门户
日本ポータル
한국 포탈
User Group
Adelaide
Argentina
Arizona
Atlanta
Baltimore-Washington
Bangalore
Bangkok
Bangladesh
Beijing
Bélem
Berlin
Bhimavaram
Bloomington
Campus Ambassadors
Capital Region
Cardiff
Charlotte
Chengdu
Chennai
Chihuahua
Chile
Cleveland
Colombia
Columbus
Connecticut
Cracow
Czech
Dallas/Ft. Worth
Danish
Delaware
Edinburgh
Egypt
Finland
Florida
Front Range
FuZhou
Great Lakes
Greece
Hangzhou
Hawaii
HeFei
Houston
Hyderabad
Indonesia
Irish
Israel
Italian
Jinan
Kabul
Kansas City
Latvia
London
Madurai
Manchester
Mato Grosso
Melbourne
Minas Gerais
Minnesota
Montreal
Moscow
Mumbai
Munich
NEA
Netherlands
New England
New York City
New Zealand
NIT Hamirpur
Noroeste
Oklahoma City
Osnabrück
Peru
Philadelphia
Piaski
Pittsburgh
Porto Alegre
Puget Sound
Pune
Queensland
Research Triangle Park
Romania
Russia
San Antonio
San Diego
San Francisco
São Paulo
Scottish
Serbia
Shanghai
Shenzhen
Silicon Valley
Singapore
Slovak
South African
Southern Connecticut
St. Louis
Sweden
Switzerland
Sydney
Szczecin
Taiwan
Tecum
Thames Valley
Tokyo
Toronto
Trondheim
Tulsa
Turkey
Ukraine
University of Melbourne
Vale do Paraíba
Vancouver
Venezuela
Welsh - Cymru
Wisconsin
Xi'an
Subsites
Code Reviews
Code Repositories
Package Search
Bugster
Bugzilla
Test Machines
Planet
Mailing Lists
Elections & Polls
ARC Case Logs
Source Juicer
Package Factory
User Authentication
Project jds Pages
Getting Involved
Building the Code
Documents
Bug Lifecycle
Code Review Process
Solaris Desktop Gaps
Development Guidelines
Development Model
Building GNOME for OpenSolaris
Installing Development Desktop Builds
OSD Build Schedule
Format of Patch Comments
Packaging Guidelines
Requesting an SVN Account
OSD Source Code Tour
Tasks
MetaTracker
Desktop Printing
gDesklets
JPack
Java GNOME Plugin for Netbeans
Single System Admin
Virtual Machine Manager
ZFS Support in Nautilus