1 1.1 skrll #! /bin/sh 2 1.1 skrll # 3 1.2 jmcneill # $NetBSD: dtc2netbsd,v 1.2 2017/06/16 22:47:22 jmcneill Exp $ 4 1.1 skrll # 5 1.1 skrll # 6 1.1 skrll # Copyright (c) 2017 The NetBSD Foundation, Inc. 7 1.1 skrll # All rights reserved. 8 1.1 skrll # 9 1.1 skrll # This code is derived from software contributed to The NetBSD Foundation 10 1.1 skrll # by Nick Hudson 11 1.1 skrll # 12 1.1 skrll # Redistribution and use in source and binary forms, with or without 13 1.1 skrll # modification, are permitted provided that the following conditions 14 1.1 skrll # are met: 15 1.1 skrll # 1. Redistributions of source code must retain the above copyright 16 1.1 skrll # notice, this list of conditions and the following disclaimer. 17 1.1 skrll # 2. Redistributions in binary form must reproduce the above copyright 18 1.1 skrll # notice, this list of conditions and the following disclaimer in the 19 1.1 skrll # documentation and/or other materials provided with the distribution. 20 1.1 skrll # 21 1.1 skrll # THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS 22 1.1 skrll # ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED 23 1.1 skrll # TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 24 1.1 skrll # PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS 25 1.1 skrll # BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 26 1.1 skrll # CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 27 1.1 skrll # SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 28 1.1 skrll # INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 29 1.1 skrll # CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 30 1.1 skrll # ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 31 1.1 skrll # POSSIBILITY OF SUCH DAMAGE. 32 1.1 skrll # 33 1.1 skrll # dtc2netbsd: convert a dtc source tree into netbsd dtc/libfdt source trees 34 1.1 skrll # 35 1.1 skrll # Rough instructions for importing new dtc release: 36 1.1 skrll # 37 1.1 skrll # $ cd /some/where/temporary 38 1.1 skrll # $ tar xpfz /dtc/release/tar/file 39 1.1 skrll # $ DTCSRCS=$(pwd) 40 1.1 skrll # $ WRKDIR=/an/other/temporary 41 1.1 skrll # $ sh /usr/src/external/gpl2/dtc/dtc2netbsd $DTCSRCS $WRKDIR 42 1.1 skrll # 43 1.1 skrll # Import libfdt using 44 1.1 skrll # $ cd $WRKDIR/libfdt 45 1.1 skrll # $ cvs import -m "Import libfdt <version>" src/sys/external/bsd/libfdt/dist DTC dtc-<version> 46 1.1 skrll # 47 1.1 skrll # merge libfdt sources using, e.g. 48 1.1 skrll # $ cvs -d cvs.netbsd.org:/cvsroot checkout -jdtc-1-4-1 -jdtc-1-4-4 src/sys/external/bsd/libfdt/dist 49 1.1 skrll # 50 1.1 skrll # Import dtc using 51 1.1 skrll # $ cd $WRKDIR/dtc 52 1.1 skrll # $ cvs import -m "Import dtc YYYY-MM-DD" src/external/gpl2/dtc/dist DTC dtc-<version> 53 1.1 skrll # merge dtc sources using, e.g. 54 1.1 skrll # $ cvs -d cvs.netbsd.org:/cvsroot checkout -jdtc-1-4-1 -jdtc-1-4-4 src/external/gpl2/dtc/dist 55 1.2 jmcneill # 56 1.2 jmcneill # Update the version string in the version_gen.h header to match the imported version: 57 1.2 jmcneill # $ echo '#define DTC_VERSION "DTC 1.4.4"' > src/external/gpl2/dtc/usr.bin/dtc/version_gen.h 58 1.1 skrll 59 1.1 skrll if [ $# -ne 2 ]; then echo "dtc2netbsd dtcsrc tmpdir"; exit 1; fi 60 1.1 skrll 61 1.1 skrll r=$1 62 1.1 skrll d=$2 63 1.1 skrll 64 1.1 skrll case "$d" in 65 1.1 skrll /*) 66 1.1 skrll ;; 67 1.1 skrll *) 68 1.1 skrll d=`/bin/pwd`/$d 69 1.1 skrll ;; 70 1.1 skrll esac 71 1.1 skrll 72 1.1 skrll case "$r" in 73 1.1 skrll /*) 74 1.1 skrll ;; 75 1.1 skrll *) 76 1.1 skrll r=`/bin/pwd`/$r 77 1.1 skrll ;; 78 1.1 skrll esac 79 1.1 skrll 80 1.1 skrll echo preparing directory $d 81 1.1 skrll rm -rf $d 82 1.1 skrll mkdir -p $d/dtc 83 1.1 skrll 84 1.1 skrll ### Copy the files and directories 85 1.1 skrll echo copying $r to $d 86 1.1 skrll cd $r 87 1.1 skrll pax -rw * $d/dtc 88 1.1 skrll mv $d/dtc/libfdt $d/libfdt 89 1.1 skrll 90 1.1 skrll # cd to import directory 91 1.1 skrll cd $d 92 1.1 skrll 93 1.1 skrll # 94 1.1 skrll 95 1.1 skrll ### Remove the $'s around RCS tags 96 1.1 skrll cleantags $d 97 1.1 skrll 98 1.1 skrll ### Add our NetBSD RCS Id 99 1.1 skrll find $d -type f -name '*.[chly]' -print | while read c; do 100 1.1 skrll sed 1q < $c | grep -q '\$NetBSD' || ( 101 1.1 skrll echo "/* \$NetBSD\$ */" >/tmp/dtc$$ 102 1.1 skrll echo "" >>/tmp/dtc$$ 103 1.1 skrll cat $c >> /tmp/dtc$$ 104 1.1 skrll mv /tmp/dtc$$ $c && echo added NetBSD RCS tag to $c 105 1.1 skrll ) 106 1.1 skrll done 107 1.1 skrll 108 1.1 skrll echo done 109 1.1 skrll 110 1.1 skrll ### Clean up any CVS directories that might be around. 111 1.1 skrll echo "cleaning up CVS residue." 112 1.1 skrll ( 113 1.1 skrll cd $d 114 1.1 skrll find . -type d -name "CVS" -print | xargs rm -r 115 1.1 skrll ) 116 1.1 skrll echo done 117 1.1 skrll 118 1.1 skrll ### Fixing file and directory permissions. 119 1.1 skrll echo "Fixing file/directory permissions." 120 1.1 skrll ( 121 1.1 skrll cd $d 122 1.1 skrll find . -type f -print | xargs chmod u+rw,go+r 123 1.1 skrll find . -type d -print | xargs chmod u+rwx,go+rx 124 1.1 skrll ) 125 1.1 skrll echo done 126 1.1 skrll 127 1.1 skrll exit 0 128