mock-1.1.33/0000775001204700120500000000000012205226677007540 500000000000000mock-1.1.33/build/0000775001204700120500000000000012205226676010636 500000000000000mock-1.1.33/build/py-compile0000755001204700120500000001107612205226665012563 00000000000000#!/bin/sh # py-compile - Compile a Python program scriptversion=2011-06-08.12; # UTC # Copyright (C) 2000-2013 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # This file is maintained in Automake, please report # bugs to or send patches to # . if [ -z "$PYTHON" ]; then PYTHON=python fi me=py-compile usage_error () { echo "$me: $*" >&2 echo "Try '$me --help' for more information." >&2 exit 1 } basedir= destdir= while test $# -ne 0; do case "$1" in --basedir) if test $# -lt 2; then usage_error "option '--basedir' requires an argument" else basedir=$2 fi shift ;; --destdir) if test $# -lt 2; then usage_error "option '--destdir' requires an argument" else destdir=$2 fi shift ;; -h|--help) cat <<\EOF Usage: py-compile [--help] [--version] [--basedir DIR] [--destdir DIR] FILES..." Byte compile some python scripts FILES. Use --destdir to specify any leading directory path to the FILES that you don't want to include in the byte compiled file. Specify --basedir for any additional path information you do want to be shown in the byte compiled file. Example: py-compile --destdir /tmp/pkg-root --basedir /usr/share/test test.py test2.py Report bugs to . EOF exit $? ;; -v|--version) echo "$me $scriptversion" exit $? ;; --) shift break ;; -*) usage_error "unrecognized option '$1'" ;; *) break ;; esac shift done files=$* if test -z "$files"; then usage_error "no files given" fi # if basedir was given, then it should be prepended to filenames before # byte compilation. if [ -z "$basedir" ]; then pathtrans="path = file" else pathtrans="path = os.path.join('$basedir', file)" fi # if destdir was given, then it needs to be prepended to the filename to # byte compile but not go into the compiled file. if [ -z "$destdir" ]; then filetrans="filepath = path" else filetrans="filepath = os.path.normpath('$destdir' + os.sep + path)" fi $PYTHON -c " import sys, os, py_compile, imp files = '''$files''' sys.stdout.write('Byte-compiling python modules...\n') for file in files.split(): $pathtrans $filetrans if not os.path.exists(filepath) or not (len(filepath) >= 3 and filepath[-3:] == '.py'): continue sys.stdout.write(file) sys.stdout.flush() if hasattr(imp, 'get_tag'): py_compile.compile(filepath, imp.cache_from_source(filepath), path) else: py_compile.compile(filepath, filepath + 'c', path) sys.stdout.write('\n')" || exit $? # this will fail for python < 1.5, but that doesn't matter ... $PYTHON -O -c " import sys, os, py_compile, imp # pypy does not use .pyo optimization if hasattr(sys, 'pypy_translation_info'): sys.exit(0) files = '''$files''' sys.stdout.write('Byte-compiling python modules (optimized versions) ...\n') for file in files.split(): $pathtrans $filetrans if not os.path.exists(filepath) or not (len(filepath) >= 3 and filepath[-3:] == '.py'): continue sys.stdout.write(file) sys.stdout.flush() if hasattr(imp, 'get_tag'): py_compile.compile(filepath, imp.cache_from_source(filepath, False), path) else: py_compile.compile(filepath, filepath + 'o', path) sys.stdout.write('\n')" 2>/dev/null || : # Local Variables: # mode: shell-script # sh-indentation: 2 # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-time-zone: "UTC" # time-stamp-end: "; # UTC" # End: mock-1.1.33/build/depcomp0000755001204700120500000004224610731332136012130 00000000000000#! /bin/sh # depcomp - compile a program generating dependencies as side-effects scriptversion=2006-10-15.18 # Copyright (C) 1999, 2000, 2003, 2004, 2005, 2006 Free Software # Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA # 02110-1301, USA. # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # Originally written by Alexandre Oliva . case $1 in '') echo "$0: No command. Try \`$0 --help' for more information." 1>&2 exit 1; ;; -h | --h*) cat <<\EOF Usage: depcomp [--help] [--version] PROGRAM [ARGS] Run PROGRAMS ARGS to compile a file, generating dependencies as side-effects. Environment variables: depmode Dependency tracking mode. source Source file read by `PROGRAMS ARGS'. object Object file output by `PROGRAMS ARGS'. DEPDIR directory where to store dependencies. depfile Dependency file to output. tmpdepfile Temporary file to use when outputing dependencies. libtool Whether libtool is used (yes/no). Report bugs to . EOF exit $? ;; -v | --v*) echo "depcomp $scriptversion" exit $? ;; esac if test -z "$depmode" || test -z "$source" || test -z "$object"; then echo "depcomp: Variables source, object and depmode must be set" 1>&2 exit 1 fi # Dependencies for sub/bar.o or sub/bar.obj go into sub/.deps/bar.Po. depfile=${depfile-`echo "$object" | sed 's|[^\\/]*$|'${DEPDIR-.deps}'/&|;s|\.\([^.]*\)$|.P\1|;s|Pobj$|Po|'`} tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`} rm -f "$tmpdepfile" # Some modes work just like other modes, but use different flags. We # parameterize here, but still list the modes in the big case below, # to make depend.m4 easier to write. Note that we *cannot* use a case # here, because this file can only contain one case statement. if test "$depmode" = hp; then # HP compiler uses -M and no extra arg. gccflag=-M depmode=gcc fi if test "$depmode" = dashXmstdout; then # This is just like dashmstdout with a different argument. dashmflag=-xM depmode=dashmstdout fi case "$depmode" in gcc3) ## gcc 3 implements dependency tracking that does exactly what ## we want. Yay! Note: for some reason libtool 1.4 doesn't like ## it if -MD -MP comes after the -MF stuff. Hmm. ## Unfortunately, FreeBSD c89 acceptance of flags depends upon ## the command line argument order; so add the flags where they ## appear in depend2.am. Note that the slowdown incurred here ## affects only configure: in makefiles, %FASTDEP% shortcuts this. for arg do case $arg in -c) set fnord "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" "$arg" ;; *) set fnord "$@" "$arg" ;; esac shift # fnord shift # $arg done "$@" stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi mv "$tmpdepfile" "$depfile" ;; gcc) ## There are various ways to get dependency output from gcc. Here's ## why we pick this rather obscure method: ## - Don't want to use -MD because we'd like the dependencies to end ## up in a subdir. Having to rename by hand is ugly. ## (We might end up doing this anyway to support other compilers.) ## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like ## -MM, not -M (despite what the docs say). ## - Using -M directly means running the compiler twice (even worse ## than renaming). if test -z "$gccflag"; then gccflag=-MD, fi "$@" -Wp,"$gccflag$tmpdepfile" stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" echo "$object : \\" > "$depfile" alpha=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz ## The second -e expression handles DOS-style file names with drive letters. sed -e 's/^[^:]*: / /' \ -e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile" ## This next piece of magic avoids the `deleted header file' problem. ## The problem is that when a header file which appears in a .P file ## is deleted, the dependency causes make to die (because there is ## typically no way to rebuild the header). We avoid this by adding ## dummy dependencies for each header file. Too bad gcc doesn't do ## this for us directly. tr ' ' ' ' < "$tmpdepfile" | ## Some versions of gcc put a space before the `:'. On the theory ## that the space means something, we add a space to the output as ## well. ## Some versions of the HPUX 10.20 sed can't process this invocation ## correctly. Breaking it into two sed invocations is a workaround. sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; hp) # This case exists only to let depend.m4 do its work. It works by # looking at the text of this script. This case will never be run, # since it is checked for above. exit 1 ;; sgi) if test "$libtool" = yes; then "$@" "-Wp,-MDupdate,$tmpdepfile" else "$@" -MDupdate "$tmpdepfile" fi stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" if test -f "$tmpdepfile"; then # yes, the sourcefile depend on other files echo "$object : \\" > "$depfile" # Clip off the initial element (the dependent). Don't try to be # clever and replace this with sed code, as IRIX sed won't handle # lines with more than a fixed number of characters (4096 in # IRIX 6.2 sed, 8192 in IRIX 6.5). We also remove comment lines; # the IRIX cc adds comments like `#:fec' to the end of the # dependency line. tr ' ' ' ' < "$tmpdepfile" \ | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \ tr ' ' ' ' >> $depfile echo >> $depfile # The second pass generates a dummy entry for each header file. tr ' ' ' ' < "$tmpdepfile" \ | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \ >> $depfile else # The sourcefile does not contain any dependencies, so just # store a dummy comment line, to avoid errors with the Makefile # "include basename.Plo" scheme. echo "#dummy" > "$depfile" fi rm -f "$tmpdepfile" ;; aix) # The C for AIX Compiler uses -M and outputs the dependencies # in a .u file. In older versions, this file always lives in the # current directory. Also, the AIX compiler puts `$object:' at the # start of each line; $object doesn't have directory information. # Version 6 uses the directory in both cases. stripped=`echo "$object" | sed 's/\(.*\)\..*$/\1/'` tmpdepfile="$stripped.u" if test "$libtool" = yes; then "$@" -Wc,-M else "$@" -M fi stat=$? if test -f "$tmpdepfile"; then : else stripped=`echo "$stripped" | sed 's,^.*/,,'` tmpdepfile="$stripped.u" fi if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi if test -f "$tmpdepfile"; then outname="$stripped.o" # Each line is of the form `foo.o: dependent.h'. # Do two passes, one to just change these to # `$object: dependent.h' and one to simply `dependent.h:'. sed -e "s,^$outname:,$object :," < "$tmpdepfile" > "$depfile" sed -e "s,^$outname: \(.*\)$,\1:," < "$tmpdepfile" >> "$depfile" else # The sourcefile does not contain any dependencies, so just # store a dummy comment line, to avoid errors with the Makefile # "include basename.Plo" scheme. echo "#dummy" > "$depfile" fi rm -f "$tmpdepfile" ;; icc) # Intel's C compiler understands `-MD -MF file'. However on # icc -MD -MF foo.d -c -o sub/foo.o sub/foo.c # ICC 7.0 will fill foo.d with something like # foo.o: sub/foo.c # foo.o: sub/foo.h # which is wrong. We want: # sub/foo.o: sub/foo.c # sub/foo.o: sub/foo.h # sub/foo.c: # sub/foo.h: # ICC 7.1 will output # foo.o: sub/foo.c sub/foo.h # and will wrap long lines using \ : # foo.o: sub/foo.c ... \ # sub/foo.h ... \ # ... "$@" -MD -MF "$tmpdepfile" stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" # Each line is of the form `foo.o: dependent.h', # or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'. # Do two passes, one to just change these to # `$object: dependent.h' and one to simply `dependent.h:'. sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile" # Some versions of the HPUX 10.20 sed can't process this invocation # correctly. Breaking it into two sed invocations is a workaround. sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; hp2) # The "hp" stanza above does not work with aCC (C++) and HP's ia64 # compilers, which have integrated preprocessors. The correct option # to use with these is +Maked; it writes dependencies to a file named # 'foo.d', which lands next to the object file, wherever that # happens to be. # Much of this is similar to the tru64 case; see comments there. dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` test "x$dir" = "x$object" && dir= base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` if test "$libtool" = yes; then tmpdepfile1=$dir$base.d tmpdepfile2=$dir.libs/$base.d "$@" -Wc,+Maked else tmpdepfile1=$dir$base.d tmpdepfile2=$dir$base.d "$@" +Maked fi stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile1" "$tmpdepfile2" exit $stat fi for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" do test -f "$tmpdepfile" && break done if test -f "$tmpdepfile"; then sed -e "s,^.*\.[a-z]*:,$object:," "$tmpdepfile" > "$depfile" # Add `dependent.h:' lines. sed -ne '2,${; s/^ *//; s/ \\*$//; s/$/:/; p;}' "$tmpdepfile" >> "$depfile" else echo "#dummy" > "$depfile" fi rm -f "$tmpdepfile" "$tmpdepfile2" ;; tru64) # The Tru64 compiler uses -MD to generate dependencies as a side # effect. `cc -MD -o foo.o ...' puts the dependencies into `foo.o.d'. # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put # dependencies in `foo.d' instead, so we check for that too. # Subdirectories are respected. dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` test "x$dir" = "x$object" && dir= base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` if test "$libtool" = yes; then # With Tru64 cc, shared objects can also be used to make a # static library. This mechanism is used in libtool 1.4 series to # handle both shared and static libraries in a single compilation. # With libtool 1.4, dependencies were output in $dir.libs/$base.lo.d. # # With libtool 1.5 this exception was removed, and libtool now # generates 2 separate objects for the 2 libraries. These two # compilations output dependencies in $dir.libs/$base.o.d and # in $dir$base.o.d. We have to check for both files, because # one of the two compilations can be disabled. We should prefer # $dir$base.o.d over $dir.libs/$base.o.d because the latter is # automatically cleaned when .libs/ is deleted, while ignoring # the former would cause a distcleancheck panic. tmpdepfile1=$dir.libs/$base.lo.d # libtool 1.4 tmpdepfile2=$dir$base.o.d # libtool 1.5 tmpdepfile3=$dir.libs/$base.o.d # libtool 1.5 tmpdepfile4=$dir.libs/$base.d # Compaq CCC V6.2-504 "$@" -Wc,-MD else tmpdepfile1=$dir$base.o.d tmpdepfile2=$dir$base.d tmpdepfile3=$dir$base.d tmpdepfile4=$dir$base.d "$@" -MD fi stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4" exit $stat fi for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4" do test -f "$tmpdepfile" && break done if test -f "$tmpdepfile"; then sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile" # That's a tab and a space in the []. sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile" else echo "#dummy" > "$depfile" fi rm -f "$tmpdepfile" ;; #nosideeffect) # This comment above is used by automake to tell side-effect # dependency tracking mechanisms from slower ones. dashmstdout) # Important note: in order to support this mode, a compiler *must* # always write the preprocessed file to stdout, regardless of -o. "$@" || exit $? # Remove the call to Libtool. if test "$libtool" = yes; then while test $1 != '--mode=compile'; do shift done shift fi # Remove `-o $object'. IFS=" " for arg do case $arg in -o) shift ;; $object) shift ;; *) set fnord "$@" "$arg" shift # fnord shift # $arg ;; esac done test -z "$dashmflag" && dashmflag=-M # Require at least two characters before searching for `:' # in the target name. This is to cope with DOS-style filenames: # a dependency such as `c:/foo/bar' could be seen as target `c' otherwise. "$@" $dashmflag | sed 's:^[ ]*[^: ][^:][^:]*\:[ ]*:'"$object"'\: :' > "$tmpdepfile" rm -f "$depfile" cat < "$tmpdepfile" > "$depfile" tr ' ' ' ' < "$tmpdepfile" | \ ## Some versions of the HPUX 10.20 sed can't process this invocation ## correctly. Breaking it into two sed invocations is a workaround. sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; dashXmstdout) # This case only exists to satisfy depend.m4. It is never actually # run, as this mode is specially recognized in the preamble. exit 1 ;; makedepend) "$@" || exit $? # Remove any Libtool call if test "$libtool" = yes; then while test $1 != '--mode=compile'; do shift done shift fi # X makedepend shift cleared=no for arg in "$@"; do case $cleared in no) set ""; shift cleared=yes ;; esac case "$arg" in -D*|-I*) set fnord "$@" "$arg"; shift ;; # Strip any option that makedepend may not understand. Remove # the object too, otherwise makedepend will parse it as a source file. -*|$object) ;; *) set fnord "$@" "$arg"; shift ;; esac done obj_suffix="`echo $object | sed 's/^.*\././'`" touch "$tmpdepfile" ${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@" rm -f "$depfile" cat < "$tmpdepfile" > "$depfile" sed '1,2d' "$tmpdepfile" | tr ' ' ' ' | \ ## Some versions of the HPUX 10.20 sed can't process this invocation ## correctly. Breaking it into two sed invocations is a workaround. sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" "$tmpdepfile".bak ;; cpp) # Important note: in order to support this mode, a compiler *must* # always write the preprocessed file to stdout. "$@" || exit $? # Remove the call to Libtool. if test "$libtool" = yes; then while test $1 != '--mode=compile'; do shift done shift fi # Remove `-o $object'. IFS=" " for arg do case $arg in -o) shift ;; $object) shift ;; *) set fnord "$@" "$arg" shift # fnord shift # $arg ;; esac done "$@" -E | sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \ -e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' | sed '$ s: \\$::' > "$tmpdepfile" rm -f "$depfile" echo "$object : \\" > "$depfile" cat < "$tmpdepfile" >> "$depfile" sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; msvisualcpp) # Important note: in order to support this mode, a compiler *must* # always write the preprocessed file to stdout, regardless of -o, # because we must use -o when running libtool. "$@" || exit $? IFS=" " for arg do case "$arg" in "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI") set fnord "$@" shift shift ;; *) set fnord "$@" "$arg" shift shift ;; esac done "$@" -E | sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::echo "`cygpath -u \\"\1\\"`":p' | sort | uniq > "$tmpdepfile" rm -f "$depfile" echo "$object : \\" > "$depfile" . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s:: \1 \\:p' >> "$depfile" echo " " >> "$depfile" . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s::\1\::p' >> "$depfile" rm -f "$tmpdepfile" ;; none) exec "$@" ;; *) echo "Unknown depmode $depmode" 1>&2 exit 1 ;; esac exit 0 # Local Variables: # mode: shell-script # sh-indentation: 2 # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-end: "$" # End: mock-1.1.33/build/missing0000755001204700120500000001533112205226665012154 00000000000000#! /bin/sh # Common wrapper for a few potentially missing GNU programs. scriptversion=2012-06-26.16; # UTC # Copyright (C) 1996-2013 Free Software Foundation, Inc. # Originally written by Fran,cois Pinard , 1996. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. if test $# -eq 0; then echo 1>&2 "Try '$0 --help' for more information" exit 1 fi case $1 in --is-lightweight) # Used by our autoconf macros to check whether the available missing # script is modern enough. exit 0 ;; --run) # Back-compat with the calling convention used by older automake. shift ;; -h|--h|--he|--hel|--help) echo "\ $0 [OPTION]... PROGRAM [ARGUMENT]... Run 'PROGRAM [ARGUMENT]...', returning a proper advice when this fails due to PROGRAM being missing or too old. Options: -h, --help display this help and exit -v, --version output version information and exit Supported PROGRAM values: aclocal autoconf autoheader autom4te automake makeinfo bison yacc flex lex help2man Version suffixes to PROGRAM as well as the prefixes 'gnu-', 'gnu', and 'g' are ignored when checking the name. Send bug reports to ." exit $? ;; -v|--v|--ve|--ver|--vers|--versi|--versio|--version) echo "missing $scriptversion (GNU Automake)" exit $? ;; -*) echo 1>&2 "$0: unknown '$1' option" echo 1>&2 "Try '$0 --help' for more information" exit 1 ;; esac # Run the given program, remember its exit status. "$@"; st=$? # If it succeeded, we are done. test $st -eq 0 && exit 0 # Also exit now if we it failed (or wasn't found), and '--version' was # passed; such an option is passed most likely to detect whether the # program is present and works. case $2 in --version|--help) exit $st;; esac # Exit code 63 means version mismatch. This often happens when the user # tries to use an ancient version of a tool on a file that requires a # minimum version. if test $st -eq 63; then msg="probably too old" elif test $st -eq 127; then # Program was missing. msg="missing on your system" else # Program was found and executed, but failed. Give up. exit $st fi perl_URL=http://www.perl.org/ flex_URL=http://flex.sourceforge.net/ gnu_software_URL=http://www.gnu.org/software program_details () { case $1 in aclocal|automake) echo "The '$1' program is part of the GNU Automake package:" echo "<$gnu_software_URL/automake>" echo "It also requires GNU Autoconf, GNU m4 and Perl in order to run:" echo "<$gnu_software_URL/autoconf>" echo "<$gnu_software_URL/m4/>" echo "<$perl_URL>" ;; autoconf|autom4te|autoheader) echo "The '$1' program is part of the GNU Autoconf package:" echo "<$gnu_software_URL/autoconf/>" echo "It also requires GNU m4 and Perl in order to run:" echo "<$gnu_software_URL/m4/>" echo "<$perl_URL>" ;; esac } give_advice () { # Normalize program name to check for. normalized_program=`echo "$1" | sed ' s/^gnu-//; t s/^gnu//; t s/^g//; t'` printf '%s\n' "'$1' is $msg." configure_deps="'configure.ac' or m4 files included by 'configure.ac'" case $normalized_program in autoconf*) echo "You should only need it if you modified 'configure.ac'," echo "or m4 files included by it." program_details 'autoconf' ;; autoheader*) echo "You should only need it if you modified 'acconfig.h' or" echo "$configure_deps." program_details 'autoheader' ;; automake*) echo "You should only need it if you modified 'Makefile.am' or" echo "$configure_deps." program_details 'automake' ;; aclocal*) echo "You should only need it if you modified 'acinclude.m4' or" echo "$configure_deps." program_details 'aclocal' ;; autom4te*) echo "You might have modified some maintainer files that require" echo "the 'automa4te' program to be rebuilt." program_details 'autom4te' ;; bison*|yacc*) echo "You should only need it if you modified a '.y' file." echo "You may want to install the GNU Bison package:" echo "<$gnu_software_URL/bison/>" ;; lex*|flex*) echo "You should only need it if you modified a '.l' file." echo "You may want to install the Fast Lexical Analyzer package:" echo "<$flex_URL>" ;; help2man*) echo "You should only need it if you modified a dependency" \ "of a man page." echo "You may want to install the GNU Help2man package:" echo "<$gnu_software_URL/help2man/>" ;; makeinfo*) echo "You should only need it if you modified a '.texi' file, or" echo "any other file indirectly affecting the aspect of the manual." echo "You might want to install the Texinfo package:" echo "<$gnu_software_URL/texinfo/>" echo "The spurious makeinfo call might also be the consequence of" echo "using a buggy 'make' (AIX, DU, IRIX), in which case you might" echo "want to install GNU make:" echo "<$gnu_software_URL/make/>" ;; *) echo "You might have modified some files without having the proper" echo "tools for further handling them. Check the 'README' file, it" echo "often tells you about the needed prerequisites for installing" echo "this package. You may also peek at any GNU archive site, in" echo "case some other package contains this missing '$1' program." ;; esac } give_advice "$1" | sed -e '1s/^/WARNING: /' \ -e '2,$s/^/ /' >&2 # Propagate the correct exit status (expected to be 127 for a program # not found, 63 for a program that failed due to version mismatch). exit $st # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-time-zone: "UTC" # time-stamp-end: "; # UTC" # End: mock-1.1.33/build/ltmain.sh0000644001204700120500000060446510665263176012417 00000000000000# ltmain.sh - Provide generalized library-building support services. # NOTE: Changing this file will not affect anything until you rerun configure. # # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006, # 2007 Free Software Foundation, Inc. # Originally by Gordon Matzigkeit , 1996 # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. basename="s,^.*/,,g" # Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh # is ksh but when the shell is invoked as "sh" and the current value of # the _XPG environment variable is not equal to 1 (one), the special # positional parameter $0, within a function call, is the name of the # function. progpath="$0" # The name of this program: progname=`echo "$progpath" | $SED $basename` modename="$progname" # Global variables: EXIT_SUCCESS=0 EXIT_FAILURE=1 PROGRAM=ltmain.sh PACKAGE=libtool VERSION=1.5.24 TIMESTAMP=" (1.1220.2.456 2007/06/24 02:25:32)" # Be Bourne compatible (taken from Autoconf:_AS_BOURNE_COMPATIBLE). if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in *posix*) set -o posix;; esac fi BIN_SH=xpg4; export BIN_SH # for Tru64 DUALCASE=1; export DUALCASE # for MKS sh # Check that we have a working $echo. if test "X$1" = X--no-reexec; then # Discard the --no-reexec flag, and continue. shift elif test "X$1" = X--fallback-echo; then # Avoid inline document here, it may be left over : elif test "X`($echo '\t') 2>/dev/null`" = 'X\t'; then # Yippee, $echo works! : else # Restart under the correct shell, and then maybe $echo will work. exec $SHELL "$progpath" --no-reexec ${1+"$@"} fi if test "X$1" = X--fallback-echo; then # used as fallback echo shift cat <&2 $echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2 exit $EXIT_FAILURE fi # Global variables. mode=$default_mode nonopt= prev= prevopt= run= show="$echo" show_help= execute_dlfiles= duplicate_deps=no preserve_args= lo2o="s/\\.lo\$/.${objext}/" o2lo="s/\\.${objext}\$/.lo/" extracted_archives= extracted_serial=0 ##################################### # Shell function definitions: # This seems to be the best place for them # func_mktempdir [string] # Make a temporary directory that won't clash with other running # libtool processes, and avoids race conditions if possible. If # given, STRING is the basename for that directory. func_mktempdir () { my_template="${TMPDIR-/tmp}/${1-$progname}" if test "$run" = ":"; then # Return a directory name, but don't create it in dry-run mode my_tmpdir="${my_template}-$$" else # If mktemp works, use that first and foremost my_tmpdir=`mktemp -d "${my_template}-XXXXXXXX" 2>/dev/null` if test ! -d "$my_tmpdir"; then # Failing that, at least try and use $RANDOM to avoid a race my_tmpdir="${my_template}-${RANDOM-0}$$" save_mktempdir_umask=`umask` umask 0077 $mkdir "$my_tmpdir" umask $save_mktempdir_umask fi # If we're not in dry-run mode, bomb out on failure test -d "$my_tmpdir" || { $echo "cannot create temporary directory \`$my_tmpdir'" 1>&2 exit $EXIT_FAILURE } fi $echo "X$my_tmpdir" | $Xsed } # func_win32_libid arg # return the library type of file 'arg' # # Need a lot of goo to handle *both* DLLs and import libs # Has to be a shell function in order to 'eat' the argument # that is supplied when $file_magic_command is called. func_win32_libid () { win32_libid_type="unknown" win32_fileres=`file -L $1 2>/dev/null` case $win32_fileres in *ar\ archive\ import\ library*) # definitely import win32_libid_type="x86 archive import" ;; *ar\ archive*) # could be an import, or static if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null | \ $EGREP -e 'file format pe-i386(.*architecture: i386)?' >/dev/null ; then win32_nmres=`eval $NM -f posix -A $1 | \ $SED -n -e '1,100{ / I /{ s,.*,import, p q } }'` case $win32_nmres in import*) win32_libid_type="x86 archive import";; *) win32_libid_type="x86 archive static";; esac fi ;; *DLL*) win32_libid_type="x86 DLL" ;; *executable*) # but shell scripts are "executable" too... case $win32_fileres in *MS\ Windows\ PE\ Intel*) win32_libid_type="x86 DLL" ;; esac ;; esac $echo $win32_libid_type } # func_infer_tag arg # Infer tagged configuration to use if any are available and # if one wasn't chosen via the "--tag" command line option. # Only attempt this if the compiler in the base compile # command doesn't match the default compiler. # arg is usually of the form 'gcc ...' func_infer_tag () { if test -n "$available_tags" && test -z "$tagname"; then CC_quoted= for arg in $CC; do case $arg in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") arg="\"$arg\"" ;; esac CC_quoted="$CC_quoted $arg" done case $@ in # Blanks in the command may have been stripped by the calling shell, # but not from the CC environment variable when configure was run. " $CC "* | "$CC "* | " `$echo $CC` "* | "`$echo $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$echo $CC_quoted` "* | "`$echo $CC_quoted` "*) ;; # Blanks at the start of $base_compile will cause this to fail # if we don't check for them as well. *) for z in $available_tags; do if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$progpath" > /dev/null; then # Evaluate the configuration. eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $progpath`" CC_quoted= for arg in $CC; do # Double-quote args containing other shell metacharacters. case $arg in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") arg="\"$arg\"" ;; esac CC_quoted="$CC_quoted $arg" done case "$@ " in " $CC "* | "$CC "* | " `$echo $CC` "* | "`$echo $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$echo $CC_quoted` "* | "`$echo $CC_quoted` "*) # The compiler in the base compile command matches # the one in the tagged configuration. # Assume this is the tagged configuration we want. tagname=$z break ;; esac fi done # If $tagname still isn't set, then no tagged configuration # was found and let the user know that the "--tag" command # line option must be used. if test -z "$tagname"; then $echo "$modename: unable to infer tagged configuration" $echo "$modename: specify a tag with \`--tag'" 1>&2 exit $EXIT_FAILURE # else # $echo "$modename: using $tagname tagged configuration" fi ;; esac fi } # func_extract_an_archive dir oldlib func_extract_an_archive () { f_ex_an_ar_dir="$1"; shift f_ex_an_ar_oldlib="$1" $show "(cd $f_ex_an_ar_dir && $AR x $f_ex_an_ar_oldlib)" $run eval "(cd \$f_ex_an_ar_dir && $AR x \$f_ex_an_ar_oldlib)" || exit $? if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then : else $echo "$modename: ERROR: object name conflicts: $f_ex_an_ar_dir/$f_ex_an_ar_oldlib" 1>&2 exit $EXIT_FAILURE fi } # func_extract_archives gentop oldlib ... func_extract_archives () { my_gentop="$1"; shift my_oldlibs=${1+"$@"} my_oldobjs="" my_xlib="" my_xabs="" my_xdir="" my_status="" $show "${rm}r $my_gentop" $run ${rm}r "$my_gentop" $show "$mkdir $my_gentop" $run $mkdir "$my_gentop" my_status=$? if test "$my_status" -ne 0 && test ! -d "$my_gentop"; then exit $my_status fi for my_xlib in $my_oldlibs; do # Extract the objects. case $my_xlib in [\\/]* | [A-Za-z]:[\\/]*) my_xabs="$my_xlib" ;; *) my_xabs=`pwd`"/$my_xlib" ;; esac my_xlib=`$echo "X$my_xlib" | $Xsed -e 's%^.*/%%'` my_xlib_u=$my_xlib while :; do case " $extracted_archives " in *" $my_xlib_u "*) extracted_serial=`expr $extracted_serial + 1` my_xlib_u=lt$extracted_serial-$my_xlib ;; *) break ;; esac done extracted_archives="$extracted_archives $my_xlib_u" my_xdir="$my_gentop/$my_xlib_u" $show "${rm}r $my_xdir" $run ${rm}r "$my_xdir" $show "$mkdir $my_xdir" $run $mkdir "$my_xdir" exit_status=$? if test "$exit_status" -ne 0 && test ! -d "$my_xdir"; then exit $exit_status fi case $host in *-darwin*) $show "Extracting $my_xabs" # Do not bother doing anything if just a dry run if test -z "$run"; then darwin_orig_dir=`pwd` cd $my_xdir || exit $? darwin_archive=$my_xabs darwin_curdir=`pwd` darwin_base_archive=`$echo "X$darwin_archive" | $Xsed -e 's%^.*/%%'` darwin_arches=`lipo -info "$darwin_archive" 2>/dev/null | $EGREP Architectures 2>/dev/null` if test -n "$darwin_arches"; then darwin_arches=`echo "$darwin_arches" | $SED -e 's/.*are://'` darwin_arch= $show "$darwin_base_archive has multiple architectures $darwin_arches" for darwin_arch in $darwin_arches ; do mkdir -p "unfat-$$/${darwin_base_archive}-${darwin_arch}" lipo -thin $darwin_arch -output "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" "${darwin_archive}" cd "unfat-$$/${darwin_base_archive}-${darwin_arch}" func_extract_an_archive "`pwd`" "${darwin_base_archive}" cd "$darwin_curdir" $rm "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" done # $darwin_arches ## Okay now we have a bunch of thin objects, gotta fatten them up :) darwin_filelist=`find unfat-$$ -type f -name \*.o -print -o -name \*.lo -print| xargs basename | sort -u | $NL2SP` darwin_file= darwin_files= for darwin_file in $darwin_filelist; do darwin_files=`find unfat-$$ -name $darwin_file -print | $NL2SP` lipo -create -output "$darwin_file" $darwin_files done # $darwin_filelist ${rm}r unfat-$$ cd "$darwin_orig_dir" else cd "$darwin_orig_dir" func_extract_an_archive "$my_xdir" "$my_xabs" fi # $darwin_arches fi # $run ;; *) func_extract_an_archive "$my_xdir" "$my_xabs" ;; esac my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | $NL2SP` done func_extract_archives_result="$my_oldobjs" } # End of Shell function definitions ##################################### # Darwin sucks eval std_shrext=\"$shrext_cmds\" disable_libs=no # Parse our command line options once, thoroughly. while test "$#" -gt 0 do arg="$1" shift case $arg in -*=*) optarg=`$echo "X$arg" | $Xsed -e 's/[-_a-zA-Z0-9]*=//'` ;; *) optarg= ;; esac # If the previous option needs an argument, assign it. if test -n "$prev"; then case $prev in execute_dlfiles) execute_dlfiles="$execute_dlfiles $arg" ;; tag) tagname="$arg" preserve_args="${preserve_args}=$arg" # Check whether tagname contains only valid characters case $tagname in *[!-_A-Za-z0-9,/]*) $echo "$progname: invalid tag name: $tagname" 1>&2 exit $EXIT_FAILURE ;; esac case $tagname in CC) # Don't test for the "default" C tag, as we know, it's there, but # not specially marked. ;; *) if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$" < "$progpath" > /dev/null; then taglist="$taglist $tagname" # Evaluate the configuration. eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$tagname'$/,/^# ### END LIBTOOL TAG CONFIG: '$tagname'$/p' < $progpath`" else $echo "$progname: ignoring unknown tag $tagname" 1>&2 fi ;; esac ;; *) eval "$prev=\$arg" ;; esac prev= prevopt= continue fi # Have we seen a non-optional argument yet? case $arg in --help) show_help=yes ;; --version) echo "\ $PROGRAM (GNU $PACKAGE) $VERSION$TIMESTAMP Copyright (C) 2007 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." exit $? ;; --config) ${SED} -e '1,/^# ### BEGIN LIBTOOL CONFIG/d' -e '/^# ### END LIBTOOL CONFIG/,$d' $progpath # Now print the configurations for the tags. for tagname in $taglist; do ${SED} -n -e "/^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$/,/^# ### END LIBTOOL TAG CONFIG: $tagname$/p" < "$progpath" done exit $? ;; --debug) $echo "$progname: enabling shell trace mode" set -x preserve_args="$preserve_args $arg" ;; --dry-run | -n) run=: ;; --features) $echo "host: $host" if test "$build_libtool_libs" = yes; then $echo "enable shared libraries" else $echo "disable shared libraries" fi if test "$build_old_libs" = yes; then $echo "enable static libraries" else $echo "disable static libraries" fi exit $? ;; --finish) mode="finish" ;; --mode) prevopt="--mode" prev=mode ;; --mode=*) mode="$optarg" ;; --preserve-dup-deps) duplicate_deps="yes" ;; --quiet | --silent) show=: preserve_args="$preserve_args $arg" ;; --tag) prevopt="--tag" prev=tag preserve_args="$preserve_args --tag" ;; --tag=*) set tag "$optarg" ${1+"$@"} shift prev=tag preserve_args="$preserve_args --tag" ;; -dlopen) prevopt="-dlopen" prev=execute_dlfiles ;; -*) $echo "$modename: unrecognized option \`$arg'" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE ;; *) nonopt="$arg" break ;; esac done if test -n "$prevopt"; then $echo "$modename: option \`$prevopt' requires an argument" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE fi case $disable_libs in no) ;; shared) build_libtool_libs=no build_old_libs=yes ;; static) build_old_libs=`case $build_libtool_libs in yes) echo no;; *) echo yes;; esac` ;; esac # If this variable is set in any of the actions, the command in it # will be execed at the end. This prevents here-documents from being # left over by shells. exec_cmd= if test -z "$show_help"; then # Infer the operation mode. if test -z "$mode"; then $echo "*** Warning: inferring the mode of operation is deprecated." 1>&2 $echo "*** Future versions of Libtool will require --mode=MODE be specified." 1>&2 case $nonopt in *cc | cc* | *++ | gcc* | *-gcc* | g++* | xlc*) mode=link for arg do case $arg in -c) mode=compile break ;; esac done ;; *db | *dbx | *strace | *truss) mode=execute ;; *install*|cp|mv) mode=install ;; *rm) mode=uninstall ;; *) # If we have no mode, but dlfiles were specified, then do execute mode. test -n "$execute_dlfiles" && mode=execute # Just use the default operation mode. if test -z "$mode"; then if test -n "$nonopt"; then $echo "$modename: warning: cannot infer operation mode from \`$nonopt'" 1>&2 else $echo "$modename: warning: cannot infer operation mode without MODE-ARGS" 1>&2 fi fi ;; esac fi # Only execute mode is allowed to have -dlopen flags. if test -n "$execute_dlfiles" && test "$mode" != execute; then $echo "$modename: unrecognized option \`-dlopen'" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE fi # Change the help message to a mode-specific one. generic_help="$help" help="Try \`$modename --help --mode=$mode' for more information." # These modes are in order of execution frequency so that they run quickly. case $mode in # libtool compile mode compile) modename="$modename: compile" # Get the compilation command and the source file. base_compile= srcfile="$nonopt" # always keep a non-empty value in "srcfile" suppress_opt=yes suppress_output= arg_mode=normal libobj= later= for arg do case $arg_mode in arg ) # do not "continue". Instead, add this to base_compile lastarg="$arg" arg_mode=normal ;; target ) libobj="$arg" arg_mode=normal continue ;; normal ) # Accept any command-line options. case $arg in -o) if test -n "$libobj" ; then $echo "$modename: you cannot specify \`-o' more than once" 1>&2 exit $EXIT_FAILURE fi arg_mode=target continue ;; -static | -prefer-pic | -prefer-non-pic) later="$later $arg" continue ;; -no-suppress) suppress_opt=no continue ;; -Xcompiler) arg_mode=arg # the next one goes into the "base_compile" arg list continue # The current "srcfile" will either be retained or ;; # replaced later. I would guess that would be a bug. -Wc,*) args=`$echo "X$arg" | $Xsed -e "s/^-Wc,//"` lastarg= save_ifs="$IFS"; IFS=',' for arg in $args; do IFS="$save_ifs" # Double-quote args containing other shell metacharacters. # Many Bourne shells cannot handle close brackets correctly # in scan sets, so we specify it separately. case $arg in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") arg="\"$arg\"" ;; esac lastarg="$lastarg $arg" done IFS="$save_ifs" lastarg=`$echo "X$lastarg" | $Xsed -e "s/^ //"` # Add the arguments to base_compile. base_compile="$base_compile $lastarg" continue ;; * ) # Accept the current argument as the source file. # The previous "srcfile" becomes the current argument. # lastarg="$srcfile" srcfile="$arg" ;; esac # case $arg ;; esac # case $arg_mode # Aesthetically quote the previous argument. lastarg=`$echo "X$lastarg" | $Xsed -e "$sed_quote_subst"` case $lastarg in # Double-quote args containing other shell metacharacters. # Many Bourne shells cannot handle close brackets correctly # in scan sets, and some SunOS ksh mistreat backslash-escaping # in scan sets (worked around with variable expansion), # and furthermore cannot handle '|' '&' '(' ')' in scan sets # at all, so we specify them separately. *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") lastarg="\"$lastarg\"" ;; esac base_compile="$base_compile $lastarg" done # for arg case $arg_mode in arg) $echo "$modename: you must specify an argument for -Xcompile" exit $EXIT_FAILURE ;; target) $echo "$modename: you must specify a target with \`-o'" 1>&2 exit $EXIT_FAILURE ;; *) # Get the name of the library object. [ -z "$libobj" ] && libobj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%'` ;; esac # Recognize several different file suffixes. # If the user specifies -o file.o, it is replaced with file.lo xform='[cCFSifmso]' case $libobj in *.ada) xform=ada ;; *.adb) xform=adb ;; *.ads) xform=ads ;; *.asm) xform=asm ;; *.c++) xform=c++ ;; *.cc) xform=cc ;; *.ii) xform=ii ;; *.class) xform=class ;; *.cpp) xform=cpp ;; *.cxx) xform=cxx ;; *.[fF][09]?) xform=[fF][09]. ;; *.for) xform=for ;; *.java) xform=java ;; *.obj) xform=obj ;; esac libobj=`$echo "X$libobj" | $Xsed -e "s/\.$xform$/.lo/"` case $libobj in *.lo) obj=`$echo "X$libobj" | $Xsed -e "$lo2o"` ;; *) $echo "$modename: cannot determine name of library object from \`$libobj'" 1>&2 exit $EXIT_FAILURE ;; esac func_infer_tag $base_compile for arg in $later; do case $arg in -static) build_old_libs=yes continue ;; -prefer-pic) pic_mode=yes continue ;; -prefer-non-pic) pic_mode=no continue ;; esac done qlibobj=`$echo "X$libobj" | $Xsed -e "$sed_quote_subst"` case $qlibobj in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") qlibobj="\"$qlibobj\"" ;; esac test "X$libobj" != "X$qlibobj" \ && $echo "X$libobj" | grep '[]~#^*{};<>?"'"'"' &()|`$[]' \ && $echo "$modename: libobj name \`$libobj' may not contain shell special characters." objname=`$echo "X$obj" | $Xsed -e 's%^.*/%%'` xdir=`$echo "X$obj" | $Xsed -e 's%/[^/]*$%%'` if test "X$xdir" = "X$obj"; then xdir= else xdir=$xdir/ fi lobj=${xdir}$objdir/$objname if test -z "$base_compile"; then $echo "$modename: you must specify a compilation command" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE fi # Delete any leftover library objects. if test "$build_old_libs" = yes; then removelist="$obj $lobj $libobj ${libobj}T" else removelist="$lobj $libobj ${libobj}T" fi $run $rm $removelist trap "$run $rm $removelist; exit $EXIT_FAILURE" 1 2 15 # On Cygwin there's no "real" PIC flag so we must build both object types case $host_os in cygwin* | mingw* | pw32* | os2*) pic_mode=default ;; esac if test "$pic_mode" = no && test "$deplibs_check_method" != pass_all; then # non-PIC code in shared libraries is not supported pic_mode=default fi # Calculate the filename of the output object if compiler does # not support -o with -c if test "$compiler_c_o" = no; then output_obj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%' -e 's%\.[^.]*$%%'`.${objext} lockfile="$output_obj.lock" removelist="$removelist $output_obj $lockfile" trap "$run $rm $removelist; exit $EXIT_FAILURE" 1 2 15 else output_obj= need_locks=no lockfile= fi # Lock this critical section if it is needed # We use this script file to make the link, it avoids creating a new file if test "$need_locks" = yes; then until $run ln "$progpath" "$lockfile" 2>/dev/null; do $show "Waiting for $lockfile to be removed" sleep 2 done elif test "$need_locks" = warn; then if test -f "$lockfile"; then $echo "\ *** ERROR, $lockfile exists and contains: `cat $lockfile 2>/dev/null` This indicates that another process is trying to use the same temporary object file, and libtool could not work around it because your compiler does not support \`-c' and \`-o' together. If you repeat this compilation, it may succeed, by chance, but you had better avoid parallel builds (make -j) in this platform, or get a better compiler." $run $rm $removelist exit $EXIT_FAILURE fi $echo "$srcfile" > "$lockfile" fi if test -n "$fix_srcfile_path"; then eval srcfile=\"$fix_srcfile_path\" fi qsrcfile=`$echo "X$srcfile" | $Xsed -e "$sed_quote_subst"` case $qsrcfile in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") qsrcfile="\"$qsrcfile\"" ;; esac $run $rm "$libobj" "${libobj}T" # Create a libtool object file (analogous to a ".la" file), # but don't create it if we're doing a dry run. test -z "$run" && cat > ${libobj}T </dev/null`" != "X$srcfile"; then $echo "\ *** ERROR, $lockfile contains: `cat $lockfile 2>/dev/null` but it should contain: $srcfile This indicates that another process is trying to use the same temporary object file, and libtool could not work around it because your compiler does not support \`-c' and \`-o' together. If you repeat this compilation, it may succeed, by chance, but you had better avoid parallel builds (make -j) in this platform, or get a better compiler." $run $rm $removelist exit $EXIT_FAILURE fi # Just move the object if needed, then go on to compile the next one if test -n "$output_obj" && test "X$output_obj" != "X$lobj"; then $show "$mv $output_obj $lobj" if $run $mv $output_obj $lobj; then : else error=$? $run $rm $removelist exit $error fi fi # Append the name of the PIC object to the libtool object file. test -z "$run" && cat >> ${libobj}T <> ${libobj}T </dev/null`" != "X$srcfile"; then $echo "\ *** ERROR, $lockfile contains: `cat $lockfile 2>/dev/null` but it should contain: $srcfile This indicates that another process is trying to use the same temporary object file, and libtool could not work around it because your compiler does not support \`-c' and \`-o' together. If you repeat this compilation, it may succeed, by chance, but you had better avoid parallel builds (make -j) in this platform, or get a better compiler." $run $rm $removelist exit $EXIT_FAILURE fi # Just move the object if needed if test -n "$output_obj" && test "X$output_obj" != "X$obj"; then $show "$mv $output_obj $obj" if $run $mv $output_obj $obj; then : else error=$? $run $rm $removelist exit $error fi fi # Append the name of the non-PIC object the libtool object file. # Only append if the libtool object file exists. test -z "$run" && cat >> ${libobj}T <> ${libobj}T <&2 fi if test -n "$link_static_flag"; then dlopen_self=$dlopen_self_static fi prefer_static_libs=yes ;; -static) if test -z "$pic_flag" && test -n "$link_static_flag"; then dlopen_self=$dlopen_self_static fi prefer_static_libs=built ;; -static-libtool-libs) if test -z "$pic_flag" && test -n "$link_static_flag"; then dlopen_self=$dlopen_self_static fi prefer_static_libs=yes ;; esac build_libtool_libs=no build_old_libs=yes break ;; esac done # See if our shared archives depend on static archives. test -n "$old_archive_from_new_cmds" && build_old_libs=yes # Go through the arguments, transforming them on the way. while test "$#" -gt 0; do arg="$1" shift case $arg in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") qarg=\"`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`\" ### testsuite: skip nested quoting test ;; *) qarg=$arg ;; esac libtool_args="$libtool_args $qarg" # If the previous option needs an argument, assign it. if test -n "$prev"; then case $prev in output) compile_command="$compile_command @OUTPUT@" finalize_command="$finalize_command @OUTPUT@" ;; esac case $prev in dlfiles|dlprefiles) if test "$preload" = no; then # Add the symbol object into the linking commands. compile_command="$compile_command @SYMFILE@" finalize_command="$finalize_command @SYMFILE@" preload=yes fi case $arg in *.la | *.lo) ;; # We handle these cases below. force) if test "$dlself" = no; then dlself=needless export_dynamic=yes fi prev= continue ;; self) if test "$prev" = dlprefiles; then dlself=yes elif test "$prev" = dlfiles && test "$dlopen_self" != yes; then dlself=yes else dlself=needless export_dynamic=yes fi prev= continue ;; *) if test "$prev" = dlfiles; then dlfiles="$dlfiles $arg" else dlprefiles="$dlprefiles $arg" fi prev= continue ;; esac ;; expsyms) export_symbols="$arg" if test ! -f "$arg"; then $echo "$modename: symbol file \`$arg' does not exist" exit $EXIT_FAILURE fi prev= continue ;; expsyms_regex) export_symbols_regex="$arg" prev= continue ;; inst_prefix) inst_prefix_dir="$arg" prev= continue ;; precious_regex) precious_files_regex="$arg" prev= continue ;; release) release="-$arg" prev= continue ;; objectlist) if test -f "$arg"; then save_arg=$arg moreargs= for fil in `cat $save_arg` do # moreargs="$moreargs $fil" arg=$fil # A libtool-controlled object. # Check to see that this really is a libtool object. if (${SED} -e '2q' $arg | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then pic_object= non_pic_object= # Read the .lo file # If there is no directory component, then add one. case $arg in */* | *\\*) . $arg ;; *) . ./$arg ;; esac if test -z "$pic_object" || \ test -z "$non_pic_object" || test "$pic_object" = none && \ test "$non_pic_object" = none; then $echo "$modename: cannot find name of object for \`$arg'" 1>&2 exit $EXIT_FAILURE fi # Extract subdirectory from the argument. xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'` if test "X$xdir" = "X$arg"; then xdir= else xdir="$xdir/" fi if test "$pic_object" != none; then # Prepend the subdirectory the object is found in. pic_object="$xdir$pic_object" if test "$prev" = dlfiles; then if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then dlfiles="$dlfiles $pic_object" prev= continue else # If libtool objects are unsupported, then we need to preload. prev=dlprefiles fi fi # CHECK ME: I think I busted this. -Ossama if test "$prev" = dlprefiles; then # Preload the old-style object. dlprefiles="$dlprefiles $pic_object" prev= fi # A PIC object. libobjs="$libobjs $pic_object" arg="$pic_object" fi # Non-PIC object. if test "$non_pic_object" != none; then # Prepend the subdirectory the object is found in. non_pic_object="$xdir$non_pic_object" # A standard non-PIC object non_pic_objects="$non_pic_objects $non_pic_object" if test -z "$pic_object" || test "$pic_object" = none ; then arg="$non_pic_object" fi else # If the PIC object exists, use it instead. # $xdir was prepended to $pic_object above. non_pic_object="$pic_object" non_pic_objects="$non_pic_objects $non_pic_object" fi else # Only an error if not doing a dry-run. if test -z "$run"; then $echo "$modename: \`$arg' is not a valid libtool object" 1>&2 exit $EXIT_FAILURE else # Dry-run case. # Extract subdirectory from the argument. xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'` if test "X$xdir" = "X$arg"; then xdir= else xdir="$xdir/" fi pic_object=`$echo "X${xdir}${objdir}/${arg}" | $Xsed -e "$lo2o"` non_pic_object=`$echo "X${xdir}${arg}" | $Xsed -e "$lo2o"` libobjs="$libobjs $pic_object" non_pic_objects="$non_pic_objects $non_pic_object" fi fi done else $echo "$modename: link input file \`$save_arg' does not exist" exit $EXIT_FAILURE fi arg=$save_arg prev= continue ;; rpath | xrpath) # We need an absolute path. case $arg in [\\/]* | [A-Za-z]:[\\/]*) ;; *) $echo "$modename: only absolute run-paths are allowed" 1>&2 exit $EXIT_FAILURE ;; esac if test "$prev" = rpath; then case "$rpath " in *" $arg "*) ;; *) rpath="$rpath $arg" ;; esac else case "$xrpath " in *" $arg "*) ;; *) xrpath="$xrpath $arg" ;; esac fi prev= continue ;; xcompiler) compiler_flags="$compiler_flags $qarg" prev= compile_command="$compile_command $qarg" finalize_command="$finalize_command $qarg" continue ;; xlinker) linker_flags="$linker_flags $qarg" compiler_flags="$compiler_flags $wl$qarg" prev= compile_command="$compile_command $wl$qarg" finalize_command="$finalize_command $wl$qarg" continue ;; xcclinker) linker_flags="$linker_flags $qarg" compiler_flags="$compiler_flags $qarg" prev= compile_command="$compile_command $qarg" finalize_command="$finalize_command $qarg" continue ;; shrext) shrext_cmds="$arg" prev= continue ;; darwin_framework|darwin_framework_skip) test "$prev" = "darwin_framework" && compiler_flags="$compiler_flags $arg" compile_command="$compile_command $arg" finalize_command="$finalize_command $arg" prev= continue ;; *) eval "$prev=\"\$arg\"" prev= continue ;; esac fi # test -n "$prev" prevarg="$arg" case $arg in -all-static) if test -n "$link_static_flag"; then compile_command="$compile_command $link_static_flag" finalize_command="$finalize_command $link_static_flag" fi continue ;; -allow-undefined) # FIXME: remove this flag sometime in the future. $echo "$modename: \`-allow-undefined' is deprecated because it is the default" 1>&2 continue ;; -avoid-version) avoid_version=yes continue ;; -dlopen) prev=dlfiles continue ;; -dlpreopen) prev=dlprefiles continue ;; -export-dynamic) export_dynamic=yes continue ;; -export-symbols | -export-symbols-regex) if test -n "$export_symbols" || test -n "$export_symbols_regex"; then $echo "$modename: more than one -exported-symbols argument is not allowed" exit $EXIT_FAILURE fi if test "X$arg" = "X-export-symbols"; then prev=expsyms else prev=expsyms_regex fi continue ;; -framework|-arch|-isysroot) case " $CC " in *" ${arg} ${1} "* | *" ${arg} ${1} "*) prev=darwin_framework_skip ;; *) compiler_flags="$compiler_flags $arg" prev=darwin_framework ;; esac compile_command="$compile_command $arg" finalize_command="$finalize_command $arg" continue ;; -inst-prefix-dir) prev=inst_prefix continue ;; # The native IRIX linker understands -LANG:*, -LIST:* and -LNO:* # so, if we see these flags be careful not to treat them like -L -L[A-Z][A-Z]*:*) case $with_gcc/$host in no/*-*-irix* | /*-*-irix*) compile_command="$compile_command $arg" finalize_command="$finalize_command $arg" ;; esac continue ;; -L*) dir=`$echo "X$arg" | $Xsed -e 's/^-L//'` # We need an absolute path. case $dir in [\\/]* | [A-Za-z]:[\\/]*) ;; *) absdir=`cd "$dir" && pwd` if test -z "$absdir"; then $echo "$modename: cannot determine absolute directory name of \`$dir'" 1>&2 absdir="$dir" notinst_path="$notinst_path $dir" fi dir="$absdir" ;; esac case "$deplibs " in *" -L$dir "*) ;; *) deplibs="$deplibs -L$dir" lib_search_path="$lib_search_path $dir" ;; esac case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*) testbindir=`$echo "X$dir" | $Xsed -e 's*/lib$*/bin*'` case :$dllsearchpath: in *":$dir:"*) ;; *) dllsearchpath="$dllsearchpath:$dir";; esac case :$dllsearchpath: in *":$testbindir:"*) ;; *) dllsearchpath="$dllsearchpath:$testbindir";; esac ;; esac continue ;; -l*) if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos*) # These systems don't actually have a C or math library (as such) continue ;; *-*-os2*) # These systems don't actually have a C library (as such) test "X$arg" = "X-lc" && continue ;; *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) # Do not include libc due to us having libc/libc_r. test "X$arg" = "X-lc" && continue ;; *-*-rhapsody* | *-*-darwin1.[012]) # Rhapsody C and math libraries are in the System framework deplibs="$deplibs -framework System" continue ;; *-*-sco3.2v5* | *-*-sco5v6*) # Causes problems with __ctype test "X$arg" = "X-lc" && continue ;; *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) # Compiler inserts libc in the correct place for threads to work test "X$arg" = "X-lc" && continue ;; esac elif test "X$arg" = "X-lc_r"; then case $host in *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) # Do not include libc_r directly, use -pthread flag. continue ;; esac fi deplibs="$deplibs $arg" continue ;; # Tru64 UNIX uses -model [arg] to determine the layout of C++ # classes, name mangling, and exception handling. -model) compile_command="$compile_command $arg" compiler_flags="$compiler_flags $arg" finalize_command="$finalize_command $arg" prev=xcompiler continue ;; -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe|-threads) compiler_flags="$compiler_flags $arg" compile_command="$compile_command $arg" finalize_command="$finalize_command $arg" continue ;; -module) module=yes continue ;; # -64, -mips[0-9] enable 64-bit mode on the SGI compiler # -r[0-9][0-9]* specifies the processor on the SGI compiler # -xarch=*, -xtarget=* enable 64-bit mode on the Sun compiler # +DA*, +DD* enable 64-bit mode on the HP compiler # -q* pass through compiler args for the IBM compiler # -m* pass through architecture-specific compiler args for GCC # -m*, -t[45]*, -txscale* pass through architecture-specific # compiler args for GCC # -p, -pg, --coverage, -fprofile-* pass through profiling flag for GCC # -F/path gives path to uninstalled frameworks, gcc on darwin # @file GCC response files -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \ -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*) # Unknown arguments in both finalize_command and compile_command need # to be aesthetically quoted because they are evaled later. arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` case $arg in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") arg="\"$arg\"" ;; esac compile_command="$compile_command $arg" finalize_command="$finalize_command $arg" compiler_flags="$compiler_flags $arg" continue ;; -shrext) prev=shrext continue ;; -no-fast-install) fast_install=no continue ;; -no-install) case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-darwin*) # The PATH hackery in wrapper scripts is required on Windows # and Darwin in order for the loader to find any dlls it needs. $echo "$modename: warning: \`-no-install' is ignored for $host" 1>&2 $echo "$modename: warning: assuming \`-no-fast-install' instead" 1>&2 fast_install=no ;; *) no_install=yes ;; esac continue ;; -no-undefined) allow_undefined=no continue ;; -objectlist) prev=objectlist continue ;; -o) prev=output ;; -precious-files-regex) prev=precious_regex continue ;; -release) prev=release continue ;; -rpath) prev=rpath continue ;; -R) prev=xrpath continue ;; -R*) dir=`$echo "X$arg" | $Xsed -e 's/^-R//'` # We need an absolute path. case $dir in [\\/]* | [A-Za-z]:[\\/]*) ;; *) $echo "$modename: only absolute run-paths are allowed" 1>&2 exit $EXIT_FAILURE ;; esac case "$xrpath " in *" $dir "*) ;; *) xrpath="$xrpath $dir" ;; esac continue ;; -static | -static-libtool-libs) # The effects of -static are defined in a previous loop. # We used to do the same as -all-static on platforms that # didn't have a PIC flag, but the assumption that the effects # would be equivalent was wrong. It would break on at least # Digital Unix and AIX. continue ;; -thread-safe) thread_safe=yes continue ;; -version-info) prev=vinfo continue ;; -version-number) prev=vinfo vinfo_number=yes continue ;; -Wc,*) args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wc,//'` arg= save_ifs="$IFS"; IFS=',' for flag in $args; do IFS="$save_ifs" case $flag in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") flag="\"$flag\"" ;; esac arg="$arg $wl$flag" compiler_flags="$compiler_flags $flag" done IFS="$save_ifs" arg=`$echo "X$arg" | $Xsed -e "s/^ //"` ;; -Wl,*) args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wl,//'` arg= save_ifs="$IFS"; IFS=',' for flag in $args; do IFS="$save_ifs" case $flag in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") flag="\"$flag\"" ;; esac arg="$arg $wl$flag" compiler_flags="$compiler_flags $wl$flag" linker_flags="$linker_flags $flag" done IFS="$save_ifs" arg=`$echo "X$arg" | $Xsed -e "s/^ //"` ;; -Xcompiler) prev=xcompiler continue ;; -Xlinker) prev=xlinker continue ;; -XCClinker) prev=xcclinker continue ;; # Some other compiler flag. -* | +*) # Unknown arguments in both finalize_command and compile_command need # to be aesthetically quoted because they are evaled later. arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` case $arg in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") arg="\"$arg\"" ;; esac ;; *.$objext) # A standard object. objs="$objs $arg" ;; *.lo) # A libtool-controlled object. # Check to see that this really is a libtool object. if (${SED} -e '2q' $arg | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then pic_object= non_pic_object= # Read the .lo file # If there is no directory component, then add one. case $arg in */* | *\\*) . $arg ;; *) . ./$arg ;; esac if test -z "$pic_object" || \ test -z "$non_pic_object" || test "$pic_object" = none && \ test "$non_pic_object" = none; then $echo "$modename: cannot find name of object for \`$arg'" 1>&2 exit $EXIT_FAILURE fi # Extract subdirectory from the argument. xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'` if test "X$xdir" = "X$arg"; then xdir= else xdir="$xdir/" fi if test "$pic_object" != none; then # Prepend the subdirectory the object is found in. pic_object="$xdir$pic_object" if test "$prev" = dlfiles; then if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then dlfiles="$dlfiles $pic_object" prev= continue else # If libtool objects are unsupported, then we need to preload. prev=dlprefiles fi fi # CHECK ME: I think I busted this. -Ossama if test "$prev" = dlprefiles; then # Preload the old-style object. dlprefiles="$dlprefiles $pic_object" prev= fi # A PIC object. libobjs="$libobjs $pic_object" arg="$pic_object" fi # Non-PIC object. if test "$non_pic_object" != none; then # Prepend the subdirectory the object is found in. non_pic_object="$xdir$non_pic_object" # A standard non-PIC object non_pic_objects="$non_pic_objects $non_pic_object" if test -z "$pic_object" || test "$pic_object" = none ; then arg="$non_pic_object" fi else # If the PIC object exists, use it instead. # $xdir was prepended to $pic_object above. non_pic_object="$pic_object" non_pic_objects="$non_pic_objects $non_pic_object" fi else # Only an error if not doing a dry-run. if test -z "$run"; then $echo "$modename: \`$arg' is not a valid libtool object" 1>&2 exit $EXIT_FAILURE else # Dry-run case. # Extract subdirectory from the argument. xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'` if test "X$xdir" = "X$arg"; then xdir= else xdir="$xdir/" fi pic_object=`$echo "X${xdir}${objdir}/${arg}" | $Xsed -e "$lo2o"` non_pic_object=`$echo "X${xdir}${arg}" | $Xsed -e "$lo2o"` libobjs="$libobjs $pic_object" non_pic_objects="$non_pic_objects $non_pic_object" fi fi ;; *.$libext) # An archive. deplibs="$deplibs $arg" old_deplibs="$old_deplibs $arg" continue ;; *.la) # A libtool-controlled library. if test "$prev" = dlfiles; then # This library was specified with -dlopen. dlfiles="$dlfiles $arg" prev= elif test "$prev" = dlprefiles; then # The library was specified with -dlpreopen. dlprefiles="$dlprefiles $arg" prev= else deplibs="$deplibs $arg" fi continue ;; # Some other compiler argument. *) # Unknown arguments in both finalize_command and compile_command need # to be aesthetically quoted because they are evaled later. arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` case $arg in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") arg="\"$arg\"" ;; esac ;; esac # arg # Now actually substitute the argument into the commands. if test -n "$arg"; then compile_command="$compile_command $arg" finalize_command="$finalize_command $arg" fi done # argument parsing loop if test -n "$prev"; then $echo "$modename: the \`$prevarg' option requires an argument" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE fi if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then eval arg=\"$export_dynamic_flag_spec\" compile_command="$compile_command $arg" finalize_command="$finalize_command $arg" fi oldlibs= # calculate the name of the file, without its directory outputname=`$echo "X$output" | $Xsed -e 's%^.*/%%'` libobjs_save="$libobjs" if test -n "$shlibpath_var"; then # get the directories listed in $shlibpath_var eval shlib_search_path=\`\$echo \"X\${$shlibpath_var}\" \| \$Xsed -e \'s/:/ /g\'\` else shlib_search_path= fi eval sys_lib_search_path=\"$sys_lib_search_path_spec\" eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\" output_objdir=`$echo "X$output" | $Xsed -e 's%/[^/]*$%%'` if test "X$output_objdir" = "X$output"; then output_objdir="$objdir" else output_objdir="$output_objdir/$objdir" fi # Create the object directory. if test ! -d "$output_objdir"; then $show "$mkdir $output_objdir" $run $mkdir $output_objdir exit_status=$? if test "$exit_status" -ne 0 && test ! -d "$output_objdir"; then exit $exit_status fi fi # Determine the type of output case $output in "") $echo "$modename: you must specify an output file" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE ;; *.$libext) linkmode=oldlib ;; *.lo | *.$objext) linkmode=obj ;; *.la) linkmode=lib ;; *) linkmode=prog ;; # Anything else should be a program. esac case $host in *cygwin* | *mingw* | *pw32*) # don't eliminate duplications in $postdeps and $predeps duplicate_compiler_generated_deps=yes ;; *) duplicate_compiler_generated_deps=$duplicate_deps ;; esac specialdeplibs= libs= # Find all interdependent deplibs by searching for libraries # that are linked more than once (e.g. -la -lb -la) for deplib in $deplibs; do if test "X$duplicate_deps" = "Xyes" ; then case "$libs " in *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; esac fi libs="$libs $deplib" done if test "$linkmode" = lib; then libs="$predeps $libs $compiler_lib_search_path $postdeps" # Compute libraries that are listed more than once in $predeps # $postdeps and mark them as special (i.e., whose duplicates are # not to be eliminated). pre_post_deps= if test "X$duplicate_compiler_generated_deps" = "Xyes" ; then for pre_post_dep in $predeps $postdeps; do case "$pre_post_deps " in *" $pre_post_dep "*) specialdeplibs="$specialdeplibs $pre_post_deps" ;; esac pre_post_deps="$pre_post_deps $pre_post_dep" done fi pre_post_deps= fi deplibs= newdependency_libs= newlib_search_path= need_relink=no # whether we're linking any uninstalled libtool libraries notinst_deplibs= # not-installed libtool libraries case $linkmode in lib) passes="conv link" for file in $dlfiles $dlprefiles; do case $file in *.la) ;; *) $echo "$modename: libraries can \`-dlopen' only libtool libraries: $file" 1>&2 exit $EXIT_FAILURE ;; esac done ;; prog) compile_deplibs= finalize_deplibs= alldeplibs=no newdlfiles= newdlprefiles= passes="conv scan dlopen dlpreopen link" ;; *) passes="conv" ;; esac for pass in $passes; do if test "$linkmode,$pass" = "lib,link" || test "$linkmode,$pass" = "prog,scan"; then libs="$deplibs" deplibs= fi if test "$linkmode" = prog; then case $pass in dlopen) libs="$dlfiles" ;; dlpreopen) libs="$dlprefiles" ;; link) libs="$deplibs %DEPLIBS% $dependency_libs" ;; esac fi if test "$pass" = dlopen; then # Collect dlpreopened libraries save_deplibs="$deplibs" deplibs= fi for deplib in $libs; do lib= found=no case $deplib in -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe|-threads) if test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else compiler_flags="$compiler_flags $deplib" fi continue ;; -l*) if test "$linkmode" != lib && test "$linkmode" != prog; then $echo "$modename: warning: \`-l' is ignored for archives/objects" 1>&2 continue fi name=`$echo "X$deplib" | $Xsed -e 's/^-l//'` for searchdir in $newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path; do for search_ext in .la $std_shrext .so .a; do # Search the libtool library lib="$searchdir/lib${name}${search_ext}" if test -f "$lib"; then if test "$search_ext" = ".la"; then found=yes else found=no fi break 2 fi done done if test "$found" != yes; then # deplib doesn't seem to be a libtool library if test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else deplibs="$deplib $deplibs" test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs" fi continue else # deplib is a libtool library # If $allow_libtool_libs_with_static_runtimes && $deplib is a stdlib, # We need to do some special things here, and not later. if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then case " $predeps $postdeps " in *" $deplib "*) if (${SED} -e '2q' $lib | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then library_names= old_library= case $lib in */* | *\\*) . $lib ;; *) . ./$lib ;; esac for l in $old_library $library_names; do ll="$l" done if test "X$ll" = "X$old_library" ; then # only static version available found=no ladir=`$echo "X$lib" | $Xsed -e 's%/[^/]*$%%'` test "X$ladir" = "X$lib" && ladir="." lib=$ladir/$old_library if test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else deplibs="$deplib $deplibs" test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs" fi continue fi fi ;; *) ;; esac fi fi ;; # -l -L*) case $linkmode in lib) deplibs="$deplib $deplibs" test "$pass" = conv && continue newdependency_libs="$deplib $newdependency_libs" newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'` ;; prog) if test "$pass" = conv; then deplibs="$deplib $deplibs" continue fi if test "$pass" = scan; then deplibs="$deplib $deplibs" else compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" fi newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'` ;; *) $echo "$modename: warning: \`-L' is ignored for archives/objects" 1>&2 ;; esac # linkmode continue ;; # -L -R*) if test "$pass" = link; then dir=`$echo "X$deplib" | $Xsed -e 's/^-R//'` # Make sure the xrpath contains only unique directories. case "$xrpath " in *" $dir "*) ;; *) xrpath="$xrpath $dir" ;; esac fi deplibs="$deplib $deplibs" continue ;; *.la) lib="$deplib" ;; *.$libext) if test "$pass" = conv; then deplibs="$deplib $deplibs" continue fi case $linkmode in lib) valid_a_lib=no case $deplibs_check_method in match_pattern*) set dummy $deplibs_check_method match_pattern_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"` if eval $echo \"$deplib\" 2>/dev/null \ | $SED 10q \ | $EGREP "$match_pattern_regex" > /dev/null; then valid_a_lib=yes fi ;; pass_all) valid_a_lib=yes ;; esac if test "$valid_a_lib" != yes; then $echo $echo "*** Warning: Trying to link with static lib archive $deplib." $echo "*** I have the capability to make that library automatically link in when" $echo "*** you link to this library. But I can only do this if you have a" $echo "*** shared version of the library, which you do not appear to have" $echo "*** because the file extensions .$libext of this argument makes me believe" $echo "*** that it is just a static archive that I should not used here." else $echo $echo "*** Warning: Linking the shared library $output against the" $echo "*** static library $deplib is not portable!" deplibs="$deplib $deplibs" fi continue ;; prog) if test "$pass" != link; then deplibs="$deplib $deplibs" else compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" fi continue ;; esac # linkmode ;; # *.$libext *.lo | *.$objext) if test "$pass" = conv; then deplibs="$deplib $deplibs" elif test "$linkmode" = prog; then if test "$pass" = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then # If there is no dlopen support or we're linking statically, # we need to preload. newdlprefiles="$newdlprefiles $deplib" compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else newdlfiles="$newdlfiles $deplib" fi fi continue ;; %DEPLIBS%) alldeplibs=yes continue ;; esac # case $deplib if test "$found" = yes || test -f "$lib"; then : else $echo "$modename: cannot find the library \`$lib' or unhandled argument \`$deplib'" 1>&2 exit $EXIT_FAILURE fi # Check to see that this really is a libtool archive. if (${SED} -e '2q' $lib | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then : else $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 exit $EXIT_FAILURE fi ladir=`$echo "X$lib" | $Xsed -e 's%/[^/]*$%%'` test "X$ladir" = "X$lib" && ladir="." dlname= dlopen= dlpreopen= libdir= library_names= old_library= # If the library was installed with an old release of libtool, # it will not redefine variables installed, or shouldnotlink installed=yes shouldnotlink=no avoidtemprpath= # Read the .la file case $lib in */* | *\\*) . $lib ;; *) . ./$lib ;; esac if test "$linkmode,$pass" = "lib,link" || test "$linkmode,$pass" = "prog,scan" || { test "$linkmode" != prog && test "$linkmode" != lib; }; then test -n "$dlopen" && dlfiles="$dlfiles $dlopen" test -n "$dlpreopen" && dlprefiles="$dlprefiles $dlpreopen" fi if test "$pass" = conv; then # Only check for convenience libraries deplibs="$lib $deplibs" if test -z "$libdir"; then if test -z "$old_library"; then $echo "$modename: cannot find name of link library for \`$lib'" 1>&2 exit $EXIT_FAILURE fi # It is a libtool convenience library, so add in its objects. convenience="$convenience $ladir/$objdir/$old_library" old_convenience="$old_convenience $ladir/$objdir/$old_library" tmp_libs= for deplib in $dependency_libs; do deplibs="$deplib $deplibs" if test "X$duplicate_deps" = "Xyes" ; then case "$tmp_libs " in *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; esac fi tmp_libs="$tmp_libs $deplib" done elif test "$linkmode" != prog && test "$linkmode" != lib; then $echo "$modename: \`$lib' is not a convenience library" 1>&2 exit $EXIT_FAILURE fi continue fi # $pass = conv # Get the name of the library we link against. linklib= for l in $old_library $library_names; do linklib="$l" done if test -z "$linklib"; then $echo "$modename: cannot find name of link library for \`$lib'" 1>&2 exit $EXIT_FAILURE fi # This library was specified with -dlopen. if test "$pass" = dlopen; then if test -z "$libdir"; then $echo "$modename: cannot -dlopen a convenience library: \`$lib'" 1>&2 exit $EXIT_FAILURE fi if test -z "$dlname" || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then # If there is no dlname, no dlopen support or we're linking # statically, we need to preload. We also need to preload any # dependent libraries so libltdl's deplib preloader doesn't # bomb out in the load deplibs phase. dlprefiles="$dlprefiles $lib $dependency_libs" else newdlfiles="$newdlfiles $lib" fi continue fi # $pass = dlopen # We need an absolute path. case $ladir in [\\/]* | [A-Za-z]:[\\/]*) abs_ladir="$ladir" ;; *) abs_ladir=`cd "$ladir" && pwd` if test -z "$abs_ladir"; then $echo "$modename: warning: cannot determine absolute directory name of \`$ladir'" 1>&2 $echo "$modename: passing it literally to the linker, although it might fail" 1>&2 abs_ladir="$ladir" fi ;; esac laname=`$echo "X$lib" | $Xsed -e 's%^.*/%%'` # Find the relevant object directory and library name. if test "X$installed" = Xyes; then if test ! -f "$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then $echo "$modename: warning: library \`$lib' was moved." 1>&2 dir="$ladir" absdir="$abs_ladir" libdir="$abs_ladir" else dir="$libdir" absdir="$libdir" fi test "X$hardcode_automatic" = Xyes && avoidtemprpath=yes else if test ! -f "$ladir/$objdir/$linklib" && test -f "$abs_ladir/$linklib"; then dir="$ladir" absdir="$abs_ladir" # Remove this search path later notinst_path="$notinst_path $abs_ladir" else dir="$ladir/$objdir" absdir="$abs_ladir/$objdir" # Remove this search path later notinst_path="$notinst_path $abs_ladir" fi fi # $installed = yes name=`$echo "X$laname" | $Xsed -e 's/\.la$//' -e 's/^lib//'` # This library was specified with -dlpreopen. if test "$pass" = dlpreopen; then if test -z "$libdir"; then $echo "$modename: cannot -dlpreopen a convenience library: \`$lib'" 1>&2 exit $EXIT_FAILURE fi # Prefer using a static library (so that no silly _DYNAMIC symbols # are required to link). if test -n "$old_library"; then newdlprefiles="$newdlprefiles $dir/$old_library" # Otherwise, use the dlname, so that lt_dlopen finds it. elif test -n "$dlname"; then newdlprefiles="$newdlprefiles $dir/$dlname" else newdlprefiles="$newdlprefiles $dir/$linklib" fi fi # $pass = dlpreopen if test -z "$libdir"; then # Link the convenience library if test "$linkmode" = lib; then deplibs="$dir/$old_library $deplibs" elif test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$dir/$old_library $compile_deplibs" finalize_deplibs="$dir/$old_library $finalize_deplibs" else deplibs="$lib $deplibs" # used for prog,scan pass fi continue fi if test "$linkmode" = prog && test "$pass" != link; then newlib_search_path="$newlib_search_path $ladir" deplibs="$lib $deplibs" linkalldeplibs=no if test "$link_all_deplibs" != no || test -z "$library_names" || test "$build_libtool_libs" = no; then linkalldeplibs=yes fi tmp_libs= for deplib in $dependency_libs; do case $deplib in -L*) newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`;; ### testsuite: skip nested quoting test esac # Need to link against all dependency_libs? if test "$linkalldeplibs" = yes; then deplibs="$deplib $deplibs" else # Need to hardcode shared library paths # or/and link against static libraries newdependency_libs="$deplib $newdependency_libs" fi if test "X$duplicate_deps" = "Xyes" ; then case "$tmp_libs " in *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; esac fi tmp_libs="$tmp_libs $deplib" done # for deplib continue fi # $linkmode = prog... if test "$linkmode,$pass" = "prog,link"; then if test -n "$library_names" && { { test "$prefer_static_libs" = no || test "$prefer_static_libs,$installed" = "built,yes"; } || test -z "$old_library"; }; then # We need to hardcode the library path if test -n "$shlibpath_var" && test -z "$avoidtemprpath" ; then # Make sure the rpath contains only unique directories. case "$temp_rpath " in *" $dir "*) ;; *" $absdir "*) ;; *) temp_rpath="$temp_rpath $absdir" ;; esac fi # Hardcode the library path. # Skip directories that are in the system default run-time # search path. case " $sys_lib_dlsearch_path " in *" $absdir "*) ;; *) case "$compile_rpath " in *" $absdir "*) ;; *) compile_rpath="$compile_rpath $absdir" esac ;; esac case " $sys_lib_dlsearch_path " in *" $libdir "*) ;; *) case "$finalize_rpath " in *" $libdir "*) ;; *) finalize_rpath="$finalize_rpath $libdir" esac ;; esac fi # $linkmode,$pass = prog,link... if test "$alldeplibs" = yes && { test "$deplibs_check_method" = pass_all || { test "$build_libtool_libs" = yes && test -n "$library_names"; }; }; then # We only need to search for static libraries continue fi fi link_static=no # Whether the deplib will be linked statically use_static_libs=$prefer_static_libs if test "$use_static_libs" = built && test "$installed" = yes ; then use_static_libs=no fi if test -n "$library_names" && { test "$use_static_libs" = no || test -z "$old_library"; }; then if test "$installed" = no; then notinst_deplibs="$notinst_deplibs $lib" need_relink=yes fi # This is a shared library # Warn about portability, can't link against -module's on # some systems (darwin) if test "$shouldnotlink" = yes && test "$pass" = link ; then $echo if test "$linkmode" = prog; then $echo "*** Warning: Linking the executable $output against the loadable module" else $echo "*** Warning: Linking the shared library $output against the loadable module" fi $echo "*** $linklib is not portable!" fi if test "$linkmode" = lib && test "$hardcode_into_libs" = yes; then # Hardcode the library path. # Skip directories that are in the system default run-time # search path. case " $sys_lib_dlsearch_path " in *" $absdir "*) ;; *) case "$compile_rpath " in *" $absdir "*) ;; *) compile_rpath="$compile_rpath $absdir" esac ;; esac case " $sys_lib_dlsearch_path " in *" $libdir "*) ;; *) case "$finalize_rpath " in *" $libdir "*) ;; *) finalize_rpath="$finalize_rpath $libdir" esac ;; esac fi if test -n "$old_archive_from_expsyms_cmds"; then # figure out the soname set dummy $library_names realname="$2" shift; shift libname=`eval \\$echo \"$libname_spec\"` # use dlname if we got it. it's perfectly good, no? if test -n "$dlname"; then soname="$dlname" elif test -n "$soname_spec"; then # bleh windows case $host in *cygwin* | mingw*) major=`expr $current - $age` versuffix="-$major" ;; esac eval soname=\"$soname_spec\" else soname="$realname" fi # Make a new name for the extract_expsyms_cmds to use soroot="$soname" soname=`$echo $soroot | ${SED} -e 's/^.*\///'` newlib="libimp-`$echo $soname | ${SED} 's/^lib//;s/\.dll$//'`.a" # If the library has no export list, then create one now if test -f "$output_objdir/$soname-def"; then : else $show "extracting exported symbol list from \`$soname'" save_ifs="$IFS"; IFS='~' cmds=$extract_expsyms_cmds for cmd in $cmds; do IFS="$save_ifs" eval cmd=\"$cmd\" $show "$cmd" $run eval "$cmd" || exit $? done IFS="$save_ifs" fi # Create $newlib if test -f "$output_objdir/$newlib"; then :; else $show "generating import library for \`$soname'" save_ifs="$IFS"; IFS='~' cmds=$old_archive_from_expsyms_cmds for cmd in $cmds; do IFS="$save_ifs" eval cmd=\"$cmd\" $show "$cmd" $run eval "$cmd" || exit $? done IFS="$save_ifs" fi # make sure the library variables are pointing to the new library dir=$output_objdir linklib=$newlib fi # test -n "$old_archive_from_expsyms_cmds" if test "$linkmode" = prog || test "$mode" != relink; then add_shlibpath= add_dir= add= lib_linked=yes case $hardcode_action in immediate | unsupported) if test "$hardcode_direct" = no; then add="$dir/$linklib" case $host in *-*-sco3.2v5.0.[024]*) add_dir="-L$dir" ;; *-*-sysv4*uw2*) add_dir="-L$dir" ;; *-*-sysv5OpenUNIX* | *-*-sysv5UnixWare7.[01].[10]* | \ *-*-unixware7*) add_dir="-L$dir" ;; *-*-darwin* ) # if the lib is a module then we can not link against # it, someone is ignoring the new warnings I added if /usr/bin/file -L $add 2> /dev/null | $EGREP ": [^:]* bundle" >/dev/null ; then $echo "** Warning, lib $linklib is a module, not a shared library" if test -z "$old_library" ; then $echo $echo "** And there doesn't seem to be a static archive available" $echo "** The link will probably fail, sorry" else add="$dir/$old_library" fi fi esac elif test "$hardcode_minus_L" = no; then case $host in *-*-sunos*) add_shlibpath="$dir" ;; esac add_dir="-L$dir" add="-l$name" elif test "$hardcode_shlibpath_var" = no; then add_shlibpath="$dir" add="-l$name" else lib_linked=no fi ;; relink) if test "$hardcode_direct" = yes; then add="$dir/$linklib" elif test "$hardcode_minus_L" = yes; then add_dir="-L$dir" # Try looking first in the location we're being installed to. if test -n "$inst_prefix_dir"; then case $libdir in [\\/]*) add_dir="$add_dir -L$inst_prefix_dir$libdir" ;; esac fi add="-l$name" elif test "$hardcode_shlibpath_var" = yes; then add_shlibpath="$dir" add="-l$name" else lib_linked=no fi ;; *) lib_linked=no ;; esac if test "$lib_linked" != yes; then $echo "$modename: configuration error: unsupported hardcode properties" exit $EXIT_FAILURE fi if test -n "$add_shlibpath"; then case :$compile_shlibpath: in *":$add_shlibpath:"*) ;; *) compile_shlibpath="$compile_shlibpath$add_shlibpath:" ;; esac fi if test "$linkmode" = prog; then test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs" test -n "$add" && compile_deplibs="$add $compile_deplibs" else test -n "$add_dir" && deplibs="$add_dir $deplibs" test -n "$add" && deplibs="$add $deplibs" if test "$hardcode_direct" != yes && \ test "$hardcode_minus_L" != yes && \ test "$hardcode_shlibpath_var" = yes; then case :$finalize_shlibpath: in *":$libdir:"*) ;; *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;; esac fi fi fi if test "$linkmode" = prog || test "$mode" = relink; then add_shlibpath= add_dir= add= # Finalize command for both is simple: just hardcode it. if test "$hardcode_direct" = yes; then add="$libdir/$linklib" elif test "$hardcode_minus_L" = yes; then add_dir="-L$libdir" add="-l$name" elif test "$hardcode_shlibpath_var" = yes; then case :$finalize_shlibpath: in *":$libdir:"*) ;; *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;; esac add="-l$name" elif test "$hardcode_automatic" = yes; then if test -n "$inst_prefix_dir" && test -f "$inst_prefix_dir$libdir/$linklib" ; then add="$inst_prefix_dir$libdir/$linklib" else add="$libdir/$linklib" fi else # We cannot seem to hardcode it, guess we'll fake it. add_dir="-L$libdir" # Try looking first in the location we're being installed to. if test -n "$inst_prefix_dir"; then case $libdir in [\\/]*) add_dir="$add_dir -L$inst_prefix_dir$libdir" ;; esac fi add="-l$name" fi if test "$linkmode" = prog; then test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_deplibs" test -n "$add" && finalize_deplibs="$add $finalize_deplibs" else test -n "$add_dir" && deplibs="$add_dir $deplibs" test -n "$add" && deplibs="$add $deplibs" fi fi elif test "$linkmode" = prog; then # Here we assume that one of hardcode_direct or hardcode_minus_L # is not unsupported. This is valid on all known static and # shared platforms. if test "$hardcode_direct" != unsupported; then test -n "$old_library" && linklib="$old_library" compile_deplibs="$dir/$linklib $compile_deplibs" finalize_deplibs="$dir/$linklib $finalize_deplibs" else compile_deplibs="-l$name -L$dir $compile_deplibs" finalize_deplibs="-l$name -L$dir $finalize_deplibs" fi elif test "$build_libtool_libs" = yes; then # Not a shared library if test "$deplibs_check_method" != pass_all; then # We're trying link a shared library against a static one # but the system doesn't support it. # Just print a warning and add the library to dependency_libs so # that the program can be linked against the static library. $echo $echo "*** Warning: This system can not link to static lib archive $lib." $echo "*** I have the capability to make that library automatically link in when" $echo "*** you link to this library. But I can only do this if you have a" $echo "*** shared version of the library, which you do not appear to have." if test "$module" = yes; then $echo "*** But as you try to build a module library, libtool will still create " $echo "*** a static module, that should work as long as the dlopening application" $echo "*** is linked with the -dlopen flag to resolve symbols at runtime." if test -z "$global_symbol_pipe"; then $echo $echo "*** However, this would only work if libtool was able to extract symbol" $echo "*** lists from a program, using \`nm' or equivalent, but libtool could" $echo "*** not find such a program. So, this module is probably useless." $echo "*** \`nm' from GNU binutils and a full rebuild may help." fi if test "$build_old_libs" = no; then build_libtool_libs=module build_old_libs=yes else build_libtool_libs=no fi fi else deplibs="$dir/$old_library $deplibs" link_static=yes fi fi # link shared/static library? if test "$linkmode" = lib; then if test -n "$dependency_libs" && { test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes || test "$link_static" = yes; }; then # Extract -R from dependency_libs temp_deplibs= for libdir in $dependency_libs; do case $libdir in -R*) temp_xrpath=`$echo "X$libdir" | $Xsed -e 's/^-R//'` case " $xrpath " in *" $temp_xrpath "*) ;; *) xrpath="$xrpath $temp_xrpath";; esac;; *) temp_deplibs="$temp_deplibs $libdir";; esac done dependency_libs="$temp_deplibs" fi newlib_search_path="$newlib_search_path $absdir" # Link against this library test "$link_static" = no && newdependency_libs="$abs_ladir/$laname $newdependency_libs" # ... and its dependency_libs tmp_libs= for deplib in $dependency_libs; do newdependency_libs="$deplib $newdependency_libs" if test "X$duplicate_deps" = "Xyes" ; then case "$tmp_libs " in *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; esac fi tmp_libs="$tmp_libs $deplib" done if test "$link_all_deplibs" != no; then # Add the search paths of all dependency libraries for deplib in $dependency_libs; do case $deplib in -L*) path="$deplib" ;; *.la) dir=`$echo "X$deplib" | $Xsed -e 's%/[^/]*$%%'` test "X$dir" = "X$deplib" && dir="." # We need an absolute path. case $dir in [\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;; *) absdir=`cd "$dir" && pwd` if test -z "$absdir"; then $echo "$modename: warning: cannot determine absolute directory name of \`$dir'" 1>&2 absdir="$dir" fi ;; esac if grep "^installed=no" $deplib > /dev/null; then path="$absdir/$objdir" else eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` if test -z "$libdir"; then $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2 exit $EXIT_FAILURE fi if test "$absdir" != "$libdir"; then $echo "$modename: warning: \`$deplib' seems to be moved" 1>&2 fi path="$absdir" fi depdepl= case $host in *-*-darwin*) # we do not want to link against static libs, # but need to link against shared eval deplibrary_names=`${SED} -n -e 's/^library_names=\(.*\)$/\1/p' $deplib` if test -n "$deplibrary_names" ; then for tmp in $deplibrary_names ; do depdepl=$tmp done if test -f "$path/$depdepl" ; then depdepl="$path/$depdepl" fi # do not add paths which are already there case " $newlib_search_path " in *" $path "*) ;; *) newlib_search_path="$newlib_search_path $path";; esac fi path="" ;; *) path="-L$path" ;; esac ;; -l*) case $host in *-*-darwin*) # Again, we only want to link against shared libraries eval tmp_libs=`$echo "X$deplib" | $Xsed -e "s,^\-l,,"` for tmp in $newlib_search_path ; do if test -f "$tmp/lib$tmp_libs.dylib" ; then eval depdepl="$tmp/lib$tmp_libs.dylib" break fi done path="" ;; *) continue ;; esac ;; *) continue ;; esac case " $deplibs " in *" $path "*) ;; *) deplibs="$path $deplibs" ;; esac case " $deplibs " in *" $depdepl "*) ;; *) deplibs="$depdepl $deplibs" ;; esac done fi # link_all_deplibs != no fi # linkmode = lib done # for deplib in $libs dependency_libs="$newdependency_libs" if test "$pass" = dlpreopen; then # Link the dlpreopened libraries before other libraries for deplib in $save_deplibs; do deplibs="$deplib $deplibs" done fi if test "$pass" != dlopen; then if test "$pass" != conv; then # Make sure lib_search_path contains only unique directories. lib_search_path= for dir in $newlib_search_path; do case "$lib_search_path " in *" $dir "*) ;; *) lib_search_path="$lib_search_path $dir" ;; esac done newlib_search_path= fi if test "$linkmode,$pass" != "prog,link"; then vars="deplibs" else vars="compile_deplibs finalize_deplibs" fi for var in $vars dependency_libs; do # Add libraries to $var in reverse order eval tmp_libs=\"\$$var\" new_libs= for deplib in $tmp_libs; do # FIXME: Pedantically, this is the right thing to do, so # that some nasty dependency loop isn't accidentally # broken: #new_libs="$deplib $new_libs" # Pragmatically, this seems to cause very few problems in # practice: case $deplib in -L*) new_libs="$deplib $new_libs" ;; -R*) ;; *) # And here is the reason: when a library appears more # than once as an explicit dependence of a library, or # is implicitly linked in more than once by the # compiler, it is considered special, and multiple # occurrences thereof are not removed. Compare this # with having the same library being listed as a # dependency of multiple other libraries: in this case, # we know (pedantically, we assume) the library does not # need to be listed more than once, so we keep only the # last copy. This is not always right, but it is rare # enough that we require users that really mean to play # such unportable linking tricks to link the library # using -Wl,-lname, so that libtool does not consider it # for duplicate removal. case " $specialdeplibs " in *" $deplib "*) new_libs="$deplib $new_libs" ;; *) case " $new_libs " in *" $deplib "*) ;; *) new_libs="$deplib $new_libs" ;; esac ;; esac ;; esac done tmp_libs= for deplib in $new_libs; do case $deplib in -L*) case " $tmp_libs " in *" $deplib "*) ;; *) tmp_libs="$tmp_libs $deplib" ;; esac ;; *) tmp_libs="$tmp_libs $deplib" ;; esac done eval $var=\"$tmp_libs\" done # for var fi # Last step: remove runtime libs from dependency_libs # (they stay in deplibs) tmp_libs= for i in $dependency_libs ; do case " $predeps $postdeps $compiler_lib_search_path " in *" $i "*) i="" ;; esac if test -n "$i" ; then tmp_libs="$tmp_libs $i" fi done dependency_libs=$tmp_libs done # for pass if test "$linkmode" = prog; then dlfiles="$newdlfiles" dlprefiles="$newdlprefiles" fi case $linkmode in oldlib) if test -n "$deplibs"; then $echo "$modename: warning: \`-l' and \`-L' are ignored for archives" 1>&2 fi if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then $echo "$modename: warning: \`-dlopen' is ignored for archives" 1>&2 fi if test -n "$rpath"; then $echo "$modename: warning: \`-rpath' is ignored for archives" 1>&2 fi if test -n "$xrpath"; then $echo "$modename: warning: \`-R' is ignored for archives" 1>&2 fi if test -n "$vinfo"; then $echo "$modename: warning: \`-version-info/-version-number' is ignored for archives" 1>&2 fi if test -n "$release"; then $echo "$modename: warning: \`-release' is ignored for archives" 1>&2 fi if test -n "$export_symbols" || test -n "$export_symbols_regex"; then $echo "$modename: warning: \`-export-symbols' is ignored for archives" 1>&2 fi # Now set the variables for building old libraries. build_libtool_libs=no oldlibs="$output" objs="$objs$old_deplibs" ;; lib) # Make sure we only generate libraries of the form `libNAME.la'. case $outputname in lib*) name=`$echo "X$outputname" | $Xsed -e 's/\.la$//' -e 's/^lib//'` eval shared_ext=\"$shrext_cmds\" eval libname=\"$libname_spec\" ;; *) if test "$module" = no; then $echo "$modename: libtool library \`$output' must begin with \`lib'" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE fi if test "$need_lib_prefix" != no; then # Add the "lib" prefix for modules if required name=`$echo "X$outputname" | $Xsed -e 's/\.la$//'` eval shared_ext=\"$shrext_cmds\" eval libname=\"$libname_spec\" else libname=`$echo "X$outputname" | $Xsed -e 's/\.la$//'` fi ;; esac if test -n "$objs"; then if test "$deplibs_check_method" != pass_all; then $echo "$modename: cannot build libtool library \`$output' from non-libtool objects on this host:$objs" 2>&1 exit $EXIT_FAILURE else $echo $echo "*** Warning: Linking the shared library $output against the non-libtool" $echo "*** objects $objs is not portable!" libobjs="$libobjs $objs" fi fi if test "$dlself" != no; then $echo "$modename: warning: \`-dlopen self' is ignored for libtool libraries" 1>&2 fi set dummy $rpath if test "$#" -gt 2; then $echo "$modename: warning: ignoring multiple \`-rpath's for a libtool library" 1>&2 fi install_libdir="$2" oldlibs= if test -z "$rpath"; then if test "$build_libtool_libs" = yes; then # Building a libtool convenience library. # Some compilers have problems with a `.al' extension so # convenience libraries should have the same extension an # archive normally would. oldlibs="$output_objdir/$libname.$libext $oldlibs" build_libtool_libs=convenience build_old_libs=yes fi if test -n "$vinfo"; then $echo "$modename: warning: \`-version-info/-version-number' is ignored for convenience libraries" 1>&2 fi if test -n "$release"; then $echo "$modename: warning: \`-release' is ignored for convenience libraries" 1>&2 fi else # Parse the version information argument. save_ifs="$IFS"; IFS=':' set dummy $vinfo 0 0 0 IFS="$save_ifs" if test -n "$8"; then $echo "$modename: too many parameters to \`-version-info'" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE fi # convert absolute version numbers to libtool ages # this retains compatibility with .la files and attempts # to make the code below a bit more comprehensible case $vinfo_number in yes) number_major="$2" number_minor="$3" number_revision="$4" # # There are really only two kinds -- those that # use the current revision as the major version # and those that subtract age and use age as # a minor version. But, then there is irix # which has an extra 1 added just for fun # case $version_type in darwin|linux|osf|windows|none) current=`expr $number_major + $number_minor` age="$number_minor" revision="$number_revision" ;; freebsd-aout|freebsd-elf|sunos) current="$number_major" revision="$number_minor" age="0" ;; irix|nonstopux) current=`expr $number_major + $number_minor` age="$number_minor" revision="$number_minor" lt_irix_increment=no ;; esac ;; no) current="$2" revision="$3" age="$4" ;; esac # Check that each of the things are valid numbers. case $current in 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; *) $echo "$modename: CURRENT \`$current' must be a nonnegative integer" 1>&2 $echo "$modename: \`$vinfo' is not valid version information" 1>&2 exit $EXIT_FAILURE ;; esac case $revision in 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; *) $echo "$modename: REVISION \`$revision' must be a nonnegative integer" 1>&2 $echo "$modename: \`$vinfo' is not valid version information" 1>&2 exit $EXIT_FAILURE ;; esac case $age in 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; *) $echo "$modename: AGE \`$age' must be a nonnegative integer" 1>&2 $echo "$modename: \`$vinfo' is not valid version information" 1>&2 exit $EXIT_FAILURE ;; esac if test "$age" -gt "$current"; then $echo "$modename: AGE \`$age' is greater than the current interface number \`$current'" 1>&2 $echo "$modename: \`$vinfo' is not valid version information" 1>&2 exit $EXIT_FAILURE fi # Calculate the version variables. major= versuffix= verstring= case $version_type in none) ;; darwin) # Like Linux, but with the current version available in # verstring for coding it into the library header major=.`expr $current - $age` versuffix="$major.$age.$revision" # Darwin ld doesn't like 0 for these options... minor_current=`expr $current + 1` xlcverstring="${wl}-compatibility_version ${wl}$minor_current ${wl}-current_version ${wl}$minor_current.$revision" verstring="-compatibility_version $minor_current -current_version $minor_current.$revision" ;; freebsd-aout) major=".$current" versuffix=".$current.$revision"; ;; freebsd-elf) major=".$current" versuffix=".$current"; ;; irix | nonstopux) if test "X$lt_irix_increment" = "Xno"; then major=`expr $current - $age` else major=`expr $current - $age + 1` fi case $version_type in nonstopux) verstring_prefix=nonstopux ;; *) verstring_prefix=sgi ;; esac verstring="$verstring_prefix$major.$revision" # Add in all the interfaces that we are compatible with. loop=$revision while test "$loop" -ne 0; do iface=`expr $revision - $loop` loop=`expr $loop - 1` verstring="$verstring_prefix$major.$iface:$verstring" done # Before this point, $major must not contain `.'. major=.$major versuffix="$major.$revision" ;; linux) major=.`expr $current - $age` versuffix="$major.$age.$revision" ;; osf) major=.`expr $current - $age` versuffix=".$current.$age.$revision" verstring="$current.$age.$revision" # Add in all the interfaces that we are compatible with. loop=$age while test "$loop" -ne 0; do iface=`expr $current - $loop` loop=`expr $loop - 1` verstring="$verstring:${iface}.0" done # Make executables depend on our current version. verstring="$verstring:${current}.0" ;; sunos) major=".$current" versuffix=".$current.$revision" ;; windows) # Use '-' rather than '.', since we only want one # extension on DOS 8.3 filesystems. major=`expr $current - $age` versuffix="-$major" ;; *) $echo "$modename: unknown library version type \`$version_type'" 1>&2 $echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2 exit $EXIT_FAILURE ;; esac # Clear the version info if we defaulted, and they specified a release. if test -z "$vinfo" && test -n "$release"; then major= case $version_type in darwin) # we can't check for "0.0" in archive_cmds due to quoting # problems, so we reset it completely verstring= ;; *) verstring="0.0" ;; esac if test "$need_version" = no; then versuffix= else versuffix=".0.0" fi fi # Remove version info from name if versioning should be avoided if test "$avoid_version" = yes && test "$need_version" = no; then major= versuffix= verstring="" fi # Check to see if the archive will have undefined symbols. if test "$allow_undefined" = yes; then if test "$allow_undefined_flag" = unsupported; then $echo "$modename: warning: undefined symbols not allowed in $host shared libraries" 1>&2 build_libtool_libs=no build_old_libs=yes fi else # Don't allow undefined symbols. allow_undefined_flag="$no_undefined_flag" fi fi if test "$mode" != relink; then # Remove our outputs, but don't remove object files since they # may have been created when compiling PIC objects. removelist= tempremovelist=`$echo "$output_objdir/*"` for p in $tempremovelist; do case $p in *.$objext) ;; $output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/${libname}${release}.*) if test "X$precious_files_regex" != "X"; then if echo $p | $EGREP -e "$precious_files_regex" >/dev/null 2>&1 then continue fi fi removelist="$removelist $p" ;; *) ;; esac done if test -n "$removelist"; then $show "${rm}r $removelist" $run ${rm}r $removelist fi fi # Now set the variables for building old libraries. if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then oldlibs="$oldlibs $output_objdir/$libname.$libext" # Transform .lo files to .o files. oldobjs="$objs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e "$lo2o" | $NL2SP` fi # Eliminate all temporary directories. #for path in $notinst_path; do # lib_search_path=`$echo "$lib_search_path " | ${SED} -e "s% $path % %g"` # deplibs=`$echo "$deplibs " | ${SED} -e "s% -L$path % %g"` # dependency_libs=`$echo "$dependency_libs " | ${SED} -e "s% -L$path % %g"` #done if test -n "$xrpath"; then # If the user specified any rpath flags, then add them. temp_xrpath= for libdir in $xrpath; do temp_xrpath="$temp_xrpath -R$libdir" case "$finalize_rpath " in *" $libdir "*) ;; *) finalize_rpath="$finalize_rpath $libdir" ;; esac done if test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes; then dependency_libs="$temp_xrpath $dependency_libs" fi fi # Make sure dlfiles contains only unique files that won't be dlpreopened old_dlfiles="$dlfiles" dlfiles= for lib in $old_dlfiles; do case " $dlprefiles $dlfiles " in *" $lib "*) ;; *) dlfiles="$dlfiles $lib" ;; esac done # Make sure dlprefiles contains only unique files old_dlprefiles="$dlprefiles" dlprefiles= for lib in $old_dlprefiles; do case "$dlprefiles " in *" $lib "*) ;; *) dlprefiles="$dlprefiles $lib" ;; esac done if test "$build_libtool_libs" = yes; then if test -n "$rpath"; then case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos*) # these systems don't actually have a c library (as such)! ;; *-*-rhapsody* | *-*-darwin1.[012]) # Rhapsody C library is in the System framework deplibs="$deplibs -framework System" ;; *-*-netbsd*) # Don't link with libc until the a.out ld.so is fixed. ;; *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) # Do not include libc due to us having libc/libc_r. ;; *-*-sco3.2v5* | *-*-sco5v6*) # Causes problems with __ctype ;; *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) # Compiler inserts libc in the correct place for threads to work ;; *) # Add libc to deplibs on all other systems if necessary. if test "$build_libtool_need_lc" = "yes"; then deplibs="$deplibs -lc" fi ;; esac fi # Transform deplibs into only deplibs that can be linked in shared. name_save=$name libname_save=$libname release_save=$release versuffix_save=$versuffix major_save=$major # I'm not sure if I'm treating the release correctly. I think # release should show up in the -l (ie -lgmp5) so we don't want to # add it in twice. Is that correct? release="" versuffix="" major="" newdeplibs= droppeddeps=no case $deplibs_check_method in pass_all) # Don't check for shared/static. Everything works. # This might be a little naive. We might want to check # whether the library exists or not. But this is on # osf3 & osf4 and I'm not really sure... Just # implementing what was already the behavior. newdeplibs=$deplibs ;; test_compile) # This code stresses the "libraries are programs" paradigm to its # limits. Maybe even breaks it. We compile a program, linking it # against the deplibs as a proxy for the library. Then we can check # whether they linked in statically or dynamically with ldd. $rm conftest.c cat > conftest.c </dev/null` for potent_lib in $potential_libs; do # Follow soft links. if ls -lLd "$potent_lib" 2>/dev/null \ | grep " -> " >/dev/null; then continue fi # The statement above tries to avoid entering an # endless loop below, in case of cyclic links. # We might still enter an endless loop, since a link # loop can be closed while we follow links, # but so what? potlib="$potent_lib" while test -h "$potlib" 2>/dev/null; do potliblink=`ls -ld $potlib | ${SED} 's/.* -> //'` case $potliblink in [\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";; *) potlib=`$echo "X$potlib" | $Xsed -e 's,[^/]*$,,'`"$potliblink";; esac done if eval $file_magic_cmd \"\$potlib\" 2>/dev/null \ | ${SED} 10q \ | $EGREP "$file_magic_regex" > /dev/null; then newdeplibs="$newdeplibs $a_deplib" a_deplib="" break 2 fi done done fi if test -n "$a_deplib" ; then droppeddeps=yes $echo $echo "*** Warning: linker path does not have real file for library $a_deplib." $echo "*** I have the capability to make that library automatically link in when" $echo "*** you link to this library. But I can only do this if you have a" $echo "*** shared version of the library, which you do not appear to have" $echo "*** because I did check the linker path looking for a file starting" if test -z "$potlib" ; then $echo "*** with $libname but no candidates were found. (...for file magic test)" else $echo "*** with $libname and none of the candidates passed a file format test" $echo "*** using a file magic. Last file checked: $potlib" fi fi else # Add a -L argument. newdeplibs="$newdeplibs $a_deplib" fi done # Gone through all deplibs. ;; match_pattern*) set dummy $deplibs_check_method match_pattern_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"` for a_deplib in $deplibs; do name=`expr $a_deplib : '-l\(.*\)'` # If $name is empty we are operating on a -L argument. if test -n "$name" && test "$name" != "0"; then if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then case " $predeps $postdeps " in *" $a_deplib "*) newdeplibs="$newdeplibs $a_deplib" a_deplib="" ;; esac fi if test -n "$a_deplib" ; then libname=`eval \\$echo \"$libname_spec\"` for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do potential_libs=`ls $i/$libname[.-]* 2>/dev/null` for potent_lib in $potential_libs; do potlib="$potent_lib" # see symlink-check above in file_magic test if eval $echo \"$potent_lib\" 2>/dev/null \ | ${SED} 10q \ | $EGREP "$match_pattern_regex" > /dev/null; then newdeplibs="$newdeplibs $a_deplib" a_deplib="" break 2 fi done done fi if test -n "$a_deplib" ; then droppeddeps=yes $echo $echo "*** Warning: linker path does not have real file for library $a_deplib." $echo "*** I have the capability to make that library automatically link in when" $echo "*** you link to this library. But I can only do this if you have a" $echo "*** shared version of the library, which you do not appear to have" $echo "*** because I did check the linker path looking for a file starting" if test -z "$potlib" ; then $echo "*** with $libname but no candidates were found. (...for regex pattern test)" else $echo "*** with $libname and none of the candidates passed a file format test" $echo "*** using a regex pattern. Last file checked: $potlib" fi fi else # Add a -L argument. newdeplibs="$newdeplibs $a_deplib" fi done # Gone through all deplibs. ;; none | unknown | *) newdeplibs="" tmp_deplibs=`$echo "X $deplibs" | $Xsed -e 's/ -lc$//' \ -e 's/ -[LR][^ ]*//g'` if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then for i in $predeps $postdeps ; do # can't use Xsed below, because $i might contain '/' tmp_deplibs=`$echo "X $tmp_deplibs" | ${SED} -e "1s,^X,," -e "s,$i,,"` done fi if $echo "X $tmp_deplibs" | $Xsed -e 's/[ ]//g' \ | grep . >/dev/null; then $echo if test "X$deplibs_check_method" = "Xnone"; then $echo "*** Warning: inter-library dependencies are not supported in this platform." else $echo "*** Warning: inter-library dependencies are not known to be supported." fi $echo "*** All declared inter-library dependencies are being dropped." droppeddeps=yes fi ;; esac versuffix=$versuffix_save major=$major_save release=$release_save libname=$libname_save name=$name_save case $host in *-*-rhapsody* | *-*-darwin1.[012]) # On Rhapsody replace the C library is the System framework newdeplibs=`$echo "X $newdeplibs" | $Xsed -e 's/ -lc / -framework System /'` ;; esac if test "$droppeddeps" = yes; then if test "$module" = yes; then $echo $echo "*** Warning: libtool could not satisfy all declared inter-library" $echo "*** dependencies of module $libname. Therefore, libtool will create" $echo "*** a static module, that should work as long as the dlopening" $echo "*** application is linked with the -dlopen flag." if test -z "$global_symbol_pipe"; then $echo $echo "*** However, this would only work if libtool was able to extract symbol" $echo "*** lists from a program, using \`nm' or equivalent, but libtool could" $echo "*** not find such a program. So, this module is probably useless." $echo "*** \`nm' from GNU binutils and a full rebuild may help." fi if test "$build_old_libs" = no; then oldlibs="$output_objdir/$libname.$libext" build_libtool_libs=module build_old_libs=yes else build_libtool_libs=no fi else $echo "*** The inter-library dependencies that have been dropped here will be" $echo "*** automatically added whenever a program is linked with this library" $echo "*** or is declared to -dlopen it." if test "$allow_undefined" = no; then $echo $echo "*** Since this library must not contain undefined symbols," $echo "*** because either the platform does not support them or" $echo "*** it was explicitly requested with -no-undefined," $echo "*** libtool will only create a static version of it." if test "$build_old_libs" = no; then oldlibs="$output_objdir/$libname.$libext" build_libtool_libs=module build_old_libs=yes else build_libtool_libs=no fi fi fi fi # Done checking deplibs! deplibs=$newdeplibs fi # move library search paths that coincide with paths to not yet # installed libraries to the beginning of the library search list new_libs= for path in $notinst_path; do case " $new_libs " in *" -L$path/$objdir "*) ;; *) case " $deplibs " in *" -L$path/$objdir "*) new_libs="$new_libs -L$path/$objdir" ;; esac ;; esac done for deplib in $deplibs; do case $deplib in -L*) case " $new_libs " in *" $deplib "*) ;; *) new_libs="$new_libs $deplib" ;; esac ;; *) new_libs="$new_libs $deplib" ;; esac done deplibs="$new_libs" # All the library-specific variables (install_libdir is set above). library_names= old_library= dlname= # Test again, we may have decided not to build it any more if test "$build_libtool_libs" = yes; then if test "$hardcode_into_libs" = yes; then # Hardcode the library paths hardcode_libdirs= dep_rpath= rpath="$finalize_rpath" test "$mode" != relink && rpath="$compile_rpath$rpath" for libdir in $rpath; do if test -n "$hardcode_libdir_flag_spec"; then if test -n "$hardcode_libdir_separator"; then if test -z "$hardcode_libdirs"; then hardcode_libdirs="$libdir" else # Just accumulate the unique libdirs. case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) ;; *) hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" ;; esac fi else eval flag=\"$hardcode_libdir_flag_spec\" dep_rpath="$dep_rpath $flag" fi elif test -n "$runpath_var"; then case "$perm_rpath " in *" $libdir "*) ;; *) perm_rpath="$perm_rpath $libdir" ;; esac fi done # Substitute the hardcoded libdirs into the rpath. if test -n "$hardcode_libdir_separator" && test -n "$hardcode_libdirs"; then libdir="$hardcode_libdirs" if test -n "$hardcode_libdir_flag_spec_ld"; then case $archive_cmds in *\$LD*) eval dep_rpath=\"$hardcode_libdir_flag_spec_ld\" ;; *) eval dep_rpath=\"$hardcode_libdir_flag_spec\" ;; esac else eval dep_rpath=\"$hardcode_libdir_flag_spec\" fi fi if test -n "$runpath_var" && test -n "$perm_rpath"; then # We should set the runpath_var. rpath= for dir in $perm_rpath; do rpath="$rpath$dir:" done eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var" fi test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs" fi shlibpath="$finalize_shlibpath" test "$mode" != relink && shlibpath="$compile_shlibpath$shlibpath" if test -n "$shlibpath"; then eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var" fi # Get the real and link names of the library. eval shared_ext=\"$shrext_cmds\" eval library_names=\"$library_names_spec\" set dummy $library_names realname="$2" shift; shift if test -n "$soname_spec"; then eval soname=\"$soname_spec\" else soname="$realname" fi if test -z "$dlname"; then dlname=$soname fi lib="$output_objdir/$realname" linknames= for link do linknames="$linknames $link" done # Use standard objects if they are pic test -z "$pic_flag" && libobjs=`$echo "X$libobjs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` # Prepare the list of exported symbols if test -z "$export_symbols"; then if test "$always_export_symbols" = yes || test -n "$export_symbols_regex"; then $show "generating symbol list for \`$libname.la'" export_symbols="$output_objdir/$libname.exp" $run $rm $export_symbols cmds=$export_symbols_cmds save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" eval cmd=\"$cmd\" if len=`expr "X$cmd" : ".*"` && test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then $show "$cmd" $run eval "$cmd" || exit $? skipped_export=false else # The command line is too long to execute in one step. $show "using reloadable object file for export list..." skipped_export=: # Break out early, otherwise skipped_export may be # set to false by a later but shorter cmd. break fi done IFS="$save_ifs" if test -n "$export_symbols_regex"; then $show "$EGREP -e \"$export_symbols_regex\" \"$export_symbols\" > \"${export_symbols}T\"" $run eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"' $show "$mv \"${export_symbols}T\" \"$export_symbols\"" $run eval '$mv "${export_symbols}T" "$export_symbols"' fi fi fi if test -n "$export_symbols" && test -n "$include_expsyms"; then $run eval '$echo "X$include_expsyms" | $SP2NL >> "$export_symbols"' fi tmp_deplibs= for test_deplib in $deplibs; do case " $convenience " in *" $test_deplib "*) ;; *) tmp_deplibs="$tmp_deplibs $test_deplib" ;; esac done deplibs="$tmp_deplibs" if test -n "$convenience"; then if test -n "$whole_archive_flag_spec"; then save_libobjs=$libobjs eval libobjs=\"\$libobjs $whole_archive_flag_spec\" else gentop="$output_objdir/${outputname}x" generated="$generated $gentop" func_extract_archives $gentop $convenience libobjs="$libobjs $func_extract_archives_result" fi fi if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then eval flag=\"$thread_safe_flag_spec\" linker_flags="$linker_flags $flag" fi # Make a backup of the uninstalled library when relinking if test "$mode" = relink; then $run eval '(cd $output_objdir && $rm ${realname}U && $mv $realname ${realname}U)' || exit $? fi # Do each of the archive commands. if test "$module" = yes && test -n "$module_cmds" ; then if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then eval test_cmds=\"$module_expsym_cmds\" cmds=$module_expsym_cmds else eval test_cmds=\"$module_cmds\" cmds=$module_cmds fi else if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then eval test_cmds=\"$archive_expsym_cmds\" cmds=$archive_expsym_cmds else eval test_cmds=\"$archive_cmds\" cmds=$archive_cmds fi fi if test "X$skipped_export" != "X:" && len=`expr "X$test_cmds" : ".*" 2>/dev/null` && test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then : else # The command line is too long to link in one step, link piecewise. $echo "creating reloadable object files..." # Save the value of $output and $libobjs because we want to # use them later. If we have whole_archive_flag_spec, we # want to use save_libobjs as it was before # whole_archive_flag_spec was expanded, because we can't # assume the linker understands whole_archive_flag_spec. # This may have to be revisited, in case too many # convenience libraries get linked in and end up exceeding # the spec. if test -z "$convenience" || test -z "$whole_archive_flag_spec"; then save_libobjs=$libobjs fi save_output=$output output_la=`$echo "X$output" | $Xsed -e "$basename"` # Clear the reloadable object creation command queue and # initialize k to one. test_cmds= concat_cmds= objlist= delfiles= last_robj= k=1 output=$output_objdir/$output_la-${k}.$objext # Loop over the list of objects to be linked. for obj in $save_libobjs do eval test_cmds=\"$reload_cmds $objlist $last_robj\" if test "X$objlist" = X || { len=`expr "X$test_cmds" : ".*" 2>/dev/null` && test "$len" -le "$max_cmd_len"; }; then objlist="$objlist $obj" else # The command $test_cmds is almost too long, add a # command to the queue. if test "$k" -eq 1 ; then # The first file doesn't have a previous command to add. eval concat_cmds=\"$reload_cmds $objlist $last_robj\" else # All subsequent reloadable object files will link in # the last one created. eval concat_cmds=\"\$concat_cmds~$reload_cmds $objlist $last_robj\" fi last_robj=$output_objdir/$output_la-${k}.$objext k=`expr $k + 1` output=$output_objdir/$output_la-${k}.$objext objlist=$obj len=1 fi done # Handle the remaining objects by creating one last # reloadable object file. All subsequent reloadable object # files will link in the last one created. test -z "$concat_cmds" || concat_cmds=$concat_cmds~ eval concat_cmds=\"\${concat_cmds}$reload_cmds $objlist $last_robj\" if ${skipped_export-false}; then $show "generating symbol list for \`$libname.la'" export_symbols="$output_objdir/$libname.exp" $run $rm $export_symbols libobjs=$output # Append the command to create the export file. eval concat_cmds=\"\$concat_cmds~$export_symbols_cmds\" fi # Set up a command to remove the reloadable object files # after they are used. i=0 while test "$i" -lt "$k" do i=`expr $i + 1` delfiles="$delfiles $output_objdir/$output_la-${i}.$objext" done $echo "creating a temporary reloadable object file: $output" # Loop through the commands generated above and execute them. save_ifs="$IFS"; IFS='~' for cmd in $concat_cmds; do IFS="$save_ifs" $show "$cmd" $run eval "$cmd" || exit $? done IFS="$save_ifs" libobjs=$output # Restore the value of output. output=$save_output if test -n "$convenience" && test -n "$whole_archive_flag_spec"; then eval libobjs=\"\$libobjs $whole_archive_flag_spec\" fi # Expand the library linking commands again to reset the # value of $libobjs for piecewise linking. # Do each of the archive commands. if test "$module" = yes && test -n "$module_cmds" ; then if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then cmds=$module_expsym_cmds else cmds=$module_cmds fi else if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then cmds=$archive_expsym_cmds else cmds=$archive_cmds fi fi # Append the command to remove the reloadable object files # to the just-reset $cmds. eval cmds=\"\$cmds~\$rm $delfiles\" fi save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" eval cmd=\"$cmd\" $show "$cmd" $run eval "$cmd" || { lt_exit=$? # Restore the uninstalled library and exit if test "$mode" = relink; then $run eval '(cd $output_objdir && $rm ${realname}T && $mv ${realname}U $realname)' fi exit $lt_exit } done IFS="$save_ifs" # Restore the uninstalled library and exit if test "$mode" = relink; then $run eval '(cd $output_objdir && $rm ${realname}T && $mv $realname ${realname}T && $mv "$realname"U $realname)' || exit $? if test -n "$convenience"; then if test -z "$whole_archive_flag_spec"; then $show "${rm}r $gentop" $run ${rm}r "$gentop" fi fi exit $EXIT_SUCCESS fi # Create links to the real library. for linkname in $linknames; do if test "$realname" != "$linkname"; then $show "(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)" $run eval '(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)' || exit $? fi done # If -module or -export-dynamic was specified, set the dlname. if test "$module" = yes || test "$export_dynamic" = yes; then # On all known operating systems, these are identical. dlname="$soname" fi fi ;; obj) if test -n "$deplibs"; then $echo "$modename: warning: \`-l' and \`-L' are ignored for objects" 1>&2 fi if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then $echo "$modename: warning: \`-dlopen' is ignored for objects" 1>&2 fi if test -n "$rpath"; then $echo "$modename: warning: \`-rpath' is ignored for objects" 1>&2 fi if test -n "$xrpath"; then $echo "$modename: warning: \`-R' is ignored for objects" 1>&2 fi if test -n "$vinfo"; then $echo "$modename: warning: \`-version-info' is ignored for objects" 1>&2 fi if test -n "$release"; then $echo "$modename: warning: \`-release' is ignored for objects" 1>&2 fi case $output in *.lo) if test -n "$objs$old_deplibs"; then $echo "$modename: cannot build library object \`$output' from non-libtool objects" 1>&2 exit $EXIT_FAILURE fi libobj="$output" obj=`$echo "X$output" | $Xsed -e "$lo2o"` ;; *) libobj= obj="$output" ;; esac # Delete the old objects. $run $rm $obj $libobj # Objects from convenience libraries. This assumes # single-version convenience libraries. Whenever we create # different ones for PIC/non-PIC, this we'll have to duplicate # the extraction. reload_conv_objs= gentop= # reload_cmds runs $LD directly, so let us get rid of # -Wl from whole_archive_flag_spec and hope we can get by with # turning comma into space.. wl= if test -n "$convenience"; then if test -n "$whole_archive_flag_spec"; then eval tmp_whole_archive_flags=\"$whole_archive_flag_spec\" reload_conv_objs=$reload_objs\ `$echo "X$tmp_whole_archive_flags" | $Xsed -e 's|,| |g'` else gentop="$output_objdir/${obj}x" generated="$generated $gentop" func_extract_archives $gentop $convenience reload_conv_objs="$reload_objs $func_extract_archives_result" fi fi # Create the old-style object. reload_objs="$objs$old_deplibs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}$'/d' -e '/\.lib$/d' -e "$lo2o" | $NL2SP`" $reload_conv_objs" ### testsuite: skip nested quoting test output="$obj" cmds=$reload_cmds save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" eval cmd=\"$cmd\" $show "$cmd" $run eval "$cmd" || exit $? done IFS="$save_ifs" # Exit if we aren't doing a library object file. if test -z "$libobj"; then if test -n "$gentop"; then $show "${rm}r $gentop" $run ${rm}r $gentop fi exit $EXIT_SUCCESS fi if test "$build_libtool_libs" != yes; then if test -n "$gentop"; then $show "${rm}r $gentop" $run ${rm}r $gentop fi # Create an invalid libtool object if no PIC, so that we don't # accidentally link it into a program. # $show "echo timestamp > $libobj" # $run eval "echo timestamp > $libobj" || exit $? exit $EXIT_SUCCESS fi if test -n "$pic_flag" || test "$pic_mode" != default; then # Only do commands if we really have different PIC objects. reload_objs="$libobjs $reload_conv_objs" output="$libobj" cmds=$reload_cmds save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" eval cmd=\"$cmd\" $show "$cmd" $run eval "$cmd" || exit $? done IFS="$save_ifs" fi if test -n "$gentop"; then $show "${rm}r $gentop" $run ${rm}r $gentop fi exit $EXIT_SUCCESS ;; prog) case $host in *cygwin*) output=`$echo $output | ${SED} -e 's,.exe$,,;s,$,.exe,'` ;; esac if test -n "$vinfo"; then $echo "$modename: warning: \`-version-info' is ignored for programs" 1>&2 fi if test -n "$release"; then $echo "$modename: warning: \`-release' is ignored for programs" 1>&2 fi if test "$preload" = yes; then if test "$dlopen_support" = unknown && test "$dlopen_self" = unknown && test "$dlopen_self_static" = unknown; then $echo "$modename: warning: \`AC_LIBTOOL_DLOPEN' not used. Assuming no dlopen support." fi fi case $host in *-*-rhapsody* | *-*-darwin1.[012]) # On Rhapsody replace the C library is the System framework compile_deplibs=`$echo "X $compile_deplibs" | $Xsed -e 's/ -lc / -framework System /'` finalize_deplibs=`$echo "X $finalize_deplibs" | $Xsed -e 's/ -lc / -framework System /'` ;; esac case $host in *darwin*) # Don't allow lazy linking, it breaks C++ global constructors if test "$tagname" = CXX ; then compile_command="$compile_command ${wl}-bind_at_load" finalize_command="$finalize_command ${wl}-bind_at_load" fi ;; esac # move library search paths that coincide with paths to not yet # installed libraries to the beginning of the library search list new_libs= for path in $notinst_path; do case " $new_libs " in *" -L$path/$objdir "*) ;; *) case " $compile_deplibs " in *" -L$path/$objdir "*) new_libs="$new_libs -L$path/$objdir" ;; esac ;; esac done for deplib in $compile_deplibs; do case $deplib in -L*) case " $new_libs " in *" $deplib "*) ;; *) new_libs="$new_libs $deplib" ;; esac ;; *) new_libs="$new_libs $deplib" ;; esac done compile_deplibs="$new_libs" compile_command="$compile_command $compile_deplibs" finalize_command="$finalize_command $finalize_deplibs" if test -n "$rpath$xrpath"; then # If the user specified any rpath flags, then add them. for libdir in $rpath $xrpath; do # This is the magic to use -rpath. case "$finalize_rpath " in *" $libdir "*) ;; *) finalize_rpath="$finalize_rpath $libdir" ;; esac done fi # Now hardcode the library paths rpath= hardcode_libdirs= for libdir in $compile_rpath $finalize_rpath; do if test -n "$hardcode_libdir_flag_spec"; then if test -n "$hardcode_libdir_separator"; then if test -z "$hardcode_libdirs"; then hardcode_libdirs="$libdir" else # Just accumulate the unique libdirs. case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) ;; *) hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" ;; esac fi else eval flag=\"$hardcode_libdir_flag_spec\" rpath="$rpath $flag" fi elif test -n "$runpath_var"; then case "$perm_rpath " in *" $libdir "*) ;; *) perm_rpath="$perm_rpath $libdir" ;; esac fi case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*) testbindir=`$echo "X$libdir" | $Xsed -e 's*/lib$*/bin*'` case :$dllsearchpath: in *":$libdir:"*) ;; *) dllsearchpath="$dllsearchpath:$libdir";; esac case :$dllsearchpath: in *":$testbindir:"*) ;; *) dllsearchpath="$dllsearchpath:$testbindir";; esac ;; esac done # Substitute the hardcoded libdirs into the rpath. if test -n "$hardcode_libdir_separator" && test -n "$hardcode_libdirs"; then libdir="$hardcode_libdirs" eval rpath=\" $hardcode_libdir_flag_spec\" fi compile_rpath="$rpath" rpath= hardcode_libdirs= for libdir in $finalize_rpath; do if test -n "$hardcode_libdir_flag_spec"; then if test -n "$hardcode_libdir_separator"; then if test -z "$hardcode_libdirs"; then hardcode_libdirs="$libdir" else # Just accumulate the unique libdirs. case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) ;; *) hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" ;; esac fi else eval flag=\"$hardcode_libdir_flag_spec\" rpath="$rpath $flag" fi elif test -n "$runpath_var"; then case "$finalize_perm_rpath " in *" $libdir "*) ;; *) finalize_perm_rpath="$finalize_perm_rpath $libdir" ;; esac fi done # Substitute the hardcoded libdirs into the rpath. if test -n "$hardcode_libdir_separator" && test -n "$hardcode_libdirs"; then libdir="$hardcode_libdirs" eval rpath=\" $hardcode_libdir_flag_spec\" fi finalize_rpath="$rpath" if test -n "$libobjs" && test "$build_old_libs" = yes; then # Transform all the library objects into standard objects. compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` fi dlsyms= if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then if test -n "$NM" && test -n "$global_symbol_pipe"; then dlsyms="${outputname}S.c" else $echo "$modename: not configured to extract global symbols from dlpreopened files" 1>&2 fi fi if test -n "$dlsyms"; then case $dlsyms in "") ;; *.c) # Discover the nlist of each of the dlfiles. nlist="$output_objdir/${outputname}.nm" $show "$rm $nlist ${nlist}S ${nlist}T" $run $rm "$nlist" "${nlist}S" "${nlist}T" # Parse the name list into a source file. $show "creating $output_objdir/$dlsyms" test -z "$run" && $echo > "$output_objdir/$dlsyms" "\ /* $dlsyms - symbol resolution table for \`$outputname' dlsym emulation. */ /* Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP */ #ifdef __cplusplus extern \"C\" { #endif /* Prevent the only kind of declaration conflicts we can make. */ #define lt_preloaded_symbols some_other_symbol /* External symbol declarations for the compiler. */\ " if test "$dlself" = yes; then $show "generating symbol list for \`$output'" test -z "$run" && $echo ': @PROGRAM@ ' > "$nlist" # Add our own program objects to the symbol list. progfiles=`$echo "X$objs$old_deplibs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` for arg in $progfiles; do $show "extracting global C symbols from \`$arg'" $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'" done if test -n "$exclude_expsyms"; then $run eval '$EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T' $run eval '$mv "$nlist"T "$nlist"' fi if test -n "$export_symbols_regex"; then $run eval '$EGREP -e "$export_symbols_regex" "$nlist" > "$nlist"T' $run eval '$mv "$nlist"T "$nlist"' fi # Prepare the list of exported symbols if test -z "$export_symbols"; then export_symbols="$output_objdir/$outputname.exp" $run $rm $export_symbols $run eval "${SED} -n -e '/^: @PROGRAM@ $/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"' case $host in *cygwin* | *mingw* ) $run eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' $run eval 'cat "$export_symbols" >> "$output_objdir/$outputname.def"' ;; esac else $run eval "${SED} -e 's/\([].[*^$]\)/\\\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$outputname.exp"' $run eval 'grep -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T' $run eval 'mv "$nlist"T "$nlist"' case $host in *cygwin* | *mingw* ) $run eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' $run eval 'cat "$nlist" >> "$output_objdir/$outputname.def"' ;; esac fi fi for arg in $dlprefiles; do $show "extracting global C symbols from \`$arg'" name=`$echo "$arg" | ${SED} -e 's%^.*/%%'` $run eval '$echo ": $name " >> "$nlist"' $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'" done if test -z "$run"; then # Make sure we have at least an empty file. test -f "$nlist" || : > "$nlist" if test -n "$exclude_expsyms"; then $EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T $mv "$nlist"T "$nlist" fi # Try sorting and uniquifying the output. if grep -v "^: " < "$nlist" | if sort -k 3 /dev/null 2>&1; then sort -k 3 else sort +2 fi | uniq > "$nlist"S; then : else grep -v "^: " < "$nlist" > "$nlist"S fi if test -f "$nlist"S; then eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$dlsyms"' else $echo '/* NONE */' >> "$output_objdir/$dlsyms" fi $echo >> "$output_objdir/$dlsyms" "\ #undef lt_preloaded_symbols #if defined (__STDC__) && __STDC__ # define lt_ptr void * #else # define lt_ptr char * # define const #endif /* The mapping between symbol names and symbols. */ " case $host in *cygwin* | *mingw* ) $echo >> "$output_objdir/$dlsyms" "\ /* DATA imports from DLLs on WIN32 can't be const, because runtime relocations are performed -- see ld's documentation on pseudo-relocs */ struct { " ;; * ) $echo >> "$output_objdir/$dlsyms" "\ const struct { " ;; esac $echo >> "$output_objdir/$dlsyms" "\ const char *name; lt_ptr address; } lt_preloaded_symbols[] = {\ " eval "$global_symbol_to_c_name_address" < "$nlist" >> "$output_objdir/$dlsyms" $echo >> "$output_objdir/$dlsyms" "\ {0, (lt_ptr) 0} }; /* This works around a problem in FreeBSD linker */ #ifdef FREEBSD_WORKAROUND static const void *lt_preloaded_setup() { return lt_preloaded_symbols; } #endif #ifdef __cplusplus } #endif\ " fi pic_flag_for_symtable= case $host in # compiling the symbol table file with pic_flag works around # a FreeBSD bug that causes programs to crash when -lm is # linked before any other PIC object. But we must not use # pic_flag when linking with -static. The problem exists in # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1. *-*-freebsd2*|*-*-freebsd3.0*|*-*-freebsdelf3.0*) case "$compile_command " in *" -static "*) ;; *) pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND";; esac;; *-*-hpux*) case "$compile_command " in *" -static "*) ;; *) pic_flag_for_symtable=" $pic_flag";; esac esac # Now compile the dynamic symbol file. $show "(cd $output_objdir && $LTCC $LTCFLAGS -c$no_builtin_flag$pic_flag_for_symtable \"$dlsyms\")" $run eval '(cd $output_objdir && $LTCC $LTCFLAGS -c$no_builtin_flag$pic_flag_for_symtable "$dlsyms")' || exit $? # Clean up the generated files. $show "$rm $output_objdir/$dlsyms $nlist ${nlist}S ${nlist}T" $run $rm "$output_objdir/$dlsyms" "$nlist" "${nlist}S" "${nlist}T" # Transform the symbol file into the correct name. case $host in *cygwin* | *mingw* ) if test -f "$output_objdir/${outputname}.def" ; then compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}.def $output_objdir/${outputname}S.${objext}%" | $NL2SP` finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}.def $output_objdir/${outputname}S.${objext}%" | $NL2SP` else compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%" | $NL2SP` finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%" | $NL2SP` fi ;; * ) compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%" | $NL2SP` finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%" | $NL2SP` ;; esac ;; *) $echo "$modename: unknown suffix for \`$dlsyms'" 1>&2 exit $EXIT_FAILURE ;; esac else # We keep going just in case the user didn't refer to # lt_preloaded_symbols. The linker will fail if global_symbol_pipe # really was required. # Nullify the symbol file. compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "s% @SYMFILE@%%" | $NL2SP` finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "s% @SYMFILE@%%" | $NL2SP` fi if test "$need_relink" = no || test "$build_libtool_libs" != yes; then # Replace the output file specification. compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e 's%@OUTPUT@%'"$output"'%g' | $NL2SP` link_command="$compile_command$compile_rpath" # We have no uninstalled library dependencies, so finalize right now. $show "$link_command" $run eval "$link_command" exit_status=$? # Delete the generated files. if test -n "$dlsyms"; then $show "$rm $output_objdir/${outputname}S.${objext}" $run $rm "$output_objdir/${outputname}S.${objext}" fi exit $exit_status fi if test -n "$shlibpath_var"; then # We should set the shlibpath_var rpath= for dir in $temp_rpath; do case $dir in [\\/]* | [A-Za-z]:[\\/]*) # Absolute path. rpath="$rpath$dir:" ;; *) # Relative path: add a thisdir entry. rpath="$rpath\$thisdir/$dir:" ;; esac done temp_rpath="$rpath" fi if test -n "$compile_shlibpath$finalize_shlibpath"; then compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command" fi if test -n "$finalize_shlibpath"; then finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command" fi compile_var= finalize_var= if test -n "$runpath_var"; then if test -n "$perm_rpath"; then # We should set the runpath_var. rpath= for dir in $perm_rpath; do rpath="$rpath$dir:" done compile_var="$runpath_var=\"$rpath\$$runpath_var\" " fi if test -n "$finalize_perm_rpath"; then # We should set the runpath_var. rpath= for dir in $finalize_perm_rpath; do rpath="$rpath$dir:" done finalize_var="$runpath_var=\"$rpath\$$runpath_var\" " fi fi if test "$no_install" = yes; then # We don't need to create a wrapper script. link_command="$compile_var$compile_command$compile_rpath" # Replace the output file specification. link_command=`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'` # Delete the old output file. $run $rm $output # Link the executable and exit $show "$link_command" $run eval "$link_command" || exit $? exit $EXIT_SUCCESS fi if test "$hardcode_action" = relink; then # Fast installation is not supported link_command="$compile_var$compile_command$compile_rpath" relink_command="$finalize_var$finalize_command$finalize_rpath" $echo "$modename: warning: this platform does not like uninstalled shared libraries" 1>&2 $echo "$modename: \`$output' will be relinked during installation" 1>&2 else if test "$fast_install" != no; then link_command="$finalize_var$compile_command$finalize_rpath" if test "$fast_install" = yes; then relink_command=`$echo "X$compile_var$compile_command$compile_rpath" | $SP2NL | $Xsed -e 's%@OUTPUT@%\$progdir/\$file%g' | $NL2SP` else # fast_install is set to needless relink_command= fi else link_command="$compile_var$compile_command$compile_rpath" relink_command="$finalize_var$finalize_command$finalize_rpath" fi fi # Replace the output file specification. link_command=`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'` # Delete the old output files. $run $rm $output $output_objdir/$outputname $output_objdir/lt-$outputname $show "$link_command" $run eval "$link_command" || exit $? # Now create the wrapper script. $show "creating $output" # Quote the relink command for shipping. if test -n "$relink_command"; then # Preserve any variables that may affect compiler behavior for var in $variables_saved_for_relink; do if eval test -z \"\${$var+set}\"; then relink_command="{ test -z \"\${$var+set}\" || unset $var || { $var=; export $var; }; }; $relink_command" elif eval var_value=\$$var; test -z "$var_value"; then relink_command="$var=; export $var; $relink_command" else var_value=`$echo "X$var_value" | $Xsed -e "$sed_quote_subst"` relink_command="$var=\"$var_value\"; export $var; $relink_command" fi done relink_command="(cd `pwd`; $relink_command)" relink_command=`$echo "X$relink_command" | $SP2NL | $Xsed -e "$sed_quote_subst" | $NL2SP` fi # Quote $echo for shipping. if test "X$echo" = "X$SHELL $progpath --fallback-echo"; then case $progpath in [\\/]* | [A-Za-z]:[\\/]*) qecho="$SHELL $progpath --fallback-echo";; *) qecho="$SHELL `pwd`/$progpath --fallback-echo";; esac qecho=`$echo "X$qecho" | $Xsed -e "$sed_quote_subst"` else qecho=`$echo "X$echo" | $Xsed -e "$sed_quote_subst"` fi # Only actually do things if our run command is non-null. if test -z "$run"; then # win32 will think the script is a binary if it has # a .exe suffix, so we strip it off here. case $output in *.exe) output=`$echo $output|${SED} 's,.exe$,,'` ;; esac # test for cygwin because mv fails w/o .exe extensions case $host in *cygwin*) exeext=.exe outputname=`$echo $outputname|${SED} 's,.exe$,,'` ;; *) exeext= ;; esac case $host in *cygwin* | *mingw* ) output_name=`basename $output` output_path=`dirname $output` cwrappersource="$output_path/$objdir/lt-$output_name.c" cwrapper="$output_path/$output_name.exe" $rm $cwrappersource $cwrapper trap "$rm $cwrappersource $cwrapper; exit $EXIT_FAILURE" 1 2 15 cat > $cwrappersource <> $cwrappersource<<"EOF" #include #include #include #include #include #include #include #include #include #if defined(PATH_MAX) # define LT_PATHMAX PATH_MAX #elif defined(MAXPATHLEN) # define LT_PATHMAX MAXPATHLEN #else # define LT_PATHMAX 1024 #endif #ifndef DIR_SEPARATOR # define DIR_SEPARATOR '/' # define PATH_SEPARATOR ':' #endif #if defined (_WIN32) || defined (__MSDOS__) || defined (__DJGPP__) || \ defined (__OS2__) # define HAVE_DOS_BASED_FILE_SYSTEM # ifndef DIR_SEPARATOR_2 # define DIR_SEPARATOR_2 '\\' # endif # ifndef PATH_SEPARATOR_2 # define PATH_SEPARATOR_2 ';' # endif #endif #ifndef DIR_SEPARATOR_2 # define IS_DIR_SEPARATOR(ch) ((ch) == DIR_SEPARATOR) #else /* DIR_SEPARATOR_2 */ # define IS_DIR_SEPARATOR(ch) \ (((ch) == DIR_SEPARATOR) || ((ch) == DIR_SEPARATOR_2)) #endif /* DIR_SEPARATOR_2 */ #ifndef PATH_SEPARATOR_2 # define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR) #else /* PATH_SEPARATOR_2 */ # define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR_2) #endif /* PATH_SEPARATOR_2 */ #define XMALLOC(type, num) ((type *) xmalloc ((num) * sizeof(type))) #define XFREE(stale) do { \ if (stale) { free ((void *) stale); stale = 0; } \ } while (0) /* -DDEBUG is fairly common in CFLAGS. */ #undef DEBUG #if defined DEBUGWRAPPER # define DEBUG(format, ...) fprintf(stderr, format, __VA_ARGS__) #else # define DEBUG(format, ...) #endif const char *program_name = NULL; void * xmalloc (size_t num); char * xstrdup (const char *string); const char * base_name (const char *name); char * find_executable(const char *wrapper); int check_executable(const char *path); char * strendzap(char *str, const char *pat); void lt_fatal (const char *message, ...); int main (int argc, char *argv[]) { char **newargz; int i; program_name = (char *) xstrdup (base_name (argv[0])); DEBUG("(main) argv[0] : %s\n",argv[0]); DEBUG("(main) program_name : %s\n",program_name); newargz = XMALLOC(char *, argc+2); EOF cat >> $cwrappersource <> $cwrappersource <<"EOF" newargz[1] = find_executable(argv[0]); if (newargz[1] == NULL) lt_fatal("Couldn't find %s", argv[0]); DEBUG("(main) found exe at : %s\n",newargz[1]); /* we know the script has the same name, without the .exe */ /* so make sure newargz[1] doesn't end in .exe */ strendzap(newargz[1],".exe"); for (i = 1; i < argc; i++) newargz[i+1] = xstrdup(argv[i]); newargz[argc+1] = NULL; for (i=0; i> $cwrappersource <> $cwrappersource <> $cwrappersource <<"EOF" return 127; } void * xmalloc (size_t num) { void * p = (void *) malloc (num); if (!p) lt_fatal ("Memory exhausted"); return p; } char * xstrdup (const char *string) { return string ? strcpy ((char *) xmalloc (strlen (string) + 1), string) : NULL ; } const char * base_name (const char *name) { const char *base; #if defined (HAVE_DOS_BASED_FILE_SYSTEM) /* Skip over the disk name in MSDOS pathnames. */ if (isalpha ((unsigned char)name[0]) && name[1] == ':') name += 2; #endif for (base = name; *name; name++) if (IS_DIR_SEPARATOR (*name)) base = name + 1; return base; } int check_executable(const char * path) { struct stat st; DEBUG("(check_executable) : %s\n", path ? (*path ? path : "EMPTY!") : "NULL!"); if ((!path) || (!*path)) return 0; if ((stat (path, &st) >= 0) && ( /* MinGW & native WIN32 do not support S_IXOTH or S_IXGRP */ #if defined (S_IXOTH) ((st.st_mode & S_IXOTH) == S_IXOTH) || #endif #if defined (S_IXGRP) ((st.st_mode & S_IXGRP) == S_IXGRP) || #endif ((st.st_mode & S_IXUSR) == S_IXUSR)) ) return 1; else return 0; } /* Searches for the full path of the wrapper. Returns newly allocated full path name if found, NULL otherwise */ char * find_executable (const char* wrapper) { int has_slash = 0; const char* p; const char* p_next; /* static buffer for getcwd */ char tmp[LT_PATHMAX + 1]; int tmp_len; char* concat_name; DEBUG("(find_executable) : %s\n", wrapper ? (*wrapper ? wrapper : "EMPTY!") : "NULL!"); if ((wrapper == NULL) || (*wrapper == '\0')) return NULL; /* Absolute path? */ #if defined (HAVE_DOS_BASED_FILE_SYSTEM) if (isalpha ((unsigned char)wrapper[0]) && wrapper[1] == ':') { concat_name = xstrdup (wrapper); if (check_executable(concat_name)) return concat_name; XFREE(concat_name); } else { #endif if (IS_DIR_SEPARATOR (wrapper[0])) { concat_name = xstrdup (wrapper); if (check_executable(concat_name)) return concat_name; XFREE(concat_name); } #if defined (HAVE_DOS_BASED_FILE_SYSTEM) } #endif for (p = wrapper; *p; p++) if (*p == '/') { has_slash = 1; break; } if (!has_slash) { /* no slashes; search PATH */ const char* path = getenv ("PATH"); if (path != NULL) { for (p = path; *p; p = p_next) { const char* q; size_t p_len; for (q = p; *q; q++) if (IS_PATH_SEPARATOR(*q)) break; p_len = q - p; p_next = (*q == '\0' ? q : q + 1); if (p_len == 0) { /* empty path: current directory */ if (getcwd (tmp, LT_PATHMAX) == NULL) lt_fatal ("getcwd failed"); tmp_len = strlen(tmp); concat_name = XMALLOC(char, tmp_len + 1 + strlen(wrapper) + 1); memcpy (concat_name, tmp, tmp_len); concat_name[tmp_len] = '/'; strcpy (concat_name + tmp_len + 1, wrapper); } else { concat_name = XMALLOC(char, p_len + 1 + strlen(wrapper) + 1); memcpy (concat_name, p, p_len); concat_name[p_len] = '/'; strcpy (concat_name + p_len + 1, wrapper); } if (check_executable(concat_name)) return concat_name; XFREE(concat_name); } } /* not found in PATH; assume curdir */ } /* Relative path | not found in path: prepend cwd */ if (getcwd (tmp, LT_PATHMAX) == NULL) lt_fatal ("getcwd failed"); tmp_len = strlen(tmp); concat_name = XMALLOC(char, tmp_len + 1 + strlen(wrapper) + 1); memcpy (concat_name, tmp, tmp_len); concat_name[tmp_len] = '/'; strcpy (concat_name + tmp_len + 1, wrapper); if (check_executable(concat_name)) return concat_name; XFREE(concat_name); return NULL; } char * strendzap(char *str, const char *pat) { size_t len, patlen; assert(str != NULL); assert(pat != NULL); len = strlen(str); patlen = strlen(pat); if (patlen <= len) { str += len - patlen; if (strcmp(str, pat) == 0) *str = '\0'; } return str; } static void lt_error_core (int exit_status, const char * mode, const char * message, va_list ap) { fprintf (stderr, "%s: %s: ", program_name, mode); vfprintf (stderr, message, ap); fprintf (stderr, ".\n"); if (exit_status >= 0) exit (exit_status); } void lt_fatal (const char *message, ...) { va_list ap; va_start (ap, message); lt_error_core (EXIT_FAILURE, "FATAL", message, ap); va_end (ap); } EOF # we should really use a build-platform specific compiler # here, but OTOH, the wrappers (shell script and this C one) # are only useful if you want to execute the "real" binary. # Since the "real" binary is built for $host, then this # wrapper might as well be built for $host, too. $run $LTCC $LTCFLAGS -s -o $cwrapper $cwrappersource ;; esac $rm $output trap "$rm $output; exit $EXIT_FAILURE" 1 2 15 $echo > $output "\ #! $SHELL # $output - temporary wrapper script for $objdir/$outputname # Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP # # The $output program cannot be directly executed until all the libtool # libraries that it depends on are installed. # # This wrapper script should never be moved out of the build directory. # If it is, it will not operate correctly. # Sed substitution that helps us do robust quoting. It backslashifies # metacharacters that are still active within double-quoted strings. Xsed='${SED} -e 1s/^X//' sed_quote_subst='$sed_quote_subst' # Be Bourne compatible (taken from Autoconf:_AS_BOURNE_COMPATIBLE). if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: # Zsh 3.x and 4.x performs word splitting on \${1+\"\$@\"}, which # is contrary to our usage. Disable this feature. alias -g '\${1+\"\$@\"}'='\"\$@\"' setopt NO_GLOB_SUBST else case \`(set -o) 2>/dev/null\` in *posix*) set -o posix;; esac fi BIN_SH=xpg4; export BIN_SH # for Tru64 DUALCASE=1; export DUALCASE # for MKS sh # The HP-UX ksh and POSIX shell print the target directory to stdout # if CDPATH is set. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH relink_command=\"$relink_command\" # This environment variable determines our operation mode. if test \"\$libtool_install_magic\" = \"$magic\"; then # install mode needs the following variable: notinst_deplibs='$notinst_deplibs' else # When we are sourced in execute mode, \$file and \$echo are already set. if test \"\$libtool_execute_magic\" != \"$magic\"; then echo=\"$qecho\" file=\"\$0\" # Make sure echo works. if test \"X\$1\" = X--no-reexec; then # Discard the --no-reexec flag, and continue. shift elif test \"X\`(\$echo '\t') 2>/dev/null\`\" = 'X\t'; then # Yippee, \$echo works! : else # Restart under the correct shell, and then maybe \$echo will work. exec $SHELL \"\$0\" --no-reexec \${1+\"\$@\"} fi fi\ " $echo >> $output "\ # Find the directory that this script lives in. thisdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*$%%'\` test \"x\$thisdir\" = \"x\$file\" && thisdir=. # Follow symbolic links until we get to the real thisdir. file=\`ls -ld \"\$file\" | ${SED} -n 's/.*-> //p'\` while test -n \"\$file\"; do destdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*\$%%'\` # If there was a directory component, then change thisdir. if test \"x\$destdir\" != \"x\$file\"; then case \"\$destdir\" in [\\\\/]* | [A-Za-z]:[\\\\/]*) thisdir=\"\$destdir\" ;; *) thisdir=\"\$thisdir/\$destdir\" ;; esac fi file=\`\$echo \"X\$file\" | \$Xsed -e 's%^.*/%%'\` file=\`ls -ld \"\$thisdir/\$file\" | ${SED} -n 's/.*-> //p'\` done # Try to get the absolute directory name. absdir=\`cd \"\$thisdir\" && pwd\` test -n \"\$absdir\" && thisdir=\"\$absdir\" " if test "$fast_install" = yes; then $echo >> $output "\ program=lt-'$outputname'$exeext progdir=\"\$thisdir/$objdir\" if test ! -f \"\$progdir/\$program\" || \\ { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | ${SED} 1q\`; \\ test \"X\$file\" != \"X\$progdir/\$program\"; }; then file=\"\$\$-\$program\" if test ! -d \"\$progdir\"; then $mkdir \"\$progdir\" else $rm \"\$progdir/\$file\" fi" $echo >> $output "\ # relink executable if necessary if test -n \"\$relink_command\"; then if relink_command_output=\`eval \$relink_command 2>&1\`; then : else $echo \"\$relink_command_output\" >&2 $rm \"\$progdir/\$file\" exit $EXIT_FAILURE fi fi $mv \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null || { $rm \"\$progdir/\$program\"; $mv \"\$progdir/\$file\" \"\$progdir/\$program\"; } $rm \"\$progdir/\$file\" fi" else $echo >> $output "\ program='$outputname' progdir=\"\$thisdir/$objdir\" " fi $echo >> $output "\ if test -f \"\$progdir/\$program\"; then" # Export our shlibpath_var if we have one. if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then $echo >> $output "\ # Add our own library path to $shlibpath_var $shlibpath_var=\"$temp_rpath\$$shlibpath_var\" # Some systems cannot cope with colon-terminated $shlibpath_var # The second colon is a workaround for a bug in BeOS R4 sed $shlibpath_var=\`\$echo \"X\$$shlibpath_var\" | \$Xsed -e 's/::*\$//'\` export $shlibpath_var " fi # fixup the dll searchpath if we need to. if test -n "$dllsearchpath"; then $echo >> $output "\ # Add the dll search path components to the executable PATH PATH=$dllsearchpath:\$PATH " fi $echo >> $output "\ if test \"\$libtool_execute_magic\" != \"$magic\"; then # Run the actual program with our arguments. " case $host in # Backslashes separate directories on plain windows *-*-mingw | *-*-os2*) $echo >> $output "\ exec \"\$progdir\\\\\$program\" \${1+\"\$@\"} " ;; *) $echo >> $output "\ exec \"\$progdir/\$program\" \${1+\"\$@\"} " ;; esac $echo >> $output "\ \$echo \"\$0: cannot exec \$program \$*\" exit $EXIT_FAILURE fi else # The program doesn't exist. \$echo \"\$0: error: \\\`\$progdir/\$program' does not exist\" 1>&2 \$echo \"This script is just a wrapper for \$program.\" 1>&2 $echo \"See the $PACKAGE documentation for more information.\" 1>&2 exit $EXIT_FAILURE fi fi\ " chmod +x $output fi exit $EXIT_SUCCESS ;; esac # See if we need to build an old-fashioned archive. for oldlib in $oldlibs; do if test "$build_libtool_libs" = convenience; then oldobjs="$libobjs_save" addlibs="$convenience" build_libtool_libs=no else if test "$build_libtool_libs" = module; then oldobjs="$libobjs_save" build_libtool_libs=no else oldobjs="$old_deplibs $non_pic_objects" fi addlibs="$old_convenience" fi if test -n "$addlibs"; then gentop="$output_objdir/${outputname}x" generated="$generated $gentop" func_extract_archives $gentop $addlibs oldobjs="$oldobjs $func_extract_archives_result" fi # Do each command in the archive commands. if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then cmds=$old_archive_from_new_cmds else # POSIX demands no paths to be encoded in archives. We have # to avoid creating archives with duplicate basenames if we # might have to extract them afterwards, e.g., when creating a # static archive out of a convenience library, or when linking # the entirety of a libtool archive into another (currently # not supported by libtool). if (for obj in $oldobjs do $echo "X$obj" | $Xsed -e 's%^.*/%%' done | sort | sort -uc >/dev/null 2>&1); then : else $echo "copying selected object files to avoid basename conflicts..." if test -z "$gentop"; then gentop="$output_objdir/${outputname}x" generated="$generated $gentop" $show "${rm}r $gentop" $run ${rm}r "$gentop" $show "$mkdir $gentop" $run $mkdir "$gentop" exit_status=$? if test "$exit_status" -ne 0 && test ! -d "$gentop"; then exit $exit_status fi fi save_oldobjs=$oldobjs oldobjs= counter=1 for obj in $save_oldobjs do objbase=`$echo "X$obj" | $Xsed -e 's%^.*/%%'` case " $oldobjs " in " ") oldobjs=$obj ;; *[\ /]"$objbase "*) while :; do # Make sure we don't pick an alternate name that also # overlaps. newobj=lt$counter-$objbase counter=`expr $counter + 1` case " $oldobjs " in *[\ /]"$newobj "*) ;; *) if test ! -f "$gentop/$newobj"; then break; fi ;; esac done $show "ln $obj $gentop/$newobj || cp $obj $gentop/$newobj" $run ln "$obj" "$gentop/$newobj" || $run cp "$obj" "$gentop/$newobj" oldobjs="$oldobjs $gentop/$newobj" ;; *) oldobjs="$oldobjs $obj" ;; esac done fi eval cmds=\"$old_archive_cmds\" if len=`expr "X$cmds" : ".*"` && test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then cmds=$old_archive_cmds else # the command line is too long to link in one step, link in parts $echo "using piecewise archive linking..." save_RANLIB=$RANLIB RANLIB=: objlist= concat_cmds= save_oldobjs=$oldobjs # Is there a better way of finding the last object in the list? for obj in $save_oldobjs do last_oldobj=$obj done for obj in $save_oldobjs do oldobjs="$objlist $obj" objlist="$objlist $obj" eval test_cmds=\"$old_archive_cmds\" if len=`expr "X$test_cmds" : ".*" 2>/dev/null` && test "$len" -le "$max_cmd_len"; then : else # the above command should be used before it gets too long oldobjs=$objlist if test "$obj" = "$last_oldobj" ; then RANLIB=$save_RANLIB fi test -z "$concat_cmds" || concat_cmds=$concat_cmds~ eval concat_cmds=\"\${concat_cmds}$old_archive_cmds\" objlist= fi done RANLIB=$save_RANLIB oldobjs=$objlist if test "X$oldobjs" = "X" ; then eval cmds=\"\$concat_cmds\" else eval cmds=\"\$concat_cmds~\$old_archive_cmds\" fi fi fi save_ifs="$IFS"; IFS='~' for cmd in $cmds; do eval cmd=\"$cmd\" IFS="$save_ifs" $show "$cmd" $run eval "$cmd" || exit $? done IFS="$save_ifs" done if test -n "$generated"; then $show "${rm}r$generated" $run ${rm}r$generated fi # Now create the libtool archive. case $output in *.la) old_library= test "$build_old_libs" = yes && old_library="$libname.$libext" $show "creating $output" # Preserve any variables that may affect compiler behavior for var in $variables_saved_for_relink; do if eval test -z \"\${$var+set}\"; then relink_command="{ test -z \"\${$var+set}\" || unset $var || { $var=; export $var; }; }; $relink_command" elif eval var_value=\$$var; test -z "$var_value"; then relink_command="$var=; export $var; $relink_command" else var_value=`$echo "X$var_value" | $Xsed -e "$sed_quote_subst"` relink_command="$var=\"$var_value\"; export $var; $relink_command" fi done # Quote the link command for shipping. relink_command="(cd `pwd`; $SHELL $progpath $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)" relink_command=`$echo "X$relink_command" | $SP2NL | $Xsed -e "$sed_quote_subst" | $NL2SP` if test "$hardcode_automatic" = yes ; then relink_command= fi # Only create the output if not a dry run. if test -z "$run"; then for installed in no yes; do if test "$installed" = yes; then if test -z "$install_libdir"; then break fi output="$output_objdir/$outputname"i # Replace all uninstalled libtool libraries with the installed ones newdependency_libs= for deplib in $dependency_libs; do case $deplib in *.la) name=`$echo "X$deplib" | $Xsed -e 's%^.*/%%'` eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` if test -z "$libdir"; then $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2 exit $EXIT_FAILURE fi newdependency_libs="$newdependency_libs $libdir/$name" ;; *) newdependency_libs="$newdependency_libs $deplib" ;; esac done dependency_libs="$newdependency_libs" newdlfiles= for lib in $dlfiles; do name=`$echo "X$lib" | $Xsed -e 's%^.*/%%'` eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` if test -z "$libdir"; then $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 exit $EXIT_FAILURE fi newdlfiles="$newdlfiles $libdir/$name" done dlfiles="$newdlfiles" newdlprefiles= for lib in $dlprefiles; do name=`$echo "X$lib" | $Xsed -e 's%^.*/%%'` eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` if test -z "$libdir"; then $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 exit $EXIT_FAILURE fi newdlprefiles="$newdlprefiles $libdir/$name" done dlprefiles="$newdlprefiles" else newdlfiles= for lib in $dlfiles; do case $lib in [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; *) abs=`pwd`"/$lib" ;; esac newdlfiles="$newdlfiles $abs" done dlfiles="$newdlfiles" newdlprefiles= for lib in $dlprefiles; do case $lib in [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; *) abs=`pwd`"/$lib" ;; esac newdlprefiles="$newdlprefiles $abs" done dlprefiles="$newdlprefiles" fi $rm $output # place dlname in correct position for cygwin tdlname=$dlname case $host,$output,$installed,$module,$dlname in *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll) tdlname=../bin/$dlname ;; esac $echo > $output "\ # $outputname - a libtool library file # Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP # # Please DO NOT delete this file! # It is necessary for linking the library. # The name that we can dlopen(3). dlname='$tdlname' # Names of this library. library_names='$library_names' # The name of the static archive. old_library='$old_library' # Libraries that this one depends upon. dependency_libs='$dependency_libs' # Version information for $libname. current=$current age=$age revision=$revision # Is this an already installed library? installed=$installed # Should we warn about portability when linking against -modules? shouldnotlink=$module # Files to dlopen/dlpreopen dlopen='$dlfiles' dlpreopen='$dlprefiles' # Directory that this library needs to be installed in: libdir='$install_libdir'" if test "$installed" = no && test "$need_relink" = yes; then $echo >> $output "\ relink_command=\"$relink_command\"" fi done fi # Do a symbolic link so that the libtool archive can be found in # LD_LIBRARY_PATH before the program is installed. $show "(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)" $run eval '(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)' || exit $? ;; esac exit $EXIT_SUCCESS ;; # libtool install mode install) modename="$modename: install" # There may be an optional sh(1) argument at the beginning of # install_prog (especially on Windows NT). if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh || # Allow the use of GNU shtool's install command. $echo "X$nonopt" | grep shtool > /dev/null; then # Aesthetically quote it. arg=`$echo "X$nonopt" | $Xsed -e "$sed_quote_subst"` case $arg in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") arg="\"$arg\"" ;; esac install_prog="$arg " arg="$1" shift else install_prog= arg=$nonopt fi # The real first argument should be the name of the installation program. # Aesthetically quote it. arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` case $arg in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") arg="\"$arg\"" ;; esac install_prog="$install_prog$arg" # We need to accept at least all the BSD install flags. dest= files= opts= prev= install_type= isdir=no stripme= for arg do if test -n "$dest"; then files="$files $dest" dest=$arg continue fi case $arg in -d) isdir=yes ;; -f) case " $install_prog " in *[\\\ /]cp\ *) ;; *) prev=$arg ;; esac ;; -g | -m | -o) prev=$arg ;; -s) stripme=" -s" continue ;; -*) ;; *) # If the previous option needed an argument, then skip it. if test -n "$prev"; then prev= else dest=$arg continue fi ;; esac # Aesthetically quote the argument. arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` case $arg in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") arg="\"$arg\"" ;; esac install_prog="$install_prog $arg" done if test -z "$install_prog"; then $echo "$modename: you must specify an install program" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE fi if test -n "$prev"; then $echo "$modename: the \`$prev' option requires an argument" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE fi if test -z "$files"; then if test -z "$dest"; then $echo "$modename: no file or destination specified" 1>&2 else $echo "$modename: you must specify a destination" 1>&2 fi $echo "$help" 1>&2 exit $EXIT_FAILURE fi # Strip any trailing slash from the destination. dest=`$echo "X$dest" | $Xsed -e 's%/$%%'` # Check to see that the destination is a directory. test -d "$dest" && isdir=yes if test "$isdir" = yes; then destdir="$dest" destname= else destdir=`$echo "X$dest" | $Xsed -e 's%/[^/]*$%%'` test "X$destdir" = "X$dest" && destdir=. destname=`$echo "X$dest" | $Xsed -e 's%^.*/%%'` # Not a directory, so check to see that there is only one file specified. set dummy $files if test "$#" -gt 2; then $echo "$modename: \`$dest' is not a directory" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE fi fi case $destdir in [\\/]* | [A-Za-z]:[\\/]*) ;; *) for file in $files; do case $file in *.lo) ;; *) $echo "$modename: \`$destdir' must be an absolute directory name" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE ;; esac done ;; esac # This variable tells wrapper scripts just to set variables rather # than running their programs. libtool_install_magic="$magic" staticlibs= future_libdirs= current_libdirs= for file in $files; do # Do each installation. case $file in *.$libext) # Do the static libraries later. staticlibs="$staticlibs $file" ;; *.la) # Check to see that this really is a libtool archive. if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then : else $echo "$modename: \`$file' is not a valid libtool archive" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE fi library_names= old_library= relink_command= # If there is no directory component, then add one. case $file in */* | *\\*) . $file ;; *) . ./$file ;; esac # Add the libdir to current_libdirs if it is the destination. if test "X$destdir" = "X$libdir"; then case "$current_libdirs " in *" $libdir "*) ;; *) current_libdirs="$current_libdirs $libdir" ;; esac else # Note the libdir as a future libdir. case "$future_libdirs " in *" $libdir "*) ;; *) future_libdirs="$future_libdirs $libdir" ;; esac fi dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`/ test "X$dir" = "X$file/" && dir= dir="$dir$objdir" if test -n "$relink_command"; then # Determine the prefix the user has applied to our future dir. inst_prefix_dir=`$echo "$destdir" | $SED "s%$libdir\$%%"` # Don't allow the user to place us outside of our expected # location b/c this prevents finding dependent libraries that # are installed to the same prefix. # At present, this check doesn't affect windows .dll's that # are installed into $libdir/../bin (currently, that works fine) # but it's something to keep an eye on. if test "$inst_prefix_dir" = "$destdir"; then $echo "$modename: error: cannot install \`$file' to a directory not ending in $libdir" 1>&2 exit $EXIT_FAILURE fi if test -n "$inst_prefix_dir"; then # Stick the inst_prefix_dir data into the link command. relink_command=`$echo "$relink_command" | $SP2NL | $SED "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%" | $NL2SP` else relink_command=`$echo "$relink_command" | $SP2NL | $SED "s%@inst_prefix_dir@%%" | $NL2SP` fi $echo "$modename: warning: relinking \`$file'" 1>&2 $show "$relink_command" if $run eval "$relink_command"; then : else $echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2 exit $EXIT_FAILURE fi fi # See the names of the shared library. set dummy $library_names if test -n "$2"; then realname="$2" shift shift srcname="$realname" test -n "$relink_command" && srcname="$realname"T # Install the shared library and build the symlinks. $show "$install_prog $dir/$srcname $destdir/$realname" $run eval "$install_prog $dir/$srcname $destdir/$realname" || exit $? if test -n "$stripme" && test -n "$striplib"; then $show "$striplib $destdir/$realname" $run eval "$striplib $destdir/$realname" || exit $? fi if test "$#" -gt 0; then # Delete the old symlinks, and create new ones. # Try `ln -sf' first, because the `ln' binary might depend on # the symlink we replace! Solaris /bin/ln does not understand -f, # so we also need to try rm && ln -s. for linkname do if test "$linkname" != "$realname"; then $show "(cd $destdir && { $LN_S -f $realname $linkname || { $rm $linkname && $LN_S $realname $linkname; }; })" $run eval "(cd $destdir && { $LN_S -f $realname $linkname || { $rm $linkname && $LN_S $realname $linkname; }; })" fi done fi # Do each command in the postinstall commands. lib="$destdir/$realname" cmds=$postinstall_cmds save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" eval cmd=\"$cmd\" $show "$cmd" $run eval "$cmd" || { lt_exit=$? # Restore the uninstalled library and exit if test "$mode" = relink; then $run eval '(cd $output_objdir && $rm ${realname}T && $mv ${realname}U $realname)' fi exit $lt_exit } done IFS="$save_ifs" fi # Install the pseudo-library for information purposes. name=`$echo "X$file" | $Xsed -e 's%^.*/%%'` instname="$dir/$name"i $show "$install_prog $instname $destdir/$name" $run eval "$install_prog $instname $destdir/$name" || exit $? # Maybe install the static library, too. test -n "$old_library" && staticlibs="$staticlibs $dir/$old_library" ;; *.lo) # Install (i.e. copy) a libtool object. # Figure out destination file name, if it wasn't already specified. if test -n "$destname"; then destfile="$destdir/$destname" else destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'` destfile="$destdir/$destfile" fi # Deduce the name of the destination old-style object file. case $destfile in *.lo) staticdest=`$echo "X$destfile" | $Xsed -e "$lo2o"` ;; *.$objext) staticdest="$destfile" destfile= ;; *) $echo "$modename: cannot copy a libtool object to \`$destfile'" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE ;; esac # Install the libtool object if requested. if test -n "$destfile"; then $show "$install_prog $file $destfile" $run eval "$install_prog $file $destfile" || exit $? fi # Install the old object if enabled. if test "$build_old_libs" = yes; then # Deduce the name of the old-style object file. staticobj=`$echo "X$file" | $Xsed -e "$lo2o"` $show "$install_prog $staticobj $staticdest" $run eval "$install_prog \$staticobj \$staticdest" || exit $? fi exit $EXIT_SUCCESS ;; *) # Figure out destination file name, if it wasn't already specified. if test -n "$destname"; then destfile="$destdir/$destname" else destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'` destfile="$destdir/$destfile" fi # If the file is missing, and there is a .exe on the end, strip it # because it is most likely a libtool script we actually want to # install stripped_ext="" case $file in *.exe) if test ! -f "$file"; then file=`$echo $file|${SED} 's,.exe$,,'` stripped_ext=".exe" fi ;; esac # Do a test to see if this is really a libtool program. case $host in *cygwin*|*mingw*) wrapper=`$echo $file | ${SED} -e 's,.exe$,,'` ;; *) wrapper=$file ;; esac if (${SED} -e '4q' $wrapper | grep "^# Generated by .*$PACKAGE")>/dev/null 2>&1; then notinst_deplibs= relink_command= # Note that it is not necessary on cygwin/mingw to append a dot to # foo even if both foo and FILE.exe exist: automatic-append-.exe # behavior happens only for exec(3), not for open(2)! Also, sourcing # `FILE.' does not work on cygwin managed mounts. # # If there is no directory component, then add one. case $wrapper in */* | *\\*) . ${wrapper} ;; *) . ./${wrapper} ;; esac # Check the variables that should have been set. if test -z "$notinst_deplibs"; then $echo "$modename: invalid libtool wrapper script \`$wrapper'" 1>&2 exit $EXIT_FAILURE fi finalize=yes for lib in $notinst_deplibs; do # Check to see that each library is installed. libdir= if test -f "$lib"; then # If there is no directory component, then add one. case $lib in */* | *\\*) . $lib ;; *) . ./$lib ;; esac fi libfile="$libdir/"`$echo "X$lib" | $Xsed -e 's%^.*/%%g'` ### testsuite: skip nested quoting test if test -n "$libdir" && test ! -f "$libfile"; then $echo "$modename: warning: \`$lib' has not been installed in \`$libdir'" 1>&2 finalize=no fi done relink_command= # Note that it is not necessary on cygwin/mingw to append a dot to # foo even if both foo and FILE.exe exist: automatic-append-.exe # behavior happens only for exec(3), not for open(2)! Also, sourcing # `FILE.' does not work on cygwin managed mounts. # # If there is no directory component, then add one. case $wrapper in */* | *\\*) . ${wrapper} ;; *) . ./${wrapper} ;; esac outputname= if test "$fast_install" = no && test -n "$relink_command"; then if test "$finalize" = yes && test -z "$run"; then tmpdir=`func_mktempdir` file=`$echo "X$file$stripped_ext" | $Xsed -e 's%^.*/%%'` outputname="$tmpdir/$file" # Replace the output file specification. relink_command=`$echo "X$relink_command" | $SP2NL | $Xsed -e 's%@OUTPUT@%'"$outputname"'%g' | $NL2SP` $show "$relink_command" if $run eval "$relink_command"; then : else $echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2 ${rm}r "$tmpdir" continue fi file="$outputname" else $echo "$modename: warning: cannot relink \`$file'" 1>&2 fi else # Install the binary that we compiled earlier. file=`$echo "X$file$stripped_ext" | $Xsed -e "s%\([^/]*\)$%$objdir/\1%"` fi fi # remove .exe since cygwin /usr/bin/install will append another # one anyway case $install_prog,$host in */usr/bin/install*,*cygwin*) case $file:$destfile in *.exe:*.exe) # this is ok ;; *.exe:*) destfile=$destfile.exe ;; *:*.exe) destfile=`$echo $destfile | ${SED} -e 's,.exe$,,'` ;; esac ;; esac $show "$install_prog$stripme $file $destfile" $run eval "$install_prog\$stripme \$file \$destfile" || exit $? test -n "$outputname" && ${rm}r "$tmpdir" ;; esac done for file in $staticlibs; do name=`$echo "X$file" | $Xsed -e 's%^.*/%%'` # Set up the ranlib parameters. oldlib="$destdir/$name" $show "$install_prog $file $oldlib" $run eval "$install_prog \$file \$oldlib" || exit $? if test -n "$stripme" && test -n "$old_striplib"; then $show "$old_striplib $oldlib" $run eval "$old_striplib $oldlib" || exit $? fi # Do each command in the postinstall commands. cmds=$old_postinstall_cmds save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" eval cmd=\"$cmd\" $show "$cmd" $run eval "$cmd" || exit $? done IFS="$save_ifs" done if test -n "$future_libdirs"; then $echo "$modename: warning: remember to run \`$progname --finish$future_libdirs'" 1>&2 fi if test -n "$current_libdirs"; then # Maybe just do a dry run. test -n "$run" && current_libdirs=" -n$current_libdirs" exec_cmd='$SHELL $progpath $preserve_args --finish$current_libdirs' else exit $EXIT_SUCCESS fi ;; # libtool finish mode finish) modename="$modename: finish" libdirs="$nonopt" admincmds= if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then for dir do libdirs="$libdirs $dir" done for libdir in $libdirs; do if test -n "$finish_cmds"; then # Do each command in the finish commands. cmds=$finish_cmds save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" eval cmd=\"$cmd\" $show "$cmd" $run eval "$cmd" || admincmds="$admincmds $cmd" done IFS="$save_ifs" fi if test -n "$finish_eval"; then # Do the single finish_eval. eval cmds=\"$finish_eval\" $run eval "$cmds" || admincmds="$admincmds $cmds" fi done fi # Exit here if they wanted silent mode. test "$show" = : && exit $EXIT_SUCCESS $echo "X----------------------------------------------------------------------" | $Xsed $echo "Libraries have been installed in:" for libdir in $libdirs; do $echo " $libdir" done $echo $echo "If you ever happen to want to link against installed libraries" $echo "in a given directory, LIBDIR, you must either use libtool, and" $echo "specify the full pathname of the library, or use the \`-LLIBDIR'" $echo "flag during linking and do at least one of the following:" if test -n "$shlibpath_var"; then $echo " - add LIBDIR to the \`$shlibpath_var' environment variable" $echo " during execution" fi if test -n "$runpath_var"; then $echo " - add LIBDIR to the \`$runpath_var' environment variable" $echo " during linking" fi if test -n "$hardcode_libdir_flag_spec"; then libdir=LIBDIR eval flag=\"$hardcode_libdir_flag_spec\" $echo " - use the \`$flag' linker flag" fi if test -n "$admincmds"; then $echo " - have your system administrator run these commands:$admincmds" fi if test -f /etc/ld.so.conf; then $echo " - have your system administrator add LIBDIR to \`/etc/ld.so.conf'" fi $echo $echo "See any operating system documentation about shared libraries for" $echo "more information, such as the ld(1) and ld.so(8) manual pages." $echo "X----------------------------------------------------------------------" | $Xsed exit $EXIT_SUCCESS ;; # libtool execute mode execute) modename="$modename: execute" # The first argument is the command name. cmd="$nonopt" if test -z "$cmd"; then $echo "$modename: you must specify a COMMAND" 1>&2 $echo "$help" exit $EXIT_FAILURE fi # Handle -dlopen flags immediately. for file in $execute_dlfiles; do if test ! -f "$file"; then $echo "$modename: \`$file' is not a file" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE fi dir= case $file in *.la) # Check to see that this really is a libtool archive. if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then : else $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE fi # Read the libtool library. dlname= library_names= # If there is no directory component, then add one. case $file in */* | *\\*) . $file ;; *) . ./$file ;; esac # Skip this library if it cannot be dlopened. if test -z "$dlname"; then # Warn if it was a shared library. test -n "$library_names" && $echo "$modename: warning: \`$file' was not linked with \`-export-dynamic'" continue fi dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'` test "X$dir" = "X$file" && dir=. if test -f "$dir/$objdir/$dlname"; then dir="$dir/$objdir" else if test ! -f "$dir/$dlname"; then $echo "$modename: cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" 1>&2 exit $EXIT_FAILURE fi fi ;; *.lo) # Just add the directory containing the .lo file. dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'` test "X$dir" = "X$file" && dir=. ;; *) $echo "$modename: warning \`-dlopen' is ignored for non-libtool libraries and objects" 1>&2 continue ;; esac # Get the absolute pathname. absdir=`cd "$dir" && pwd` test -n "$absdir" && dir="$absdir" # Now add the directory to shlibpath_var. if eval "test -z \"\$$shlibpath_var\""; then eval "$shlibpath_var=\"\$dir\"" else eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\"" fi done # This variable tells wrapper scripts just to set shlibpath_var # rather than running their programs. libtool_execute_magic="$magic" # Check if any of the arguments is a wrapper script. args= for file do case $file in -*) ;; *) # Do a test to see if this is really a libtool program. if (${SED} -e '4q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then # If there is no directory component, then add one. case $file in */* | *\\*) . $file ;; *) . ./$file ;; esac # Transform arg to wrapped name. file="$progdir/$program" fi ;; esac # Quote arguments (to preserve shell metacharacters). file=`$echo "X$file" | $Xsed -e "$sed_quote_subst"` args="$args \"$file\"" done if test -z "$run"; then if test -n "$shlibpath_var"; then # Export the shlibpath_var. eval "export $shlibpath_var" fi # Restore saved environment variables for lt_var in LANG LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES do eval "if test \"\${save_$lt_var+set}\" = set; then $lt_var=\$save_$lt_var; export $lt_var fi" done # Now prepare to actually exec the command. exec_cmd="\$cmd$args" else # Display what would be done. if test -n "$shlibpath_var"; then eval "\$echo \"\$shlibpath_var=\$$shlibpath_var\"" $echo "export $shlibpath_var" fi $echo "$cmd$args" exit $EXIT_SUCCESS fi ;; # libtool clean and uninstall mode clean | uninstall) modename="$modename: $mode" rm="$nonopt" files= rmforce= exit_status=0 # This variable tells wrapper scripts just to set variables rather # than running their programs. libtool_install_magic="$magic" for arg do case $arg in -f) rm="$rm $arg"; rmforce=yes ;; -*) rm="$rm $arg" ;; *) files="$files $arg" ;; esac done if test -z "$rm"; then $echo "$modename: you must specify an RM program" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE fi rmdirs= origobjdir="$objdir" for file in $files; do dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'` if test "X$dir" = "X$file"; then dir=. objdir="$origobjdir" else objdir="$dir/$origobjdir" fi name=`$echo "X$file" | $Xsed -e 's%^.*/%%'` test "$mode" = uninstall && objdir="$dir" # Remember objdir for removal later, being careful to avoid duplicates if test "$mode" = clean; then case " $rmdirs " in *" $objdir "*) ;; *) rmdirs="$rmdirs $objdir" ;; esac fi # Don't error if the file doesn't exist and rm -f was used. if (test -L "$file") >/dev/null 2>&1 \ || (test -h "$file") >/dev/null 2>&1 \ || test -f "$file"; then : elif test -d "$file"; then exit_status=1 continue elif test "$rmforce" = yes; then continue fi rmfiles="$file" case $name in *.la) # Possibly a libtool archive, so verify it. if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then . $dir/$name # Delete the libtool libraries and symlinks. for n in $library_names; do rmfiles="$rmfiles $objdir/$n" done test -n "$old_library" && rmfiles="$rmfiles $objdir/$old_library" case "$mode" in clean) case " $library_names " in # " " in the beginning catches empty $dlname *" $dlname "*) ;; *) rmfiles="$rmfiles $objdir/$dlname" ;; esac test -n "$libdir" && rmfiles="$rmfiles $objdir/$name $objdir/${name}i" ;; uninstall) if test -n "$library_names"; then # Do each command in the postuninstall commands. cmds=$postuninstall_cmds save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" eval cmd=\"$cmd\" $show "$cmd" $run eval "$cmd" if test "$?" -ne 0 && test "$rmforce" != yes; then exit_status=1 fi done IFS="$save_ifs" fi if test -n "$old_library"; then # Do each command in the old_postuninstall commands. cmds=$old_postuninstall_cmds save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" eval cmd=\"$cmd\" $show "$cmd" $run eval "$cmd" if test "$?" -ne 0 && test "$rmforce" != yes; then exit_status=1 fi done IFS="$save_ifs" fi # FIXME: should reinstall the best remaining shared library. ;; esac fi ;; *.lo) # Possibly a libtool object, so verify it. if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then # Read the .lo file . $dir/$name # Add PIC object to the list of files to remove. if test -n "$pic_object" \ && test "$pic_object" != none; then rmfiles="$rmfiles $dir/$pic_object" fi # Add non-PIC object to the list of files to remove. if test -n "$non_pic_object" \ && test "$non_pic_object" != none; then rmfiles="$rmfiles $dir/$non_pic_object" fi fi ;; *) if test "$mode" = clean ; then noexename=$name case $file in *.exe) file=`$echo $file|${SED} 's,.exe$,,'` noexename=`$echo $name|${SED} 's,.exe$,,'` # $file with .exe has already been added to rmfiles, # add $file without .exe rmfiles="$rmfiles $file" ;; esac # Do a test to see if this is a libtool program. if (${SED} -e '4q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then relink_command= . $dir/$noexename # note $name still contains .exe if it was in $file originally # as does the version of $file that was added into $rmfiles rmfiles="$rmfiles $objdir/$name $objdir/${name}S.${objext}" if test "$fast_install" = yes && test -n "$relink_command"; then rmfiles="$rmfiles $objdir/lt-$name" fi if test "X$noexename" != "X$name" ; then rmfiles="$rmfiles $objdir/lt-${noexename}.c" fi fi fi ;; esac $show "$rm $rmfiles" $run $rm $rmfiles || exit_status=1 done objdir="$origobjdir" # Try to remove the ${objdir}s in the directories where we deleted files for dir in $rmdirs; do if test -d "$dir"; then $show "rmdir $dir" $run rmdir $dir >/dev/null 2>&1 fi done exit $exit_status ;; "") $echo "$modename: you must specify a MODE" 1>&2 $echo "$generic_help" 1>&2 exit $EXIT_FAILURE ;; esac if test -z "$exec_cmd"; then $echo "$modename: invalid operation mode \`$mode'" 1>&2 $echo "$generic_help" 1>&2 exit $EXIT_FAILURE fi fi # test -z "$show_help" if test -n "$exec_cmd"; then eval exec $exec_cmd exit $EXIT_FAILURE fi # We need to display help for each of the modes. case $mode in "") $echo \ "Usage: $modename [OPTION]... [MODE-ARG]... Provide generalized library-building support services. --config show all configuration variables --debug enable verbose shell tracing -n, --dry-run display commands without modifying any files --features display basic configuration information and exit --finish same as \`--mode=finish' --help display this help message and exit --mode=MODE use operation mode MODE [default=inferred from MODE-ARGS] --quiet same as \`--silent' --silent don't print informational messages --tag=TAG use configuration variables from tag TAG --version print version information MODE must be one of the following: clean remove files from the build directory compile compile a source file into a libtool object execute automatically set library path, then run a program finish complete the installation of libtool libraries install install libraries or executables link create a library or an executable uninstall remove libraries from an installed directory MODE-ARGS vary depending on the MODE. Try \`$modename --help --mode=MODE' for a more detailed description of MODE. Report bugs to ." exit $EXIT_SUCCESS ;; clean) $echo \ "Usage: $modename [OPTION]... --mode=clean RM [RM-OPTION]... FILE... Remove files from the build directory. RM is the name of the program to use to delete files associated with each FILE (typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed to RM. If FILE is a libtool library, object or program, all the files associated with it are deleted. Otherwise, only FILE itself is deleted using RM." ;; compile) $echo \ "Usage: $modename [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE Compile a source file into a libtool library object. This mode accepts the following additional options: -o OUTPUT-FILE set the output file name to OUTPUT-FILE -prefer-pic try to building PIC objects only -prefer-non-pic try to building non-PIC objects only -static always build a \`.o' file suitable for static linking COMPILE-COMMAND is a command to be used in creating a \`standard' object file from the given SOURCEFILE. The output file name is determined by removing the directory component from SOURCEFILE, then substituting the C source code suffix \`.c' with the library object suffix, \`.lo'." ;; execute) $echo \ "Usage: $modename [OPTION]... --mode=execute COMMAND [ARGS]... Automatically set library path, then run a program. This mode accepts the following additional options: -dlopen FILE add the directory containing FILE to the library path This mode sets the library path environment variable according to \`-dlopen' flags. If any of the ARGS are libtool executable wrappers, then they are translated into their corresponding uninstalled binary, and any of their required library directories are added to the library path. Then, COMMAND is executed, with ARGS as arguments." ;; finish) $echo \ "Usage: $modename [OPTION]... --mode=finish [LIBDIR]... Complete the installation of libtool libraries. Each LIBDIR is a directory that contains libtool libraries. The commands that this mode executes may require superuser privileges. Use the \`--dry-run' option if you just want to see what would be executed." ;; install) $echo \ "Usage: $modename [OPTION]... --mode=install INSTALL-COMMAND... Install executables or libraries. INSTALL-COMMAND is the installation command. The first component should be either the \`install' or \`cp' program. The rest of the components are interpreted as arguments to that command (only BSD-compatible install options are recognized)." ;; link) $echo \ "Usage: $modename [OPTION]... --mode=link LINK-COMMAND... Link object files or libraries together to form another library, or to create an executable program. LINK-COMMAND is a command using the C compiler that you would use to create a program from several object files. The following components of LINK-COMMAND are treated specially: -all-static do not do any dynamic linking at all -avoid-version do not add a version suffix if possible -dlopen FILE \`-dlpreopen' FILE if it cannot be dlopened at runtime -dlpreopen FILE link in FILE and add its symbols to lt_preloaded_symbols -export-dynamic allow symbols from OUTPUT-FILE to be resolved with dlsym(3) -export-symbols SYMFILE try to export only the symbols listed in SYMFILE -export-symbols-regex REGEX try to export only the symbols matching REGEX -LLIBDIR search LIBDIR for required installed libraries -lNAME OUTPUT-FILE requires the installed library libNAME -module build a library that can dlopened -no-fast-install disable the fast-install mode -no-install link a not-installable executable -no-undefined declare that a library does not refer to external symbols -o OUTPUT-FILE create OUTPUT-FILE from the specified objects -objectlist FILE Use a list of object files found in FILE to specify objects -precious-files-regex REGEX don't remove output files matching REGEX -release RELEASE specify package release information -rpath LIBDIR the created library will eventually be installed in LIBDIR -R[ ]LIBDIR add LIBDIR to the runtime path of programs and libraries -static do not do any dynamic linking of uninstalled libtool libraries -static-libtool-libs do not do any dynamic linking of libtool libraries -version-info CURRENT[:REVISION[:AGE]] specify library version info [each variable defaults to 0] All other options (arguments beginning with \`-') are ignored. Every other argument is treated as a filename. Files ending in \`.la' are treated as uninstalled libtool libraries, other files are standard or library object files. If the OUTPUT-FILE ends in \`.la', then a libtool library is created, only library objects (\`.lo' files) may be specified, and \`-rpath' is required, except when creating a convenience library. If OUTPUT-FILE ends in \`.a' or \`.lib', then a standard library is created using \`ar' and \`ranlib', or on Windows using \`lib'. If OUTPUT-FILE ends in \`.lo' or \`.${objext}', then a reloadable object file is created, otherwise an executable program is created." ;; uninstall) $echo \ "Usage: $modename [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE... Remove libraries from an installation directory. RM is the name of the program to use to delete files associated with each FILE (typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed to RM. If FILE is a libtool library, all the files associated with it are deleted. Otherwise, only FILE itself is deleted using RM." ;; *) $echo "$modename: invalid operation mode \`$mode'" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE ;; esac $echo $echo "Try \`$modename --help' for more information about other modes." exit $? # The TAGs below are defined such that we never get into a situation # in which we disable both kinds of libraries. Given conflicting # choices, we go for a static library, that is the most portable, # since we can't tell whether shared libraries were disabled because # the user asked for that or because the platform doesn't support # them. This is particularly important on AIX, because we don't # support having both static and shared libraries enabled at the same # time on that platform, so we default to a shared-only configuration. # If a disable-shared tag is given, we'll fallback to a static-only # configuration. But we'll never go from static-only to shared-only. # ### BEGIN LIBTOOL TAG CONFIG: disable-shared disable_libs=shared # ### END LIBTOOL TAG CONFIG: disable-shared # ### BEGIN LIBTOOL TAG CONFIG: disable-static disable_libs=static # ### END LIBTOOL TAG CONFIG: disable-static # Local Variables: # mode:shell-script # sh-indentation:2 # End: mock-1.1.33/build/install-sh0000755001204700120500000003325512205226665012566 00000000000000#!/bin/sh # install - install a program, script, or datafile scriptversion=2011-11-20.07; # UTC # This originates from X11R5 (mit/util/scripts/install.sh), which was # later released in X11R6 (xc/config/util/install.sh) with the # following copyright and license. # # Copyright (C) 1994 X Consortium # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to # deal in the Software without restriction, including without limitation the # rights to use, copy, modify, merge, publish, distribute, sublicense, and/or # sell copies of the Software, and to permit persons to whom the Software is # furnished to do so, subject to the following conditions: # # The above copyright notice and this permission notice shall be included in # all copies or substantial portions of the Software. # # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE # X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN # AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC- # TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. # # Except as contained in this notice, the name of the X Consortium shall not # be used in advertising or otherwise to promote the sale, use or other deal- # ings in this Software without prior written authorization from the X Consor- # tium. # # # FSF changes to this file are in the public domain. # # Calling this script install-sh is preferred over install.sh, to prevent # 'make' implicit rules from creating a file called install from it # when there is no Makefile. # # This script is compatible with the BSD install script, but was written # from scratch. nl=' ' IFS=" "" $nl" # set DOITPROG to echo to test this script # Don't use :- since 4.3BSD and earlier shells don't like it. doit=${DOITPROG-} if test -z "$doit"; then doit_exec=exec else doit_exec=$doit fi # Put in absolute file names if you don't have them in your path; # or use environment vars. chgrpprog=${CHGRPPROG-chgrp} chmodprog=${CHMODPROG-chmod} chownprog=${CHOWNPROG-chown} cmpprog=${CMPPROG-cmp} cpprog=${CPPROG-cp} mkdirprog=${MKDIRPROG-mkdir} mvprog=${MVPROG-mv} rmprog=${RMPROG-rm} stripprog=${STRIPPROG-strip} posix_glob='?' initialize_posix_glob=' test "$posix_glob" != "?" || { if (set -f) 2>/dev/null; then posix_glob= else posix_glob=: fi } ' posix_mkdir= # Desired mode of installed file. mode=0755 chgrpcmd= chmodcmd=$chmodprog chowncmd= mvcmd=$mvprog rmcmd="$rmprog -f" stripcmd= src= dst= dir_arg= dst_arg= copy_on_change=false no_target_directory= usage="\ Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE or: $0 [OPTION]... SRCFILES... DIRECTORY or: $0 [OPTION]... -t DIRECTORY SRCFILES... or: $0 [OPTION]... -d DIRECTORIES... In the 1st form, copy SRCFILE to DSTFILE. In the 2nd and 3rd, copy all SRCFILES to DIRECTORY. In the 4th, create DIRECTORIES. Options: --help display this help and exit. --version display version info and exit. -c (ignored) -C install only if different (preserve the last data modification time) -d create directories instead of installing files. -g GROUP $chgrpprog installed files to GROUP. -m MODE $chmodprog installed files to MODE. -o USER $chownprog installed files to USER. -s $stripprog installed files. -t DIRECTORY install into DIRECTORY. -T report an error if DSTFILE is a directory. Environment variables override the default commands: CHGRPPROG CHMODPROG CHOWNPROG CMPPROG CPPROG MKDIRPROG MVPROG RMPROG STRIPPROG " while test $# -ne 0; do case $1 in -c) ;; -C) copy_on_change=true;; -d) dir_arg=true;; -g) chgrpcmd="$chgrpprog $2" shift;; --help) echo "$usage"; exit $?;; -m) mode=$2 case $mode in *' '* | *' '* | *' '* | *'*'* | *'?'* | *'['*) echo "$0: invalid mode: $mode" >&2 exit 1;; esac shift;; -o) chowncmd="$chownprog $2" shift;; -s) stripcmd=$stripprog;; -t) dst_arg=$2 # Protect names problematic for 'test' and other utilities. case $dst_arg in -* | [=\(\)!]) dst_arg=./$dst_arg;; esac shift;; -T) no_target_directory=true;; --version) echo "$0 $scriptversion"; exit $?;; --) shift break;; -*) echo "$0: invalid option: $1" >&2 exit 1;; *) break;; esac shift done if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then # When -d is used, all remaining arguments are directories to create. # When -t is used, the destination is already specified. # Otherwise, the last argument is the destination. Remove it from $@. for arg do if test -n "$dst_arg"; then # $@ is not empty: it contains at least $arg. set fnord "$@" "$dst_arg" shift # fnord fi shift # arg dst_arg=$arg # Protect names problematic for 'test' and other utilities. case $dst_arg in -* | [=\(\)!]) dst_arg=./$dst_arg;; esac done fi if test $# -eq 0; then if test -z "$dir_arg"; then echo "$0: no input file specified." >&2 exit 1 fi # It's OK to call 'install-sh -d' without argument. # This can happen when creating conditional directories. exit 0 fi if test -z "$dir_arg"; then do_exit='(exit $ret); exit $ret' trap "ret=129; $do_exit" 1 trap "ret=130; $do_exit" 2 trap "ret=141; $do_exit" 13 trap "ret=143; $do_exit" 15 # Set umask so as not to create temps with too-generous modes. # However, 'strip' requires both read and write access to temps. case $mode in # Optimize common cases. *644) cp_umask=133;; *755) cp_umask=22;; *[0-7]) if test -z "$stripcmd"; then u_plus_rw= else u_plus_rw='% 200' fi cp_umask=`expr '(' 777 - $mode % 1000 ')' $u_plus_rw`;; *) if test -z "$stripcmd"; then u_plus_rw= else u_plus_rw=,u+rw fi cp_umask=$mode$u_plus_rw;; esac fi for src do # Protect names problematic for 'test' and other utilities. case $src in -* | [=\(\)!]) src=./$src;; esac if test -n "$dir_arg"; then dst=$src dstdir=$dst test -d "$dstdir" dstdir_status=$? else # Waiting for this to be detected by the "$cpprog $src $dsttmp" command # might cause directories to be created, which would be especially bad # if $src (and thus $dsttmp) contains '*'. if test ! -f "$src" && test ! -d "$src"; then echo "$0: $src does not exist." >&2 exit 1 fi if test -z "$dst_arg"; then echo "$0: no destination specified." >&2 exit 1 fi dst=$dst_arg # If destination is a directory, append the input filename; won't work # if double slashes aren't ignored. if test -d "$dst"; then if test -n "$no_target_directory"; then echo "$0: $dst_arg: Is a directory" >&2 exit 1 fi dstdir=$dst dst=$dstdir/`basename "$src"` dstdir_status=0 else # Prefer dirname, but fall back on a substitute if dirname fails. dstdir=` (dirname "$dst") 2>/dev/null || expr X"$dst" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$dst" : 'X\(//\)[^/]' \| \ X"$dst" : 'X\(//\)$' \| \ X"$dst" : 'X\(/\)' \| . 2>/dev/null || echo X"$dst" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q' ` test -d "$dstdir" dstdir_status=$? fi fi obsolete_mkdir_used=false if test $dstdir_status != 0; then case $posix_mkdir in '') # Create intermediate dirs using mode 755 as modified by the umask. # This is like FreeBSD 'install' as of 1997-10-28. umask=`umask` case $stripcmd.$umask in # Optimize common cases. *[2367][2367]) mkdir_umask=$umask;; .*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;; *[0-7]) mkdir_umask=`expr $umask + 22 \ - $umask % 100 % 40 + $umask % 20 \ - $umask % 10 % 4 + $umask % 2 `;; *) mkdir_umask=$umask,go-w;; esac # With -d, create the new directory with the user-specified mode. # Otherwise, rely on $mkdir_umask. if test -n "$dir_arg"; then mkdir_mode=-m$mode else mkdir_mode= fi posix_mkdir=false case $umask in *[123567][0-7][0-7]) # POSIX mkdir -p sets u+wx bits regardless of umask, which # is incompatible with FreeBSD 'install' when (umask & 300) != 0. ;; *) tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$ trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0 if (umask $mkdir_umask && exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1 then if test -z "$dir_arg" || { # Check for POSIX incompatibilities with -m. # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or # other-writable bit of parent directory when it shouldn't. # FreeBSD 6.1 mkdir -m -p sets mode of existing directory. ls_ld_tmpdir=`ls -ld "$tmpdir"` case $ls_ld_tmpdir in d????-?r-*) different_mode=700;; d????-?--*) different_mode=755;; *) false;; esac && $mkdirprog -m$different_mode -p -- "$tmpdir" && { ls_ld_tmpdir_1=`ls -ld "$tmpdir"` test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1" } } then posix_mkdir=: fi rmdir "$tmpdir/d" "$tmpdir" else # Remove any dirs left behind by ancient mkdir implementations. rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null fi trap '' 0;; esac;; esac if $posix_mkdir && ( umask $mkdir_umask && $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir" ) then : else # The umask is ridiculous, or mkdir does not conform to POSIX, # or it failed possibly due to a race condition. Create the # directory the slow way, step by step, checking for races as we go. case $dstdir in /*) prefix='/';; [-=\(\)!]*) prefix='./';; *) prefix='';; esac eval "$initialize_posix_glob" oIFS=$IFS IFS=/ $posix_glob set -f set fnord $dstdir shift $posix_glob set +f IFS=$oIFS prefixes= for d do test X"$d" = X && continue prefix=$prefix$d if test -d "$prefix"; then prefixes= else if $posix_mkdir; then (umask=$mkdir_umask && $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break # Don't fail if two instances are running concurrently. test -d "$prefix" || exit 1 else case $prefix in *\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;; *) qprefix=$prefix;; esac prefixes="$prefixes '$qprefix'" fi fi prefix=$prefix/ done if test -n "$prefixes"; then # Don't fail if two instances are running concurrently. (umask $mkdir_umask && eval "\$doit_exec \$mkdirprog $prefixes") || test -d "$dstdir" || exit 1 obsolete_mkdir_used=true fi fi fi if test -n "$dir_arg"; then { test -z "$chowncmd" || $doit $chowncmd "$dst"; } && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } && { test "$obsolete_mkdir_used$chowncmd$chgrpcmd" = false || test -z "$chmodcmd" || $doit $chmodcmd $mode "$dst"; } || exit 1 else # Make a couple of temp file names in the proper directory. dsttmp=$dstdir/_inst.$$_ rmtmp=$dstdir/_rm.$$_ # Trap to clean up those temp files at exit. trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0 # Copy the file name to the temp name. (umask $cp_umask && $doit_exec $cpprog "$src" "$dsttmp") && # and set any options; do chmod last to preserve setuid bits. # # If any of these fail, we abort the whole thing. If we want to # ignore errors from any of these, just make sure not to ignore # errors from the above "$doit $cpprog $src $dsttmp" command. # { test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } && { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } && { test -z "$chmodcmd" || $doit $chmodcmd $mode "$dsttmp"; } && # If -C, don't bother to copy if it wouldn't change the file. if $copy_on_change && old=`LC_ALL=C ls -dlL "$dst" 2>/dev/null` && new=`LC_ALL=C ls -dlL "$dsttmp" 2>/dev/null` && eval "$initialize_posix_glob" && $posix_glob set -f && set X $old && old=:$2:$4:$5:$6 && set X $new && new=:$2:$4:$5:$6 && $posix_glob set +f && test "$old" = "$new" && $cmpprog "$dst" "$dsttmp" >/dev/null 2>&1 then rm -f "$dsttmp" else # Rename the file to the real destination. $doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null || # The rename failed, perhaps because mv can't rename something else # to itself, or perhaps because mv is so ancient that it does not # support -f. { # Now remove or move aside any old file at destination location. # We try this two ways since rm can't unlink itself on some # systems and the destination file might be busy for other # reasons. In this case, the final cleanup might fail but the new # file should still install successfully. { test ! -f "$dst" || $doit $rmcmd -f "$dst" 2>/dev/null || { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null && { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; } } || { echo "$0: cannot unlink or rename $dst" >&2 (exit 1); exit 1 } } && # Now rename the file to the real destination. $doit $mvcmd "$dsttmp" "$dst" } fi || exit 1 trap '' 0 fi done # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-time-zone: "UTC" # time-stamp-end: "; # UTC" # End: mock-1.1.33/build/compile0000755001204700120500000000717310731332136012131 00000000000000#! /bin/sh # Wrapper for compilers which do not understand `-c -o'. scriptversion=2005-05-14.22 # Copyright (C) 1999, 2000, 2003, 2004, 2005 Free Software Foundation, Inc. # Written by Tom Tromey . # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # This file is maintained in Automake, please report # bugs to or send patches to # . case $1 in '') echo "$0: No command. Try \`$0 --help' for more information." 1>&2 exit 1; ;; -h | --h*) cat <<\EOF Usage: compile [--help] [--version] PROGRAM [ARGS] Wrapper for compilers which do not understand `-c -o'. Remove `-o dest.o' from ARGS, run PROGRAM with the remaining arguments, and rename the output as expected. If you are trying to build a whole package this is not the right script to run: please start by reading the file `INSTALL'. Report bugs to . EOF exit $? ;; -v | --v*) echo "compile $scriptversion" exit $? ;; esac ofile= cfile= eat= for arg do if test -n "$eat"; then eat= else case $1 in -o) # configure might choose to run compile as `compile cc -o foo foo.c'. # So we strip `-o arg' only if arg is an object. eat=1 case $2 in *.o | *.obj) ofile=$2 ;; *) set x "$@" -o "$2" shift ;; esac ;; *.c) cfile=$1 set x "$@" "$1" shift ;; *) set x "$@" "$1" shift ;; esac fi shift done if test -z "$ofile" || test -z "$cfile"; then # If no `-o' option was seen then we might have been invoked from a # pattern rule where we don't need one. That is ok -- this is a # normal compilation that the losing compiler can handle. If no # `.c' file was seen then we are probably linking. That is also # ok. exec "$@" fi # Name of file we expect compiler to create. cofile=`echo "$cfile" | sed -e 's|^.*/||' -e 's/\.c$/.o/'` # Create the lock directory. # Note: use `[/.-]' here to ensure that we don't use the same name # that we are using for the .o file. Also, base the name on the expected # object file name, since that is what matters with a parallel build. lockdir=`echo "$cofile" | sed -e 's|[/.-]|_|g'`.d while true; do if mkdir "$lockdir" >/dev/null 2>&1; then break fi sleep 1 done # FIXME: race condition here if user kills between mkdir and trap. trap "rmdir '$lockdir'; exit 1" 1 2 15 # Run the compile. "$@" ret=$? if test -f "$cofile"; then mv "$cofile" "$ofile" elif test -f "${cofile}bj"; then mv "${cofile}bj" "$ofile" fi rmdir "$lockdir" exit $ret # Local Variables: # mode: shell-script # sh-indentation: 2 # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-end: "$" # End: mock-1.1.33/build/test-driver0000755001204700120500000000761112205226665012755 00000000000000#! /bin/sh # test-driver - basic testsuite driver script. scriptversion=2012-06-27.10; # UTC # Copyright (C) 2011-2013 Free Software Foundation, Inc. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # This file is maintained in Automake, please report # bugs to or send patches to # . # Make unconditional expansion of undefined variables an error. This # helps a lot in preventing typo-related bugs. set -u usage_error () { echo "$0: $*" >&2 print_usage >&2 exit 2 } print_usage () { cat <$log_file 2>&1 estatus=$? if test $enable_hard_errors = no && test $estatus -eq 99; then estatus=1 fi case $estatus:$expect_failure in 0:yes) col=$red res=XPASS recheck=yes gcopy=yes;; 0:*) col=$grn res=PASS recheck=no gcopy=no;; 77:*) col=$blu res=SKIP recheck=no gcopy=yes;; 99:*) col=$mgn res=ERROR recheck=yes gcopy=yes;; *:yes) col=$lgn res=XFAIL recheck=no gcopy=yes;; *:*) col=$red res=FAIL recheck=yes gcopy=yes;; esac # Report outcome to console. echo "${col}${res}${std}: $test_name" # Register the test result, and other relevant metadata. echo ":test-result: $res" > $trs_file echo ":global-test-result: $res" >> $trs_file echo ":recheck: $recheck" >> $trs_file echo ":copy-in-global-log: $gcopy" >> $trs_file # Local Variables: # mode: shell-script # sh-indentation: 2 # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-time-zone: "UTC" # time-stamp-end: "; # UTC" # End: mock-1.1.33/build/config.sub0000755001204700120500000007746010731332136012544 00000000000000#! /bin/sh # Configuration validation subroutine script. # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, # 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, # Inc. timestamp='2006-09-20' # This file is (in principle) common to ALL GNU software. # The presence of a machine in this file suggests that SOME GNU software # can handle that machine. It does not imply ALL GNU software can. # # This file is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA # 02110-1301, USA. # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # Please send patches to . Submit a context # diff and a properly formatted ChangeLog entry. # # Configuration subroutine to validate and canonicalize a configuration type. # Supply the specified configuration type as an argument. # If it is invalid, we print an error message on stderr and exit with code 1. # Otherwise, we print the canonical config type on stdout and succeed. # This file is supposed to be the same for all GNU packages # and recognize all the CPU types, system types and aliases # that are meaningful with *any* GNU software. # Each package is responsible for reporting which valid configurations # it does not support. The user should be able to distinguish # a failure to support a valid configuration from a meaningless # configuration. # The goal of this file is to map all the various variations of a given # machine specification into a single specification in the form: # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM # or in some cases, the newer four-part form: # CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM # It is wrong to echo any other type of specification. me=`echo "$0" | sed -e 's,.*/,,'` usage="\ Usage: $0 [OPTION] CPU-MFR-OPSYS $0 [OPTION] ALIAS Canonicalize a configuration name. Operation modes: -h, --help print this help, then exit -t, --time-stamp print date of last modification, then exit -v, --version print version number, then exit Report bugs and patches to ." version="\ GNU config.sub ($timestamp) Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." help=" Try \`$me --help' for more information." # Parse command line while test $# -gt 0 ; do case $1 in --time-stamp | --time* | -t ) echo "$timestamp" ; exit ;; --version | -v ) echo "$version" ; exit ;; --help | --h* | -h ) echo "$usage"; exit ;; -- ) # Stop option processing shift; break ;; - ) # Use stdin as input. break ;; -* ) echo "$me: invalid option $1$help" exit 1 ;; *local*) # First pass through any local machine types. echo $1 exit ;; * ) break ;; esac done case $# in 0) echo "$me: missing argument$help" >&2 exit 1;; 1) ;; *) echo "$me: too many arguments$help" >&2 exit 1;; esac # Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any). # Here we must recognize all the valid KERNEL-OS combinations. maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` case $maybe_os in nto-qnx* | linux-gnu* | linux-dietlibc | linux-newlib* | linux-uclibc* | \ uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | \ storm-chaos* | os2-emx* | rtmk-nova*) os=-$maybe_os basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` ;; *) basic_machine=`echo $1 | sed 's/-[^-]*$//'` if [ $basic_machine != $1 ] then os=`echo $1 | sed 's/.*-/-/'` else os=; fi ;; esac ### Let's recognize common machines as not being operating systems so ### that things like config.sub decstation-3100 work. We also ### recognize some manufacturers as not being operating systems, so we ### can provide default operating systems below. case $os in -sun*os*) # Prevent following clause from handling this invalid input. ;; -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \ -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \ -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \ -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ -apple | -axis | -knuth | -cray) os= basic_machine=$1 ;; -sim | -cisco | -oki | -wec | -winbond) os= basic_machine=$1 ;; -scout) ;; -wrs) os=-vxworks basic_machine=$1 ;; -chorusos*) os=-chorusos basic_machine=$1 ;; -chorusrdb) os=-chorusrdb basic_machine=$1 ;; -hiux*) os=-hiuxwe2 ;; -sco6) os=-sco5v6 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco5) os=-sco3.2v5 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco4) os=-sco3.2v4 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco3.2.[4-9]*) os=`echo $os | sed -e 's/sco3.2./sco3.2v/'` basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco3.2v[4-9]*) # Don't forget version if it is 3.2v4 or newer. basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco5v6*) # Don't forget version if it is 3.2v4 or newer. basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco*) os=-sco3.2v2 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -udk*) basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -isc) os=-isc2.2 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -clix*) basic_machine=clipper-intergraph ;; -isc*) basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -lynx*) os=-lynxos ;; -ptx*) basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'` ;; -windowsnt*) os=`echo $os | sed -e 's/windowsnt/winnt/'` ;; -psos*) os=-psos ;; -mint | -mint[0-9]*) basic_machine=m68k-atari os=-mint ;; esac # Decode aliases for certain CPU-COMPANY combinations. case $basic_machine in # Recognize the basic CPU types without company name. # Some are omitted here because they have special meanings below. 1750a | 580 \ | a29k \ | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ | am33_2.0 \ | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr | avr32 \ | bfin \ | c4x | clipper \ | d10v | d30v | dlx | dsp16xx \ | fr30 | frv \ | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ | i370 | i860 | i960 | ia64 \ | ip2k | iq2000 \ | m32c | m32r | m32rle | m68000 | m68k | m88k \ | maxq | mb | microblaze | mcore \ | mips | mipsbe | mipseb | mipsel | mipsle \ | mips16 \ | mips64 | mips64el \ | mips64vr | mips64vrel \ | mips64orion | mips64orionel \ | mips64vr4100 | mips64vr4100el \ | mips64vr4300 | mips64vr4300el \ | mips64vr5000 | mips64vr5000el \ | mips64vr5900 | mips64vr5900el \ | mipsisa32 | mipsisa32el \ | mipsisa32r2 | mipsisa32r2el \ | mipsisa64 | mipsisa64el \ | mipsisa64r2 | mipsisa64r2el \ | mipsisa64sb1 | mipsisa64sb1el \ | mipsisa64sr71k | mipsisa64sr71kel \ | mipstx39 | mipstx39el \ | mn10200 | mn10300 \ | mt \ | msp430 \ | nios | nios2 \ | ns16k | ns32k \ | or32 \ | pdp10 | pdp11 | pj | pjl \ | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \ | pyramid \ | score \ | sh | sh[1234] | sh[24]a | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ | sh64 | sh64le \ | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \ | sparcv8 | sparcv9 | sparcv9b | sparcv9v \ | spu | strongarm \ | tahoe | thumb | tic4x | tic80 | tron \ | v850 | v850e \ | we32k \ | x86 | xc16x | xscale | xscalee[bl] | xstormy16 | xtensa \ | z8k) basic_machine=$basic_machine-unknown ;; m6811 | m68hc11 | m6812 | m68hc12) # Motorola 68HC11/12. basic_machine=$basic_machine-unknown os=-none ;; m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k) ;; ms1) basic_machine=mt-unknown ;; # We use `pc' rather than `unknown' # because (1) that's what they normally are, and # (2) the word "unknown" tends to confuse beginning users. i*86 | x86_64) basic_machine=$basic_machine-pc ;; # Object if more than one company name word. *-*-*) echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 exit 1 ;; # Recognize the basic CPU types with company name. 580-* \ | a29k-* \ | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \ | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ | avr-* | avr32-* \ | bfin-* | bs2000-* \ | c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \ | clipper-* | craynv-* | cydra-* \ | d10v-* | d30v-* | dlx-* \ | elxsi-* \ | f30[01]-* | f700-* | fr30-* | frv-* | fx80-* \ | h8300-* | h8500-* \ | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ | i*86-* | i860-* | i960-* | ia64-* \ | ip2k-* | iq2000-* \ | m32c-* | m32r-* | m32rle-* \ | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ | m88110-* | m88k-* | maxq-* | mcore-* \ | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ | mips16-* \ | mips64-* | mips64el-* \ | mips64vr-* | mips64vrel-* \ | mips64orion-* | mips64orionel-* \ | mips64vr4100-* | mips64vr4100el-* \ | mips64vr4300-* | mips64vr4300el-* \ | mips64vr5000-* | mips64vr5000el-* \ | mips64vr5900-* | mips64vr5900el-* \ | mipsisa32-* | mipsisa32el-* \ | mipsisa32r2-* | mipsisa32r2el-* \ | mipsisa64-* | mipsisa64el-* \ | mipsisa64r2-* | mipsisa64r2el-* \ | mipsisa64sb1-* | mipsisa64sb1el-* \ | mipsisa64sr71k-* | mipsisa64sr71kel-* \ | mipstx39-* | mipstx39el-* \ | mmix-* \ | mt-* \ | msp430-* \ | nios-* | nios2-* \ | none-* | np1-* | ns16k-* | ns32k-* \ | orion-* \ | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \ | pyramid-* \ | romp-* | rs6000-* \ | sh-* | sh[1234]-* | sh[24]a-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \ | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \ | sparclite-* \ | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | strongarm-* | sv1-* | sx?-* \ | tahoe-* | thumb-* \ | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ | tron-* \ | v850-* | v850e-* | vax-* \ | we32k-* \ | x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \ | xstormy16-* | xtensa-* \ | ymp-* \ | z8k-*) ;; # Recognize the various machine names and aliases which stand # for a CPU type and a company and sometimes even an OS. 386bsd) basic_machine=i386-unknown os=-bsd ;; 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) basic_machine=m68000-att ;; 3b*) basic_machine=we32k-att ;; a29khif) basic_machine=a29k-amd os=-udi ;; abacus) basic_machine=abacus-unknown ;; adobe68k) basic_machine=m68010-adobe os=-scout ;; alliant | fx80) basic_machine=fx80-alliant ;; altos | altos3068) basic_machine=m68k-altos ;; am29k) basic_machine=a29k-none os=-bsd ;; amd64) basic_machine=x86_64-pc ;; amd64-*) basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'` ;; amdahl) basic_machine=580-amdahl os=-sysv ;; amiga | amiga-*) basic_machine=m68k-unknown ;; amigaos | amigados) basic_machine=m68k-unknown os=-amigaos ;; amigaunix | amix) basic_machine=m68k-unknown os=-sysv4 ;; apollo68) basic_machine=m68k-apollo os=-sysv ;; apollo68bsd) basic_machine=m68k-apollo os=-bsd ;; aux) basic_machine=m68k-apple os=-aux ;; balance) basic_machine=ns32k-sequent os=-dynix ;; c90) basic_machine=c90-cray os=-unicos ;; convex-c1) basic_machine=c1-convex os=-bsd ;; convex-c2) basic_machine=c2-convex os=-bsd ;; convex-c32) basic_machine=c32-convex os=-bsd ;; convex-c34) basic_machine=c34-convex os=-bsd ;; convex-c38) basic_machine=c38-convex os=-bsd ;; cray | j90) basic_machine=j90-cray os=-unicos ;; craynv) basic_machine=craynv-cray os=-unicosmp ;; cr16c) basic_machine=cr16c-unknown os=-elf ;; crds | unos) basic_machine=m68k-crds ;; crisv32 | crisv32-* | etraxfs*) basic_machine=crisv32-axis ;; cris | cris-* | etrax*) basic_machine=cris-axis ;; crx) basic_machine=crx-unknown os=-elf ;; da30 | da30-*) basic_machine=m68k-da30 ;; decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn) basic_machine=mips-dec ;; decsystem10* | dec10*) basic_machine=pdp10-dec os=-tops10 ;; decsystem20* | dec20*) basic_machine=pdp10-dec os=-tops20 ;; delta | 3300 | motorola-3300 | motorola-delta \ | 3300-motorola | delta-motorola) basic_machine=m68k-motorola ;; delta88) basic_machine=m88k-motorola os=-sysv3 ;; djgpp) basic_machine=i586-pc os=-msdosdjgpp ;; dpx20 | dpx20-*) basic_machine=rs6000-bull os=-bosx ;; dpx2* | dpx2*-bull) basic_machine=m68k-bull os=-sysv3 ;; ebmon29k) basic_machine=a29k-amd os=-ebmon ;; elxsi) basic_machine=elxsi-elxsi os=-bsd ;; encore | umax | mmax) basic_machine=ns32k-encore ;; es1800 | OSE68k | ose68k | ose | OSE) basic_machine=m68k-ericsson os=-ose ;; fx2800) basic_machine=i860-alliant ;; genix) basic_machine=ns32k-ns ;; gmicro) basic_machine=tron-gmicro os=-sysv ;; go32) basic_machine=i386-pc os=-go32 ;; h3050r* | hiux*) basic_machine=hppa1.1-hitachi os=-hiuxwe2 ;; h8300hms) basic_machine=h8300-hitachi os=-hms ;; h8300xray) basic_machine=h8300-hitachi os=-xray ;; h8500hms) basic_machine=h8500-hitachi os=-hms ;; harris) basic_machine=m88k-harris os=-sysv3 ;; hp300-*) basic_machine=m68k-hp ;; hp300bsd) basic_machine=m68k-hp os=-bsd ;; hp300hpux) basic_machine=m68k-hp os=-hpux ;; hp3k9[0-9][0-9] | hp9[0-9][0-9]) basic_machine=hppa1.0-hp ;; hp9k2[0-9][0-9] | hp9k31[0-9]) basic_machine=m68000-hp ;; hp9k3[2-9][0-9]) basic_machine=m68k-hp ;; hp9k6[0-9][0-9] | hp6[0-9][0-9]) basic_machine=hppa1.0-hp ;; hp9k7[0-79][0-9] | hp7[0-79][0-9]) basic_machine=hppa1.1-hp ;; hp9k78[0-9] | hp78[0-9]) # FIXME: really hppa2.0-hp basic_machine=hppa1.1-hp ;; hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893) # FIXME: really hppa2.0-hp basic_machine=hppa1.1-hp ;; hp9k8[0-9][13679] | hp8[0-9][13679]) basic_machine=hppa1.1-hp ;; hp9k8[0-9][0-9] | hp8[0-9][0-9]) basic_machine=hppa1.0-hp ;; hppa-next) os=-nextstep3 ;; hppaosf) basic_machine=hppa1.1-hp os=-osf ;; hppro) basic_machine=hppa1.1-hp os=-proelf ;; i370-ibm* | ibm*) basic_machine=i370-ibm ;; # I'm not sure what "Sysv32" means. Should this be sysv3.2? i*86v32) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv32 ;; i*86v4*) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv4 ;; i*86v) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv ;; i*86sol2) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-solaris2 ;; i386mach) basic_machine=i386-mach os=-mach ;; i386-vsta | vsta) basic_machine=i386-unknown os=-vsta ;; iris | iris4d) basic_machine=mips-sgi case $os in -irix*) ;; *) os=-irix4 ;; esac ;; isi68 | isi) basic_machine=m68k-isi os=-sysv ;; m88k-omron*) basic_machine=m88k-omron ;; magnum | m3230) basic_machine=mips-mips os=-sysv ;; merlin) basic_machine=ns32k-utek os=-sysv ;; mingw32) basic_machine=i386-pc os=-mingw32 ;; miniframe) basic_machine=m68000-convergent ;; *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*) basic_machine=m68k-atari os=-mint ;; mips3*-*) basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'` ;; mips3*) basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown ;; monitor) basic_machine=m68k-rom68k os=-coff ;; morphos) basic_machine=powerpc-unknown os=-morphos ;; msdos) basic_machine=i386-pc os=-msdos ;; ms1-*) basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'` ;; mvs) basic_machine=i370-ibm os=-mvs ;; ncr3000) basic_machine=i486-ncr os=-sysv4 ;; netbsd386) basic_machine=i386-unknown os=-netbsd ;; netwinder) basic_machine=armv4l-rebel os=-linux ;; news | news700 | news800 | news900) basic_machine=m68k-sony os=-newsos ;; news1000) basic_machine=m68030-sony os=-newsos ;; news-3600 | risc-news) basic_machine=mips-sony os=-newsos ;; necv70) basic_machine=v70-nec os=-sysv ;; next | m*-next ) basic_machine=m68k-next case $os in -nextstep* ) ;; -ns2*) os=-nextstep2 ;; *) os=-nextstep3 ;; esac ;; nh3000) basic_machine=m68k-harris os=-cxux ;; nh[45]000) basic_machine=m88k-harris os=-cxux ;; nindy960) basic_machine=i960-intel os=-nindy ;; mon960) basic_machine=i960-intel os=-mon960 ;; nonstopux) basic_machine=mips-compaq os=-nonstopux ;; np1) basic_machine=np1-gould ;; nsr-tandem) basic_machine=nsr-tandem ;; op50n-* | op60c-*) basic_machine=hppa1.1-oki os=-proelf ;; openrisc | openrisc-*) basic_machine=or32-unknown ;; os400) basic_machine=powerpc-ibm os=-os400 ;; OSE68000 | ose68000) basic_machine=m68000-ericsson os=-ose ;; os68k) basic_machine=m68k-none os=-os68k ;; pa-hitachi) basic_machine=hppa1.1-hitachi os=-hiuxwe2 ;; paragon) basic_machine=i860-intel os=-osf ;; pbd) basic_machine=sparc-tti ;; pbb) basic_machine=m68k-tti ;; pc532 | pc532-*) basic_machine=ns32k-pc532 ;; pc98) basic_machine=i386-pc ;; pc98-*) basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentium | p5 | k5 | k6 | nexgen | viac3) basic_machine=i586-pc ;; pentiumpro | p6 | 6x86 | athlon | athlon_*) basic_machine=i686-pc ;; pentiumii | pentium2 | pentiumiii | pentium3) basic_machine=i686-pc ;; pentium4) basic_machine=i786-pc ;; pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentiumpro-* | p6-* | 6x86-* | athlon-*) basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*) basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentium4-*) basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pn) basic_machine=pn-gould ;; power) basic_machine=power-ibm ;; ppc) basic_machine=powerpc-unknown ;; ppc-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppcle | powerpclittle | ppc-le | powerpc-little) basic_machine=powerpcle-unknown ;; ppcle-* | powerpclittle-*) basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppc64) basic_machine=powerpc64-unknown ;; ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppc64le | powerpc64little | ppc64-le | powerpc64-little) basic_machine=powerpc64le-unknown ;; ppc64le-* | powerpc64little-*) basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ps2) basic_machine=i386-ibm ;; pw32) basic_machine=i586-unknown os=-pw32 ;; rdos) basic_machine=i386-pc os=-rdos ;; rom68k) basic_machine=m68k-rom68k os=-coff ;; rm[46]00) basic_machine=mips-siemens ;; rtpc | rtpc-*) basic_machine=romp-ibm ;; s390 | s390-*) basic_machine=s390-ibm ;; s390x | s390x-*) basic_machine=s390x-ibm ;; sa29200) basic_machine=a29k-amd os=-udi ;; sb1) basic_machine=mipsisa64sb1-unknown ;; sb1el) basic_machine=mipsisa64sb1el-unknown ;; sde) basic_machine=mipsisa32-sde os=-elf ;; sei) basic_machine=mips-sei os=-seiux ;; sequent) basic_machine=i386-sequent ;; sh) basic_machine=sh-hitachi os=-hms ;; sh64) basic_machine=sh64-unknown ;; sparclite-wrs | simso-wrs) basic_machine=sparclite-wrs os=-vxworks ;; sps7) basic_machine=m68k-bull os=-sysv2 ;; spur) basic_machine=spur-unknown ;; st2000) basic_machine=m68k-tandem ;; stratus) basic_machine=i860-stratus os=-sysv4 ;; sun2) basic_machine=m68000-sun ;; sun2os3) basic_machine=m68000-sun os=-sunos3 ;; sun2os4) basic_machine=m68000-sun os=-sunos4 ;; sun3os3) basic_machine=m68k-sun os=-sunos3 ;; sun3os4) basic_machine=m68k-sun os=-sunos4 ;; sun4os3) basic_machine=sparc-sun os=-sunos3 ;; sun4os4) basic_machine=sparc-sun os=-sunos4 ;; sun4sol2) basic_machine=sparc-sun os=-solaris2 ;; sun3 | sun3-*) basic_machine=m68k-sun ;; sun4) basic_machine=sparc-sun ;; sun386 | sun386i | roadrunner) basic_machine=i386-sun ;; sv1) basic_machine=sv1-cray os=-unicos ;; symmetry) basic_machine=i386-sequent os=-dynix ;; t3e) basic_machine=alphaev5-cray os=-unicos ;; t90) basic_machine=t90-cray os=-unicos ;; tic54x | c54x*) basic_machine=tic54x-unknown os=-coff ;; tic55x | c55x*) basic_machine=tic55x-unknown os=-coff ;; tic6x | c6x*) basic_machine=tic6x-unknown os=-coff ;; tx39) basic_machine=mipstx39-unknown ;; tx39el) basic_machine=mipstx39el-unknown ;; toad1) basic_machine=pdp10-xkl os=-tops20 ;; tower | tower-32) basic_machine=m68k-ncr ;; tpf) basic_machine=s390x-ibm os=-tpf ;; udi29k) basic_machine=a29k-amd os=-udi ;; ultra3) basic_machine=a29k-nyu os=-sym1 ;; v810 | necv810) basic_machine=v810-nec os=-none ;; vaxv) basic_machine=vax-dec os=-sysv ;; vms) basic_machine=vax-dec os=-vms ;; vpp*|vx|vx-*) basic_machine=f301-fujitsu ;; vxworks960) basic_machine=i960-wrs os=-vxworks ;; vxworks68) basic_machine=m68k-wrs os=-vxworks ;; vxworks29k) basic_machine=a29k-wrs os=-vxworks ;; w65*) basic_machine=w65-wdc os=-none ;; w89k-*) basic_machine=hppa1.1-winbond os=-proelf ;; xbox) basic_machine=i686-pc os=-mingw32 ;; xps | xps100) basic_machine=xps100-honeywell ;; ymp) basic_machine=ymp-cray os=-unicos ;; z8k-*-coff) basic_machine=z8k-unknown os=-sim ;; none) basic_machine=none-none os=-none ;; # Here we handle the default manufacturer of certain CPU types. It is in # some cases the only manufacturer, in others, it is the most popular. w89k) basic_machine=hppa1.1-winbond ;; op50n) basic_machine=hppa1.1-oki ;; op60c) basic_machine=hppa1.1-oki ;; romp) basic_machine=romp-ibm ;; mmix) basic_machine=mmix-knuth ;; rs6000) basic_machine=rs6000-ibm ;; vax) basic_machine=vax-dec ;; pdp10) # there are many clones, so DEC is not a safe bet basic_machine=pdp10-unknown ;; pdp11) basic_machine=pdp11-dec ;; we32k) basic_machine=we32k-att ;; sh[1234] | sh[24]a | sh[34]eb | sh[1234]le | sh[23]ele) basic_machine=sh-unknown ;; sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v) basic_machine=sparc-sun ;; cydra) basic_machine=cydra-cydrome ;; orion) basic_machine=orion-highlevel ;; orion105) basic_machine=clipper-highlevel ;; mac | mpw | mac-mpw) basic_machine=m68k-apple ;; pmac | pmac-mpw) basic_machine=powerpc-apple ;; *-unknown) # Make sure to match an already-canonicalized machine name. ;; *) echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 exit 1 ;; esac # Here we canonicalize certain aliases for manufacturers. case $basic_machine in *-digital*) basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'` ;; *-commodore*) basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'` ;; *) ;; esac # Decode manufacturer-specific aliases for certain operating systems. if [ x"$os" != x"" ] then case $os in # First match some system type aliases # that might get confused with valid system types. # -solaris* is a basic system type, with this one exception. -solaris1 | -solaris1.*) os=`echo $os | sed -e 's|solaris1|sunos4|'` ;; -solaris) os=-solaris2 ;; -svr4*) os=-sysv4 ;; -unixware*) os=-sysv4.2uw ;; -gnu/linux*) os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'` ;; # First accept the basic system types. # The portable systems comes first. # Each alternative MUST END IN A *, to match a version number. # -sysv* is not here because it comes later, after sysvr4. -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ | -*vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[34]*\ | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \ | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ | -aos* \ | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \ | -openbsd* | -solidbsd* \ | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \ | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ | -chorusos* | -chorusrdb* \ | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ | -mingw32* | -linux-gnu* | -linux-newlib* | -linux-uclibc* \ | -uxpv* | -beos* | -mpeix* | -udk* \ | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \ | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \ | -skyos* | -haiku* | -rdos* | -toppers*) # Remember, each alternative MUST END IN *, to match a version number. ;; -qnx*) case $basic_machine in x86-* | i*86-*) ;; *) os=-nto$os ;; esac ;; -nto-qnx*) ;; -nto*) os=`echo $os | sed -e 's|nto|nto-qnx|'` ;; -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \ | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \ | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*) ;; -mac*) os=`echo $os | sed -e 's|mac|macos|'` ;; -linux-dietlibc) os=-linux-dietlibc ;; -linux*) os=`echo $os | sed -e 's|linux|linux-gnu|'` ;; -sunos5*) os=`echo $os | sed -e 's|sunos5|solaris2|'` ;; -sunos6*) os=`echo $os | sed -e 's|sunos6|solaris3|'` ;; -opened*) os=-openedition ;; -os400*) os=-os400 ;; -wince*) os=-wince ;; -osfrose*) os=-osfrose ;; -osf*) os=-osf ;; -utek*) os=-bsd ;; -dynix*) os=-bsd ;; -acis*) os=-aos ;; -atheos*) os=-atheos ;; -syllable*) os=-syllable ;; -386bsd) os=-bsd ;; -ctix* | -uts*) os=-sysv ;; -nova*) os=-rtmk-nova ;; -ns2 ) os=-nextstep2 ;; -nsk*) os=-nsk ;; # Preserve the version number of sinix5. -sinix5.*) os=`echo $os | sed -e 's|sinix|sysv|'` ;; -sinix*) os=-sysv4 ;; -tpf*) os=-tpf ;; -triton*) os=-sysv3 ;; -oss*) os=-sysv3 ;; -svr4) os=-sysv4 ;; -svr3) os=-sysv3 ;; -sysvr4) os=-sysv4 ;; # This must come after -sysvr4. -sysv*) ;; -ose*) os=-ose ;; -es1800*) os=-ose ;; -xenix) os=-xenix ;; -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) os=-mint ;; -aros*) os=-aros ;; -kaos*) os=-kaos ;; -zvmoe) os=-zvmoe ;; -none) ;; *) # Get rid of the `-' at the beginning of $os. os=`echo $os | sed 's/[^-]*-//'` echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2 exit 1 ;; esac else # Here we handle the default operating systems that come with various machines. # The value should be what the vendor currently ships out the door with their # machine or put another way, the most popular os provided with the machine. # Note that if you're going to try to match "-MANUFACTURER" here (say, # "-sun"), then you have to tell the case statement up towards the top # that MANUFACTURER isn't an operating system. Otherwise, code above # will signal an error saying that MANUFACTURER isn't an operating # system, and we'll never get to this point. case $basic_machine in score-*) os=-elf ;; spu-*) os=-elf ;; *-acorn) os=-riscix1.2 ;; arm*-rebel) os=-linux ;; arm*-semi) os=-aout ;; c4x-* | tic4x-*) os=-coff ;; # This must come before the *-dec entry. pdp10-*) os=-tops20 ;; pdp11-*) os=-none ;; *-dec | vax-*) os=-ultrix4.2 ;; m68*-apollo) os=-domain ;; i386-sun) os=-sunos4.0.2 ;; m68000-sun) os=-sunos3 # This also exists in the configure program, but was not the # default. # os=-sunos4 ;; m68*-cisco) os=-aout ;; mips*-cisco) os=-elf ;; mips*-*) os=-elf ;; or32-*) os=-coff ;; *-tti) # must be before sparc entry or we get the wrong os. os=-sysv3 ;; sparc-* | *-sun) os=-sunos4.1.1 ;; *-be) os=-beos ;; *-haiku) os=-haiku ;; *-ibm) os=-aix ;; *-knuth) os=-mmixware ;; *-wec) os=-proelf ;; *-winbond) os=-proelf ;; *-oki) os=-proelf ;; *-hp) os=-hpux ;; *-hitachi) os=-hiux ;; i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent) os=-sysv ;; *-cbm) os=-amigaos ;; *-dg) os=-dgux ;; *-dolphin) os=-sysv3 ;; m68k-ccur) os=-rtu ;; m88k-omron*) os=-luna ;; *-next ) os=-nextstep ;; *-sequent) os=-ptx ;; *-crds) os=-unos ;; *-ns) os=-genix ;; i370-*) os=-mvs ;; *-next) os=-nextstep3 ;; *-gould) os=-sysv ;; *-highlevel) os=-bsd ;; *-encore) os=-bsd ;; *-sgi) os=-irix ;; *-siemens) os=-sysv4 ;; *-masscomp) os=-rtu ;; f30[01]-fujitsu | f700-fujitsu) os=-uxpv ;; *-rom68k) os=-coff ;; *-*bug) os=-coff ;; *-apple) os=-macos ;; *-atari*) os=-mint ;; *) os=-none ;; esac fi # Here we handle the case where we know the os, and the CPU type, but not the # manufacturer. We pick the logical manufacturer. vendor=unknown case $basic_machine in *-unknown) case $os in -riscix*) vendor=acorn ;; -sunos*) vendor=sun ;; -aix*) vendor=ibm ;; -beos*) vendor=be ;; -hpux*) vendor=hp ;; -mpeix*) vendor=hp ;; -hiux*) vendor=hitachi ;; -unos*) vendor=crds ;; -dgux*) vendor=dg ;; -luna*) vendor=omron ;; -genix*) vendor=ns ;; -mvs* | -opened*) vendor=ibm ;; -os400*) vendor=ibm ;; -ptx*) vendor=sequent ;; -tpf*) vendor=ibm ;; -vxsim* | -vxworks* | -windiss*) vendor=wrs ;; -aux*) vendor=apple ;; -hms*) vendor=hitachi ;; -mpw* | -macos*) vendor=apple ;; -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) vendor=atari ;; -vos*) vendor=stratus ;; esac basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"` ;; esac echo $basic_machine$os exit # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "timestamp='" # time-stamp-format: "%:y-%02m-%02d" # time-stamp-end: "'" # End: mock-1.1.33/build/config.guess0000755001204700120500000012626010731332136013072 00000000000000#! /bin/sh # Attempt to guess a canonical system name. # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, # 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, # Inc. timestamp='2006-07-02' # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA # 02110-1301, USA. # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # Originally written by Per Bothner . # Please send patches to . Submit a context # diff and a properly formatted ChangeLog entry. # # This script attempts to guess a canonical system name similar to # config.sub. If it succeeds, it prints the system name on stdout, and # exits with 0. Otherwise, it exits with 1. # # The plan is that this can be called by configure scripts if you # don't specify an explicit build system type. me=`echo "$0" | sed -e 's,.*/,,'` usage="\ Usage: $0 [OPTION] Output the configuration name of the system \`$me' is run on. Operation modes: -h, --help print this help, then exit -t, --time-stamp print date of last modification, then exit -v, --version print version number, then exit Report bugs and patches to ." version="\ GNU config.guess ($timestamp) Originally written by Per Bothner. Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." help=" Try \`$me --help' for more information." # Parse command line while test $# -gt 0 ; do case $1 in --time-stamp | --time* | -t ) echo "$timestamp" ; exit ;; --version | -v ) echo "$version" ; exit ;; --help | --h* | -h ) echo "$usage"; exit ;; -- ) # Stop option processing shift; break ;; - ) # Use stdin as input. break ;; -* ) echo "$me: invalid option $1$help" >&2 exit 1 ;; * ) break ;; esac done if test $# != 0; then echo "$me: too many arguments$help" >&2 exit 1 fi trap 'exit 1' 1 2 15 # CC_FOR_BUILD -- compiler used by this script. Note that the use of a # compiler to aid in system detection is discouraged as it requires # temporary files to be created and, as you can see below, it is a # headache to deal with in a portable fashion. # Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still # use `HOST_CC' if defined, but it is deprecated. # Portable tmp directory creation inspired by the Autoconf team. set_cc_for_build=' trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ; trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ; : ${TMPDIR=/tmp} ; { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } || { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } || { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ; dummy=$tmp/dummy ; tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ; case $CC_FOR_BUILD,$HOST_CC,$CC in ,,) echo "int x;" > $dummy.c ; for c in cc gcc c89 c99 ; do if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then CC_FOR_BUILD="$c"; break ; fi ; done ; if test x"$CC_FOR_BUILD" = x ; then CC_FOR_BUILD=no_compiler_found ; fi ;; ,,*) CC_FOR_BUILD=$CC ;; ,*,*) CC_FOR_BUILD=$HOST_CC ;; esac ; set_cc_for_build= ;' # This is needed to find uname on a Pyramid OSx when run in the BSD universe. # (ghazi@noc.rutgers.edu 1994-08-24) if (test -f /.attbin/uname) >/dev/null 2>&1 ; then PATH=$PATH:/.attbin ; export PATH fi UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown # Note: order is significant - the case branches are not exclusive. case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in *:NetBSD:*:*) # NetBSD (nbsd) targets should (where applicable) match one or # more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*, # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently # switched to ELF, *-*-netbsd* would select the old # object file format. This provides both forward # compatibility and a consistent mechanism for selecting the # object file format. # # Note: NetBSD doesn't particularly care about the vendor # portion of the name. We always set it to "unknown". sysctl="sysctl -n hw.machine_arch" UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \ /usr/sbin/$sysctl 2>/dev/null || echo unknown)` case "${UNAME_MACHINE_ARCH}" in armeb) machine=armeb-unknown ;; arm*) machine=arm-unknown ;; sh3el) machine=shl-unknown ;; sh3eb) machine=sh-unknown ;; *) machine=${UNAME_MACHINE_ARCH}-unknown ;; esac # The Operating System including object format, if it has switched # to ELF recently, or will in the future. case "${UNAME_MACHINE_ARCH}" in arm*|i386|m68k|ns32k|sh3*|sparc|vax) eval $set_cc_for_build if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ | grep __ELF__ >/dev/null then # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout). # Return netbsd for either. FIX? os=netbsd else os=netbsdelf fi ;; *) os=netbsd ;; esac # The OS release # Debian GNU/NetBSD machines have a different userland, and # thus, need a distinct triplet. However, they do not need # kernel version information, so it can be replaced with a # suitable tag, in the style of linux-gnu. case "${UNAME_VERSION}" in Debian*) release='-gnu' ;; *) release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` ;; esac # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: # contains redundant information, the shorter form: # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. echo "${machine}-${os}${release}" exit ;; *:OpenBSD:*:*) UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE} exit ;; *:ekkoBSD:*:*) echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE} exit ;; *:SolidBSD:*:*) echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE} exit ;; macppc:MirBSD:*:*) echo powerpc-unknown-mirbsd${UNAME_RELEASE} exit ;; *:MirBSD:*:*) echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE} exit ;; alpha:OSF1:*:*) case $UNAME_RELEASE in *4.0) UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` ;; *5.*) UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` ;; esac # According to Compaq, /usr/sbin/psrinfo has been available on # OSF/1 and Tru64 systems produced since 1995. I hope that # covers most systems running today. This code pipes the CPU # types through head -n 1, so we only detect the type of CPU 0. ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1` case "$ALPHA_CPU_TYPE" in "EV4 (21064)") UNAME_MACHINE="alpha" ;; "EV4.5 (21064)") UNAME_MACHINE="alpha" ;; "LCA4 (21066/21068)") UNAME_MACHINE="alpha" ;; "EV5 (21164)") UNAME_MACHINE="alphaev5" ;; "EV5.6 (21164A)") UNAME_MACHINE="alphaev56" ;; "EV5.6 (21164PC)") UNAME_MACHINE="alphapca56" ;; "EV5.7 (21164PC)") UNAME_MACHINE="alphapca57" ;; "EV6 (21264)") UNAME_MACHINE="alphaev6" ;; "EV6.7 (21264A)") UNAME_MACHINE="alphaev67" ;; "EV6.8CB (21264C)") UNAME_MACHINE="alphaev68" ;; "EV6.8AL (21264B)") UNAME_MACHINE="alphaev68" ;; "EV6.8CX (21264D)") UNAME_MACHINE="alphaev68" ;; "EV6.9A (21264/EV69A)") UNAME_MACHINE="alphaev69" ;; "EV7 (21364)") UNAME_MACHINE="alphaev7" ;; "EV7.9 (21364A)") UNAME_MACHINE="alphaev79" ;; esac # A Pn.n version is a patched version. # A Vn.n version is a released version. # A Tn.n version is a released field test version. # A Xn.n version is an unreleased experimental baselevel. # 1.2 uses "1.2" for uname -r. echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` exit ;; Alpha\ *:Windows_NT*:*) # How do we know it's Interix rather than the generic POSIX subsystem? # Should we change UNAME_MACHINE based on the output of uname instead # of the specific Alpha model? echo alpha-pc-interix exit ;; 21064:Windows_NT:50:3) echo alpha-dec-winnt3.5 exit ;; Amiga*:UNIX_System_V:4.0:*) echo m68k-unknown-sysv4 exit ;; *:[Aa]miga[Oo][Ss]:*:*) echo ${UNAME_MACHINE}-unknown-amigaos exit ;; *:[Mm]orph[Oo][Ss]:*:*) echo ${UNAME_MACHINE}-unknown-morphos exit ;; *:OS/390:*:*) echo i370-ibm-openedition exit ;; *:z/VM:*:*) echo s390-ibm-zvmoe exit ;; *:OS400:*:*) echo powerpc-ibm-os400 exit ;; arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) echo arm-acorn-riscix${UNAME_RELEASE} exit ;; arm:riscos:*:*|arm:RISCOS:*:*) echo arm-unknown-riscos exit ;; SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) echo hppa1.1-hitachi-hiuxmpp exit ;; Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*) # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE. if test "`(/bin/universe) 2>/dev/null`" = att ; then echo pyramid-pyramid-sysv3 else echo pyramid-pyramid-bsd fi exit ;; NILE*:*:*:dcosx) echo pyramid-pyramid-svr4 exit ;; DRS?6000:unix:4.0:6*) echo sparc-icl-nx6 exit ;; DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*) case `/usr/bin/uname -p` in sparc) echo sparc-icl-nx7; exit ;; esac ;; sun4H:SunOS:5.*:*) echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; i86pc:SunOS:5.*:*) echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4*:SunOS:6*:*) # According to config.sub, this is the proper way to canonicalize # SunOS6. Hard to guess exactly what SunOS6 will be like, but # it's likely to be more like Solaris than SunOS4. echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4*:SunOS:*:*) case "`/usr/bin/arch -k`" in Series*|S4*) UNAME_RELEASE=`uname -v` ;; esac # Japanese Language versions have a version number like `4.1.3-JL'. echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'` exit ;; sun3*:SunOS:*:*) echo m68k-sun-sunos${UNAME_RELEASE} exit ;; sun*:*:4.2BSD:*) UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3 case "`/bin/arch`" in sun3) echo m68k-sun-sunos${UNAME_RELEASE} ;; sun4) echo sparc-sun-sunos${UNAME_RELEASE} ;; esac exit ;; aushp:SunOS:*:*) echo sparc-auspex-sunos${UNAME_RELEASE} exit ;; # The situation for MiNT is a little confusing. The machine name # can be virtually everything (everything which is not # "atarist" or "atariste" at least should have a processor # > m68000). The system name ranges from "MiNT" over "FreeMiNT" # to the lowercase version "mint" (or "freemint"). Finally # the system name "TOS" denotes a system which is actually not # MiNT. But MiNT is downward compatible to TOS, so this should # be no problem. atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit ;; atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit ;; *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit ;; milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) echo m68k-milan-mint${UNAME_RELEASE} exit ;; hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) echo m68k-hades-mint${UNAME_RELEASE} exit ;; *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) echo m68k-unknown-mint${UNAME_RELEASE} exit ;; m68k:machten:*:*) echo m68k-apple-machten${UNAME_RELEASE} exit ;; powerpc:machten:*:*) echo powerpc-apple-machten${UNAME_RELEASE} exit ;; RISC*:Mach:*:*) echo mips-dec-mach_bsd4.3 exit ;; RISC*:ULTRIX:*:*) echo mips-dec-ultrix${UNAME_RELEASE} exit ;; VAX*:ULTRIX*:*:*) echo vax-dec-ultrix${UNAME_RELEASE} exit ;; 2020:CLIX:*:* | 2430:CLIX:*:*) echo clipper-intergraph-clix${UNAME_RELEASE} exit ;; mips:*:*:UMIPS | mips:*:*:RISCos) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #ifdef __cplusplus #include /* for printf() prototype */ int main (int argc, char *argv[]) { #else int main (argc, argv) int argc; char *argv[]; { #endif #if defined (host_mips) && defined (MIPSEB) #if defined (SYSTYPE_SYSV) printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0); #endif #if defined (SYSTYPE_SVR4) printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0); #endif #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD) printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0); #endif #endif exit (-1); } EOF $CC_FOR_BUILD -o $dummy $dummy.c && dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` && SYSTEM_NAME=`$dummy $dummyarg` && { echo "$SYSTEM_NAME"; exit; } echo mips-mips-riscos${UNAME_RELEASE} exit ;; Motorola:PowerMAX_OS:*:*) echo powerpc-motorola-powermax exit ;; Motorola:*:4.3:PL8-*) echo powerpc-harris-powermax exit ;; Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*) echo powerpc-harris-powermax exit ;; Night_Hawk:Power_UNIX:*:*) echo powerpc-harris-powerunix exit ;; m88k:CX/UX:7*:*) echo m88k-harris-cxux7 exit ;; m88k:*:4*:R4*) echo m88k-motorola-sysv4 exit ;; m88k:*:3*:R3*) echo m88k-motorola-sysv3 exit ;; AViiON:dgux:*:*) # DG/UX returns AViiON for all architectures UNAME_PROCESSOR=`/usr/bin/uname -p` if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ] then if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \ [ ${TARGET_BINARY_INTERFACE}x = x ] then echo m88k-dg-dgux${UNAME_RELEASE} else echo m88k-dg-dguxbcs${UNAME_RELEASE} fi else echo i586-dg-dgux${UNAME_RELEASE} fi exit ;; M88*:DolphinOS:*:*) # DolphinOS (SVR3) echo m88k-dolphin-sysv3 exit ;; M88*:*:R3*:*) # Delta 88k system running SVR3 echo m88k-motorola-sysv3 exit ;; XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) echo m88k-tektronix-sysv3 exit ;; Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) echo m68k-tektronix-bsd exit ;; *:IRIX*:*:*) echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'` exit ;; ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id exit ;; # Note that: echo "'`uname -s`'" gives 'AIX ' i*86:AIX:*:*) echo i386-ibm-aix exit ;; ia64:AIX:*:*) if [ -x /usr/bin/oslevel ] ; then IBM_REV=`/usr/bin/oslevel` else IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} fi echo ${UNAME_MACHINE}-ibm-aix${IBM_REV} exit ;; *:AIX:2:3) if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #include main() { if (!__power_pc()) exit(1); puts("powerpc-ibm-aix3.2.5"); exit(0); } EOF if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` then echo "$SYSTEM_NAME" else echo rs6000-ibm-aix3.2.5 fi elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then echo rs6000-ibm-aix3.2.4 else echo rs6000-ibm-aix3.2 fi exit ;; *:AIX:*:[45]) IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then IBM_ARCH=rs6000 else IBM_ARCH=powerpc fi if [ -x /usr/bin/oslevel ] ; then IBM_REV=`/usr/bin/oslevel` else IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} fi echo ${IBM_ARCH}-ibm-aix${IBM_REV} exit ;; *:AIX:*:*) echo rs6000-ibm-aix exit ;; ibmrt:4.4BSD:*|romp-ibm:BSD:*) echo romp-ibm-bsd4.4 exit ;; ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to exit ;; # report: romp-ibm BSD 4.3 *:BOSX:*:*) echo rs6000-bull-bosx exit ;; DPX/2?00:B.O.S.:*:*) echo m68k-bull-sysv3 exit ;; 9000/[34]??:4.3bsd:1.*:*) echo m68k-hp-bsd exit ;; hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) echo m68k-hp-bsd4.4 exit ;; 9000/[34678]??:HP-UX:*:*) HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` case "${UNAME_MACHINE}" in 9000/31? ) HP_ARCH=m68000 ;; 9000/[34]?? ) HP_ARCH=m68k ;; 9000/[678][0-9][0-9]) if [ -x /usr/bin/getconf ]; then sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` case "${sc_cpu_version}" in 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1 532) # CPU_PA_RISC2_0 case "${sc_kernel_bits}" in 32) HP_ARCH="hppa2.0n" ;; 64) HP_ARCH="hppa2.0w" ;; '') HP_ARCH="hppa2.0" ;; # HP-UX 10.20 esac ;; esac fi if [ "${HP_ARCH}" = "" ]; then eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #define _HPUX_SOURCE #include #include int main () { #if defined(_SC_KERNEL_BITS) long bits = sysconf(_SC_KERNEL_BITS); #endif long cpu = sysconf (_SC_CPU_VERSION); switch (cpu) { case CPU_PA_RISC1_0: puts ("hppa1.0"); break; case CPU_PA_RISC1_1: puts ("hppa1.1"); break; case CPU_PA_RISC2_0: #if defined(_SC_KERNEL_BITS) switch (bits) { case 64: puts ("hppa2.0w"); break; case 32: puts ("hppa2.0n"); break; default: puts ("hppa2.0"); break; } break; #else /* !defined(_SC_KERNEL_BITS) */ puts ("hppa2.0"); break; #endif default: puts ("hppa1.0"); break; } exit (0); } EOF (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy` test -z "$HP_ARCH" && HP_ARCH=hppa fi ;; esac if [ ${HP_ARCH} = "hppa2.0w" ] then eval $set_cc_for_build # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler # generating 64-bit code. GNU and HP use different nomenclature: # # $ CC_FOR_BUILD=cc ./config.guess # => hppa2.0w-hp-hpux11.23 # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess # => hppa64-hp-hpux11.23 if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | grep __LP64__ >/dev/null then HP_ARCH="hppa2.0w" else HP_ARCH="hppa64" fi fi echo ${HP_ARCH}-hp-hpux${HPUX_REV} exit ;; ia64:HP-UX:*:*) HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` echo ia64-hp-hpux${HPUX_REV} exit ;; 3050*:HI-UX:*:*) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #include int main () { long cpu = sysconf (_SC_CPU_VERSION); /* The order matters, because CPU_IS_HP_MC68K erroneously returns true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct results, however. */ if (CPU_IS_PA_RISC (cpu)) { switch (cpu) { case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break; case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break; case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break; default: puts ("hppa-hitachi-hiuxwe2"); break; } } else if (CPU_IS_HP_MC68K (cpu)) puts ("m68k-hitachi-hiuxwe2"); else puts ("unknown-hitachi-hiuxwe2"); exit (0); } EOF $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` && { echo "$SYSTEM_NAME"; exit; } echo unknown-hitachi-hiuxwe2 exit ;; 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* ) echo hppa1.1-hp-bsd exit ;; 9000/8??:4.3bsd:*:*) echo hppa1.0-hp-bsd exit ;; *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) echo hppa1.0-hp-mpeix exit ;; hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* ) echo hppa1.1-hp-osf exit ;; hp8??:OSF1:*:*) echo hppa1.0-hp-osf exit ;; i*86:OSF1:*:*) if [ -x /usr/sbin/sysversion ] ; then echo ${UNAME_MACHINE}-unknown-osf1mk else echo ${UNAME_MACHINE}-unknown-osf1 fi exit ;; parisc*:Lites*:*:*) echo hppa1.1-hp-lites exit ;; C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) echo c1-convex-bsd exit ;; C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) if getsysinfo -f scalar_acc then echo c32-convex-bsd else echo c2-convex-bsd fi exit ;; C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) echo c34-convex-bsd exit ;; C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) echo c38-convex-bsd exit ;; C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) echo c4-convex-bsd exit ;; CRAY*Y-MP:*:*:*) echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*[A-Z]90:*:*:*) echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \ | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \ -e 's/\.[^.]*$/.X/' exit ;; CRAY*TS:*:*:*) echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*T3E:*:*:*) echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*SV1:*:*:*) echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; *:UNICOS/mp:*:*) echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" exit ;; 5000:UNIX_System_V:4.*:*) FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'` echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" exit ;; i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} exit ;; sparc*:BSD/OS:*:*) echo sparc-unknown-bsdi${UNAME_RELEASE} exit ;; *:BSD/OS:*:*) echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} exit ;; *:FreeBSD:*:*) case ${UNAME_MACHINE} in pc98) echo i386-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; amd64) echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; *) echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; esac exit ;; i*:CYGWIN*:*) echo ${UNAME_MACHINE}-pc-cygwin exit ;; i*:MINGW*:*) echo ${UNAME_MACHINE}-pc-mingw32 exit ;; i*:windows32*:*) # uname -m includes "-pc" on this system. echo ${UNAME_MACHINE}-mingw32 exit ;; i*:PW*:*) echo ${UNAME_MACHINE}-pc-pw32 exit ;; x86:Interix*:[3456]*) echo i586-pc-interix${UNAME_RELEASE} exit ;; EM64T:Interix*:[3456]*) echo x86_64-unknown-interix${UNAME_RELEASE} exit ;; [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*) echo i${UNAME_MACHINE}-pc-mks exit ;; i*:Windows_NT*:* | Pentium*:Windows_NT*:*) # How do we know it's Interix rather than the generic POSIX subsystem? # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we # UNAME_MACHINE based on the output of uname instead of i386? echo i586-pc-interix exit ;; i*:UWIN*:*) echo ${UNAME_MACHINE}-pc-uwin exit ;; amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*) echo x86_64-unknown-cygwin exit ;; p*:CYGWIN*:*) echo powerpcle-unknown-cygwin exit ;; prep*:SunOS:5.*:*) echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; *:GNU:*:*) # the GNU system echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` exit ;; *:GNU/*:*:*) # other systems with GNU libc and userland echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu exit ;; i*86:Minix:*:*) echo ${UNAME_MACHINE}-pc-minix exit ;; arm*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; avr32*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; cris:Linux:*:*) echo cris-axis-linux-gnu exit ;; crisv32:Linux:*:*) echo crisv32-axis-linux-gnu exit ;; frv:Linux:*:*) echo frv-unknown-linux-gnu exit ;; ia64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; m32r*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; m68*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; mips:Linux:*:*) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #undef CPU #undef mips #undef mipsel #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) CPU=mipsel #else #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) CPU=mips #else CPU= #endif #endif EOF eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' /^CPU/{ s: ::g p }'`" test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } ;; mips64:Linux:*:*) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #undef CPU #undef mips64 #undef mips64el #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) CPU=mips64el #else #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) CPU=mips64 #else CPU= #endif #endif EOF eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' /^CPU/{ s: ::g p }'`" test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } ;; or32:Linux:*:*) echo or32-unknown-linux-gnu exit ;; ppc:Linux:*:*) echo powerpc-unknown-linux-gnu exit ;; ppc64:Linux:*:*) echo powerpc64-unknown-linux-gnu exit ;; alpha:Linux:*:*) case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in EV5) UNAME_MACHINE=alphaev5 ;; EV56) UNAME_MACHINE=alphaev56 ;; PCA56) UNAME_MACHINE=alphapca56 ;; PCA57) UNAME_MACHINE=alphapca56 ;; EV6) UNAME_MACHINE=alphaev6 ;; EV67) UNAME_MACHINE=alphaev67 ;; EV68*) UNAME_MACHINE=alphaev68 ;; esac objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} exit ;; parisc:Linux:*:* | hppa:Linux:*:*) # Look for CPU level case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in PA7*) echo hppa1.1-unknown-linux-gnu ;; PA8*) echo hppa2.0-unknown-linux-gnu ;; *) echo hppa-unknown-linux-gnu ;; esac exit ;; parisc64:Linux:*:* | hppa64:Linux:*:*) echo hppa64-unknown-linux-gnu exit ;; s390:Linux:*:* | s390x:Linux:*:*) echo ${UNAME_MACHINE}-ibm-linux exit ;; sh64*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; sh*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; sparc:Linux:*:* | sparc64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; vax:Linux:*:*) echo ${UNAME_MACHINE}-dec-linux-gnu exit ;; x86_64:Linux:*:*) echo x86_64-unknown-linux-gnu exit ;; i*86:Linux:*:*) # The BFD linker knows what the default object file format is, so # first see if it will tell us. cd to the root directory to prevent # problems with other programs or directories called `ld' in the path. # Set LC_ALL=C to ensure ld outputs messages in English. ld_supported_targets=`cd /; LC_ALL=C ld --help 2>&1 \ | sed -ne '/supported targets:/!d s/[ ][ ]*/ /g s/.*supported targets: *// s/ .*// p'` case "$ld_supported_targets" in elf32-i386) TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu" ;; a.out-i386-linux) echo "${UNAME_MACHINE}-pc-linux-gnuaout" exit ;; coff-i386) echo "${UNAME_MACHINE}-pc-linux-gnucoff" exit ;; "") # Either a pre-BFD a.out linker (linux-gnuoldld) or # one that does not give us useful --help. echo "${UNAME_MACHINE}-pc-linux-gnuoldld" exit ;; esac # Determine whether the default compiler is a.out or elf eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #include #ifdef __ELF__ # ifdef __GLIBC__ # if __GLIBC__ >= 2 LIBC=gnu # else LIBC=gnulibc1 # endif # else LIBC=gnulibc1 # endif #else #if defined(__INTEL_COMPILER) || defined(__PGI) || defined(__SUNPRO_C) || defined(__SUNPRO_CC) LIBC=gnu #else LIBC=gnuaout #endif #endif #ifdef __dietlibc__ LIBC=dietlibc #endif EOF eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' /^LIBC/{ s: ::g p }'`" test x"${LIBC}" != x && { echo "${UNAME_MACHINE}-pc-linux-${LIBC}" exit } test x"${TENTATIVE}" != x && { echo "${TENTATIVE}"; exit; } ;; i*86:DYNIX/ptx:4*:*) # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. # earlier versions are messed up and put the nodename in both # sysname and nodename. echo i386-sequent-sysv4 exit ;; i*86:UNIX_SV:4.2MP:2.*) # Unixware is an offshoot of SVR4, but it has its own version # number series starting with 2... # I am not positive that other SVR4 systems won't match this, # I just have to hope. -- rms. # Use sysv4.2uw... so that sysv4* matches it. echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION} exit ;; i*86:OS/2:*:*) # If we were able to find `uname', then EMX Unix compatibility # is probably installed. echo ${UNAME_MACHINE}-pc-os2-emx exit ;; i*86:XTS-300:*:STOP) echo ${UNAME_MACHINE}-unknown-stop exit ;; i*86:atheos:*:*) echo ${UNAME_MACHINE}-unknown-atheos exit ;; i*86:syllable:*:*) echo ${UNAME_MACHINE}-pc-syllable exit ;; i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*) echo i386-unknown-lynxos${UNAME_RELEASE} exit ;; i*86:*DOS:*:*) echo ${UNAME_MACHINE}-pc-msdosdjgpp exit ;; i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*) UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'` if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL} else echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL} fi exit ;; i*86:*:5:[678]*) # UnixWare 7.x, OpenUNIX and OpenServer 6. case `/bin/uname -X | grep "^Machine"` in *486*) UNAME_MACHINE=i486 ;; *Pentium) UNAME_MACHINE=i586 ;; *Pent*|*Celeron) UNAME_MACHINE=i686 ;; esac echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION} exit ;; i*86:*:3.2:*) if test -f /usr/options/cb.name; then UNAME_REL=`sed -n 's/.*Version //p' /dev/null >/dev/null ; then UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')` (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486 (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \ && UNAME_MACHINE=i586 (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \ && UNAME_MACHINE=i686 (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \ && UNAME_MACHINE=i686 echo ${UNAME_MACHINE}-pc-sco$UNAME_REL else echo ${UNAME_MACHINE}-pc-sysv32 fi exit ;; pc:*:*:*) # Left here for compatibility: # uname -m prints for DJGPP always 'pc', but it prints nothing about # the processor, so we play safe by assuming i386. echo i386-pc-msdosdjgpp exit ;; Intel:Mach:3*:*) echo i386-pc-mach3 exit ;; paragon:*:*:*) echo i860-intel-osf1 exit ;; i860:*:4.*:*) # i860-SVR4 if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4 else # Add other i860-SVR4 vendors below as they are discovered. echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4 fi exit ;; mini*:CTIX:SYS*5:*) # "miniframe" echo m68010-convergent-sysv exit ;; mc68k:UNIX:SYSTEM5:3.51m) echo m68k-convergent-sysv exit ;; M680?0:D-NIX:5.3:*) echo m68k-diab-dnix exit ;; M68*:*:R3V[5678]*:*) test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;; 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0) OS_REL='' test -r /etc/.relid \ && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ && { echo i486-ncr-sysv4.3${OS_REL}; exit; } /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ && { echo i486-ncr-sysv4; exit; } ;; m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) echo m68k-unknown-lynxos${UNAME_RELEASE} exit ;; mc68030:UNIX_System_V:4.*:*) echo m68k-atari-sysv4 exit ;; TSUNAMI:LynxOS:2.*:*) echo sparc-unknown-lynxos${UNAME_RELEASE} exit ;; rs6000:LynxOS:2.*:*) echo rs6000-unknown-lynxos${UNAME_RELEASE} exit ;; PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*) echo powerpc-unknown-lynxos${UNAME_RELEASE} exit ;; SM[BE]S:UNIX_SV:*:*) echo mips-dde-sysv${UNAME_RELEASE} exit ;; RM*:ReliantUNIX-*:*:*) echo mips-sni-sysv4 exit ;; RM*:SINIX-*:*:*) echo mips-sni-sysv4 exit ;; *:SINIX-*:*:*) if uname -p 2>/dev/null >/dev/null ; then UNAME_MACHINE=`(uname -p) 2>/dev/null` echo ${UNAME_MACHINE}-sni-sysv4 else echo ns32k-sni-sysv fi exit ;; PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort # says echo i586-unisys-sysv4 exit ;; *:UNIX_System_V:4*:FTX*) # From Gerald Hewes . # How about differentiating between stratus architectures? -djm echo hppa1.1-stratus-sysv4 exit ;; *:*:*:FTX*) # From seanf@swdc.stratus.com. echo i860-stratus-sysv4 exit ;; i*86:VOS:*:*) # From Paul.Green@stratus.com. echo ${UNAME_MACHINE}-stratus-vos exit ;; *:VOS:*:*) # From Paul.Green@stratus.com. echo hppa1.1-stratus-vos exit ;; mc68*:A/UX:*:*) echo m68k-apple-aux${UNAME_RELEASE} exit ;; news*:NEWS-OS:6*:*) echo mips-sony-newsos6 exit ;; R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) if [ -d /usr/nec ]; then echo mips-nec-sysv${UNAME_RELEASE} else echo mips-unknown-sysv${UNAME_RELEASE} fi exit ;; BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. echo powerpc-be-beos exit ;; BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only. echo powerpc-apple-beos exit ;; BePC:BeOS:*:*) # BeOS running on Intel PC compatible. echo i586-pc-beos exit ;; SX-4:SUPER-UX:*:*) echo sx4-nec-superux${UNAME_RELEASE} exit ;; SX-5:SUPER-UX:*:*) echo sx5-nec-superux${UNAME_RELEASE} exit ;; SX-6:SUPER-UX:*:*) echo sx6-nec-superux${UNAME_RELEASE} exit ;; Power*:Rhapsody:*:*) echo powerpc-apple-rhapsody${UNAME_RELEASE} exit ;; *:Rhapsody:*:*) echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE} exit ;; *:Darwin:*:*) UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown case $UNAME_PROCESSOR in unknown) UNAME_PROCESSOR=powerpc ;; esac echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} exit ;; *:procnto*:*:* | *:QNX:[0123456789]*:*) UNAME_PROCESSOR=`uname -p` if test "$UNAME_PROCESSOR" = "x86"; then UNAME_PROCESSOR=i386 UNAME_MACHINE=pc fi echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE} exit ;; *:QNX:*:4*) echo i386-pc-qnx exit ;; NSE-?:NONSTOP_KERNEL:*:*) echo nse-tandem-nsk${UNAME_RELEASE} exit ;; NSR-?:NONSTOP_KERNEL:*:*) echo nsr-tandem-nsk${UNAME_RELEASE} exit ;; *:NonStop-UX:*:*) echo mips-compaq-nonstopux exit ;; BS2000:POSIX*:*:*) echo bs2000-siemens-sysv exit ;; DS/*:UNIX_System_V:*:*) echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE} exit ;; *:Plan9:*:*) # "uname -m" is not consistent, so use $cputype instead. 386 # is converted to i386 for consistency with other x86 # operating systems. if test "$cputype" = "386"; then UNAME_MACHINE=i386 else UNAME_MACHINE="$cputype" fi echo ${UNAME_MACHINE}-unknown-plan9 exit ;; *:TOPS-10:*:*) echo pdp10-unknown-tops10 exit ;; *:TENEX:*:*) echo pdp10-unknown-tenex exit ;; KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*) echo pdp10-dec-tops20 exit ;; XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*) echo pdp10-xkl-tops20 exit ;; *:TOPS-20:*:*) echo pdp10-unknown-tops20 exit ;; *:ITS:*:*) echo pdp10-unknown-its exit ;; SEI:*:*:SEIUX) echo mips-sei-seiux${UNAME_RELEASE} exit ;; *:DragonFly:*:*) echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` exit ;; *:*VMS:*:*) UNAME_MACHINE=`(uname -p) 2>/dev/null` case "${UNAME_MACHINE}" in A*) echo alpha-dec-vms ; exit ;; I*) echo ia64-dec-vms ; exit ;; V*) echo vax-dec-vms ; exit ;; esac ;; *:XENIX:*:SysV) echo i386-pc-xenix exit ;; i*86:skyos:*:*) echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//' exit ;; i*86:rdos:*:*) echo ${UNAME_MACHINE}-pc-rdos exit ;; esac #echo '(No uname command or uname output not recognized.)' 1>&2 #echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2 eval $set_cc_for_build cat >$dummy.c < # include #endif main () { #if defined (sony) #if defined (MIPSEB) /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed, I don't know.... */ printf ("mips-sony-bsd\n"); exit (0); #else #include printf ("m68k-sony-newsos%s\n", #ifdef NEWSOS4 "4" #else "" #endif ); exit (0); #endif #endif #if defined (__arm) && defined (__acorn) && defined (__unix) printf ("arm-acorn-riscix\n"); exit (0); #endif #if defined (hp300) && !defined (hpux) printf ("m68k-hp-bsd\n"); exit (0); #endif #if defined (NeXT) #if !defined (__ARCHITECTURE__) #define __ARCHITECTURE__ "m68k" #endif int version; version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`; if (version < 4) printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version); else printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version); exit (0); #endif #if defined (MULTIMAX) || defined (n16) #if defined (UMAXV) printf ("ns32k-encore-sysv\n"); exit (0); #else #if defined (CMU) printf ("ns32k-encore-mach\n"); exit (0); #else printf ("ns32k-encore-bsd\n"); exit (0); #endif #endif #endif #if defined (__386BSD__) printf ("i386-pc-bsd\n"); exit (0); #endif #if defined (sequent) #if defined (i386) printf ("i386-sequent-dynix\n"); exit (0); #endif #if defined (ns32000) printf ("ns32k-sequent-dynix\n"); exit (0); #endif #endif #if defined (_SEQUENT_) struct utsname un; uname(&un); if (strncmp(un.version, "V2", 2) == 0) { printf ("i386-sequent-ptx2\n"); exit (0); } if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */ printf ("i386-sequent-ptx1\n"); exit (0); } printf ("i386-sequent-ptx\n"); exit (0); #endif #if defined (vax) # if !defined (ultrix) # include # if defined (BSD) # if BSD == 43 printf ("vax-dec-bsd4.3\n"); exit (0); # else # if BSD == 199006 printf ("vax-dec-bsd4.3reno\n"); exit (0); # else printf ("vax-dec-bsd\n"); exit (0); # endif # endif # else printf ("vax-dec-bsd\n"); exit (0); # endif # else printf ("vax-dec-ultrix\n"); exit (0); # endif #endif #if defined (alliant) && defined (i860) printf ("i860-alliant-bsd\n"); exit (0); #endif exit (1); } EOF $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && SYSTEM_NAME=`$dummy` && { echo "$SYSTEM_NAME"; exit; } # Apollos put the system type in the environment. test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; } # Convex versions that predate uname can use getsysinfo(1) if [ -x /usr/convex/getsysinfo ] then case `getsysinfo -f cpu_type` in c1*) echo c1-convex-bsd exit ;; c2*) if getsysinfo -f scalar_acc then echo c32-convex-bsd else echo c2-convex-bsd fi exit ;; c34*) echo c34-convex-bsd exit ;; c38*) echo c38-convex-bsd exit ;; c4*) echo c4-convex-bsd exit ;; esac fi cat >&2 < in order to provide the needed information to handle your system. config.guess timestamp = $timestamp uname -m = `(uname -m) 2>/dev/null || echo unknown` uname -r = `(uname -r) 2>/dev/null || echo unknown` uname -s = `(uname -s) 2>/dev/null || echo unknown` uname -v = `(uname -v) 2>/dev/null || echo unknown` /usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null` /bin/uname -X = `(/bin/uname -X) 2>/dev/null` hostinfo = `(hostinfo) 2>/dev/null` /bin/universe = `(/bin/universe) 2>/dev/null` /usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null` /bin/arch = `(/bin/arch) 2>/dev/null` /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null` /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null` UNAME_MACHINE = ${UNAME_MACHINE} UNAME_RELEASE = ${UNAME_RELEASE} UNAME_SYSTEM = ${UNAME_SYSTEM} UNAME_VERSION = ${UNAME_VERSION} EOF exit 1 # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "timestamp='" # time-stamp-format: "%:y-%02m-%02d" # time-stamp-end: "'" # End: mock-1.1.33/Makefile.am0000664001204700120500000001125212205226221011476 00000000000000# vim:noexpandtab:autoindent:tabstop=8:shiftwidth=8:filetype=make:nocindent:tw=0: AUTOMAKE_OPTIONS = subdir-objects SUBDIRS = # dont move these 5 lines, as this is how we override the autoconf version and package name RELEASE_NAME=@RELEASE_NAME@ RELEASE_MAJOR=@RELEASE_MAJOR@ RELEASE_MINOR=@RELEASE_MINOR@ RELEASE_SUBLEVEL=@RELEASE_SUBLEVEL@ RELEASE_EXTRALEVEL=@RELEASE_EXTRALEVEL@ RELEASE_VERSION = $(RELEASE_MAJOR).$(RELEASE_MINOR).$(RELEASE_SUBLEVEL)$(RELEASE_EXTRALEVEL) RELEASE_STRING = $(RELEASE_NAME)-$(RELEASE_VERSION) VERSION = $(RELEASE_VERSION) PACKAGE = $(RELEASE_NAME) CLEANFILES=mock-*.tar.gz mock-*.tar.bz2 mock-*.rpm _buildtemp version tests/daemontest DISTCLEANFILES=*~ mock-unit-test/* x86_64/* noarch/* i386/* TESTS=./tests/runtests.sh $(TESTS): srpm EXTRA_DIST = contrib bin_PROGRAMS= CLEANFILES += $(EXTRA_PROGRAMS) mocketcdir = $(sysconfdir)/mock mocketc_DATA = $(wildcard $(top_srcdir)/etc/mock/*.cfg) $(top_srcdir)/etc/mock/logging.ini EXTRA_DIST += docs etc dist_sbin_SCRIPTS = py/mock.py py/mockchain.py man_MANS = docs/mock.1 docs/mockchain.1 pamdir = $(sysconfdir)/pam.d/ pam_DATA = etc/pam/mock consoledir = $(sysconfdir)/security/console.apps/ console_DATA = etc/consolehelper/mock bashcompdir = $(sysconfdir)/bash_completion.d/ bashcomp_DATA = etc/bash_completion.d/mock.bash pluginsdir = $(pythondir)/mockbuild/plugins plugins_PYTHON = \ py/mockbuild/plugins/bind_mount.py \ py/mockbuild/plugins/ccache.py \ py/mockbuild/plugins/package_state.py \ py/mockbuild/plugins/root_cache.py \ py/mockbuild/plugins/tmpfs.py \ py/mockbuild/plugins/yum_cache.py \ py/mockbuild/plugins/selinux.py \ py/mockbuild/plugins/mount.py mockbuilddir = $(pythondir)/mockbuild mockbuild_PYTHON = \ py/mockbuild/__init__.py \ py/mockbuild/exception.py \ py/mockbuild/util.py \ py/mockbuild/backend.py \ py/mockbuild/trace_decorator.py \ py/mockbuild/uid.py \ py/mockbuild/scm.py \ py/mockbuild/mounts.py CLEANFILES += py/*.pyc py/mockbuild/*.pyc py/mockbuild/plugins/*.pyc dist: ChangeLog AUTHORS ChangeLog: (GIT_DIR=.git git log > .changelog.tmp && mv .changelog.tmp ChangeLog; rm -f .changelog.tmp) || (touch ChangeLog; echo 'git directory not found: installing possibly empty changelog.' >&2) AUTHORS: (GIT_DIR=.git git log | grep ^Author | sort |uniq > .authors.tmp && mv .authors.tmp AUTHORS; rm -f .authors.tmp) || (touch AUTHORS; echo 'git directory not found: installing possibly empty AUTHORS.' >&2) REPLACE_VARS_ON_INSTALL=$(sbindir)/mock.py $(sbindir)/mockchain.py install-exec-hook: for i in $(REPLACE_VARS_ON_INSTALL); do \ file=$(DESTDIR)/$$i ;\ perl -p -i -e 's|^__VERSION__\s*=.*|__VERSION__="$(RELEASE_VERSION)"|' $$file ;\ perl -p -i -e 's|^SYSCONFDIR\s*=.*|SYSCONFDIR="$(sysconfdir)"|' $$file ;\ perl -p -i -e 's|^PYTHONDIR\s*=.*|PYTHONDIR="$(pythondir)"|' $$file ;\ perl -p -i -e 's|^PKGPYTHONDIR\s*=.*|PKGPYTHONDIR="$(mockbuilddir)"|' $$file ;\ perl -p -i -e 's|^PKGDATADIR\s*=.*|PKGDATADIR="$(pkgdatadir)"|' $$file ;\ perl -p -i -e 's|^LIBDIR\s*=.*|LIBDIR="$(libdir)"|' $$file ;\ done mv $(DESTDIR)/$(sbindir)/mock.py $(DESTDIR)/$(sbindir)/mock [ -d $(DESTDIR)/$(bindir) ] || mkdir $(DESTDIR)/$(bindir) mv $(DESTDIR)/$(sbindir)/mockchain.py $(DESTDIR)/$(bindir)/mockchain install-data-hook: perl -p -i -e 's|(=\s*)/etc/mock\b|$$1$(sysconfdir)/mock|' \ $(DESTDIR)$(bashcompdir)/mock.bash TOPDIR := $(shell cd $(top_builddir);pwd) BUILDDIR = $(TOPDIR)/_rpmbuild RPMDIR = $(TOPDIR) SOURCEDIR = $(TOPDIR) SPECDIR = $(TOPDIR) SRCRPMDIR = $(TOPDIR) RPM_DEFINES = --define "_topdir $(TOPDIR)" \ --define "_builddir $(BUILDDIR)" \ --define "_rpmdir $(RPMDIR)" \ --define "_sourcedir $(SOURCEDIR)" \ --define "_specdir $(SPECDIR)" \ --define "_srcrpmdir $(SRCRPMDIR)" RPMBUILD := $(shell if [ -e /usr/bin/rpmbuild-md5 ]; then echo rpmbuild-md5; else echo rpmbuild; fi) .PHONY: rpm srpm help install-devel-packages rpm: dist mkdir -p $(BUILDDIR) $(RPMBUILD) $(RPM_DEFINES) -ba --nodeps $(PACKAGE_NAME).spec rm -rf $(BUILDDIR) srpm: dist mkdir -p $(BUILDDIR) $(RPMBUILD) $(RPM_DEFINES) -bs --nodeps $(PACKAGE_NAME).spec rm -rf $(BUILDDIR) install-devel-packages: yum --disablerepo='beaker*' install mock rpm-build fedora-packager vim-enhanced git-all help: @echo @echo "Mock Makefile targets:" @echo " dist - generate Changelog and Authors file" @echo " rpm - build binary RPM" @echo " srpm - build source RPM" @echo " help - print this message" @echo "Additionally, all standard automake targets are supported" @echo mock-1.1.33/INSTALL0000664001204700120500000002231010717137301010476 00000000000000Installation Instructions ************************* Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004, 2005, 2006 Free Software Foundation, Inc. This file is free documentation; the Free Software Foundation gives unlimited permission to copy, distribute and modify it. Basic Installation ================== Briefly, the shell commands `./configure; make; make install' should configure, build, and install this package. The following more-detailed instructions are generic; see the `README' file for instructions specific to this package. The `configure' shell script attempts to guess correct values for various system-dependent variables used during compilation. It uses those values to create a `Makefile' in each directory of the package. It may also create one or more `.h' files containing system-dependent definitions. Finally, it creates a shell script `config.status' that you can run in the future to recreate the current configuration, and a file `config.log' containing compiler output (useful mainly for debugging `configure'). It can also use an optional file (typically called `config.cache' and enabled with `--cache-file=config.cache' or simply `-C') that saves the results of its tests to speed up reconfiguring. Caching is disabled by default to prevent problems with accidental use of stale cache files. If you need to do unusual things to compile the package, please try to figure out how `configure' could check whether to do them, and mail diffs or instructions to the address given in the `README' so they can be considered for the next release. If you are using the cache, and at some point `config.cache' contains results you don't want to keep, you may remove or edit it. The file `configure.ac' (or `configure.in') is used to create `configure' by a program called `autoconf'. You need `configure.ac' if you want to change it or regenerate `configure' using a newer version of `autoconf'. The simplest way to compile this package is: 1. `cd' to the directory containing the package's source code and type `./configure' to configure the package for your system. Running `configure' might take a while. While running, it prints some messages telling which features it is checking for. 2. Type `make' to compile the package. 3. Optionally, type `make check' to run any self-tests that come with the package. 4. Type `make install' to install the programs and any data files and documentation. 5. You can remove the program binaries and object files from the source code directory by typing `make clean'. To also remove the files that `configure' created (so you can compile the package for a different kind of computer), type `make distclean'. There is also a `make maintainer-clean' target, but that is intended mainly for the package's developers. If you use it, you may have to get all sorts of other programs in order to regenerate files that came with the distribution. Compilers and Options ===================== Some systems require unusual options for compilation or linking that the `configure' script does not know about. Run `./configure --help' for details on some of the pertinent environment variables. You can give `configure' initial values for configuration parameters by setting variables in the command line or in the environment. Here is an example: ./configure CC=c99 CFLAGS=-g LIBS=-lposix *Note Defining Variables::, for more details. Compiling For Multiple Architectures ==================================== You can compile the package for more than one kind of computer at the same time, by placing the object files for each architecture in their own directory. To do this, you can use GNU `make'. `cd' to the directory where you want the object files and executables to go and run the `configure' script. `configure' automatically checks for the source code in the directory that `configure' is in and in `..'. With a non-GNU `make', it is safer to compile the package for one architecture at a time in the source code directory. After you have installed the package for one architecture, use `make distclean' before reconfiguring for another architecture. Installation Names ================== By default, `make install' installs the package's commands under `/usr/local/bin', include files under `/usr/local/include', etc. You can specify an installation prefix other than `/usr/local' by giving `configure' the option `--prefix=PREFIX'. You can specify separate installation prefixes for architecture-specific files and architecture-independent files. If you pass the option `--exec-prefix=PREFIX' to `configure', the package uses PREFIX as the prefix for installing programs and libraries. Documentation and other data files still use the regular prefix. In addition, if you use an unusual directory layout you can give options like `--bindir=DIR' to specify different values for particular kinds of files. Run `configure --help' for a list of the directories you can set and what kinds of files go in them. If the package supports it, you can cause programs to be installed with an extra prefix or suffix on their names by giving `configure' the option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'. Optional Features ================= Some packages pay attention to `--enable-FEATURE' options to `configure', where FEATURE indicates an optional part of the package. They may also pay attention to `--with-PACKAGE' options, where PACKAGE is something like `gnu-as' or `x' (for the X Window System). The `README' should mention any `--enable-' and `--with-' options that the package recognizes. For packages that use the X Window System, `configure' can usually find the X include and library files automatically, but if it doesn't, you can use the `configure' options `--x-includes=DIR' and `--x-libraries=DIR' to specify their locations. Specifying the System Type ========================== There may be some features `configure' cannot figure out automatically, but needs to determine by the type of machine the package will run on. Usually, assuming the package is built to be run on the _same_ architectures, `configure' can figure that out, but if it prints a message saying it cannot guess the machine type, give it the `--build=TYPE' option. TYPE can either be a short name for the system type, such as `sun4', or a canonical name which has the form: CPU-COMPANY-SYSTEM where SYSTEM can have one of these forms: OS KERNEL-OS See the file `config.sub' for the possible values of each field. If `config.sub' isn't included in this package, then this package doesn't need to know the machine type. If you are _building_ compiler tools for cross-compiling, you should use the option `--target=TYPE' to select the type of system they will produce code for. If you want to _use_ a cross compiler, that generates code for a platform different from the build platform, you should specify the "host" platform (i.e., that on which the generated programs will eventually be run) with `--host=TYPE'. Sharing Defaults ================ If you want to set default values for `configure' scripts to share, you can create a site shell script called `config.site' that gives default values for variables like `CC', `cache_file', and `prefix'. `configure' looks for `PREFIX/share/config.site' if it exists, then `PREFIX/etc/config.site' if it exists. Or, you can set the `CONFIG_SITE' environment variable to the location of the site script. A warning: not all `configure' scripts look for a site script. Defining Variables ================== Variables not defined in a site shell script can be set in the environment passed to `configure'. However, some packages may run configure again during the build, and the customized values of these variables may be lost. In order to avoid this problem, you should set them in the `configure' command line, using `VAR=value'. For example: ./configure CC=/usr/local2/bin/gcc causes the specified `gcc' to be used as the C compiler (unless it is overridden in the site shell script). Unfortunately, this technique does not work for `CONFIG_SHELL' due to an Autoconf bug. Until the bug is fixed you can use this workaround: CONFIG_SHELL=/bin/bash /bin/bash ./configure CONFIG_SHELL=/bin/bash `configure' Invocation ====================== `configure' recognizes the following options to control how it operates. `--help' `-h' Print a summary of the options to `configure', and exit. `--version' `-V' Print the version of Autoconf used to generate the `configure' script, and exit. `--cache-file=FILE' Enable the cache: use and save the results of the tests in FILE, traditionally `config.cache'. FILE defaults to `/dev/null' to disable caching. `--config-cache' `-C' Alias for `--cache-file=config.cache'. `--quiet' `--silent' `-q' Do not print messages saying which checks are being made. To suppress all normal output, redirect it to `/dev/null' (any error messages will still be shown). `--srcdir=DIR' Look for the package's source code in directory DIR. Usually `configure' can determine that directory automatically. `configure' also accepts some other, not widely useful, options. Run `configure --help' for more details. mock-1.1.33/ChangeLog0000664001204700120500000120302512205226134011221 00000000000000commit 4c004179d074c07a0ffc7868730b528c6653b9d6 Author: Clark Williams Date: Wed Aug 21 16:07:42 2013 -0500 version bump to 1.1.33 Signed-off-by: Clark Williams commit d8bd58c253aec5589b63f969a2595a00949af062 Author: Clark Williams Date: Wed Aug 21 16:07:06 2013 -0500 turned on verbose in tests commit 60eef47dca7c8e2cf3ee2c918a2a0c4488daaf3c Author: Clark Williams Date: Wed Aug 21 14:24:13 2013 -0500 remove fedora 17 configs (EOL) Signed-off-by: Clark Williams commit 14093e0f6d98ca226402730a969142db5b4db632 Author: Clark Williams Date: Wed Aug 21 10:14:13 2013 -0500 add fedora 20 configs Signed-off-by: Clark Williams commit 36ce278d184b96608eaffb6578eec411e7c34b00 Author: Clark Williams Date: Wed Aug 21 10:11:39 2013 -0500 allow a gid other than 'mock' to be used in the chroot [BZ# 953519] First cut at allowing a config file change of the mock gid. This probably is not enough by itself but may require changes to pam config file as well. Signed-off-by: Clark Williams commit a5eae137a34a060d90a5e61aab4038727dfa446e Author: Clark Williams Date: Wed Aug 21 09:59:12 2013 -0500 tests: change default test config to be f19 Signed-off-by: Clark Williams commit 9719100716352e4bb5d2796fa5f445186b268866 Merge: 5b2ee79 d066ccf Author: Clark Williams Date: Mon Jul 22 09:35:01 2013 -0500 Merge branch 'master' into work commit d066ccf1e11cd2662ef00d845ed87035ec592791 Author: Dennis Gilmore Date: Fri Jun 7 07:21:08 2013 -0500 rawhide and f19 is hardware floating point only for arm, drop the unneeded configs commit 5b2ee794d2115b2b915967f16a7aa5ba0f5cfbaf Author: Clark Williams Date: Fri May 17 15:32:16 2013 -0500 actually fix mockchain to use mock config default setup [BZ# 962573] make mockchain return config_opts from the util call. Signed-off-by: Clark Williams commit 2fe5776b7c6e455fd32c8f6694aad75b468a253d Author: Clark Williams Date: Fri May 17 15:20:33 2013 -0500 remove bogus lockfile dir in _setupDirs() [BZ# 894305] Don't create /var/lock/rpm in chroot (no longer needed by rpm). Signed-off-by: Clark Williams commit 403c9c4646c024b31771701806b683e21d0b852f Author: Clark Williams Date: Thu May 16 17:06:24 2013 -0500 mockchain: added first cut at regression tests for mockchain Signed-off-by: Clark Williams commit 107d2fee3cb9b15d7633bdcc8dd78276fbc88dfd Author: Clark Williams Date: Thu May 16 10:41:22 2013 -0500 tests: have runtests.sh use the common MOCKSRPM variable Signed-off-by: Clark Williams commit 2135337301164fe3e82c75fe86eead82abeb80ff Author: Clark Williams Date: Thu May 16 10:40:24 2013 -0500 initial cut at changes to mockchain for configuration defaults First cut at using the mock configuration logic. Signed-off-by: Clark Williams commit 6f25d3b1ac62a58161cc6509259ea20dcfc91654 Author: Clark Williams Date: Wed May 15 15:05:43 2013 -0500 move config processing code into mockbuild/util.py module Move code for setting config option defaults and code for setting config options based on command line arguments into the util module so that mockchain can use it. Signed-off-by: Clark Williams commit aa74f3b11f32342b1f7c16d1044fbc24ee93f040 Author: Clark Williams Date: Thu Apr 18 14:01:03 2013 -0500 version bump to 1.1.32 Signed-off-by: Clark Williams commit 3aed35b65d0c2d6078e3c3edef014123da209fc5 Author: Clark Williams Date: Thu Apr 18 13:58:17 2013 -0500 fixed incorrect argument to getent in %post scriptlet Signed-off-by: Clark Williams commit 6481fb53faca02691871bcd11dbf002dc83a1ae2 Author: Clark Williams Date: Tue Apr 16 10:48:07 2013 -0500 version bump to 1.1.31 Signed-off-by: Clark Williams commit ddc5f4b74f762361bd663d93c78e9b8f4182bac6 Author: Clark Williams Date: Mon Apr 15 20:36:00 2013 -0500 get the latest srpm when running tests Modify the tests/testenvironment file to prevent picking up multiple versions of the mock SRPM. Signed-off-by: Clark Williams commit 037c8c9b6be740d5c92e72fe60ff16d861e3d3b0 Author: Clark Williams Date: Fri Apr 12 17:05:32 2013 -0500 handle --scrub=all called on non-existent chroot [BZ# 875473] The _resetLogging() call tries to access the resultdir, which isn't there on a non-initialized chroot. Avoid this. Signed-off-by: Clark Williams commit ef545fd1a1c4a1a61fab68fa3f1e056750fa8e83 Author: Marko Myllynen Date: Fri Apr 12 13:49:11 2013 -0500 separate scm module into separate package [BZ# 798367] Move the scm module into a separate sub-package named mock-scm. This is so we can automatically pull in dependencies when someone wants the scm functionality, without needlessly pulling them in when only mock is needed. Signed-off-by: Clark Williams commit f1a5a36709d3006391fb24f0a2b68a5369dc4ed5 Author: Clark Williams Date: Thu Apr 11 14:57:55 2013 -0500 initial cut at chroot_scan plugin [BZ# 441090] This plugin, disabled by default, will scan the chroot after a build, looking for files which match the regexes specified by the config (defaults to looking for core* and *.log files). Signed-off-by: Clark Williams commit e41a2e76cfa90c7f4f288d3f39d667230ca05a6c Author: Clark Williams Date: Mon Apr 1 16:39:02 2013 -0500 fix logging assumption in main mock file [BZ# 912624] Signed-off-by: Clark Williams commit 6f08e142bf13a832ff0f4364d4c8625e5c239a8c Author: Marko Myllynen Date: Mon Feb 25 12:37:12 2013 +0200 Handle filenames w/ spaces in SCM/git when setting timestamps [BZ# 915264] Signed-off-by: Clark Williams commit c6fe3aed2ae3409ab2e6ea9dd8e86173f94a4786 Author: Clark Williams Date: Mon Apr 1 16:01:56 2013 -0500 configs: removed f16 configurations Signed-off-by: Clark Williams commit 50910691d16a80afd0a1536ffeda445b1d3f9405 Author: Shad L. Lords Date: Mon Apr 1 16:00:49 2013 -0500 mounts plugin: removed redundant '-t' specified for vfstype [BZ# 910857] Don't need to add '-t' to vfstype pulled in from config file because that causes duplicate options when actually operating on the mount Signed-off-by: Clark Williams commit 8057694b86c623d6b171a2f1c22f61249f3a0a2b Author: Clark Williams Date: Mon Apr 1 14:47:06 2013 -0500 selinux plugin: modify to catch yum-builddep in callback [BZ# 923927] Make sure we catch runs of yum-builddep and pass in the --setopt=tsflags=nocontext option to avoid making any selinux labeling changes inside a chroot. Signed-off-by: Clark Williams commit edab65391ab223e4a127136bf5fde88c41177ebf Author: Justin Lewis Salmon Date: Sun Mar 31 15:42:18 2013 -0500 root cache plugin: add the --cache-alternations option [BZ# 905363] Add the option --cache-alterations which will cause the root cache image to be rebuilt after whatever modifications are made by the currently running mock. Signed-off-by: Clark Williams commit ba4df56878ca9a121d6258cc37ad32e12bfb7dfb Author: Marko Myllynen Date: Sun Mar 31 13:02:52 2013 -0500 scm plugin: check to see if tar supports --exlcude-vcs and use it [BZ# 824848] If the installed version of tar supports the --exclude-vcs option then use it to exclude the various vcs dirs (.svn, .git, .cvs, etc.) Signed-off-by: Clark Williams commit bd9f31f24f9ce0913ecb7b620671af08d1821083 Author: Clark Williams Date: Thu Mar 28 16:39:40 2013 -0500 version bump to 1.1.30 Signed-off-by: Clark Williams commit 5df47cea2eba158e76b2a82db9038af590a0e4d5 Author: Clark Williams Date: Thu Mar 28 16:34:32 2013 -0500 beef up cleanup logic to remove RPM db lockfiles inside chroots created the method _nuke_rpm_db() inside Root object and scattered calls to it around various areas (lock/unlock chroot, before build, after any chroot operation, etc.). This routine removes the RPM DB lock files (__db*) that cause issues when crossing DB versions. Not a total solution, but seems to reduce the number of failures attributed to DB version mismatches. Signed-off-by: Clark Williams commit 254b7f036e8b79310ab14949ffb1b243461a292c Author: Clark Williams Date: Tue Mar 26 13:35:53 2013 -0500 package_state plugin: don't run repoquery when offline [BZ# 927496] Don't run repoquery when the --offline option is specified. Signed-off-by: Clark Williams commit 9821f148b30a04475fb6f9da6dc0f7c905130076 Author: Clark Williams Date: Mon Mar 18 12:35:33 2013 -0500 added fedora-19 config files [BZ# 922268] Signed-off-by: Clark Williams commit 64e539dca317d484342a484ea5e73cbd4efb076d Author: Clark Williams Date: Fri Mar 15 15:05:06 2013 -0500 add backup-before-clean configuration options [BZ# 799639] Add the configuration variables: config_opts['backup_on_clean'] config_opts['backup_base_dir'] When backup_on_clean is True (default is False) any rpms in the specified chroot result dir will be saved off to backup_base_dir before the chroot is cleaned. Signed-off-by: Clark Williams commit 2b6ebb0106d2c449e81d29be2ba0d3650bd0dd24 Merge: ccd9fe3 7d0f121 Author: Clark Williams Date: Thu Mar 14 16:39:08 2013 -0500 Merge branch 'master' into work Conflicts: mock.spec.in commit 7d0f12194ebf49be38c4b3717cbb4a6d3e492090 Author: Clark Williams Date: Sun Feb 24 17:21:46 2013 -0600 version bump to 1.1.29 Signed-off-by: Clark Williams commit 761ccae3f36998326a3f2397c3b0e3ea4e5d572e Author: Clark Williams Date: Fri Feb 22 16:23:12 2013 -0600 remove CLONE_NEWPID (for now) from unshare(2) call [BZ# 894623] remove the bit CLONE_NEWPID from unshare(2) call in mock.py due to behavior change in rawhide kernel (the previous calls were failing but rawhide kernel now succeeds and mock doesn't use the NEWPID correctly) which resulted in a memory exhaustion situation. We will revisit using CLONE_NEWPID with unshare(2) in a future release. Signed-off-by: Clark Williams commit e8e7476cdaf33992c77aa7437f57a03e5744b485 Author: Clark Williams Date: Thu Jan 31 12:38:25 2013 -0600 initialize package_state_opts so that package_state plugin will work Signed-off-by: Clark Williams commit e133a3f761504057716ac2223adf93d02dde19c8 Author: Clark Williams Date: Wed Jan 30 17:49:39 2013 -0600 make epel-5-* config files safe to eval [BZ# 903686] This patch allows mockchain to run properly on epel-5-* configs by making sure that the config_opts['macros'] option is defined before use (mockchain does not initialize configs the way mock does). Signed-off-by: Clark Williams commit 6eeb1ce55cd8ede2441ee1f0c003560d28bf9146 Author: Clark Williams Date: Wed Jan 30 15:07:25 2013 -0600 move CLONE_NEWUTS to extended unshare options [BZ# 890695] Move CLONE_NEWUTS from base options (required) to extended unshare options (optional) so that kernels which don't have UTS_NS configuation built in will still run mock. Signed-off-by: Clark Williams commit fb9ea141f8f37f9d929b1a0fe4e6b236140449ba Author: Clark Williams Date: Fri Jan 18 09:57:06 2013 -0600 change default tests environment to be -i386 Change so that any x86 config can run the tests Signed-off-by: Clark Williams commit 6c4caa1ffbac493a726561b4708742520ffcfb28 Author: Tzafrir Cohen Date: Wed Dec 26 12:04:50 2012 +0200 Fix most bashism in test scripts If /bin/sh is not bash, it may not support some bash-specific contructs. * source => . 'source' is not supported by all bourne shells. It is always safe to replace it with '.'. * == => = While '==' is more readable, and has a slightly different semantics, in simple cases it can be replaced with the posix-compliant '='. Signed-off-by: Tzafrir Cohen commit bf0ab799f2bd9e444ca96b27dbe0aba1168f6c04 Author: Clark Williams Date: Fri Dec 7 13:47:27 2012 -0600 fix initialization of package_state plugin Added package_state to the configured plugins array so that it is enabled by default. Signed-off-by: Clark Williams commit ccd9fe35b936a7868cb855711f1c24e45d9b3b1d Author: Clark Williams Date: Sun Feb 24 17:21:46 2013 -0600 version bump to 1.1.29 Signed-off-by: Clark Williams commit 8cb56794fbf9fb773b648546e7b735b910731dfd Author: Clark Williams Date: Fri Feb 22 16:23:12 2013 -0600 remove CLONE_NEWPID (for now) from unshare(2) call [BZ# 894623] remove the bit CLONE_NEWPID from unshare(2) call in mock.py due to behavior change in rawhide kernel (the previous calls were failing but rawhide kernel now succeeds and mock doesn't use the NEWPID correctly) which resulted in a memory exhaustion situation. We will revisit using CLONE_NEWPID with unshare(2) in a future release. Signed-off-by: Clark Williams commit 9912db2697338c5ed11bc86e29ca5a3e10aa7059 Author: Clark Williams Date: Thu Jan 31 12:38:25 2013 -0600 initialize package_state_opts so that package_state plugin will work Signed-off-by: Clark Williams commit 8baeb70bd0b4b7a6e0375f3244b1727aac856935 Author: Clark Williams Date: Wed Jan 30 17:49:39 2013 -0600 make epel-5-* config files safe to eval [BZ# 903686] This patch allows mockchain to run properly on epel-5-* configs by making sure that the config_opts['macros'] option is defined before use (mockchain does not initialize configs the way mock does). Signed-off-by: Clark Williams commit c08f5036d0b965289b5fd487380ace84f5a63f4f Author: Clark Williams Date: Wed Jan 30 15:07:25 2013 -0600 move CLONE_NEWUTS to extended unshare options [BZ# 890695] Move CLONE_NEWUTS from base options (required) to extended unshare options (optional) so that kernels which don't have UTS_NS configuation built in will still run mock. Signed-off-by: Clark Williams commit d1eb0ced3eea32e27cf47f469505f92215de3297 Author: Clark Williams Date: Fri Jan 18 09:57:06 2013 -0600 change default tests environment to be -i386 Change so that any x86 config can run the tests Signed-off-by: Clark Williams commit c0e40552b9d810e6e03ae3d8455b2d0abb9ef43f Author: Seth Vidal Date: Tue Jan 15 21:11:56 2013 -0500 so , is a protected character for a yum repo - gotta make it _ instead commit 77794be2fc4a2ca0bb83a8dbb478ecb7a6537e89 Author: Seth Vidal Date: Thu Jan 10 15:25:44 2013 -0500 allow for a non-username tmpdir prefix when we setup the tmp dir prefix - catch the oserror if mockchain is not running from a TTY - thanks to Alasdair Ross for pointing this out commit 4f967c4aac7d4cb240ba8e609de6035b2f855431 Author: Tzafrir Cohen Date: Wed Dec 26 12:04:50 2012 +0200 Fix most bashism in test scripts If /bin/sh is not bash, it may not support some bash-specific contructs. * source => . 'source' is not supported by all bourne shells. It is always safe to replace it with '.'. * == => = While '==' is more readable, and has a slightly different semantics, in simple cases it can be replaced with the posix-compliant '='. Signed-off-by: Tzafrir Cohen commit 50b83f20fc55ac39b630702dc9ca8b9356e4b6f6 Author: Clark Williams Date: Fri Dec 7 13:47:27 2012 -0600 fix initialization of package_state plugin Added package_state to the configured plugins array so that it is enabled by default. Signed-off-by: Clark Williams commit 98518ed5320002306c65d39d6e82c85326536991 Author: Tim Woods Date: Tue Nov 20 18:04:59 2012 -0500 Fix mockchain repo id calculation [BZ# 880849] Fix the repo id calculation to use an underscore instead of a comma as the replacement separator for slash. The comma is not a valid character for the yum configuration section name. Fixes https://bugzilla.redhat.com/show_bug.cgi?id=880849 Signed-off-by: Clark Williams commit cf8320a2b7e8d90241fc39517ab27a0f95276e6c Author: Clark Williams Date: Wed Oct 31 16:31:16 2012 -0500 version bump to 1.1.28 Signed-off-by: Clark Williams commit 765fd95bb6903d2aae66055c4019a2d02d53b94a Author: Clark Williams Date: Thu Nov 1 13:22:27 2012 -0500 inital checkin of script to verify cfg repos Signed-off-by: Clark Williams commit 1b4271c6e2b5668ffa83da540732bcc935e59408 Author: Clark Williams Date: Tue Oct 2 14:50:35 2012 -0500 modify scrub to handle non-existant chroots [BZ# 860368] Handle being passed a config that has not been initialized or has had its directory removed. Put body of scrub ito a try except and pass IOError as ok. Issue a warning when handling IOError though. Signed-off-by: Clark Williams commit 133569e024f3748631fad694a330d60fe3b17dab Author: Clark Williams Date: Tue Oct 30 12:51:41 2012 -0500 add updates-testing stanza to fedora-1x-*.cfg [BZ# 610826] Added an updates-testing stanza to all fedora-1x configs. This stanza is disabled by default (enabled=0). Also, fix yum repo stanza names to match name parameter. Signed-off-by: Clark Williams commit 3f3cde611edd438dbd3fcd4595fc11c345a6f77b Author: Clark Williams Date: Mon Oct 1 18:32:04 2012 -0500 deal with differing rpmutil versions [BZ# 847473] Put the rpmutil call compareVerOnly inside a try block and call the older compareEVR on exception. This deals with differing rpmutils versions in the EPEL versions. Signed-off-by: Clark Williams commit 34cdb00fa1b7605a231d67d101d22b54b71bb0dd Author: Clark Williams Date: Fri Sep 7 13:20:49 2012 -0500 updated specfile template changelog Signed-off-by: Clark Williams commit ff10f12bd909d0933b85435d14cab42de68a2afb Author: Clark Williams Date: Fri Sep 7 13:10:50 2012 -0500 version bump to 1.1.27 Signed-off-by: Clark Williams commit 6713ba92fb1767978f5bee0bc4b90ef390639ba9 Author: Clark Williams Date: Fri Sep 7 13:08:54 2012 -0500 fixed report to indicate configuration failure number Signed-off-by: Clark Williams commit 6257c44b769c7d1c33603ab00b549c08ad179858 Author: Mathieu Bridon Date: Thu Sep 6 13:27:53 2012 -0500 fix various start/finish state problems [BZ# 835633] Added code to handle issues with --chroot, device setup and SRPM rebuild. Signed-off-by: Clark Williams commit 8cefd8fcc83902580229037dce82448739042d1c Author: Clark Williams Date: Thu Aug 23 18:48:08 2012 -0500 remove dead code, unused array 'legal_arches' Signed-off-by: Clark Williams commit fbe7f2495bc58c746a9aa86bc69620c5bbb53d56 Author: Colin Walters Date: Thu Aug 23 17:49:55 2012 -0500 add CLONE_NEWPID and CLONE_NEWIPC to unshare call [BZ# 851340] create new process id namespace and interprocess-communications namespace for the chroot. Handle the fact that the RHEL5 kernel (2.6.18) doesn't have these by catching it in the execption handler. Signed-off-by: Clark Williams commit 84e0ac9f876c584a0523b62d13ddcd8ba74777ae Author: Clark Williams Date: Thu Aug 23 14:21:26 2012 -0500 add an 'age_check' parameter to root_cache Add this so that I can turn it off root cache aging out while running the mock tests. Speeds things up on a slow link. Signed-off-by: Clark Williams commit 4750e497f7a2509152b2907a32a21d2e6c9ea6f8 Author: Clark Williams Date: Thu Aug 23 14:12:13 2012 -0500 deal with NFS home directories and root_cache issues [BZ# 649192] Detect if we're running on an NFS home and if so chdir to a non-NFS directory so tar doesn't freak out when unpacking the chroot cache. Signed-off-by: Clark Williams commit 508a4d82cb1e69e3e8c68a8f1bdb85e040e0a19b Author: Mathieu Bridon Date: Thu Aug 23 10:37:02 2012 -0500 fix state mismatch with --chroot option [BZ# 835633] Moved self.finish(state) call into finally block in chroot to make sure we always call it. Signed-off-by: Clark Williams commit 2ea8430aa43aac5529645fc52bb02fc8e6a8b5bf Author: Mike Miller Date: Thu Aug 23 10:30:42 2012 -0500 Fix mock kernel version comparison [BZ# 847473] Mock's comparison of kernel versions fails when the version has less than 3 version components (e.g. 3.4). This commit fixes the problem by calling the proper yum function, compareVerOnly, since this is just a version comparison, not an RPM EVR comparison. I also renamed the function to cmpKernelVer, although that can be backed out in the name of API compatibility. Signed-off-by: Clark Williams commit 48a27fcf10117fb636042a1276e3603fd4d2b7d3 Author: Dennis Gilmore Date: Fri Aug 10 08:19:55 2012 -0500 add f18 configs add missing s390 rawhide config commit 8c89ca01a877d4c842df47a2ba9ed0c925e68f12 Author: Clark Williams Date: Mon Aug 6 12:22:54 2012 -0500 version bump to 1.1.26 Signed-off-by: Clark Williams commit 4621a3e630ffab750731fc5ccb988bbf5284f0fa Author: Clark Williams Date: Mon Aug 6 09:37:55 2012 -0500 move the f17 ppc configs into the appropriate directory Signed-off-by: Clark Williams commit 7f1d5dffd1699c9ad828c4758536758d0077e4a0 Author: Clark Williams Date: Wed Aug 1 21:05:02 2012 -0500 explicitly disallow multiple arch values to --target [BZ# 822975] Catch multiple arch values early and throw BadCmdline exception. Signed-off-by: Clark Williams commit 4b85cb77bb2fa15544f7f801e603c3c2c5747c1c Author: Clark Williams Date: Wed Aug 1 18:34:19 2012 -0500 updated Source: URL to point to tarball snapshots Signed-off-by: Clark Williams commit 0e4bd280457d9c2ff839e169f748cf7e9944978b Author: Clark Williams Date: Tue Jul 31 15:11:52 2012 -0500 updated release instructions to be 1.1 branch specific Signed-off-by: Clark Williams commit 000e71f2ccf7783f789299d83dd9dc9fb6302d0e Author: Clark Williams Date: Tue Jul 31 13:47:40 2012 -0500 version bump to 1.1.25 Signed-off-by: Clark Williams commit e192f706d0a6467fd2007f0400d3bcf2f236ff5d Author: Karsten Hopp Date: Tue Jul 31 12:04:37 2012 -0500 added ppc and ppc64 configs for fedora 17 Signed-off-by: Clark Williams commit 4c9829ddf512d4e9ef54061093b47839482ea5bd Author: Clark Williams Date: Fri Jul 27 16:08:25 2012 -0500 updated koji build instructions Signed-off-by: Clark Williams commit f9c167f0dadc10e1a073e7f1bfdc6459e0cf1d95 Author: Clark Williams Date: Fri Jul 27 15:59:37 2012 -0500 version bump to 1.1.24 Signed-off-by: Clark Williams commit 59b40be83405eeab1bc19117666b5f76c3e24df3 Author: Clark Williams Date: Fri Jul 27 15:35:26 2012 -0500 changed default test config to fedora-17-x86_64 Signed-off-by: Clark Williams commit 979175a9dae8c367a40fc571fc3bcd4b9bdc568a Author: Clark Williams Date: Fri Jul 27 15:34:03 2012 -0500 removed fedora-15 configs Signed-off-by: Clark Williams commit b9798b15ce00b3c059c50e159f931759a3f6a517 Author: Clark Williams Date: Thu Jul 26 23:06:08 2012 -0500 replaced call to os.getlogin() for backwards compat [BZ# 843434] os.getlogin() was throwing errors on some systems. Replace with calls to pwd.getpwuid(os.getuid()) to be safe. Signed-off-by: Clark Williams commit 903dc9155d2f7a84d3dcee4edcc9c55dd4fd4d19 Author: Clark Williams Date: Thu Jul 26 15:59:18 2012 -0500 add code to allow testing only one config Signed-off-by: Clark Williams commit 349558631d35b4e60de4ce5ae6dd440df0af56a6 Merge: 0ad4ec6 7291191 Author: Clark Williams Date: Thu Jul 26 15:27:23 2012 -0500 Merge remote-tracking branch 'origin/master' into work commit 729119191c355e9a17d5e61a053aa3a9ea4e9509 Author: Seth Vidal Date: Thu Jul 26 12:02:04 2012 -0400 add one line of log output to make successful build order obvious commit 0ad4ec67ac4f85fc56799bc9f4fe4e50e111d29e Author: Clark Williams Date: Fri Jun 29 10:32:06 2012 -0500 turn on package_state_plugin without depending on site-default Signed-off-by: Clark Williams commit d1a33a91b3fdd524b7fed589fd7d54bd284aef81 Author: Matt McCutchen Date: Fri Jun 29 10:30:04 2012 -0500 add a config variable to allow common options to be added to yum commands Signed-off-by: Clark Williams commit daa5346bf94331fb004e586de7c3690a21baaa13 Author: Clark Williams Date: Thu Jun 28 10:19:08 2012 -0500 fixed issue with state API change in package_status plugin The finish() method now takes an argument to match the string specified by the start() method. Fixed. Signed-off-by: Clark Williams commit e4fc3310e10933cc2d39687c609b8459a700e2e6 Merge: ff524a6 e3365d5 Author: Clark Williams Date: Thu Jun 28 09:02:24 2012 -0500 Merge remote-tracking branch 'origin/package_state_plugin' into work commit e3365d53190b60695559b364feb86030b51fac19 Author: Seth Vidal Date: Wed Jun 27 17:53:53 2012 -0400 add package_state as a plugin to replace available_pkgs set it to load by default. commit ff524a6713538299463c6553d965b5af6193b1fa Author: Clark Williams Date: Wed Jun 27 14:55:11 2012 -0500 fix state start/finish mismatch in --shell Fixed incorrect ordering of state start/end for "shell" state that caused regression failure in return code. Signed-off-by: Clark Williams commit 530f476d03690b5b0505e4415daa9f07fed848cd Merge: 0d3bd64 97a8410 Author: Clark Williams Date: Wed Jun 27 11:17:02 2012 -0500 Merge remote-tracking branch 'origin/available_pkgs_plugin' into work commit 97a8410df1ca055f0143ac6ac35c20b83fc15c7f Author: Seth Vidal Date: Wed Jun 27 11:58:15 2012 -0400 add available_pkgs enable option to site-defaults.cfg commit 0b500d103e9089303147ffe775ae51149b7cd98f Author: Seth Vidal Date: Wed Jun 27 11:44:56 2012 -0400 add available_pkgs plugin to makefile commit e546195c071667ad5f6434fb6983e097a6877718 Author: Seth Vidal Date: Tue Jun 26 17:51:32 2012 -0400 available_pkgs plugin commit 0d3bd645ce9ed3c8b6efcf9cb5b66c58363c9a4d Author: Ville Skyttä Date: Sun Jun 24 21:23:38 2012 +0300 Add mockchain completion. commit 07033cdacbbbc1c3e6c9802b136168fc3e46b45e Author: Clark Williams Date: Thu Jun 21 13:25:47 2012 -0500 version bump to 1.1.23 Signed-off-by: Clark Williams commit d6fce3fc663ad5a4c3a685506aa78000d077aa0a Author: Marko Myllynen Date: Sat Jun 9 10:39:38 2012 -0500 Fix write_tar check in scm.py [BZ# 828677] Fixed test of write_tar config option to check for value "true" rather than testing for non-null (empty string is non-null) Signed-off-by: Clark Williams commit 088ebeead451fcd44590280cb682f2a673ef2a70 Author: Clark Williams Date: Sat Jun 9 10:13:37 2012 -0500 removed fedora-14 configs Signed-off-by: Clark Williams commit 0d474f92a0e0f1b07e3fe13e947f1ec41b8b292a Author: Clark Williams Date: Thu Jun 7 17:28:20 2012 -0500 modify startup code to only set mock group [BZ# 809676] change the mock initialization code to only set the mock gid, rather than inheriting all the gids associated with the uid that is running mock. This will speed startup time when there are large numbers of GIDs and will potentially allow mock to work properly with FreeIPA. Signed-off-by: Clark Williams commit 774154639a8b01ff32c2a4857e0cb322f54833fb Author: Masatake YAMATO Date: Thu Jun 7 14:29:21 2012 -0500 added option to set a plugin parameter value from the commandline [BZ# 754321] This patch adds the --plugin-option command line option, which allows a plugin parameter to be set on the commandline: Ex: mock --plugin-option="ccache:max_cache_size=5G" foo.src.rpm The above will set the cccahe max to be 5 gigabytes Signed-off-by: Clark Williams commit 440d0e536d48cbe9e42eb0e7ea3781a0f8222c80 Author: Clark Williams Date: Thu Jun 7 14:20:33 2012 -0500 changed state string from 'yum for init' to 'yum update' Signed-off-by: Clark Williams commit 5d571122019eada29aa0be1e8df5e058aa3929e3 Merge: 63ace43 126c942 Author: Clark Williams Date: Thu Jun 7 12:10:34 2012 -0500 Merge remote-tracking branch 'origin/mockchain' into work-state-rework commit 63ace43a76fa379aa1e6a2bce3b5f81133a06600 Merge: 5c81c66 3a07482 Author: Clark Williams Date: Thu Jun 7 10:38:32 2012 -0500 Merge remote-tracking branch 'origin/mockchain' into work-state-rework commit 5c81c6618ccbb1b27fead8565aeb047269ee90f9 Author: Clark Williams Date: Thu Jun 7 10:37:14 2012 -0500 reworked state finish() method to take string argument Modified the new state finish() method to take an argument that is the state being finished and compare that to the top of the state stack when called. Throws a state error if the argument and top of state stack do not match. Signed-off-by: Clark Williams commit 126c9429f5872a0a406024893e5c5b513a177bff Author: Seth Vidal Date: Thu Jun 7 11:21:39 2012 -0400 fix spec file and makefile, again commit 3a0748216fdceb9f67cb53e28d7df6002ec76d5f Author: Seth Vidal Date: Thu Jun 7 10:53:40 2012 -0400 mv mockchain into place - makefile.am commit dceba3336a5c3338b149936040a3b4d67334c53d Merge: 8ce9177 9380e5e Author: Clark Williams Date: Thu Jun 7 09:42:34 2012 -0500 Merge remote-tracking branch 'origin/scop' into work-state-rework commit 9380e5e631e7314af69c53b7c97af6c7022100d1 Author: Ville Skyttä Date: Tue Jun 5 17:29:57 2012 +0300 Spelling fixes. commit 7392b90f970713336a55b490e86d19e2149f6275 Author: Seth Vidal Date: Wed May 23 13:16:34 2012 -0400 add mockchain to mock commit 8ce9177011f83b2a741638e52e553404253d0f09 Author: Clark Williams Date: Tue May 15 12:30:12 2012 -0500 changed statenames to be a bit more descriptive Signed-off-by: Clark Williams commit bbce2c055497d297dedb0823827aebf9499a0654 Author: Clark Williams Date: Fri May 11 10:11:21 2012 -0500 reworked the state mechanism to have start/end and allow nesting Reworked the chroot state to be a stack of states. Added the chroot methods start() and finish() to indicate start and end of a state. Modified the state() method to return the current state at the top of the stack (no modificaiton of stack). Added the alldone() method to check for unfinished states. Signed-off-by: Clark Williams commit 6f8821cb06ddf8716e7fc4d25cec8784f47f667a Author: Clark Williams Date: Thu May 10 13:49:15 2012 -0500 added dropcache.py to return cached memory to system when running tests Signed-off-by: Clark Williams commit b43a280f081bd9431d1608eb55df7699e95c0776 Author: Clark Williams Date: Thu May 10 13:48:55 2012 -0500 added new files to test suite Signed-off-by: Clark Williams commit 2fbb09fe87ca5eb0ae5921d7ed741af6c889ffdf Author: Clark Williams Date: Thu May 10 13:47:38 2012 -0500 reworked regression and configs tests Signed-off-by: Clark Williams commit 73964745693c1a5b7e97a519a7e5de39c5af9e70 Author: Clark Williams Date: Wed May 9 18:56:52 2012 -0500 add CLONE_NEWUTS to unshare(2) call [BZ# 818445] To prevent a chroot program from changing the hostname, add the CLONE_NEWUTS flag to our unshare(2) call. This will unshare the UTS namespace and means any hostname change will only hold for the duration of the chroot (and will not affect programs outside the chroot). Signed-off-by: Clark Williams commit c6b0654fc89e3f99dd91bdeb2199e5ed43c9a5d6 Author: Clark Williams Date: Wed May 9 18:56:29 2012 -0500 remove unsupported epel-4 configs Signed-off-by: Clark Williams commit 5b5ac3e4e1657b4b834b779e14586d7194357d49 Merge: 1f66f45 b4f6070 Author: Clark Williams Date: Thu Mar 29 16:14:57 2012 -0500 Merge branch 'work' Conflicts: py/mockbuild/scm.py commit b4f6070f44b36b5439aaf4e89837c6eea5fff12f Author: Clark Williams Date: Thu Mar 29 16:13:29 2012 -0500 version bump to 1.1.22 Signed-off-by: Clark Williams commit 35429beae5eef120526b979d09336e39e5d7432e Author: Clark Williams Date: Mon Mar 26 12:55:35 2012 -0500 remove EPEL 4 configs Remove the configs since EPEL 4 is no longer supported Signed-off-by: Clark Williams commit 16c0b808f0342b2a713b45a95143070a09c84fe2 Author: Clark Williams Date: Mon Mar 19 09:47:22 2012 -0500 fix problem in scm.py with SSH_AUTH_SOCK [BZ# 803217] Make a copy of the environment for the SCM plugin and add the SSH_AUTH_SOCK to it (as well as changing HOME to match the homedir of the active pid). Use the SCM environment when running subprocesses for SCM operations. Add SSH_AUTH_SOCK to the KEEP_ENV_VARS config in consolehelper so that SCM operations work properly. Signed-off-by: Clark Williams commit e8b8de4d5428a158494ab1d3558d2b5a41a89573 Author: Clark Williams Date: Wed Mar 21 11:41:22 2012 -0500 fix baseurl (remove dist-) for f17 configs [BZ# 795409] Signed-off-by: Clark Williams commit 1f66f45127c0c3179965161480bccfb12403e4b2 Author: Clark Williams Date: Mon Mar 19 09:47:22 2012 -0500 fix problem in scm.py with SSH_AUTH_SOCK [BZ# 803217] Make a copy of the environment for the SCM plugin and add the SSH_AUTH_SOCK to it (as well as changing HOME to match the homedir of the active pid). Use the SCM environment when running subprocesses for SCM operations. Signed-off-by: Clark Williams commit 3c26c9eea88de8f0b6840bd379d78f56aa70bb6f Author: Clark Williams Date: Wed Feb 29 19:03:32 2012 -0600 fix incorrect setting of gid in UidManager.changeOwner() [BZ# 782449] For some reason we were setting gid to uid if gid was not passed in. Instead set it to self.unprivGid. Signed-off-by: Clark Williams commit ce018f7bc9e8cb2fcf6511790c41735593d977d4 Author: Chris St Pierre Date: Wed Feb 29 16:17:31 2012 -0600 allow chroot group to be configurable [BZ# 719099] Modify group check function to take gid from config file rather than assume "mock" group. Signed-off-by: Clark Williams commit 81c46bb2750ee47d99441d63458c6919ad6381c4 Author: Clark Williams Date: Wed Feb 8 17:28:19 2012 -0600 version bump to 1.1.21 Signed-off-by: Clark Williams commit e8fa57ef95c02b4c684e3cf1d8e19bcd13316d2e Author: Dennis Gilmore Date: Wed Feb 8 13:05:28 2012 -0600 add Fedora 17 mock configs commit dda54180cfb8ed4d3139c4c661739fd1ad77713f Author: Dennis Gilmore Date: Wed Feb 8 13:04:41 2012 -0600 have configs reflect the dropping of dist- for koji repos commit 764510a45d4276f2d03a0e890594fd933f19ab81 Author: Dennis Gilmore Date: Wed Feb 8 13:00:09 2012 -0600 add configs for arm hardware floating point commit 332b231a9fac8a7799d0830ae14301172bea3f07 Author: Clark Williams Date: Wed Feb 1 10:10:55 2012 -0600 updated specfile changelog Signed-off-by: Clark Williams commit ccfc8d2d9cf8cf8847f0228cacf53dcc0923db8f Author: Clark Williams Date: Wed Feb 1 08:51:07 2012 -0600 version bump to 1.1.20 Signed-off-by: Clark Williams commit 86bdf649e53cfffcaa3e1bcafd22fee7556c42a7 Author: Clark Williams Date: Mon Jan 30 16:10:05 2012 -0600 change [local] repo definition for f16+ configs [BZ# 753735] Change the path for koji local build repositories to match current convention for f16 and later released distributions. This is essentialy: s/dist-f16-build/f16-build/ for all the fedora-16-*.cfg files. Signed-off-by: Clark Williams commit 742f26240abfca3b58da7647a9033479457b880c Author: Clark Williams Date: Mon Jan 30 15:55:36 2012 -0600 change back to mockbuild.util.do() when handling createrepo option [BZ# 783926] Don't run createrepo inside the chroot. Signed-off-by: Clark Williams commit 28b72d74c4ce2b7b14b1416a969a20a54dab1608 Author: Ville Skyttä Date: Sun Jan 15 22:03:40 2012 +0200 Allow setting https, ftp, and no proxy in addition to http. commit cec56d7d10c0c21c7b09807b938858a545f2e402 Author: Clark Williams Date: Sat Jan 14 10:58:20 2012 -0600 fix missing files from Makefile.am Signed-off-by: Clark Williams commit 49502d7d3f2b23660fcfdd0618ae43dd12082550 Author: Clark Williams Date: Fri Jan 13 12:15:51 2012 -0600 version bump to 1.1.19 Signed-off-by: Clark Williams commit 50e5ccb2029da8286422ea73cd8f946ca6e7023c Author: Clark Williams Date: Fri Jan 13 10:18:29 2012 -0600 added header output for test sections Signed-off-by: Clark Williams commit 2f9394d5b9fb3a846b419a755be33b47695474b4 Author: Clark Williams Date: Sun Jan 8 23:04:28 2012 -0600 Added a mount plugin for handling additional user-specified mounts. Note that this code is mostly Daniel Mach's code; I just adapted it to take advantage of the mount handling code I recently added. Signed-off-by: Clark Williams commit b0082a5d9d274eabb685ab5eda39d01352581364 Author: Marko Myllynen Date: Wed Jan 4 10:20:25 2012 -0600 Allow mock repos to use yum priorities [BZ# 771604] Add support to allow use of the yum-priorities plugin with yum repositories used by mock. Signed-off-by: Clark Williams commit 22c6aab81336598e363e99d02650c2d6a67e587a Author: Clark Williams Date: Tue Jan 3 11:30:23 2012 -0600 modify do_rebuild() to use chroot function doChroot() Use the doChroot() function to pickup environment changes from configs rather than default environment. Signed-off-by: Clark Williams commit 28dd48787d26ca2b4edc9c3c84cab31cdcc30e6d Author: Alfred Date: Mon Jan 2 10:35:57 2012 -0600 fix dangling symlink when using SCM [BZ# 758781] resolve errors being eaten by too many try/except blocks Signed-off-by: Clark Williams commit 5ca5fd69752bab22a8d742beabc8cdcb166de9a0 Author: Clark Williams Date: Mon Jan 2 10:16:58 2012 -0600 remove setting TMPDIR in chroot environment [BZ# 769728] Don't set TMPDIR in default environment as this breaks the eclipse build. Signed-off-by: Clark Williams commit f30ce762a6f468eb6e6607ff7a282a9a0126ca22 Author: Clark Williams Date: Mon Jan 2 10:10:28 2012 -0600 add code to allow global proxy in chroot [BZ# 766199] add code to make sure 'http_proxy' is a supported environment variable and allow it's setting in config files. Signed-off-by: Clark Williams commit f9f02706cf0690abe9e2cc9ea258baf754c5ff95 Author: Clark Williams Date: Sat Dec 10 12:45:52 2011 -0600 explicitly set unprivileged umask in --shell [BZ# 747119] Setup a umask of 002 for unprivliged shell operations inside the chroot Signed-off-by: Clark Williams commit d942492dbc3ea3c894814e4303f417ad2f9fc8fa Author: Clark Williams Date: Fri Dec 9 16:36:07 2011 -0600 add bind-mount config to create sourcedirs [BZ# 706174] Add a config to enable and logic to create non-existent source dirs for bind mounts Signed-off-by: Clark Williams commit 96327ea5104fce6b2dddd1722d2b7c0aefaafe37 Author: Clark Williams Date: Fri Dec 9 13:52:36 2011 -0600 move mount management into classes Create a MountPoint class as the base class for file system mountpoints and bind mountpoints. Add the FileSystemMountPoint and BindMountPoint as derived classes from Mountpoint. Add Mounts class to handle all mountpoints. Change call sites in backend.py and plugins to use mount classes rather than directly specifying mount/umount command lines. Signed-off-by: Clark Williams commit 0d00ab789312993eab310b0d2e17b5cb3f7e01c5 Author: Ville Skyttä Date: Sat Dec 3 15:30:57 2011 +0200 Get rid of chrootEnvUpdate, just update backend env directly, and always pass it. commit caedf8837a14073b01e730552d1e26e38f40d9c5 Author: Ville Skyttä Date: Sat Dec 3 14:52:17 2011 +0200 Log env when executing commands. commit 00bb54da1c36a43238dd816d2964ff8f06e22af0 Author: Ville Skyttä Date: Sat Dec 3 14:47:50 2011 +0200 Fix fallout from previous merge. commit 655f3ae3a168d40bb9099832d08ff4355d062139 Merge: fcf09f5 9cd9bd7 Author: Clark Williams Date: Fri Dec 2 16:04:46 2011 -0600 Merge remote-tracking branch 'origin/master' Conflicts: py/mockbuild/backend.py py/mockbuild/util.py commit fcf09f56e65040d7ecbb9efde71098f315d93e2f Author: Clark Williams Date: Sun Nov 27 16:03:06 2011 -0600 version bump to 1.1.18 Signed-off-by: Clark Williams commit 1655b78b882c7d890a257002fb3d6512b8f25b05 Author: Clark Williams Date: Sun Nov 27 15:26:11 2011 -0600 add 'lazy umount 'option to all umount commands Still trying to deal with something weird in the EPEL4 C library that causes umount failures. Add lazy umount option in attempt to avoid this. Signed-off-by: Clark Williams commit 73ed7853c9f55448bdc3634078163c3c85c509a9 Merge: fea2998 18bec6d Author: Clark Williams Date: Sat Nov 26 10:35:52 2011 -0600 Merge branch 'master' into work commit 9cd9bd7f7b50b8fca76ac98c8aa4665fe124e54b Author: Ville Skyttä Date: Sun Nov 20 21:09:19 2011 +0200 Wrap long comment lines in site-defaults.cfg. commit 09defd7a364b56d444304a61d3eee9d7b9ba1d31 Author: Ville Skyttä Date: Sun Nov 20 21:06:06 2011 +0200 Add option for enabling ccache compression. See CCACHE_COMPRESS in ccache(1). commit b3b983dc4a417c08ef4bd4f96716f30ff6c73227 Author: Ville Skyttä Date: Sun Nov 20 20:52:37 2011 +0200 Allow mock to work for users whose only (primary) group membership is "mock". commit 70c38cb1b36da1301f7d3df23d788d49d70c6371 Author: Ville Skyttä Date: Sun Nov 20 20:49:42 2011 +0200 Fix ccache environment setup (broken since 1.1.16). commit 9149d2661347e6ed43737f0217057715a675b334 Author: Ville Skyttä Date: Sun Nov 20 20:45:21 2011 +0200 Add chrootEnvUpdate dict to root for adding to/overriding chroot environment. commit fea29985c2d8fb98dabaac337ff4249893947349 Author: Clark Williams Date: Fri Nov 18 16:24:04 2011 -0600 remove TZ from default environent [BZ# 75701] Don't set TZ environent variable in chroot since this breaks the previous behavior of copying /etc/localtime into the chroot Signed-off-by: Clark Williams commit 4a0bfae354508acbfcd45e3ffbac82765aaf6baf Author: Clark Williams Date: Thu Oct 13 11:02:25 2011 -0500 unbuffer output from --chroot command [BZ# 744761] Add an argument to mockbuild.do to cause output from the command being run to be printed immediately rather than being buffered until the commnand completes. Signed-off-by: Clark Williams commit 3e2dcf3cc27a622bf2652c0bd649d9bd5102e034 Author: Clark Williams Date: Fri Nov 11 14:50:29 2011 -0600 add code to tmpfs plugin to try a force umount on umount fail The epel-4 chroots have something that causes the umount of a tmpfs root to fail sporadically. This commit adds code to the exception logic which triggers a umount -n -f on the tmpfs partition of the regular umount fails. Signed-off-by: Clark Williams commit df808b6abfd20aaf567a62c5db7dec94ce17a7c6 Author: Clark Williams Date: Fri Nov 11 14:10:51 2011 -0600 prevent exceptions when showing installed packages on EPEL-4 EPEL-4 rpm database format is usually different from latest Fedora and EPEL-6, so the 'rpm -q -a' run following an init will fail. Ignore the failure. Signed-off-by: Clark Williams commit 9b0013c4185d002c806e3a8286eee4d2834085d9 Author: Davi Arnaut Date: Fri Nov 11 12:59:27 2011 -0600 set chroot environment variables from config files [BZ# 753179] Modification to allow setting of chroot environment variables from mock config files. Signed-off-by: Clark Williams commit ae3703cc9a968db690ce677e108c5d4dd6dc21d7 Author: Clark Williams Date: Wed Nov 2 11:31:57 2011 -0500 added -debug stanzas in configs [BZ# 610823] Added {epel, fedora, updates}-debug stanzas to the configs for use when debugging with --shell. All debug stanzas are disabled by default. Signed-off-by: Clark Williams commit 18bec6d3573a90c59f8991f56e6c8160bcc1a9cc Author: Clark Williams Date: Wed Nov 2 11:31:57 2011 -0500 added -debug stanzas in configs Added {epel, fedora, updates}-debug stanzas to the configs for use when debugging with --shell. All debug stanzas are disabled by default. Signed-off-by: Clark Williams commit 615c5184542308814b1227e8a19cd33175466d7c Author: Clark Williams Date: Wed Nov 2 11:29:57 2011 -0500 deleted unused (or cannot be used) configs The fedora-14 ppc* and sparc* configs are not usable due to no repositories for them. Likewise the fedora-15 ppc* repos are not planned to be updated. Signed-off-by: Clark Williams commit d679c243fdcd28842fafab2380d1bee7225c1ac9 Author: Clark Williams Date: Wed Nov 2 11:20:16 2011 -0500 report package contents of chroot after init [BZ# 736858] Add a routine which sends the output of 'rpm -q -a' to the root log after the init routine is finished. Signed-off-by: Clark Williams commit 891b1cc796b508f73db8ca59b523ab92d9412b92 Author: Clark Williams Date: Wed Nov 2 11:11:17 2011 -0500 add _umountall() call to clean [BZ# 502922] Added a call to _umountall() inside the clean routine just before we start deleting files, to prevent accidentally nuking things like /dev. Also add a parameter to _umountall (nowarn, defaults to False) to prevent unnecessary warnings. Signed-off-by: Clark Williams commit 58553253124c442929c9c632b28052ef929d13db Author: Clark Williams Date: Wed Nov 2 09:53:08 2011 -0500 updated checklist overview and 1.1 checklist Added copy of tarballs to fedorahosted. Also reworked the release checklist overview. Signed-off-by: Clark Williams commit af4821ccf5a7172bce64b9620cf44765e346d2f7 Author: Clark Williams Date: Tue Nov 1 16:41:01 2011 -0500 initial checkin of script to check URL validity Signed-off-by: Clark Williams commit 0551cb6ef17c0c480ff891b298db5f80e67dfcbe Author: Ville Skyttä Date: Thu Oct 20 20:30:44 2011 +0300 Tweak child return code debug message. commit 5ccc10d7e01de6d97a3f4ea5ec0a7c247d88de09 Author: Ville Skyttä Date: Thu Oct 20 20:29:46 2011 +0300 Add --remove command. commit f9e35bc930952fbf32396eda5841cb10cca27f93 Author: Clark Williams Date: Mon Oct 31 17:04:38 2011 -0500 added ville to changelog Signed-off-by: Clark Williams commit 477efb0a7f5bc24da3e6e2ef7c221368b95073e7 Author: Clark Williams Date: Mon Oct 31 15:58:48 2011 -0500 version bump to 1.1.17 Signed-off-by: Clark Williams commit 56868a9b75219fc62cdacb88e9993378c7c6f1e4 Author: Clark Williams Date: Mon Oct 31 09:33:03 2011 -0500 fix shell command handling The recent rework of shell/chroot broke the handling of commands passed into the --shell option. Fix this. Signed-off-by: Clark Williams commit adf1f2adb4bbc4c1585a0b7f3aeb4a0acbe6831d Author: Clark Williams Date: Sat Oct 29 12:42:59 2011 -0500 added files to .gitignore Signed-off-by: Clark Williams commit ae8fde8ff6a5ac94eb23af5fbbff2e08a2f85b65 Author: Marko Myllynen Date: Thu Oct 27 13:28:23 2011 +0300 Fix SCM integration on RHEL 5 It turned out that RPM Python API differs between RHEL 5/RHEL 6. Also, RHEL 5 tar does not have --xform, rewrite tarball building not to depend on it. commit ac81fa129642070c8421ed17214360ea085da942 Author: Clark Williams Date: Sat Oct 29 11:17:44 2011 -0500 modifications to --shell behavior Modify the --shell behavior to default to root uid in the chroot, but allow mockbuild uid/gid with the --unpriv option. Also add a config, 'no_root_shells' to disallow interactive root shells. This option implies --nopriv behavior. Signed-off-by: Clark Williams commit 050f2ebefb714dba9f976bb2fbe90a523b4b6589 Author: Ville Skyttä Date: Sat Oct 15 23:35:04 2011 +0300 Tweak --installdeps without SRPM error message. commit 403bb48b365995bb327cf0d8e00b22fc63143b3e Author: Ville Skyttä Date: Sat Oct 15 23:32:57 2011 +0300 bash completion: Treat install like --install. commit 2d05bfad4a4acadd735ab636e6dfb2c5da569fa4 Author: Ville Skyttä Date: Sat Oct 15 23:31:33 2011 +0300 bash completion: Don't offer SRPMs for --install. commit 1805c4c59f423dc39759a19cc1e30e7700590488 Author: Ville Skyttä Date: Sat Oct 15 23:18:41 2011 +0300 bash completion: Don't trigger yum list for install args starting with ".". commit 92ff6cd958339bd6c28046c14d61970f850fd7c2 Author: Ville Skyttä Date: Sat Oct 15 23:16:06 2011 +0300 bash completion: Use [[ instead of [. commit 978446911f21a933397c5cb4379bf6b9c2068a9b Merge: 588ef71 a0e6d6c Author: Clark Williams Date: Fri Oct 14 08:55:00 2011 -0500 Merge remote-tracking branch 'origin/master' commit 588ef71feeb2393ac64b506b2555574c2c6a4d30 Author: Clark Williams Date: Thu Oct 13 22:41:49 2011 -0500 version bump to 1.1.16 Signed-off-by: Clark Williams commit 996832b8ee531b24fe314293fe6117341f5f09dd Author: Clark Williams Date: Thu Oct 13 22:00:43 2011 -0500 add the --one-file-system option to root_cache creation Adapted patch from Piotr Romanus to tell tar not to cross filesystem boundaries when creating root cache archives. Signed-off-by: Clark Williams commit 541909892e14b56e6d5be32478de1113d7d7bacd Author: Clark Williams Date: Thu Oct 13 21:58:37 2011 -0500 added a PATH environment to chroot environment regression tests showed that gcc was failing when run with a --chroot command, due to inability to find compiler file cc1. Add a default PATH to the clean environment to fix this. Signed-off-by: Clark Williams commit a20b5932743defdb1d3f67c65b28c3c2d0e0cc65 Author: Clark Williams Date: Thu Oct 13 21:56:30 2011 -0500 fixed --shell command to return shell exit value modified the shell() command to return the exit status of the shell run inside the chroot and modified the main logic to exit with this status after a --shell command. Signed-off-by: Clark Williams commit 7c07b38e536e8a463509e2a95d44cd01a243fe93 Author: Clark Williams Date: Thu Oct 13 13:09:52 2011 -0500 Clear environment when running chroot command [BZ# 619533] Use new function clean_env() to generate a reduced environment before running commands inside the chroot. Also, figured out I needed to set PROMPT_COMMAND environment to a command that echo's something prior to the bash prompt. Set it to 'echo -n ""' Signed-off-by: Clark Williams commit 9a0526dacd482739db94938ce434b4dbb247aac7 Author: Marko Myllynen Date: Thu Oct 13 13:18:32 2011 +0300 Fix Git timestamp adjusting commit 020cb266b775eb7c927e20ec67f8336397da1ffe Author: Clark Williams Date: Wed Oct 12 17:36:28 2011 -0500 removed erroneous exclude from /etc/mock/*-x86_64.cfg [BZ# 533762] Somehow epel-{4,5}-x86_64.cfg got missed when removing this from the other configs. Now it's really gone. Signed-off-by: Clark Williams commit 6cbb7e3a32de4b0ea63bfe4b103a8589e1f76b79 Author: Marko Myllynen Date: Mon Sep 12 13:22:57 2011 +0300 Support for setting timestamps for Git checkouts [BZ# 745396] CVS sets timestamps by default. Subversion can be configured in ~/.subversion to do the same. Git doesn't support this. Add a configuration option to allow setting timestamps for Git checkout to last modification time instead of checkout time. commit adca4a9c4bae064679a3f3b80987e7c5bc242fd7 Author: Marko Myllynen Date: Mon Sep 12 13:19:06 2011 +0300 Set HOME properly when doing SCM checkouts [BZ# 745394] Tools like Subversion might have some settings under $HOME (e.g., related to certificates) needed for non-interactive checkouts. commit ab6d21b278b30de068507b87de198d02259a6561 Author: Clark Williams Date: Wed Oct 12 15:53:51 2011 -0500 exclude bind mounts from root cache images [BZ# 744727] check for bind mounts in the root cache plugin and if they exists, generate --exclude arguments to tar before generating the root cache image. Also, add an 'exclude_dirs' config parameter for the root cache plugin. Signed-off-by: Clark Williams commit 72f3506f82322c2bcd7182e2db6aad6587f43404 Author: Clark Williams Date: Wed Oct 12 14:27:24 2011 -0500 validate input arguments --spec and --sources [BZ# 743173] Check that the input argument to --spec is an actual file and that the argument to --sources is an actual directory *before* starting any work. Signed-off-by: Clark Williams commit 39e0073ac469c2ab01883e299a10552c291a827b Author: Yury V. Zaytsev Date: Sat Sep 24 18:47:24 2011 +0200 mock.py: fix incorrect-fsf-address rpmlint warning [BZ# 741068] Signed-off-by: Yury V. Zaytsev commit 5187cafa6907ea73dad671249f81e9e05cb19110 Author: Jan Vcelak Date: Wed Aug 31 14:25:05 2011 +0200 util: resolve SELinux filesystem mountpoint [BZ# 734781] Since Fedora 16, SELinux filesystem is no longer mounted in /selinux but in /sys/fs/selinux. On affected systems, util.selinuxEnabled() always returns False. From this reason, SELinux plugin is not loaded. This patch adds autodetection for SELinux filesystem mountpoint. commit bc2b869576d15ce1b2037e822dbc809aa44c0c19 Author: Clark Williams Date: Wed Oct 12 13:53:25 2011 -0500 Modified hooks for bind_mount and tmpfs plugins Modified to use {pre,post}shell and {pre,post}chroot hooks for both bind_mount and tmpfs plugins. Signed-off-by: Clark Williams commit b1f18b0cb4c70e9542049963eefda508a4e3e23e Author: Clark Williams Date: Wed Oct 12 13:48:15 2011 -0500 moved shell and chroot commands into chroot object created shell and chroot methods in Root class so that both setup directories and devices the same as is done for a package rebuild. Signed-off-by: Clark Williams commit a0e6d6c9a2b4f4ced690817781ab8c09fbb91f00 Author: Ville Skyttä Date: Wed Sep 28 22:56:16 2011 +0300 Fix result dir creation error handling. commit 317839c3ab102ff1311c128751699b5e70300a4f Author: Clark Williams Date: Fri Sep 23 14:38:26 2011 -0500 version bump to 1.1.15 Signed-off-by: Clark Williams commit a9f1f5956c6db547c84f1de77d966939cf027e21 Author: Clark Williams Date: Thu Sep 22 10:19:53 2011 -0500 clean up logging issues (BZ# 739550) Synchronize the /etc/mock/logging.ini names to names actually used in mock.py and mockbuild/backend.py. Signed-off-by: Clark Williams commit 8e4317c7ebbc785cdfb4738f7c486686d54f9e54 Author: Clark Williams Date: Thu Sep 22 10:16:54 2011 -0500 move cleanup of old RPM DB files (BZ# 738052) Move where mock backend removes old RPM db files from chroot to before where privledges dropped. Signed-off-by: Clark Williams commit 285b7997bda1a2089b82051cfdf38eeb9c597e17 Author: Yury V. Zaytsev Date: Wed Sep 21 11:32:26 2011 -0500 change 'with' to 'try/finally' in selinux plugin The 'with' statement and context managers only appeared in Python 2.5. RHEL5 ships Python 2.4, so using Python 2.5+ syntax breaks mock on RHEL5, unless the SELinux plugin is disabled. Signed-off-by: Clark Williams commit 3b288582a99c54505ba98d6bb1bfb9183120f265 Author: Clark Williams Date: Fri Sep 9 14:27:18 2011 -0500 version bump to 1.1.14 Signed-off-by: Clark Williams commit 5eaeb0090efc0385c72aee193777104c135ed03d Author: Toshio Ernie Kuratomi Date: Fri Sep 9 12:31:28 2011 -0500 Fix install path of mockbuild module and default path to module dir Fix missed modifications to Makefile and autoconf files for namespace collision avoidance Signed-off-by: Clark Williams commit 97fc09c20bc5b166c7d575c26544ae6e22aa22a1 Author: Clark Williams Date: Thu Sep 8 13:03:54 2011 -0500 version bump to 1.1.13 Signed-off-by: Clark Williams commit aa213e58d6408c78789d2fe4ce42cb84b5cfd31e Author: Giam Teck Choon Date: Sat Sep 3 11:11:32 2011 -0500 add support for passing options to yum-buildep via mock cfg This patch add support for passing options to yum-buildep via mock cfg config_opts['yum_builddep_opts'] option. i.e.: config_opts['yum_builddep_opts'] = '--nogpgcheck' Without this patch, mock -r whatever-mock.cfg --installdeps /path/to/whatever.src.rpm will result in the following error: ERROR: Command failed: warning: rpmts_HdrFromFdno: Header V4 RSA/SHA1 Signature, key ID e0da8890: NOKEY Error: Could not open /path/to/whatever.src.rpm . Try running yum-builddep with the --nogpgcheck option. There was a problem getting the build deps, exiting: Could not open local rpm file: /path/to/whatever.src.rpm: RPM Error opening Package Signed-off-by: Clark Williams commit 153d145595b3c8216aa4fb5a2b8db6c264ca5c74 Author: Kirby Zhou Date: Wed Aug 17 11:03:11 2011 -0500 remove rpmdb files before rebuilding SRPM [BZ# 719008] As a precaution to prevent RPM version conflicts, remove any /var/lib/rpm/__db* files in the chroot, before rebuilding the SRPM. Signed-off-by: Clark Williams commit d0419c5bdd0dce2b531dbae06ee4c8ef415b66b0 Author: Clark Williams Date: Wed Aug 17 10:15:10 2011 -0500 fix namespace collision with python-mock [BZ# 601725] Move installed python files from mock to mockbuild to get out of python-mock's namespace (even though we were here first). Signed-off-by: Clark Williams commit f63511b05e97d287c8ebb9525ec132c4b311836d Author: Marko Myllynen Date: Tue Aug 16 08:54:33 2011 -0500 integrate mock with RHN It turns out that integrating Mock with RHN is pretty trivial. The only requirement is to have the Yum RHN plugin installed on the build host and the host registered on RHN. Then one just needs to enable Yum plugins in a target configuration file (with plugins=1 in the [main] section of yum.conf) and to enable appropriate channels. For example, to create a RHEL 5 target one needs in the target configuration: ... config_opts['rhnplugin.conf'] = """ [main] enabled = 1 gpgcheck = 0 [rhel-i386-server-5] enabled = 1 [custom-channel] enabled = 1 gpgcheck = 0 """ config_opts['yum.conf'] = """ [main] ... plugins=1 [groups] name=groups baseurl=http://buildsys.fedoraproject.org/buildgroups/rhel5/i386/ """ This has zero effect on existing target configurations: if Yum plugins are not explicitly enabled and the RHN plugin not configured, nothing changes. Signed-off-by: Clark Williams commit 6975d9e34567bb86d4491736f491f4160fd9dc8f Author: Clark Williams Date: Mon Aug 1 10:14:37 2011 -0500 change getLog().warn to getLog().warning for consistency Change calls to getLog().warn() to be getLog().warning(..) even though both will work. Also change the unit test in trace_decorator.py to try both versions. Signed-off-by: Clark Williams commit 39b7a599437e029a6ff039ff1ea8f610e77f13fe Author: Clark Williams Date: Thu Jul 28 09:59:48 2011 -0500 add exception for unshare(2) failures Add custom exception and exit code to allow higher level logic calling mock to retry when unshare(2) fails. Signed-off-by: Clark Williams commit 82562e110e7981932d59adb43f21d21a68434a83 Author: Clark Williams Date: Tue Jul 26 14:14:09 2011 -0500 version bump to 1.1.12 Signed-off-by: Clark Williams commit 15a50216c6da5fab831d366d85a1f799a8962a47 Author: Clark Williams Date: Tue Jul 26 13:44:51 2011 -0500 remove f13 configs Signed-off-by: Clark Williams commit 19f02f9c96c7a59ef0acce685336c4bc86bc25de Author: Clark Williams Date: Tue Jul 26 12:15:11 2011 -0500 add execption for when the unshare(2) call fails Signed-off-by: Clark Williams commit a46e471768f36d0ff8a3813a764583300a05d0c8 Author: Clark Williams Date: Mon Jul 25 12:06:17 2011 -0500 enabled epel6 configs and removed epel6 filtering in regression test script Signed-off-by: Clark Williams commit 2f2e3fa7de81cead1fee34cea00ad2a57d17309c Author: Clark Williams Date: Fri Jul 1 19:15:54 2011 -0500 setup mount of devpts on modern kernels Use option 'newinstance' when mounting /dev/pts inside the chroot and make sure that /dev/ptmx is a symlink to /dev/pts/ptmx. Do this only when hosted on a kernel of version 2.6.29 or greater. Signed-off-by: Clark Williams commit 5e63065eb8430944d2c3a4ac2f043de269cce723 Author: Clark Williams Date: Fri Jul 1 19:11:47 2011 -0500 updated release directions Signed-off-by: Clark Williams commit 1a57fb71e62066a7360c335cee668a9a2416534e Author: Matt Domsch Date: Fri Jun 24 09:33:04 2011 -0500 tmpfs fix Fixed typo in tmpfs plugin. Signed-off-by: Clark Williams commit a1870e273d2ca09577b9d129f0dec7d619d0a080 Merge: e92545f 8d545d8 Author: Clark Williams Date: Wed Jun 22 17:43:19 2011 -0500 Merge remote-tracking branch 'origin/master' commit e92545f4a9c0b395d8eec39308ce6dc74ad570bf Author: Clark Williams Date: Wed Jun 22 17:41:58 2011 -0500 version bump to 1.1.11 Signed-off-by: Clark Williams commit 104e6cb28c925c33a4db67c44b40f1e17dbd2519 Author: Clark Williams Date: Wed Jun 22 16:15:09 2011 -0500 added Fedora 16 configuration files Signed-off-by: Clark Williams commit ccda838032d02efcd019958da47cbfe48b10e34e Author: Clark Williams Date: Wed Jun 22 14:53:39 2011 -0500 remove 'newinstance' mount parameter from devpts filesystem mount (BZ# 711175) removed code that added 'newinstance' mount parameter to the mount for the devpts filesystem inside the chroot. This was being used (incorrectly) due to the thought that this should be a new instance of the filesystem. Its use prevents use of pts's inside the chroot, so dropping it. Signed-off-by: Clark Williams commit 542bcdaca22ee9e44212ed6e63118172af28430d Author: Yury V. Zaytsev Date: Wed Jun 22 09:06:04 2011 -0500 Fix inconsistent permissions fixing on /var/cache/mock in SPEC template (BZ 715286) Mode for /var/lib/mock overidden incorrectly in %post. Fixed as well as removing redundant chmod in %install. Signed-off-by: Clark Williams commit af49128e643c5b8bd896c114345a1dd14c9931b6 Merge: dcd670d ab8cbaa Author: Clark Williams Date: Tue Jun 21 19:37:04 2011 -0500 Merge branch 'work-chroot' into work commit ab8cbaab07c260b6f92a68c3b27136b7b729e762 Author: Clark Williams Date: Tue Jun 21 16:52:25 2011 -0500 modify --chroot command to print command output The --chroot command ignored output from the command run inside the chroot. Call doChroot() so that output from the command is returned and printed if non-null. Signed-off-by: Clark Williams commit dcd670d15326485725bbe9631114d7b51ba1e095 Author: Clark Williams Date: Mon Jun 13 09:37:27 2011 -0500 update the python requirement to >= 2.6 for 1.1.x mock branch Signed-off-by: Clark Williams commit 8d545d89e5a7dd0490c75127694e848b7db144a2 Author: Ville Skyttä Date: Sun Apr 24 18:14:56 2011 +0300 Unconfuse Emacs syntax highlighting. commit 112149e08e351372999e3a84e13795164f5e34a0 Author: Ville Skyttä Date: Sun Apr 24 18:13:03 2011 +0300 Use "declare -F" instead of "type" to check if a function exists. Avoids some stat calls when it doesn't. commit 364dc87376cec2dc9b7d66d4894e8ff875c82282 Author: Ville Skyttä Date: Sun Apr 24 15:28:24 2011 +0300 Make it clearer that macros in config_opts should be %-prefixed. commit 8019dbf8a40106dc9d03e8ce794e4fa39dce6133 Author: James Laska Date: Wed May 25 11:51:43 2011 -0500 fix log message typo in SELinux plugin The atexit except case for when mock fails to remove the faux /proc/filesystems file had a typo that threw another exception. Signed-off-by: Clark Williams commit 0dee1fb6c123b6b313217bd78a830d7c1f19bf82 Merge: 3de9810 52af389 Author: Clark Williams Date: Wed May 25 11:49:56 2011 -0500 Merge branch 'master' into work Conflicts: mock.spec.in py/mock.py py/mock/plugins/selinux.py commit 52af389e724468b4dfb031620d760537d85634c3 Author: Clark Williams Date: Fri May 13 14:10:28 2011 -0500 updated build procedure using fedpkg Signed-off-by: Clark Williams commit 004967415170e9da7a7f9db64b1c7fe3fad8f4ed Author: Clark Williams Date: Fri May 13 12:07:01 2011 -0500 version bump to 1.1.10 Signed-off-by: Clark Williams commit 8748f13358d62a3dbb22a4341c8ac5dba3ba99e1 Author: Dan Horák Date: Fri May 13 11:42:00 2011 -0500 Add s390 as legal target arch s390 is legal target architecture in Fedora/s390x Signed-off-by: Clark Williams commit 88b31e04e4c314a474991eeb4554246fa3d2df6d Author: Clark Williams Date: Fri May 13 10:41:32 2011 -0500 add wait to orphansKill() add an os.waitpid() call immediately following call to os.kill to try and reap hanging process after receipt of signal. Signed-off-by: Clark Williams commit 38e033916dc7de1c189182195f3507f71eeb661d Author: Clark Williams Date: Thu May 12 15:52:32 2011 -0500 modify cleanup code to try to kill orphan'ed chroot processes add list comprehension to mock.util.orphansKill() so that it only looks at PIDs; also add optional signal argument which defaults to SIGTERM. modify chroot clean() function to call mock.util.orphansKill() just prior to attempting to remove the chroot tree. Signed-off-by: Clark Williams commit 3b792c2c246aec1ae5d79309b20edc1693751517 Author: Clark Williams Date: Wed May 11 17:07:46 2011 -0500 make sure /var/cache/mock is group writable Make sure that /var/cache/mock is created with group write permissions so that mock group members can write to it. Signed-off-by: Clark Williams commit 742dd9cff4c38e92fa203bae65bf8acf35ffc059 Author: Clark Williams Date: Wed May 11 17:05:56 2011 -0500 don't raise exeception when running /sbin/fuser in _show_path_user() Don't fail if _show_path_user() has no output and returns a 1 status when running /sbin/fuse. Signed-off-by: Clark Williams commit f99285a5a049c0d96b16994b013b5ad56de6c06c Author: Clark Williams Date: Wed May 11 17:04:10 2011 -0500 check for existance of 'pigz' when specified in root_cache plugin If 'pigz' is th compression program specified in the config options and it doesn't exist, replace it with gzip. Signed-off-by: Clark Williams commit 0a2174b7a4e4f28b1ea54a7accbb03c960839674 Author: Clark Williams Date: Wed May 11 17:02:51 2011 -0500 warn on failure to umount tmpfs instead of fail Issue a warning that umount of tmpfs failed, rather than failing the build. We're running inside a separate namespace so mounts will be cleaned up on exit. Signed-off-by: Clark Williams commit b7133a1b1ed39b509bbdfbae912f773fad29bf1e Author: Mathieu Bridon Date: Sat May 7 08:41:31 2011 -0500 fix chroot cleanup issues (BZ# 668222) The cleanup_on_success and cleanup_on_failure options suffer from 2 issues. First, if the options are specified in the configuration file and no resultdir was specified on the CLI, then those options will be forced to False (even if the resultdir is specified in the configuration file). Second, if the resultdir is specified but is a subdirectory of the build root, then we must not clean it, even though both are different. So the appropriate thing to do is to check if the real resultdir (not the one from the CLI parameters) is a subdirectory of the build root, which covers both issues. Signed-off-by: Clark Williams commit a4937ad47a71fdf6440e198265a873cb4bf71bb1 Author: Clark Williams Date: Fri May 6 16:13:48 2011 -0500 fixed problem where mock was not constrained to the chroot (BZ# 669733) Added a self.makeChrootPath(self.homedir) to call to os.walk() in _buildDirSetup() to make sure that mock stays within the chroot and doesn't affect files outside (found when /builddir exists in the host root filesystem). Reported-by: Jason Harvey Signed-off-by: Clark Williams commit 96b6f8dc3101e267226e92deb8fa881f83463b61 Author: Clark Williams Date: Fri May 6 16:02:20 2011 -0500 go back to creating device nodes for tty and ptmx in chroot /dev Get rid of the symlink to pty nonsense. Create device nodes for chroot /dev/tty and /dev/ptmx. Previous commit nukes controlling terminal inside chroot so accesses to /dev/tty should fail rather than hang. Signed-off-by: Clark Williams commit dc0eb21bb29a42d96937ba2a7e90761c1f56da4e Author: Clark Williams Date: Fri May 6 15:58:23 2011 -0500 change preexec function for chroot to call os.setsid() Change to calling os.setsid() rather than os.setpgrp() to absolutely nuke the controlling terminal in the chroot. This fixes some problems where packages were hanging when accessing /dev/tty in their test suites. Now when a package test suite tries to interact with the terminal it should fail rather than hang. Signed-off-by: Clark Williams commit 891780c3bb6e2193b15dfa7475ef132737da20f8 Author: Mathieu Bridon Date: Wed May 11 11:36:49 2011 -0500 revert previous permissions/ownership fix for ccache The previous patch introduced a regression: in some situations (e.g default configuration), the unpriviledge user doesn't have the permissions to create the ccache dir if it doesn't exist. This patch creates the ccache dir as root and then changes ownership to the build user Signed-off-by: Clark Williams commit 0aab24daf347a0a727a3b3a1832d3ac9e7007b64 Author: Remi Collet Date: Fri May 6 13:51:56 2011 -0500 Dropped privs inside ccache plugin init to create files as builder (BZ# 700983) When ccache dir is redirected in config config_opts['plugin_conf']['ccache_opts']['dir'] = "/dev/shm/ccache.fc15i/" This folder is created, owned by root, so unusable. This change drops privs and creates the file as the non-root user. Signed-off-by: Clark Williams commit c64df9bbd96659a2a58f36323c2aa93f87a3ce9c Author: Levente Farkas Date: Fri May 6 13:45:08 2011 -0500 added config_opt['macros'] to EPEL-5 configs for EPEL-6 fix (BZ# 695298) on all rhel-5 related conf file you should add this line: config_opts['macros']['%__arch_install_post'] = '%{nil}' since otherwise some build will fail on rhel-6 while building for rhel-5 since mock use the host's rpm and on rhel-5 it's nil while on rhel-6 it's /usr/lib/rpm/check-buildroot and since many rhel-5 packages buggy, thay won't compile in this way. Signed-off-by: Clark Williams commit 57192409e44a3705e866b1e31a5564ada5dbbb39 Author: Marko Myllynen Date: Mon May 9 10:08:43 2011 -0500 SCM: Support building Git tags Add a post get cmd for git which can't checkout a tag directly as CVS/SVN can. --- py/mock/scm.py | 6 +++++- 1 files changed, 5 insertions(+), 1 deletions(-) Signed-off-by: Clark Williams commit 196e7610aaf8ab5736f44240df2116a600c9e9df Author: Marko Myllynen Date: Mon May 9 10:08:00 2011 -0500 Allow SCM checkouts over SSH Allow SCM checkouts over SSH by using SSH_AUTH_SOCK. The user is responsible for making sure that ~/.ssh/auth_sock is a link to a valid UNIX-domain socket. For example, before running mock, one needs to do: $ ln -sf $SSH_AUTH_SOCK ~/.ssh/auth_sock --- py/mock/scm.py | 3 +++ 1 files changed, 3 insertions(+), 0 deletions(-) Signed-off-by: Clark Williams commit fdf7d2c07f41f0075ad9ec5f433fcfab40fe8b4d Author: Marko Myllynen Date: Mon May 9 10:07:03 2011 -0500 Fetch and prepare sources from SCM when unprivileged Dropping postbuild hook usage allows running SCM operations before chroot has been setup. No need to know SELinux flag when cleaning under /tmp. --- py/mock.py | 14 +++++++------- py/mock/scm.py | 8 +++----- 2 files changed, 10 insertions(+), 12 deletions(- Signed-off-by: Clark Williams commit 4d7fa64f7e6b25d4e3400818e9e1bdc487403a94 Author: Jan Vcelak Date: Wed Mar 9 16:13:56 2011 -0600 selinux: hook-independent faux filesystem mounting (BZ# 573111) Behavior changes: - create faux filesystem file in __init__ - set up mount/umount commands in __init__ instead of using pre* hooks - clean up by registering atexit function instead of postBuild hook (__del__ is not safe) Result: - faux filesystems is always mounted (even in --shell) - plugin won't crash when building multiple SRPMs - plugin will always delete temporary faux filesystem file Signed-off-by: Clark Williams commit 12effa2db30d640fd3382ff3c276c71f903d2aae Author: Clark Williams Date: Mon Mar 7 08:42:40 2011 -0600 Fix syntax error when creating /dev/tty on EPEL{4,5} (BZ# 675803) Incorrect parenthesis placement passed bogus arguments to the MakeChrootPath() method. Signed-off-by: Clark Williams commit 322d92f472e695fbc934c0191197daa2fce815d7 Author: Clark Williams Date: Mon Feb 21 09:17:07 2011 -0600 fixup SCM plugin fiasco (BZ# 670453) The SCM code cannot run as a plugin, as it needs to be able to do things before a Root object is created. Move it all back to the way Marko had it previously. Signed-off-by: Clark Williams commit 616ce37d9e52b52f9db3ae39c394fd71d4506044 Author: Ville Skyttä Date: Sun Apr 3 16:40:06 2011 +0300 Log end to state log. commit 5c98de44cab6089cbab5550ab1d418dba9c9abd7 Author: Ville Skyttä Date: Mon Mar 7 22:12:49 2011 +0200 Run yum commands without shell, as sequences of args instead of strings. Fixes shell escaping issues like in '--install "perl(Foo::Bar)"'. As a side effect, chroot_setup_cmd can now be a list or a tuple in addition to a string in configs. commit c095e8912c4db33a398b7dba5bd6a9f8441401fe Author: Ville Skyttä Date: Tue Feb 22 21:22:11 2011 +0200 Single-element tuple syntax fixes. commit 277903b1cfe78e32603d18c152075a350491b6e2 Author: Ville Skyttä Date: Mon Feb 21 00:20:27 2011 +0200 Spelling fixes. commit 3de98108df6dc176b9a96d0ac7c4021339aa2c04 Merge: 3e72b15 1b2d4fd Author: Clark Williams Date: Wed May 11 17:08:45 2011 -0500 Merge branch 'master' into work commit 1b2d4fd5eea6dff01a07b081fe25f2a9e17b122c Author: Clark Williams Date: Wed May 11 17:07:46 2011 -0500 make sure /var/cache/mock is group writable Make sure that /var/cache/mock is created with group write permissions so that mock group members can write to it. Signed-off-by: Clark Williams commit 0714df0d8e5c76347decb6e55fe5f7b112e077e1 Author: Clark Williams Date: Wed May 11 17:05:56 2011 -0500 don't raise exeception when running /sbin/fuser in _show_path_user() Don't fail if _show_path_user() has no output and returns a 1 status when running /sbin/fuse. Signed-off-by: Clark Williams commit 9302268625a660456a347c20fb56313720e2e01a Author: Clark Williams Date: Wed May 11 17:04:10 2011 -0500 check for existance of 'pigz' when specified in root_cache plugin If 'pigz' is th compression program specified in the config options and it doesn't exist, replace it with gzip. Signed-off-by: Clark Williams commit a0d888043be33d3e5523f442c5bf941822b66daf Author: Clark Williams Date: Wed May 11 17:02:51 2011 -0500 warn on failure to umount tmpfs instead of fail Issue a warning that umount of tmpfs failed, rather than failing the build. We're running inside a separate namespace so mounts will be cleaned up on exit. Signed-off-by: Clark Williams commit 7cfaabfc90d77b5fe0065c037c74fe178bc1c044 Author: Mathieu Bridon Date: Wed May 11 11:36:49 2011 -0500 revert previous permissions/ownership fix for ccache The previous patch introduced a regression: in some situations (e.g default configuration), the unpriviledge user doesn't have the permissions to create the ccache dir if it doesn't exist. This patch creates the ccache dir as root and then changes ownership to the build user Signed-off-by: Clark Williams commit 2b0cd580da8de74e2bbb9783ccdc79890ea9022e Merge: 8c5e928 8ebfa5a Author: Clark Williams Date: Mon May 9 10:51:19 2011 -0500 Merge branch 'working-release' commit 3e72b1572119560574822f593889cb06aaa4d037 Merge: d4fe21e 8ebfa5a Author: Clark Williams Date: Mon May 9 10:50:22 2011 -0500 Merge branch 'working-release' into work commit 8ebfa5acf3d031dccd6efdaa50a0eb0a182bfe7e Author: Clark Williams Date: Sun May 8 14:57:47 2011 -0500 update version information to 1.1.10 Signed-off-by: Clark Williams commit 4fea039b500318e281f0ccd316b37f27d9022f30 Author: Mathieu Bridon Date: Sat May 7 08:41:31 2011 -0500 fix chroot cleanup issues (BZ# 668222) The cleanup_on_success and cleanup_on_failure options suffer from 2 issues. First, if the options are specified in the configuration file and no resultdir was specified on the CLI, then those options will be forced to False (even if the resultdir is specified in the configuration file). Second, if the resultdir is specified but is a subdirectory of the build root, then we must not clean it, even though both are different. So the appropriate thing to do is to check if the real resultdir (not the one from the CLI parameters) is a subdirectory of the build root, which covers both issues. Signed-off-by: Clark Williams commit 2dbf8994cd641756ba5846d8bc4cf43065202631 Author: Clark Williams Date: Sat May 7 08:04:45 2011 -0500 rewrote part of selinux plugin to use older python code The 'with' construct used is only available in python 2.5+ so rewrote to just use a for loop so will work on EL5 Signed-off-by: Clark Williams commit b7b5e1542aded38a5d90c727d17dde3d89939010 Author: Clark Williams Date: Fri May 6 16:13:48 2011 -0500 fixed problem where mock was not constrained to the chroot (BZ# 669733) Added a self.makeChrootPath(self.homedir) to call to os.walk() in _buildDirSetup() to make sure that mock stays within the chroot and doesn't affect files outside (found when /builddir exists in the host root filesystem). Reported-by: Jason Harvey Signed-off-by: Clark Williams commit 8e4ba8fc2f112270efb4486be885d292b6cf25b9 Author: Clark Williams Date: Fri May 6 16:02:20 2011 -0500 go back to creating device nodes for tty and ptmx in chroot /dev Get rid of the symlink to pty nonsense. Create device nodes for chroot /dev/tty and /dev/ptmx. Previous commit nukes controlling terminal inside chroot so accesses to /dev/tty should fail rather than hang. Signed-off-by: Clark Williams commit 3c21db18a742f21dd267795211bc35871e51d762 Author: Clark Williams Date: Fri May 6 15:58:23 2011 -0500 change preexec function for chroot to call os.setsid() Change to calling os.setsid() rather than os.setpgrp() to absolutely nuke the controlling terminal in the chroot. This fixes some problems where packages were hanging when accessing /dev/tty in their test suites. Now when a package test suite tries to interact with the terminal it should fail rather than hang. Signed-off-by: Clark Williams commit 967918e123703e380bce4700f58d0ad08d2c5f79 Author: Remi Collet Date: Fri May 6 13:51:56 2011 -0500 Dropped privs inside ccache plugin init to create files as builder (BZ# 700983) When ccache dir is redirected in config config_opts['plugin_conf']['ccache_opts']['dir'] = "/dev/shm/ccache.fc15i/" This folder is created, owned by root, so unusable. This change drops privs and creates the file as the non-root user. Signed-off-by: Clark Williams commit 7af715b20815719bf4d0b1daba0da2c0ac9fb021 Author: Levente Farkas Date: Fri May 6 13:45:08 2011 -0500 added config_opt['macros'] to EPEL-5 configs for EPEL-6 fix (BZ# 695298) on all rhel-5 related conf file you should add this line: config_opts['macros']['%__arch_install_post'] = '%{nil}' since otherwise some build will fail on rhel-6 while building for rhel-5 since mock use the host's rpm and on rhel-5 it's nil while on rhel-6 it's /usr/lib/rpm/check-buildroot and since many rhel-5 packages buggy, thay won't compile in this way. Signed-off-by: Clark Williams commit 56cc7959ebc3e584f2b22186a858ce40a0c355dd Author: Marko Myllynen Date: Mon May 9 10:08:43 2011 -0500 SCM: Support building Git tags Add a post get cmd for git which can't checkout a tag directly as CVS/SVN can. --- py/mock/scm.py | 6 +++++- 1 files changed, 5 insertions(+), 1 deletions(-) Signed-off-by: Clark Williams commit 1a7bb90dcdb71d3f1abe7bbf0f2a89d19a7cc1a2 Author: Marko Myllynen Date: Mon May 9 10:08:00 2011 -0500 Allow SCM checkouts over SSH Allow SCM checkouts over SSH by using SSH_AUTH_SOCK. The user is responsible for making sure that ~/.ssh/auth_sock is a link to a valid UNIX-domain socket. For example, before running mock, one needs to do: $ ln -sf $SSH_AUTH_SOCK ~/.ssh/auth_sock --- py/mock/scm.py | 3 +++ 1 files changed, 3 insertions(+), 0 deletions(-) Signed-off-by: Clark Williams commit 746c58ed8ac0d55694f7e3da444b7b902f207476 Author: Marko Myllynen Date: Mon May 9 10:07:03 2011 -0500 Fetch and prepare sources from SCM when unprivileged Dropping postbuild hook usage allows running SCM operations before chroot has been setup. No need to know SELinux flag when cleaning under /tmp. --- py/mock.py | 14 +++++++------- py/mock/scm.py | 8 +++----- 2 files changed, 10 insertions(+), 12 deletions(- Signed-off-by: Clark Williams commit 3f627743fb490dc4a17fe489be8926f62baf031c Author: Jan Vcelak Date: Wed Mar 9 16:13:56 2011 -0600 selinux: hook-independent faux filesystem mounting (BZ# 573111) Behavior changes: - create faux filesystem file in __init__ - set up mount/umount commands in __init__ instead of using pre* hooks - clean up by registering atexit function instead of postBuild hook (__del__ is not safe) Result: - faux filesystems is always mounted (even in --shell) - plugin won't crash when building multiple SRPMs - plugin will always delete temporary faux filesystem file Signed-off-by: Clark Williams commit b264459dc5b1409ea23b6a0eae2ce1c7128eb5af Author: Clark Williams Date: Mon Mar 7 08:42:40 2011 -0600 Fix syntax error when creating /dev/tty on EPEL{4,5} (BZ# 675803) Incorrect parenthesis placement passed bogus arguments to the MakeChrootPath() method. Signed-off-by: Clark Williams commit beba8b4d4d48da84119bbddc0f308edbd0c94c44 Author: Clark Williams Date: Mon Feb 21 09:17:07 2011 -0600 fixup SCM plugin fiasco (BZ# 670453) The SCM code cannot run as a plugin, as it needs to be able to do things before a Root object is created. Move it all back to the way Marko had it previously. Signed-off-by: Clark Williams commit ab907f3e5bd2ed68dd23f2237ab548cbc69a07e9 Author: Ville Skyttä Date: Tue Feb 22 21:22:11 2011 +0200 Single-element tuple syntax fixes. commit cfed7044f226d2291577a82ba3b9206db6e98f4b Author: Ville Skyttä Date: Mon Feb 21 00:20:27 2011 +0200 Spelling fixes. commit d4fe21eb3dfb776d9fbadcd0d142a9cbd848abda Author: Clark Williams Date: Sun May 8 14:57:47 2011 -0500 update version information to 1.1.10 Signed-off-by: Clark Williams commit 107840cc15265bc3c1b0669b1cb5b14da3cda54d Author: Mathieu Bridon Date: Sat May 7 08:41:31 2011 -0500 fix chroot cleanup issues (BZ# 668222) The cleanup_on_success and cleanup_on_failure options suffer from 2 issues. First, if the options are specified in the configuration file and no resultdir was specified on the CLI, then those options will be forced to False (even if the resultdir is specified in the configuration file). Second, if the resultdir is specified but is a subdirectory of the build root, then we must not clean it, even though both are different. So the appropriate thing to do is to check if the real resultdir (not the one from the CLI parameters) is a subdirectory of the build root, which covers both issues. Signed-off-by: Clark Williams commit f6d20d37b48635d57bd14b1d405391f05337f95f Author: Clark Williams Date: Sat May 7 08:04:45 2011 -0500 rewrote part of selinux plugin to use older python code The 'with' construct used is only available in python 2.5+ so rewrote to just use a for loop so will work on EL5 Signed-off-by: Clark Williams commit c56203e687804b16f7f0a1cef09ebef11eff2790 Author: Clark Williams Date: Fri May 6 16:13:48 2011 -0500 fixed problem where mock was not constrained to the chroot (BZ# 669733) Added a self.makeChrootPath(self.homedir) to call to os.walk() in _buildDirSetup() to make sure that mock stays within the chroot and doesn't affect files outside (found when /builddir exists in the host root filesystem). Reported-by: Jason Harvey Signed-off-by: Clark Williams commit 503bcd94421646c3a4a29b88deac45cb55dc74de Author: Clark Williams Date: Fri May 6 16:02:20 2011 -0500 go back to creating device nodes for tty and ptmx in chroot /dev Get rid of the symlink to pty nonsense. Create device nodes for chroot /dev/tty and /dev/ptmx. Previous commit nukes controlling terminal inside chroot so accesses to /dev/tty should fail rather than hang. Signed-off-by: Clark Williams commit b23ef43657dea183a7dc2ffff68e7b29a57fd903 Author: Clark Williams Date: Fri May 6 15:58:23 2011 -0500 change preexec function for chroot to call os.setsid() Change to calling os.setsid() rather than os.setpgrp() to absolutely nuke the controlling terminal in the chroot. This fixes some problems where packages were hanging when accessing /dev/tty in their test suites. Signed-off-by: Clark Williams commit 7fde070a13151370dd664ac686383bb1360c675a Author: Remi Collet Date: Fri May 6 13:51:56 2011 -0500 Dropped privs inside ccache plugin init to create files as builder (not root) When ccache dir is redirected in config config_opts['plugin_conf']['ccache_opts']['dir'] = "/dev/shm/ccache.fc15i/" This folder is created, owned by root, so unusable. This change drops privs and creates the file as the non-root user. Signed-off-by: Clark Williams commit c38fff2478e5a04ae29f38ae0444d68269751aca Author: Levente Farkas Date: Fri May 6 13:45:08 2011 -0500 added config_opt['macros'] to EPEL-5 configs for EPEL-6 fix on all rhel-5 related conf file you should add this line: config_opts['macros']['%__arch_install_post'] = '%{nil}' since otherwise some build will fail on rhel-6 while building for rhel-5 since mock use the host's rpm and on rhel-5 it's nil while on rhel-6 it's /usr/lib/rpm/check-buildroot and since many rhel-5 packages buggy, thay won't compile in this way. Signed-off-by: Clark Williams commit 8c5e9281b6385153e9157dab377aef51a39dbd9e Author: Ville Skyttä Date: Sun Apr 3 16:40:06 2011 +0300 Log end to state log. commit d5a2e8f59f9dcd52f1847552ec0d2a353c8bbb27 Author: Clark Williams Date: Thu Mar 10 16:17:53 2011 -0600 enable setting up symlinks to /dev/ptmx in with --shell when --shell is specified on host systems F13+ or EL6, setup /dev/tty as a symlink to /dev/ptmx in the chroot filesystem. This will allow interactive commands to function properly inside the chroot. Signed-off-by: Clark Williams commit 2db958cd09320117d1f97426f8fc7f8c74aea9c0 Author: Clark Williams Date: Thu Mar 10 12:57:20 2011 -0600 force creation of /dev/ptmx and /dev/tty for --shell (BZ# 683111) Create pseudo-terminal and controlling terminal devices when --shell is specified, so that interactive tools like "xterm" will work properly inside the chroot. Signed-off-by: Clark Williams commit aeb14699f73aa1fed598185fcd66400af832c101 Author: Jan Vcelak Date: Wed Mar 9 16:13:56 2011 -0600 selinux: hook-independent faux filesystem mounting Behavior changes: - create faux filesystem file in __init__ - set up mount/umount commands in __init__ instead of using pre* hooks - clean up by registering atexit function instead of postBuild hook (__del__ is not safe) Result: - faux filesystems is always mounted (even in --shell) - plugin won't crash when building multiple SRPMs - plugin will always delete temporary faux filesystem file Signed-off-by: Clark Williams commit 1c8023c3bf54cad3c406c6268809b79fda5cc987 Author: Ville Skyttä Date: Mon Mar 7 22:12:49 2011 +0200 Run yum commands without shell, as sequences of args instead of strings. Fixes shell escaping issues like in '--install "perl(Foo::Bar)"'. As a side effect, chroot_setup_cmd can now be a list or a tuple in addition to a string in configs. commit 821833a3ed9fdfc4b183d780e88dcaf7aac04927 Merge: 17dc13f 27b4532 Author: Clark Williams Date: Mon Mar 7 14:26:44 2011 -0600 Merge remote-tracking branch 'origin/master' into work commit 17dc13f964595ac39fcb0269b518747f8a3eda99 Author: Clark Williams Date: Mon Mar 7 08:42:40 2011 -0600 Fix syntax error when creating /dev/tty on EPEL{4,5} (BZ# 675803) Incorrect parenthesis placement passed bogus arguments to the MakeChrootPath() method. Signed-off-by: Clark Williams commit 27b45320b87d4ce67f4e225262a6c9f00003d500 Author: Ville Skyttä Date: Tue Feb 22 21:22:11 2011 +0200 Single-element tuple syntax fixes. commit 96fc81e35b65db3849bf47c27468f14dfedeaa57 Author: Clark Williams Date: Mon Feb 21 09:17:07 2011 -0600 fixup SCM plugin fiasco The SCM code cannot run as a plugin, as it needs to be able to do things before a Root object is created. Move it all back to the way Marko had it previously. Signed-off-by: Clark Williams commit 936401e242df59e552f1a05880c339beb2e88929 Author: Ville Skyttä Date: Mon Feb 21 00:20:27 2011 +0200 Spelling fixes. commit 154f5dc484123dbf690a43b8a2acd218c904b588 Author: Clark Williams Date: Fri Feb 18 17:18:30 2011 -0600 version bump to 1.1.9 Signed-off-by: Clark Williams commit 93382c14179aad33c5b45e7e20c75a0eabc6bd94 Author: Clark Williams Date: Fri Feb 18 17:09:37 2011 -0600 add 'arm' to configs that are filtered out in tests We can't test arm when building Signed-off-by: Clark Williams commit 2c9874a117e7f2987cf8420853d8ff35a91bdf82 Merge: d81d89e 284b657 Author: Clark Williams Date: Fri Feb 18 16:02:14 2011 -0600 Merge remote-tracking branch 'origin/master' into work commit 284b657f2aa72134f480d63a79085611de6854be Author: Dennis Gilmore Date: Fri Feb 18 15:49:57 2011 -0600 Revert "disable the updates repos for F-15 they dont yet exist" putting in empty repos This reverts commit ab871a1a254661b00b718ffe3dfa7475de4df96f. commit d81d89e66e34cee3bd88a4d0092cc4cd7dab2029 Author: Clark Williams Date: Fri Feb 18 15:46:59 2011 -0600 reenable /dev/tty code for EL{4,5} package failures due to incorrect controlling tty are on F14+ and EL6. Re-enable setup of /dev/tty inside chroot for EL4 and EL5. Signed-off-by: Clark Williams commit 47db23ff85e7fb62b860302dbf5f17273933d74b Author: Dennis Gilmore Date: Fri Feb 18 15:35:39 2011 -0600 sparc64 boxes can build 32 bit sparc stuff commit 63cfbbfe6bfb1283e1016e8fc8d4b396963ea461 Author: Dennis Gilmore Date: Fri Feb 18 15:33:05 2011 -0600 add rawhide arm config commit b28f021dc5620eee09a59c778793997e961b87d8 Author: Dennis Gilmore Date: Fri Feb 18 15:30:28 2011 -0600 use the s390 mirrorlists for s390 configs commit ab871a1a254661b00b718ffe3dfa7475de4df96f Author: Dennis Gilmore Date: Fri Feb 18 15:29:52 2011 -0600 disable the updates repos for F-15 they dont yet exist commit b65d026efdc60262e8578c2fed51311d4dfbfec9 Author: Dennis Gilmore Date: Fri Feb 18 15:27:30 2011 -0600 add the f15 mock configs commit 87f8137961db569f5bd349376820d26b8dabc00b Merge: 9afe90f 4418419 Author: Clark Williams Date: Fri Feb 18 15:23:41 2011 -0600 Merge remote-tracking branch 'origin/master' into work Conflicts: py/mock.py py/mock/backend.py Fixed up conflicts with changes since last push Signed-off-by: Clark Williams commit 9afe90fec2118689e20af652d3756c93b9d06bdc Author: Clark Williams Date: Fri Feb 18 15:16:21 2011 -0600 commented out /dev/tty handling code in backend.py Prevent creation of /dev/tty (either special file or symlink to /dev/ptmx). This is so interactive test suites being built will not hang when attempting to talk to a controlling terminal Signed-off-by: Clark Williams commit 890d78f0dc12de159ce1cc5908ee415ac36f44f9 Author: Clark Williams Date: Fri Feb 18 15:15:18 2011 -0600 remove autoconf version requirement and don't use PACKAGE_NAME macro did this to allow building/testing on RHEL5, which has an earlier version of autoconf Signed-off-by: Clark Williams commit 44184190eed851d327a4e9546d6a08865fe1dd1a Author: Ville Skyttä Date: Sun Feb 13 11:00:59 2011 +0200 Delete trailing whitespace. commit 7fcffd0e5366daea20d3c2602054115878370ba3 Author: Ville Skyttä Date: Sat Feb 12 16:50:21 2011 +0200 Add --install bash completion. commit 469e8347b948b6733a9d6b8d3e0f16aeb969f4d6 Author: Ville Skyttä Date: Sat Jan 29 21:23:31 2011 +0200 Make --enable/disable-plugin completion work again. It was broken in 1.1.8 due to changed --enable/disable-plugin=DOES_NOT_EXIST error output format changes. commit e1f59fe1292a57e3cc05860416051729fdf1f6f4 Author: Jesse Keating Date: Tue Jan 25 14:11:11 2011 -0800 Make "dist" for rawhide configs be "rawhide" (#506157) This is better than chasing release numbers all the time. commit 293a71a70eeb2516a8940630b8fc187b7a8ffc3a Author: Jesse Keating Date: Tue Jan 25 14:04:28 2011 -0800 Revert "turn off updates-released repository for fedora-14 configs" This reverts commit 347b5a00b68ce61641725b156fa0a4b3ee830fd9. F14 has been released, updates should be enabled. commit f3714c01fad3b91e7b60fdbb7d971ef424689cc0 Author: Mike McLean Date: Tue Jan 25 16:19:44 2011 -0500 fix typo in el4/5 /dev/tty creation (fh ticket #13, mwhiteley) commit d636d500fd7addff5dd8e177982a5037ea930a4f Author: Ville Skyttä Date: Sun Jan 23 19:09:02 2011 +0200 Use completion goodies from bash-completion >= 1.2 if available. commit 8f925be698ed3956400a1758dc7b5b4c36c759ba Author: Ville Skyttä Date: Sun Jan 23 18:59:21 2011 +0200 Add --scm-enable and --scm-option to bash completion. commit 2852f81cc298fe8d2b02e8b65e7cfdecc72d0c8a Author: Clark Williams Date: Fri Jan 21 13:30:43 2011 -0600 fix createrepo generated root-owned repository data (BZ# 668278) Temporarily drop privileges when generating yum repository from just built packages Signed-off-by: Clark Williams commit 6ec7982afb8d388bbe1dde4e827e62d943fdc9c5 Author: Clark Williams Date: Thu Jan 6 20:22:43 2011 -0600 version bump to 1.1.8 Signed-off-by: Clark Williams commit 438b10bc8509984bab94da3aa3a27c40a388ccf7 Author: Leonard den Ottolander Date: Thu Jan 6 11:56:52 2011 -0600 symlink /dev/tty to /dev/ptmx for modern host OS'es (BZ# 609201) If mock is being hosted on a RHEL4 or RHEL5 system then create the /dev/tty special device file in the chroot, otherwise just symlink it to /dev/ptmx. Signed-off-by: Clark Williams commit a23ca47fbc5c7f2aea0c741d70b544b83921edae Author: Marko Myllynen Date: Wed Jan 5 19:20:31 2011 -0600 updated SCM plugin Fixed some typos and moved the source file into plugins dir Signed-off-by: Clark Williams commit 7eeb8c1e49676aeeaffdb665ec918aaee35262ab Author: Clark Williams Date: Wed Jan 5 19:17:23 2011 -0600 added PASSED printout in runtests.sh Signed-off-by: Clark Williams commit 0f12f1b1d78324a4de82e1de6dbcf5faf2d34b85 Author: Clark Williams Date: Wed Jan 5 14:49:05 2011 -0600 add retrylogic to mock.util.rmtree() Add a single retry to attempt to delete a directory tree. Sleep for two seconds to give threads time to exit. Signed-off-by: Clark Williams commit 8074360c37f04e3bccdd1f261cd127468737a9b5 Author: Clark Williams Date: Wed Jan 5 14:20:33 2011 -0600 force --shell shell to be /bin/sh (BZ# 667243) Fix a problem for non-bash users where $SHELL is not a shell that's in the chroot (and /usr/sbin/chroot uses $SHELL when nothing specified on the command line). This sets SHELL to /bin/sh for any --shell invocation Signed-off-by: Clark Williams commit adaa6074581ccdbfa73a02a747af25d7af26727f Author: Clark Williams Date: Tue Jan 4 12:18:17 2011 -0600 added 'patches' directory to the ignore file Signed-off-by: Clark Williams commit 3b17370c588dd3826a2fb07b0f9f4566a14cf9ae Author: Clark Williams Date: Tue Jan 4 12:17:28 2011 -0600 added VERBOSE as configurable for running tests Added VERBOSE shell variable to allow turning verbose output on and off Signed-off-by: Clark Williams commit 13979fdedd9b73eaae674ddbdac76464242c7d14 Author: Clark Williams Date: Tue Dec 21 17:20:24 2010 -0600 deleted fedora-12 configuration files commit 93c735199dabb79968af5a869a59bd11747961ab Author: Clark Williams Date: Tue Dec 21 10:28:14 2010 -0600 updated configure.ac and mock.spec.in in preparation for 1.1.8 release Updated verion in configure.ac and updated %changelog in mock.spec.in Signed-off-by: Clark Williams commit 85260e42b5b166dd03ad74b168448e2b3a642a64 Author: Clark Williams Date: Tue Dec 21 10:26:17 2010 -0600 added --verbose to MOCKCMD and added PASS/FAIL print Added the --verbose option when running mock to get more information in the log files. Also added a PASSED/FAILED print at the end of each test. Signed-off-by: Clark Williams commit c32ba54e8dfb493012ecb5cdd8067955f84db23e Author: Clark Williams Date: Tue Dec 21 10:23:43 2010 -0600 add function to run fuser when failing to umount or remove directory Run the '/sbin/fuser' program to find out what threads are preventing umount or directory removal. Signed-off-by: Clark Williams commit 746e6d1d01d3eb01b6839e0a23868337cc67f59a Author: Clark Williams Date: Tue Dec 21 10:17:30 2010 -0600 don't error out if we can't delete the /proc/filesystems file print a warning if the filesystems file was deleted before we get to it, but don't fail. Signed-off-by: Clark Williams commit cdc600920e77313a5fc8885ce41b9e7a0d0f043a Author: Clark Williams Date: Tue Dec 21 10:15:18 2010 -0600 make sure that pseudo-filesystem mountpoints exist The root cache logic excludes the pseudo-filesystem mountpoints (e.g. /proc and /sys) from the cache tarball. Make sure those directories are created after the cache tarfile is unpacked. Signed-off-by: Clark Williams commit ecdd32357c2355e5a50e2700778fa0dcf0cbff7f Author: Paul Howarth Date: Sat Dec 18 10:56:19 2010 -0600 Don't add --setopt=tsflags=nocontexts to all commands (BZ# 663021) Update the SELinux plugin to only add the --setopt=tsflags=nocontexts option to yum commands rather than blindly adding it to all commands. Signed-off-by: Clark Williams commit 367da77928e5a23c395c29648331085b3f34c6a5 Author: Clark Williams Date: Fri Dec 17 15:29:41 2010 -0600 added logging to scrub command to indicate what's being scrubbed Signed-off-by: Clark Williams commit 02fe782a65774534f7596d9ee7fa32235efc86a5 Author: Clark Williams Date: Fri Dec 17 15:02:54 2010 -0600 record packages installed into root and store as cache.log (BZ# 444796) Record the yum output when initializing a chroot that will be used as a root cache. Store the output in /var/cache/mock//root_log/cache.log Signed-off-by: Clark Williams commit 974fcca0ff218b64af8f43886d1a8e9b1f7ed402 Author: Clark Williams Date: Fri Dec 17 14:42:53 2010 -0600 add calls to enable logging and calls to unlock build root Add calls to _resetLogging() to enable root logging for 'install' and 'update' operations. Add calls to unlockBuildRoot to cleanup build root lockfile when operations are done. Signed-off-by: Clark Williams commit 3edae4b8a09e8f78ca13b94bb7fea2c30eac28b3 Author: Clark Williams Date: Fri Dec 17 14:40:28 2010 -0600 add unlockBuildRoot() method Clean up buildroot lock file after operation requiring lock is done Signed-off-by: Clark Williams commit a25c8bcc0bc089ee6dd326917fa1569aa6dc6c5e Author: Clark Williams Date: Fri Dec 17 14:36:57 2010 -0600 add logging info to yum install (BZ# 594477) Add calls to root_log.info() in yumInstall to record package installs into the root log. Signed-off-by: Clark Williams commit b3e9185e3d619f105adaf2657b0f947c929f53ba Author: Clark Williams Date: Fri Dec 17 13:24:16 2010 -0600 added SCM module to Makefile install target Signed-off-by: Clark Williams commit 7c6aa7d1e3daa4bd493b5352fc4f3f146c8c468c Author: Michael Hampton Date: Fri Dec 17 10:24:11 2010 -0600 Add -f (force) option to userdel when recreating mockbuild user (BZ# 662223) The program /usr/sbin/userdel was looking in /proc for the uid specified to be deleted and would fail if the uid was still listed as having running processes. Force removal of the UID when setting up a build chroot. Signed-off-by: Clark Williams commit bbac705accb140051821f8cbad243d09d29bd45e Author: Clark Williams Date: Fri Dec 17 10:11:27 2010 -0600 corrected examples for routine building in man page Clean up the default examples section of the man page Signed-off-by: Clark Williams commit 2c47107d71fe87b31753695bcd4fbe22c5024eb7 Author: Marko Myllynen Date: Fri Dec 17 09:58:29 2010 -0600 document SCM build options in usage and man page Add usage output for SCM options and add man page blub about using the SCM options. Signed-off-by: Clark Williams commit e5ceea0f4c8d1e27b9ed97d3f7da298fc5235db4 Author: Marko Myllynen Date: Thu Dec 16 12:55:53 2010 -0600 Integrate Mock with SCMs (CVS/Git/SVN) Allow Mock users to build directly from an SCM. Sources are fetched and prepared from a source repository which contains the corresponding spec file. The source package can either reside on an external directory or a tarball can be generated on the fly out of the checkout sources. Disabled by default, nothing changes for users who do not use it. site-default.cfg should be adjusted to enable needed repositories. To build package "foo" from a default repository one does: $ mock -r fedora-14-i386 --scm-enable --scm-option package=foo Currently supported repositories are: - CVS - Git - SVN Due to fact Mock is using consolehelper no CVS checkouts over SSH are at least currently possible. Adding support for other repositories should just a matter of a dozen or so lines of code. Based on the standalone mock-scm script I wrote in September: http://lists.fedoraproject.org/pipermail/devel/2010-September/142469.html Current limitations: - CVS checkouts over SSH no possible - Mock/SELinux plugin must be disabled Signed-off-by: Clark Williams commit 196e32c6debdcaaaad82be2363b32a398d8e1a3f Author: Masatake YAMATO Date: Thu Dec 16 10:24:58 2010 -0600 add runtime location of plugins Mock has plug-in mechanism but source code modification is needed to add a plug-in. For writing an experimental plug-in or a plug-in for private purpose, it is nice if one can add a plug-in without modifying the source code of mock itself. With this commit, python script files at $PKGPYTHONDIR/plugins are added as plugins to mock automatically. Signed-off-by: Clark Williams commit eaebd32084cfda5c7a47b7949b869cb263461432 Author: Clark Williams Date: Tue Dec 14 10:28:47 2010 -0600 updated release instructions to take advantage of git Signed-off-by: Clark Williams commit efbf7f08e04a4705570c829f0b84b5999a6fe5c7 Author: Clark Williams Date: Mon Dec 13 20:59:49 2010 -0600 version bump to 1.1.7 Signed-off-by: Clark Williams commit 6edcead9d9baaa854ba06311d35462745fe09921 Author: Clark Williams Date: Mon Dec 13 20:57:47 2010 -0600 updated test config to fedora-14-x86_64 commit 7d460d0537cf68d1c1fd3a811c771791a2906052 Merge: e008ed2 f0e3a1e Author: Clark Williams Date: Mon Dec 13 15:57:56 2010 -0600 Merge remote branch 'origin/master' into work commit e008ed2ee18ea2e99a3138762216f38b9c3a1583 Author: Clark Williams Date: Mon Dec 13 15:53:17 2010 -0600 add 'legal_host_arches' config option to configs (BZ# 622792) Add the config_opts key 'legal_host_arches' to all epel and fedora configs. This key, when present, is a tuple of valid host arches for the config target_arch. If the key is not present, it means that any host arch is valid. Signed-off-by: Clark Williams commit aeab2873f30f9d14597d936d42e46a751c4ca897 Author: Clark Williams Date: Sun Dec 12 20:27:25 2010 -0600 add root check and group check (BZ# 662223) Add early root check to disallow running from the root account and a later check to verify that the unprivleged account is a member of the mock group. Signed-off-by: Clark Williams commit f0e3a1ee18a94f8dc95440c0a29a9c2860c75d42 Author: Ville Skyttä Date: Sat Dec 4 19:12:18 2010 +0200 Try to set up an appropriate default.cfg symlink at post install time. commit d1b81393128257cc29444d1bc03a67435aa25f88 Author: Ville Skyttä Date: Sat Dec 4 18:10:15 2010 +0200 Clean up disttag usage. commit a10600ff3e132a5bd4e44b21d0c0a89dc1511b5f Author: Ville Skyttä Date: Sat Dec 4 17:44:24 2010 +0200 Drop obsolete and nonfunctional F-8 bits from specfile. commit 8d6e88bc0644f0f82d54b89613d8f6fddddcac8a Author: Ville Skyttä Date: Wed Oct 20 23:02:27 2010 +0300 Drop no longer used requiresTextFromHdr() and uniqReqs(). This is an incompatible API change, but I'm not aware of anything that would use these functions. commit ceaeb5e559adf3c32438a554e2df7a8e47548baa Author: Ville Skyttä Date: Wed Oct 20 23:02:27 2010 +0300 Install build deps with yum-builddep. No longer need to screen-scrape resolvedep and feed that to yum install, and we have a chance to get BuildConflicts handing "for free" (when RHBZ #614191 is done in yum(-builddep)). commit abd9d4c8b5b72aef58e4d5cebc3f3259226832a0 Author: Ville Skyttä Date: Fri Oct 22 19:37:58 2010 +0300 Add comment why binary packages are built with --nodeps, thanks to Dennis Gilmore. commit 2f7d1b3fc12b5d4cc470b0d369b6105d26c4ecee Author: Clark Williams Date: Thu Oct 14 16:56:35 2010 -0500 version bump to 1.1.6 Signed-off-by: Clark Williams commit 8be496f9dd05d8fe4d2f12a25fcb2298a70ea89d Author: Clark Williams Date: Thu Oct 14 16:54:44 2010 -0500 corrected release-instructions.txt to refer to tests sub directory commit 138baaca2608c3e779993652c8e0e01d94d1031d Merge: 30ca8a8 5cc32a2 Author: Clark Williams Date: Thu Oct 14 15:36:35 2010 -0500 Merge branch 'master' into work commit 30ca8a856f633746db145338e4466a40925474be Author: Ville Skyttä Date: Thu Oct 14 21:20:44 2010 +0300 Find out completions for --*-plugin dynamically. commit 529b078cc24e22099a72d5139b00f15279cb4a38 Author: Ville Skyttä Date: Thu Oct 14 21:10:22 2010 +0300 Keep $COLUMNS in consolehelper environment for --help formatting. commit 860610a20e4f144763fc14dbcc268fe2577fe2ef Author: Ville Skyttä Date: Thu Oct 14 20:54:07 2010 +0300 Document --scrub, --enable-plugin, and --disable-plugin. commit 492282d8f502fc9b33310236bdf5562c21932610 Author: Ville Skyttä Date: Thu Oct 14 20:44:56 2010 +0300 Fix option name in --enable-plugin/--disable-plugin error string. commit 3f6ef8fd8d3a31ed435035c6538553c179eb15a8 Author: Ville Skyttä Date: Thu Oct 14 20:08:59 2010 +0300 Add --scrub completion. commit fa8b76848f192c2cb8f662eb30b570fbf5169c71 Author: Ville Skyttä Date: Thu Oct 7 20:00:28 2010 +0300 Complete on *.spm (*.src.rpm are sometimes named like that e.g. in SUSE). commit 5cc32a29fa46d59276685211be0317f2f436b613 Author: Clark Williams Date: Wed Sep 29 15:54:43 2010 -0500 replace call to perl with native python edit function Replace shell-out to perl to edit chroot passwd file with internal python method. Signed-off-by: Clark Williams commit 9241685d5920f55a4fffbda8f337f5269688c4ea Author: Clark Williams Date: Wed Sep 29 14:45:32 2010 -0500 change permissions of selinux plugin 'filesystems' file After changing the faux '/proc/filesystems' file to be a tempfile, we need to change permissions of that file to match the actual /proc/filesystems (0666). Do so. Signed-off-by: Clark Williams commit 67f3a085c5e9bcd325e714369b3f6ed624b97dec Author: Ville Skyttä Date: Sun Sep 19 17:51:22 2010 +0300 Fix buildsrpm() docstring. commit eb4d5c83911e18c679ecdda63cfb6293ef68fb5a Author: Ville Skyttä Date: Sun Sep 19 17:50:19 2010 +0300 Error message improvements. commit d5b53b2568acba27b128389b09f9d56f9f110b70 Author: Clark Williams Date: Fri Sep 17 15:59:21 2010 -0500 version bump to 1.1.5 Signed-off-by: Clark Williams commit 4fac9540718d35a0526d3e7ee523d38ae19557f8 Author: Clark Williams Date: Fri Sep 17 15:53:12 2010 -0500 add exception trapping code to _unlock_and_rm_chroot() method Seeing a sporadic failure in epel4 unit tests, where clean of chroot fails due to some unknown resource being held there. Add some code to catch the OSError exception and print the contents of /proc/mounts, then re-raise the exception. Signed-off-by: Clark Williams commit 6c003bc0a39b4a0523a16923101192757ce08d47 Author: Clark Williams Date: Fri Sep 17 14:44:01 2010 -0500 fix epel4 chroot cleanup and umountall issue created root method _unlock_and_rm_chroot() to deal with errors seen on EPEL4 builds where chroot removal fails due to file lock still held. Also fix if statement in _umountall() method, which was causing the actual chroot to be forcibly umounted when the tmpfs plugin was used. Signed-off-by: Clark Williams commit 43a7ac370fd1a19163ab06da5cece2be514d697b Author: Alan Franzoni Date: Fri Sep 17 10:18:05 2010 -0500 reworked the root object _umountall() method Belt and suspenders method of umounting. First go through what we have in our umount commands list. Then check /proc/mounts for anything thats mounted in the chroot path Signed-off-by: Clark Williams commit 5112950a09219ff3d4261d80696f7b7dbe11e91d Author: Clark Williams Date: Fri Sep 17 09:39:34 2010 -0500 changed copyin/copyout prints from debug to info Modified calls to log output to use info versus debug for better user feedback Signed-off-by: Clark Williams commit 308f5313f42dcf05a3b14f809279fda720bfaeb6 Author: Clark Williams Date: Thu Sep 16 10:58:59 2010 -0500 create empty faillog and lastlog in /var/log (BZ# 585973 & 633435) Make sure we don't store a couple of big sparse files in the chroot cache image, but create empty files in case someone wants to check for their existance. Signed-off-by: Clark Williams commit 2f37407ddaf1873f067158ffb7ab9140ec348646 Author: Clark Williams Date: Sat Sep 11 10:10:21 2010 -0500 added commandline argument checking for --buildsrpm (BZ# 605800) Make sure that --spec and --sources are specified when the --buildsrpm options is specified. Signed-off-by: Clark Williams commit 8e75f91ffbe61591688b903c45a589f54f3240f6 Author: Clark Williams Date: Sat Sep 11 09:54:56 2010 -0500 change selinux plugin to use tempfile Modify the plugin to use tempfile.mkstemp() to create the faux entry for /proc/filesystems in the chroot. This puts the file in a temporary directory rather than depending on conf['cachedir'] to exist (and it won't if caching is turned off). Signed-off-by: Clark Williams commit 5161ba43d11564ab94fe0ace529c36de3cd7b87b Author: Clark Williams Date: Thu Aug 19 15:25:54 2010 -0500 add cmpKernelEVR function to compare kernel versions (BZ# 526414) Create the cmpKernelEVR function, which uses the rpmUtil.miscutil function compareEVR to compare kernel versions, then use this in the _setupDev method of the Root instance to correctly determine if the host kernel is newer or older than specified versions. Signed-off-by: Clark Williams commit eb49a825ed30421d36c7c6d3f78d67e778677108 Author: Clark Williams Date: Mon Aug 16 09:46:14 2010 -0500 fix typo in exception.py Changed __init to __init__ (thanks Jan!) Signed-off-by: Clark Williams commit 2cc9d2e2797ca6ea1c502d9a81cce2d112d9b7bd Merge: df1f05e d151d75 Author: Clark Williams Date: Mon Aug 16 16:58:30 2010 -0500 Merge branch 'master' into work Conflicts: py/mock.py Signed-off-by: Clark Williams commit d151d75fe013910e5b6cbc2afd1576ece09c096e Author: Clark Williams Date: Sat Aug 14 09:07:57 2010 -0500 version bump to 1.1.4 Signed-off-by: Clark Williams commit eb62cb6ef11823e3f193b16d41bdcee312132a4a Author: Clark Williams Date: Sat Aug 14 09:07:04 2010 -0500 removed trap of EXIT in unit tests driver This cause the test to always report failure Signed-off-by: Clark Williams commit 3309418b802f6cebc7837416394763d5fd8ef69f Author: Clark Williams Date: Fri Aug 13 13:20:32 2010 -0500 added header for test results Signed-off-by: Clark Williams commit 6da80b5d6b467489492673001005321f5b506cb1 Author: Clark Williams Date: Mon Aug 9 17:23:13 2010 -0500 pass selinux status to mock.util.rmtree() function (BZ# 614440) Pass in boolean 'selinux' via keyword arguments that tells rmtree whether to do retry logic with selinux attributes Signed-off-by: Clark Williams commit 59020475e4b76f324298a6c719b55f7435d33ac9 Author: Paul Howarth Date: Wed Aug 11 11:54:01 2010 +0100 Update packages after unpacking root cache Fix problem introduced in commit 3bc5fb958deb809fc04d6a74ce6688e093f5831a where the buildroot is no longer updated after unpacking the root cache. http://bugzilla.redhat.com/557526 Signed-off-by: Clark Williams commit bf71ffd587ff230ba58b700f465bba41458a4270 Author: Paul Howarth Date: Wed Aug 11 11:54:00 2010 +0100 noarch is always a legal arch Allow "--target noarch" to be specified. Signed-off-by: Clark Williams commit 942b94cd6b1345ce7c2373a6c0cd5e689fd22dcf Author: Paul Howarth Date: Wed Aug 11 11:53:59 2010 +0100 Exclude bind-mounted cache dirs from root cache Including the ccache directory /tmp/ccache and the yum cache directory /var/cache/yum in the root cache is unnecessary and can lead to the root cache tarball being an order of magnitude larger and taking 10 minutes or more to tar and compress even on a fast PC. Signed-off-by: Clark Williams commit 03cb001e8d3b2d629c879ba723afcd2b187675b2 Author: Paul Howarth Date: Wed Aug 11 11:53:58 2010 +0100 Retain order of umountCmds The order of execution of umounts is the reverse of the order of the mounts, so as to deal with a hierarchy of mounts correctly. The ordering is reversed by _umountall but was being left in the reversed state so that the next time _umountall was called, it attempted to unmount filesystems in the wrong order, leading to build failures due to being unable to unmount for example /proc whilst /proc/filesystems was still mounted. This change reverses the order of umount commands back again before _umountall exits so as to maintain the ordering. Signed-off-by: Clark Williams commit 7f9f684f63dc05c7d44547879fcf6e49831bc5c6 Author: Paul Howarth Date: Wed Aug 11 11:53:57 2010 +0100 Add i586 as a legal target arch This is needed not only to target the legacy Fedora 11 32-bit release but also the still-current SLES-11 32-bit and possibly others too. Signed-off-by: Clark Williams commit df1f05e2e05b124422f1427f93b6dec580812809 Author: Paul Howarth Date: Wed Aug 11 11:54:01 2010 +0100 Update packages after unpacking root cache Fix problem introduced in commit 3bc5fb958deb809fc04d6a74ce6688e093f5831a where the buildroot is no longer updated after unpacking the root cache. http://bugzilla.redhat.com/557526 Signed-off-by: Clark Williams commit a0c1286b81eb337989ce317d6698e042771e2083 Author: Paul Howarth Date: Wed Aug 11 11:54:00 2010 +0100 noarch is always a legal arch Allow "--target noarch" to be specified. Signed-off-by: Clark Williams commit abc946edf3b59ae18bddc03b1810c35779d0b843 Author: Paul Howarth Date: Wed Aug 11 11:53:59 2010 +0100 Exclude bind-mounted cache dirs from root cache Including the ccache directory /tmp/ccache and the yum cache directory /var/cache/yum in the root cache is unnecessary and can lead to the root cache tarball being an order of magnitude larger and taking 10 minutes or more to tar and compress even on a fast PC. Signed-off-by: Clark Williams commit 011e80dd4a087c18a2eda338fda416dc83c88f13 Author: Paul Howarth Date: Wed Aug 11 11:53:58 2010 +0100 Retain order of umountCmds The order of execution of umounts is the reverse of the order of the mounts, so as to deal with a hierarchy of mounts correctly. The ordering is reversed by _umountall but was being left in the reversed state so that the next time _umountall was called, it attempted to unmount filesystems in the wrong order, leading to build failures due to being unable to unmount for example /proc whilst /proc/filesystems was still mounted. This change reverses the order of umount commands back again before _umountall exits so as to maintain the ordering. Signed-off-by: Clark Williams commit 89a15aa576d8db4fdf692944604ec1ddbf724181 Author: Clark Williams Date: Mon Aug 9 17:23:13 2010 -0500 pass selinux status to mock.util.rmtree() function (BZ# 614440) Pass in boolean 'selinux' via keyword arguments that tells rmtree whether to do retry logic with selinux attributes Signed-off-by: Clark Williams commit f4b14aa93a9e4b0a87a8cba0d73a593efac88777 Author: Clark Williams Date: Mon Aug 9 13:55:27 2010 -0500 change integer constants to symbolic errno constants in util.py import the errno package and use symbolic variants of errno constants EPERM, EACCES and ENOENT. Signed-off-by: Clark Williams commit 6e5e7599a505721b58c4c232c213a53da7c818b5 Author: Clark Williams Date: Mon Aug 9 13:54:26 2010 -0500 add i586 as valid arch Added i586 as valid arch for i386/i686/x86_64. Signed-off-by: Clark Williams commit 96df0e983173da7192ac82f1b7842ce9102d2432 Author: Clark Williams Date: Mon Aug 9 12:40:54 2010 -0500 add noarch as legal architecture for any host arch (BZ# 622170) Added 'noarch' as a legal architecture to build from any host architecture Signed-off-by: Clark Williams commit 00d340c87dd2e35941084e5b4aff161bd329bb3b Author: Clark Williams Date: Tue Aug 3 15:14:13 2010 -0500 version bump to mock-1.1.3 Signed-off-by: Clark Williams commit 347b5a00b68ce61641725b156fa0a4b3ee830fd9 Author: Clark Williams Date: Tue Aug 3 14:16:09 2010 -0500 turn off updates-released repository for fedora-14 configs f14 is prerelease so turn off the updates-released repository Signed-off-by: Clark Williams commit 6f03bd7a30ddadf96ae4f6849d11bebe5ddd984d Author: Clark Williams Date: Tue Aug 3 13:47:10 2010 -0500 updated release instructions for new git-based package trees Modified the release instructions to deal with needing the fedora-packager package and how to use fedpkg. Signed-off-by: Clark Williams commit 12f0cd8da491039ed13c7fffaafd6ae96e267410 Author: Clark Williams Date: Tue Aug 3 12:57:24 2010 -0500 set state correctly for SELinux (BZ# 620143) The new selinux plugin fakes SELinux being turned *off* in the chroot by bind-mounting a fake /proc/filesystems in the chroot. If this plugin is enabled, we should *not* do any SELinux attribute operations in the chroot. Setup this state correctly at init time. Signed-off-by: Clark Williams commit 967fdcadf16782edea28f4e6a8a735cd3acb7348 Author: Clark Williams Date: Tue Aug 3 12:36:21 2010 -0500 append rather than insert umount of /proc/filesystems (BZ# 620825) since the umount commands are reversed before being executed, just append the umount of /proc/filesystems in the selinux plugin so that it will happen in the correct order. Signed-off-by: Clark Williams commit 068cc32d78c26372bed383f1fbb7c4851e10166d Author: Clark Williams Date: Mon Aug 2 16:30:43 2010 -0500 Modified Makefile.am to conditionally set RPMBUILD macro If /usr/bin/rpmbuild-md5 exists, then use it, otherwise use rpmbuild. This helps when testing older distro configs such as for el4 and el5 Signed-off-by: Clark Williams commit dcf501d3adbbb36450454485eb12dda70cd7b7c6 Author: Clark Williams Date: Fri Jul 30 17:12:42 2010 -0500 versio bump to mock-1.1.2 Signed-off-by: Clark Williams commit d400f8d92d8d92dc1979708fb7841cdcbd2cd993 Author: Clark Williams Date: Fri Jul 30 16:58:19 2010 -0500 moved releasetests.sh from docs directory to tests Signed-off-by: Clark Williams commit 92752aaed2f961677fce673f22b02f49f2140974 Author: Clark Williams Date: Fri Jul 30 16:57:31 2010 -0500 deleted testing files from docs dir (moved to tests dir) Signed-off-by: Clark Williams commit b21b3348bfdef0145ade83158f90d4206d46397e Author: Clark Williams Date: Fri Jul 30 16:57:04 2010 -0500 added secondary arch config files Signed-off-by: Clark Williams commit 0aac2d3d8804271eaca33f93650b04f1bd8b249c Author: Jan Vcelak Date: Fri Jul 30 16:14:55 2010 -0500 add selinux plugin This patch adds an selinux plugin that sets up an environment with selinux turned *off* in the build chroot. How does this work? From the author's description: It is done the same as the patch sent by Thomas Liu in bz 614440 does. Actually, this proceeding was suggested by Dan Walsh in bz 573111. 1.) Fake /proc/filesystems is created in conf["cachedir"]. It includes the same content as the same file in host environment, except line with selinuxfs. This file is bind mounted into build environment. 2.) Option '--setopt=tsflags=nocontext' is added to yum commands. This is done by wrapping mock.util.do with _selinuxDoYum in "preyum" hook. This function just adds the option and passes the command to original mock.util.do function. The wrapping is removed in "postyum" hook. I didn't find cleaner method, without modifying main code. Signed-off-by: Clark Williams commit ca78692e0f1b3a0401db6f8e64a9bdd282229568 Merge: 2eb48d0 40f525d Author: Clark Williams Date: Fri Jul 30 14:03:55 2010 -0500 Merge remote branch 'origin/master' into work commit 2eb48d066ec3144b9e564c2d2ad1c445706aa112 Author: Kalev Lember Date: Fri Jul 30 11:51:14 2010 -0500 patch that allows specifying max tmpfs size to tmpfs plugin Add a 'max_fs_size' parameter to the tmpfs plugin that allows specification of sizes greater than default (50% of RAM). Signed-off-by: Clark Williams commit 40f525d070d8185111159b7de0f6815d3ae09879 Author: Jesse Keating Date: Fri Jul 30 09:25:06 2010 -0700 Add F14 mock configs commit b3b1ede4f16aa7c20cac8b91f14749a0850a5e29 Author: Clark Williams Date: Tue Jul 27 14:42:01 2010 -0500 fixed indentation typo in py/mock/backend.py Signed-off-by: Clark Williams commit 5b6d32a3c920c4b8f494838361f886811af6d785 Author: Ricky Zhou Date: Tue Jul 27 14:25:04 2010 -0500 allow --sources to specify either single file or directory (BZ# 510409) Mock originally takes just a directory for the argument to --sources; expand this to allow for a single file or a directory. Signed-off-by: Clark Williams commit c2fa61517f526c1a08e1844f7107c1a898ad91b5 Author: Clark Williams Date: Fri Jul 16 10:29:28 2010 -0500 modified tests/runtests.sh to exit properly on ^c Modified trap logic in runtests.sh to exit on SIGINT Signed-off-by: Clark Williams commit a910c06304056c864380a7cb6ce7ce65b5fed3b9 Author: Clark Williams Date: Fri Jul 16 09:42:21 2010 -0500 added symlink from /proc/self/fd to /dev/fd in the chroot (BZ# 526414) Added a symlink in the chroot from /proc/self/fd to /dev/fd. Only do this for EPEL5+ and FC hosts since the 2.6.9 kernel for EPEL4 does not support this. Signed-off-by: Clark Williams commit 447cf0257b48367b23df385afc7c6504afbd4060 Author: Clark Williams Date: Fri Jul 16 08:48:47 2010 -0500 changed from referencing defaults.cfs to site-defaults.cfg (BZ# 600487) Signed-off-by: Clark Williams commit 2149d0815501d3721ccfdb8203e54a7bcb59ff32 Author: Clark Williams Date: Fri Jul 16 07:57:57 2010 -0500 moved test suite to 'tests' directory Moved test infrastructure into the tests directory and broke component tests out into individual scripts. Signed-off-by: Clark Williams commit ed9826cee13b35c1c9df2a8018459394064767ff Author: Clark Williams Date: Fri Jul 16 07:57:06 2010 -0500 fixed typo in [testing] url of epel-6-i386 config Signed-off-by: Clark Williams commit bf31eb14a38d8213492131b76217c9b16e8a82f1 Author: Dennis Gilmore Date: Thu Jul 15 16:05:27 2010 -0500 update the epel-6 mock configs to point at the beta2 mirrorlist urls Signed-off-by: Clark Williams commit b24d3aee1c80863cbb77713fea222c4242dff5ca Author: Clark Williams Date: Thu Jul 15 10:48:39 2010 -0500 added i686 architecture Added i686 architecture to arch checking logic in py/mock.py Signed-off-by: Clark Williams commit 1d62c95bcfd1997db9204bde620c05d7dc76cf31 Author: Clark Williams Date: Wed Jul 14 17:08:13 2010 -0500 deleted fedora-10 and fedora-11 configs Signed-off-by: Clark Williams commit 61f6d5b53cd097ee4a43b7cedb3bbc8fc6d1468f Author: Clark Williams Date: Wed Jul 14 17:05:16 2010 -0500 changed default config to fedora-13 and added some headers Updated to use fedora-13 for testing and added a header function to make start of new tests more visible in the test output. Signed-off-by: Clark Williams commit 4e19a85f36119b370e4b579d458450834ab8f4d6 Author: Clark Williams Date: Wed Jul 14 16:51:16 2010 -0500 fix cachefile generation filtering logic The original fix to generating a cache file without /proc, /sys, and /dev entries failed due to the --exclude=sys filtering out /usr/include/sys (a bad thing). Changed the filtering excludes to include a './' prefix to avoid that little problem. Signed-off-by: Clark Williams commit 077a09ea6bb5a0e2ac0861210f6df528f531f6f7 Author: Clark Williams Date: Wed Jul 14 13:16:17 2010 -0500 moved rpmdb clean block so that it works with --offline previous fix for rpmdb issues was under a "if online:" block. Move it out so rpmdb cleanup occurs in both cases. Signed-off-by: Clark Williams commit 4fbf9c511c34ac65d5603aeffb8cfb0cbf7e7940 Author: Clark Williams Date: Wed Jul 14 13:15:07 2010 -0500 filter out proc,sys,and dev from cache file creation Added --excludes to tar comand line to exclude proc, sys and dev files when creating root cache. Signed-off-by: Clark Williams commit 036e4e84d7594a2f799501dc3ed173f2d6ddfcc4 Author: Clark Williams Date: Wed Jul 14 13:13:23 2010 -0500 added logic to detect invalid architecture combinations (BZ# 607144) Modified py/mock.py to dectect invalid build combinations (e.g. trying to build x86_64 packages on an i386 host) and to throw an InvalidArchitecture exception when detected. Added the above exception to py/mock/execption.py Signed-off-by: Clark Williams commit 46c69a9d452ef5d8d854694d1bc1bc1ebe9971e5 Author: Clark Williams Date: Fri Jul 9 15:47:36 2010 -0500 Added description of how to add user to the mock group (BZ# 570434) added description of how a user may add themselves to the mock group to the mock man page. Signed-off-by: Clark Williams commit b86c7586c64036f69a492d4fd0415a90dced78f6 Author: Paul B. Schroeder Date: Fri Jul 9 14:53:39 2010 -0500 add the --scrub option for cleaning up cache (BZ# 450726) Added the command line option: --scrub=[all,chroot,cache,root-cache,c-cache,yum-cache] which allows selective cleanup of the various cache's maintained by mock (on on mock's behalf). Also added logic to umountall() to umount in reverse order of mount. Signed-off-by: Clark Williams commit 4a42b4545064141d19457bf1b1f324d35ec73f34 Author: Clark Williams Date: Fri May 14 12:59:51 2010 -0500 version bump to mock-1.1.1 commit 426b2ae54daa2d5177fd3cc17e9aab0f1576578c Author: Seth Vidal Date: Sun May 9 10:31:33 2010 +0300 yum made/makes an rpmdb cache dir in $cachedir/installed for a while things can go wrong in a specific mock case if this happened. So just nuke the installed dir and the files in it. Problem solved. commit 256f250dce17e6240bda8ddbb6aac2bd2d12e30c Author: Paul Howarth Date: Wed May 5 13:05:04 2010 -0500 Create missing directories for config_opts['files'] elements Without this fix, only files within directories pre-created as part of the chroot "skeleton" can be created using config_opts['files'], as the attempt to create the file fails with "No such file or directory". This patch allows for creation of files in arbitrary directories. Signed-off-by: Clark Williams (cherry picked from commit 0c4254573261bd1c9144b9fd03693572eb3ba036) commit 78cce7c8b9d299367c7f8d8e23a63ca777a90c26 Author: Clark Williams Date: Wed May 5 12:36:59 2010 -0500 correct mispelling of sqlite extension in yum_cache.py Yum uses .sqlite files, but the plugin was looking for .sqllite. Remove one 'l'. Reported-by: Seth Vidal Signed-off-by: Clark Williams commit 2a76bf8c3f47280b8c4449f32c018cbb7702d579 Merge: 5346d2c c1d13d4 Author: Clark Williams Date: Wed May 5 12:35:37 2010 -0500 Merge branch 'master' into work commit 5346d2ca19c9635549945d60560f11356750b4f2 Author: Dennis Gilmore Date: Thu Apr 29 21:37:58 2010 +0000 initail epel-6 configs pointing at beta bits (cherry picked from commit c16c8a554d0b581b216789fa58d5ab178b055e06) commit a053a27611ad767e32fa3d839e3e82d79b777f6b Author: Dennis Gilmore Date: Thu Apr 29 21:19:53 2010 +0000 remove the buildsys-build.spec file. its long stopped being the way to do things (cherry picked from commit 7dcc70f1171d9db749b4b376de3159a2e7b9f17e) commit c1d13d46cb396bc0b1ae2dd20d0b076a0ff95e30 Author: Ville Skyttä Date: Sun Apr 25 21:59:13 2010 +0300 Check SELinux state from /selinux/enforce instead of /usr/sbin/getenforce. Cleans up an error message when getenforce is not installed, and fixes wrong outcome from selinuxEnabled() when SELinux is additionally disabled. commit f069790bf1c182e72f29fdc63d0efc62e6ec9d68 Author: Ville Skyttä Date: Tue Mar 30 23:37:28 2010 +0300 Set syslog ident to mock and disable syslog in yum configs (BZ# 560401). Requires yum > 3.2.27 to work, shouldn't hurt with other versions. commit 0c2476350628cd7fca117d591eed13708f949062 Author: Ville Skyttä Date: Tue Mar 30 20:34:35 2010 +0300 Trivial root completion cleanup. commit 368159758a815ef1bcb28f4aaa60c90b12200829 Merge: 8dc4128 0d8e37c Author: Clark Williams Date: Wed Mar 24 09:54:40 2010 -0500 Merge remote branch 'origin/master' into work commit 8dc4128f63dcfbd0b4e40f1f3300b52e7db409f2 Author: Clark Williams Date: Tue Mar 23 16:49:32 2010 -0500 updated docs/release-instructions.txt to reflect 1.0 and 1.1 structure Updated to show that mock-1.0 is for pre-F-13 and EL-5 while mock-1.1 and beyond are for F-13+ and EL-6. Signed-off-by: Clark Williams commit 0d8e37c7aab1775889cec92c33e58df8a74af675 Author: Ville Skyttä Date: Tue Mar 23 23:47:42 2010 +0200 Use pigz for gzipping by default (BZ# 570418). commit f6119edec00442368f2686e5f450bb53e0925fd6 Author: Ville Skyttä Date: Mon Mar 22 22:48:37 2010 +0200 Make --help etc work for non-mock users. commit 0c94710f4297235a76b96f0543c4b24790b75764 Author: Ville Skyttä Date: Sun Mar 21 23:17:04 2010 +0200 Move bash completion to etc/bash_completion.d. commit 88a09f1471c8e2f0162ae433f09576d9cba72171 Author: Ville Skyttä Date: Sun Mar 21 23:14:05 2010 +0200 Convert to Unix linefeeds (BZ# 553326). commit 7c704210cd698c6f374effac4fad2a61780f51d1 Author: Ville Skyttä Date: Sat Mar 20 22:36:23 2010 +0200 Add bash completion. commit 7ac10adcaa0f23900baa57d9cfc0f4348aad47ac Author: Ville Skyttä Date: Sat Mar 20 22:33:50 2010 +0200 Include contrib/ in dist. commit 96884f1bb7659b2c9e1bafa0923e93f483e19296 Author: Ville Skyttä Date: Sat Mar 20 12:59:26 2010 +0200 Clean up unused imports. commit 544adda55c93d0c718430093619253dab1a4d58d Author: Clark Williams Date: Thu Mar 18 12:19:26 2010 -0500 add section on being in the mock group to mock.1 We don't explicitly state anywhere that mock should not be run as root, but as a regular user in the mock group. Fix that by adding a small paragraph in the mock man page. Signed-off-by: Clark Williams commit b7289638294f77fdbc6e8476b86f9e3d4278e1ae Author: Ville Skyttä Date: Tue Jul 14 19:48:42 2009 +0300 Make --with and --without set same macro values as rpmbuild does. commit fb40c3459d88f9c283fca3575b06cad9430954d9 Author: Jesse Keating Date: Thu Mar 11 14:54:51 2010 -0800 Prep for release commit c668028349fa1c3d6bf2ad9a309f95691e1900b1 Author: Jesse Keating Date: Thu Mar 11 14:46:01 2010 -0800 Make createrepo disabled by default commit b20ae0ba052618a6a8f58ea800f6e008f8d015b8 Author: Jesse Keating Date: Thu Mar 11 14:42:42 2010 -0800 make createrepo command an option (skvidal) commit d490c8eba24b5be4785316fca5f2c9c724e990f7 Author: Jesse Keating Date: Thu Mar 11 14:19:58 2010 -0800 Revert "Revert "add configuration option to run createrepo on result rpms"" This reverts commit bc678aba383d1a6ad4ffd884ca21aa4058856e86. Revert the revert, wheee! This is appropriate for 1.1 moving forward. commit bc678aba383d1a6ad4ffd884ca21aa4058856e86 Author: Jesse Keating Date: Thu Mar 11 13:57:22 2010 -0800 Revert "add configuration option to run createrepo on result rpms" This reverts commit 716d41a0090047c3e943d102537b87d86fdcbe88. We've decided to revert this feature on the 1.0.x series. We'll add it back for 1.1 commit a087ff5ed320edd44f8c1d6cf3f56f7cd942e3ac Author: Jesse Keating Date: Thu Mar 11 13:36:10 2010 -0800 Revert "Use -N flag with useradd, but not in EPEL #495734" This reverts commit e99adc9492ab1087018c630f68f75ebe79f56a76. -n still works on Fedora, and trying to override -N with -n in epel configs fails for things like koji generated configs. Falling back to -n until that stops working for us. commit 3274fe601b27828dcfeaa733d4a8eb0c26fda534 Author: Clark Williams Date: Fri Feb 19 19:23:12 2010 -0600 version bump to 1.0.6 Signed-off-by: Clark Williams commit b37d385e0f4e41b27a413162c0404e588724743f Author: Clark Williams Date: Fri Feb 19 17:01:14 2010 -0600 add utility function to detect SELinux status and use it Add a utility function selinuxEnabled() that returns true if SELinux is enabled on the host and false otherwise. Use this in _setupDev() method of the Root object to avoid shelling out unnecessarily to 'chcon'. Signed-off-by: Clark Williams commit 553470d25de81387086e7a8ce2a107d25c7968e9 Author: Clark Williams Date: Fri Feb 19 16:59:50 2010 -0600 add conditional require of python-hashlib for EL5 New Fedora repositories require code from python-hashlib so require that if the disto being built is EL5 Signed-off-by: Clark Williams commit 8619e0e6c7f9637c6ef3348a6e5e5b23ed1a416b Author: Clark Williams Date: Thu Feb 18 12:50:19 2010 -0600 version bump to 1.0.5 Signed-off-by: Clark Williams commit 060c59e4e511200169d78ba00d8e615c884fa21b Author: Jesse Keating Date: Wed Feb 17 07:28:37 2010 -0800 Add Fedora 13 configs commit e99adc9492ab1087018c630f68f75ebe79f56a76 Author: Jesse Keating Date: Tue Dec 22 12:33:06 2009 -0800 Use -N flag with useradd, but not in EPEL #495734 EL doesn't support -N, but uses -n instead. So use -N by default, but in the EL configs revert back to -n. commit d46950b9e233de718c5231600f8e3350e9da8626 Author: Clark Williams Date: Wed Feb 10 15:58:51 2010 -0600 version bump to 1.0.4 Signed-off-by: Clark Williams commit 716d41a0090047c3e943d102537b87d86fdcbe88 Author: Seth Vidal Date: Wed Feb 10 15:51:08 2010 -0600 add configuration option to run createrepo on result rpms Added patch from Seth Vidal to automatically run createrepo on the generated rpms Signed-off-by: Seth Vidal Signed-off-by: Clark Williams commit 4f049ba3ba1964477e078f8799d28e92c9fb2e6c Author: Clark Williams Date: Mon Jan 18 16:31:47 2010 -0600 version bump to 1.0.3 commit c1168d3fee69207c71201270ce3dac734ceb23a2 Author: Clark Williams Date: Mon Jan 18 14:03:18 2010 -0600 add --unpriv logic to --shell Add logic to run with unprivleged uid:gid in interactive chroot shell. (BZ# 522505) Signed-off-by: Clark Williams commit a0dde91ac38d1fa2d050668e09bb0b9c46e3df77 Author: Clark Williams Date: Wed Dec 23 16:01:06 2009 -0600 handle distro differences for /dev/pts in chroot EPEL distros are older and have different behavior of the /dev/pts filesystem than newer kernels in Fedora. Deal with that when setting up devices. Signed-off-by: Clark Williams commit d08342f46d8169b1447839adf2a9dbdecb9608d5 Author: Clark Williams Date: Wed Dec 23 14:21:32 2009 -0600 version bump to 1.0.2 Signed-off-by: Clark Williams commit fb6f1560de7cd9acbb70d9b6edbfca3d97c49a63 Author: Clark Williams Date: Wed Dec 23 12:43:03 2009 -0600 add IPv6 localhost entry to /etc/hosts and fix build issue Add a default IPv6 entry for BZ545435, to fix failure in curl test suite. In addition, remove the result of gethostname(), since this causes koji to insert 'localhost' into rpms Signed-off-by: Clark Williams commit 372f39c05545f9d3333a5be26d97100dc400b178 Author: Clark Williams Date: Wed Nov 25 23:01:09 2009 -0600 version bump to 1.0.1 commit 6bbecd75ebd1d9c484387f2a77443205bfb34b6f Author: Clark Williams Date: Wed Nov 25 15:45:54 2009 -0600 fix intermittent problems generating root cache tarball (BZ# 540997) Patch submitted by Paul Howarth to prevent race condition when creating root cache tarballs and to remove partial tarballs on error. Signed-off-by: Clark Williams CC: Paul Howarth commit f7b4f6cb7ff4330ce7359d1036a771363837d046 Author: Clark Williams Date: Mon Nov 23 09:59:54 2009 -0600 version bump to 1.0.0 Signed-off-by: Clark Williams commit 9601a606d7f9097d42db104f54d843e2b3fc8b08 Author: Clark Williams Date: Mon Nov 23 09:36:15 2009 -0600 deleted fedora-9-*.cfg files Deleted F9 configs since F12 released Signed-off-by: Clark Williams commit 57fa3712cb4801e37c7a72fc82e86937f311c89e Author: Clark Williams Date: Mon Nov 23 08:47:15 2009 -0600 reworked devpts handling {BZ 510183} changed setup of devpts inside chroot so that /dev/ptmx is a symlink to /dev/pty/ptmx and that it's mounted with all read/write permissions so that pty's are usable inside the chroot. Also called devSetup when running interactive shell, so that shell chroot matches build chroot environment. Signed-off-by: Clark Williams commit 2122aa41ad7376a3409fc180c5a158983eebde7a Author: Clark Williams Date: Sun Nov 22 14:23:29 2009 -0600 added reminder to do EPEL releases to checklist commit 18aeb5b777522236302916abefe22b89431383d5 Author: Clark Williams Date: Mon Nov 16 16:16:51 2009 -0600 version bump to 0.9.20 Added autoconf/automake mojo to choose rpmbuild-md5 if available Signed-off-by: Clark Williams commit 725e8dd67a14cdec821dbd74df4467d9a76558c7 Author: Clark Williams Date: Tue Aug 11 16:58:49 2009 -0500 conditionalize import of uuid package and avoid dependent code if import fails (as it will on RHEL5) commit db7deeb7ac09639ad8cf25011e10b4845ab0e3dd Author: Jesse Keating Date: Thu Nov 5 10:20:27 2009 -0800 Version bump commit 094ab8e49a03d19cc2abfcfb1a7186e11186e0c8 Author: Jesse Keating Date: Thu Nov 5 10:18:46 2009 -0800 Fix the target arch for F12/rawhide i386 commit 83532dbb65d8bed3698adb33a0e4cc9e60f97537 Author: Jesse Keating Date: Thu Nov 5 08:42:50 2009 -0800 Version bump commit 3c28cbb6a654e444c39899ec89129189c4bb792a Author: Jesse Keating Date: Thu Nov 5 08:32:41 2009 -0800 Add new config files for Fedora 12 commit 0b76f7018b1381e34b0d2ab559acc52a1d89dc57 Author: Jesse Keating Date: Mon Oct 26 16:26:09 2009 -0700 Update rawhide configs to F13 commit 46b4937a705eb1f6de3bc079ec7dd924811c8f3a Author: Jesse Keating Date: Thu Sep 10 16:22:46 2009 -0700 Add patch cleaning up mock configs for epel (dgilmore) commit 587dfab985dde4ef21fbfd53da52dcfbb70cbdfd Author: Jesse Keating Date: Thu Sep 10 16:18:55 2009 -0700 Use the new location for koji buildroot repos commit 3bc5fb958deb809fc04d6a74ce6688e093f5831a Author: Jesse Keating Date: Tue Aug 11 14:46:31 2009 -0700 Don't automatically update the chroot in a --no-clean scenario This causes largely unnecessary yum runs and delays builds. The new behavior would just skip the yum call all together, unless the chroot was cleaned, in which case the setup command is called. commit 32ed5086e17f6a2322aa742094da0db2c10b348c Author: Clark Williams Date: Wed Jul 8 17:34:28 2009 -0500 version bump to 0.9.17 commit f4f9697962b07b16ff73b4e881e1c05b8b47c744 Author: Clark Williams Date: Wed Jul 8 17:34:13 2009 -0500 update mock.spec.in changelog section commit 67c8dd45f3a4c18fb2e4da03880b7bd87d326a6b Author: Clark Williams Date: Wed Jul 8 17:21:05 2009 -0500 added step to update docs/runtests.sh to use current config commit 37c2632237183ab8e2b09737f1c194de23e29227 Author: Clark Williams Date: Wed Jul 8 17:20:24 2009 -0500 updated to use fedora-10-x86_64 as test config commit 33f7d91ac5cf6897b250bd4fce4ed63945844a23 Author: Clark Williams Date: Wed Jul 8 16:49:51 2009 -0500 patch from Levente Farkas (lfarkas@lfarkas.org) to fix excludes for EPEL 5 on x86_64. BZ# 500617 Signed-off-by: Clark Williams commit 08f7f800ae03b0b873e89c56c64906ca1cac829d Author: Clark Williams Date: Wed Jul 8 14:40:51 2009 -0500 fixed stupid typo in last update Signed-off-by: Clark Williams commit cbe5e0fb94228bca7d1686160f3f43d77780ea95 Author: Clark Williams Date: Wed Jul 8 14:36:44 2009 -0500 reworked /dev/pts mount command to lookup 'tty' group id and to use the 'newinstance' mount option if the kernel version is >= 2.6.29 Signed-off-by: Clark Williams commit dd53959146bc22d497c82ec416540af5c8427ec4 Author: Clark Williams Date: Wed Jul 8 14:14:18 2009 -0500 ignore mock-unit-test directory in .gitignore commit 1fef98d4034c22d35d3fee00d62c3ad15f930b20 Author: Clark Williams Date: Wed Jul 8 14:13:58 2009 -0500 added contrib/mock-cleanup script commit 2046136e9f984d844021b3f8521d66a0ac056571 Author: Clark Williams Date: Wed Jul 8 12:47:14 2009 -0500 Add directory and infrastructure that will allow dbus to start in chroot. BZ# 460574 Signed-off-by: Clark Williams commit b9819b8f173d6e0cc2ac6c2e189691e1854ef2a8 Author: Clark Williams Date: Wed Jul 8 11:43:42 2009 -0500 added code to raise exception when --shell specified for uninitialized chroot. BZ# 506288 Signed-off-by: Clark Williams commit b4830cdc0facfdd1d678a16449a2e2c3120d8625 Author: Clark Williams Date: Wed Jul 8 11:37:49 2009 -0500 Patch from Jakub Jelinek (jakub@redhat.com) to fix incorrect mode and group for /dev/pts mounted in chroot (BZ# 510183) Signed-off-by: Clark Williams commit 5820029f62a09a7b69f8f471333597ad64f78cfe Merge: 1fd15eb 10ca9b2 Author: Clark Williams Date: Wed Jun 24 12:58:29 2009 -0500 Merge commit 'origin/master' into clark commit 10ca9b2d3d653ce63124f22960695082c4e33636 Author: Jesse Keating Date: Mon May 11 18:57:40 2009 -0700 Version bump commit 08c3aeedd0a0e8c3e72238b407485bc5a0eee3c0 Author: Jesse Keating Date: Mon May 11 18:54:00 2009 -0700 Build i586 on i386 for F11 and rawhide. Make rawhide dist to f12 commit 5ed31e0fa1b216c862bfe6624b3cfaf35fc9cbf6 Author: Jesse Keating Date: Mon May 11 18:49:51 2009 -0700 version update commit 4180aad171a3074aafe4ca8ab48688330ef0a689 Author: Jesse Keating Date: Mon May 11 18:44:56 2009 -0700 Add config files for F11 commit 1fd15ebc8f804ae8eb3702a753d30596cf6a8a02 Author: Lubomir Rintel Date: Sun Mar 1 22:40:19 2009 +0100 Support configurable root cache compression This patch adds configuration options that influence how is the root cache compressed: config_opts['plugin_conf']['root_cache_opts']['compress_program'] = "gzip" config_opts['plugin_conf']['root_cache_opts']['extension'] = ".gz" Motivation to do this was to be able to use lzma compression. While it takes a long time to compress, for me it was more than two times faster than gzip when decompressing. Since I only seldom regenerate the root cache while doing a lot of builds, I was able to gain a considerable speed up. commit 28027fc26d5258efe5034bb975157a3f61dfcfec Author: Lubomir Rintel Date: Fri Feb 27 03:45:48 2009 +0100 Be able to resolve hostname Copy /etc/hosts from host when resolver configuration is being copied, otherwise add hostname as a loopback alias. commit d6a3d9400521f912ce57fc3d7ac84a950ce05167 Author: Jesse Keating Date: Thu Feb 5 17:53:48 2009 -0800 Copy the hosts tzdata (/etc/localtime) into the chroot commit 1d010be6f558ba252222bd26974c79f37b236ed4 Author: Clark Williams Date: Tue Feb 3 17:19:20 2009 -0600 version bump commit fd1e796a2f8620bfa4519ad1c9249cfb2ce96053 Author: Clark Williams Date: Tue Feb 3 17:17:51 2009 -0600 updated for 0.9.14-1 changelog commit 39a835d72daa5aa93ce6ab671e0f192e9e731f6c Author: Clark Williams Date: Tue Feb 3 17:13:37 2009 -0600 modified to not try to check s390 or sparc commit d678ca9818351811c52bdc476aa7e301de3c33c4 Author: Clark Williams Date: Tue Feb 3 17:12:56 2009 -0600 removed unsupported configs commit 84054b48599ec6f9dcda8651743b2155cf2171d0 Author: Clark Williams Date: Mon Feb 2 14:04:38 2009 -0600 commented out dropPrivsForever() in copyin logic commit 8d4bdd537d8ef078b963861095d6e531df81b94a Author: Clark Williams Date: Sun Feb 1 21:55:57 2009 -0600 updated version commit 453168942081b2d073504016fe4d1c1be0b6ab55 Author: Mike Bonnet Date: Sun Feb 1 09:52:48 2009 -0600 buildsrpm: some additional sanity checking, and removing an unnecessary glob commit ebbe33562c7d66108ef33771cc43ce8b3f4d5583 Author: Mike Bonnet Date: Sun Feb 1 09:51:24 2009 -0600 HOME environment variable is now set globally to match chroot homedir commit 53ceb9d2a1b58291c74a4181da78731ad7c3a811 Merge: bc4dc3f 534b314 Author: Clark Williams Date: Sun Feb 1 09:49:24 2009 -0600 Merge branch 'master' into clark commit bc4dc3f77deed7b59dc872f634a13380b06a33d5 Author: Clark Williams Date: Sun Feb 1 09:41:49 2009 -0600 set HOME environment variable to be the chroot home commit 43b9b5a58bc1533c245202bde51e8f091d25b440 Merge: 9eb2dc4 fd41e6e Author: Clark Williams Date: Sun Feb 1 09:13:35 2009 -0600 Merge branch 'master' into clark commit 534b3148fd64ca6b1a8eee6dbe40bdfb61706c00 Merge: 3e9969f 305c142 Author: Michael E Brown Date: Fri Jan 23 08:26:41 2009 -0600 Merge branch 'buildsrpm' * buildsrpm: unlink->rmdir another srpm -> spec change in buildsrpm. add state for building srpm. cant use srpm var, use spec file instead. its ofr info only. initial work to copy spec/sources and build srpm. commit fd41e6e363e0a08ba1f71670ad9a1206b7982ed0 Merge: 490dc2a 3e9969f Author: Clark Williams Date: Thu Jan 8 14:51:32 2009 -0600 Merge branch 'master' of git+ssh://jcwillia@git.fedoraproject.org/git/hosted/mock commit 305c142babcbc5150b716b38e63cd8f9de6f4ef7 Author: Michael E Brown Date: Thu Jan 8 14:37:39 2009 -0600 unlink->rmdir commit 4796f583735f291d1314a23223423354f51dc6a5 Author: Michael E Brown Date: Thu Jan 8 14:35:58 2009 -0600 another srpm -> spec change in buildsrpm. add state for building srpm. commit e7a3dd309ae0777ae46b838912087cadd2528e57 Author: Michael E Brown Date: Thu Jan 8 14:25:03 2009 -0600 cant use srpm var, use spec file instead. its ofr info only. commit 6ed8d50169bb513b419e1a6bcc5092cbf15b5497 Author: Michael E Brown Date: Thu Jan 8 14:05:35 2009 -0600 initial work to copy spec/sources and build srpm. commit 490dc2a043d940602ad1679cd3f8e075fc35a636 Merge: b2591d4 a9c9f08 Author: Clark Williams Date: Thu Jan 8 13:19:26 2009 -0600 Merge branch 'master' of git+ssh://jcwillia@git.fedoraproject.org/git/hosted/mock commit 3e9969f8c50b85f8380c3fe00155ae5b9970fac2 Merge: a9c9f08 3eaddeb Author: Michael E Brown Date: Wed Jan 7 18:19:43 2009 -0600 Merge branch 'fix-resultdir-not-accessible' * fix-resultdir-not-accessible: add new exception for result dir not being accessible and print nice friendly error message. commit a9c9f083e197a9ffe83003230b635730af66e3ba Author: Todd Zullinger Date: Wed Jan 7 18:59:21 2009 -0500 Fix git log command used for ChangeLog and AUTHORS The git-* commands are not in the PATH by default with git >= 1.6.0. Signed-off-by: Todd Zullinger commit 324ef3f812b15dfe4fc552f8962020f4ba0a8e35 Author: Michael E Brown Date: Wed Jan 7 14:53:19 2009 -0600 add configs from dgilmore for sparc, s390 commit d224591a27ae6b180a514d385bce304b0a2ea9a1 Author: Todd Zullinger Date: Sun Dec 21 11:50:29 2008 -0500 Don't disable ccache on epel-5, it is available Signed-off-by: Todd Zullinger commit b2591d422f522c27230eeb13011363f50842c1fb Author: Clark Williams Date: Fri Dec 19 15:58:52 2008 -0600 removed import of popen2 from py/mock/util.py (gets rid of deprecated warning) commit 78cd2d318fb16777db57af335c2e82db3c06c3f7 Author: Clark Williams Date: Fri Dec 19 15:58:06 2008 -0600 added version variable; added Mock Version banner to all logs commit d0bbbdb28ab908e95437e7a2ca5b68cdb5634030 Author: Clark Williams Date: Fri Dec 19 15:57:19 2008 -0600 added version key to config options; moved cache_topdir to /var/cache/mock; removed trailing slash from basedir commit b8455b3512dbe240c3e90aa0cae30c5db2af4121 Author: Clark Williams Date: Fri Dec 19 15:56:04 2008 -0600 modified mock.spec.in to move cache dir from /var/lib/mock/cache to /var/cache/mock commit 7adc34747090750c13e0b19090ba1cdcf4f27f0e Author: Clark Williams Date: Fri Dec 19 15:55:06 2008 -0600 added comment to etc/mock/site-defaults.cfg which clarify mode and group ownership requirements for basdir and cache_topdir commit e1595d387132396500de2c961d4c2123fc5bc191 Author: Clark Williams Date: Fri Dec 19 15:53:58 2008 -0600 modified .gitignore to ignore generated files commit 3eaddeb432b8755345f50acaf370be9146eb551e Author: Michael E Brown Date: Tue Nov 18 17:29:02 2008 -0600 add new exception for result dir not being accessible and print nice friendly error message. commit 9eb2dc48fb1097416a42fe4835274b9c4d8a9ad9 Author: Mike McLean Date: Tue Nov 11 16:49:25 2008 -0600 Signed-off-by: Mike McLean commit f361fde09b4063026dc1e644511db3041dec275d Author: Jesse Keating Date: Thu Nov 6 13:56:52 2008 -0800 version bump commit bc45e9e246754acf4bbb979b06302951d058dbc1 Author: Jesse Keating Date: Thu Nov 6 13:56:15 2008 -0800 Add configs for Fedora 10 commit f5c6e757ef7d4e0e0fe150d70b3415de872cc8a0 Author: Clark Williams Date: Wed Oct 15 12:21:32 2008 -0500 version bump commit 9ebedb498b456e2b9db597e147411404d0d6b5e8 Author: Clark Williams Date: Wed Oct 15 12:15:37 2008 -0500 updated release instructions commit 85a6358a68af882b9fcc094eb9b056278f69ffd8 Author: Clark Williams Date: Wed Oct 15 10:16:21 2008 -0500 added panu's fix for strange rpm behavior commit d00b0fef2c083566719257d95cb6583ac44b5c0f Author: Mike McLean Date: Tue Oct 14 16:10:56 2008 -0400 internal setarch support for s390/s390x Signed-off-by: Mike McLean commit 8e30deeff935c241d48d5b9c3bf36acf2b0df178 Author: Jesse Keating Date: Mon Sep 29 12:02:07 2008 -0700 Refer to the .newkey location of current Fedora 8/9 updates. commit f22b7b99b6301f9cec00465fe6ae3e6cfd7f97e3 Author: Clark Williams Date: Thu Sep 4 16:59:26 2008 -0500 updated the specfile changelog commit 57250ead13d31df01fd88bca9cc09d2641e88ac9 Merge: a04b047 41fd46e Author: Clark Williams Date: Thu Sep 4 14:35:12 2008 -0500 Merge branch 'master' of git+ssh://jcwillia@git.fedoraproject.org/git/hosted/mock commit a04b047476ac52e151045dcd57634afd8b8f4a10 Author: Clark Williams Date: Thu Sep 4 14:31:23 2008 -0500 version bump commit 60bd2006a1906cc6fef8ecc6c79ecbb4315f2656 Author: Clark Williams Date: Thu Sep 4 14:29:54 2008 -0500 turn off tmpfs plugin for epel-4-x86_64 commit d4dd6652c28dfb72d8487df8ce1ddd3253f82067 Author: Clark Williams Date: Thu Sep 4 14:29:34 2008 -0500 avoid using tmpfs plugin for epel-4-x86_64 test commit 41fd46ee0ce8eb017f313f29c2aad8264abb77aa Author: Clark Williams Date: Thu Sep 4 09:11:09 2008 -0500 dealt with rawhide autotools changes commit d94d494073ff9bbee3f44a1d166af31e87c0ac8c Author: Clark Williams Date: Fri Aug 29 14:55:34 2008 -0500 workaround new rpm issues by deleting rpmdb temp files after unpacking root cache commit 349aaca37116efef59fd559eba1e574e990a8c1b Author: Clark Williams Date: Fri Aug 29 14:54:53 2008 -0500 create BUILDROOT dir required by new rpmbuild commit 7930a570b9e9eaa8eb71922e47e7f675b1b73f56 Author: Jesse Keating Date: Tue May 20 10:56:07 2008 -0400 Release bump commit 9309db14e0b28bb4b0c0cc5aa1350ff4116c5a55 Author: Jesse Keating Date: Tue May 20 10:55:58 2008 -0400 Add epel-testing repos commit 752c25f0a7d80a3705624946779d805ff352675b Merge: bc8a3bc 7ab8dfe Author: Jesse Keating Date: Tue May 20 10:41:20 2008 -0400 Merge branch 'master' of ssh://git.fedorahosted.org/git/mock commit 7ab8dfe62ad84ba9426a1cbf17a3d967278e23d9 Author: Clark Williams Date: Fri May 16 15:01:27 2008 -0500 added fix for building F-8 mock commit 17a92823ceacc320568199fd2d8b4eff2cb1536b Merge: 5b5662b 9afac0b Author: Clark Williams Date: Fri Apr 25 14:12:13 2008 -0500 Merge branch 'master' of git+ssh://jcwillia@git.fedoraproject.org/git/hosted/mock commit bc8a3bcd9a989ef94dbc79d571b840df1c9902f7 Author: Jesse Keating Date: Tue Apr 22 16:55:52 2008 -0400 Prep for release. commit 9afac0bf32c6bf7b80c56c5444c4a3c9462ae2c2 Author: Jesse Keating Date: Tue Apr 22 16:45:49 2008 -0400 Add F9 config files, prepare rawhide files for F10, comment out multilib excludes Multilib excludes are no longer needed with Fedora 9+ as yum multilib policy changed. commit 5b5662b02a1d82148beaeae3fe4a8fa2bcf55ba2 Merge: c5dfce5 e070277 Author: Clark Williams Date: Mon Apr 14 11:02:10 2008 -0500 Merge branch 'master' of git+ssh://jcwillia@git.fedoraproject.org/git/hosted/mock commit e070277073e8bf8bf4f43588de1a1c361fd4230c Merge: b9313a1 6146496 Author: Michael E Brown Date: Mon Mar 31 17:35:31 2008 -0500 Merge branch 'master' of ssh://mebrown@git.fedorahosted.org/git/mock * 'master' of ssh://mebrown@git.fedorahosted.org/git/mock: version bump Update the spec changelog with interesting changes Update the spec file with compat symlinks for devel/rawhide. Move "devel" to "rawhide" to match current Fedora naming schemes. commit b9313a12c37362126128284aa31f27ee47b2e80c Author: Michael E Brown Date: Mon Mar 31 17:34:52 2008 -0500 fix typo which causes exception in command-timeout code (which was trying to raise exception) commit 6146496365c35ace48025a5f9511442aee20e63a Author: Jesse Keating Date: Mon Mar 31 17:58:48 2008 -0400 version bump commit 4d4ed483e8e88037f87de9aba68572a7af9c2b60 Author: Jesse Keating Date: Mon Mar 31 16:37:28 2008 -0400 Update the spec changelog with interesting changes commit 567a45fbc4b8f5f4fa3d37e23ac66c8a478389ec Author: Jesse Keating Date: Mon Mar 31 14:30:16 2008 -0400 Update the spec file with compat symlinks for devel/rawhide. commit 7d4f2e7fb7694afb9a6e6d62b0fcbfdc2e193353 Author: Jesse Keating Date: Mon Mar 31 14:26:21 2008 -0400 Move "devel" to "rawhide" to match current Fedora naming schemes. commit 97d9d11d4c68648efe347049afe68e538d250f56 Author: Michael E Brown Date: Sun Mar 9 12:09:00 2008 -0500 add support for shm commit 94d02f3cf940d0e9e1f23ec0e8845f33105fc8fc Author: Michael E Brown Date: Fri Mar 7 21:15:44 2008 -0600 handle idiots with grace and poise. commit c5dfce5f71df354aa87cd19cdec33288ef85c7c1 Author: Clark Williams Date: Fri Mar 7 16:25:57 2008 -0600 changed default chroot_setup_cmd to be "groupinstall" commit 4209ee74efad6c9554ffb22e18c27f19bf9b793b Author: Jesse Keating Date: Tue Mar 4 16:35:22 2008 -0500 Point to the correct static-repo for development stuff. Ooops. commit 8595f8906cadccd5787679044409c50fc0746caf Author: Jesse Keating Date: Tue Mar 4 16:01:05 2008 -0500 For Fedora 8 and higher, use priority failover method, as mirror manager gives you back site specific mirrors in priority order. Also set a cost for koji repos to avoid downloading all from there. commit 4299c5e45f12717b81caf6bd2c82a4ac6853d360 Author: Michael E Brown Date: Tue Mar 4 13:05:45 2008 -0600 log child return code for debugging. commit c0be8cccf2d6bfe48b33d05cb496588908300f39 Author: Michael E Brown Date: Tue Mar 4 13:05:34 2008 -0600 fixup URL for fedorahosted path because rpmbuild chokes with ?format=raw commit 8a37cad09df6b41032e5d1b79995b1c391bb2882 Author: Clark Williams Date: Fri Feb 29 16:27:05 2008 -0600 modify rootcache logic to rebuild cache if config files have newer timestamp commit 62b7b91c0f1d71f903f7bd81403a29f8d943bbaf Merge: 3d37db2 fc75532 Author: Michael E Brown Date: Wed Feb 13 15:07:24 2008 -0600 Merge ssh://mock/var/ftp/pub/Applications/git/mock * ssh://mock/var/ftp/pub/Applications/git/mock: fixup exclude= line (AGAIN) to exclude numeric packages [0-9] commit fc7553243d86174302a4244f7140dda2267d655a Merge: c7debfc 1819aa2 Author: Michael E Brown Date: Wed Feb 13 15:08:50 2008 -0600 Merge branch 'master' of /var/ftp/pub/Applications/git/mock * 'master' of /var/ftp/pub/Applications/git/mock: version bump add fcntl import commit c7debfcd9b356206b855a7ee9eb3bd55a9786559 Author: Michael E Brown Date: Wed Feb 13 15:08:43 2008 -0600 fixup exclude= line (AGAIN) to exclude numeric packages [0-9] commit 3d37db24b63f0ab8c9e18edbac7695513c850ee2 Author: Michael E Brown Date: Thu Jan 31 19:54:26 2008 -0600 fixup Source URL path for tarball in spec file. commit 6b89c8c0feb17d17d671b8937eb64baaf9507022 Author: Michael E Brown Date: Thu Jan 31 19:06:26 2008 -0600 add changelog. commit 1819aa2974e8752e8e82b606d3ea57b9a2afd268 Author: Michael E Brown Date: Thu Jan 31 18:31:33 2008 -0600 version bump commit 5fb7dc9cc1d6585fcc7cb066cc9d68e7a1f58310 Author: Michael E Brown Date: Wed Jan 30 00:03:37 2008 -0600 add fcntl import commit 5ff9b7b2da07756df55e56a0ef58e21b66d6ee2b Merge: f1f47ae 56957fc Author: Michael E Brown Date: Tue Jan 29 23:48:50 2008 -0600 Merge ssh://mock/var/ftp/pub/Applications/git/mock * ssh://mock/var/ftp/pub/Applications/git/mock: updates to mock.util.do(): 1) nonblocking read, 2) dont leave zombies (waitpid). we now run /etc/profile, so no need to manually do ccache stuff. use makeChrootPath() functionality rather than obscure string interpolation commit 56957fc4b42272bf900daf00649e1acbf94378f4 Author: Michael E Brown Date: Tue Jan 29 23:47:47 2008 -0600 updates to mock.util.do(): 1) nonblocking read, 2) dont leave zombies (waitpid). commit f1f47ae2bb7770c6ed072f779763c275a18f9828 Author: Mike Bonnet Date: Thu Jan 24 17:16:46 2008 -0500 set the current working directory in the chroot This patch allows you to set the current working directory (in the chroot) before running a command with --chroot. This avoids the need to pass shell snippets ('cd /some/path && /run/cmd') to mock when running a command that expects to executed from a certain directory. It's useful when using --copyin to setup the environment before running a command. >From e4071d1d41a62ccf4461dfab958f9325edf30c97 Mon Sep 17 00:00:00 2001 From: Mike Bonnet Date: Thu, 24 Jan 2008 17:09:06 -0500 Subject: [PATCH] optionally set the current working directory (in the chroot) before running command with --chroot Signed-off-by: Michael E Brown commit 0fd7dd4e63e09671bb816510b3fde1555814e085 Author: Mike Bonnet Date: Thu Jan 24 16:07:51 2008 -0500 add --unpriv option to drop privileges when running a command with --chroot On Thu, 2008-01-24 at 16:04 -0500, Mike Bonnet wrote: > On Thu, 2008-01-24 at 15:42 -0500, Mike Bonnet wrote: > > This patch adds a --unpriv option that will cause privileges to be > > dropped before running a command with --chroot. This can be used to > > more closely simulate the environment used when running rpmbuilds. > > Let me try that again... Ok, the attachments are getting stripped off for some reason, trying inline... >From 85e14d38aec32cf20d7f2bbdc77044d41c32a0a2 Mon Sep 17 00:00:00 2001 From: Mike Bonnet Date: Thu, 24 Jan 2008 15:37:15 -0500 Subject: [PATCH] optionally drop privileges when running a command with --chroot Signed-off-by: Michael E Brown commit bbc2b4dd0c6b7331ae789caabecbc5e154f96e52 Author: Michael E Brown Date: Tue Jan 22 15:59:17 2008 -0600 redo exclude= lines yet again to work around what looks like python fnmatch() bug handling [!x] and/or [^x] commit beed7f3a868c22a9c75064888c0e3f70dc3b523b Merge: 041b8da 78d6a20 Author: Michael E Brown Date: Tue Jan 22 12:32:25 2008 -0600 Merge branch 'master' of /var/ftp/pub/Applications/git/mock * 'master' of /var/ftp/pub/Applications/git/mock: get rid of one level of shell indirection where possible. revert accidental comment-out of test cleanup that I was using to debug tar problem. add back in dropped '.' to tar cvf command that is causing root cache creation to fail. Add debug logging for running commands. convert mock.util.do() to use subprocess.Popen() rather than raw fork/exec.\nThis cleans up the code considerably. Also, start reducing the places where we use a shell in the subcommand. better unit test error message. mount everything when running chroot command. updated change log added compat symlinks version bump update manpage with new site-defaults ref. the great config file rename. some manpage clarifications and arrangements. clarify info message to make it obvious that root cache is being unpacked. cleanup trailing whitespace. cleanup trailing whitespace. add ability to conditionally enable tmpfs based on minimum ram availability. add initfailed hook so tmpfs plugin can properly unmount tmpfs on failure. make sure we call postbuild hooks even on failure. commit 041b8dac4983ae69dd5f0edbc9522dce662fb798 Author: Michael E Brown Date: Tue Jan 22 12:31:50 2008 -0600 we now run /etc/profile, so no need to manually do ccache stuff. commit 78d6a209b8dfe438880e4d62a58693e33693560b Author: Michael E Brown Date: Sun Jan 20 15:09:14 2008 -0600 get rid of one level of shell indirection where possible. commit 7d45de8aa01207413b615874ba58d0239f00a92e Author: Michael E Brown Date: Sun Jan 20 14:00:47 2008 -0600 revert accidental comment-out of test cleanup that I was using to debug tar problem. commit 35eeadbb2775e99deae72f484117062f783d6f7f Author: Michael E Brown Date: Sun Jan 20 13:59:55 2008 -0600 add back in dropped '.' to tar cvf command that is causing root cache creation to fail. Add debug logging for running commands. commit 5aaa59800cae18440c1ba6caca5800e45b3ff5fa Author: Michael E Brown Date: Sun Jan 20 13:30:41 2008 -0600 convert mock.util.do() to use subprocess.Popen() rather than raw fork/exec.\nThis cleans up the code considerably. Also, start reducing the places where we use a shell in the subcommand. commit 7589279b856ae73eb26fc728a38a58edbe06d94c Author: Michael E Brown Date: Sun Jan 20 13:28:02 2008 -0600 better unit test error message. commit 3cfdea5d12f0b4923cdfa9572e58ba098b4833c6 Author: Michael E Brown Date: Fri Jan 18 15:53:33 2008 -0600 mount everything when running chroot command. commit 1688f6817747729352dad266abc93b98b678b257 Author: Clark Williams Date: Wed Jan 16 08:23:24 2008 -0600 updated change log commit 769e6ebd487b6a037ff7086bd4545b0dab850b59 Merge: b0b401f 15550d8 Author: Clark Williams Date: Wed Jan 16 08:13:38 2008 -0600 Merge branch 'master' of git+ssh://jcwillia@git.fedoraproject.org/git/hosted/mock commit b0b401f6ce5cb0e6abad29142101b9de1f7629ec Author: Clark Williams Date: Wed Jan 16 08:12:18 2008 -0600 added compat symlinks commit 9104445a6018a6ca5ae553cb3a9bdfe6eeba8b3c Author: Clark Williams Date: Wed Jan 16 08:06:53 2008 -0600 version bump commit 15550d8100caeb2be99bcf9d02349e8a1a005f4a Author: Michael E Brown Date: Tue Jan 15 15:50:22 2008 -0600 update manpage with new site-defaults ref. commit eeefafa7cf4ef012042fc46ff261b82de368a461 Author: Michael E Brown Date: Tue Jan 15 15:39:56 2008 -0600 the great config file rename. commit 8218fd159eaca75a16626e74569b7672bbd14986 Author: Michael E Brown Date: Thu Jan 10 11:41:23 2008 -0600 some manpage clarifications and arrangements. commit b5a372a5b2a682553a28161a9a5e1a6c9510f927 Author: Michael E Brown Date: Wed Jan 9 10:29:40 2008 -0600 clarify info message to make it obvious that root cache is being unpacked. commit 89fae160c04d3a84d3aa833a8a33fd39b7519dd1 Author: Michael E Brown Date: Tue Jan 8 15:54:54 2008 -0600 cleanup trailing whitespace. commit 8585acd974206ebb8a0ad14f42cefb2096cadd6f Author: Michael E Brown Date: Tue Jan 8 15:53:09 2008 -0600 cleanup trailing whitespace. commit 67628dae8b37a226cb6899ffebffd66b40e74161 Author: Michael E Brown Date: Tue Jan 8 14:54:10 2008 -0600 add ability to conditionally enable tmpfs based on minimum ram availability. commit cc889dbb4ed40909ffd6c29bc29623cfcf1a1ca5 Author: Michael E Brown Date: Tue Jan 8 13:59:05 2008 -0600 add initfailed hook so tmpfs plugin can properly unmount tmpfs on failure. make sure we call postbuild hooks even on failure. commit 5962b8ac964d56a15586e6c9e069670a5a896b6a Merge: bdf34de 552c3bb Author: Michael E Brown Date: Mon Jan 7 13:25:05 2008 -0600 Merge branch 'master' of /var/ftp/pub/Applications/git/mock * 'master' of /var/ftp/pub/Applications/git/mock: fix 'make srpm' to only build srpm and not also binary rpm. update docs for --arch and --target. commit 552c3bbe3331f5a7727010a0420d11159777ea90 Author: Michael E Brown Date: Fri Jan 4 15:10:09 2008 -0600 fix 'make srpm' to only build srpm and not also binary rpm. commit 528eac267392d8bcdec0e8e8ffcdf0bf46c9522a Author: Michael E Brown Date: Fri Jan 4 15:01:33 2008 -0600 update docs for --arch and --target. commit bdf34de8bbc25eeda69aa873e67c9fc55a7223c0 Merge: 4d3427f 4c7aa19 Author: Michael E Brown Date: Fri Jan 4 14:47:11 2008 -0600 Merge branch 'master' of /var/ftp/pub/Applications/git/mock * 'master' of /var/ftp/pub/Applications/git/mock: fix syntax error from personality move by using config_opt directly. commit 4c7aa19e68265adeb888b6bd539fbecd07d92080 Author: Michael E Brown Date: Fri Jan 4 14:47:00 2008 -0600 fix syntax error from personality move by using config_opt directly. commit 4d3427f27b094f6cced1512a48af4b87bd6811c0 Merge: aefe3d7 e964477 Author: Michael E Brown Date: Fri Jan 4 14:43:52 2008 -0600 Merge branch 'master' of /var/ftp/pub/Applications/git/mock * 'master' of /var/ftp/pub/Applications/git/mock: split up --target and --arch cmdline options. get rid of personality() calls in sub do() calls because it is set at top level now. added --print-root-path option paul howarth's request to change from -l to --login on bash invocations use the right mkdev argument Create the dev/full device, some packages use it during make check. add ia64 and alpha to personality_defs Patch from Doug Chapman Doug Chapman's ia64 personality warning fix Roland McGrath's fix for ctypes LoadLibrary on ia64 commit e964477a73d2ecb233e0e680e8c091a1f884e5a2 Author: Michael E Brown Date: Fri Jan 4 14:42:58 2008 -0600 split up --target and --arch cmdline options. commit 63d55b3e4dcb6485e1658ab846852bfc021b15cb Author: Michael E Brown Date: Fri Jan 4 14:36:49 2008 -0600 get rid of personality() calls in sub do() calls because it is set at top level now. commit fac395c0fe95db2642d26a118cfed0ed8cdc95f1 Author: Clark Williams Date: Fri Jan 4 13:43:30 2008 -0600 added --print-root-path option commit f1a50746dc4acc3f5c9558013338880c36e51be8 Author: Clark Williams Date: Fri Jan 4 12:50:47 2008 -0600 paul howarth's request to change from -l to --login on bash invocations commit 15661ac0004d08a33a05f6d23fe9d884bfbb82e2 Merge: dbbadfc 99cb911 Author: Clark Williams Date: Fri Jan 4 12:48:47 2008 -0600 Merge branch 'master' of git+ssh://jcwillia@git.fedoraproject.org/git/hosted/mock commit 99cb911d9a4c5c9f80646347fcd4352f9deafbb0 Author: Jesse Keating Date: Thu Jan 3 11:52:54 2008 -0500 use the right mkdev argument commit 326eff18721c5e95a2c94556e363d3e8beec1eca Author: Jesse Keating Date: Thu Jan 3 09:40:41 2008 -0500 Create the dev/full device, some packages use it during make check. commit dbbadfc55ee1ee38412948e6efa45934d3321a8f Merge: 8c50e6b 4edf7e2 Author: Clark Williams Date: Wed Jan 2 09:25:53 2008 -0600 Merge branch 'master' of git+ssh://jcwillia@git.fedoraproject.org/git/hosted/mock commit 4edf7e2d6935b36ab12427a56b8fbaeff3b62321 Author: Doug Chapman Date: Thu Dec 20 09:30:54 2007 -0500 add ia64 and alpha to personality_defs Patch to quiet the "Unable to find predefined setarch personality" warnings seen on ia64. I added alpha as well while I was at it. Signed-off-by: Doug Chapman ---- Signed-off-by: Michael E Brown commit 5c3372a46b5ab024390d12831feafad1251abe5b Author: Michael E Brown Date: Mon Dec 31 13:16:59 2007 -0600 Patch from Doug Chapman Fix up mock ctypes libc usage so that it doesnt directly specify libc soname, which can change on different arches. Instead use "None", which should resolve to use already-loaded global scope. -- signed off by: Michael Brown commit 8c50e6b2de9e4513792a4500f22e8397e38c6c58 Author: Clark Williams Date: Sat Dec 22 21:24:40 2007 -0600 Doug Chapman's ia64 personality warning fix commit e442736e060a944994ffa1c04fe65c7302e4ba43 Author: Clark Williams Date: Sat Dec 22 21:22:57 2007 -0600 Roland McGrath's fix for ctypes LoadLibrary on ia64 commit aefe3d7b6e7c289c84bea6865e7020b4c4637ea4 Merge: 3ae0cfc 99e36b1 Author: Michael E Brown Date: Fri Dec 21 13:41:03 2007 -0600 Merge branch 'master' of /var/ftp/pub/Applications/git/mock * 'master' of /var/ftp/pub/Applications/git/mock: /usr/sbin/mock no longer needs to be owned by group mock. remove unused debugging code. version bump and changelog fix privs for yum resolvdep, needs to be root to download addl filelists. fixup release instructions so that tags properly pushed. update changelog prior to release. bump version. add comment about making sure to fix both version defs. cleanup from unit tests if they are interrupted or end prematurely. fix resultdir for --uniqueext builds without resultdir specified. try to standardize on single-quotes for indexing hashes. we are now noarch, fix unit tests. add tmpfs plugin to installation list. requires usermode due to new userhelper stuff. fix use of tabs in spec file to make rpmlint happy. Run rpmbuild in a login shell in the chroot. commit 3ae0cfcbab2ace30d69484ef2ab267cf84176a0c Author: Michael E Brown Date: Fri Dec 21 13:40:59 2007 -0600 use makeChrootPath() functionality rather than obscure string interpolation commit 99e36b173e3fa707796a8a13e9b356e651544044 Author: Michael E Brown Date: Fri Dec 21 13:38:32 2007 -0600 /usr/sbin/mock no longer needs to be owned by group mock. commit 36f5d86a84f645cf4622069ec217848f0877c0c1 Merge: e02f5e1 e8ddd95 Author: Michael E Brown Date: Fri Dec 21 13:36:26 2007 -0600 Merge branch 'master' of ssh://mebrown@git.fedorahosted.org/git/mock commit e8ddd9506db08ecb3c9df4093d8f241223182ac6 Author: Michael E Brown Date: Thu Dec 20 22:23:34 2007 -0600 remove unused debugging code. commit e54c0769499b065d4412587f8654d32f1d26e5f9 Author: Michael E Brown Date: Thu Dec 20 21:58:33 2007 -0600 version bump and changelog commit 0c608ac26c2977e8dd74dc9c6518438c809b28ac Author: Michael E Brown Date: Thu Dec 20 16:32:58 2007 -0600 fix privs for yum resolvdep, needs to be root to download addl filelists. commit 58102c86f292e3c6ce4703e07eabbc6c0fcbf171 Author: Michael E Brown Date: Wed Dec 19 23:04:47 2007 -0600 fixup release instructions so that tags properly pushed. commit 5e2c5817033073dbb990d6a2e63e1b355ce42700 Author: Michael E Brown Date: Wed Dec 19 22:50:43 2007 -0600 update changelog prior to release. commit c66a059944ba549944ddd2205e40e508a533424f Author: Michael E Brown Date: Wed Dec 19 22:34:51 2007 -0600 bump version. add comment about making sure to fix both version defs. commit 71f510842210b922babc47260712840c799cd133 Author: Michael E Brown Date: Wed Dec 19 22:30:53 2007 -0600 cleanup from unit tests if they are interrupted or end prematurely. commit 79ad55bfcd2afbeedda8f955e484a41c01939545 Author: Michael E Brown Date: Wed Dec 19 21:44:30 2007 -0600 fix resultdir for --uniqueext builds without resultdir specified. try to standardize on single-quotes for indexing hashes. commit 50b03e60318c31224c0df9a7405751d50e8abace Author: Michael E Brown Date: Wed Dec 19 21:43:44 2007 -0600 we are now noarch, fix unit tests. commit 3b856bf60e26191921d2dce9e613b79deef9f775 Author: Michael E Brown Date: Wed Dec 19 21:43:30 2007 -0600 add tmpfs plugin to installation list. commit 5d9cda77ea5eaf6d76257dc6307bf1d1fdcb4970 Author: Michael E Brown Date: Wed Dec 19 17:06:10 2007 -0600 requires usermode due to new userhelper stuff. commit a8751165cf863c8feb5a160e142aa05d38024efa Author: Michael E Brown Date: Wed Dec 19 17:02:41 2007 -0600 fix use of tabs in spec file to make rpmlint happy. commit 7a89b9314d52b4b13fadce422ebbfb95cfb222a7 Author: Michael E Brown Date: Wed Dec 19 16:48:45 2007 -0600 Run rpmbuild in a login shell in the chroot. commit e02f5e1548e20297f2f18d8f93f464ff8f48a032 Author: Michael E Brown Date: Wed Dec 19 13:28:39 2007 -0600 set personality in mainline code so all options run under correct personality. commit 32cbdd2d00964cd7adb74de63b047a2cf7f3b5c5 Author: Michael E Brown Date: Tue Dec 18 14:44:16 2007 -0600 unmount tmpfs when done or we run into problems with clean. commit 11f7c74bf4bf79961ae4755c9200a08848b4b877 Author: Michael E Brown Date: Tue Dec 18 14:43:47 2007 -0600 add hook (currently unused) for clean. commit 67e4534d8c571dacf85fde3d6dc11d66ba61c441 Author: Michael E Brown Date: Tue Dec 18 14:33:31 2007 -0600 add unit tests for tmpfs plugin. commit 012a5f92f24d196337f120e2c0cc1f0483089928 Author: Michael E Brown Date: Tue Dec 18 14:21:46 2007 -0600 fixup typo: makeChrootPath is a method on self.rootObj. commit 0f90b968f36a9d945b77ed65bea93e764c077cb6 Author: Michael E Brown Date: Tue Dec 18 14:21:09 2007 -0600 better ordering constraints for plugin initialization. commit e65d55ea8421f573c9a7e4ab0184afdcc89f2f51 Author: Michael E Brown Date: Tue Dec 18 13:50:30 2007 -0600 add initial tmpfs plugin and default options. commit 6a0638f95c5271b069d308c5f53062aace7b4283 Author: Michael E Brown Date: Tue Dec 18 12:52:23 2007 -0600 comment out decorator for doChroot() to prevent logging build exceptions multiple times. commit 8777d77ee5ab41299c810c58852c75a9f46750b2 Author: Michael E Brown Date: Tue Dec 18 11:08:30 2007 -0600 make substs tolerant of whitespace changes. commit 626f3fb24810da09ffeaee153b405d08b0001dc2 Author: Michael E Brown Date: Tue Dec 18 11:04:09 2007 -0600 fixup bad substitution for LIBDIR. Cut-n-paste error. commit 7d2912fbd7f91d16e34a4ccac90c24104d70bb3d Author: Ville Skyttä Date: Mon Dec 17 22:47:24 2007 +0200 Make noarch. Signed-off-by: Michael E Brown commit 3def081191d7dfe8e6c9b83286cdec411b1687ff Author: Michael E Brown Date: Tue Dec 18 09:17:48 2007 -0600 small whitespace cleanups. commit 0e635a627bce9df7375764c8875d6ac387efacb4 Author: Michael E Brown Date: Tue Dec 18 09:14:31 2007 -0600 fixup distclean to remove all built rpm and unit test files. commit 5c493b00930e91436aeb1ef2e3903e3c4db2d891 Author: Michael E Brown Date: Mon Dec 17 11:08:22 2007 -0600 better fix for failing distcheck. commit 1ff8521934d1703e802478f92d10ed122fcdb4f1 Author: Michael E Brown Date: Mon Dec 17 00:40:21 2007 -0600 fix path comparison for orphanskill. commit 62fc696ad0df3c39438aa31e54766525830688a6 Author: Michael E Brown Date: Mon Dec 17 00:39:52 2007 -0600 one more releasetests fix. commit b4bb85c58267c348343f5844d23fdf5e230e71a3 Author: Michael E Brown Date: Mon Dec 17 00:21:15 2007 -0600 fix release tests. commit ad0f44c3c74bae3c020bbed280d07fefd621fe2c Author: Michael E Brown Date: Sun Dec 16 23:17:47 2007 -0600 make rootdir private (_rootdir). Use accessor in mock.py as well. commit b03c8e8a1459f01f8f6b583df3af6c6b168f82a5 Author: Michael E Brown Date: Sun Dec 16 22:35:01 2007 -0600 dont do setarch personality() call for noarch commit f35e76d882778d207c2ab73ef8bc0b7a270b142d Author: Michael E Brown Date: Sun Dec 16 22:27:17 2007 -0600 add comment to clarify usage of dist config option. commit 6882f2dbf63cf9f4d197f44c9afed2fd5966f16a Author: Michael E Brown Date: Sun Dec 16 22:22:13 2007 -0600 document --trace in cmdline help. commit ec01cc18d36138777597a68a3ddd9f7aea29e705 Merge: bc0ff1a cd12f35 Author: Michael E Brown Date: Sun Dec 16 22:11:30 2007 -0600 Merge branch 'master' of ssh://mebrown@git.fedorahosted.org/git/mock * 'master' of ssh://mebrown@git.fedorahosted.org/git/mock: more on release instructions first cut at updated release instructions fixed syntax error replaced references to rootdir with calls to makeChrootPath() replaced references to rootdir with calls to makeChrootPath() replaced references to rootdir with calls to makeChrootPath() updated changelog info added help target commit bc0ff1a2c7788e92264bb13c4706ec6a1714925f Author: Michael E Brown Date: Sun Dec 16 22:10:43 2007 -0600 document --trace. commit c9d02fffbedc34d38823ed635bc4ff21b0a21e63 Author: Ville Skyttä Date: Sun Dec 16 12:00:00 2007 +0000 Mock documentation patch The attached patch adds the following option aliases: --root for -r, -D for --define (like in rpmbuild), --target for --arch (like in rpmbuild). It also adds --verbose and --quiet and -h to the man page, and fixes a couple of other minor man page issues. Signed-off-by: Michael E Brown commit cd12f3519ffd7f0bfb01203a6980d6930c11ca23 Author: Clark Williams Date: Sun Dec 16 08:51:54 2007 -0600 more on release instructions commit 874f6f228128cb0a72a57d0b644d5ad3c8c7caea Author: Clark Williams Date: Sun Dec 16 08:48:57 2007 -0600 first cut at updated release instructions commit 0da58fadfe9367dca44785ed0459bb65dbfa14d2 Author: Clark Williams Date: Sun Dec 16 08:48:34 2007 -0600 fixed syntax error commit 64439e769bb95ff4e277deb86b1743a582dee50d Merge: 39ee6e1 184afb1 Author: Clark Williams Date: Fri Dec 14 16:34:49 2007 -0600 resolved merge conflicts commit 39ee6e19397207468751d6308e0a7895543d9733 Author: Clark Williams Date: Fri Dec 14 16:33:09 2007 -0600 replaced references to rootdir with calls to makeChrootPath() commit d4458262ddcd3d55ba7009ff3dd131947f4f01e6 Author: Clark Williams Date: Fri Dec 14 16:33:05 2007 -0600 replaced references to rootdir with calls to makeChrootPath() commit 3542beca1ed0f1d13b1bde95f338c777bbaf6ccc Author: Clark Williams Date: Fri Dec 14 16:32:57 2007 -0600 replaced references to rootdir with calls to makeChrootPath() commit 184afb1852bccc8e9d1b38dea05f30af1180f122 Author: Michael E Brown Date: Fri Dec 14 16:27:39 2007 -0600 remove uses of chroot rootdir attribute and use accessor. commit bddf95fb16486532a0eb88bc6590243e936c84c4 Author: Clark Williams Date: Fri Dec 14 16:11:05 2007 -0600 updated changelog info commit 1179491f3cd4ff9ddc7a061f39ef47ff8cf78d01 Author: Clark Williams Date: Fri Dec 14 16:10:46 2007 -0600 added help target commit 987d7c07a71dc792613f26c060efe4d354bf6891 Author: Clark Williams Date: Fri Dec 14 09:44:17 2007 -0600 removed private sublevel lablel commit f496f29335f7b22b307c6b9173d2e31af6162fd0 Merge: 6b2d14f 3ea2ef7 Author: Clark Williams Date: Thu Dec 13 17:38:52 2007 -0600 resolved merge with master commit 6b2d14f9afb39a955331f4a52a597b122f585166 Author: Clark Williams Date: Thu Dec 13 17:35:42 2007 -0600 changed more uses of .rootdir to makeChrootPath(); updated man page for --copyin and --copyout; updated plugins to use makeChrootPath(); updated releasetests.sh so that daemon tests uses --copyin commit 3ea2ef74a181a32583b3a35dae386a1701a5a89d Author: Michael E Brown Date: Thu Dec 13 16:29:46 2007 -0600 add 'make check' function to call what used to be releasetests.sh commit 1e92c25cb133e4e8d55eb837f2650587636af3ef Author: Michael E Brown Date: Thu Dec 13 15:09:52 2007 -0600 make releasetests.sh call runtests.sh using automake 'make check' target, as well as run std automake distcheck stuff. commit b9ea13ab85d0ea544e3496d57bc9c167709121f1 Author: Michael E Brown Date: Thu Dec 13 15:08:54 2007 -0600 make runtests.sh runnable from automake. commit 8fd334aef28b0846bf8872e577b8f4c56f1a2f02 Author: Michael E Brown Date: Thu Dec 13 15:07:34 2007 -0600 fix compile warning for -Wall in daemontest.c commit 772393088cd0e6169f2a21e3a3470f6ebb59d2b1 Author: Michael E Brown Date: Thu Dec 13 15:06:58 2007 -0600 rename releasetests.sh to runtests.sh to prepare for adding 'make check' function commit 076a90491cfc27c895618d950c4de828489c189c Merge: e2a3ae3 64dbe92 Author: Clark Williams Date: Thu Dec 13 15:06:16 2007 -0600 merged with latest master commit e2a3ae38691b188b56ba0bddf431a62a5f9ac182 Author: Clark Williams Date: Thu Dec 13 15:02:03 2007 -0600 added copyin/out options; added makeChrootPath() method to Root commit 64dbe925996c7f643cb9f980ac8b4fb4b6dbe1a0 Author: Michael E Brown Date: Thu Dec 13 09:31:55 2007 -0600 update changelog in spec file. commit a224c14773c38c2a9384874c7557b9ff1d05b71a Author: Michael E Brown Date: Thu Dec 13 09:22:36 2007 -0600 version bump commit b6e2d5a26ac478ce3409cab32dac704f2db61ac6 Author: Mike Bonnet Date: Wed Dec 12 18:24:40 2007 -0500 if --chroot only has one argument, pass it to doChroot() as a string instead of a list to support legacy quoting rules Signed-off-by: Michael E Brown commit 33d6db8f39e2f5a1aed9c8bc0c7e5e453d662d0c Author: Michael E Brown Date: Wed Dec 12 16:43:58 2007 -0600 enable releasetests to run from clean checked out source tree. commit 515b676081a8bc32185fda5659f186f352f94046 Author: Michael E Brown Date: Wed Dec 12 16:39:53 2007 -0600 remove trailing whitespace. commit b9662342ff2efdbe0a85bc02aa7c7ede68fc718d Author: Michael E Brown Date: Wed Dec 12 16:38:34 2007 -0600 remove buildsys-build.spec from tarball. commit 2e47f7a55091ddbcf7a2b883738ddf70aed4c2b5 Author: Michael E Brown Date: Wed Dec 12 16:38:14 2007 -0600 remove trailing whitespace. commit 7e35a8aa542afcdc2f1ea7a69bd435e75bd9c40c Author: Michael E Brown Date: Wed Dec 12 16:20:23 2007 -0600 separate out shell and chroot cmdline args. commit d16aaf3b7736e4a23e82bc455c4a09d05259a1b7 Merge: f50af0f 4761a4a Author: Michael E Brown Date: Wed Dec 12 16:05:42 2007 -0600 Merge branch 'master' of ssh://mebrown@git.fedorahosted.org/git/mock * 'master' of ssh://mebrown@git.fedorahosted.org/git/mock: fixup trailing whitespace. dont place specs into release tarball. This allows us to rev the RPM without having to have different tarball bits. remove redundant daemontest in src auto generate AUTHORS file from git. remove another dead libtool reference. remove generated autotools files from source repository. use autogen.sh to create them when compiling from git. remove generated autotools files from source repository. use autogen.sh to create them when compiling from git. remove dead code from autoconf files since we no longer compile anything. Don't provide backwards compat option for update. Add --update call, to update existing buildroot. commit f50af0f1c32a4162f48580609806e83c6c86d644 Author: Michael E Brown Date: Wed Dec 12 15:49:49 2007 -0600 fix --shell commit 4761a4a794b4e7087ce9f7eeb816ea19c32b06ac Merge: 0c2862a 95e2aed Author: Michael E Brown Date: Wed Dec 12 15:37:48 2007 -0600 merge conflicts commit 0c2862affaffc40a13f334addfb486d4747f3c73 Author: Michael E Brown Date: Wed Dec 12 15:34:56 2007 -0600 fixup trailing whitespace. commit f69c6ad134032e8d8fc4c6db33448eb2659216e7 Author: Michael E Brown Date: Wed Dec 12 14:28:26 2007 -0600 dont place specs into release tarball. This allows us to rev the RPM without having to have different tarball bits. commit aef576678411ce570001211b46537200ec53f227 Author: Michael E Brown Date: Wed Dec 12 14:09:40 2007 -0600 remove redundant daemontest in src commit 9d55bf8c6310915ce1be1b3c324690f1dee2b279 Author: Michael E Brown Date: Wed Dec 12 12:54:11 2007 -0600 auto generate AUTHORS file from git. commit 56aca787303e57536a511156d961b40a52c361dd Author: Michael E Brown Date: Wed Dec 12 12:50:13 2007 -0600 remove another dead libtool reference. commit 2eb8178184b6aab514771e6df957d915d65492e5 Author: Michael E Brown Date: Wed Dec 12 12:49:13 2007 -0600 remove generated autotools files from source repository. use autogen.sh to create them when compiling from git. commit 95e2aed47c5a8c0f385e858e6b03a646659a0661 Author: Michael E Brown Date: Wed Dec 12 12:26:07 2007 -0600 remove generated autotools files from source repository. use autogen.sh to create them when compiling from git. commit d453d03cc0c7e2a7ebc48382bff2105b60d0922c Author: Michael E Brown Date: Wed Dec 12 12:05:12 2007 -0600 remove dead code from autoconf files since we no longer compile anything. commit dc5948117b2848be2dfa8984cd78fe5d1694aa0c Author: Jesse Keating Date: Wed Dec 12 12:45:47 2007 -0500 Don't provide backwards compat option for update. commit bead02ddf117a3d6593e0f3a86ddda5d6139ddf8 Author: Jesse Keating Date: Wed Dec 12 12:15:41 2007 -0500 Add --update call, to update existing buildroot. Useful for things like pungi which continuously reuse a buildroot commit e3569ae6c26d121f8ed72f72c480339005d053a8 Author: Michael E Brown Date: Tue Dec 11 22:46:18 2007 -0600 fixup changelog to be in chronological order like rpmbuild likes. commit 0c24ed47664a90aa4fc193bb2a58d8831592afc2 Author: Michael E Brown Date: Tue Dec 11 22:05:33 2007 -0600 update changelog. commit a682d63e841f632090ddff7045ae6b8412e5de7e Author: Michael E Brown Date: Tue Dec 11 21:28:51 2007 -0600 cleanup daemontest executable. commit 006ebd8eb222bd332df40a08a9a6f934a4b9bc9e Author: Michael E Brown Date: Tue Dec 11 21:17:11 2007 -0600 demote setarch log msg back to debug() since we now have a warning for when it doesnt run. commit 69ee351eef2843392b82e97234398130d571693a Author: Michael E Brown Date: Tue Dec 11 21:10:23 2007 -0600 version bump commit 7cfb96aebd24dee149e2573eae2c169fe0fc4c27 Merge: feaaffe bd5d089 Author: Michael E Brown Date: Tue Dec 11 18:09:25 2007 -0600 Merge branch 'master' of /var/ftp/pub/Applications/git/mock * 'master' of /var/ftp/pub/Applications/git/mock: - make "mock --chroot" non-interactive - set the exit code of "mock --chroot" to the exit code of the process run in the chroot - log the output of the process to root.log commit feaaffe73baa6808eb229041b86cdea6f5c1c56f Author: Michael E Brown Date: Tue Dec 11 18:09:22 2007 -0600 add warning for when personality has no constant mapping. commit bd5d08919539538c0bfead439fd8e3a33f3b01b3 Author: Mike Bonnet Date: Tue Dec 11 18:54:10 2007 -0500 - make "mock --chroot" non-interactive - set the exit code of "mock --chroot" to the exit code of the process run in the chroot - log the output of the process to root.log Signed-off-by: Michael E Brown commit c4edf71309f230955998fd2922d6045068b31eab Author: Michael E Brown Date: Tue Dec 11 16:12:38 2007 -0600 add i586/i686 setarch defs. add info message when setarch is ran. commit 2142d31eecce9abf4f4961036d96cba7edac23be Author: Michael E Brown Date: Tue Dec 11 16:09:19 2007 -0600 add sparcv9 for setarch. commit 143d8cb94ce11aec19635cb6823a73b46a930473 Author: Michael E Brown Date: Tue Dec 11 15:58:01 2007 -0600 add setarch defs for sparc 32/64 commit 69a77d92928e2fe189228ed2c5c2c6d3914bdeb8 Author: Michael E Brown Date: Tue Dec 11 15:28:24 2007 -0600 personality() returns -1 on error. commit 3ab8014db96a00047a7d36068d05b9cbd3a2cdf6 Merge: 14a5b6d 08decfb Author: Michael E Brown Date: Tue Dec 11 15:01:40 2007 -0600 Merge branch 'master' of /var/ftp/pub/Applications/git/mock * 'master' of /var/ftp/pub/Applications/git/mock: add failsafe for daemontest.c such that it exits after 5 mins rather than hanging around forever. add return code propagation test for --chroot cmd. let yum resolvedep run w/privs because it has to download additional metadata sometimes. fix rebuild multiple srpms test. commit 14a5b6d3dfb4c26d384ad423c6879aa6509ff02d Author: Michael E Brown Date: Tue Dec 11 15:00:54 2007 -0600 add docs for --orphanskill mode. commit 08decfbb63aad0d87ed69dc9f4127bf3ca5a35be Merge: ebcf490 ccad75c Author: Michael E Brown Date: Tue Dec 11 14:56:36 2007 -0600 Merge branch 'master' of ssh://mebrown@git.fedoraproject.org/git/hosted/mock commit ebcf490ed2a9ec28634b86a18616a9796fcd22fa Author: Michael E Brown Date: Tue Dec 11 14:56:19 2007 -0600 add failsafe for daemontest.c such that it exits after 5 mins rather than hanging around forever. commit ccad75c34af7cae8aee0159fe734a945f0c3861c Author: Michael E Brown Date: Tue Dec 11 14:20:14 2007 -0600 add return code propagation test for --chroot cmd. commit 5dc1fc5232eb10671ea3a4abe3b3eaea46c1fff3 Author: Michael E Brown Date: Tue Dec 11 13:54:34 2007 -0600 let yum resolvedep run w/privs because it has to download additional metadata sometimes. commit e7ddbe8fe2b81f74999318c59d2a37a0d18d72d0 Author: Michael E Brown Date: Tue Dec 11 12:58:29 2007 -0600 fix rebuild multiple srpms test. commit 7c4c5d62b6400c3a30294cfa2d5f7b8fa1d37aec Author: Michael E Brown Date: Mon Dec 10 14:15:48 2007 -0600 fixup explicit orphankill unit test. commit 71e2394fdbc511f15a6e698d95979bd2ef9cb6f5 Author: Michael E Brown Date: Mon Dec 10 13:58:25 2007 -0600 add MOCK_EXTRA_ARGS for releasetests so I can make mock release tests run behind dell firewall. commit 139b03ff861a7df30d40115718f1a1fb21758530 Merge: ce6e26a cc1e30a Author: Michael E Brown Date: Mon Dec 10 11:17:13 2007 -0600 Merge branch 'master' of ssh://mebrown@git.fedoraproject.org/git/hosted/mock commit ce6e26a58c56b7b8e0b770318a6a1469e6937e66 Author: Michael E Brown Date: Mon Dec 10 11:04:20 2007 -0600 add --orphanskill mode. requested by mbonnet for koji. commit cc1e30a4b1e7e719aa4fee84dabf44fa59b38b26 Author: Michael E Brown Date: Sun Dec 9 23:01:48 2007 -0600 make it so you can run multiple releasetests at the same time. commit 1bea9d791b83c5d5facd2d9df84f4e2f1f38a9ed Author: Michael E Brown Date: Sun Dec 9 22:33:42 2007 -0600 update changelog commit 31628e13b2d15ce098a88836d7fbe6f79e81edc3 Author: Michael E Brown Date: Sun Dec 9 21:33:12 2007 -0600 drop fc6 configs. update changelog. commit c0a22a6db5a1adc491acbafdb95ff6b436c58991 Author: Michael E Brown Date: Sun Dec 9 00:00:19 2007 -0600 fix --without to follow proper rpmbuild conventions. Courtesy Paulo Cavalcanti . commit aada35a1281981a361cce99f923f467ddabbeb76 Author: Michael E Brown Date: Fri Dec 7 17:25:09 2007 -0600 version bump to 0.9.0 commit 6126530f48eb7253d7e592f20a8600ed4a0cccf5 Author: Michael E Brown Date: Fri Dec 7 17:24:51 2007 -0600 add a few uid debugging calls, commented out by default, in case other people want to inspect UID status and environment. commit 18a799d6c9196ec3dfa9b40f408ae1234a74bda2 Author: Michael E Brown Date: Thu Dec 6 17:01:45 2007 -0600 less verbose logging. commit 6a0834b7e01bcfebb5f54a9591812fd4af220478 Author: Michael E Brown Date: Thu Dec 6 17:01:31 2007 -0600 become root a bit earlier to that cache dir stuff works (run during chroot __init__). commit 8c8c66e238e3507ed1aebc67506f458e1414906d Author: Michael E Brown Date: Thu Dec 6 16:57:18 2007 -0600 less verbose do(). commit 963819a09f31a4780cb66104297355a4774a6eb9 Author: Michael E Brown Date: Thu Dec 6 14:08:54 2007 -0600 build fixes. avoid automatic brp-python-compile of mock.py by renaming. commit 4c762edbd860ce632a8e5214081a8f6e29709b10 Author: Michael E Brown Date: Thu Dec 6 13:57:36 2007 -0600 create log files as unpriv user. fixup chrootuid calc to take into account sudo and consolehelper commit 5cce73a26e3ce6877c2f429f9a34ce4515442279 Author: Michael E Brown Date: Thu Dec 6 12:21:52 2007 -0600 convert to use consolehelper rather than setuid wrapper. commit b572e9d52906ed969e790f1c896a7cefa6eeeb27 Author: Michael E Brown Date: Thu Dec 6 10:36:02 2007 -0600 add unshare commit af73fa7d2354208f85cec98aad821f1c50a55645 Author: Michael E Brown Date: Thu Dec 6 02:34:20 2007 -0600 fixup logging calls. commit afeb84213c6f965850417c0f573e862472cbfc74 Author: Michael E Brown Date: Thu Dec 6 01:41:43 2007 -0600 separate out function tracing from verbosity commit 347cd1e7a399ff3692802044f866699cdb4dc3c9 Author: Michael E Brown Date: Thu Dec 6 01:40:16 2007 -0600 use double-quotes for stuff people need to cut-paste commit dd4c422a56608a17488c309127a2b4706b946ec3 Author: Michael E Brown Date: Wed Dec 5 22:52:41 2007 -0600 update changelog commit 880f9e77cbea655f40727eeae66b9a3f784aedf0 Author: Michael E Brown Date: Wed Dec 5 22:52:31 2007 -0600 add unit test for no-root-cache case. commit 3328196ba70ed8bcfd188079dde619dd38a1ee4a Author: Michael E Brown Date: Wed Dec 5 22:52:15 2007 -0600 version bump commit 236441558e3a5921505a5657950411c5865d8715 Author: Michael E Brown Date: Wed Dec 5 22:32:25 2007 -0600 mount inside try block so problem mounting unmounts everything. commit fc3a2ad3016ab8a5c20d71cbd34e9b40f056f7f5 Author: Michael E Brown Date: Wed Dec 5 22:14:24 2007 -0600 fixup error where var/cache/yum in buildroot disappears due to clean. commit a87d6c292393a1f99cbb20d5824a716e72c94df2 Author: Michael E Brown Date: Wed Dec 5 19:45:56 2007 -0600 potential fix for rhel5 traceback. commit bf4d8bb591ebca08625a416ff02341a40ec2c5af Author: Michael E Brown Date: Wed Dec 5 19:32:48 2007 -0600 fix python logging module exception problem earlier so there isnt any path through that hits that bug. commit 4cfaeea14108aea68c9dfdbe89215a1fdf710244 Merge: 3e661e1 ee52f57 Author: Michael E Brown Date: Tue Dec 4 22:43:00 2007 -0600 Merge commit 'origin/master' * commit 'origin/master': whitespace fixups. add --with and --without options to enable/disable options in a srpm use 'MACRO EXPR' in --define docs to match the rpmbuild docs add --define option to pass rpm macros on the command line error when trying to build multiple srpms without --resultdir. commit 3e661e15cf787a795a8401a0d52db0447575ba67 Author: Michael E Brown Date: Tue Dec 4 22:42:05 2007 -0600 clear out old unit tests before starting new ones. commit 8d186a76ca3f9511e69af63acd39c270ae61c046 Author: Michael E Brown Date: Tue Dec 4 22:29:43 2007 -0600 bulletproof exclude of all i386 pkgs for x86_64, allowing *only* glibc*.i?86, which is necessary for syslinux/grub. commit ee52f57c99cca3c3c274f75574b61b7b7d3a186d Author: Michael E Brown Date: Tue Dec 4 17:35:35 2007 -0600 whitespace fixups. commit 339fada0f033950b7165fbd98efdf9323f37f6be Author: Todd Zullinger Date: Tue Dec 4 15:38:24 2007 -0500 add --with and --without options to enable/disable options in a srpm Signed-off-by: Michael E Brown commit 2679d3cae92a1178b586fc1c07b1fbfcac88972a Author: Todd Zullinger Date: Tue Dec 4 05:28:13 2007 -0500 use 'MACRO EXPR' in --define docs to match the rpmbuild docs Signed-off-by: Michael E Brown commit 3364f97752b54f0f507475934fe486a7c8c79a1d Author: Todd Zullinger Date: Mon Dec 3 20:58:03 2007 -0500 add --define option to pass rpm macros on the command line Signed-off-by: Michael E Brown commit 38751f05060ef76e8777a21f3e5fe88f4baf7001 Author: Michael E Brown Date: Tue Dec 4 17:00:26 2007 -0600 error when trying to build multiple srpms without --resultdir. commit e1d2de8c53bd0f39e1efb9ca6c95d454552123b0 Author: Michael E Brown Date: Tue Dec 4 09:21:33 2007 -0600 better rpmbuild, more specific defs for std rpmbuild options. original patch from Todd Zullinger (tmz). Fixups by me. commit 68ca35d7efc302200a617f9bddf0979be92a85b1 Author: Michael E Brown Date: Tue Dec 4 01:02:53 2007 -0600 update changelog. commit 3a91f3e900df0ded2626a887a505c81b11d40f6a Author: Michael E Brown Date: Tue Dec 4 00:56:09 2007 -0600 version bump commit 9542ae007ed44ed0a047f2195967c05a49e84bda Author: Michael E Brown Date: Tue Dec 4 00:54:55 2007 -0600 make sure dir exists before opening yum lock. commit 613adbb0c28685b8aec3689eafc4e14dd10cabda Author: Michael E Brown Date: Tue Dec 4 00:38:47 2007 -0600 merge conflicts. commit 1e4847aab547ca88227315133fc4b1996209e53c Author: Michael E Brown Date: Mon Dec 3 14:26:43 2007 -0600 add couple of comments to release test script. commit fe9f23d9f01166ec6181d768f0489f8c358403b0 Author: Michael E Brown Date: Mon Dec 3 13:33:13 2007 -0600 consolidate imports. commit 496d70fedd0f62413b69577e538ec801f343de6e Author: Michael E Brown Date: Mon Dec 3 13:31:42 2007 -0600 consolidate imports. commit aed81342043efd1b342b660aac812af1913af171 Author: Michael E Brown Date: Mon Dec 3 13:31:28 2007 -0600 small code consolidation. commit e6ac40e7f5532aa25947b98bdab6c9c4a1a004e3 Author: Michael E Brown Date: Mon Dec 3 12:07:47 2007 -0600 update changelogs. commit 6e25fa04f9aa4a0c00117a3e5ba433149b3fd8cc Author: Michael E Brown Date: Mon Dec 3 11:46:36 2007 -0600 brown-paper-bag: typo... should be 'fi' but was 'exit' commit d10267dc8fc50c0a924f4fa649b571c57eba7b0c Author: Michael E Brown Date: Mon Dec 3 11:40:55 2007 -0600 couple more sanity checks in unit test code. commit 176a1af30856c5ce2ae59d891cf058b7161d8a55 Author: Michael E Brown Date: Mon Dec 3 11:27:36 2007 -0600 fixup accidental exit 1 when test actually succeeded. commit 62a258a6023d00bcdf8b3bdcd823005f32966533 Author: Michael E Brown Date: Mon Dec 3 11:19:51 2007 -0600 run bash built-in 'time' rather than /usr/bin/time because bash built-in has more user-friendly output. fixup error where $CHROOT was not taking into account --uniqueext. commit ae8e245f0987ac284a7859341d97315e1b8cf325 Author: Michael E Brown Date: Mon Dec 3 11:16:51 2007 -0600 pass through exit status of chroot/shell commands. commit f309d57591a74c19cc0723d9dcdba65fcdd667e1 Author: Michael E Brown Date: Mon Dec 3 11:08:49 2007 -0600 init yumCacheLock file object in __init__. No need to wait until tryLock to open it. commit 5b3ff3ddd3fc5ceeac6f876a73cbbe476aba9d24 Author: Michael E Brown Date: Mon Dec 3 11:03:25 2007 -0600 more comprehensive release tests. commit a49eb155c927e701261535719761f0db73d71bb5 Author: Michael E Brown Date: Mon Dec 3 10:58:59 2007 -0600 initialize groups if used by SUDO, as we lose all group membership when called by sudo. commit 1c06980dc2b7e5adc9e7a63f06c02e80d9fb624f Author: Michael E Brown Date: Mon Dec 3 10:44:13 2007 -0600 update release tests to do more thorough testing. commit e7b404406b6d825712d7882b8c8da61af896ea1a Author: Michael E Brown Date: Mon Dec 3 09:27:29 2007 -0600 change --help to reflect new preferred option style. commit 229ce9c838bc2d78dfd5dcbfbe97fce859694811 Author: Michael E Brown Date: Sun Dec 2 15:21:05 2007 -0600 mostly whitespace fixes, plus a few other things to make pylint/pychecker happier. No significant code changes. commit 315fd0b88b0c263e83bcc47fbeb242c38ed01d02 Author: Michael E Brown Date: Sat Dec 1 13:25:11 2007 -0600 convert @decorator-syntax to use python-2.3 compatible peak decoratortools syntax. commit 42b1c5f9a0b81d0d0c10a07e23c446ac78e8f98b Author: Michael E Brown Date: Sat Dec 1 13:22:40 2007 -0600 cleanup unused configure directives. commit 6a07081b214b9ec5a44a9291aa1b90dfa08e0a0c Author: Michael E Brown Date: Sat Dec 1 13:22:26 2007 -0600 cleanup unused configure directives. commit 1de4cfaae93ba4c96c8f506abbf90e3acff498a6 Author: Michael E Brown Date: Sat Dec 1 13:22:25 2007 -0600 cleanup unused configure directives. commit 6c521c9c0cfab397ee0aa9764adce737e39415b4 Author: Michael E Brown Date: Sat Dec 1 13:08:23 2007 -0600 use python-decoratortools instead of shipping our own decorator.py commit 0a52ee48213f254c99b4a435f63692d2d58b3d48 Author: Michael E Brown Date: Sat Dec 1 12:53:25 2007 -0600 remove dead code (commented out). commit e95c726ca98a585b2acf9ac188983d493c56a409 Author: Michael E Brown Date: Sat Dec 1 03:27:02 2007 -0600 move daemontest.c to src/ dir. commit 0f858402b988cd4c260dc193933ff6213aaec5b7 Author: Michael E Brown Date: Sat Dec 1 03:26:47 2007 -0600 remove unused import. commit 97c69e2c5a6823f80ad1f11658a558c9ae02b46f Author: Michael E Brown Date: Sat Dec 1 03:26:28 2007 -0600 few changes to make pychecker happy. commit 66ad1d432d5a506cbade508a5edde9a7a36aa12e Author: Michael E Brown Date: Sat Dec 1 03:25:55 2007 -0600 cleanup release tests a bit. commit 6532fd66f7e9d82229a729dbe54305388402fcf5 Author: Michael E Brown Date: Sat Dec 1 03:24:38 2007 -0600 move build of daemontest into makefile. commit 9b003eb043da10c98953c813ed01b0005ce6b075 Author: Michael E Brown Date: Sat Dec 1 03:06:53 2007 -0600 fix compile warnings. commit 0731f137a0d6a8e6bb67acf9eb240e4e691c8e10 Author: Michael E Brown Date: Sat Dec 1 02:30:15 2007 -0600 add back in comment line that was accidentally dropped in merge. commit 4ec7479065bb4be00a795035327c8322b176146a Author: Michael E Brown Date: Sat Dec 1 02:25:57 2007 -0600 cleanup compiled python files. commit c26bffb4048abe1059fc5c64427396eb4f43741a Author: Michael E Brown Date: Sat Dec 1 02:23:36 2007 -0600 version bump commit 72e8ca421cd3b8327990250cc3d9612f84ff2dd9 Author: Michael E Brown Date: Sat Dec 1 02:22:41 2007 -0600 add changelog entries. commit f9b61076e6adf5c81286b23ccb1071d5b2786f97 Author: Michael E Brown Date: Sat Dec 1 02:18:56 2007 -0600 fix builds of multiple srpms on same cmdline. commit a0c0c1bc88aea64d497d15b58b96ac643a37ca2e Author: Michael E Brown Date: Sat Dec 1 02:17:32 2007 -0600 import local modules after system modules. commit 5e45f470f3bb52dbb27bca009ca14c95ba2a8756 Author: Clark Williams Date: Fri Nov 30 12:25:11 2007 -0600 clarified ChangeLog commit 993f4a74499113ed296294ca1a6488262c59c1e5 Author: Clark Williams Date: Fri Nov 30 12:24:48 2007 -0600 version bump commit 6420a3cce34676a126c1f0c9837aaa02da2a0263 Author: Clark Williams Date: Fri Nov 30 12:05:59 2007 -0600 first steps for updating to 0.8.11 commit c5dca17b971fd8151207ddf7c1f5c616dfd5590e Author: Michael E Brown Date: Fri Nov 30 12:07:45 2007 -0600 fix release tests to run from local copy and local configs rather than installing. commit 9c4e0f4756001bf562bcc0d1fc30f48c693b9c49 Author: Michael E Brown Date: Fri Nov 30 12:02:46 2007 -0600 remove debugging statement. commit 97f06be255f9a20613c66510e05f68372af7215f Author: Michael E Brown Date: Fri Nov 30 11:51:25 2007 -0600 move things around so that we can run mock.py from the build tree instead of having to install it. commit 96dd05c47ed25102fe92a1c7810d12716083e05e Author: Michael E Brown Date: Thu Nov 29 17:38:48 2007 -0600 reformat command failed output slightly. commit 242729a2cf11a749b416e4a4d2dc78ffeb87e2d9 Author: Michael E Brown Date: Thu Nov 29 17:38:02 2007 -0600 use log.info() to tell about enabled caches rather than misusing state(). the state() method should be used to say what is happening. commit 521025b767f54c75c55ea088d6ae305210cfbcaf Author: Michael E Brown Date: Thu Nov 29 17:36:55 2007 -0600 fixup error message for misconfigured logging.ini. pass system exit exception so we dont run eg. orphankill. log exception using correct logger. commit 17560dd969adf910dfc76567044b039ef5439c66 Author: Michael E Brown Date: Thu Nov 29 17:30:42 2007 -0600 now that we have made mock logger by default less verbose, enable propogation so modules can print info messages. commit a77312fe9d2d799ada11c63d0f0cbd5dbd2b818b Author: Michael E Brown Date: Thu Nov 29 17:16:08 2007 -0600 make error log output more useful. commit e51838217b290feb25cc5289f85ed7938edadac0 Author: Michael E Brown Date: Thu Nov 29 17:14:07 2007 -0600 no need to set up loggers in config file for each child, automatically done by logging module. commit c50e737612b8c10239587e43dee3e8bb47cbfa31 Author: Michael E Brown Date: Thu Nov 29 14:45:26 2007 -0600 add dep on python-ctypes so it will run on FC6. remove attempt at non-ctypes compatibility commit 21d9e9086bad36e19bd9386bdcb9dde15f1b414a Author: Michael E Brown Date: Thu Nov 29 14:19:47 2007 -0600 add verbosity control (-q/-v) commit cda46afb4500104616e7acf14940cd6203115d9c Author: Michael E Brown Date: Thu Nov 29 14:13:10 2007 -0600 propagate logger(mock) messages to root logger so we can control console verbosity through root logger. commit 338656d1026e8679d9d823ff6f975209ff1c920a Author: Michael E Brown Date: Thu Nov 29 13:50:41 2007 -0600 most root_log.info() calls were actually for debugging, so change them to debug. commit e67ee4ff2b310895dcc1dc4d371fa31af966f1da Author: Michael E Brown Date: Thu Nov 29 12:46:06 2007 -0600 basic logger config a bit earlier so we can possibly catch log messages from submodule imports. commit 2cb4d247a1c3cf7bebf5e68ffad51005012f2d44 Author: Michael E Brown Date: Thu Nov 29 12:44:40 2007 -0600 make sure trace log only emits log records to logger if logger is enabled for the specified log level. commit 860ff359726e3c6119fbf2d0caba24535e4f4052 Author: Michael E Brown Date: Thu Nov 29 11:59:59 2007 -0600 dont init buildroot for install/installdeps commit 2e2b8e333f4c972bf1a61f6947f660ff62fca27a Author: Michael E Brown Date: Thu Nov 29 02:14:36 2007 -0600 remove no-longer-needed debug log messages commit ce34c33945634c26722169e5c2137d1e9ee13441 Author: Michael E Brown Date: Thu Nov 29 02:14:12 2007 -0600 make sure we run yum install as root. remove unneeded state change message. remove redundant becomeUser() call in _copySrpmIntoChroot(). commit bf5b41efc0d868b99e791b5f1b330f25a9a75769 Author: Michael E Brown Date: Thu Nov 29 01:59:44 2007 -0600 make privstack more readable. commit e412b252d5e019a7671d27b721660d346019a2e3 Author: Michael E Brown Date: Thu Nov 29 01:59:11 2007 -0600 bypass privStack by calling _becomeUser directly in mock setup. commit f2665073160f562035a1d25407e95438c9fafd27 Author: Michael E Brown Date: Thu Nov 29 01:56:28 2007 -0600 log calling function name properly commit d78835610c79ca889fb90ffee54a8c7a742e2938 Author: Michael E Brown Date: Thu Nov 29 01:35:35 2007 -0600 fix handling for printout of exceptions. commit 3f3b2e27cde4964da8061a5dfbbf2af9ce0b6965 Author: Michael E Brown Date: Thu Nov 29 01:31:23 2007 -0600 enhance trace decorator to make log messages print actual function/filename/lineno of the to-be-called function. commit 3b501cb34ce0891751a1ab762047dc55f5897f08 Merge: 2e156a1 9f0c947 Author: Michael E Brown Date: Wed Nov 28 23:38:29 2007 -0600 Merge commit 'origin/master' * commit 'origin/master': add option to disable internal /dev setup. turn output back on for yum install commands. better user feedback. commit 2e156a1ccbe07269cf0a767806788fbce781d670 Author: Michael E Brown Date: Wed Nov 28 23:38:23 2007 -0600 temporary debug logging to be removed. commit 9f0c947517846ffb617bd294856d068660535e1b Author: Michael E Brown Date: Wed Nov 28 23:32:43 2007 -0600 add option to disable internal /dev setup. commit d4309a181b403b37fdb857016699ce09d06fd868 Author: Michael E Brown Date: Wed Nov 28 22:46:42 2007 -0600 turn output back on for yum install commands. better user feedback. commit 5695a0435f0511175e278a6a96f31312fc72295d Merge: 7123060 c67381c Author: Michael E Brown Date: Wed Nov 28 18:15:34 2007 -0600 Merge branch 'master' of ssh://duo/~/mockwork * 'master' of ssh://duo/~/mockwork: add {g,s}etres{g,u}id() functions using ctypes direct call to glibc. commit 7123060cd2a918e24ca9731a3e7e43524598455d Merge: 315f8c0 c5de488 Author: Michael E Brown Date: Wed Nov 28 18:14:20 2007 -0600 Merge branch 'master' of ssh://duo/~/mockwork * 'master' of ssh://duo/~/mockwork: move uid stuff to its own module. start updating release instructions. uid stuff in its own submodule drop privs early to parse cmdline args and config files. pick them up again before we start doing real work. better end-user error messages for messed up config files commit c67381c21c0bc797cc598b0892d0659cc906b901 Author: Michael E Brown Date: Wed Nov 28 18:12:43 2007 -0600 add {g,s}etres{g,u}id() functions using ctypes direct call to glibc. commit c5de488fa53ca608a1db3564ad305a6f09d88441 Author: Michael E Brown Date: Wed Nov 28 18:09:43 2007 -0600 move uid stuff to its own module. commit 27e63d7ff0eeb9c9d439a58704d545be25b7cc4d Author: Michael E Brown Date: Wed Nov 28 18:09:28 2007 -0600 start updating release instructions. commit 315f8c0293e3b4ce39707c0e1661a91e560f86f0 Merge: 2b99447 75f7fa7 Author: Michael E Brown Date: Wed Nov 28 18:06:29 2007 -0600 Merge branch 'master' of ssh://mebrown@git.fedoraproject.org/git/hosted/mock commit 5a18c3969f6a40e661fda0e7ff6014c768d536f2 Author: Michael E Brown Date: Wed Nov 28 15:51:34 2007 -0600 uid stuff in its own submodule commit 46cb317fd7dd3e7399d4dea53e20ef78aedced64 Author: Michael E Brown Date: Wed Nov 28 15:51:10 2007 -0600 drop privs early to parse cmdline args and config files. pick them up again before we start doing real work. commit 2b99447c7877fa2edd427682b58f7c9bae88a41b Author: Michael E Brown Date: Wed Nov 28 15:40:32 2007 -0600 place online param where chroot obj can find it. commit 0b4bbe92a2771bd5285bad1fe2a2050ce01397c4 Author: Michael E Brown Date: Wed Nov 28 15:40:15 2007 -0600 update docs for offline params commit 104bdd6a23e0eb3d4d02255fd357a6ccb158773b Author: Michael E Brown Date: Wed Nov 28 15:22:40 2007 -0600 first (untested) try at adding offline mode. commit 0ffeafe649dc02617ffce7de7086e3fac35a97ee Author: Michael E Brown Date: Wed Nov 28 10:07:47 2007 -0600 better end-user error messages for messed up config files commit 75f7fa7607bf9efefc26f52a68966ee48ee86c27 Author: Clark Williams Date: Tue Nov 27 15:35:55 2007 -0600 add length check to old behavior check in command_parse() commit 4f61b5ab315d53f3b910c0ee33b711fc5b612c80 Merge: 2a0ec02 075a03d Author: Clark Williams Date: Tue Nov 27 15:27:52 2007 -0600 merge resolved commit 075a03dbee52860bc70f379fefc7de215906d93e Author: Michael E Brown Date: Mon Nov 26 17:14:38 2007 -0600 update changelog commit 2ce305b04a974b04e4f61c3e2241e457f7b48ee4 Author: Michael E Brown Date: Mon Nov 26 17:13:25 2007 -0600 version bump commit 445b05700a9552b478138bf1fd56de0bb2200a69 Author: Michael E Brown Date: Mon Nov 26 15:40:34 2007 -0600 fix bz#400161 - broken 'shell' command commit 715c167c21950597813606f59df9a12ed2e7f16c Author: Michael E Brown Date: Mon Nov 26 13:31:27 2007 -0600 set selinux context on created /dev/ files in chroot to prevent AVC denials. commit de5b944ccfd9fbaee8a8132babf3c78af5b383e8 Author: Michael E Brown Date: Tue Nov 20 16:19:29 2007 -0600 update rpm changelog. commit c090eec59a6db76b2eb5d38d137cc143f1fbb380 Author: Michael E Brown Date: Tue Nov 20 16:12:51 2007 -0600 update exclude list to exclude glib?-devel.i?86 commit 569faea4886fd05619e80b4a3554dd6bed6ecbde Author: Michael E Brown Date: Tue Nov 20 16:05:29 2007 -0600 add glib?-devel to exclude list for x86_64. commit 575b9dec165e32843892ab14ffd08290416a103c Author: Michael E Brown Date: Tue Nov 20 15:33:47 2007 -0600 update docs for preferred command syntax. commit 2dec54e999fadb9cad104a0fc6c16d13a929c140 Author: Michael E Brown Date: Tue Nov 20 14:35:30 2007 -0600 small optimization on LOC for detecting if we need to clean chroot. commit 5b1e9c291c8ee08fd00aed65b6c216a647900708 Author: Michael E Brown Date: Tue Nov 20 14:15:35 2007 -0600 forgot to put back return value for command_parse(). commit 9c79b526fc24cb6b5883be9635610483c6894682 Author: Michael E Brown Date: Tue Nov 20 14:13:43 2007 -0600 fix syntax error typo. commit 1a9ea3aa580f34b649d4ef3da762a7041dc1c27a Author: Michael E Brown Date: Tue Nov 20 14:10:36 2007 -0600 unify command mode parsing using optparse with backward compatibility for old style. commit 6024049bd710ae4ffe62b817bb1cf13836e14226 Author: Michael E Brown Date: Mon Nov 19 18:09:32 2007 -0600 another old-python fix for rhel5 python 2.4 support. commit f4475c5b877f500a0c62bb9dcd901e0fa6852946 Author: Michael E Brown Date: Mon Nov 19 16:29:58 2007 -0600 version bump commit 7ec6a1e9d202ab56fb31c914dbf7516c045e56ab Author: Michael E Brown Date: Mon Nov 19 16:19:47 2007 -0600 Fix python 2.4. traceback on logging module bug. commit 0fb0d38bfdbf795d0d226b975e1c098ccd746bf7 Author: Michael E Brown Date: Mon Nov 19 16:02:56 2007 -0600 py-compile should not be a symlink, but rather a copy. commit 9a8d4791b80b44b8f1957030ae6b8b81524c8284 Author: Michael E Brown Date: Mon Nov 19 10:55:49 2007 -0600 fix docs for more_buildreqs in defaults.cfg commit 51a6f8ab96b0990fcac91d43aa51aec380b41af8 Author: Michael E Brown Date: Mon Nov 19 10:40:15 2007 -0600 update manpage for --resultdir changes. commit abd9673abf46bdb7d1979c0a97196a74fc0d0c02 Author: Michael E Brown Date: Mon Nov 19 10:34:28 2007 -0600 fix spec, cannot have things that look like macros in changelog. commit 022b8f3695567fcda9c610c52fda1a13f55714fb Author: Michael E Brown Date: Mon Nov 19 10:28:48 2007 -0600 update changelog for 0.8.8 commit 888f9e4d2a8877a74f28c794b8824a360c6eebc5 Author: Michael E Brown Date: Mon Nov 19 09:58:46 2007 -0600 allow mock builds by root. potentially unsafe if building untrusted code, but there is no reason to hardcode a ban on it. commit e5a2ae36e2f63efc6570d3b0cd0a82d52969bb75 Author: Michael E Brown Date: Sun Nov 18 15:30:07 2007 -0600 add ppc32/64 setarch compatibility commit 6dcdd84f3565634cd99ff5c2641ee1f967956b27 Author: Michael E Brown Date: Sat Nov 17 23:45:25 2007 -0600 move ctypes check down a level into setup_default_config_opts function. commit 19c6b60285ccb992ca458d86c240fba21f72528b Author: Michael E Brown Date: Sat Nov 17 23:29:19 2007 -0600 add doc for internal_setarch to defaults.cfg commit 67d7045e3d29f0e325d70488523aa2e365e79462 Author: Michael E Brown Date: Sat Nov 17 22:30:36 2007 -0600 comment for personlity stuff. commit e5be729554beb2ed1dce3bc77fea304aecfaf11d Author: Michael E Brown Date: Sat Nov 17 22:30:04 2007 -0600 dont try to run personality() if we dont have a defined value. commit e1b25747b221b152205ce693d077b9ced560e554 Author: Michael E Brown Date: Sat Nov 17 22:20:53 2007 -0600 use internal setarch rather than calling external. commit 80466c5312be685597b12b641ed32a609cd9c111 Author: Michael E Brown Date: Sat Nov 17 22:14:45 2007 -0600 hand-code setarch to remove dep on /usr/bin/setarch commit 41be2f7ec5b41e978e833f87883b92e37d42e136 Author: Michael E Brown Date: Sat Nov 17 18:58:53 2007 -0600 make setarch configurable because suse doesnt have it. commit 36ef1aca01a4acdf146f54092bbf869e95972761 Merge: 06e19a7 772a7df Author: Michael E Brown Date: Sat Nov 17 12:58:38 2007 -0600 Merge branch 'master' into internal-setarch * master: add to pre-existing deps, dont replace. commit 772a7df576996f5a031c89e11c0dab549d4e9a13 Author: Michael E Brown Date: Sat Nov 17 12:50:13 2007 -0600 add to pre-existing deps, dont replace. commit 06e19a70cb809f6d1c7906eedfc33e9a4f20584f Author: Michael E Brown Date: Sat Nov 17 12:51:12 2007 -0600 dont need setarch for initial srpm install or rebuild of srpm. need setarch in chroot. commit b569e2ef0fadffe4a1ca11ae656fb70ac447d0e2 Author: Michael E Brown Date: Sat Nov 17 12:50:13 2007 -0600 add to pre-existing deps, dont replace. commit 33f50beba74e682ee1637aeb75f4d5cc0acbdde3 Author: Michael E Brown Date: Sat Nov 17 12:30:02 2007 -0600 run setarch internally based on target_arch commit a03f0c2ca8ba97a67ebc18aa448583b1a599500d Author: Michael E Brown Date: Sat Nov 17 11:50:23 2007 -0600 add dist tags. Mostly useful for substituting in --resultdir for now. commit 24278fb2e78d964eaa71a3492a951dde97082ce3 Author: Michael E Brown Date: Sat Nov 17 11:45:02 2007 -0600 print accurate config name. sharedRootName could have been anything. commit e7f70fcedafe41160d6bef9481d05f88a365d4cd Author: Michael E Brown Date: Sat Nov 17 11:44:00 2007 -0600 allow resultdir to be variable-substituted on cmdline. commit 460087986a21d4b4cd0ac1bd3c0a4a74b7502c68 Author: Michael E Brown Date: Fri Nov 16 11:22:05 2007 -0600 hard dep on python 2.4+ due to new decorator syntax. commit 6f5a7e49ed2eb853380ac13eaafcf7205ce87c3c Author: Michael E Brown Date: Fri Nov 16 09:50:03 2007 -0600 better state info. commit 29610f4a7ffc4caff6be848e85c48224843f1c7e Author: Michael E Brown Date: Fri Nov 16 09:32:05 2007 -0600 re-fix problem when missing logging.ini commit 67d3475a19c170036159928ffdecf365e2defdcf Merge: a7815f8 6943b56 Author: Michael E Brown Date: Thu Nov 15 15:25:04 2007 -0600 Merge branch 'master' of ssh://mebrown@git.fedoraproject.org/git/hosted/mock commit 2a0ec028686a4213b407c5097de661ac5dd52698 Merge: 5add761 6943b56 Author: Clark Williams Date: Thu Nov 15 14:07:25 2007 -0600 Merge branch 'master' into clark commit 6943b56fbc424e6d468efa8d513e62f9e3ab17b5 Author: Michael E Brown Date: Thu Nov 15 13:53:07 2007 -0600 shouldnt need to set rpmlock_path macro with fixes in rpm. commit 3fb51702c238e3cdbac97dfea7b5a2d40e626d6d Merge: 21678b7 1fa9084 Author: Michael E Brown Date: Thu Nov 15 12:21:33 2007 -0600 Merge branch 'master' of ssh://mebrown@git.fedoraproject.org/git/hosted/mock * 'master' of ssh://mebrown@git.fedoraproject.org/git/hosted/mock: document 'clean' behaviour for install[deps], chroot, shell. commit 21678b7e7720724f36f852e7ddf3cf34bd5ed349 Author: Michael E Brown Date: Thu Nov 15 12:13:03 2007 -0600 'expect' wont work without /dev/ptmx. commit 5add76128fcc10555264392307d5da998a05401b Author: Clark Williams Date: Thu Nov 15 09:20:01 2007 -0600 fix for no logging.ini situation commit a7815f8a43fd285c299107557434ea22dc7b32e1 Author: Michael E Brown Date: Wed Nov 14 13:56:01 2007 -0600 enable 'installdeps' to work with normal rpm. commit 1fa9084e1167cba4878c8ca570c4e7142b920ac0 Author: Michael E Brown Date: Wed Nov 14 13:45:36 2007 -0600 document 'clean' behaviour for install[deps], chroot, shell. commit 8eee700f4d8b42c0026f25d7b5641562f17fad32 Author: Michael E Brown Date: Mon Nov 12 18:31:23 2007 -0600 fixes for builddir!=srcdir commit c45e99f0df42e7531df6038fdcd9371bae162e0a Author: Michael E Brown Date: Mon Nov 12 17:21:01 2007 -0600 version bump commit aba433e31bd86887348e2910bd2d2143a5b16615 Author: Michael E Brown Date: Mon Nov 12 17:16:31 2007 -0600 change logger name for state log in example defaults.cfg to match what is in mock.py commit ec0f03f7e48714cf6c2632dc66b83abf7349b8fc Author: Michael E Brown Date: Mon Nov 12 17:09:17 2007 -0600 fix formatter for asctime - missing s commit b1d21007cf11fc134eeee5457b00fd0f5e4bb24a Author: Michael E Brown Date: Mon Nov 12 16:59:27 2007 -0600 extra log format just for state log. commit 8b116f8905e96278340f96e2ead9f6e5aecacb4b Merge: bc180f6 a52f18c Author: Michael E Brown Date: Mon Nov 12 16:56:29 2007 -0600 Merge branch 'master' of ssh://mebrown@git.fedoraproject.org/git/hosted/mock commit bc180f612175cadda529d2c2b6d907d5ff506656 Author: Michael E Brown Date: Mon Nov 12 16:55:26 2007 -0600 first pass at making logging format configurable per-logfile from the config file. commit a52f18c1da56e5385e61f4f1b0b8edf33f7dd027 Author: Michael E Brown Date: Mon Nov 12 12:34:13 2007 -0600 dont clean chroot on shell,chroot,install, or installdeps commit d2546bb6580b1047bc44559701cd5c541fe85a06 Author: Michael E Brown Date: Tue Nov 6 22:06:36 2007 -0600 remove el3 compat stuff from spec because it has no hope of working on el3 due to extensive python changes. commit 01335086781d49c37c81d08ff19c66c89c21e0ec Author: Michael E Brown Date: Tue Nov 6 17:29:58 2007 -0600 version bump commit af1b733a733bfab47fed4b50d5ba490a355e6bec Author: Michael E Brown Date: Tue Nov 6 13:09:55 2007 -0600 f8 uses groupinstall vs install for setting up buildroot. commit 23f8f4ed5f63d768ccf823cf8e789eab99ffc70d Author: Michael E Brown Date: Tue Nov 6 11:19:54 2007 -0600 add f8 configs commit 0cf49cc876c4c454d86b2e2be244ffa197f741d1 Author: Michael E Brown Date: Tue Nov 6 10:49:30 2007 -0600 version bump commit 7e59f0785b7db918e328b66b9ba77853464c2249 Author: Michael E Brown Date: Tue Nov 6 10:36:21 2007 -0600 fix BZ#366731. supress wrapper output. commit fc3ccd426e5733bd50047da436d1c3c6b741bfdb Author: Michael E Brown Date: Sat Nov 3 09:17:36 2007 -0500 update manpage to reflect reality. commit 063fceaf2a4845853de9f78e7502a1016fb9b681 Author: Michael E Brown Date: Fri Nov 2 13:14:08 2007 -0500 use built-in chroot facilities rather than running /usr/sbin/chroot. commit 397b60db6e3ebf48802b4fbec0af5f531102a930 Author: Michael E Brown Date: Wed Oct 31 03:34:31 2007 -0500 use symlink vs creating a shell script. more scalable and we can cache more types of cc invokations. commit b2303e57b18ab9fcad7442508dc20f62a23e306e Author: Michael E Brown Date: Wed Oct 31 03:06:55 2007 -0500 consolidate redundant code. commit c3a61e9515caa9736f3c95c85704127223c02e37 Author: Michael E Brown Date: Tue Oct 30 09:37:47 2007 -0500 better defaults for root/yum cache age. remove unused max_age_days from ccache_opts. Exit with non-zero return code on bad command line. commit 0b8db7d48314edad72a2a73ca8c7157a2ed33e4d Author: Michael E Brown Date: Tue Oct 30 09:36:51 2007 -0500 small fixes to correctly document defaults. commit 297fccef1b608322ed41a8d6e78aee8dab800a74 Author: Michael E Brown Date: Sat Oct 27 15:47:30 2007 -0500 fix typo in error path. commit 08395e9e713495a71bc5ac50f0950ece9c442144 Author: Michael E Brown Date: Sat Oct 27 15:33:50 2007 -0500 small rearrangements to the function from hell. make it slightly less long. commit c8e941e4f9480122d62c5ecf7d476125f4d97e8f Author: Michael E Brown Date: Thu Oct 25 14:02:37 2007 -0500 Fix buglet where we were substituting wrong value for cache dir. commit 319555c5ee51a79c9fae50e5e0175404d1c1be97 Author: Michael E Brown Date: Thu Oct 25 12:17:28 2007 -0500 more info in start/done messages. better messages for when build fails. commit b511105af0ae84618ef0a20f4f784220826673c3 Merge: c4ff159 3619e93 Author: Michael E Brown Date: Thu Oct 25 10:06:26 2007 -0500 Merge ssh://mock/~/git/mock * ssh://mock/~/git/mock: better error message for when logging.ini doesnt exist. version bump. version bump commit c4ff1593ccb1fe53e057d6930a3fba6a8a639a3d Merge: e529d4b 1c055b0 Author: Michael E Brown Date: Wed Oct 24 19:05:43 2007 -0500 Merge branch 'master' of ssh://mebrown@git.fedoraproject.org/git/hosted/mock commit e529d4bffb7acdb0e044f172dc2f18a33bbd31fb Author: Michael E Brown Date: Wed Oct 24 18:18:50 2007 -0500 allow noncontiguous cache dir specifications. commit 3619e93ae177e7dec332fac7484edeb0d0356e02 Author: Michael E Brown Date: Wed Oct 24 13:01:41 2007 -0500 better error message for when logging.ini doesnt exist. version bump. commit d54c89b18a849f6e881f566dba45f8aab9c42bfd Author: Michael E Brown Date: Wed Oct 24 12:42:53 2007 -0500 version bump commit 1c055b0ca8b9c37e62c8c921c42986689244582d Author: Michael E Brown Date: Wed Oct 24 10:35:10 2007 -0500 rhel3 compat commit d5d772c91af6029bf85c20629ccaf85ba1c0ce26 Author: Michael E Brown Date: Wed Oct 24 01:14:23 2007 -0500 suse support -- allow override useradd cmd in config file commit 0c6265c09a45ce208d5d0f8fab9a48531dfdcdac Author: Michael E Brown Date: Mon Oct 22 18:28:46 2007 -0500 version bump commit 85802d4720240b49b6186c61f3684f05d365e878 Author: Michael E Brown Date: Mon Oct 22 18:26:39 2007 -0500 ensure we only use gid specified. chroot operations always change uid/gid to gid specified. fixes 'bad owner/group' message from rpm. commit 378b496a2335c9f5ffbc7668ed882539383cbd45 Author: Michael E Brown Date: Mon Oct 22 17:01:42 2007 -0500 fully qualify exception name to fix exception trying to raise exception. commit b94f37d1c83c82269aa714796b41d9d5146ee39c Author: Michael E Brown Date: Mon Oct 22 14:53:07 2007 -0500 fix license to comply with new licence standard commit bb26761fd8d9f68019591ee807ba218f1e660c00 Author: Michael E Brown Date: Mon Oct 22 14:51:21 2007 -0500 fix rpmlint error: non-executable script commit d888a9b98e01da40f711affdbd3818c33a37bacc Author: Michael E Brown Date: Mon Oct 22 14:36:38 2007 -0500 version bump commit 512408558cd560a73759113c964cd5c0c8b21af1 Author: Michael E Brown Date: Mon Oct 22 13:51:29 2007 -0500 version bump. changelog update. commit 9b3dc0ca978d566ea593ee2ae773bc6aed8530f2 Author: Michael E Brown Date: Mon Oct 22 13:34:14 2007 -0500 more complete fix for immutable files in buildroot commit 725e0550748ea414952e78145fa867678aabc44c Author: Michael E Brown Date: Mon Oct 22 13:16:47 2007 -0500 remove becomeUser(0) from backend and have mock.py do it ahead of time. remove password from mockbuild user so you can 'mock shell' and then su - mockbuild. commit 42fb1cd0c6c16e48c4673b18e865e9a10de70541 Author: Michael E Brown Date: Mon Oct 22 13:15:21 2007 -0500 avoid infinite loop in error handling. commit 66cdce502558c3811ab39ee595465b52769e023a Author: Michael E Brown Date: Mon Oct 22 13:03:14 2007 -0500 try harder to remove buildroot if it fails. commit 5ce8b45bb9d02b75311da9e611c6fff64373e31e Author: Michael E Brown Date: Mon Oct 22 12:27:44 2007 -0500 fixup docs to match latest options. commit a91d44dc7195edfa05407cd549427e0391c17dcc Author: Michael E Brown Date: Sun Oct 21 22:53:45 2007 -0500 fix for FC6 commit 4ca017a3e7f7c001d793396f16a286aab3f864b4 Author: Michael E Brown Date: Sun Oct 21 22:53:33 2007 -0500 version bump commit 0f7a6f0fec109b61c445f08a0ed5cbb6ab6b2550 Author: Michael E Brown Date: Sun Oct 21 22:53:17 2007 -0500 version bump commit 1a99caee3578ea15503f9851e1e7d1d1c00f4530 Author: Michael E Brown Date: Sun Oct 21 17:07:21 2007 -0500 comment minor edits. commit 097d1b0dcb57c06da03b05bab2b18d88f05f1780 Author: Michael E Brown Date: Sun Oct 21 16:09:54 2007 -0500 fixup config options to match new format. commit 2344880763d4417e2d3e6f4690b3da3c6f6d9103 Author: Michael E Brown Date: Sun Oct 21 16:07:29 2007 -0500 make plugin conf options match: *_opts and *_enable. fix for not doing 'yum install' when --no-clean, but, rather 'yum update'. update defaults.cfg to match new options. commit d192e14de3b40d6b736cafb14775f341e01caa19 Author: Michael E Brown Date: Sun Oct 21 16:04:15 2007 -0500 finish implementing bind mount plugin. commit a75a61823cdf4574c1238e8343590b30e6ef15f4 Author: Michael E Brown Date: Sun Oct 21 16:03:57 2007 -0500 small optimizations to not unpack root cache for --no-clean. fix accounting typo so we dont re-create root cache for non-clean builds. commit b01eee7be9a9187c8f1fcc257e9c905bb972cab7 Author: Michael E Brown Date: Sun Oct 21 06:17:00 2007 -0500 renamed bind.py to bind_mount.py as that is a bit more explicit. commit 117457586196119f9b4b9c80e2e761e81e21fecb Author: Michael E Brown Date: Sun Oct 21 06:14:00 2007 -0500 new plugin to optionally bind-mount host dirs into buildroot. not configured by default. commit d115ea6765917221d8113459f381267598f4e076 Author: Michael E Brown Date: Sun Oct 21 06:09:04 2007 -0500 update copyrights. dont put full header in every source file, just ref main copying. commit 45582aa0479f04515cf19803e6f8df16efae7af7 Author: Michael E Brown Date: Sun Oct 21 05:17:12 2007 -0500 fix disable/enable plugin cmdline to write to correct config entry. commit d74c51f166dad3c38f46639287ccfb60df5e504a Author: Michael E Brown Date: Sun Oct 21 05:06:12 2007 -0500 uncomment build lines. commit 104dc17a0b424bf2c3ba0bd4022b60c136af11d5 Author: Michael E Brown Date: Sun Oct 21 05:05:26 2007 -0500 add time cmd to ensure that mock.py timings are accurate. commit 7e7c3f6b460f8cbff77196196dbc07204e74c367 Author: Michael E Brown Date: Sun Oct 21 05:03:28 2007 -0500 version bump to 0.8.1 commit 03b315f0c466b577cd4c27cac2f645106b7b84fb Author: Michael E Brown Date: Sun Oct 21 05:00:27 2007 -0500 create plugin infrastructure. move all caching related stuff to plugins. commit 15cd1d4715777110a86467a2f9ecf0e64bce91f9 Author: Michael E Brown Date: Sat Oct 20 04:38:31 2007 -0500 update changelog commit c7ed6b36825350eaf9f7cc7ebfa097c21faba9e7 Author: Michael E Brown Date: Sat Oct 20 04:22:23 2007 -0500 dont try to compile ppc stuff. also clean test dir before starting. commit 2e899101d2f5fc3ffae400e7a881e61c42afc782 Author: Michael E Brown Date: Sat Oct 20 04:21:50 2007 -0500 set exit code properly on error. commit 8c188b0837ed3492285796700115e668789e266d Author: Michael E Brown Date: Sat Oct 20 04:08:29 2007 -0500 little more generic release tests. commit 0fb45c98d2207896fbb55c7ebe155b0ede83c0a0 Author: Michael E Brown Date: Sat Oct 20 03:51:35 2007 -0500 add release testing script to ensure basic stuff works before release. commit 0a01430c4f50170540386b3cd6b215eef3876e18 Author: Michael E Brown Date: Sat Oct 20 03:35:53 2007 -0500 disable ccache for epel builds by default because they dont have ccache available in their repos. commit 3f43cc64248ad3d11160dba1b24e77d28405df4a Author: Michael E Brown Date: Sat Oct 20 03:32:28 2007 -0500 enable specific dep check as it does affect build. 'yum install foo' doesnt fail if foo doesnt exist. commit 4389ce2a4b22ddcec984af0b419771b2767df2eb Author: Michael E Brown Date: Sat Oct 20 02:40:09 2007 -0500 make --enable-cache consistent with other opts in '-' vs '_' department. add better help if user gets it wrong. commit c44bc774dcbdc67b1a91f029da7a6869650ad3b5 Author: Michael E Brown Date: Sat Oct 20 02:30:10 2007 -0500 add couple friendly messages to explain why chroot is cleaned in case user forgets they set the config option. add message for -C exit. commit 1e4de87a5e0da708f151f627d24d3e8393294df3 Author: Michael E Brown Date: Sat Oct 20 02:29:26 2007 -0500 attempt to kill off any process group children before we finish fork(). Trap all errors so child doesnt escape from its branch of the if. commit e1260b61360ac902d5b423e4f23120afdb34cb26 Author: Michael E Brown Date: Sat Oct 20 02:15:02 2007 -0500 add cleanup_on_{success,failure} options. separate out do_rebuild() function as it was getting a bit long. make ccache default to a bit smaller max size (4GB). Ensure we unmount fs on CTRL-C commit b834a2a6594238bb7fe019804f123132fb00edc6 Author: Michael E Brown Date: Sat Oct 20 02:13:01 2007 -0500 better defaults.cfg examples. commit 4653d354a2daa34d1cd04691058c6663b19d7ea0 Author: Michael E Brown Date: Sat Oct 20 01:47:18 2007 -0500 uniform spacing and layout for config files. commit c965120c8dc7feff2902bc1f9af3975188abe7ed Author: Michael E Brown Date: Sat Oct 20 01:07:20 2007 -0500 remove unneeded 'import os' from config files. commit 77965bf4f4ad8457ae07ef530c0de2dbeb05c195 Author: Michael E Brown Date: Sat Oct 20 00:03:37 2007 -0500 allow installdeps cmd to be used on normal rpm. commit 07646061e6346d5cb9ee2d9488647b6c6ae367e3 Author: Michael E Brown Date: Fri Oct 19 19:30:21 2007 -0500 add exception for bad/wrong cmdline usage. commit 5f7d477200044a50834ae66f4c9b8df3b81ccfab Author: Michael E Brown Date: Fri Oct 19 19:29:46 2007 -0500 add --cleanup-after option. move most exception handling out of main() and into main()'s caller. commit 5d6a076e7c312b386f263c85fc6631726036e731 Author: Michael E Brown Date: Fri Oct 19 17:39:41 2007 -0500 fix ccache to use chroot ccache instead of host ccache commit f206bb8e31700548480de88f9f7fe91217907534 Author: Michael E Brown Date: Fri Oct 19 12:21:58 2007 -0500 dont double-initialize logging when building multiple srpms. commit 50f0bbbe1f913f1551b6476747cfc4be08321582 Author: Michael E Brown Date: Fri Oct 19 12:21:09 2007 -0500 fix one backwards compat FC6 buglet. BaseException is python 2.5+. commit 0481c8655a08e64b4c078402981e6c98fcfcd71a Author: Michael E Brown Date: Fri Oct 19 11:54:44 2007 -0500 add start message so we know which srpm we are working on when multiple are specified. commit 34942bebb19e611289e2d13a3567c60e1104192c Author: Michael E Brown Date: Fri Oct 19 11:18:31 2007 -0500 four tweaks and a bugfix. 1) roll ccache install into same yum call as installdeps. 2) dont delete yum cache metadata unless it is older than 1 day. 3) remove separate depsolve pass which was only for UI cleanness. 4) dont do verbose tar pack/unpack 5) bugfix: dont untar cache twice. commit e17012fd6ba579baa7d09e527fccc76eb8cc8b2b Author: Michael E Brown Date: Fri Oct 19 10:00:13 2007 -0500 print integer minutes. commit 68bde2ee7e9656569ecad61831f1ca9a6c932638 Author: Michael E Brown Date: Fri Oct 19 09:52:04 2007 -0500 dont add hooks more than once. commit fac86d8d2248caa4faf8571b03e3424fe1956d3d Author: Michael E Brown Date: Fri Oct 19 09:51:40 2007 -0500 print pretty time statistics after build done. commit c88affbda3b76dba5def41df927940d4110afed9 Author: Michael E Brown Date: Fri Oct 19 09:40:10 2007 -0500 drop privs to create result dir since it is user-changeable. commit cc1ed811f24d09f0a5ed0d353a4e3b0593aecf46 Author: Michael E Brown Date: Fri Oct 19 04:23:21 2007 -0500 add deps for tar/gzip commit 6d6ad65df096b2ccc7058b2277e3b323ac678e1f Author: Michael E Brown Date: Fri Oct 19 04:21:28 2007 -0500 add options to force enable/disable of caches on cmdline. commit 093fa76426db9e19e6f95eb05182e7b703100896 Author: Michael E Brown Date: Fri Oct 19 04:14:04 2007 -0500 need python to build. commit 4743e490fd45bed0862e80d03f4439fe329f4b0b Author: Michael E Brown Date: Fri Oct 19 04:08:06 2007 -0500 need to return output from mock in some circumstances (depsolving). commit b993e048e4eb10d1ac8d2529b5b86510a0f0e132 Author: Michael E Brown Date: Fri Oct 19 03:36:37 2007 -0500 loathe autoconf. finally fix distcheck and 'make distclean' removes src/mock.py problem. commit 445c5f26ed1f6109e91441e644ac9f544494d3e6 Author: Michael E Brown Date: Fri Oct 19 02:33:47 2007 -0500 lock buildroot before clean. lock root cache. commit cf91f726dc20233c160ea14bfefea6947edf2bb6 Author: Michael E Brown Date: Fri Oct 19 02:06:37 2007 -0500 re-add root cache feature. commit df74993d060f558c849f8feb62def958bc192eba Author: Michael E Brown Date: Fri Oct 19 01:31:08 2007 -0500 better message for failed command when output disabled. commit 6abafa46c0452e4d1d3c6ea9d9e6ddb5495a20b3 Author: Michael E Brown Date: Fri Oct 19 00:19:04 2007 -0500 remove statedir as it really isnt used. move logs to resultdir to match old mock behaviour. commit 49e8b1ed3db4dd6108894a4c79fecec154d62698 Author: Michael E Brown Date: Fri Oct 19 00:04:49 2007 -0500 implement orphanskill feature. commit 63205627de2615ebfe23547b5936168de815c362 Author: Michael E Brown Date: Fri Oct 19 00:04:34 2007 -0500 test program to test orphanskill feature. commit 1ad3ce09fe263baa3484afd38e89b7078f9b3ca2 Author: Michael E Brown Date: Fri Oct 19 00:04:16 2007 -0500 add orphansKill() function. Kills off everything with a specific root dir. commit 0e08a556bdb2d6e45d5e33c3c96d9188f6449838 Author: Michael E Brown Date: Fri Oct 19 00:03:40 2007 -0500 raise specific exception for when buildroot is locked so we know not to orphankill. print filename in default logs. commit 98cc724b41292bd9c4e43756c563120e64859ca5 Author: Michael E Brown Date: Fri Oct 19 00:03:31 2007 -0500 raise specific exception for when buildroot is locked so we know not to orphankill. print filename in default logs. commit 5c26011c991814e15606af3244cc2f027b15bda4 Author: Michael E Brown Date: Fri Oct 19 00:02:31 2007 -0500 simple tweaks to logging to get rid of default debugging info in normal output. commit 3e850857efe9c90f0a6e6ee78d511f429774699b Author: Michael E Brown Date: Thu Oct 18 22:49:03 2007 -0500 add 'mock install' command to yum install packages into buildroot. clean up help option. commit e8d0ec6c8f7c9331fe272cc73152afd2f4980275 Author: Michael E Brown Date: Thu Oct 18 22:03:12 2007 -0500 dont overwrite log files on subsequent builds. per request from mbonnet. commit 9e820575ac528d562fc9bd207c8674bfed03589d Author: Michael E Brown Date: Thu Oct 18 21:39:52 2007 -0500 completely drop privs (real and effective) when running RPM commands. add a bit of infrastructure to mock.util.do() to handle this. Change mock.util.do to not return output by default. No users use the output, and it can be switched on via karg. commit a9172fdfdf9811cb84626f0a414668cc2ab03dc4 Author: Michael E Brown Date: Thu Oct 18 21:29:48 2007 -0500 shell and chroot cmds are identical. merge them save LOC. switch to os.system. Yes, it is a layering violation, but hey, it fixes a huge wart in mock.util.do. commit 8a780e16ad87c2ad0ac3494b2254032748093ced Author: Michael E Brown Date: Thu Oct 18 20:27:42 2007 -0500 small buglets hiding in uid code, leftover from switchover to push/pop commit e67cbc5ae6125935a0daaaabef8d29cf8abfb3fa Author: Michael E Brown Date: Thu Oct 18 20:15:29 2007 -0500 add lots of comments. fork() so that we can drop privs permanently before rpmbuild commit d7f46e89b60c64e08d9468b3a893172317fd964d Author: Michael E Brown Date: Thu Oct 18 19:44:48 2007 -0500 unneeded debug statement commit c6379ab774c7131dd47d25d74ec3178e816b3724 Author: Michael E Brown Date: Thu Oct 18 19:04:15 2007 -0500 print suid wrapper version on startup. commit c8ef444eb3198b3b0623ca62e7e53e74e0b67d4b Author: Michael E Brown Date: Thu Oct 18 19:04:00 2007 -0500 finish moving to traceLog... fix import. commit 1a3a7cc2f2a5638f90bee304cfe28e92126fa2a4 Author: Michael E Brown Date: Thu Oct 18 18:56:02 2007 -0500 trace()->traceLog(...). remove verbose/debug options which did nothing. commit 46cae8bb8daa3cf14999e30815ae6d0be97a5788 Author: Michael E Brown Date: Thu Oct 18 18:48:35 2007 -0500 remove unused trace() decorator since everything uses traceLog() now. commit 935670ccd05901b1d9cc992851c583649e769570 Author: Michael E Brown Date: Thu Oct 18 18:47:19 2007 -0500 remove historical since it has now been re-implemented. commit 2a926fef18a521e05b88b739e56ee5a309788724 Author: Michael E Brown Date: Thu Oct 18 17:50:48 2007 -0500 fix 'make distcheck' commit 1763fc3d166624ff101b198fcd76db5e0d8a94a7 Author: Michael E Brown Date: Thu Oct 18 17:22:13 2007 -0500 finally fix deps for src/mock.py so it is re-edited at correct times. commit 9d4e909bdb995734fb80a074cbfee90b1d0f2dee Author: Michael E Brown Date: Thu Oct 18 17:13:25 2007 -0500 separate out src/mock.py dep on itself so builds where srcdir==builddir will work properly. commit d192f37690f9a2b97ff7f04cf79116b7c47deac4 Author: Michael E Brown Date: Thu Oct 18 17:01:01 2007 -0500 fix perms on /usr/bin/mock to only be runnable by group mock. commit 5ff222c05b8d0f5c671f66b2fa882a407c97ddd5 Author: Michael E Brown Date: Thu Oct 18 16:52:19 2007 -0500 move banner to before chroot obj prints its first msg. typo fix. commit 48ef9fd3d2ad3f0645add224f5774ffecda5d840 Author: Michael E Brown Date: Thu Oct 18 16:50:24 2007 -0500 disallow rebuild without 'rebuild' parameter. add banner on startup. commit 8be871673b46296b532df02b6e976c61b10fcb41 Author: Michael E Brown Date: Thu Oct 18 16:49:54 2007 -0500 don't overwrite gid or we end up with unwriteable dirs in buildroot. commit 0a03b7eabd34ebff49d28124cb61d52b5230d140 Author: Michael E Brown Date: Thu Oct 18 16:38:54 2007 -0500 /usr/bin/mock needs to be setuid. commit 47c372601003f8266752c2df7e6aeb47196d998d Author: Michael E Brown Date: Thu Oct 18 16:32:59 2007 -0500 remove remnants of libselinux stuff from spec file. commit 5ad94d715d776a158f3d5e937a3dffd83b281dae Author: Michael E Brown Date: Thu Oct 18 16:22:30 2007 -0500 add locking for yum cache commit 4ca7183e69de087440e110c06af00ccb1273268a Author: Michael E Brown Date: Thu Oct 18 16:01:52 2007 -0500 lock buildroot to prevent simultaneous multiple access. build srpm as well as rpm. move a couple functions around with no code changes. commit 99919ea78d4aa4fd856e13ee81f688d1646bf019 Author: Michael E Brown Date: Thu Oct 18 16:00:33 2007 -0500 remove historical file that has been completely reimplemented. commit 99803e03efbf019a317b778eb9ce3a471e94629c Author: Michael E Brown Date: Thu Oct 18 15:09:09 2007 -0500 no longer need selinux lib preload. commit 060fa0302eede2d5bb96d9c45d01492caa0c5f8a Author: Michael E Brown Date: Thu Oct 18 14:56:58 2007 -0500 change uidManager to push/pop so we can overlap regions. enforce naming convention on all class functions. commit 5b73769f58296bf218895037471d3b109d8170fa Author: Michael E Brown Date: Thu Oct 18 13:47:56 2007 -0500 remove all trailing whitespace. move all caching functions together. commit 1328f56bd5588fb848fea05744b53b112d7ad0d5 Author: Michael E Brown Date: Thu Oct 18 13:44:19 2007 -0500 prune yum cache old files. add ability to limit ccache size. commit b5dc0cce4a41b993ed44e2217d0bb236be6ccc35 Author: Michael E Brown Date: Thu Oct 18 13:43:19 2007 -0500 remove obsolete opts. add caching options. commit df52677aa49d314559c3e6961d01ef4da3067ac5 Author: Michael E Brown Date: Thu Oct 18 12:29:03 2007 -0500 get ccache working commit 200e3a13bebbde04c88ee9757212bed858bed35d Author: Michael E Brown Date: Thu Oct 18 09:56:44 2007 -0500 factor caching stuff to standalone functions. commit de7deb9c9803222799c65c391a9a59f2593e504c Author: Michael E Brown Date: Thu Oct 18 09:55:01 2007 -0500 remove obsolete caching options. in with the new caching options. dont double-clean chroot. commit 2e5ca42a23e11c55decda807e801a518113dde7d Author: Michael E Brown Date: Thu Oct 18 01:05:48 2007 -0500 ensure that HOME var is set properly for rpmbuild. commit fb3bc004f1a0b33f9de7d8bc523f42f42f2aacc0 Author: Michael E Brown Date: Thu Oct 18 00:57:13 2007 -0500 properly mount/umount around rpmbuild call commit 03b6f3285c22082f9f0c829f3092a563082c11fd Author: Michael E Brown Date: Thu Oct 18 00:50:56 2007 -0500 get rid of spurious blank lines in log output commit e48d8ae1c8441170d86f2929fe49daefcddbf3bb Author: Michael E Brown Date: Thu Oct 18 00:43:09 2007 -0500 add build and installdeps implementations. commit 31fb143c510f5674a742af3c8d43c0377fe7e5c4 Author: Michael E Brown Date: Thu Oct 18 00:42:46 2007 -0500 more srpm manip functions. commit c085cdb197bde90ea724e7f8fc1ccc7323fa97b2 Author: Michael E Brown Date: Thu Oct 18 00:42:16 2007 -0500 fix chroot->root typo. change function call to yieldSrpmHeaders(). commit 49ac487cf6df37c482446be61764dee99ed92282 Author: Michael E Brown Date: Thu Oct 18 00:41:27 2007 -0500 update spec with latest changes. commit dc70b8ecf6e456de5937064e423744d3e3008c56 Author: Michael E Brown Date: Wed Oct 17 23:32:40 2007 -0500 fix problem dropping privs where we dropped uid first and then couldnt drop gid. commit 5322203482da18314ab78ad0eea6ba24d9062a81 Author: Michael E Brown Date: Wed Oct 17 19:02:04 2007 -0500 wrap action part in try/except so we cleanly trap and report errors. commit 7e6993f7f65419a9e605ea03e72cacafdd32860a Author: Michael E Brown Date: Wed Oct 17 19:01:35 2007 -0500 fix for idiotic error in rpmUtils where exception comes back with each letter as an element in a tuple. commit 335e60eb837a3bf67419258a3f59f77ef507c3b7 Author: Michael E Brown Date: Wed Oct 17 18:59:43 2007 -0500 rename buildsys-build.spec so rpmbuild doenst accidentally use it. commit e32254da2cc8c240ab51c0eaa37599daf943b8c5 Author: Michael E Brown Date: Wed Oct 17 18:59:30 2007 -0500 rename buildsys-build.spec so rpmbuild doenst accidentally use it. commit 3dd0c9d4ab4947444ceff9ede99de9b4f2cc9af9 Author: Michael E Brown Date: Wed Oct 17 18:23:10 2007 -0500 complete chroot/shell commands. commit 76739828c5a8e41fde28b50ce14b5ae669b29eb4 Author: Michael E Brown Date: Wed Oct 17 18:22:48 2007 -0500 export do_chroot() in public api. use -n option to mount/umount so it doesnt touch hosts /etc/mtab. Add option to do_chroot() to set env vars for chrooted progs. commit 4b07d5dc0bcdbd48140f5fb1412c2b55048c1889 Author: Michael E Brown Date: Wed Oct 17 18:21:08 2007 -0500 make sure we properly catch all derived exceptions, like KeyboardInterrupt commit 8360c605a6b95a56f471404e581c242663c12062 Author: Michael E Brown Date: Wed Oct 17 18:20:36 2007 -0500 add special callout for interactive commands so we can interact properly. commit 5215493dd570f711a4594eab8cf34a8cb7718a66 Author: Michael E Brown Date: Wed Oct 17 16:17:42 2007 -0500 finish out setup of chroot env. commit 863d42e7e6937981012968857cb74052971062b1 Author: Michael E Brown Date: Wed Oct 17 16:17:11 2007 -0500 start fleshing out different options. fix chrootuid to get real uid vs effective (due to setuid helper). commit 4353704221076523e4fa44f6eea19442809612a6 Author: Michael E Brown Date: Wed Oct 17 16:16:22 2007 -0500 Add cap to make multiple dirs at a time. add rmtree helper to eat some exceptions. Add getSrpmHeader() function. commit e0cc9e92cb3744f74a9b59a90b9966a1416ebb90 Author: Michael E Brown Date: Wed Oct 17 15:30:33 2007 -0500 namespace prefix bugfix. add self because it is now a class. commit cae598bd0b3b5dd42bb3c49246d6ac79f830e78e Author: Michael E Brown Date: Wed Oct 17 11:34:13 2007 -0500 remove stuff that is already implemented so it is more obvious what is left. commit dca92953271f4ada64a172c3b91e1626e665f96d Author: Michael E Brown Date: Wed Oct 17 11:33:49 2007 -0500 tracing. start init() work commit dfcfe855b25e56b318a964b0645bbeaa08223d79 Author: Michael E Brown Date: Wed Oct 17 11:33:18 2007 -0500 need to pass uidManager to chroot class for setup commit 89a0142e1f848f398ee0a4a3f2f98e1e728e08c8 Author: Michael E Brown Date: Wed Oct 17 11:32:56 2007 -0500 more logging commit 969c671b484ee26da8a3c6eebc8cd1f649c68983 Author: Michael E Brown Date: Wed Oct 17 11:32:43 2007 -0500 add tracing, touch(), do() functions commit b30e096317d3b2b05f0be80fd7fd74eeb64bdafc Author: Michael E Brown Date: Wed Oct 17 11:32:09 2007 -0500 move uid management into a class so it can be easily passed to chroot obj and unit tested. commit 06faade86a4bcdd823da33da4fd9a159139010d7 Author: Michael E Brown Date: Wed Oct 17 11:31:30 2007 -0500 add traceLog decorator which allows specifying the logger to use. commit 3c9ab9ea8f046911b52c1139addcf816ecd629eb Author: Michael E Brown Date: Tue Oct 16 23:40:34 2007 -0500 more code. commit eb8bba44a303548b29b9b522e9d6e9067c0d4159 Author: Michael E Brown Date: Tue Oct 16 23:40:01 2007 -0500 fix logging qualname to be in mock hierarchy commit 328e3e3fce019313c2a4f71907792b2c9685a47a Author: Michael E Brown Date: Tue Oct 16 23:39:02 2007 -0500 better logging heirarchy and setup. commit e2a06707ac8ed1acc6b21eb6ac9c7534a2ca0cda Author: Michael E Brown Date: Tue Oct 16 23:31:44 2007 -0500 add new py files to build commit b63b38e5a0efce4e44c35800cf64bd7434a50da0 Author: Michael E Brown Date: Tue Oct 16 16:20:40 2007 -0500 start adding backend code commit b277b6238cb995377ba0c6ada9603bd2eba54a5a Author: Michael E Brown Date: Tue Oct 16 16:20:30 2007 -0500 start adding utility functions. commit 5c2aba6ac0472e6ee2e7c4c4bc7f58c515518b22 Author: Michael E Brown Date: Tue Oct 16 16:20:18 2007 -0500 add vim declarations. commit fd116f29cc4d92bbab151a738fd15488f8bd75a9 Author: Michael E Brown Date: Tue Oct 16 16:19:48 2007 -0500 get rid of extra newlines. commit b4fc248dca35d3d97de8388d1916b44b88f8e266 Author: Michael E Brown Date: Tue Oct 16 16:19:22 2007 -0500 start setting up calls to backend. commit 9372af19b9339e2a82d13fba32833b17aaa96a81 Author: Michael E Brown Date: Tue Oct 16 16:18:43 2007 -0500 no default handlers for most logs. set up programatically. commit 0e96406e1462df2707ab1c406c602e118164fd66 Author: Michael E Brown Date: Tue Oct 16 14:41:08 2007 -0500 move py modules to different subdir to avoid conflict with mock binary name. commit be7287258ad335338086d44bee0cf5c1cf142b96 Author: Michael E Brown Date: Tue Oct 16 14:06:05 2007 -0500 start re-arranging things... commit 8fb8e85967f9d3b878844bd9de2b898ceace54f5 Author: Michael E Brown Date: Tue Oct 16 08:36:07 2007 -0500 start cleaning up old code. commit a1cd2d8ece70163d7dccc0d61e68a424f71ad2f2 Author: Michael E Brown Date: Tue Oct 16 08:35:51 2007 -0500 add tracing commit 5bf740cc3ac93a1973ce36ddae0454f05a8ddac8 Author: Michael E Brown Date: Tue Oct 16 08:35:16 2007 -0500 add new python modules commit b71f797652092af2f84d5a45693f1c2e3c478d82 Author: Michael E Brown Date: Mon Oct 15 23:47:25 2007 -0500 fix copying args to new cmd. commit 7b8ce0b57c9094369383d57c1850df5ffb95f252 Author: Michael E Brown Date: Mon Oct 15 23:41:32 2007 -0500 start stubbing out main mock.py commit 8e1f7700c1ed4f7ae91c7cd18888c446d1c84021 Author: Michael E Brown Date: Mon Oct 15 23:41:04 2007 -0500 add/install logging config file. commit 628010b1a35d72d971e97e841347443698f1caa8 Author: Michael E Brown Date: Mon Oct 15 18:25:12 2007 -0500 start re-arranging mock.py contents commit 3ed1a91478299f8f6da2375a15899a65596dd4f7 Author: Michael E Brown Date: Mon Oct 15 15:45:38 2007 -0500 autoconf for python install. commit 73cbb896f9b4cf274d2edeea1b698bde82240e93 Author: Michael E Brown Date: Thu Oct 11 09:16:06 2007 -0500 fix quoting on defines. commit 54fc3348a660892ed482377062807e3a8e94305e Author: Michael E Brown Date: Thu Oct 11 09:15:52 2007 -0500 whitespace cleanups and small cleanups. commit 08b3f399639a422b6fa0d3f3cbe005d13e2115fc Author: Michael E Brown Date: Wed Oct 10 21:50:04 2007 -0500 fixup CFLAGS for -Wall and -Werror, fix include paths. commit cb2d7eec2bef65b30744fcf8b0f324f20914e602 Author: Michael E Brown Date: Mon Oct 8 17:56:55 2007 -0500 add config.h and directory definitions commit 90b9df53240c45a3d78ab8c8edf830d68c32e1d5 Author: Michael E Brown Date: Mon Oct 8 17:24:26 2007 -0500 update makefile to install more stuff automatically (like old make system) commit 3fcf43c30300dd5725f01d49345d983758b0743d Author: Michael E Brown Date: Mon Oct 8 17:17:09 2007 -0500 remove legacy config files. commit 7574a48b38e83d0c975bd558c9a937a94c1b1912 Author: Michael E Brown Date: Mon Oct 8 16:47:38 2007 -0500 add mock-yum to dist. commit a0d85f55b2e83f4a39e9df5551a6d3a9e3e4b047 Author: Michael E Brown Date: Mon Oct 8 16:46:07 2007 -0500 remove useless .cvsignore file commit 1e5c7bc8ed1142327f768fe8baceb4f953aba9ed Author: Michael E Brown Date: Mon Oct 8 16:43:49 2007 -0500 add autotool files. commit b5cde61a0822bce4bd48256f0b0ca49cc89eca67 Author: Michael E Brown Date: Mon Oct 8 16:43:40 2007 -0500 no longer ignore build dir commit 0d4030c6ce8c008ee26637dbdcb4f9320d817a80 Author: Michael E Brown Date: Mon Oct 8 16:41:31 2007 -0500 update so mock.py is built properly and not removed on distclean commit d03a5b9cb055658f1e392bafbfcf5cfaa709e685 Author: Michael E Brown Date: Mon Oct 8 16:41:14 2007 -0500 version update commit df16d574f86f34759e4372d8961685ffee918d1e Author: Michael E Brown Date: Mon Oct 8 16:25:21 2007 -0500 now passes distcheck commit f9b58106c9c0dd529cbe0841e5a4ffa3b7e4fee4 Author: Michael E Brown Date: Mon Oct 8 15:33:21 2007 -0500 more autotools updates. commit c49b26dec9753b90221bb2be12a946fe406b7be4 Author: Michael E Brown Date: Mon Oct 8 15:32:36 2007 -0500 autotools updates. commit c9e1967345a46bb330914ce6d657f03abc3ce432 Author: Michael E Brown Date: Mon Oct 8 14:42:22 2007 -0500 minor updates to autotool stuff. commit 7e87c6009f04cdd3685d9d5876ef57bb2c31f42d Author: Michael E Brown Date: Mon Oct 8 14:34:00 2007 -0500 remove legacy makefile commit 673518327151a1a98621ddfa3219410f4cadb1f4 Author: Michael E Brown Date: Mon Oct 8 14:33:45 2007 -0500 small fixes. ./configure now runs. commit 9176844e533d3e5ab452a4622dda621250214e4a Author: Michael E Brown Date: Mon Oct 8 14:31:32 2007 -0500 initial start for auto-conf-izing commit 5d593d20237e6345438b26be96c7a432ac788664 Author: Michael E Brown Date: Mon Oct 8 14:31:14 2007 -0500 initial start for auto-conf-izing commit 21b555d8fac93cbeceb31cba2239b9c93160b1f7 Author: Michael E Brown Date: Mon Oct 8 13:56:42 2007 -0500 remove old .cvsignore file. unused. commit eea354249bc437c1af2b2133fc6bc0d7533bf237 Author: Clark Williams Date: Thu Sep 27 16:21:24 2007 -0500 Modified resolvedep search string for BZ 303791 commit 4c679d7734a2e1956555c12c5ac691ae034af1f7 Author: Michael E Brown Date: Fri Aug 31 21:24:04 2007 -0500 BZ#273481 fix for buildng packages that have glib2-devel dependency on x86_64. commit 1c14b3c9b6fcbad867afbb7cc09ec5d91cf9e642 Author: Michael E Brown Date: Mon Aug 27 12:32:01 2007 -0500 version bump commit 678f8a12dd69361f65a08acc7a7ad6866de0fa35 Author: Michael E Brown Date: Mon Aug 20 20:43:10 2007 -0500 additional fix to ensure that all file paths modified are in the chroot. commit e87c3555958b7ce866993b7842663eee7167fede Author: Michael E Brown Date: Mon Aug 20 20:35:17 2007 -0500 fix path for etc/hosts in config file so it is not absolute. Fixes BZ#253654. commit 451203f4bdafdb1b124ea44395202bc34c989b87 Author: Michael E Brown Date: Mon Aug 13 01:55:34 2007 -0500 changelog entry update commit 52dbb80070c4e2df83f6cfd835e5ceb43aa8382d Author: Michael E Brown Date: Mon Aug 13 01:51:04 2007 -0500 Patch from Roland McGrath to fix build for selinux shared library. commit 6a25dfc53d548050fb26baf8f7a4910dda1bfe48 Author: Michael E Brown Date: Wed Aug 8 10:15:38 2007 -0500 release instructions minor edits commit 5cf43eb31eaca15282579100617d3014f5251a6a Author: Michael E Brown Date: Wed Aug 8 10:09:35 2007 -0500 add release instructions to make it easier on other maintainers. commit 80a31aee4f53aa1a69b50f122426225e4dabd7a8 Author: Michael E Brown Date: Wed Aug 8 10:09:15 2007 -0500 add changelog entries for the last release. commit df1d4276483b1d7f2d08cdc86dbbb1890ba86d08 Author: Clark Williams Date: Thu Aug 2 10:38:35 2007 -0500 removed error() call on closedir() commit 515d313e7d352bfdf04434b3c5321ccba2a82080 Merge: 05a1f42 a2fbe5b Author: Clark Williams Date: Thu Aug 2 10:35:51 2007 -0500 Merge branch 'master' of git+ssh://jcwillia@git.fedoraproject.org/git/hosted/mock commit 05a1f425123b3c7e211a5d187b1bf024da620969 Author: Clark Williams Date: Thu Aug 2 09:55:31 2007 -0500 cleaned up do_orphanskill() code commit a2fbe5b9aa9df9e55393b82b7efdba91acc38a8e Author: Michael E Brown Date: Thu Aug 2 00:13:04 2007 -0500 BZ 250425. prevent building/rebuilding of cache file unless the build was a clean build. This should prevent the cache from getting polluted. commit 6f3c7f0c021ec45659dcdd5226962cc019cbcd09 Author: Michael E Brown Date: Wed Aug 1 23:45:22 2007 -0500 BZ 250425. Set rebuild_cache=0 to disable rebuilding of cache. commit 0b168184b92f005bd54811d03ec6d4e4219f6cbc Author: Clark Williams Date: Mon Jul 23 13:58:49 2007 -0500 did some refactoring; removed unneeded error() calls commit f4e23e3a5cda4b324640c256b26717b983e51b63 Author: Michael E Brown Date: Mon Jul 23 11:00:26 2007 -0500 update default config file with suggestion on how to set config_opts['macros'] commit 0e64af32fbcbe3a159a4ed9cde1e7021c58b356a Merge: 09969cb 87b7c34 Author: Clark Williams Date: Thu Jul 19 15:27:05 2007 -0500 resolved conflict commit 09969cb147f33568aec8805ad22364aed01f1bc5 Author: Clark Williams Date: Thu Jul 19 14:55:42 2007 -0500 bumped version commit 87b7c34304b921a7d113f2166b2d0e2e639d76bf Author: Michael E Brown Date: Wed Jul 18 13:06:40 2007 -0500 version bump to 0.7.4 commit ec16aff9cf75d38793cc5cbe0dc338d7bfb2cb24 Author: Michael E Brown Date: Wed Jul 18 13:04:20 2007 -0500 forgot to get child exit status. wait for child and set it. commit 84b2104792afe5559bc3bb9d696ca88352736e68 Author: Clark Williams Date: Fri Jul 13 13:55:05 2007 -0500 commit 490d804f5d03069091e8fa803e0b9338fd086813 Author: Michael E Brown Date: Wed Jul 11 15:21:09 2007 -0500 fix overzealous require: yum>3. We should actually run with yum 2.4. Fixes BZ 235490 commit f30345b7189548ca6ed9c88fdc2447cf00b5aa54 Author: Michael E Brown Date: Tue Jul 10 12:29:46 2007 -0500 add some default options commented out to defaults.cfg for example purposes. commit cf7b2c90687c7132a66f628d0e0faae162cd9f0a Author: Michael E Brown Date: Fri Jul 6 17:02:29 2007 -0500 back out default mock.py chroot_setup_cmd change. Add chroot_setup_cmd to -devel configs. commit dbff4805bb10e5bfa18c2cd138c49cb07d23c052 Author: Michael E Brown Date: Fri Jul 6 15:25:23 2007 -0500 change default to groupinstall buildsys-build per new default. Update legacy configs to specify old buildsys-build rpm install since they dont have the new group. commit 26d249b869f6406e9fbc22d631f6aaa387a4ba80 Author: Jesse Keating Date: Thu Jul 5 12:27:21 2007 -0400 Switch to using groupinstall buildsys-build Remove unused groups repo Signed-off-by: Michael E Brown commit 8c50ceadb30452189b3c3dedc5da89282080315d Author: Michael E Brown Date: Fri Jul 6 14:45:19 2007 -0500 version bump to 0.7.3 commit ef6d7f6d5bdad729286559fcabc2e8c8034cdaee Author: Michael E Brown Date: Fri Jul 6 14:42:44 2007 -0500 remove redundant entries from mock defaults.cfg file. Migrate options into mock.py that were different. commit a4c775e70acbe3c68493cf9592624e5a892fc37e Author: Jesse Keating Date: Mon Jun 25 16:13:32 2007 -0400 Remove timeout, problem tracked to firewall on host commit 7e9f2a05ac6677909b82bbfe718d944efcbcd4d5 Author: Jesse Keating Date: Thu Jun 21 10:36:32 2007 -0400 Fix a typo in the config file for cachedir commit 606ab3decbda6688f3440ba29567d2c683950273 Author: Jesse Keating Date: Tue Jun 19 16:56:28 2007 -0400 Set a good timeout for static-repos, and disable them by default. commit 08188e760047cbf6c9559f7be3de767ba2b958c5 Author: Michael E Brown Date: Sat Jun 16 10:13:32 2007 -0500 version bump to 0.7.2 commit ea35bbf80c36a48625ca8a12c1e7cfc478917619 Author: Jesse Keating Date: Sat Jun 16 08:10:17 2007 -0400 Fix (again?) being able to get glibc-devel.i386 into the chroot commit 862754de096ca44e7d151d801eba0f739845d1bc Author: Michael E Brown Date: Thu Jun 14 15:16:49 2007 -0500 move legacy mock configs to purgatory. commit dc6e25eff3c9723a96e4626863ce77133cb58d41 Author: Michael E Brown Date: Thu Jun 14 12:01:44 2007 -0500 no need for chmod since we now have correct umask commit 428461a1bafed64ed2e2734a4642e57a8187892c Author: Michael E Brown Date: Thu Jun 14 11:56:44 2007 -0500 mock-helper wont rm -rf a non-directory. with new /etc/ policy, we dont need mock-helper to do this for us, just use os.remove commit 06cc03463a6e71aa781d280e1e8620146dd46841 Author: Michael E Brown Date: Thu Jun 14 11:53:57 2007 -0500 no need to recreate yum.conf symlink if it already exists commit 6533774ebda67addfb6e701246f3a96c5e62bcd9 Author: Michael E Brown Date: Thu Jun 14 11:52:31 2007 -0500 fix umask so that everything we touch is group-writeable commit 680203b6388d67c34d5022cd3fad1956c138a5bc Author: Michael E Brown Date: Thu Jun 14 11:43:44 2007 -0500 resolv.conf fixes. use 'mock' group for multiuser goodness. commit 3b6ea0ffbcd6c9142415b611b0e95d3ad8331580 Author: Michael E Brown Date: Thu Jun 14 11:18:04 2007 -0500 fixes so that we have an actual policy for /etc/ files. update mock-helper with chmod/chown commit 2000fb4c611290f6feffbb50116d090269bbe1a1 Author: Michael E Brown Date: Thu Jun 14 10:56:13 2007 -0500 fix _prep_install() to implement new /etc/ ownership policy commit 6166557dae6f1fe4af577b8c22b68aa80a2a5612 Author: Michael E Brown Date: Wed Jun 13 11:08:20 2007 -0500 add exclude lines for epel x86_64 configs per request from epel team. commit 63279637c19a6092981fadee992c319f2eb8a409 Author: Michael E Brown Date: Tue Jun 12 22:46:12 2007 -0500 Adds SUBDIRS to the make 'distclean' target and 'distclean' to the sub-directory Makefiles. Patch from Ken MacLeod signed-off-by: Michael Brown commit cbd9fa194725e8ae58e89df91922b5d3ee4927b5 Author: Michael E Brown Date: Tue Jun 12 21:20:00 2007 -0500 bump version to 0.7.1. Add specfile changelog entries for added EPEL configs. commit 255d74be383b6508a8d198ce0c7cf8b636eb65c4 Author: Michael E Brown Date: Tue Jun 12 21:16:18 2007 -0500 Add EPEL 5 config files. commit 23ff5a3eda7b40eb399a258cdb72deefc78dbdff Author: Michael E Brown Date: Tue Jun 12 15:28:30 2007 -0500 sync version to 0.7.0 across everything commit a4dc8aef0ea27eac8682a318ccf78d8f3184c064 Author: Clark Williams Date: Mon Jun 11 21:29:35 2007 -0500 removed redundant "-l" option in pack commit c5cdc1f5d6dc153a38c1ebc1b045c40b4ca0c25d Merge: 163ae6a f79ca6e Author: Clark Williams Date: Mon Jun 11 17:14:18 2007 -0500 Merge branch 'master' of git+ssh://jcwillia@git.fedoraproject.org/git/hosted/mock commit 163ae6af8bf5364762c043fc60df71b9a5e040f9 Author: Clark Williams Date: Mon Jun 11 17:04:39 2007 -0500 added chmod to _prep_install file creations commit 7ffaacde740bb073f0c7564ab3baa37615f4b58e Author: Clark Williams Date: Mon Jun 11 16:00:06 2007 -0500 merged mock-helper from mock-0-6-branch commit b44556b827bf9e95db8025351380ddb54388fb26 Author: Clark Williams Date: Mon Jun 11 14:53:25 2007 -0500 fixed up src/Makefile commit d18cb4580f5f2b37e7d8a33957246a2b99d7b60f Author: Clark Williams Date: Mon Jun 11 14:50:21 2007 -0500 initial merge of mock-0-6-branch into HEAD commit f79ca6ebda88773d9e350c7249942862ff0e1f89 Author: Jesse Keating Date: Mon Jun 11 10:53:05 2007 -0400 Remove spaces in Makefile (Trac #1) commit 27892721936509e3cedcf141049ffefb969e60d1 Author: jcwillia Date: Mon Jan 8 22:50:36 2007 +0000 merged latest mock-0-6-branch fixes commit ddcf8384772dc240aec64ba816f28c23f2e0fefa Author: jcwillia Date: Thu Jan 4 16:10:48 2007 +0000 merged mock-0-6-branch fixes into HEAD commit 467b6734b41f1a01f6f9e6765fdcd72d0deb1adb Author: jcwillia Date: Tue Sep 26 16:29:22 2006 +0000 RPM workaround commit fb6370dd0de18ac0bd20b89b4e86c29fef3a72ec Author: jcwillia Date: Fri Sep 8 18:04:00 2006 +0000 updated version to 0.7.1 in both spec and mock.py; modified Makefile and specfile to reflect path change for /usr/libexec/mock.py; updated ChangeLog commit 5f313edf2b304a50f4b915211d51d95554db9dc3 Author: jcwillia Date: Fri Sep 8 17:37:14 2006 +0000 changed MOCK_PATH to /usr/libexec/mock.py commit bad7750117c7dd9c3f47dc8474ad2cdfd5f58ade Author: jcwillia Date: Fri Aug 25 16:40:30 2006 +0000 added patch from Dennis Gilmore for Aurora SPARC Linux commit 8b0ac07f5aa81e5c7a90da0ead8157c716b0a94e Author: jcwillia Date: Thu Aug 17 18:23:55 2006 +0000 updated config files to handle FC[12] lack of runuser; added template for RHL8 commit 4e9b2b751f352f8d058e883b36b91966aff11ed2 Author: jcwillia Date: Thu Aug 17 18:23:17 2006 +0000 updated manpage contents commit 76b4db3f7d2309f8c62effeb2a6de17e3146f21b Author: jcwillia Date: Thu Aug 17 18:22:38 2006 +0000 reformatted rpmbuild command for readability commit 0da82906230f2f357462d9d3c9cd62ce6a934eec Author: jcwillia Date: Thu Aug 17 18:21:48 2006 +0000 bumped version to 0.7; reworked mount/umount logic; fixed usage message commit 99f8f89326ca7904d2687b1933b751351b4245b0 Author: jcwillia Date: Wed Aug 16 19:39:24 2006 +0000 reworked specfile install section to create default config symlink based on specified fedora tag commit 0adc08947f63cbacb4eb1cb03cd13409f4631adc Author: jcwillia Date: Wed Aug 16 17:49:27 2006 +0000 added disttag; added buildsys-build.spec to docs; bumped release number commit be6237c68da47ec39db8e789f52ac38e9e815d41 Author: jcwillia Date: Mon Aug 7 21:52:01 2006 +0000 modified to match 0.6 branch; bumped version to match mock for this branch commit 04580c1234b74957e25d490993e74095ae218d5d Author: jcwillia Date: Mon Aug 7 19:24:54 2006 +0000 updated buildsys specfile to be distro specific and updated Makefile to generate target buildsys packages commit 3bbade9a0fc140bcde86c4b1ba1267bc1f712f0c Author: jcwillia Date: Mon Jul 17 15:04:00 2006 +0000 updated to include "chroot" command in usage and man page commit 81d46b68b645e885001ae44f863d6b736fe8c7d7 Author: jcwillia Date: Wed Jun 28 15:14:45 2006 +0000 updated version to 0.7 (new launcher mechanism) commit 3404ef6435a614b58feb0c0890f1df853464b24b Author: skvidal Date: Wed Jun 21 21:53:20 2006 +0000 fix fc5 == devel commit b5ded737866026d37e2e1e127cb4542196378744 Author: skvidal Date: Tue Jun 13 05:36:07 2006 +0000 changelog commit d34250ef8316ff11ee09de2b787817a453a78ad5 Author: skvidal Date: Tue Jun 13 05:31:30 2006 +0000 add cache defaults commit 6486b921ce45cf9f3552049d7aed131c6698350a Author: skvidal Date: Tue Jun 13 05:16:47 2006 +0000 check in changelog commit 512cbaeacf3c5dc7355b99efffc415e0d04279b4 Author: skvidal Date: Tue Jun 13 05:15:55 2006 +0000 correct commented-out groupinstall option commit 35c2dc6b72d51f928897ec5909974f5c44adb594 Author: skvidal Date: Tue Jun 13 04:28:03 2006 +0000 config file changes to point to mirrors commit 843dd66ec65840dc7155a3dd986f978d880cb305 Author: skvidal Date: Tue Jun 13 04:12:42 2006 +0000 fix up some of the url/mirrorlist paths commit 56a9b96511236404382f3076cf1b745ae417032b Author: skvidal Date: Tue Jun 13 03:52:38 2006 +0000 reduce build set commit 2070f0d59f7f293a39e881f0c25c64446211bbcb Author: mebrown Date: Thu Jun 8 21:28:46 2006 +0000 Make rm less verbose. commit c828ebd9031b242207368977c20fb00a5ab68493 Author: skvidal Date: Wed Jun 7 12:36:11 2006 +0000 fix up all the paths to buildgroups and to plague build-results commit 87f94fdc644f9f8e96d93e7924f7f06889985b29 Author: skvidal Date: Wed Jun 7 12:29:15 2006 +0000 iterate version in spec files commit b8a2ab0b0b4e0f38af8a59675f6474c58ab51ad5 Author: skvidal Date: Wed Jun 7 12:27:27 2006 +0000 clean out things that are now in 'defaults.cfg' commit b36504d22c675cd20e0d23bf1e453cf8d9552e6c Author: skvidal Date: Tue Jun 6 21:28:42 2006 +0000 use defaults more intelligently commit 7814ebd4d074d5434b7984a28508d2a422aa156f Author: skvidal Date: Wed May 24 15:15:19 2006 +0000 check in Michael Brown's lovely autocache creation patch. commit a317ec8818ce2cfd35c4a35aa119bb1a23df6f10 Author: jcwillia Date: Wed May 17 15:12:36 2006 +0000 Michael E. Brown's patch for getting PS1 down to chroot shell commit 950a02e8990b7b978bb944a4c62a252273c46a64 Author: skvidal Date: Tue May 16 04:15:48 2006 +0000 applied tab-fix and a slimming of main patches from Michael E. Brown. commit 56e804a9c837bbad688dd0567304d6dba67f5034 Author: skvidal Date: Sun May 14 04:53:38 2006 +0000 make prep install command configurable and set default in defaults.cfg commit 62c61f1041258f763a020ea007f421bba558201d Author: skvidal Date: Sun May 14 04:49:57 2006 +0000 commit Hans Ulrich Niedermann and Andreas Thienemann patch for the crack-y more buildreq feature. commit 2a84506fa40715b94207379e3b3caf030b010c69 Author: skvidal Date: Sun May 14 04:48:11 2006 +0000 check in global defaults patch from Andreas Thienemann commit e93b34bd0e792798c96909bd1ea90010fc165c43 Author: jcwillia Date: Fri May 12 20:57:57 2006 +0000 added PS1 to allowed environment (to display special prompt when inside chroot) commit a4227dc16a7abdef709610f90621740600afb2b0 Author: jcwillia Date: Fri May 12 20:57:03 2006 +0000 added interactive "shell" command for examining chroots commit 55ae4aecb11782e193d9e8cbb18d09d3421ad958 Author: skvidal Date: Fri May 12 20:56:30 2006 +0000 commit michael brown's multiple srpms on the command line patch commit 4bcdc0848aaf261cdede2b3a897a0924b06deca1 Author: mdomsch Date: Mon May 8 16:39:53 2006 +0000 enable SLES9 and SLES10 build environments commit 2eb9b6dcc7170162e3a477a3391056d8951e4c8f Author: skvidal Date: Fri Apr 21 13:07:26 2006 +0000 fix bug 189586 Thanks to mclasen for catching it commit f58dd066ed6336ba85870d870dcc3cc4bf13b8a1 Author: jcwillia Date: Tue Apr 18 14:03:22 2006 +0000 added updates-released section to fc5 configs commit ba0a6294b1f953ff672e20f4364486b3e7c75107 Author: jcwillia Date: Tue Apr 18 13:58:45 2006 +0000 fixed fc5 configs to use correct path; added devel configs commit 6c072103763e5a3bc1c5ab598573b942f202e90f Author: jcwillia Date: Wed Apr 12 14:23:17 2006 +0000 added target for buildsys-build RPM commit 70a76df0be0ce670a07849d47bc9ced53a237491 Author: jcwillia Date: Wed Apr 12 14:22:44 2006 +0000 initial checkin of dependency rpm specfile commit 5fc713dad6a1a87edbcbd22fa9ec3292e2a61ee8 Author: jcwillia Date: Wed Apr 12 14:22:11 2006 +0000 change to chroot command to insure /proc and /sys are mounted/unmounted commit 1296d57e07ea87795349c3d1b3c5493942e05c33 Author: skvidal Date: Tue Apr 11 08:35:50 2006 +0000 update spec file a bit commit 67b25024a129d1f0f1d521b414ba9f6e5ac071dc Author: skvidal Date: Tue Apr 11 08:01:31 2006 +0000 remove the 'groupinstall' need to use a buildsys dependency-only package iterate version to 0.5 more patches to go in, though commit c3d5efbff695e81834209ba15e9864543c3b38ea Author: skvidal Date: Tue Apr 11 08:00:51 2006 +0000 modify all config files for chroot_dep_package option default package name to buildsys-build commit c6394fb7a3b410cfeb2da1b233d55c533bc2c1c3 Author: skvidal Date: Wed Mar 29 06:23:21 2006 +0000 closing: https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=180976 thanks to Tom Tromey commit 9afaa66e05f88af74daa5b3b6e8c5f4e6778313c Author: dcbw Date: Tue Mar 21 21:50:52 2006 +0000 Patch from Clark Williams Set up links to /dev/std[in|out|err] in buildroots commit 258615d8edf2fb7c2a8a428e575b63c39260c71d Author: jcwillia Date: Wed Mar 15 22:14:38 2006 +0000 add chroot command for running arbitrary commands in the chroot commit fca88cf32108c65e4f35f17abdf2bd7e7e46c816 Author: skvidal Date: Fri Feb 24 19:31:57 2006 +0000 add patch from Clark Williams to be able to specify configdir commit bc159ff3682548d87a7da2df610c82c4e6f8a923 Author: dcbw Date: Tue Jan 24 17:15:10 2006 +0000 Back out setpgrp patch, found a better way to do it in plague commit e242c19abf8f91641b7bf6e01c90ad1eb0ccd58a Author: dcbw Date: Tue Jan 24 16:07:11 2006 +0000 Add an option to create a new process group so that both mock and all of its children can be easily killed with kill(-) without killing mock's parent (ie, plague-builder). commit a4fb36c73e885f1f66cbd36cf33a1f33988745bd Author: scop Date: Thu Jan 19 21:33:30 2006 +0000 s/mach/mock/ in comments. commit c0e572600435e7537a8a53c26f3975ef13f2b4a9 Author: skvidal Date: Tue Dec 27 18:30:26 2005 +0000 apply all of Andreas Thienemann's patches. fixes rm -rf call to rm -rfv and fixes the mock man page in the package makefile and specfile. commit 2517258ab2ecfc3127d06417ed018675dbd69000 Author: scop Date: Sun Nov 20 21:57:30 2005 +0000 Exclude CVS stuff from tarball. commit 7116bad578a823a50a7366cee020c165be979c29 Author: scop Date: Sun Nov 20 21:54:39 2005 +0000 Ignore generated files. commit eaa58beadfa01751601caa60dfdc18938e04abe2 Author: symbiont Date: Sat Nov 12 19:00:46 2005 +0000 no verbose for rm commit 8978d1fb45606f6ea886b40a9eadf6525cf91e87 Author: symbiont Date: Sat Nov 12 18:56:17 2005 +0000 realtime logging allowing for `tail -f' of the logs commit 3a2e777ace4ea0e1e53d53413d8b5bc6dc6df8b8 Author: symbiont Date: Sat Nov 12 14:32:22 2005 +0000 Fix string output when printing error objects. commit 448649298ec19711242a8a342cea2c5c16399210 Author: skvidal Date: Tue Aug 23 21:09:22 2005 +0000 fix for a traceback when your hardware is failing. :) commit 7f20529487168d8955c7942c058bdd75b40e739c Author: sheltren Date: Sun Aug 21 16:29:32 2005 +0000 add commands to man page, create config files for legacy distributions commit c3bc19ff6b676dbbf7529eb4cc6ab2df7edb4667 Author: skvidal Date: Wed Aug 17 05:11:13 2005 +0000 --quiet flag and add a 'log' method for the primary class. commit 89055c8f57983efc2be4a66a6cf0eeb586675249 Author: skvidal Date: Fri Aug 5 08:12:44 2005 +0000 mock man page from Jeff Sheltren Makefile for docs dir commit 68024d3807345cb90468b1c01a2d35127a3c534e Author: skvidal Date: Fri Aug 5 08:11:17 2005 +0000 added makefile for docs subdir commit b3c67eeedacf17b8296f48f0f2ca0d7f0d8bbc4b Author: skvidal Date: Thu Aug 4 20:53:02 2005 +0000 check in Jeff Sheltren's patch to fix bug: 165069 commit 4154e98e55cf8c87964e9bc127469a18de1e0d6e Author: skvidal Date: Thu Aug 4 07:23:01 2005 +0000 mock.spec: url updates mock.py: fix for rh bug: 163576 Thanks To Adrian Reber commit 95ed513c1ec95a191201bfc37c2ca67b7710770a Author: skvidal Date: Mon Aug 1 05:54:27 2005 +0000 minor README update commit 2868dd1f9b308fb220d9d2e6bd8b7e6af624893f Author: katzj Date: Fri Jul 29 05:11:13 2005 +0000 exclude ppc64 packages in ppc configs. this fixes building of ppc stuff on a ppc64 host commit 228ae5fed4910230044389275f1ce358e96f18d0 Author: skvidal Date: Thu Jul 28 14:02:59 2005 +0000 update the local path commit f2f20891bf2d7c2654a09fbfc92ad114d85e27ee Author: skvidal Date: Tue Jul 26 20:36:41 2005 +0000 fix exception handling commit 4553c6143c93498c92ea49efeeacd393b3948acd Author: skvidal Date: Tue Jul 26 20:17:29 2005 +0000 bump version number to 0.4 commit 46bf3e793226790f61e848a55778c6b6f2327e5f Author: skvidal Date: Tue Jul 26 20:16:21 2005 +0000 make file fix and update spec file commit 9744b0b9e05f3ea3f467cef425a5675e1bc6419e Author: skvidal Date: Tue Jul 26 20:12:16 2005 +0000 fix Makefile commit 0827824cc37c5eb02e0eb5bde4fa3c2bef531714 Author: skvidal Date: Thu Jul 21 14:40:44 2005 +0000 make more exceptions to allow for better exit codes from mock to define failures. commit 95a21ac05f9fae3b8f052d3948e1338595deb593 Author: katzj Date: Thu Jul 14 18:00:26 2005 +0000 add mock-yum wrapper to remove the selinux LD_PRELOAD. also, only set the LD_PRELOAD for use with running yum commit cd8d68c8c300ca0f074aeea8e559b87590309358 Author: skvidal Date: Fri Jul 8 05:49:52 2005 +0000 remove references to mach-helper to fix 161828 commit 621db8f69620eee39ad1b400a1a2cfb581f5a4c0 Author: skvidal Date: Mon Jun 27 03:43:11 2005 +0000 apply ignacio's patch for Makefile and spec file. commit 27476d0782d01c3adbb28eb092727f836ca100a9 Author: dcbw Date: Sat Jun 25 19:00:52 2005 +0000 Fix up basedir, it was actually config['root'] not config['basedir'] that needed to be modified. Sigh. commit 86f2559a5bea3da9fb8e2c06a2635543cb14936f Author: skvidal Date: Sat Jun 25 17:27:29 2005 +0000 make sure statedir is present before writing the statefile commit eaf4015603e628be1d266935f8fc5a3e5380338d Author: skvidal Date: Sat Jun 25 17:23:09 2005 +0000 merge in dcbw's patch for --uniqueext commit c950c6d542b4bd4380d56bfc43c027f950892b91 Author: dcbw Date: Fri Jun 24 01:35:28 2005 +0000 don't close the rootlog before we're done writing to it. commit a8c080a35eab0b1e358e01a90a39bb5d10d73bfc Author: dcbw Date: Fri Jun 24 01:04:25 2005 +0000 Clean up states written to the 'status' file to be less granular and more parser friendly. commit 150ffab02a44a80df533feb6c7bc854be57cdeda Author: katzj Date: Thu Jun 23 20:00:45 2005 +0000 don't do the libselinux preload if selinux is disabled commit 8c96aadf4e9ee140ce5dba4257799f38c70a10a8 Author: skvidal Date: Wed Jun 22 05:38:21 2005 +0000 - add init and clean commands to initialize a buildroot and exit and to clean out the chroot and exit. - make sure the mockconfig.log output is flushed. commit bf21e37fbedb0d9f1047cf1c96b7a3073f717137 Author: dcbw Date: Tue Jun 21 17:48:06 2005 +0000 Make statedir function correctly, add newlines to config dump file commit 16ca74c8b32374a1e1c051eac08b237265514e17 Author: dcbw Date: Tue Jun 21 15:53:55 2005 +0000 Fix syntax error in mock.py commit a3432e75caac0144015b65822f1cd6816187a85a Author: skvidal Date: Tue Jun 21 15:23:59 2005 +0000 update changelog to make dcbw happy commit 6e1f27d40906ade21192bc1685f5aced8141689e Author: skvidal Date: Tue Jun 21 15:23:27 2005 +0000 remove dcbw's rogue changelog change commit e06a168216e9a84960467e62a5c7a83cfbd14461 Author: dcbw Date: Tue Jun 21 14:11:17 2005 +0000 2005-06-21 10:02 dcbw * mock.py: Fix traceback in clean() when self.basedir doesn't yet exist. Fix traceback when call to Root() raises an exception and doesn't therefore set 'my' commit 7cdc031a91e055a43b53ac9f6f39c1b6c638ee63 Author: skvidal Date: Tue Jun 21 13:47:33 2005 +0000 --statedir on cli write out some of config into resultdir in a file named mockconfig.log commit 2ffe295af6668bf6fde1b0b072905e8369b46700 Author: katzj Date: Fri Jun 17 21:11:59 2005 +0000 don't allow APT_CONFIG since apt is irrelevant to mock commit 29549c37ff777c9c8ce5e35385f1b2975aada908 Author: katzj Date: Fri Jun 17 20:53:31 2005 +0000 * build libselinux-mock as a shared lib that gets installed into LIBDIR * LD_PRELOAD libselinux-mock if we're running with selinux. this involves linking with libselinux. if you're anti-selinux, build with 'make NOSELINUX=1'. this lets mock work on systems running targeted policy at least only ugliness here is that if the preload is being used, you get errors about being unable to load it in the chroot from ld. it doesn't cause problems, it's just aesthetically ugly. commit d4b15286d03862f05e4e69570e10ba5aeb282e6e Author: skvidal Date: Thu Jun 16 20:07:51 2005 +0000 - catch srpm not found traceback - fix fc4 config files commit 79d8855472cf6202ff08ab62ef2db12b45524cae Author: katzj Date: Sun Jun 12 23:35:39 2005 +0000 don't allow running as root (#159986) commit daa8ef76465e3d8b870d1724eb10074348f55b5c Author: katzj Date: Sun Jun 12 23:33:30 2005 +0000 error out if the user didn't pass a real srpm (#159987) commit 0804b966a4864c4a2955126c26da46a33b3b6ad1 Author: katzj Date: Sun Jun 12 23:23:47 2005 +0000 add config files for fc 4 and 5. make the development config file a symlink at install time since cvs can't really handle symlinks commit b953cfa0345527398cf275b9a5d2c46bac824605 Author: skvidal Date: Sun Jun 12 03:56:22 2005 +0000 label 0.3 commit 34f8d60684bbf72cbbb6e98be804340377d28b09 Author: skvidal Date: Sun Jun 12 03:38:19 2005 +0000 security fix - pointed out by Toshio Kuratomi commit d973ad1db297026ecee2fc599395f923568f94d2 Author: skvidal Date: Sun Jun 5 14:51:59 2005 +0000 changes to spec file for fedora extras commit 101e43d37ec9afc91b14e7357f6302456f184814 Author: skvidal Date: Sun Jun 5 08:03:03 2005 +0000 few more fixes commit c367760316e841531ad13b4156a51bff218841b0 Author: skvidal Date: Sun Jun 5 08:00:19 2005 +0000 clean up spec file for fedora extras commit 253c2e6a6860b1949332cf1113160a2e84b43ec3 Author: skvidal Date: Sat May 28 17:25:48 2005 +0000 change make clean in . of dist dir commit 31530541c0e97c0c34d2039b4bafa1503a438944 Author: skvidal Date: Sat May 28 17:24:49 2005 +0000 update changelog commit ca078c79cd50361ab94c4bc10bf925b688b24203 Author: skvidal Date: Sat May 28 17:24:31 2005 +0000 add changelog to spec file commit 6e9255cdfee7d509eca4007805fb1d4af3174161 Author: skvidal Date: Sat May 28 17:18:49 2005 +0000 correct umount_by_file problem with trailing \n commit 553f1b20be4eafadb373b658d461f54d136e7fed Author: skvidal Date: Sat May 28 16:40:04 2005 +0000 spec file fix commit 765f5f225a1fdc99fb6fe25cc98bfa246c8ba2c5 Author: skvidal Date: Sat May 28 16:34:25 2005 +0000 added changelog commit de1e2f5a7967786ed2c2b5cb514bd0a51747557d Author: skvidal Date: Sat May 28 16:29:45 2005 +0000 make the default.cfg symlink commit 4fe0b9451b87bd8f750f06b7a2f6ffd4a80a2516 Author: skvidal Date: Thu May 19 14:24:40 2005 +0000 - allow users other than uid=500,gid=500 - fix warnings in mock-helper - fix umount of proc and devpts commit 0ac5412e2c02b5f3f61ea05cc864c32e28d1351e Author: skvidal Date: Mon May 16 15:07:51 2005 +0000 pychecker is my friend commit ee35d5e35fd04ac31c363d519709567ce9c32486 Author: skvidal Date: Mon May 16 15:04:44 2005 +0000 - default now the default config file - checks for membership in mock group before running - run yum update if the chroot is set to not be cleaned out commit 226ffeaa2cc8d41157426a37b35b8832a1fd0d3c Author: skvidal Date: Mon May 16 06:27:02 2005 +0000 - update copyright info - update README with some more content and TODOs commit 4cdcf0d2ec19115d0067a8c6c4e895b6418e3a9e Author: skvidal Date: Mon May 16 02:44:00 2005 +0000 Initial revision mock-1.1.33/mock.spec.in0000664001204700120500000010614412205226506011667 00000000000000# next four lines substituted by autoconf %define major @RELEASE_MAJOR@ %define minor @RELEASE_MINOR@ %define sub @RELEASE_SUBLEVEL@ %define extralevel @RELEASE_RPM_EXTRALEVEL@ %define release_name mock %define release_version %{major}.%{minor}.%{sub}%{extralevel} %{!?python_sitelib: %define python_sitelib %(%{__python} -c "from distutils.sysconfig import get_python_lib; print get_python_lib()")} # mock group id allocate for Fedora %global mockgid 135 Summary: Builds packages inside chroots Name: mock Version: %{release_version} Release: 1%{?dist} License: GPLv2+ Group: Development/Tools Source: https://git.fedorahosted.org/cgit/mock.git/snapshot/%{name}-%{version}.tar.gz URL: http://fedoraproject.org/wiki/Projects/Mock BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) BuildArch: noarch Requires: python >= 2.6, yum >= 2.4, yum-utils >= 1.1.9, tar, pigz, python-ctypes, python-decoratortools, usermode Requires: createrepo Requires(pre): shadow-utils Requires(post): coreutils BuildRequires: python-devel %if 0%{?el5} Requires: python-hashlib %endif %description Mock takes an SRPM and builds it in a chroot %package scm Group: Development/Tools Summary: Mock SCM integration module Requires: mock = %{version}-%{release}, cvs, git, subversion, tar %description scm Mock SCM integration module %prep %setup -q %build %configure make %install rm -rf $RPM_BUILD_ROOT make DESTDIR=$RPM_BUILD_ROOT install mkdir -p $RPM_BUILD_ROOT/var/lib/mock mkdir -p $RPM_BUILD_ROOT/var/cache/mock ln -s consolehelper $RPM_BUILD_ROOT/usr/bin/mock # compatibility symlinks # (probably be nuked in the future) pushd $RPM_BUILD_ROOT/etc/mock ln -s epel-5-i386.cfg fedora-5-i386-epel.cfg ln -s epel-5-ppc.cfg fedora-5-ppc-epel.cfg ln -s epel-5-x86_64.cfg fedora-5-x86_64-epel.cfg # more compat, from devel/rawhide rename ln -s fedora-rawhide-i386.cfg fedora-devel-i386.cfg ln -s fedora-rawhide-x86_64.cfg fedora-devel-x86_64.cfg ln -s fedora-rawhide-ppc.cfg fedora-devel-ppc.cfg ln -s fedora-rawhide-ppc64.cfg fedora-devel-ppc64.cfg popd echo "%defattr(0644, root, mock)" > %{name}.cfgs find $RPM_BUILD_ROOT%{_sysconfdir}/mock -name "*.cfg" \ | sed -e "s|^$RPM_BUILD_ROOT|%%config(noreplace) |" >> %{name}.cfgs # just for %%ghosting purposes ln -s fedora-rawhide-x86_64.cfg $RPM_BUILD_ROOT%{_sysconfdir}/mock/default.cfg %clean rm -rf $RPM_BUILD_ROOT %pre # check for existence of mock group, create it if not found getent group mock > /dev/null || groupadd -f -g %mockgid -r mock exit 0 %post # fix cache permissions from old installs chmod 2775 /var/cache/mock # setup default configuration # TODO: use dist and version of install system, not build one if [ ! -e %{_sysconfdir}/%{name}/default.cfg ] ; then # in case of dangling symlink rm -f %{_sysconfdir}/%{name}/default.cfg arch=$(uname -i) for ver in %{?fedora}%{?rhel} rawhide ; do cfg=%{?fedora:fedora}%{?rhel:epel}-$ver-$arch.cfg if [ -e %{_sysconfdir}/%{name}/$cfg ] ; then ln -s -f $cfg %{_sysconfdir}/%{name}/default.cfg exit 0 fi done fi : %files -f %{name}.cfgs %defattr(-, root, root) # executables %{_bindir}/mock %{_bindir}/mockchain %attr(0755, root, root) %{_sbindir}/mock # python stuff %{python_sitelib}/* %exclude %{python_sitelib}/mockbuild/scm.* # config files %dir %{_sysconfdir}/%{name} %ghost %config(noreplace,missingok) %{_sysconfdir}/%{name}/default.cfg %config(noreplace) %{_sysconfdir}/%{name}/*.ini %config(noreplace) %{_sysconfdir}/pam.d/%{name} %config(noreplace) %{_sysconfdir}/security/console.apps/%{name} %{_sysconfdir}/bash_completion.d # docs %{_mandir}/man1/mock.1* %{_mandir}/man1/mockchain.1* %doc ChangeLog # cache & build dirs %defattr(0775, root, mock, 02775) %dir /var/cache/mock %dir /var/lib/mock %files scm %defattr(-, root, root) %{python_sitelib}/mockbuild/scm.py* %changelog * Wed Aug 21 2013 Clark Williams - 1.1.33-1 - removed f17 configs - added f20 configs - fixed mockchain to use mock config default setup [BZ# 962573] - remove bogus lockfile dir in _setupDirs() [BZ# 894305] * Sat Aug 03 2013 Fedora Release Engineering - 1.1.32-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild * Thu Apr 18 2013 Clark Williams - 1.1.32-1 - fixed post scriptlet to use correct keyword to getent * Fri Apr 12 2013 Clark Williams - 1.1.31-1 - removed f16 configurations files - selinux plugin: modify to catch yum-builddep in callback [BZ# 923927] - fix logging assumption in main mock file [BZ# 912624] - initial cut at chroot_scan plugin [BZ# 441090] - updated specfile to use static mock gid 135 - from Marko Myllynen : - separate scm module into separate package [BZ# 798367] - scm plugin: Handle filenames w/ spaces in SCM/git [BZ# 915264] - scm plugin: if tar supports --exlcude-vcs use it [BZ# 824848] - from Shad L. Lords : - mounts plugin: removed redundant '-t' specified for vfstype [BZ# 910857] - from Justin Lewis Salmon : - root cache plugin: add the --cache-alternations option [BZ# 905363] * Thu Mar 28 2013 Clark Williams - 1.1.30-1 - beef up the logic to remove RPM lock files inside the chroot - add backup-before-clean configuration options [BZ# 799639] - added fedora-19 config files [BZ# 922268] - package_state plugin: don't run repoquery when offline [BZ# 927496] * Fri Feb 22 2013 Clark Williams - 1.1.29-1 - move CLONE_NEWUTS to extended unshare options [BZ# 890695] - make epel-5-* config files safe to eval [BZ# 903686] - remove CLONE_NEWPID (for now) from unshare(2) call [BZ# 894623] - initialize package_state_opts so that package_state plugin will work - change default tests environment to be -i386 - From Tim Woods - Fix mockchain repo id calculation [BZ# 880849] - From Tzafrir Cohen - Fix most bashism in test scripts - From Seth Vidal : - mockchain: allow for a non-username tmpdir prefix - mockchain: comma is a protected character make it _ instead * Mon Sep 24 2012 Clark Williams - 1.1.28-1 - add updates-testing stanza to fedora-1x-*.cfg [BZ# 610826] - modify scrub to handle non-existant chroots [BZ# 860368] * Fri Sep 7 2012 Clark Williams - 1.1.27-1 - fixed configs test report to indicate configuration failure total - remove dead code, unused array 'legal_arches' - add an 'age_check' parameter to root_cache - deal with NFS home directories and root_cache issues [BZ# 649192] - from Mike Miller : - Fix mock kernel version comparison [BZ# 847473] - from Mathieu Bridon : - fix various start/finish state problems [BZ# 835633] - from Colin Walters : - add CLONE_NEWPID and CLONE_NEWIPC to unshare call [BZ# 851340] * Fri Aug 10 2012 Dennis Gilmore - 1.1.26-2 - add f18 configs - add rawhide s390 config * Mon Aug 6 2012 Clark Williams - 1.1.26-1 - move the fedora-17-ppc* configs into the configs directory * Tue Jul 31 2012 Clark Williams - 1.1.25-1 - From Karsten Hopp : - added ppc and ppc64 configs for fedora 17 * Fri Jul 27 2012 Clark Williams - 1.1.24-1 - Fixed error when calling os.getlogin() [BZ# 843434] - removed fedora-15 config files - from Matt McCutchen : - allowed common options to be added to yum commands [BZ# 734576] - from Ville Skyttä : - added mockchain completion - from Seth Vidal : - added package_state_plugin * Thu Jun 7 2012 Clark Williams - 1.1.23-1 - modified startup code to only set mock group [BZ# 809676] - add CLONE_NEWUTS to unshare(2) call [BZ# 818445] - from Seth Vidal : - add mockchain to mock [BZ# 812477] - from Marko Myllynen : - fix write_tar check in scm.py [BZ# 828677] - from Masatake YAMATO : - added option to set a plugin parameter value [BZ# 754321] * Thu Mar 29 2012 Clark Williams - 1.1.22-1 - fix SCM problem with SSH_AUTH_SOCK [BZ# 803217] - From Chris St Pierre : - allow chroot group to be configure option * Wed Feb 8 2012 Clark Williams - 1.1.21-1 - from Dennis Gilmore - add Fedora 17 mock configs - have configs reflect the dropping of dist- for koji repos - add configs for arm hardware floating point * Mon Jan 30 2012 Clark Williams - 1.1.20-1 - changed createrepo invocation to not be done inside the chroot [BZ# 783926] - changed [local] repo definitions in f16+ configs [BZ# 753735] - from Ville Skyttä - Allow setting https, ftp, and no proxy in addition to http. * Mon Jan 2 2012 Clark Williams - 1.1.19-2 - fix missing files from Makefile.am * Mon Jan 2 2012 Clark Williams - 1.1.19-1 - fix dangling symlink when using SCM [BZ# 758781] - remove setting TMPDIR in chroot environment [BZ# 769728] - add code to allow global proxy in chroot [BZ# 766199] - explicitly set unprivileged umask in --shell [BZ# 747119] - add bind-mount config to create sourcedirs [BZ# 706174] - move mount management into classes - update environment management code * Sat Nov 26 2011 Clark Williams - 1.1.18-1 - modify creation of default.cfg link to force creation if the symlink exists but doesn't point to a valid config [BZ# 741145] - remove TZ from default environment [BZ# 754701] - unbuffer output from --chroot command [BZ# 744761] - added -debug stanzas in configs [BZ# 610823] - report package contents of chroot after init [BZ# 736858] - add _umountall() call to clean [BZ# 502922] - updated release checklist overview and 1.1 checklist - add code to tmpfs plugin to try a force umount on umount fail - add 'lazy' option (-l) to umount - prevent exceptions when showing installed packages on EPEL-4 - deleted unused (or cannot be used) configs - from Davi Arnaut - set chroot environment variables from config files [BZ# 753179] * Mon Oct 31 2011 Clark Williams - 1.1.17-1 - fix borken shell argument handling [BZ# 750075] - from Marko Myllynen : - Fix SCM integration on RHEL 5 [BZ# 749518] - from Ville Skyttä : - bash completion fixes * Fri Oct 21 2011 Clark Williams - 1.1.16-1 - modified bind_mount and tmpfs plugins to use hooks for shell and chroot - refactored --shell and --chroot commands [BZ# 619533,728004,745550] - added input validation for --buildsrpm [BZ# 743173] - ensured configs don't have execute bit set [BZ# 744013] - modified root cache pluging to not cache bind mounts [BZ# 744727] - removed invalid excludes from epel-{4,5}-x86_64 configs [BZ# 533762] - From Marko Myllynen : - Set HOME properly when doing SCM checkouts [BZ# 745394] - Support for setting timestamps for Git checkouts [BZ# 745396] - From Yury V. Zaytsev : - fix incorrect-fsf-address rpmlint warning [BZ#741068] - From Jan Vcelak : - resolve SELinux filesystem mountpoint [BZ# 734781] * Fri Sep 23 2011 Clark Williams - 1.1.15-1 - Fixed logging issues due to namespace change [BZ# 740232,739550,739972] - Fixed error removing old RMP db files [BZ# 738052] - From Yury V. Zaytsev : - SELinux plugin uses Python 2.5 syntax [BZ# 740327] - Fix inconsistent permissions in specfile [BZ# 715286] * Fri Sep 9 2011 Clark Williams - 1.1.14-1 - From Toshio Ernie Kuratomi - Fix install path of mockbuild module and default path to module dir * Thu Sep 8 2011 Clark Williams - 1.1.13-1 - add custom exception for unshare(2) failures - change getLog().warn to getLog().warning for consistency - fix namespace collision with python-mock [BZ# 601725] - from Kirby Zhou - remove rpmdb files before rebuilding SRPM [BZ# 719008] - from Marko Myllynen - integrate mock with RHN - from Giam Teck Choon - add support for passing options to yum-buildep via mock cfg * Tue Jul 26 2011 Clark Williams - 1.1.12-1 - remove f13 configs - added exception for unshare(2) failures [BZ# 718714] - added back 'newinstance' mount option to devpts (with symlink logic) - fixed epel-6-* configurations [BZ# 679885, 719740] - from Matt Domsch - tmpfs plugin typo fix * Wed Jun 22 2011 Clark Williams - 1.1.11-1 - remove 'newinstance' mount parameter from devpts filesystem mount (BZ# 711175) - modify --chroot command to print command output - update the python requirement to >= 2.6 for 1.1.x mock branch - updated build procedure using fedpkg - added Fedora 16 configuration files - from James Laska - fix log message typo in SELinux plugin - from Yury V. Zaytsev - Fix inconsistent permissions fixing on /var/cache/mock in SPEC template (BZ 715286) * Fri May 13 2011 Clark Williams - 1.1.10-1 - raise exception if running mock and user not member of mock group (BZ# 630791) - call setsid() to kill controlling terminal in chroot (BZ# 672713,501096) - Went back to creating /dev/tty and /dev/ptmx in all chroots (BZ# 683111) - Fixed problem where mock was not constrained to the chroot (BZ# 669733) - Fix typo in /dev/tty creation code for EPEL{4,5} (BZ# 675803) - From Marko Myllynen : - updated SCM integration (BZ# 670453) - from Masatake YAMATO : - fixed invocation typo in exception.py (BZ# 634555) - From Jan Vcelak : - updated selinux plugin (BZ# 573111, 667190) - From Levente Farkas : - adding missing macro for epel-5 configs (BZ# 695298) - From Mathieu Bridon and Remi Collet : - fix chroot cleanup issues (BZ# 668222) - fix ccache ownership issues (BZ# 700983) - From Dan Horák : - added s390 back as legal arch for s390x (BZ# 678047) - From Ville Skyttä : - Fixes shell escaping issue by using tuples rather than strings * Fri Feb 18 2011 Clark Williams - 1.1.9-1 - fix createrepo generated root-owned repository data (BZ# 668278) - commented out /dev/tty handling code in backend.py (BZ# 609201) - from Ville Skyttä - Use completion goodies from bash-completion >= 1.2 if available. - Add --scm-enable and --scm-option to bash completion. - Delete trailing whitespace. - Add --install bash completion. - Make --enable/disable-plugin completion work again. - From Jesse Keating - Make "dist" for rawhide configs be "rawhide" (BZ# 506157) - Revert "turn off updates-released repository for fedora-14 configs" - From Mike McLean - fix typo in el4/5 /dev/tty creation (fh ticket #13, mwhiteley) - From Dennis Gilmore - Revert "disable the updates repos for F-15 they dont yet exist" - sparc64 boxes can build 32 bit sparc stuff - add rawhide arm config - use the s390 mirrorlists for s390 configs - disable the updates repos for F-15 they dont yet exist - add the f15 mock configs * Fri Dec 17 2010 Clark Williams - 1.1.8-1 - corrected examples section of the mock.1 man page - added logging for 'install' and 'update' commadns (BZ# 594477) - added log file of root cache creation (BZ# 444796) - added logging to the scrub command - added unlockBuildRoot() method to clean up build root lockfile - added retry logic to mock.util.rmtree - removed fedora-12 config files - From Michael Hampton : - Add -f (force) option to userdel when recreating mockbuild user (BZ# 662223) - From Marko Myllynen : - Integrate Mock with SCMs (CVS/Git/SVN) - document SCM build options in usage and man page - From Masatake YAMATO : - add runtime location of plugins (BZ# 634224) * Mon Dec 13 2010 Clark Williams - 1.1.7-1 - add 'legal_host_arches' config option to configs (BZ# 622792) - add root check and group check (BZ# 662223) - from Ville Skyttä : - Try to set up an appropriate default.cfg symlink at post install time - Clean up disttag usage - Drop obsolete and nonfunctional F-8 bits from specfile - Drop no longer used requiresTextFromHdr() and uniqReqs() - Install build deps with yum-builddep - Add comment why binary packages are built with --nodeps * Thu Oct 14 2010 Clark Williams - 1.1.6-1 - replace call to perl with native python edit function - change permissions of selinux plugin 'filesystems' file - from Ville Skyttä : - Find out completions for --*-plugin dynamically - Keep $COLUMNS in consolehelper environment for --help formatting - Document --scrub, --enable-plugin, and --disable-plugin - Fix option name in --enable-plugin/--disable-plugin error string - Add --scrub completion - Complete on *.spm (*.src.rpm are sometimes named like that e.g. in SUSE) - Fix buildsrpm() docstring - Error message improvements * Fri Sep 17 2010 Clark Williams - 1.1.5-1 - fix typo in exception.py - add cmpKernelEVR function to compare kernel versions (BZ# 526414) - change selinux plugin to use tempfilej - added commandline argument checking for --buildsrpm (BZ# 605800) - create empty faillog and lastlog in /var/log (BZ# 585973 & 633435) - changed copyin/copyout prints from debug to info - from Alan Franzoni : - reworked the root object _umountall() method - fix epel4 chroot cleanup and umountall issue - add exception trapping code to _unlock_and_rm_chroot() method * Mon Aug 09 2010 Clark Williams - 1.1.4-1 - pass selinux status to mock.util.rmtree() (BZ# 614440) - change integer constants to symbolic errno constants in util.py - from Paul Howarth - update packages after unpacking root cache (BZ# 557526) - noarch is always a legal arch (BZ# 622170) - exclude bind-mounted cache dirs from root cache - retain order of umount commands (BZ# 620825) - add i586 as legal build target (BZ# 622544) * Tue Aug 03 2010 Clark Williams - 1.1.3-1 - fix umount ordering problem with selinux plugin (BZ# 620825) - setup SELinux state properly (BZ# 620143) * Fri Jul 30 2010 Clark Williams - 1.1.2-1 - From Jan Vcelak : - added selinux plugin - From Kalev Lember : - added max_fs_size parameter for tmpfs plugin - From Ricky Zhou : - allow --sources to specify either single file or directory (BZ# 510409) - From Dennis Gilmore : - update the epel-6 mock configs to point at the beta2 mirrorlist urls - From Paul B. Schroeder : - add the --scrub option for cleaning up cache (BZ# 450726) - added f14 configs - added symlink from /proc/self/fd to /dev/fd in the chroot (BZ# 526414) - added i686 architecture - added logic to detect invalid architecture combinations (BZ# 607144) - added description of how to add user to the mock group (BZ# 570434) - deleted fedora-10 and fedora-11 configs - moved rpmdb clean block so that it works with --offline - changed from referencing defaults.cfs to site-defaults.cfg (BZ# 600487) - fix cachefile generation filtering logic - filter out proc,sys,and dev from cache file creation * Fri May 14 2010 Clark Williams - 1.1.1-1 - patch from Seth Vidal to handle rpmdb cache issue (BZ#591741) * Thu Mar 11 2010 Jesse Keating - 1.1.0-1 - Make the createrepo command arguments optional - Make the createrepo call disabled by default * Fri Feb 19 2010 Clark Williams - 1.0.6-1 - added code to check for SELinux being enabled or disabled and avoid calling 'chcon' if disabled - add conditional Require of python-hashlib if building for the EL5 distro * Wed Feb 17 2010 Clark Williams - 1.0.5-1 - from Jesse Keating : - fixed 'useradd' option conflict with EPEL (-N vs -n) - added Fedora 13 configs * Wed Feb 10 2010 Clark Williams - 1.0.4-1 - added patch from Seth Vidal to automatically run createrepo on generated rpms * Mon Jan 18 2010 Clark Williams - 1.0.3-1 - add logic for handling --unpriv with --shell (BZ# 522505) * Wed Dec 23 2009 Clark Williams - 1.0.2-1 - added IPv6 localhost entry for default /etc/hosts (BZ# 545435) - removed output of gethostname() in IPv4 localhost entry as this caused koji problems and cause 'localhost' to be put into generated rpms, rather than the output of hostname - add code to setup /dev/pts differently on EL* than on FC* hosts * Wed Nov 25 2009 Clark Williams - 1.0.1-1 - Patch from Paul Howarth to fix intermittent problems generating root cache tarball (BZ# 540997) * Mon Nov 23 2009 Clark Williams - 1.0.0-1 - modified pty devpts mount code to actually work (BZ# 510183) - deleted F9 configs - version bump to 1.0.0 * Fri Nov 13 2009 Clark Williams - 0.9.20-1 - conditionalized import of uuid to avoid failure on RHEL5 - added autoconf/automake mojo to prefer using rpmbuild-md5 for cross-platform rpm compatibility * Thu Nov 5 2009 Jesse Keating - 0.9.19-1 - Fix target arch for i386 on 12 and rawhide * Thu Nov 5 2009 Jesse Keating - 0.9.18-1 - Update for Fedora 12 and 13 configs - Patch from dgilmore to clean up epel configs - Update configs for new koji static-repo locations - Don't automatically update the chroot in a --no-clean scenario * Wed Jul 8 2009 Clark Williams - 0.9.17-1 - Patch from Jakub Jelinek for mounting /dev/pts correctly in the chroot (BZ# 510183) - raise exception when --shell specified for uninitialized chroot (BZ# 506288) - add directory and infrastructure to allow dbus to run inside chroot (BZ# 460574) - patch from Levente Farkas to fix exclude in EPEL 5 x86_64 config * Mon May 11 2009 Jesse Keating - 0.9.16-1 - Make F11 and rawhide build i586 on i386 targets. * Mon May 11 2009 Jesse Keating - 0.9.15-1 - Add configs for F11 (jkeating) * Mon Feb 02 2009 Clark Williams - 0.9.14-1 - logging cleanup (mikem) - add new exception for resultdir not available (mebrown) - moved mock cache dir to /var/cache/mock (williams) - added version variable and version banner to logs (williams) - removed import of popen2 to whack deprecated message (williams) - prevent disabling ccache on epel-5 (tmz) - added configs for sparc and s390 (dgilmore) - fixed git log command used in build (tmz) - added copy of spec/sources for building srpms (mebrown) - changed unlink to rmdir (mebrown) - set HOME directory globally (mikeb) - commented out privlege drop in --copyin (williams) * Thu Nov 06 2008 Jesse Keating - 0.9.13-1 - Add configs for F10 (jkeating) * Tue Oct 14 2008 Clark Williams - 0.9.12-1 - internal setarch support for s390/s390x (mikem) - Refer to the .newkey location of current Fedora 8/9 updates. (jkeating) - [bz458234] Picked up corrected patch (pmatilai) * Thu Sep 4 2008 Clark Williams - 0.9.11-1 - added workarounds for rawhide rpm (BZ 455387 and 458234) - disabled tmpfs plugin on epel-4-x86_64 - fixed autotools breakage in configure.ac * Tue May 20 2008 Jesse Keating - 0.9.10-1 - added fix for building F-8 mock (clark) - Update epel configs * Tue Apr 22 2008 Jesse Keating - 0.9.9-1 - Update config files for Fedora 9 - Comment out multilib excludes, no longer needed in F9+ with yum multilib changes * Mon Mar 31 2008 Jesse Keating - 0.9.8-1 - modify rootcache logic to rebuild cache if config files have newer timestamp - For Fedora 8 and higher, use priority failover method - Point to the correct static-repo for rawhide stuff. - Move "devel" to "rawhide" to match current Fedora naming schemes. * Thu Jan 31 2008 Michael Brown - 0.9.7-1 - redo mock.util.do() to use python subprocess module, which should be much more maintainable than our old homegrown code. - Fix exclude= lines once again. Yum fnmatch parser doesn't understand [!x] notation - add --unpriv and --cwd options to run chroot commands without elevated privs and in a specific working directory (under the root). - mount all filesystems when running chroot commands - remove redundant ccache init since we now source /etc/profile.d/ccache.sh * Wed Jan 16 2008 Clark Williams - 0.9.6-1 - renamed configs and put compat symlinks in place - misc cleanups (whitespace fixes, info messages, etc.) - tmpfs plugin fix - split --target and --arch command line arguments - changed from -l to --login on bash invocations - create /dev/full in chroot * Thu Dec 20 2007 Michael Brown - 0.9.5-1 - really fix file-based BuildRequires * Wed Dec 19 2007 Michael Brown - 0.9.4-1 - Result dir was not honoring --uniqueext= - make rpmbuild run under a chroot login shell - mock is now noarch due to drop of all binary components - add tmpfs plugin (disabled by default) - slightly more friendly logs. * Fri Dec 14 2007 Clark Williams - 0.9.3-1 - added '--copyin' and '--copyout' modes - added makeChrootPath() method to Root - replaced most ad hock usages of .rootdir with makeChrootPath() - updated man page && added test cases - added 'help' target to Makefile.am * Thu Dec 13 2007 Michael Brown - 0.9.2-1 - add '--update' mode - fix '--shell' mode * Tue Dec 11 2007 Michael Brown - 0.9.1-1 - fix 'mock shell' command when passing more than one arg. - add --orphanskill mode which only does orphankill - make 'mock --shell' noninteractive and logged to root.log - fix for file-based BuildRequires - add sparcs to constant list for auto-setarch * Tue Dec 11 2007 Michael Brown - 0.8.17-1 - fix 'mock shell' command when passing more than one arg. - add --orphanskill mode which only does orphankill - make 'mock --shell' noninteractive and logged to root.log - fix for file-based BuildRequires - add sparcs to constant list for auto-setarch * Sun Dec 09 2007 Michael Brown - 0.9.0-1 - drop suid helper and use consolehelper instead. - add unshare() call rather than clone(CLONE_NEWNS...) * Sun Dec 09 2007 Michael Brown - 0.8.16-1 - drop FC6 configs. FC6 no longer supported - add --trace cmdline parameter - make logs slightly less verbose * Wed Dec 05 2007 Michael Brown - 0.8.15-1 - fix traceback when root cache doesn't exist. - add "--with", "--without", and "--define" cmdline parameters which are passed to rpmbuild (courtesy Todd Zullinger) * Tue Dec 04 2007 Michael Brown - 0.8.14-1 - fix traceback when cache dir was not found * Tue Dec 04 2007 Michael Brown - 0.8.13-1 - brown-paper-bag bug where built rpm didn't work due to lack of path substitution in mock.py * Mon Dec 03 2007 Michael Brown - 0.8.12-1 - fix builds of multiple srpms - fix 'mock install' - use python-decoratortools for better python 2.3 back compat * Thu Nov 29 2007 Clark Williams - 0.8.11-1 - fixes from mebrown: - added back -q and -v flags - print yum output by default - added --offline option - cleaned up uid handling * Mon Nov 26 2007 Michael Brown - 0.8.10-1 - fix 'shell' command - fix a couple different selinux avc denial messages (didnt affect functionality) * Tue Nov 20 2007 Michael Brown - 0.8.9-1 - Fixes so that mock will run cleanly on RHEL5 - Add glib-devel.i386, glib2-devel.i386 to yum exclude list as it breaks builds. - Add backwards-compatibility code for old-style 'automatically assume rebuild' convention - automake symlink accidentally included in tarball rather than file (py-compile) - update manpage * Mon Nov 19 2007 Michael Brown - 0.8.8-1 - make it run correctly when called by the 'root' user - internal_setarch: optionally run 'setarch' internally. This eliminates the need to run "setarch i386 mock ..." when building on target_arch != build_arch. This is turned on by default. Limitations: must have 'ctypes' python module available, which is only available by default in python 2.5, or as an extension module in <= 2.4. If the 'ctypes' module is not available, this feature will be disabled and you must manually run 'setarch'. - Does not run 'clean' action for 'shell', 'chroot', 'install', or 'installdeps' (docs updated) - fix build for top_builddir != top_srcdir - fix 'installdeps' so that it works with both rpms/srpms - missing device file /dev/ptmx was causing 'expect' command to always fail. Affected any SRPM build that used 'expect'. - hard spec file dep on python >= 2.4 due to python syntax changes. - resultdir can now contain python-string substitutions for any variable in the chroot config. rebuild my.src.rpm - add 'dist' variable to all chroot config files so that it is available for resultdir substitutions. - give good error message when logging.ini cannot be found. - change default logging format to remove verbosity from build.log. - make logging format configurable from defaults.cfg or chroot cfg. - less verbose state.log format * Mon Oct 22 2007 Michael Brown - 0.8.4-1 - fix reported 'bad owner/group' from rpm in some configurations. * Mon Oct 22 2007 Michael Brown - 0.8.3-1 - BZ# 336361 -- cannot su - mockbuild - BZ# 326561 -- update manpage - BZ# 235141 -- error with immutable bit * Sat Oct 20 2007 Michael Brown - 0.8.0-1 - huge number of changes upstream - convert to setuid wrapper instead of old setuid helper - lots of bugfixes and improvements - /var/cache/yum now saved and bind-mounted - ccache integration - rootcache improvements (formerly called autocache) * Mon Aug 27 2007 Michael Brown - 0.7.6-1 - ensure /etc/hosts is created in chroot properly * Mon Aug 13 2007 Clark Williams - 0.7.5-2 - build fix from Roland McGrath to fix compile of selinux lib * Wed Aug 8 2007 Clark Williams - 0.7.5-1 - orphanskill feature (BZ#221351) * Wed Aug 8 2007 Michael Brown - 0.7.5-1 - add example configs to defaults.cfg - dont rebuild cache if not clean build (BZ#250425) * Wed Jul 18 2007 Michael Brown - 0.7.4-1 - return child exit status, so we properly report subcommand failures * Fri Jul 6 2007 Michael Brown - 0.7.3-1 - remove redundant defaults.cfg entries. * Wed Jun 20 2007 Michael Brown - 0.7.2-1 - fix exclude list - remove legacy configs - disable 'local' repos by default (koji-repos) * Wed Jun 13 2007 Michael Brown - 0.7.1-1 - Fix problem with autocache where different users couldnt share same cache - Fix problem creating resolv.conf in rootfs - cleanup perms on rootfs /etc/ * Tue Jun 12 2007 Michael Brown - 0.7.1-1 - add EPEL 5 config files * Mon Jun 11 2007 Clark Williams - 0.7-1 - fixed bind mount problems - added code to allow multiple users to use --no-clean - merged mock-0-6-branch to head and changed version * Thu Jun 7 2007 Clark Williams - 0.6.17-1 - added F-7 config files (BZ#242276) - modified epel configs for changed mirrorlist location (BZ#239981) - added bind mount of /dev (BZ#236428) - added copy of /etc/resolv.conf to chroot (BZ#237663 and BZ#238101) * Tue May 01 2007 Clark Williams - 0.6.16-1 - timeout code adds new cmdline option that will kill build process after specified timeout. Useful for automated builds of things that may hang during build and you just want it to fail. * Tue Apr 10 2007 Clark Williams - 0.6.15-1 - Fixed typo in FC4 -epel configs (BZ 235490) * Sat Feb 24 2007 Clark Williams - 0.6.14-1 - Ville Skyttä's fix for RPM_OPT_FLAGS (BZ 226673) * Tue Feb 20 2007 Clark Williams - 0.6.13-1 - Handle --no-clean option when doing yum.conf symlink (BZ 230824) * Fri Feb 16 2007 Clark Williams - 0.6.12-1 - added safety symlink for yum.conf * Wed Feb 7 2007 Clark Williams - 0.6.11-1 - added error() calls to print command output on failed commands * Tue Feb 6 2007 Clark Williams - 0.6.11-1 - added installdeps command for long-term chroot management * Mon Jan 8 2007 Clark Williams - 0.6.10-1 - Added Josh Boyer's EPEL config files * Tue Nov 21 2006 Clark Williams - 0.6.9-1 - applied Eric Work's patch to fix defaults vs. command line option problem (BZ 215168) - use /etc/mock/defaults.cfg if --configdir specified and no defaults found in the specified configdir (BZ 209407) - applied Jesse Keatings patch for arch specifi config files (BZ 213516) * Mon Oct 30 2006 Clark Williams - 0.6.8-1 - respun tarballs without buildsys rpms * Mon Oct 30 2006 Clark Williams - 0.6.7-1 - updated for FC6 release * Sat Oct 21 2006 Clark Williams - 0.6.6-1 - bumped version to 0.6.6 (fixed tarball problem) * Mon Sep 11 2006 Clark Williams - 0.6.5-1 - changed version number for patch from Karanbir Singh (rpm workaround on CentOS 4.4) * Tue Aug 29 2006 Clark Williams - 0.6.3-1 - changed version number to indicate fix for bz 204051 * Tue Aug 29 2006 Clark Williams - 0.6.2-2 - bumped revision for bz 204051 * Wed Aug 23 2006 Clark Williams - 0.6.2-1 - Updated README - Fixed link problem in etc/Makefile - Bumped version number * Wed Aug 16 2006 Clark Williams - Added buildsys-build specfile to docs - Added disttag - Bumped release number * Wed Jun 7 2006 Seth Vidal - version update * Tue Apr 11 2006 Seth Vidal - specfile version iterate * Tue Dec 27 2005 Seth Vidal - add patch from Andreas Thienemann - adds man page * Sat Jun 11 2005 Seth Vidal - security fix in mock-helper * Sun Jun 5 2005 Seth Vidal - clean up packaging for fedora extras * Thu May 19 2005 Seth Vidal - second packaging and backing down the yum ver req * Sun May 15 2005 Seth Vidal - first version/packaging mock-1.1.33/configure.ac0000664001204700120500000000354112205226221011732 00000000000000# -*- Autoconf -*- # vim:tw=0:et:ts=4:sw=4 # Process this file with autoconf to produce a configure script. #################################### # change version here. --> BOTH PLACES PLEASE! AC_INIT([mock],[1.1.33]) temp_RELEASE_NAME=mock temp_RELEASE_MAJOR=1 temp_RELEASE_MINOR=1 temp_RELEASE_SUBLEVEL=33 temp_RELEASE_EXTRALEVEL= #################################### #AC_PREREQ(2.61) AC_CONFIG_AUX_DIR([build]) AM_INIT_AUTOMAKE([foreign]) AM_MAINTAINER_MODE # Checks for programs. AC_PROG_INSTALL # automake macros AM_PATH_PYTHON # Checks for header files. # Checks for typedefs, structures, and compiler characteristics. # Checks for library functions. # update 'real' variables from the temp variable names. # do this at the end of the file so that they A) are not overwitten by other # autoconf stuff, and B) so that user can override on cmdline for i in RELEASE_NAME RELEASE_MAJOR RELEASE_MINOR RELEASE_SUBLEVEL RELEASE_EXTRALEVEL do varname=temp_$i if test -z "${!i}"; then eval $i=${!varname}; export $i fi done if test -z "$RELEASE_RPM_EXTRALEVEL"; then if test -z "$RELEASE_EXTRALEVEL"; then RELEASE_RPM_EXTRALEVEL=%{nil} else RELEASE_RPM_EXTRALEVEL=$RELEASE_EXTRALEVEL fi fi PACKAGE_VERSION=[`echo ${RELEASE_MAJOR}.${RELEASE_MINOR}.${RELEASE_SUBLEVEL}${RELEASE_EXTRALEVEL}`] PACKAGE_STRING=[`echo ${RELEASE_NAME} ${RELEASE_MAJOR}.${RELEASE_MINOR}.${RELEASE_SUBLEVEL}${RELEASE_EXTRALEVEL}`] VERSION=$PACKAGE_VERSION AM_CONDITIONAL(USE_MD5, test -e /usr/bin/rpmbuild-md5) AC_SUBST([RELEASE_NAME]) AC_SUBST([RELEASE_MAJOR]) AC_SUBST([RELEASE_MINOR]) AC_SUBST([RELEASE_SUBLEVEL]) AC_SUBST([RELEASE_EXTRALEVEL]) AC_SUBST([RELEASE_RPM_EXTRALEVEL]) # generate files and exit #AC_CONFIG_FILES([ Makefile ${PACKAGE_NAME}.spec ]) AC_CONFIG_FILES([ Makefile mock.spec ]) AC_OUTPUT mock-1.1.33/py/0000775001204700120500000000000012205226676010167 500000000000000mock-1.1.33/py/mock.py0000775001204700120500000007416712205226221011416 00000000000000#!/usr/bin/python -tt # vim:expandtab:autoindent:tabstop=4:shiftwidth=4:filetype=python:textwidth=0: # Originally written by Seth Vidal # Sections taken from Mach by Thomas Vander Stichele # Major reorganization and adaptation by Michael Brown # Copyright (C) 2007 Michael E Brown # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Library General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. """ usage: mock [options] {--init|--clean|--scrub=[all,chroot,cache,root-cache,c-cache,yum-cache]} mock [options] [--rebuild] /path/to/srpm(s) mock [options] --buildsrpm {--spec /path/to/spec --sources /path/to/src|--scm-enable [--scm-option key=value]} mock [options] {--shell|--chroot} mock [options] --installdeps {SRPM|RPM} mock [options] --install PACKAGE mock [options] --copyin path [..path] destination mock [options] --copyout path [..path] destination mock [options] --scm-enable [--scm-option key=value] """ # library imports import ConfigParser import grp import logging import logging.config import os import os.path import pwd import sys import time from optparse import OptionParser from glob import glob # all of the variables below are substituted by the build system __VERSION__ = "unreleased_version" SYSCONFDIR = os.path.join(os.path.dirname(os.path.realpath(sys.argv[0])), "..", "etc") PYTHONDIR = os.path.dirname(os.path.realpath(sys.argv[0])) PKGPYTHONDIR = os.path.join(os.path.dirname(os.path.realpath(sys.argv[0])), "mockbuild") MOCKCONFDIR = os.path.join(SYSCONFDIR, "mock") # end build system subs # import all mockbuild.* modules after this. sys.path.insert(0, PYTHONDIR) # set up basic logging until config file can be read FORMAT = "%(levelname)s: %(message)s" logging.basicConfig(format=FORMAT, level=logging.WARNING) log = logging.getLogger() # our imports import mockbuild.exception from mockbuild.trace_decorator import traceLog, decorate import mockbuild.backend import mockbuild.uid import mockbuild.util def scrub_callback(option, opt, value, parser): parser.values.scrub.append(value) parser.values.mode = "clean" def command_parse(config_opts): """return options and args from parsing the command line""" parser = OptionParser(usage=__doc__, version=__VERSION__) # modes (basic commands) parser.add_option("--rebuild", action="store_const", const="rebuild", dest="mode", default='rebuild', help="rebuild the specified SRPM(s)") parser.add_option("--buildsrpm", action="store_const", const="buildsrpm", dest="mode", help="Build a SRPM from spec (--spec ...) and sources (--sources ...) or from SCM") parser.add_option("--shell", action="store_const", const="shell", dest="mode", help="run the specified command interactively within the chroot." " Default command: /bin/sh") parser.add_option("--chroot", action="store_const", const="chroot", dest="mode", help="run the specified command noninteractively within the chroot.") parser.add_option("--clean", action="store_const", const="clean", dest="mode", help="completely remove the specified chroot") scrub_choices = ('chroot', 'cache', 'root-cache', 'c-cache', 'yum-cache', 'all') scrub_metavar = "[all|chroot|cache|root-cache|c-cache|yum-cache]" parser.add_option("--scrub", action="callback", type="choice", default=[], choices=scrub_choices, metavar=scrub_metavar, callback=scrub_callback, help="completely remove the specified chroot or cache dir or all of the chroot and cache") parser.add_option("--init", action="store_const", const="init", dest="mode", help="initialize the chroot, do not build anything") parser.add_option("--installdeps", action="store_const", const="installdeps", dest="mode", help="install build dependencies for a specified SRPM") parser.add_option("--install", action="store_const", const="install", dest="mode", help="install packages using yum") parser.add_option("--update", action="store_const", const="update", dest="mode", help="update installed packages using yum") parser.add_option("--remove", action="store_const", const="remove", dest="mode", help="remove packages using yum") parser.add_option("--orphanskill", action="store_const", const="orphanskill", dest="mode", help="Kill all processes using specified buildroot.") parser.add_option("--copyin", action="store_const", const="copyin", dest="mode", help="Copy file(s) into the specified chroot") parser.add_option("--copyout", action="store_const", const="copyout", dest="mode", help="Copy file(s) from the specified chroot") # options parser.add_option("-r", "--root", action="store", type="string", dest="chroot", help="chroot name/config file name default: %default", default='default') parser.add_option("--offline", action="store_false", dest="online", default=True, help="activate 'offline' mode.") parser.add_option("--no-clean", action ="store_false", dest="clean", help="do not clean chroot before building", default=True) parser.add_option("--cleanup-after", action ="store_true", dest="cleanup_after", default=None, help="Clean chroot after building. Use with --resultdir." " Only active for 'rebuild'.") parser.add_option("--no-cleanup-after", action ="store_false", dest="cleanup_after", default=None, help="Dont clean chroot after building. If automatic" " cleanup is enabled, use this to disable.", ) parser.add_option("--cache-alterations", action="store_true", dest="cache_alterations", default=False, help="Rebuild the root cache after making alterations to the chroot" " (i.e. --install). Only useful when using tmpfs plugin.") parser.add_option("--arch", action ="store", dest="arch", default=None, help="Sets kernel personality().") parser.add_option("--target", action ="store", dest="rpmbuild_arch", default=None, help="passed to rpmbuild as --target") parser.add_option("-D", "--define", action="append", dest="rpmmacros", default=[], type="string", metavar="'MACRO EXPR'", help="define an rpm macro (may be used more than once)") parser.add_option("--with", action="append", dest="rpmwith", default=[], type="string", metavar="option", help="enable configure option for build (may be used more than once)") parser.add_option("--without", action="append", dest="rpmwithout", default=[], type="string", metavar="option", help="disable configure option for build (may be used more than once)") parser.add_option("--resultdir", action="store", type="string", default=None, help="path for resulting files to be put") parser.add_option("--uniqueext", action="store", type="string", default=None, help="Arbitrary, unique extension to append to buildroot" " directory name") parser.add_option("--configdir", action="store", dest="configdir", default=None, help="Change where config files are found") parser.add_option("--rpmbuild_timeout", action="store", dest="rpmbuild_timeout", type="int", default=None, help="Fail build if rpmbuild takes longer than 'timeout'" " seconds ") parser.add_option("--unpriv", action="store_true", default=False, help="Drop privileges before running command when using --chroot") parser.add_option("--cwd", action="store", default=None, metavar="DIR", help="Change to the specified directory (relative to the chroot)" " before running command when using --chroot") parser.add_option("--spec", action="store", help="Specifies spec file to use to build an SRPM (used only with --buildsrpm)") parser.add_option("--sources", action="store", help="Specifies sources (either a single file or a directory of files)" "to use to build an SRPM (used only with --buildsrpm)") # verbosity parser.add_option("-v", "--verbose", action="store_const", const=2, dest="verbose", default=1, help="verbose build") parser.add_option("-q", "--quiet", action="store_const", const=0, dest="verbose", help="quiet build") parser.add_option("--trace", action="store_true", default=False, dest="trace", help="Enable internal mock tracing output.") # plugins parser.add_option("--enable-plugin", action="append", dest="enabled_plugins", type="string", default=[], help="Enable plugin. Currently-available plugins: %s" % repr(config_opts['plugins'])) parser.add_option("--disable-plugin", action="append", dest="disabled_plugins", type="string", default=[], help="Disable plugin. Currently-available plugins: %s" % repr(config_opts['plugins'])) parser.add_option("--plugin-option", action="append", dest="plugin_opts", default=[], type="string", metavar="PLUGIN:KEY=VALUE", help="define an plugin option (may be used more than once)") parser.add_option("--print-root-path", help="print path to chroot root", dest="printrootpath", action="store_true", default=False) # SCM options parser.add_option("--scm-enable", help="build from SCM repository", dest="scm", action="store_true", default=None) parser.add_option("--scm-option", action="append", dest="scm_opts", default=[], type="string", help="define an SCM option (may be used more than once)") (options, args) = parser.parse_args() # handle old-style commands if len(args) and args[0] in ('chroot', 'shell', 'rebuild', 'install', 'installdeps', 'remove', 'init', 'clean'): options.mode = args[0] args = args[1:] # explicitly disallow multiple targets in --target argument if options.rpmbuild_arch: if options.rpmbuild_arch.find(',') != -1: raise mockbuild.exception.BadCmdline, "--target option accepts only one arch. Invalid: %s" % options.rpmbuild_arch if options.mode == 'buildsrpm' and not (options.spec and options.sources): if not options.scm: raise mockbuild.exception.BadCmdline, "Must specify both --spec and --sources with --buildsrpm" if options.spec: options.spec = os.path.expanduser(options.spec) if options.sources: options.sources = os.path.expanduser(options.sources) return (options, args) decorate(traceLog()) def check_arch_combination(target_arch, config_opts): try: legal = config_opts['legal_host_arches'] except KeyError: return host_arch = os.uname()[-1] if host_arch not in legal: raise mockbuild.exception.InvalidArchitecture( "Cannot build target %s on arch %s" % (target_arch, host_arch)) decorate(traceLog()) def do_rebuild(config_opts, chroot, srpms): "rebuilds a list of srpms using provided chroot" if len(srpms) < 1: log.critical("No package specified to rebuild command.") sys.exit(50) # check that everything is kosher. Raises exception on error for hdr in mockbuild.util.yieldSrpmHeaders(srpms): pass start = time.time() try: for srpm in srpms: start = time.time() log.info("Start(%s) Config(%s)" % (srpm, chroot.sharedRootName)) if config_opts['clean'] and chroot.state() != "clean" \ and not config_opts['scm']: chroot.clean() chroot.init() chroot.build(srpm, timeout=config_opts['rpmbuild_timeout']) elapsed = time.time() - start log.info("Done(%s) Config(%s) %d minutes %d seconds" % (srpm, config_opts['chroot_name'], elapsed//60, elapsed%60)) log.info("Results and/or logs in: %s" % chroot.resultdir) if config_opts["cleanup_on_success"]: log.info("Cleaning up build root ('clean_on_success=True')") chroot.clean() if config_opts["createrepo_on_rpms"]: log.info("Running createrepo on binary rpms in resultdir") chroot.uidManager.dropPrivsTemp() cmd = config_opts["createrepo_command"].split() cmd.append(chroot.resultdir) mockbuild.util.do(cmd) chroot.uidManager.restorePrivs() except (Exception, KeyboardInterrupt): elapsed = time.time() - start log.error("Exception(%s) Config(%s) %d minutes %d seconds" % (srpm, chroot.sharedRootName, elapsed//60, elapsed%60)) log.info("Results and/or logs in: %s" % chroot.resultdir) if config_opts["cleanup_on_failure"]: log.info("Cleaning up build root ('clean_on_failure=True')") chroot.clean() raise def do_buildsrpm(config_opts, chroot, options, args): # verify the input command line arguments actually exist if not os.path.isfile(options.spec): raise mockbuild.exception.BadCmdline, \ "input specfile does not exist: %s" % options.spec if not os.path.isdir(options.sources): raise mockbuild.exception.BadCmdline, \ "input sources directory does not exist: %s" % options.sources start = time.time() try: log.info("Start(%s) Config(%s)" % (os.path.basename(options.spec), chroot.sharedRootName)) if config_opts['clean'] and chroot.state() != "clean": chroot.clean() chroot.init() srpm = chroot.buildsrpm(spec=options.spec, sources=options.sources, timeout=config_opts['rpmbuild_timeout']) elapsed = time.time() - start log.info("Done(%s) Config(%s) %d minutes %d seconds" % (os.path.basename(options.spec), config_opts['chroot_name'], elapsed//60, elapsed%60)) log.info("Results and/or logs in: %s" % chroot.resultdir) if config_opts["cleanup_on_success"]: log.info("Cleaning up build root ('clean_on_success=True')") chroot.clean() return srpm except (Exception, KeyboardInterrupt): elapsed = time.time() - start log.error("Exception(%s) Config(%s) %d minutes %d seconds" % (os.path.basename(options.spec), chroot.sharedRootName, elapsed//60, elapsed%60)) log.info("Results and/or logs in: %s" % chroot.resultdir) if config_opts["cleanup_on_failure"]: log.info("Cleaning up build root ('clean_on_failure=True')") chroot.clean() raise def rootcheck(): "verify mock was started correctly (either by sudo or consolehelper)" # if we're root due to sudo or consolehelper, we're ok # if not raise an exception and bail if os.getuid() == 0 and not (os.environ.get("SUDO_UID") or os.environ.get("USERHELPER_UID")): raise RuntimeError, "mock will not run from the root account (needs an unprivileged uid so it can drop privs)" def groupcheck(unprivGid, tgtGid): "verify that the user running mock is part of the correct group" # verify that we're in the correct group (so all our uid/gid manipulations work) inmockgrp = False members = [] for gid in os.getgroups() + [unprivGid]: name = grp.getgrgid(gid).gr_name if gid == tgtGid: inmockgrp = True break members.append(name) if not inmockgrp: name = grp.getgrgid(tgtGid).gr_name raise RuntimeError("Must be member of '%s' group to run mock! (%s)" % (name, ", ".join(members))) def main(ret): "Main executable entry point." # initial sanity check for correct invocation method rootcheck() # drop unprivileged to parse args, etc. # uidManager saves current real uid/gid which are unprivileged (callers) # due to suid helper, our current effective uid is 0 # also supports being run by sudo # # setuid wrapper has real uid = unpriv, effective uid = 0 # sudo sets real/effective = 0, and sets env vars # setuid wrapper clears environment, so there wont be any conflict between these two # old setuid wrapper unprivUid = os.getuid() unprivGid = os.getgid() mockgid = grp.getgrnam('mock').gr_gid # sudo if os.environ.get("SUDO_UID") is not None: unprivUid = int(os.environ['SUDO_UID']) username = os.environ.get("SUDO_USER") os.setgroups((mockgid,)) unprivGid = int(os.environ['SUDO_GID']) # consolehelper if os.environ.get("USERHELPER_UID") is not None: unprivUid = int(os.environ['USERHELPER_UID']) username = pwd.getpwuid(unprivUid)[0] os.setgroups((mockgid,)) unprivGid = pwd.getpwuid(unprivUid)[3] uidManager = mockbuild.uid.uidManager(unprivUid, unprivGid) # go unpriv only when root to make --help etc work for non-mock users if os.geteuid() == 0: uidManager._becomeUser(unprivUid, unprivGid) # defaults config_opts = mockbuild.util.setup_default_config_opts(unprivUid, __VERSION__, PKGPYTHONDIR) (options, args) = command_parse(config_opts) # allow a different mock group to be specified if config_opts['chrootgid'] != mockgid: os.setgroups((mockgid, config_opts['chrootgid'])) if options.printrootpath: options.verbose = 0 # config path -- can be overridden on cmdline config_path = MOCKCONFDIR if options.configdir: config_path = options.configdir # array to save config paths config_opts['config_paths'] = [] # Read in the config files: default, and then user specified for cfg in ( os.path.join(config_path, 'site-defaults.cfg'), '%s/%s.cfg' % (config_path, options.chroot)): if os.path.exists(cfg): config_opts['config_paths'].append(cfg) execfile(cfg) else: log.error("Could not find required config file: %s" % cfg) if options.chroot == "default": log.error(" Did you forget to specify the chroot to use with '-r'?") sys.exit(1) # verify that our unprivileged uid is in the mock group groupcheck(unprivGid, config_opts['chrootgid']) # Read user specific config file cfg = os.path.join(os.path.expanduser('~' + pwd.getpwuid(os.getuid())[0]), '.mock/user.cfg') if os.path.exists(cfg): config_opts['config_paths'].append(cfg) uidManager.dropPrivsTemp() execfile(cfg) uidManager.restorePrivs() # configure logging config_opts['chroot_name'] = options.chroot log_ini = os.path.join(config_path, config_opts["log_config_file"]) if not os.path.exists(log_ini): log.error("Could not find required logging config file: %s" % log_ini) sys.exit(50) try: if not os.path.exists(log_ini): raise IOError, "Could not find log config file %s" % log_ini log_cfg = ConfigParser.ConfigParser() logging.config.fileConfig(log_ini) log_cfg.read(log_ini) except (IOError, OSError, ConfigParser.NoSectionError), exc: log.error("Log config file(%s) not correctly configured: %s" % (log_ini, exc)) sys.exit(50) try: # set up logging format strings config_opts['build_log_fmt_str'] = log_cfg.get("formatter_%s" % config_opts['build_log_fmt_name'], "format", raw=1) config_opts['root_log_fmt_str'] = log_cfg.get("formatter_%s" % config_opts['root_log_fmt_name'], "format", raw=1) config_opts['state_log_fmt_str'] = log_cfg.get("formatter_%s" % config_opts['state_log_fmt_name'], "format", raw=1) except ConfigParser.NoSectionError, exc: log.error("Log config file (%s) missing required section: %s" % (log_ini, exc)) sys.exit(50) # set logging verbosity if options.verbose == 0: log.handlers[0].setLevel(logging.WARNING) tmplog = logging.getLogger("mockbuild.Root.state") if tmplog.handlers: tmplog.handlers[0].setLevel(logging.WARNING) elif options.verbose == 1: log.handlers[0].setLevel(logging.INFO) elif options.verbose == 2: log.handlers[0].setLevel(logging.DEBUG) logging.getLogger("mockbuild.Root.build").propagate = 1 logging.getLogger("mockbuild").propagate = 1 # enable tracing if requested logging.getLogger("trace").propagate=0 if options.trace: logging.getLogger("trace").propagate=1 # cmdline options override config options #set_config_opts_per_cmdline(config_opts, options, args) mockbuild.util.set_config_opts_per_cmdline(config_opts, options, args) # verify that we're not trying to build an arch that we can't check_arch_combination(config_opts['rpmbuild_arch'], config_opts) # default /etc/hosts contents if not config_opts['use_host_resolv'] and not config_opts['files'].has_key('etc/hosts'): config_opts['files']['etc/hosts'] = ''' 127.0.0.1 localhost localhost.localdomain ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 ''' # Fetch and prepare sources from SCM if config_opts['scm']: scmWorker = mockbuild.scm.scmWorker(log, config_opts['scm_opts']) scmWorker.get_sources() (options.sources, options.spec) = scmWorker.prepare_sources() # security cleanup (don't need/want this in the chroot) if os.environ.has_key('SSH_AUTH_SOCK'): del os.environ['SSH_AUTH_SOCK'] # elevate privs uidManager._becomeUser(0, 0) # do whatever we're here to do log.info("mock.py version %s starting..." % __VERSION__) chroot = mockbuild.backend.Root(config_opts, uidManager) chroot.start("run") if options.printrootpath: print chroot.makeChrootPath('') sys.exit(0) # dump configuration to log log.debug("mock final configuration:") for k, v in config_opts.items(): log.debug(" %s: %s" % (k, v)) ret["chroot"] = chroot ret["config_opts"] = config_opts os.umask(002) os.environ["HOME"] = chroot.homedir # New namespace starting from here base_unshare_flags = mockbuild.util.CLONE_NEWNS extended_unshare_flags = base_unshare_flags|mockbuild.util.CLONE_NEWIPC|mockbuild.util.CLONE_NEWUTS try: mockbuild.util.unshare(extended_unshare_flags) except mockbuild.exception.UnshareFailed, e: log.debug("unshare(%d) failed, falling back to unshare(%d)" % (extended_unshare_flags, base_unshare_flags)) try: mockbuild.util.unshare(base_unshare_flags) except mockbuild.exception.UnshareFailed, e: log.error("Namespace unshare failed.") sys.exit(e.resultcode) # set personality (ie. setarch) if config_opts['internal_setarch']: mockbuild.util.condPersonality(config_opts['target_arch']) if options.mode == 'init': if config_opts['clean']: chroot.clean() chroot.init() elif options.mode == 'clean': if len(options.scrub) == 0: chroot.clean() else: chroot.scrub(options.scrub) elif options.mode == 'shell': if not os.path.exists(chroot.makeChrootPath()): raise mockbuild.exception.ChrootNotInitialized, \ "chroot %s not initialized!" % chroot.makeChrootPath() if len(args): cmd = ' '.join(args) else: cmd = None sys.exit(chroot.shell(options, cmd)) elif options.mode == 'chroot': if not os.path.exists(chroot.makeChrootPath()): raise mockbuild.exception.ChrootNotInitialized, \ "chroot %s not initialized!" % chroot.makeChrootPath() if len(args) == 0: log.critical("You must specify a command to run with --chroot") sys.exit(50) chroot.chroot(args, options) elif options.mode == 'installdeps': if len(args) == 0: log.critical("You must specify an SRPM file with --installdeps") sys.exit(50) for hdr in mockbuild.util.yieldSrpmHeaders(args, plainRpmOk=1): pass chroot.tryLockBuildRoot() try: chroot._mountall() chroot.installSrpmDeps(*args) finally: chroot._umountall() chroot.unlockBuildRoot() elif options.mode == 'install': if len(args) == 0: log.critical("You must specify a package list to install.") sys.exit(50) chroot._resetLogging() chroot.tryLockBuildRoot() chroot.yumInstall(*args) chroot.unlockBuildRoot() elif options.mode == 'update': chroot._resetLogging() chroot.tryLockBuildRoot() chroot.yumUpdate() chroot.unlockBuildRoot() elif options.mode == 'remove': if len(args) == 0: log.critical("You must specify a package list to remove.") sys.exit(50) chroot._resetLogging() chroot.tryLockBuildRoot() chroot.yumRemove(*args) chroot.unlockBuildRoot() elif options.mode == 'rebuild': if config_opts['scm']: srpm = do_buildsrpm(config_opts, chroot, options, args) if srpm: args.append(srpm) scmWorker.clean() do_rebuild(config_opts, chroot, args) elif options.mode == 'buildsrpm': do_buildsrpm(config_opts, chroot, options, args) elif options.mode == 'orphanskill': mockbuild.util.orphansKill(chroot.makeChrootPath()) elif options.mode == 'copyin': chroot.tryLockBuildRoot() chroot._resetLogging() #uidManager.dropPrivsForever() if len(args) < 2: log.critical("Must have source and destinations for copyin") sys.exit(50) dest = chroot.makeChrootPath(args[-1]) if len(args) > 2 and not os.path.isdir(dest): log.critical("multiple source files and %s is not a directory!" % dest) sys.exit(50) args = args[:-1] import shutil for src in args: log.info("copying %s to %s" % (src, dest)) if os.path.isdir(src): shutil.copytree(src, dest) else: shutil.copy(src, dest) chroot.unlockBuildRoot() elif options.mode == 'copyout': chroot.tryLockBuildRoot() chroot._resetLogging() uidManager.dropPrivsForever() if len(args) < 2: log.critical("Must have source and destinations for copyout") sys.exit(50) dest = args[-1] if len(args) > 2 and not os.path.isdir(dest): log.critical("multiple source files and %s is not a directory!" % dest) sys.exit(50) args = args[:-1] import shutil for f in args: src = chroot.makeChrootPath(f) log.info("copying %s to %s" % (src, dest)) if os.path.isdir(src): shutil.copytree(src, dest) else: shutil.copy(src, dest) chroot.unlockBuildRoot() chroot._nuke_rpm_db() chroot.finish("run") chroot.alldone() if __name__ == '__main__': # fix for python 2.4 logging module bug: logging.raiseExceptions = 0 exitStatus = 0 killOrphans = 1 try: # sneaky way to ensure that we get passed back parameter even if # we hit an exception. retParams = {} main(retParams) exitStatus = retParams.get("exitStatus", exitStatus) except (SystemExit,): raise except (OSError,), e: if e.errno == 1: print log.error("%s" % str(e)) print log.error("The most common cause for this error is trying to run /usr/sbin/mock as an unprivileged user.") log.error("Check your path to make sure that /usr/bin/ is listed before /usr/sbin, or manually run /usr/bin/mock to see if that fixes this problem.") print else: raise except (KeyboardInterrupt,): exitStatus = 7 log.error("Exiting on user interrupt, -C") except (mockbuild.exception.ResultDirNotAccessible,), exc: exitStatus = exc.resultcode log.error(str(exc)) killOrphans = 0 except (mockbuild.exception.BadCmdline, mockbuild.exception.BuildRootLocked), exc: exitStatus = exc.resultcode log.error(str(exc)) killOrphans = 0 except (mockbuild.exception.Error), exc: exitStatus = exc.resultcode log.error(str(exc)) except (Exception,), exc: exitStatus = 1 log.exception(exc) if killOrphans and retParams: mockbuild.util.orphansKill(retParams["chroot"].makeChrootPath()) logging.shutdown() sys.exit(exitStatus) mock-1.1.33/py/mockbuild/0000775001204700120500000000000012205226676012140 500000000000000mock-1.1.33/py/mockbuild/util.py0000664001204700120500000006012212205226221013372 00000000000000# vim:expandtab:autoindent:tabstop=4:shiftwidth=4:filetype=python:textwidth=0: # License: GPL2 or later see COPYING # Written by Michael Brown # Sections by Seth Vidal # Sections taken from Mach by Thomas Vander Stichele # Copyright (C) 2007 Michael E Brown # python library imports import ctypes import fcntl import os import os.path import rpm import rpmUtils import rpmUtils.transaction import select import shutil import subprocess import time import errno import grp from glob import glob # our imports import mockbuild.exception from mockbuild.trace_decorator import traceLog, decorate, getLog import mockbuild.uid as uid _libc = ctypes.cdll.LoadLibrary(None) _errno = ctypes.c_int.in_dll(_libc, "errno") _libc.personality.argtypes = [ctypes.c_ulong] _libc.personality.restype = ctypes.c_int _libc.unshare.argtypes = [ctypes.c_int,] _libc.unshare.restype = ctypes.c_int # See linux/include/sched.h CLONE_NEWNS = 0x00020000 CLONE_NEWUTS = 0x04000000 CLONE_NEWPID = 0x20000000 CLONE_NEWNET = 0x40000000 CLONE_NEWIPC = 0x08000000 # taken from sys/personality.h PER_LINUX32=0x0008 PER_LINUX=0x0000 personality_defs = { 'x86_64': PER_LINUX, 'ppc64': PER_LINUX, 'sparc64': PER_LINUX, 'i386': PER_LINUX32, 'i586': PER_LINUX32, 'i686': PER_LINUX32, 'ppc': PER_LINUX32, 'sparc': PER_LINUX32, 'sparcv9': PER_LINUX32, 'ia64' : PER_LINUX, 'alpha' : PER_LINUX, 's390' : PER_LINUX32, 's390x' : PER_LINUX, } # classes class commandTimeoutExpired(mockbuild.exception.Error): def __init__(self, msg): mockbuild.exception.Error.__init__(self, msg) self.msg = msg self.resultcode = 10 # functions decorate(traceLog()) def mkdirIfAbsent(*args): for dirName in args: getLog().debug("ensuring that dir exists: %s" % dirName) if not os.path.exists(dirName): try: getLog().debug("creating dir: %s" % dirName) os.makedirs(dirName) except OSError, e: getLog().exception("Could not create dir %s. Error: %s" % (dirName, e)) raise mockbuild.exception.Error, "Could not create dir %s. Error: %s" % (dirName, e) decorate(traceLog()) def touch(fileName): getLog().debug("touching file: %s" % fileName) fo = open(fileName, 'w') fo.close() decorate(traceLog()) def rmtree(path, *args, **kargs): """version os shutil.rmtree that ignores no-such-file-or-directory errors, and tries harder if it finds immutable files""" do_selinux_ops = False if kargs.has_key('selinux'): do_selinux_ops = kargs['selinux'] del kargs['selinux'] tryAgain = 1 retries = 0 failedFilename = None getLog().debug("remove tree: %s" % path) while tryAgain: tryAgain = 0 try: shutil.rmtree(path, *args, **kargs) except OSError, e: if e.errno == errno.ENOENT: # no such file or directory pass elif do_selinux_ops and (e.errno==errno.EPERM or e.errno==errno.EACCES): tryAgain = 1 if failedFilename == e.filename: raise failedFilename = e.filename os.system("chattr -R -i %s" % path) elif e.errno == errno.EBUSY: retries += 1 if retries > 1: raise tryAgain = 1 getLog().debug("retrying failed tree remove after sleeping a bit") time.sleep(2) else: raise from signal import SIGTERM decorate(traceLog()) def orphansKill(rootToKill, killsig=SIGTERM): """kill off anything that is still chrooted.""" getLog().debug("kill orphans") for fn in [ d for d in os.listdir("/proc") if d.isdigit() ]: try: root = os.readlink("/proc/%s/root" % fn) if os.path.realpath(root) == os.path.realpath(rootToKill): getLog().warning("Process ID %s still running in chroot. Killing..." % fn) pid = int(fn, 10) os.kill(pid, killsig) os.waitpid(pid, 0) except OSError, e: pass decorate(traceLog()) def yieldSrpmHeaders(srpms, plainRpmOk=0): ts = rpmUtils.transaction.initReadOnlyTransaction() for srpm in srpms: try: hdr = rpmUtils.miscutils.hdrFromPackage(ts, srpm) except (rpmUtils.RpmUtilsError,), e: raise mockbuild.exception.Error, "Cannot find/open srpm: %s. Error: %s" % (srpm, ''.join(e)) if not plainRpmOk and hdr[rpm.RPMTAG_SOURCEPACKAGE] != 1: raise mockbuild.exception.Error("File is not an srpm: %s." % srpm ) yield hdr decorate(traceLog()) def getNEVRA(hdr): name = hdr[rpm.RPMTAG_NAME] ver = hdr[rpm.RPMTAG_VERSION] rel = hdr[rpm.RPMTAG_RELEASE] epoch = hdr[rpm.RPMTAG_EPOCH] arch = hdr[rpm.RPMTAG_ARCH] if epoch is None: epoch = 0 return (name, epoch, ver, rel, arch) decorate(traceLog()) def cmpKernelVer(str1, str2): 'compare two kernel version strings and return -1, 0, 1 for less, equal, greater' # first try compareVerOnly and fall back to compareEVR try: return rpmUtils.miscutils.compareVerOnly(str1, str2) except AttributeError, e: return rpmUtils.miscutils.compareEVR(('', str1, ''), ('', str2, '')) decorate(traceLog()) def getAddtlReqs(hdr, conf): # Add the 'more_buildreqs' for this SRPM (if defined in config file) (name, epoch, ver, rel, arch) = getNEVRA(hdr) reqlist = [] for this_srpm in ['-'.join([name, ver, rel]), '-'.join([name, ver]), '-'.join([name]),]: if conf.has_key(this_srpm): more_reqs = conf[this_srpm] if type(more_reqs) in (type(u''), type(''),): reqlist.append(more_reqs) else: reqlist.extend(more_reqs) break return rpmUtils.miscutils.unique(reqlist) # not traced... def chomp(line): if line.endswith("\n"): return line[:-1] else: return line decorate(traceLog()) def unshare(flags): getLog().debug("Unsharing. Flags: %s" % flags) try: res = _libc.unshare(flags) if res: raise mockbuild.exception.UnshareFailed(os.strerror(_errno.value)) except AttributeError, e: pass # these are called in child process, so no logging def condChroot(chrootPath): if chrootPath is not None: saved = { "ruid": os.getuid(), "euid": os.geteuid(), } uid.setresuid(0,0,0) os.chdir(chrootPath) os.chroot(chrootPath) uid.setresuid(saved['ruid'], saved['euid']) def condChdir(cwd): if cwd is not None: os.chdir(cwd) def condDropPrivs(uid, gid): if gid is not None: os.setregid(gid, gid) if uid is not None: os.setreuid(uid, uid) def condPersonality(per=None): if per is None or per in ('noarch',): return if personality_defs.get(per, None) is None: return res = _libc.personality(personality_defs[per]) if res == -1: raise OSError(_errno.value, os.strerror(_errno.value)) def condEnvironment(env=None): if not env: return getLog().debug("child environment: %s" % env) os.environ.clear() for k in env.keys(): os.putenv(k, env[k]) def logOutput(fds, logger, returnOutput=1, start=0, timeout=0, printOutput=False): output="" done = 0 # set all fds to nonblocking for fd in fds: flags = fcntl.fcntl(fd, fcntl.F_GETFL) if not fd.closed: fcntl.fcntl(fd, fcntl.F_SETFL, flags| os.O_NONBLOCK) tail = "" while not done: if (time.time() - start)>timeout and timeout!=0: done = 1 break i_rdy,o_rdy,e_rdy = select.select(fds,[],[],1) for s in i_rdy: # slurp as much input as is ready input = s.read() if input == "": done = 1 break if logger is not None: lines = input.split("\n") if tail: lines[0] = tail + lines[0] # we may not have all of the last line tail = lines.pop() for line in lines: if line == '': continue logger.debug(line) for h in logger.handlers: h.flush() if returnOutput: output += input if printOutput: print input, if tail and logger is not None: logger.debug(tail) return output decorate(traceLog()) def selinuxEnabled(): """Check if SELinux is enabled (enforcing or permissive).""" for mount in open("/proc/mounts").readlines(): (fstype, mountpoint, garbage) = mount.split(None, 2) if fstype == "selinuxfs": selinux_mountpoint = mountpoint break else: selinux_mountpoint = "/selinux" try: enforce_filename = os.path.join(selinux_mountpoint, "enforce") if open(enforce_filename).read().strip() in ("1", "0"): return True except: pass return False # logger = # output = [1|0] # chrootPath # # The "Not-as-complicated" version # decorate(traceLog()) def do(command, shell=False, chrootPath=None, cwd=None, timeout=0, raiseExc=True, returnOutput=0, uid=None, gid=None, personality=None, printOutput=False, env=None, *args, **kargs): logger = kargs.get("logger", getLog()) output = "" start = time.time() preexec = ChildPreExec(personality, chrootPath, cwd, uid, gid) if env is None: env = clean_env() try: child = None logger.debug("Executing command: %s with env %s" % (command, env)) child = subprocess.Popen( command, shell=shell, env=env, bufsize=0, close_fds=True, stdin=open("/dev/null", "r"), stdout=subprocess.PIPE, stderr=subprocess.PIPE, preexec_fn = preexec, ) # use select() to poll for output so we dont block output = logOutput([child.stdout, child.stderr], logger, returnOutput, start, timeout, printOutput=printOutput) except: # kill children if they arent done if child is not None and child.returncode is None: os.killpg(child.pid, 9) try: if child is not None: os.waitpid(child.pid, 0) except: pass raise # wait until child is done, kill it if it passes timeout niceExit=1 while child.poll() is None: if (time.time() - start)>timeout and timeout!=0: niceExit=0 os.killpg(child.pid, 15) if (time.time() - start)>(timeout+1) and timeout!=0: niceExit=0 os.killpg(child.pid, 9) if not niceExit: raise commandTimeoutExpired, ("Timeout(%s) expired for command:\n # %s\n%s" % (timeout, command, output)) logger.debug("Child return code was: %s" % str(child.returncode)) if raiseExc and child.returncode: if returnOutput: raise mockbuild.exception.Error, ("Command failed: \n # %s\n%s" % (command, output), child.returncode) else: raise mockbuild.exception.Error, ("Command failed. See logs for output.\n # %s" % (command,), child.returncode) return output class ChildPreExec(object): def __init__(self, personality, chrootPath, cwd, uid, gid, env=None, shell=False): self.personality = personality self.chrootPath = chrootPath self.cwd = cwd self.uid = uid self.gid = gid self.env = env self.shell = shell def __call__(self, *args, **kargs): if not self.shell: os.setsid() os.umask(002) condPersonality(self.personality) condEnvironment(self.env) condChroot(self.chrootPath) condDropPrivs(self.uid, self.gid) condChdir(self.cwd) def is_in_dir(path, directory): """Tests whether `path` is inside `directory`.""" # use realpath to expand symlinks path = os.path.realpath(path) directory = os.path.realpath(directory) return os.path.commonprefix([path, directory]) == directory def doshell(chrootPath=None, environ=None, uid=None, gid=None, cmd=None): log = getLog() log.debug("doshell: chrootPath:%s, uid:%d, gid:%d" % (chrootPath, uid, gid)) if environ is None: environ = clean_env() if not 'PROMPT_COMMAND' in environ: environ['PROMPT_COMMAND'] = 'echo -n ""' if not 'SHELL' in environ: environ['SHELL'] = '/bin/bash' log.debug("doshell environment: %s", environ) if cmd: cmdstr = '/bin/bash -c "%s"' % cmd else: cmdstr = "/bin/bash -i -l" preexec = ChildPreExec(personality=None, chrootPath=chrootPath, cwd=None, uid=uid, gid=gid, env=environ, shell=True) log.debug("doshell: command: %s" % cmdstr) return subprocess.call(cmdstr, preexec_fn=preexec, env=environ, shell=True) def run(cmd, isShell=True): log = getLog() log.debug("run: cmd = %s\n" % cmd) return subprocess.call(cmd, shell=isShell) def clean_env(): env = {'TERM' : 'vt100', 'SHELL' : '/bin/bash', 'HOME' : '/builddir', 'HOSTNAME' : 'mock', 'PATH' : '/usr/bin:/bin:/usr/sbin:/sbin', } env['LANG'] = os.environ.setdefault('LANG', 'en_US.UTF-8') return env def get_fs_type(path): cmd = '/usr/bin/stat -f -L -c %%T %s' % path p = subprocess.Popen(cmd, shell=True, stdout=subprocess.PIPE) p.wait() return p.stdout.readline().strip() def find_non_nfs_dir(): dirs = ('/tmp', '/usr/tmp', '/') for d in dirs: if not get_fs_type(d).startswith('nfs'): return d raise mockbuild.exception.Error('Cannot find non-NFS directory in: %s' % dirs) decorate(traceLog()) def setup_default_config_opts(unprivUid, version, pkgpythondir): "sets up default configuration." config_opts = {} config_opts['version'] = version config_opts['basedir'] = '/var/lib/mock' # root name is automatically added to this config_opts['resultdir'] = '%(basedir)s/%(root)s/result' config_opts['cache_topdir'] = '/var/cache/mock' config_opts['clean'] = True config_opts['chroothome'] = '/builddir' config_opts['log_config_file'] = 'logging.ini' config_opts['rpmbuild_timeout'] = 0 config_opts['chrootuid'] = unprivUid try: config_opts['chrootgid'] = grp.getgrnam("mock")[2] except KeyError: # 'mock' group doesn't exist, must set in config file pass config_opts['build_log_fmt_name'] = "unadorned" config_opts['root_log_fmt_name'] = "detailed" config_opts['state_log_fmt_name'] = "state" config_opts['online'] = True config_opts['internal_dev_setup'] = True config_opts['internal_setarch'] = True # cleanup_on_* only take effect for separate --resultdir # config_opts provides fine-grained control. cmdline only has big hammer config_opts['cleanup_on_success'] = True config_opts['cleanup_on_failure'] = True config_opts['createrepo_on_rpms'] = False config_opts['createrepo_command'] = '/usr/bin/createrepo -d -q -x *.src.rpm' # default command config_opts['backup_on_clean'] = False config_opts['backup_base_dir'] = os.path.join(config_opts['basedir'], "backup") # (global) plugins and plugin configs. # ordering constraings: tmpfs must be first. # root_cache next. # after that, any plugins that must create dirs (yum_cache) # any plugins without preinit hooks should be last. config_opts['plugins'] = ['tmpfs', 'root_cache', 'yum_cache', 'bind_mount', 'ccache', 'selinux', 'package_state', 'chroot_scan'] config_opts['plugin_dir'] = os.path.join(pkgpythondir, "plugins") config_opts['plugin_conf'] = { 'ccache_enable': True, 'ccache_opts': { 'max_cache_size': "4G", 'compress': None, 'dir': "%(cache_topdir)s/%(root)s/ccache/"}, 'yum_cache_enable': True, 'yum_cache_opts': { 'max_age_days': 30, 'max_metadata_age_days': 30, 'dir': "%(cache_topdir)s/%(root)s/yum_cache/", 'online': True,}, 'root_cache_enable': True, 'root_cache_opts': { 'age_check' : True, 'max_age_days': 15, 'dir': "%(cache_topdir)s/%(root)s/root_cache/", 'compress_program': 'pigz', 'exclude_dirs': ["./proc", "./sys", "./dev", "./tmp/ccache", "./var/cache/yum" ], 'extension': '.gz'}, 'bind_mount_enable': True, 'bind_mount_opts': { 'dirs': [ # specify like this: # ('/host/path', '/bind/mount/path/in/chroot/' ), # ('/another/host/path', '/another/bind/mount/path/in/chroot/'), ], 'create_dirs': False,}, 'mount_enable': True, 'mount_opts': {'dirs': [ # specify like this: # ("/dev/device", "/mount/path/in/chroot/", "vfstype", "mount_options"), ]}, 'tmpfs_enable': False, 'tmpfs_opts': { 'required_ram_mb': 900, 'max_fs_size': None}, 'selinux_enable': True, 'selinux_opts': {}, 'package_state_enable' : True, 'package_state_opts' : {}, 'chroot_scan_enable': False, 'chroot_scan_opts': { 'regexes' : [ "\\bcore(\\.\\d+)?$", "\\.log$", ]}, } config_opts['environment'] = { 'TERM': 'vt100', 'SHELL': '/bin/bash', 'HOME': '/builddir', 'HOSTNAME': 'mock', 'PATH': '/usr/bin:/bin:/usr/sbin:/sbin', 'PROMPT_COMMAND': 'echo -n ""', 'LANG': os.environ.setdefault('LANG', 'en_US.UTF-8'), } runtime_plugins = [runtime_plugin for (runtime_plugin, _) in [os.path.splitext(os.path.basename(tmp_path)) for tmp_path in glob(config_opts['plugin_dir'] + "/*.py")] if runtime_plugin not in config_opts['plugins']] for runtime_plugin in sorted(runtime_plugins): config_opts['plugins'].append(runtime_plugin) config_opts['plugin_conf'][runtime_plugin + "_enable"] = False config_opts['plugin_conf'][runtime_plugin + "_opts"] = {} # SCM defaults config_opts['scm'] = False config_opts['scm_opts'] = { 'method': 'git', 'cvs_get': 'cvs -d /srv/cvs co SCM_BRN SCM_PKG', 'git_get': 'git clone SCM_BRN git://localhost/SCM_PKG.git SCM_PKG', 'svn_get': 'svn co file:///srv/svn/SCM_PKG/SCM_BRN SCM_PKG', 'spec': 'SCM_PKG.spec', 'ext_src_dir': '/dev/null', 'write_tar': False, 'git_timestamps': False, } # dependent on guest OS config_opts['useradd'] = \ '/usr/sbin/useradd -o -m -u %(uid)s -g %(gid)s -d %(home)s -n %(user)s' config_opts['use_host_resolv'] = True config_opts['chroot_setup_cmd'] = ('groupinstall', 'buildsys-build') config_opts['target_arch'] = 'i386' config_opts['rpmbuild_arch'] = None # <-- None means set automatically from target_arch config_opts['yum.conf'] = '' config_opts['yum_builddep_opts'] = '' config_opts['yum_common_opts'] = [] config_opts['priorities.conf'] = '\n[main]\nenabled=0' config_opts['rhnplugin.conf'] = '\n[main]\nenabled=0' config_opts['more_buildreqs'] = {} config_opts['files'] = {} config_opts['macros'] = { '%_topdir': '%s/build' % config_opts['chroothome'], '%_rpmfilename': '%%{NAME}-%%{VERSION}-%%{RELEASE}.%%{ARCH}.rpm', } # security config config_opts['no_root_shells'] = False return config_opts decorate(traceLog()) def set_config_opts_per_cmdline(config_opts, options, args): "takes processed cmdline args and sets config options." # do some other options and stuff if options.arch: config_opts['target_arch'] = options.arch if options.rpmbuild_arch: config_opts['rpmbuild_arch'] = options.rpmbuild_arch elif config_opts['rpmbuild_arch'] is None: config_opts['rpmbuild_arch'] = config_opts['target_arch'] if not options.clean: config_opts['clean'] = options.clean for option in options.rpmwith: options.rpmmacros.append("_with_%s --with-%s" % (option.replace("-", "_"), option)) for option in options.rpmwithout: options.rpmmacros.append("_without_%s --without-%s" % (option.replace("-", "_"), option)) for macro in options.rpmmacros: try: k, v = macro.split(" ", 1) if not k.startswith('%'): k = '%%%s' % k config_opts['macros'].update({k: v}) except: raise mockbuild.exception.BadCmdline( "Bad option for '--define' (%s). Use --define 'macro expr'" % macro) if options.resultdir: config_opts['resultdir'] = os.path.expanduser(options.resultdir) if options.uniqueext: config_opts['unique-ext'] = options.uniqueext if options.rpmbuild_timeout is not None: config_opts['rpmbuild_timeout'] = options.rpmbuild_timeout for i in options.disabled_plugins: if i not in config_opts['plugins']: raise mockbuild.exception.BadCmdline( "Bad option for '--disable-plugin=%s'. Expecting one of: %s" % (i, config_opts['plugins'])) config_opts['plugin_conf']['%s_enable' % i] = False for i in options.enabled_plugins: if i not in config_opts['plugins']: raise mockbuild.exception.BadCmdline( "Bad option for '--enable-plugin=%s'. Expecting one of: %s" % (i, config_opts['plugins'])) config_opts['plugin_conf']['%s_enable' % i] = True for option in options.plugin_opts: try: p, kv = option.split(":", 1) k, v = kv.split("=", 1) except: raise mockbuild.exception.BadCmdline( "Bad option for '--plugin-option' (%s). Use --plugin-option 'plugin:key=value'" % option) if p not in config_opts['plugins']: raise mockbuild.exception.BadCmdline( "Bad option for '--plugin-option' (%s). No such plugin: %s" % (option, p)) if v == "False": v = False if v == "True": v = True config_opts['plugin_conf'][p + "_opts"].update({k: v}) if options.mode in ("rebuild",) and len(args) > 1 and not options.resultdir: raise mockbuild.exception.BadCmdline( "Must specify --resultdir when building multiple RPMS.") if options.cleanup_after == False: config_opts['cleanup_on_success'] = False config_opts['cleanup_on_failure'] = False if options.cleanup_after == True: config_opts['cleanup_on_success'] = True config_opts['cleanup_on_failure'] = True # can't cleanup unless resultdir is separate from the root dir rootdir = os.path.join(config_opts['basedir'], config_opts['root']) if mockbuild.util.is_in_dir(config_opts['resultdir'] % config_opts, rootdir): config_opts['cleanup_on_success'] = False config_opts['cleanup_on_failure'] = False config_opts['cache_alterations'] = options.cache_alterations config_opts['online'] = options.online if options.scm: try: from mockbuild import scm except Exception as e: raise mockbuild.exception.BadCmdline( "Mock SCM module not installed: %s" % e) config_opts['scm'] = options.scm for option in options.scm_opts: try: k, v = option.split("=", 1) config_opts['scm_opts'].update({k: v}) except: raise mockbuild.exception.BadCmdline( "Bad option for '--scm-option' (%s). Use --scm-option 'key=value'" % option) mock-1.1.33/py/mockbuild/mounts.py0000664001204700120500000001102712022445447013754 00000000000000#!/usr/bin/python -tt import os import os.path import sys import grp import subprocess import logging import mockbuild.util import mockbuild.exception from mockbuild.trace_decorator import traceLog, decorate class MountPoint(object): '''base class for mounts''' decorate(traceLog()) def __init__(self, mountsource, mountpath): self.mountpath = mountpath self.mountsource = mountsource decorate(traceLog()) def ismounted(self): if self.mountpath in [ x.split()[1] for x in open('/proc/mounts') ]: return True return False class FileSystemMountPoint(MountPoint): '''class for managing filesystem mounts in the chroot''' decorate(traceLog()) def __init__(self, path, filetype=None, device=None, options=None): if not path: raise RuntimeError, "no path specified for mountpoint" if not filetype: raise RuntimeError, "no filetype specified for mountpoint" if filetype == 'pts' or filetype == 'proc' or filetype == 'sys': device = filetype if not device: raise RuntimeError, "no device file specified for mountpoint" MountPoint.__init__(self, mountsource=device, mountpath=path) self.device = device self.path = path self.filetype = filetype self.options = options self.mounted = self.ismounted() decorate(traceLog()) def mount(self): if self.mounted: return cmd = ['/bin/mount', '-n', '-t', self.filetype ] if self.options: cmd += ['-o', self.options ] cmd += [self.device, self.path] try: mockbuild.util.do(cmd) except mockbuild.exception.Error, e: return False self.mounted = True return True decorate(traceLog()) def umount(self, force=False, nowarn=False): if not self.mounted: return cmd = ['/bin/umount', '-n', '-l', self.path] try: mockbuild.util.do(cmd) except mockbuild.exception.Error, e: return False self.mounted = False return True class BindMountPoint(MountPoint): '''class for managing bind-mounts in the chroot''' decorate(traceLog()) def __init__(self, srcpath, bindpath): MountPoint.__init__(self, mountsource=srcpath, mountpath=bindpath) self.srcpath = srcpath self.bindpath = bindpath self.mounted = self.ismounted() decorate(traceLog()) def mount(self): if not self.mounted: cmd = ['/bin/mount', '-n', '--bind', self.srcpath, self.bindpath ] try: mockbuild.util.do(cmd) except mockbuild.exception.Error, e: return False self.mounted = True return True decorate(traceLog()) def umount(self): if self.mounted: cmd = ['/bin/umount', '-n', self.bindpath ] try: mockbuild.util.do(cmd) except mockbuild.exception.Error, e: return False self.mounted = False return True class Mounts(object): '''class to manage all mountpoints''' decorate(traceLog()) def __init__(self, rootObj): self.rootObj = rootObj self.mounts = [ FileSystemMountPoint(filetype='proc', device='mock_chroot_proc', path=rootObj.makeChrootPath('/proc')), FileSystemMountPoint(filetype='sysfs', device='mock_chroot_sys', path=rootObj.makeChrootPath('/sys')), FileSystemMountPoint(filetype='tmpfs', device='mock_chroot_shmfs', path=rootObj.makeChrootPath('/dev/shm')), ] opts = 'gid=%d,mode=0620,ptmxmode=0666' % grp.getgrnam('tty').gr_gid if mockbuild.util.cmpKernelVer(os.uname()[2], '2.6.29') >= 0: opts += ',newinstance' self.mounts.append(FileSystemMountPoint(filetype='devpts', device='mock_chroot_devpts', path=rootObj.makeChrootPath('/dev/pts'), options=opts)) decorate(traceLog()) def add(self, mount): self.mounts.append(mount) decorate(traceLog()) def mountall(self): for m in self.mounts: m.mount() decorate(traceLog()) def umountall(self, force=False, nowarn=False): for m in reversed(self.mounts): m.umount() decorate(traceLog()) def get_mounted(self): return [ m.mountpath for m in self.mounts if m.ismounted() ] decorate(traceLog()) def get_mountpoints(self): return [ m.mountpath for m in self.mounts ] mock-1.1.33/py/mockbuild/trace_decorator.py0000775001204700120500000001073311770702733015600 00000000000000# vim:expandtab:autoindent:tabstop=4:shiftwidth=4:filetype=python:textwidth=0: # License: GPL2 or later see COPYING # Written by Michael Brown # Copyright (C) 2007 Michael E Brown import logging import os import sys import types from peak.util.decorators import rewrap, decorate # defaults to module verbose log # does a late binding on log. Forwards all attributes to logger. # works around problem where reconfiguring the logging module means loggers # configured before reconfig dont output. class getLog(object): def __init__(self, name=None, prefix="", *args, **kargs): if name is None: frame = sys._getframe(1) name = frame.f_globals["__name__"] self.name = prefix + name def __getattr__(self, name): logger = logging.getLogger(self.name) return getattr(logger, name) # emulates logic in logging module to ensure we only log # messages that logger is enabled to produce. def doLog(logger, level, *args, **kargs): if logger.manager.disable >= level: return if logger.isEnabledFor(level): try: logger.handle(logger.makeRecord(logger.name, level, *args, **kargs)) except TypeError: del(kargs["func"]) logger.handle(logger.makeRecord(logger.name, level, *args, **kargs)) def traceLog(log = None): def decorator(func): def trace(*args, **kw): # default to logger that was passed by module, but # can override by passing logger=foo as function parameter. # make sure this doesn't conflict with one of the parameters # you are expecting filename = os.path.normcase(func.func_code.co_filename) func_name = func.func_code.co_name lineno = func.func_code.co_firstlineno l2 = kw.get('logger', log) if l2 is None: l2 = logging.getLogger("trace.%s" % func.__module__) if isinstance(l2, basestring): l2 = logging.getLogger(l2) message = "ENTER %s(" % func_name for arg in args: message = message + repr(arg) + ", " for k,v in kw.items(): message = message + "%s=%s" % (k,repr(v)) message = message + ")" frame = sys._getframe(2) doLog(l2, logging.INFO, os.path.normcase(frame.f_code.co_filename), frame.f_lineno, message, args=[], exc_info=None, func=frame.f_code.co_name) try: result = "Bad exception raised: Exception was not a derived class of 'Exception'" try: result = func(*args, **kw) except (KeyboardInterrupt, Exception), e: result = "EXCEPTION RAISED" doLog(l2, logging.INFO, filename, lineno, "EXCEPTION: %s\n" % e, args=[], exc_info=sys.exc_info(), func=func_name) raise finally: doLog(l2, logging.INFO, filename, lineno, "LEAVE %s --> %s\n" % (func_name, result), args=[], exc_info=None, func=func_name) return result return rewrap(func, trace) return decorator # helper function so we can use back-compat format but not be ugly def decorateAllFunctions(module, logger=None): methods = [ method for method in dir(module) if isinstance(getattr(module, method), types.FunctionType) ] for i in methods: setattr(module, i, traceLog(logger)(getattr(module,i))) # unit tests... if __name__ == "__main__": logging.basicConfig(level=logging.WARNING, format='%(name)s %(levelname)s %(filename)s, %(funcName)s, Line: %(lineno)d: %(message)s',) log = getLog("foobar.bubble") root = getLog(name="") log.setLevel(logging.WARNING) root.setLevel(logging.DEBUG) log.debug(" --> debug") log.error(" --> error") log.warning(" --> warning") log.warn(" --> warn") decorate(traceLog(log)) def testFunc(arg1, arg2="default", *args, **kargs): return 42 testFunc("hello", "world", logger=root) testFunc("happy", "joy", name="skippy") testFunc("hi") decorate(traceLog(root)) def testFunc22(): return testFunc("archie", "bunker") testFunc22() decorate(traceLog(root)) def testGen(): yield 1 yield 2 for i in testGen(): log.debug("got: %s" % i) decorate(traceLog()) def anotherFunc(*args): return testFunc(*args) anotherFunc("pretty") getLog() mock-1.1.33/py/mockbuild/backend.py0000664001204700120500000012056412205226221014013 00000000000000# vim:expandtab:autoindent:tabstop=4:shiftwidth=4:filetype=python:textwidth=0: # License: GPL2 or later see COPYING # Originally written by Seth Vidal # Sections taken from Mach by Thomas Vander Stichele # Major reorganization and adaptation by Michael Brown # Copyright (C) 2007 Michael E Brown # python library imports import fcntl import glob import imp import logging import os import shutil import stat import pwd import grp try: import uuid gotuuid = True except: gotuuid = False # our imports import mockbuild.util import mockbuild.mounts import mockbuild.exception from mockbuild.trace_decorator import traceLog, decorate, getLog # classes class Root(object): """controls setup of chroot environment""" decorate(traceLog()) def __init__(self, config, uidManager): self._state = [] self.uidManager = uidManager self._hooks = {} self.chrootWasCached = False self.chrootWasCleaned = False self.preExistingDeps = [] self.logging_initialized = False self.buildrootLock = None self.version = config['version'] self.sharedRootName = config['root'] if config.has_key('unique-ext'): config['root'] = "%s-%s" % (config['root'], config['unique-ext']) self.basedir = os.path.join(config['basedir'], config['root']) self.rpmbuild_arch = config['rpmbuild_arch'] self._rootdir = os.path.join(self.basedir, 'root') self.homedir = config['chroothome'] self.builddir = os.path.join(self.homedir, 'build') # Environment self.env = config['environment'] # proxy settings for proto in ('http', 'https', 'ftp', 'no'): key = '%s_proxy' % proto value = config.get(key) if value: os.environ[key] = value self.env[key] = value # result dir self.resultdir = config['resultdir'] % config self.root_log = getLog("mockbuild") self.build_log = getLog("mockbuild.Root.build") self._state_log = getLog("mockbuild.Root.state") # config options self.configs = config['config_paths'] self.config_name = config['chroot_name'] self.chrootuid = config['chrootuid'] self.chrootuser = 'mockbuild' self.chrootgid = config['chrootgid'] self.chrootgroup = 'mockbuild' self.yum_conf_content = config['yum.conf'] self.yum_priorities_conf_content = config['priorities.conf'] self.yum_rhnplugin_conf_content = config['rhnplugin.conf'] self.use_host_resolv = config['use_host_resolv'] self.chroot_file_contents = config['files'] self.chroot_setup_cmd = config['chroot_setup_cmd'] if isinstance(self.chroot_setup_cmd, basestring): # accept strings in addition to other sequence types self.chroot_setup_cmd = self.chroot_setup_cmd.split() self.yum_path = '/usr/bin/yum' self.yum_builddep_path = '/usr/bin/yum-builddep' self.yum_builddep_opts = config['yum_builddep_opts'] # place for plugins to add options to all yum commands self.yum_common_opts = config['yum_common_opts'] self.macros = config['macros'] self.more_buildreqs = config['more_buildreqs'] self.cache_topdir = config['cache_topdir'] self.cachedir = os.path.join(self.cache_topdir, self.sharedRootName) self.cache_alterations = config['cache_alterations'] self.useradd = config['useradd'] self.online = config['online'] self.internal_dev_setup = config['internal_dev_setup'] self.backup = config['backup_on_clean'] self.backup_base_dir = config['backup_base_dir'] self.plugins = config['plugins'] self.pluginConf = config['plugin_conf'] self.pluginDir = config['plugin_dir'] for key in self.pluginConf.keys(): if not key.endswith('_opts'): continue self.pluginConf[key]['basedir'] = self.basedir self.pluginConf[key]['cache_topdir'] = self.cache_topdir self.pluginConf[key]['cachedir'] = self.cachedir self.pluginConf[key]['root'] = self.sharedRootName # mount/umount self.mounts = mockbuild.mounts.Mounts(self) self.build_log_fmt_str = config['build_log_fmt_str'] self.root_log_fmt_str = config['root_log_fmt_str'] self._state_log_fmt_str = config['state_log_fmt_str'] self.start("init plugins") self._initPlugins() self.finish("init plugins") # do we allow interactive root shells? self.no_root_shells = config['no_root_shells'] # default to not doing selinux things self.selinux = False # if the selinux plugin is disabled and we have SELinux enabled # on the host, we need to do SELinux things, so set the selinux # state variable to true if self.pluginConf['selinux_enable'] == False and mockbuild.util.selinuxEnabled(): self.selinux = True # ============= # 'Public' API # ============= decorate(traceLog()) def addHook(self, stage, function): hooks = self._hooks.get(stage, []) if function not in hooks: hooks.append(function) self._hooks[stage] = hooks decorate(traceLog()) def state(self): if not len(self._state): raise mockbuild.exception.StateError, "state called on empty state stack" return self._state[-1] def start(self, state): if state == None: raise mockbuild.exception.StateError, "start called with None State" self._state.append(state) self._state_log.info("Start: %s" % state) def finish(self, state): if len(self._state) == 0: raise mockbuild.exception.StateError, "finish called on empty state list" current = self._state.pop() if state != current: raise mockbuild.exception.StateError, "state finish mismatch: current: %s, state: %s" % (current, state) self._state_log.info("Finish: %s" % state) def alldone(self): if len(self._state) != 0: raise mockbuild.exception.StateError, "alldone called with pending states: %s" % ",".join(self._state) decorate(traceLog()) def backup_results(self): srcdir = os.path.join(self.basedir, "result") if not os.path.exists(srcdir): return dstdir = os.path.join(self.backup_base_dir, self.config_name) mockbuild.util.mkdirIfAbsent(dstdir) rpms = glob.glob(os.path.join(srcdir, "*rpm")) if len(rpms) == 0: return self._state_log.info("backup_results: saving with cp %s %s" % (" ".join(rpms), dstdir)) mockbuild.util.run(cmd="cp %s %s" % (" ".join(rpms), dstdir)) decorate(traceLog()) def clean(self): """clean out chroot with extreme prejudice :)""" from signal import SIGKILL self.tryLockBuildRoot() if self.backup: self.backup_results() self.start("clean chroot") self._callHooks('clean') mockbuild.util.orphansKill(self.makeChrootPath()) self._umountall(nowarn=True) self._unlock_and_rm_chroot() self.chrootWasCleaned = True self.finish("clean chroot") self.unlockBuildRoot() decorate(traceLog()) def _unlock_and_rm_chroot(self): if not os.path.exists(self.basedir): return t = self.basedir + ".tmp" if os.path.exists(t): mockbuild.util.rmtree(t, selinux=self.selinux) os.rename(self.basedir, t) self.buildrootLock.close() try: mockbuild.util.rmtree(t, selinux=self.selinux) except OSError, e: self.root_log.error(e) self.root_log.error("contents of /proc/mounts:\n%s" % open('/proc/mounts').read()) self.root_log.error("looking for users of %s" % t) self._show_path_user(t) raise self.root_log.info("chroot (%s) unlocked and deleted" % self.basedir) decorate(traceLog()) def scrub(self, scrub_opts): """clean out chroot and/or cache dirs with extreme prejudice :)""" self.tryLockBuildRoot() statestr = "scrub %s" % scrub_opts self.start(statestr) if os.path.exists(self.resultdir): self._resetLogging() try: self._callHooks('clean') for scrub in scrub_opts: if scrub == 'all': self.root_log.info("scrubbing everything for %s" % self.config_name) self._unlock_and_rm_chroot() self.chrootWasCleaned = True mockbuild.util.rmtree(self.cachedir, selinux=self.selinux) elif scrub == 'chroot': self.root_log.info("scrubbing chroot for %s" % self.config_name) self._unlock_and_rm_chroot() self.chrootWasCleaned = True elif scrub == 'cache': self.root_log.info("scrubbing cache for %s" % self.config_name) mockbuild.util.rmtree(self.cachedir, selinux=self.selinux) elif scrub == 'c-cache': self.root_log.info("scrubbing c-cache for %s" % self.config_name) mockbuild.util.rmtree(os.path.join(self.cachedir, 'ccache'), selinux=self.selinux) elif scrub == 'root-cache': self.root_log.info("scrubbing root-cache for %s" % self.config_name) mockbuild.util.rmtree(os.path.join(self.cachedir, 'root_cache'), selinux=self.selinux) elif scrub == 'yum-cache': self.root_log.info("scrubbing yum-cache for %s" % self.config_name) mockbuild.util.rmtree(os.path.join(self.cachedir, 'yum_cache'), selinux=self.selinux) except IOError, e: getLog().warn("parts of chroot do not exist: %s" % e ) raise #pass finally: print "finishing: %s" % statestr self.finish(statestr) print "unlocking buildroot" self.unlockBuildRoot() decorate(traceLog()) def tryLockBuildRoot(self): self.start("lock buildroot") self._nuke_rpm_db() try: self.buildrootLock = open(os.path.join(self.basedir, "buildroot.lock"), "a+") except IOError, e: return 0 try: fcntl.lockf(self.buildrootLock.fileno(), fcntl.LOCK_EX | fcntl.LOCK_NB) except IOError, e: raise mockbuild.exception.BuildRootLocked, "Build root is locked by another process." return 1 decorate(traceLog()) def unlockBuildRoot(self): if self.buildrootLock: self.buildrootLock.close() try: os.remove(os.path.join(self.basedir, "buildroot.lock")) except OSError,e: pass self._nuke_rpm_db() self.finish("lock buildroot") return 0 decorate(traceLog()) def makeChrootPath(self, *args): '''For safety reasons, self._rootdir should not be used directly. Instead use this handy helper function anytime you want to reference a path in relation to the chroot.''' tmp = self._rootdir + "/" + "/".join(args) return tmp.replace("//", "/") decorate(traceLog()) def init(self): try: self._init() except (KeyboardInterrupt, Exception): self._callHooks('initfailed') raise self._show_installed_packages() decorate(traceLog()) def _init(self): self.start("chroot init") # NOTE: removed the following stuff vs mock v0: # --> /etc/ is no longer 02775 (new privs model) # --> no /etc/yum.conf symlink (F7 and above) # create our base directory hierarchy mockbuild.util.mkdirIfAbsent(self.basedir) mockbuild.util.mkdirIfAbsent(self.makeChrootPath()) self.uidManager.dropPrivsTemp() try: mockbuild.util.mkdirIfAbsent(self.resultdir) except (mockbuild.exception.Error,), e: raise mockbuild.exception.ResultDirNotAccessible( mockbuild.exception.ResultDirNotAccessible.__doc__ % self.resultdir ) self.uidManager.restorePrivs() # lock this buildroot so we dont get stomped on. self.tryLockBuildRoot() # create our log files. (if they havent already) self._resetLogging() # write out config details self.root_log.debug('rootdir = %s' % self.makeChrootPath()) self.root_log.debug('resultdir = %s' % self.resultdir) # set up plugins: getLog().info("calling preinit hooks") self._callHooks('preinit') # create skeleton dirs self._setupDirs() # touch files self._setupFiles() # use yum plugin conf from chroot as needed yumpluginconfdir = self.makeChrootPath('etc', 'yum', 'pluginconf.d') self.yum_conf_content = self.yum_conf_content.replace("plugins=1", "plugins=1\npluginconfpath=" + yumpluginconfdir) # write in yum.conf into chroot # always truncate and overwrite (w+) self.root_log.debug('configure yum') yumconf = self.makeChrootPath('etc', 'yum', 'yum.conf') yumconf_fo = open(yumconf, 'w+') yumconf_fo.write(self.yum_conf_content) yumconf_fo.close() # symlink /etc/yum.conf to /etc/yum/yum.conf (FC6 requires) try: os.unlink(self.makeChrootPath("etc", "yum.conf")) except OSError: pass os.symlink('yum/yum.conf', self.makeChrootPath("etc", "yum.conf")) # write in yum priorities.conf into chroot # always truncate and overwrite (w+) self.root_log.debug('configure yum priorities') mockbuild.util.mkdirIfAbsent(yumpluginconfdir) prioconf = self.makeChrootPath('etc', 'yum', 'pluginconf.d', 'priorities.conf') prioconf_fo = open(prioconf, 'w+') prioconf_fo.write(self.yum_priorities_conf_content) prioconf_fo.close() # write in yum rhnplugin.conf into chroot # always truncate and overwrite (w+) self.root_log.debug('configure yum rhnplugin') mockbuild.util.mkdirIfAbsent(yumpluginconfdir) rhnconf = self.makeChrootPath('etc', 'yum', 'pluginconf.d', 'rhnplugin.conf') rhnconf_fo = open(rhnconf, 'w+') rhnconf_fo.write(self.yum_rhnplugin_conf_content) rhnconf_fo.close() # set up resolver configuration if self.use_host_resolv: etcdir = self.makeChrootPath('etc') resolvconfpath = self.makeChrootPath('etc', 'resolv.conf') if os.path.exists(resolvconfpath): os.remove(resolvconfpath) shutil.copy2('/etc/resolv.conf', etcdir) hostspath = self.makeChrootPath('etc', 'hosts') if os.path.exists(hostspath): os.remove(hostspath) shutil.copy2('/etc/hosts', etcdir) if gotuuid: # Anything that tries to use libdbus inside the chroot will require this # FIXME - merge this code with other OS-image building code machine_uuid = uuid.uuid4().hex dbus_uuid_path = self.makeChrootPath('var', 'lib', 'dbus', 'machine-id') f = open(dbus_uuid_path, 'w') f.write(machine_uuid) f.write('\n') f.close() # files that need doing for key in self.chroot_file_contents: p = self.makeChrootPath(key) if not os.path.exists(p): # create directory if necessary mockbuild.util.mkdirIfAbsent(os.path.dirname(p)) # write file fo = open(p, 'w+') fo.write(self.chroot_file_contents[key]) fo.close() if self.internal_dev_setup: self._setupDev() # yum stuff try: self.start("yum update") self._mountall() if self.chrootWasCleaned: self.yum_init_install_output = self._yum(self.chroot_setup_cmd, returnOutput=1) if self.chrootWasCached: self._yum(('update',), returnOutput=1) self.finish("yum update") # create user self._makeBuildUser() # create rpmbuild dir self._buildDirSetup() # set up timezone to match host localtimedir = self.makeChrootPath('etc') localtimepath = self.makeChrootPath('etc', 'localtime') if os.path.exists(localtimepath): os.remove(localtimepath) shutil.copy2('/etc/localtime', localtimedir) # done with init self._callHooks('postinit') finally: self._umountall() self.unlockBuildRoot() self.finish("chroot init") decorate(traceLog()) def _setupDev(self, interactive=False): self.start("device setup") try: # files in /dev mockbuild.util.rmtree(self.makeChrootPath("dev"), selinux=self.selinux) mockbuild.util.mkdirIfAbsent(self.makeChrootPath("dev", "pts")) mockbuild.util.mkdirIfAbsent(self.makeChrootPath("dev", "shm")) prevMask = os.umask(0000) devFiles = [ (stat.S_IFCHR | 0666, os.makedev(1, 3), "dev/null"), (stat.S_IFCHR | 0666, os.makedev(1, 7), "dev/full"), (stat.S_IFCHR | 0666, os.makedev(1, 5), "dev/zero"), (stat.S_IFCHR | 0666, os.makedev(1, 8), "dev/random"), (stat.S_IFCHR | 0444, os.makedev(1, 9), "dev/urandom"), (stat.S_IFCHR | 0666, os.makedev(5, 0), "dev/tty"), (stat.S_IFCHR | 0600, os.makedev(5, 1), "dev/console"), (stat.S_IFCHR | 0666, os.makedev(5, 2), "dev/ptmx"), ] kver = os.uname()[2] getLog().debug("kver == %s" % kver) for i in devFiles: # create node os.mknod( self.makeChrootPath(i[2]), i[0], i[1]) # set context. (only necessary if host running selinux enabled.) # fails gracefully if chcon not installed. if self.selinux: mockbuild.util.do( ["chcon", "--reference=/%s"% i[2], self.makeChrootPath(i[2])] , raiseExc=0, shell=False, env=self.env) os.symlink("/proc/self/fd/0", self.makeChrootPath("dev/stdin")) os.symlink("/proc/self/fd/1", self.makeChrootPath("dev/stdout")) os.symlink("/proc/self/fd/2", self.makeChrootPath("dev/stderr")) os.chown(self.makeChrootPath('dev/tty'), pwd.getpwnam('root')[2], grp.getgrnam('tty')[2]) os.chown(self.makeChrootPath('dev/ptmx'), pwd.getpwnam('root')[2], grp.getgrnam('tty')[2]) # symlink /dev/fd in the chroot for everything except RHEL4 if mockbuild.util.cmpKernelVer(kver, '2.6.9') > 0: os.symlink("/proc/self/fd", self.makeChrootPath("dev/fd")) os.umask(prevMask) if mockbuild.util.cmpKernelVer(kver, '2.6.29') >= 0: os.unlink(self.makeChrootPath('/dev/ptmx')) os.symlink("pts/ptmx", self.makeChrootPath('/dev/ptmx')) finally: self.finish("device setup") decorate(traceLog()) def _setupDirs(self): # create skeleton dirs self.root_log.debug('create skeleton dirs') for item in [ 'var/lib/rpm', 'var/lib/yum', 'var/lib/dbus', 'var/log', 'var/cache/yum', 'etc/rpm', 'tmp', 'tmp/ccache', 'var/tmp', 'etc/yum.repos.d', 'etc/yum', 'proc', 'sys', ]: mockbuild.util.mkdirIfAbsent(self.makeChrootPath(item)) decorate(traceLog()) def _setupFiles(self): # touch files self.root_log.debug('touch required files') for item in [self.makeChrootPath('etc', 'mtab'), self.makeChrootPath('etc', 'fstab'), self.makeChrootPath('var', 'log', 'yum.log')]: mockbuild.util.touch(item) decorate(traceLog()) def _nuke_rpm_db(self): """remove rpm DB lock files from the chroot""" for tmp in glob.glob(self.makeChrootPath('var/lib/rpm/__db*')): self.root_log.debug("_nuke_rpm_db: removing %s" % tmp) os.unlink(tmp) # bad hack # comment out decorator here so we dont get double exceptions in the root log #decorate(traceLog()) def doChroot(self, command, shell=True, returnOutput=False, printOutput=False, raiseExc=True, *args, **kargs): """execute given command in root""" self._nuke_rpm_db() return mockbuild.util.do(command, chrootPath=self.makeChrootPath(), env=self.env, raiseExc=raiseExc, returnOutput=returnOutput, shell=shell, printOutput=printOutput, *args, **kargs) def doNonChroot(self, command, shell=True, returnOutput=False, printOutput=False, raiseExc=True, *args, **kargs): '''run a command *without* chrooting''' self._nuke_rpm_db() return mockbuild.util.do(command, env=self.env, raiseExc=raiseExc, returnOutput=returnOutput, shell=shell, printOutput=printOutput, *args, **kargs) decorate(traceLog()) def yumInstall(self, *rpms): """call yum to install the input rpms into the chroot""" # pass build reqs (as strings) to installer self.root_log.info("installing package(s): %s" % " ".join(rpms)) try: self._mountall() output = self._yum(['install'] + list(rpms), returnOutput=1) self.root_log.info(output) finally: self._umountall() decorate(traceLog()) def yumUpdate(self): """use yum to update the chroot""" try: self._mountall() self._yum(('update',), returnOutput=1) finally: self._umountall() decorate(traceLog()) def yumRemove(self, *rpms): """call yum to remove the input rpms from the chroot""" self.root_log.info("removing package(s): %s" % " ".join(rpms)) try: self._mountall() output = self._yum(['remove'] + list(rpms), returnOutput=1) self.root_log.info(output) finally: self._umountall() decorate(traceLog()) def installSrpmDeps(self, *srpms): """figure out deps from srpm. call yum to install them""" try: self.uidManager.becomeUser(0, 0) def _yum_and_check(cmd): output = self._yum(cmd, returnOutput=1) for line in output.split('\n'): if line.lower().find('No Package found for'.lower()) != -1: raise mockbuild.exception.BuildError, "Bad build req: %s. Exiting." % line # first, install pre-existing deps and configured additional ones deps = list(self.preExistingDeps) for hdr in mockbuild.util.yieldSrpmHeaders(srpms, plainRpmOk=1): # get text buildreqs deps.extend(mockbuild.util.getAddtlReqs(hdr, self.more_buildreqs)) if deps: # everything exists, okay, install them all. # pass build reqs to installer args = ['resolvedep'] + deps _yum_and_check(args) # nothing made us exit, so we continue args[0] = 'install' self._yum(args, returnOutput=1) # install actual build dependencies _yum_and_check(['builddep'] + list(srpms)) finally: self.uidManager.restorePrivs() #decorate(traceLog()) def _show_installed_packages(self): '''report the installed packages in the chroot to the root log''' self.root_log.info("Installed packages:") self.doNonChroot( "rpm --root %s -qa" % self.makeChrootPath(), raiseExc=False, uid=self.chrootuid, gid=self.chrootgid, ) # # UNPRIVILEGED: # Everything in this function runs as the build user # -> except hooks. :) # decorate(traceLog()) def build(self, srpm, timeout): """build an srpm into binary rpms, capture log""" # tell caching we are building self._callHooks('earlyprebuild') baserpm = os.path.basename(srpm) buildstate = "build phase for %s" % baserpm self.start(buildstate) try: self._setupDev() self._mountall() # remove rpm db files to prevent version mismatch problems # note: moved to do this before the user change below! self._nuke_rpm_db() # drop privs and become mock user self.uidManager.becomeUser(self.chrootuid, self.chrootgid) buildsetup = "build setup for %s" % baserpm self.start(buildsetup) srpmChrootFilename = self._copySrpmIntoChroot(srpm) srpmBasename = os.path.basename(srpmChrootFilename) # Completely/Permanently drop privs while running the following: self.doChroot( ["rpm", "-Uvh", "--nodeps", srpmChrootFilename], shell=False, uid=self.chrootuid, gid=self.chrootgid, ) # rebuild srpm/rpm from SPEC file specs = glob.glob(self.makeChrootPath(self.builddir, "SPECS", "*.spec")) if len(specs) < 1: raise mockbuild.exception.PkgError, "No Spec file found in srpm: %s" % srpmBasename spec = specs[0] # if there's more than one then someone is an idiot chrootspec = spec.replace(self.makeChrootPath(), '') # get rid of rootdir prefix # Completely/Permanently drop privs while running the following: self.doChroot( ["bash", "--login", "-c", 'rpmbuild -bs --target %s --nodeps %s' % (self.rpmbuild_arch, chrootspec)], shell=False, logger=self.build_log, timeout=timeout, uid=self.chrootuid, gid=self.chrootgid, ) rebuiltSrpmFile = glob.glob("%s/%s/SRPMS/*.src.rpm" % (self.makeChrootPath(), self.builddir)) if len(rebuiltSrpmFile) != 1: raise mockbuild.exception.PkgError, "Expected to find single rebuilt srpm, found %d." % len(rebuiltSrpmFile) rebuiltSrpmFile = rebuiltSrpmFile[0] self.installSrpmDeps(rebuiltSrpmFile) self.finish(buildsetup) #have to permanently drop privs or rpmbuild regains them rpmbuildstate = "rpmbuild -bb %s" % baserpm self.start(rpmbuildstate) # tell caching we are building self._callHooks('prebuild') # --nodeps because rpm in the root may not be able to read rpmdb # created by rpm that created it (outside of chroot) self.doChroot( ["bash", "--login", "-c", 'rpmbuild -bb --target %s --nodeps %s' % (self.rpmbuild_arch, chrootspec)], shell=False, logger=self.build_log, timeout=timeout, uid=self.chrootuid, gid=self.chrootgid, ) bd_out = self.makeChrootPath(self.builddir) rpms = glob.glob(bd_out + '/RPMS/*.rpm') srpms = glob.glob(bd_out + '/SRPMS/*.rpm') packages = rpms + srpms self.root_log.debug("Copying packages to result dir") for item in packages: shutil.copy2(item, self.resultdir) self.finish(rpmbuildstate) finally: self.uidManager.restorePrivs() self._umountall() # tell caching we are done building self._callHooks('postbuild') self.finish(buildstate) def shell(self, options, cmd=None): log = getLog() self.tryLockBuildRoot() log.debug("shell: calling preshell hooks") self._callHooks("preshell") if options.unpriv or self.no_root_shells: uid=self.chrootuid gid=self.chrootgid else: uid=0 gid=0 try: log.debug("shell: setting up root files") self._setupDirs() self._setupDev() self._setupFiles() log.debug("shell: mounting all filesystems") self._mountall() except Exception as e: log.error(e) self.unlockBuildRoot() return mockbuild.exception.RootError(e).resultcode try: self.start("shell") ret = mockbuild.util.doshell(chrootPath=self.makeChrootPath(), environ=self.env, uid=uid, gid=gid, cmd=cmd) finally: log.debug("shell: unmounting all filesystems") self._umountall() self.finish("shell") log.debug("shell: calling postshell hooks") self._callHooks('postshell') self.unlockBuildRoot() return ret def chroot(self, args, options): log = getLog() shell=False if len(args) == 1: args = args[0] shell=True log.info("Running in chroot: %s" % args) self.tryLockBuildRoot() self._resetLogging() self._callHooks("prechroot") try: self._setupDirs() self._setupDev() self._setupFiles() self._mountall() chrootstate = "chroot %s" % args self.start(chrootstate) if options.unpriv: self.doChroot(args, shell=shell, printOutput=True, uid=self.chrootuid, gid=self.chrootgid, cwd=options.cwd) else: self.doChroot(args, shell=shell, cwd=options.cwd, printOutput=True) finally: self._umountall() self.finish(chrootstate) self._callHooks("postchroot") self.unlockBuildRoot() # # UNPRIVILEGED: # Everything in this function runs as the build user # -> except hooks. :) # decorate(traceLog()) def buildsrpm(self, spec, sources, timeout): """build an srpm, capture log""" # tell caching we are building self._callHooks('earlyprebuild') try: self._mountall() self.uidManager.becomeUser(self.chrootuid, self.chrootgid) self.start("buildsrpm") # copy spec/sources shutil.copy(spec, self.makeChrootPath(self.builddir, "SPECS")) # Resolve any symlinks sources = os.path.realpath(sources) if os.path.isdir(sources): mockbuild.util.rmtree(self.makeChrootPath(self.builddir, "SOURCES")) shutil.copytree(sources, self.makeChrootPath(self.builddir, "SOURCES"), symlinks=True) else: shutil.copy(sources, self.makeChrootPath(self.builddir, "SOURCES")) spec = self.makeChrootPath(self.builddir, "SPECS", os.path.basename(spec)) chrootspec = spec.replace(self.makeChrootPath(), '') # get rid of rootdir prefix try: # Completely/Permanently drop privs while running the following: self.start("rpmbuild -bs") self.doChroot( ["bash", "--login", "-c", 'rpmbuild -bs --target %s --nodeps %s' % (self.rpmbuild_arch, chrootspec)], shell=False, logger=self.build_log, timeout=timeout, uid=self.chrootuid, gid=self.chrootgid, ) finally: self.finish("rpmbuild -bs") rebuiltSrpmFile = glob.glob("%s/%s/SRPMS/*.src.rpm" % (self.makeChrootPath(), self.builddir)) if len(rebuiltSrpmFile) != 1: raise mockbuild.exception.PkgError, "Expected to find single rebuilt srpm, found %d." % len(rebuiltSrpmFile) rebuiltSrpmFile = rebuiltSrpmFile[0] srpmBasename = rebuiltSrpmFile.split("/")[-1] self.root_log.debug("Copying package to result dir") shutil.copy2(rebuiltSrpmFile, self.resultdir) resultSrpmFile = self.resultdir + "/" + srpmBasename return resultSrpmFile finally: self.uidManager.restorePrivs() self._umountall() # tell caching we are done building self._callHooks('postbuild') self.finish("buildsrpm") # ============= # 'Private' API # ============= decorate(traceLog()) def _callHooks(self, stage): hooks = self._hooks.get(stage, []) for hook in hooks: hook() decorate(traceLog()) def _initPlugins(self): # Import plugins (simplified copy of what yum does). Can add yum # features later when we prove we need them. for modname, modulefile in [ (p, os.path.join(self.pluginDir, "%s.py" % p)) for p in self.plugins ]: if not self.pluginConf.get("%s_enable"%modname): continue fp, pathname, description = imp.find_module(modname, [self.pluginDir]) try: module = imp.load_module(modname, fp, pathname, description) finally: fp.close() if not hasattr(module, 'requires_api_version'): raise mockbuild.exception.Error('Plugin "%s" doesn\'t specify required API version' % modname) module.init(self, self.pluginConf["%s_opts" % modname]) decorate(traceLog()) def _mountall(self): """mount everything that is queued up for mounting in the chroot""" self.mounts.mountall() decorate(traceLog()) def _umountall(self, nowarn=False): """umount all mounted chroot fs.""" # first try removing all expected mountpoints. self.mounts.umountall(nowarn=nowarn) # then remove anything that might be left around. mountpoints = open("/proc/mounts").read().strip().split("\n") # umount in reverse mount order to prevent nested mount issues that # may prevent clean unmount. for mountline in reversed(mountpoints): mountpoint = mountline.split()[1] if os.path.realpath(mountpoint).startswith(os.path.realpath(self.makeChrootPath()) + "/"): cmd = "umount -n -l %s" % mountpoint self.root_log.warning("Forcibly unmounting '%s' from chroot." % mountpoint) mockbuild.util.do(cmd, raiseExc=0, shell=True, env=self.env) decorate(traceLog()) def _show_path_user(self, path): cmd = ['/sbin/fuser', '-a', '-v', path] self.root_log.debug("using 'fuser' to find users of %s" % path) out = mockbuild.util.do(cmd, returnOutput=1, raiseExc=False, env=self.env) self.root_log.debug(out) return out decorate(traceLog()) def _yum(self, cmd, returnOutput=0): """use yum to install packages/package groups into the chroot""" yumcmd = [self.yum_path] cmdix = 0 # invoke yum-builddep instead of yum if cmd is builddep if cmd[0] == "builddep": yumcmd[0] = self.yum_builddep_path cmdix = 1 if self.yum_builddep_opts: for eachopt in self.yum_builddep_opts.split(): yumcmd.insert(1, '%s' % eachopt) yumcmd.extend(('--installroot', self.makeChrootPath())) if not self.online: yumcmd.append("-C") yumcmd.extend(self.yum_common_opts) yumcmd.extend(cmd[cmdix:]) self.root_log.debug(yumcmd) output = "" self._nuke_rpm_db() try: self._callHooks("preyum") output = mockbuild.util.do(yumcmd, returnOutput=returnOutput, env=self.env) self._callHooks("postyum") return output except mockbuild.exception.Error, e: raise mockbuild.exception.YumError, str(e) decorate(traceLog()) def _makeBuildUser(self): if not os.path.exists(self.makeChrootPath('usr/sbin/useradd')): raise mockbuild.exception.RootError, "Could not find useradd in chroot, maybe the install failed?" # safe and easy. blow away existing /builddir and completely re-create. mockbuild.util.rmtree(self.makeChrootPath(self.homedir), selinux=self.selinux) dets = { 'uid': str(self.chrootuid), 'gid': str(self.chrootgid), 'user': self.chrootuser, 'group': self.chrootgroup, 'home': self.homedir } # ok for these two to fail self.doChroot(['/usr/sbin/userdel', '-r', '-f', dets['user']], shell=False, raiseExc=False) self.doChroot(['/usr/sbin/groupdel', dets['group']], shell=False, raiseExc=False) self.doChroot(['/usr/sbin/groupadd', '-g', dets['gid'], dets['group']], shell=False) self.doChroot(self.useradd % dets, shell=True) self._enable_chrootuser_account() decorate(traceLog()) def _enable_chrootuser_account(self): passwd = self.makeChrootPath('/etc/passwd') lines = open(passwd).readlines() disabled = False newlines = [] for l in lines: parts = l.strip().split(':') if parts[0] == self.chrootuser and parts[1].startswith('!!'): disabled = True parts[1] = parts[1][2:] newlines.append(':'.join(parts)) if disabled: f = open(passwd, "w") for l in newlines: f.write(l+'\n') f.close() decorate(traceLog()) def _resetLogging(self): # ensure we dont attach the handlers multiple times. if self.logging_initialized: return self.logging_initialized = True try: self.uidManager.dropPrivsTemp() # attach logs to log files. # This happens in addition to anything that # is set up in the config file... ie. logs go everywhere for (log, filename, fmt_str) in ( (self._state_log, "state.log", self._state_log_fmt_str), (self.build_log, "build.log", self.build_log_fmt_str), (self.root_log, "root.log", self.root_log_fmt_str)): fullPath = os.path.join(self.resultdir, filename) fh = logging.FileHandler(fullPath, "a+") formatter = logging.Formatter(fmt_str) fh.setFormatter(formatter) fh.setLevel(logging.NOTSET) log.addHandler(fh) log.info("Mock Version: %s" % self.version) finally: self.uidManager.restorePrivs() # # UNPRIVILEGED: # Everything in this function runs as the build user # decorate(traceLog()) def _buildDirSetup(self): # create all dirs as the user who will be dropping things there. self.uidManager.becomeUser(self.chrootuid, self.chrootgid) try: # create dir structure for subdir in [self.makeChrootPath(self.builddir, s) for s in ('RPMS', 'SRPMS', 'SOURCES', 'SPECS', 'BUILD', 'BUILDROOT', 'originals')]: mockbuild.util.mkdirIfAbsent(subdir) # change ownership so we can write to build home dir for (dirpath, dirnames, filenames) in os.walk(self.makeChrootPath(self.homedir)): for path in dirnames + filenames: os.chown(os.path.join(dirpath, path), self.chrootuid, -1) os.chmod(os.path.join(dirpath, path), 0755) # rpmmacros default macrofile_out = self.makeChrootPath(self.homedir, ".rpmmacros") rpmmacros = open(macrofile_out, 'w+') for key, value in self.macros.items(): rpmmacros.write( "%s %s\n" % (key, value) ) rpmmacros.close() finally: self.uidManager.restorePrivs() # # UNPRIVILEGED: # Everything in this function runs as the build user # decorate(traceLog()) def _copySrpmIntoChroot(self, srpm): srpmFilename = os.path.basename(srpm) dest = self.makeChrootPath(self.builddir, 'originals') shutil.copy2(srpm, dest) return os.path.join(self.builddir, 'originals', srpmFilename) mock-1.1.33/py/mockbuild/__init__.py0000664001204700120500000000004711632211221014151 00000000000000"""All of the mock utility classes.""" mock-1.1.33/py/mockbuild/exception.py0000664001204700120500000000716712120440354014426 00000000000000# vim:expandtab:autoindent:tabstop=4:shiftwidth=4:filetype=python:textwidth=0: # License: GPL2 or later see COPYING # Originally written by Seth Vidal # Sections taken from Mach by Thomas Vander Stichele # Major reorganization and adaptation by Michael Brown # Copyright (C) 2007 Michael E Brown """define most of the exceptions used.""" # python library imports #from exceptions import Exception # our imports # classes class Error(Exception): "base class for our errors." def __init__(self, msg, status=None): Exception.__init__(self) self.msg = msg self.resultcode = 1 if status is not None: self.resultcode = status def __str__(self): return self.msg # result/exit codes # 0 = yay! # 1 = something happened - it's bad # 5 = cmdline processing error # 6 = invalid architecture # 10 = problem building the package # 20 = error in the chroot of some kind # 30 = Yum emitted an error of some sort # 40 = some error in the pkg we're building # 50 = tried to fork a subcommand and it errored out # 60 = buildroot locked # 70 = result dir could not be created # 80 = unshare of namespace failed # 90 = attempted to use an uninitialized chroot # 100 = attempt to run a root shell and root shells disallowed class BuildError(Error): "rpmbuild failed." def __init__(self, msg): Error.__init__(self, msg) self.msg = msg self.resultcode = 10 class RootError(Error): "failed to set up chroot" def __init__(self, msg): Error.__init__(self, msg) self.msg = msg self.resultcode = 20 class YumError(RootError): "yum failed." def __init__(self, msg): RootError.__init__(self, msg) self.msg = msg self.resultcode = 30 class PkgError(Error): "error with the srpm given to us." def __init__(self, msg): Error.__init__(self, msg) self.msg = msg self.resultcode = 40 class BuildRootLocked(Error): "build root in use by another process." def __init__(self, msg): Error.__init__(self, msg) self.msg = msg self.resultcode = 60 class BadCmdline(Error): "user gave bad/inconsistent command line." def __init__(self, msg): Error.__init__(self, msg) self.msg = msg self.resultcode = 05 class InvalidArchitecture(Error): "invalid host/target architecture specified." def __init__(self, msg): Error.__init__(self, msg) self.msg = msg self.resultcode = 06 class ResultDirNotAccessible(Error): """ Could not create output directory for built rpms. The directory specified was: %s Try using the --resultdir= option to select another location. Recommended location is --resultdir=~/mock/. """ def __init__(self, msg): Error.__init__(self, msg) self.msg = msg self.resultcode = 70 class UnshareFailed(Error): "call to C library unshare(2) syscall failed" def __init__(self, msg): Error.__init__(self, msg) self.msg = msg self.resultcode = 80 class ChrootNotInitialized(Error): "attempt to use uninitialized chroot" def __init__(self, msg): Error.__init__(self, msg) self.msg = msg self.resultcode = 90 class NoRootShells(Error): "attempt to run an interactive root shell on secured system" def __init__(self, msg): Error.__init__(self, msg) self.msg = msg self.resultcode = 100 class StateError(Error): "unbalanced call to state functions" def __init__(self, msg): Error.__init__(self, msg) self.msg = msg self.resultcode = 110 mock-1.1.33/py/mockbuild/uid.py0000664001204700120500000000656211770702733013223 00000000000000# vim:expandtab:autoindent:tabstop=4:shiftwidth=4:filetype=python:textwidth=0: # License: GPL2 or later see COPYING # Written by Michael Brown # Copyright (C) 2007 Michael E Brown # python library imports import os # our imports from mockbuild.trace_decorator import traceLog, decorate # class class uidManager(object): decorate(traceLog()) def __init__(self, unprivUid=-1, unprivGid=-1): self.privStack = [] self.unprivUid = unprivUid self.unprivGid = unprivGid decorate(traceLog()) def becomeUser(self, uid, gid=-1): # save current ruid, euid, rgid, egid self._push() self._becomeUser(uid, gid) decorate(traceLog()) def dropPrivsTemp(self): # save current ruid, euid, rgid, egid self._push() self._becomeUser(self.unprivUid, self.unprivGid) decorate(traceLog()) def restorePrivs(self): # back to root first self._elevatePrivs() # then set saved privs = self.privStack.pop() os.setregid(privs['rgid'], privs['egid']) setresuid(privs['ruid'], privs['euid']) decorate(traceLog()) def dropPrivsForever(self): self._elevatePrivs() os.setregid(self.unprivGid, self.unprivGid) os.setreuid(self.unprivUid, self.unprivUid) decorate(traceLog()) def _push(self): # save current ruid, euid, rgid, egid self.privStack.append({ "ruid": os.getuid(), "euid": os.geteuid(), "rgid": os.getgid(), "egid": os.getegid(), }) decorate(traceLog()) def _elevatePrivs(self): setresuid(0, 0, 0) os.setregid(0, 0) decorate(traceLog()) def _becomeUser(self, uid, gid=None): self._elevatePrivs() if gid is not None: os.setregid(gid, gid) setresuid(uid, uid, 0) decorate(traceLog()) def changeOwner(self, path, uid=None, gid=None): self._elevatePrivs() if uid is None: uid = self.unprivUid if gid is None: gid = self.unprivGid os.chown(path, uid, gid) # python doesn't have native versions of these. :( import ctypes _libc = ctypes.cdll.LoadLibrary(None) _errno = ctypes.c_int.in_dll(_libc, "errno") def getresuid(): ruid = ctypes.c_long() euid = ctypes.c_long() suid = ctypes.c_long() res = _libc.getresuid(ctypes.byref(ruid), ctypes.byref(euid), ctypes.byref(suid)) if res: raise OSError(_errno.value, os.strerror(_errno.value)) return (ruid.value, euid.value, suid.value) def setresuid(ruid=-1, euid=-1, suid=-1): ruid = ctypes.c_long(ruid) euid = ctypes.c_long(euid) suid = ctypes.c_long(suid) res = _libc.setresuid(ruid, euid, suid) if res: raise OSError(_errno.value, os.strerror(_errno.value)) def getresgid(): rgid = ctypes.c_long() egid = ctypes.c_long() sgid = ctypes.c_long() res = _libc.getresgid(ctypes.byref(rgid), ctypes.byref(egid), ctypes.byref(sgid)) if res: raise OSError(_errno.value, os.strerror(_errno.value)) return (rgid.value, egid.value, sgid.value) def setresgid(rgid=-1, egid=-1, sgid=-1): rgid = ctypes.c_long(rgid) egid = ctypes.c_long(egid) sgid = ctypes.c_long(sgid) res = _libc.setresgid(rgid, egid, sgid) if res: raise OSError(_errno.value, os.strerror(_errno.value)) mock-1.1.33/py/mockbuild/scm.py0000664001204700120500000001565212133271360013213 00000000000000# vim:expandtab:autoindent:tabstop=4:shiftwidth=4:filetype=python:textwidth=0: # License: GPL2 or later see COPYING # Written by Marko Myllynen # Copyright (C) 2010 Marko Myllynen # python library imports import subprocess import tempfile import shutil import shlex import sys import pwd import os # our imports from mockbuild.trace_decorator import traceLog, decorate import mockbuild.util # class class scmWorker(object): """Build RPMs from SCM""" decorate(traceLog()) def __init__(self, log, opts): self.log = log self.log.debug("Initializing SCM integration...") self.method = opts['method'] if self.method == "cvs": self.get = opts['cvs_get'] elif self.method == "svn": self.get = opts['svn_get'] elif self.method == "git": self.get = opts['git_get'] else: self.log.error("Unsupported SCM method: " + self.method) sys.exit(5) self.branch = None self.postget = None if 'branch' in opts: self.branch = opts['branch'] if self.branch: if self.method == "cvs": self.get = self.get.replace("SCM_BRN", "-r " + self.branch) elif self.method == "git": self.postget = "git checkout " + self.branch elif self.method == "svn": self.get = self.get.replace("SCM_BRN", self.branch) else: self.log.error("Unsupported SCM method: " + self.method) sys.exit(5) elif self.method == "svn": self.get = self.get.replace("SCM_BRN", "trunk") self.get = self.get.replace("SCM_BRN", "") if 'package' in opts: self.pkg = opts['package'] else: self.log.error("Trying to use SCM, package not defined") sys.exit(5) self.get = self.get.replace("SCM_PKG", self.pkg) self.spec = opts['spec'] self.spec = self.spec.replace("SCM_PKG", self.pkg) self.ext_src_dir = opts['ext_src_dir'] self.write_tar = opts['write_tar'] self.git_timestamps = opts['git_timestamps'] self.log.debug("SCM checkout command: " + self.get) self.log.debug("SCM checkout post command: " + str(self.postget)) self.environ = os.environ.copy() # Set HOME properly while checking out from SCM since tools like # Subversion might have there settings needed to carry out checkout # non-interactively self.environ['HOME'] = pwd.getpwuid(os.getuid()).pw_dir self.environ['CVS_RSH'] = "ssh" if not self.environ.has_key('SSH_AUTH_SOCK'): self.environ['SSH_AUTH_SOCK'] = pwd.getpwuid(os.getuid()).pw_dir + "/.ssh/auth_sock" decorate(traceLog()) def get_sources(self): self.wrk_dir = tempfile.mkdtemp(".mock-scm." + self.pkg) self.src_dir = self.wrk_dir + "/" + self.pkg self.log.debug("SCM checkout directory: " + self.wrk_dir) mockbuild.util.do(shlex.split(self.get), shell=False, cwd=self.wrk_dir, env=self.environ) if self.postget: mockbuild.util.do(shlex.split(self.postget), shell=False, cwd=self.src_dir, env=self.environ) self.log.debug("Fetched sources from SCM") decorate(traceLog()) def adjust_git_timestamps(self): dir = os.getcwd() self.log.debug("Adjusting timestamps in " + self.src_dir) os.chdir(self.src_dir) proc = subprocess.Popen(['git', 'ls-files', '-z'], shell=False, stdout=subprocess.PIPE) for f in proc.communicate()[0].split('\0')[:-1]: rev = subprocess.Popen(['git', 'rev-list', 'HEAD', f], shell=False, stdout=subprocess.PIPE).stdout.readlines()[0].rstrip('\n') ts = subprocess.Popen(['git', 'show', '--pretty=format:%ai', '--abbrev-commit', rev, f], shell=False, stdout=subprocess.PIPE).stdout.readlines()[0].rstrip('\n') subprocess.Popen(['touch', '-d', ts, f], shell=False) os.chdir(dir) decorate(traceLog()) def prepare_sources(self): # import rpm after setarch import rpm self.log.debug("Preparing SCM sources") # Check some helper files if os.path.exists(self.src_dir + "/.write_tar"): self.log.debug(".write_tar detected, will write tarball on the fly") self.write_tar = True # Figure out the spec file sf = self.src_dir + "/" + self.spec if not os.path.exists(sf): sf = self.src_dir + "/" + self.spec.lower() if not os.path.exists(sf): self.log.error("Can't find spec file %s" % self.src_dir + "/" + self.spec) self.clean() sys.exit(5) self.spec = sf # Dig out some basic information from the spec file self.sources = [] self.name = self.version = None ts = rpm.ts() rpm_spec = ts.parseSpec(self.spec) self.name = rpm.expandMacro("%{name}") self.version = rpm.expandMacro("%{version}") try: sources_list = rpm_spec.sources() except: sources_list = rpm_spec.sources for (filename, num, flags) in sources_list: self.sources.append(filename.split("/")[-1]) self.log.debug("Sources: %s" % self.sources) # Adjust timestamps for Git checkouts if self.method == "git" and self.git_timestamps: self.adjust_git_timestamps() # Generate a tarball from the checked out sources if needed if str(self.write_tar).lower() == "true": tardir = self.name + "-" + self.version tarball = tardir + ".tar.gz" taropts = "" proc = subprocess.Popen(['tar', '--help'], shell=False, stdout=subprocess.PIPE) if "--exclude-vcs" in proc.communicate()[0]: taropts = "--exclude-vcs" self.log.debug("Writing " + self.src_dir + "/" + tarball + "...") dir = os.getcwd() os.chdir(self.wrk_dir) os.rename(self.name, tardir) cmd = "tar czf " + tarball + " " + taropts + " " + tardir mockbuild.util.do(shlex.split(cmd), shell=False, cwd=self.wrk_dir, env=self.environ) os.rename(tarball, tardir + "/" + tarball) os.rename(tardir, self.name) os.chdir(dir) # Get possible external sources from an external sources directory for f in self.sources: if not os.path.exists(self.src_dir + "/" + f) and \ os.path.exists(self.ext_src_dir + "/" + f): self.log.debug("Copying " + self.ext_src_dir + "/" + f + " to " + self.src_dir + "/" + f) shutil.copy2(self.ext_src_dir + "/" + f, self.src_dir + "/" + f) self.log.debug("Prepared sources for building src.rpm") return (self.src_dir, self.spec) decorate(traceLog()) def clean(self): self.log.debug("Clean SCM checkout directory") mockbuild.util.rmtree(self.wrk_dir) mock-1.1.33/py/mockbuild/plugins/0000775001204700120500000000000012205226676013621 500000000000000mock-1.1.33/py/mockbuild/plugins/root_cache.py0000664001204700120500000002010012133271360016200 00000000000000# vim:expandtab:autoindent:tabstop=4:shiftwidth=4:filetype=python:textwidth=0: # License: GPL2 or later see COPYING # Written by Michael Brown # Copyright (C) 2007 Michael E Brown # python library imports import fcntl import os import time from glob import glob # our imports from mockbuild.trace_decorator import decorate, traceLog, getLog import mockbuild.util requires_api_version = "1.0" # plugin entry point decorate(traceLog()) def init(rootObj, conf): RootCache(rootObj, conf) # classes class RootCache(object): """caches root environment in a tarball""" decorate(traceLog()) def __init__(self, rootObj, conf): self.rootObj = rootObj self.root_cache_opts = conf self.rootSharedCachePath = self.root_cache_opts['dir'] % self.root_cache_opts self.rootCacheFile = os.path.join(self.rootSharedCachePath, "cache.tar") self.rootCacheLock = None self.compressProgram = self.root_cache_opts['compress_program'] if self.compressProgram == 'pigz' and not os.path.exists('/usr/bin/pigz'): getLog().warning("specified 'pigz' as the root cache compress program but not available; using gzip") self.compressProgram = 'gzip' if self.compressProgram: self.compressArgs = ['--use-compress-program', self.compressProgram] self.rootCacheFile = self.rootCacheFile + self.root_cache_opts['extension'] else: self.compressArgs = [] rootObj.rootCacheObj = self rootObj.addHook("preinit", self._rootCachePreInitHook) rootObj.addHook("preshell", self._rootCachePreShellHook) rootObj.addHook("prechroot", self._rootCachePreShellHook) rootObj.addHook("preyum", self._rootCachePreYumHook) rootObj.addHook("postinit", self._rootCachePostInitHook) rootObj.addHook("postshell", self._rootCachePostShellHook) rootObj.addHook("postchroot", self._rootCachePostShellHook) rootObj.addHook("postyum", self._rootCachePostShellHook) self.exclude_dirs = self.root_cache_opts['exclude_dirs'] self.exclude_tar_cmds = [ "--exclude=" + dir for dir in self.exclude_dirs] # ============= # 'Private' API # ============= decorate(traceLog()) def _rootCacheLock(self, shared=1): lockType = fcntl.LOCK_EX if shared: lockType = fcntl.LOCK_SH try: fcntl.lockf(self.rootCacheLock.fileno(), lockType | fcntl.LOCK_NB) except IOError, e: self.rootObj.start("Waiting for rootcache lock") fcntl.lockf(self.rootCacheLock.fileno(), lockType) self.rootObj.finish("Waiting for rootcache lock") decorate(traceLog()) def _rootCacheUnlock(self): fcntl.lockf(self.rootCacheLock.fileno(), fcntl.LOCK_UN) decorate(traceLog()) def _rootCachePreInitHook(self): getLog().info("enabled root cache") self._unpack_root_cache() decorate(traceLog()) def _unpack_root_cache(self): # check cache status try: if self.root_cache_opts['age_check']: # see if it aged out statinfo = os.stat(self.rootCacheFile) file_age_days = (time.time() - statinfo.st_ctime) / (60 * 60 * 24) if file_age_days > self.root_cache_opts['max_age_days']: getLog().info("root cache aged out! cache will be rebuilt") os.unlink(self.rootCacheFile) else: # make sure no config file is newer than the cache file for cfg in self.rootObj.configs: if os.stat(cfg).st_mtime > statinfo.st_mtime: getLog().info("%s newer than root cache; cache will be rebuilt" % cfg) os.unlink(self.rootCacheFile) break else: getLog().info("skipping root_cache aging check") except OSError: pass mockbuild.util.mkdirIfAbsent(self.rootSharedCachePath) # lock so others dont accidentally use root cache while we operate on it. if self.rootCacheLock is None: self.rootCacheLock = open(os.path.join(self.rootSharedCachePath, "rootcache.lock"), "a+") # optimization: don't unpack root cache if chroot was not cleaned (unless we are using tmpfs) if os.path.exists(self.rootCacheFile): if self.rootObj.chrootWasCleaned or self.rootObj.pluginConf['tmpfs_enable']: self.rootObj.start("unpacking root cache") self._rootCacheLock() # # deal with NFS homedir and root_squash # if mockbuild.util.get_fs_type(os.getcwd()).startswith('nfs'): os.chdir(mockbuild.util.find_non_nfs_dir()) mockbuild.util.do( ["tar"] + self.compressArgs + ["-xf", self.rootCacheFile, "-C", self.rootObj.makeChrootPath()], shell=False ) for dir in self.exclude_dirs: mockbuild.util.mkdirIfAbsent(self.rootObj.makeChrootPath(dir)) self._rootCacheUnlock() self.rootObj.chrootWasCleaned = False self.rootObj.chrootWasCached = True self.rootObj.finish("unpacking root cache") decorate(traceLog()) def _rootCachePreShellHook(self): if self.rootObj.pluginConf['tmpfs_enable']: self._unpack_root_cache() decorate(traceLog()) def _rootCachePreYumHook(self): if self.rootObj.pluginConf['tmpfs_enable']: if not os.listdir(self.rootObj.makeChrootPath()) or self.rootObj.cache_alterations: self._unpack_root_cache() decorate(traceLog()) def _root_cache_handle_mounts(self): for m in self.rootObj.mounts.get_mountpoints(): if m.startswith('/'): self.exclude_tar_cmds.append('--exclude=.%s' % m) else: self.exclude_tar_cmds.append('--exclude=./%s' % m) decorate(traceLog()) def _rootCachePostInitHook(self): self._rebuild_root_cache() decorate(traceLog()) def _rebuild_root_cache(self): try: self._rootCacheLock(shared=0) # nuke any rpmdb tmp files self.rootObj._nuke_rpm_db() # truncate the sparse files in /var/log for logfile in ('/var/log/lastlog', '/var/log/faillog'): try: f = open(self.rootObj.makeChrootPath(logfile), "w") f.truncate(0) f.close() except: pass # never rebuild cache unless it was a clean build, or we are explicitly caching alterations if self.rootObj.chrootWasCleaned or self.rootObj.cache_alterations: mockbuild.util.do(["sync"], shell=False) self._root_cache_handle_mounts() self.rootObj.start("creating cache") try: mockbuild.util.do( ["tar", "--one-file-system"] + self.compressArgs + ["-cf", self.rootCacheFile, "-C", self.rootObj.makeChrootPath()] + self.exclude_tar_cmds + ["."], shell=False ) except: if os.path.exists(self.rootCacheFile): os.remove(self.rootCacheFile) raise # now create the cache log file try: l = open(os.path.join(self.rootSharedCachePath, "cache.log"), "w") l.write(self.rootObj.yum_init_install_output) l.close() except: pass self.rootObj.finish("creating cache") finally: self._rootCacheUnlock() decorate(traceLog()) def _rootCachePostShellHook(self): if self.rootObj.pluginConf['tmpfs_enable'] and self.rootObj.cache_alterations: self._rebuild_root_cache() mock-1.1.33/py/mockbuild/plugins/package_state.py0000664001204700120500000000512612125663026016705 00000000000000# vim:expandtab:autoindent:tabstop=4:shiftwidth=4:filetype=python:textwidth=0: # License: GPL2 or later see COPYING # Written by Seth Vidal # Copyright (C) 2012 Red Hat, Inc # this plugin dumps out two lists of pkgs: # A list of all available pkgs + repos + other data # A list of all installed pkgs + repos + other data # into the results dir # two files - available_pkgs # installed_pkgs # our imports from mockbuild.trace_decorator import decorate, traceLog, getLog import mockbuild.util import tempfile import os #repoquery used repoquery_avail_opts = "-a --qf '%{nevra} %{buildtime} %{size} %{pkgid} %{repoid}'" repoquery_install_opts = "--installed -a --qf '%{nevra} %{buildtime} %{size} %{pkgid} %{yumdb_info.from_repo}'" # set up logging, module options requires_api_version = "1.0" # plugin entry point decorate(traceLog()) def init(rootObj, conf): PackageState(rootObj, conf) # classes class PackageState(object): """dumps out a list of packages available and in the chroot""" decorate(traceLog()) def __init__(self, rootObj, conf): self.rootObj = rootObj self.avail_done = False self.inst_done = False self.online = rootObj.online rootObj.addHook("postyum", self._availablePostYumHook) rootObj.addHook("prebuild", self._installedPreBuildHook) decorate(traceLog()) def _availablePostYumHook(self): if self.online and not self.avail_done: self.rootObj.start("Outputting list of available packages") out_file = self.rootObj.resultdir + '/available_pkgs' cmd = "/usr/bin/repoquery -c %s/etc/yum.conf %s > %s" % ( self.rootObj.makeChrootPath(), repoquery_avail_opts, out_file) mockbuild.util.do(cmd, shell=True) self.avail_done = True self.rootObj.finish("Outputting list of available packages") decorate(traceLog()) def _installedPreBuildHook(self): if self.online and not self.inst_done: self.rootObj.start("Outputting list of installed packages") fd, fn = tempfile.mkstemp() fo = os.fdopen(fd, 'w') fo.write('[main]\ninstallroot=%s' % self.rootObj.makeChrootPath()) fo.flush() fo.close() out_file = self.rootObj.resultdir + '/installed_pkgs' cmd = "/usr/bin/repoquery -c %s %s > %s" % (fn, repoquery_install_opts, out_file) mockbuild.util.do(cmd, shell=True) self.inst_done = True os.unlink(fn) self.rootObj.finish("Outputting list of installed packages") mock-1.1.33/py/mockbuild/plugins/bind_mount.py0000664001204700120500000000264412120440354016242 00000000000000# vim:expandtab:autoindent:tabstop=4:shiftwidth=4:filetype=python:textwidth=0: # License: GPL2 or later see COPYING # Written by Michael Brown # Copyright (C) 2007 Michael E Brown # python library imports # our imports from mockbuild.trace_decorator import decorate, traceLog import mockbuild.util from mockbuild.mounts import BindMountPoint requires_api_version = "1.0" # plugin entry point decorate(traceLog()) def init(rootObj, conf): BindMount(rootObj, conf) # classes class BindMount(object): """bind mount dirs from host into chroot""" decorate(traceLog()) def __init__(self, rootObj, conf): self.rootObj = rootObj self.bind_opts = conf rootObj.bindMountObj = self rootObj.addHook("preinit", self._bindMountPreInitHook) rootObj.addHook("preshell", self._bindMountPreInitHook) rootObj.addHook("prechroot", self._bindMountPreInitHook) for srcdir, destdir in self.bind_opts['dirs']: rootObj.mounts.add(BindMountPoint(srcpath=srcdir, bindpath=rootObj.makeChrootPath(destdir))) decorate(traceLog()) def _bindMountPreInitHook(self): create_dirs = self.rootObj.pluginConf['bind_mount_opts']['create_dirs'] for srcdir, destdir in self.bind_opts['dirs']: if create_dirs: mockbuild.util.mkdirIfAbsent(srcdir) mockbuild.util.mkdirIfAbsent(self.rootObj.makeChrootPath(destdir)) mock-1.1.33/py/mockbuild/plugins/selinux.py0000664001204700120500000000666712133271360015607 00000000000000# vim:expandtab:autoindent:tabstop=4:shiftwidth=4:filetype=python:textwidth=0: # License: GPL2 or later see COPYING # Written by Jan Vcelak # Copyright (C) 2010 Jan Vcelak # python library imports import os import sys import tempfile import stat import atexit # our imports from mockbuild.trace_decorator import decorate, traceLog, getLog import mockbuild.util from mockbuild.mounts import BindMountPoint requires_api_version = "1.0" # plugin entry point decorate(traceLog()) def init(rootObj, conf): if mockbuild.util.selinuxEnabled(): getLog().info("selinux enabled") SELinux(rootObj, conf) else: getLog().info("selinux disabled") # classes class SELinux(object): """On SELinux enabled box, this plugin will pretend, that SELinux is disabled in build environment. - fake /proc/filesystems is mounted into build environment, excluding selinuxfs - option '--setopt=tsflags=nocontext' is appended to each 'yum' command """ decorate(traceLog()) def __init__(self, rootObj, conf): self.rootObj = rootObj self.conf = conf self.filesystems = self._selinuxCreateFauxFilesystems() self.chrootFilesystems = rootObj.makeChrootPath("/proc/filesystems") atexit.register(self._selinuxAtExit) self.rootObj.mounts.add(BindMountPoint(srcpath=self.filesystems, bindpath=self.chrootFilesystems)) if self._selinuxYumIsSetoptSupported(): rootObj.addHook("preyum", self._selinuxPreYumHook) rootObj.addHook("postyum", self._selinuxPostYumHook) else: getLog().warning("selinux: 'yum' does not support '--setopt' option") decorate(traceLog()) def _selinuxCreateFauxFilesystems(self): (fd, path) = tempfile.mkstemp(prefix="mock-selinux-plugin.") host = open("/proc/filesystems") try: for line in host: if not "selinuxfs" in line: os.write(fd, line) finally: host.close() os.close(fd) os.chmod(path, stat.S_IRUSR|stat.S_IRGRP|stat.S_IROTH) return path decorate(traceLog()) def _selinuxAtExit(self): if os.path.exists(self.filesystems): try: os.unlink(self.filesystems) except OSError, e: getLog().warning("unable to delete selinux filesystems (%s): %s" % (self.filesystems, e)) pass decorate(traceLog()) def _selinuxPreYumHook(self): self._originalUtilDo = mockbuild.util.do mockbuild.util.do = self._selinuxDoYum decorate(traceLog()) def _selinuxPostYumHook(self): mockbuild.util.do = self._originalUtilDo decorate(traceLog()) def _selinuxDoYum(self, command, *args, **kargs): option = "--setopt=tsflags=nocontexts" if type(command) is list: if command[0].startswith(self.rootObj.yum_path): command.append(option) elif type(command) is str: if command.startswith(self.rootObj.yum_path): command += " %s" % option return self._originalUtilDo(command, *args, **kargs) decorate(traceLog()) def _selinuxYumIsSetoptSupported(self): # ugly hack: discover, whether yum supports --setopt option sys.path.insert(0, '/usr/share/yum-cli') import cli supported = hasattr(cli.YumBaseCli, "_parseSetOpts") sys.path.pop(0) return supported mock-1.1.33/py/mockbuild/plugins/mount.py0000664001204700120500000000363612133271360015253 00000000000000# vim:expandtab:autoindent:tabstop=4:shiftwidth=4:filetype=python:textwidth=0: # License: GPL2 or later see COPYING # Written by Daniel Mach # Copyright (C) 2011 Daniel Mach """ # The mount plugin is enabled by default. # To disable it, use following option: config_opts['plugin_conf']['mount_enable'] = False # To configure the mount plugin, for each mount point use following option: config_opts['plugin_conf']['mount_opts']['dirs'].append(("/dev/device", "/mount/path/in/chroot/", "vfstype", "mount_options")) # A real life example: config_opts['plugin_conf']['mount_opts']['dirs'].append(("server.example.com:/exports/data", "/mnt/data", "nfs", "rw,hard,intr,nosuid,nodev,noatime,tcp")) """ import mockbuild.util from mockbuild.trace_decorator import decorate, traceLog from mockbuild.mounts import FileSystemMountPoint requires_api_version = "1.0" # plugin entry point decorate(traceLog()) def init(rootObj, conf): Mount(rootObj, conf) # classes class Mount(object): """mount dirs into chroot""" decorate(traceLog()) def __init__(self, rootObj, conf): self.rootObj = rootObj self.opts = conf rootObj.mountObj = self rootObj.addHook("preinit", self._mountPreInitHook) rootObj.addHook("preshell", self._mountPreInitHook) rootObj.addHook("prechroot", self._mountPreInitHook) for device, dest_dir, vfstype, mount_opts in self.opts['dirs']: rootObj.mounts.add(FileSystemMountPoint(rootObj.makeChrootPath(dest_dir), filetype=vfstype, device=device, options=mount_opts)) decorate(traceLog()) def _mountPreInitHook(self): for device, dest_dir, vfstype, mount_opts in self.opts['dirs']: mockbuild.util.mkdirIfAbsent(self.rootObj.makeChrootPath(dest_dir)) mock-1.1.33/py/mockbuild/plugins/yum_cache.py0000664001204700120500000001005512120440354016034 00000000000000# vim:expandtab:autoindent:tabstop=4:shiftwidth=4:filetype=python:textwidth=0: # License: GPL2 or later see COPYING # Written by Michael Brown # Copyright (C) 2007 Michael E Brown # python library imports import fcntl import time import os import glob # our imports from mockbuild.trace_decorator import decorate, traceLog, getLog import mockbuild.util from mockbuild.mounts import BindMountPoint # set up logging, module options requires_api_version = "1.0" # plugin entry point decorate(traceLog()) def init(rootObj, conf): YumCache(rootObj, conf) # classes class YumCache(object): """caches root environment in a tarball""" decorate(traceLog()) def __init__(self, rootObj, conf): self.rootObj = rootObj self.yum_cache_opts = conf self.yumSharedCachePath = self.yum_cache_opts['dir'] % self.yum_cache_opts self.online = rootObj.online rootObj.yum_cacheObj = self rootObj.addHook("preyum", self._yumCachePreYumHook) rootObj.addHook("postyum", self._yumCachePostYumHook) rootObj.addHook("preinit", self._yumCachePreInitHook) rootObj.mounts.add(BindMountPoint(srcpath=self.yumSharedCachePath, bindpath=rootObj.makeChrootPath('/var/cache/yum'))) mockbuild.util.mkdirIfAbsent(self.yumSharedCachePath) self.yumCacheLock = open(os.path.join(self.yumSharedCachePath, "yumcache.lock"), "a+") # ============= # 'Private' API # ============= # lock the shared yum cache (when enabled) before any access # by yum, and prior to cleaning it. This prevents simultaneous access from # screwing things up. This can possibly happen, eg. when running multiple # mock instances with --uniqueext= decorate(traceLog()) def _yumCachePreYumHook(self): try: fcntl.lockf(self.yumCacheLock.fileno(), fcntl.LOCK_EX | fcntl.LOCK_NB) except IOError, e: self.rootObj.start("Waiting for yumcache lock") fcntl.lockf(self.yumCacheLock.fileno(), fcntl.LOCK_EX) self.rootObj.finish("Waiting for yumcache lock") decorate(traceLog()) def _yumCachePostYumHook(self): fcntl.lockf(self.yumCacheLock.fileno(), fcntl.LOCK_UN) decorate(traceLog()) def _yumCachePreInitHook(self): getLog().info("enabled yum cache") mockbuild.util.mkdirIfAbsent(self.rootObj.makeChrootPath('/var/cache/yum')) # lock so others dont accidentally use yum cache while we operate on it. self._yumCachePreYumHook() if self.online: self.rootObj.start("cleaning yum metadata") for (dirpath, dirnames, filenames) in os.walk(self.yumSharedCachePath): for filename in filenames: fullPath = os.path.join(dirpath, filename) statinfo = os.stat(fullPath) file_age_days = (time.time() - statinfo.st_ctime) / (60 * 60 * 24) # prune repodata so yum redownloads. # prevents certain errors where yum gets stuck due to bad metadata for ext in (".sqlite", ".xml", ".bz2", ".gz"): if filename.endswith(ext) and file_age_days > self.yum_cache_opts['max_metadata_age_days']: os.unlink(fullPath) fullPath = None break if fullPath is None: continue if file_age_days > self.yum_cache_opts['max_age_days']: os.unlink(fullPath) continue self.rootObj.finish("cleaning yum metadata") # yum made an rpmdb cache dir in $cachedir/installed for a while; # things can go wrong in a specific mock case if this happened. # So - just nuke the dir and all that's in it. if os.path.exists(self.yumSharedCachePath + '/installed'): for fn in glob.glob(self.yumSharedCachePath + '/installed/*'): os.unlink(fn) os.rmdir(self.yumSharedCachePath + '/installed') self._yumCachePostYumHook() mock-1.1.33/py/mockbuild/plugins/ccache.py0000664001204700120500000000420012120440354015300 00000000000000# vim:expandtab:autoindent:tabstop=4:shiftwidth=4:filetype=python:textwidth=0: # License: GPL2 or later see COPYING # Written by Michael Brown # Copyright (C) 2007 Michael E Brown # python library imports import os # our imports from mockbuild.trace_decorator import decorate, traceLog, getLog import mockbuild.util from mockbuild.mounts import BindMountPoint requires_api_version = "1.0" # plugin entry point decorate(traceLog()) def init(rootObj, conf): CCache(rootObj, conf) # classes class CCache(object): """enables ccache in buildroot/rpmbuild""" decorate(traceLog()) def __init__(self, rootObj, conf): self.rootObj = rootObj self.ccache_opts = conf self.ccachePath = self.ccache_opts['dir'] % self.ccache_opts rootObj.ccacheObj = self rootObj.preExistingDeps.append("ccache") rootObj.addHook("prebuild", self._ccacheBuildHook) rootObj.addHook("preinit", self._ccachePreInitHook) rootObj.mounts.add(BindMountPoint(srcpath=self.ccachePath, bindpath=rootObj.makeChrootPath("/tmp/ccache"))) # ============= # 'Private' API # ============= # set the max size before we actually use it during a build. ccache itself # manages size and settings. we also set a few variables used by ccache to # find the shared cache. decorate(traceLog()) def _ccacheBuildHook(self): self.rootObj.doChroot(["ccache", "-M", str(self.ccache_opts['max_cache_size'])], shell=False) # set up the ccache dir. # we also set a few variables used by ccache to find the shared cache. decorate(traceLog()) def _ccachePreInitHook(self): getLog().info("enabled ccache") envupd = {"CCACHE_DIR": "/tmp/ccache", "CCACHE_UMASK": "002" } if self.ccache_opts.get('compress') is not None: envupd["CCACHE_COMPRESS"] = str(self.ccache_opts['compress']) self.rootObj.env.update(envupd) mockbuild.util.mkdirIfAbsent(self.rootObj.makeChrootPath('/tmp/ccache')) mockbuild.util.mkdirIfAbsent(self.ccachePath) self.rootObj.uidManager.changeOwner(self.ccachePath) mock-1.1.33/py/mockbuild/plugins/tmpfs.py0000664001204700120500000000567711670507023015254 00000000000000# vim:expandtab:autoindent:tabstop=4:shiftwidth=4:filetype=python:textwidth=0: # License: GPL2 or later see COPYING # Written by Michael Brown # Copyright (C) 2007 Michael E Brown # python library imports import os # our imports from mockbuild.trace_decorator import decorate, traceLog, getLog import mockbuild.util requires_api_version = "1.0" # plugin entry point decorate(traceLog()) def init(rootObj, conf): system_ram_bytes = os.sysconf(os.sysconf_names['SC_PAGE_SIZE']) * os.sysconf(os.sysconf_names['SC_PHYS_PAGES']) system_ram_mb = system_ram_bytes / (1024 * 1024) if system_ram_mb > conf['required_ram_mb']: Tmpfs(rootObj, conf) else: getLog().warning("Tmpfs plugin disabled. " "System does not have the required amount of RAM to enable the tmpfs plugin. " "System has %sMB RAM, but the config specifies the minimum required is %sMB RAM. " % (system_ram_mb, conf['required_ram_mb'])) # classes class Tmpfs(object): """Mounts a tmpfs on the chroot dir""" decorate(traceLog()) def __init__(self, rootObj, conf): self.rootObj = rootObj self.conf = conf self.maxSize = self.conf['max_fs_size'] if self.maxSize: self.optArgs = ['-o', 'size=' + self.maxSize] else: self.optArgs = [] rootObj.addHook("preinit", self._tmpfsMount) rootObj.addHook("preshell", self._tmpfsMount) rootObj.addHook("prechroot", self._tmpfsMount) rootObj.addHook("postshell", self._tmpfsUmount) rootObj.addHook("postbuild", self._tmpfsUmount) rootObj.addHook("postchroot", self._tmpfsUmount) rootObj.addHook("initfailed", self._tmpfsUmount) getLog().info("tmpfs initialized") decorate(traceLog()) def _tmpfsMount(self): getLog().info("mounting tmpfs at %s." % self.rootObj.makeChrootPath()) mountCmd = ["mount", "-n", "-t", "tmpfs"] + self.optArgs + \ ["mock_chroot_tmpfs", self.rootObj.makeChrootPath()] mockbuild.util.do(mountCmd, shell=False) decorate(traceLog()) def _tmpfsUmount(self): force = False getLog().info("unmounting tmpfs.") umountCmd = ["umount", "-n", self.rootObj.makeChrootPath()] # since we're in a separate namespace, the mount will be cleaned up # on exit, so just warn if it fails here try: mockbuild.util.do(umountCmd, shell=False) except: getLog().warning("tmpfs-plugin: exception while umounting tmpfs! (cwd: %s)" % os.getcwd()) force = True if force: # try umounting with force option umountCmd = ["umount", "-n", "-f", self.rootObj.makeChrootPath()] try: mockbuild.util.do(umountCmd, shell=False) except: getLog().warning("tmpfs-plugin: exception while force umounting tmpfs! (cwd: %s)" % os.getcwd()) mock-1.1.33/py/mockchain.py0000775001204700120500000002744112205226221012412 00000000000000#!/usr/bin/python -tt # by skvidal@fedoraproject.org # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Library General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. # copyright 2012 Red Hat, Inc. # SUMMARY # mockchain # take a mock config and a series of srpms # rebuild them one at a time # adding each to a local repo # so they are available as build deps to next pkg being built import sys import subprocess import os import optparse import tempfile import shutil from urlgrabber import grabber import time import mockbuild.util # all of the variables below are substituted by the build system __VERSION__ = "unreleased_version" SYSCONFDIR = os.path.join(os.path.dirname(os.path.realpath(sys.argv[0])), "..", "etc") PYTHONDIR = os.path.dirname(os.path.realpath(sys.argv[0])) PKGPYTHONDIR = os.path.join(os.path.dirname(os.path.realpath(sys.argv[0])), "mockbuild") MOCKCONFDIR = os.path.join(SYSCONFDIR, "mock") # end build system subs mockconfig_path='/etc/mock' def createrepo(path): if os.path.exists(path + '/repodata/repomd.xml'): comm = ['/usr/bin/createrepo', '--update', path] else: comm = ['/usr/bin/createrepo', path] cmd = subprocess.Popen(comm, stdout=subprocess.PIPE, stderr=subprocess.PIPE) out, err = cmd.communicate() return out, err def parse_args(args): parser = optparse.OptionParser('\nmockchain -r mockcfg pkg1 [pkg2] [pkg3]') parser.add_option('-r', '--root', default=None, dest='chroot', help="chroot config name/base to use in the mock build") parser.add_option('-l', '--localrepo', default=None, help="local path for the local repo, defaults to making its own") parser.add_option('-c', '--continue', default=False, action='store_true', dest='cont', help="if a pkg fails to build, continue to the next one") parser.add_option('-a','--addrepo', default=[], action='append', dest='repos', help="add these repo baseurls to the chroot's yum config") parser.add_option('--recurse', default=False, action='store_true', help="if more than one pkg and it fails to build, try to build the rest and come back to it") parser.add_option('--log', default=None, dest='logfile', help="log to the file named by this option, defaults to not logging") parser.add_option('--tmp_prefix', default=None, dest='tmp_prefix', help="tmp dir prefix - will default to username-pid if not specified") #FIXME? # figure out how to pass other args to mock? opts, args = parser.parse_args(args) if opts.recurse: opts.cont = True if not opts.chroot: print "You must provide an argument to -r for the mock chroot" sys.exit(1) if len(sys.argv) < 3: print "You must specifiy at least 1 package to build" sys.exit(1) return opts, args def add_local_repo(infile, destfile, baseurl, repoid=None): """take a mock chroot config and add a repo to it's yum.conf infile = mock chroot config file destfile = where to save out the result baseurl = baseurl of repo you wish to add""" global config_opts try: execfile(infile) if not repoid: repoid=baseurl.split('//')[1].replace('/','_') localyumrepo=""" [%s] name=%s baseurl=%s enabled=1 skip_if_unavailable=1 metadata_expire=30 cost=1 """ % (repoid, baseurl, baseurl) config_opts['yum.conf'] += localyumrepo br_dest = open(destfile, 'w') for k,v in config_opts.items(): br_dest.write("config_opts[%r] = %r\n" % (k, v)) br_dest.close() return True, '' except (IOError, OSError): return False, "Could not write mock config to %s" % destfile return True, '' def do_build(opts, cfg, pkg): # returns 0, cmd, out, err = failure # returns 1, cmd, out, err = success # returns 2, None, None, None = already built s_pkg = os.path.basename(pkg) pdn = s_pkg.replace('.src.rpm', '') resdir = '%s/%s' % (opts.local_repo_dir, pdn) resdir = os.path.normpath(resdir) if not os.path.exists(resdir): os.makedirs(resdir) success_file = resdir + '/success' fail_file = resdir + '/fail' if os.path.exists(success_file): return 2, None, None, None # clean it up if we're starting over :) if os.path.exists(fail_file): os.unlink(fail_file) mockcmd = ['/usr/bin/mock', '--configdir', opts.config_path, '--resultdir', resdir, '--uniqueext', opts.uniqueext, '-r', cfg, ] print 'building %s' % s_pkg mockcmd.append(pkg) cmd = subprocess.Popen(mockcmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE ) out, err = cmd.communicate() if cmd.returncode == 0: open(success_file, 'w').write('done\n') ret = 1 else: open(fail_file, 'w').write('undone\n') ret = 0 return ret, cmd, out, err def log(lf, msg): if lf: now = time.time() try: open(lf, 'a').write(str(now) + ':' + msg + '\n') except (IOError, OSError), e: print 'Could not write to logfile %s - %s' % (lf, str(e)) print msg config_opts = {} def main(args): global config_opts config_opts = mockbuild.util.setup_default_config_opts(os.getgid(), __VERSION__, PKGPYTHONDIR) opts, args = parse_args(args) # take mock config + list of pkgs cfg=opts.chroot pkgs=args[1:] mockcfg = mockconfig_path + '/' + cfg + '.cfg' if not os.path.exists(mockcfg): print "could not find config: %s" % mockcfg sys.exit(1) if not opts.tmp_prefix: try: opts.tmp_prefix = os.getlogin() except OSError, e: print "Could not find login name for tmp dir prefix add --tmp_prefix" sys.exit(1) pid = os.getpid() opts.uniqueext = '%s-%s' % (opts.tmp_prefix, pid) # create a tempdir for our local info if opts.localrepo: local_tmp_dir = os.path.abspath(opts.localrepo) if not os.path.exists(local_tmp_dir): os.makedirs(local_tmp_dir) else: pre = 'mock-chain-%s-' % opts.uniqueext local_tmp_dir = tempfile.mkdtemp(prefix=pre, dir='/var/tmp') os.chmod(local_tmp_dir, 0755) if opts.logfile: opts.logfile = os.path.join(local_tmp_dir, opts.logfile) if os.path.exists(opts.logfile): os.unlink(opts.logfile) log(opts.logfile, "starting logfile: %s" % opts.logfile) opts.local_repo_dir = os.path.normpath(local_tmp_dir + '/results/' + cfg + '/') if not os.path.exists(opts.local_repo_dir): os.makedirs(opts.local_repo_dir, mode=0755) local_baseurl="file://%s" % opts.local_repo_dir log(opts.logfile, "results dir: %s" % opts.local_repo_dir) opts.config_path = os.path.normpath(local_tmp_dir + '/configs/' + cfg + '/') if not os.path.exists(opts.config_path): os.makedirs(opts.config_path, mode=0755) log(opts.logfile, "config dir: %s" % opts.config_path) my_mock_config = opts.config_path + '/' + os.path.basename(mockcfg) # modify with localrepo res, msg = add_local_repo(mockcfg, my_mock_config, local_baseurl, 'local_build_repo') if not res: log(opts.logfile, "Error: Could not write out local config: %s" % msg) sys.exit(1) for baseurl in opts.repos: res, msg = add_local_repo(my_mock_config, my_mock_config, baseurl) if not res: log(opts.logfile, "Error: Could not add: %s to yum config in mock chroot: %s" % (baseurl, msg)) sys.exit(1) # these files needed from the mock.config dir to make mock run for fn in ['site-defaults.cfg', 'logging.ini']: pth = mockconfig_path + '/' + fn shutil.copyfile(pth, opts.config_path + '/' + fn) # createrepo on it out, err = createrepo(opts.local_repo_dir) if err.strip(): log(opts.logfile, "Error making local repo: %s" % opts.local_repo_dir) log(opts.logfile, "Err: %s" % err) sys.exit(1) download_dir = tempfile.mkdtemp() downloaded_pkgs = {} built_pkgs = [] try_again = True to_be_built = pkgs while try_again: failed = [] for pkg in to_be_built: if not pkg.endswith('.rpm'): log(opts.logfile, "%s doesn't appear to be an rpm - skipping" % pkg) failed.append(pkg) continue elif pkg.startswith('http://') or pkg.startswith('https://'): url = pkg cwd = os.getcwd() os.chdir(download_dir) try: log(opts.logfile, 'Fetching %s' % url) ug = grabber.URLGrabber() fn = ug.urlgrab(url) pkg = download_dir + '/' + fn except Exception, e: log(opts.logfile, 'Error Downloading %s: %s' % (url, str(e))) failed.append(url) os.chdir(cwd) continue else: os.chdir(cwd) downloaded_pkgs[pkg] = url log(opts.logfile, "Start build: %s" % pkg) ret, cmd, out, err = do_build(opts, cfg, pkg) log(opts.logfile, "End build: %s" % pkg) if ret == 0: if opts.recurse: failed.append(pkg) log(opts.logfile, "Error building %s, will try again" % os.path.basename(pkg)) else: log(opts.logfile,"Error building %s" % os.path.basename(pkg)) log(opts.logfile,"See logs/results in %s" % opts.local_repo_dir) if not opts.cont: sys.exit(1) elif ret == 1: log(opts.logfile, "Success building %s" % os.path.basename(pkg)) built_pkgs.append(pkg) # createrepo with the new pkgs out, err = createrepo(opts.local_repo_dir) if err.strip(): log(opts.logfile, "Error making local repo: %s" % opts.local_repo_dir) log(opts.logfile, "Err: %s" % err) elif ret == 2: log(opts.logfile, "Skipping already built pkg %s" % os.path.basename(pkg)) if failed: if len(failed) != len(to_be_built): to_be_built = failed try_again = True log(opts.logfile, 'Trying to rebuild %s failed pkgs' % len(failed)) else: log(opts.logfile, "Tried twice - following pkgs could not be successfully built:") for pkg in failed: msg = pkg if pkg in downloaded_pkgs: msg = downloaded_pkgs[pkg] log(opts.logfile, msg) try_again = False else: try_again = False # cleaning up our download dir shutil.rmtree(download_dir, ignore_errors=True) log(opts.logfile, "Results out to: %s" % opts.local_repo_dir) log(opts.logfile, "Pkgs built: %s" % len(built_pkgs)) log(opts.logfile, "Packages successfully built in this order:") for pkg in built_pkgs: log(opts.logfile, pkg) if __name__ == "__main__": main(sys.argv) sys.exit(0) mock-1.1.33/contrib/0000775001204700120500000000000011225216520011163 500000000000000mock-1.1.33/contrib/mock-cleanup0000775001204700120500000000075211225216520013413 00000000000000#! /bin/sh # # mock-cleanup # # clean packages in mock's cache directories # NEWCACHEDIR=/var/cache/mock OLDCACHEDIR=/var/lib/mock/cache dirs= for d in $NEWCACHEDIR $OLDCACHEDIR do if [ -d $d -a ! -z "$d/*/yum_cache" ] then dirs="$dirs $d/*/yum_cache" fi done for d in $dirs do echo -n "Clean in $d:" cd $d for r in */packages do echo -n " `dirname $r`" repomanage --old --nocheck $r 2>/dev/null | xargs --no-run-if-empty rm done echo " done" done mock-1.1.33/Makefile.in0000664001204700120500000015323612205226665011534 00000000000000# Makefile.in generated by automake 1.13.4 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2013 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # vim:noexpandtab:autoindent:tabstop=8:shiftwidth=8:filetype=make:nocindent:tw=0: VPATH = @srcdir@ am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : bin_PROGRAMS = subdir = . DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ $(top_srcdir)/configure $(am__configure_deps) \ $(srcdir)/mock.spec.in $(dist_sbin_SCRIPTS) \ $(mockbuild_PYTHON) $(plugins_PYTHON) \ $(top_srcdir)/build/py-compile $(top_srcdir)/build/test-driver \ AUTHORS COPYING ChangeLog INSTALL build/compile \ build/config.guess build/config.sub build/depcomp \ build/install-sh build/missing build/py-compile \ build/ltmain.sh $(top_srcdir)/build/install-sh \ $(top_srcdir)/build/missing ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \ configure.lineno config.status.lineno mkinstalldirs = $(install_sh) -d CONFIG_CLEAN_FILES = mock.spec CONFIG_CLEAN_VPATH_FILES = am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(sbindir)" \ "$(DESTDIR)$(mockbuilddir)" "$(DESTDIR)$(pluginsdir)" \ "$(DESTDIR)$(man1dir)" "$(DESTDIR)$(bashcompdir)" \ "$(DESTDIR)$(consoledir)" "$(DESTDIR)$(mocketcdir)" \ "$(DESTDIR)$(pamdir)" PROGRAMS = $(bin_PROGRAMS) am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__uninstall_files_from_dir = { \ test -z "$$files" \ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ $(am__cd) "$$dir" && rm -f $$files; }; \ } SCRIPTS = $(dist_sbin_SCRIPTS) AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = SOURCES = DIST_SOURCES = RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \ ctags-recursive dvi-recursive html-recursive info-recursive \ install-data-recursive install-dvi-recursive \ install-exec-recursive install-html-recursive \ install-info-recursive install-pdf-recursive \ install-ps-recursive install-recursive installcheck-recursive \ installdirs-recursive pdf-recursive ps-recursive \ tags-recursive uninstall-recursive am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__py_compile = PYTHON=$(PYTHON) $(SHELL) $(py_compile) am__pep3147_tweak = \ sed -e 's|\.py$$||' -e 's|[^/]*$$|__pycache__/&.*.py|' py_compile = $(top_srcdir)/build/py-compile man1dir = $(mandir)/man1 NROFF = nroff MANS = $(man_MANS) DATA = $(bashcomp_DATA) $(console_DATA) $(mocketc_DATA) $(pam_DATA) RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive am__recursive_targets = \ $(RECURSIVE_TARGETS) \ $(RECURSIVE_CLEAN_TARGETS) \ $(am__extra_recursive_targets) AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ cscope check recheck distdir dist dist-all distcheck am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) # Read a list of newline-separated strings from the standard input, # and print each of them once, without duplicates. Input order is # *not* preserved. am__uniquify_input = $(AWK) '\ BEGIN { nonempty = 0; } \ { items[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in items) print i; }; } \ ' # Make sure the list of sources is unique. This is necessary because, # e.g., the same source file might be shared among _SOURCES variables # for different programs/libraries. am__define_uniq_tagged_files = \ list='$(am__tagged_files)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags CSCOPE = cscope am__tty_colors_dummy = \ mgn= red= grn= lgn= blu= brg= std=; \ am__color_tests=no am__tty_colors = { \ $(am__tty_colors_dummy); \ if test "X$(AM_COLOR_TESTS)" = Xno; then \ am__color_tests=no; \ elif test "X$(AM_COLOR_TESTS)" = Xalways; then \ am__color_tests=yes; \ elif test "X$$TERM" != Xdumb && { test -t 1; } 2>/dev/null; then \ am__color_tests=yes; \ fi; \ if test $$am__color_tests = yes; then \ red=''; \ grn=''; \ lgn=''; \ blu=''; \ mgn=''; \ brg=''; \ std=''; \ fi; \ } am__recheck_rx = ^[ ]*:recheck:[ ]* am__global_test_result_rx = ^[ ]*:global-test-result:[ ]* am__copy_in_global_log_rx = ^[ ]*:copy-in-global-log:[ ]* # A command that, given a newline-separated list of test names on the # standard input, print the name of the tests that are to be re-run # upon "make recheck". am__list_recheck_tests = $(AWK) '{ \ recheck = 1; \ while ((rc = (getline line < ($$0 ".trs"))) != 0) \ { \ if (rc < 0) \ { \ if ((getline line2 < ($$0 ".log")) < 0) \ recheck = 0; \ break; \ } \ else if (line ~ /$(am__recheck_rx)[nN][Oo]/) \ { \ recheck = 0; \ break; \ } \ else if (line ~ /$(am__recheck_rx)[yY][eE][sS]/) \ { \ break; \ } \ }; \ if (recheck) \ print $$0; \ close ($$0 ".trs"); \ close ($$0 ".log"); \ }' # A command that, given a newline-separated list of test names on the # standard input, create the global log from their .trs and .log files. am__create_global_log = $(AWK) ' \ function fatal(msg) \ { \ print "fatal: making $@: " msg | "cat >&2"; \ exit 1; \ } \ function rst_section(header) \ { \ print header; \ len = length(header); \ for (i = 1; i <= len; i = i + 1) \ printf "="; \ printf "\n\n"; \ } \ { \ copy_in_global_log = 1; \ global_test_result = "RUN"; \ while ((rc = (getline line < ($$0 ".trs"))) != 0) \ { \ if (rc < 0) \ fatal("failed to read from " $$0 ".trs"); \ if (line ~ /$(am__global_test_result_rx)/) \ { \ sub("$(am__global_test_result_rx)", "", line); \ sub("[ ]*$$", "", line); \ global_test_result = line; \ } \ else if (line ~ /$(am__copy_in_global_log_rx)[nN][oO]/) \ copy_in_global_log = 0; \ }; \ if (copy_in_global_log) \ { \ rst_section(global_test_result ": " $$0); \ while ((rc = (getline line < ($$0 ".log"))) != 0) \ { \ if (rc < 0) \ fatal("failed to read from " $$0 ".log"); \ print line; \ }; \ printf "\n"; \ }; \ close ($$0 ".trs"); \ close ($$0 ".log"); \ }' # Restructured Text title. am__rst_title = { sed 's/.*/ & /;h;s/./=/g;p;x;s/ *$$//;p;g' && echo; } # Solaris 10 'make', and several other traditional 'make' implementations, # pass "-e" to $(SHELL), and POSIX 2008 even requires this. Work around it # by disabling -e (using the XSI extension "set +e") if it's set. am__sh_e_setup = case $$- in *e*) set +e;; esac # Default flags passed to test drivers. am__common_driver_flags = \ --color-tests "$$am__color_tests" \ --enable-hard-errors "$$am__enable_hard_errors" \ --expect-failure "$$am__expect_failure" # To be inserted before the command running the test. Creates the # directory for the log if needed. Stores in $dir the directory # containing $f, in $tst the test, in $log the log. Executes the # developer- defined test setup AM_TESTS_ENVIRONMENT (if any), and # passes TESTS_ENVIRONMENT. Set up options for the wrapper that # will run the test scripts (or their associated LOG_COMPILER, if # thy have one). am__check_pre = \ $(am__sh_e_setup); \ $(am__vpath_adj_setup) $(am__vpath_adj) \ $(am__tty_colors); \ srcdir=$(srcdir); export srcdir; \ case "$@" in \ */*) am__odir=`echo "./$@" | sed 's|/[^/]*$$||'`;; \ *) am__odir=.;; \ esac; \ test "x$$am__odir" = x"." || test -d "$$am__odir" \ || $(MKDIR_P) "$$am__odir" || exit $$?; \ if test -f "./$$f"; then dir=./; \ elif test -f "$$f"; then dir=; \ else dir="$(srcdir)/"; fi; \ tst=$$dir$$f; log='$@'; \ if test -n '$(DISABLE_HARD_ERRORS)'; then \ am__enable_hard_errors=no; \ else \ am__enable_hard_errors=yes; \ fi; \ case " $(XFAIL_TESTS) " in \ *[\ \ ]$$f[\ \ ]* | *[\ \ ]$$dir$$f[\ \ ]*) \ am__expect_failure=yes;; \ *) \ am__expect_failure=no;; \ esac; \ $(AM_TESTS_ENVIRONMENT) $(TESTS_ENVIRONMENT) # A shell command to get the names of the tests scripts with any registered # extension removed (i.e., equivalently, the names of the test logs, with # the '.log' extension removed). The result is saved in the shell variable # '$bases'. This honors runtime overriding of TESTS and TEST_LOGS. Sadly, # we cannot use something simpler, involving e.g., "$(TEST_LOGS:.log=)", # since that might cause problem with VPATH rewrites for suffix-less tests. # See also 'test-harness-vpath-rewrite.sh' and 'test-trs-basic.sh'. am__set_TESTS_bases = \ bases='$(TEST_LOGS)'; \ bases=`for i in $$bases; do echo $$i; done | sed 's/\.log$$//'`; \ bases=`echo $$bases` RECHECK_LOGS = $(TEST_LOGS) TEST_SUITE_LOG = test-suite.log TEST_EXTENSIONS = .test LOG_DRIVER = $(SHELL) $(top_srcdir)/build/test-driver LOG_COMPILE = $(LOG_COMPILER) $(AM_LOG_FLAGS) $(LOG_FLAGS) am__set_b = \ case '$@' in \ */*) \ case '$*' in \ */*) b='$*';; \ *) b=`echo '$@' | sed 's/\.log$$//'`; \ esac;; \ *) \ b='$*';; \ esac am__test_logs1 = $(TESTS:=.log) TEST_LOGS = $(am__test_logs1:.test.log=.log) TEST_LOG_DRIVER = $(SHELL) $(top_srcdir)/build/test-driver TEST_LOG_COMPILE = $(TEST_LOG_COMPILER) $(AM_TEST_LOG_FLAGS) \ $(TEST_LOG_FLAGS) DIST_SUBDIRS = $(SUBDIRS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) distdir = $(PACKAGE)-$(VERSION) top_distdir = $(distdir) am__remove_distdir = \ if test -d "$(distdir)"; then \ find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \ && rm -rf "$(distdir)" \ || { sleep 5 && rm -rf "$(distdir)"; }; \ else :; fi am__post_remove_distdir = $(am__remove_distdir) am__relativize = \ dir0=`pwd`; \ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ sed_rest='s,^[^/]*/*,,'; \ sed_last='s,^.*/\([^/]*\)$$,\1,'; \ sed_butlast='s,/*[^/]*$$,,'; \ while test -n "$$dir1"; do \ first=`echo "$$dir1" | sed -e "$$sed_first"`; \ if test "$$first" != "."; then \ if test "$$first" = ".."; then \ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ else \ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ if test "$$first2" = "$$first"; then \ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ else \ dir2="../$$dir2"; \ fi; \ dir0="$$dir0"/"$$first"; \ fi; \ fi; \ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ done; \ reldir="$$dir2" DIST_ARCHIVES = $(distdir).tar.gz GZIP_ENV = --best DIST_TARGETS = dist-gzip distuninstallcheck_listfiles = find . -type f -print am__distuninstallcheck_listfiles = $(distuninstallcheck_listfiles) \ | sed 's|^\./|$(prefix)/|' | grep -v '$(infodir)/dir$$' distcleancheck_listfiles = find . -type f -print ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ PACKAGE = $(RELEASE_NAME) PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PYTHON = @PYTHON@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ PYTHON_PREFIX = @PYTHON_PREFIX@ PYTHON_VERSION = @PYTHON_VERSION@ RELEASE_EXTRALEVEL = @RELEASE_EXTRALEVEL@ RELEASE_MAJOR = @RELEASE_MAJOR@ RELEASE_MINOR = @RELEASE_MINOR@ # dont move these 5 lines, as this is how we override the autoconf version and package name RELEASE_NAME = @RELEASE_NAME@ RELEASE_RPM_EXTRALEVEL = @RELEASE_RPM_EXTRALEVEL@ RELEASE_SUBLEVEL = @RELEASE_SUBLEVEL@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = $(RELEASE_VERSION) abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ am__leading_dot = @am__leading_dot@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build_alias = @build_alias@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host_alias = @host_alias@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pkgpyexecdir = @pkgpyexecdir@ pkgpythondir = @pkgpythondir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ pyexecdir = @pyexecdir@ pythondir = @pythondir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ AUTOMAKE_OPTIONS = subdir-objects SUBDIRS = RELEASE_VERSION = $(RELEASE_MAJOR).$(RELEASE_MINOR).$(RELEASE_SUBLEVEL)$(RELEASE_EXTRALEVEL) RELEASE_STRING = $(RELEASE_NAME)-$(RELEASE_VERSION) CLEANFILES = mock-*.tar.gz mock-*.tar.bz2 mock-*.rpm _buildtemp \ version tests/daemontest $(EXTRA_PROGRAMS) py/*.pyc \ py/mockbuild/*.pyc py/mockbuild/plugins/*.pyc DISTCLEANFILES = *~ mock-unit-test/* x86_64/* noarch/* i386/* TESTS = ./tests/runtests.sh EXTRA_DIST = contrib docs etc mocketcdir = $(sysconfdir)/mock mocketc_DATA = $(wildcard $(top_srcdir)/etc/mock/*.cfg) $(top_srcdir)/etc/mock/logging.ini dist_sbin_SCRIPTS = py/mock.py py/mockchain.py man_MANS = docs/mock.1 docs/mockchain.1 pamdir = $(sysconfdir)/pam.d/ pam_DATA = etc/pam/mock consoledir = $(sysconfdir)/security/console.apps/ console_DATA = etc/consolehelper/mock bashcompdir = $(sysconfdir)/bash_completion.d/ bashcomp_DATA = etc/bash_completion.d/mock.bash pluginsdir = $(pythondir)/mockbuild/plugins plugins_PYTHON = \ py/mockbuild/plugins/bind_mount.py \ py/mockbuild/plugins/ccache.py \ py/mockbuild/plugins/package_state.py \ py/mockbuild/plugins/root_cache.py \ py/mockbuild/plugins/tmpfs.py \ py/mockbuild/plugins/yum_cache.py \ py/mockbuild/plugins/selinux.py \ py/mockbuild/plugins/mount.py mockbuilddir = $(pythondir)/mockbuild mockbuild_PYTHON = \ py/mockbuild/__init__.py \ py/mockbuild/exception.py \ py/mockbuild/util.py \ py/mockbuild/backend.py \ py/mockbuild/trace_decorator.py \ py/mockbuild/uid.py \ py/mockbuild/scm.py \ py/mockbuild/mounts.py REPLACE_VARS_ON_INSTALL = $(sbindir)/mock.py $(sbindir)/mockchain.py TOPDIR := $(shell cd $(top_builddir);pwd) BUILDDIR = $(TOPDIR)/_rpmbuild RPMDIR = $(TOPDIR) SOURCEDIR = $(TOPDIR) SPECDIR = $(TOPDIR) SRCRPMDIR = $(TOPDIR) RPM_DEFINES = --define "_topdir $(TOPDIR)" \ --define "_builddir $(BUILDDIR)" \ --define "_rpmdir $(RPMDIR)" \ --define "_sourcedir $(SOURCEDIR)" \ --define "_specdir $(SPECDIR)" \ --define "_srcrpmdir $(SRCRPMDIR)" RPMBUILD := $(shell if [ -e /usr/bin/rpmbuild-md5 ]; then echo rpmbuild-md5; else echo rpmbuild; fi) all: all-recursive .SUFFIXES: .SUFFIXES: .log .test .trs am--refresh: Makefile @: $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ echo ' cd $(srcdir) && $(AUTOMAKE) --foreign'; \ $(am__cd) $(srcdir) && $(AUTOMAKE) --foreign \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ echo ' $(SHELL) ./config.status'; \ $(SHELL) ./config.status;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) $(SHELL) ./config.status --recheck $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) $(am__cd) $(srcdir) && $(AUTOCONF) $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) $(am__cd) $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) $(am__aclocal_m4_deps): mock.spec: $(top_builddir)/config.status $(srcdir)/mock.spec.in cd $(top_builddir) && $(SHELL) ./config.status $@ install-binPROGRAMS: $(bin_PROGRAMS) @$(NORMAL_INSTALL) @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(bindir)'"; \ $(MKDIR_P) "$(DESTDIR)$(bindir)" || exit 1; \ fi; \ for p in $$list; do echo "$$p $$p"; done | \ sed 's/$(EXEEXT)$$//' | \ while read p p1; do if test -f $$p \ ; then echo "$$p"; echo "$$p"; else :; fi; \ done | \ sed -e 'p;s,.*/,,;n;h' \ -e 's|.*|.|' \ -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \ sed 'N;N;N;s,\n, ,g' | \ $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \ { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \ if ($$2 == $$4) files[d] = files[d] " " $$1; \ else { print "f", $$3 "/" $$4, $$1; } } \ END { for (d in files) print "f", d, files[d] }' | \ while read type dir files; do \ if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \ test -z "$$files" || { \ echo " $(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(bindir)$$dir'"; \ $(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \ } \ ; done uninstall-binPROGRAMS: @$(NORMAL_UNINSTALL) @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ files=`for p in $$list; do echo "$$p"; done | \ sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \ -e 's/$$/$(EXEEXT)/' \ `; \ test -n "$$list" || exit 0; \ echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(bindir)" && rm -f $$files clean-binPROGRAMS: -test -z "$(bin_PROGRAMS)" || rm -f $(bin_PROGRAMS) install-dist_sbinSCRIPTS: $(dist_sbin_SCRIPTS) @$(NORMAL_INSTALL) @list='$(dist_sbin_SCRIPTS)'; test -n "$(sbindir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(sbindir)'"; \ $(MKDIR_P) "$(DESTDIR)$(sbindir)" || exit 1; \ fi; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ if test -f "$$d$$p"; then echo "$$d$$p"; echo "$$p"; else :; fi; \ done | \ sed -e 'p;s,.*/,,;n' \ -e 'h;s|.*|.|' \ -e 'p;x;s,.*/,,;$(transform)' | sed 'N;N;N;s,\n, ,g' | \ $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1; } \ { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \ if ($$2 == $$4) { files[d] = files[d] " " $$1; \ if (++n[d] == $(am__install_max)) { \ print "f", d, files[d]; n[d] = 0; files[d] = "" } } \ else { print "f", d "/" $$4, $$1 } } \ END { for (d in files) print "f", d, files[d] }' | \ while read type dir files; do \ if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \ test -z "$$files" || { \ echo " $(INSTALL_SCRIPT) $$files '$(DESTDIR)$(sbindir)$$dir'"; \ $(INSTALL_SCRIPT) $$files "$(DESTDIR)$(sbindir)$$dir" || exit $$?; \ } \ ; done uninstall-dist_sbinSCRIPTS: @$(NORMAL_UNINSTALL) @list='$(dist_sbin_SCRIPTS)'; test -n "$(sbindir)" || exit 0; \ files=`for p in $$list; do echo "$$p"; done | \ sed -e 's,.*/,,;$(transform)'`; \ dir='$(DESTDIR)$(sbindir)'; $(am__uninstall_files_from_dir) install-mockbuildPYTHON: $(mockbuild_PYTHON) @$(NORMAL_INSTALL) @list='$(mockbuild_PYTHON)'; dlist=; list2=; test -n "$(mockbuilddir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(mockbuilddir)'"; \ $(MKDIR_P) "$(DESTDIR)$(mockbuilddir)" || exit 1; \ fi; \ for p in $$list; do \ if test -f "$$p"; then b=; else b="$(srcdir)/"; fi; \ if test -f $$b$$p; then \ $(am__strip_dir) \ dlist="$$dlist $$f"; \ list2="$$list2 $$b$$p"; \ else :; fi; \ done; \ for file in $$list2; do echo $$file; done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(mockbuilddir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(mockbuilddir)" || exit $$?; \ done || exit $$?; \ if test -n "$$dlist"; then \ $(am__py_compile) --destdir "$(DESTDIR)" \ --basedir "$(mockbuilddir)" $$dlist; \ else :; fi uninstall-mockbuildPYTHON: @$(NORMAL_UNINSTALL) @list='$(mockbuild_PYTHON)'; test -n "$(mockbuilddir)" || list=; \ py_files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ test -n "$$py_files" || exit 0; \ dir='$(DESTDIR)$(mockbuilddir)'; \ pyc_files=`echo "$$py_files" | sed 's|$$|c|'`; \ pyo_files=`echo "$$py_files" | sed 's|$$|o|'`; \ py_files_pep3147=`echo "$$py_files" | $(am__pep3147_tweak)`; \ echo "$$py_files_pep3147";\ pyc_files_pep3147=`echo "$$py_files_pep3147" | sed 's|$$|c|'`; \ pyo_files_pep3147=`echo "$$py_files_pep3147" | sed 's|$$|o|'`; \ st=0; \ for files in \ "$$py_files" \ "$$pyc_files" \ "$$pyo_files" \ "$$pyc_files_pep3147" \ "$$pyo_files_pep3147" \ ; do \ $(am__uninstall_files_from_dir) || st=$$?; \ done; \ exit $$st install-pluginsPYTHON: $(plugins_PYTHON) @$(NORMAL_INSTALL) @list='$(plugins_PYTHON)'; dlist=; list2=; test -n "$(pluginsdir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(pluginsdir)'"; \ $(MKDIR_P) "$(DESTDIR)$(pluginsdir)" || exit 1; \ fi; \ for p in $$list; do \ if test -f "$$p"; then b=; else b="$(srcdir)/"; fi; \ if test -f $$b$$p; then \ $(am__strip_dir) \ dlist="$$dlist $$f"; \ list2="$$list2 $$b$$p"; \ else :; fi; \ done; \ for file in $$list2; do echo $$file; done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(pluginsdir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(pluginsdir)" || exit $$?; \ done || exit $$?; \ if test -n "$$dlist"; then \ $(am__py_compile) --destdir "$(DESTDIR)" \ --basedir "$(pluginsdir)" $$dlist; \ else :; fi uninstall-pluginsPYTHON: @$(NORMAL_UNINSTALL) @list='$(plugins_PYTHON)'; test -n "$(pluginsdir)" || list=; \ py_files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ test -n "$$py_files" || exit 0; \ dir='$(DESTDIR)$(pluginsdir)'; \ pyc_files=`echo "$$py_files" | sed 's|$$|c|'`; \ pyo_files=`echo "$$py_files" | sed 's|$$|o|'`; \ py_files_pep3147=`echo "$$py_files" | $(am__pep3147_tweak)`; \ echo "$$py_files_pep3147";\ pyc_files_pep3147=`echo "$$py_files_pep3147" | sed 's|$$|c|'`; \ pyo_files_pep3147=`echo "$$py_files_pep3147" | sed 's|$$|o|'`; \ st=0; \ for files in \ "$$py_files" \ "$$pyc_files" \ "$$pyo_files" \ "$$pyc_files_pep3147" \ "$$pyo_files_pep3147" \ ; do \ $(am__uninstall_files_from_dir) || st=$$?; \ done; \ exit $$st install-man1: $(man_MANS) @$(NORMAL_INSTALL) @list1=''; \ list2='$(man_MANS)'; \ test -n "$(man1dir)" \ && test -n "`echo $$list1$$list2`" \ || exit 0; \ echo " $(MKDIR_P) '$(DESTDIR)$(man1dir)'"; \ $(MKDIR_P) "$(DESTDIR)$(man1dir)" || exit 1; \ { for i in $$list1; do echo "$$i"; done; \ if test -n "$$list2"; then \ for i in $$list2; do echo "$$i"; done \ | sed -n '/\.1[a-z]*$$/p'; \ fi; \ } | while read p; do \ if test -f $$p; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; echo "$$p"; \ done | \ sed -e 'n;s,.*/,,;p;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \ -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,' | \ sed 'N;N;s,\n, ,g' | { \ list=; while read file base inst; do \ if test "$$base" = "$$inst"; then list="$$list $$file"; else \ echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man1dir)/$$inst'"; \ $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man1dir)/$$inst" || exit $$?; \ fi; \ done; \ for i in $$list; do echo "$$i"; done | $(am__base_list) | \ while read files; do \ test -z "$$files" || { \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(man1dir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(man1dir)" || exit $$?; }; \ done; } uninstall-man1: @$(NORMAL_UNINSTALL) @list=''; test -n "$(man1dir)" || exit 0; \ files=`{ for i in $$list; do echo "$$i"; done; \ l2='$(man_MANS)'; for i in $$l2; do echo "$$i"; done | \ sed -n '/\.1[a-z]*$$/p'; \ } | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \ -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \ dir='$(DESTDIR)$(man1dir)'; $(am__uninstall_files_from_dir) install-bashcompDATA: $(bashcomp_DATA) @$(NORMAL_INSTALL) @list='$(bashcomp_DATA)'; test -n "$(bashcompdir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(bashcompdir)'"; \ $(MKDIR_P) "$(DESTDIR)$(bashcompdir)" || exit 1; \ fi; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(bashcompdir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(bashcompdir)" || exit $$?; \ done uninstall-bashcompDATA: @$(NORMAL_UNINSTALL) @list='$(bashcomp_DATA)'; test -n "$(bashcompdir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ dir='$(DESTDIR)$(bashcompdir)'; $(am__uninstall_files_from_dir) install-consoleDATA: $(console_DATA) @$(NORMAL_INSTALL) @list='$(console_DATA)'; test -n "$(consoledir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(consoledir)'"; \ $(MKDIR_P) "$(DESTDIR)$(consoledir)" || exit 1; \ fi; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(consoledir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(consoledir)" || exit $$?; \ done uninstall-consoleDATA: @$(NORMAL_UNINSTALL) @list='$(console_DATA)'; test -n "$(consoledir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ dir='$(DESTDIR)$(consoledir)'; $(am__uninstall_files_from_dir) install-mocketcDATA: $(mocketc_DATA) @$(NORMAL_INSTALL) @list='$(mocketc_DATA)'; test -n "$(mocketcdir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(mocketcdir)'"; \ $(MKDIR_P) "$(DESTDIR)$(mocketcdir)" || exit 1; \ fi; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(mocketcdir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(mocketcdir)" || exit $$?; \ done uninstall-mocketcDATA: @$(NORMAL_UNINSTALL) @list='$(mocketc_DATA)'; test -n "$(mocketcdir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ dir='$(DESTDIR)$(mocketcdir)'; $(am__uninstall_files_from_dir) install-pamDATA: $(pam_DATA) @$(NORMAL_INSTALL) @list='$(pam_DATA)'; test -n "$(pamdir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(pamdir)'"; \ $(MKDIR_P) "$(DESTDIR)$(pamdir)" || exit 1; \ fi; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(pamdir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(pamdir)" || exit $$?; \ done uninstall-pamDATA: @$(NORMAL_UNINSTALL) @list='$(pam_DATA)'; test -n "$(pamdir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ dir='$(DESTDIR)$(pamdir)'; $(am__uninstall_files_from_dir) # This directory's subdirectories are mostly independent; you can cd # into them and run 'make' without going through this Makefile. # To change the values of 'make' variables: instead of editing Makefiles, # (1) if the variable is set in 'config.status', edit 'config.status' # (which will cause the Makefiles to be regenerated when you run 'make'); # (2) otherwise, pass the desired values on the 'make' command line. $(am__recursive_targets): @fail=; \ if $(am__make_keepgoing); then \ failcom='fail=yes'; \ else \ failcom='exit 1'; \ fi; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" ID: $(am__tagged_files) $(am__define_uniq_tagged_files); mkid -fID $$unique tags: tags-recursive TAGS: tags tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: ctags-recursive CTAGS: ctags ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" cscope: cscope.files test ! -s cscope.files \ || $(CSCOPE) -b -q $(AM_CSCOPEFLAGS) $(CSCOPEFLAGS) -i cscope.files $(CSCOPE_ARGS) clean-cscope: -rm -f cscope.files cscope.files: clean-cscope cscopelist cscopelist: cscopelist-recursive cscopelist-am: $(am__tagged_files) list='$(am__tagged_files)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ esac; \ for i in $$list; do \ if test -f "$$i"; then \ echo "$(subdir)/$$i"; \ else \ echo "$$sdir/$$i"; \ fi; \ done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags -rm -f cscope.out cscope.in.out cscope.po.out cscope.files # Recover from deleted '.trs' file; this should ensure that # "rm -f foo.log; make foo.trs" re-run 'foo.test', and re-create # both 'foo.log' and 'foo.trs'. Break the recipe in two subshells # to avoid problems with "make -n". .log.trs: rm -f $< $@ $(MAKE) $(AM_MAKEFLAGS) $< # Leading 'am--fnord' is there to ensure the list of targets does not # expand to empty, as could happen e.g. with make check TESTS=''. am--fnord $(TEST_LOGS) $(TEST_LOGS:.log=.trs): $(am__force_recheck) am--force-recheck: @: $(TEST_SUITE_LOG): $(TEST_LOGS) @$(am__set_TESTS_bases); \ am__f_ok () { test -f "$$1" && test -r "$$1"; }; \ redo_bases=`for i in $$bases; do \ am__f_ok $$i.trs && am__f_ok $$i.log || echo $$i; \ done`; \ if test -n "$$redo_bases"; then \ redo_logs=`for i in $$redo_bases; do echo $$i.log; done`; \ redo_results=`for i in $$redo_bases; do echo $$i.trs; done`; \ if $(am__make_dryrun); then :; else \ rm -f $$redo_logs && rm -f $$redo_results || exit 1; \ fi; \ fi; \ if test -n "$$am__remaking_logs"; then \ echo "fatal: making $(TEST_SUITE_LOG): possible infinite" \ "recursion detected" >&2; \ else \ am__remaking_logs=yes $(MAKE) $(AM_MAKEFLAGS) $$redo_logs; \ fi; \ if $(am__make_dryrun); then :; else \ st=0; \ errmsg="fatal: making $(TEST_SUITE_LOG): failed to create"; \ for i in $$redo_bases; do \ test -f $$i.trs && test -r $$i.trs \ || { echo "$$errmsg $$i.trs" >&2; st=1; }; \ test -f $$i.log && test -r $$i.log \ || { echo "$$errmsg $$i.log" >&2; st=1; }; \ done; \ test $$st -eq 0 || exit 1; \ fi @$(am__sh_e_setup); $(am__tty_colors); $(am__set_TESTS_bases); \ ws='[ ]'; \ results=`for b in $$bases; do echo $$b.trs; done`; \ test -n "$$results" || results=/dev/null; \ all=` grep "^$$ws*:test-result:" $$results | wc -l`; \ pass=` grep "^$$ws*:test-result:$$ws*PASS" $$results | wc -l`; \ fail=` grep "^$$ws*:test-result:$$ws*FAIL" $$results | wc -l`; \ skip=` grep "^$$ws*:test-result:$$ws*SKIP" $$results | wc -l`; \ xfail=`grep "^$$ws*:test-result:$$ws*XFAIL" $$results | wc -l`; \ xpass=`grep "^$$ws*:test-result:$$ws*XPASS" $$results | wc -l`; \ error=`grep "^$$ws*:test-result:$$ws*ERROR" $$results | wc -l`; \ if test `expr $$fail + $$xpass + $$error` -eq 0; then \ success=true; \ else \ success=false; \ fi; \ br='==================='; br=$$br$$br$$br$$br; \ result_count () \ { \ if test x"$$1" = x"--maybe-color"; then \ maybe_colorize=yes; \ elif test x"$$1" = x"--no-color"; then \ maybe_colorize=no; \ else \ echo "$@: invalid 'result_count' usage" >&2; exit 4; \ fi; \ shift; \ desc=$$1 count=$$2; \ if test $$maybe_colorize = yes && test $$count -gt 0; then \ color_start=$$3 color_end=$$std; \ else \ color_start= color_end=; \ fi; \ echo "$${color_start}# $$desc $$count$${color_end}"; \ }; \ create_testsuite_report () \ { \ result_count $$1 "TOTAL:" $$all "$$brg"; \ result_count $$1 "PASS: " $$pass "$$grn"; \ result_count $$1 "SKIP: " $$skip "$$blu"; \ result_count $$1 "XFAIL:" $$xfail "$$lgn"; \ result_count $$1 "FAIL: " $$fail "$$red"; \ result_count $$1 "XPASS:" $$xpass "$$red"; \ result_count $$1 "ERROR:" $$error "$$mgn"; \ }; \ { \ echo "$(PACKAGE_STRING): $(subdir)/$(TEST_SUITE_LOG)" | \ $(am__rst_title); \ create_testsuite_report --no-color; \ echo; \ echo ".. contents:: :depth: 2"; \ echo; \ for b in $$bases; do echo $$b; done \ | $(am__create_global_log); \ } >$(TEST_SUITE_LOG).tmp || exit 1; \ mv $(TEST_SUITE_LOG).tmp $(TEST_SUITE_LOG); \ if $$success; then \ col="$$grn"; \ else \ col="$$red"; \ test x"$$VERBOSE" = x || cat $(TEST_SUITE_LOG); \ fi; \ echo "$${col}$$br$${std}"; \ echo "$${col}Testsuite summary for $(PACKAGE_STRING)$${std}"; \ echo "$${col}$$br$${std}"; \ create_testsuite_report --maybe-color; \ echo "$$col$$br$$std"; \ if $$success; then :; else \ echo "$${col}See $(subdir)/$(TEST_SUITE_LOG)$${std}"; \ if test -n "$(PACKAGE_BUGREPORT)"; then \ echo "$${col}Please report to $(PACKAGE_BUGREPORT)$${std}"; \ fi; \ echo "$$col$$br$$std"; \ fi; \ $$success || exit 1 check-TESTS: @list='$(RECHECK_LOGS)'; test -z "$$list" || rm -f $$list @list='$(RECHECK_LOGS:.log=.trs)'; test -z "$$list" || rm -f $$list @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) @set +e; $(am__set_TESTS_bases); \ log_list=`for i in $$bases; do echo $$i.log; done`; \ trs_list=`for i in $$bases; do echo $$i.trs; done`; \ log_list=`echo $$log_list`; trs_list=`echo $$trs_list`; \ $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) TEST_LOGS="$$log_list"; \ exit $$?; recheck: all @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) @set +e; $(am__set_TESTS_bases); \ bases=`for i in $$bases; do echo $$i; done \ | $(am__list_recheck_tests)` || exit 1; \ log_list=`for i in $$bases; do echo $$i.log; done`; \ log_list=`echo $$log_list`; \ $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) \ am__force_recheck=am--force-recheck \ TEST_LOGS="$$log_list"; \ exit $$? ./tests/runtests.sh.log: ./tests/runtests.sh @p='./tests/runtests.sh'; \ b='./tests/runtests.sh'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) .test.log: @p='$<'; \ $(am__set_b); \ $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) distdir: $(DISTFILES) $(am__remove_distdir) test -d "$(distdir)" || mkdir "$(distdir)" @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ $(am__make_dryrun) \ || test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ dir1=$$subdir; dir2="$(top_distdir)"; \ $(am__relativize); \ new_top_distdir=$$reldir; \ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ ($(am__cd) $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$new_top_distdir" \ distdir="$$new_distdir" \ am__remove_distdir=: \ am__skip_length_check=: \ am__skip_mode_fix=: \ distdir) \ || exit 1; \ fi; \ done -test -n "$(am__skip_mode_fix)" \ || find "$(distdir)" -type d ! -perm -755 \ -exec chmod u+rwx,go+rx {} \; -o \ ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \ ! -type d ! -perm -400 -exec chmod a+r {} \; -o \ ! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \ || chmod -R a+r "$(distdir)" dist-gzip: distdir tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz $(am__post_remove_distdir) dist-bzip2: distdir tardir=$(distdir) && $(am__tar) | BZIP2=$${BZIP2--9} bzip2 -c >$(distdir).tar.bz2 $(am__post_remove_distdir) dist-lzip: distdir tardir=$(distdir) && $(am__tar) | lzip -c $${LZIP_OPT--9} >$(distdir).tar.lz $(am__post_remove_distdir) dist-xz: distdir tardir=$(distdir) && $(am__tar) | XZ_OPT=$${XZ_OPT--e} xz -c >$(distdir).tar.xz $(am__post_remove_distdir) dist-tarZ: distdir tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z $(am__post_remove_distdir) dist-shar: distdir shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz $(am__post_remove_distdir) dist-zip: distdir -rm -f $(distdir).zip zip -rq $(distdir).zip $(distdir) $(am__post_remove_distdir) dist dist-all: $(MAKE) $(AM_MAKEFLAGS) $(DIST_TARGETS) am__post_remove_distdir='@:' $(am__post_remove_distdir) # This target untars the dist file and tries a VPATH configuration. Then # it guarantees that the distribution is self-contained by making another # tarfile. distcheck: dist case '$(DIST_ARCHIVES)' in \ *.tar.gz*) \ GZIP=$(GZIP_ENV) gzip -dc $(distdir).tar.gz | $(am__untar) ;;\ *.tar.bz2*) \ bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\ *.tar.lz*) \ lzip -dc $(distdir).tar.lz | $(am__untar) ;;\ *.tar.xz*) \ xz -dc $(distdir).tar.xz | $(am__untar) ;;\ *.tar.Z*) \ uncompress -c $(distdir).tar.Z | $(am__untar) ;;\ *.shar.gz*) \ GZIP=$(GZIP_ENV) gzip -dc $(distdir).shar.gz | unshar ;;\ *.zip*) \ unzip $(distdir).zip ;;\ esac chmod -R a-w $(distdir) chmod u+w $(distdir) mkdir $(distdir)/_build $(distdir)/_inst chmod a-w $(distdir) test -d $(distdir)/_build || exit 0; \ dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \ && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \ && am__cwd=`pwd` \ && $(am__cd) $(distdir)/_build \ && ../configure --srcdir=.. --prefix="$$dc_install_base" \ $(AM_DISTCHECK_CONFIGURE_FLAGS) \ $(DISTCHECK_CONFIGURE_FLAGS) \ && $(MAKE) $(AM_MAKEFLAGS) \ && $(MAKE) $(AM_MAKEFLAGS) dvi \ && $(MAKE) $(AM_MAKEFLAGS) check \ && $(MAKE) $(AM_MAKEFLAGS) install \ && $(MAKE) $(AM_MAKEFLAGS) installcheck \ && $(MAKE) $(AM_MAKEFLAGS) uninstall \ && $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \ distuninstallcheck \ && chmod -R a-w "$$dc_install_base" \ && ({ \ (cd ../.. && umask 077 && mkdir "$$dc_destdir") \ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \ distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \ } || { rm -rf "$$dc_destdir"; exit 1; }) \ && rm -rf "$$dc_destdir" \ && $(MAKE) $(AM_MAKEFLAGS) dist \ && rm -rf $(DIST_ARCHIVES) \ && $(MAKE) $(AM_MAKEFLAGS) distcleancheck \ && cd "$$am__cwd" \ || exit 1 $(am__post_remove_distdir) @(echo "$(distdir) archives ready for distribution: "; \ list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \ sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x' distuninstallcheck: @test -n '$(distuninstallcheck_dir)' || { \ echo 'ERROR: trying to run $@ with an empty' \ '$$(distuninstallcheck_dir)' >&2; \ exit 1; \ }; \ $(am__cd) '$(distuninstallcheck_dir)' || { \ echo 'ERROR: cannot chdir into $(distuninstallcheck_dir)' >&2; \ exit 1; \ }; \ test `$(am__distuninstallcheck_listfiles) | wc -l` -eq 0 \ || { echo "ERROR: files left after uninstall:" ; \ if test -n "$(DESTDIR)"; then \ echo " (check DESTDIR support)"; \ fi ; \ $(distuninstallcheck_listfiles) ; \ exit 1; } >&2 distcleancheck: distclean @if test '$(srcdir)' = . ; then \ echo "ERROR: distcleancheck can only run from a VPATH build" ; \ exit 1 ; \ fi @test `$(distcleancheck_listfiles) | wc -l` -eq 0 \ || { echo "ERROR: files left in build directory after distclean:" ; \ $(distcleancheck_listfiles) ; \ exit 1; } >&2 check-am: all-am $(MAKE) $(AM_MAKEFLAGS) check-TESTS check: check-recursive all-am: Makefile $(PROGRAMS) $(SCRIPTS) $(MANS) $(DATA) installdirs: installdirs-recursive installdirs-am: for dir in "$(DESTDIR)$(bindir)" "$(DESTDIR)$(sbindir)" "$(DESTDIR)$(mockbuilddir)" "$(DESTDIR)$(pluginsdir)" "$(DESTDIR)$(man1dir)" "$(DESTDIR)$(bashcompdir)" "$(DESTDIR)$(consoledir)" "$(DESTDIR)$(mocketcdir)" "$(DESTDIR)$(pamdir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: -test -z "$(TEST_LOGS)" || rm -f $(TEST_LOGS) -test -z "$(TEST_LOGS:.log=.trs)" || rm -f $(TEST_LOGS:.log=.trs) -test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) clean-generic: -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive clean-am: clean-binPROGRAMS clean-generic mostlyclean-am distclean: distclean-recursive -rm -f $(am__CONFIG_DISTCLEAN_FILES) -rm -f Makefile distclean-am: clean-am distclean-generic distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive html-am: info: info-recursive info-am: install-data-am: install-bashcompDATA install-consoleDATA install-man \ install-mockbuildPYTHON install-mocketcDATA install-pamDATA \ install-pluginsPYTHON @$(NORMAL_INSTALL) $(MAKE) $(AM_MAKEFLAGS) install-data-hook install-dvi: install-dvi-recursive install-dvi-am: install-exec-am: install-binPROGRAMS install-dist_sbinSCRIPTS @$(NORMAL_INSTALL) $(MAKE) $(AM_MAKEFLAGS) install-exec-hook install-html: install-html-recursive install-html-am: install-info: install-info-recursive install-info-am: install-man: install-man1 install-pdf: install-pdf-recursive install-pdf-am: install-ps: install-ps-recursive install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -f $(am__CONFIG_DISTCLEAN_FILES) -rm -rf $(top_srcdir)/autom4te.cache -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-generic pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: uninstall-bashcompDATA uninstall-binPROGRAMS \ uninstall-consoleDATA uninstall-dist_sbinSCRIPTS uninstall-man \ uninstall-mockbuildPYTHON uninstall-mocketcDATA \ uninstall-pamDATA uninstall-pluginsPYTHON uninstall-man: uninstall-man1 .MAKE: $(am__recursive_targets) check-am install-am install-data-am \ install-exec-am install-strip .PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am \ am--refresh check check-TESTS check-am clean clean-binPROGRAMS \ clean-cscope clean-generic cscope cscopelist-am ctags ctags-am \ dist dist-all dist-bzip2 dist-gzip dist-lzip dist-shar \ dist-tarZ dist-xz dist-zip distcheck distclean \ distclean-generic distclean-tags distcleancheck distdir \ distuninstallcheck dvi dvi-am html html-am info info-am \ install install-am install-bashcompDATA install-binPROGRAMS \ install-consoleDATA install-data install-data-am \ install-data-hook install-dist_sbinSCRIPTS install-dvi \ install-dvi-am install-exec install-exec-am install-exec-hook \ install-html install-html-am install-info install-info-am \ install-man install-man1 install-mockbuildPYTHON \ install-mocketcDATA install-pamDATA install-pdf install-pdf-am \ install-pluginsPYTHON install-ps install-ps-am install-strip \ installcheck installcheck-am installdirs installdirs-am \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-generic pdf pdf-am ps ps-am recheck tags tags-am \ uninstall uninstall-am uninstall-bashcompDATA \ uninstall-binPROGRAMS uninstall-consoleDATA \ uninstall-dist_sbinSCRIPTS uninstall-man uninstall-man1 \ uninstall-mockbuildPYTHON uninstall-mocketcDATA \ uninstall-pamDATA uninstall-pluginsPYTHON $(TESTS): srpm dist: ChangeLog AUTHORS ChangeLog: (GIT_DIR=.git git log > .changelog.tmp && mv .changelog.tmp ChangeLog; rm -f .changelog.tmp) || (touch ChangeLog; echo 'git directory not found: installing possibly empty changelog.' >&2) AUTHORS: (GIT_DIR=.git git log | grep ^Author | sort |uniq > .authors.tmp && mv .authors.tmp AUTHORS; rm -f .authors.tmp) || (touch AUTHORS; echo 'git directory not found: installing possibly empty AUTHORS.' >&2) install-exec-hook: for i in $(REPLACE_VARS_ON_INSTALL); do \ file=$(DESTDIR)/$$i ;\ perl -p -i -e 's|^__VERSION__\s*=.*|__VERSION__="$(RELEASE_VERSION)"|' $$file ;\ perl -p -i -e 's|^SYSCONFDIR\s*=.*|SYSCONFDIR="$(sysconfdir)"|' $$file ;\ perl -p -i -e 's|^PYTHONDIR\s*=.*|PYTHONDIR="$(pythondir)"|' $$file ;\ perl -p -i -e 's|^PKGPYTHONDIR\s*=.*|PKGPYTHONDIR="$(mockbuilddir)"|' $$file ;\ perl -p -i -e 's|^PKGDATADIR\s*=.*|PKGDATADIR="$(pkgdatadir)"|' $$file ;\ perl -p -i -e 's|^LIBDIR\s*=.*|LIBDIR="$(libdir)"|' $$file ;\ done mv $(DESTDIR)/$(sbindir)/mock.py $(DESTDIR)/$(sbindir)/mock [ -d $(DESTDIR)/$(bindir) ] || mkdir $(DESTDIR)/$(bindir) mv $(DESTDIR)/$(sbindir)/mockchain.py $(DESTDIR)/$(bindir)/mockchain install-data-hook: perl -p -i -e 's|(=\s*)/etc/mock\b|$$1$(sysconfdir)/mock|' \ $(DESTDIR)$(bashcompdir)/mock.bash .PHONY: rpm srpm help install-devel-packages rpm: dist mkdir -p $(BUILDDIR) $(RPMBUILD) $(RPM_DEFINES) -ba --nodeps $(PACKAGE_NAME).spec rm -rf $(BUILDDIR) srpm: dist mkdir -p $(BUILDDIR) $(RPMBUILD) $(RPM_DEFINES) -bs --nodeps $(PACKAGE_NAME).spec rm -rf $(BUILDDIR) install-devel-packages: yum --disablerepo='beaker*' install mock rpm-build fedora-packager vim-enhanced git-all help: @echo @echo "Mock Makefile targets:" @echo " dist - generate Changelog and Authors file" @echo " rpm - build binary RPM" @echo " srpm - build source RPM" @echo " help - print this message" @echo "Additionally, all standard automake targets are supported" @echo # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: mock-1.1.33/aclocal.m40000664001204700120500000010771512205226664011327 00000000000000# generated automatically by aclocal 1.13.4 -*- Autoconf -*- # Copyright (C) 1996-2013 Free Software Foundation, Inc. # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. m4_ifndef([AC_CONFIG_MACRO_DIRS], [m4_defun([_AM_CONFIG_MACRO_DIRS], [])m4_defun([AC_CONFIG_MACRO_DIRS], [_AM_CONFIG_MACRO_DIRS($@)])]) m4_ifndef([AC_AUTOCONF_VERSION], [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.69],, [m4_warning([this file was generated for autoconf 2.69. You have another version of autoconf. It may work, but is not guaranteed to. If you have problems, you may need to regenerate the build system entirely. To do so, use the procedure documented by the package, typically 'autoreconf'.])]) # Copyright (C) 2002-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_AUTOMAKE_VERSION(VERSION) # ---------------------------- # Automake X.Y traces this macro to ensure aclocal.m4 has been # generated from the m4 files accompanying Automake X.Y. # (This private macro should not be called outside this file.) AC_DEFUN([AM_AUTOMAKE_VERSION], [am__api_version='1.13' dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to dnl require some minimum version. Point them to the right macro. m4_if([$1], [1.13.4], [], [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl ]) # _AM_AUTOCONF_VERSION(VERSION) # ----------------------------- # aclocal traces this macro to find the Autoconf version. # This is a private macro too. Using m4_define simplifies # the logic in aclocal, which can simply ignore this definition. m4_define([_AM_AUTOCONF_VERSION], []) # AM_SET_CURRENT_AUTOMAKE_VERSION # ------------------------------- # Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced. # This function is AC_REQUIREd by AM_INIT_AUTOMAKE. AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], [AM_AUTOMAKE_VERSION([1.13.4])dnl m4_ifndef([AC_AUTOCONF_VERSION], [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl _AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))]) # AM_AUX_DIR_EXPAND -*- Autoconf -*- # Copyright (C) 2001-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets # $ac_aux_dir to '$srcdir/foo'. In other projects, it is set to # '$srcdir', '$srcdir/..', or '$srcdir/../..'. # # Of course, Automake must honor this variable whenever it calls a # tool from the auxiliary directory. The problem is that $srcdir (and # therefore $ac_aux_dir as well) can be either absolute or relative, # depending on how configure is run. This is pretty annoying, since # it makes $ac_aux_dir quite unusable in subdirectories: in the top # source directory, any form will work fine, but in subdirectories a # relative path needs to be adjusted first. # # $ac_aux_dir/missing # fails when called from a subdirectory if $ac_aux_dir is relative # $top_srcdir/$ac_aux_dir/missing # fails if $ac_aux_dir is absolute, # fails when called from a subdirectory in a VPATH build with # a relative $ac_aux_dir # # The reason of the latter failure is that $top_srcdir and $ac_aux_dir # are both prefixed by $srcdir. In an in-source build this is usually # harmless because $srcdir is '.', but things will broke when you # start a VPATH build or use an absolute $srcdir. # # So we could use something similar to $top_srcdir/$ac_aux_dir/missing, # iff we strip the leading $srcdir from $ac_aux_dir. That would be: # am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"` # and then we would define $MISSING as # MISSING="\${SHELL} $am_aux_dir/missing" # This will work as long as MISSING is not called from configure, because # unfortunately $(top_srcdir) has no meaning in configure. # However there are other variables, like CC, which are often used in # configure, and could therefore not use this "fixed" $ac_aux_dir. # # Another solution, used here, is to always expand $ac_aux_dir to an # absolute PATH. The drawback is that using absolute paths prevent a # configured tree to be moved without reconfiguration. AC_DEFUN([AM_AUX_DIR_EXPAND], [dnl Rely on autoconf to set up CDPATH properly. AC_PREREQ([2.50])dnl # expand $ac_aux_dir to an absolute path am_aux_dir=`cd $ac_aux_dir && pwd` ]) # AM_CONDITIONAL -*- Autoconf -*- # Copyright (C) 1997-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_CONDITIONAL(NAME, SHELL-CONDITION) # ------------------------------------- # Define a conditional. AC_DEFUN([AM_CONDITIONAL], [AC_PREREQ([2.52])dnl m4_if([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])], [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl AC_SUBST([$1_TRUE])dnl AC_SUBST([$1_FALSE])dnl _AM_SUBST_NOTMAKE([$1_TRUE])dnl _AM_SUBST_NOTMAKE([$1_FALSE])dnl m4_define([_AM_COND_VALUE_$1], [$2])dnl if $2; then $1_TRUE= $1_FALSE='#' else $1_TRUE='#' $1_FALSE= fi AC_CONFIG_COMMANDS_PRE( [if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then AC_MSG_ERROR([[conditional "$1" was never defined. Usually this means the macro was only invoked conditionally.]]) fi])]) # Do all the work for Automake. -*- Autoconf -*- # Copyright (C) 1996-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This macro actually does too much. Some checks are only needed if # your package does certain things. But this isn't really a big deal. # AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE]) # AM_INIT_AUTOMAKE([OPTIONS]) # ----------------------------------------------- # The call with PACKAGE and VERSION arguments is the old style # call (pre autoconf-2.50), which is being phased out. PACKAGE # and VERSION should now be passed to AC_INIT and removed from # the call to AM_INIT_AUTOMAKE. # We support both call styles for the transition. After # the next Automake release, Autoconf can make the AC_INIT # arguments mandatory, and then we can depend on a new Autoconf # release and drop the old call support. AC_DEFUN([AM_INIT_AUTOMAKE], [AC_PREREQ([2.65])dnl dnl Autoconf wants to disallow AM_ names. We explicitly allow dnl the ones we care about. m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl AC_REQUIRE([AC_PROG_INSTALL])dnl if test "`cd $srcdir && pwd`" != "`pwd`"; then # Use -I$(srcdir) only when $(srcdir) != ., so that make's output # is not polluted with repeated "-I." AC_SUBST([am__isrc], [' -I$(srcdir)'])_AM_SUBST_NOTMAKE([am__isrc])dnl # test to see if srcdir already configured if test -f $srcdir/config.status; then AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) fi fi # test whether we have cygpath if test -z "$CYGPATH_W"; then if (cygpath --version) >/dev/null 2>/dev/null; then CYGPATH_W='cygpath -w' else CYGPATH_W=echo fi fi AC_SUBST([CYGPATH_W]) # Define the identity of the package. dnl Distinguish between old-style and new-style calls. m4_ifval([$2], [AC_DIAGNOSE([obsolete], [$0: two- and three-arguments forms are deprecated.]) m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl AC_SUBST([PACKAGE], [$1])dnl AC_SUBST([VERSION], [$2])], [_AM_SET_OPTIONS([$1])dnl dnl Diagnose old-style AC_INIT with new-style AM_AUTOMAKE_INIT. m4_if( m4_ifdef([AC_PACKAGE_NAME], [ok]):m4_ifdef([AC_PACKAGE_VERSION], [ok]), [ok:ok],, [m4_fatal([AC_INIT should be called with package and version arguments])])dnl AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl _AM_IF_OPTION([no-define],, [AC_DEFINE_UNQUOTED([PACKAGE], ["$PACKAGE"], [Name of package]) AC_DEFINE_UNQUOTED([VERSION], ["$VERSION"], [Version number of package])])dnl # Some tools Automake needs. AC_REQUIRE([AM_SANITY_CHECK])dnl AC_REQUIRE([AC_ARG_PROGRAM])dnl AM_MISSING_PROG([ACLOCAL], [aclocal-${am__api_version}]) AM_MISSING_PROG([AUTOCONF], [autoconf]) AM_MISSING_PROG([AUTOMAKE], [automake-${am__api_version}]) AM_MISSING_PROG([AUTOHEADER], [autoheader]) AM_MISSING_PROG([MAKEINFO], [makeinfo]) AC_REQUIRE([AM_PROG_INSTALL_SH])dnl AC_REQUIRE([AM_PROG_INSTALL_STRIP])dnl AC_REQUIRE([AC_PROG_MKDIR_P])dnl # For better backward compatibility. To be removed once Automake 1.9.x # dies out for good. For more background, see: # # AC_SUBST([mkdir_p], ['$(MKDIR_P)']) # We need awk for the "check" target. The system "awk" is bad on # some platforms. AC_REQUIRE([AC_PROG_AWK])dnl AC_REQUIRE([AC_PROG_MAKE_SET])dnl AC_REQUIRE([AM_SET_LEADING_DOT])dnl _AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])], [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])], [_AM_PROG_TAR([v7])])]) _AM_IF_OPTION([no-dependencies],, [AC_PROVIDE_IFELSE([AC_PROG_CC], [_AM_DEPENDENCIES([CC])], [m4_define([AC_PROG_CC], m4_defn([AC_PROG_CC])[_AM_DEPENDENCIES([CC])])])dnl AC_PROVIDE_IFELSE([AC_PROG_CXX], [_AM_DEPENDENCIES([CXX])], [m4_define([AC_PROG_CXX], m4_defn([AC_PROG_CXX])[_AM_DEPENDENCIES([CXX])])])dnl AC_PROVIDE_IFELSE([AC_PROG_OBJC], [_AM_DEPENDENCIES([OBJC])], [m4_define([AC_PROG_OBJC], m4_defn([AC_PROG_OBJC])[_AM_DEPENDENCIES([OBJC])])])dnl AC_PROVIDE_IFELSE([AC_PROG_OBJCXX], [_AM_DEPENDENCIES([OBJCXX])], [m4_define([AC_PROG_OBJCXX], m4_defn([AC_PROG_OBJCXX])[_AM_DEPENDENCIES([OBJCXX])])])dnl ]) AC_REQUIRE([AM_SILENT_RULES])dnl dnl The testsuite driver may need to know about EXEEXT, so add the dnl 'am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen. This dnl macro is hooked onto _AC_COMPILER_EXEEXT early, see below. AC_CONFIG_COMMANDS_PRE(dnl [m4_provide_if([_AM_COMPILER_EXEEXT], [AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])])])dnl ]) dnl Hook into '_AC_COMPILER_EXEEXT' early to learn its expansion. Do not dnl add the conditional right here, as _AC_COMPILER_EXEEXT may be further dnl mangled by Autoconf and run in a shell conditional statement. m4_define([_AC_COMPILER_EXEEXT], m4_defn([_AC_COMPILER_EXEEXT])[m4_provide([_AM_COMPILER_EXEEXT])]) # When config.status generates a header, we must update the stamp-h file. # This file resides in the same directory as the config header # that is generated. The stamp files are numbered to have different names. # Autoconf calls _AC_AM_CONFIG_HEADER_HOOK (when defined) in the # loop where config.status creates the headers, so we can generate # our stamp files there. AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK], [# Compute $1's index in $config_headers. _am_arg=$1 _am_stamp_count=1 for _am_header in $config_headers :; do case $_am_header in $_am_arg | $_am_arg:* ) break ;; * ) _am_stamp_count=`expr $_am_stamp_count + 1` ;; esac done echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count]) # Copyright (C) 2001-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_PROG_INSTALL_SH # ------------------ # Define $install_sh. AC_DEFUN([AM_PROG_INSTALL_SH], [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl if test x"${install_sh}" != xset; then case $am_aux_dir in *\ * | *\ *) install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; *) install_sh="\${SHELL} $am_aux_dir/install-sh" esac fi AC_SUBST([install_sh])]) # Copyright (C) 2003-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # Check whether the underlying file-system supports filenames # with a leading dot. For instance MS-DOS doesn't. AC_DEFUN([AM_SET_LEADING_DOT], [rm -rf .tst 2>/dev/null mkdir .tst 2>/dev/null if test -d .tst; then am__leading_dot=. else am__leading_dot=_ fi rmdir .tst 2>/dev/null AC_SUBST([am__leading_dot])]) # Add --enable-maintainer-mode option to configure. -*- Autoconf -*- # From Jim Meyering # Copyright (C) 1996-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_MAINTAINER_MODE([DEFAULT-MODE]) # ---------------------------------- # Control maintainer-specific portions of Makefiles. # Default is to disable them, unless 'enable' is passed literally. # For symmetry, 'disable' may be passed as well. Anyway, the user # can override the default with the --enable/--disable switch. AC_DEFUN([AM_MAINTAINER_MODE], [m4_case(m4_default([$1], [disable]), [enable], [m4_define([am_maintainer_other], [disable])], [disable], [m4_define([am_maintainer_other], [enable])], [m4_define([am_maintainer_other], [enable]) m4_warn([syntax], [unexpected argument to AM@&t@_MAINTAINER_MODE: $1])]) AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles]) dnl maintainer-mode's default is 'disable' unless 'enable' is passed AC_ARG_ENABLE([maintainer-mode], [AS_HELP_STRING([--]am_maintainer_other[-maintainer-mode], am_maintainer_other[ make rules and dependencies not useful (and sometimes confusing) to the casual installer])], [USE_MAINTAINER_MODE=$enableval], [USE_MAINTAINER_MODE=]m4_if(am_maintainer_other, [enable], [no], [yes])) AC_MSG_RESULT([$USE_MAINTAINER_MODE]) AM_CONDITIONAL([MAINTAINER_MODE], [test $USE_MAINTAINER_MODE = yes]) MAINT=$MAINTAINER_MODE_TRUE AC_SUBST([MAINT])dnl ] ) # Fake the existence of programs that GNU maintainers use. -*- Autoconf -*- # Copyright (C) 1997-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_MISSING_PROG(NAME, PROGRAM) # ------------------------------ AC_DEFUN([AM_MISSING_PROG], [AC_REQUIRE([AM_MISSING_HAS_RUN]) $1=${$1-"${am_missing_run}$2"} AC_SUBST($1)]) # AM_MISSING_HAS_RUN # ------------------ # Define MISSING if not defined so far and test if it is modern enough. # If it is, set am_missing_run to use it, otherwise, to nothing. AC_DEFUN([AM_MISSING_HAS_RUN], [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl AC_REQUIRE_AUX_FILE([missing])dnl if test x"${MISSING+set}" != xset; then case $am_aux_dir in *\ * | *\ *) MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;; *) MISSING="\${SHELL} $am_aux_dir/missing" ;; esac fi # Use eval to expand $SHELL if eval "$MISSING --is-lightweight"; then am_missing_run="$MISSING " else am_missing_run= AC_MSG_WARN(['missing' script is too old or missing]) fi ]) # Helper functions for option handling. -*- Autoconf -*- # Copyright (C) 2001-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # _AM_MANGLE_OPTION(NAME) # ----------------------- AC_DEFUN([_AM_MANGLE_OPTION], [[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])]) # _AM_SET_OPTION(NAME) # -------------------- # Set option NAME. Presently that only means defining a flag for this option. AC_DEFUN([_AM_SET_OPTION], [m4_define(_AM_MANGLE_OPTION([$1]), [1])]) # _AM_SET_OPTIONS(OPTIONS) # ------------------------ # OPTIONS is a space-separated list of Automake options. AC_DEFUN([_AM_SET_OPTIONS], [m4_foreach_w([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])]) # _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET]) # ------------------------------------------- # Execute IF-SET if OPTION is set, IF-NOT-SET otherwise. AC_DEFUN([_AM_IF_OPTION], [m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])]) # Copyright (C) 1999-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_PATH_PYTHON([MINIMUM-VERSION], [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND]) # --------------------------------------------------------------------------- # Adds support for distributing Python modules and packages. To # install modules, copy them to $(pythondir), using the python_PYTHON # automake variable. To install a package with the same name as the # automake package, install to $(pkgpythondir), or use the # pkgpython_PYTHON automake variable. # # The variables $(pyexecdir) and $(pkgpyexecdir) are provided as # locations to install python extension modules (shared libraries). # Another macro is required to find the appropriate flags to compile # extension modules. # # If your package is configured with a different prefix to python, # users will have to add the install directory to the PYTHONPATH # environment variable, or create a .pth file (see the python # documentation for details). # # If the MINIMUM-VERSION argument is passed, AM_PATH_PYTHON will # cause an error if the version of python installed on the system # doesn't meet the requirement. MINIMUM-VERSION should consist of # numbers and dots only. AC_DEFUN([AM_PATH_PYTHON], [ dnl Find a Python interpreter. Python versions prior to 2.0 are not dnl supported. (2.0 was released on October 16, 2000). m4_define_default([_AM_PYTHON_INTERPRETER_LIST], [python python2 python3 python3.3 python3.2 python3.1 python3.0 python2.7 dnl python2.6 python2.5 python2.4 python2.3 python2.2 python2.1 python2.0]) AC_ARG_VAR([PYTHON], [the Python interpreter]) m4_if([$1],[],[ dnl No version check is needed. # Find any Python interpreter. if test -z "$PYTHON"; then AC_PATH_PROGS([PYTHON], _AM_PYTHON_INTERPRETER_LIST, :) fi am_display_PYTHON=python ], [ dnl A version check is needed. if test -n "$PYTHON"; then # If the user set $PYTHON, use it and don't search something else. AC_MSG_CHECKING([whether $PYTHON version is >= $1]) AM_PYTHON_CHECK_VERSION([$PYTHON], [$1], [AC_MSG_RESULT([yes])], [AC_MSG_RESULT([no]) AC_MSG_ERROR([Python interpreter is too old])]) am_display_PYTHON=$PYTHON else # Otherwise, try each interpreter until we find one that satisfies # VERSION. AC_CACHE_CHECK([for a Python interpreter with version >= $1], [am_cv_pathless_PYTHON],[ for am_cv_pathless_PYTHON in _AM_PYTHON_INTERPRETER_LIST none; do test "$am_cv_pathless_PYTHON" = none && break AM_PYTHON_CHECK_VERSION([$am_cv_pathless_PYTHON], [$1], [break]) done]) # Set $PYTHON to the absolute path of $am_cv_pathless_PYTHON. if test "$am_cv_pathless_PYTHON" = none; then PYTHON=: else AC_PATH_PROG([PYTHON], [$am_cv_pathless_PYTHON]) fi am_display_PYTHON=$am_cv_pathless_PYTHON fi ]) if test "$PYTHON" = :; then dnl Run any user-specified action, or abort. m4_default([$3], [AC_MSG_ERROR([no suitable Python interpreter found])]) else dnl Query Python for its version number. Getting [:3] seems to be dnl the best way to do this; it's what "site.py" does in the standard dnl library. AC_CACHE_CHECK([for $am_display_PYTHON version], [am_cv_python_version], [am_cv_python_version=`$PYTHON -c "import sys; sys.stdout.write(sys.version[[:3]])"`]) AC_SUBST([PYTHON_VERSION], [$am_cv_python_version]) dnl Use the values of $prefix and $exec_prefix for the corresponding dnl values of PYTHON_PREFIX and PYTHON_EXEC_PREFIX. These are made dnl distinct variables so they can be overridden if need be. However, dnl general consensus is that you shouldn't need this ability. AC_SUBST([PYTHON_PREFIX], ['${prefix}']) AC_SUBST([PYTHON_EXEC_PREFIX], ['${exec_prefix}']) dnl At times (like when building shared libraries) you may want dnl to know which OS platform Python thinks this is. AC_CACHE_CHECK([for $am_display_PYTHON platform], [am_cv_python_platform], [am_cv_python_platform=`$PYTHON -c "import sys; sys.stdout.write(sys.platform)"`]) AC_SUBST([PYTHON_PLATFORM], [$am_cv_python_platform]) # Just factor out some code duplication. am_python_setup_sysconfig="\ import sys # Prefer sysconfig over distutils.sysconfig, for better compatibility # with python 3.x. See automake bug#10227. try: import sysconfig except ImportError: can_use_sysconfig = 0 else: can_use_sysconfig = 1 # Can't use sysconfig in CPython 2.7, since it's broken in virtualenvs: # try: from platform import python_implementation if python_implementation() == 'CPython' and sys.version[[:3]] == '2.7': can_use_sysconfig = 0 except ImportError: pass" dnl Set up 4 directories: dnl pythondir -- where to install python scripts. This is the dnl site-packages directory, not the python standard library dnl directory like in previous automake betas. This behavior dnl is more consistent with lispdir.m4 for example. dnl Query distutils for this directory. AC_CACHE_CHECK([for $am_display_PYTHON script directory], [am_cv_python_pythondir], [if test "x$prefix" = xNONE then am_py_prefix=$ac_default_prefix else am_py_prefix=$prefix fi am_cv_python_pythondir=`$PYTHON -c " $am_python_setup_sysconfig if can_use_sysconfig: sitedir = sysconfig.get_path('purelib', vars={'base':'$am_py_prefix'}) else: from distutils import sysconfig sitedir = sysconfig.get_python_lib(0, 0, prefix='$am_py_prefix') sys.stdout.write(sitedir)"` case $am_cv_python_pythondir in $am_py_prefix*) am__strip_prefix=`echo "$am_py_prefix" | sed 's|.|.|g'` am_cv_python_pythondir=`echo "$am_cv_python_pythondir" | sed "s,^$am__strip_prefix,$PYTHON_PREFIX,"` ;; *) case $am_py_prefix in /usr|/System*) ;; *) am_cv_python_pythondir=$PYTHON_PREFIX/lib/python$PYTHON_VERSION/site-packages ;; esac ;; esac ]) AC_SUBST([pythondir], [$am_cv_python_pythondir]) dnl pkgpythondir -- $PACKAGE directory under pythondir. Was dnl PYTHON_SITE_PACKAGE in previous betas, but this naming is dnl more consistent with the rest of automake. AC_SUBST([pkgpythondir], [\${pythondir}/$PACKAGE]) dnl pyexecdir -- directory for installing python extension modules dnl (shared libraries) dnl Query distutils for this directory. AC_CACHE_CHECK([for $am_display_PYTHON extension module directory], [am_cv_python_pyexecdir], [if test "x$exec_prefix" = xNONE then am_py_exec_prefix=$am_py_prefix else am_py_exec_prefix=$exec_prefix fi am_cv_python_pyexecdir=`$PYTHON -c " $am_python_setup_sysconfig if can_use_sysconfig: sitedir = sysconfig.get_path('platlib', vars={'platbase':'$am_py_prefix'}) else: from distutils import sysconfig sitedir = sysconfig.get_python_lib(1, 0, prefix='$am_py_prefix') sys.stdout.write(sitedir)"` case $am_cv_python_pyexecdir in $am_py_exec_prefix*) am__strip_prefix=`echo "$am_py_exec_prefix" | sed 's|.|.|g'` am_cv_python_pyexecdir=`echo "$am_cv_python_pyexecdir" | sed "s,^$am__strip_prefix,$PYTHON_EXEC_PREFIX,"` ;; *) case $am_py_exec_prefix in /usr|/System*) ;; *) am_cv_python_pyexecdir=$PYTHON_EXEC_PREFIX/lib/python$PYTHON_VERSION/site-packages ;; esac ;; esac ]) AC_SUBST([pyexecdir], [$am_cv_python_pyexecdir]) dnl pkgpyexecdir -- $(pyexecdir)/$(PACKAGE) AC_SUBST([pkgpyexecdir], [\${pyexecdir}/$PACKAGE]) dnl Run any user-specified action. $2 fi ]) # AM_PYTHON_CHECK_VERSION(PROG, VERSION, [ACTION-IF-TRUE], [ACTION-IF-FALSE]) # --------------------------------------------------------------------------- # Run ACTION-IF-TRUE if the Python interpreter PROG has version >= VERSION. # Run ACTION-IF-FALSE otherwise. # This test uses sys.hexversion instead of the string equivalent (first # word of sys.version), in order to cope with versions such as 2.2c1. # This supports Python 2.0 or higher. (2.0 was released on October 16, 2000). AC_DEFUN([AM_PYTHON_CHECK_VERSION], [prog="import sys # split strings by '.' and convert to numeric. Append some zeros # because we need at least 4 digits for the hex conversion. # map returns an iterator in Python 3.0 and a list in 2.x minver = list(map(int, '$2'.split('.'))) + [[0, 0, 0]] minverhex = 0 # xrange is not present in Python 3.0 and range returns an iterator for i in list(range(0, 4)): minverhex = (minverhex << 8) + minver[[i]] sys.exit(sys.hexversion < minverhex)" AS_IF([AM_RUN_LOG([$1 -c "$prog"])], [$3], [$4])]) # Check to make sure that the build environment is sane. -*- Autoconf -*- # Copyright (C) 1996-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_SANITY_CHECK # --------------- AC_DEFUN([AM_SANITY_CHECK], [AC_MSG_CHECKING([whether build environment is sane]) # Reject unsafe characters in $srcdir or the absolute working directory # name. Accept space and tab only in the latter. am_lf=' ' case `pwd` in *[[\\\"\#\$\&\'\`$am_lf]]*) AC_MSG_ERROR([unsafe absolute working directory name]);; esac case $srcdir in *[[\\\"\#\$\&\'\`$am_lf\ \ ]]*) AC_MSG_ERROR([unsafe srcdir value: '$srcdir']);; esac # Do 'set' in a subshell so we don't clobber the current shell's # arguments. Must try -L first in case configure is actually a # symlink; some systems play weird games with the mod time of symlinks # (eg FreeBSD returns the mod time of the symlink's containing # directory). if ( am_has_slept=no for am_try in 1 2; do echo "timestamp, slept: $am_has_slept" > conftest.file set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` if test "$[*]" = "X"; then # -L didn't work. set X `ls -t "$srcdir/configure" conftest.file` fi if test "$[*]" != "X $srcdir/configure conftest.file" \ && test "$[*]" != "X conftest.file $srcdir/configure"; then # If neither matched, then we have a broken ls. This can happen # if, for instance, CONFIG_SHELL is bash and it inherits a # broken ls alias from the environment. This has actually # happened. Such a system could not be considered "sane". AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken alias in your environment]) fi if test "$[2]" = conftest.file || test $am_try -eq 2; then break fi # Just in case. sleep 1 am_has_slept=yes done test "$[2]" = conftest.file ) then # Ok. : else AC_MSG_ERROR([newly created file is older than distributed files! Check your system clock]) fi AC_MSG_RESULT([yes]) # If we didn't sleep, we still need to ensure time stamps of config.status and # generated files are strictly newer. am_sleep_pid= if grep 'slept: no' conftest.file >/dev/null 2>&1; then ( sleep 1 ) & am_sleep_pid=$! fi AC_CONFIG_COMMANDS_PRE( [AC_MSG_CHECKING([that generated files are newer than configure]) if test -n "$am_sleep_pid"; then # Hide warnings about reused PIDs. wait $am_sleep_pid 2>/dev/null fi AC_MSG_RESULT([done])]) rm -f conftest.file ]) # Copyright (C) 2009-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_SILENT_RULES([DEFAULT]) # -------------------------- # Enable less verbose build rules; with the default set to DEFAULT # ("yes" being less verbose, "no" or empty being verbose). AC_DEFUN([AM_SILENT_RULES], [AC_ARG_ENABLE([silent-rules], [dnl AS_HELP_STRING( [--enable-silent-rules], [less verbose build output (undo: "make V=1")]) AS_HELP_STRING( [--disable-silent-rules], [verbose build output (undo: "make V=0")])dnl ]) case $enable_silent_rules in @%:@ ((( yes) AM_DEFAULT_VERBOSITY=0;; no) AM_DEFAULT_VERBOSITY=1;; *) AM_DEFAULT_VERBOSITY=m4_if([$1], [yes], [0], [1]);; esac dnl dnl A few 'make' implementations (e.g., NonStop OS and NextStep) dnl do not support nested variable expansions. dnl See automake bug#9928 and bug#10237. am_make=${MAKE-make} AC_CACHE_CHECK([whether $am_make supports nested variables], [am_cv_make_support_nested_variables], [if AS_ECHO([['TRUE=$(BAR$(V)) BAR0=false BAR1=true V=1 am__doit: @$(TRUE) .PHONY: am__doit']]) | $am_make -f - >/dev/null 2>&1; then am_cv_make_support_nested_variables=yes else am_cv_make_support_nested_variables=no fi]) if test $am_cv_make_support_nested_variables = yes; then dnl Using '$V' instead of '$(V)' breaks IRIX make. AM_V='$(V)' AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)' else AM_V=$AM_DEFAULT_VERBOSITY AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY fi AC_SUBST([AM_V])dnl AM_SUBST_NOTMAKE([AM_V])dnl AC_SUBST([AM_DEFAULT_V])dnl AM_SUBST_NOTMAKE([AM_DEFAULT_V])dnl AC_SUBST([AM_DEFAULT_VERBOSITY])dnl AM_BACKSLASH='\' AC_SUBST([AM_BACKSLASH])dnl _AM_SUBST_NOTMAKE([AM_BACKSLASH])dnl ]) # Copyright (C) 2001-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_PROG_INSTALL_STRIP # --------------------- # One issue with vendor 'install' (even GNU) is that you can't # specify the program used to strip binaries. This is especially # annoying in cross-compiling environments, where the build's strip # is unlikely to handle the host's binaries. # Fortunately install-sh will honor a STRIPPROG variable, so we # always use install-sh in "make install-strip", and initialize # STRIPPROG with the value of the STRIP variable (set by the user). AC_DEFUN([AM_PROG_INSTALL_STRIP], [AC_REQUIRE([AM_PROG_INSTALL_SH])dnl # Installed binaries are usually stripped using 'strip' when the user # run "make install-strip". However 'strip' might not be the right # tool to use in cross-compilation environments, therefore Automake # will honor the 'STRIP' environment variable to overrule this program. dnl Don't test for $cross_compiling = yes, because it might be 'maybe'. if test "$cross_compiling" != no; then AC_CHECK_TOOL([STRIP], [strip], :) fi INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" AC_SUBST([INSTALL_STRIP_PROGRAM])]) # Copyright (C) 2006-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # _AM_SUBST_NOTMAKE(VARIABLE) # --------------------------- # Prevent Automake from outputting VARIABLE = @VARIABLE@ in Makefile.in. # This macro is traced by Automake. AC_DEFUN([_AM_SUBST_NOTMAKE]) # AM_SUBST_NOTMAKE(VARIABLE) # -------------------------- # Public sister of _AM_SUBST_NOTMAKE. AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)]) # Check how to create a tarball. -*- Autoconf -*- # Copyright (C) 2004-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # _AM_PROG_TAR(FORMAT) # -------------------- # Check how to create a tarball in format FORMAT. # FORMAT should be one of 'v7', 'ustar', or 'pax'. # # Substitute a variable $(am__tar) that is a command # writing to stdout a FORMAT-tarball containing the directory # $tardir. # tardir=directory && $(am__tar) > result.tar # # Substitute a variable $(am__untar) that extract such # a tarball read from stdin. # $(am__untar) < result.tar # AC_DEFUN([_AM_PROG_TAR], [# Always define AMTAR for backward compatibility. Yes, it's still used # in the wild :-( We should find a proper way to deprecate it ... AC_SUBST([AMTAR], ['$${TAR-tar}']) # We'll loop over all known methods to create a tar archive until one works. _am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none' m4_if([$1], [v7], [am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -'], [m4_case([$1], [ustar], [# The POSIX 1988 'ustar' format is defined with fixed-size fields. # There is notably a 21 bits limit for the UID and the GID. In fact, # the 'pax' utility can hang on bigger UID/GID (see automake bug#8343 # and bug#13588). am_max_uid=2097151 # 2^21 - 1 am_max_gid=$am_max_uid # The $UID and $GID variables are not portable, so we need to resort # to the POSIX-mandated id(1) utility. Errors in the 'id' calls # below are definitely unexpected, so allow the users to see them # (that is, avoid stderr redirection). am_uid=`id -u || echo unknown` am_gid=`id -g || echo unknown` AC_MSG_CHECKING([whether UID '$am_uid' is supported by ustar format]) if test $am_uid -le $am_max_uid; then AC_MSG_RESULT([yes]) else AC_MSG_RESULT([no]) _am_tools=none fi AC_MSG_CHECKING([whether GID '$am_gid' is supported by ustar format]) if test $am_gid -le $am_max_gid; then AC_MSG_RESULT([yes]) else AC_MSG_RESULT([no]) _am_tools=none fi], [pax], [], [m4_fatal([Unknown tar format])]) AC_MSG_CHECKING([how to create a $1 tar archive]) # Go ahead even if we have the value already cached. We do so because we # need to set the values for the 'am__tar' and 'am__untar' variables. _am_tools=${am_cv_prog_tar_$1-$_am_tools} for _am_tool in $_am_tools; do case $_am_tool in gnutar) for _am_tar in tar gnutar gtar; do AM_RUN_LOG([$_am_tar --version]) && break done am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"' am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"' am__untar="$_am_tar -xf -" ;; plaintar) # Must skip GNU tar: if it does not support --format= it doesn't create # ustar tarball either. (tar --version) >/dev/null 2>&1 && continue am__tar='tar chf - "$$tardir"' am__tar_='tar chf - "$tardir"' am__untar='tar xf -' ;; pax) am__tar='pax -L -x $1 -w "$$tardir"' am__tar_='pax -L -x $1 -w "$tardir"' am__untar='pax -r' ;; cpio) am__tar='find "$$tardir" -print | cpio -o -H $1 -L' am__tar_='find "$tardir" -print | cpio -o -H $1 -L' am__untar='cpio -i -H $1 -d' ;; none) am__tar=false am__tar_=false am__untar=false ;; esac # If the value was cached, stop now. We just wanted to have am__tar # and am__untar set. test -n "${am_cv_prog_tar_$1}" && break # tar/untar a dummy directory, and stop if the command works. rm -rf conftest.dir mkdir conftest.dir echo GrepMe > conftest.dir/file AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar]) rm -rf conftest.dir if test -s conftest.tar; then AM_RUN_LOG([$am__untar /dev/null 2>&1 && break fi done rm -rf conftest.dir AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool]) AC_MSG_RESULT([$am_cv_prog_tar_$1])]) AC_SUBST([am__tar]) AC_SUBST([am__untar]) ]) # _AM_PROG_TAR mock-1.1.33/etc/0000775001204700120500000000000011455710245010306 500000000000000mock-1.1.33/etc/bash_completion.d/0000775001204700120500000000000012120440354013665 500000000000000mock-1.1.33/etc/bash_completion.d/mock.bash0000664001204700120500000001131212120440354015373 00000000000000# bash >= 3 completion for mock(1) and mockchain(1) _mock_root() { COMPREPLY+=( $( compgen -W "$( command ls ${1:-/etc/mock} 2>/dev/null | \ sed -ne 's/\.cfg$//p' )" -X site-defaults -- "$cur" ) ) } _mock() { COMPREPLY=() local cur prev cword cfgdir=/etc/mock local -a words if declare -F _get_comp_words_by_ref &>/dev/null ; then _get_comp_words_by_ref cur prev words cword else cur=$2 prev=$3 words=("${COMP_WORDS[@]}") cword=$COMP_CWORD fi local word count=0 for word in "${words[@]}" ; do [[ $count -eq $cword ]] && break if [[ "$word" == --configdir ]] ; then cfgdir="${words[((count+1))]}" elif [[ "$word" == --configdir=* ]] ; then cfgdir=${word/*=/} fi count=$((++count)) done local split=false declare -F _split_longopt &>/dev/null && _split_longopt && split=true case "$prev" in -h|--help|--copyin|--copyout|--arch|-D|--define|--with|--without|\ --uniqueext|--rpmbuild_timeout|--sources|--cwd|--scm-option) return 0 ;; -r|--root) _mock_root $cfgdir return 0 ;; --configdir|--resultdir) COMPREPLY=( $( compgen -d -- "$cur" ) ) return 0 ;; --spec) COMPREPLY=( $( compgen -f -o plusdirs -X "!*.spec" -- "$cur" ) ) return 0 ;; --target) # Yep, compatible archs, not compatible build archs # (e.g. ix86 chroot builds in x86_64 mock host) # This would actually depend on what the target root # can be used to build for... COMPREPLY=( $( compgen -W "$( command rpm --showrc | \ sed -ne 's/^\s*compatible\s\s*archs\s*:\s*\(.*\)/\1/i p' )" \ -- "$cur" ) ) return 0 ;; --enable-plugin|--disable-plugin) COMPREPLY=( $( compgen -W "$( $1 $prev=DOES_NOT_EXIST 2>&1 | \ sed -ne "s/[',]//g" -e 's/.*[[(]\([^])]*\)[])]/\1/p' )" \ -- "$cur" ) ) #' unconfuse emacs return 0 ;; --scrub) COMPREPLY=( $( compgen -W "all chroot cache root-cache c-cache yum-cache" -- "$cur" ) ) return 0 ;; --install|install) COMPREPLY=( $( compgen -f -o plusdirs -X '!*.rpm' -X '*src.rpm' \ -- "$cur" ) ) [[ $cur != */* && $cur != [.~]* ]] && \ declare -F _yum_list &>/dev/null && _yum_list all "$cur" return 0 ;; --remove|remove) declare -F _yum_list &>/dev/null && _yum_list all "$cur" return 0 ;; esac $split && return 0 if [[ "$cur" == -* ]] ; then COMPREPLY=( $( compgen -W "--version --help --rebuild --buildsrpm --shell --chroot --clean --scrub --init --installdeps --install --update --remove --orphanskill --copyin --copyout --root --offline --no-clean --cleanup-after --no-cleanup-after --arch --target --define --with --without --resultdir --uniqueext --configdir --rpmbuild_timeout --unpriv --cwd --spec --sources --verbose --quiet --trace --enable-plugin --disable-plugin --print-root-path --scm-enable --scm-option" -- "$cur" ) ) return 0 fi COMPREPLY=( $( compgen -f -o plusdirs -X '!*.@(?(no)src.r|s)pm' \ -- "$cur" ) ) } && complete -F _mock -o filenames mock mock.py _mockchain() { COMPREPLY=() local cur prev cword local -a words if declare -F _get_comp_words_by_ref &>/dev/null ; then _get_comp_words_by_ref cur prev words cword else cur=$2 prev=$3 words=("${COMP_WORDS[@]}") cword=$COMP_CWORD fi local split=false declare -F _split_longopt &>/dev/null && _split_longopt && split=true case "$prev" in -h|--help|-a|--addrepo) return 0 ;; -r|--root) _mock_root return 0 ;; -l|--localrepo) _filedir -d return 0 ;; --log) _filedir return 0 ;; esac $split && return 0 if [[ "$cur" == -* ]] ; then COMPREPLY=( $( compgen -W "--help --root --localrepo --continue --addrepo --recurse --log" -- "$cur" ) ) return 0 fi COMPREPLY=( $( compgen -f -o plusdirs -X '!*.@(?(no)src.r|s)pm' \ -- "$cur" ) ) } && complete -F _mockchain -o filenames mockchain mockchain.py # Local variables: # mode: shell-script # sh-basic-offset: 4 # sh-indent-comment: t # indent-tabs-mode: nil # End: # ex: ts=4 sw=4 et filetype=sh mock-1.1.33/etc/mock/0000775001204700120500000000000012205226221011225 500000000000000mock-1.1.33/etc/mock/fedora-20-ppc64.cfg0000664001204700120500000000301312205226221014234 00000000000000config_opts['root'] = 'fedora-20-ppc64' config_opts['target_arch'] = 'ppc64' config_opts['legal_host_arches'] = ('ppc64',) config_opts['chroot_setup_cmd'] = 'groupinstall buildsys-build' config_opts['dist'] = 'fc20' # only useful for --resultdir variable subst config_opts['yum.conf'] = """ [main] cachedir=/var/cache/yum debuglevel=1 reposdir=/dev/null logfile=/var/log/yum.log retries=20 obsoletes=1 gpgcheck=0 assumeyes=1 syslog_ident=mock syslog_device= # repos [fedora] name=fedora mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=fedora-20&arch=ppc64 failovermethod=priority [updates] name=updates mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=updates-released-f20&arch=ppc64 failovermethod=priority [updates-testing] name=updates-testing mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=updates-testing-f20&arch=ppc64 failovermethod=priority enabled=0 [local] name=local baseurl=http://kojipkgs.fedoraproject.org/repos/f20-build/latest/ppc64/ cost=2000 enabled=0 [fedora-debuginfo] name=fedora-debuginfo mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=fedora-debug-20&arch=ppc64 failovermethod=priority enabled=0 [updates-debuginfo] name=updates-debuginfo mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=updates-released-debug-f20&arch=ppc64 failovermethod=priority enabled=0 [updates-testing-debuginfo] name=updates-testing-debuginfo mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=updates-testing-debug-f20&arch=ppc64 failovermethod=priority enabled=0 """ mock-1.1.33/etc/mock/fedora-rawhide-armhfp.cfg0000664001204700120500000000155611714612364016004 00000000000000config_opts['root'] = 'fedora-rawhide-armhfp' config_opts['target_arch'] = 'armv7hl' config_opts['legal_host_arches'] = ('armv7l') config_opts['chroot_setup_cmd'] = 'groupinstall buildsys-build' config_opts['dist'] = 'rawhide' # only useful for --resultdir variable subst config_opts['yum.conf'] = """ [main] cachedir=/var/cache/yum debuglevel=1 reposdir=/dev/null logfile=/var/log/yum.log retries=20 obsoletes=1 gpgcheck=0 assumeyes=1 syslog_ident=mock syslog_device= # repos [fedora] name=fedora mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=rawhide&arch=armhfp failovermethod=priority [local] name=local baseurl=http://arm.fedoraproject.org/repos/rawhide/latest/armhfp cost=2000 enabled=0 [debug] name=Fedora Rawhide - arm - Debug failovermethod=priority mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=rawhide-debug&arch=armhfp enabled=0 """ mock-1.1.33/etc/mock/fedora-18-ppc.cfg0000664001204700120500000000316512044556700014112 00000000000000config_opts['root'] = 'fedora-18-ppc' config_opts['target_arch'] = 'ppc' config_opts['legal_host_arches'] = ('ppc', 'ppc64') config_opts['chroot_setup_cmd'] = 'groupinstall buildsys-build' config_opts['dist'] = 'fc18' # only useful for --resultdir variable subst config_opts['yum.conf'] = """ [main] cachedir=/var/cache/yum debuglevel=1 reposdir=/dev/null logfile=/var/log/yum.log retries=20 obsoletes=1 gpgcheck=0 assumeyes=1 syslog_ident=mock syslog_device= #exclude=*.ppc64 # The above is not needed anymore with yum multilib policy of "best" which is the default in Fedora. # repos [fedora] name=fedora mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=fedora-18&arch=ppc failovermethod=priority [updates] name=updates mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=updates-released-f18&arch=ppc failovermethod=priority [updates-testing] name=updates-testing mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=updates-testing-f18&arch=ppc failovermethod=priority enabled=0 [local] name=local baseurl=http://kojipkgs.fedoraproject.org/repos/f18-build/latest/ppc/ cost=2000 enabled=0 [fedora-debuginfo] name=fedora-debuginfo mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=fedora-debug-18&arch=ppc failovermethod=priority enabled=0 [updates-debuginfo] name=updates-debuginfo mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=updates-released-debug-f18&arch=ppc failovermethod=priority enabled=0 [updates-testing-debuginfo] name=updates-testing-debuginfo mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=updates-testing-debug-f18&arch=ppc failovermethod=priority enabled=0 """ mock-1.1.33/etc/mock/fedora-18-s390x.cfg0000664001204700120500000000301412044556700014207 00000000000000config_opts['root'] = 'fedora-18-s390x' config_opts['target_arch'] = 's390x' config_opts['legal_host_arches'] = ('s390x',) config_opts['chroot_setup_cmd'] = 'groupinstall buildsys-build' config_opts['dist'] = 'fc18' # only useful for --resultdir variable subst config_opts['yum.conf'] = """ [main] cachedir=/var/cache/yum debuglevel=1 reposdir=/dev/null logfile=/var/log/yum.log retries=20 obsoletes=1 gpgcheck=0 assumeyes=1 syslog_ident=mock syslog_device= # repos [fedora] name=fedora mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=fedora-18&arch=s390x failovermethod=priority [updates] name=updates mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=updates-released-f18&arch=s390x failovermethod=priority [updates-testing] name=updates-testing mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=updates-testing-f18&arch=s390x failovermethod=priority enabled=0 [local] name=local baseurl=http://s390.koji.fedoraproject.org/repos/f18-build/latest/s390x/ cost=2000 enabled=0 [fedora-debuginfo] name=fedora-debuginfo mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=fedora-debug-18&arch=s390x failovermethod=priority enabled=0 [updates-debuginfo] name=updates-debuginfo mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=updates-released-debug-f18&arch=s390x failovermethod=priority enabled=0 [updates-testing-debuginfo] name=updates-testing-debuginfo mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=updates-testing-debug-f18&arch=s390x failovermethod=priority enabled=0 """ mock-1.1.33/etc/mock/fedora-rawhide-s390.cfg0000664001204700120500000000155212022445447015220 00000000000000config_opts['root'] = 'fedora-rawhide-s390' config_opts['target_arch'] = 's390' config_opts['legal_host_arches'] = ('s390',) config_opts['chroot_setup_cmd'] = 'groupinstall buildsys-build' config_opts['dist'] = 'rawhide' # only useful for --resultdir variable subst config_opts['yum.conf'] = """ [main] cachedir=/var/cache/yum debuglevel=1 reposdir=/dev/null logfile=/var/log/yum.log retries=20 obsoletes=1 gpgcheck=0 assumeyes=1 syslog_ident=mock syslog_device= # repos [fedora] name=fedora mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=rawhide&arch=s390 failovermethod=priority [local] name=local baseurl=http://s390.koji.fedoraproject.org/repos/rawhide/latest/s390/ cost=2000 enabled=0 [debug] name=Fedora Rawhide - s390 - Debug failovermethod=priority mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=rawhide-debug&arch=s390 enabled=0 """ mock-1.1.33/etc/mock/fedora-18-armhfp.cfg0000664001204700120500000000302012044556700014573 00000000000000config_opts['root'] = 'fedora-18-armhfp' config_opts['target_arch'] = 'armv7hl' config_opts['legal_host_arches'] = ('armv7l') config_opts['chroot_setup_cmd'] = 'groupinstall buildsys-build' config_opts['dist'] = 'fc18' # only useful for --resultdir variable subst config_opts['yum.conf'] = """ [main] cachedir=/var/cache/yum debuglevel=1 reposdir=/dev/null logfile=/var/log/yum.log retries=20 obsoletes=1 gpgcheck=0 assumeyes=1 syslog_ident=mock syslog_device= # repos [fedora] name=fedora mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=fedora-18&arch=armhfp failovermethod=priority [updates] name=updates mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=updates-released-f18&arch=armhfp failovermethod=priority [updates-testing] name=updates-testing mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=updates-testing-f18&arch=armhfp failovermethod=priority enabled=0 [local] name=local baseurl=http://arm.fedoraproject.org/repos/f18-build/latest/armhfp/ cost=2000 enabled=0 [fedora-debuginfo] name=fedora-debuginfo mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=fedora-debug-18&arch=armhfp failovermethod=priority enabled=0 [updates-debuginfo] name=updates-debuginfo mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=updates-released-debug-f18&arch=armhfp failovermethod=priority enabled=0 [updates-testing-debuginfo] name=updates-testing-debuginfo mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=updates-testing-debug-f18&arch=armhfp failovermethod=priority enabled=0 """ mock-1.1.33/etc/mock/fedora-20-x86_64.cfg0000664001204700120500000000302512205226221014241 00000000000000config_opts['root'] = 'fedora-20-x86_64' config_opts['target_arch'] = 'x86_64' config_opts['legal_host_arches'] = ('x86_64',) config_opts['chroot_setup_cmd'] = 'groupinstall buildsys-build' config_opts['dist'] = 'fc20' # only useful for --resultdir variable subst config_opts['yum.conf'] = """ [main] cachedir=/var/cache/yum debuglevel=1 reposdir=/dev/null logfile=/var/log/yum.log retries=20 obsoletes=1 gpgcheck=0 assumeyes=1 syslog_ident=mock syslog_device= # repos [fedora] name=fedora mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=fedora-20&arch=x86_64 failovermethod=priority [updates] name=updates mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=updates-released-f20&arch=x86_64 failovermethod=priority [updates-testing] name=updates-testing mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=updates-testing-f20&arch=x86_64 failovermethod=priority enabled=0 [local] name=local baseurl=http://kojipkgs.fedoraproject.org/repos/f20-build/latest/x86_64/ cost=2000 enabled=0 [fedora-debuginfo] name=fedora-debuginfo mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=fedora-debug-20&arch=x86_64 failovermethod=priority enabled=0 [updates-debuginfo] name=updates-debuginfo mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=updates-released-debug-f20&arch=x86_64 failovermethod=priority enabled=0 [updates-testing-debuginfo] name=updates-testing-debuginfo mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=updates-testing-debug-f20&arch=x86_64 failovermethod=priority enabled=0 """ mock-1.1.33/etc/mock/fedora-20-i386.cfg0000664001204700120500000000303212205226221013772 00000000000000config_opts['root'] = 'fedora-20-i386' config_opts['target_arch'] = 'i686' config_opts['legal_host_arches'] = ('i386', 'i586', 'i686', 'x86_64') config_opts['chroot_setup_cmd'] = 'groupinstall buildsys-build' config_opts['dist'] = 'fc20' # only useful for --resultdir variable subst config_opts['yum.conf'] = """ [main] cachedir=/var/cache/yum debuglevel=1 reposdir=/dev/null logfile=/var/log/yum.log retries=20 obsoletes=1 gpgcheck=0 assumeyes=1 syslog_ident=mock syslog_device= # repos [fedora] name=fedora mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=fedora-20&arch=i386 failovermethod=priority [updates] name=updates mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=updates-released-f20&arch=i386 failovermethod=priority [updates-testing] name=updates-testing mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=updates-testing-f20&arch=i386 failovermethod=priority enabled=0 [local] name=local baseurl=http://kojipkgs.fedoraproject.org/repos/f20-build/latest/i386/ cost=2000 enabled=0 [fedora-debuginfo] name=fedora-debuginfo mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=fedora-debug-20&arch=i386 failovermethod=priority enabled=0 [updates-debuginfo] name=updates-debuginfo mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=updates-released-debug-f20&arch=i386 failovermethod=priority enabled=0 [updates-testing-debuginfo] name=updates-testing-debuginfo mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=updates-testing-debug-f20&arch=i386 failovermethod=priority enabled=0 """ mock-1.1.33/etc/mock/fedora-19-s390.cfg0000664001204700120500000000301212125663026014016 00000000000000config_opts['root'] = 'fedora-19-s390' config_opts['target_arch'] = 's390' config_opts['legal_host_arches'] = ('s390x', 's390') config_opts['chroot_setup_cmd'] = 'groupinstall buildsys-build' config_opts['dist'] = 'fc19' # only useful for --resultdir variable subst config_opts['yum.conf'] = """ [main] cachedir=/var/cache/yum debuglevel=1 reposdir=/dev/null logfile=/var/log/yum.log retries=20 obsoletes=1 gpgcheck=0 assumeyes=1 syslog_ident=mock syslog_device= # repos [fedora] name=fedora mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=fedora-19&arch=s390 failovermethod=priority [updates] name=updates mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=updates-released-f19&arch=s390 failovermethod=priority [updates-testing] name=updates-testing mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=updates-testing-f19&arch=s390 failovermethod=priority enabled=0 [local] name=local baseurl=http://s390.koji.fedoraproject.org/repos/f19-build/latest/s390/ cost=2000 enabled=0 [fedora-debuginfo] name=fedora-debuginfo mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=fedora-debug-19&arch=s390 failovermethod=priority enabled=0 [updates-debuginfo] name=updates-debuginfo mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=updates-released-debug-f19&arch=s390 failovermethod=priority enabled=0 [updates-testing-debuginfo] name=updates-testing-debuginfo mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=updates-testing-debug-f19&arch=s390 failovermethod=priority enabled=0 """ mock-1.1.33/etc/mock/fedora-rawhide-ppc.cfg0000664001204700120500000000174012120440354015272 00000000000000config_opts['root'] = 'fedora-rawhide-ppc' config_opts['target_arch'] = 'ppc' config_opts['legal_host_arches'] = ('ppc', 'ppc64') config_opts['chroot_setup_cmd'] = 'groupinstall buildsys-build' config_opts['dist'] = 'rawhide' # only useful for --resultdir variable subst config_opts['yum.conf'] = """ [main] cachedir=/var/cache/yum debuglevel=1 reposdir=/dev/null logfile=/var/log/yum.log retries=20 obsoletes=1 gpgcheck=0 assumeyes=1 syslog_ident=mock syslog_device= #exclude=*.ppc64 # The above is not needed anymore with yum multilib policy of "best" which is the default in Fedora. # repos [fedora] name=fedora mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=rawhide&arch=ppc failovermethod=priority [local] name=local baseurl=http://kojipkgs.fedoraproject.org/repos/rawhide/latest/ppc/ cost=2000 enabled=0 [debug] name=Fedora Rawhide - ppc - Debug failovermethod=priority mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=rawhide-debug&arch=ppc enabled=0 """ mock-1.1.33/etc/mock/fedora-19-i386.cfg0000664001204700120500000000303212125663026014013 00000000000000config_opts['root'] = 'fedora-19-i386' config_opts['target_arch'] = 'i686' config_opts['legal_host_arches'] = ('i386', 'i586', 'i686', 'x86_64') config_opts['chroot_setup_cmd'] = 'groupinstall buildsys-build' config_opts['dist'] = 'fc19' # only useful for --resultdir variable subst config_opts['yum.conf'] = """ [main] cachedir=/var/cache/yum debuglevel=1 reposdir=/dev/null logfile=/var/log/yum.log retries=20 obsoletes=1 gpgcheck=0 assumeyes=1 syslog_ident=mock syslog_device= # repos [fedora] name=fedora mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=fedora-19&arch=i386 failovermethod=priority [updates] name=updates mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=updates-released-f19&arch=i386 failovermethod=priority [updates-testing] name=updates-testing mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=updates-testing-f19&arch=i386 failovermethod=priority enabled=0 [local] name=local baseurl=http://kojipkgs.fedoraproject.org/repos/f19-build/latest/i386/ cost=2000 enabled=0 [fedora-debuginfo] name=fedora-debuginfo mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=fedora-debug-19&arch=i386 failovermethod=priority enabled=0 [updates-debuginfo] name=updates-debuginfo mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=updates-released-debug-f19&arch=i386 failovermethod=priority enabled=0 [updates-testing-debuginfo] name=updates-testing-debuginfo mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=updates-testing-debug-f19&arch=i386 failovermethod=priority enabled=0 """ mock-1.1.33/etc/mock/epel-6-x86_64.cfg0000664001204700120500000000236711664543275013705 00000000000000config_opts['root'] = 'epel-6-x86_64' config_opts['target_arch'] = 'x86_64' config_opts['legal_host_arches'] = ('x86_64',) config_opts['chroot_setup_cmd'] = 'groupinstall buildsys-build' config_opts['dist'] = 'el6' # only useful for --resultdir variable subst config_opts['yum.conf'] = """ [main] cachedir=/var/cache/yum debuglevel=1 reposdir=/dev/null logfile=/var/log/yum.log retries=20 obsoletes=1 gpgcheck=0 assumeyes=1 syslog_ident=mock syslog_device= # repos [base] name=BaseOS enabled=1 mirrorlist=http://mirrorlist.centos.org/?release=6&arch=x86_64&repo=os failovermethod=priority [updates] name=updates enabled=1 mirrorlist=http://mirrorlist.centos.org/?release=6&arch=x86_64&repo=updates failovermethod=priority [epel] name=epel mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=epel-6&arch=x86_64 failovermethod=priority [testing] name=epel-testing enabled=0 mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=testing-epel6&arch=x86_64 failovermethod=priority [local] name=local baseurl=http://kojipkgs.fedoraproject.org/repos/dist-6E-epel-build/latest/x86_64/ cost=2000 enabled=0 [epel-debug] name=epel-debug mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=epel-debug-6&arch=x86_64 failovermethod=priority enabled=0 """ mock-1.1.33/etc/mock/fedora-rawhide-sparc.cfg0000664001204700120500000000200111714612364015621 00000000000000config_opts['root'] = 'fedora-rawhide-sparc' config_opts['target_arch'] = 'sparcv9' config_opts['legal_host_arches'] = ('sparc', 'sparcv9', 'sparc64') config_opts['chroot_setup_cmd'] = 'groupinstall buildsys-build' config_opts['dist'] = 'rawhide' # only useful for --resultdir variable subst config_opts['yum.conf'] = """ [main] cachedir=/var/cache/yum debuglevel=1 reposdir=/dev/null logfile=/var/log/yum.log retries=20 obsoletes=1 gpgcheck=0 assumeyes=1 syslog_ident=mock syslog_device= #exclude=*.sparc64 # The above is not needed anymore with yum multilib policy of "best" which is the default in Fedora. # repos [fedora] name=fedora mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=rawhide&arch=sparc failovermethod=priority [local] name=local baseurl=http://sparc.koji.fedoraproject.org/repos/rawhide/latest/sparc/ cost=2000 enabled=0 [debug] name=Fedora Rawhide - sparc - Debug failovermethod=priority mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=rawhide-debug&arch=sparc enabled=0 """ mock-1.1.33/etc/mock/fedora-19-ppc64.cfg0000664001204700120500000000301312125663026014255 00000000000000config_opts['root'] = 'fedora-19-ppc64' config_opts['target_arch'] = 'ppc64' config_opts['legal_host_arches'] = ('ppc64',) config_opts['chroot_setup_cmd'] = 'groupinstall buildsys-build' config_opts['dist'] = 'fc19' # only useful for --resultdir variable subst config_opts['yum.conf'] = """ [main] cachedir=/var/cache/yum debuglevel=1 reposdir=/dev/null logfile=/var/log/yum.log retries=20 obsoletes=1 gpgcheck=0 assumeyes=1 syslog_ident=mock syslog_device= # repos [fedora] name=fedora mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=fedora-19&arch=ppc64 failovermethod=priority [updates] name=updates mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=updates-released-f19&arch=ppc64 failovermethod=priority [updates-testing] name=updates-testing mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=updates-testing-f19&arch=ppc64 failovermethod=priority enabled=0 [local] name=local baseurl=http://kojipkgs.fedoraproject.org/repos/f19-build/latest/ppc64/ cost=2000 enabled=0 [fedora-debuginfo] name=fedora-debuginfo mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=fedora-debug-19&arch=ppc64 failovermethod=priority enabled=0 [updates-debuginfo] name=updates-debuginfo mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=updates-released-debug-f19&arch=ppc64 failovermethod=priority enabled=0 [updates-testing-debuginfo] name=updates-testing-debuginfo mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=updates-testing-debug-f19&arch=ppc64 failovermethod=priority enabled=0 """ mock-1.1.33/etc/mock/fedora-20-s390.cfg0000664001204700120500000000301212205226221013775 00000000000000config_opts['root'] = 'fedora-20-s390' config_opts['target_arch'] = 's390' config_opts['legal_host_arches'] = ('s390x', 's390') config_opts['chroot_setup_cmd'] = 'groupinstall buildsys-build' config_opts['dist'] = 'fc20' # only useful for --resultdir variable subst config_opts['yum.conf'] = """ [main] cachedir=/var/cache/yum debuglevel=1 reposdir=/dev/null logfile=/var/log/yum.log retries=20 obsoletes=1 gpgcheck=0 assumeyes=1 syslog_ident=mock syslog_device= # repos [fedora] name=fedora mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=fedora-20&arch=s390 failovermethod=priority [updates] name=updates mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=updates-released-f20&arch=s390 failovermethod=priority [updates-testing] name=updates-testing mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=updates-testing-f20&arch=s390 failovermethod=priority enabled=0 [local] name=local baseurl=http://s390.koji.fedoraproject.org/repos/f20-build/latest/s390/ cost=2000 enabled=0 [fedora-debuginfo] name=fedora-debuginfo mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=fedora-debug-20&arch=s390 failovermethod=priority enabled=0 [updates-debuginfo] name=updates-debuginfo mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=updates-released-debug-f20&arch=s390 failovermethod=priority enabled=0 [updates-testing-debuginfo] name=updates-testing-debuginfo mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=updates-testing-debug-f20&arch=s390 failovermethod=priority enabled=0 """ mock-1.1.33/etc/mock/fedora-19-x86_64.cfg0000664001204700120500000000302512125663026014262 00000000000000config_opts['root'] = 'fedora-19-x86_64' config_opts['target_arch'] = 'x86_64' config_opts['legal_host_arches'] = ('x86_64',) config_opts['chroot_setup_cmd'] = 'groupinstall buildsys-build' config_opts['dist'] = 'fc19' # only useful for --resultdir variable subst config_opts['yum.conf'] = """ [main] cachedir=/var/cache/yum debuglevel=1 reposdir=/dev/null logfile=/var/log/yum.log retries=20 obsoletes=1 gpgcheck=0 assumeyes=1 syslog_ident=mock syslog_device= # repos [fedora] name=fedora mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=fedora-19&arch=x86_64 failovermethod=priority [updates] name=updates mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=updates-released-f19&arch=x86_64 failovermethod=priority [updates-testing] name=updates-testing mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=updates-testing-f19&arch=x86_64 failovermethod=priority enabled=0 [local] name=local baseurl=http://kojipkgs.fedoraproject.org/repos/f19-build/latest/x86_64/ cost=2000 enabled=0 [fedora-debuginfo] name=fedora-debuginfo mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=fedora-debug-19&arch=x86_64 failovermethod=priority enabled=0 [updates-debuginfo] name=updates-debuginfo mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=updates-released-debug-f19&arch=x86_64 failovermethod=priority enabled=0 [updates-testing-debuginfo] name=updates-testing-debuginfo mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=updates-testing-debug-f19&arch=x86_64 failovermethod=priority enabled=0 """ mock-1.1.33/etc/mock/fedora-18-i386.cfg0000664001204700120500000000303212044556700014012 00000000000000config_opts['root'] = 'fedora-18-i386' config_opts['target_arch'] = 'i686' config_opts['legal_host_arches'] = ('i386', 'i586', 'i686', 'x86_64') config_opts['chroot_setup_cmd'] = 'groupinstall buildsys-build' config_opts['dist'] = 'fc18' # only useful for --resultdir variable subst config_opts['yum.conf'] = """ [main] cachedir=/var/cache/yum debuglevel=1 reposdir=/dev/null logfile=/var/log/yum.log retries=20 obsoletes=1 gpgcheck=0 assumeyes=1 syslog_ident=mock syslog_device= # repos [fedora] name=fedora mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=fedora-18&arch=i386 failovermethod=priority [updates] name=updates mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=updates-released-f18&arch=i386 failovermethod=priority [updates-testing] name=updates-testing mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=updates-testing-f18&arch=i386 failovermethod=priority enabled=0 [local] name=local baseurl=http://kojipkgs.fedoraproject.org/repos/f18-build/latest/i386/ cost=2000 enabled=0 [fedora-debuginfo] name=fedora-debuginfo mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=fedora-debug-18&arch=i386 failovermethod=priority enabled=0 [updates-debuginfo] name=updates-debuginfo mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=updates-released-debug-f18&arch=i386 failovermethod=priority enabled=0 [updates-testing-debuginfo] name=updates-testing-debuginfo mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=updates-testing-debug-f18&arch=i386 failovermethod=priority enabled=0 """ mock-1.1.33/etc/mock/fedora-rawhide-x86_64.cfg0000664001204700120500000000156711714612364015467 00000000000000config_opts['root'] = 'fedora-rawhide-x86_64' config_opts['target_arch'] = 'x86_64' config_opts['legal_host_arches'] = ('x86_64',) config_opts['chroot_setup_cmd'] = 'groupinstall buildsys-build' config_opts['dist'] = 'rawhide' # only useful for --resultdir variable subst config_opts['yum.conf'] = """ [main] cachedir=/var/cache/yum debuglevel=1 reposdir=/dev/null logfile=/var/log/yum.log retries=20 obsoletes=1 gpgcheck=0 assumeyes=1 syslog_ident=mock syslog_device= # repos [fedora] name=fedora mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=rawhide&arch=x86_64 failovermethod=priority [local] name=local baseurl=http://kojipkgs.fedoraproject.org/repos/rawhide/latest/x86_64/ cost=2000 enabled=0 [debug] name=Fedora Rawhide - x86_64 - Debug failovermethod=priority mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=rawhide-debug&arch=x86_64 enabled=0 """ mock-1.1.33/etc/mock/fedora-19-ppc.cfg0000664001204700120500000000316512125663026014113 00000000000000config_opts['root'] = 'fedora-19-ppc' config_opts['target_arch'] = 'ppc' config_opts['legal_host_arches'] = ('ppc', 'ppc64') config_opts['chroot_setup_cmd'] = 'groupinstall buildsys-build' config_opts['dist'] = 'fc19' # only useful for --resultdir variable subst config_opts['yum.conf'] = """ [main] cachedir=/var/cache/yum debuglevel=1 reposdir=/dev/null logfile=/var/log/yum.log retries=20 obsoletes=1 gpgcheck=0 assumeyes=1 syslog_ident=mock syslog_device= #exclude=*.ppc64 # The above is not needed anymore with yum multilib policy of "best" which is the default in Fedora. # repos [fedora] name=fedora mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=fedora-19&arch=ppc failovermethod=priority [updates] name=updates mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=updates-released-f19&arch=ppc failovermethod=priority [updates-testing] name=updates-testing mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=updates-testing-f19&arch=ppc failovermethod=priority enabled=0 [local] name=local baseurl=http://kojipkgs.fedoraproject.org/repos/f19-build/latest/ppc/ cost=2000 enabled=0 [fedora-debuginfo] name=fedora-debuginfo mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=fedora-debug-19&arch=ppc failovermethod=priority enabled=0 [updates-debuginfo] name=updates-debuginfo mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=updates-released-debug-f19&arch=ppc failovermethod=priority enabled=0 [updates-testing-debuginfo] name=updates-testing-debuginfo mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=updates-testing-debug-f19&arch=ppc failovermethod=priority enabled=0 """ mock-1.1.33/etc/mock/fedora-18-ppc64.cfg0000664001204700120500000000301312044556700014254 00000000000000config_opts['root'] = 'fedora-18-ppc64' config_opts['target_arch'] = 'ppc64' config_opts['legal_host_arches'] = ('ppc64',) config_opts['chroot_setup_cmd'] = 'groupinstall buildsys-build' config_opts['dist'] = 'fc18' # only useful for --resultdir variable subst config_opts['yum.conf'] = """ [main] cachedir=/var/cache/yum debuglevel=1 reposdir=/dev/null logfile=/var/log/yum.log retries=20 obsoletes=1 gpgcheck=0 assumeyes=1 syslog_ident=mock syslog_device= # repos [fedora] name=fedora mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=fedora-18&arch=ppc64 failovermethod=priority [updates] name=updates mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=updates-released-f18&arch=ppc64 failovermethod=priority [updates-testing] name=updates-testing mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=updates-testing-f18&arch=ppc64 failovermethod=priority enabled=0 [local] name=local baseurl=http://kojipkgs.fedoraproject.org/repos/f18-build/latest/ppc64/ cost=2000 enabled=0 [fedora-debuginfo] name=fedora-debuginfo mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=fedora-debug-18&arch=ppc64 failovermethod=priority enabled=0 [updates-debuginfo] name=updates-debuginfo mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=updates-released-debug-f18&arch=ppc64 failovermethod=priority enabled=0 [updates-testing-debuginfo] name=updates-testing-debuginfo mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=updates-testing-debug-f18&arch=ppc64 failovermethod=priority enabled=0 """ mock-1.1.33/etc/mock/logging.ini0000664001204700120500000000332712126377106013314 00000000000000[formatters] keys: detailed,simple,unadorned,state [handlers] keys: simple_console,detailed_console,unadorned_console,simple_console_warnings_only [loggers] keys: root,build,state,mockbuild [formatter_state] format: %(asctime)s - %(message)s [formatter_unadorned] format: %(message)s [formatter_simple] format: %(levelname)s: %(message)s ;useful for debugging: [formatter_detailed] format: %(levelname)s %(filename)s:%(lineno)d: %(message)s [handler_unadorned_console] class: StreamHandler args: [] formatter: unadorned level: INFO [handler_simple_console] class: StreamHandler args: [] formatter: simple level: INFO [handler_simple_console_warnings_only] class: StreamHandler args: [] formatter: simple level: WARNING [handler_detailed_console] class: StreamHandler args: [] formatter: detailed level: WARNING ; usually dont want to set a level for loggers ; this way all handlers get all messages, and messages can be filtered ; at the handler level ; ; all these loggers default to a console output handler ; [logger_root] level: NOTSET handlers: simple_console ; mockbuild logger normally has no output ; catches stuff like mockbuild.trace_decorator and mockbuild.util ; dont normally want to propagate to root logger, either [logger_mockbuild] level: NOTSET handlers: qualname: mockbuild propagate: 1 [logger_state] level: NOTSET ; unadorned_console only outputs INFO or above handlers: unadorned_console qualname: mockbuild.Root.state propagate: 0 [logger_build] level: NOTSET handlers: simple_console_warnings_only qualname: mockbuild.Root.build propagate: 0 ; the following is a list mock logger qualnames used within the code: ; ; qualname: mockbuild.util ; qualname: mockbuild.uid ; qualname: mockbuild.trace_decorator mock-1.1.33/etc/mock/fedora-18-arm.cfg0000664001204700120500000000301712044556700014103 00000000000000config_opts['root'] = 'fedora-18-arm' config_opts['target_arch'] = 'armv5tel' config_opts['legal_host_arches'] = ('armv5tel', 'armv6l', 'armv7l') config_opts['chroot_setup_cmd'] = 'groupinstall buildsys-build' config_opts['dist'] = 'fc18' # only useful for --resultdir variable subst config_opts['yum.conf'] = """ [main] cachedir=/var/cache/yum debuglevel=1 reposdir=/dev/null logfile=/var/log/yum.log retries=20 obsoletes=1 gpgcheck=0 assumeyes=1 syslog_ident=mock syslog_device= # repos [fedora] name=fedora mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=fedora-18&arch=arm failovermethod=priority [updates] name=updates mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=updates-released-f18&arch=arm failovermethod=priority [updates-testing] name=updates-testing mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=updates-testing-f18&arch=arm failovermethod=priority enabled=0 [local] name=local baseurl=http://arm.fedoraproject.org/repos/f18-build/latest/arm/ cost=2000 enabled=0 [fedora-debuginfo] name=fedora-debuginfo mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=fedora-debug-18&arch=arm failovermethod=priority enabled=0 [updates-debuginfo] name=updates-debuginfo mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=updates-released-debug-f18&arch=arm failovermethod=priority enabled=0 [updates-testing-debuginfo] name=updates-testing-debuginfo mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=updates-testing-debug-f18&arch=arm failovermethod=priority enabled=0 """ mock-1.1.33/etc/mock/fedora-rawhide-sparc64.cfg0000664001204700120500000000160011714612364015777 00000000000000config_opts['root'] = 'fedora-rawhide-sparc64' config_opts['target_arch'] = 'sparc64' config_opts['legal_host_arches'] = ('sparc64',) config_opts['chroot_setup_cmd'] = 'groupinstall buildsys-build' config_opts['dist'] = 'rawhide' # only useful for --resultdir variable subst config_opts['yum.conf'] = """ [main] cachedir=/var/cache/yum debuglevel=1 reposdir=/dev/null logfile=/var/log/yum.log retries=20 obsoletes=1 gpgcheck=0 assumeyes=1 syslog_ident=mock syslog_device= # repos [fedora] name=fedora mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=rawhide&arch=sparc64 failovermethod=priority [local] name=local baseurl=http://sparc.koji.fedoraproject.org/repos/rawhide/latest/sparc64/ cost=2000 enabled=0 [debug] name=Fedora Rawhide - sparc64 - Debug failovermethod=priority mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=rawhide-debug&arch=sparc64 enabled=0 """ mock-1.1.33/etc/mock/epel-5-x86_64.cfg0000664001204700120500000000252312120440354013654 00000000000000config_opts['root'] = 'epel-5-x86_64' config_opts['target_arch'] = 'x86_64' config_opts['legal_host_arches'] = ('x86_64',) config_opts['chroot_setup_cmd'] = 'install buildsys-build' config_opts['dist'] = 'el5' # only useful for --resultdir variable subst if not config_opts.has_key('macros'): config_opts['macros'] = {} config_opts['macros']['%__arch_install_post'] = '%{nil}' config_opts['yum.conf'] = """ [main] cachedir=/var/cache/yum debuglevel=1 logfile=/var/log/yum.log reposdir=/dev/null retries=20 obsoletes=1 gpgcheck=0 assumeyes=1 syslog_ident=mock syslog_device= # repos [core] name=base mirrorlist=http://mirrorlist.centos.org/?release=5&arch=x86_64&repo=os [update] name=updates mirrorlist=http://mirrorlist.centos.org/?release=5&arch=x86_64&repo=updates [groups] name=groups baseurl=http://buildsys.fedoraproject.org/buildgroups/rhel5/x86_64/ [extras] name=epel mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=epel-5&arch=x86_64 [testing] name=epel-testing enabled=0 mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=testing-epel5&arch=x86_64 [local] name=local baseurl=http://kojipkgs.fedoraproject.org/repos/dist-5E-epel-build/latest/x86_64/ cost=2000 enabled=0 [epel-debug] name=epel-debug mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=epel-debug-5&arch=x86_64 failovermethod=priority enabled=0 """ mock-1.1.33/etc/mock/fedora-rawhide-ppc64.cfg0000664001204700120500000000156012120440354015444 00000000000000config_opts['root'] = 'fedora-rawhide-ppc64' config_opts['target_arch'] = 'ppc64' config_opts['legal_host_arches'] = ('ppc64',) config_opts['chroot_setup_cmd'] = 'groupinstall buildsys-build' config_opts['dist'] = 'rawhide' # only useful for --resultdir variable subst config_opts['yum.conf'] = """ [main] cachedir=/var/cache/yum debuglevel=1 reposdir=/dev/null logfile=/var/log/yum.log retries=20 obsoletes=1 gpgcheck=0 assumeyes=1 syslog_ident=mock syslog_device= # repos [fedora] name=fedora mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=rawhide&arch=ppc64 failovermethod=priority [local] name=local baseurl=http://kojipkgs.fedoraproject.org/repos/rawhide/latest/ppc64/ cost=2000 enabled=0 [debug] name=Fedora Rawhide - ppc64 - Debug failovermethod=priority mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=rawhide-debug&arch=ppc64 enabled=0 """ mock-1.1.33/etc/mock/epel-5-ppc.cfg0000664001204700120500000000247512120440354013506 00000000000000config_opts['root'] = 'epel-5-ppc' config_opts['target_arch'] = 'ppc' config_opts['legal_host_arches'] = ('ppc', 'ppc64') config_opts['chroot_setup_cmd'] = 'install buildsys-build' config_opts['dist'] = 'el5' # only useful for --resultdir variable subst if not config_opts.has_key('macros'): config_opts['macros'] = {} config_opts['macros']['%__arch_install_post'] = '%{nil}' config_opts['yum.conf'] = """ [main] cachedir=/var/cache/yum debuglevel=1 logfile=/var/log/yum.log reposdir=/dev/null retries=20 obsoletes=1 gpgcheck=0 assumeyes=1 syslog_ident=mock syslog_device= # repos [core] name=base mirrorlist=http://mirrorlist.centos.org/?release=5&arch=ppc&repo=os [update] name=updates mirrorlist=http://mirrorlist.centos.org/?release=5&arch=ppc&repo=updates [groups] name=groups baseurl=http://buildsys.fedoraproject.org/buildgroups/rhel5/ppc/ [extras] name=epel mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=epel-5&arch=ppc [testing] name=epel-testing enabled=0 mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=testing-epel5&arch=ppc [local] name=local baseurl=http://kojipkgs.fedoraproject.org/repos/dist-5E-epel-build/latest/ppc/ cost=2000 enabled=0 [epel-debug] name=epel-debug mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=epel-debug-5&arch=ppc failovermethod=priority enabled=0 """ mock-1.1.33/etc/mock/fedora-19-armhfp.cfg0000664001204700120500000000302012125663026014574 00000000000000config_opts['root'] = 'fedora-19-armhfp' config_opts['target_arch'] = 'armv7hl' config_opts['legal_host_arches'] = ('armv7l') config_opts['chroot_setup_cmd'] = 'groupinstall buildsys-build' config_opts['dist'] = 'fc19' # only useful for --resultdir variable subst config_opts['yum.conf'] = """ [main] cachedir=/var/cache/yum debuglevel=1 reposdir=/dev/null logfile=/var/log/yum.log retries=20 obsoletes=1 gpgcheck=0 assumeyes=1 syslog_ident=mock syslog_device= # repos [fedora] name=fedora mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=fedora-19&arch=armhfp failovermethod=priority [updates] name=updates mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=updates-released-f19&arch=armhfp failovermethod=priority [updates-testing] name=updates-testing mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=updates-testing-f19&arch=armhfp failovermethod=priority enabled=0 [local] name=local baseurl=http://arm.fedoraproject.org/repos/f19-build/latest/armhfp/ cost=2000 enabled=0 [fedora-debuginfo] name=fedora-debuginfo mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=fedora-debug-19&arch=armhfp failovermethod=priority enabled=0 [updates-debuginfo] name=updates-debuginfo mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=updates-released-debug-f19&arch=armhfp failovermethod=priority enabled=0 [updates-testing-debuginfo] name=updates-testing-debuginfo mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=updates-testing-debug-f19&arch=armhfp failovermethod=priority enabled=0 """ mock-1.1.33/etc/mock/epel-6-i386.cfg0000664001204700120500000000240012044326734013414 00000000000000config_opts['root'] = 'epel-6-i386' config_opts['target_arch'] = 'i686' config_opts['legal_host_arches'] = ('i386', 'i586', 'i686', 'x86_64') config_opts['chroot_setup_cmd'] = 'groupinstall buildsys-build' config_opts['dist'] = 'el6' # only useful for --resultdir variable subst config_opts['yum.conf'] = """ [main] cachedir=/var/cache/yum debuglevel=1 reposdir=/dev/null logfile=/var/log/yum.log retries=20 obsoletes=1 gpgcheck=0 assumeyes=1 syslog_ident=mock syslog_device= # repos [base] name=BaseOS enabled=1 mirrorlist=http://mirrorlist.centos.org/?release=6&arch=i386&repo=os failovermethod=priority [updates] name=updates enabled=1 mirrorlist=http://mirrorlist.centos.org/?release=6&arch=i386&repo=updates failovermethod=priority [epel] name=epel mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=epel-6&arch=i386 failovermethod=priority [testing] name=epel-testing enabled=0 mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=testing-epel6&arch=i386 failovermethod=priority [local] name=local baseurl=http://kojipkgs.fedoraproject.org/repos/dist-6E-epel-build/latest/i386/ cost=2000 enabled=0 [epel-debug] name=fedora-debug mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=epel-debug-6&arch=i386 failovermethod=priority enabled=0 """ mock-1.1.33/etc/mock/fedora-20-s390x.cfg0000664001204700120500000000301412205226221014167 00000000000000config_opts['root'] = 'fedora-20-s390x' config_opts['target_arch'] = 's390x' config_opts['legal_host_arches'] = ('s390x',) config_opts['chroot_setup_cmd'] = 'groupinstall buildsys-build' config_opts['dist'] = 'fc20' # only useful for --resultdir variable subst config_opts['yum.conf'] = """ [main] cachedir=/var/cache/yum debuglevel=1 reposdir=/dev/null logfile=/var/log/yum.log retries=20 obsoletes=1 gpgcheck=0 assumeyes=1 syslog_ident=mock syslog_device= # repos [fedora] name=fedora mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=fedora-20&arch=s390x failovermethod=priority [updates] name=updates mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=updates-released-f20&arch=s390x failovermethod=priority [updates-testing] name=updates-testing mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=updates-testing-f20&arch=s390x failovermethod=priority enabled=0 [local] name=local baseurl=http://s390.koji.fedoraproject.org/repos/f20-build/latest/s390x/ cost=2000 enabled=0 [fedora-debuginfo] name=fedora-debuginfo mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=fedora-debug-20&arch=s390x failovermethod=priority enabled=0 [updates-debuginfo] name=updates-debuginfo mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=updates-released-debug-f20&arch=s390x failovermethod=priority enabled=0 [updates-testing-debuginfo] name=updates-testing-debuginfo mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=updates-testing-debug-f20&arch=s390x failovermethod=priority enabled=0 """ mock-1.1.33/etc/mock/fedora-18-x86_64.cfg0000664001204700120500000000302512044556700014261 00000000000000config_opts['root'] = 'fedora-18-x86_64' config_opts['target_arch'] = 'x86_64' config_opts['legal_host_arches'] = ('x86_64',) config_opts['chroot_setup_cmd'] = 'groupinstall buildsys-build' config_opts['dist'] = 'fc18' # only useful for --resultdir variable subst config_opts['yum.conf'] = """ [main] cachedir=/var/cache/yum debuglevel=1 reposdir=/dev/null logfile=/var/log/yum.log retries=20 obsoletes=1 gpgcheck=0 assumeyes=1 syslog_ident=mock syslog_device= # repos [fedora] name=fedora mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=fedora-18&arch=x86_64 failovermethod=priority [updates] name=updates mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=updates-released-f18&arch=x86_64 failovermethod=priority [updates-testing] name=updates-testing mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=updates-testing-f18&arch=x86_64 failovermethod=priority enabled=0 [local] name=local baseurl=http://kojipkgs.fedoraproject.org/repos/f18-build/latest/x86_64/ cost=2000 enabled=0 [fedora-debuginfo] name=fedora-debuginfo mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=fedora-debug-18&arch=x86_64 failovermethod=priority enabled=0 [updates-debuginfo] name=updates-debuginfo mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=updates-released-debug-f18&arch=x86_64 failovermethod=priority enabled=0 [updates-testing-debuginfo] name=updates-testing-debuginfo mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=updates-testing-debug-f18&arch=x86_64 failovermethod=priority enabled=0 """ mock-1.1.33/etc/mock/fedora-rawhide-s390x.cfg0000664001204700120500000000156111714612364015411 00000000000000config_opts['root'] = 'fedora-rawhide-s390x' config_opts['target_arch'] = 's390x' config_opts['legal_host_arches'] = ('s390x',) config_opts['chroot_setup_cmd'] = 'groupinstall buildsys-build' config_opts['dist'] = 'rawhide' # only useful for --resultdir variable subst config_opts['yum.conf'] = """ [main] cachedir=/var/cache/yum debuglevel=1 reposdir=/dev/null logfile=/var/log/yum.log retries=20 obsoletes=1 gpgcheck=0 assumeyes=1 syslog_ident=mock syslog_device= # repos [fedora] name=fedora mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=rawhide&arch=s390x failovermethod=priority [local] name=local baseurl=http://s390.koji.fedoraproject.org/repos/rawhide/latest/s390x/ cost=2000 enabled=0 [debug] name=Fedora Rawhide - s390x - Debug failovermethod=priority mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=rawhide-debug&arch=s390x enabled=0 """ mock-1.1.33/etc/mock/site-defaults.cfg0000664001204700120500000001631412133271360014410 00000000000000# mock defaults # vim:tw=0:ts=4:sw=4:et: # # This config file is for site-specific default values that apply across all # configurations. Options specified in this config file can be overridden in # the individual mock config files. # # The site-defaults.cfg delivered by default has NO options set. Only set # options here if you want to override the defaults. # # Entries in this file follow the same format as other mock config files. # config_opts['foo'] = bar ############################################################################# # # Things that we recommend you set in site-defaults.cfg: # # config_opts['basedir'] = '/var/lib/mock/' # config_opts['cache_topdir'] = '/var/cache/mock' # Note: the path pointed to by basedir and cache_topdir must be owned # by group 'mock' and must have mode: g+rws # config_opts['rpmbuild_timeout'] = 0 # config_opts['use_host_resolv'] = True # You can configure log format to pull from logging.ini formats of these names: # config_opts['build_log_fmt_name'] = "unadorned" # config_opts['root_log_fmt_name'] = "detailed" # config_opts['state_log_fmt_name'] = "state" # # mock will normally set up a minimal chroot /dev. # If you want to use a pre-configured /dev, disable this and use the bind-mount # plugin to mount your special /dev # config_opts['internal_dev_setup'] = True # # internal_setarch defaults to 'True' if the python 'ctypes' package is # available. It is in the python std lib on >= python 2.5. On older versions, # it is available as an addon. On systems w/o ctypes, it will default to 'False' # config_opts['internal_setarch'] = False # # the cleanup_on_* options allow you to automatically clean and remove the # mock build directory, but only take effect if --resultdir is used. # config_opts provides fine-grained control. cmdline only has big hammer # # config_opts['cleanup_on_success'] = 1 # config_opts['cleanup_on_failure'] = 1 # if you want mock to automatically run createrepo on the rpms in your # resultdir. # config_opts['createrepo_on_rpms'] = False # config_opts['createrepo_command'] = '/usr/bin/createrepo -d -q -x *.src.rpm' # if you want mock to backup the contents of a result dir before clean # config_opts['backup_on_clean'] = False # config_opts('backup_base_dir'] = config_opts['basedir'] + "backup" ############################################################################# # # plugin related. Below are the defaults. Change to suit your site # policy. site-defaults.cfg is a good place to do this. # # NOTE: Some of the caching options can theoretically affect build # reproducability. Change with care. # # config_opts['plugin_conf']['package_state_enable'] = True # config_opts['plugin_conf']['ccache_enable'] = True # config_opts['plugin_conf']['ccache_opts']['max_cache_size'] = '4G' # config_opts['plugin_conf']['ccache_opts']['compress'] = None # config_opts['plugin_conf']['ccache_opts']['dir'] = "%(cache_topdir)s/%(root)s/ccache/" # config_opts['plugin_conf']['yum_cache_enable'] = True # config_opts['plugin_conf']['yum_cache_opts']['max_age_days'] = 30 # config_opts['plugin_conf']['yum_cache_opts']['dir'] = "%(cache_topdir)s/%(root)s/yum_cache/" # config_opts['plugin_conf']['root_cache_enable'] = True # config_opts['plugin_conf']['root_cache_opts']['max_age_days'] = 15 # config_opts['plugin_conf']['root_cache_opts']['dir'] = "%(cache_topdir)s/%(root)s/root_cache/" # config_opts['plugin_conf']['root_cache_opts']['compress_program'] = "pigz" # config_opts['plugin_conf']['root_cache_opts']['extension'] = ".gz" # config_opts['plugin_conf']['root_cache_opts']['exclude_dirs'] = ["./proc", "./sys", "./dev", # "./tmp/ccache", "./var/cache/yum" ] # # bind mount plugin is enabled by default but has no configured directories to # mount # config_opts['plugin_conf']['bind_mount_enable'] = True # config_opts['plugin_conf']['bind_mount_opts']['dirs'].append(('/host/path', '/bind/mount/path/in/chroot/' )) # # config_opts['plugin_conf']['tmpfs_enable'] = False # config_opts['plugin_conf']['tmpfs_opts']['required_ram_mb'] = 1024 # config_opts['plugin_conf']['tmpfs_opts']['max_fs_size'] = '512m' # config_opts['plugin_conf']['chroot_scan_enable'] = False # config_opts['plugin_conf']['chroot_scan_opts'] = [ "core(\.\d+)?", "\.log$",] ############################################################################# # # environment for chroot # # config_opts['environment']['TERM'] = 'vt100' # config_opts['environment']['SHELL'] = '/bin/bash' # config_opts['environment']['HOME'] = '/builddir' # config_opts['environment']['HOSTNAME'] = 'mock' # config_opts['environment']['PATH'] = '/usr/bin:/bin:/usr/sbin:/sbin' # config_opts['environment']['PROMPT_COMMAND'] = 'echo -n ""' # config_opts['environment']['LANG'] = os.environ.setdefault('LANG', 'en_US.UTF-8') # config_opts['environment']['TZ'] = os.environ.setdefault('TZ', 'EST5EDT') ############################################################################# # # Things that you can change, but we dont recommend it: # config_opts['chroothome'] = '/builddir' # config_opts['clean'] = True ############################################################################# # # Things that must be adjusted if SCM integration is used: # # config_opts['scm'] = True # config_opts['scm_opts']['method'] = 'git' # config_opts['scm_opts']['cvs_get'] = 'cvs -d /srv/cvs co SCM_BRN SCM_PKG' # config_opts['scm_opts']['git_get'] = 'git clone SCM_BRN git://localhost/SCM_PKG.git SCM_PKG' # config_opts['scm_opts']['svn_get'] = 'svn co file:///srv/svn/SCM_PKG/SCM_BRN SCM_PKG' # config_opts['scm_opts']['spec'] = 'SCM_PKG.spec' # config_opts['scm_opts']['ext_src_dir'] = '/dev/null' # config_opts['scm_opts']['write_tar'] = True # config_opts['scm_opts']['git_timestamps'] = True # These options are also recognized but usually defined in cmd line # with --scm-option package= --scm-option branch= # config_opts['scm_opts']['package'] = 'mypkg' # config_opts['scm_opts']['branch'] = 'master' ############################################################################# # # Things that are best suited for individual chroot config files: # # MUST SET (in individual chroot cfg file): # config_opts['root'] = 'name-of-yum-build-dir' # config_opts['target_arch'] = 'i386' # config_opts['yum.conf'] = '' # config_opts['yum_common_opts'] = [] # # CAN SET, defaults usually work ok: # config_opts['chroot_setup_cmd'] = 'install buildsys-build' # config_opts['log_config_file'] = 'logging.ini' # config_opts['more_buildreqs']['srpm_name-version-release'] = 'dependencies' # config_opts['macros']['%Add_your_macro_name_here'] = "add macro value here" # config_opts['files']['path/name/no/leading/slash'] = "put file contents here." # config_opts['chrootuid'] = os.getuid() # If you change chrootgid, you must also change "mock" to the correct group # name in this line of the mock PAM config: # auth sufficient pam_succeed_if.so user ingroup mock use_uid quiet # config_opts['chrootgid'] = grp.getgrnam("mock")[2] # config_opts['useradd'] = '/usr/sbin/useradd -m -u %(uid)s -g %(gid)s -d %(home)s -n %(user)s' # Fedora/RedHat # # Security related # config_opts['no_root_shells'] = False # # Proxy settings (https_proxy, ftp_proxy, and no_proxy can also be set) # config_opts['http_proxy'] = 'http://localhost:3128' mock-1.1.33/etc/mock/mockchaintest.cfg0000664001204700120500000000311112145511002014453 00000000000000config_opts['root'] = 'fedora-18-x86_64' config_opts['target_arch'] = 'x86_64' config_opts['legal_host_arches'] = ('x86_64',) config_opts['chroot_setup_cmd'] = 'groupinstall buildsys-build' config_opts['dist'] = 'fc18' # only useful for --resultdir variable subst config_opts['plugin_conf']['ccache_enable'] = False config_opts['yum.conf'] = """ [main] cachedir=/var/cache/yum debuglevel=1 reposdir=/dev/null logfile=/var/log/yum.log retries=20 obsoletes=1 gpgcheck=0 assumeyes=1 syslog_ident=mock syslog_device= # repos [fedora] name=fedora mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=fedora-18&arch=x86_64 failovermethod=priority [updates] name=updates mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=updates-released-f18&arch=x86_64 failovermethod=priority [updates-testing] name=updates-testing mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=updates-testing-f18&arch=x86_64 failovermethod=priority enabled=0 [local] name=local baseurl=http://kojipkgs.fedoraproject.org/repos/f18-build/latest/x86_64/ cost=2000 enabled=0 [fedora-debuginfo] name=fedora-debuginfo mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=fedora-debug-18&arch=x86_64 failovermethod=priority enabled=0 [updates-debuginfo] name=updates-debuginfo mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=updates-released-debug-f18&arch=x86_64 failovermethod=priority enabled=0 [updates-testing-debuginfo] name=updates-testing-debuginfo mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=updates-testing-debug-f18&arch=x86_64 failovermethod=priority enabled=0 """ mock-1.1.33/etc/mock/fedora-18-s390.cfg0000664001204700120500000000301212044556700014015 00000000000000config_opts['root'] = 'fedora-18-s390' config_opts['target_arch'] = 's390' config_opts['legal_host_arches'] = ('s390x', 's390') config_opts['chroot_setup_cmd'] = 'groupinstall buildsys-build' config_opts['dist'] = 'fc18' # only useful for --resultdir variable subst config_opts['yum.conf'] = """ [main] cachedir=/var/cache/yum debuglevel=1 reposdir=/dev/null logfile=/var/log/yum.log retries=20 obsoletes=1 gpgcheck=0 assumeyes=1 syslog_ident=mock syslog_device= # repos [fedora] name=fedora mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=fedora-18&arch=s390 failovermethod=priority [updates] name=updates mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=updates-released-f18&arch=s390 failovermethod=priority [updates-testing] name=updates-testing mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=updates-testing-f18&arch=s390 failovermethod=priority enabled=0 [local] name=local baseurl=http://s390.koji.fedoraproject.org/repos/f18-build/latest/s390/ cost=2000 enabled=0 [fedora-debuginfo] name=fedora-debuginfo mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=fedora-debug-18&arch=s390 failovermethod=priority enabled=0 [updates-debuginfo] name=updates-debuginfo mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=updates-released-debug-f18&arch=s390 failovermethod=priority enabled=0 [updates-testing-debuginfo] name=updates-testing-debuginfo mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=updates-testing-debug-f18&arch=s390 failovermethod=priority enabled=0 """ mock-1.1.33/etc/mock/fedora-rawhide-i386.cfg0000664001204700120500000000160112120440354015175 00000000000000config_opts['root'] = 'fedora-rawhide-i386' config_opts['target_arch'] = 'i686' config_opts['legal_host_arches'] = ('i386', 'i586', 'i686', 'x86_64') config_opts['chroot_setup_cmd'] = 'groupinstall buildsys-build' config_opts['dist'] = 'rawhide' # only useful for --resultdir variable subst config_opts['yum.conf'] = """ [main] cachedir=/var/cache/yum debuglevel=1 reposdir=/dev/null logfile=/var/log/yum.log retries=20 obsoletes=1 gpgcheck=0 assumeyes=1 syslog_ident=mock syslog_device= # repos [fedora] name=fedora mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=rawhide&arch=i386 failovermethod=priority [local] name=local baseurl=http://kojipkgs.fedoraproject.org/repos/rawhide/latest/i386 cost=2000 enabled=0 [debug] name=Fedora Rawhide - i386 - Debug failovermethod=priority mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=rawhide-debug&arch=i386 enabled=0 """ mock-1.1.33/etc/mock/fedora-19-s390x.cfg0000664001204700120500000000301412125663026014210 00000000000000config_opts['root'] = 'fedora-19-s390x' config_opts['target_arch'] = 's390x' config_opts['legal_host_arches'] = ('s390x',) config_opts['chroot_setup_cmd'] = 'groupinstall buildsys-build' config_opts['dist'] = 'fc19' # only useful for --resultdir variable subst config_opts['yum.conf'] = """ [main] cachedir=/var/cache/yum debuglevel=1 reposdir=/dev/null logfile=/var/log/yum.log retries=20 obsoletes=1 gpgcheck=0 assumeyes=1 syslog_ident=mock syslog_device= # repos [fedora] name=fedora mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=fedora-19&arch=s390x failovermethod=priority [updates] name=updates mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=updates-released-f19&arch=s390x failovermethod=priority [updates-testing] name=updates-testing mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=updates-testing-f19&arch=s390x failovermethod=priority enabled=0 [local] name=local baseurl=http://s390.koji.fedoraproject.org/repos/f19-build/latest/s390x/ cost=2000 enabled=0 [fedora-debuginfo] name=fedora-debuginfo mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=fedora-debug-19&arch=s390x failovermethod=priority enabled=0 [updates-debuginfo] name=updates-debuginfo mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=updates-released-debug-f19&arch=s390x failovermethod=priority enabled=0 [updates-testing-debuginfo] name=updates-testing-debuginfo mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=updates-testing-debug-f19&arch=s390x failovermethod=priority enabled=0 """ mock-1.1.33/etc/mock/epel-6-ppc64.cfg0000664001204700120500000000216111664543275013673 00000000000000config_opts['root'] = 'epel-6-ppc64' config_opts['target_arch'] = 'ppc64' config_opts['legal_host_arches'] = ('ppc64',) config_opts['chroot_setup_cmd'] = 'groupinstall buildsys-build' config_opts['dist'] = 'el6' # only useful for --resultdir variable subst config_opts['yum.conf'] = """ [main] cachedir=/var/cache/yum debuglevel=1 reposdir=/dev/null logfile=/var/log/yum.log retries=20 obsoletes=1 gpgcheck=0 assumeyes=1 syslog_ident=mock syslog_device= # repos #[base] #name=BaseOS #enabled=1 #mirrorlist=http://mirrorlist.centos.org/?release=6&arch=ppc64&repo=os #failovermethod=priority #[updates] #name=updates #enabled=1 #mirrorlist=http://mirrorlist.centos.org/?release=6&arch=ppc64&repo=updates #failovermethod=priority [epel] name=epel mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=epel-6&arch=ppc64 failovermethod=priority enabled=1 [testing] name=epel-testing enabled=0 mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=testing-epel6&arch=ppc64 failovermethod=priority [local] name=local baseurl=http://kojipkgs.fedoraproject.org/repos/dist-6E-epel-build/latest/ppc64/ cost=2000 enabled=0 """ mock-1.1.33/etc/mock/epel-5-i386.cfg0000664001204700120500000000253012120440354013405 00000000000000config_opts['root'] = 'epel-5-i386' config_opts['target_arch'] = 'i386' config_opts['legal_host_arches'] = ('i386', 'i586', 'i686', 'x86_64') config_opts['chroot_setup_cmd'] = 'install buildsys-build' config_opts['dist'] = 'el5' # only useful for --resultdir variable subst if not config_opts.has_key('macros'): config_opts['macros'] = {} config_opts['macros']['%__arch_install_post'] = '%{nil}' config_opts['yum.conf'] = """ [main] cachedir=/var/cache/yum debuglevel=1 logfile=/var/log/yum.log reposdir=/dev/null retries=20 obsoletes=1 gpgcheck=0 assumeyes=1 syslog_ident=mock syslog_device= # repos [core] name=base mirrorlist=http://mirrorlist.centos.org/?release=5&arch=i386&repo=os [update] name=updates mirrorlist=http://mirrorlist.centos.org/?release=5&arch=i386&repo=updates [groups] name=groups baseurl=http://buildsys.fedoraproject.org/buildgroups/rhel5/i386/ [extras] name=epel mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=epel-5&arch=i386 [testing] name=epel-testing enabled=0 mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=testing-epel5&arch=i386 [local] name=local baseurl=http://kojipkgs.fedoraproject.org/repos/dist-5E-epel-build/latest/i386/ cost=2000 enabled=0 [epel-debug] name=epel-debug mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=epel-debug-5&arch=i386 failovermethod=priority enabled=0 """ mock-1.1.33/etc/mock/fedora-20-armhfp.cfg0000664001204700120500000000302012205226221014553 00000000000000config_opts['root'] = 'fedora-20-armhfp' config_opts['target_arch'] = 'armv7hl' config_opts['legal_host_arches'] = ('armv7l') config_opts['chroot_setup_cmd'] = 'groupinstall buildsys-build' config_opts['dist'] = 'fc20' # only useful for --resultdir variable subst config_opts['yum.conf'] = """ [main] cachedir=/var/cache/yum debuglevel=1 reposdir=/dev/null logfile=/var/log/yum.log retries=20 obsoletes=1 gpgcheck=0 assumeyes=1 syslog_ident=mock syslog_device= # repos [fedora] name=fedora mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=fedora-20&arch=armhfp failovermethod=priority [updates] name=updates mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=updates-released-f20&arch=armhfp failovermethod=priority [updates-testing] name=updates-testing mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=updates-testing-f20&arch=armhfp failovermethod=priority enabled=0 [local] name=local baseurl=http://arm.fedoraproject.org/repos/f20-build/latest/armhfp/ cost=2000 enabled=0 [fedora-debuginfo] name=fedora-debuginfo mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=fedora-debug-20&arch=armhfp failovermethod=priority enabled=0 [updates-debuginfo] name=updates-debuginfo mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=updates-released-debug-f20&arch=armhfp failovermethod=priority enabled=0 [updates-testing-debuginfo] name=updates-testing-debuginfo mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=updates-testing-debug-f20&arch=armhfp failovermethod=priority enabled=0 """ mock-1.1.33/etc/mock/#fedora-20-armhfp.cfg#0000644001204700120500000000302112205155377014675 00000000000000config_opts['root'] = 'fedora-20-armhfp' config_opts['target_arch'] = 'armv7hl' config_opts['legal_host_arches'] = ('armv7l') config_opts['chroot_setup_cmd'] = 'groupinstall buildsys-build' config_opts['dist'] = 'fc20' # only useful for --resultdir variable subst config_opts['yum.conf'] = """ [main] cachedir=/var/cache/yum debuglevel=1 reposdir=/dev/null logfile=/var/log/yum.log retries=20 obsoletes=1 gpgcheck=0 assumeyes=1 syslog_ident=mock syslog_device= # repos [fedora] name=fedora mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=fedora-20&arch=armhfp failovermethod=priority [updates] name=updates mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=updates-released-f20&arch=armhfp failovermethod=priority [updates-testing] name=updates-testing mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=updates-testing-f20&arch=armhfp failovermethod=priority enabled=0 [local] name=local baseurl=http://arm.fedoraproject.org/repos/f20-build/latest/armhfp/ cost=2000 enabled=0 [fedora-debuginfo] name=fedora-debuginfo mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=fedora-debug-20&arch=armhfp failovermethod=priority enabled=0 [updates-debuginfo] name=updates-debuginfo mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=updates-released-debug-f20&arch=armhfp failovermethod=priority enabled=0 [updates-testing-debuginfo] name=updates-testing-debuginfo mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=updates-testing-debug-f20&arch=armhfp failovermethod=priority enabled=0 """ mock-1.1.33/etc/mock/fedora-20-ppc.cfg0000664001204700120500000000316512205226221014072 00000000000000config_opts['root'] = 'fedora-20-ppc' config_opts['target_arch'] = 'ppc' config_opts['legal_host_arches'] = ('ppc', 'ppc64') config_opts['chroot_setup_cmd'] = 'groupinstall buildsys-build' config_opts['dist'] = 'fc20' # only useful for --resultdir variable subst config_opts['yum.conf'] = """ [main] cachedir=/var/cache/yum debuglevel=1 reposdir=/dev/null logfile=/var/log/yum.log retries=20 obsoletes=1 gpgcheck=0 assumeyes=1 syslog_ident=mock syslog_device= #exclude=*.ppc64 # The above is not needed anymore with yum multilib policy of "best" which is the default in Fedora. # repos [fedora] name=fedora mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=fedora-20&arch=ppc failovermethod=priority [updates] name=updates mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=updates-released-f20&arch=ppc failovermethod=priority [updates-testing] name=updates-testing mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=updates-testing-f20&arch=ppc failovermethod=priority enabled=0 [local] name=local baseurl=http://kojipkgs.fedoraproject.org/repos/f20-build/latest/ppc/ cost=2000 enabled=0 [fedora-debuginfo] name=fedora-debuginfo mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=fedora-debug-20&arch=ppc failovermethod=priority enabled=0 [updates-debuginfo] name=updates-debuginfo mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=updates-released-debug-f20&arch=ppc failovermethod=priority enabled=0 [updates-testing-debuginfo] name=updates-testing-debuginfo mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=updates-testing-debug-f20&arch=ppc failovermethod=priority enabled=0 """ mock-1.1.33/etc/pam/0000775001204700120500000000000011630452501011054 500000000000000mock-1.1.33/etc/pam/mock0000664001204700120500000000106410733351155011657 00000000000000#%PAM-1.0 auth sufficient pam_rootok.so auth sufficient pam_succeed_if.so user ingroup mock use_uid quiet # Uncomment the following line to implicitly trust users in the "wheel" group. #auth sufficient pam_wheel.so trust use_uid # Uncomment the following line to require a user to be in the "wheel" group. #auth required pam_wheel.so use_uid auth include system-auth account sufficient pam_succeed_if.so user ingroup mock use_uid quiet account include system-auth password include system-auth session include system-auth session optional pam_xauth.so mock-1.1.33/etc/consolehelper/0000775001204700120500000000000011735224744013155 500000000000000mock-1.1.33/etc/consolehelper/mock0000664001204700120500000000014211735224744013746 00000000000000USER=root PROGRAM=/usr/sbin/mock SESSION=false FALLBACK=false KEEP_ENV_VARS=COLUMNS,SSH_AUTH_SOCK mock-1.1.33/COPYING0000664001204700120500000004312210717137301010504 00000000000000 GNU GENERAL PUBLIC LICENSE Version 2, June 1991 Copyright (C) 1989, 1991 Free Software Foundation, Inc. 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by the GNU Library General Public License instead.) You can apply it to your programs, too. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things. To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it. For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software. Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors' reputations. Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all. The precise terms and conditions for copying, distribution and modification follow. GNU GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language. (Hereinafter, translation is included without limitation in the term "modification".) Each licensee is addressed as "you". Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does. 1. You may copy and distribute verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program. You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. 2. You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: a) You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change. b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License. c) If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.) These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program. In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. 3. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following: a) Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, b) Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, c) Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.) The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code. 4. You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. 5. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Program or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or works based on it. 6. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License. 7. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program. If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances. It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. 8. If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. 9. The Free Software Foundation may publish revised and/or new versions of the General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation. 10. If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. NO WARRANTY 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. END OF TERMS AND CONDITIONS How to Apply These Terms to Your New Programs If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. Copyright (C) This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA Also add information on how to contact you by electronic and paper mail. If the program is interactive, make it output a short notice like this when it starts in an interactive mode: Gnomovision version 69, Copyright (C) year name of author Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details. The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, the commands you use may be called something other than `show w' and `show c'; they could even be mouse-clicks or menu items--whatever suits your program. You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the program, if necessary. Here is a sample; alter the names: Yoyodyne, Inc., hereby disclaims all copyright interest in the program `Gnomovision' (which makes passes at compilers) written by James Hacker. , 1 April 1989 Ty Coon, President of Vice This General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Library General Public License instead of this License. mock-1.1.33/configure0000775001204700120500000033150712205226666011376 00000000000000#! /bin/sh # Guess values for system-dependent variables and create Makefiles. # Generated by GNU Autoconf 2.69 for mock 1.1.33. # # # Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc. # # # This configure script is free software; the Free Software Foundation # gives unlimited permission to copy, distribute and modify it. ## -------------------- ## ## M4sh Initialization. ## ## -------------------- ## # Be more Bourne compatible DUALCASE=1; export DUALCASE # for MKS sh if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in #( *posix*) : set -o posix ;; #( *) : ;; esac fi as_nl=' ' export as_nl # Printing a long string crashes Solaris 7 /usr/bin/printf. as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo # Prefer a ksh shell builtin over an external printf program on Solaris, # but without wasting forks for bash or zsh. if test -z "$BASH_VERSION$ZSH_VERSION" \ && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='print -r --' as_echo_n='print -rn --' elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='printf %s\n' as_echo_n='printf %s' else if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' as_echo_n='/usr/ucb/echo -n' else as_echo_body='eval expr "X$1" : "X\\(.*\\)"' as_echo_n_body='eval arg=$1; case $arg in #( *"$as_nl"*) expr "X$arg" : "X\\(.*\\)$as_nl"; arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; esac; expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" ' export as_echo_n_body as_echo_n='sh -c $as_echo_n_body as_echo' fi export as_echo_body as_echo='sh -c $as_echo_body as_echo' fi # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then PATH_SEPARATOR=: (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || PATH_SEPARATOR=';' } fi # IFS # We need space, tab and new line, in precisely that order. Quoting is # there to prevent editors from complaining about space-tab. # (If _AS_PATH_WALK were called with IFS unset, it would disable word # splitting by setting IFS to empty value.) IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. as_myself= case $0 in #(( *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break done IFS=$as_save_IFS ;; esac # We did not find ourselves, most probably we were run as `sh COMMAND' # in which case we are not to be found in the path. if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 exit 1 fi # Unset variables that we do not need and which cause bugs (e.g. in # pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" # suppresses any "Segmentation fault" message there. '((' could # trigger a bug in pdksh 5.2.14. for as_var in BASH_ENV ENV MAIL MAILPATH do eval test x\${$as_var+set} = xset \ && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : done PS1='$ ' PS2='> ' PS4='+ ' # NLS nuisances. LC_ALL=C export LC_ALL LANGUAGE=C export LANGUAGE # CDPATH. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH # Use a proper internal environment variable to ensure we don't fall # into an infinite loop, continuously re-executing ourselves. if test x"${_as_can_reexec}" != xno && test "x$CONFIG_SHELL" != x; then _as_can_reexec=no; export _as_can_reexec; # We cannot yet assume a decent shell, so we have to provide a # neutralization value for shells without unset; and this also # works around shells that cannot unset nonexistent variables. # Preserve -v and -x to the replacement shell. BASH_ENV=/dev/null ENV=/dev/null (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV case $- in # (((( *v*x* | *x*v* ) as_opts=-vx ;; *v* ) as_opts=-v ;; *x* ) as_opts=-x ;; * ) as_opts= ;; esac exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} # Admittedly, this is quite paranoid, since all the known shells bail # out after a failed `exec'. $as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 as_fn_exit 255 fi # We don't want this to propagate to other subprocesses. { _as_can_reexec=; unset _as_can_reexec;} if test "x$CONFIG_SHELL" = x; then as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which # is contrary to our usage. Disable this feature. alias -g '\${1+\"\$@\"}'='\"\$@\"' setopt NO_GLOB_SUBST else case \`(set -o) 2>/dev/null\` in #( *posix*) : set -o posix ;; #( *) : ;; esac fi " as_required="as_fn_return () { (exit \$1); } as_fn_success () { as_fn_return 0; } as_fn_failure () { as_fn_return 1; } as_fn_ret_success () { return 0; } as_fn_ret_failure () { return 1; } exitcode=0 as_fn_success || { exitcode=1; echo as_fn_success failed.; } as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; } as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; } as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; } if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then : else exitcode=1; echo positional parameters were not saved. fi test x\$exitcode = x0 || exit 1 test -x / || exit 1" as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" && test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1" if (eval "$as_required") 2>/dev/null; then : as_have_required=yes else as_have_required=no fi if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then : else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR as_found=false for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. as_found=: case $as_dir in #( /*) for as_base in sh bash ksh sh5; do # Try only shells that exist, to save several forks. as_shell=$as_dir/$as_base if { test -f "$as_shell" || test -f "$as_shell.exe"; } && { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then : CONFIG_SHELL=$as_shell as_have_required=yes if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then : break 2 fi fi done;; esac as_found=false done $as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } && { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then : CONFIG_SHELL=$SHELL as_have_required=yes fi; } IFS=$as_save_IFS if test "x$CONFIG_SHELL" != x; then : export CONFIG_SHELL # We cannot yet assume a decent shell, so we have to provide a # neutralization value for shells without unset; and this also # works around shells that cannot unset nonexistent variables. # Preserve -v and -x to the replacement shell. BASH_ENV=/dev/null ENV=/dev/null (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV case $- in # (((( *v*x* | *x*v* ) as_opts=-vx ;; *v* ) as_opts=-v ;; *x* ) as_opts=-x ;; * ) as_opts= ;; esac exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} # Admittedly, this is quite paranoid, since all the known shells bail # out after a failed `exec'. $as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 exit 255 fi if test x$as_have_required = xno; then : $as_echo "$0: This script requires a shell more modern than all" $as_echo "$0: the shells that I found on your system." if test x${ZSH_VERSION+set} = xset ; then $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should" $as_echo "$0: be upgraded to zsh 4.3.4 or later." else $as_echo "$0: Please tell bug-autoconf@gnu.org about your system, $0: including any error possibly output before this $0: message. Then install a modern shell, or manually run $0: the script under such a shell if you do have one." fi exit 1 fi fi fi SHELL=${CONFIG_SHELL-/bin/sh} export SHELL # Unset more variables known to interfere with behavior of common tools. CLICOLOR_FORCE= GREP_OPTIONS= unset CLICOLOR_FORCE GREP_OPTIONS ## --------------------- ## ## M4sh Shell Functions. ## ## --------------------- ## # as_fn_unset VAR # --------------- # Portably unset VAR. as_fn_unset () { { eval $1=; unset $1;} } as_unset=as_fn_unset # as_fn_set_status STATUS # ----------------------- # Set $? to STATUS, without forking. as_fn_set_status () { return $1 } # as_fn_set_status # as_fn_exit STATUS # ----------------- # Exit the shell with STATUS, even in a "trap 0" or "set -e" context. as_fn_exit () { set +e as_fn_set_status $1 exit $1 } # as_fn_exit # as_fn_mkdir_p # ------------- # Create "$as_dir" as a directory, including parents if necessary. as_fn_mkdir_p () { case $as_dir in #( -*) as_dir=./$as_dir;; esac test -d "$as_dir" || eval $as_mkdir_p || { as_dirs= while :; do case $as_dir in #( *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( *) as_qdir=$as_dir;; esac as_dirs="'$as_qdir' $as_dirs" as_dir=`$as_dirname -- "$as_dir" || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` test -d "$as_dir" && break done test -z "$as_dirs" || eval "mkdir $as_dirs" } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" } # as_fn_mkdir_p # as_fn_executable_p FILE # ----------------------- # Test if FILE is an executable regular file. as_fn_executable_p () { test -f "$1" && test -x "$1" } # as_fn_executable_p # as_fn_append VAR VALUE # ---------------------- # Append the text in VALUE to the end of the definition contained in VAR. Take # advantage of any shell optimizations that allow amortized linear growth over # repeated appends, instead of the typical quadratic growth present in naive # implementations. if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : eval 'as_fn_append () { eval $1+=\$2 }' else as_fn_append () { eval $1=\$$1\$2 } fi # as_fn_append # as_fn_arith ARG... # ------------------ # Perform arithmetic evaluation on the ARGs, and store the result in the # global $as_val. Take advantage of shells that can avoid forks. The arguments # must be portable across $(()) and expr. if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : eval 'as_fn_arith () { as_val=$(( $* )) }' else as_fn_arith () { as_val=`expr "$@" || test $? -eq 1` } fi # as_fn_arith # as_fn_error STATUS ERROR [LINENO LOG_FD] # ---------------------------------------- # Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are # provided, also output the error to LOG_FD, referencing LINENO. Then exit the # script with STATUS, using 1 if that was 0. as_fn_error () { as_status=$1; test $as_status -eq 0 && as_status=1 if test "$4"; then as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 fi $as_echo "$as_me: error: $2" >&2 as_fn_exit $as_status } # as_fn_error if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then as_basename=basename else as_basename=false fi if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then as_dirname=dirname else as_dirname=false fi as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || $as_echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q } /^X\/\(\/\/\)$/{ s//\1/ q } /^X\/\(\/\).*/{ s//\1/ q } s/.*/./; q'` # Avoid depending upon Character Ranges. as_cr_letters='abcdefghijklmnopqrstuvwxyz' as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits as_lineno_1=$LINENO as_lineno_1a=$LINENO as_lineno_2=$LINENO as_lineno_2a=$LINENO eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" && test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || { # Blame Lee E. McMahon (1931-1989) for sed's syntax. :-) sed -n ' p /[$]LINENO/= ' <$as_myself | sed ' s/[$]LINENO.*/&-/ t lineno b :lineno N :loop s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ t loop s/-\n.*// ' >$as_me.lineno && chmod +x "$as_me.lineno" || { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; } # If we had to re-execute with $CONFIG_SHELL, we're ensured to have # already done that, so ensure we don't try to do so again and fall # in an infinite loop. This has already happened in practice. _as_can_reexec=no; export _as_can_reexec # Don't try to exec as it changes $[0], causing all sort of problems # (the dirname of $[0] is not the place where we might find the # original and so on. Autoconf is especially sensitive to this). . "./$as_me.lineno" # Exit status is that of the last command. exit } ECHO_C= ECHO_N= ECHO_T= case `echo -n x` in #((((( -n*) case `echo 'xy\c'` in *c*) ECHO_T=' ';; # ECHO_T is single tab character. xy) ECHO_C='\c';; *) echo `echo ksh88 bug on AIX 6.1` > /dev/null ECHO_T=' ';; esac;; *) ECHO_N='-n';; esac rm -f conf$$ conf$$.exe conf$$.file if test -d conf$$.dir; then rm -f conf$$.dir/conf$$.file else rm -f conf$$.dir mkdir conf$$.dir 2>/dev/null fi if (echo >conf$$.file) 2>/dev/null; then if ln -s conf$$.file conf$$ 2>/dev/null; then as_ln_s='ln -s' # ... but there are two gotchas: # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. # In both cases, we have to default to `cp -pR'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || as_ln_s='cp -pR' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -pR' fi else as_ln_s='cp -pR' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null if mkdir -p . 2>/dev/null; then as_mkdir_p='mkdir -p "$as_dir"' else test -d ./-p && rmdir ./-p as_mkdir_p=false fi as_test_x='test -x' as_executable_p=as_fn_executable_p # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" # Sed expression to map a string onto a valid variable name. as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" test -n "$DJDIR" || exec 7<&0 &1 # Name of the host. # hostname on some systems (SVR3.2, old GNU/Linux) returns a bogus exit status, # so uname gets run too. ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` # # Initializations. # ac_default_prefix=/usr/local ac_clean_files= ac_config_libobj_dir=. LIBOBJS= cross_compiling=no subdirs= MFLAGS= MAKEFLAGS= # Identity of this package. PACKAGE_NAME='mock' PACKAGE_TARNAME='mock' PACKAGE_VERSION='1.1.33' PACKAGE_STRING='mock 1.1.33' PACKAGE_BUGREPORT='' PACKAGE_URL='' ac_subst_vars='LTLIBOBJS LIBOBJS RELEASE_RPM_EXTRALEVEL RELEASE_EXTRALEVEL RELEASE_SUBLEVEL RELEASE_MINOR RELEASE_MAJOR RELEASE_NAME USE_MD5_FALSE USE_MD5_TRUE pkgpyexecdir pyexecdir pkgpythondir pythondir PYTHON_PLATFORM PYTHON_EXEC_PREFIX PYTHON_PREFIX PYTHON_VERSION PYTHON MAINT MAINTAINER_MODE_FALSE MAINTAINER_MODE_TRUE AM_BACKSLASH AM_DEFAULT_VERBOSITY AM_DEFAULT_V AM_V am__untar am__tar AMTAR am__leading_dot SET_MAKE AWK mkdir_p MKDIR_P INSTALL_STRIP_PROGRAM STRIP install_sh MAKEINFO AUTOHEADER AUTOMAKE AUTOCONF ACLOCAL VERSION PACKAGE CYGPATH_W am__isrc INSTALL_DATA INSTALL_SCRIPT INSTALL_PROGRAM target_alias host_alias build_alias LIBS ECHO_T ECHO_N ECHO_C DEFS mandir localedir libdir psdir pdfdir dvidir htmldir infodir docdir oldincludedir includedir localstatedir sharedstatedir sysconfdir datadir datarootdir libexecdir sbindir bindir program_transform_name prefix exec_prefix PACKAGE_URL PACKAGE_BUGREPORT PACKAGE_STRING PACKAGE_VERSION PACKAGE_TARNAME PACKAGE_NAME PATH_SEPARATOR SHELL' ac_subst_files='' ac_user_opts=' enable_option_checking enable_silent_rules enable_maintainer_mode ' ac_precious_vars='build_alias host_alias target_alias PYTHON' # Initialize some variables set by options. ac_init_help= ac_init_version=false ac_unrecognized_opts= ac_unrecognized_sep= # The variables have the same names as the options, with # dashes changed to underlines. cache_file=/dev/null exec_prefix=NONE no_create= no_recursion= prefix=NONE program_prefix=NONE program_suffix=NONE program_transform_name=s,x,x, silent= site= srcdir= verbose= x_includes=NONE x_libraries=NONE # Installation directory options. # These are left unexpanded so users can "make install exec_prefix=/foo" # and all the variables that are supposed to be based on exec_prefix # by default will actually change. # Use braces instead of parens because sh, perl, etc. also accept them. # (The list follows the same order as the GNU Coding Standards.) bindir='${exec_prefix}/bin' sbindir='${exec_prefix}/sbin' libexecdir='${exec_prefix}/libexec' datarootdir='${prefix}/share' datadir='${datarootdir}' sysconfdir='${prefix}/etc' sharedstatedir='${prefix}/com' localstatedir='${prefix}/var' includedir='${prefix}/include' oldincludedir='/usr/include' docdir='${datarootdir}/doc/${PACKAGE_TARNAME}' infodir='${datarootdir}/info' htmldir='${docdir}' dvidir='${docdir}' pdfdir='${docdir}' psdir='${docdir}' libdir='${exec_prefix}/lib' localedir='${datarootdir}/locale' mandir='${datarootdir}/man' ac_prev= ac_dashdash= for ac_option do # If the previous option needs an argument, assign it. if test -n "$ac_prev"; then eval $ac_prev=\$ac_option ac_prev= continue fi case $ac_option in *=?*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;; *=) ac_optarg= ;; *) ac_optarg=yes ;; esac # Accept the important Cygnus configure options, so we can diagnose typos. case $ac_dashdash$ac_option in --) ac_dashdash=yes ;; -bindir | --bindir | --bindi | --bind | --bin | --bi) ac_prev=bindir ;; -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) bindir=$ac_optarg ;; -build | --build | --buil | --bui | --bu) ac_prev=build_alias ;; -build=* | --build=* | --buil=* | --bui=* | --bu=*) build_alias=$ac_optarg ;; -cache-file | --cache-file | --cache-fil | --cache-fi \ | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) ac_prev=cache_file ;; -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) cache_file=$ac_optarg ;; --config-cache | -C) cache_file=config.cache ;; -datadir | --datadir | --datadi | --datad) ac_prev=datadir ;; -datadir=* | --datadir=* | --datadi=* | --datad=*) datadir=$ac_optarg ;; -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \ | --dataroo | --dataro | --datar) ac_prev=datarootdir ;; -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \ | --dataroot=* | --dataroo=* | --dataro=* | --datar=*) datarootdir=$ac_optarg ;; -disable-* | --disable-*) ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid feature name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "enable_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval enable_$ac_useropt=no ;; -docdir | --docdir | --docdi | --doc | --do) ac_prev=docdir ;; -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*) docdir=$ac_optarg ;; -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv) ac_prev=dvidir ;; -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*) dvidir=$ac_optarg ;; -enable-* | --enable-*) ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid feature name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "enable_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval enable_$ac_useropt=\$ac_optarg ;; -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ | --exec | --exe | --ex) ac_prev=exec_prefix ;; -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ | --exec=* | --exe=* | --ex=*) exec_prefix=$ac_optarg ;; -gas | --gas | --ga | --g) # Obsolete; use --with-gas. with_gas=yes ;; -help | --help | --hel | --he | -h) ac_init_help=long ;; -help=r* | --help=r* | --hel=r* | --he=r* | -hr*) ac_init_help=recursive ;; -help=s* | --help=s* | --hel=s* | --he=s* | -hs*) ac_init_help=short ;; -host | --host | --hos | --ho) ac_prev=host_alias ;; -host=* | --host=* | --hos=* | --ho=*) host_alias=$ac_optarg ;; -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht) ac_prev=htmldir ;; -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \ | --ht=*) htmldir=$ac_optarg ;; -includedir | --includedir | --includedi | --included | --include \ | --includ | --inclu | --incl | --inc) ac_prev=includedir ;; -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ | --includ=* | --inclu=* | --incl=* | --inc=*) includedir=$ac_optarg ;; -infodir | --infodir | --infodi | --infod | --info | --inf) ac_prev=infodir ;; -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) infodir=$ac_optarg ;; -libdir | --libdir | --libdi | --libd) ac_prev=libdir ;; -libdir=* | --libdir=* | --libdi=* | --libd=*) libdir=$ac_optarg ;; -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ | --libexe | --libex | --libe) ac_prev=libexecdir ;; -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ | --libexe=* | --libex=* | --libe=*) libexecdir=$ac_optarg ;; -localedir | --localedir | --localedi | --localed | --locale) ac_prev=localedir ;; -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*) localedir=$ac_optarg ;; -localstatedir | --localstatedir | --localstatedi | --localstated \ | --localstate | --localstat | --localsta | --localst | --locals) ac_prev=localstatedir ;; -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*) localstatedir=$ac_optarg ;; -mandir | --mandir | --mandi | --mand | --man | --ma | --m) ac_prev=mandir ;; -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) mandir=$ac_optarg ;; -nfp | --nfp | --nf) # Obsolete; use --without-fp. with_fp=no ;; -no-create | --no-create | --no-creat | --no-crea | --no-cre \ | --no-cr | --no-c | -n) no_create=yes ;; -no-recursion | --no-recursion | --no-recursio | --no-recursi \ | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) no_recursion=yes ;; -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ | --oldin | --oldi | --old | --ol | --o) ac_prev=oldincludedir ;; -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) oldincludedir=$ac_optarg ;; -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) ac_prev=prefix ;; -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) prefix=$ac_optarg ;; -program-prefix | --program-prefix | --program-prefi | --program-pref \ | --program-pre | --program-pr | --program-p) ac_prev=program_prefix ;; -program-prefix=* | --program-prefix=* | --program-prefi=* \ | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) program_prefix=$ac_optarg ;; -program-suffix | --program-suffix | --program-suffi | --program-suff \ | --program-suf | --program-su | --program-s) ac_prev=program_suffix ;; -program-suffix=* | --program-suffix=* | --program-suffi=* \ | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) program_suffix=$ac_optarg ;; -program-transform-name | --program-transform-name \ | --program-transform-nam | --program-transform-na \ | --program-transform-n | --program-transform- \ | --program-transform | --program-transfor \ | --program-transfo | --program-transf \ | --program-trans | --program-tran \ | --progr-tra | --program-tr | --program-t) ac_prev=program_transform_name ;; -program-transform-name=* | --program-transform-name=* \ | --program-transform-nam=* | --program-transform-na=* \ | --program-transform-n=* | --program-transform-=* \ | --program-transform=* | --program-transfor=* \ | --program-transfo=* | --program-transf=* \ | --program-trans=* | --program-tran=* \ | --progr-tra=* | --program-tr=* | --program-t=*) program_transform_name=$ac_optarg ;; -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd) ac_prev=pdfdir ;; -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*) pdfdir=$ac_optarg ;; -psdir | --psdir | --psdi | --psd | --ps) ac_prev=psdir ;; -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*) psdir=$ac_optarg ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil) silent=yes ;; -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) ac_prev=sbindir ;; -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ | --sbi=* | --sb=*) sbindir=$ac_optarg ;; -sharedstatedir | --sharedstatedir | --sharedstatedi \ | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ | --sharedst | --shareds | --shared | --share | --shar \ | --sha | --sh) ac_prev=sharedstatedir ;; -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ | --sha=* | --sh=*) sharedstatedir=$ac_optarg ;; -site | --site | --sit) ac_prev=site ;; -site=* | --site=* | --sit=*) site=$ac_optarg ;; -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) ac_prev=srcdir ;; -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) srcdir=$ac_optarg ;; -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ | --syscon | --sysco | --sysc | --sys | --sy) ac_prev=sysconfdir ;; -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) sysconfdir=$ac_optarg ;; -target | --target | --targe | --targ | --tar | --ta | --t) ac_prev=target_alias ;; -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) target_alias=$ac_optarg ;; -v | -verbose | --verbose | --verbos | --verbo | --verb) verbose=yes ;; -version | --version | --versio | --versi | --vers | -V) ac_init_version=: ;; -with-* | --with-*) ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid package name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "with_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval with_$ac_useropt=\$ac_optarg ;; -without-* | --without-*) ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid package name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "with_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval with_$ac_useropt=no ;; --x) # Obsolete; use --with-x. with_x=yes ;; -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ | --x-incl | --x-inc | --x-in | --x-i) ac_prev=x_includes ;; -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) x_includes=$ac_optarg ;; -x-libraries | --x-libraries | --x-librarie | --x-librari \ | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) ac_prev=x_libraries ;; -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) x_libraries=$ac_optarg ;; -*) as_fn_error $? "unrecognized option: \`$ac_option' Try \`$0 --help' for more information" ;; *=*) ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` # Reject names that are not valid shell variable names. case $ac_envvar in #( '' | [0-9]* | *[!_$as_cr_alnum]* ) as_fn_error $? "invalid variable name: \`$ac_envvar'" ;; esac eval $ac_envvar=\$ac_optarg export $ac_envvar ;; *) # FIXME: should be removed in autoconf 3.0. $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2 expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2 : "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}" ;; esac done if test -n "$ac_prev"; then ac_option=--`echo $ac_prev | sed 's/_/-/g'` as_fn_error $? "missing argument to $ac_option" fi if test -n "$ac_unrecognized_opts"; then case $enable_option_checking in no) ;; fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;; *) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;; esac fi # Check all directory arguments for consistency. for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \ datadir sysconfdir sharedstatedir localstatedir includedir \ oldincludedir docdir infodir htmldir dvidir pdfdir psdir \ libdir localedir mandir do eval ac_val=\$$ac_var # Remove trailing slashes. case $ac_val in */ ) ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'` eval $ac_var=\$ac_val;; esac # Be sure to have absolute directory names. case $ac_val in [\\/$]* | ?:[\\/]* ) continue;; NONE | '' ) case $ac_var in *prefix ) continue;; esac;; esac as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val" done # There might be people who depend on the old broken behavior: `$host' # used to hold the argument of --host etc. # FIXME: To remove some day. build=$build_alias host=$host_alias target=$target_alias # FIXME: To remove some day. if test "x$host_alias" != x; then if test "x$build_alias" = x; then cross_compiling=maybe elif test "x$build_alias" != "x$host_alias"; then cross_compiling=yes fi fi ac_tool_prefix= test -n "$host_alias" && ac_tool_prefix=$host_alias- test "$silent" = yes && exec 6>/dev/null ac_pwd=`pwd` && test -n "$ac_pwd" && ac_ls_di=`ls -di .` && ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` || as_fn_error $? "working directory cannot be determined" test "X$ac_ls_di" = "X$ac_pwd_ls_di" || as_fn_error $? "pwd does not report name of working directory" # Find the source files, if location was not specified. if test -z "$srcdir"; then ac_srcdir_defaulted=yes # Try the directory containing this script, then the parent directory. ac_confdir=`$as_dirname -- "$as_myself" || $as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_myself" : 'X\(//\)[^/]' \| \ X"$as_myself" : 'X\(//\)$' \| \ X"$as_myself" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$as_myself" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` srcdir=$ac_confdir if test ! -r "$srcdir/$ac_unique_file"; then srcdir=.. fi else ac_srcdir_defaulted=no fi if test ! -r "$srcdir/$ac_unique_file"; then test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .." as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir" fi ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work" ac_abs_confdir=`( cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg" pwd)` # When building in place, set srcdir=. if test "$ac_abs_confdir" = "$ac_pwd"; then srcdir=. fi # Remove unnecessary trailing slashes from srcdir. # Double slashes in file names in object file debugging info # mess up M-x gdb in Emacs. case $srcdir in */) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;; esac for ac_var in $ac_precious_vars; do eval ac_env_${ac_var}_set=\${${ac_var}+set} eval ac_env_${ac_var}_value=\$${ac_var} eval ac_cv_env_${ac_var}_set=\${${ac_var}+set} eval ac_cv_env_${ac_var}_value=\$${ac_var} done # # Report the --help message. # if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF \`configure' configures mock 1.1.33 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... To assign environment variables (e.g., CC, CFLAGS...), specify them as VAR=VALUE. See below for descriptions of some of the useful variables. Defaults for the options are specified in brackets. Configuration: -h, --help display this help and exit --help=short display options specific to this package --help=recursive display the short help of all the included packages -V, --version display version information and exit -q, --quiet, --silent do not print \`checking ...' messages --cache-file=FILE cache test results in FILE [disabled] -C, --config-cache alias for \`--cache-file=config.cache' -n, --no-create do not create output files --srcdir=DIR find the sources in DIR [configure dir or \`..'] Installation directories: --prefix=PREFIX install architecture-independent files in PREFIX [$ac_default_prefix] --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX [PREFIX] By default, \`make install' will install all the files in \`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify an installation prefix other than \`$ac_default_prefix' using \`--prefix', for instance \`--prefix=\$HOME'. For better control, use the options below. Fine tuning of the installation directories: --bindir=DIR user executables [EPREFIX/bin] --sbindir=DIR system admin executables [EPREFIX/sbin] --libexecdir=DIR program executables [EPREFIX/libexec] --sysconfdir=DIR read-only single-machine data [PREFIX/etc] --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] --localstatedir=DIR modifiable single-machine data [PREFIX/var] --libdir=DIR object code libraries [EPREFIX/lib] --includedir=DIR C header files [PREFIX/include] --oldincludedir=DIR C header files for non-gcc [/usr/include] --datarootdir=DIR read-only arch.-independent data root [PREFIX/share] --datadir=DIR read-only architecture-independent data [DATAROOTDIR] --infodir=DIR info documentation [DATAROOTDIR/info] --localedir=DIR locale-dependent data [DATAROOTDIR/locale] --mandir=DIR man documentation [DATAROOTDIR/man] --docdir=DIR documentation root [DATAROOTDIR/doc/mock] --htmldir=DIR html documentation [DOCDIR] --dvidir=DIR dvi documentation [DOCDIR] --pdfdir=DIR pdf documentation [DOCDIR] --psdir=DIR ps documentation [DOCDIR] _ACEOF cat <<\_ACEOF Program names: --program-prefix=PREFIX prepend PREFIX to installed program names --program-suffix=SUFFIX append SUFFIX to installed program names --program-transform-name=PROGRAM run sed PROGRAM on installed program names _ACEOF fi if test -n "$ac_init_help"; then case $ac_init_help in short | recursive ) echo "Configuration of mock 1.1.33:";; esac cat <<\_ACEOF Optional Features: --disable-option-checking ignore unrecognized --enable/--with options --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) --enable-FEATURE[=ARG] include FEATURE [ARG=yes] --enable-silent-rules less verbose build output (undo: "make V=1") --disable-silent-rules verbose build output (undo: "make V=0") --enable-maintainer-mode enable make rules and dependencies not useful (and sometimes confusing) to the casual installer Some influential environment variables: PYTHON the Python interpreter Use these variables to override the choices made by `configure' or to help it to find libraries and programs with nonstandard names/locations. Report bugs to the package provider. _ACEOF ac_status=$? fi if test "$ac_init_help" = "recursive"; then # If there are subdirs, report their specific --help. for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue test -d "$ac_dir" || { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } || continue ac_builddir=. case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` # A ".." for each directory in $ac_dir_suffix. ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` case $ac_top_builddir_sub in "") ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; esac ;; esac ac_abs_top_builddir=$ac_pwd ac_abs_builddir=$ac_pwd$ac_dir_suffix # for backward compatibility: ac_top_builddir=$ac_top_build_prefix case $srcdir in .) # We are building in place. ac_srcdir=. ac_top_srcdir=$ac_top_builddir_sub ac_abs_top_srcdir=$ac_pwd ;; [\\/]* | ?:[\\/]* ) # Absolute name. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ac_abs_top_srcdir=$srcdir ;; *) # Relative name. ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_build_prefix$srcdir ac_abs_top_srcdir=$ac_pwd/$srcdir ;; esac ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix cd "$ac_dir" || { ac_status=$?; continue; } # Check for guested configure. if test -f "$ac_srcdir/configure.gnu"; then echo && $SHELL "$ac_srcdir/configure.gnu" --help=recursive elif test -f "$ac_srcdir/configure"; then echo && $SHELL "$ac_srcdir/configure" --help=recursive else $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 fi || ac_status=$? cd "$ac_pwd" || { ac_status=$?; break; } done fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF mock configure 1.1.33 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. This configure script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it. _ACEOF exit fi ## ------------------------ ## ## Autoconf initialization. ## ## ------------------------ ## cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. It was created by mock $as_me 1.1.33, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ _ACEOF exec 5>>config.log { cat <<_ASUNAME ## --------- ## ## Platform. ## ## --------- ## hostname = `(hostname || uname -n) 2>/dev/null | sed 1q` uname -m = `(uname -m) 2>/dev/null || echo unknown` uname -r = `(uname -r) 2>/dev/null || echo unknown` uname -s = `(uname -s) 2>/dev/null || echo unknown` uname -v = `(uname -v) 2>/dev/null || echo unknown` /usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown` /bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown` /bin/arch = `(/bin/arch) 2>/dev/null || echo unknown` /usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown` /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown` /usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown` /bin/machine = `(/bin/machine) 2>/dev/null || echo unknown` /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown` /bin/universe = `(/bin/universe) 2>/dev/null || echo unknown` _ASUNAME as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. $as_echo "PATH: $as_dir" done IFS=$as_save_IFS } >&5 cat >&5 <<_ACEOF ## ----------- ## ## Core tests. ## ## ----------- ## _ACEOF # Keep a trace of the command line. # Strip out --no-create and --no-recursion so they do not pile up. # Strip out --silent because we don't want to record it for future runs. # Also quote any args containing shell meta-characters. # Make two passes to allow for proper duplicate-argument suppression. ac_configure_args= ac_configure_args0= ac_configure_args1= ac_must_keep_next=false for ac_pass in 1 2 do for ac_arg do case $ac_arg in -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil) continue ;; *\'*) ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; esac case $ac_pass in 1) as_fn_append ac_configure_args0 " '$ac_arg'" ;; 2) as_fn_append ac_configure_args1 " '$ac_arg'" if test $ac_must_keep_next = true; then ac_must_keep_next=false # Got value, back to normal. else case $ac_arg in *=* | --config-cache | -C | -disable-* | --disable-* \ | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \ | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \ | -with-* | --with-* | -without-* | --without-* | --x) case "$ac_configure_args0 " in "$ac_configure_args1"*" '$ac_arg' "* ) continue ;; esac ;; -* ) ac_must_keep_next=true ;; esac fi as_fn_append ac_configure_args " '$ac_arg'" ;; esac done done { ac_configure_args0=; unset ac_configure_args0;} { ac_configure_args1=; unset ac_configure_args1;} # When interrupted or exit'd, cleanup temporary files, and complete # config.log. We remove comments because anyway the quotes in there # would cause problems or look ugly. # WARNING: Use '\'' to represent an apostrophe within the trap. # WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug. trap 'exit_status=$? # Save into config.log some information that might help in debugging. { echo $as_echo "## ---------------- ## ## Cache variables. ## ## ---------------- ##" echo # The following way of writing the cache mishandles newlines in values, ( for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do eval ac_val=\$$ac_var case $ac_val in #( *${as_nl}*) case $ac_var in #( *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( *) { eval $ac_var=; unset $ac_var;} ;; esac ;; esac done (set) 2>&1 | case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #( *${as_nl}ac_space=\ *) sed -n \ "s/'\''/'\''\\\\'\'''\''/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p" ;; #( *) sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" ;; esac | sort ) echo $as_echo "## ----------------- ## ## Output variables. ## ## ----------------- ##" echo for ac_var in $ac_subst_vars do eval ac_val=\$$ac_var case $ac_val in *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac $as_echo "$ac_var='\''$ac_val'\''" done | sort echo if test -n "$ac_subst_files"; then $as_echo "## ------------------- ## ## File substitutions. ## ## ------------------- ##" echo for ac_var in $ac_subst_files do eval ac_val=\$$ac_var case $ac_val in *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac $as_echo "$ac_var='\''$ac_val'\''" done | sort echo fi if test -s confdefs.h; then $as_echo "## ----------- ## ## confdefs.h. ## ## ----------- ##" echo cat confdefs.h echo fi test "$ac_signal" != 0 && $as_echo "$as_me: caught signal $ac_signal" $as_echo "$as_me: exit $exit_status" } >&5 rm -f core *.core core.conftest.* && rm -f -r conftest* confdefs* conf$$* $ac_clean_files && exit $exit_status ' 0 for ac_signal in 1 2 13 15; do trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal done ac_signal=0 # confdefs.h avoids OS command line length limits that DEFS can exceed. rm -f -r conftest* confdefs.h $as_echo "/* confdefs.h */" > confdefs.h # Predefined preprocessor variables. cat >>confdefs.h <<_ACEOF #define PACKAGE_NAME "$PACKAGE_NAME" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_TARNAME "$PACKAGE_TARNAME" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_VERSION "$PACKAGE_VERSION" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_STRING "$PACKAGE_STRING" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_URL "$PACKAGE_URL" _ACEOF # Let the site file select an alternate cache file if it wants to. # Prefer an explicitly selected file to automatically selected ones. ac_site_file1=NONE ac_site_file2=NONE if test -n "$CONFIG_SITE"; then # We do not want a PATH search for config.site. case $CONFIG_SITE in #(( -*) ac_site_file1=./$CONFIG_SITE;; */*) ac_site_file1=$CONFIG_SITE;; *) ac_site_file1=./$CONFIG_SITE;; esac elif test "x$prefix" != xNONE; then ac_site_file1=$prefix/share/config.site ac_site_file2=$prefix/etc/config.site else ac_site_file1=$ac_default_prefix/share/config.site ac_site_file2=$ac_default_prefix/etc/config.site fi for ac_site_file in "$ac_site_file1" "$ac_site_file2" do test "x$ac_site_file" = xNONE && continue if test /dev/null != "$ac_site_file" && test -r "$ac_site_file"; then { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5 $as_echo "$as_me: loading site script $ac_site_file" >&6;} sed 's/^/| /' "$ac_site_file" >&5 . "$ac_site_file" \ || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "failed to load site script $ac_site_file See \`config.log' for more details" "$LINENO" 5; } fi done if test -r "$cache_file"; then # Some versions of bash will fail to source /dev/null (special files # actually), so we avoid doing that. DJGPP emulates it as a regular file. if test /dev/null != "$cache_file" && test -f "$cache_file"; then { $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5 $as_echo "$as_me: loading cache $cache_file" >&6;} case $cache_file in [\\/]* | ?:[\\/]* ) . "$cache_file";; *) . "./$cache_file";; esac fi else { $as_echo "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5 $as_echo "$as_me: creating cache $cache_file" >&6;} >$cache_file fi # Check that the precious variables saved in the cache have kept the same # value. ac_cache_corrupted=false for ac_var in $ac_precious_vars; do eval ac_old_set=\$ac_cv_env_${ac_var}_set eval ac_new_set=\$ac_env_${ac_var}_set eval ac_old_val=\$ac_cv_env_${ac_var}_value eval ac_new_val=\$ac_env_${ac_var}_value case $ac_old_set,$ac_new_set in set,) { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 $as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} ac_cache_corrupted=: ;; ,set) { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5 $as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} ac_cache_corrupted=: ;; ,);; *) if test "x$ac_old_val" != "x$ac_new_val"; then # differences in whitespace do not lead to failure. ac_old_val_w=`echo x $ac_old_val` ac_new_val_w=`echo x $ac_new_val` if test "$ac_old_val_w" != "$ac_new_val_w"; then { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5 $as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} ac_cache_corrupted=: else { $as_echo "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5 $as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;} eval $ac_var=\$ac_old_val fi { $as_echo "$as_me:${as_lineno-$LINENO}: former value: \`$ac_old_val'" >&5 $as_echo "$as_me: former value: \`$ac_old_val'" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: current value: \`$ac_new_val'" >&5 $as_echo "$as_me: current value: \`$ac_new_val'" >&2;} fi;; esac # Pass precious variables to config.status. if test "$ac_new_set" = set; then case $ac_new_val in *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; *) ac_arg=$ac_var=$ac_new_val ;; esac case " $ac_configure_args " in *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy. *) as_fn_append ac_configure_args " '$ac_arg'" ;; esac fi done if $ac_cache_corrupted; then { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5 $as_echo "$as_me: error: changes in the environment can compromise the build" >&2;} as_fn_error $? "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5 fi ## -------------------- ## ## Main body of script. ## ## -------------------- ## ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu temp_RELEASE_NAME=mock temp_RELEASE_MAJOR=1 temp_RELEASE_MINOR=1 temp_RELEASE_SUBLEVEL=33 temp_RELEASE_EXTRALEVEL= #################################### #AC_PREREQ(2.61) ac_aux_dir= for ac_dir in build "$srcdir"/build; do if test -f "$ac_dir/install-sh"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/install-sh -c" break elif test -f "$ac_dir/install.sh"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/install.sh -c" break elif test -f "$ac_dir/shtool"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/shtool install -c" break fi done if test -z "$ac_aux_dir"; then as_fn_error $? "cannot find install-sh, install.sh, or shtool in build \"$srcdir\"/build" "$LINENO" 5 fi # These three variables are undocumented and unsupported, # and are intended to be withdrawn in a future Autoconf release. # They can cause serious problems if a builder's source tree is in a directory # whose full name contains unusual characters. ac_config_guess="$SHELL $ac_aux_dir/config.guess" # Please don't use this var. ac_config_sub="$SHELL $ac_aux_dir/config.sub" # Please don't use this var. ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var. am__api_version='1.13' # Find a good install program. We prefer a C program (faster), # so one script is as good as another. But avoid the broken or # incompatible versions: # SysV /etc/install, /usr/sbin/install # SunOS /usr/etc/install # IRIX /sbin/install # AIX /bin/install # AmigaOS /C/install, which installs bootblocks on floppy discs # AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag # AFS /usr/afsws/bin/install, which mishandles nonexistent args # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" # OS/2's system install, which has a completely different semantic # ./install, which can be erroneously created by make from ./install.sh. # Reject install programs that cannot install multiple files. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5 $as_echo_n "checking for a BSD-compatible install... " >&6; } if test -z "$INSTALL"; then if ${ac_cv_path_install+:} false; then : $as_echo_n "(cached) " >&6 else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. # Account for people who put trailing slashes in PATH elements. case $as_dir/ in #(( ./ | .// | /[cC]/* | \ /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ ?:[\\/]os2[\\/]install[\\/]* | ?:[\\/]OS2[\\/]INSTALL[\\/]* | \ /usr/ucb/* ) ;; *) # OSF1 and SCO ODT 3.0 have their own names for install. # Don't use installbsd from OSF since it installs stuff as root # by default. for ac_prog in ginstall scoinst install; do for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then if test $ac_prog = install && grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # AIX install. It has an incompatible calling convention. : elif test $ac_prog = install && grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # program-specific install script used by HP pwplus--don't use. : else rm -rf conftest.one conftest.two conftest.dir echo one > conftest.one echo two > conftest.two mkdir conftest.dir if "$as_dir/$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" && test -s conftest.one && test -s conftest.two && test -s conftest.dir/conftest.one && test -s conftest.dir/conftest.two then ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" break 3 fi fi fi done done ;; esac done IFS=$as_save_IFS rm -rf conftest.one conftest.two conftest.dir fi if test "${ac_cv_path_install+set}" = set; then INSTALL=$ac_cv_path_install else # As a last resort, use the slow shell script. Don't cache a # value for INSTALL within a source directory, because that will # break other packages using the cache if that directory is # removed, or if the value is a relative name. INSTALL=$ac_install_sh fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5 $as_echo "$INSTALL" >&6; } # Use test -z because SunOS4 sh mishandles braces in ${var-val}. # It thinks the first close brace ends the variable substitution. test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}' test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether build environment is sane" >&5 $as_echo_n "checking whether build environment is sane... " >&6; } # Reject unsafe characters in $srcdir or the absolute working directory # name. Accept space and tab only in the latter. am_lf=' ' case `pwd` in *[\\\"\#\$\&\'\`$am_lf]*) as_fn_error $? "unsafe absolute working directory name" "$LINENO" 5;; esac case $srcdir in *[\\\"\#\$\&\'\`$am_lf\ \ ]*) as_fn_error $? "unsafe srcdir value: '$srcdir'" "$LINENO" 5;; esac # Do 'set' in a subshell so we don't clobber the current shell's # arguments. Must try -L first in case configure is actually a # symlink; some systems play weird games with the mod time of symlinks # (eg FreeBSD returns the mod time of the symlink's containing # directory). if ( am_has_slept=no for am_try in 1 2; do echo "timestamp, slept: $am_has_slept" > conftest.file set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` if test "$*" = "X"; then # -L didn't work. set X `ls -t "$srcdir/configure" conftest.file` fi if test "$*" != "X $srcdir/configure conftest.file" \ && test "$*" != "X conftest.file $srcdir/configure"; then # If neither matched, then we have a broken ls. This can happen # if, for instance, CONFIG_SHELL is bash and it inherits a # broken ls alias from the environment. This has actually # happened. Such a system could not be considered "sane". as_fn_error $? "ls -t appears to fail. Make sure there is not a broken alias in your environment" "$LINENO" 5 fi if test "$2" = conftest.file || test $am_try -eq 2; then break fi # Just in case. sleep 1 am_has_slept=yes done test "$2" = conftest.file ) then # Ok. : else as_fn_error $? "newly created file is older than distributed files! Check your system clock" "$LINENO" 5 fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } # If we didn't sleep, we still need to ensure time stamps of config.status and # generated files are strictly newer. am_sleep_pid= if grep 'slept: no' conftest.file >/dev/null 2>&1; then ( sleep 1 ) & am_sleep_pid=$! fi rm -f conftest.file test "$program_prefix" != NONE && program_transform_name="s&^&$program_prefix&;$program_transform_name" # Use a double $ so make ignores it. test "$program_suffix" != NONE && program_transform_name="s&\$&$program_suffix&;$program_transform_name" # Double any \ or $. # By default was `s,x,x', remove it if useless. ac_script='s/[\\$]/&&/g;s/;s,x,x,$//' program_transform_name=`$as_echo "$program_transform_name" | sed "$ac_script"` # expand $ac_aux_dir to an absolute path am_aux_dir=`cd $ac_aux_dir && pwd` if test x"${MISSING+set}" != xset; then case $am_aux_dir in *\ * | *\ *) MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;; *) MISSING="\${SHELL} $am_aux_dir/missing" ;; esac fi # Use eval to expand $SHELL if eval "$MISSING --is-lightweight"; then am_missing_run="$MISSING " else am_missing_run= { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: 'missing' script is too old or missing" >&5 $as_echo "$as_me: WARNING: 'missing' script is too old or missing" >&2;} fi if test x"${install_sh}" != xset; then case $am_aux_dir in *\ * | *\ *) install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; *) install_sh="\${SHELL} $am_aux_dir/install-sh" esac fi # Installed binaries are usually stripped using 'strip' when the user # run "make install-strip". However 'strip' might not be the right # tool to use in cross-compilation environments, therefore Automake # will honor the 'STRIP' environment variable to overrule this program. if test "$cross_compiling" != no; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. set dummy ${ac_tool_prefix}strip; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_STRIP+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$STRIP"; then ac_cv_prog_STRIP="$STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_STRIP="${ac_tool_prefix}strip" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi STRIP=$ac_cv_prog_STRIP if test -n "$STRIP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5 $as_echo "$STRIP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_STRIP"; then ac_ct_STRIP=$STRIP # Extract the first word of "strip", so it can be a program name with args. set dummy strip; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_STRIP+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_STRIP"; then ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_STRIP="strip" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP if test -n "$ac_ct_STRIP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5 $as_echo "$ac_ct_STRIP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_STRIP" = x; then STRIP=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac STRIP=$ac_ct_STRIP fi else STRIP="$ac_cv_prog_STRIP" fi fi INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a thread-safe mkdir -p" >&5 $as_echo_n "checking for a thread-safe mkdir -p... " >&6; } if test -z "$MKDIR_P"; then if ${ac_cv_path_mkdir+:} false; then : $as_echo_n "(cached) " >&6 else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/opt/sfw/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in mkdir gmkdir; do for ac_exec_ext in '' $ac_executable_extensions; do as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext" || continue case `"$as_dir/$ac_prog$ac_exec_ext" --version 2>&1` in #( 'mkdir (GNU coreutils) '* | \ 'mkdir (coreutils) '* | \ 'mkdir (fileutils) '4.1*) ac_cv_path_mkdir=$as_dir/$ac_prog$ac_exec_ext break 3;; esac done done done IFS=$as_save_IFS fi test -d ./--version && rmdir ./--version if test "${ac_cv_path_mkdir+set}" = set; then MKDIR_P="$ac_cv_path_mkdir -p" else # As a last resort, use the slow shell script. Don't cache a # value for MKDIR_P within a source directory, because that will # break other packages using the cache if that directory is # removed, or if the value is a relative name. MKDIR_P="$ac_install_sh -d" fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MKDIR_P" >&5 $as_echo "$MKDIR_P" >&6; } for ac_prog in gawk mawk nawk awk do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_AWK+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$AWK"; then ac_cv_prog_AWK="$AWK" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_AWK="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi AWK=$ac_cv_prog_AWK if test -n "$AWK"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5 $as_echo "$AWK" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$AWK" && break done { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5 $as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; } set x ${MAKE-make} ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` if eval \${ac_cv_prog_make_${ac_make}_set+:} false; then : $as_echo_n "(cached) " >&6 else cat >conftest.make <<\_ACEOF SHELL = /bin/sh all: @echo '@@@%%%=$(MAKE)=@@@%%%' _ACEOF # GNU make sometimes prints "make[1]: Entering ...", which would confuse us. case `${MAKE-make} -f conftest.make 2>/dev/null` in *@@@%%%=?*=@@@%%%*) eval ac_cv_prog_make_${ac_make}_set=yes;; *) eval ac_cv_prog_make_${ac_make}_set=no;; esac rm -f conftest.make fi if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } SET_MAKE= else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } SET_MAKE="MAKE=${MAKE-make}" fi rm -rf .tst 2>/dev/null mkdir .tst 2>/dev/null if test -d .tst; then am__leading_dot=. else am__leading_dot=_ fi rmdir .tst 2>/dev/null # Check whether --enable-silent-rules was given. if test "${enable_silent_rules+set}" = set; then : enableval=$enable_silent_rules; fi case $enable_silent_rules in # ((( yes) AM_DEFAULT_VERBOSITY=0;; no) AM_DEFAULT_VERBOSITY=1;; *) AM_DEFAULT_VERBOSITY=1;; esac am_make=${MAKE-make} { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $am_make supports nested variables" >&5 $as_echo_n "checking whether $am_make supports nested variables... " >&6; } if ${am_cv_make_support_nested_variables+:} false; then : $as_echo_n "(cached) " >&6 else if $as_echo 'TRUE=$(BAR$(V)) BAR0=false BAR1=true V=1 am__doit: @$(TRUE) .PHONY: am__doit' | $am_make -f - >/dev/null 2>&1; then am_cv_make_support_nested_variables=yes else am_cv_make_support_nested_variables=no fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_make_support_nested_variables" >&5 $as_echo "$am_cv_make_support_nested_variables" >&6; } if test $am_cv_make_support_nested_variables = yes; then AM_V='$(V)' AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)' else AM_V=$AM_DEFAULT_VERBOSITY AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY fi AM_BACKSLASH='\' if test "`cd $srcdir && pwd`" != "`pwd`"; then # Use -I$(srcdir) only when $(srcdir) != ., so that make's output # is not polluted with repeated "-I." am__isrc=' -I$(srcdir)' # test to see if srcdir already configured if test -f $srcdir/config.status; then as_fn_error $? "source directory already configured; run \"make distclean\" there first" "$LINENO" 5 fi fi # test whether we have cygpath if test -z "$CYGPATH_W"; then if (cygpath --version) >/dev/null 2>/dev/null; then CYGPATH_W='cygpath -w' else CYGPATH_W=echo fi fi # Define the identity of the package. PACKAGE='mock' VERSION='1.1.33' cat >>confdefs.h <<_ACEOF #define PACKAGE "$PACKAGE" _ACEOF cat >>confdefs.h <<_ACEOF #define VERSION "$VERSION" _ACEOF # Some tools Automake needs. ACLOCAL=${ACLOCAL-"${am_missing_run}aclocal-${am__api_version}"} AUTOCONF=${AUTOCONF-"${am_missing_run}autoconf"} AUTOMAKE=${AUTOMAKE-"${am_missing_run}automake-${am__api_version}"} AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"} MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"} # For better backward compatibility. To be removed once Automake 1.9.x # dies out for good. For more background, see: # # mkdir_p='$(MKDIR_P)' # We need awk for the "check" target. The system "awk" is bad on # some platforms. # Always define AMTAR for backward compatibility. Yes, it's still used # in the wild :-( We should find a proper way to deprecate it ... AMTAR='$${TAR-tar}' # We'll loop over all known methods to create a tar archive until one works. _am_tools='gnutar pax cpio none' am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -' { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable maintainer-specific portions of Makefiles" >&5 $as_echo_n "checking whether to enable maintainer-specific portions of Makefiles... " >&6; } # Check whether --enable-maintainer-mode was given. if test "${enable_maintainer_mode+set}" = set; then : enableval=$enable_maintainer_mode; USE_MAINTAINER_MODE=$enableval else USE_MAINTAINER_MODE=no fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $USE_MAINTAINER_MODE" >&5 $as_echo "$USE_MAINTAINER_MODE" >&6; } if test $USE_MAINTAINER_MODE = yes; then MAINTAINER_MODE_TRUE= MAINTAINER_MODE_FALSE='#' else MAINTAINER_MODE_TRUE='#' MAINTAINER_MODE_FALSE= fi MAINT=$MAINTAINER_MODE_TRUE # Checks for programs. # automake macros # Find any Python interpreter. if test -z "$PYTHON"; then for ac_prog in python python2 python3 python3.3 python3.2 python3.1 python3.0 python2.7 python2.6 python2.5 python2.4 python2.3 python2.2 python2.1 python2.0 do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_PYTHON+:} false; then : $as_echo_n "(cached) " >&6 else case $PYTHON in [\\/]* | ?:[\\/]*) ac_cv_path_PYTHON="$PYTHON" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_PYTHON="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi PYTHON=$ac_cv_path_PYTHON if test -n "$PYTHON"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PYTHON" >&5 $as_echo "$PYTHON" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$PYTHON" && break done test -n "$PYTHON" || PYTHON=":" fi am_display_PYTHON=python if test "$PYTHON" = :; then as_fn_error $? "no suitable Python interpreter found" "$LINENO" 5 else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $am_display_PYTHON version" >&5 $as_echo_n "checking for $am_display_PYTHON version... " >&6; } if ${am_cv_python_version+:} false; then : $as_echo_n "(cached) " >&6 else am_cv_python_version=`$PYTHON -c "import sys; sys.stdout.write(sys.version[:3])"` fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_python_version" >&5 $as_echo "$am_cv_python_version" >&6; } PYTHON_VERSION=$am_cv_python_version PYTHON_PREFIX='${prefix}' PYTHON_EXEC_PREFIX='${exec_prefix}' { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $am_display_PYTHON platform" >&5 $as_echo_n "checking for $am_display_PYTHON platform... " >&6; } if ${am_cv_python_platform+:} false; then : $as_echo_n "(cached) " >&6 else am_cv_python_platform=`$PYTHON -c "import sys; sys.stdout.write(sys.platform)"` fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_python_platform" >&5 $as_echo "$am_cv_python_platform" >&6; } PYTHON_PLATFORM=$am_cv_python_platform # Just factor out some code duplication. am_python_setup_sysconfig="\ import sys # Prefer sysconfig over distutils.sysconfig, for better compatibility # with python 3.x. See automake bug#10227. try: import sysconfig except ImportError: can_use_sysconfig = 0 else: can_use_sysconfig = 1 # Can't use sysconfig in CPython 2.7, since it's broken in virtualenvs: # try: from platform import python_implementation if python_implementation() == 'CPython' and sys.version[:3] == '2.7': can_use_sysconfig = 0 except ImportError: pass" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $am_display_PYTHON script directory" >&5 $as_echo_n "checking for $am_display_PYTHON script directory... " >&6; } if ${am_cv_python_pythondir+:} false; then : $as_echo_n "(cached) " >&6 else if test "x$prefix" = xNONE then am_py_prefix=$ac_default_prefix else am_py_prefix=$prefix fi am_cv_python_pythondir=`$PYTHON -c " $am_python_setup_sysconfig if can_use_sysconfig: sitedir = sysconfig.get_path('purelib', vars={'base':'$am_py_prefix'}) else: from distutils import sysconfig sitedir = sysconfig.get_python_lib(0, 0, prefix='$am_py_prefix') sys.stdout.write(sitedir)"` case $am_cv_python_pythondir in $am_py_prefix*) am__strip_prefix=`echo "$am_py_prefix" | sed 's|.|.|g'` am_cv_python_pythondir=`echo "$am_cv_python_pythondir" | sed "s,^$am__strip_prefix,$PYTHON_PREFIX,"` ;; *) case $am_py_prefix in /usr|/System*) ;; *) am_cv_python_pythondir=$PYTHON_PREFIX/lib/python$PYTHON_VERSION/site-packages ;; esac ;; esac fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_python_pythondir" >&5 $as_echo "$am_cv_python_pythondir" >&6; } pythondir=$am_cv_python_pythondir pkgpythondir=\${pythondir}/$PACKAGE { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $am_display_PYTHON extension module directory" >&5 $as_echo_n "checking for $am_display_PYTHON extension module directory... " >&6; } if ${am_cv_python_pyexecdir+:} false; then : $as_echo_n "(cached) " >&6 else if test "x$exec_prefix" = xNONE then am_py_exec_prefix=$am_py_prefix else am_py_exec_prefix=$exec_prefix fi am_cv_python_pyexecdir=`$PYTHON -c " $am_python_setup_sysconfig if can_use_sysconfig: sitedir = sysconfig.get_path('platlib', vars={'platbase':'$am_py_prefix'}) else: from distutils import sysconfig sitedir = sysconfig.get_python_lib(1, 0, prefix='$am_py_prefix') sys.stdout.write(sitedir)"` case $am_cv_python_pyexecdir in $am_py_exec_prefix*) am__strip_prefix=`echo "$am_py_exec_prefix" | sed 's|.|.|g'` am_cv_python_pyexecdir=`echo "$am_cv_python_pyexecdir" | sed "s,^$am__strip_prefix,$PYTHON_EXEC_PREFIX,"` ;; *) case $am_py_exec_prefix in /usr|/System*) ;; *) am_cv_python_pyexecdir=$PYTHON_EXEC_PREFIX/lib/python$PYTHON_VERSION/site-packages ;; esac ;; esac fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_python_pyexecdir" >&5 $as_echo "$am_cv_python_pyexecdir" >&6; } pyexecdir=$am_cv_python_pyexecdir pkgpyexecdir=\${pyexecdir}/$PACKAGE fi # Checks for header files. # Checks for typedefs, structures, and compiler characteristics. # Checks for library functions. # update 'real' variables from the temp variable names. # do this at the end of the file so that they A) are not overwitten by other # autoconf stuff, and B) so that user can override on cmdline for i in RELEASE_NAME RELEASE_MAJOR RELEASE_MINOR RELEASE_SUBLEVEL RELEASE_EXTRALEVEL do varname=temp_$i if test -z "${!i}"; then eval $i=${!varname}; export $i fi done if test -z "$RELEASE_RPM_EXTRALEVEL"; then if test -z "$RELEASE_EXTRALEVEL"; then RELEASE_RPM_EXTRALEVEL=%{nil} else RELEASE_RPM_EXTRALEVEL=$RELEASE_EXTRALEVEL fi fi PACKAGE_VERSION=`echo ${RELEASE_MAJOR}.${RELEASE_MINOR}.${RELEASE_SUBLEVEL}${RELEASE_EXTRALEVEL}` PACKAGE_STRING=`echo ${RELEASE_NAME} ${RELEASE_MAJOR}.${RELEASE_MINOR}.${RELEASE_SUBLEVEL}${RELEASE_EXTRALEVEL}` VERSION=$PACKAGE_VERSION if test -e /usr/bin/rpmbuild-md5; then USE_MD5_TRUE= USE_MD5_FALSE='#' else USE_MD5_TRUE='#' USE_MD5_FALSE= fi # generate files and exit #AC_CONFIG_FILES([ Makefile ${PACKAGE_NAME}.spec ]) ac_config_files="$ac_config_files Makefile mock.spec" cat >confcache <<\_ACEOF # This file is a shell script that caches the results of configure # tests run on this system so they can be shared between configure # scripts and configure runs, see configure's option --config-cache. # It is not useful on other systems. If it contains results you don't # want to keep, you may remove or edit it. # # config.status only pays attention to the cache file if you give it # the --recheck option to rerun configure. # # `ac_cv_env_foo' variables (set or unset) will be overridden when # loading this file, other *unset* `ac_cv_foo' will be assigned the # following values. _ACEOF # The following way of writing the cache mishandles newlines in values, # but we know of no workaround that is simple, portable, and efficient. # So, we kill variables containing newlines. # Ultrix sh set writes to stderr and can't be redirected directly, # and sets the high bit in the cache file unless we assign to the vars. ( for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do eval ac_val=\$$ac_var case $ac_val in #( *${as_nl}*) case $ac_var in #( *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( *) { eval $ac_var=; unset $ac_var;} ;; esac ;; esac done (set) 2>&1 | case $as_nl`(ac_space=' '; set) 2>&1` in #( *${as_nl}ac_space=\ *) # `set' does not quote correctly, so add quotes: double-quote # substitution turns \\\\ into \\, and sed turns \\ into \. sed -n \ "s/'/'\\\\''/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" ;; #( *) # `set' quotes correctly as required by POSIX, so do not add quotes. sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" ;; esac | sort ) | sed ' /^ac_cv_env_/b end t clear :clear s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ t end s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ :end' >>confcache if diff "$cache_file" confcache >/dev/null 2>&1; then :; else if test -w "$cache_file"; then if test "x$cache_file" != "x/dev/null"; then { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5 $as_echo "$as_me: updating cache $cache_file" >&6;} if test ! -f "$cache_file" || test -h "$cache_file"; then cat confcache >"$cache_file" else case $cache_file in #( */* | ?:*) mv -f confcache "$cache_file"$$ && mv -f "$cache_file"$$ "$cache_file" ;; #( *) mv -f confcache "$cache_file" ;; esac fi fi else { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5 $as_echo "$as_me: not updating unwritable cache $cache_file" >&6;} fi fi rm -f confcache test "x$prefix" = xNONE && prefix=$ac_default_prefix # Let make expand exec_prefix. test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' # Transform confdefs.h into DEFS. # Protect against shell expansion while executing Makefile rules. # Protect against Makefile macro expansion. # # If the first sed substitution is executed (which looks for macros that # take arguments), then branch to the quote section. Otherwise, # look for a macro that doesn't take arguments. ac_script=' :mline /\\$/{ N s,\\\n,, b mline } t clear :clear s/^[ ]*#[ ]*define[ ][ ]*\([^ (][^ (]*([^)]*)\)[ ]*\(.*\)/-D\1=\2/g t quote s/^[ ]*#[ ]*define[ ][ ]*\([^ ][^ ]*\)[ ]*\(.*\)/-D\1=\2/g t quote b any :quote s/[ `~#$^&*(){}\\|;'\''"<>?]/\\&/g s/\[/\\&/g s/\]/\\&/g s/\$/$$/g H :any ${ g s/^\n// s/\n/ /g p } ' DEFS=`sed -n "$ac_script" confdefs.h` ac_libobjs= ac_ltlibobjs= U= for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue # 1. Remove the extension, and $U if already installed. ac_script='s/\$U\././;s/\.o$//;s/\.obj$//' ac_i=`$as_echo "$ac_i" | sed "$ac_script"` # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR # will be set to the directory where LIBOBJS objects are built. as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext" as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo' done LIBOBJS=$ac_libobjs LTLIBOBJS=$ac_ltlibobjs { $as_echo "$as_me:${as_lineno-$LINENO}: checking that generated files are newer than configure" >&5 $as_echo_n "checking that generated files are newer than configure... " >&6; } if test -n "$am_sleep_pid"; then # Hide warnings about reused PIDs. wait $am_sleep_pid 2>/dev/null fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: done" >&5 $as_echo "done" >&6; } if test -z "${MAINTAINER_MODE_TRUE}" && test -z "${MAINTAINER_MODE_FALSE}"; then as_fn_error $? "conditional \"MAINTAINER_MODE\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${USE_MD5_TRUE}" && test -z "${USE_MD5_FALSE}"; then as_fn_error $? "conditional \"USE_MD5\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi : "${CONFIG_STATUS=./config.status}" ac_write_fail=0 ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files $CONFIG_STATUS" { $as_echo "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5 $as_echo "$as_me: creating $CONFIG_STATUS" >&6;} as_write_fail=0 cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1 #! $SHELL # Generated by $as_me. # Run this file to recreate the current configuration. # Compiler output produced by configure, useful for debugging # configure, is in config.log if it exists. debug=false ac_cs_recheck=false ac_cs_silent=false SHELL=\${CONFIG_SHELL-$SHELL} export SHELL _ASEOF cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1 ## -------------------- ## ## M4sh Initialization. ## ## -------------------- ## # Be more Bourne compatible DUALCASE=1; export DUALCASE # for MKS sh if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in #( *posix*) : set -o posix ;; #( *) : ;; esac fi as_nl=' ' export as_nl # Printing a long string crashes Solaris 7 /usr/bin/printf. as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo # Prefer a ksh shell builtin over an external printf program on Solaris, # but without wasting forks for bash or zsh. if test -z "$BASH_VERSION$ZSH_VERSION" \ && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='print -r --' as_echo_n='print -rn --' elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='printf %s\n' as_echo_n='printf %s' else if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' as_echo_n='/usr/ucb/echo -n' else as_echo_body='eval expr "X$1" : "X\\(.*\\)"' as_echo_n_body='eval arg=$1; case $arg in #( *"$as_nl"*) expr "X$arg" : "X\\(.*\\)$as_nl"; arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; esac; expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" ' export as_echo_n_body as_echo_n='sh -c $as_echo_n_body as_echo' fi export as_echo_body as_echo='sh -c $as_echo_body as_echo' fi # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then PATH_SEPARATOR=: (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || PATH_SEPARATOR=';' } fi # IFS # We need space, tab and new line, in precisely that order. Quoting is # there to prevent editors from complaining about space-tab. # (If _AS_PATH_WALK were called with IFS unset, it would disable word # splitting by setting IFS to empty value.) IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. as_myself= case $0 in #(( *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break done IFS=$as_save_IFS ;; esac # We did not find ourselves, most probably we were run as `sh COMMAND' # in which case we are not to be found in the path. if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 exit 1 fi # Unset variables that we do not need and which cause bugs (e.g. in # pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" # suppresses any "Segmentation fault" message there. '((' could # trigger a bug in pdksh 5.2.14. for as_var in BASH_ENV ENV MAIL MAILPATH do eval test x\${$as_var+set} = xset \ && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : done PS1='$ ' PS2='> ' PS4='+ ' # NLS nuisances. LC_ALL=C export LC_ALL LANGUAGE=C export LANGUAGE # CDPATH. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH # as_fn_error STATUS ERROR [LINENO LOG_FD] # ---------------------------------------- # Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are # provided, also output the error to LOG_FD, referencing LINENO. Then exit the # script with STATUS, using 1 if that was 0. as_fn_error () { as_status=$1; test $as_status -eq 0 && as_status=1 if test "$4"; then as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 fi $as_echo "$as_me: error: $2" >&2 as_fn_exit $as_status } # as_fn_error # as_fn_set_status STATUS # ----------------------- # Set $? to STATUS, without forking. as_fn_set_status () { return $1 } # as_fn_set_status # as_fn_exit STATUS # ----------------- # Exit the shell with STATUS, even in a "trap 0" or "set -e" context. as_fn_exit () { set +e as_fn_set_status $1 exit $1 } # as_fn_exit # as_fn_unset VAR # --------------- # Portably unset VAR. as_fn_unset () { { eval $1=; unset $1;} } as_unset=as_fn_unset # as_fn_append VAR VALUE # ---------------------- # Append the text in VALUE to the end of the definition contained in VAR. Take # advantage of any shell optimizations that allow amortized linear growth over # repeated appends, instead of the typical quadratic growth present in naive # implementations. if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : eval 'as_fn_append () { eval $1+=\$2 }' else as_fn_append () { eval $1=\$$1\$2 } fi # as_fn_append # as_fn_arith ARG... # ------------------ # Perform arithmetic evaluation on the ARGs, and store the result in the # global $as_val. Take advantage of shells that can avoid forks. The arguments # must be portable across $(()) and expr. if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : eval 'as_fn_arith () { as_val=$(( $* )) }' else as_fn_arith () { as_val=`expr "$@" || test $? -eq 1` } fi # as_fn_arith if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then as_basename=basename else as_basename=false fi if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then as_dirname=dirname else as_dirname=false fi as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || $as_echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q } /^X\/\(\/\/\)$/{ s//\1/ q } /^X\/\(\/\).*/{ s//\1/ q } s/.*/./; q'` # Avoid depending upon Character Ranges. as_cr_letters='abcdefghijklmnopqrstuvwxyz' as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits ECHO_C= ECHO_N= ECHO_T= case `echo -n x` in #((((( -n*) case `echo 'xy\c'` in *c*) ECHO_T=' ';; # ECHO_T is single tab character. xy) ECHO_C='\c';; *) echo `echo ksh88 bug on AIX 6.1` > /dev/null ECHO_T=' ';; esac;; *) ECHO_N='-n';; esac rm -f conf$$ conf$$.exe conf$$.file if test -d conf$$.dir; then rm -f conf$$.dir/conf$$.file else rm -f conf$$.dir mkdir conf$$.dir 2>/dev/null fi if (echo >conf$$.file) 2>/dev/null; then if ln -s conf$$.file conf$$ 2>/dev/null; then as_ln_s='ln -s' # ... but there are two gotchas: # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. # In both cases, we have to default to `cp -pR'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || as_ln_s='cp -pR' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -pR' fi else as_ln_s='cp -pR' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null # as_fn_mkdir_p # ------------- # Create "$as_dir" as a directory, including parents if necessary. as_fn_mkdir_p () { case $as_dir in #( -*) as_dir=./$as_dir;; esac test -d "$as_dir" || eval $as_mkdir_p || { as_dirs= while :; do case $as_dir in #( *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( *) as_qdir=$as_dir;; esac as_dirs="'$as_qdir' $as_dirs" as_dir=`$as_dirname -- "$as_dir" || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` test -d "$as_dir" && break done test -z "$as_dirs" || eval "mkdir $as_dirs" } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" } # as_fn_mkdir_p if mkdir -p . 2>/dev/null; then as_mkdir_p='mkdir -p "$as_dir"' else test -d ./-p && rmdir ./-p as_mkdir_p=false fi # as_fn_executable_p FILE # ----------------------- # Test if FILE is an executable regular file. as_fn_executable_p () { test -f "$1" && test -x "$1" } # as_fn_executable_p as_test_x='test -x' as_executable_p=as_fn_executable_p # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" # Sed expression to map a string onto a valid variable name. as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" exec 6>&1 ## ----------------------------------- ## ## Main body of $CONFIG_STATUS script. ## ## ----------------------------------- ## _ASEOF test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1 cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # Save the log message, to keep $0 and so on meaningful, and to # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" This file was extended by mock $as_me 1.1.33, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES CONFIG_HEADERS = $CONFIG_HEADERS CONFIG_LINKS = $CONFIG_LINKS CONFIG_COMMANDS = $CONFIG_COMMANDS $ $0 $@ on `(hostname || uname -n) 2>/dev/null | sed 1q` " _ACEOF case $ac_config_files in *" "*) set x $ac_config_files; shift; ac_config_files=$*;; esac cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 # Files that config.status was made for. config_files="$ac_config_files" _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 ac_cs_usage="\ \`$as_me' instantiates files and other configuration actions from templates according to the current configuration. Unless the files and actions are specified as TAGs, all are instantiated by default. Usage: $0 [OPTION]... [TAG]... -h, --help print this help, then exit -V, --version print version number and configuration settings, then exit --config print configuration, then exit -q, --quiet, --silent do not print progress messages -d, --debug don't remove temporary files --recheck update $as_me by reconfiguring in the same conditions --file=FILE[:TEMPLATE] instantiate the configuration file FILE Configuration files: $config_files Report bugs to the package provider." _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ mock config.status 1.1.33 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" Copyright (C) 2012 Free Software Foundation, Inc. This config.status script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it." ac_pwd='$ac_pwd' srcdir='$srcdir' INSTALL='$INSTALL' MKDIR_P='$MKDIR_P' AWK='$AWK' test -n "\$AWK" || AWK=awk _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # The default lists apply if the user does not specify any file. ac_need_defaults=: while test $# != 0 do case $1 in --*=?*) ac_option=`expr "X$1" : 'X\([^=]*\)='` ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'` ac_shift=: ;; --*=) ac_option=`expr "X$1" : 'X\([^=]*\)='` ac_optarg= ac_shift=: ;; *) ac_option=$1 ac_optarg=$2 ac_shift=shift ;; esac case $ac_option in # Handling of the options. -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) ac_cs_recheck=: ;; --version | --versio | --versi | --vers | --ver | --ve | --v | -V ) $as_echo "$ac_cs_version"; exit ;; --config | --confi | --conf | --con | --co | --c ) $as_echo "$ac_cs_config"; exit ;; --debug | --debu | --deb | --de | --d | -d ) debug=: ;; --file | --fil | --fi | --f ) $ac_shift case $ac_optarg in *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; '') as_fn_error $? "missing file argument" ;; esac as_fn_append CONFIG_FILES " '$ac_optarg'" ac_need_defaults=false;; --he | --h | --help | --hel | -h ) $as_echo "$ac_cs_usage"; exit ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil | --si | --s) ac_cs_silent=: ;; # This is an error. -*) as_fn_error $? "unrecognized option: \`$1' Try \`$0 --help' for more information." ;; *) as_fn_append ac_config_targets " $1" ac_need_defaults=false ;; esac shift done ac_configure_extra_args= if $ac_cs_silent; then exec 6>/dev/null ac_configure_extra_args="$ac_configure_extra_args --silent" fi _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 if \$ac_cs_recheck; then set X $SHELL '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion shift \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6 CONFIG_SHELL='$SHELL' export CONFIG_SHELL exec "\$@" fi _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 exec 5>>config.log { echo sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX ## Running $as_me. ## _ASBOX $as_echo "$ac_log" } >&5 _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # Handling of arguments. for ac_config_target in $ac_config_targets do case $ac_config_target in "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; "mock.spec") CONFIG_FILES="$CONFIG_FILES mock.spec" ;; *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;; esac done # If the user did not use the arguments to specify the items to instantiate, # then the envvar interface is used. Set only those that are not. # We use the long form for the default assignment because of an extremely # bizarre bug on SunOS 4.1.3. if $ac_need_defaults; then test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files fi # Have a temporary directory for convenience. Make it in the build tree # simply because there is no reason against having it here, and in addition, # creating and moving files from /tmp can sometimes cause problems. # Hook for its removal unless debugging. # Note that there is a small window in which the directory will not be cleaned: # after its creation but before its name has been assigned to `$tmp'. $debug || { tmp= ac_tmp= trap 'exit_status=$? : "${ac_tmp:=$tmp}" { test ! -d "$ac_tmp" || rm -fr "$ac_tmp"; } && exit $exit_status ' 0 trap 'as_fn_exit 1' 1 2 13 15 } # Create a (secure) tmp directory for tmp files. { tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` && test -d "$tmp" } || { tmp=./conf$$-$RANDOM (umask 077 && mkdir "$tmp") } || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5 ac_tmp=$tmp # Set up the scripts for CONFIG_FILES section. # No need to generate them if there are no CONFIG_FILES. # This happens for instance with `./config.status config.h'. if test -n "$CONFIG_FILES"; then ac_cr=`echo X | tr X '\015'` # On cygwin, bash can eat \r inside `` if the user requested igncr. # But we know of no other shell where ac_cr would be empty at this # point, so we can use a bashism as a fallback. if test "x$ac_cr" = x; then eval ac_cr=\$\'\\r\' fi ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' /dev/null` if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then ac_cs_awk_cr='\\r' else ac_cs_awk_cr=$ac_cr fi echo 'BEGIN {' >"$ac_tmp/subs1.awk" && _ACEOF { echo "cat >conf$$subs.awk <<_ACEOF" && echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' && echo "_ACEOF" } >conf$$subs.sh || as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'` ac_delim='%!_!# ' for ac_last_try in false false false false false :; do . ./conf$$subs.sh || as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X` if test $ac_delim_n = $ac_delim_num; then break elif $ac_last_try; then as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 else ac_delim="$ac_delim!$ac_delim _$ac_delim!! " fi done rm -f conf$$subs.sh cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK && _ACEOF sed -n ' h s/^/S["/; s/!.*/"]=/ p g s/^[^!]*!// :repl t repl s/'"$ac_delim"'$// t delim :nl h s/\(.\{148\}\)..*/\1/ t more1 s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/ p n b repl :more1 s/["\\]/\\&/g; s/^/"/; s/$/"\\/ p g s/.\{148\}// t nl :delim h s/\(.\{148\}\)..*/\1/ t more2 s/["\\]/\\&/g; s/^/"/; s/$/"/ p b :more2 s/["\\]/\\&/g; s/^/"/; s/$/"\\/ p g s/.\{148\}// t delim ' >$CONFIG_STATUS || ac_write_fail=1 rm -f conf$$subs.awk cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 _ACAWK cat >>"\$ac_tmp/subs1.awk" <<_ACAWK && for (key in S) S_is_set[key] = 1 FS = "" } { line = $ 0 nfields = split(line, field, "@") substed = 0 len = length(field[1]) for (i = 2; i < nfields; i++) { key = field[i] keylen = length(key) if (S_is_set[key]) { value = S[key] line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3) len += length(value) + length(field[++i]) substed = 1 } else len += 1 + keylen } print line } _ACAWK _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g" else cat fi < "$ac_tmp/subs1.awk" > "$ac_tmp/subs.awk" \ || as_fn_error $? "could not setup config files machinery" "$LINENO" 5 _ACEOF # VPATH may cause trouble with some makes, so we remove sole $(srcdir), # ${srcdir} and @srcdir@ entries from VPATH if srcdir is ".", strip leading and # trailing colons and then remove the whole line if VPATH becomes empty # (actually we leave an empty line to preserve line numbers). if test "x$srcdir" = x.; then ac_vpsub='/^[ ]*VPATH[ ]*=[ ]*/{ h s/// s/^/:/ s/[ ]*$/:/ s/:\$(srcdir):/:/g s/:\${srcdir}:/:/g s/:@srcdir@:/:/g s/^:*// s/:*$// x s/\(=[ ]*\).*/\1/ G s/\n// s/^[^=]*=[ ]*$// }' fi cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 fi # test -n "$CONFIG_FILES" eval set X " :F $CONFIG_FILES " shift for ac_tag do case $ac_tag in :[FHLC]) ac_mode=$ac_tag; continue;; esac case $ac_mode$ac_tag in :[FHL]*:*);; :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;; :[FH]-) ac_tag=-:-;; :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; esac ac_save_IFS=$IFS IFS=: set x $ac_tag IFS=$ac_save_IFS shift ac_file=$1 shift case $ac_mode in :L) ac_source=$1;; :[FH]) ac_file_inputs= for ac_f do case $ac_f in -) ac_f="$ac_tmp/stdin";; *) # Look for the file first in the build tree, then in the source tree # (if the path is not absolute). The absolute path cannot be DOS-style, # because $ac_f cannot contain `:'. test -f "$ac_f" || case $ac_f in [\\/$]*) false;; *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; esac || as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;; esac case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac as_fn_append ac_file_inputs " '$ac_f'" done # Let's still pretend it is `configure' which instantiates (i.e., don't # use $as_me), people would be surprised to read: # /* config.h. Generated by config.status. */ configure_input='Generated from '` $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g' `' by configure.' if test x"$ac_file" != x-; then configure_input="$ac_file. $configure_input" { $as_echo "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5 $as_echo "$as_me: creating $ac_file" >&6;} fi # Neutralize special characters interpreted by sed in replacement strings. case $configure_input in #( *\&* | *\|* | *\\* ) ac_sed_conf_input=`$as_echo "$configure_input" | sed 's/[\\\\&|]/\\\\&/g'`;; #( *) ac_sed_conf_input=$configure_input;; esac case $ac_tag in *:-:* | *:-) cat >"$ac_tmp/stdin" \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; esac ;; esac ac_dir=`$as_dirname -- "$ac_file" || $as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$ac_file" : 'X\(//\)[^/]' \| \ X"$ac_file" : 'X\(//\)$' \| \ X"$ac_file" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$ac_file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` as_dir="$ac_dir"; as_fn_mkdir_p ac_builddir=. case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` # A ".." for each directory in $ac_dir_suffix. ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` case $ac_top_builddir_sub in "") ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; esac ;; esac ac_abs_top_builddir=$ac_pwd ac_abs_builddir=$ac_pwd$ac_dir_suffix # for backward compatibility: ac_top_builddir=$ac_top_build_prefix case $srcdir in .) # We are building in place. ac_srcdir=. ac_top_srcdir=$ac_top_builddir_sub ac_abs_top_srcdir=$ac_pwd ;; [\\/]* | ?:[\\/]* ) # Absolute name. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ac_abs_top_srcdir=$srcdir ;; *) # Relative name. ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_build_prefix$srcdir ac_abs_top_srcdir=$ac_pwd/$srcdir ;; esac ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix case $ac_mode in :F) # # CONFIG_FILE # case $INSTALL in [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;; *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;; esac ac_MKDIR_P=$MKDIR_P case $MKDIR_P in [\\/$]* | ?:[\\/]* ) ;; */*) ac_MKDIR_P=$ac_top_build_prefix$MKDIR_P ;; esac _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # If the template does not know about datarootdir, expand it. # FIXME: This hack should be removed a few years after 2.60. ac_datarootdir_hack=; ac_datarootdir_seen= ac_sed_dataroot=' /datarootdir/ { p q } /@datadir@/p /@docdir@/p /@infodir@/p /@localedir@/p /@mandir@/p' case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in *datarootdir*) ac_datarootdir_seen=yes;; *@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 $as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;} _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_datarootdir_hack=' s&@datadir@&$datadir&g s&@docdir@&$docdir&g s&@infodir@&$infodir&g s&@localedir@&$localedir&g s&@mandir@&$mandir&g s&\\\${datarootdir}&$datarootdir&g' ;; esac _ACEOF # Neutralize VPATH when `$srcdir' = `.'. # Shell code in configure.ac might set extrasub. # FIXME: do we really want to maintain this feature? cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_sed_extra="$ac_vpsub $extrasub _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 :t /@[a-zA-Z_][a-zA-Z_0-9]*@/!b s|@configure_input@|$ac_sed_conf_input|;t t s&@top_builddir@&$ac_top_builddir_sub&;t t s&@top_build_prefix@&$ac_top_build_prefix&;t t s&@srcdir@&$ac_srcdir&;t t s&@abs_srcdir@&$ac_abs_srcdir&;t t s&@top_srcdir@&$ac_top_srcdir&;t t s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t s&@builddir@&$ac_builddir&;t t s&@abs_builddir@&$ac_abs_builddir&;t t s&@abs_top_builddir@&$ac_abs_top_builddir&;t t s&@INSTALL@&$ac_INSTALL&;t t s&@MKDIR_P@&$ac_MKDIR_P&;t t $ac_datarootdir_hack " eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$ac_tmp/subs.awk" \ >$ac_tmp/out || as_fn_error $? "could not create $ac_file" "$LINENO" 5 test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } && { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' \ "$ac_tmp/out"`; test -z "$ac_out"; } && { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined" >&5 $as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined" >&2;} rm -f "$ac_tmp/stdin" case $ac_file in -) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";; *) rm -f "$ac_file" && mv "$ac_tmp/out" "$ac_file";; esac \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; esac done # for ac_tag as_fn_exit 0 _ACEOF ac_clean_files=$ac_clean_files_save test $ac_write_fail = 0 || as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5 # configure is writing to config.log, and then calls config.status. # config.status does its own redirection, appending to config.log. # Unfortunately, on DOS this fails, as config.log is still kept open # by configure, so config.status won't be able to write to it; its # output is simply discarded. So we exec the FD to /dev/null, # effectively closing config.log, so it can be properly (re)opened and # appended to by config.status. When coming back to configure, we # need to make the FD available again. if test "$no_create" != yes; then ac_cs_success=: ac_config_status_args= test "$silent" = yes && ac_config_status_args="$ac_config_status_args --quiet" exec 5>/dev/null $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false exec 5>>config.log # Use ||, not &&, to avoid exiting from the if with $? = 1, which # would make configure fail if this is the last instruction. $ac_cs_success || as_fn_exit 1 fi if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5 $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;} fi mock-1.1.33/AUTHORS0000664001204700120500000000443212205226135010520 00000000000000Author: Alan Franzoni Author: Alfred Author: Chris St Pierre Author: Clark Williams Author: Clark Williams Author: Clark Williams Author: Colin Walters Author: Dan Horák Author: Davi Arnaut Author: dcbw Author: Dennis Gilmore Author: Doug Chapman Author: Giam Teck Choon Author: James Laska Author: Jan Vcelak Author: jcwillia Author: Jesse Keating Author: Jesse Keating Author: Justin Lewis Salmon Author: Kalev Lember Author: Karsten Hopp Author: katzj Author: Kirby Zhou Author: Leonard den Ottolander Author: Levente Farkas Author: Lubomir Rintel Author: Marko Myllynen Author: Masatake YAMATO Author: Mathieu Bridon Author: Matt Domsch Author: Matt McCutchen Author: mdomsch Author: mebrown Author: Michael E Brown Author: Michael E Brown Author: Michael Hampton Author: Mike Bonnet Author: Mike McLean Author: Mike McLean Author: Mike Miller Author: Paul B. Schroeder Author: Paul Howarth Author: Remi Collet Author: Ricky Zhou Author: scop Author: Seth Vidal Author: Shad L. Lords Author: sheltren Author: skvidal Author: symbiont Author: Tim Woods Author: Todd Zullinger Author: Toshio Ernie Kuratomi Author: Tzafrir Cohen Author: Ville Skyttä Author: Yury V. Zaytsev mock-1.1.33/docs/0000775001204700120500000000000012205226342010455 500000000000000mock-1.1.33/docs/release-instructions.txt0000664001204700120500000001140012120440354015311 00000000000000# Work in progress... A note on mock versions: There are now two main branches to be aware of: - mock-1.0 (pre-F13 and EPEL5) - mock-1.1+ (F-13+ and EPEL6+) In the upstream git tree, mock-1.0 is tracked on the branch origin/mock-1.0, while mock-1.1+ is in the master branch. Please be careful when updating the various distro to use the correct branch and version number when generating tarfiles for RPM generation. Note that we've now switched over to using git for the package repositories (as opposed to the old CVS repositories). To make use of the new format, you must install the fedora-packager package and clone the mock package repository: $ sudo yum install fedora-packager $ fedpkg clone mock $ mv mock mock-fedora.git The last step is not strictly required, but I do it to keep from confusing the package repository with the upstream (source) repository ===================================================================== Release checklist overview: 1) upstream git tree: - update remote - merge into work - checkin - tag - merge work into master - push - upload tarballs 2) koji git tree: - checkin new source tarball in master - checkin and push new specfile - tag and build - for each release: - merge master - push - build 3) bodhi: schedule release ===================================================================== For a mock 1.1+ release In the upstream git tree: 0) change to the local master $ git checkout master 1) fetch git remotes and fast-forward your local master $ git remote update $ git merge origin/master 2) create a branch from master (e.g. 'prerelease') and switch to it $ git checkout -b work master 3) merge any remote updates for specific fixes $ git merge jkeating/updates-for-clark 4) merge any local branch work and reolve any conflicts $ git merge frooble-changes 5) update configure.ac with new version info (don't commit yet) 6) update the %changelog section of mock.spec.in (still don't commit) 7) run 'autogen.sh' to update autoconf files 8) run 'configure' to generate Makefile and mock.spec 9) run 'make rpm' to generate binary RPM and propagate version changes (Note this also generates a tar file for use later). 10) verify that tests/runtests.sh uses a supported config file (e.g. released fedora minus one). If not, edit and commit 11) run 'make check' and fix any reported failures until it passes $ sh autogen.sh && ./configure && make rpm && make chekc 12) check in any changes required to fix test failures (still don't commit configure.ac and mock.spec.in) 13) remove ChangeLog and AUTHORS 14) run 'make dist' to generate ChangeLog and AUTHORS files and regenerate tar file 15) commit configure.ac and mock.spec.in with a version bump message: $ git commit -m 'version bump' configure.ac 16) tag the git tree: $ git tag -u mock- 17) checkout master and merge your work directory: $ git checkout master $ git merge work 18) push to main git repo (only from master branch): $ git push origin master $ git push origin tag mock- 19) copy tarball to fedorahosted: $ scp mock-.tar.gz fedorahosted.org:mock In the fedora git (koji) tree 1) cd to the previously cloned mock package repository $ cd ../mock-fedora.git 2) change to the master branch: $ fedpkg switch-branch master or $ git checkout master 3) upload the new source tarball from the upstream git tree $ fedpkg new-sources ../mock.git/mock-.tar.gz 4) copy in the new specfile that matches the tarball $ cp ../mock.git/mock.spec . 5) commit and push the new sources $ fedpkg commit --clog --push 6) initiate a koji build $ fedpkg build --nowait 7) switch branches to the latest released fedora $ fedpkg switch-branch f17 or $ git checkout f17 8) merge master into the current release $ git merge master if there are conflicts, resolve and commit 9) push changes back to origin $ fedpkg push 10) initiate a build for the branch $ fedpkg build --nowait 11) repeat steps 8 and 9 for all supported fedora releases and EPEL releases (e.g. f16, el6) Once the builds finish (successfully) you should push the just built packages to their respective testing repositories. This can be done either with the Bodhi WebUI at https://admin.fedoraproject.org/updates/ or if there are no other package dependencies, using the 'fedpkg update' command. Note that you do not need to do this for the master (rawhide) branch since it automatically gets pushed to testing. mock-1.1.33/docs/#release-instructions.txt#0000644001204700120500000001140612205226342015426 00000000000000# Work in progress... A note on mock versions: There are now two main branches to be aware of: - mock-1.0 (pre-F13 and EPEL5) - mock-1.1+ (F-13+ and EPEL6+) In the upstream git tree, mock-1.0 is tracked on the branch origin/mock-1.0, while mock-1.1+ is in the master branch. Please be careful when updating the various distro to use the correct branch and version number when generating tarfiles for RPM generation. Note that we've now switched over to using git for the package repositories (as opposed to the old CVS repositories). To make use of the new format, you must install the fedora-packager package and clone the mock package repository: $ sudo yum install fedora-packager $ fedpkg clone mock $ mv mock mock-fedora.git The last step is not strictly required, but I do it to keep from confusing the package repository with the upstream (source) repository ===================================================================== Release checklist overview: 1) upstream git tree: - update remote - merge into work - checkin - tag - merge work into master - push - upload tarballs 2) koji git tree: - checkin new source tarball in master - checkin and push new specfile - tag and build - for each release: - merge master - push - build 3) bodhi: schedule release ===================================================================== For a mock 1.1+ release In the upstream git tree: 0) change to the local master $ git checkout master 1) fetch git remotes and fast-forward your local master $ git remote update $ git merge origin/master 2) create a branch from master (e.g. 'prerelease') and switch to it $ git checkout -b work master 3) merge any remote updates for specific fixes $ git merge jkeating/updates-for-clark 4) merge any local branch work and reolve any conflicts $ git merge frooble-changes 5) update configure.ac with new version info (don't commit yet) 6) update the %changelog section of mock.spec.in (still don't commit) 7) run 'autogen.sh' to update autoconf files 8) run 'configure' to generate Makefile and mock.spec 9) run 'make rpm' to generate binary RPM and propagate version changes (Note this also generates a tar file for use later). 10) verify that tests/runtests.sh uses a supported config file (e.g. released fedora minus one). If not, edit and commit 11) run 'make check' and fix any reported failures until it passes $ sh autogen.sh && ./configure && make rpm && make chekc 12) check in any changes required to fix test failures (still don't commit configure.ac and mock.spec.in) 13) remove ChangeLog and AUTHORS 14) run 'make dist' to generate ChangeLog and AUTHORS files and regenerate tar file 15) commit configure.ac and mock.spec.in with a version bump message: $ git commit -m 'version bump' configure.ac 16) tag the git tree: $ git tag -u mock- 17) checkout master and merge your work directory: $ git checkout master $ git merge work 18) push to main git repo (only from master branch): $ git push origin master $ git push origin tag mock- 19) copy tarball to fedorahosted: $ scp mock-.tar.gz fedorahosted.org:mock In the fedora git (koji) tree 1) cd to the previously cloned mock package repository $ cd ../mock-fedora.git 2) change to the master branch: $ fedpkg switch-branch master or $ git checkout master 3) upload the new source tarball from the upstream git tree $ fedpkg new-sources ../mock.git/mock-.tar.gz 4) copy in the new specfile that matches the tarball $ cp ../mock.git/mock.spec . 5) commit and push the new sources $ fedpkg commit --clog --push 6) initiate a koji build $ fedpkg build --nowait 7) switch branches to the latest released fedora $ fedpkg switch-branch f17 or $ git checkout f17 8) merge master into the current release $ git merge master if there are conflicts, resolve and commit 9) push changes back to origin $ fedpkg push 10) initiate a build for the branch $ fedpkg build --nowait 11) repeat steps 8 and 9 for all supported fedora releases and EPEL releases (e.g. f16, el6) Once the builds finish (successfully) you should push the just built packages to their respective testing repositories. This can be done either with the Bodhi WebUI at https://admin.fedoraproject.org/updates/ or if there are no other package dependencies, using the 'fedpkg update' command. Note that you do not need to do this for the master (rawhide) branch since it automatically gets pushed to testing. mock-1.1.33/docs/mock.10000664001204700120500000002207712133271360011420 00000000000000.TH "mock" "1" "0.7" "Seth Vidal" "" .SH "NAME" .LP mock \- build SRPMs in a chroot .SH "SYNTAX" .LP mock [options] \fB\-\-rebuild\fR \fISRPM [\fISRPM...\fR] .LP mock [options] \fB\-\-buildsrpm\fR {--spec \fIspec\fR --sources \fIsrc\fR | --scm-enable} .LP mock [options] \fB\-\-chroot\fR \fI\fR .LP mock [options] {\fB\-\-init\fR|\fBclean\fR|\fBshell\fR} .LP mock [options] \fB\-\-installdeps\fR {SRPM|RPM} .LP mock [options] \fB\-\-install\fR PACKAGE .LP mock [options] \fB\-\-update\fR .LP mock [options] \fB\-\-remove\fR PACKAGE .LP mock [options] \fB\-\-orphanskill\fR .LP mock [options] \fB\-\-copyin\fR \fIpath [\fIpath...\fR] \fIdestination\fR .LP mock [options] \fB\-\-copyout\fR \fIpath [\fIpath...\fR] \fIdestination\fR .LP mock [options] \fB\-\-scm-enable\fR [\fI--scm-option key=value ...\fR] .SH "DESCRIPTION" .LP Mock is a simple program that will build source RPMs inside a chroot. It doesn't do anything terribly fancy other than populate a chroot with the contents specified by a configuration file, then build any input SRPM(s) in that chroot. .LP The content of a chroot is specified by the configuration specified with the \fB\-r\fR option. The default configuration file is /etc/mock/default.cfg, which is usually a symlink to one of the installed configurations. .LP There is a site-wide configuration file, /etc/mock/site-defaults.cfg, which can be used to specify site-wide options. The shipped version of this file has no active options, but does have a list of all of the configuration options, examples of how to set them, and their default values. .LP For backwards compatibility, old-style commands, ("rebuild", "init", "clean", etc.) without leading '\-\-' are still accepted, but are deprecated. See COMMANDS section, below, for detailed listing of all commands. .LP To use mock, a user should become a member of the \fBmock\fR group by adding their username to the \fBmock\fR line in /etc/group. This can be done with the following command: .P \fBsudo /usr/sbin/usermod -a -G mock $USER\fR Note that mock is not intended to be run directly as root. .SH "COMMANDS" .LP .TP \fB\-\-clean\fP Purge the chroot tree. .TP \fB\-\-scrub=\fR\fITYPE\fP Completely remove the specified chroot or cache dir or all of the chroot and cache. \fITYPE\fR is one of all, chroot, cache, root-cache, c-cache, or yum-cache. .TP \fB\-\-init\fP Initialize a chroot (clean, install chroot packages, etc.) .TP \fB\-\-rebuild\fP If no command is specified, rebuild is assumed. Rebuilds the specified SRPM(s). The buildroot is cleaned first, unless --no-clean is specified. .TP \fB\-\-buildsrpm\fP Builds the specified SRPM either from a spec file and source file/directory or from SCM. The buildroot is cleaned first, unless --no-clean is specified. .TP \fB\-\-shell\fP Run the specified command interactively within the chroot (which must already be initialized -- no 'clean' is performed). If no command specified, /bin/sh is run. .TP \fB\-\-chroot\fP Run the specified command non-interactively within the chroot (which must already be initialized -- no 'clean' is performed). Command output will be sent to the log files. .TP \fB\-\-installdeps\fP Find out deps for SRPM or RPM, and do a yum install to put them in the buildroot. Buildroot must already be initialized -- no 'clean' is performed .TP \fB\-\-install\fP Do a yum install PACKAGE inside the buildroot. Buildroot must already be initialized -- no 'clean' is performed .TP \fB\-\-update\fP Do a yum update inside the buildroot. Buildroot must already be initialized -- no 'clean' is performed .TP \fB\-\-remove\fP Do a yum remove PACKAGE inside the buildroot. Buildroot must already be initialized -- no 'clean' is performed .TP \fB\-\-orphanskill\fP No-op mode that simply checks that no stray processes are running in the chroot. Kills any processes that it finds using specified root. .TP \fB\-\-copyin\fP Copies the source paths (files or directory trees) into the chroot at the specified destination path. .TP \fB\-\-copyout\fP Copies the source paths (files or directory trees) from the chroot to the specified destination path. .TP \fB\-\-scm-enable\fP Enable building from an SCM (CVS/Git/SVN). The SCM repository must be configured in site-defaults.cfg before SCM checkouts are possible. SCM package and branch can be defined with \fB\-\-scm-option\fP arguments, see site-defaults.cfg for more information. .SH "OPTIONS" .LP .TP \fB\-r\fR \fICHROOT\fP, \fB\-\-root\fR=\fICHROOT\fP Uses specified chroot configuration as defined in /etc/mock/<\fIchroot\fP>.cfg. If none specified, uses the chroot linked to by /etc/mock/default.cfg .TP \fB\-\-offline\fR Run in 'offline' mode where we tell 'yum' to run completely from local cache. Also disables cache expiry for the mock yum cache. .TP \fB\-\-no\-clean\fR Do not clean chroot before building package. .TP \fB\-\-cleanup\-after\fR Clean chroot after building. Use with \-\-resultdir. Only active for '\-\-rebuild'. .TP \fB\-\-no\-cleanup\-after\fR Don't clean chroot after building. If automatic cleanup is enabled, use this to disable. .TP \fB\-\-cache\-alterations\fR Rebuild the root cache after making alterations to the chroot (i.e. --install). Only useful when using tmpfs plugin. .TP \fB\-\-target=\fR\fIARCH\fP This argument is passed to rpmbuild to specify the target arch to build. It defaults to whatever is specified for --arch, or whatever is specified in the config file as config_opts['target_arch']. .TP \fB\-\-arch=\fR\fIARCH\fP Calls the linux personality() syscall to tell the kernel to emulate a secondary architecture. For example, building i386 packages on an x86_64 buildhost. .TP \fB\-D \fR"\fIMACRO EXPR\fP", \fB\-\-define=\fR"\fIMACRO EXPR\fP" Specify macro definitions used for the build. This option may be used multiple times, just as the rpmbuild \-\-define option can be. For example: \fB\-\-define "with_extra_cheese 1" \-\-define="packager Monkey"\fR .TP \fB\-\-with=\fR\fIOPTION\fP Enable configure OPTION for build. This option may be used multiple times. For example: \fB\-\-with=extra_cheese\fR .TP \fB\-\-without=\fR\fIOPTION\fP Disable configure OPTION for build. This option may be used multiple times. For example: \fB\-\-without=anchovies\fR .TP \fB\-\-resultdir=\fR\fIRESULTDIR\fP Change directory where resulting files (RPMs and build logs) are written. Resultdir can contain python-string substitutions for any variable in the chroot config. For example: \fB\-\-resultdir=./my/"%(dist)s"/"%(target_arch)s"/\fR .TP \fB\-\-uniqueext=\fR\fItext\fP Arbitrary, unique extension to append to buildroot directory name .TP \fB\-\-configdir=\fR\fICONFIGDIR\fP Change directory where config files are found .TP \fB\-\-rpmbuild_timeout=\fR\fISECONDS\fP Fail build if rpmbuild takes longer than 'timeout' seconds .TP \fB\-\-unpriv\fR Drop privileges before running command when using --chroot .TP \fB\-\-cwd=\fR\fIDIR\fP Change to the specified directory (relative to the chroot) before running command when using --chroot .TP \fB\-q\fR, \fB\-\-quiet\fR Be quiet. .TP \fB\-v\fR, \fB\-\-verbose\fR Output verbose progress information. .TP \fB\-\-trace\fR Enables verbose tracing of function enter/exit with function arguments and return codes. Useful for debugging mock itself. .TP \fB\-\-enable\-plugin=\fR\fIPLUGIN\fP Enable the specified plugin. This option may be used multiple times. .TP \fB\-\-disable\-plugin=\fR\fIPLUGIN\fP Disable the specified plugin. This option may be used multiple times. .TP \fB\-\-plugin-option \fR\fIPLUGIN\fR\fB:\fR\fIKEY\fR\fB=\fR\fIVALUE\fP Set plugin specific parameter. This option may be used multiple times. .TP \fB\-h\fR, \fB\-\-help\fR Show usage information and exit. .TP \fB\-\-version\fR Show version number and exit. .SH "FILES" .LP \fI/etc/mock/\fP \- default configuration directory .LP \fI/var/lib/mock\fP \- directory where chroots are created .SH "EXAMPLES" .LP To rebuild test.src.rpm using the Fedora 14 configuration for x86_64 .LP .RS 5 \fBmock -r fedora-14-x86_64 --rebuild /path/to/test.src.rpm .RE .LP Note that the available configurations are found in the /etc/mock directory with the extension .cfg. To specify a configuration use the filename without the trailing .cfg extension. .LP To place the output RPMs and logs in a specified location. .LP .RS 5 \fBmock \-r fedora\-14\-i386 --resultdir=./my-results /path/to/your.src.rpm\fR .RE .LP To build a package from the default SCM repository configured in site-defaults.cfg use the following arguments. .LP .RS 5 \fBmock \-r fedora\-14\-i386 --scm-enable --scm-option package=pkg\fR .RE .SH "BUGS" .LP To report bugs in mock, go to: .LP .RS 5 \fIhttp://bugzilla.redhat.com/bugzilla\fR. .RE .LP Select the query option, using product \fBFedora Hosted Projects\fR and component \fBmock\fR and press the \fBStart Search\fR button. If there is a bug similar to the one you are seeing, add your information to the comments. If not, go to the new bug page using the same product and component and fill in the form. .SH "AUTHORS" .LP Michael Brown .LP Clark Williams .LP Seth Vidal .LP and a cast of...tens .SH "SEE ALSO" .LP yum(8) rpmbuild(8) http://fedoraproject.org/wiki/Projects/Mock mock-1.1.33/docs/mockchain.10000664001204700120500000000361311770702733012427 00000000000000.\" mockchain .TH "mockchain" "1" "" "Seth Vidal" "" .SH "NAME" mockchain - chain package builder. .SH "SYNOPSIS" \fBmockchain\fP -r chroot_config [options] [package...] .SH "DESCRIPTION" .PP \fBmockchain\fP builds a series of srpms in mock one at a time. After each successful build of a package it adds the resulting packages to a local repo which are available to the next package to satisfy buildreqs. .SH "USAGE NOTES" .PP This does not try to sort the packages by build order b/c that is too much effort and not obviously doable with the buildreq information we have. .PP The build process when you use -l is idempotent so a package which has already been successfully built will not be built again. .PP If you want to force the rebuild of a package which has been built successfully simply remove the 'success' file from the directory for the package in the localrepo path. .SH OPTIONS .TP \fB\-a\fR REPOS, \fB\-\-addrepo\fR=\fIREPOS\fR add this repo baseurl to the yumconfig for the buildroot. This can be specified multiple times. Let's you point to multiple paths beyond the default to pull build deps from. .TP \fB\-c\fR, \fB\-\-continue\fR if a pkg fails to build, continue to the next one, default is to stop .TP \fB\-l\fR LOCALREPO, \fB\-\-localrepo\fR=\fIPATH\fR set the path to put the results/repo in. This path needs to be somewhere accessible to users other than you for reading as the mock process doesn't run as you. Will make a tempdir if not set. .TP \fB\-\-log\fR=\fILOGFILE\fR log to the file named by this option, defaults to not logging .TP \fB\-r\fR CHROOT, \fB\-\-root\fR=\fICHROOT\fR chroot config name to use in the mock build .TP \fB\-\-recurse\fR build all pkgs, record the failures and try to rebuild them again and again until everything gets built (or until the set of pkgs failing to build are the same over) sets --continue .SH "AUTHORS" Seth Vidal