[pacman-dev] [PATCH] Add a -C, --cleanbuild option to clear the source directory before building a package.

Allan McRae allan at archlinux.org
Tue Oct 8 23:14:58 EDT 2013


On 09/10/13 13:12, Allan McRae wrote:
> On 04/10/13 23:57, Lukáš Jirkovský wrote:
>> Implements FS#17175.
>> ---
>>  doc/makepkg.8.txt     |  3 +++
>>  scripts/makepkg.sh.in | 13 +++++++++++--
>>  2 files changed, 14 insertions(+), 2 deletions(-)
> 
> 
> OK - I made minor changes noted below.
> 
>> diff --git a/doc/makepkg.8.txt b/doc/makepkg.8.txt
>> index fcafb08..fd3573c 100644
>> --- a/doc/makepkg.8.txt
>> +++ b/doc/makepkg.8.txt
>> @@ -147,6 +147,9 @@ Options
>>  *-V, \--version*::
>>  	Display version information.
>>  
>> +*-C, \--cleanbuild*::
>> +	Remove the $srcdir before building the package.
> 
> Remove the $srcdir directory before building the package.
> 
>> +
>>  *\--allsource*::
>>  	Do not actually build the package, but build a source-only tarball that
>>  	includes all sources, including those that are normally download via
>> diff --git a/scripts/makepkg.sh.in b/scripts/makepkg.sh.in
>> index 67ec240..04c309f 100644
>> --- a/scripts/makepkg.sh.in
>> +++ b/scripts/makepkg.sh.in
>> @@ -63,6 +63,7 @@ ASROOT=0
>>  CLEANUP=0
>>  DEP_BIN=0
>>  FORCE=0
>> +CLEANBUILD=0
>>  INFAKEROOT=0
>>  GENINTEG=0
>>  HOLDVER=0
>> @@ -2504,6 +2505,7 @@ usage() {
>>  	printf -- "$(gettext "  -s, --syncdeps   Install missing dependencies with %s")\n" "pacman"
>>  	printf -- "$(gettext "  -S, --source     Generate a source-only tarball without downloaded sources")\n"
>>  	printf -- "$(gettext "  -V, --version    Show version information and exit")\n"
>> +	printf -- "$(gettext "  -C, --cleanbuild Remove %s dir before building the package")\n" "src/"
> 
> This should have been in alphabetical order

I also replaced "src/" with "\$srcdir/"

>>  	printf -- "$(gettext "  --allsource      Generate a source-only tarball including downloaded sources")\n"
>>  	printf -- "$(gettext "  --verifysource   Download source files (if needed) and perform integrity checks")\n"
>>  	printf -- "$(gettext "  --asroot         Allow %s to run as root user")\n" "makepkg"
>> @@ -2552,8 +2554,8 @@ fi
>>  ARGLIST=("$@")
>>  
>>  # Parse Command Line Options.
>> -OPT_SHORT="AcdefFghiLmop:rRsSV"
>> -OPT_LONG=('allsource' 'asroot' 'check' 'clean' 'config:' 'force' 'geninteg'
>> +OPT_SHORT="AcCdefFghiLmop:rRsSV"
>> +OPT_LONG=('allsource' 'asroot' 'check' 'clean' 'cleanbuild' 'config:' 'force' 'geninteg'
>>            'help' 'holdver' 'ignorearch' 'install' 'key:' 'log' 'nobuild' 'nocolor'
>>            'nocheck' 'nodeps' 'noextract' 'noprepare' 'nosign' 'pkg:' 'repackage' 'rmdeps'
>>            'sign' 'skipchecksums' 'skipinteg' 'skippgpcheck' 'source' 'syncdeps'
>> @@ -2581,6 +2583,7 @@ while true; do
>>  		--asroot)         ASROOT=1 ;;
>>  		-A|--ignorearch)  IGNOREARCH=1 ;;
>>  		-c|--clean)       CLEANUP=1 ;;
>> +		-C|--cleanbuild)  CLEANBUILD=1 ;;
>>  		--check)          RUN_CHECK='y' ;;
>>  		--config)         shift; MAKEPKG_CONF=$1 ;;
>>  		-d|--nodeps)      NODEPS=1 ;;
>> @@ -2990,6 +2993,12 @@ elif (( !REPKG )); then
>>  	download_sources
>>  	check_source_integrity
>>  	(( VERIFYSOURCE )) && exit 0 # $E_OK
>> +
>> +	if (( CLEANBUILD )); then
>> +		msg "$(gettext "Removing content of existing %s directory...")" "src/"
> 
> I made this "Removing existing %s directory..." as we already use that
> string.
> 
>> +		rm -rf "$srcdir/*"
>> +	fi
>> +
>>  	extract_sources
>>  	if (( PREPAREFUNC )); then
>>  		run_prepare
>>
> 
> 
> 
> 



More information about the pacman-dev mailing list