lilypond-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: What is holding up 2.20 release?


From: David Kastrup
Subject: Re: What is holding up 2.20 release?
Date: Sun, 08 Dec 2019 03:26:44 +0100
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/27.0.50 (gnu/linux)

John Mandereau <address@hidden> writes:

> On Mon, 2019-11-18 at 19:29 +0100, Jonas Hahnfeld wrote:
>> Sure, but does it fix an issue that makes it "critical" enough to add
>> the new relocation code fairly late in the process?
>
> For the discussion that motivated these changes, see
> https://lists.gnu.org/archive/html/lilypond-devel/2019-02/msg00080.html
> Although they fix a bug in a very special case, IMVHO they do not sound
> really critical but fall more in the cleanup category.
>
> Note that if cherry-picking commits from issue 5481 is approved, then
> the changes brought by these commits will need to be slightly reworked
> or some or all commits for issue 5471 (at least 5471/1 for the
> additional optional argument of sane_putenv and probably also 5471/2)
> will have to be cherry-picked too.
>
> About the general cherry-picking process, I'm happy to provide
> occasional GUB build test on it – I just launched it for
> dev/hahnjo/stable-2.20.

This is a complete mess to cherry-pick.  I've done all of

6fe27a71ba (HEAD -> stable) Issue 5481/3: flower/file-name.cc: Better handling 
of `.' and `..'
7b66fff27a Issue 5481/2: running.itely: Document relocation
468898c7f1 Issue 5481/1: main.cc, relocate.cc: Minor code clean-up
b4d20ea792 Issue 5471/2: main.cc, relocate.cc: Improve relocation debug messages
e1157a2632 Issue 5471/1: relocate.cc: Add `indent' parameter to `sane_putenv'
0aed46ada6 Issue 5453/2: Make unused command line option `--relocate' a no-op
43e672b04b Issue 5453/1: Remove unused configure option `--enable-relocation'

including some minor conflict resolution and it still fails with the non-trivial

diff --cc lily/relocate.cc
index 5a85320dc1,8e97199a01..0000000000
--- a/lily/relocate.cc
+++ b/lily/relocate.cc
@@@ -110,57 -110,48 +110,91 @@@ prepend_env_path (char const *key, stri
    return -1;
  }
  
++<<<<<<< HEAD
 +static void
 +prefix_relocation (const string &prefix)
 +{
 +  string bindir = prefix + "/bin";
 +  string datadir = prefix + "/share";
 +  string localedir = datadir + "/locale";
 +  string package_datadir = datadir + "/lilypond/";
 +  string old_lilypond_datadir = lilypond_datadir;
 +
 +  if (is_dir (package_datadir + "/" TOPLEVEL_VERSION))
 +    lilypond_datadir = package_datadir + "/" TOPLEVEL_VERSION;
 +  else if (is_dir (package_datadir + "/current"))
 +    lilypond_datadir = package_datadir + "/current";
 +  else
 +    warning (_f ("Not relocating: no '%s/' or 'current/' found under '%s'",
 +                 TOPLEVEL_VERSION, package_datadir));
 +
 +#if HAVE_GETTEXT
 +  if (is_dir (localedir))
 +    bindtextdomain ("lilypond", localedir.c_str ());
 +#endif
 +
 +  prepend_env_path ("PATH", bindir);
 +
 +  debug_output (_f ("  Compiled-in datadir '%s'\n"
 +                    "  New datadir '%s'\n",
 +                    old_lilypond_datadir,
 +                    lilypond_datadir));
 +}
 +
 +/*
 +  UGH : this is a complete mess.
 +*/
 +
 +static void
 +framework_relocation (const string &prefix)
++=======
+ static string
+ set_up_directory (char const *env_name,
+                   char const *id,
+                   string compile_default,
+                   string runtime_default,
+                   string alt_runtime_default = "")
++>>>>>>> f0c3e7461e... Issue 5481/4: relocate.cc: Rewrite relocation algorithm
  {
-   debug_output (_f ("  Framework prefix '%s'", prefix));
+   string dir = "";
  
-   sane_putenv ("INSTALLER_PREFIX", prefix, true, true);
+   // check environment variable
+   if (char const *env_value = getenv (env_name))
+     {
+       dir = File_name (env_value).canonicalized ().to_string ();
+       debug_output (_f ("  Found %s environment variable,\n"
+                         "    setting %s to '%s'\n",
+                         env_name, id, dir));
+       return dir;
+     }
  
++<<<<<<< HEAD
 +  read_relocation_dir (prefix + "/etc/relocate/");
++=======
+   // otherwise check run-time value(s)
+   if (is_dir (runtime_default))
+     dir = runtime_default;
+   else if (is_dir (alt_runtime_default))
+     dir = alt_runtime_default;
++>>>>>>> f0c3e7461e... Issue 5481/4: relocate.cc: Rewrite relocation algorithm
+ 
+   if (!dir.empty ())
+     {
+       dir = File_name (dir).canonicalized ().to_string ();
+       debug_output (_f ("  Using run-time value for %s,\n"
+                         "    setting it to '%s'\n",
+                         id, dir));
+       return dir;
+     }
  
-   string bindir = prefix + "/bin";
- 
-   prepend_env_path ("PATH", bindir);
+   // otherwise fall back to compile-time value
+   dir = File_name (compile_default).canonicalized ().to_string ();
+   debug_output (_f ("  Using compile-time value for %s,\n"
+                     "    setting it to '%s'\n",
+                     id, dir));
+   return dir;
  }
  
- /*
-   UGH : this is a complete mess.
- */
  void
  setup_paths (char const *argv0_ptr)
  {


This is so much of a mess that I'd need a very good reason (namely:
won't work otherwise) for trying to fold this in.

-- 
David Kastrup



reply via email to

[Prev in Thread] Current Thread [Next in Thread]