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