From frederik at ofb.net  Thu May 26 02:29:19 2016
From: frederik at ofb.net (frederik at ofb.net)
Date: Wed, 25 May 2016 17:29:19 -0700
Subject: [Rd] configure / make problems with R-devel
In-Reply-To: <22341.33437.870844.55865@stat.math.ethz.ch>
References: <22333.30916.298334.864817@stat.math.ethz.ch>
	<22333.33080.885593.770604@stat.math.ethz.ch>
	<22340.13100.530498.599867@stat.math.ethz.ch>
	<C29B5317-0925-4439-B736-FB210FD761DD@gmail.com>
	<22340.25971.182938.655839@stat.math.ethz.ch>
	<20160524164543.GJ15265@ofb.net>
	<CF177003-91C9-48D6-9E77-3B20EE02C1E4@nyu.edu>
	<22340.36178.890897.171292@stat.math.ethz.ch>
	<20160524221517.GL15265@ofb.net>
	<22341.33437.870844.55865@stat.math.ethz.ch>
Message-ID: <20160526002919.GM15265@ofb.net>

Hi Martin,

Thanks for the Makefile clue. The file 'non-tarball' was present in
the source directory, but not in the build directory (should the
Makefile be checking for 'non-tarball' in the source directory
instead?). However, 'doc/FAQ' was present in the source directory, so
the first clause of '||' failed.

    svnonly:
            @if test ! -f "$(srcdir)/doc/FAQ" || test -f non-tarball ; then \
            ...

It works if I remove 'doc/FAQ'. Incidentally, this file is created by
'make' but not removed by 'make clean'. So the problem is that I
accidentally ran 'make' in the source directory before taking your
advice. I ran 'make clean' out of habit, not even realizing that
'make' in the source directory would break your
separate-build-directory technique.

STRIP=true is highly counterintuitive, but I'm surprised you don't
recognise it - it just replaces the 'strip' command with 'true' so
that my installed binaries get to keep their debugging symbols. Maybe
there is a better way of doing it - I guess you use the binaries in
place so perhaps that is one solution. I'm not sure where I came up
with STRIP=true.




In case anyone skimmed, I think there may be two "action items" here:

1. in Makefile, change

            @if test ! -f "$(srcdir)/doc/FAQ" || test -f non-tarball ; then \

to

            @if test ! -f "$(srcdir)/doc/FAQ" || test -f "$(srcdir)/non-tarball" ; then \

(I haven't tested it)

2. Figure out how to remove doc/FAQ with 'make clean' (if it makes
sense to do so)



Thanks,

Frederick

On Wed, May 25, 2016 at 12:46:53PM +0200, Martin Maechler wrote:
> >>>>>   <frederik at ofb.net>
> >>>>>     on Tue, 24 May 2016 15:15:17 -0700 writes:
> 
>     > Thank you, Martin. I linked to your message in a comment here so maybe
>     > other people will know about that useful technique:
> 
>     > http://singmann.org/installing-r-devel-on-linux/#comment-161
> 
>     > However, when I try it, I get an error:
> 
>     > $ make 
>     > make[1]: Entering directory '/home/frederik/pkg-tmp/R-svn-build/m4'
>     > make[1]: Nothing to be done for 'R'.
>     > make[1]: Leaving directory '/home/frederik/pkg-tmp/R-svn-build/m4'
>     > make[1]: Entering directory '/home/frederik/pkg-tmp/R-svn-build/tools'
>     > make[1]: Nothing to be done for 'R'.
>     > make[1]: Leaving directory '/home/frederik/pkg-tmp/R-svn-build/tools'
>     > make[1]: Entering directory '/home/frederik/pkg-tmp/R-svn-build/doc'
>     > /usr/bin/install: cannot stat '../../R-svn/doc/NEWS': No such file or directory
>     > /usr/bin/install: cannot stat '../../R-svn/doc/NEWS.pdf': No such file or directory
>     > Makefile:164: recipe for target 'svnonly' failed
>     > make[1]: *** [svnonly] Error 1
>     > make[1]: Leaving directory '/home/frederik/pkg-tmp/R-svn-build/doc'
>     > Makefile:60: recipe for target 'R' failed
>     > make: *** [R] Error 1
> 
> This is strange:  Did you accidentally delete the 'non-tarball'
> file in your build directory which should have been created by
> 'configure' ?
> 
> I ask because your 'make' seems to be using the 'else' clause in
> the 'svnonly' target in the R-svn-build/Makefile
> but it should really use the first branch which does install
> things in ./doc/ (such as NEWS or NEWS.pdf).
> 
> I have never used  'STRIP=true' -- maybe that did remove the
> 'non-tarball' file ?
> 
> Why not rather do it the way I told you, i.e., *with* recommended
> packages, and no arguments to 'configure'
> (if that does work, you may try variants.. I agree that
> --without-recommended-packages should work as well, I just never
> use that).
> 
> Martin
> 
> 
>     > I configured like this:
> 
>     > $ cd ../R-svn-build/                                          
>     > $ ../R-svn/configure --without-recommended-packages --prefix=$HOME/r-svn-test STRIP=true
> 
>     > I guess I can try to debug it myself but thought I should report back
>     > to you. It works when I 'configure' and 'make' in the source
>     > directory.
> 
>     > Cheers,
> 
>     > Frederick
> 
> 
> 
>     > On Tue, May 24, 2016 at 07:20:18PM +0200, Martin Maechler wrote:
>     >> >>>>> Keith O'Hara <keith.ohara at nyu.edu>
>     >> >>>>>     on Tue, 24 May 2016 12:47:43 -0400 writes:
>     >> 
>     >> > svn checkout https://svn.r-project.org/R/trunk/ <target-directory>
>     >> 
>     >> yes, indeed. thank you, Keith.
>     >> 
>     >> and from then on only
>     >> 
>     >> cd <target-directory>
>     >> svn up
>     >> 
>     >> (which is short for 'svn update').
>     >> 
>     >> Another hint: Then do *not* build in the source directory but in
>     >> what we called a "build directory"; i.e., something like
>     >> (from scratch; including the only-once needed "checkout") :
>     >> 
>     >> svn checkout https://svn.r-project.org/R/trunk/ R
>     >> cd R
>     >> tools/rsync-recommended
>     >> mkdir ../build-R
>     >> cd ../build-R
>     >> ../R/configure
>     >> make
>     >> make check
>     >> 
>     >> and I then never run 'make install', but rather use symbolic
>     >> link from
>     >> ..../build-R/bin/R  to something like  ~/bin/R-devel 
>     >> i.e.,
>     >> cd ~/bin
>     >> ln -s ..../build-R/bin/R R-devel
>     >> 
>     >> Martin
>     >> 
>     >> >> On May 24, 2016, at 12:45 PM, frederik at ofb.net wrote:
>     >> >> 
>     >> >> I agree with Martin's summary of the situation, and with the updated
>     >> >> NEWS entry.
>     >> >> 
>     >> >> I'm not familiar with Subversion, can you tell me the command to use?
>     >> >> 
>     >> >> (I tried "svn co https://svn.r-project.org/R/" but it seems to be
>     >> >> downloading all branches)
>     >> >> 
>     >> >> Frederick
>     >> >> 
>     >> >> On Tue, May 24, 2016 at 04:30:11PM +0200, Martin Maechler wrote:
>     >> >>>>>>>> peter dalgaard <pdalgd at gmail.com>
>     >> >>>>>>>> on Tue, 24 May 2016 13:47:27 +0200 writes:
>     >> >>> 
>     >> >>>> I had a regression in config.site so the nightly build didn't. Retrying....
>     >> >>>> Looks like it will build, but the ctl-R, ctl-C bug is still present on OSX (w/Simon's libs). This _was_ fixed for a while, was it not?
>     >> >>> 
>     >> >>> I thought it was never fixed, for readline versions 5.x (or all
>     >> >>> of readline_version < 6.3 ?) because the patch assumed features
>     >> >>> not available, e.g., for Frederik (who got compilation errors
>     >> >>> which I think you confirmed on pre-6 readline).
>     >> >>> 
>     >> >>> I remember you having two different readlines installed on OSX
>     >> >>> but the standard Mac binary (from CRAN, i.e. Simon) would use
>     >> >>> the old readline version ?
>     >> >>> 
>     >> >>> so that whole  resetReadline() solution is now conditionalized inside
>     >> >>> 
>     >> >>> #if defined(RL_READLINE_VERSION) && RL_READLINE_VERSION >= 0x0603
>     >> >>> ...
>     >> >>> ...
>     >> >>> #endif
>     >> >>> 
>     >> >>> and hence the previous code (which is buggy) is used for
>     >> >>> readline versions < 6.3.
>     >> >>> As a consequence the bug is only fixed for readline >= 6.3,
>     >> >>> because the current patch did not compile and hence seemed not
>     >> >>> appropriate for  readline < 6.3 (and hence the above conditionalization).
>     >> >>> 
>     >> >>> 
>     >> >>>> (The NEWS entry is also wrong: The issue existed before readline 6.3)
>     >> >>> 
>     >> >>> Aah.. you are right. The API change with 6.3 was for the other, the
>     >> >>> "SIGWINCH" bug.
>     >> >>> 
>     >> >>> Here's a an update proposal for that NEWS entry :
>     >> >>> 
>     >> >>> ? The API for readline libraries >= 6.3 had changed such
>     >> >>> terminal window resizes where no longer properly signalled
>     >> >>> (PR#16604).  Also, ?Ctrl C? in incremental search behaved
>     >> >>> confusingly in R (unix) consoles (PR#16603) also for older
>     >> >>> readline versions. These have been fixed (for readline >=
>     >> >>> 6.3 only), thanks to patches by Frederick Eaton.
>     >> >>> 
>     >> >>> 
>     >> >>> Martin
>     >> >>> 
>     >> >>>> -pd
>     >> >>> 
>     >> >>>> On 24 May 2016, at 12:55 , Martin Maechler <maechler at stat.math.ethz.ch> wrote:
>     >> >>> 
>     >> >>>>> 
>     >> >>>>> Can you (Frederick, Peter, Keith, but ideally others, too)
>     >> >>>>> confirm that you don't see any problems anymore, when building a
>     >> >>>>> version of R-devel from sources that are newer 
>     >> >>>>> than (or equal to)  svn revision 70632 (2016-05-19 10:59:51, see below)?
>     >> >>>>> 
>     >> >>>>> I'm asking because the question is open if these should be
>     >> >>>>> "back ported" to R 3.3.0 patched or not.
>     >> >>>>> 
>     >> >>>>> Best regards,
>     >> >>>>> Martin
>     >> >>>>> 
>     >> >>>>>>>>>> Martin Maechler <maechler at stat.math.ethz.ch>
>     >> >>>>>>>>>> on Thu, 19 May 2016 11:02:48 +0200 writes:
>     >> >>>>> 
>     >> >>>>>>>>>> <frederik at ofb.net>
>     >> >>>>>>>>>> on Wed, 18 May 2016 15:03:31 -0700 writes:
>     >> >>>>> 
>     >> >>>>>>>> Readline <= 6.2 shouldn't require the SIGWINCH patch, so
>     >> >>>>>>>> if older versions have trouble finding rl_resize_terminal
>     >> >>>>>>>> then you could wrap a macro around that part.
>     >> >>>>> 
>     >> >>>>>>> I find python related patches that use
>     >> >>>>> 
>     >> >>>>>>> #ifdef HAVE_RL_RESIZE_TERMINAL
>     >> >>>>> 
>     >> >>>>>>> so they must have configured for that.  We could and
>     >> >>>>>>> probably should do the same, but as a Linux_only guy
>     >> >>>>>>> currently (even basically only one flavor of Linux), I'd
>     >> >>>>>>> appreciate others to produce code for that.
>     >> >>>>> 
>     >> >>>>> Actually that was easy (in hindsight.. I took too long!)
>     >> >>>>> enough, so I've now committed
>     >> >>>>> 
>     >> >>>>> ------------------------------------------------------------------------
>     >> >>>>> r70632 | maechler | 2016-05-19 10:59:51 +0200 (Thu, 19 May 2016) | 1 line
>     >> >>>>> Changed paths:
>     >> >>>>> M configure
>     >> >>>>> M configure.ac
>     >> >>>>> M src/include/config.h.in
>     >> >>>>> M src/unix/sys-std.c
>     >> >>>>> 
>     >> >>>>> check for rl_resize_terminal() now
>     >> >>>>> ------------------------------------------------------------------------
>     >> >>>>> 
>     >> >>>>> ... and Keith should even not see the warning anymore
>     >> >>>>> (nor Peter the error, when compiling using readline 5.x instead of 6.[23]).
>     >> >>>>> 
>     >> >>>>> 
>     >> >>>>> [...........]
>     >> >>> 
>     >> >>>> -- 
>     >> >>>> Peter Dalgaard, Professor,
>     >> >>>> Center for Statistics, Copenhagen Business School
>     >> >>>> Solbjerg Plads 3, 2000 Frederiksberg, Denmark
>     >> >>>> Phone: (+45)38153501
>     >> >>>> Office: A 4.23
>     >> >>>> Email: pd.mes at cbs.dk  Priv: PDalgd at gmail.com
>     >> >>> 
>     >> 
>



[Rd] configure / make problems with R-devel
frederik at ofb.net