Slashdot Mirror


Novell Releases Ximian's Build Buddy

BB maintainer Dan Mills writes "The Ximian Build System, Build Buddy, is now available to the community. This is a very exciting moment, and one that many of us at Ximian have been hoping would come. Build Buddy is a cross-platform packaging system designed with flexibility, reproducibility, and automation in mind. It features: support for producing RPM, Deb, and SD (HP-UX) packages; a testing/package verification framework; Red Carpet integration; command-line and Web interfaces; support for remote build scheduling via XML-RPC; reproducible build environments (chroot jails); and flexible XML package metadata description. Sound interesting? Visit primates.ximian.com/~thunder/bb for other documentation and links. We are very interested in starting a user and developer community around BB. Feel free to contact us via the mailing lists if you have any questions."

29 comments

  1. shop and compare by 4of12 · · Score: 3, Interesting

    I'd be curious to know how buildbuddy compares to other tools like autoconf, automake, and gentoo's portage system.

    --
    "Provided by the management for your protection."
    1. Re:shop and compare by Directrix1 · · Score: 2, Funny

      One way to find out:
      emerge buildbudy --pretend

      --
      Occam's razor is the blind faith in the natural selection of least resistance and in universal oversimplification. -- EF
    2. Re:shop and compare by v_thunder · · Score: 2, Informative

      BB is not an autotools replacement. Its primary purpose is packaging.

      A typical setup to build something with BB will use autotools, or MakeMaker, or whatever the module requires to prepare, build, and install.

      As for the portage system, I have not looked at it much, but I think that it should not be hard to add support to BB for gentoo's binary packages.

      HTH,
      -Dan

  2. Packages by Fubar420 · · Score: 1

    I'm not downloading till they have .debs of it...

    --
    -- (appended to the end of comments you post, 120 chars)
  3. Are you serious? by Cecil · · Score: 3, Interesting

    A build system with the objective of being less arcane than autoconf? HOORAY!

    Seriously though, build systems is one place where, despite all its bugs and shortcomings, Microsoft Visual Studio kicks the shit out of autoconf/jam/whatever else. It's not cross platform nor very configurable, admittedly, but as far as ease of use goes it is in an entirely different universe from standard UNIX build systems.

    Hopefully Build Buddy can strike a decent balance between ease of use and configurability. I'm looking forward to checking it out.

    1. Re:Are you serious? by saden1 · · Score: 3, Informative

      Huh? Are you talking about compiling or building a distribution package?

      You have to use MSI build tool to package your application for windows platform now (safest and best method according to MS) and VS has a crappy packaging tool. And if you have ever used one of the commercial MSI build tools you know it is not easy. I must say though that Wise Installer is one of the best out there but its flexibility leaves much to be desired. Still, it is better than InstallShield but still pain in the ass if you want to do complex stuff.

      --

      -----
      One is born into aristocracy, but mediocrity can only be achieved through hard work.
    2. Re:Are you serious? by be-fan · · Score: 2, Insightful

      You've obviously never used SCONS.

      --
      A deep unwavering belief is a sure sign you're missing something...
    3. Re:Are you serious? by zulux · · Score: 3, Informative

      You've obviously never used SCONS.

      I second that: SCONS kicks ass!!!

      More info: here

      --

      Moneyed corporations, non-working 'poor' and criminal prisoners are turning productive citizens into tax-slaves.

    4. Re:Are you serious? by JanneM · · Score: 1

      Well, if you remove the requirement of being cross-platform or being very configurable, it isn't all that hard to create a simple build system anymore, now is it? Most of the mess that is in the (horrible, I agree) auto* tools is due to those two requirements.

      --
      Trust the Computer. The Computer is your friend.
    5. Re:Are you serious? by saden1 · · Score: 1

      All I have to say is even with Windows you have dll hell! What works on win98 don't always work on win2k. Windows system is indeed a nightmare when it comes to getting your application to work on all flavors of it.

      --

      -----
      One is born into aristocracy, but mediocrity can only be achieved through hard work.
    6. Re:Are you serious? by Haeleth · · Score: 3, Informative

      Microsoft Visual Studio kicks the shit out of autoconf

      Apples and oranges. The whole PURPOSE of autoconf is to compile code on multiple disparate platforms. If you're only writing for one platform, you'd be an idiot to use autoconf. And if you're using Visual Studio, you're only writing for one platform - by definition.

    7. Re:Are you serious? by Cecil · · Score: 1

      Both, I suppose.

      Visual Studio admittedly does not do the packaging part itself, but MSDN (which is basically yet another expensive required component of VS) includes an MSI builder, if I am not mistaken. They aren't ridiculously easy, say, compared to Wise. But they are still a whole lot easier than autoconf/automake.

      What other posters have said is true, though. Most of the difficulty in autotools is related to the crossplatform nature. Although really, I think a few well placed default configurations could fix a lot of that. Still, it was a bit foolish of me to gloss over that aspect.

    8. Re:Are you serious? by Cecil · · Score: 1

      True. I glossed over that aspect, and that's my fault. However, the blatant nastiness that is autotools could really be significantly improved by simply adding and maintaining some groups of common, default setups. The whole thing is kludged together with macros, so it isn't like it'd be technically difficult. I'd offer to do it, if I could figure out how the damn tools work.

      Even still, it's not a very well thought-through system. If it was really targetted at cross platform builds, there is no reason why I should routinely have to write some of my own shell scripting, very likely to not be cross-platform compatible, into my configure script because for whatever reason the autoconf methods are unable to do (or correctly do) what I want.

      Hell, they don't even know how to operate ld on different systems. If there is anything in the world that I would rather have my build system deal with, the every-OS-different-flavour of ld would be it. Why should I have to tell it how to build and link a dynamic library depending on which OS it has detected (which seems to be about all it's really good for)

      And don't even get me started on autoconf's notorious history of breaking inter-version compatability. "this configure script requires version x.y of autoconf... no, not 'or higher'" Gah.

    9. Re:Are you serious? by JanneM · · Score: 1

      And again, I fully agree with you - they are horrible, kludgy, ad-hoc and messy. And as you say, they persist in changing important parts of the functionality in incompatible ways between versions - right now I have four different versions of automake installed (1.4 to 1.7) because the devels can evidently not be bothered to actually keep compatibility between minor versions.

      That said, having a build system to handle all Unix-like OS:es _will_ be complex and messy - not nearly as complex and messy as the sorry excuse we have now, but still significantly more complex than a tool made for one, tightly controlled common group of OS:es.

      --
      Trust the Computer. The Computer is your friend.
    10. Re:Are you serious? by spitzak · · Score: 1

      That's a little bogus. If all I wanted to do was change the set of C files to compile and change the libraries to link with and did not worry about cross platform, I could do that easily by editing a Makefile. In fact it is far easier to add/remove a C file from a Makefile than from VC++.

      Now admittedly creating the Makefile to get to the point where you can match VC++ is really a pain in the ass and the result is incredibly ugly. But that is like saying VC++ is a pain because you have to write it from scratch, ignoring the fact that Microsoft convienently sells you one they already wrote for you.

    11. Re:Are you serious? by sashang · · Score: 1

      And if you're using Visual Studio, you're only writing for one platform - by definition.

      not really - you can customize the build process in visual studio to use a different compiler (like gcc) if you wanted to.

    12. Re:Are you serious? by bangular · · Score: 1

      The problem isn't autoconf. Autoconf is a hack to compensate for the defencies of Automake. And the basic idea of needing a scriping/macro language to figure out what packages are installed and how the system is laid out is going to have to be there as long there is no standard file(s) that contains all package and system information. I think another language besides m4 should be used (perl or python?). In fact, tools looking to replace autoconf do in fact use python (haven't seen any perl yet though). I think a lot of people fail to realize that most OSS comes in the form of ./configure && make && make install
      Even those .deb, .rpm, .tgz binary packages are usually made with binaries that were compiled with the help of autoconf. Even gentoo's ebuild system uses autoconf.

    13. Re:Are you serious? by dominic.laporte · · Score: 2, Interesting

      see also phing

    14. Re:Are you serious? by v_thunder · · Score: 1

      I think BB's biggest strength is precisely its cross-platform abilities.

      This project was born when at Ximian we realized that we were duplicating a lot of work when creating similar packages for multiple distributions. Many times, even information across packaging systems (e.g., between rpm and deb equivalents of the same module) is shared.

      So at heart, BB is an attempt to unify to some extent these different packaging systems, across multiple platforms. BB is the reason Ximian was able to ship Ximian Desktop on so many platforms--even though the distribution team (which I was a part of) was never very big.

      Will it help a developer who wants to make a one-off package? Maybe. If not, I'd certainly like to improve BB so it can. Maybe that means IDE integration, or maybe it means something else. But however we get there, ease of use is a serious goal for me.

      -Dan

    15. Re:Are you serious? by Anonymous Coward · · Score: 0

      pffft, you can hardly compare Phing to SCONS.

      SCONS is easy that's the key.

      Phing uses, get this, XML files. Blech. Complicated, not easily editable, it's the worst of all worlds.

      SCONS uses text files with a simple syntax. Most of the settings have sane default so building simple projects is simple and you only need to get complicated when your build is complicated.

      See, that's the problem with garbage like autoconf/automake. Way, way too complex. Too many tools, too many scripts, too many dependancies. Even simple projects are insanely complicated. Phing has the same problem but for different reasons.

    16. Re:Are you serious? by Anonymous Coward · · Score: 0

      ya, XML is ass crap for most purposes.

      For example with Phing you can't have normal variables in XML so you have to use this insane verbose complex XML syntax for setting a propery. And it just gets worse from there.

      When will people learn that XML is pretty ass for most purposes. Same with Java and all the other popular crap out there. Pure crap, all of it.

  4. Build Buddy? by Anonymous Coward · · Score: 0

    Is that anything like a "Bonzi Buddy"?

  5. your buddy by Spy+Hunter · · Score: 2, Funny
    Yes, the folks at Ximian are so enamored of monkeys that they made "Build Buddy", a purple bonobo that wants to be your software development friend.

    He talks to you!
    He can search the Internet for you!
    He can write your Makefiles!
    He will give you helpful hints on your compile errors!
    He can tell jokes!
    He will remind you to document your code!
    He knows lots of trivia questions about C++ syntax!
    Best of all, he's FREE!
    Download your very own "Build Buddy" and make a new friend today!

    Note for stupid people: the preceeding was entirely made up.

    --
    main(c,r){for(r=32;r;) printf(++c>31?c=!r--,"\n":c<r?" ":~c&r?" `":" #");}
  6. But... by Mikkeles · · Score: 2, Funny
    "It features: support for producing RPM, Deb, and SD (HP-UX) packages; a testing/package verification framework; Red Carpet integration; command-line and Web interfaces; support for remote build scheduling via XML-RPC; reproducible build environments (chroot jails); and flexible XML package metadata description."

    But can it read mail?

    --
    Great minds think alike; fools seldom differ.
    1. Re:But... by v_thunder · · Score: 2, Informative

      It cannot read mail, sorry. But it can send it :-)

      -Dan

  7. Ahem, KDevelop by Anonymous Coward · · Score: 0

    In case it has escaped your notice, KDevelop is a perfectly usable, very friendly, and very configurable was of managing autoconf. Imagine that. An open-source IDE to manage cross-platform building of packages through a proven standard (Did I say standard? I meant it.)