From owner-freebsd-stable Mon Aug 5 4:41:26 2002 Delivered-To: freebsd-stable@freebsd.org Received: from mx1.FreeBSD.org (mx1.FreeBSD.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 4036E37B400 for ; Mon, 5 Aug 2002 04:41:23 -0700 (PDT) Received: from ans.signature.nl (ans.signature.nl [213.133.38.65]) by mx1.FreeBSD.org (Postfix) with ESMTP id 4298E43E70 for ; Mon, 5 Aug 2002 04:41:22 -0700 (PDT) (envelope-from bit@signature.nl) Received: by ans.signature.nl (Postfix, from userid 1000) id 1ECFF3E2F; Mon, 5 Aug 2002 13:41:15 +0200 (CEST) Received: from localhost (localhost [127.0.0.1]) by ans.signature.nl (Postfix) with ESMTP id 1C7AD20CC for ; Mon, 5 Aug 2002 13:41:15 +0200 (CEST) Date: Mon, 5 Aug 2002 13:41:15 +0200 (CEST) From: Bart Smit X-X-Sender: bit@localhost To: freebsd-stable@freebsd.org Subject: symlink weirdness Message-ID: <20020805124618.X62749-100000@localhost> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Sender: owner-freebsd-stable@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.ORG Any kind soul willing to comment on the following? - Running 4.6-STABLE plus ports of 2002.08.04.00.00.00 - Did a portupgrade -N cvsup-mirror - Installing seemed ok, but running the client yielded: Nonexistent prefix "/usr/local/etc/cvsup/prefixes/FreeBSD.cvs" for cvs-all/cvs" - Starting the server and connecting to it made it tell me it didn't have src-all, or ports-all, or anything else I tried. Some investigation showed that /usr/local/etc/cvsup/prefixes had: lrwxr-x--- 1 root wheel 10 Aug 5 08:40 FreeBSD.cvs -> /home/ncvs lrwxr-x--- 1 root wheel 2 Aug 5 08:40 distrib.self -> .. Changing this to... lrwxr-xr-x 1 root wheel 10 Aug 5 08:40 FreeBSD.cvs -> /home/ncvs lrwxr-xr-x 1 root wheel 2 Aug 5 08:40 distrib.self -> .. ...fixed the problem (!). Apparently my umask of 0027 badly interfered with something in the port install and/or the cvsup program. Quite amazing since symlinks are not even supposed to have file modes. At least that is what chmod(1) tells me and chmod certainly doesn't have a mechanism to change them. So changing them anyway meant deleting the links, changing my umask, and re-creating the links. I've tested symlinks and permissions 'by hand' in various ways but haven't been able to recreate any situation in which the permissions of the symlink made any difference to accessibility of the linkee. So why is it that cvsup depends on the file modes of symlinks where nothing else seems to depend on them? Does this maybe indicate an underlying problem somewhere else? Some possibilities (not mutually exclusive) that I came up with: 1 - something is wrong with cvsup. I looked at the code and stumbled upon possibility two: 2 - something is wrong with the modula 'Pathname' thingy that cvsup seems to use to check for validity before it gives that error message. 3 - or maybe something subtle is wrong with the way symlinks are handled by the OS. At least conceptually they're not completely without confusion. 4 - or something is wrong with my perception (perhaps this should even have been number one) I'm not much of a programmer, and certainly not in modula. I have been skimming through the source of cvsup and the PathnamePosix library module to see if I would understand what was going on, but I'm afraid my mind doesn't fit around all of it. Anyone else? regards, --Bart To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-stable" in the body of the message