Author: brane
Date: Thu Apr 18 09:49:03 2013
New Revision: 1469248
URL: http://svn.apache.org/r1469248
Log:
Fixed issue #4338 (Install mod_dontdothat with install-tools)
* build.conf (mod_dontdothat): Set install=tools instead of install=apache-mod.
* build/generator/gen_base.py (FileInfo): Changed constructor to optionally
store the whole target object, not just its filename and conditional
symbol name.
(_sorted_files): Updated all calls to FileInfo constructor.
* build/generator/gen_make.py (Generator.write): When generating install
targets, special-cased the installation mode based on the target type
instead of just on the installation area (currently only for Apache
modules).
* build/generator/templates/build-outputs.mk.ezt
(Section 7: Install-Group install targets): Spent a few hours untangling
the unholy mess that is the EZT syntax in order to emit correct commands
to allow mod_dontdothat be installed into the $(APACHE_LIBEXECDIR) as
a dependency of the install-tools target.
Modified:
subversion/trunk/build.conf
subversion/trunk/build/generator/gen_base.py
subversion/trunk/build/generator/gen_make.py
subversion/trunk/build/generator/templates/build-outputs.mk.ezt
Modified: subversion/trunk/build.conf
URL:
http://svn.apache.org/viewvc/subversion/trunk/build.conf?rev=1469248&r1=1469247&r2=1469248&view=diff
==============================================================================
--- subversion/trunk/build.conf (original)
+++ subversion/trunk/build.conf Thu Apr 18 09:49:03 2013
@@ -381,7 +381,7 @@ type = apache-mod
path = tools/server-side/mod_dontdothat
nonlibs = mod_dav_svn apr aprutil
libs = libsvn_subr xml
-install = apache-mod
+install = tools
msvc-libs = libhttpd.lib
# ----------------------------------------------------------------------------
Modified: subversion/trunk/build/generator/gen_base.py
URL:
http://svn.apache.org/viewvc/subversion/trunk/build/generator/gen_base.py?rev=1469248&r1=1469247&r2=1469248&view=diff
==============================================================================
--- subversion/trunk/build/generator/gen_base.py (original)
+++ subversion/trunk/build/generator/gen_base.py Thu Apr 18 09:49:03 2013
@@ -1149,9 +1149,10 @@ class IncludeDependencyInfo:
return hdrs
class FileInfo:
- def __init__(self, filename, when):
+ def __init__(self, filename, when, target=None):
self.filename = filename
self.when = when
+ self.target = target
def _sorted_files(graph, area):
"Given a list of targets, sort them based on their dependencies."
@@ -1189,9 +1190,9 @@ def _sorted_files(graph, area):
s = graph.get_sources(DT_LINK, t.name)
for d in s:
if d not in targets:
- files.append(FileInfo(d.filename, d.when))
+ files.append(FileInfo(d.filename, d.when, d))
else:
- files.append(FileInfo(t.filename, t.when))
+ files.append(FileInfo(t.filename, t.when, t))
# don't consider this target any more
targets.remove(t)
Modified: subversion/trunk/build/generator/gen_make.py
URL:
http://svn.apache.org/viewvc/subversion/trunk/build/generator/gen_make.py?rev=1469248&r1=1469247&r2=1469248&view=diff
==============================================================================
--- subversion/trunk/build/generator/gen_make.py (original)
+++ subversion/trunk/build/generator/gen_make.py Thu Apr 18 09:49:03 2013
@@ -371,23 +371,26 @@ class Generator(gen_base.GeneratorBase):
# get the output files for these targets, sorted in dependency order
files = gen_base._sorted_files(self.graph, area)
- ezt_area = _eztdata(type=area, files=[ ], apache_files=[ ],
- extra_install=None)
+ ezt_area_type = (area == 'apache-mod' and 'mods-shared' or area)
+ ezt_area = _eztdata(type=ezt_area_type, files=[], extra_install=None)
+
+ def file_to_eztdata(file):
+ # cd to dirname before install to work around libtool 1.4.2 bug.
+ dirname, fname = build_path_splitfile(file.filename)
+ return _eztdata(mode=None,
+ dirname=dirname, fullname=file.filename,
+ filename=fname, when=file.when)
def apache_file_to_eztdata(file):
# cd to dirname before install to work around libtool 1.4.2 bug.
dirname, fname = build_path_splitfile(file.filename)
base, ext = os.path.splitext(fname)
name = base.replace('mod_', '')
- return _eztdata(fullname=file.filename, dirname=dirname,
+ return _eztdata(mode='apache-mod',
+ fullname=file.filename, dirname=dirname,
name=name, filename=fname, when=file.when)
- if area == 'apache-mod':
- data.areas.append(ezt_area)
- for file in files:
- ezt_area.files.append(apache_file_to_eztdata(file))
-
- elif area != 'test' and area != 'bdb-test':
+ if area != 'test' and area != 'bdb-test':
data.areas.append(ezt_area)
area_var = area.replace('-', '_')
@@ -395,31 +398,20 @@ class Generator(gen_base.GeneratorBase):
ezt_area.varname = area_var
ezt_area.uppervar = upper_var
- # ### TODO: This is a hack. See discussion here:
- # ### email to dev@, 2012-03-16, from Daniel Shahaf, subject
- # ### "[1.7.x] build.conf += install-tools of an apache-mod",
- # ### http://mid.gmane.org/[email protected]
- apache_files = [gen_base.FileInfo(t.filename, t.when)
- for t in inst_targets
- if isinstance(t, gen_base.TargetApacheMod)]
-
- files = [f for f in files if f not in apache_files]
- for file in apache_files:
- ezt_area.apache_files.append(apache_file_to_eztdata(file))
for file in files:
- # cd to dirname before install to work around libtool 1.4.2 bug.
- dirname, fname = build_path_splitfile(file.filename)
- ezt_file = _eztdata(dirname=dirname, fullname=file.filename,
- filename=fname, when=file.when)
- if area == 'locale':
- lang, objext = os.path.splitext(fname)
- installdir = '$(DESTDIR)$(%sdir)/%s/LC_MESSAGES' % (area_var, lang)
- ezt_file.installdir = installdir
- ezt_file.objext = objext
+ if isinstance(file.target, gen_base.TargetApacheMod):
+ ezt_file = apache_file_to_eztdata(file)
else:
- ezt_file.install_fname = build_path_join('$(%sdir)' % area_var,
- fname)
-
+ ezt_file = file_to_eztdata(file)
+ if area == 'locale':
+ lang, objext = os.path.splitext(ezt_file.filename)
+ installdir = ('$(DESTDIR)$(%sdir)/%s/LC_MESSAGES'
+ % (area_var, lang))
+ ezt_file.installdir = installdir
+ ezt_file.objext = objext
+ else:
+ ezt_file.install_fname = build_path_join('$(%sdir)' % area_var,
+ ezt_file.filename)
ezt_area.files.append(ezt_file)
# certain areas require hooks for extra install rules defined
Modified: subversion/trunk/build/generator/templates/build-outputs.mk.ezt
URL:
http://svn.apache.org/viewvc/subversion/trunk/build/generator/templates/build-outputs.mk.ezt?rev=1469248&r1=1469247&r2=1469248&view=diff
==============================================================================
--- subversion/trunk/build/generator/templates/build-outputs.mk.ezt (original)
+++ subversion/trunk/build/generator/templates/build-outputs.mk.ezt Thu Apr 18
09:49:03 2013
@@ -127,16 +127,13 @@ $([target.varname]_OBJECTS): $([target.v
# Section 7: Install-Group install targets
########################################
[for areas]
-[is areas.type "apache-mod"]install-mods-shared:[for areas.files]
[areas.files.fullname][end][for areas.files]
- [if-any areas.files.when]if $([areas.files.when]) ; then [else][end]cd
[areas.files.dirname] ; $(MKDIR) "$(APACHE_LIBEXECDIR)" ; $(INSTALL_MOD_SHARED)
-n [areas.files.name] [areas.files.filename][if-any areas.files.when] ;
fi[else][end][end]
-[else]install-[areas.type]: [for areas.files][if-index areas.files
first][else] [end][areas.files.fullname][end] [for areas.apache_files]
[areas.apache_files.fullname][end]
- $(MKDIR) $(DESTDIR)$([areas.varname]dir)[for areas.files][is areas.type
"locale"]
- $(MKDIR) [areas.files.installdir]
- [if-any areas.files.when]if $([areas.files.when]) ; then [else][end]cd
[areas.files.dirname] ; $(INSTALL_[areas.uppervar]) [areas.files.filename]
[areas.files.installdir]/$(PACKAGE_NAME)[areas.files.objext][if-any
areas.files.when] ; fi[else][end][else]
- [if-any areas.files.when]if $([areas.files.when]) ; then [else][end]cd
[areas.files.dirname] ; $(INSTALL_[areas.uppervar]) [areas.files.filename]
$(DESTDIR)[areas.files.install_fname][if-any areas.files.when] ;
fi[else][end][end][end][for areas.apache_files]
- [if-any areas.apache_files.when]if $([areas.apache_files.when]) ; then
[else][end]cd [areas.apache_files.dirname] ; $(MKDIR) "$(APACHE_LIBEXECDIR)" ;
$(INSTALL_MOD_SHARED) -n [areas.apache_files.name]
[areas.apache_files.filename][if-any areas.apache_files.when] ;
fi[else][end][end]
-[if-any areas.extra_install] $(INSTALL_EXTRA_[areas.uppervar])
-[end][end][end]
+install-[areas.type]: [for areas.files][if-index areas.files first][else]
[end][areas.files.fullname][end]
+[if-any areas.files][for areas.files] [is areas.files.mode
"apache-mod"][if-any areas.files.when]if $([areas.files.when]) ; then
[else][end]cd [areas.files.dirname] ; $(MKDIR) "$(APACHE_LIBEXECDIR)" ;
$(INSTALL_MOD_SHARED) -n [areas.files.name] [areas.files.filename][if-any
areas.files.when] ; fi[else][end][else][if-index areas.files first]$(MKDIR)
$(DESTDIR)$([areas.varname]dir)
+ [else][end][is areas.type "locale"]$(MKDIR) [areas.files.installdir]
+ [if-any areas.files.when]if $([areas.files.when]) ; then [else][end]cd
[areas.files.dirname] ; $(INSTALL_[areas.uppervar]) [areas.files.filename]
[areas.files.installdir]/$(PACKAGE_NAME)[areas.files.objext][if-any
areas.files.when] ; fi[else][end][else][if-any areas.files.when]if
$([areas.files.when]) ; then [else][end]cd [areas.files.dirname] ;
$(INSTALL_[areas.uppervar]) [areas.files.filename]
$(DESTDIR)[areas.files.install_fname][if-any areas.files.when] ;
fi[else][end][end][end]
+[end][else] $(MKDIR) $(DESTDIR)$([areas.varname]dir)
+[end][if-any areas.extra_install] $(INSTALL_EXTRA_[areas.uppervar])
+[end][end]
########################################
# Section 8: The install-include rule