Commit 14780f0e authored by Andy Whitcroft's avatar Andy Whitcroft

UBUNTU: [Packaging] autoreconstruct -- generate extend-diff-ignore for links

BugLink: http://bugs.launchpad.net/bugs/1574362Signed-off-by: default avatarAndy Whitcroft <apw@canonical.com>
parent 9c7eb440
......@@ -105,7 +105,7 @@ insertchanges: autoreconstruct
@perl -w -f $(DROOT)/scripts/misc/insert-changes.pl $(DROOT) $(DEBIAN)
autoreconstruct:
$(DROOT)/scripts/misc/gen-auto-reconstruct $(release) >$(DEBIAN)/reconstruct
$(DROOT)/scripts/misc/gen-auto-reconstruct $(release) $(DEBIAN)/reconstruct $(DROOT)/source/options
diffupstream:
@git diff-tree -p refs/remotes/linux-2.6/master..HEAD $(shell ls | grep -vE '^(ubuntu|$(DEBIAN)|\.git.*)')
......
#!/bin/bash
if [ "$#" -ne 1 ]; then
echo "Usage: $0 <orig tag>|<base release>" 1>&2
if [ "$#" -ne 3 ]; then
echo "Usage: $0 <orig tag>|<base release> <reconstruct> <options>" 1>&2
exit 1
fi
tag="$1"
reconstruct="$2"
options="$3"
case "$tag" in
v*) ;;
......@@ -21,23 +23,50 @@ fi
#git ls-tree -r --full-tree HEAD | grep ^120 | \
#while read mode type blobid name
# Identify all new symlinks since the proffered tag.
echo "# Recreate any symlinks created since the orig."
git diff "$tag.." --raw | awk '(/^:000000 120000/ && $5 == "A") { print $NF }' | \
while read name
do
link=$( readlink "$name" )
echo "[ ! -L '$name' ] && ln -sf '$link' '$name'"
done
# Identify all removed files since the proffered tag.
echo "# Remove any files deleted from the orig."
git diff "$tag.." --raw | awk '(/^:/ && $5 == "D") { print $NF }' | \
while read name
do
echo "rm -f '$name'"
done
# All done, make sure this does not complete in error.
echo "exit 0"
(
# Identify all new symlinks since the proffered tag.
echo "# Recreate any symlinks created since the orig."
git diff "$tag.." --raw | awk '(/^:000000 120000/ && $5 == "A") { print $NF }' | \
while read name
do
link=$( readlink "$name" )
echo "[ ! -L '$name' ] && ln -sf '$link' '$name'"
done
# Identify all removed files since the proffered tag.
echo "# Remove any files deleted from the orig."
git diff "$tag.." --raw | awk '(/^:/ && $5 == "D") { print $NF }' | \
while read name
do
echo "rm -f '$name'"
done
# All done, make sure this does not complete in error.
echo "exit 0"
) >"$reconstruct"
(
# Identify all new symlinks since the proffered tag.
echo "# Ignore any symlinks created since the orig which are rebuilt by reconstruct."
git diff "$tag.." --raw | awk '(/^:000000 120000/ && $5 == "A") { print $NF }' | \
while read name
do
echo "extend-diff-ignore=$name"
done
) >"$options.update"
head='^## autoreconstruct -- begin$'
foot='^## autoreconstruct -- end$'
sed -i -e "
/$head/,/$foot/{
/$head/{
p;
r $options.update
};
/$foot/p;
d
}
" "$options"
rm -f "$options.update"
# Ignore vbox symlinks, we will regenerate these at clean (LP:1426113)
## autoreconstruct -- begin
extend-diff-ignore=ubuntu/vbox/vboxvideo/include
extend-diff-ignore=ubuntu/vbox/vboxguest/r0drv
extend-diff-ignore=ubuntu/vbox/vboxguest/include
......@@ -18,6 +19,7 @@ extend-diff-ignore=zfs/scripts/zpios-test/large.sh
extend-diff-ignore=zfs/scripts/zpios-test/medium.sh
extend-diff-ignore=zfs/scripts/zpios-test/small.sh
extend-diff-ignore=zfs/scripts/zpios-test/tiny.sh
## autoreconstruct -- end
# force "dpkg-source -I -i" behavior
diff-ignore
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment