Slashdot Mirror


GoboLinux Compile -- A Scalable Portage?

LodeRunner writes "The GoboLinux team, featured about a year ago for creating a distro that does away with Unix paths such as /usr/bin and /lib and uses things like /System/Settings/X11 instead, just released a new release where they introduce their own alternative to Portage and similar systems: Compile. But is yet another source-based compilation system needed?" Read a bit more below on why the GoboLinux folks think so.

LodeRunner continues "We already have ebuilds, RPM .spec files, and whatnot. The argument for reinventing the wheel yet again was the observation that while developing apps to handle these files is easy, the task of maintaining the ever-growing database of compilation scripts is the real problem -- the huge package collection of Debian comes to mind. Compile took the extreme minimalistic approach, and its scripts ("recipes") are as small as can be: the script for a typical autoconf-based program takes two lines.

Knowledge for handling common situations is usually added to Compile itself instead of being coded in the script (for example, apps that need a separate build directory just add a needs_build_dir=yes line). The plan is to make Compile as smart as it can and the recipes as small as possible.

It remains to be seen whether this experiment of gauging differently the tradeoff between flexibility and simplicity will prove itself to be limiting or enlightening, but in the ~six months Compile has been in beta test by the people from the GoboLinux mailing list, over 500 recipes were written, ranging from Glibc and GCC up to KDE and the Linux kernel itself."

71 of 366 comments (clear)

  1. Emerge by Anonymous Coward · · Score: 3, Insightful

    When i first changed to gentoo I was gladly surprised by the power and flexability of portage. If this is half as good it is worthy a place in the linux community, no doubt about it!

    1. Re:Emerge by prepp · · Score: 2, Funny

      all i'm gonna say is this, http://funroll-loops.org , Enjoy Zealots!

      --
      "There is hopeful symbolism in the fact that flags do NOT wave in a Vacuum " --Arthur C Clarke
  2. WHAT? by ajutla · · Score: 5, Funny

    "Does away with" /usr/bin and /lib?


    BLASPHEMY!!! They're SINNERS! How DARE they mess with the SACRED directory structure! Et cetera! Et cetera! Ad nauseam!


    ...In all seriousness, though, that does sound kind of like an interesting concept--might make things easier for people to understand. Me, I like my three letter unpronounceable paths all the same :)

    1. Re:WHAT? by gspr · · Score: 2, Insightful

      Me, I like my three letter unpronounceable paths all the same :)

      I don't mean to nitpick, but /usr/bin and /lib are both easy to pronounce: "user-bin" and, well, "lib". /etc is really the only hard one.

    2. Re:WHAT? by Anne+Thwacks · · Score: 4, Insightful
      Many years ago, in the olden days I thought about this, and was quickly redirected to the "one true path" - it may be marginally more helpful TO ENGLISH SPEAKERS to have meaningful commands, directory names, etc - but unix is multi-user, and supports multiple locales, and the traditional commands, paths may not be meaningful, but can easily be aliased - each user can provide his own names, in his/her own language, but at least the standard ones are standard.

      You are welcome to alias them to whatever you want, but it wont help you understand your next door neighbour's Unix system, or your next employer's either.

      --
      Sent from my ASR33 using ASCII
    3. Re:WHAT? by gorre · · Score: 3, Insightful

      /etc is really the only hard one.

      Pronounce it the same as you would if you saw it in a normal sentence, "et cetera".

      --
      "Madness is something rare in individuals - but in groups, parties, peoples, ages it is the rule." -- Nietzsche
    4. Re:WHAT? by rgmoore · · Score: 2, Interesting

      I realize that it comes as a surprise to many people, but the standard Unix filesystem arrangment is not just a random pile of stuff that's accumulated over time. The directory structure- though not necessarily the names- is the result of a great deal of experience and careful thought. While it might make sense to rename standard directories with more descriptive names, like "libraries" instead of "lib" or even "temp" instead of "tmp", any suggestions to change their basic structure need strong justification. Just read the Filesystem Hierarch Standard, and you'll see that there are some very good reasons for the existing structure. Proposed alternatives should include a reason why their ideas will work better than the existing layout.

      --

      There's no point in questioning authority if you aren't going to listen to the answers.

  3. Uhmm by NitsujTPU · · Score: 5, Funny

    But is yet another source-based compilation system needed?

    Uhmm... I guess not, from now on, we'll do all of our compilations without source code... however that will supposedly be done.

  4. A job for ln? by sweet+'n+sour · · Score: 5, Interesting
    /System/Settings/X11
    mkdir /System

    mkdir /System/Settings

    ln -s /etc/X11/ /System/Settings/X11

    Couldn't this also work?

    1. Re: A job for ln? by mercan01 · · Score: 5, Insightful

      They're trying to replace an arcane directory structure, not mask it.

    2. Re: A job for ln? by HishamMuhammad · · Score: 2, Informative

      Actually, GoboLinux works thanks to symlinks, but the other way around. /etc is a symlink to /System/Settings, in order to maintain good Unix compatibility.

      Each app has its own Settings directory, and /System/Settings is the "global view" of every apps' settings (ie, /etc).

  5. "as simple as possible" by scrytch · · Score: 4, Interesting

    Yes, an autoconf build script contains two lines. And cannot express version dependencies that the autoconf build didn't think to maintain ... and if it did, it doesn't communicate the dependency back to the build system. It has no way to merge config files. It doesn't even have a way to enumerate the installations. But yes, you could build a system that simple, because it's good enough for some, but even slackware isn't that simple. To say nothing of distribution patches, configuration (e.g. to build xchat with gnome support or not?), and so on.

    This isn't to say it'll get to be as complex as portage, but it will probably have to get at least as complex as ports. Which then begs an obvious question...

    --
    I've finally had it: until slashdot gets article moderation, I am not coming back.
    1. Re:"as simple as possible" by HishamMuhammad · · Score: 4, Interesting

      And cannot express version dependencies that the autoconf build didn't think to maintain ... and if it did, it doesn't communicate the dependency back to the build system.

      There is a separate Resources/Dependencies file, which is automatically generated with ldd (but can be hand-tuned). This is further integrated with the GoboLinux fs-oriented concept of dependencies, so if you, say, compiled Allegro "by hand", it will not complain "Allegro is missing" just because it was not built with Compile.

      It has no way to merge config files. It doesn't even have a way to enumerate the installations.

      Could you clarify on those? I really did not get it (and maybe that's why it's not implemented :) )

      To say nothing of distribution patches, configuration (e.g. to build xchat with gnome support or not?), and so on.

      Distribution patches are applied if found in the recipe directory (a recipe is a .tar.bz2 containing a directory and some files). Configuration is being discussed in the mailing list, but currently we rely on configuration detected by autoconf et al: usually, if you have svgalib installed, program foo gets compiled with svgalib support compiled in, and vice-versa. It works well for a surprising number of packages, but yes, we are considering something like that.

      This isn't to say it'll get to be as complex as portage, but it will probably have to get at least as complex as ports. Which then begs an obvious question...

      Yes, we are aware it will get more complex over time, but by keeping minimalism as the #1 goal, let's see how "little complex" can we still be while being reasonably feature-complete for real world usage (and some would even argue we already are).

  6. What does this have over Gentoo? by Wavicle · · Score: 2, Interesting

    I strongly believe in the jungle-evolution style of distributions, so I welcome any new randomness into the population to find out if natural selection will choose it or forget it... but...

    I'm still not seeing what this has over Gentoo, other than the new directory naming scheme (which is, btw, very nice). Portage is a pretty slick system. Ebuilds are fairly simple to write. There isn't much in the way of "unnecessary extra" in them. Is this really that much better?

    --
    Education is a better safeguard of liberty than a standing army.
    Edward Everett (1794 - 1865)
    1. Re:What does this have over Gentoo? by calica · · Score: 2, Informative

      An autoconf recipe can be created with a simple "MakeRecipe http://dl.sf.net/foo/foo-1.0.tar.gz". In many ways creating a Compile recipe is easier than compiling by hand.

  7. Re:It works for Gentoo by XO · · Score: 4, Insightful

    Just because you have a Unixish kernel does not mean you have to have a Unixish operating system.

    Surprisingly, not everything in the world has to be Unix!

    --
    "Champagne for my real friends - and real pain for my sham friends!" http://ericblade.postalboard.com/
  8. The shorter the better by Moth7 · · Score: 5, Insightful

    It's much more difficult to make a typo in /etc than /System/Config. That's one of the godsends of the POSIX structure over that of Windows - /lib is easier to remember/type than C:\Windows\System32. And there are none of those annoying spaces in /usr/bin that exist in C:\Program Files.

    1. Re:The shorter the better by MyHair · · Score: 2, Insightful
      I moslty use and support Windows but am a Linux/unix fan.

      Tab auto complete....

      Nice, but annoying to have to rely on it. I use Cygwin periodically and use tab completion. Under cmd.exe I do stuff like this:
      cd prog*
      cd comm*
      or
      cd docu*
      cd [username, probably abbreviated]


      I know tab completion is enable-able in XP, but I don't think it is in 2k without a 3rd party shell.

      The annoying part about the unix filesystem is that you have to learn it. But you have to learn Windows, too. Sure, your temp files are under C:\documents and settings\username\local settings\temp, but there is a c:\winnt\temp and for some odd reason c:\documents and settings\default user\local settings\temp gets used by some apps (although this last one may be because of a distributed installer I use that runs as the SYSTEM user). Furthermore, if you're having a problem with app conflicts where do you look? For example, Netscape 4.x likes to replace MAPIDLL32.DLL which makes Outlook 97 not work. That file is under \winnt\system32, and it took me a while to figure that out. McAfee has parts of its program files under \program files\mcafee (or NAI, I forget which) and some under \program files\common files\vshield or similar.

      I absolutely hate that \winnt\system32 is the general dumping ground for all dlls, especially now that spyware/adware keeps adding to it.

      Anyway, the /usr/bin and /usr/local bin were a bit odd to figure out at first, but it's great now. /usr/bin is where all the distribution's program files go, and /usr/local/bin is where apps I download install myself go. When I need to update or remove them, the process is different so it's helpful to have them in different places.

      This isn't the best organized rebuttal ever, but I'm getting sleepy and am a bad debater to begin with.

      The unix filesystem is sweet, too:

      /etc : systemwide config files
      /home/user : user config files and data
      /usr/sbin : system tools
      /usr/bin : programs that were tested and configured for my distribution
      /usr/local/bin : programs that I downloaded, configured, compiled and installed


      Okay, I'm out of steam. Let me summarize by saying there are advantages and disadvantages to both the Windows filesystem and the unix filesystem. I prefer the unix filesystem because once you learn the basics it makes sense and is easy to maintain. Windows looks easier on the surface but has some serious maintainability problems; sure some is caused by vendors but at least in unix the structure generally keeps annoying vendor structures under /usr/local or /opt instead of having them reside in your \winnt, \winnt\system32 and \program files\common files folders all willy nilly.

    2. Re:The shorter the better by SmilingBoy · · Score: 4, Informative

      /usr used to stand for "user" in earlier Unix implementations - all "home" directories were under /usr, i.e /usr/joebloggs. A more detailed discussion can be found here.

    3. Re:The shorter the better by ameoba · · Score: 2, Insightful
      To the end user, you have a nice SIMPLE directory structure:

      %systemroot%\System32\ {--- System tools and what not

      %programfiles% {---- programs!

      %userprofile%\desktop\ {---- desktop

      %userprofile%\My Documents\ {---- documents!


      %programfiles% is -not- a simple lay out. Not only do you have every application in its own folder (that's not in your path), sometimes the application directories are hung off an intermediate directory for the vendor (such as %programfiles$\Adobe). This is assuming we're talking about a well-behaved program.

      Actually, an excellent system I've run across for managing packages is pkglink.
      It lets you install stuff to /usr/local/$PROGRAM/$VERSION and it sets symlinks to /usr/local/bin, /usr/local/etc and wherever else you might need things put. If you wanted to, you could use this for /usr as well.
      --
      my sig's at the bottom of the page.
  9. Easier to Write Build Scripts, Please? by Badam · · Score: 3, Insightful

    Having created build scripts in FreeBSD, Gentoo, Sourcemage, and Arch Linux, I think the most important goal is to use/develop a script language that newbies find easy to use.

    If you're developing a new distro, and you're concerned about giving users a reason to move, focus on making it easy for us to add to the distro!

    --

    Check out my blog: My Galaxy is Milky Way Adjacent
    1. Re:Easier to Write Build Scripts, Please? by HishamMuhammad · · Score: 4, Interesting

      If you're developing a new distro, and you're concerned about giving users a reason to move, focus on making it easy for us to add to the distro!

      Exactly! That's our #1 design goal. Most of the more active users in our mailing list have already contibuted at least one build script for their favorite app. That's how the recipe-store has grown so fast.

    2. Re:Easier to Write Build Scripts, Please? by omicronish · · Score: 2, Interesting

      Having created build scripts in FreeBSD, Gentoo, Sourcemage, and Arch Linux, I think the most important goal is to use/develop a script language that newbies find easy to use.

      If you're developing a new distro, and you're concerned about giving users a reason to move, focus on making it easy for us to add to the distro!

      For small programs, I can imagine an XML file that describes stuff like possible shortcuts to place on start menus and any file extensions that should be handled by the program. The installer can process that XML file and set up links and associations automatically. No need for a programming scripting language except in complex installation scenarios.

  10. Screenshots by Stevyn · · Score: 2, Insightful

    I like how they post lost of screenshots running window managers. They could have just said "it runs KDE." It's not like their KDE is anything special, it's the underlying structure that's different. Then again, every distro does this. However, this distro is targetting people who most likely understand this concept already.

    1. Re:Screenshots by HishamMuhammad · · Score: 2, Interesting

      On second though, your screenshots actually serve an even more valuable service; showing me that you haven't sufficiently cleaned up the directory structure to really interest me.

      I told you the screenshot were thought out to be informative! :)

      However replacing a /usr/bin with 600 programs with a /Programs with 300 directories doesn't really solve the problem. /Programs is unusable in this state.

      It is usable, only not for what you may be thinking about. /Programs was not designed to be a "user-friendly view of the system". It is designed to be the "package manager".

      User-friendly views can always be built with pretty applications (tree? give me a cool 3D layout any day ;) ). They can use meta-data, organize, show descriptions, as the fashion du jour sees fit.

      The paradox GoboLinux tries to break is that package managers rely on a (potentially out-of-date) database to know what's on the filesystem, while the files are already indexed in a always-up-to-date way by a structured database... the filesystem itself! That's why we say "the filesystem is the package manager".

      Best of all, a power user has full access to this transparent package manager. If you want you can forget completely about the GoboLinux helper scripts and manage the system only with cp, rm, ln, mv... isn't it ironic that in a sense we're actually going back to the Unix roots?

  11. Screw that by brunes69 · · Score: 5, Insightful

    Blasphemy my ass. i have been using Linux, BSD, nd other UNIX derivatives for over 10 years now, and all I can say is THANK GOD.

    The /usr/bin, /etc, /usr/local concept is totally outdated. Having apps in their own directories eases maitenence, eases administration, and eases uninstallation. Think about it, if apps were in their own self contained directories, who even *needs* a package manger? To install, you extract the tar, to uninstall, delete the directory. Boom snap, done and done.

    Other than core system configuration and core libraries the whole system uses, I ideally think *any app should be totally confined to one directory level. IMO this is one thing Windows does right.

    1. Re:Screw that by McDutchie · · Score: 5, Insightful
      Other than core system configuration and core libraries the whole system uses, I ideally think *any app should be totally confined to one directory level. IMO this is one thing Windows does right.

      Except that many applications install their own DLL cruft under C:\WINDOWS anyway (Microsoft itself being one of the worst offenders), and that the program stops working if you move the application dir around, thus eliminating completely the usefulness of this concept.

      No, the OS that does this right is Mac OS X. Installing an app is as simple as copying the application package (basically just a directory), and you can put and move it anywhere.

    2. Re:Screw that by justMichael · · Score: 2, Insightful
      I ideally think *any app should be totally confined to one directory level. IMO this is one thing Windows does right.
      You don't honestly believe that Windows apps confine themselves to \Program Files\App do you?

      If you do how do you explain the "Shared file, confirm deletion" during an uninstall?

      If you had said that OS X has it right, you would have been closer, but even some apps in OS X scatter things around during an install.
    3. Re:Screw that by Too+Much+Noise · · Score: 3, Insightful

      so what prevents your having the app in its own directory (under /usr/bin/local, for instance) and symlink the binaries to /usr/local/bin, the lib subdirectory to /usr/local/lib and so on? then uninstalling only adds the step of removing invalid symlinks after deleting the app directory - you could even make it a script (say, /usr/bin/uninstall).

    4. Re:Screw that by dindi · · Score: 2, Insightful

      naah ....
      what prevents you to install your apps with a different prefix if you think it is the good thing ? ./configure --prefix=/whatever/programname

      keeping the /usr or /usr/local does not make a sense maybe on a home linux box ...

      but when you have remote mounted filesystems, and you are organised enough to care about what belongs to the system and what is an application you installed and what belongs to the system ...

      making backups/reinstalls/upgrades is a lot better when you know what belongs to eg system, and what might be better just to reinstall and dump the backed up /usr/local/etc on it ...

      i just started working with BSD, and I see how organised it is compared to my previous experiences (mostly linux (deb/rh) and solaris) .. and while getting used to moslty edit stuff in /usr/local/etc/ broke my balls at the beginning, with a little bit of thinking now it absolutely makes sense to me .... (though i like system V rc stuff a lot better - but that's an other story)

    5. Re:Screw that by stevey · · Score: 4, Informative

      And that's exactly what scripts such as GNU Stow do.

      The 'foo' application is installed in '/usr/local/foo-v1.x', and symlinks are placed into /usr/local/bin so that it can be run.

      This makes installation and removing applications simple - and you can share your applications across NFS if you're so inclined.

    6. Re:Screw that by BrookHarty · · Score: 3, Interesting

      We use /appl (/opt in a jam) for all our software. And most production software uses its own /etc, bin,log,lib, directories. /appl/oracle with everything in its own directory.

      While this works, I dont care for gentoo's problems with Mozilla and QT3 compiles, you can recompile an application and break 2 others, gets to be a hassle. But you trade the hassle for speed, or ease (I guess)

      Sometimes I just want to rpm -ivvh --force --nodeps and forget about it. And to tell the truth, there is alot of misc stuff on linux/bsd/solaris boxes that could be cleaned up. X directories alone are garbage. /usr/X/lib/X11/fonts WTF, I've always hated how X puts files that are not libs in /lib.

      And this /share directory, how about a simple /fonts directory for the entire system?

      OSX on the other hand is set out clean, they did a good job the personal /home directories. I love how fink is just in /sw for the whole system, and doesnt touch a system file. Even my WinXP box has a cleaner directory structure.

      Think Gobolinux might be on to something. I'm gonna install it later and try it out.

    7. Re:Screw that by omicronish · · Score: 2, Interesting

      Except that many applications install their own DLL cruft under C:\WINDOWS anyway (Microsoft itself being one of the worst offenders), and that the program stops working if you move the application dir around, thus eliminating completely the usefulness of this concept.

      Most of the cruft Microsoft installs in C:\Windows are shared libraries such as msvcrt.dll and mfc42.dll. I agree that it's ugly but there's not really anywhere else they can go, especially since C:\Windows\System32 is on the path by default. Applications shouldn't even touch C:\Windows unless they're installing kernel drivers or providing system-level functionality. Any other behavior should be considered bad and unacceptable, and would be similar to Linux programs putting their program executables in /bin or /sbin.

      An interesting thing I've noticed is this shift in some places to installing shared libraries such as mfc42.dll to the program's installation directory, eliminating the need to touch C:\Windows at all and avoiding DLL hell at the expense of file space. (IIRC, there are several variants of mfc42.dll.) Yes, this would be bad on older systems with limited hard drive space, but for future OS's like Longhorn I think this would be acceptable. Even my sister's computer has over 20 GB of space right now. Hopefully the view of C:\Windows as a shared dumping ground will go away.

      The reason some programs stop working when you move them around is the storage of the program location in the registry. With .NET, Microsoft is encouraging the storage of program settings in an XML config file in the program's directory, and similar storage of user settings in their Documents and Settings folder is completely possible. I see a slow progression to Mac OS X's concept of self-contained applications.

    8. Re:Screw that by Skweetis · · Score: 2
      This was what /opt was originally designed for. Files associated with a particular package go in /opt/$PKG/bin, /opt/$PKG/lib, etc. Then, in /etc/profile, you have something like:

      for dir in /opt/*
      do
      if [ -d $dir/lib ]; then
      LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$dir/lib
      fi
      if [ -d $dir/bin ]; then
      PATH=$PATH:$dir/bin
      fi
      done
      unset dir

      (Sorry about the indentation, I don't feel like fighting with the tabs inside the <ecode> tags)

      I actually install my boxen like this now, with the base system where it usually is, then I put all my add-on software in /opt like this.

      A nitpick with your comment, IMO this is one thing Windows does right.: I actually think DOS followed this convention a lot better than Windows does. I completely agree with your arguement though, having apps confined to their own directory is the best way to do it.

      As far as renaming the directories to something less arcane, I think that's a matter of personal preference. I've been using Unix systems since the late 80's, which have all used the same general conventions with some variation (ex. Digital Unix used to (and may still, I haven't used it since '97 or so) symlink /bin to /usr/bin.), so I don't think I would like it. OTOH, someone new to Unix would probably find /programs preferable to /bin.

    9. Re:Screw that by HishamMuhammad · · Score: 2

      Incidentally, this is exactly what GoboLinux does, only with different paths... or the same paths, depending on how you look at it: there is a /usr/lib -> /System/Links/Libraries so everything is still "in its place", as far as dumb-apps-that-rely-on-hardcoded-paths can tell.

      For modern, $prefix-aware apps, this is a non-issue, of course.

      (Actually, there are other aspects to be considered, but if I delved in technicalities, that would get too long.)

    10. Re:Screw that by Chester+K · · Score: 2, Informative

      Except that many applications install their own DLL cruft under C:\WINDOWS anyway (Microsoft itself being one of the worst offenders), and that the program stops working if you move the application dir around, thus eliminating completely the usefulness of this concept.

      .NET fixes this problem by deprecating use of the registry, preferring systemwide configuration for an application to be in the application's directory, and side-by-side DLL use. They even market the whole idea as enabling "XCOPY Deployment" (referring to the DOS utility XCOPY, which can copy a whole directory tree).

      The only shared aspect it has is the GAC, which is really only intended to be used in special cases, not in a general application's use.

      --

      NO CARRIER
    11. Re:Screw that by gregmac · · Score: 2, Insightful

      An interesting thing I've noticed is this shift in some places to installing shared libraries such as mfc42.dll to the program's installation directory, eliminating the need to touch C:\Windows at all and avoiding DLL hell at the expense of file space.

      The big problem here is that if you have a vulnerability or bug in a shared library, you now have to wait for the vendors/maintainers of every package to upgrade everything. With shared libraries, you can just upgrade the library and all is well (obviously this would be a problem on windows..).

      Personally, I like the way apt handles this. You can apt-get install firefox, and it downloads all the libraries and such it needs. If a library gets upgraded, every package using it gets upgraded. Of course, this doesn't solve the problem of breaking BC, but this is less of a problem in the OSS world, where certain companies change their API's with no notice to most people, breaking many (competing) apps that rely on something...

      --
      Speak before you think
  12. Re:It works for Gentoo by Mycroft_VIII · · Score: 3, Informative

    I would tend to agree that breaking the paths would be bad, fourtunately they don't exactly do that.
    What they do is provide a more intuitive (on the surface of it, it seems so to me, need more details to be shure) path system while maintaining compatability to the old system.

    "In GoboLinux, each program resides in its own directory, such as /Programs/Xorg/6.7.0 and /Programs/KDE/3.2.2. Each file category (executables, libraries, headers) can also be accessed through unified symlink views, such as /System/Links/Libraries and /System/Links/Headers. These views match the legacy directories (/bin, /usr/include, /usr/local/share) and so on, achieving total Unix compatibility while keeping program directories completely self-contained."

    They claim thier systems is path agnostic.
    this is a good thing imho. One of my (minor) pet peves is that the standard *nix path system is largely cryptic to joe user, and a pain in the butt even for the cluefull unless you have enough *nix experience to make it automatic.
    Now if they fix cut and paste and find a way to make havening both a *nix and a windows version as close as possible to a simple recompile with a few options/flags changed the year of linux as a major desktop contender will finally arive istead of forever being next year.

    Mycroft

    --
    https://signup.leagueoflegends.com/?ref=4c3ed6600b6ea
  13. Descriptive path and OS X by mroch · · Score: 3, Insightful

    The descriptive path thing sounds a lot like what OS X does, except that it goes all the way where OS X still has /usr, /etc, etc. although hidden. I wonder if Apple can patent or has patented that?

  14. Non-issue by brunes69 · · Score: 2, Interesting

    1. With Linux entering mainstream, hardly anyone uses the command line for things like file management anymore. They use file managers like Konqueror and Nautilus.

    2. Even if you're afraid of X Windows, have you ever heard of tab completion?

    1. Re:Non-issue by Jameth · · Score: 5, Insightful

      Yeah, but who the hell starts them with capital letters?!?!?!

      Even with tab-completion, I just got my time quadrupled! Frickin' shift keys.

    2. Re:Non-issue by HishamMuhammad · · Score: 5, Informative

      Every modern shell supports case-insensitive tab-completion. And in GoboLinux, this is enabled by default.

      Try it, you might like it: on bash, just add

      set-completion-ignore-case on

      on your ~/.inputrc.

    3. Re:Non-issue by vadim_t · · Score: 4, Insightful

      There is plenty.

      There are several languages where lowercase -> uppercase -> lowercase can't be done without losing data, for example. Then there is the problem of how many languages you can support. Say, English is easy, but what happens when you find a disk with filenames in an encoding the filesystem doesn't know about?

      In Linux, it's just all bytes, it doesn't care if it's english, cyrillic or whatever. With case insensitivity it suddenly has to know what to do with cyrillic letters as well.

    4. Re:Non-issue by rgmoore · · Score: 2, Insightful

      The simplest and most obvious reason to make the computer case sensitive is because it's much, much easier to program that way. Any time you want to know if two filenames are the same you can just compare them bit by bit and see if they're exactly equal. Making the computer understand which characters are upper or lower case versions of which other ones adds some complication in a coding system as simple as ASCII. If you want to use something more complex, like Unicode, the problems multiply tremendously. Including a full Unicode library in the kernel- which you'd need to do in order to make things case insensitive at the filesystem level- would be a source of innumerable bugs and performance problems.

      --

      There's no point in questioning authority if you aren't going to listen to the answers.

  15. "Recipes" are a bad idea by RovingSlug · · Score: 5, Insightful
    Knowledge for handling common situations is usually added to Compile itself instead of being coded in the script ... It remains to be seen whether this experiment of gauging differently the tradeoff between flexibility and simplicity

    Yes, simplicity is good, but only in the context of the whole system. Here, you're just shifting complexity from the per-package scripts to the overall Compile package itself -- creating a large, central, monolithic service.

    Because it's centralized, over time, this is going to accumulate a lot crap and become opaque, obfuscated, and unmaintainable. Changes and maintenance to Compile will more significantly impact the contemporary set of recipes than, say, changes to Portage and ebuilds.

    It's easy to apply a good idea, like "simplicity", in too narrow of a scope -- to the detrement of the overall design. Better to think about it as balance of "package maintainability", "system maintainability", "barrier of entry", etc.

    1. Re:"Recipes" are a bad idea by HishamMuhammad · · Score: 2, Interesting

      Because it's centralized, over time, this is going to accumulate a lot crap and become opaque, obfuscated, and unmaintainable. Changes and maintenance to Compile will more significantly impact the contemporary set of recipes than, say, changes to Portage and ebuilds.

      That remains to be seen. The implementation so far has been pretty proof-of-concept, more to get the model stress than to get the actual code. After all, code can be rewritten, but redesign is much more costly after you have a large database of recipes "out there".

      I believe the modularity of the declarative model will help to keep the code manageable. The impact of side-effects can be much more precisely assessed.

      It's easy to apply a good idea, like "simplicity", in too narrow of a scope -- to the detrement of the overall design. Better to think about it as balance of "package maintainability", "system maintainability", "barrier of entry", etc.

      Worry not, we are not blindly going for "simplicity". We are applying it as a means to reduce package maintenance cost. A lower barrier of entry for new contributors is a welcome bonus we get.

      And better system maintainability was the reason GoboLinux itself was created, and not to "attract newbie users" as many people say -- I created it for my own use, and I'm hardly a newbie. :) I was tired of package managers that broke when I compiled stuff "by hand". I wanted a system where those things integrated seamlessly (the /usr vs. /usr/local distinction is not what I call seamless).

  16. Unix paths by Too+Much+Noise · · Score: 2, Informative

    a distro that does away with Unix paths such as /usr/bin and /lib and uses things like /System/Settings/X11 instead

    For all those thinking "what a nice idea":

    afaik LSB requires FHS which, in turn, requires the standard directory structure. Does this mean we should throw the whole LSB out now?

    And no, OSX is not LSB compliant - go figure.

    1. Re:Unix paths by sirReal.83. · · Score: 4, Informative

      And no, OSX is not LSB compliant - go figure.
      This might be nitpicking, but I think you didn't read what the first letter in 'LSB' stands for - Linux :)

  17. My shift key!! by vijaya_chandra · · Score: 2, Insightful

    When the poster mentioned
    /System/Settings/X11

    I had thought, he/she was trying to be funny

    But the distro does seem to go this way : /System/Links/Tasks ,as the article mentions

    Despite the intuitiveness, having capitals at the beginning of all the directories, particularly the ones that you are going to replace all the / dirs with, would be a major pain atleast in a case-sensitive *nix world

    The current 'X11R6' in /usr itself pains lazy idiots like me with the capital X; I shudder to think as to what'd happen if this, in case, becomes the standard (or the fad)

    (Karma be damned; I am no better than an AC anyway)

  18. the site is worth visiting by dankelley · · Score: 3, Informative
    Even if you're not interested in 'Compile', the website is well worth visiting. These folks have some new ideas, and they don't seem to be just gratuitously new. (By 'gratuitous' I'm thinking of changes that yield no new power, such as the differences in directory structures between some of the linux distos.) Slashdot readers might find it particularly interesting to consider the alternate ideas about system/application directories used in this system.

    I've recently switched from linux to OSX, and I've learned that the latter has some clever ideas (e.g. bundles) that can leverage developer effort. Given this context of learning by changing, my own view is that this new direction for linux is worth investigating ... not that I'll likely leave OSX anytime soon.

  19. The "declarative" approach by YetAnotherName · · Score: 2, Informative

    This is similar to the evolution from ant to maven for Java developers. With ant, you gave the steps necessary to build your system, an imperative approach. With maven, you instead describe the shape of your system, and it figures out the steps.

    Projects become more uniform as a result, and developers spend more time building the projects instead of maintaining build systems.

    My only concern is the knowledge or experience that's lost as a result; larger and larger groups of developers have a smaller and a smaller understanding of the tools, environment, and subtle filesystem dependencies that systems tend to have, putting the experience in in-the-field debugging into a relative tiny number of cutting edge high-priced consultants.

    By the way, I'm available. ;)

  20. Re:Sounds like Mac OS X by HishamMuhammad · · Score: 4, Informative

    To be fair, this isn't even a new idea for Mac OS X. It came from NeXT.

  21. Re:All I want is SATA RAID support by Nasarius · · Score: 4, Funny
    Debian and Gentoo are the only ones, AFAIK, that do, and they both are teh suck.

    Nice, you just managed to enrage the two biggest groups of Linux zealots in one go. :-)

    --
    LOAD "SIG",8,1
  22. Re:It works for Gentoo by Zork+the+Almighty · · Score: 2, Funny

    But... but... "It's UNIX, I know this!"

    --

    In Soviet America the banks rob you!
  23. Re:UNIX filesystem has *always* eveolved by Mr+Smidge · · Score: 2, Insightful

    Then many of the binaries in /usr/bin became 'standard' parts of distributions, and we started using /usr/local/bin for user contributed binaries ... Now /usr/local is becomming the standard place for 'standard-nonstandard' binaries

    You know what they're really for?

    * /bin is for binaries that you need to use the system in single user mode (i.e. no 'user' involved).
    * /usr/bin is for binaries that a user might want to use, like those of your average set of applications.
    * /usr/local/bin is for binaries that are local to the machine.

    Why the separation? Imagine you run a lab full of computers.. chances are that they'll have the same main applications. Well, you can have /usr mounted via NFS then. Say you have a few graphically-oriented machines in your lab.. Perhaps they would have their graphical applications in their /usr/local/bin, since they only apply to the local machine.

    I imagine that many people won't need that degree of separation, but it's there should you need it. If you don't need it and desire simplicity, just mask it with some symlinks.

    On the subject of the main article, I could imagine, with perhaps some filesystem tweaks with regards to symlinks, that a filesystem along the lines of GoboLinux's could be very useful indeed. I'm not quite so sure about *replacing* the current hierarchy rather than just *masking* it, but perhaps some two-way strategy can be used...

    I mean, if I have some apps in /usr/bin, and some local ones in /usr/local/bin, it would be great if they all transparently appeared in /Applications/$AppName..

    That would be cool.

  24. Rox by tolan-b · · Score: 2, Informative

    Rox Desktop / Filer (GTK) does this for Linux, and the filer app (sort of Nautilus replacement) is blindingly fast too.
    Scroll down to "Applications are directories"

  25. Re:It works for Gentoo by Doctor+Crumb · · Score: 3, Insightful
    Why not just install everything in /usr/bin?
    Anything I compile myself goes in /usr/local. This means that when I upgrade my system from scratch, I can easily copy all of those installed things to the new system without having to go through /usr/bin by hand. Even easier if you put /usr/local on its own partition.

    Believe it or not, most things in unix are they way they are for a reason. That reason may not be immediately obvious to you, but it still exists.

  26. I'm all for ditching the paths by Mustang+Matt · · Score: 3, Insightful

    While I'm used to the current paths, I have no hard feelings at all about ditching them.

    I don't know if there's a linux standard for what kinds of files go in each directory but everyone I ask has a different answer.

    I think switching to an updated naming scheme for directories and getting a common installation/uninstallation routine for applications that actually sticks items on the menus in the guis, etc. would be a huge move forward.

    Not that I need either feature. I don't even use a linux gui. But someday maybe I will.

    --
    The man who trades freedom for security does not deserve nor will he ever receive either. - Benjamin Franklin
    1. Re:I'm all for ditching the paths by platipusrc · · Score: 3, Informative

      If you're confused about how the directory hierarchy in a typical Unix-ish system should be setup, consult man hier, or if your distro failed to include that, see this hier man page.

      --
      And the muscular cyborg German dudes dance with sexy French Canadians
  27. Re:All I want is SATA RAID support by benjonson · · Score: 3, Funny

    Debian and Gentoo are the only ones, AFAIK, that do, and they both are teh suck.

    Nice, you just managed to enrage the two biggest groups of Linux zealots in one go. :-)

    Nonsense. Now emacs and vi: those are teh suck.
    --
    =-+
  28. Comment removed by account_deleted · · Score: 2, Insightful

    Comment removed based on user account deletion

  29. Re:Sandbox? Dependancies? by HishamMuhammad · · Score: 2

    On reading the some of the docs on the website, I see no reference to something like sandbox.

    Yes, Compile uses a sandbox. I am somewhat familiar with the Gentoo sandbox, and our approach is different. Instead of trapping system calls, we install programs using a non-priviledged user which has only temporary access to the program directory it is supposed to work on. You see, this solution uses only the standard Unix permissions system with no ld hacks, and is only possible because of the GoboLinux filesystem layout.

    Now I saw no mention of something like that on the compile documentation. Does it have something similar & where is documentation on it?

    As mentioned in the Compile page linked by the article, documentation is included in the Compile package.

    Secondly, how does it handle minimum dependancies, eg kde-3.0.0 relies on qt-3.0.0 & similar things, & won't build on versions older than that.

    Hate to "RTFA" again, but it does support dependencies, and this is also mentioned in the Compile page.

  30. Re:It works for Gentoo by Geoffreyerffoeg · · Score: 2, Interesting

    I've always wondered if we can replace the Windows NT kernel and loader with Free ones based off Linux or HURD or something...much in the style of ReactOS, but with an MS proprietary operating system, non-kernel DLLs, etc. running over the kernel. Or if the NT kernel can run a fully POSIX operating system. GNU/NT or Windows/Linux, anyone?

  31. Re:Compile doesn't use a specialized language by HishamMuhammad · · Score: 3, Informative

    Yes, I basically agree with you. The Armagetron recipe shows the "ugly" side of recipes: the support for imperative constructs, which often slip in declarative systems (ask any functional programmer...).

    In this particular example, I think the recipe author could have avoided the pre_build function using a patch instead. I recommend that very strongly to users, because patches are easier to maintain when writing a new recipe based on a existing one: patches make "rejects" when they change from one version to another, whereas that sed command will fail silently if the recipe writer is not careful. With a patch instead of the function, the Armagetron recipe would be reduced to 3 declarations.

    But yeah, there are cases when ugly imperative functions will be impossible to avoid. This most likely means that the design of the project's build system is pretty screwed up.

    What I, personally, try to do in those cases is, instead of writing a marvelously smart recipe, is to contribute a patch to the project itself. Most of the times, it's just $prefix-awareness missing, or something like that. Often the effort people spend working around build inflexibilities in distro-specific scripts would be much better spent improving the programs themselves.

    It's usually less work to "fix the program" than work around it. For a few key packages for GoboLinux I even contributed the autoconf scripts, and it was way less work than I thought it'd be. The one thing I like about this approach is that it helps the entire free software community, making for smaller recipes, smaller ebuilds, smaller specs, and so on.

    Sure, it ain't revolutionary today, but revolutions don't happen from night to day... they are secretly planned for a long time before the strike. :) What we're doing here is just trying a different approach. Time will tell if it produces revolutionary results. :)

  32. Oh! My! God! by The+Infamous+Grimace · · Score: 3, Funny

    Now if they fix cut and paste and find a way to make havening both a *nix and a windows version as close as possible to a simple recompile...


    It's George!

    (tig)
    --
    Ignorance and prejudice and fear
    Walk hand in hand
  33. Actually.. by Junta · · Score: 2, Informative

    You should look at rox which advocates and uses an appdir apporach in unices (which is actually really neat and effective, they even provide ROX-LIB which shows how it would work with repect to libraries.

    True, libraries would still have to be in some common area, but at least would have all relevant resources entirely contained in a subdirectory.

    OSX does some impure global resources stuff and some things (particularly Apple packages) are installer based and contribute to tossing things all over the place...

    --
    XML is like violence. If it doesn't solve the problem, use more.
  34. Directory names by Brandybuck · · Score: 2, Interesting

    It doesn't matter what you call system directory names, because at the desktop level and below, the average user just won't care. In other words, the typical newbie will never encounter /etc or /usr/lib. It may sound nice at first glance, but this is not something that will make the system easier for users.

    At the "desktop level", however, it does make sense. And oddly enough, this is an area where the FHS and tradition are completely silent. Do what you want and no one will care.

    The user isn't going to care that system-wide fonts go in /usr/X11R6/lib/fonts, because the user is going to push the "install font" button instead!

    --
    Don't blame me, I didn't vote for either of them!
  35. The user can never escape awkward directory trees by ReyTFox · · Score: 2, Insightful

    At least, so long as the system uses shared libraries.

    MS-DOS was the only OS(that needed an install, Atari DOS wouldn't count there) where I really had a "clean" install the whole way through. Programs went in x, drivers in y. Everything using DOS4GW had a copy of it included with the binary, no harm done. Needless to say, configs also went alongside the binary.

    Of course, this falls apart as soon as you have a more complex OS that needs things like scripting languages and windowing systems. There's just no way around shared libraries. And with shared libraries comes other kinds of shared access - to data and devices. So you have to reorganize, create new structures to hold certain kinds of files. Version conflicts, missing depends - all result from this necessity.

    Of course, these structures just won't make any sense to the end user, except as a programmer. It won't matter how much you try to polish it up. A project like this might help, but putting an end to it all would probably need something along the lines of an FS and binary format revision, to include more data like the version number and purpose for each file. Good luck doing that.... :P

  36. Re:Mac OS X by TheInternet · · Score: 2, Insightful

    It's confusing and convoluted as hell.

    In what way? What are you going to find in Applications other than applications?

    there are applications left and right

    Unless you're actively moving things around, all of your applications will end up in one place -- Applications.

    - Scott

    --
    Scott Stevenson
    Tree House Ideas
  37. Re:It works for Gentoo by Mycroft_VIII · · Score: 2, Interesting

    Ever have a vital piece of info destroyed because you accidently hit the delete button.
    Ever accidently overwrite a file because you saved with the wrong name and didn't realize it.
    This is why I see a problem with silent actions like how the highlight/middle click works.
    Not necessarily as disaterous, but it still takes a non obvious assumed action with no feedback.
    It good UI design to have clarity of action and response. People make mistakes and click the wrong thing from time to time and the dumping of the clipboard into a document because just a little to much pressure was aplied to the mousewheel while scrolling is plain asking to frustrate the user and bad ui design.
    I'll grant that mousewheels that act as a middle button probably didn't exist when this was started, but that still dosen't excuse it still doing that on a single click.
    From your last paragraph it seems as though the situation might be improving some. But you can understand my frustration when a recent set of apps (mandrake 9.1 install) couldn't even share TEXT through simple cut/copy and paste. I don't mean obscure apps, I mean a browser, a file manager and a text editor and other apps that SHOULD communicate simple text easily.
    One last partial tangent to this. Choice is good when optional, not when forced for everything. To make an analogy try going to a few stores, start with general stores that don't specialize and notice how limited thier selections per item are. Then goto a few specialty stores that cater to people with specific intrests and likely specific knowledge. notice how broad thier selection is and consider how daunting that could be to an outsider.

    Mycroft

    --
    https://signup.leagueoflegends.com/?ref=4c3ed6600b6ea
  38. GNU Gettext inspires a possible solution by neutralstone · · Score: 2, Interesting

    Not sure if this is a good idea, but here it goes:

    Directory entries could be presented to the user in his/her native language after the fashion of gettext -- i.e., the language/locale of the text would be determined by some environment variable, configuration setting, or command issued by the user.

    Imagine a user who speaks only Mandarin Chinese. Suppose he gets a list of directory entries at the root level. There he would see the Chinese words for "System", "Applications", "Library", etc.

    Later, when an English-only speaker uses the same machine, he'll see the same directory names in English, either because:

    1) He logged into his own account, which is set so that the OS presents everything, including directory entries, in his language and locale, or:
    2) He issued some command to change the language during the same session with the same account.

    Normally, this would be difficult to implement (and have it work everywhere in the operating system -- not just while in a special desktop environment). But maybe Reiser4, with its plugin architecture, will allow the job to be done with a small amount of effort; see here:

    http://www.namesys.com/v4/v4.html