Ignore:
Timestamp:
Aug 22, 2011, 2:01:16 AM (9 years ago)
Author:
derek@…
Message:

Merge from trunk

Location:
branches/gsoc11-statistics/base
Files:
8 edited

Legend:

Unmodified
Added
Removed
  • branches/gsoc11-statistics/base

  • branches/gsoc11-statistics/base/portmgr/ReleaseProcess

    r79672 r82923  
    3232=== Create a Release Branch ===
    3333
    34 For each major release (i.e. 1.5.x, 1.6.x, etc.) an appropriate branch is created with a
     34For each major release (i.e. 1.9.x, 2.0.x, etc.) an appropriate branch is created with a
    3535consistent name. To do this, two things are required:
    3636
    3737 * Choose the svn revision from which to create the branch, most likely based off trunk.
    38  * Create the branch (e.g. release_1_6) through the svn "copy" command for history preservation,
     38 * Create the branch (e.g. release_2_0) through the svn "copy" command for history preservation,
    3939   first creating the needed branch directory to preserve the required directory structure
    4040   (the 'base' directory level *needs* to exist in each release branch, otherwise selfupdate breaks):
    4141
    42  svn mkdir -m "commit-message" https://svn.macports.org/repository/macports/branches/release_1_6
     42 svn mkdir -m "commit-message" https://svn.macports.org/repository/macports/branches/release_2_0
    4343 svn cp [-r<rev>] -m "commit-message" https://svn.macports.org/repository/macports/trunk/base \
    44      https://svn.macports.org/repository/macports/branches/release_1_6
     44     https://svn.macports.org/repository/macports/branches/release_2_0
    4545
    4646The actual release, alpha or beta releases, release candidates, and any point releases will all
     
    8282Tagging conventions:
    8383
    84  * release_1_6_0-rc1 (release candidate 1 for release 1.6.0)
    85  * release_1_6_0 (tagged release 1.6.0)
    86  * release_1_6_0-archive (tagged release 1.6.0 -- complete archive)
    87  * release_1_6_1 (1.6.1 release)
     84 * release_2_0_0-beta2 (beta 2 for release 2.0.0)
     85 * release_2_0_0-rc1 (release candidate 1 for release 2.0.0)
     86 * release_2_0_0 (tagged release 2.0.0)
     87 * release_2_0_0-archive (tagged release 2.0.0 -- complete archive)
     88 * release_2_0_1 (2.0.1 release)
    8889
    8990We first tag the branched base directory to make up the final release:
    9091
    91  svn cp -m "commit-message" https://svn.macports.org/repository/macports/branches/release_1_6 \
    92      https://svn.macports.org/repository/macports/tags/release_1_6_0
     92 svn cp -m "commit-message" https://svn.macports.org/repository/macports/branches/release_2_0 \
     93     https://svn.macports.org/repository/macports/tags/release_2_0_0
    9394
    9495Although only the base subdirectory is branched and tagged for a given major release, we also create a
    9596separate tag for the entire tree (base sources and full ports tree) at the time the final release tag is
    96 created (only for major releases, 1.x.0), in order to provide a stake in the ground that specifies a set
     97created (only for major releases, x.y.0), in order to provide a stake in the ground that specifies a set
    9798of ports intended to work with that release. Note that this tag incorporates the entire svn trunk directory
    9899at the revision number at which the final release was tagged.
     
    102103tag URL. For instance:
    103104
    104  svn co [-r<rev>] https://svn.macports.org/repository/macports/trunk release_1.6.0-archive
    105  cd release_1.6.0-archive/base
    106  svn switch https://svn.macports.org/repository/macports/tags/release_1_6_0/base
    107 
    108 And finally we tag the entire directory as release_1_6_0-archive:
     105 svn co [-r<rev>] https://svn.macports.org/repository/macports/trunk release_2.0.0-archive
     106 cd release_2.0.0-archive/base
     107 svn switch https://svn.macports.org/repository/macports/tags/release_2_0_0/base
     108
     109And finally we tag the entire directory as release_2_0_0-archive:
    109110
    110111 cd ../../
    111  svn cp -m "commit-message" release_1.6.0-archive https://svn.macports.org/repository/macports/tags/release_1_6_0-archive
     112 svn cp -m "commit-message" release_2.0.0-archive https://svn.macports.org/repository/macports/tags/release_2_0_0-archive
    112113
    113114
     
    117118for a particular release. They are named with the following naming convention:
    118119
    119  MacPorts-1.6.0.tar.{bz2,gz} (base directory only, corresponding to tag release_1_6_0)
    120  MacPorts-1.6.0-archive.tar.{bz2,gz} (complete archives corresponding to tag release_1_6_0-archive)
     120 MacPorts-2.0.0.tar.{bz2,gz} (base directory only, corresponding to tag release_2_0_0)
     121 MacPorts-2.0.0-archive.tar.{bz2,gz} (complete archives corresponding to tag release_2_0_0-archive)
    121122
    122123The following commands issued to the top level Makefile will generate all the tarballs and checksums:
    123124
    124  make ARC=yes DISTVER=1.6.0 distfromsvn
     125 make ARC=yes DISTVER=2.0.0 distfromsvn
    125126
    126127Note that if you omit the "ARC=yes" flag at the start of the make call then the full archive tarballs will not be produced.
     
    132133for each of the files:
    133134
    134  MacPorts-1.6.0.chk.txt
     135 MacPorts-2.0.0.chk.txt
    135136 (We should have a way to sign these checksums, and have the signer's keys posted somewhere.
    136137 Security experts in the project, would you be interested in leading this effort? Eric? Mark? Anyone else?)
     
    140141
    141142The dmg is a Mac OS X disk image that contains a standalone installer, configured in the usual way, for major
    142 MacPorts releases (1.x.0), named in a consistent fashion and incorporating the OS version for which it
     143MacPorts releases (x.y.0), named in a consistent fashion and incorporating the OS version for which it
    143144was built.
    144145
    145  MacPorts-1.6.0-10.4-Tiger.dmg
    146  MacPorts-1.6.0-10.5-Leopard.dmg
     146 MacPorts-2.0.0-10.5-Leopard.dmg
     147 MacPorts-2.0.0-10.6-SnowLeopard.dmg
     148 MacPorts-2.0.0-10.7-Lion.dmg
    147149
    148150To create a disk image, use the MacPorts port. The Portfile will need to be updated to incorporate the
     
    157159
    158160 cd work
    159  mv MacPorts-1.6.0.dmg MacPorts-1.6.0-10.5-Leopard.dmg
    160  for dmg in MacPorts-1.6.0-*.dmg; do for type in -md5 -sha1 -ripemd160 -sha256; do openssl dgst $type $dmg; done >> MacPorts-1.6.0.chk.txt; done
     161 mv MacPorts-2.0.0.dmg MacPorts-2.0.0-10.6-SnowLeopard.dmg
     162 for dmg in MacPorts-2.0.0-*.dmg; do for type in -md5 -sha1 -ripemd160 -sha256; do openssl dgst $type $dmg; done >> MacPorts-2.0.0.chk.txt; done
    161163
    162164These new products, along with the new checksums, also have to be posted to the appropriate
     
    207209
    208210=== Update trunk's version for next release ===
     211
    209212Once trunk is to be used for development of the next major version, increase its version information to
    210 indicate it's moved past the release version by setting the patch-level version to 99, e.g., 1.8.99 (in
     213indicate it's moved past the release version by setting the patch-level version to 99, e.g. 2.0.99 (in
    211214trunk/base/config/macports_version).
    212215
     
    219222 * The MacPorts website, by adapting the $macports_version_major and $macports_version_latest variables as appropriate in the trunk/www/includes/common.inc file.
    220223 * [https://trac.macports.org/news/] The MacOSforge news section (submitter: portmgr@)
    221  * [http://www.apple.com/downloads/macosx/unix_open_source/macports.html Apple's downloads page] (submitter: jmpp@)
    222224 * [http://freshmeat.net/projects/macports/ Freshmeat] (submitter: mww@)
    223225 * [http://www.versiontracker.com/dyn/moreinfo/macosx/26679 VersionTracker] (submitter: mij@)
     
    226228 * [http://twitter.com/macports twitter] (submitter: raimue@)
    227229 * (Where else?)
     230
     231
     232=== Use of new features in Portfiles ===
     233
     234Using new features introduced by a release should be delayed for 14 days. This
     235should allow users to upgrade their installations to the new release. This
     236delay matches the warning about outdated ports tree sources.
     237
     238
  • branches/gsoc11-statistics/base/portmgr/dmg/InstallationCheck

    r68593 r82923  
    1 #!/bin/sh
     1#!/bin/bash
    22#
    33# $Id$
  • branches/gsoc11-statistics/base/portmgr/dmg/postflight

    r79672 r82923  
    3737
    3838# Script identification ('cause more often than not the svn Id is not expanded):
    39 VERSION=1.9.0
     39VERSION=2.0.0
    4040
    4141# Abstraction variables:
     
    5858function setup_configs {
    5959    for f in macports.conf pubkeys.conf sources.conf variants.conf ; do
    60         if [ ! -f ${CONFIGPATH}/${f} ]; then
     60        if [[ ! -f ${CONFIGPATH}/${f} ]]; then
    6161            echo "Copying ${f}.default to ${f}"
    6262            /bin/cp ${CONFIGPATH}/${f}.default ${CONFIGPATH}/${f}
     
    8888# which hints that we've already tweaked it and therefore already backed it up.
    8989function write_setting () {
    90     if [ -f ${HOME}/.${CONF_FILE} ] && ! grep "${OUR_STRING}" ${HOME}/.${CONF_FILE} > /dev/null; then
     90    if [[ -f ${HOME}/.${CONF_FILE} ]] && ! grep "${OUR_STRING}" ${HOME}/.${CONF_FILE} > /dev/null; then
    9191        echo "Backing up your ${HOME}/.${CONF_FILE} shell confguration file as ${HOME}/.${CONF_FILE}.${BACKUP_SUFFIX} before adapting it for MacPorts."
    9292        /bin/cp -fp ${HOME}/.${CONF_FILE} "${HOME}/.${CONF_FILE}.${BACKUP_SUFFIX}" || {
     
    118118# Delete the old registry1.0 directory
    119119function delete_reg1 {
    120     if [ -d ${REG1DIR} ]; then
     120    if [[ -d ${REG1DIR} ]]; then
    121121        rm -vrf ${REG1DIR}
    122122    fi
     
    126126function link_tcl_package {
    127127    # delete old directory if present
    128     if ! test -L "${TCL_PACKAGE_DIR}/macports1.0" && test -d "${TCL_PACKAGE_DIR}/macports1.0"; then
    129         rm -vrf "${TCL_PACKAGE_DIR}/macports1.0" || true
    130     fi
    131     if ! test -e "${TCL_PACKAGE_DIR}/macports1.0" && test -w "${TCL_PACKAGE_DIR}"; then
    132                 ln -vs "${MACPORTS_TCL_DIR}/macports1.0" "${TCL_PACKAGE_DIR}/macports1.0" || true
     128    if [[ ! -L "${TCL_PACKAGE_DIR}/macports1.0" ]]; then
     129        if [[ ! -e "${TCL_PACKAGE_DIR}" ]]; then
     130            /usr/bin/install -d "${TCL_PACKAGE_DIR}" || true
     131        fi
     132        if [[ -d "${TCL_PACKAGE_DIR}/macports1.0" ]]; then
     133            rm -vrf "${TCL_PACKAGE_DIR}/macports1.0" || true
     134        fi
     135        if [[ ! -e "${TCL_PACKAGE_DIR}/macports1.0" && -d "${TCL_PACKAGE_DIR}" ]]; then
     136            ln -vs "${MACPORTS_TCL_DIR}/macports1.0" "${TCL_PACKAGE_DIR}/macports1.0" || true
     137        fi
    133138        fi
    134139}
     
    137142function create_run_user {
    138143    DSEDITGROUP=/usr/sbin/dseditgroup
    139     if test -n "${DSCL}" -a -n "${DSEDITGROUP}" ; then
    140         if ! ${DSEDITGROUP} -q -o read ${RUNUSR} > /dev/null 2>&1 ; then
    141             echo "Creating group \"${RUNUSR}\""
    142             ${DSEDITGROUP} -q -o create -n . ${RUNUSR}
    143         fi
    144         if ! ${DSCL} -q . -list /Users/${RUNUSR} > /dev/null 2>&1 ; then
    145             echo "Creating user \"${RUNUSR}\""
    146             ${DSCL} -q . -create /Users/${RUNUSR} Password *
    147             ${DSCL} -q . -create /Users/${RUNUSR} UniqueID $(($(${DSCL} . -list /Users UniqueID | /usr/bin/awk '{print $2}' | sort -ug | tail -1)+1))
    148             ${DSCL} -q . -create /Users/${RUNUSR} PrimaryGroupID $(${DSCL} -q . -read /Groups/${RUNUSR} PrimaryGroupID | /usr/bin/awk '{print $2}')
    149             ${DSCL} -q . -create /Users/${RUNUSR} NFSHomeDirectory /dev/null
    150             ${DSCL} -q . -create /Users/${RUNUSR} UserShell /usr/bin/false
    151         fi
    152     else
    153         echo "Can't find ${DSCL} / ${DSEDITGROUP}, unable to create user \"${RUNUSR}\""
    154         exit 1
     144    if ! ${DSCL} -q . -read /Groups/${RUNUSR} > /dev/null 2>&1 ; then
     145        echo "Creating group \"${RUNUSR}\""
     146        ${DSEDITGROUP} -q -o create ${RUNUSR}
     147    fi
     148    if ! ${DSCL} -q . -list /Users/${RUNUSR} > /dev/null 2>&1 ; then
     149        echo "Creating user \"${RUNUSR}\""
     150        NEXTUID=501
     151        while [[ -n "`${DSCL} -q /Search -search /Users UniqueID $NEXTUID`" ]]; do
     152            let "NEXTUID=NEXTUID+1"
     153        done
     154        ${DSCL} -q . -create /Users/${RUNUSR} UniqueID $NEXTUID
     155
     156        # These are implicitly added on Mac OSX Lion.  AuthenticationAuthority
     157        # causes the user to be visible in the Users & Groups Preference Pane,
     158        # and the others are just noise, so delete them.
     159        # https://trac.macports.org/ticket/30168
     160        ${DSCL} -q . -delete /Users/${RUNUSR} AuthenticationAuthority
     161        ${DSCL} -q . -delete /Users/${RUNUSR} PasswordPolicyOptions
     162        ${DSCL} -q . -delete /Users/${RUNUSR} dsAttrTypeNative:KerberosKeys
     163        ${DSCL} -q . -delete /Users/${RUNUSR} dsAttrTypeNative:ShadowHashData
     164
     165        ${DSCL} -q . -create /Users/${RUNUSR} RealName MacPorts
     166        ${DSCL} -q . -create /Users/${RUNUSR} Password \*
     167        ${DSCL} -q . -create /Users/${RUNUSR} PrimaryGroupID $(${DSCL} -q . -read /Groups/${RUNUSR} PrimaryGroupID | /usr/bin/awk '{print $2}')
     168        ${DSCL} -q . -create /Users/${RUNUSR} NFSHomeDirectory /var/empty
     169        ${DSCL} -q . -create /Users/${RUNUSR} UserShell /usr/bin/false
     170    fi
     171    if [[ $(sw_vers -productVersion | /usr/bin/awk -F . '{print $2}') -eq 4 ]]; then
     172        GID=$(${DSCL} -q . -read /Groups/${RUNUSR} PrimaryGroupID | /usr/bin/awk '{print $2}')
     173        if [[ "$(${DSCL} -q . -read /Users/${RUNUSR} PrimaryGroupID 2>/dev/null | /usr/bin/awk '{print $2}')" != "$GID" ]]; then
     174            echo "Fixing PrimaryGroupID for user \"${RUNUSR}\""
     175            ${DSCL} -q . -create /Users/${RUNUSR} PrimaryGroupID $GID
     176            ${DSCL} -q . -create /Users/${RUNUSR} RealName MacPorts
     177        fi
    155178    fi
    156179}
     
    158181echo "The MacPorts Project, postflight script version ${VERSION}: checking the shell environment for user \"${USER}\"."
    159182
     183# create macports user
     184create_run_user
    160185# Set up config files
    161186setup_configs
     
    180205        ENV_COMMAND="setenv"
    181206        ASSIGN=" "
    182         if [ -f ${HOME}/.tcshrc ]; then
     207        if [[ -f ${HOME}/.tcshrc ]]; then
    183208            CONF_FILE=tcshrc
    184         elif [ -f ${HOME}/.cshrc ]; then
     209        elif [[ -f ${HOME}/.cshrc ]]; then
    185210            CONF_FILE=cshrc
    186211        else
     
    193218        ENV_COMMAND="export"
    194219        ASSIGN="="
    195         if [ -f ${HOME}/.bash_profile ]; then
     220        if [[ -f ${HOME}/.bash_profile ]]; then
    196221            CONF_FILE=bash_profile
    197         elif [ -f ${HOME}/.bash_login ]; then
     222        elif [[ -f ${HOME}/.bash_login ]]; then
    198223            CONF_FILE=bash_login
    199224        else
     
    221246if ! ${SHELL} ${LOGIN_FLAG} -c "/usr/bin/env | grep MANPATH" > /dev/null || \
    222247# and following that, if it's not empty:
    223   [ -z "${ORIGINAL_MANPATH}" ] || \
     248  [[ -z "${ORIGINAL_MANPATH}" ]] || \
    224249# or if it doesn't already contain our path:
    225250  echo "${ORIGINAL_MANPATH}" | grep ${MANPAGES} > /dev/null || \
     
    227252  echo "${ORIGINAL_MANPATH}" | grep :: > /dev/null || \
    228253# or at the start of it:
    229   [ -z "$(echo "${ORIGINAL_MANPATH}" | awk -F : '{print $1}')" ] || \
     254  [[ -z "$(echo "${ORIGINAL_MANPATH}" | awk -F : '{print $1}')" ]] || \
    230255# or at the end of it:
    231   [ -z "$(echo "${ORIGINAL_MANPATH}" | awk -F : '{print $NF}')" ]; then
     256  [[ -z "$(echo "${ORIGINAL_MANPATH}" | awk -F : '{print $NF}')" ]]; then
    232257    echo "Your shell already has the right MANPATH environment variable for use with MacPorts!"
    233258else
  • branches/gsoc11-statistics/base/portmgr/fedora/macports.spec

    • Property svn:mergeinfo changed (with no actual effect on merging)
  • branches/gsoc11-statistics/base/portmgr/jobs/mprsyncup

    r79672 r82923  
    4444# Paths we'll work on:
    4545ROOT=/var/tmp/macports
    46 TMPDIR=mp_trunk/base
    4746PREFIX=${ROOT}/opt/local
    4847TCLPKG=${PREFIX}/lib/tcl
     
    6059# copy new index of this platform to old index location for MP v1.8 compatability
    6160OLD_INDEX_PLATFORM="9_i386"
    62 
    63 MP_USER=nobody
    64 MP_GROUP=nobody
    6561
    6662# Sources information:
     
    121117pushd ${PORTS} >> /dev/null
    122118# build MP trunk in a private location for indexing
    123 pushd ${ROOT}/${TMPDIR} >> /dev/null
     119pushd ${TBASE} >> /dev/null
    124120${MKDIR} -p ${TCLPKG}
    125121./configure \
    126122    --prefix=${PREFIX} \
    127     --with-tclpackage=${TCLPKG} \
    128     --with-install-user=${MP_USER} \
    129     --with-install-group=${MP_GROUP}
     123    --with-tclpackage=${TCLPKG}
    130124make clean
    131125make
  • branches/gsoc11-statistics/base/portmgr/jobs/port_binary_distributable.tcl

    r79672 r82923  
    2121set check_deptypes {depends_build depends_lib}
    2222
    23 set good_licenses {agpl apache apsl artistic boost bsd cecill cpl curl \
    24                    fontconfig freebsd freetype gfdl gpl ibmpl ijg jasper \
    25                    lgpl libpng mit mpl openssl php psf qpl public-domain \
    26                    ruby sleepycat ssleay x11 zlib zpl}
     23
     24# Notes:
     25# 'Restrictive/Distributable' means a non-free license that nonetheless allows
     26# distributing binaries.
     27# 'Restrictive' means a non-free license that does not allow distributing
     28# binaries, and is thus not in the list.
     29# 'Permissive' is a catchall for other licenses that allow
     30# modification and distribution of source and binaries.
     31# 'Copyleft' means a license that requires source code to be made available,
     32# and derivative works to be licensed the same as the original.
     33# 'GPLConflict' should be added if the license conflicts with the GPL (and its
     34# variants like CeCILL and the AGPL) and is not in the list of licenses known
     35# to do so below.
     36# 'Noncommercial' means a license that prohibits commercial use.
     37set good_licenses {agpl apache apsl artistic autoconf boost bsd cecill copyleft cpl
     38                   curl fontconfig freebsd freetype gfdl gpl gplconflict ibmpl ijg
     39                   jasper lgpl libpng libtool mit mpl noncommercial openssl permissive
     40                   php psf qpl public-domain restrictive/distributable ruby sleepycat
     41                   ssleay tcl/tk x11 zlib zpl}
    2742foreach lic $good_licenses {
    2843    set license_good($lic) 1
     
    3045# keep these values sorted
    3146array set license_conflicts \
    32     {agpl {cecill gpl} \
    33     apache {cecill gpl} \
    34     apsl {cecill gpl} \
    35     cpl {cecill gpl} \
    36     cecill {agpl apache apsl cpl ibmpl mpl openssl php qpl ssleay zpl-1} \
    37     freetype {gpl-2} \
    38     gpl {agpl apache apsl cpl ibmpl mpl openssl php qpl ssleay zpl-1} \
    39     gpl-2 {freetype} \
    40     ibmpl {cecill gpl} \
    41     mpl {cecill gpl} \
    42     openssl {cecill gpl} \
    43     php {cecill gpl} \
    44     qpl {cecill gpl} \
     47    {agpl {apache-1 apache-1.1 cecill gpl-1 gpl-2 gplconflict noncommercial restrictive/distributable}
     48    apache {cecill gpl-1 gpl-2}
     49    apache-1 {agpl gpl}
     50    apache-1.1 {agpl gpl}
     51    apsl {cecill gpl}
     52    cpl {cecill gpl}
     53    cecill {agpl apache apsl cpl gplconflict ibmpl mpl noncommercial openssl php qpl restrictive/distributable ssleay zpl-1}
     54    freetype {gpl-2}
     55    gpl {agpl apache-1 apache-1.1 apsl cpl gplconflict ibmpl mpl noncommercial openssl php qpl restrictive/distributable ssleay zpl-1}
     56    gpl-1 {apache gpl-3 gpl-3+ lgpl-3 lgpl-3+}
     57    gpl-2 {apache freetype gpl-3 gpl-3+ lgpl-3 lgpl-3+}
     58    gpl-3 {gpl-1 gpl-2}
     59    gpl-3+ {gpl-1 gpl-2}
     60    ibmpl {cecill gpl}
     61    lgpl-3 {gpl-1 gpl-2}
     62    lgpl-3+ {gpl-1 gpl-2}
     63    mpl {cecill gpl}
     64    openssl {cecill gpl}
     65    php {cecill gpl}
     66    qpl {cecill gpl}
     67    restrictive/distributable {agpl cecill gpl}
    4568    ssleay {cecill gpl}
    4669    zpl-1 {cecill gpl}}
  • branches/gsoc11-statistics/base/portmgr/jobs/portfile_mirror.pl

    r79672 r82923  
    2121my $TMPROOT = "/tmp/mp_mirror/$rev";
    2222
    23 my @changes = `$SVNLOOK changed $REPOPATH -r $rev`;
     23my @changes = `$SVNLOOK changed $REPOPATH -r $rev | grep '/Portfile' | grep -vE '^[ ]+D'`;
    2424
    2525foreach my $change (@changes) {
Note: See TracChangeset for help on using the changeset viewer.