From mboxrd@z Thu Jan 1 00:00:00 1970 X-Msuck: nntp://news.gmane.org/gmane.linux.lib.musl.general/3996 Path: news.gmane.org!not-for-mail From: Rich Felker Newsgroups: gmane.linux.lib.musl.general Subject: Re: Initial draft of musl documentation/manual Date: Sun, 1 Sep 2013 12:54:22 -0400 Message-ID: <20130901165422.GU20515@brightrain.aerifal.cx> References: <20130901044106.GA29630@brightrain.aerifal.cx> <20130901134548.GA11491@cachalot> Reply-To: musl@lists.openwall.com NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Trace: ger.gmane.org 1378054473 7611 80.91.229.3 (1 Sep 2013 16:54:33 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Sun, 1 Sep 2013 16:54:33 +0000 (UTC) To: musl@lists.openwall.com Original-X-From: musl-return-4000-gllmg-musl=m.gmane.org@lists.openwall.com Sun Sep 01 18:54:36 2013 Return-path: Envelope-to: gllmg-musl@plane.gmane.org Original-Received: from mother.openwall.net ([195.42.179.200]) by plane.gmane.org with smtp (Exim 4.69) (envelope-from ) id 1VGAv5-0002Uf-Oz for gllmg-musl@plane.gmane.org; Sun, 01 Sep 2013 18:54:35 +0200 Original-Received: (qmail 14271 invoked by uid 550); 1 Sep 2013 16:54:35 -0000 Mailing-List: contact musl-help@lists.openwall.com; run by ezmlm Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: Original-Received: (qmail 14263 invoked from network); 1 Sep 2013 16:54:34 -0000 Content-Disposition: inline In-Reply-To: <20130901134548.GA11491@cachalot> User-Agent: Mutt/1.5.21 (2010-09-15) Xref: news.gmane.org gmane.linux.lib.musl.general:3996 Archived-At: On Sun, Sep 01, 2013 at 05:45:48PM +0400, Vasily Kulikov wrote: > On Sun, Sep 01, 2013 at 00:41 -0400, Rich Felker wrote: > > ### Filesystem Layout Dependencies > > > > musl aims to avoid imposing filesystem policy; however, the following > > minimal set of filesystems dependencies must be met in order for > > programs using musl to function correctly: > > > > * `/dev/null` - required by POSIX > > > > * `/tmp` - required by POSIX to exist as a directory, and used by > > various temporary file creation functions. > > > > * `/dev/shm` - must be a directory, and should have permissions 01777. > > If absent, POSIX shared memory and named semaphore interfaces will > > fail; programs not using these features will be unaffected. > > If you name such files which are important in case of specific API usage > and are not needed if this API is not used, why not enumerate other > files like: > > /dev/ptmx > /dev/pts/* > /dev/tty Indeed, these are unintentional omissions. I will add them. > Or, even better, compile two lists. The first is a list of files which > are needed for sure to be able just to start executable compiled against > musl, That list would be empty except for the dynamic linker in the case of dynamic-linked programs. > and a list of should-have files which are needed for several > non-critical APIs like POSIX shared memory stuff. The problem is that basically all of the files/devices are only needed for certain particular features, and different people will have different ideas of what's important. For non-networked use, DNS/resolv.conf is unimportant. For many programs, /proc is not important, but I'd rather not document exactly what it's needed for, since it may be needed for more things in the future. Perhaps the best structure is: Group A: These are considered "required" in the sense that they're used internally and it's intentionally undocumented where they're used, as they might be used increasingly in the future. Group B: These are considered "optional" in the sense that they're used by specific interfaces and we document which interfaces need them, so you can omit them if you won't be using the associated features. Rich