13569839bSskrll#! /bin/sh 23569839bSskrll# 3*c9b5b227Sjmcneill# $NetBSD: dtc2netbsd,v 1.2 2017/06/16 22:47:22 jmcneill Exp $ 43569839bSskrll# 53569839bSskrll# 63569839bSskrll# Copyright (c) 2017 The NetBSD Foundation, Inc. 73569839bSskrll# All rights reserved. 83569839bSskrll# 93569839bSskrll# This code is derived from software contributed to The NetBSD Foundation 103569839bSskrll# by Nick Hudson 113569839bSskrll# 123569839bSskrll# Redistribution and use in source and binary forms, with or without 133569839bSskrll# modification, are permitted provided that the following conditions 143569839bSskrll# are met: 153569839bSskrll# 1. Redistributions of source code must retain the above copyright 163569839bSskrll# notice, this list of conditions and the following disclaimer. 173569839bSskrll# 2. Redistributions in binary form must reproduce the above copyright 183569839bSskrll# notice, this list of conditions and the following disclaimer in the 193569839bSskrll# documentation and/or other materials provided with the distribution. 203569839bSskrll# 213569839bSskrll# THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS 223569839bSskrll# ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED 233569839bSskrll# TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 243569839bSskrll# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS 253569839bSskrll# BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 263569839bSskrll# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 273569839bSskrll# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 283569839bSskrll# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 293569839bSskrll# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 303569839bSskrll# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 313569839bSskrll# POSSIBILITY OF SUCH DAMAGE. 323569839bSskrll# 333569839bSskrll# dtc2netbsd: convert a dtc source tree into netbsd dtc/libfdt source trees 343569839bSskrll# 353569839bSskrll# Rough instructions for importing new dtc release: 363569839bSskrll# 373569839bSskrll# $ cd /some/where/temporary 383569839bSskrll# $ tar xpfz /dtc/release/tar/file 393569839bSskrll# $ DTCSRCS=$(pwd) 403569839bSskrll# $ WRKDIR=/an/other/temporary 413569839bSskrll# $ sh /usr/src/external/gpl2/dtc/dtc2netbsd $DTCSRCS $WRKDIR 423569839bSskrll# 433569839bSskrll# Import libfdt using 443569839bSskrll# $ cd $WRKDIR/libfdt 453569839bSskrll# $ cvs import -m "Import libfdt <version>" src/sys/external/bsd/libfdt/dist DTC dtc-<version> 463569839bSskrll# 473569839bSskrll# merge libfdt sources using, e.g. 483569839bSskrll# $ cvs -d cvs.netbsd.org:/cvsroot checkout -jdtc-1-4-1 -jdtc-1-4-4 src/sys/external/bsd/libfdt/dist 493569839bSskrll# 503569839bSskrll# Import dtc using 513569839bSskrll# $ cd $WRKDIR/dtc 523569839bSskrll# $ cvs import -m "Import dtc YYYY-MM-DD" src/external/gpl2/dtc/dist DTC dtc-<version> 533569839bSskrll# merge dtc sources using, e.g. 543569839bSskrll# $ cvs -d cvs.netbsd.org:/cvsroot checkout -jdtc-1-4-1 -jdtc-1-4-4 src/external/gpl2/dtc/dist 55*c9b5b227Sjmcneill# 56*c9b5b227Sjmcneill# Update the version string in the version_gen.h header to match the imported version: 57*c9b5b227Sjmcneill# $ echo '#define DTC_VERSION "DTC 1.4.4"' > src/external/gpl2/dtc/usr.bin/dtc/version_gen.h 583569839bSskrll 593569839bSskrllif [ $# -ne 2 ]; then echo "dtc2netbsd dtcsrc tmpdir"; exit 1; fi 603569839bSskrll 613569839bSskrllr=$1 623569839bSskrlld=$2 633569839bSskrll 643569839bSskrllcase "$d" in 653569839bSskrll /*) 663569839bSskrll ;; 673569839bSskrll *) 683569839bSskrll d=`/bin/pwd`/$d 693569839bSskrll ;; 703569839bSskrllesac 713569839bSskrll 723569839bSskrllcase "$r" in 733569839bSskrll /*) 743569839bSskrll ;; 753569839bSskrll *) 763569839bSskrll r=`/bin/pwd`/$r 773569839bSskrll ;; 783569839bSskrllesac 793569839bSskrll 803569839bSskrllecho preparing directory $d 813569839bSskrllrm -rf $d 823569839bSskrllmkdir -p $d/dtc 833569839bSskrll 843569839bSskrll### Copy the files and directories 853569839bSskrllecho copying $r to $d 863569839bSskrllcd $r 873569839bSskrllpax -rw * $d/dtc 883569839bSskrllmv $d/dtc/libfdt $d/libfdt 893569839bSskrll 903569839bSskrll# cd to import directory 913569839bSskrllcd $d 923569839bSskrll 933569839bSskrll# 943569839bSskrll 953569839bSskrll### Remove the $'s around RCS tags 963569839bSskrllcleantags $d 973569839bSskrll 983569839bSskrll### Add our NetBSD RCS Id 993569839bSskrllfind $d -type f -name '*.[chly]' -print | while read c; do 1003569839bSskrll sed 1q < $c | grep -q '\$NetBSD' || ( 1013569839bSskrllecho "/* \$NetBSD\$ */" >/tmp/dtc$$ 1023569839bSskrllecho "" >>/tmp/dtc$$ 1033569839bSskrllcat $c >> /tmp/dtc$$ 1043569839bSskrllmv /tmp/dtc$$ $c && echo added NetBSD RCS tag to $c 1053569839bSskrll ) 1063569839bSskrlldone 1073569839bSskrll 1083569839bSskrllecho done 1093569839bSskrll 1103569839bSskrll### Clean up any CVS directories that might be around. 1113569839bSskrllecho "cleaning up CVS residue." 1123569839bSskrll( 1133569839bSskrll cd $d 1143569839bSskrll find . -type d -name "CVS" -print | xargs rm -r 1153569839bSskrll) 1163569839bSskrllecho done 1173569839bSskrll 1183569839bSskrll### Fixing file and directory permissions. 1193569839bSskrllecho "Fixing file/directory permissions." 1203569839bSskrll( 1213569839bSskrll cd $d 1223569839bSskrll find . -type f -print | xargs chmod u+rw,go+r 1233569839bSskrll find . -type d -print | xargs chmod u+rwx,go+rx 1243569839bSskrll) 1253569839bSskrllecho done 1263569839bSskrll 1273569839bSskrllexit 0 128