Follow @Openwall on Twitter for new release announcements and other news
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date: Tue, 04 Dec 2012 14:48:53 -0600
From: Rob Landley <rob@...dley.net>
To: musl@...ts.openwall.com
Subject: Re: Summary of 1.0 marketing plan/scheme/nefarious plot from
 IRC.

On 11/30/2012 10:06:20 PM, Rich Felker wrote:
> On Fri, Nov 30, 2012 at 08:04:44PM -0600, Rob Landley wrote:
> > >>      - already tested against 8 gazillion packages
> > >>      - standards compliant
> > >>      - BSD license: static linking ok, android deployment ok
> > >Little quibble: MIT + some BSD and some PD code.
> >
> > Alas, we don't have a good group term like "copyleft" for "would be
> > public domain if our legal system wasn't screwed up".
> 
> We do have a word for this license class; it's called "permissive".
> Roughly speaking, "FOSS" breaks down into "permissive" and "copyleft"
> licenses, where the former basically allow you to do whatever you
> like, and the latter burden you with ensuring that the parties who get
> the software from you get the same freedoms you had.
> 
> > I poked Dalias on irc to clarify that we can give a single top level
> > license and call all the code "compatible" with that, and then link
> > to the big long copyright list for everybody who cares but have a
> > clear story on the website.
> 
> The MIT license text serves this purpose.

At some point we might want to collate edits to the original list.

More suggestions:

The musl-libc.org main page should probably just go to the "intro"  
page, possibly with the existing paragraph merged into the entro.


The "what are musl's dependencies" faq entry is a mix of bullet points  
and non-bullet point material that doesn't just clarify the bullet  
points. It doesn't mention what "make" you need (posix-2008 compliance  
should be enough?) and the shell is implicit (does _not_ need bash,  
posix-2008 again good enough?). Did we actually test Linux 2.6.0?

Hmmm... something like:

-----
Compiling and linking programs against musl should work with any  
conformant C compiler.

To build musl itself, you need:

   - Linux 2.6 or later
   - c99 compiler with support for gcc-style assembly language.
   - linker with weak symbol support
   - posix-2008 compliant "make" and "sh"
   - a supported CPU architecture

At present i386, x86_64, arm, mips, microblaze, and powerpc  
architectures are supported by musl.
-----

It would be nice if there was some kind of "musl manual". If you want  
to write a program against the musl libc, what does it provide? (HTML  
is fine, man page format is kinda archaic these days. This is mostly  
posix, but not entirely.)

If we're not up to writing something, w link to the POSIX spec with the  
list of functions we've implemented, plus the man7 pages on the linux  
variations thereof (and system calls) and maybe the Linux Standard Base  
sort of collectively covers it.

http://pubs.opengroup.org/onlinepubs/9699919799/ (see "system  
interfaces")
http://kernel.org/doc/man-pages/ (sections 2 and 3)
http://refspecs.linuxfoundation.org/LSB_4.1.0/LSB-Core-generic/LSB-Core-generic/book1.html  
(chapter 12)

Beyond the FAQ, there should probably be a page introductory docs. I  
generally link to the old boot floppy howto, the power up to bash  
prompt howto, and Linux From Scratch. (We could always write something  
new, but this is more "understanding how your root filesystem works"  
and "creating a small distro" than "how libc works".)

It's a pity the Linux Foundation's lack of clue keeps bleeding through  
to the point they link to a "registration required" _wrapper_frame_ for  
posix-2008 instead of the actual web version:

   http://refspecs.linuxfoundation.org/

(Yes, if you dig through the susv4 they link to and bother to register,  
it's just linking to the opengroup.org pages via a gratuitous HTML  
frame. Pity, the refspecs page is a good collection of docs other than  
that, modulo some guidance on which of the several versions of each  
thing they link to are actually useful. But that's the Linux Foundation  
for you: a collection of Fortune 500 companies tried to give money to  
this "Linux" thing and couldn't figure out who to make the check out  
to, so they created an entity for that purpose. This entity remains  
very good at cashing checks, still working on the rest.)

Anyway...

More conceptual intros: what is ELF (with a link to the specs and  
mention of alternatives like #!/interpreters, binflt, binmisc, and  
historical a.out) also WHY is ELF (it's an archive format for binary  
code, about as flexible as tar or zip but with metadata about function  
names, offsets, and permission bits instead of files/lengths/owners,  
generic enough that binflt is created from it). Dynamic vs static  
linking, "what is a dynamic linker and wazzit _do_". Something on the  
whole "how to tell if your binary is built against musl or some other  
libc, how to tell if it's statically or dynamically linked" (fun with  
ldd and readelf -a), long ago I wrote an intro to cross compiling if  
that's worth linking to... Stuff.

Rob

Powered by blists - more mailing lists

Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.