Skip to main content
This revision made March 12, 2013 01:01, by Alan Coopersmith

Building the X gate

These instructions cover the current pre-release development gates for Solaris 11.x updates and Solaris 12. For building the older XNV gate for OpenSolaris or Solaris 11 Express, see the Build Instructions - XNV page instead.


Downloads

To get the X gate, clone the Mercurial repostory by running:

 hg clone https://hg.java.net/hg/solaris-x11~x-s12-clone 

or

 hg clone https://hg.java.net/hg/solaris-x11~x-s11-update-clone 


After cloning the X gate repository, you will need to download the original open source packages they modify.

The sources include a script named download-tarballs that you can run to do this. It assumes running /usr/bin/wget can connect to Internet websites. If you need to set it to use web proxies, run "man wget" for instructions.

To download all needed sources:

 ./download-tarballs

To delete all current tarballs and re-download all needed sources:

 ./download-tarballs -c

(c for “clobber”)

To see what it will do without connecting to any sites:

 ./download-tarballs -n

Build requirements & preparation

  • Current/target release of Solaris 11.x/12
  • Studio 12 Update 1
  • GNU autotools, gettext, and make

The recommended source for most the GNU tools needed to build the X consolidation are the packages included in the Solaris Userland consolidation, installed from the Solaris IPS repository. The easiest way to install all the needed tools is to install the dependency group package developer/opensolaris/X.



Building the software

To build the software, simply cd into the top level directory and run

 ./buildit

To build the software and create packages, add the -p flag to buildit:

 ./buildit -p

Output of various stages is stored into log files which you can check for errors with the included open-src/util/build-tools/find-build-errors script:

build files under log/ directory in build tree
Software build buildit-XW, check-rtime
IPS packaging make-pkgs, check-pkgs

The built binaries are found after the build in a proto area:

SPARC proto/root_sparc/
x86/x64 proto/root_i386/


Installing IPS packages

The built packages will be found in a repository in the directory proto/pkg_sparc or proto/pkg_i386 as appropriate.

Builds made by individual developers default to using the publisher name xnv-devel but that can be overridden via flags to the buildit or make_release_packages scripts. They will depend on the versions of packages from other consolidations that were installed on the system they built them on.

The recommended mechanism for installing any of these builds is the onu tool provided by ON. You can install the pkg:/developer/build/onbld package to get a local copy installed as /opt/onbld/bin/onu .

onu will create a new boot environment and install the packages there - you will then need to reboot into that BE to use them. Since none of the X packages have the reboot required flag, it is possible to use pkg to directly install them to the live BE, but then you have more work to do if you need to switch back to the previous versions.

Note that onu uses pkg image-update, which means there are two important things to remember:

  1. It will upgrade all of your packages and not just the X packages.
  2. It will normally only upgrade the X packages you already have installed on the system, though it will leave the BE mounted so that you can add other packages via pkg -R /tmp/onu.* install package-name. To install all the packages provided by the X consolidation for the build in your BE, you can install the group package pkg:/consolidation/X/X-all.

Example: Install to a new BE named "X14" that is cloned from the current BE:

 # onu -O -u file://`pwd`/proto/pkgs_i386 -U xnv-devel -t X14
Difference compared to previous revision
<span>= Building the X gate = <span style="text-decoration:underline;color:green">''These instructions cover the current pre-release development gates for Solaris 11.x updates and Solaris 12. For building the older XNV gate for OpenSolaris or Solaris 11 Express, see the [[Build Instructions - XNV]] page instead.'' </span>= Building the X gate = __TOC__ ... To get the X gate, clone the Mercurial repostory by running: hg clone <span style="text-decoration:line-through;color:red">ss</span>__TOC__ == Downloads == ... To get the X gate, clone the Mercurial repostory by running: hg clone h<span style="text-decoration:underline;color:green">ttps</span>h://<span style="text-decoration:line-through;color:red">anon@</span>hg.<span style="text-decoration:line-through;color:red">ope</span>://hg.<span style="text-decoration:underline;color:green">java.</span>n<span style="text-decoration:underline;color:green">et/hg/</span>nsolaris<span style="text-decoration:line-through;color:red">.</span>solaris<span style="text-decoration:underline;color:green">-x11~x-s12-cl</span>o<span style="text-decoration:underline;color:green">ne o</span>or<span style="text-decoration:line-through;color:red">g/</span>r<span style="text-decoration:underline;color:green"> </span>hg<span style="text-decoration:line-through;color:red">/x-</span><span style="text-decoration:underline;color:green"> </span>c<span style="text-decoration:underline;color:green">l</span>on<span style="text-decoration:underline;color:green">e http</span>s<span style="text-decoration:underline;color:green">:</span>cons/<span style="text-decoration:line-through;color:red">xn</span>/<span style="text-decoration:underline;color:green">/hg.ja</span>v<span style="text-decoration:underline;color:green">a.net/hg/solaris</span>-<span style="text-decoration:underline;color:green">x11~x-s11-update-</span>clone<span style="text-decoration:underline;color:green"> </span> <span style="text-decoration:underline;color:green"> </span>v-clone After cloning the X gate repository, you will need to download the original open source packages they modify. ... == Build requirements & preparation == * <span style="text-decoration:line-through;color:red">Sola</span>After cloning the X gate repository, you will need to download the original open source packages they modify. The sources include a script named download-tarballs that you can run to do this. It assumes running <code>/usr/bin/wget</code> can connect to Internet websites. If you need to set it to use web proxies, run "<code>man wget</code>" for instructions. ... == Build requirements & preparation == * <span style="text-decoration:underline;color:green">Cu</span>r<span style="text-decoration:line-through;color:red">is 11 o</span><span style="text-decoration:line-through;color:red"> Op</span>en<span style="text-decoration:line-through;color:red">Sol</span>rren<span style="text-decoration:underline;color:green">t/t</span>ar<span style="text-decoration:line-through;color:red">is, r</span><span style="text-decoration:underline;color:green">g</span>e<span style="text-decoration:line-through;color:red">cen</span>t <span style="text-decoration:line-through;color:red">bui</span>et <span style="text-decoration:underline;color:green">re</span>l<span style="text-decoration:line-through;color:red">d (</span><span style="text-decoration:underline;color:green">e</span>a<span style="text-decoration:line-through;color:red">t</span><span style="text-decoration:underline;color:green">se</span> <span style="text-decoration:underline;color:green">of So</span> l<span style="text-decoration:line-through;color:red">e</span>la<span style="text-decoration:underline;color:green">ri</span>as<span style="text-decoration:line-through;color:red">t</span> <span style="text-decoration:line-through;color:red">build </span>1<span style="text-decoration:line-through;color:red">2</span><span style="text-decoration:line-through;color:red">)</span>s 11<span style="text-decoration:underline;color:green">.x/12</span> * Studio 12 Update 1 * GNU autotools, gettext, and make <span style="text-decoration:line-through;color:red">* lynx (for converting docs from DocBook -> html -> text)</span> <span style="text-decoration:line-through;color:red"> </span>The recommended source for most the GNU tools needed to build the X consolidation are the packages included in the [http://java.net/projects/solaris-userland Solaris Userland] consolidation, installed from the [http://pkg.oracle.com/ Solaris IPS repository].<span style="text-decoration:line-through;color:red"> To</span> <span style="text-decoration:line-through;color:red">build</span><span style="text-decoration:line-through;color:red">64-bit</span> * Studio 12 Update 1 * GNU autotools, gettext, and make The recommended source for most the GNU tools needed to build the X consolidation are the packages included in the [http://java.net/projects/solaris-userland Solaris Userland] consolidation, installed from the [http://pkg.oracle.com/ Solaris IPS repository]. <span style="text-decoration:underline;color:green">The ea</span> s<span style="text-decoration:line-through;color:red">of</span>s<span style="text-decoration:underline;color:green">ies</span>t<span style="text-decoration:underline;color:green"> </span>twa<span style="text-decoration:line-through;color:red">re, </span>way<span style="text-decoration:underline;color:green"> t</span>yo<span style="text-decoration:line-through;color:red">u</span> <span style="text-decoration:line-through;color:red">w</span>o i<span style="text-decoration:underline;color:green">nsta</span>ill <span style="text-decoration:line-through;color:red">need</span>ll <span style="text-decoration:underline;color:green">all</span> t<span style="text-decoration:line-through;color:red">o b</span><span style="text-decoration:underline;color:green">h</span>e <span style="text-decoration:line-through;color:red">ru</span>n<span style="text-decoration:line-through;color:red">ning in 64-bit mo</span>e n<span style="text-decoration:underline;color:green">ee</span>de<span style="text-decoration:underline;color:green">d</span>de <span style="text-decoration:line-through;color:red">(which </span> <span style="text-decoration:underline;color:green">t</span>o<span style="text-decoration:line-through;color:red">n</span><span style="text-decoration:underline;color:green">ols</span> <span style="text-decoration:line-through;color:red">x86 requ</span>i<span style="text-decoration:line-through;color:red">re</span>s <span style="text-decoration:line-through;color:red">an AMD64 </span> is <span style="text-decoration:underline;color:green">t</span>o<span style="text-decoration:line-through;color:red">r</span> <span style="text-decoration:line-through;color:red">I</span>o <span style="text-decoration:underline;color:green">i</span>n<span style="text-decoration:underline;color:green">s</span>nt<span style="text-decoration:line-through;color:red">el EM64T c</span>a<span style="text-decoration:line-through;color:red">pab</span>l<span style="text-decoration:line-through;color:red">e CPU). Starting with X bui</span><span style="text-decoration:line-through;color:red">d</span> <span style="text-decoration:line-through;color:red">144, </span>the <span style="text-decoration:line-through;color:red">X co</span>tall the <span style="text-decoration:underline;color:green">depe</span>n<span style="text-decoration:line-through;color:red">soli</span>d<span style="text-decoration:line-through;color:red">atio</span>nd<span style="text-decoration:underline;color:green">e</span>n<span style="text-decoration:underline;color:green">cy</span>n g<span style="text-decoration:line-through;color:red">ene</span>r<span style="text-decoration:line-through;color:red">ates</span> gr<span style="text-decoration:underline;color:green">oup</span> package<span style="text-decoration:line-through;color:red">s</span> <span style="text-decoration:line-through;color:red">in IPS f</span> package <span style="text-decoration:underline;color:green"><tt>[http://pkg.</span>or<span style="text-decoration:line-through;color:red">m</span>a<span style="text-decoration:line-through;color:red">t inst</span>ora<span style="text-decoration:underline;color:green">cl</span>e<span style="text-decoration:line-through;color:red">ad of SVR4</span>.<span style="text-decoration:line-through;color:red"> Thi</span>e.<span style="text-decoration:underline;color:green">com/</span>s<span style="text-decoration:line-through;color:red"> </span><span style="text-decoration:underline;color:green">ola</span>r<span style="text-decoration:line-through;color:red">equ</span>ri<span style="text-decoration:underline;color:green">s/</span>ire<span style="text-decoration:line-through;color:red">s at </span>leas<span style="text-decoration:line-through;color:red">t bu</span>releas<span style="text-decoration:underline;color:green">e/man</span>i<span style="text-decoration:line-through;color:red">ld 142 o</span>f<span style="text-decoration:line-through;color:red"> th</span>e<span style="text-decoration:line-through;color:red"> [h</span>ife<span style="text-decoration:underline;color:green">s</span>t<span style="text-decoration:line-through;color:red">tp:</span>t/<span style="text-decoration:underline;color:green">0</span>//<span style="text-decoration:line-through;color:red">ja</span>/<span style="text-decoration:underline;color:green">de</span>v<span style="text-decoration:line-through;color:red">a.n</span>e<span style="text-decoration:line-through;color:red">t/</span>ve<span style="text-decoration:underline;color:green">lo</span>p<span style="text-decoration:underline;color:green">e</span>r<span style="text-decoration:underline;color:green">%2F</span>pro<span style="text-decoration:line-through;color:red">j</span>o<span style="text-decoration:underline;color:green">p</span>e<span style="text-decoration:line-through;color:red">ct</span><span style="text-decoration:underline;color:green">n</span>s<span style="text-decoration:line-through;color:red">/ips IPS] s</span>o<span style="text-decoration:line-through;color:red">ftw</span>so<span style="text-decoration:underline;color:green">l</span>ar<span style="text-decoration:line-through;color:red">e be </span>i<span style="text-decoration:line-through;color:red">n</span>s<span style="text-decoration:line-through;color:red">talled</span>aris<span style="text-decoration:underline;color:green">%2FX%400.5.11%2C5.11-0.175.1.0.0.24.1317%3A20120904T175805Z</span> <span style="text-decoration:line-through;color:red">in or</span>de<span style="text-decoration:line-through;color:red">r to bui</span> de<span style="text-decoration:underline;color:green">ve</span>l<span style="text-decoration:line-through;color:red">d th</span><span style="text-decoration:underline;color:green">op</span>e<span style="text-decoration:line-through;color:red"> </span><span style="text-decoration:underline;color:green">r/o</span>p<span style="text-decoration:line-through;color:red">ackag</span>pe<span style="text-decoration:underline;color:green">n</span>s<span style="text-decoration:underline;color:green">olaris/X]</tt></span>. ---- ... {|- border="1" !build !file<span style="text-decoration:underline;color:green">s</span>es. ---- ... {|- border="1" !build !file under <code>log/<span style="text-decoration:line-through;color:red">buildit-XW</span> under <code>log/</code><span style="text-decoration:underline;color:green"> directory in build tree</span></code> |- |S<span style="text-decoration:line-through;color:red">VR4 p</span> |- |S<span style="text-decoration:underline;color:green">oftw</span>a<span style="text-decoration:line-through;color:red">ckag</span><span style="text-decoration:underline;color:green">re bu</span>i<span style="text-decoration:line-through;color:red">ng</span><span style="text-decoration:underline;color:green">ld</span> |<code><span style="text-decoration:line-through;color:red">pro</span><span style="text-decoration:underline;color:green">buildi</span>t<span style="text-decoration:line-through;color:red">o</span>-<span style="text-decoration:line-through;color:red">pa</span>t-<span style="text-decoration:underline;color:green">XW</</span>c<span style="text-decoration:line-through;color:red">kag</span><span style="text-decoration:underline;color:green">od</span>e<span style="text-decoration:line-through;color:red">s/l</span><span style="text-decoration:underline;color:green">>, <c</span>o<span style="text-decoration:line-through;color:red">gs/pa</span><span style="text-decoration:underline;color:green">de></span>c<span style="text-decoration:line-through;color:red">kag</span><span style="text-decoration:underline;color:green">h</span>e<span style="text-decoration:line-through;color:red">_bu</span><span style="text-decoration:underline;color:green">ck-rt</span>i<span style="text-decoration:line-through;color:red">ld</span><span style="text-decoration:underline;color:green">me</span></code> |- |IPS packaging |<code><span style="text-decoration:line-through;color:red">proto-packages/logs/</span></code> |- |IPS packaging |<code>make-pkgs</code><span style="text-decoration:underline;color:green">,</span>make-pkgs</code> <code><span style="text-decoration:line-through;color:red">proto-pa</span>c<span style="text-decoration:line-through;color:red">kages/logs/c</span>heck-pkgs</code> |} The built binaries are found after the build in a proto area: <span style="text-decoration:line-through;color:red">Builds before 144: </span>{|- border="1" !SPARC |<code>proto<span style="text-decoration:line-through;color:red">-sun4-svr4</span>/<span style="text-decoration:line-through;color:red"></code> |- !x86/x64 |<code>p</span>ro<span style="text-decoration:line-through;color:red">t</span>o<span style="text-decoration:line-through;color:red">-i386-svr4/</code> |} Builds 144 and la</span>t<span style="text-decoration:line-through;color:red">er: {|- border="1" !SPARC |<code>proto/root</span>_sparc/</code> |- !x86/x64 |<code>proto/root_i386/</code> ... ---- == Installing <span style="text-decoration:line-through;color:red">SVR4 packages == The built packages will be found in the directory: proto-packages/installdir To install the packages from <code>proto-packages/installdir</code>, run the included <code>./upgrade-X</code> script. ---- == </span>I<span style="text-decoration:line-through;color:red">nstalling I</span>PS packages == The built packages will be found in a repository in the directory <code>proto/pkg_sparc</code> or <code>proto/pkg_i386</code> as appropriate. ... Builds made by individual developers default to using the publisher name <code>xnv-devel</code> but that can be overridden via flags to the <code>buildit</code> or <code>make_release_packages</code> scripts. They will depend on the versions of packages from other consolidations that were installed on the system they built them on. The recommended mechanism for installing any of these builds is the <code>onu</code> tool provided by ON. You can install the <code>pkg:/developer/build/onbld</code> package <span style="text-decoration:line-through;color:red">from build 136 or la</span>t<span style="text-decoration:line-through;color:red">er </span>o<span style="text-decoration:line-through;color:red">f</span> <span style="text-decoration:line-through;color:red">ON to </span>get a local copy installed as <code>/opt/onbld/bin/onu</code> . onu will create a new boot environment and install the packages there - you will then need to reboot into that BE to use them. Since none of the X packages have the reboot required flag, it is possible to use <code>pkg</code> to directly install them to the live BE, but then you have more work to do if you need to switch back to the previous versions. Note that onu uses <code>pkg image-update</code><span style="text-decoration:line-through;color:red"> </span>, which means there are two important things to remember: # It will upgrade all of your packages and not just the X packages. # It will normally only upgrade the X packages you already have installed on the system, though it will leave the BE mounted so that you can add other packages via <code>pkg -R /tmp/onu.* install package-name</code>. To install all the packages provided by the X consolidation for the build in your BE, you can install the group package <code>pkg:/consolidation/X/X-all</code>. Example: Install to a new BE named "X14<span style="text-decoration:line-through;color:red">4</span>" that is cloned from the current BE: # onu -O -u file://`pwd`/proto/pkgs_i386 -U xnv-devel -t X1<span style="text-decoration:line-through;color:red">4</span>4 <span>
 
 
Close
loading
Please Confirm
Close