Home | History | Annotate | Line # | Download | only in pf
      1  1.1  martti #
      2  1.1  martti # $NetBSD: README.NetBSD,v 1.1 2009/12/02 15:07:09 martti Exp $
      3  1.1  martti #
      4  1.1  martti # Author: Martti Kuparinen <martti (at] NetBSD.org>
      5  1.1  martti #
      6  1.1  martti # This file contains copy-pastable commands to import a new PF release
      7  1.1  martti # into the NetBSD repository. Before importing the code into the official
      8  1.1  martti # NetBSD repository, you'll import the code into your own local test
      9  1.1  martti # repository, resolve the conflicts and make sure everything works as expected.
     10  1.1  martti #
     11  1.1  martti # Steps in this document:
     12  1.1  martti #  1) Get the PF dist files and a copy of the CVS repository
     13  1.1  martti #  2) Create a local test repository for the test imports
     14  1.1  martti #  3) Import the new PF release into the test repository
     15  1.1  martti #  4) Resolve conflicts and make other adjustments
     16  1.1  martti #  5) Save the required modifications
     17  1.1  martti #  6) Re-create a local test repository for the final test import
     18  1.1  martti #  7) Import the new PF release into the test repository
     19  1.1  martti #  8) Apply the fixes
     20  1.1  martti #  9) Compile everything and make sure the new version really works
     21  1.1  martti # 10) Update your /usr/src (cd /usr/src && cvs update -dPA)
     22  1.1  martti # 11) Import the new PF release into the NetBSD repository
     23  1.1  martti # 12) Apply the fixes
     24  1.1  martti # 13) Update your /usr/src one more time (cd /usr/src && cvs update -dPA)
     25  1.1  martti # 14) Compile and install everything
     26  1.1  martti # 15) Update src/doc/3RDPARTY and src/doc/CHANGES
     27  1.1  martti # 16) Send an announcement to current-users
     28  1.1  martti #
     29  1.1  martti 
     30  1.1  martti ###############################################################################
     31  1.1  martti ###############################################################################
     32  1.1  martti # COMMON SETTINGS FOR EVERYTHING BELOW
     33  1.1  martti ###############################################################################
     34  1.1  martti ###############################################################################
     35  1.1  martti 
     36  1.1  martti export NETBSDUSERNAME="fixthis"
     37  1.1  martti export VERSION="4.6"
     38  1.1  martti export VERTAG="`echo ${VERSION} | sed 's+\.+_+g'`"
     39  1.1  martti export VEROLD="v4_2"
     40  1.1  martti export VERNEW="v4_6"
     41  1.1  martti export ORIG="${HOME}/netbsd/orig"
     42  1.1  martti export WORK="${HOME}/netbsd/work"
     43  1.1  martti export FIXES="${HOME}/netbsd/fixes/${VERSION}"
     44  1.1  martti export RSYNC_RSH="ssh -4"
     45  1.1  martti export RSYNC="rsync -avzr --delete"
     46  1.1  martti 
     47  1.1  martti ###############################################################################
     48  1.1  martti ###############################################################################
     49  1.1  martti # Fetch the official PF sources
     50  1.1  martti ###############################################################################
     51  1.1  martti ###############################################################################
     52  1.1  martti 
     53  1.1  martti mkdir -p ${ORIG}/openbsd-${VERSION}
     54  1.1  martti cd ${ORIG}/openbsd-${VERSION}
     55  1.1  martti if [ ! -f src.tar.gz ]; then
     56  1.1  martti   ftp ftp://ftp.df.lth.se/pub/OpenBSD/${VERSION}/src.tar.gz
     57  1.1  martti fi
     58  1.1  martti if [ ! -f sys.tar.gz ]; then
     59  1.1  martti   ftp ftp://ftp.df.lth.se/pub/OpenBSD/${VERSION}/sys.tar.gz
     60  1.1  martti fi
     61  1.1  martti 
     62  1.1  martti ###############################################################################
     63  1.1  martti ###############################################################################
     64  1.1  martti # GET COPY OF THE CVS REPOSITORY FOR LOCAL TEST IMPORTS
     65  1.1  martti ###############################################################################
     66  1.1  martti ###############################################################################
     67  1.1  martti 
     68  1.1  martti RSYNC_RSH="ssh -4"
     69  1.1  martti RSYNC="rsync -avzr --delete -e ssh"
     70  1.1  martti S="${NETBSDUSERNAME}@cvs.netbsd.org::cvsroot"
     71  1.1  martti D="${ORIG}/cvsroot"
     72  1.1  martti 
     73  1.1  martti if [ "${NETBSDUSERNAME}" = "fixthis" ]; then
     74  1.1  martti   echo "You MUST use your real NetBSD user name..."
     75  1.1  martti   sleep 86400
     76  1.1  martti fi
     77  1.1  martti ${RSYNC} ${S}/src/ ${D}/src
     78  1.1  martti ${RSYNC} --exclude 'commitlog*' --exclude 'history*' ${S}/CVSROOT/ ${D}/CVSROOT
     79  1.1  martti 
     80  1.1  martti ###############################################################################
     81  1.1  martti ###############################################################################
     82  1.1  martti # TEST IMPORT 1
     83  1.1  martti ###############################################################################
     84  1.1  martti ###############################################################################
     85  1.1  martti 
     86  1.1  martti # Get a new repository
     87  1.1  martti mkdir -p ${WORK}
     88  1.1  martti ${RSYNC} ${ORIG}/cvsroot ${WORK}
     89  1.1  martti rm -f ${WORK}/cvsroot/CVSROOT/commitinfo*
     90  1.1  martti rm -f ${WORK}/cvsroot/CVSROOT/loginfo*
     91  1.1  martti touch ${WORK}/cvsroot/CVSROOT/commitinfo
     92  1.1  martti touch ${WORK}/cvsroot/CVSROOT/loginfo
     93  1.1  martti chmod 644 ${WORK}/cvsroot/CVSROOT/config
     94  1.1  martti sed 's+/cvslock+/tmp/cvslock+' < ${WORK}/cvsroot/CVSROOT/config \
     95  1.1  martti   > ${WORK}/cvsroot/CVSROOT/config.1
     96  1.1  martti grep -v -e tag= -e AdminGroup= -e AdminOptions= \
     97  1.1  martti   < ${WORK}/cvsroot/CVSROOT/config.1 > ${WORK}/cvsroot/CVSROOT/config
     98  1.1  martti chmod 444 ${WORK}/cvsroot/CVSROOT/config
     99  1.1  martti rm -f ${WORK}/cvsroot/CVSROOT/config.1
    100  1.1  martti mkdir -p /tmp/cvslock
    101  1.1  martti export CVSROOT="${WORK}/cvsroot"
    102  1.1  martti 
    103  1.1  martti # Checkout a working copy 
    104  1.1  martti cd ${WORK}
    105  1.1  martti rm -rf src
    106  1.1  martti cvs co -P src
    107  1.1  martti 
    108  1.1  martti or
    109  1.1  martti 
    110  1.1  martti cd ${WORK}/src
    111  1.1  martti rm -rf dist/pf sys/dist/pf
    112  1.1  martti cvs update -dPA
    113  1.1  martti 
    114  1.1  martti or
    115  1.1  martti 
    116  1.1  martti cd ${WORK}/src
    117  1.1  martti rm -rf dist/pf sys/dist/pf
    118  1.1  martti cvs update -dPA dist/pf sys/dist/pf
    119  1.1  martti 
    120  1.1  martti # cvs tag
    121  1.1  martti cd ${WORK}/src
    122  1.1  martti cvs tag BEFORE-PF-${VERTAG} dist/pf sys/dist/pf
    123  1.1  martti 
    124  1.1  martti # Prepare the files for import
    125  1.1  martti rm -rf /tmp/openbsd-${VERSION}
    126  1.1  martti mkdir -p /tmp/openbsd-${VERSION}
    127  1.1  martti cd /tmp/openbsd-${VERSION}
    128  1.1  martti tar -xzf ${ORIG}/openbsd-${VERSION}/src.tar.gz
    129  1.1  martti tar -xzf ${ORIG}/openbsd-${VERSION}/sys.tar.gz
    130  1.1  martti rm -rf /tmp/netbsd-${VERSION}
    131  1.1  martti ${WORK}/src/dist/pf/pf2netbsd /tmp/openbsd-${VERSION} /tmp/netbsd-${VERSION}
    132  1.1  martti cd /tmp/netbsd-${VERSION}
    133  1.1  martti 
    134  1.1  martti # Import the new version
    135  1.1  martti cd /tmp/netbsd-${VERSION}
    136  1.1  martti cvs import -I ! -I CVS -m "Import PF from OpenBSD ${VERSION}" \
    137  1.1  martti   src OPENBSD ${VERNEW}
    138  1.1  martti 
    139  1.1  martti # src/dist/pf
    140  1.1  martti cd ${WORK}/src/dist/pf
    141  1.1  martti cvs update -kk -j${VEROLD} -j${VERNEW} -d
    142  1.1  martti A=`cvs update | grep ^C | awk '{ print $2 }'`
    143  1.1  martti cvs update | grep ^C
    144  1.1  martti 
    145  1.1  martti ##vim $A
    146  1.1  martti ##for i in $A; do mkdir -p ${FIXES}/1/src/dist/pf/`dirname $i`; done
    147  1.1  martti ##for i in $A; do cp $i ${FIXES}/1/src/dist/pf/$i; done
    148  1.1  martti cvs diff -u -kk -rOPENBSD $A | less
    149  1.1  martti cvs diff -u -kk -rOPENBSD | less
    150  1.1  martti cvs update -dPA
    151  1.1  martti 
    152  1.1  martti # src/sys/dist/pf
    153  1.1  martti cd ${WORK}/src/sys/dist/pf
    154  1.1  martti cvs update -kk -j${VEROLD} -j${VERNEW} -d
    155  1.1  martti B=`cvs update | grep ^C | awk '{ print $2 }'`
    156  1.1  martti cvs update | grep ^C
    157  1.1  martti 
    158  1.1  martti ##vim $B
    159  1.1  martti ##for i in $B; do mkdir -p ${FIXES}/1/src/sys/dist/pf/`dirname $i`; done
    160  1.1  martti ##for i in $B; do cp $i ${FIXES}/1/src/sys/dist/pf/$i; done
    161  1.1  martti cvs diff -u -kk -rOPENBSD $B | less
    162  1.1  martti cvs diff -u -kk -rOPENBSD | less
    163  1.1  martti 
    164  1.1  martti # Commit changes
    165  1.1  martti cd ${WORK}/src
    166  1.1  martti cvs ci -m "Upgraded PF to ${VERSION}" dist/pf sys/dist/pf
    167  1.1  martti 
    168  1.1  martti # See the changes
    169  1.1  martti cd ${WORK}/src
    170  1.1  martti cvs diff -u -kk -rOPENBSD dist/pf sys/dist/pf | less
    171  1.1  martti 
    172  1.1  martti ###############################################################################
    173  1.1  martti ###############################################################################
    174  1.1  martti # TEST IMPORT 2
    175  1.1  martti ###############################################################################
    176  1.1  martti ###############################################################################
    177  1.1  martti 
    178  1.1  martti # Get a new repository
    179  1.1  martti mkdir -p ${WORK}
    180  1.1  martti ${RSYNC} ${ORIG}/cvsroot ${WORK}
    181  1.1  martti rm -f ${WORK}/cvsroot/CVSROOT/commitinfo*
    182  1.1  martti rm -f ${WORK}/cvsroot/CVSROOT/loginfo*
    183  1.1  martti touch ${WORK}/cvsroot/CVSROOT/commitinfo
    184  1.1  martti touch ${WORK}/cvsroot/CVSROOT/loginfo
    185  1.1  martti chmod 644 ${WORK}/cvsroot/CVSROOT/config
    186  1.1  martti sed 's+/cvslock+/tmp/cvslock+' < ${WORK}/cvsroot/CVSROOT/config \
    187  1.1  martti   > ${WORK}/cvsroot/CVSROOT/config.1
    188  1.1  martti grep -v -e tag= -e AdminGroup= -e AdminOptions= \
    189  1.1  martti   < ${WORK}/cvsroot/CVSROOT/config.1 > ${WORK}/cvsroot/CVSROOT/config
    190  1.1  martti chmod 444 ${WORK}/cvsroot/CVSROOT/config
    191  1.1  martti rm -f ${WORK}/cvsroot/CVSROOT/config.1
    192  1.1  martti mkdir -p /tmp/cvslock
    193  1.1  martti export CVSROOT="${WORK}/cvsroot"
    194  1.1  martti 
    195  1.1  martti # Checkout a working copy 
    196  1.1  martti cd ${WORK}/src
    197  1.1  martti rm -rf dist/pf sys/dist/pf
    198  1.1  martti cvs update -dPA dist/pf sys/dist/pf
    199  1.1  martti 
    200  1.1  martti # cvs tag
    201  1.1  martti cd ${WORK}/src
    202  1.1  martti cvs tag BEFORE-PF-${VERTAG} dist/pf sys/dist/pf
    203  1.1  martti 
    204  1.1  martti # Prepare the files for import
    205  1.1  martti rm -rf /tmp/openbsd-${VERSION}
    206  1.1  martti mkdir -p /tmp/openbsd-${VERSION}
    207  1.1  martti cd /tmp/openbsd-${VERSION}
    208  1.1  martti tar -xzf ${ORIG}/openbsd-${VERSION}/src.tar.gz
    209  1.1  martti tar -xzf ${ORIG}/openbsd-${VERSION}/sys.tar.gz
    210  1.1  martti rm -rf /tmp/netbsd-${VERSION}
    211  1.1  martti ${WORK}/src/dist/pf/pf2netbsd /tmp/openbsd-${VERSION} /tmp/netbsd-${VERSION}
    212  1.1  martti cd /tmp/netbsd-${VERSION}
    213  1.1  martti 
    214  1.1  martti # Import the new version
    215  1.1  martti cd /tmp/netbsd-${VERSION}
    216  1.1  martti cvs import -I ! -I CVS -m "Import PF from OpenBSD ${VERSION}" \
    217  1.1  martti   src OPENBSD ${VERNEW}
    218  1.1  martti 
    219  1.1  martti # Merge and fix conflicts
    220  1.1  martti cd ${WORK}/src/dist/pf
    221  1.1  martti cvs update -kk -j${VEROLD} -j${VERNEW} -d
    222  1.1  martti cvs update | grep ^C
    223  1.1  martti 
    224  1.1  martti cd ${WORK}/src/sys/dist/pf
    225  1.1  martti cvs update -kk -j${VEROLD} -j${VERNEW} -d
    226  1.1  martti cvs update | grep ^C
    227  1.1  martti 
    228  1.1  martti cd ${FIXES}/1 && tar cf - * | tar xvf - -C ${WORK}
    229  1.1  martti cd ${WORK}/src
    230  1.1  martti cvs ci -m "Upgraded PF to ${VERSION}" dist/pf sys/dist/pf
    231  1.1  martti 
    232  1.1  martti cd ${FIXES}/2 && tar cf - * | tar xvf - -C ${WORK}
    233  1.1  martti cd ${WORK}/src
    234  1.1  martti cvs ci -m "Sync with official PF" dist/pf sys/dist/pf
    235  1.1  martti 
    236  1.1  martti ###############################################################################
    237  1.1  martti ###############################################################################
    238  1.1  martti # FINAL IMPORT IN TO NETBSD REPOSITORY
    239  1.1  martti ###############################################################################
    240  1.1  martti ###############################################################################
    241  1.1  martti 
    242  1.1  martti # Settings
    243  1.1  martti if [ "${NETBSDUSERNAME}" = "fixthis" ]; then
    244  1.1  martti   echo "You MUST use your real NetBSD user name..."
    245  1.1  martti   sleep 86400
    246  1.1  martti fi
    247  1.1  martti export WORK="/usr"
    248  1.1  martti export CVSROOT="${NETBSDUSERNAME}@cvs.netbsd.org:/cvsroot"
    249  1.1  martti 
    250  1.1  martti # Update the local copy first
    251  1.1  martti cd ${WORK}/src
    252  1.1  martti cvs update -dPA dist/pf sys/dist/pf
    253  1.1  martti 
    254  1.1  martti # cvs tag
    255  1.1  martti cvs tag BEFORE-PF-${VERTAG} dist/pf sys/dist/pf
    256  1.1  martti 
    257  1.1  martti # Prepare the files for import
    258  1.1  martti rm -rf /tmp/openbsd-${VERSION}
    259  1.1  martti mkdir -p /tmp/openbsd-${VERSION}
    260  1.1  martti cd /tmp/openbsd-${VERSION}
    261  1.1  martti tar -xzf ${ORIG}/openbsd-${VERSION}/src.tar.gz
    262  1.1  martti tar -xzf ${ORIG}/openbsd-${VERSION}/sys.tar.gz
    263  1.1  martti rm -rf /tmp/netbsd-${VERSION}
    264  1.1  martti ${WORK}/src/dist/pf/pf2netbsd /tmp/openbsd-${VERSION} /tmp/netbsd-${VERSION}
    265  1.1  martti cd /tmp/netbsd-${VERSION}
    266  1.1  martti 
    267  1.1  martti # Import the new version
    268  1.1  martti cd /tmp/netbsd-${VERSION}
    269  1.1  martti cvs import -I ! -I CVS -m "Import PF from OpenBSD ${VERSION}" \
    270  1.1  martti   src OPENBSD ${VERNEW}
    271  1.1  martti 
    272  1.1  martti # Merge and fix conflicts
    273  1.1  martti cd ${WORK}/src/dist/pf
    274  1.1  martti cvs update -kk -j${VEROLD} -j${VERNEW} -d
    275  1.1  martti cvs update | grep ^C
    276  1.1  martti 
    277  1.1  martti cd ${WORK}/src/sys/dist/pf
    278  1.1  martti cvs update -kk -j${VEROLD} -j${VERNEW} -d
    279  1.1  martti cvs update | grep ^C
    280  1.1  martti 
    281  1.1  martti cd ${FIXES}/1 && tar cf - * | tar xvf - -C ${WORK}
    282  1.1  martti cd ${WORK}/src
    283  1.1  martti cvs ci -m "Upgraded PF to ${VERSION}" dist/pf sys/dist/pf
    284  1.1  martti 
    285  1.1  martti cd ${FIXES}/2 && tar cf - * | tar xvf - -C ${WORK}
    286  1.1  martti cd ${WORK}/src
    287  1.1  martti cvs ci -m "Sync with official PF" dist/pf sys/dist/pf
    288  1.1  martti 
    289  1.1  martti # fix doc/3RDPARTY and doc/CHANGES
    290  1.1  martti # send mail to current-users@
    291  1.1  martti 
    292  1.1  martti HEADSUP
    293  1.1  martti =======
    294  1.1  martti Hi!
    295  1.1  martti 
    296  1.1  martti I have just upgraded PF to the latest version on NetBSD -current. I've
    297  1.1  martti tested this by building i386 and amd64 release and installed the sets
    298  1.1  martti on my test hosts.
    299  1.1  martti 
    300  1.1  martti If you detect any errors (or have improvements), please send a problem
    301  1.1  martti report with the send-pr tool.
    302