Perl / perl5

🐪 The Perl programming language
https://dev.perl.org/perl5/
Other
1.91k stars 542 forks source link

Configure shouldn't write source tree #13712

Closed p5pRT closed 10 years ago

p5pRT commented 10 years ago

Migrated from rt.perl.org#121585 (status was 'resolved')

Searchable as RT121585$

p5pRT commented 10 years ago

From afresh1@openbsd.org

Created by afresh1@openbsd.org

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.

Perl Info ``` 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 ```
p5pRT commented 10 years ago

From afresh1@openbsd.org

0001-Don-t-let-Configure-write-to-the-src-tree.patch ```diff From 99ecece5ba3e330bc54ea4fb1ee3bc13ad66f2aa Mon Sep 17 00:00:00 2001 From: Andrew Fresh Date: Sat, 29 Mar 2014 15:33:33 -0700 Subject: [PATCH] Don't let Configure write to the src tree In OpenBSD perl is built with a read-only source tree. This was writing temp files into that part of the tree. This keeps the tempfiles in the writable obj directory. --- Configure | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/Configure b/Configure index 15b3da1..7f22025 100755 --- a/Configure +++ b/Configure @@ -22384,8 +22384,8 @@ find_extensions=' Scalar/List/Utils) this_ext="List/Util" ;; PathTools) this_ext="Cwd" ;; esac; - echo " $xs_extensions $nonxs_extensions" > $$.tmp; - if $contains " $this_ext " $$.tmp; then + echo " $xs_extensions $nonxs_extensions" > $tdir/$$.tmp; + if $contains " $this_ext " $tdir/$$.tmp; then echo >&4; echo "Duplicate directories detected for extension $xxx" >&4; echo "Configure cannot correctly recover from this - shall I abort?" >&4; @@ -22403,15 +22403,15 @@ find_extensions=' esac; echo "Ok. You will need to correct config.sh before running make." >&4; fi; - $ls -1 $xxx > $$.tmp; - if $contains "\.xs$" $$.tmp > /dev/null 2>&1; then + $ls -1 $xxx > $tdir/$$.tmp; + if $contains "\.xs$" $tdir/$$.tmp > /dev/null 2>&1; then xs_extensions="$xs_extensions $this_ext"; - elif $contains "\.c$" $$.tmp > /dev/null 2>&1; then + elif $contains "\.c$" $tdir/$$.tmp > /dev/null 2>&1; then xs_extensions="$xs_extensions $this_ext"; elif $test -d $xxx; then nonxs_extensions="$nonxs_extensions $this_ext"; fi; - $rm -f $$.tmp; + $rm -f $tdir/$$.tmp; ;; esac; done' -- 1.8.5.3 ```
p5pRT commented 10 years ago

From @avar

On Sat\, Apr 5\, 2014 at 11​:45 PM\, via RT \perlbug\-followup@​perl\.org wrote​:

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?

p5pRT commented 10 years ago

From @avar

  1896 ?? dist/IO/io_utf8   1248 ?? t/utf7171.pl   579 ?? t/.perldb   575 ?? t/db.out   377 ?? cpan/ExtUtils-Constant/ext-27508/   335 ?? cpan/ExtUtils-MakeMaker/t/rU4_crbssf/   279 ?? regcharclass.h-new   244 ?? cpan/Devel-PPPort/ppptmp/   223 ?? .deptmp   223 ?? .clist   222 ?? .cout   222 ?? .cerr   149 ?? cpan/Memoize/TESTFILE   135 ?? cpan/ExtUtils-MakeMaker/t/fq6dOngK6c/   125 ?? lib/ExtTest.pm   106 ?? cpan/ExtUtils-MakeMaker/t/3PNixnoryq/   87 ?? t/s2pt8312.sed   87 ?? t/s2pt8312.in   87 ?? t/psed   84 ?? t/s2pt8312.pl   77 ?? pod/perlmodlib.pod-new   77 ?? cpan/ExtUtils-MakeMaker/t/Y8SyMXVF5d/   75 ?? dist/Tie-File/tf4625.txt   72 ?? dist/ExtUtils-Install/t/nvE5cC6kMT/   72 ?? cpan/ExtUtils-MakeMaker/t/HSY42vGO20/   65 ?? dist/Storable/store   63 ?? cpan/Test-Simple/exit_map_test   54 ?? cpan/ExtUtils-MakeMaker/t/XS-Test/   46 ?? dist/ExtUtils-Command/t/testfile.foo   42 ?? _cflags.c   37 ?? sv.o-cae62cf9   35 ?? cpan/Time-HiRes/1484   33 ?? cpan/Time-HiRes/tmp2035   32 ?? cpan/ExtUtils-MakeMaker/t/Min-PerlVers/   31 ?? ext/XS-APItest/APItest.o-ed5101b9   30 ?? op.o-b3bf36eb   29 ?? t/h2xst.h   28 ?? cpan/ExtUtils-MakeMaker/t/crzUO3zWoi/   27 ?? cpan/Archive-Tar/t/copy   26 ?? cpan/DB_File/dbr30172   25 ?? cpan/Pod-Simple/temp.pod   25 ?? cpan/ExtUtils-MakeMaker/t/Multiple-Authors/   25 ?? cpan/ExtUtils-MakeMaker/t/8mqdFNmAkt/   23 ?? pp_ctl.o-57c2e521   23 ?? opmini.o-12849a62   23 ?? ext/re/re_comp.o-5c11a739   22 ?? regcomp.o-97463455   22 ?? cpan/ExtUtils-MakeMaker/t/i_58E2T1HI/   21 ?? t/s2pt8312r.txt   20 ?? cpan/ExtUtils-MakeMaker/t/kGdX3MGU4N/   19 ?? toke.o-06a1c537   19 ?? lib/unicore/xyzzy_alias.pl   19 ?? cpan/DB_File/xyzt   18 ?? pp.o-68df95a2   17 ?? pp_sys.o-ee5f5b64   17 ?? cpan/Unicode-Collate/Collate.o-644cbf92   16 ?? cpan/DB_File/btree1   15 ?? cpan/version/t__qyvzR.pm   15 ?? cpan/Filter-Util-Call/MyTest.pm   15 ?? cpan/Encode/JP/eu_01_t.o-ed8a5f5c   14 ?? regexec.o-7dbeb533   14 ?? pp_hot.o-fda6e685   14 ?? mg.o-507265a8   14 ?? ext/B/B.o-9ee61db1   14 ?? cpan/Unicode-Normalize/Normalize.o-938fdcff   14 ?? cpan/Filter-Util-Call/call.tst   14 ?? cpan/Encode/TW/bi_01_t.o-56f20321   14 ?? cpan/Encode/t/3022.sio   14 ?? cpan/Encode/t/3022.pio   13 ?? cpan/ExtUtils-MakeMaker/t/6El0Rfak3A/   13 ?? cpan/DB_File/DB_File.o-a52d44b0   13 ?? cpan/DB_File/btree2   13 ?? cpan/Compress-Raw-Zlib/Zlib.o-86aeeef2   12 ?? t/Oooof.pm   12 ?? dist/Storable/Storable.o-d6fd845f   12 ?? cpan/version/twEPDuNY.pm   12 ?? cpan/Encode/TW/cp_02_t.o-e1d42128   11 ?? t/embed_test.c   11 ?? perl.o-1511f771   11 ?? gv.o-0b26bdfe   11 ?? ext/POSIX/POSIX.o-01efdf35   11 ?? ext/B/xreftest.out   11 ?? cpan/Filter-Util-Call/nested   11 ?? cpan/Filter-Util-Call/MyTest5.pm   11 ?? cpan/Filter-Util-Call/MyTest4.pm   11 ?? cpan/Filter-Util-Call/MyTest3.pm   11 ?? cpan/Filter-Util-Call/MyTest2.pm   11 ?? cpan/Encode/Unicode/Unicode.o-f464f1e6   11 ?? cpan/Encode/KR/jo_02_t.o-a2dfce48   10 ?? x2p/UU/   10 ?? x2p/.deptmp   10 ?? x2p/.clist   10 ?? pp_pack.o-46661d7d   10 ?? ext/re/re_exec.o-36363990   10 ?? cpan/Encode/TW/ma_03_t.o-236a9d6e   10 ?? cpan/Encode/TW/bi_00_t.o-accf4330   10 ?? cpan/Encode/KR/ma_04_t.o-147478c6   10 ?? cpan/Encode/KR/cp_00_t.o-e9766b5c   10 ?? cpan/DB_File/SubDB.pm   10 ?? cpan/Archive-Tar/t/src/long/out.tbz   9 ?? x2p/.cout   9 ?? x2p/.cerr   9 ?? utf8.o-a01d1309   9 ?? dist/ExtUtils-Install/auto/   9 ?? cpan/Encode/KR/ks_03_t.o-8ee98003   9 ?? cpan/Encode/KR/eu_01_t.o-81dace17   9 ?? cpan/DB_File/__db.tree   8 ?? ext/PerlIO-encoding/encoding.o-8b98fa99   8 ?? doio.o-3fa3e31f   8 ?? dist/threads/threads.o-597ba8e7   8 ?? dist/Devel-SelfStubber/xParent--1294   8 ?? dist/Devel-SelfStubber/xChild--1294   8 ?? dist/Devel-SelfStubber/SSI-1294/   8 ?? dist/Devel-SelfStubber/C-1294   8 ?? dist/Devel-SelfStubber/B-1294   8 ?? dist/Devel-SelfStubber/A-1294   8 ?? cpan/Filter-Util-Call/block.pm   8 ?? cpan/DB_File/__db.xxy.db   8 ?? cpan/Compress-Raw-Bzip2/Bzip2.o-fb9f4aa4   7 ?? universal.o-323a63c1   7 ?? t/s2pt8312w.txt   7 ?? tmp18823B/   7 ?? t/file-5902   7 ?? scope.o-7259d097   7 ?? perlio.o-1fe1e893   7 ?? hv.o-ae81e971   7 ?? dist/threads/tmp6189A   7 ?? dist/Data-Dumper/Dumper.o-bf744496   7 ?? cpan/version/tSdYETO5.pm   7 ?? cpan/version/tAJl4uoQ.pm   7 ?? cpan/ExtUtils-MakeMaker/t/FJY_xy0ygR/   7 ?? cpan/Encode/JP/ji_03_t.o-364a061a   7 ?? cpan/Encode/JP/cp_00_t.o-e7ca7b42   7 ?? cpan/Encode/CN/gb_02_t.o-71e3aeea   7 ?? cpan/Encode/CN/eu_01_t.o-49406285   7 ?? cpan/Digest-SHA/SHA.o-90b0c7de   7 ?? cpan/Devel-PPPort/RealPPPort.o-d67d5ec3   7 ?? cpan/DB_File/tree   6 ?? util.o-24772ead   6 ?? t/utf7951   6 ?? t/copy6-5902   6 ?? t/copy3-5902   6 ?? proto.h-new   6 ?? pp_sort.o-3731bd7b   6 ?? locale.o-63198c25   6 ?? globals.o-119f52cd   6 ?? ext/SDBM_File/SDBM_File.o-cb4c5e3a   6 ?? ext/PerlIO-via/via.o-cf97ff9b   6 ?? ext/Hash-Util/Util.o-7f9c5c44   6 ?? dump.o-1f11f430   6 ?? doop.o-8658c2f9   6 ?? dist/Tie-File/tf4278.txt   6 ?? dist/Storable/storable-testfile.4169   6 ?? dist/ExtUtils-Install/t/BatEhme5VJ/   6 ?? cpan/version/tm3PYEw5.pm   6 ?? cpan/version/thiAAmWE.pm   6 ?? cpan/MIME-Base64/Base64.o-2536c3bd   6 ?? cpan/Encode/CN/cp_00_t.o-16f335d8   6 ?? cpan/DB_File/xxy.db   6 ?? cpan/Archive-Tar/t/src/long/out.tgz   6 ?? av.o-f52c3391   5 ?? t/copy2-5902   5 ?? t/copy1-5902   5 ?? t/Any_dbmx5323   5 ?? perlmini.o-0ab73492   5 ?? mro.o-cd965642   5 ?? keywords.o-39ce1682   5 ?? ext/XS-APItest/tmp5327A   5 ?? ext/Opcode/Opcode.o-7b7670d3   5 ?? ext/mro/mro.o-117efcd4   5 ?? ext/DynaLoader/DynaLoader.o-88b4932b   5 ?? ext/B/lib/   5 ?? ext/arybase/arybase.o-ab2cbedb   5 ?? dist/Tie-File/tf5542.txt   5 ?? dist/Math-BigInt-FastCalc/FastCalc.o-12387a7e   5 ?? dist/ExtUtils-Install/t/IgjrIaThfn/   5 ?? dist/Devel-SelfStubber/SSO-1294/   5 ?? cpan/Socket/Socket.o-c604bec0   5 ?? cpan/Scalar-List-Utils/ListUtil.o-5bdf7a6f   5 ?? cpan/ExtUtils-MakeMaker/t/dPaeQT1xiX/   5 ?? cpan/ExtUtils-MakeMaker/t/CgQ_N8Yrv9/   5 ?? cpan/Encode/JP/ma_05_t.o-9a710ea1   5 ?? cpan/Encode/JP/ji_04_t.o-958c1bb8   5 ?? cpan/Encode/CN/ma_05_t.o-30b24390   5 ?? cpan/Encode/Byte/byte_t.o-dbde6c4f   5 ?? cpan/Digest-MD5/MD5.o-327714c5   5 ?? cpan/Devel-PPPort/module2.o-c3410967   5 ?? cpan/DB_File/__db.btree2   5 ?? cpan/DB_File/btree3   5 ?? cpan/Archive-Tar/t/src/long/out.tar   4 ?? t/__db.tmp13348B   4 ?? t/__db.Any_dbmx5323   4 ?? t/copy5-5902   4 ?? t/copy4-5902   4 ?? perly.o-a99ce0b0   4 ?? perlmain.o-3c2d570b   4 ?? mathoms.o-ecf70b5a   4 ?? ext/XS-Typemap/Typemap.o-db08c52f   4 ?? ext/XS-APItest/notcore.o-f610ca96   4 ?? ext/File-Glob/Glob.o-1c78c059   4 ?? ext/File-Find/for_find/   4 ?? ext/Devel-Peek/tmp3772A   4 ?? ext/Devel-Peek/Peek.o-d7185df8   4 ?? ext/B/tmp8075B   4 ?? dist/Tie-File/tf4396.txt   4 ?? dist/Tie-File/tf3849.txt   4 ?? dist/threads/tmp7430A   4 ?? dist/threads-shared/shared.o-2d151b14   4 ?? dist/Storable/integer.3492   4 ?? dist/PathTools/Cwd.o-36f3dcc3   4 ?? dist/IO/poll.o-6f439930   4 ?? dist/IO/IO.o-f63fcc1a   4 ?? dist/ExtUtils-ParseXS/t/XSTest.o-31eaadce   4 ?? dist/ExtUtils-ParseXS/t/XSMore.o-34f9b2c7   4 ?? cpan/version/tPAQGyd7.pm   4 ?? cpan/version/tlrKJpsU.pm   4 ?? cpan/Sys-Syslog/Syslog.o-ca54caf7   4 ?? cpan/Pod-Parser/t/pod/Parser.OUT   4 ?? cpan/Module-Metadata/MB-kpbpbfD4/   4 ?? cpan/Filter-Util-Call/Call.o-265f9440   4 ?? cpan/Filter-Util-Call/call.bin   4 ?? cpan/ExtUtils-MakeMaker/t/Odd-Version/   4 ?? cpan/Encode/TW/TW.o-05e68600   4 ?? cpan/Encode/Symbol/Symbol.o-6dc9a79b   4 ?? cpan/Encode/KR/KR.o-5a328393   4 ?? cpan/Encode/JP/sh_06_t.o-7ab57d86   4 ?? cpan/Encode/JP/JP.o-434de621   4 ?? cpan/Encode/Encode.o-7da145a2   4 ?? cpan/Encode/CN/CN.o-f12d8e3e   4 ?? cpan/Devel-PPPort/module3.o-a9a2dda1   4 ?? cpan/DB_File/__db.btree3   4 ?? cpan/DB_File/__db.btree1   3 ?? t/utf8   3 ?? t/embed_test   3 ?? t/__db.tmp13273B   3 ?? t/b   3 ?? t/a   3 ?? run.o-a482ba55   3 ?? reentr.o-9d1b1581   3 ?? perlapi.o-cbc6d22f   3 ?? pad.o-3dbb855f   3 ?? opnames.h-new   3 ?? opcode.h-new   3 ?? numeric.o-aa09fc23   3 ?? META.yml-new   3 ?? ext/XS-APItest/XSUB-undef-XS_VERSION.o-a655fc51   3 ?? ext/XS-APItest/core.o-dd96c88b   3 ?? ext/Tie-Hash-NamedCapture/NamedCapture.o-92a9a438   3 ?? ext/Sys-Hostname/Hostname.o-688be1ee   3 ?? ext/PerlIO-mmap/mmap.o-ed937676   3 ?? ext/I18N-Langinfo/Langinfo.o-f724aeb2   3 ?? ext/Hash-Util-FieldHash/FieldHash.o-bd060391   3 ?? ext/attributes/attributes.o-a238d6f2   3 ?? dist/ExtUtils-ParseXS/t/XSUsage.o-b82ee715   3 ?? dist/ExtUtils-CBuilder/compilet-gtKGG.cc   3 ?? cpan/version/tTOXLg2Q.pm   3 ?? cpan/Time-HiRes/HiRes.o-b607bbe7   3 ?? cpan/Test-Harness/shell_7910.sh   3 ?? cpan/Term-Cap/tcout   3 ?? cpan/podlators/t/tmp934.pod   3 ?? cpan/podlators/t/tmp696.pod   3 ?? cpan/podlators/t/tmp1086.pod   3 ?? cpan/Pod-Checker/t/pod/Checker.OUT   3 ?? cpan/Memoize/__db.md5731   3 ?? cpan/IPC-SysV/SysV.o-5be7fcad   3 ?? cpan/ExtUtils-MakeMaker/t/yvTyOaLpDI   3 ?? cpan/ExtUtils-MakeMaker/t/YBamLd80wr   3 ?? cpan/ExtUtils-MakeMaker/t/wtFzwUNWtp   3 ?? cpan/ExtUtils-MakeMaker/t/V8AHsPRxaH   3 ?? cpan/ExtUtils-MakeMaker/t/TbWZye3rp9   3 ?? cpan/ExtUtils-MakeMaker/t/QfR10pjKSl   3 ?? cpan/ExtUtils-MakeMaker/t/NvEdfEWebI   3 ?? cpan/ExtUtils-MakeMaker/t/jaX6q8Kgzi   3 ?? cpan/ExtUtils-MakeMaker/t/bQK3Aj7WHR   3 ?? cpan/ExtUtils-MakeMaker/t/9PKRJh3ntS   3 ?? cpan/ExtUtils-MakeMaker/t/1Cea54xSJE   3 ?? cpan/Encode/EBCDIC/EBCDIC.o-c8d13d74   3 ?? cpan/Encode/CN/ir_04_t.o-6973cfd4   3 ?? cpan/Encode/CN/gb_03_t.o-ea9847a2   3 ?? cpan/Archive-Tar/t/directory/   3 ?? cpan/Archive-Tar/t/bIn2   3 ?? charclass_invlists.h-new   3 ?? caretx.o-72b82787   2 ?? t/Op_dbmx.pag   2 ?? t/Op_dbmx.dir   2 ?? t/h2xst/   2 ?? t/file.bak   2 ?? t/file   2 ?? t/echo16350   2 ?? t/DBM_Filter/   2 ?? taint.o-570b5665   2 ?? generate_uudmap.o-69524aa1   2 ?? ext/XS-APItest/XSUB-redefined-macros.o-d6673987   2 ?? ext/XS-APItest/tmp5046A   2 ?? ext/XS-APItest/tmp16990A   2 ?? ext/XS-APItest/exception.o-6b04dc7b   2 ?? ext/re/re.o-7c4e72e8   2 ?? ext/Pod-Html/4962.pod   2 ?? ext/Pod-Html/4962.o1   2 ?? ext/Pod-Html/4962.o0   2 ?? ext/Pod-Html/4962.in   2 ?? ext/PerlIO-scalar/scalar.o-15ef20dd   2 ?? ext/File-Glob/bsd_glob.o-7f8d0a37   2 ?? ext/Fcntl/Fcntl.o-ccabaa87   2 ?? ext/Devel-Peek/peek3772   2 ?? embed.h-new   2 ?? dist/Tie-File/tf4249.txt   2 ?? dist/PathTools/rel2abs2rel2852.pl   2 ?? deb.o-93b22efd   2 ?? cpan/version/tUfjQRDf.pm   2 ?? cpan/version/t034pL1u.pm   2 ?? cpan/Time-Piece/Piece.o-85f4c72c   2 ?? cpan/Pod-Simple/t/delme-6317b-out/   2 ?? cpan/Pod-Simple/t/32485.pod   2 ?? cpan/Pod-Simple/t/32461.pod   2 ?? cpan/Pod-Simple/t/32461.in   2 ?? cpan/Pod-Parser/t/pod/ParseUtils.OUT   2 ?? cpan/Pod-Parser/t/pod/InputObjects.OUT   2 ?? cpan/Pod-Parser/t/pod/Find.OUT   2 ?? cpan/Filter-Util-Call/MyTest6.pm   2 ?? cpan/Filter-Util-Call/call2.tst   2 ?? cpan/ExtUtils-MakeMaker/t/Zy7NLyO7yG   2 ?? cpan/ExtUtils-MakeMaker/t/ZBWcUI2tmy   2 ?? cpan/ExtUtils-MakeMaker/t/xZ2HrvnBcp   2 ?? cpan/ExtUtils-MakeMaker/t/xbtEWKFoRA   2 ?? cpan/ExtUtils-MakeMaker/t/wN6Iw8ltFI   2 ?? cpan/ExtUtils-MakeMaker/t/vT6XdJiwtj   2 ?? cpan/ExtUtils-MakeMaker/t/QkN2DFHXkq   2 ?? cpan/ExtUtils-MakeMaker/t/IVH84Ob21b   2 ?? cpan/ExtUtils-MakeMaker/t/Dt8HLGyP8u   2 ?? cpan/ExtUtils-MakeMaker/t/DHFLBghVod   2 ?? cpan/ExtUtils-MakeMaker/t/d6EtddPXRB   2 ?? cpan/ExtUtils-MakeMaker/t/9rLP5MudJ9   2 ?? cpan/Encode/encengine.o-904f9c1b   2 ?? cpan/Encode/Byte/Byte.o-61d0e78e   2 ?? cpan/DB_File/version.o-2d72387e   2 ?? cpan/DB_File/fruit   2 ?? cpan/Compress-Raw-Zlib/inflate.o-24e55556   2 ?? cpan/Compress-Raw-Bzip2/decompress.o-384057d9   2 ?? cpan/B-Debug/tmp.pl   2 ?? cpan/Archive-Tar/t/bIn4   2 ?? cpan/Archive-Tar/t/bIn3   2 ?? cpan/Archive-Tar/t/bIn1   2 ?? _cflags   1 ?? x2p/makefile.new   1 ?? t/utf8079   1 ?? t/txt8079   1 ?? t/thrext163667244/   1 ?? t/Io_argv2.tmp_bak   1 ?? t/Io_argv1.tmp_bak   1 ?? t/fail8101   1 ?? t/copy-5902   1 ?? t/bin8079   1 ?? stGrr9Aj   1 ?? regnodes.h-new   1 ?? reentr.h-new   1 ?? pod/perlapi.pod-new   1 ?? overload.h-new   1 ?? overload.c-new   1 ?? META.json-new   1 M cpan/DB_File/DB_File.pm   1 ?? makefile.new   1 ?? lib/warnings.pm-new   1 ?? lib/feature.pm-new   1 ?? feature.h-new   1 ?? ext/SDBM_File/sdbm/sdbm.o-30451967   1 ?? ext/SDBM_File/sdbm/pair.o-2ac26b98   1 ?? ext/SDBM_File/Op_dbmx.pag   1 ?? ext/SDBM_File/Op_dbmx.dir   1 ?? ext/Pod-Html/t/htmllink.html   1 ?? ext/Pod-Html/cacheout.html   1 ?? ext/IPC-Open3/tmp4347A   1 ?? ext/File-DosGlob/DosGlob.o-850b8868   1 ?? dist/Tie-File/t/tf5843.txt   1 ?? dist/Tie-File/tf5714.txt   1 ?? dist/Tie-File/tf5665.txt   1 ?? dist/Tie-File/tf4078.txt   1 ?? dist/Tie-File/tf3941.txt   1 ?? dist/Tie-File/tf3505.txt   1 ?? dist/Tie-File/tf3431.txt   1 ?? dist/Tie-File/tf3337.txt   1 ?? dist/Tie-File/tf3221.txt   1 ?? dist/SelfLoader/self-2981/   1 ?? dist/IO/Io.dup   1 ?? dist/ExtUtils-ParseXS/t/compilet-rJVJY.o-49ddc6aa   1 ?? dist/ExtUtils-Manifest/t/mantest/   1 ?? dist/ExtUtils-Command/t/newfile   1 ?? dist/ExtUtils-Command/t/d2utest/   1 ?? dist/ExtUtils-CBuilder/t/linkt   1 ?? dist/ExtUtils-CBuilder/t/cplust.o-87c27a28   1 ?? dist/ExtUtils-CBuilder/t/cplust.cc   1 ?? dist/ExtUtils-CBuilder/compilet-J5LnU.cc   1 ?? cpan/version/tZoTYe1r.pm   1 ?? cpan/version/trD4TvTN.pm   1 ?? cpan/version/tqXK9nqk.pm   1 ?? cpan/version/tHiCb2Tt.pm   1 ?? cpan/version/tg6o51L7.pm   1 ?? cpan/version/tfZgPXmk.pm   1 ?? cpan/version/tbZYz2_L.pm   1 ?? cpan/version/tblI1yxQ.pm   1 ?? cpan/version/tACITpEZ.pm   1 ?? cpan/version/t02360JI.pm   1 ?? cpan/Test-Harness/581-1396818077-0002   1 ?? cpan/Test-Harness/581-1396818077-0001   1 ?? cpan/Pod-Simple/t/corpus/koi8r.xml_out   1 ?? cpan/Pod-Simple/t/corpus/2202jpx.xml_out   1 ?? cpan/Pod-Parser/t/pod/Select.OUT   1 ?? cpan/Pod-Parser/t/pod/podselect.OUT   1 ?? cpan/Pod-Parser/t/pod/PlainText.OUT   1 ?? cpan/Pod-Parser/t/pod/oneline_cmds.OUT   1 ?? cpan/Pod-Parser/t/pod/multiline_items.OUT   1 ?? cpan/Pod-Parser/t/pod/headings.OUT   1 ?? cpan/podlators/t/tmp.pod   1 ?? cpan/podlators/t/tmp909.pod   1 ?? cpan/podlators/t/tmp819.pod   1 ?? cpan/podlators/t/tmp1262.pod   1 ?? cpan/podlators/t/out819.err   1 ?? cpan/Pod-Checker/t/pod/poderrs.OUT   1 ?? cpan/Memoize/md5731   1 ?? cpan/File-Temp/tmpCyTD4   1 ?? cpan/File-Temp/tmp3FKKg   1 ?? cpan/File-Path/test-5341c077-6cc0-9460/   1 ?? cpan/ExtUtils-MakeMaker/t/Z3NqZaCfbZ   1 ?? cpan/ExtUtils-MakeMaker/t/opFB9PKbC_   1 ?? cpan/ExtUtils-MakeMaker/t/Of295bbBP1   1 ?? cpan/ExtUtils-MakeMaker/t/iNjx2z4WOp   1 ?? cpan/ExtUtils-MakeMaker/t/fgU_eEwfWA   1 ?? cpan/ExtUtils-MakeMaker/t/bxXn7HALuZ   1 ?? cpan/ExtUtils-MakeMaker/t/a3OaCyjhoY   1 ?? cpan/ExtUtils-MakeMaker/t/9FgS7drqGs/   1 ?? cpan/ExtUtils-MakeMaker/t/1R0gBpNOsV   1 ?? cpan/Encode/t/.UTF-32LE_35_3022   1 ?? cpan/Encode/t/30815.utf   1 ?? cpan/Encode/Symbol/symbol_t.o-9b7c249e   1 ?? cpan/Encode/EBCDIC/ebcdic_t.o-6fec5cb8   1 ?? cpan/DB_File/__db.xyz   1 ?? cpan/DB_File/__db.fruit   1 ?? cpan/Compress-Raw-Zlib/zutil.o-fd35e089   1 ?? cpan/Compress-Raw-Zlib/trees.o-f9aaacba   1 ?? cpan/Compress-Raw-Zlib/inffast.o-43bc1347   1 ?? cpan/Compress-Raw-Zlib/deflate.o-66b7b2e9   1 ?? cpan/Compress-Raw-Zlib/compress.o-d60ac87e   1 ?? cpan/Compress-Raw-Bzip2/randtable.o-280b8455   1 ?? cpan/Compress-Raw-Bzip2/compress.o-14038deb   1 ?? cpan/Compress-Raw-Bzip2/bzlib.o-0c28a29c   1 ?? cpan/Archive-Tar/t/x/   1 ?? cpan/Archive-Tar/t/tmp-symlink.tar.gz   1 ?? cpan/Archive-Tar/t/tmp/   1 ?? cpan/Archive-Tar/t/src/long/27464   1 ?? cpan/Archive-Tar/t/bIn11

p5pRT commented 10 years ago

The RT System itself - Status changed from 'new' to 'open'

p5pRT commented 10 years ago

From andrew@afresh1.com

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.

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

p5pRT commented 10 years ago

From afresh1@openbsd.org

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.

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!!!!!!!!

p5pRT commented 10 years ago

From afresh1@openbsd.org

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.

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

p5pRT commented 10 years ago

From @doughera88

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.

--   Andy Dougherty doughera@​lafayette.edu

p5pRT commented 10 years ago

From @tux

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/

p5pRT commented 10 years ago

From andrew@afresh1.com

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​:

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

p5pRT commented 10 years ago

From @tux

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

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/

p5pRT commented 10 years ago

From @tonycoz

On Wed Jun 11 00​:46​:55 2014\, hmbrand wrote​:

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

p5pRT commented 10 years ago

@tonycoz - Status changed from 'open' to 'resolved'