README
author Danek Duvall <danek.duvall@oracle.com>
Thu, 13 Oct 2016 08:59:50 -0700
changeset 7102 64f95a1ef701
parent 3836 56af60eb6020
child 7760 4ab84455407c
permissions -rw-r--r--
23583425 obsolete mercurial-26 needs update to allow upgrade from S11
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
2
125cd5d2cd9e include gmake example
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents:
diff changeset
     1
26
8a9f4e791832 packaging changes including canonical manifest support with manifest validation
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 2
diff changeset
     2
	    Getting started with the Userland Consolidation
2
125cd5d2cd9e include gmake example
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents:
diff changeset
     3
125cd5d2cd9e include gmake example
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents:
diff changeset
     4
38
cd00ea74156e package audits should pass pkglint
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 26
diff changeset
     5
Getting Started
cd00ea74156e package audits should pass pkglint
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 26
diff changeset
     6
cd00ea74156e package audits should pass pkglint
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 26
diff changeset
     7
    This README provides a very brief overview of the gate, how to retrieve
cd00ea74156e package audits should pass pkglint
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 26
diff changeset
     8
    a copy, and how to build it.  Detailed documentation about the Userland
cd00ea74156e package audits should pass pkglint
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 26
diff changeset
     9
    gate can be found in the 'doc' directory.  Questions or comments about
3836
56af60eb6020 18554579 Userland gate README still refers to opensolaris.org repo & mailing list
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents: 151
diff changeset
    10
    the gate can be addressed to [email protected]
38
cd00ea74156e package audits should pass pkglint
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 26
diff changeset
    11
cd00ea74156e package audits should pass pkglint
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 26
diff changeset
    12
Overview
2
125cd5d2cd9e include gmake example
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents:
diff changeset
    13
3836
56af60eb6020 18554579 Userland gate README still refers to opensolaris.org repo & mailing list
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents: 151
diff changeset
    14
    The Userland consolidation maintains a project page at
56af60eb6020 18554579 Userland gate README still refers to opensolaris.org repo & mailing list
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents: 151
diff changeset
    15
56af60eb6020 18554579 Userland gate README still refers to opensolaris.org repo & mailing list
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents: 151
diff changeset
    16
         https://solaris-userland.java.net/
38
cd00ea74156e package audits should pass pkglint
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 26
diff changeset
    17
3836
56af60eb6020 18554579 Userland gate README still refers to opensolaris.org repo & mailing list
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents: 151
diff changeset
    18
    and a Mercurial gate at
56af60eb6020 18554579 Userland gate README still refers to opensolaris.org repo & mailing list
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents: 151
diff changeset
    19
56af60eb6020 18554579 Userland gate README still refers to opensolaris.org repo & mailing list
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents: 151
diff changeset
    20
         https://hg.java.net/hg/solaris-userland~gate
38
cd00ea74156e package audits should pass pkglint
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 26
diff changeset
    21
26
8a9f4e791832 packaging changes including canonical manifest support with manifest validation
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 2
diff changeset
    22
    This gate contains build recipies, patches, IPS manifests, etc. necessary
8a9f4e791832 packaging changes including canonical manifest support with manifest validation
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 2
diff changeset
    23
    to download, prep, build, test, package and publish open source software.
38
cd00ea74156e package audits should pass pkglint
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 26
diff changeset
    24
    The build infrastructure is similiar to that of the SFW consolidation in
cd00ea74156e package audits should pass pkglint
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 26
diff changeset
    25
    that it makes use of herarchical Makefiles which provide dependency and
cd00ea74156e package audits should pass pkglint
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 26
diff changeset
    26
    recipe information for building the components.  In order to build the
cd00ea74156e package audits should pass pkglint
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 26
diff changeset
    27
    contents of the Userland gate, you need to clone it.  Since you are
cd00ea74156e package audits should pass pkglint
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 26
diff changeset
    28
    reading this, you probably already have.
cd00ea74156e package audits should pass pkglint
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 26
diff changeset
    29
cd00ea74156e package audits should pass pkglint
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 26
diff changeset
    30
Getting the Bits
cd00ea74156e package audits should pass pkglint
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 26
diff changeset
    31
cd00ea74156e package audits should pass pkglint
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 26
diff changeset
    32
    As mentioned, the gate is stored in a Mercurial repository.  In order to
cd00ea74156e package audits should pass pkglint
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 26
diff changeset
    33
    build or develop in the gate, you will need to clone it.  You can do so
cd00ea74156e package audits should pass pkglint
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 26
diff changeset
    34
    with the following command
26
8a9f4e791832 packaging changes including canonical manifest support with manifest validation
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 2
diff changeset
    35
    
3836
56af60eb6020 18554579 Userland gate README still refers to opensolaris.org repo & mailing list
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents: 151
diff changeset
    36
      $ hg clone https://hg.java.net/hg/solaris-userland~gate /scratch/clone
38
cd00ea74156e package audits should pass pkglint
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 26
diff changeset
    37
cd00ea74156e package audits should pass pkglint
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 26
diff changeset
    38
    This will create a replica of the various pieces that are checked into the
cd00ea74156e package audits should pass pkglint
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 26
diff changeset
    39
    source code management system, but it does not retrieve the community
cd00ea74156e package audits should pass pkglint
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 26
diff changeset
    40
    source archives associated with the gate content.  To download the
cd00ea74156e package audits should pass pkglint
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 26
diff changeset
    41
    community source associated with your cloned workspace, you will need to
cd00ea74156e package audits should pass pkglint
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 26
diff changeset
    42
    execute the following:
cd00ea74156e package audits should pass pkglint
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 26
diff changeset
    43
cd00ea74156e package audits should pass pkglint
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 26
diff changeset
    44
      $ cd /scratch/clone/components
cd00ea74156e package audits should pass pkglint
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 26
diff changeset
    45
      $ gmake download
cd00ea74156e package audits should pass pkglint
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 26
diff changeset
    46
cd00ea74156e package audits should pass pkglint
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 26
diff changeset
    47
    This will use GNU make and the downloading tool in the gate to walk through
cd00ea74156e package audits should pass pkglint
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 26
diff changeset
    48
    all of the component directories downloading and validating the community
cd00ea74156e package audits should pass pkglint
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 26
diff changeset
    49
    source archives from the gate machine or their canonical source repository.
cd00ea74156e package audits should pass pkglint
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 26
diff changeset
    50
cd00ea74156e package audits should pass pkglint
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 26
diff changeset
    51
    There are two variation to this that you may find interesting.  First, you
cd00ea74156e package audits should pass pkglint
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 26
diff changeset
    52
    can cause gmake(1) to perform it's work in parallel by adding '-j (jobs)'
cd00ea74156e package audits should pass pkglint
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 26
diff changeset
    53
    to the command line.  Second, if you are only interested in working on a
cd00ea74156e package audits should pass pkglint
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 26
diff changeset
    54
    particular component, you can change directories to that component's
cd00ea74156e package audits should pass pkglint
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 26
diff changeset
    55
    directory and use 'gmake download' from that to only get it's source
cd00ea74156e package audits should pass pkglint
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 26
diff changeset
    56
    archive.
cd00ea74156e package audits should pass pkglint
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 26
diff changeset
    57
cd00ea74156e package audits should pass pkglint
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 26
diff changeset
    58
Building the Bits.
cd00ea74156e package audits should pass pkglint
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 26
diff changeset
    59
cd00ea74156e package audits should pass pkglint
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 26
diff changeset
    60
    You can build individual components or the contents of the entire gate.
cd00ea74156e package audits should pass pkglint
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 26
diff changeset
    61
cd00ea74156e package audits should pass pkglint
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 26
diff changeset
    62
  Component build
26
8a9f4e791832 packaging changes including canonical manifest support with manifest validation
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 2
diff changeset
    63
38
cd00ea74156e package audits should pass pkglint
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 26
diff changeset
    64
    If you are only working on a single component, you can just build it using
cd00ea74156e package audits should pass pkglint
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 26
diff changeset
    65
    following:
26
8a9f4e791832 packaging changes including canonical manifest support with manifest validation
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 2
diff changeset
    66
38
cd00ea74156e package audits should pass pkglint
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 26
diff changeset
    67
      setup the workspace for building components
cd00ea74156e package audits should pass pkglint
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 26
diff changeset
    68
151
f9e42a3f7095 7030982 hgk is delivered 444, breaks 'hg view'
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 38
diff changeset
    69
        $ cd (your-workspace)/components ; gmake setup
38
cd00ea74156e package audits should pass pkglint
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 26
diff changeset
    70
cd00ea74156e package audits should pass pkglint
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 26
diff changeset
    71
      build the individual component
cd00ea74156e package audits should pass pkglint
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 26
diff changeset
    72
cd00ea74156e package audits should pass pkglint
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 26
diff changeset
    73
        $ cd (component-dir) ; gmake publish
cd00ea74156e package audits should pass pkglint
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 26
diff changeset
    74
cd00ea74156e package audits should pass pkglint
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 26
diff changeset
    75
  Complete Top Down build  
cd00ea74156e package audits should pass pkglint
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 26
diff changeset
    76
cd00ea74156e package audits should pass pkglint
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 26
diff changeset
    77
    Complete top down builds are also possible by simply running
cd00ea74156e package audits should pass pkglint
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 26
diff changeset
    78
151
f9e42a3f7095 7030982 hgk is delivered 444, breaks 'hg view'
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 38
diff changeset
    79
      $ cd (your-workspace)/components
f9e42a3f7095 7030982 hgk is delivered 444, breaks 'hg view'
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 38
diff changeset
    80
      $ gmake publish
38
cd00ea74156e package audits should pass pkglint
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 26
diff changeset
    81
151
f9e42a3f7095 7030982 hgk is delivered 444, breaks 'hg view'
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 38
diff changeset
    82
    The 'publish' target will build each component and publish it to the
f9e42a3f7095 7030982 hgk is delivered 444, breaks 'hg view'
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 38
diff changeset
    83
    workspace IPS repo.
f9e42a3f7095 7030982 hgk is delivered 444, breaks 'hg view'
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 38
diff changeset
    84
    Tools to help facilitate build zone creation will be integrated
38
cd00ea74156e package audits should pass pkglint
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 26
diff changeset
    85
    shortly.  If the zone you create to build your workspace in does not have
cd00ea74156e package audits should pass pkglint
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 26
diff changeset
    86
    networking enabled, you can pre-download any community source archives into
cd00ea74156e package audits should pass pkglint
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 26
diff changeset
    87
    your workspace from the global with:
cd00ea74156e package audits should pass pkglint
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 26
diff changeset
    88
151
f9e42a3f7095 7030982 hgk is delivered 444, breaks 'hg view'
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 38
diff changeset
    89
      $ cd (your-workspace)/components
38
cd00ea74156e package audits should pass pkglint
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 26
diff changeset
    90
      $ gmake download
cd00ea74156e package audits should pass pkglint
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 26
diff changeset
    91
cd00ea74156e package audits should pass pkglint
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 26
diff changeset
    92
  You can add parallelism to your builds by adding '-j (jobs)' to your gmake
cd00ea74156e package audits should pass pkglint
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 26
diff changeset
    93
  command line arguments.
cd00ea74156e package audits should pass pkglint
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 26
diff changeset
    94
cd00ea74156e package audits should pass pkglint
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 26
diff changeset
    95
  The gate should only incrementally build what it needs to based on what has
cd00ea74156e package audits should pass pkglint
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 26
diff changeset
    96
  changed since you last built it.