1
0
mirror of git://projects.qi-hardware.com/fped.git synced 2024-09-30 13:07:37 +03:00

Switch debian/* from SVN to GIT, now build package base on git commit

This commit is contained in:
Xiangfu 2012-06-21 16:42:40 +08:00
parent 0562403f30
commit 45805bd7cd
8 changed files with 304 additions and 22 deletions

10
debian/autogen.sh vendored Executable file
View File

@ -0,0 +1,10 @@
#!/bin/sh
# Generate debian/changelog.upstream.
#
# Uses debian/changelog and the git revision log.
#
set -e
dpkg-parsechangelog --format rfc822 --all |
awk -f debian/changelog.upstream.awk

16
debian/changelog vendored
View File

@ -1,23 +1,38 @@
fped (0.0+201205-1) lucid; urgency=low
* New snapshot, taken from commit 59b90b3
* Switched to new project host: http://projects.qi-hardware.com/p/fped
* debian/rules:
- rewrite as a minimal rules file using dh
- add a get-orig-source target
* debian/autogen.sh: new script
-- Xiangfu Liu <xiangfu@sharism.cc> Thu, 21 Jun 2012 16:58:21 +0800
fped (0.0+r6006-1) lucid; urgency=low
* New snapshot, taken from commit 78e4ba0
* update to r6006
-- Xiangfu Liu <xiangfu@sharism.cc> Fri, 25 Mar 2011 08:43:21 +0800
fped (0.0+r6005-1) lucid; urgency=low
* New snapshot, taken from commit 335ddb6
* update to r6005
-- Xiangfu Liu <xiangfu@sharism.cc> Wed, 23 Mar 2011 16:28:26 +0800
fped (0.0+r5999-1) lucid; urgency=low
* New snapshot, taken from commit 1409cfa
* update to r5999
-- Xiangfu Liu <xiangfu@sharism.cc> Tue, 22 Mar 2011 15:12:02 +0800
fped (0.0+r5997-1) lucid; urgency=low
* New snapshot, taken from commit ceaa519
* Fix "FTBFS: tsort: cycle: ./Common: line 37: 2851 Aborted"
This was a "false error" - the regression test is supposed to cause
fped to abort, which it did, but the shell didn't print "Aborted" on
@ -28,6 +43,7 @@ fped (0.0+r5997-1) lucid; urgency=low
fped (0.0+r5986-1) unstable; urgency=low
* New snapshot, taken from commit feae08f
* Initial release (Closes: #599090).
-- Xiangfu Liu <xiangfu@sharism.cc> Mon, 04 Oct 2010 23:27:52 +0800

113
debian/changelog.upstream.awk vendored Normal file
View File

@ -0,0 +1,113 @@
#!/bin/awk -f
# Generate debian/changelog.upstream from debian/changelog and
# the git revision log. Inspired by Gerrit Papes
# 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 <blah>.”
# Result is <blah>.
# 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");
}

108
debian/clean.sh vendored Normal file
View File

@ -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

2
debian/control vendored
View File

@ -6,7 +6,7 @@ Build-Depends: debhelper (>= 7.4.10), pkg-config,
bash (>= 4), flex, bison,
imagemagick, transfig, netpbm, ghostscript,
libgtk2.0-dev
Standards-Version: 3.9.1
Standards-Version: 3.9.3
Homepage: http://downloads.qi-hardware.com/people/werner/fped/gui.html
Package: fped

View File

@ -1,19 +1,30 @@
#!/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
: ${REPO=$(git rev-parse --git-dir)}
: ${BRANCH=remotes/origin/master}
mkdir debian-orig-source
trap 'rm -fr debian-orig-source || exit 1' EXIT
git init -q debian-orig-source
GIT_DIR=$(pwd)/debian-orig-source/.git
export GIT_DIR
# Fetch latest upstream version.
git fetch -q "$REPO" "$BRANCH"
# Determine version number.
release=0.0
upstream_version="${release}+r${REV}"
TOPFOLDER=fped-$upstream_version.orig
trap 'rm -fr ${TOPFOLDER} || exit 1' EXIT INT TERM
svn export -r${REV} http://svn.openmoko.org/trunk/eda/fped ${TOPFOLDER}
date=$(date --utc --date="$(git log -1 --pretty=format:%cD FETCH_HEAD)" "+%Y%m")
upstream_version="${release}+${date}"
# Generate tarball.
echo "packaging ..."
tar -czf fped_$upstream_version.orig.tar.gz ${TOPFOLDER}
echo "packaging $(git rev-parse --short FETCH_HEAD)"
git archive FETCH_HEAD |
gzip -n -9 >"fped_$upstream_version.orig.tar.gz"

46
debian/rules vendored
View File

@ -1,23 +1,47 @@
#!/usr/bin/make -f
# -*- makefile -*-
# Sample debian/rules that uses debhelper.
# This file was originally written by Joey Hess and Craig Small.
# As a special exception, when this file is copied by dh-make into a
# dh-make output file, you may use that output file without restriction.
# This special exception was added by Craig Small in version 0.37 of dh-make.
# This file is in the public domain.
# You may freely use, modify, distribute, and relicense it.
# Uncomment this to turn on verbose mode.
#export DH_VERBOSE=1
export PREFIX=/usr
REV=6006
debiandir_SQ = $(subst ','\'',$(dir $(lastword $(MAKEFILE_LIST))))
get-orig-source:
REV='$(REV)' sh '$(debiandir_SQ)'get-orig-source.sh
build clean install binary-arch binary-indep binary:
+dh --parallel $(opt_no_act) $@
override_dh_auto_clean:
make spotless
$(MAKE) spotless
sh debian/clean.sh
override_dh_installchangelogs:
dpkg-parsechangelog --format rfc822 --all | \
awk -f debian/changelog.upstream.awk
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
REPO = git://projects.qi-hardware.com/fped.git
BRANCH = master
debiandir_SQ = $(subst ','\'',$(dir $(lastword $(MAKEFILE_LIST))))
get-orig-source:
REPO='$(REPO)' BRANCH='$(BRANCH)' \
sh '$(debiandir_SQ)'get-orig-source.sh
%:
dh $@

View File

@ -1 +1 @@
3.0 (quilt)
3.0 (quilt)