diff --git a/debian/.gitignore b/debian/.gitignore new file mode 100644 index 0000000..e5c12ef --- /dev/null +++ b/debian/.gitignore @@ -0,0 +1,11 @@ +/stage1.bin +/xburst_stage1.bin +/xburst_stage2.bin +/changelog.upstream + +/files + +/*.debhelper.log +/*.substvars + +/xburst-tools diff --git a/debian/README.source b/debian/README.source new file mode 100644 index 0000000..797da8c --- /dev/null +++ b/debian/README.source @@ -0,0 +1,23 @@ +This Debian package is developed in a Git repository (see the Vcs-Git field +of debian/control). To build from a git checkout: + + debian/rules get-orig-source REPO=. BRANCH=remotes/origin/debian + mv xburst-tools_*.tar.gz .. + debian/autogen.sh + debuild + +This requires a mipsel-openwrt-linux- cross-toolchain in your $PATH. You +can get one by building the development environment from Qi Hardware, for +example. + + git://projects.qi-hardware.com/openwrt-xburst.git xburst + +See the Qi Hardware wiki for details. + + http://en.qi-hardware.com/wiki/Building_Software_Image + +To build a released version of this package, no special instructions apply. +“dpkg-buildpackage” or “apt-get -b source xburst-tools” should work as +usual. + + -- Jonathan Nieder Mon, 05 Apr 2010 06:21:12 -0500 diff --git a/debian/autogen.sh b/debian/autogen.sh new file mode 100755 index 0000000..31d0bc2 --- /dev/null +++ b/debian/autogen.sh @@ -0,0 +1,17 @@ +#!/bin/sh +# Generate debian/xburst_stage1.bin, debian/xburst_stage2.bin, +# and debian/changelog.upstream. +# +# Uses debian/changelog and the git revision log. +# +# Requires a mipsel-openwrt-linux- toolchain on the $PATH. + +set -e + +dpkg-parsechangelog --format rfc822 --all | + awk -f debian/changelog.upstream.awk + +debian/rules firmware +cp -f usbboot/xburst_stage1/xburst_stage1.bin debian/ +cp -f usbboot/xburst_stage2/xburst_stage2.bin debian/ +cp -f xbboot/target-stage1/stage1.bin debian/ diff --git a/debian/changelog b/debian/changelog new file mode 100644 index 0000000..acf7b99 --- /dev/null +++ b/debian/changelog @@ -0,0 +1,5 @@ +xburst-tools (0.0+201007-1) lucid; urgency=low + + * Initial release, taken from commit b21d2e4 (Closes: #535429) + + -- xiangfu Tue, 14 Sep 2010 22:34:15 +0800 diff --git a/debian/changelog.upstream.awk b/debian/changelog.upstream.awk new file mode 100644 index 0000000..6755ede --- /dev/null +++ b/debian/changelog.upstream.awk @@ -0,0 +1,113 @@ +#!/bin/awk -f +# Generate debian/changelog.upstream from debian/changelog and +# the git revision log. Inspired by Gerrit Pape’s +# debian/changelog.upstream.sh, from the git-core Debian package. +# +# Requires a working /dev/stderr. +# +# Usage: +# dpkg-parsechangelog --format rfc822 --all | +# awk -f debian/changelog.upstream.awk + +# If argument matches /^Version: /, return remaining text. +# Result is nonempty if and only if argument matches. +function version_line(line) { + if (line ~ /^Version: /) { + sub(/^Version: /, "", line); + return line; + } + return ""; +} + +# If argument matches /^\*.* from commit /, return remaining text. +# Result is nonempty if and only if argument matches. +function commit_id_line(line) { + if (line ~ / from commit /) { + sub(/^.* from commit /, "", line); + sub(/[(][Cc]loses.*/, "", line); + sub(/[^0-9a-f]*$/, "", line); + return line; + } + return ""; +} + +# Read standard input, scanning for a changelog entry of the +# form “* New snapshot, taken from commit .” +# Result is . +# Result is empty and writes a message to standard error if no such entry is +# found before the next Version: line with a different upstream +# version (or EOF). +# Argument is the upstream version sought. +function read_commit_id(upstream, line,version,corresponding_upstream,commit) { + while (getline line) { + version = version_line(line); + corresponding_upstream = version; + sub(/-[^-]*$/, "", corresponding_upstream); + if (version != "" && corresponding_upstream != upstream) + break; + + commit = commit_id_line(line); + if (commit != "") + return commit; + } + + print "No commit id for " upstream >> "/dev/stderr"; + return ""; +} + +BEGIN { + last = "none"; + last_cid = "none"; + cl = "debian/changelog.upstream"; +} + +# Add a list of all revisions up to last to debian/changelog.upstream +# and set last = new_cid. +# new is a user-readable name for the commit new_cide. +function add_version(new,new_cid, limiter,versionline,command,line) { + if (last == "none") { + printf "" > cl; + last = new; + last_cid = new_cid; + return 0; + } + + if (new == "none") { + versionline = "Version " last; + limiter = ""; + } else { + versionline = "Version " last "; changes since " new ":"; + limiter = new_cid ".."; + } + print versionline >> cl; + gsub(/./, "-", versionline); + print versionline >> cl; + + print "" >> cl; + command = "git shortlog \"" limiter last_cid "\""; + while(command | getline line) + print line >> cl; + + if (new != "none") + print "" >> cl; + last = new; + last_cid = new_cid; +} + +{ + version = version_line($0); + if (version != "") { + # strip Debian revision + upstream_version = version; + sub(/-[^-]*$/, "", upstream_version); + + commit = read_commit_id(upstream_version); + if (commit == "") + exit 1; + add_version(upstream_version, commit); + } +} + +END { + add_version("none", "none"); +} diff --git a/debian/clean.sh b/debian/clean.sh new file mode 100644 index 0000000..1b17a8b --- /dev/null +++ b/debian/clean.sh @@ -0,0 +1,108 @@ +#!/bin/sh +# Clean up after a failed build. +# +# Requires access to .gitignore files excluding _all_ modified files. +# +# Requires a working /dev/fd (with more than just /dev/fd/0 and 1) +# or gawk. + +set -e + +splitgitignore='#!/usr/bin/awk +!/^#/ && !/^$/ { + glob = /[[*?]/; + directory = /\/$/; + sub(/\/$/, ""); + anchored = /\//; + sub(/^\//, ""); + + output = "nonexistent/nonsense"; + if (anchored) { + if (!directory && !glob) + output = "/dev/fd/1"; + else if (directory && !glob) + output = "/dev/fd/3"; + else if (!directory && glob) + output = "/dev/fd/4"; + else if (directory && glob) + output = "/dev/fd/5"; + } else { + if (!directory) + output = "/dev/fd/6"; + else + output = "/dev/fd/7"; + } + print >> output; +} +' + +offlimits="-type d -name '.*' -prune -o -type d -name debian -prune" + +remove_file_globs() { + while read glob + do + eval "rm -f $glob" + done +} + +remove_directory_globs() { + while read glob + do + eval "rm -fr $glob" + done +} + +remove_file_findpatterns() { + while read pat + do + find . $offlimits -o \ + '(' -name "$pat" -execdir rm -f '{}' + ')' + done +} + +remove_directory_findpatterns() { + while read pat + do + find . $offlimits -o \ + '(' -type d -name "$pat" -execdir rm -fr '{}' + ')' + done +} + +find . $offlimits -o '(' -name .gitignore -print ')' | +while read file +do + ( + cd "$(dirname "$file")" + # Dispatch using pipes. Yuck. + { { { { { + awk "$splitgitignore" | + { + # anchored files (globless) + xargs -d '\n' rm -f + } + } 3>&1 >&2 | + { + # anchored directories (globless) + xargs -d '\n' rm -fr + } + } 4>&1 >&2 | + { + # anchored files + remove_file_globs + } + } 5>&1 >&2 | + { + # anchored directories + remove_directory_globs + } + } 6>&1 >&2 | + { + # unanchored files + remove_file_findpatterns + } + } 7>&1 >&2 | + { + remove_directory_findpatterns + } >&2 + ) < "$file" +done diff --git a/debian/compat b/debian/compat new file mode 100644 index 0000000..7f8f011 --- /dev/null +++ b/debian/compat @@ -0,0 +1 @@ +7 diff --git a/debian/control b/debian/control new file mode 100644 index 0000000..d735f93 --- /dev/null +++ b/debian/control @@ -0,0 +1,21 @@ +Source: xburst-tools +Section: misc +Priority: extra +Maintainer: Xiangfu Liu +Build-Depends: debhelper (>= 7.4.10), + pkg-config, autoconf, automake, + libusb-dev, libconfuse-dev +Build-Conflicts: automake1.4 +Standards-Version: 3.9.1 +Vcs-Git: git://projects.qi-hardware.com/xburst-tools.git +Vcs-Browser: http://projects.qi-hardware.com/index.php/p/xburst-tools/source/changes/master/ +Homepage: http://projects.qi-hardware.com/index.php/p/xburst-tools/ + +Package: xburst-tools +Architecture: any +Depends: ${shlibs:Depends}, ${misc:Depends} +Description: tools for Ingenic XBurst CPU USB boot and NAND flash access + xburst-tools contains tools for Ingenic XBurst CPU device booting. + It can flash bootloader, kernel, rootfs to Ingenic XBurst CPU + device NAND, and also has test functions for Ingenic XBurst CPU + devices. diff --git a/debian/copyright b/debian/copyright new file mode 100644 index 0000000..af65c77 --- /dev/null +++ b/debian/copyright @@ -0,0 +1,47 @@ +This work was packaged for Debian by: + + Xiangfu Liu on Mon, 22 Jun 2009 22:48:14 +0800 + +It was downloaded from: + + http://projects.qi-hardware.com/index.php/p/xburst-tools/ + +Upstream Author(s): + + Wolfgang Spraul + Marek Lindner + Seeger Chin + Jonathan Nieder + Lucifer at Ingenic Semiconductor Inc. + Ingenic Semiconductor Inc. + +Copyright: + + Copyright (C) 2010, + Xiangfu Liu and + Qi Hardware Inc, + Ingenic Semiconductor Inc. + +License: + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This package is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + +On Debian systems, the complete text of the GNU General +Public License version 3 can be found in `/usr/share/common-licenses/GPL-3'. + +The Debian packaging is: + + Copyright (C) 2010 Xiangfu Liu +and is licensed under the GPL version 3, see above. + diff --git a/debian/dirs b/debian/dirs new file mode 100644 index 0000000..b5e7d25 --- /dev/null +++ b/debian/dirs @@ -0,0 +1,3 @@ +usr/bin +usr/share/xburst-tools +etc/xburst-tools diff --git a/debian/docs b/debian/docs new file mode 100644 index 0000000..5715281 --- /dev/null +++ b/debian/docs @@ -0,0 +1,2 @@ +usbboot/README.usbboot +xbboot/README.xbboot diff --git a/debian/get-orig-source.sh b/debian/get-orig-source.sh new file mode 100644 index 0000000..15032dc --- /dev/null +++ b/debian/get-orig-source.sh @@ -0,0 +1,17 @@ +#!/bin/sh +# Build a tarball from the latest upstream version, with a nice +# version number. +# +# Requires git 1.6.6 or later, GNU date, and gzip. + +set -e + +: ${VERSION=201007} + +[ -f xburst-tools_${VERSION}.tar.bz2 ] || wget http://projects.qi-hardware.com/media/upload/xburst-tools/files/xburst-tools_${VERSION}.tar.bz2 +mkdir -p get-orig-source +echo `pwd` +cd get-orig-source && tar -jxf ../xburst-tools_${VERSION}.tar.bz2 +rm -rf get-orig-source/xburst-tools/debian get-orig-source/xburst-tools/.git +cd get-orig-source && tar -czf ../../xburst-tools_${VERSION}-1.orig.tar.gz xburst-tools/ +rm -rf xburst-tools_${VERSION}.tar.bz2 get-orig-source \ No newline at end of file diff --git a/debian/rules b/debian/rules new file mode 100755 index 0000000..38d591d --- /dev/null +++ b/debian/rules @@ -0,0 +1,67 @@ +#!/usr/bin/make -f +# This file is in the public domain. +# You may freely use, modify, distribute, and relicense it. + +build clean install binary-arch binary-indep binary: + +dh --parallel $(opt_no_act) $@ + +override_dh_auto_clean: + test -e debian/xburst_stage1.bin || { \ + echo >&2 see debian/README.source; \ + exit 1; \ + } + dh_auto_clean + sh debian/clean.sh + +override_dh_auto_configure: configure + dh_auto_configure -- $(opt_optimize) $(opt_quiet) \ + --disable-firmware LDFLAGS=-Wl,-z,defs + +override_dh_auto_install: + dh_auto_install + : install firmware from source package + dh_install debian/xburst_stage1.bin usr/share/xburst-tools/ + dh_install debian/xburst_stage2.bin usr/share/xburst-tools/ + dh_install debian/stage1.bin usr/share/xburst-tools/ + +override_dh_installchangelogs: + dh_installchangelogs debian/changelog.upstream + +opt_optimize = CFLAGS="-g -O2" +opt_no_act = +opt_quiet = + +ifneq (,$(filter noopt,$(DEB_BUILD_OPTIONS))) + opt_optimize = CFLAGS="-g -O0" +endif + +ifneq (,$(findstring n,$(MAKEFLAGS))) + opt_no_act = --no-act +endif + +ifneq (,$(filter quiet,$(DEB_BUILD_OPTIONS))) + opt_quiet = --quiet + MAKEFLAGS += --quiet +endif + +configure: configure.ac + AUTOMAKE="automake --foreign" autoreconf -is + +firmware: configure + ./configure --enable-firmware + $(MAKE) -C usbboot/src \ + ../xburst_stage1/xburst_stage1.bin \ + ../xburst_stage2/xburst_stage2.bin + $(MAKE) -C xbboot/host-app \ + ../target-stage1/stage1.bin + +VERSION = 201007 +debiandir_SQ = $(subst ','\'',$(dir $(lastword $(MAKEFILE_LIST)))) +get-orig-source: + [ -f xburst-tools_$(VERSION).tar.bz2 ] || wget \ + http://projects.qi-hardware.com/media/upload/xburst-tools/files/xburst-tools_$(VERSION).tar.bz2 + mkdir -p get-orig-source + cd get-orig-source && tar -jxf ../xburst-tools_$(VERSION).tar.bz2 + rm -rf get-orig-source/xburst-tools/debian get-orig-source/xburst-tools/.git + cd get-orig-source && tar -czf ../../xburst-tools_0.0+$(VERSION).orig.tar.gz . + rm -rf xburst-tools_$(VERSION).tar.bz2 get-orig-source diff --git a/debian/source/format b/debian/source/format new file mode 100644 index 0000000..163aaf8 --- /dev/null +++ b/debian/source/format @@ -0,0 +1 @@ +3.0 (quilt) diff --git a/debian/source/include-binaries b/debian/source/include-binaries new file mode 100644 index 0000000..cfe0ab5 --- /dev/null +++ b/debian/source/include-binaries @@ -0,0 +1,3 @@ +debian/xburst_stage1.bin +debian/xburst_stage2.bin +debian/stage1.bin diff --git a/debian/watch b/debian/watch new file mode 100644 index 0000000..83cdb6c --- /dev/null +++ b/debian/watch @@ -0,0 +1,3 @@ +version=3 + +http://projects.qi-hardware.com/media/upload/xburst-tools/files/xburst-tools_(.+).tar.bz2 diff --git a/debian/xburst-tools.manpages b/debian/xburst-tools.manpages new file mode 100644 index 0000000..010a4ff --- /dev/null +++ b/debian/xburst-tools.manpages @@ -0,0 +1,2 @@ +./usbboot/doc/usbboot.1 +./xbboot/doc/xbboot.1