Include quilt tooling and convert patches to be used with quilt
This is not a functional change and merely adds quilt scripts and a README explaining their usage. In addition, it rewrites patch levels to be in line with the result of 'quilt refresh -p ab'. No source changes are involved and the source files are identical.
This commit is contained in:
parent
3a93f14080
commit
2aa1cb2053
1
.gitignore
vendored
1
.gitignore
vendored
@ -6,3 +6,4 @@ flex-2.5.35.tar.bz2
|
|||||||
/flex-2.5.39.tar.bz2
|
/flex-2.5.39.tar.bz2
|
||||||
/flex-2.6.0.tar.bz2
|
/flex-2.6.0.tar.bz2
|
||||||
/flex-2.6.1.tar.xz
|
/flex-2.6.1.tar.xz
|
||||||
|
series
|
||||||
|
40
README.quilt
Normal file
40
README.quilt
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
This package supports working with patch files using quilt.
|
||||||
|
|
||||||
|
To regenerate the quilt series file run:
|
||||||
|
./gen-quilt-series.sh
|
||||||
|
|
||||||
|
Setup environment:
|
||||||
|
export QUILT_PATCHES=$PWD
|
||||||
|
|
||||||
|
Setup the source:
|
||||||
|
./quilt-patch.sh [-f]
|
||||||
|
|
||||||
|
Use `-f` if you want to have quilt-patch always remove the existing
|
||||||
|
source directory before starting. Otherwise you'll be patching on top of
|
||||||
|
an already patched tree generated perhaps by `*pkg prep`.
|
||||||
|
|
||||||
|
To add a new patch:
|
||||||
|
|
||||||
|
Option 1: Create a new patch:
|
||||||
|
|
||||||
|
cd flex-2.6.1/
|
||||||
|
quilt new flex-rh1439367.patch
|
||||||
|
quilt add tests/test-bison-yylloc/parser.y
|
||||||
|
# edit tests/test-bison-yylloc/parser.y
|
||||||
|
# you may add and edit several files in the same fashion
|
||||||
|
|
||||||
|
Option 2: Add an already prepared patch (e.g. from an upstream commit):
|
||||||
|
|
||||||
|
cd flex-2.6.1/
|
||||||
|
quilt import -P flex-rh1439367.patch ~/backport/obsolete-bison.patch
|
||||||
|
quilt push # if this fails, manually deal with conflicts (as in Option 1)
|
||||||
|
|
||||||
|
Finally:
|
||||||
|
quilt refresh -p ab
|
||||||
|
cd ..
|
||||||
|
git add flex-rh1439367.patch
|
||||||
|
# edit flex.spec to build with the new patch
|
||||||
|
git add flex.spec
|
||||||
|
git commit
|
||||||
|
|
||||||
|
You're done!
|
@ -1,7 +1,8 @@
|
|||||||
diff -Nrup a/src/flex.skl b/src/flex.skl
|
Index: b/src/flex.skl
|
||||||
--- a/src/flex.skl 2015-11-10 18:28:54.000000000 -0500
|
===================================================================
|
||||||
+++ b/src/flex.skl 2016-03-07 23:52:46.527139783 -0500
|
--- a/src/flex.skl
|
||||||
@@ -506,7 +506,7 @@ m4_ifdef( [[M4_YY_NOT_IN_HEADER]],
|
+++ b/src/flex.skl
|
||||||
|
@@ -494,7 +494,7 @@ m4_ifdef( [[M4_YY_NOT_IN_HEADER]],
|
||||||
*/
|
*/
|
||||||
#define YY_LESS_LINENO(n) \
|
#define YY_LESS_LINENO(n) \
|
||||||
do { \
|
do { \
|
||||||
@ -10,7 +11,7 @@ diff -Nrup a/src/flex.skl b/src/flex.skl
|
|||||||
for ( yyl = n; yyl < yyleng; ++yyl )\
|
for ( yyl = n; yyl < yyleng; ++yyl )\
|
||||||
if ( yytext[yyl] == '\n' )\
|
if ( yytext[yyl] == '\n' )\
|
||||||
--yylineno;\
|
--yylineno;\
|
||||||
@@ -532,7 +532,7 @@ m4_ifdef( [[M4_YY_NOT_IN_HEADER]],
|
@@ -520,7 +520,7 @@ m4_ifdef( [[M4_YY_NOT_IN_HEADER]],
|
||||||
do \
|
do \
|
||||||
{ \
|
{ \
|
||||||
/* Undo effects of setting up yytext. */ \
|
/* Undo effects of setting up yytext. */ \
|
||||||
@ -19,7 +20,7 @@ diff -Nrup a/src/flex.skl b/src/flex.skl
|
|||||||
YY_LESS_LINENO(yyless_macro_arg);\
|
YY_LESS_LINENO(yyless_macro_arg);\
|
||||||
*yy_cp = YY_G(yy_hold_char); \
|
*yy_cp = YY_G(yy_hold_char); \
|
||||||
YY_RESTORE_YY_MORE_OFFSET \
|
YY_RESTORE_YY_MORE_OFFSET \
|
||||||
@@ -2591,7 +2591,7 @@ void yyFlexLexer::LexerError( yyconst ch
|
@@ -2576,7 +2576,7 @@ void yyFlexLexer::LexerError( yyconst ch
|
||||||
do \
|
do \
|
||||||
{ \
|
{ \
|
||||||
/* Undo effects of setting up yytext. */ \
|
/* Undo effects of setting up yytext. */ \
|
||||||
|
@ -4,8 +4,8 @@ Date: Sun Feb 28 15:20:31 2016 +0100
|
|||||||
|
|
||||||
generated code, `max_size' seems to be of type `int', fix casts accordingly
|
generated code, `max_size' seems to be of type `int', fix casts accordingly
|
||||||
|
|
||||||
diff --git a/src/gen.c b/src/gen.c
|
Index: b/src/gen.c
|
||||||
index 21b27ae..d31aab3 100644
|
===================================================================
|
||||||
--- a/src/gen.c
|
--- a/src/gen.c
|
||||||
+++ b/src/gen.c
|
+++ b/src/gen.c
|
||||||
@@ -1875,7 +1875,7 @@ void make_tables (void)
|
@@ -1875,7 +1875,7 @@ void make_tables (void)
|
||||||
|
@ -4,8 +4,8 @@ Date: Sun Feb 28 15:20:31 2016 +0100
|
|||||||
|
|
||||||
generated code, here `new_size' is of type `int', fix casts accordingly
|
generated code, here `new_size' is of type `int', fix casts accordingly
|
||||||
|
|
||||||
diff --git a/src/flex.skl b/src/flex.skl
|
Index: b/src/flex.skl
|
||||||
index 2c25d21..540ce95 100644
|
===================================================================
|
||||||
--- a/src/flex.skl
|
--- a/src/flex.skl
|
||||||
+++ b/src/flex.skl
|
+++ b/src/flex.skl
|
||||||
@@ -1782,7 +1782,7 @@ m4_ifdef( [[M4_YY_USES_REJECT]],
|
@@ -1782,7 +1782,7 @@ m4_ifdef( [[M4_YY_USES_REJECT]],
|
||||||
|
@ -4,8 +4,8 @@ Date: Sun Feb 28 15:20:31 2016 +0100
|
|||||||
|
|
||||||
generated code, `yy_buf_size' is of type `int', fix casts accordingly
|
generated code, `yy_buf_size' is of type `int', fix casts accordingly
|
||||||
|
|
||||||
diff --git a/src/flex.skl b/src/flex.skl
|
Index: b/src/flex.skl
|
||||||
index 0631725..2c25d21 100644
|
===================================================================
|
||||||
--- a/src/flex.skl
|
--- a/src/flex.skl
|
||||||
+++ b/src/flex.skl
|
+++ b/src/flex.skl
|
||||||
@@ -1732,7 +1732,7 @@ m4_ifdef( [[M4_YY_USES_REJECT]],
|
@@ -1732,7 +1732,7 @@ m4_ifdef( [[M4_YY_USES_REJECT]],
|
||||||
@ -17,7 +17,7 @@ index 0631725..2c25d21 100644
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
/* Can't grow it, we don't own it. */
|
/* Can't grow it, we don't own it. */
|
||||||
@@ -2102,12 +2102,12 @@ static void yy_load_buffer_state YYFARGS0(void)
|
@@ -2102,12 +2102,12 @@ static void yy_load_buffer_state YYFARG
|
||||||
if ( ! b )
|
if ( ! b )
|
||||||
YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
|
YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
|
||||||
|
|
||||||
@ -32,7 +32,7 @@ index 0631725..2c25d21 100644
|
|||||||
if ( ! b->yy_ch_buf )
|
if ( ! b->yy_ch_buf )
|
||||||
YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
|
YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
|
||||||
|
|
||||||
@@ -2397,7 +2397,7 @@ YY_BUFFER_STATE yy_scan_buffer YYFARGS2( char *,base, yy_size_t ,size)
|
@@ -2397,7 +2397,7 @@ YY_BUFFER_STATE yy_scan_buffer YYFARGS2
|
||||||
if ( ! b )
|
if ( ! b )
|
||||||
YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" );
|
YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" );
|
||||||
|
|
||||||
|
34
gen-quilt-series.sh
Executable file
34
gen-quilt-series.sh
Executable file
@ -0,0 +1,34 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
# Autogenerates the quilt `series` from the patch order in the spec file.
|
||||||
|
# We don't use `quilt setup` because it makes a huge mess and doesn't work.
|
||||||
|
component="flex"
|
||||||
|
rm -f series.new
|
||||||
|
extra_args="--fuzz=0"
|
||||||
|
count=0
|
||||||
|
# Filter out the patches, and use `_` as our pseudo-IFS to prevent expansion.
|
||||||
|
for i in `grep '^%patch' flex.spec | sed -e 's,%patch,,g' -e 's, ,_,g'`; do
|
||||||
|
# Split the patch into number and arguments.
|
||||||
|
# 1 - Patch number.
|
||||||
|
# 2-N - Patch arguments.
|
||||||
|
# Get back our elements by undoing pseudo-IFS change.
|
||||||
|
elements=(`echo $i | sed -e 's,_, ,g'`)
|
||||||
|
num=${elements[0]}
|
||||||
|
args=${elements[@]:1}
|
||||||
|
# Find the next patch that applies in order and write it out.
|
||||||
|
# This way we transform the patch # list into a patch file list in order.
|
||||||
|
grep "Patch${num}: " flex.spec \
|
||||||
|
| sed -e 's,Patch.*: ,,g' -e "s,\$, ${args[@]} ${extra_args},g" \
|
||||||
|
| sed -e "s,%{name},${component},g" \
|
||||||
|
>> series.new
|
||||||
|
((count++))
|
||||||
|
done
|
||||||
|
# Double check we processed the correct number of patches.
|
||||||
|
fcount=`wc -l series.new | sed -e 's, .*$,,g'`
|
||||||
|
if [ $fcount -ne $count ]; then
|
||||||
|
echo "Error! Processed patch count doesn't match spec file count ($fcount != $count)."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
echo "Processed $count patches."
|
||||||
|
mv series.new series
|
||||||
|
echo "Generated quilt ./series file. Please do not commit."
|
||||||
|
exit 0
|
22
quilt-patch.sh
Executable file
22
quilt-patch.sh
Executable file
@ -0,0 +1,22 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
# Patches are in the current directory.
|
||||||
|
export QUILT_PATCHES=$PWD
|
||||||
|
# Extract source file name from sources file,
|
||||||
|
# and assume it's the same name as the directory.
|
||||||
|
source=`awk -F '[() ]+' '/^[A-Z0-9]+ /{print $2}; /^[0-9a-f]+ /{print $2}' sources`
|
||||||
|
srcdir=${source%.tar.xz}
|
||||||
|
if [ "$1" == "-f" ] && [ -d "$srcdir" ]; then
|
||||||
|
echo Cleaning up $srcdir
|
||||||
|
rm -rf $srcdir
|
||||||
|
fi
|
||||||
|
if [ -d "$srcdir" ]; then
|
||||||
|
# Don't overwrite existing source directory.
|
||||||
|
echo "ERROR: Source directory $srcdir already exists. Use -f to force cleanup step."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
tar xvf $source
|
||||||
|
echo "Entering $srcdir"
|
||||||
|
pushd $srcdir
|
||||||
|
# Apply all patches.
|
||||||
|
quilt push -a
|
||||||
|
popd
|
Loading…
Reference in New Issue
Block a user