A packaging question (was Re: new packaging for OS X)
On 25/04/06, Michael Wybrow <mjwybrow@...1047...> wrote:
On Mon, 24 Apr 2006, Ben Fowler wrote:
A few weeks ago I mentioned that I had a small patch to the script (I think that it should delete incomplete bundles and images before starting the build operation), intending to ask for a review, ...
I'm probably the best person to look at the patch, since I've been the most heavily involved with writing/fixing the OS X packaging code.
Back in April, I was working on OS X packaging, and whilst not entirely back up-to-date, I have finished a substantial tranche on 'distcheck' and I am back on the osx-app.sh.
One thing that I don't understand is where the 'inkscape.mo' (locale) files come from. They are in your package, but not mine. I don't see them in the /usr/local/share directory or the build tree, they don't seem to be created by 'make install'. I think that I can see a rsync step that copies them into the bundle, but it appears to copy from a directory that I don't have.
Hidden in plain view!
Grateful for any hint as to where I should be looking oe what I should be doing to achieve the construction of this part of the bundle. Otherwise I think that I am doing O.K. at the moment.
I think that there are some UI issues on the Mac - should I raise these now, or leave them till the next version?
It would be nice to have a plan for a UB, but if this cannot be achieved in this release it might be best to leave it over and concentrate on matters that we know we can get done.
It would be good to have a release or at least an FC for July 22nd, the date of Lug Radio Live.
Ben
On Sun, 11 Jun 2006, Ben Fowler wrote:
On 25/04/06, Michael Wybrow <mjwybrow@...1047...> wrote:
On Mon, 24 Apr 2006, Ben Fowler wrote:
A few weeks ago I mentioned that I had a small patch to the script (I think that it should delete incomplete bundles and images before starting the build operation), intending to ask for a review, ...
I'm probably the best person to look at the patch, since I've been the most heavily involved with writing/fixing the OS X packaging code.
Back in April, I was working on OS X packaging, and whilst not entirely back up-to-date, I have finished a substantial tranche on 'distcheck' and I am back on the osx-app.sh.
One thing that I don't understand is where the 'inkscape.mo' (locale) files come from. They are in your package, but not mine. I don't see them in the /usr/local/share directory or the build tree, they don't seem to be created by 'make install'. I think that I can see a rsync step that copies them into the bundle, but it appears to copy from a directory that I don't have.
Hidden in plain view!
Grateful for any hint as to where I should be looking oe what I should be doing to achieve the construction of this part of the bundle. Otherwise I think that I am doing O.K. at the moment.
Ben,
There were some problems with inkscape and particular combinations of the gettext mess in fink that caused the Inkscape configure script to think that it didn't have one of the necessary gettext functions available (dgettext). I spent some time looking at this problem but couldn't figure out what was going on. Possibly due to the fact that many fink pacakges (and fink selfupdate itself) used to swap gettext-dev and libgettext3-dev repeatedly. I was able to avoid the problem by setting ac_cv_lib_intl_dgettext=yes before running configure.
I no longer need this hack, and everything seems to work fine for me now using the 10.4 tree of fink and libgettext3-dev (the preferred one everyone is trying to switch to) to build Inkscape.
I think that there are some UI issues on the Mac - should I raise these now, or leave them till the next version?
I guess it depends on exactly what the problems are. Certainly they should be raised, though I don't imagine many more changes are going to make it in before the 0.44 release.
It would be nice to have a plan for a UB, but if this cannot be achieved in this release it might be best to leave it over and concentrate on matters that we know we can get done.
I think having a Universal Binary, or at least an Mactel version of 0.44 is *really* important. The later is a lot more feasible as it only requires someone with an Intel Mac to follow the existing packaging insructions and create a package. A Universal version will realistically require one of us Mac packager to have access to both a PPC and Intel Mac to sort out the process of creating Universal binaries, as well as testing early packages.
Cheers, Michael
On 12/06/06, Michael Wybrow <mjwybrow@...1047...> wrote:
On Sun, 11 Jun 2006, Ben Fowler wrote:
On 25/04/06, Michael Wybrow <mjwybrow@...1047...> wrote:
On Mon, 24 Apr 2006, Ben Fowler wrote:
One thing that I don't understand is where the 'inkscape.mo' (locale) files come from.
... I was able to avoid the problem by setting ac_cv_lib_intl_dgettext=yes before running configure.
I no longer need this hack, and everything seems to work fine for me now using the 10.4 tree of fink and libgettext3-dev (the preferred one everyone is trying to switch to) to build Inkscape.
That makes a lot of sense. Funnily enough, I can build on Panther, but not (at the moment) on Tiger. I'll let you know how I get on.
Ben
Michael Wybrow wrote:
I think having a Universal Binary, or at least an Mactel version of 0.44 is *really* important. The later is a lot more feasible as it only requires someone with an Intel Mac to follow the existing packaging insructions and create a package. A Universal version will realistically require one of us Mac packager to have access to both a PPC and Intel Mac to sort out the process of creating Universal binaries, as well as testing early packages.
I have access to an Intel Mac running Tiger and have managed to get working packages of Inkscape SVN checkouts. If you'd like these, just drop me a line.
My interpretation of the Universal Binary tutorial at developer.apple.com (http://developer.apple.com/opensource/buildingopensourceuniversal.html) tells me that one can generate Universal Binaries with access to only one architecture provided that one also has appropriate Universal versions of all involved shared libraries. Am I reading this right?
Cheers, Michael
- David
On 12/06/06, yipdw <yipdw1@...400...> wrote:
Michael Wybrow wrote:
I think having a Universal Binary, or at least an Mactel version of 0.44 is *really* important. ..
I have access to an Intel Mac running Tiger and have managed to get working packages of Inkscape SVN checkouts. If you'd like these, just drop me a line.
My interpretation of the Universal Binary tutorial at developer.apple.com (http://developer.apple.com/opensource/buildingopensourceuniversal.html) tells me that one can generate Universal Binaries with access to only one architecture provided that one also has appropriate Universal versions of all involved shared libraries. Am I reading this right?
Yes you are; probably since version 2 of XCode. I would recommend using the latest stable XCode, currently 2.3.
I am not absolutely sure what is the best way to go about this, but if you have working binaries you might want to have aaron - one of the release wardens - give you the power to upload files; this would enable other people to test them. If you are not ready for this, you will want to wait for a response from mjwybrow .
It should be straightforward, and of course many thanks for stepping up and doing this. Did you make any patches to the source tree?
Ben
Ben Fowler wrote:
On 12/06/06, yipdw <yipdw1@...400...> wrote:
My interpretation of the Universal Binary tutorial at developer.apple.com (http://developer.apple.com/opensource/buildingopensourceuniversal.html) tells me that one can generate Universal Binaries with access to only one architecture provided that one also has appropriate Universal
v>> versions of all involved shared libraries. Am I reading this right?
Yes you are; probably since version 2 of XCode. I would recommend using the latest stable XCode, currently 2.3.
Alright, I'll look into that. I haven't figured out how to get Fink or DarwinPorts to generate Universal Binaries and I'm not entirely sure if they can, but I'll keep poking at it -- any help there would be great.
As a worst-case scenario, I guess it'd be possible to compile Universal versions of all required libraries by hand, but I think it's best to avoid that as long as possible.
It should be straightforward, and of course many thanks for stepping up and doing this. Did you make any patches to the source tree?
Nope -- I just grabbed Inkscape trunk and makeosx.sh, and ran the script. Inkscape appears to run fine, although I have to admit I haven't really stressed it much just yet.
Ben
- David
On 12/06/06, yipdw <yipdw1@...400...> wrote:
Ben Fowler wrote:
On 12/06/06, yipdw <yipdw1@...400...> wrote:
My interpretation of the Universal Binary tutorial at developer.apple.com (http://developer.apple.com/opensource/buildingopensourceuniversal.html) tells me that one can generate Universal Binaries with access to only one architecture provided that one also has appropriate Universal
v>> versions of all involved shared libraries. Am I reading this right?
Yes you are; probably since version 2 of XCode. I would recommend using the latest stable XCode, currently 2.3.
All right, I'll look into that. I haven't figured out how to get Fink or DarwinPorts to generate Universal Binaries and I'm not entirely sure if they can, but I'll keep poking at it -- any help there would be great.
I think that you will find that fink has no support at present. I don't know about Darwinports, and if you are able to investigate that, the Xara folk would probably like to hear your results good or bad.
As a worst-case scenario, I guess it'd be possible to compile Universal versions of all required libraries by hand, but I think it's best to avoid that as long as possible.
I can think of circumstances when I would, in fact, be tempted to do that, but it is your call. I would have thought that the first technique to try would be to generate a PPC build using for want of a better terrm, standard methods and a second MacTel i386 build and glue them together. The next, would be to use Apple's libraries (which have been universal binaries since XCode 2.1 or perhaps earlier) and their methods. This depends on all the libraries that we need being present in Apple's kit, and the versions being suitable and I am not at all confident that this is so.
I would have thought that the most important thing would be to get some experience of this kind of activity, so that we can make some forward plans particulalry relating to the date by which we can expect to have a robust, tested, deliverable.
...I just grabbed Inkscape trunk and makeosx.sh, and ran the
script. Inkscape appears to run fine, although I have to admit I haven't really stressed it much just yet.
Wow. I can only say "Well Done!".
My simple smoke test is to create a few objects edit paths and nodes, and do boolean operations. If this works then I would call that a sign that the product is OK. I also try to reproduce any outstanding bugs, but most of the simple ones seem to be Windows only.
Ben
On Jun 12, 2006, at 6:55 AM, Ben Fowler wrote:
On 12/06/06, yipdw <yipdw1@...400...> wrote:
Ben Fowler wrote:
On 12/06/06, yipdw <yipdw1@...400...> wrote:
My interpretation of the Universal Binary tutorial at developer.apple.com (<http://developer.apple.com/opensource/ buildingopensourceuniversal.html>) tells me that one can generate Universal Binaries with access to only one architecture provided that one also has appropriate Universal
v>> versions of all involved shared libraries. Am I reading this right?
Yes you are; probably since version 2 of XCode. I would recommend using the latest stable XCode, currently 2.3.
All right, I'll look into that. I haven't figured out how to get Fink or DarwinPorts to generate Universal Binaries and I'm not entirely sure if they can, but I'll keep poking at it -- any help there would be great.
I think that you will find that fink has no support at present. I don't know about Darwinports, and if you are able to investigate that, the Xara folk would probably like to hear your results good or bad.
I've got it on authority that the Fink maintainers have no intention of going universal. Maybe someone will submit a patch and they'll be swayed, but it's a long shot.
As a worst-case scenario, I guess it'd be possible to compile Universal versions of all required libraries by hand, but I think it's best to avoid that as long as possible.
I can think of circumstances when I would, in fact, be tempted to do that, but it is your call. I would have thought that the first technique to try would be to generate a PPC build using for want of a better terrm, standard methods and a second MacTel i386 build and glue them together. The next, would be to use Apple's libraries (which have been universal binaries since XCode 2.1 or perhaps earlier) and their methods. This depends on all the libraries that we need being present in Apple's kit, and the versions being suitable and I am not at all confident that this is so.
My $0.02:
It might be possible to install (on a MacTel box), a fink/PPC and fink/Intel, and do your library builds for each. I can only imagine that running the build process has got to be unbearably slow - however - if you've already got binary .debs built for PPC in the package cache from another machine, you could probably avoid a recompile. At that point, just lipo the libraries, and configure inkscape to build universal.
(This is all theory, one hitch: are the Intel fink packages the same versions as the PPC ones?)
If you're building all of the binaries from scratch - grab the <packagename>.info and <packagename>.patch files from the fink directories and incorporate them into your build script, adding build flags for universal. I'm working with a small machine at home and just don't have the time to build everything and test it over a weekend, but that's the method I'd use as a starting point.
I would have thought that the most important thing would be to get some experience of this kind of activity, so that we can make some forward plans particulalry relating to the date by which we can expect to have a robust, tested, deliverable.
...I just grabbed Inkscape trunk and makeosx.sh, and ran the
script. Inkscape appears to run fine, although I have to admit I haven't really stressed it much just yet.
Wow. I can only say "Well Done!".
I'll echo that!
--David
Ben Fowler wrote:
On 12/06/06, yipdw <yipdw1@...400...> wrote:
All right, I'll look into that. I haven't figured out how to get Fink or DarwinPorts to generate Universal Binaries and I'm not entirely sure if they can, but I'll keep poking at it -- any help there would be great.
I think that you will find that fink has no support at present. I don't know about Darwinports, and if you are able to investigate that, the Xara folk would probably like to hear your results good or bad.
Well, I've so far not had much luck chasing down any sort of easy way to get Universal Binaries in DarwinPorts, and according to David Himelright and you, it doesn't seem like we'll have much luck with Fink either. So..
I would have thought that the first technique to try would be to generate a PPC build using for want of a better terrm, standard methods and a second MacTel i386 build and glue them together.
That should be doable, although, as mentioned, we'll have to watch out for library versions.
My simple smoke test is to create a few objects edit paths and nodes, and do boolean operations. If this works then I would call that a sign that the product is OK. I also try to reproduce any outstanding bugs, but most of the simple ones seem to be Windows only.
This build passed your smoke test :) I've also been doing some vector graphics work involving node manipulation, bitmap tracing, Boolean operations, text work, bitmap export, various fill and stroke options, alignment and distribution options, and snapping in my Inkscape builds, and things seem okay.
The only thing that I've tried to use and cannot use so far is node sculpting, but I think that's because the Alt key is bound to something else (window move) and I haven't yet figured out how to change that.
Ben
- David
On Mon, 12 Jun 2006, yipdw wrote:
Michael Wybrow wrote:
I think having a Universal Binary, or at least an Mactel version of 0.44 is *really* important. The later is a lot more feasible as it only requires someone with an Intel Mac to follow the existing packaging insructions and create a package. A Universal version will realistically require one of us Mac packager to have access to both a PPC and Intel Mac to sort out the process of creating Universal binaries, as well as testing early packages.
I have access to an Intel Mac running Tiger and have managed to get working packages of Inkscape SVN checkouts. If you'd like these, just drop me a line.
If you could use the same process and make a package for 0.44pre4 that would be great! If it looks like it works then I think we should put it up with the other file releases. Then I'll have a go at working on a Universal binary using lipo.
So we can try and make sure the packages are built with the same dependencies, I am building the PPC builds with the following packages (in addition to the standard dependencies) with newest versions of everything from fink's 10.4 unstable tree: libgettext3-dev lcms lcms-shlibs gnome-vfs2-ssl gnome-vfs2-ssl-dev gnome-vfs2-ssl-shlibs pango1-xft2 pango1-xft2-dev pango1-xf2-shlibs boost1.33 boost1.33-shlibs And just using the same steps as mentioned on the CompilingMacOsX wiki page, with just the folowing configure options: ./configure --prefix=/path/to/install/dir --enable-osxapp
My interpretation of the Universal Binary tutorial at developer.apple.com (http://developer.apple.com/opensource/buildingopensourceuniversal.html) tells me that one can generate Universal Binaries with access to only one architecture provided that one also has appropriate Universal versions of all involved shared libraries. Am I reading this right?
Yes, the real problem is needing universal versions of all the dependencies. There is currently no easy way to do this with fink. Unless anyone has a *lot* of time to spend trying to get a full fink tree to compile universally, I think our best alternative is to build each version on a different machine and attempt to merge them.
Cheers, Michael
Michael Wybrow wrote:
If you could use the same process and make a package for 0.44pre4 that would be great! If it looks like it works then I think we should put it up with the other file releases. Then I'll have a go at working on a Universal binary using lipo.
So we can try and make sure the packages are built with the same dependencies, I am building the PPC builds with the following packages (in addition to the standard dependencies) with newest versions of everything from fink's 10.4 unstable tree: libgettext3-dev lcms lcms-shlibs gnome-vfs2-ssl gnome-vfs2-ssl-dev gnome-vfs2-ssl-shlibs pango1-xft2 pango1-xft2-dev pango1-xf2-shlibs boost1.33 boost1.33-shlibs And just using the same steps as mentioned on the CompilingMacOsX wiki page, with just the folowing configure options: ./configure --prefix=/path/to/install/dir --enable-osxapp
Okay, I'm building an Inkscape distribution using libraries from Fink unstable, up-to-date as of 19:18 GMT, using those configure options. (Should --enable-lcms also be in there?)
I think our best alternative is to build each version on a different machine and attempt to merge them.
Sounds good. I'll post a followup when the build completes.
Cheers, Michael
- David
Michael Wybrow wrote:
If you could use the same process and make a package for 0.44pre4 that would be great! If it looks like it works then I think we should put it up with the other file releases. Then I'll have a go at working on a Universal binary using lipo.
So we can try and make sure the packages are built with the same dependencies, I am building the PPC builds with the following packages (in addition to the standard dependencies) with newest versions of everything from fink's 10.4 unstable tree: libgettext3-dev lcms lcms-shlibs gnome-vfs2-ssl gnome-vfs2-ssl-dev gnome-vfs2-ssl-shlibs pango1-xft2 pango1-xft2-dev pango1-xf2-shlibs boost1.33 boost1.33-shlibs And just using the same steps as mentioned on the CompilingMacOsX wiki page, with just the folowing configure options: ./configure --prefix=/path/to/install/dir --enable-osxapp
Okay, I've got an Intel Mac 0.44pre4 package up, using the libraries and configuration arguments given above:
http://www.rose-hulman.edu/~yipdw/Inkscape_0.44pre4_osx86_20060613.dmg
An additional package with --enable-lcms (seems to make sense if we're pulling lcms in :) ) is available at
http://kevin.kickmagnet.com/Inkscape_0.44pre4_lcms_osx86_20060613.dmg
MD5 sums: 5e935d3b31c875ea395c8fccbc4de533 Inkscape_0.44pre4_osx86_20060613.dmg f640d323055303fca4cf72b2885f72fc Inkscape_0.44pre4_lcms_osx86_20060613.dmg
- David
participants (4)
-
Ben Fowler
-
David Himelright
-
Michael Wybrow
-
yipdw