X-Recipient: archive-cygwin AT delorie DOT com X-Spam-Check-By: sourceware.org Message-ID: <47E5384E.3070503@x-ray.at> Date: Sat, 22 Mar 2008 17:48:14 +0100 From: Reini Urban User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; de-AT; rv:1.8.1.12) Gecko/20080201 SeaMonkey/1.1.8 MIME-Version: 1.0 To: cygwin AT cygwin DOT com Subject: Re: Building perl-5.10.0 References: <7634A226C4C245868140309A0F3A952F AT desktop2> <2kap83p6s5819lu66sr6kmrem6o5iqm180 AT 4ax DOT com> <56E5E10621694E4A860212458ECD1E1C AT desktop2> <015b01c7bf20$a3d3e4a0$2e08a8c0 AT CAM DOT ARTIMI DOT COM> <9ea6aaa80803172015i3adb46cq3af80a70fa7ff063 AT mail DOT gmail DOT com> In-Reply-To: Content-Type: multipart/mixed; boundary="------------010404020503050501060703" X-IsSubscribed: yes Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner AT cygwin DOT com Mail-Followup-To: cygwin AT cygwin DOT com Delivered-To: mailing list cygwin AT cygwin DOT com --------------010404020503050501060703 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Sisyphus schrieb: > ----- Original Message ----- From: "Matthew Persico" >> Well after a bit of googling around, the answer is this: >> >> 1) In a Windows cmd command prompt, cd where your cygwin lives - mine >> is at c:\opt\cygwin > Mine is at C:\cygwin. > >> 2) cd .. > I first ran 'attrib cygwin' to see what was already there: Within cygwin you have better tools than the attrib or cacls. Use your shell and the posix tools, and don't add additional ACL's by using the explorer! > C:\>attrib cygwin > C:\cygwin > >> 3) attrib -r cywgin - that removed the read-only bit. Don't try it in >> Windows Explorer; it does not "stick" > > I then ran 'attrib -r cygwin' (even though it doesn't appear to be > readonly to begin with). > >> 4) Then in a Cygwin window, cd / >> 5) chmod 777 . > > That errors out as follows: > > Rob AT desktop2 / > $ chmod 777 . > chmod: changing permissions of `.': Permission denied > > After all that I get: > > Rob AT desktop2 / > $ ls -alrt > total 165 > dr-xr-xr-x 1 0 root 0 Jan 1 1970 cygdrive > dr-xr-xr-x 1 Rob None 0 Dec 1 2006 proc > d---r-x---+ 7 admin Users 0 Mar 12 12:37 var > d---r-x---+ 2 admin Users 0 Mar 12 12:37 dev > d---r-x---+ 2 admin Users 0 Mar 12 12:37 tmp > ----r-x---+ 1 admin Users 57 Mar 12 12:38 Cygwin.bat > drwxrwxrwx+ 3 Rob None 0 Mar 12 12:38 home > d---r-x---+ 12 admin Users 4096 Mar 12 12:38 .. > d---r-x---+ 12 admin Users 4096 Mar 12 12:38 . > d---r-x---+ 11 admin Users 4096 Mar 12 12:50 etc > d---r-x---+ 11 admin Users 12288 Mar 12 12:51 lib > d---r-x---+ 16 admin Users 4096 Mar 12 12:51 usr > d---r-x---+ 2 admin Users 131072 Mar 15 21:20 bin > ----r-x---+ 1 admin Users 7022 Mar 15 21:20 Cygwin.ico With such a mess, first fix your directories, than the files. Or better start from scratch. A sane initial permission concept for cygwin would help. Your big problem is that cygwin has no write access, the user even no read access! d---r-x---+ The second problem is the +, the special Windows ACL, which should not be here on a plain new cygwin installation. POSIX access() doesn't check the additional ACL's, just the underlying windows calls allow or deny access then. This can be right or this can be contradictive. > and running 'make' terminates as before. Besides the obvious not-writable lib/auto dir, note that Dynaloader requires the generated dll to be +x. Of course the blib/arch dir also as for every dir. Module::Install had a recent bug in doing POSIX::access() checks for writable dirs, which is wrong for your cases. Without the + (additional ACL's) it works fine. > This is a fairly new installation of Cygwin, btw. (I stuffed up the old > one trying to install rsync and had to delete the lot.) So there could > be some additional stuff here that needs sorting out. I have, however, > already built some perl extensions using the 5.8.8 build that was > installed when I created this fresh build of Cygwin. > > And the fact that I can build 5.8.8 from source, but not 5.10.0 leads me > to wonder whether this is instead a query that should be raised on p5p ? I would rather blaim cygwin and esp. you. Module::Install is also faulty. Note that perl 5.10 is a bit stricter, mainly in taint checking. Group writable is forbidden with 5.10 taint now. > Thanks for the reply, Matthew ... appreciated. I have a ACL sanifier in my /usr/local/bin/fixfacl, which recursively removes first the additional ACL's for directories, and then for the files, and simply overwrites it with my preferred user/group. But this a special hack just for me and my seperation into executable or non executable files. I don't care for the additional ACL's. Don't touch symlinks with setfacl or chmod! #!/bin/sh if [ "$1"="." ]; then setfacl -f /etc/facl.dir . find -type d \! -name '.*' -exec setfacl -f /etc/facl.dir '{}' \; find -type f -executable -exec setfacl -f /etc/faclx.file '{}' \; find -type f \! -executable -exec setfacl -f /etc/facl.file '{}' \; exit fi if test -d "$1"; then setfacl -f /etc/facl.dir "$1" exit fi if test -f "$1"; then test -x "$1" && setfacl -f /etc/faclx.file "$1" && exit setfacl -f /etc/facl.file "$1" exit fi The simple and destructive way would be: find -type d -exec setfacl -f /etc/facl.dir '{}' \; find -type f -exec setfacl -f /etc/facl.file '{}' \; This would destroy all executable bits. -- Reini Urban http://phpwiki.org/ http://murbreak.at/ --------------010404020503050501060703 Content-Type: application/x-director; name="facl.dir" Content-Transfer-Encoding: base64 Content-Disposition: inline; filename="facl.dir" IyBmaWxlOiAuCiMgb3duZXI6IHJ1cmJhbgojIGdyb3VwOiByb290CnVzZXI6 OnJ3eApncm91cDo6ci14Cm1hc2s6cnd4Cm90aGVyOnIteAo= --------------010404020503050501060703 Content-Type: text/plain; name="facl.file" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="facl.file" # file: lines.png # owner: rurban # group: users user::rw- group::r-- mask:rwx other:r-- --------------010404020503050501060703 Content-Type: text/plain; name="faclx.file" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="faclx.file" # file: . # owner: root # group: users user::rwx group::rwx mask:rwx other:r-x --------------010404020503050501060703 Content-Type: text/plain; charset=us-ascii -- Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple Problem reports: http://cygwin.com/problems.html Documentation: http://cygwin.com/docs.html FAQ: http://cygwin.com/faq/ --------------010404020503050501060703--