Skip Menu |
Report information
Id: 121585
Status: resolved
Priority: 0/
Queue: perl5

Owner: Nobody
Requestors: afresh1 [at] openbsd.org
Cc:
AdminCc:

Operating System: openbsd
PatchStatus: (no value)
Severity: medium
Type: install
Perl Version: 5.19.10
Fixed In: (no value)



From: afresh1 [...] openbsd.org
Date: Sat, 5 Apr 2014 14:42:52 -0700
To: perlbug [...] perl.org
CC: afresh1 [...] openbsd.org
Subject: Configure shouldn't write source tree
Download (untitled) / with headers
text/plain 3.2k
This is a bug report for perl from afresh1@openbsd.org, generated with the help of perlbug 1.40 running under perl 5.19.10. ----------------------------------------------------------------- [Please describe your issue here] OpenBSD installs perl using an build directory, not directly in the source tree. This provides the ability to share a single source tree among many build machines and architectures. This is a local patch we are using with perl 5.18.2, but it should be able to be merged into perl directly. The patch is against bleed. [Please do not change anything below this line] ----------------------------------------------------------------- --- Flags: category=install severity=medium --- Site configuration information for perl 5.19.10: Configured by root at Thu Jan 1 0:00:00 UTC 1970. Summary of my perl5 (revision 5 version 19 subversion 10) configuration: Platform: osname=openbsd, osvers=5.5, archname=amd64-openbsd uname='openbsd' config_args='-Dusedevel -dsE -Dopenbsd_distribution=defined -Dccflags=-DNO_LOCALE_NUMERIC -DNO_LOCALE_COLLATE -Dmksymlinks' hint=recommended, useposix=true, d_sigaction=define useithreads=undef, usemultiplicity=undef use64bitint=define, use64bitall=define, uselongdouble=undef usemymalloc=n, bincompat5005=undef Compiler: cc='cc', ccflags ='-DNO_LOCALE_NUMERIC -DNO_LOCALE_COLLATE -fno-strict-aliasing -fno-delete-null-pointer-checks -pipe -fstack-protector -I/usr/local/include', optimize='-O2', cppflags='-DNO_LOCALE_NUMERIC -DNO_LOCALE_COLLATE -fno-strict-aliasing -fno-delete-null-pointer-checks -pipe -fstack-protector -I/usr/local/include' ccversion='', gccversion='4.2.1 20070719 ', gccosandvers='openbsd5.5' intsize=4, longsize=8, ptrsize=8, doublesize=8, byteorder=12345678 d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=16 ivtype='long', ivsize=8, nvtype='double', nvsize=8, Off_t='off_t', lseeksize=8 alignbytes=8, prototype=define Linker and Libraries: ld='cc', ldflags ='-Wl,-E -fstack-protector -L/usr/local/lib' libpth=/usr/lib /usr/lib /usr/local/lib libs=-lgdbm -lm -lutil -lc perllibs=-lm -lutil -lc libc=/usr/lib/libc.so.74.0, so=so, useshrplib=true, libperl=libperl.so.16.10 gnulibc_version='' Dynamic Linking: dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags='-Wl,-R/usr/libdata/perl5/amd64-openbsd/5.19.10/CORE' cccdlflags='-DPIC -fPIC ', lddlflags='-shared -fPIC -L/usr/local/lib -fstack-protector' --- @INC for perl 5.19.10: ./lib /usr/local/libdata/perl5/site_perl/amd64-openbsd /usr/libdata/perl5/site_perl/amd64-openbsd /usr/local/libdata/perl5/site_perl /usr/libdata/perl5/site_perl /usr/libdata/perl5/amd64-openbsd/5.19.10 /usr/local/libdata/perl5/amd64-openbsd/5.19.10 /usr/libdata/perl5 /usr/local/libdata/perl5 . --- Environment for perl 5.19.10: HOME=/home/afresh1 LANG (unset) LANGUAGE (unset) LC_CTYPE=en_US.UTF-8 LD_LIBRARY_PATH=./ LOGDIR (unset) PATH=/home/afresh1/bin:/home/afresh1/bin:/bin:/sbin:/usr/bin:/usr/sbin:/usr/X11R6/bin:/usr/local/bin:/usr/local/sbin:/usr/games:/home/afresh1/.plenv/bin:. PERL5LIB=./lib PERL_BADLANG (unset) SHELL=/bin/ksh

Message body is not shown because sender requested not to inline it.

From: Ævar Arnfjörð Bjarmason <avarab [...] gmail.com>
Date: Sun, 6 Apr 2014 23:07:49 +0200
To: Perl 5 Porters <perl5-porters [...] perl.org>
CC: bugs-bitbucket [...] rt.perl.org
Subject: Re: [perl #121585] Configure shouldn't write source tree
Download (untitled) / with headers
text/plain 1.3k
On Sat, Apr 5, 2014 at 11:45 PM, via RT <perlbug-followup@perl.org> wrote: Show quoted text
> OpenBSD installs perl using an build directory, not directly in the source > tree. This provides the ability to share a single source tree among many build > machines and architectures. > > This is a local patch we are using with perl 5.18.2, but it should be able to > be merged into perl directly. > > The patch is against bleed.
How do you build against a read-only source tree? Are you using some compiler options I'm not aware of to place the *.o files somewhere else while they're generated? Sure it seems that we should use the $tdir there, but I don't get how this comes anywhere close to solving the problem of perl not building with a read-only source tree. I built it just now with: ./Configure .. && make -j 10 test_harness While running this in another window, which only gives the *untracked* files we create during the build (these should be fixed with .gitignore): while true; do git status --porcelain | tee -a /tmp/dirty.txt; done And after that I get: $ sort /tmp/dirty.txt |uniq -c|sort -nr|wc -l 450 I.e. 450 unique untracked dirty files (full list attached). A lot of those seem like they would kill the build if you placed the source directory on a read-only filesystem. Or am I mistunderstanding what you're doing here?

Message body is not shown because sender requested not to inline it.

From: Andrew Fresh <andrew [...] afresh1.com>
To: AEvar Arnfjord Bjarmason <avarab [...] gmail.com>
Date: Sun, 6 Apr 2014 20:52:35 -0700
CC: Perl 5 Porters <perl5-porters [...] perl.org>
Subject: Re: [perl #121585] Configure shouldn't write source tree
Download (untitled) / with headers
text/plain 1.3k
On Sun, Apr 06, 2014 at 02:08:44PM -0700, AEvar Arnfj"ord Bjarmason via RT wrote: Show quoted text
> How do you build against a read-only source tree? Are you using some > compiler options I'm not aware of to place the *.o files somewhere > else while they're generated?
The general idea is that we create an "obj" directory, symlink the files from the source tree into it and build in the ${.OJBDIR}. $tdir is then ${.OBJDIR} but when searching for modules it ends up looking in the true source tree. See Makefile.bsdwrapper http://www.openbsd.org/cgi-bin/cvsweb/src/gnu/usr.bin/perl/Makefile.bsd-wrapper?rev=1.94 which ends up including the relevant target from bsd.obj.mk http://www.openbsd.org/cgi-bin/cvsweb/src/share/mk/bsd.obj.mk?rev=1.14 You might be interested in trying it out, but this is unlikely to work anywhere but OpenBSD. https://github.com/afresh1/OpenBSD-perl While we could likely change Configure to look in $tdir/{cpan,dist,ext} instead of $rsrc, which would have a similar effect, elsewhere in Configure using $tdir appeared to be to preferred solution. l8rZ, -- andrew - http://afresh1.com What are the unsurpassable real world weaknesses in OpenBSD, that you know of? -- Kevin Chadwick <ma1l1ists@yahoo.co.uk> Lots of fake people attacking the project on the mailing lists makes them a poor resource for users. -- Theo de Raadt <deraadt@cvs.openbsd.org>
From: Andrew Fresh <afresh1 [...] openbsd.org>
Subject: Re: [perl #121585] Configure shouldn't write source tree
To: "AEvar Arnfj\"ord Bjarmason via RT" <perlbug-followup [...] perl.org>
Date: Sun, 6 Apr 2014 15:07:14 -0700
Download (untitled) / with headers
text/plain 1.1k
On Sun, Apr 06, 2014 at 02:08:44PM -0700, AEvar Arnfj"ord Bjarmason via RT wrote: Show quoted text
> How do you build against a read-only source tree? Are you using some > compiler options I'm not aware of to place the *.o files somewhere > else while they're generated?
The general idea is that we create an "obj" directory, symlink the files from the source tree into it and build in the ${.OJBDIR}. $tdir is then ${.OBJDIR} but when searching for modules it ends up looking in the true source tree. See Makefile.bsdwrapper http://www.openbsd.org/cgi-bin/cvsweb/src/gnu/usr.bin/perl/Makefile.bsd-wrapper?rev=1.94 which ends up including the relevant target from bsd.obj.mk http://www.openbsd.org/cgi-bin/cvsweb/src/share/mk/bsd.obj.mk?rev=1.14 You might be interested in trying it out, but this is unlikely to work anywhere but OpenBSD. https://github.com/afresh1/OpenBSD-perl While we could likely change Configure to look in $tdir/{cpan,dist,ext} instead of $rsrc, which would have a similar effect, elsewhere in Configure using $tdir appeared to be to preferred solution. l8rZ, -- andrew - http://afresh1.com The power!!!! The nightmares!!!! The strange medication!!!!!!!!
From: Andrew Fresh <afresh1 [...] openbsd.org>
CC: Perl 5 Porters <perl5-porters [...] perl.org>
Subject: Re: [perl #121585] Configure shouldn't write source tree
To: AEvar Arnfjord Bjarmason <avarab [...] gmail.com>
Date: Sun, 6 Apr 2014 18:14:52 -0700
Download (untitled) / with headers
text/plain 1.3k
On Sun, Apr 06, 2014 at 02:08:44PM -0700, AEvar Arnfj"ord Bjarmason via RT wrote: Show quoted text
> How do you build against a read-only source tree? Are you using some > compiler options I'm not aware of to place the *.o files somewhere > else while they're generated?
The general idea is that we create an "obj" directory, symlink the files from the source tree into it and build in the ${.OJBDIR}. $tdir is then ${.OBJDIR} but when searching for modules it ends up looking in the true source tree. See Makefile.bsdwrapper http://www.openbsd.org/cgi-bin/cvsweb/src/gnu/usr.bin/perl/Makefile.bsd-wrapper?rev=1.94 which ends up including the relevant target from bsd.obj.mk http://www.openbsd.org/cgi-bin/cvsweb/src/share/mk/bsd.obj.mk?rev=1.14 You might be interested in trying it out, but this is unlikely to work anywhere but OpenBSD. https://github.com/afresh1/OpenBSD-perl While we could likely change Configure to look in $tdir/{cpan,dist,ext} instead of $rsrc, which would have a similar effect, elsewhere in Configure using $tdir appeared to be to preferred solution. l8rZ, -- andrew - http://afresh1.com What are the unsurpassable real world weaknesses in OpenBSD, that you know of? -- Kevin Chadwick <ma1l1ists@yahoo.co.uk> Lots of fake people attacking the project on the mailing lists makes them a poor resource for users. -- Theo de Raadt <deraadt@cvs.openbsd.org>
Date: Mon, 7 Apr 2014 07:17:24 -0400
To: Andrew Fresh <andrew [...] afresh1.com>
Subject: Re: [perl #121585] Configure shouldn't write source tree
From: Andy Dougherty <doughera [...] lafayette.edu>
CC: AEvar Arnfjord Bjarmason <avarab [...] gmail.com>, Perl 5 Porters <perl5-porters [...] perl.org>
Download (untitled) / with headers
text/plain 856b
On Sun, Apr 06, 2014 at 08:52:35PM -0700, Andrew Fresh wrote: Show quoted text
> On Sun, Apr 06, 2014 at 02:08:44PM -0700, AEvar Arnfj"ord Bjarmason via RT wrote:
> > How do you build against a read-only source tree? Are you using some > > compiler options I'm not aware of to place the *.o files somewhere > > else while they're generated?
> > The general idea is that we create an "obj" directory, symlink the files > from the source tree into it and build in the ${.OJBDIR}. $tdir is then > ${.OBJDIR} but when searching for modules it ends up looking in the true > source tree.
Good catch. I build all the time using Configure -Dmksymlinks, which does the same thing for you, and yes, Configure still goes back and writes in the source tree. It shouldn't. Though I haven't tested it myself, your patch looks good. -- Andy Dougherty doughera@lafayette.edu
CC: Andrew Fresh <andrew [...] afresh1.com>, AEvar Arnfjord Bjarmason <avarab [...] gmail.com>, Perl 5 Porters <perl5-porters [...] perl.org>
Subject: Re: [perl #121585] Configure shouldn't write source tree
Date: Mon, 7 Apr 2014 13:27:32 +0200
To: Andy Dougherty <doughera [...] lafayette.edu>
From: "H.Merijn Brand" <h.m.brand [...] xs4all.nl>
Download (untitled) / with headers
text/plain 1.2k
On Mon, 7 Apr 2014 07:17:24 -0400, Andy Dougherty <doughera@lafayette.edu> wrote: Show quoted text
> On Sun, Apr 06, 2014 at 08:52:35PM -0700, Andrew Fresh wrote:
> > On Sun, Apr 06, 2014 at 02:08:44PM -0700, AEvar Arnfj"ord Bjarmason via RT wrote:
> > > How do you build against a read-only source tree? Are you using some > > > compiler options I'm not aware of to place the *.o files somewhere > > > else while they're generated?
> > > > The general idea is that we create an "obj" directory, symlink the files > > from the source tree into it and build in the ${.OJBDIR}. $tdir is then > > ${.OBJDIR} but when searching for modules it ends up looking in the true > > source tree.
> > Good catch. I build all the time using Configure -Dmksymlinks, which > does the same thing for you, and yes, Configure still goes back and > writes in the source tree. It shouldn't. > > Though I haven't tested it myself, your patch looks good.
I agree, but I think it is beyond code-freeze and will have to wait for 5.21.0 -- H.Merijn Brand http://tux.nl Perl Monger http://amsterdam.pm.org/ using perl5.00307 .. 5.19 porting perl5 on HP-UX, AIX, and openSUSE http://mirrors.develooper.com/hpux/ http://www.test-smoke.org/ http://qa.perl.org http://www.goldmark.org/jeff/stupid-disclaimers/
To: Perl 5 Porters <perl5-porters [...] perl.org>
Date: Tue, 10 Jun 2014 22:47:34 -0700
From: Andrew Fresh <andrew [...] afresh1.com>
Subject: Re: [perl #121585] Configure shouldn't write source tree
Download (untitled) / with headers
text/plain 1.3k
What's the proper way to bump this ticket now that 5.21 is available to accept patches? On Mon, Apr 07, 2014 at 01:27:32PM +0200, H.Merijn Brand wrote: Show quoted text
> On Mon, 7 Apr 2014 07:17:24 -0400, Andy Dougherty > <doughera@lafayette.edu> wrote: >
> > On Sun, Apr 06, 2014 at 08:52:35PM -0700, Andrew Fresh wrote:
> > > On Sun, Apr 06, 2014 at 02:08:44PM -0700, AEvar Arnfj"ord Bjarmason via RT wrote:
> > > > How do you build against a read-only source tree? Are you using some > > > > compiler options I'm not aware of to place the *.o files somewhere > > > > else while they're generated?
> > > > > > The general idea is that we create an "obj" directory, symlink the files > > > from the source tree into it and build in the ${.OJBDIR}. $tdir is then > > > ${.OBJDIR} but when searching for modules it ends up looking in the true > > > source tree.
> > > > Good catch. I build all the time using Configure -Dmksymlinks, which > > does the same thing for you, and yes, Configure still goes back and > > writes in the source tree. It shouldn't. > > > > Though I haven't tested it myself, your patch looks good.
> > I agree, but I think it is beyond code-freeze and will have to wait for > 5.21.0
-- andrew - http://afresh1.com People who invent random theories which only defend the vendor must have been beaten as children. Beaten with sticks. At least, that's my theory. -- Theo De Raadt
From: "H.Merijn Brand" <h.m.brand [...] xs4all.nl>
Date: Wed, 11 Jun 2014 09:46:14 +0200
To: perl5-porters [...] perl.org
Subject: Re: [perl #121585] Configure shouldn't write source tree
Download (untitled) / with headers
text/plain 1.6k
On Tue, 10 Jun 2014 22:47:34 -0700, Andrew Fresh <andrew@afresh1.com> wrote: Show quoted text
> What's the proper way to bump this ticket now that 5.21 is available to > accept patches?
Replying like this is :) Committed in d611994aadec72a5ecb074ea6ec1fb111f5af31e Show quoted text
> On Mon, Apr 07, 2014 at 01:27:32PM +0200, H.Merijn Brand wrote:
> > On Mon, 7 Apr 2014 07:17:24 -0400, Andy Dougherty > > <doughera@lafayette.edu> wrote: > >
> > > On Sun, Apr 06, 2014 at 08:52:35PM -0700, Andrew Fresh wrote:
> > > > On Sun, Apr 06, 2014 at 02:08:44PM -0700, AEvar Arnfj"ord Bjarmason via RT wrote:
> > > > > How do you build against a read-only source tree? Are you using some > > > > > compiler options I'm not aware of to place the *.o files somewhere > > > > > else while they're generated?
> > > > > > > > The general idea is that we create an "obj" directory, symlink the files > > > > from the source tree into it and build in the ${.OJBDIR}. $tdir is then > > > > ${.OBJDIR} but when searching for modules it ends up looking in the true > > > > source tree.
> > > > > > Good catch. I build all the time using Configure -Dmksymlinks, which > > > does the same thing for you, and yes, Configure still goes back and > > > writes in the source tree. It shouldn't. > > > > > > Though I haven't tested it myself, your patch looks good.
> > > > I agree, but I think it is beyond code-freeze and will have to wait for > > 5.21.0
>
-- H.Merijn Brand http://tux.nl Perl Monger http://amsterdam.pm.org/ using perl5.00307 .. 5.19 porting perl5 on HP-UX, AIX, and openSUSE http://mirrors.develooper.com/hpux/ http://www.test-smoke.org/ http://qa.perl.org http://www.goldmark.org/jeff/stupid-disclaimers/
RT-Send-CC: perl5-porters [...] perl.org
Download (untitled) / with headers
text/plain 346b
On Wed Jun 11 00:46:55 2014, hmbrand wrote: Show quoted text
> On Tue, 10 Jun 2014 22:47:34 -0700, Andrew Fresh <andrew@afresh1.com> > wrote: >
> > What's the proper way to bump this ticket now that 5.21 is available > > to > > accept patches?
> > Replying like this is :) > > Committed in d611994aadec72a5ecb074ea6ec1fb111f5af31e
So closing the ticket. Tony


This service is sponsored and maintained by Best Practical Solutions and runs on Perl.org infrastructure.

For issues related to this RT instance (aka "perlbug"), please contact perlbug-admin at perl.org