xref: /netbsd-src/sys/external/bsd/gnu-efi/gnu-efi2netbsd (revision 5b28f239895d55856221c590945769250e289f5f)
19564062dSjakllsch#! /bin/sh
29564062dSjakllsch#
3*5b28f239Srillig#	$NetBSD: gnu-efi2netbsd,v 1.2 2024/09/08 09:36:51 rillig Exp $
49564062dSjakllsch#
59564062dSjakllsch# Copyright (c) 2011 The NetBSD Foundation, Inc.
69564062dSjakllsch# All rights reserved.
79564062dSjakllsch#
89564062dSjakllsch# Redistribution and use in source and binary forms, with or without
99564062dSjakllsch# modification, are permitted provided that the following conditions
109564062dSjakllsch# are met:
119564062dSjakllsch# 1. Redistributions of source code must retain the above copyright
129564062dSjakllsch#    notice, this list of conditions and the following disclaimer.
139564062dSjakllsch# 2. Redistributions in binary form must reproduce the above copyright
149564062dSjakllsch#    notice, this list of conditions and the following disclaimer in the
159564062dSjakllsch#    documentation and/or other materials provided with the distribution.
169564062dSjakllsch#
179564062dSjakllsch# THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
189564062dSjakllsch# ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
199564062dSjakllsch# TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
209564062dSjakllsch# PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
219564062dSjakllsch# BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
229564062dSjakllsch# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
239564062dSjakllsch# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
249564062dSjakllsch# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
259564062dSjakllsch# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
269564062dSjakllsch# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
279564062dSjakllsch# POSSIBILITY OF SUCH DAMAGE.
289564062dSjakllsch#
29*5b28f239Srillig# gnu-efi2netbsd:  convert a gnu-efi source tree into a
309564062dSjakllsch# NetBSD gnu-efi source tree, under src/sys/external/bsd,
319564062dSjakllsch#
329564062dSjakllsch# Rough instructions for importing new gnu-efi release:
339564062dSjakllsch#
349564062dSjakllsch#	$ cd /some/where/temporary
359564062dSjakllsch#	$ tar xpfz /new/gnu-efi/release/tar/file
369564062dSjakllsch#	$ sh /usr/src/sys/external/bsd/gnu-efi/gnu-efi2netbsd gnu-efi-x.y
379564062dSjakllsch#	$ cd gnu-efi-x.y
389564062dSjakllsch#	$ cvs -d cvs.netbsd.org:/cvsroot import -m "Import gnu-efi-x.yz" src/sys/external/bsd/gnu-efi/dist GNU_EFI gnu-efi-x_y_z
399564062dSjakllsch#	- check makefiles to see if any extra sources have been added.
409564062dSjakllsch#	- update distrib/sets if necessary.
419564062dSjakllsch
429564062dSjakllschif [ $# -ne 1 ]; then echo "gnu-efi2netbsd src"; exit 1; fi
439564062dSjakllsch
449564062dSjakllschr=$1
459564062dSjakllschcase "$r" in
469564062dSjakllsch	/*)
479564062dSjakllsch		;;
489564062dSjakllsch	*)
499564062dSjakllsch		r=`/bin/pwd`/$r
509564062dSjakllsch		;;
519564062dSjakllschesac
529564062dSjakllsch
539564062dSjakllschcd $r
549564062dSjakllsch
559564062dSjakllsch### Remove GPL components
569564062dSjakllschrm -r $r/debian
579564062dSjakllschrm $r/gnuefi/setjmp_*.S
589564062dSjakllsch
599564062dSjakllsch### Remove the $'s around RCS tags
609564062dSjakllschcleantags $r
619564062dSjakllsch
629564062dSjakllsch### Add our NetBSD RCS Id
639564062dSjakllschfind $r -type f -and \( -name '*.[Sch]' -or -name '*.lds' \) -print | while read c; do
649564062dSjakllsch	sed 1q < $c | grep -q '\$NetBSD' || (
659564062dSjakllschecho "/*	\$NetBSD\$	*/" >/tmp/gnu-efi2n$$
669564062dSjakllschecho "" >>/tmp/gnu-efi2n$$
679564062dSjakllschcat $c  >> /tmp/gnu-efi2n$$
689564062dSjakllschtouch -r $c /tmp/gnu-efi2n$$
699564062dSjakllschmv /tmp/gnu-efi2n$$ $c && echo added NetBSD RCS tag to $c
709564062dSjakllsch	)
719564062dSjakllschdone
729564062dSjakllsch
739564062dSjakllschecho done
749564062dSjakllsch
759564062dSjakllsch### Clean up any CVS directories that might be around.
769564062dSjakllschecho "cleaning up CVS residue."
779564062dSjakllschfind $r -type d -name "CVS" -print | xargs rm -r
789564062dSjakllschecho done
799564062dSjakllsch
809564062dSjakllsch### Fixing file and directory permissions.
819564062dSjakllschecho "Fixing file/directory permissions."
829564062dSjakllsch(
839564062dSjakllsch	find $r -type f -print | xargs chmod u+rw,go+r
849564062dSjakllsch	find $r -type d -print | xargs chmod u+rwx,go+rx
859564062dSjakllsch)
869564062dSjakllschecho done
879564062dSjakllsch
889564062dSjakllschexit 0
89