text:
This document will help prepare you to build the source code for illumos. It assumes some familiarity with development on Unix-like systems.
You need an illumos-based operating system to build illumos (cross-compilation is not supported). If you don't have one installed, the quickest way to get started is to download and install either OpenIndiana from openindiana.org/download or OmniOS from http://omnios.omniti.com/wiki.php/Installation . You may use a virtual machine – compilation performance may suffer, but it is functional. Some other distributions support self-hosting, including compilation of
illumos-gate, as well. If you have an existing system with OpenSolaris installed, see Updating OpenSolaris to OpenIndiana.
: All commands in this guide assume you run them as an unprivileged user.
sudo will be prepended to commands which need additional privileges; on some systems
pfexec can be used instead, if your user has the correct RBAC profiles. The generic commands below use a
$USER variable to define the current (unprivileged) user account's name which will ultimately be used to compile the project. If you are not using a stock shell or have manipulated the
$USER variable in your environment at a site, system, or user level, you are responsible for diagnosing and addressing any consequences.
Note: VirtualBox 3.x has proven unfit for purpose in building from source (performance-wise – builds can take days instead of hours) and running debug kernels (systems have problems with clock discipline and are slow or become unresponsive). If you're interested in developing for illumos, consider running on bare metal or using an alternative virtualization product (KVM, VMware, Xen).
Update (2013-06-28): Some users have reported reasonable build times with recent (>= 4.2) versions of VirtualBox on recent Apple hardware. It is as yet unknown what specifically changed to resolve the issue, but presently it appears that recent VirtualBox may be more feasible. Until we know the specifics, consider VirtualBox unsuitable or experimental at best. More testing welcome! This only applies to building illumos, and not running debug kernels.
OmniOS users: Starting with r151016 or later, this guide should be consulted.
/code/illumos-gate/packages/i386/nightly/repo.redist) is not created and
onu script fails
Installing required packages
You need to install several packages in order to build illumos.
- On OpenIndiana it's enough to install build-essential meta-package
- On OmniOS, it is encapsulated in a single (meta)package:
Installing compilers
The source code was traditionally built using Sun's closed-source compiler suite, which was named Sun Studio at the time of the illumos fork. We now build illumos with GCC, but you will still need some tools from Sun Studio and those are available as packages in the legacy OpenSolaris repository.
The primary version of GCC necessary for development and integration 4.4.4 (4.4.4-il-4) should have been installed on your system when you installed the prerequisites above. If for some reason that didn't happen (old build system, or the like), tarballs are available as described in the initial heads-up notice 2012-06-15 Illumos will now build with GCC 4.4.4 + patches.
|OpenIndiana Hipster 20161030
OpenIndiana Hipster 20161030 ships with gcc-4.4.4-il-3, so make sure to update that package to -il-4 before building.
Building with 4.4.4-il-3 leads to build failures with warnings as below in the mail_msg and nightly.log:
../../i86pc/os/trap.c:2188: error: unknown conversion type character '-' in format [-Wformat] ../../i86pc/os/trap.c:2188: error: too many arguments for format [-Wformat-extra-args]
Note that the compiler for building
illumos-gate installs into
/opt/gcc/4.4.4 on OpenIndiana, and /opt/gcc-4.4.4 on OmniOS and is not available in the default
PATH for building application programs. You can add (OI example)
PATH="/opt/gcc/4.4.4/bin:$PATH"; export PATH to your profile to reference this compiler, or install one of the other GCC builds, destined as the current default compiler for application programs (versions ranging from 3.4.3 to 4.6.x, see
pkg info -r '*gcc*' for details du-jour).
Unfortunately, Sun Studio
lint is currently required even for GCC-only builds. We currently deliver Lint libraries built using the closed Sun Studio version of
lint. OmniOS includes this in its sunstudio12.1 package. On OpenIndiana it's delivered as part of developer/sunstudio12u1/cc, which you shouldn't install explicitly if you've already installed build-essential.
Sun Studio compilers
If you wish to build with Sun Studio, you need specifically patched versions of both Studio 12 (used to compile) and 12.1 (used for lint) to get consistent results. These are no longer distributed by Oracle and can not be legally found in the open Internet. If you do not have access to these versions, skip this section and use GCC. NOTE that OmniOS will not support builds with Sun Studio.
illumos-gate does not build correctly with Sun Studio versions released after 12.0. Reportedly using a newer version of the compiler will produce a system containing grave, data-corrupting bugs. Patched compilers were previously available from Sun Microsystems, however not licensed for redistribution. After a recent Oracle site reorganization, the necessary compilers are no longer available.
If you have the patched versions of both Sun Studio 12 and 12.1, they should be installed in
/opt/SUNWspro (Studio 12), and
/opt/SUNWspro/sunstudio12.1 (Studio 12.1), respectively. Pay attention, the Studio 12.1 location is different from how it was in OpenSolaris, i.e. it's not
The meta-procedure for cleaning up optionally prepackaged Sun Studio installations and installing the ones you require for building illumos (assuming your stashed Sun Studio 12 distribution archives are now pre-copied to
/tmp) is as follows:
The first archive contains the product component sub-directories directly at the top-level, and the second has similar sub-directories under the top-level
sunstudio12.1 as its children. Thus you receive the structure outlined above.
You can check if you have the correct versions installed as follows. All of the following tests must succeed and return these specific product/patch versions:
You must then adjust your
nightly(1) environment file (i.e. by adding a line in
illumos.sh) to specify that Studio should be used as the default compiler, by adding:
Building illumos
Preparing the source-code directory
You can use any location, but for the purposes of this guide, we will assume that you have a directory
/code owned by your user ID, which you are using to obtain source and build.
For a less naive example, see the Build datasets page and some more industrious details on Managing multiple workspaces and Working on several bugs at once.
Getting the source
You may use the Git source code management system to retrieve the illumos source code. Make sure you have about 6 gigabytes of free space for the source and binaries combined.
The repository is available from GitHub using the Git source code control system.
The Git repository URI is:
Or, if the Git protocol is firewalled at your site:
illumos-gate source can then be cloned using:
Getting closed binaries
There are still closed components in illumos that have not yet been replaced. You must get the latest closed binaries from Sun/Oracle, since illumos currently needs those in order to build:
NOTE: OmniOS r151016 or later and OpenIndiana users have these tarballs installed in
/opt/onbld/closed, and
ON_CLOSED_BINS can be set to point to this directory directly.
Note that if you had a
crypto tarball from an earlier build, do not use it here, as it is no longer required to build illumos. You should remove it from your tree if already present.
According to the gcc-4.4.4-il heads-up note, the kernel modules among the closed binaries might need some fixup for proper compilation. According to several developers, however, they've never needed to do this in practice. Just in case you are trying to build some older branch of illumos which might require this modification and inexplicably breaks without it, the steps are outlined below in the troubleshooting section.
Preparing the build environment
General build configuration
The build is configured using a shell script with environment variables, a template for this file is included:
The settings we are going to focus on for now are the following:
NIGHTLY_OPTIONS- You may remove the "
l" (lowercase
L) option from the string, this will disable
lintchecking of the code to save some time during the build, but patches should be linted.
CODEMGR_WS- This should be the root of the directory with the code. If you followed the previous example, it will be
STAFFER- Change this to the name of the non-privileged user you use on the system
VERSION- Set this to
illumos-gateor whatever version string you want for the build
ONNV_BUILDNUM specifies the build number which is used in packaging. If you intend to upgrade a system whose build number is greater than the one in illumos-gate (currently 148), such as OmniOS you need to specify this to allow upgrades until issue #1118 is addressed. Run:
If you see, for example, "
Branch: 0.151.1", you must choose a number greater than the part after the leading "
0.". For example, add
to the
illumos.sh script.
On OpenIndiana you'll likely see something like 'Branch: 2017.0.0.16790'. You have to use PKGVERS_BRANCH to overwrite this value, you can't use ONNV_BUILDNUM for this purpose. You should set PKGVERS_BRANCH in a form of YEAR.MAJOR.0.0 , where YEAR is the current year and MAJOR is more that the one used by OpenIndiana. For example:
Building with only GCC-4.4.4-il (i.e. without using Sun Studio at all)
If you are building with solely GCC 4.4.4 (i.e. you do NOT wish to use Sun Studio at all), you must append these lines to the end of
This should suffice for compilation of modern
illumos-gate sources executed on a modern distribution. Older branches (circa 2012) might need some more setup which, along with explanation of the options, can be found below in the troubleshooting section.
We understand that the required version of Sun Studio is no longer publicly available and will accept contributions that were tested only with GCC.
OmniOS Modifications
OmniOS r151014 or later has sample build files in /opt/onbld/env/omnios-* for use with illumos-gate or illumos-omnios. If you roll your own env files, read on.
OmniOS requires that GCC-only be used. OmniOS ALSO requires that a few other variables are set:
You must also make sure you disable IPP and SMB printing support on the default OmniOS installation by commenting out the following lines.
If you need to also compile IPP and SMB printing, you must provide the Apache, Apr/Apr-util for IPP or CUPS headers for SMB printing.
OpenIndiana Modifications
To build illumos-gate on OpenIndiana , you'll have to customize illumos.sh in the following way:
Starting the build
You are now ready to start the illumos build.
Since this process may take up to several hours depending on your system (reference build times are in a chart below), it may be wise to start the build job in a VNC session, GNU Screen (
screen), or
tmux. The
screen program can be installed with the
pkg:/terminal/screen package.
Run the following command to start the full build:
Note that the command does not give any progress output. You can instead follow the log file at
log/nightly.log, which is updated (slowly) during the build process. In another terminal, run:
To only track the running build for warnings and errors you might instead run:
After the build is complete, the
nightly.log file and some other generated logs are moved into a uniquely named subdirectory
log/log.$TIMESTAMP/ (i.e.
/code/illumos-gate/log/log.2012-04-20.04\:17/ ).
A dry overview of the build progress (hopefully small – about 2KB in size – with no errors) is saved in
log/log.$TIMESTAMP/mail_msg file intended for mailing to the build administrator after the build completes (this automation is out of the scope of the
nightly.sh script). If you do receive any errors in the
mail_msg report file, you can grep the error lines in the larger
nightly.log file.
Performing an incremental build
If you've made changes after completing a nightly build, you can perform an incremental build without discarding the already built files.
To make this the default, edit
illumos.sh and add the character
i to
Before submitting a patch, we request that you perform a full, non-incremental build including the
lint stage.
Building specific components, and other info
Installing built software
Installing the nightly build on local machine with
onu script
The build process will generate updated packages. Depending on the
NIGHTLY_OPTIONS variable in
illumos.sh script, the packages will be written either to
$PWD/packages/i386/nightly (with debug, the typical default) or to
$PWD/packages/i386/nightly-nd (without debug). Therefore there are two possible commands to install the software you you just built. You need choose the proper
onu command, typically the first one listed below.
Typical install: you can install with
onu for debug builds (the default, with '
F' and '
D' characters in
NIGHTLY_OPTIONS variable in
NOTE: For OmniOS, it is critical that the ONNV_BUILDNUM in the nightly environment file be set to the OmniOS release you wish to ONU. Otherwise, ONU will fail.
The non-typical installs are detailed in the following pages:
- Advanced - non-debug install describes different
onuoptions for the different set of built packages.
- Redistributing built packages and Installing built illumos packages into BEs on a remote host and non-onu updates describe how to install illumos using the package depot server over the network, perhaps on a machine different from your build host. This recipe bypasses the
onuscript automation and manipulates your boot environments with
pkgcommands directly.
Possible problems
In any case, if you have build errors or other "inconsistencies", it would be wise to revise the
mail_msg logfile that can contain short error descriptions, and
grep for those errors in the longer
nightly.log file. If that doesn't help, you should also recreate the build in a "clean lab" environment, which may be set up as a local zone according to the Building in zones instructions and rule out the local environment's influence (conflicting libraries and binaries, perhaps from your own earlier builds, come to mind first).
Localization bugs #167 and #168
illumos has entirely different localization infrastructure from Solaris, so your existing system locales will not work.
The English locales for illumos are in
pkg:/locale/en (NOT
pkg:/system/locale/en), and if you wish to use them, you'll need to install that package after you reboot. Likewise, other locales are in
pkg:/locale/<language code> where
<language code> is a two letter ISO 639-1 code, except for
If your locale is not installed, it will cause problems with software which behaves badly if
setlocale() fails. This includes, at least,
time-slider and
svcs(1M). The
pkg(5) commands print a warning, but function normally.
If this is a problem, you can "
export LANG=C LC_ALL=C" as a workaround, and change the
LANG setting in
/etc/default/init to '
C' (and reboot) to make the change permanent.
Package repository (path
/code/illumos-gate/packages/i386/nightly/repo.redist) is not created and
onu script fails
This error has happened to me whenever I ran the default checkout and full-build procedure outlined above (in VirtualBox VMs); I don't yet know why (possibly due to a wrong setup of my SunStudio compiler stack, as was later discovered).
However, rerunning with an incremental build has created the package repository correctly (as well as full builds with proper SunStudio setup):
Ensuring a build with only GCC-4.4.4-il for older branches of illumos
Current illumos-gate (as of March 2014) should compile cleanly with GCC with the simplified instructions above. However, some earlier versions of the gate needed more configuration steps to compile properly, and the settings below shouldn't break anything for the newer source code as well
If you are building with solely GCC 4.4.4 (i.e. you do NOT wish to use Sun Studio at all), you must append these lines to the end of
Explanation of these settings:
CW_NO_SHADOW- Set this to 1 to prevent the shadow compiler from running (for instance, if you do not have Studio at all, in which case a regular build would fail due to
"cw: error: couldn't run /opt/SUNWspro/bin/cc (No such file or directory)"and inability to run the shadow compilation and thus verify the fitness of code for both supported compilers).
ONLY_LINT_DEFS- This is needed so the
lintis able to find the proper
note.hinclude file.
- If
__GNUCis defined, then a GCC would be the primary compiler. If
__GNUC4(or legacy
__GNUC3) is defined, then the particular version of the compiler is used. Remember to
unset __SUNCto properly use just one primary compiler and use
CW_NO_SHADOW=1as described above to completely disable a secondary (shadow) compiler.
The last two lines make sure the patched version of GCC-4.4.4 is used (the default gcc version shipped with e.g. earlier OpenIndiana, gcc-3.4.3, is not suitable for building illumos), as described here.
If you are trying to build with GCC 4.4.4 and your build fails because of some invalid GCC warning options, try setting the variables
GCC_ROOT and
CW_GCC_DIR as shown above and described here.
While recently rebuilding a historical 2012 version of illumos-gate with GCC-4.4.4-only setup per instructions above, I've still got Sun Studio errors in my
or more frightening:
However, the files in
Command failed for target `packages.i386/developer-dtrace.dep'
4719 introduces a flag day for people who build
illumos-gate. You will need a Java Developers Kit (JDK) 7 or later. OpenIndiana 151a9 does NOT have this by default.
Symptoms: Users still on JDK6 will see build errors in the packaging portions like such:
Cause: These are due to javadoc changes between 6 and 7. The
dtrace and
mdns packages generate javadoc, so their packaging manifests are updated to the 7 versions.
Cure: Builders must either set
JAVA_ROOT to an installation location of JDK7, or must have
/usr/java populated with JDK7 (or pointing to an installation location of JDK7). You can use whatever distribution of JDK7+ works for you best (packages or tarballs, OpenJDK or Sun/Oracle JDK).
If you are on the latest OpenIndiana, you want to install
runtime/java/openjdk8 and
developer/java/openjdk8 packages. Then in your
env file, set:
Build times
As a convenience, we will try to assemble some build times for various hardware configurations here, so you can get an idea in advance of how long it will take:
|No. of cores
|Time (HH:MM)
|2 x Xeon X5570 2.93GHz
|2 x 4
|4 x Opteron 6172 2.1 GHz
|4 x 12
|Xeon E3-1270 3.4 GHz
|Core i7-3770 3.4GHz
|NIGHTLY_OPTIONS='-nCprt' (with SSD, the production build for Tribblix)
|Xeon E3-1245V2 3.4 GHz
|Core i7-2600K 3.4 GHz
|2 x Xeon E5620 2.4 GHz
|2 x 4
|1 x Xeon E5607 2.27GHz
|1 x 4
|Xeon E3-1245V2 3.4 GHz
|NIGHTLY_OPTIONS='-FnCDlmprt' (with lint)
|2 x Xeon E5540 2.53 GHz
|2 x 4
|With lint
|2 x Xeon E5506 2.13 GHz
|2 x 4
|No dmake check
|1 x Xeon X5650 2.67 GHz
|1 x 6
|With lint, default NIGHTLY_OPTIONS
|2 x Xeon E5506 2.13 GHz
|2 x 4
|Core i7-960 3.2 GHz
|With lint
|2 x Xeon E5506 2.13 GHz
|2 x 4
|VMware Workstation guest
|Core i7-930 2.8 GHz
|VMware ESXi guest
|Xeon E5-2676 v3 2.4GHz
|NIGHTLY_OPTIONS='-nCprt' (Tribblix) on an AWS m4.xlarge EC2 instance
|Core 2 Quad Q6600 2.4 GHz
|2 x Xeon E5310 1.6 GHz
|2 x 4
|1 x Athlon II X2 240 2.8 GHz
|NIGHTLY_OPTIONS='-FnCDmprt', on a low end SSD
|Core 2 Quad Q9300 2.5 GHz
|2 x Xeon E5420 @ 2.50GHz
|2 x 4
|Default NIGHTLY_OPTIONS; an incremental rebuild takes 13 min to walk all Makefiles
|2 x Opteron 2218HE 2.6 GHz
|2 x 2
|Core i5-540M 2.53 GHz
|2 x UltraSPARC-T2+ 1165 MHz
|128 threads
|NIGHTLY_OPTIONS='-nCprt' (the Tribblix SPARC build)
|Core i3-370M 2.40 GHz
|Core 2 Quad Q8200 2.33 GHz
|Default NIGHTLY_OPTIONS.
|Core 2 Duo T8300 2.3 GHz (T61)
|VMware Workstation 2 CPUs
|Core 2 Duo E6750 2.66 GHz
|Sun Ultra 24 (with lint)
|Core 2 Duo Celeron E3200 3.2 GHz
|2.4 GHz CPU over clocked to 3.2. Everything running on a low end SSD. With lint.
|Core 2 Duo T5600 1.8 GHz
|Opteron 146 2 GHz
|4 x Dual-Core Opteron 8218 2.6 GHz (8-vCPU VM)
|35:47 + 9:05
|VirtualBox 3.0.12 VM, with 8 vCPUs and 2GB vRAM; local vHDD; with lint and default NIGHTLY_OPTIONS='-FnCDlmprt'
NOTE: Package repo did not get built at all with the first nightly run, only with the second, incremental nightly run (another 9 hours)
- "Bare Metal" just slightly faster than VMware guest. On the other hand, VirtualBox painfully slow.
- More cores faster but not linear increase.
- SSD use seems to provide nice speedup.
- As expected, lint checking results in longer build times.
May 19, 2012
This piece of advice fell off the official document, but I think it is important (as the default oi_151a
bashdoes not have
$USERon my and at least one other user's machine, at least after changing privileges via "
sudo su -" for root elevation or "
su - username" for lowering the privileges).
Throughout this manual and subsequent pages, the
$USERvariable is supposed to mean the username of your non-privileged user account used to download and build illumos software. This account should have configured a means of privilege elevation for system commands, using
sudoor Solaris RBAC
This variable may be or not be predefined, depending on your shell program and
~/.profileor other profile files, or some other aspects of system configuration and the installation methods used.
If you don't have the variable in place, you can define it with such a block in your user's profile or system
/etc/profile, but we must disclaim that you are responsible for diagnosing and addressing any consequences:
UPDATE: As other authors below note, the default OpenIndiana installation should have the variable defined in the first place.
Alternatively, less clumsy methods of getting the user name are available in OpenIndiana, including "
/usr/bin/id -un" and "
//Jim Klimov
May 16, 2012
funny, I have $USER and haven't ever really mucked with things there...
If $LOGNAME isn't defined, whynot `/usr/bin/logname` ?
Strange though, because according to the 'login' manpage:
The basic environment is initialized to:
If not attached to a terminal, I see your point. Perhaps in this case something like `/usr/bin/id -un` might be easier...
May 18, 2012
Well... as for "
id -un" – that option is not available even on Solaris 10 (and older too), where the snippet above originated
As for the logname, it seems tricky... here an ssh login to
jackwas made, followed by "
sudo su -":
(The snippet above for setting
$USERis not in
jack's nor
root's profile, my build user is separate)
May 19, 2012
id -un works on illumos. If Solaris 10 is mentioned as a joke, it's a pretty bad one. To the best of my knowledge, jack only exists on installation media, which isn't suggested anywhere as a build environment. Also, sudo will set LOGNAME and USER appropriately unless the default set_logname behavior is negated, where building with sudo from jack on installation media isn't something that's recommended anywhere in any case. It's not clear to me whether we're talking about legitimate corner cases here or over-the-edge ones.
Also: the account used to build illumos does not need means of privilege escalation to build illumos, and it's probably sound practice not to assign such privileges to an account responsible for automated builds. Installing the bits and preparing the build environment are quite different questions, but the essential distinctions are not clearly called out and seem rather badly muddled.
May 19, 2012
Well, first of all, thank you both for pointing me to this feature in
id– i truly did not realize it is available.
Regarding the "Solaris 10 and older" reference, part of my job is interoperability - to make sure things "just work" identically in a range of environments, from Solaris 8 to OpenIndiana, as well as in RHEL 5-6. While our other team members make their applications and j2ee servers, I make tons of scripts, profiles and init/SMF methods, to make all those assorted environments seem similar to the apps we launch. It is preferable to maintain just one script body (Sun did so too i.e. in multiplatform SRSS) and use the lowest common denominator like that clumsy textual parser for common
I hope this piece of explanation sorts it out for the case in question, and I'll try to keep clumsy interoperability cludges like that from polluting the main illumos-and-OpenIndiana documentation if there is a simpler solution and I know of it.
As for giving the build user permissions to elevate privileges (the need for
$USERin the first place) – it was there when I first came to these docs, so I kept and enhanced this part as I could
Finally, I concur with the assessment that my installation that I tested the snippet on does deviate from the official installation method from LiveCD (due to HW problems I could not complete an installation from the media, but could mount the ISO over NFS and rsync from it, as I detailed on the Wiki, and things seem to work). I have re-tested the snippets Richard tried below, and results match – the
$USERis only lost on "
sudo su -", which I do use, so it is not the illegitimate corner case stemming from my installation method. I am not sure what was different/non-standard on the other user's installation.
BTW, is there a technical specification of what the installer does (i.e. to implement other compliant and compatible installation methods, including manual copying of files from media or another installation a-la-flar)?
May 19, 2012
sudo su - is absolutely an off-the-edge corner case for purposes of this document, which tells you either to use pfexec or sudo to escalate privilege for an enumerated set of operations to set up the build environment. That's to say: you're running specific commands, not switching to a privileged shell and depending on its environment.
As we've agreed elsewhere that any environment variables applicable to the current user that are passed to these commands will be interpolated to their current settings, is there any remaining relevance to talking about either USER or LOGNAME here?
May 19, 2012
> That's to say: you're running specific commands, not switching to a privileged shell and depending on its environment.
Well, my private procedure happened to differ, as we've now noticed (actually SUing from root into the build user without a permitted interactive login via lack of password, and trying these procedures afterwards). And I might not be the only one like that, since I was asked to add the piece on defining an absent
$USERin the first place.
> is there any remaining relevance to talking about either USER or LOGNAME
I guess not, and if you have the admin privileges on the Wiki - i agree to having most of this thread removed (to an attic?) for readers' clarity, except for my first post with the workaround – for those people whose ways for any reason deviate from the ivory-tower/greenhouse environment described and expected in the trunk of the documentation (same as "/code is expected for workspaces", but you can also make zfs hierarchies or even whole local zones to similar effect and some benefits although adding complexity too much for the main document to talk about it in detail). Not all is lost for those pesky creative people, and they should know it
May 19, 2012
Hmmm, digressing a bit, but does this reveal a bug or perhaps an esoteric feature?
Why is $USER != /usr/bin/id -un and, separately, $LOGNAME != /usr/bin/logname below?
~$ echo "LOGNAME='$LOGNAME' /usr/bin/logname '`/usr/bin/logname`' USER='$USER' /usr/bin/id '`/usr/bin/id -un`'"
LOGNAME='richard' /usr/bin/logname 'richard' USER='richard' /usr/bin/id 'richard'
~$ pfexec echo "LOGNAME='$LOGNAME' /usr/bin/logname '`/usr/bin/logname`' USER='$USER' /usr/bin/id '`/usr/bin/id -un`'"
LOGNAME='richard' /usr/bin/logname 'richard' USER='richard' /usr/bin/id 'richard'
~$ sudo echo "LOGNAME='$LOGNAME' /usr/bin/logname '`/usr/bin/logname`' USER='$USER' /usr/bin/id '`/usr/bin/id -un`'"
LOGNAME='richard' /usr/bin/logname 'richard' USER='richard' /usr/bin/id 'richard'
~$ pfexec bash
~# echo "LOGNAME='$LOGNAME' /usr/bin/logname '`/usr/bin/logname`' USER='$USER' /usr/bin/id '`/usr/bin/id -un`'"
LOGNAME='richard' /usr/bin/logname 'richard' USER='richard' /usr/bin/id 'root'
~# exit
~$ sudo su -
OpenIndiana (powered by illumos) SunOS 5.11 oi_151a4 April 2012
~# echo "LOGNAME='$LOGNAME' /usr/bin/logname '`/usr/bin/logname`' USER='$USER' /usr/bin/id '`/usr/bin/id -un`'"
LOGNAME='root' /usr/bin/logname 'richard' USER='' /usr/bin/id 'root'
~# exit
May 19, 2012
(Explanation that may be needed for other readers) Your first tests all report "richard" because the expansion of shell variables and execution-output substitutes take place in the context of the user who calls the shell command line, before sudo or pfexec are executed. Essentially they execute "echo" with root privileges and a predefined string constructed by the non-root user. This is basically what we want to happen in the privilege elevations throughout the page.
The last two tests are correct in form, by first executing a subshell, and present the interesting discrepancies in variables and outputs.
I've also run these tests on my non-default installation and got same results modulo non-privileged user's name.
Here is one more piece Richard missed:
So, it seems to be a problem with "
su" unsetting the env-vars or keeping them in place (as requested by the dash parameter) – no further program or profile (re-)defines them to something else (i.e. "root").
/usr/bin/lognameseems to retain the value of the user who originally started the shell, i.e. via SSH, throughout the privilege elevations, which may be a good thing for these installation routines: we can elevate privileges once (spawn a shell), set up all needed stuff, and use this program's output to
chown(or you'd rather use the ZFS ACL permissions available in OpenIndiana?) and perhaps
zfs allowaccesses to the specific user we logged in with in the first place – if that matches our wishes.
May 19, 2012
The problem isn't misbehaviour, it's that variables are interpolated before being passed to sudo. Thus if you take the same thing and make it into a script, you won't have any problems using sudo. The su man page explicitly states that "su -" is meant to behave as though it were a login shell. pfexec isn't changing the user, so you wouldn't expect it to muck with the environment.
May 29, 2012
Why do we advise on using /code (or, at least, are using in examples) while default illumos.sh sets WS to $HOME/ws/$GATE? Wouldn't it be better to switch examples to ~/ws?
May 29, 2012
...with the default
I also thought about this, but by the time I got to the Wikis, the "/code" example was already in place in several papers. I confess, I added some more such examples
I do agree that somehow aligning the documentation with the script defaults (and requiring minimal to zero change of
illumos.shat that) would be beneficial. Still, the examples on Build datasets can stay in place for people Managing multiple workspaces, while zfs-clones of the golden code repo would become the build user's ~/ws/illumos-gate mountpoint.
Aug 16, 2012
The warning about slow builds on VirtualBox does apparently only apply on older CPUs without nested page table (EPT) and VPID support. I've done a full build inside a 6-vCPU machine on an Intel Xeon X5670 yesterday, and it took close to an hour.
Feb 21, 2013
Hi everyone.
I am new to illumos, but i want to know more about illumos.
These days, I built illumos on my openindiana following this elegant guide.
---------------------------------------------my openindiana----------------------------------------------
root@openindiana:~# cat /etc/release
OpenIndiana Development oi_151.1.5 X86 (powered by illumos)
Copyright 2011 Oracle and/or its affiliates. All rights reserved.
Use is subject to license terms.
Assembled 26 June 2012
After nearly 7 hours, the building process finished. I used the following command
time ./nightly.sh illumos.sh
As "10 steps to building ON on OpenIndiana" said:
Check the results (
mail_msglogfile should be about 2Kb small in size and contain no errors/warnings; if it does – research the bigger
nightly.logto see what went wrong in your build).
May be I succeeded in building illumos, didn't I?
and then I used this command:
-t nightly-`date +%Y-%m-%d` -d $PWD/packages/i386/nightly
to install the nightly build.
When installation finished, I restart my computer. I was happy to see a new item appears on grub:nightly-2012-1-13.
I got into the new system. Still i found that the golden bird logo instead of the Oi logo.
May i succeeded?
Did i switched to the new kernel i just built?
if yes how can I know the information about the new kernel?
uname -a shows that it is still openindiana. I was disturbed...........
if not i am eager to know the things that i have missed....
I am looking forward to your reply.
Thanks very much.
Jan 17, 2013
First up, I think it's probably best to ask these sorts of questions on the illumos-developer mailing list, where it will receive the widest qualified readership.
I suspect you have missed setting
ONNV_BUILDNUMin your
illumos.shenvironment file. That would prevent
onufrom upgrading to your newly built packages, because IPS does not believe them to be newer than what's on your system. If you can paste your environment file into http://gist.github.com or some other pastebin, then we can take a look.
Jan 20, 2013
Thank you. And i am sorry to reply here. I will ask this question on the mail list soon .
Here is my illumos.sh.
Please take a look.
root@openindiana:~/illumos/code/illumos-gate# pkg info osnet-incorporation | grep Branch:
Branch: 0.151.1.5
and ONNV_BUILDNUM=152
May be it's just ok...
Feb 05, 2013
Hi all, although maybe it's better not question here, but I've meet a problem seems to be general.
I just wanna build illumos kernel in Openindiana 5.11 oi_151a7 i86pc i386 and etc. And setup step by step just as the article desc and get the log Error says:
cc1: error: unrecognized command line option "-Wno-missing-field-initializers"
cc1: error: unrecognized command line option "-Wno-type-limits"
and so on.
I guess this maybe the error case by using the system default gcc version installed by pkg install step as the guide first noted, but I've got no gcc setup in illumos.sh. Anybody know how to setup gcc build with Sunstudio 12 compiler and Sunstudio 12u1 lint?
Feb 05, 2013
Hi there,
It is best to ask these sorts of questions on the Mailing Lists. As this is a question related to building and developing illumos, it would probably be best to send it to the illumos-developer list.
Feb 05, 2013
hi cxu
It is best to ask these sorts of questions on the Mailing Lists.
If you have "/opt/gcc/4.4.4" on your openindiana, try add the following to your illumos.sh
export GCC_ROOT
export CW_GCC_DIR
good luck
Dec 28, 2014
Is this instruction still valid? I can't download closed binaries from the links provided in the document.
Dec 28, 2014
Links updated.


text:
Japan PM renews claim to disputed islands
TOKYO (AP) — Japan's prime minister appealed to nationalism during a campaign stop Wednesday near disputed islands in the East China Sea, saying China's increased activity in the area challenged Japan's security in territory that Tokyo would never compromise over.
Prime Minister Shinzo Abe made the remarks in Ishigaki, an island about 150 kilometers (95 miles) southeast of the Japanese-controlled islands called Senkaku, which China also claims and calls Diaoyu. Abe is known for his hawkish security policy and nationalistic remarks, comments that have hurt Japan's relations with Asian neighbors.
"Today, we face a continuing provocation to our country's territorial land, sea and airspace," Abe said in an address to about 50 coast guard officers during his visit to Ishigaki, where he campaigned ahead of Sunday's parliamentary elections.
Abe said incursions by Chinese ships into the area around the disputed islands made "our country's territorial security environment an extremely challenging one." He urged the coast guard to boost their watchfulness.
Abe also took to the streets to make his campaign appeal to Ishigaki voters.
"Senkaku is undoubtedly Japan's inherent territory. Clearly, there is no territorial problem here. We will not make any compromise, not even a step, on this matter," he said.
Abe made a similar address Wednesday to soldiers stationed on Miyako island. Tougher territorial defense has been part of the campaign platform for Abe's ruling Liberal Democratic Party.
Japan nationalized the Senkaku in September to strengthen its territorial claims, leading to a diplomatic row between Tokyo and Beijing. Since then, official Chinese vessels have entered Japanese-claimed waters around the islands on 52 days, according to Japan's coast guard.
With the economy showing signs of improving under Abe's policies, his party is expected to win a comfortable majority in the upper house, allowing the governing coalition to regain control of both houses.

subset: commoncrawl


text:
Patricia Kennedy spent her youth in the sunny skies of California.
For her adulthood, she made things bright for area athletes.
After a distinguished career in teaching and girls athletics, the Hersey girls' athletic director is retiring at the end of the school year.
The Huskies will honor her before the girls basketball game on Friday when Prospect visits the Carter Gymnasium in Arlington Heights.
Kennedy began her career as a physical education teacher at Hoffman Estates High School in 1974. She played an active role at the onset of IHSA girls athletics, serving as the Hawks varsity girls basketball coach from 1974 to 1985.
In 1982, Kennedy led the Hawks to a supersectional championship, advancing her team to the Elite Eight.
After taking time off from teaching to raise her daughter, she returned to teaching and coaching in 1993 at Cary Junior High.
Kennedy returned to the high school scene at Hersey in 1994 as a physical education teacher and girls athletic director.
Under her guidance, the girls' programs at Hersey continued their successful ways with countless divisional and conference titles as well as top finishes in state finals.
Kennedy's dedication to students inside and outside the classroom earned her the Principal's Award in 2002.
She has been a staunch supporter of girls athletics, a positive role model for thousands of female athletes and a mentor to numerous coaches.
Kennedy has done a great deal to elevate Hersey athletics in her 19 years at the District 214 school.
Cross country
Fremd senior Kelly Breen has verbally committed to Iowa for cross country and track and field.
Breen will receive eight varsity letters for cross country and track.
She runs the mile and 2-mile in track and competed in the state finals for the 2-mile run as a sophomore and junior.
Breen won the two-mile sectional as a junior in track.
In cross country, she is a three-time team MVP, all-conference selection, all-regional and all sectional and a two-time all stater.
Breen holds the Fremd record for the state course at Detweiller Park in Peoria.
Women's basketball
Carthage junior guard Stephanie Kuzmanic (Wheeling)was named the College Conference of Illinois and Wisconsin women's basketball player of the week.
Kuzmanic helped lead the Lady Reds to a pair of CCIW wins to stay undefeated in conference play. She finished with a career-high 28 points on 9-of-15 shooting from the field, nine rebounds and five assists in a 62-48 victory at Illinois Wesleyan. Earlier that week. she had 13 points, 8 assists and 6 steals during an 85-74 win at North Central.
Men's hockey
Miami freshman goaltender Ryan McKay, a Palatine native,wasthe Hockey Commisioner Association's "Rookie of the Month" for December.
He appeared in four games for Miami during the month, posting a 2-2-0 record with one shutout. His 0.76 goals-against average and a .970 save percentage were tops in the league for December.
The freshman netminder didn't allow more than one goal in a game in
December, as both of his losses were 1-0 losses. McKay allowed only three goals during the month on 99 shots.
His final appearance of December came in the championship game at the Three Rivers Classic in Pittsburgh, where he made 20 saves in a 1-0 loss to Robert Morris.
McKay was in goal Saturday night when Miami beat Wisconsin 2-1.
• Robert Morris senior Eric Levine of Wheeling was named the Atlantic Hockey Goaltender of the Month in December.
Levin averaged over 43 saves per game in the month of December.
He currently ranks 12th nationally with a 1.81 GAA and second nationally with a .954 save percentage. He is tied for fourth nationally with 3 shutouts.
Men's golf
While St. Viator has sent nine players to the collegiate ranks in the past decade, the Lions now have their first alumnus to make a name for himself in the teaching ranks.
John Perna, a 2000 St. Viator graduate, has burst onto the local scene as one of hottest young golf teachers.
Perna played on Viator's regional championship team in 1999.
He went on to become a top player at Florida Gulf Coast University where he was coached by Doc Suttee, a Golf Digest Top Fifty Teacher.
Perna competed on the Mini Tours and made it to the Tour School Tournament twice.
Along with Dan Kochevar (2002 Illinois PGA Teaching Professional of the Year) and Mike Baldwin (founder of the MAJGT Tour), Perna is one of the founders of 'The Players Service' a teaching academy for top junior golfers.
Perna has mentored many of the top former junior players in the area in his less than two years in business.
Among the list are Joe Carlson (San Diego), TK Kelly (Ohio State), Kyle Kochevar (Virginia), Brooke Kochevar (Costal Carolina), David Cooke (Purdue), Brian Bullington (Iowa), Matt Solis (Illinois State), Matt Haegman (Illinois State) and Robert Renner (St. Viator).
Perna teaches out of The Dome in Bensenville in winter and the Oakbrook Golf Club in the summer.
Men's track and field
Illinois Wesleyan sophomore sprinter Ryan Darcy (Buffalo Grove) was named the College Conference of Illinois & Wisconsin Indoor Men's Track and Field 'Athlete of the Week'.
Darcy won the 60-meter dash with a time of 7.01 during a triangular meet at Rose-Hulman Institute of Technology. The Titans competed against both the Fightin' Engineers and Washington (Mo.).
Men's swimming
Carthage junior Eric Primdahl (St. Viator)was named the College Conference of Illinois and Wisconsin men's swimmer of the week.
Primdahl finished second in both the 100- and 200-yard backstrokes in a dual meet with Lewis.
His time in the 100 backstroke was 55.85 and his time in the 200 backstroke was 2:02.35. Both times were lifetime bests.
Game of the week
Comcast's Game of the Week from 7 p.m. to 9 p.m. today features Fremd's 49-48 double-overtime boys basketball win over Barrington from Saturday night.
Relay For Life at Prospect
On Friday, Feb 8, Prospect High School will hold the kickoff for this year's American Cancer Society Relay For Life of Mt. Prospect/Prospect Heights.
The kickoff will be from 6 p.m. to 9 p.m. during the sophomore and varsity games against visiting Elk Grove.
The event has been titled "Fear the Knight -- Conquer Cancer."
Tables will be set up where people can register for the Relay and get more information about the event.
In addition, T-shirts will be sold and raffles held for prizes. There will also be a 50-50 raffle, along with other games and activities.
• Please email Sports Notes items to email@example.com or FAX to (847) 427-1173.


text:
Enquire about the new Ford Ranger
Used Car Search
Book a Service
To book a service or MOT please click here to fill out our short form and we will get back to you as soon as possible.
Value My Car
If you're thinking of selling your vehicle or even part exchanging it for something else, it's important you have a good idea of what your vehicle is worth.
Parts & Accessories
At Hammond Group, we have experienced parts departments able to furnish your needs with a complete array of genuine parts.


text:
NetWellness is a global, community service providing quality, unbiased health information from our partners. NetWellness is commercial-free and does not accept advertising.
Thursday, October 13, 2016
Crowns, Bridges, Dentures, Implants
Severely Worn Teeth
Hello. I have severely worn teeth. On the Glidewell Laboratories web site I've seen a dental product called "transition crowns and bridges." Would this be a good option? Do they prepare your teeth then cement these over your teeth? Thank you
The "transition crowns" advertised are plastic crowns that can be done supposedly less expensively than porcelain-fused-to-metal crowns.
Yes, the teeth are prepared and the plastic crowns are cemented. The problem is that even the best plastic crowns will likely not last more than a year. So the "transition" is to get moderately priced crowns initially and then still need full price crowns in the not-too-distant future.
This scenario would make the total cost of treatment much higher than just doing the definitive crowns initially.
Ed A McGlumphy, DDS, MS
Professor of Restorative/Prosthetic Dentistry
College of Dentistry
The Ohio State University


text:
T-Fuse needed a new logo design and created a contest on 99designs.
A winner was selected from 53 designs submitted by 19 freelance designers.
We monetize traffic on music oriented websites.
We also have a contest running to design the new website seen here:
Our company name is ToneFuse. There are NO spaces.
We need a professional looking logo for our website. It will also be used for printouts (biz cards, handouts, etc).
- Professional looking logo
- Industry standard colors
- Logo will also be used for our biz cards, etc
- Too many colors
Find out how a design contest works or learn more about our logo design services.


text:
To report an emergency in progress, call 911.
The Older Adult Advisory Commission (OAAC), in an effort to bring information to the Older Adult population within Placer County, has initiated writing and publishing a monthly article, written by commissioners, for local publication. The articles below have appeared in the Sentinel (Auburn), the Foresthill Messenger, and the Sun Senior News - Lincoln Hills & Roseville. Here is an archive of those articles for your reading and reference.
The Older Adult Advisory Commission is responsible for advising the Department of Health and Human Services and the Board of Supervisors on the needs of Placer County's older adults.
Meetings are held the 3rd Tuesday, at 1:00 p.m.
More information may be found online at:
Older Adult Advisory Commission
or by calling the Public Authority at (530) 886-3680.


text:
Practicing problems is a key element to prepare for math competitions. The following resources are recommended by the CMS for students who are looking to build their problem solving skills and succeed in competitions.
A series of booklets designed as enrichment materials for high school students with an interest in and aptitude for mathematics. Some booklets are specifically geared towards competition preparation.
Canadian Mathematical Olympiad 1969 - 1993
A compilation of CMO exam problems and solutions. Geared towards students preparing for olympiad-level contests. Problems and solutions are provided in both English and French.
Periodical available in print and online. A source of unique and challenging mathematical problems for secondary and undergraduate students. Fully peer-reviewed solutions by academic/professional mathematicians are included. Online issues more than five years old are free to the public.
To report errors or omissions for this list, please contact CMS Competitions at email@example.com.


text:
October 23, 2012
Things to Do in a Slow Economy: Investing for a Turnaround
Things to Do in a Slow Economy: Investing for a Turnaround
I guess it's true what they say: If you live long enough, history will repeat itself. I watched as the legal profession sputtered through the early 1990s, and again after the dot-com bust and 9/11. Over my 25 years in the industry, I've seen the waxing and waning of practice areas from antitrust to bankruptcy, bond work to products liability, and real estate to mergers and acquisitions.
Now many law firms are experiencing another slowdown or, at best, an inconsistent market for their services. Although some lawyers—such as those in immigration, intellectual property or estate planning—still seem to be busy, others are being hit by a lag in work. There are fewer transactions and financings for corporate lawyers, and many products liability and employment lawyers are feeling the pinch.
In areas where a downward trend may be permanent (like asbestos litigation), an entirely new game plan needs to be developed, of course. But most practices are cyclical. So if you're in an area that is going through a painful yet temporary situation, what should you do? Like buying stocks or real estate at their lowest prices, the downturn offers terrific opportunities for investing in the future. Here are thoughts on some marketing initiatives that you can undertake today to position you for success when things eventually turn around.
▪ Spoil Your Existing Clients. Existing clients are always important, of course—but when new business is hard to find, they become an even more valuable asset. This is the time to be sure your relationships are secure and your clients are more than satisfied.
Visit their Web sites weekly, monitor developments that affect them, and spot opportunities to communicate with them about pending regulations, new trends and the like. Visit every local client you haven't seen in a while. Take tours of their businesses and ask about their industries. Offer to provide free programs or workshops to their managers or employees. Ask what you could be doing better.
▪ Plan Other Face-to-Face Encounters. If you have some capacity in your schedule, use the time to see more people outside of your client base. The more top of mind you are, the more likely you are to get a call when someone has new legal work. Visit with accountants, lawyers, bankers or other good sources of referrals for your practice area. Plan some activities to introduce your best contacts to other people. Also, ask your contacts to make introductions for you.
▪ Attend Meetings. My guess is that no matter what organizations you belong to, attendance at meetings is down. Some members may want to save the money; some may fear they can't afford or justify the time; still others don't like to attend meetings when they don't have as much to talk about in their work. So by continuing or even elevating your involvement, you will be more visible to your targets, be recognized for your commitment to the area, and boost your investment in your network.
▪ Do Something You Never Found Time to Do Before. A little free time can be a good thing. You can finally write that article that's been bouncing around in your head, put together that speech or better organize your Web site bio. You can also develop a list of your cases or transactions, or do some market research on a prospective client or two.
▪ Explore a New Area. On the strategic front, you can spend some time researching trends and potentially attractive market segments. For example, do you work with one company in the life science industry but would like to work with more? Then research the field: How big is the market? What are the market segments? Who represents the companies? What kinds of legal needs do they have? How can you get in front of them? What is your best opportunity?
▪ Meet with Consultants, Vendors or Other Professionals in the Desired Market Segment. Go to some industry meetings and get the lay of the land. Use your intelligence to develop a plan to expand your share of the field.
▪ Stay on Message. If you're interested in a niche area that's currently slow but you think it will present opportunities in the future, continue to build the perception of your expertise in that area. Remember: What you market doesn't have to be limited to the work that is your bread and butter right now. In other words, even though you may be keeping yourself busy by taking on different kinds of work, you shouldn't retreat from positioning yourself in your preferred field.
▪ Look for the Silver Lining. If you find yourself in a practice area with poor prospects for the future, you may need to retool or change direction. For example, if environmental work for manufacturing entities has diminished, look for segments where environmental issues are growing, like utilities and energy providers. While residential construction may be down, infrastructure construction is up. If discrimination lawsuits are down, market your expertise in non-competes.
▪ Stay Positive. Every lawyer would like to think that by doing good work and building strong relationships, he or she will always have business. And when that doesn't happen, it's easy to get discouraged. But if you appear to be frustrated or even depressed, it will hamper your business development efforts. Clients want to work with lawyers who are enthusiastic, energetic and positive. So give yourself a pep talk before going to an industry association conference, a one-on-one lunch or a bar association meeting. What will you say when people ask how you're doing? What specific activities can you discuss in a positive way? How can you convey enthusiasm to your listeners?
▪ Be Patient and Keep Marketing. For many practices, it's just a matter of time before the market returns. But if you do find the need to change your service focus, realize that it often takes three or more years to build a new practice area.
Even when things seem dark, though, it's important to keep up your investment in marketing—and to remember that successful business development takes time and timing. By continuing to build your profile in an area (even if it isn't currently filling your plate), you will be ahead of the pack when business starts to flow again.
About the Author
Sally J. Schmidt , President of Schmidt Marketing, Inc., has counseled more than 400 law firm clients over the past 20 years. She was the first president of the Legal Marketing Association.


text:
Medical examiner: 24 dead in Oklahoma twister
MOORE, OK (AP) — The state medical examiner's office has revised the death toll from a tornado in an Oklahoma City suburb to 24 people, including seven children.
Spokeswoman Amy Elliot said Tuesday morning that she believes some victims were counted twice in the early chaos of the storm. Authorities said initially that as many as 51 people were dead, including 20 children.
Teams are continuing to search the rubble in Moore, 10 miles south of Oklahoma City, after the Monday afternoon tornado.
(Copyright 2013 The Associated Press. All rights reserved. This material may not be published, broadcast, rewritten or redistributed.)
More: continued here


text:
With the 2009 season coming to a close, I just wanted to say a big Thank You to all the members, you guys are the best!
You all continually stop by SA and share your thoughts with us, and so many of you have tremendous football knowledge that it never ceases to amaze me, you guys are what make this site go. Even those of you that are newer fans and might still be learning about certain different aspects of the game, your opinions & thoughts matter just as much. I always enjoy my time here and I look forward to talking with you all. Steeler Addicts has a solid reputation, and that's been our goal from the start and always will be. We pride ourselves on putting forth solid, accurate, information 24/7 but also having fun while doing it. We'll never be over the top with our noses in the air like other sites are, and I think that's what makes us unique. You're all a part of that in a big way.
I encourage you all to continue stopping by as the offseason begins to take shape for us and our team takes on a new identity for 2010. I'm continually impressed each off season by the traffic we get, and I look forward to more of the same as we look now look forward to the draft and free agency to build our 2010 roster. We'll have a few tricks up our sleeves during the offseason too, so be sure and stay tuned
To the staff, thank you all for your hard work and dedication this season. I know times are crazy for us all, and lives are busier now more than ever, I appreciate your dedication to the site. This place wouldn't run as smoothly as it does without you guys.
So thanks again to all of you for helping make Steeler Addicts what it is today.


text:
Antonio Conte feels Juventus are being treated unfairly by the media as controversial refereeing decisions in their favour are often magnified, whereas similar calls benefiting their Serie A rivals hardly get any attention in his opinion.
Second-placed Lazio recorded a 2-0 win over Atalanta at the weekend after Sergio Floccari gifted them the lead in the second half after seemingly using his hand, and Conte is surprised the goal has not led to debate in the press.
"There will always be moments going against your team and episodes in favour of the club. However, there's no way that Lazio's goal is not getting as much attention in the media as a decision that benefits Juventus. We need balance," Conte told Corriere dello Sport.
"Juventus are just like any other team. It's seemingly all fine when a decision goes against us, but all hell breaks loose when something happens in our favour."
The successful coach then went on to discuss the title race, and stressed that it will not be easy for Juve to hold on to the Scudetto.
"The championship has always been an open contest and we know we must fight all the way.
"There are top quality sides who can hold their own such as Napoli, Lazio, Inter and Milan. It won't be easy to retain last season's title."
The Bianconeri currently hold a three-point lead over second-placed Lazio.


text:
Meal Type
Featured Videos
Featured Content
Featured Brand Sites
Featured Brand Sites
Product By Category
Tools & Info
Cooking Tips
Healthy Living
Your Kids
Recipe Ideas
food&family Magazine
This summer we haven't been doing as much entertaining as we usually do. With the baby in tow and a new house to plan for (we move in September!) we are up to our ears in to-do lists. However, the few times we've managed to have a casual get together I've whipped up this super simple bruschetta. They only actual cooking part is toasting the bread. The rest is just a matter of layering on some delicious spreads to bring it all together.
The thing about bruschetta is that it can be made so many different ways. I really do love to make it with fresh tomatoes, too, but sometimes that can be so messy to eat standing up. By using the tomato and olive spreads I am able to keep everything from tumbling off the bread into someone's lap while they eat.
This awesome bruschetta came together in just minutes and was simple to serve up on a platter for our friends who were milling around. I also made it in advanced (while the baby napped!) and kept them chilled in the fridge until they arrived. Keep this, and more amazing bruschetta recipes, in your back pocket for summer entertaining!
Sundried Tomato, Olive & Parmesan Bruschetta
1 loaf French bread, sliced in 1/2-inch pieces
1 large garlic clove, cut in half
4 oz. KRAFT Shredded Parmesan Cheese
8 oz. sundried tomatoes, finely chopped
8 oz. sliced green olives
1 tbsp. olive oil
PREHEAT the oven to 400˚F. Arrange the bread slices on a baking sheet and toast for 15 minutes, or until golden brown.
MIX the cheese, tomatoes, and olives together in a large bowl with a fork so they are completely combined.
REMOVE the hot bread from the oven and immediately rub it with the fresh cut side of the garlic clove. Then spread it a little bit of the olive tomato mixture on top. Drizzle with a little olive oil if needed, and serve!
For more recipes and ideas, visit my blog at www.thenaptimechef.com.
Toasted slices of French bread are topped with olive oil, sun-dried tomatoes and Parmesan to make these yummy Mediterranean-style appetizers.
Total Time
Article by Kraft TasteMaker Kelsey Banfield. For more recipes and ideas, visit her blog at The Naptime Chef.
Please keep in mind that the bloggers opinions, advice and recipes are their own and do not necessarily reflect the opinion of Kraft Foods.
Receive free expert tips & inspiring weekly recipes right to your inbox.