1fa28c6faSchristos#! /bin/sh 2fa28c6faSchristos# 3*5b28f239Srillig# $NetBSD: rcs2netbsd,v 1.2 2024/09/08 09:36:47 rillig Exp $ 4fa28c6faSchristos# 5fa28c6faSchristos# Copyright (c) 2016 The NetBSD Foundation, Inc. 6fa28c6faSchristos# All rights reserved. 7fa28c6faSchristos# 8fa28c6faSchristos# Redistribution and use in source and binary forms, with or without 9fa28c6faSchristos# modification, are permitted provided that the following conditions 10fa28c6faSchristos# are met: 11fa28c6faSchristos# 1. Redistributions of source code must retain the above copyright 12fa28c6faSchristos# notice, this list of conditions and the following disclaimer. 13fa28c6faSchristos# 2. Redistributions in binary form must reproduce the above copyright 14fa28c6faSchristos# notice, this list of conditions and the following disclaimer in the 15fa28c6faSchristos# documentation and/or other materials provided with the distribution. 16fa28c6faSchristos# 17fa28c6faSchristos# THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS 18fa28c6faSchristos# ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED 19fa28c6faSchristos# TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 20fa28c6faSchristos# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS 21fa28c6faSchristos# BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 22fa28c6faSchristos# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 23fa28c6faSchristos# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 24fa28c6faSchristos# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 25fa28c6faSchristos# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 26fa28c6faSchristos# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 27fa28c6faSchristos# POSSIBILITY OF SUCH DAMAGE. 28fa28c6faSchristos# 29*5b28f239Srillig# rcs2netbsd: convert a glibc source tree into a 30fa28c6faSchristos# netbsd rcs source tree, 31fa28c6faSchristos# 32fa28c6faSchristos# Rough instructions for importing new rcs release: 33fa28c6faSchristos# 34fa28c6faSchristos# $ cd /some/where/temporary 35fa28c6faSchristos# $ tar xpfz /malloc/release/tar/file 36fa28c6faSchristos# $ sh /usr/src/external/gpl2/rcs/rcs2netbsd malloc `pwd` 37fa28c6faSchristos# $ cd `pwd`/src/external/gpl2/rcs/dist 38fa28c6faSchristos# $ cvs import -m "Import rcs rcs x.y" src/external/gpl2/rcs/dist FSF rcs-x-y 39fa28c6faSchristos# merge sources according to instructions given 40fa28c6faSchristos# e.g. cvs -d cvs.netbsd.org:/cvsroot checkout -jrcs-1-19 -jrcs-1-19-1 src/gnu/dist/rcs 41fa28c6faSchristos 42fa28c6faSchristosif [ $# -ne 2 ]; then echo "rcs2netbsd src dest"; exit 1; fi 43fa28c6faSchristos 44fa28c6faSchristosr=$1 45fa28c6faSchristosd=$2/src/external/gpl2/rcs/dist 46fa28c6faSchristos 47fa28c6faSchristoscase "$d" in 48fa28c6faSchristos /*) 49fa28c6faSchristos ;; 50fa28c6faSchristos *) 51fa28c6faSchristos d=`/bin/pwd`/$d 52fa28c6faSchristos ;; 53fa28c6faSchristosesac 54fa28c6faSchristos 55fa28c6faSchristoscase "$r" in 56fa28c6faSchristos /*) 57fa28c6faSchristos ;; 58fa28c6faSchristos *) 59fa28c6faSchristos r=`/bin/pwd`/$r 60fa28c6faSchristos ;; 61fa28c6faSchristosesac 62fa28c6faSchristos 63fa28c6faSchristosecho preparing directory $d 64fa28c6faSchristosrm -rf $d 65fa28c6faSchristosmkdir -p $d 66fa28c6faSchristos 67fa28c6faSchristos### Copy the files and directories 68fa28c6faSchristosecho copying $r to $d 69fa28c6faSchristoscd $r 70fa28c6faSchristospax -rw * $d 71fa28c6faSchristoschmod -x $d/* 72fa28c6faSchristos 73fa28c6faSchristos# cd to import directory 74fa28c6faSchristoscd $d 75fa28c6faSchristos 76fa28c6faSchristos# 77fa28c6faSchristos 78fa28c6faSchristos### Remove the $'s around RCS tags 79fa28c6faSchristoscleantags $d 80fa28c6faSchristos 81fa28c6faSchristos### Add our NetBSD RCS Id 82fa28c6faSchristosfind $d -type f -name '*.[chly]' -print | while read c; do 83fa28c6faSchristos sed 1q < $c | grep -q '\$NetBSD' || ( 84fa28c6faSchristosecho "/* \$NetBSD\$ */" >/tmp/rcs3n$$ 85fa28c6faSchristosecho "" >>/tmp/rcs3n$$ 86fa28c6faSchristoscat $c >> /tmp/rcs3n$$ 87fa28c6faSchristosmv /tmp/rcs3n$$ $c && echo added NetBSD RCS tag to $c 88fa28c6faSchristos ) 89fa28c6faSchristosdone 90fa28c6faSchristos 91fa28c6faSchristosfind $d -type f -name '*.cpp' -print | while read c; do 92fa28c6faSchristos sed 1q < $c | grep -q '\$NetBSD' || ( 93fa28c6faSchristosecho "/* \$NetBSD\$ */" >/tmp/rcs3n$$ 94fa28c6faSchristosecho "" >>/tmp/rcs3n$$ 95fa28c6faSchristoscat $c >> /tmp/rcs3n$$ 96fa28c6faSchristosmv /tmp/rcs3n$$ $c && echo added NetBSD RCS tag to $c 97fa28c6faSchristos ) 98fa28c6faSchristosdone 99fa28c6faSchristos 100fa28c6faSchristosfind $d -type f -name '*.[0-9]' -print | while read m; do 101fa28c6faSchristos sed 1q < $m | grep -q '\$NetBSD' || ( 102fa28c6faSchristosecho ".\\\" \$NetBSD\$" >/tmp/rcs2m$$ 103fa28c6faSchristosecho ".\\\"" >>/tmp/rcs2m$$ 104fa28c6faSchristoscat $m >> /tmp/rcs2m$$ 105fa28c6faSchristosmv /tmp/rcs2m$$ $m && echo added NetBSD RCS tag to $m 106fa28c6faSchristos ) 107fa28c6faSchristosdone 108fa28c6faSchristos 109fa28c6faSchristosfind $d -type f -name '*.texi' -print | while read t; do 110fa28c6faSchristos sed "2 s/^/@c \$NetBSD\$\\ 111fa28c6faSchristos/" < $t > /tmp/rcs4t$$ 112fa28c6faSchristos mv /tmp/rcs4t$$ $t && echo added NetBSD RCS tag to $t 113fa28c6faSchristosdone 114fa28c6faSchristos 115fa28c6faSchristosecho done 116fa28c6faSchristos 117fa28c6faSchristos### Clean up any CVS directories that might be around. 118fa28c6faSchristosecho "cleaning up CVS residue." 119fa28c6faSchristos( 120fa28c6faSchristos cd $d 121fa28c6faSchristos find . -type d -name "CVS" -print | xargs rm -r 122fa28c6faSchristos) 123fa28c6faSchristosecho done 124fa28c6faSchristos 125fa28c6faSchristos### Fixing file and directory permissions. 126fa28c6faSchristosecho "Fixing file/directory permissions." 127fa28c6faSchristos( 128fa28c6faSchristos cd $d 129fa28c6faSchristos find . -type f -print | xargs chmod u+rw,go+r 130fa28c6faSchristos find . -type d -print | xargs chmod u+rwx,go+rx 131fa28c6faSchristos) 132fa28c6faSchristosecho done 133fa28c6faSchristos 134fa28c6faSchristosexit 0 135