On Mar 14, 2005, at 5:28 PM, Dan Stowell wrote:> I don't want to pour water on this idea since a nice installer would > be helpful for the "less-techy" (had to climb a pretty steep learning > curve myself...).no worries. These are just observations.> But I do want to point out that both "fink" and "darwinports" provide > nice ways to install UNIX software such as icecast onto OS X, and they > magically fulfill the dependencies etc. Are you aware of those? It's > true that they are still primarily command-line tools,In a way, that reinforces the point. The Mac experience, until recently, did not include a terminal. There were a few terminal based applications/environments (Common LISP/MUSIC and a few pseudo-unixes), but for the most part, it was all graphical. A traditional Mac user didn't think along those lines. In general, installation of applications was a straightforward process. You clicked a button, the installer let you know if there were any dependencies or necessary restarts -- and boom -- you get to watch the fuzzy blue thermometer. Basically, I'm describing the same steps as the terminal installer, minus a few important graphical cues. However, those cues, and the overall presentation of the installer, really color the user experience. Apple seems to have made a consistent effort to keep the terminal-esque aspects of BSD hidden as much as possible. Which is probably a good idea. Many Mac users don't really even know what a terminal is. Generally, apps are installed from a disk image; some by dragging the image to the "Applications" folder, some by clicking on an actual installer. Even in OS X Server, Apple tries to move away from the terminal (though not so successfully yet). It's not a big deal by any means. However, I'd be willing to wager that Icecast would substantially increase its Mac user base with a simple GUI installer. Would make my life easier to :)> Personally, I've no idea how to go about creating an OSX installer. > Would it even be able to check and fulfill dependencies? Or would it > simply need to carry all the other libraries along with it?You could go either route. There are installers that can check installed components (by checking in /Library/Receipts/ or in this case, the typical BSD paths). If you did it without including the dependent libs, the installer can pop up a window saying "You cannot install on this disk because [you don't have libxml installed]". The installer can also provide for optional install components, where the dependencies could be installed after a version check. These features are actually provided by a preferred OS X method -- packages. They are created by /Developer/Applications/Utilities/PackageMaker.app and can have multiple pre- and post- install scripts attached to the them. It wouldn't be hard to put an installer together. I was actually going to build one just for my own ease of use. I'd be willing to share that with folks on the list if the Icecast folks don't mind. If they do, I'll scrap the idea and say no more. jaime
> It's not a big deal by any means. However, I'd be willing to wager that > Icecast would substantially increase its Mac user base with a simple > GUI installer. Would make my life easier to :)Absolutely. It's definitely worth doing.> > Personally, I've no idea how to go about creating an OSX installer. > > Would it even be able to check and fulfill dependencies? Or would it > > simply need to carry all the other libraries along with it? > > You could go either route. There are installers that can check > installed components (by checking in /Library/Receipts/ or in this > case, the typical BSD paths). If you did it without including the > dependent libs, the installer can pop up a window saying "You cannot > install on this disk because [you don't have libxml installed]". The > installer can also provide for optional install components, where the > dependencies could be installed after a version check. These features > are actually provided by a preferred OS X method -- packages. They are > created by /Developer/Applications/Utilities/PackageMaker.app and can > have multiple pre- and post- install scripts attached to the them.The "Nicecast" software for OSX http://www.rogueamoeba.com/nicecast comes with icecast and its prerequisites built in, and starts broadcasting at a single click, with no installation/config required. This is very nice indeed. So my vote would be for an OSX app with the necessary libraries bundled in, so we can have the mind-blowing ease of use that really helps people get into a piece of software. However, the problem that remains is the config. Since icecast has no real GUI, how are people going to set it going, or choose what it should be broadcasting? The XML config file has to be set up somehow, and ideally should be able to be edited without re-installing...> It wouldn't be hard to put an installer together. I was actually going > to build one just for my own ease of use. I'd be willing to share that > with folks on the list if the Icecast folks don't mind. If they do, > I'll scrap the idea and say no more.Pleeeeeeeease do it! I'm sorry I don't quite have the background knowledge to do it straight away myself. But if I can help then let me know. Dan -- http://www.mcld.co.uk
> > So my vote would be for an OSX app with the necessary libraries > bundled in, so we can have the mind-blowing ease of use that really > helps people get into a piece of software. However, the problem that > remains is the config. Since icecast has no real GUI, how are people > going to set it going, or choose what it should be broadcasting? The > XML config file has to be set up somehow, and ideally should be able > to be edited without re-installing...Really, the default config only needs a few simple things set. The installer could presumably figure appropriate values out, and insert them into the config. A user could then edit the config if they wanted to change anything. At a minimum: - Various paths need to be configured. Some of these may need to be created, if they don't already. - The hostname needs to be filled in accurately/correctly The former is trivial. The latter is, presumably, a little more work. As for "choosing what it should be broadcasting" - this isn't what icecast does. That's for the source client to decide... Note to self: figure out hostname per client by parsing Host header. Then <hostname> is just needed as a fallback for the crappy clients. Mike