This is my long announced patch to remove the need to create
lyxrc.defaults and friends in the main support directory (and build
directory). I really would like to see some good testing of this one,
including on windows and osx. This one is for 1.5, I can provide a
1.4 version if needed.

This patch means that the configuration after installation done in the
os x, windows and rpm installers is not needed any more.

I would like to apply this to 1.4.2 too if it turns out to work.

I had another version that got rid of the notion of build_support_dir
altogether, but I'd rather do things by steps.

Comments and testing highly welcome.

JMarc

Index: src/support/package.C.in
===================================================================
--- src/support/package.C.in	(revision 13743)
+++ src/support/package.C.in	(working copy)
@@ -250,10 +250,10 @@ get_build_dirs(string const & abs_binary
 {
 	string const check_text = "Checking whether LyX is run in place...";
 
-	// We're looking for "lyxrc.defaults" in a directory
+	// We're looking for "Makefile" in a directory
 	//   binary_dir/../lib
 	// We're also looking for "chkconfig.ltx" in a directory
-	//   binary_dir/top_srcdir()/lib
+	//   top_srcdir()/lib
 	// If both are found, then we're running LyX in-place.
 
 	// Note that the name of the lyx binary may be a symbolic link.
@@ -265,11 +265,10 @@ get_build_dirs(string const & abs_binary
 		string const build_support_dir =
 			get_build_support_dir(binary_dir, top_build_dir_location);
 
-		if (!fileSearch(build_support_dir, "lyxrc.defaults").empty()) {
+		if (!fileSearch(build_support_dir, "Makefile").empty()) {
 			// Try and find "chkconfig.ltx".
 			string const system_support_dir =
-				makeAbsPath(addPath(top_srcdir(), "lib"),
-					    addPath(binary_dir, "support"));
+				addPath(top_srcdir(), "lib");
 
 			if (!fileSearch(system_support_dir, "chkconfig.ltx").empty()) {
 				lyxerr[Debug::INIT] << check_text << " yes"
Index: configure.ac
===================================================================
--- configure.ac	(revision 13743)
+++ configure.ac	(working copy)
@@ -475,8 +475,6 @@ AC_CONFIG_FILES([Makefile  m4/Makefile \
        src/frontends/qt4/moc/Makefile \
        src/frontends/qt4/ui/Makefile \
 ])
-echo "Running $LYX_ABS_TOP_SRCDIR/lib/configure.py --with-version-suffix=\"$version_suffix\""
-(test -d lib || mkdir lib; cd lib && python $LYX_ABS_TOP_SRCDIR/lib/configure.py --with-version-suffix="$version_suffix")
 
 AC_OUTPUT
 # show version information
Index: lib/doc/Makefile.am
===================================================================
--- lib/doc/Makefile.am	(revision 13743)
+++ lib/doc/Makefile.am	(working copy)
@@ -1,6 +1,6 @@
 include $(top_srcdir)/config/common.am
 
-DISTCLEANFILES += LyXConfig.lyx LaTeXConfig.lyx $(tocfiles)
+DISTCLEANFILES += $(tocfiles)
 
 EXTRA_DIST = depend.py doc_toc.py LyXConfig.lyx.in README.Documentation $(DEPENDFILE) $(docfiles)
 
@@ -66,9 +66,7 @@ docfiles = \
 	platypus.eps
 
 docdir = $(pkgdatadir)/doc
-doc_DATA = \
-	$(docfiles) \
-	LaTeXConfig.lyx
+doc_DATA = $(docfiles) 
 
 DEPENDFILE = $(srcdir)/Makefile.depend
 # include $(DEPENDFILE) does not work because automake is too limited.
Index: lib/configure.py
===================================================================
--- lib/configure.py	(revision 13743)
+++ lib/configure.py	(working copy)
@@ -624,31 +624,6 @@ def checkTeXAllowSpaces():
     removeFiles( [ 'a b.tex', 'a b.log', 'texput.log' ])
 
 
-def removeExtraFiles():
-  # Remove superfluous files if we are not writing in the main lib
-  # directory
-  for file in [outfile, 'textclass.lst', 'packages.lst', \
-    'doc/LaTeXConfig.lyx']:
-    try:
-      # we rename the file first, so that we avoid comparing a file with itself
-      os.rename(file, file + '.new')
-      syscfg = open( os.path.join(srcdir, file) ).read()
-      mycfg = open( file + '.new').read()
-      if mycfg == syscfg:
-        print "removing ", file, " which is identical to the system global version"
-        removeFiles( [file + '.new'] )
-      else:
-        os.rename( file + '.new', file )
-    except:  # use local version if anthing goes wrong.
-      os.rename( file + '.new', file )
-      pass
-  # Final clean-up
-  if not lyx_keep_temps:
-    removeFiles(['chkconfig.sed', 'chkconfig.vars',  \
-      'wrap_chkconfig.ltx', 'wrap_chkconfig.log', \
-      'chklayouts.tex', 'missfont.log'])
-
-
 if __name__ == '__main__':
   lyx_check_config = True
   outfile = 'lyxrc.defaults'
@@ -705,4 +680,3 @@ Options:
   # --without-latex-config can disable lyx_check_config
   checkLatexConfig( lyx_check_config and LATEX != '', bool_docbook, bool_linuxdoc)
   createLaTeXConfig()
-  removeExtraFiles()
Index: lib/Makefile.am
===================================================================
--- lib/Makefile.am	(revision 13743)
+++ lib/Makefile.am	(working copy)
@@ -1,7 +1,5 @@
 include $(top_srcdir)/config/common.am
 
-DISTCLEANFILES += texput.log textclass.lst packages.lst lyxrc.defaults
-
 SUBDIRS = doc lyx2lyx
 
 EXTRA_DIST = \
@@ -13,8 +11,7 @@ CHMOD = chmod
 # version-suffix would get appended to the names. So we use dist_pkgdata_DATA
 # and chmod manually in install-data-hook.
 dist_pkgdata_DATA = lyxrc.example CREDITS chkconfig.ltx configure.py \
-	       lyxrc.defaults textclass.lst packages.lst external_templates \
-	       encodings languages symbols syntax.default
+	       external_templates encodings languages symbols syntax.default
 
 dist_noinst_DATA = \
 	images/README \
@@ -930,9 +927,6 @@ dist_ui_DATA = \
 	ui/stdmenus.ui \
 	ui/stdtoolbars.ui
 
-lyxrc.defaults: $(srcdir)/configure.py
-	python $<
-
 install-data-hook:
 	$(CHMOD) 755 $(DESTDIR)$(pkgdatadir)/configure.py
 	for i in $(dist_scripts_DATA); do \

Reply via email to