xref: /netbsd-src/external/gpl2/rcs/rcs2netbsd (revision 5b28f239895d55856221c590945769250e289f5f)
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