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