Closed Bug 55106 Opened 25 years ago Closed 16 years ago

create regular builds for non-default components

Categories

(SeaMonkey :: Build Config, defect, P3)

defect

Tracking

(Not tracked)

RESOLVED WONTFIX
Future

People

(Reporter: dmosedale, Unassigned)

References

Details

Attachments

(1 obsolete file)

Peter Van der Beken wrote: I've been looking into automating the packaging of optional components for Mozilla into .xpi files. It doesn't look easy, but it should be doable. 1) We have to make a list similar to the packages-{mac,win,unix} in mozilla/xpinstall/packager. This list is used by pkgcp.pl to create a staging area. 2) We have to make make .jst files for every component to be installed. This is used by the makexpi.pl script in mozilla/xpinstall/packager/{win,unix} to generate the necesary install.js files needed by the installer. 3) We have to figure out how we want to build the .xpi's. We will need three build machines, one for every platform that build the tree with the optional components. A plus would be to use these machines as tinderboxes, so people see when they break optional components. We will also need one of these machines to package up the necessary .xpi's and push them to an ftp (http?) server. The other two would push their staging area to the packaging server who would build .xpi's for the three platforms. 4) We should have a script that generates an "Update Mozilla" page that lists the optional components. I think we might need two pages, one with nightlies and another with "releases"? We could get some volunteers to provide the build machines? The build scripts are currently not ready for this, they will need to be modified and that will be the hard part. They are very biased to build just the default tree. Looking forward to your thoughts, [...] Actually, this is an idea I discussed with Dan in Frankfurt. I think Mozilla should be providing .xpi files (and an "Update" page) for the optional components that we have but are not part of the default build (or Netscape 6). The ones that come to mind are: MathML/SVG, Transformiix, Component Viewer, the LDAP module and XML Extras. MathML/SVG will be the hardest because the installer should replace the layout library, and so it should only be done for milestones and releases (M18/NS 6.0). The others are all drop-in components and could be done nightly for example. I know how to build the xpi's for the drop-ins but I still need to automate the process, I'm not planning on doing this by hand. I haven't figured out how to do the version checking for the layout engine yet (if any of you has information on this, please share).
I think leaf may have some machines that can do some of this work, and also has insight into how this could fit into the regular build scheme, so I've started off by assigning this to him for his comments. I'm not sure that he's the right one to own driving this to completion, though. Thoughts?
If the goal is to have mozilla.org machines producing and staging these xpis, i'm the right person to set it up (because peter doesn't have access to those machines). Unfortunately, i haven't really made the release build process modular enough to say ``drop your additions here''... so i'm going to have to do work to incorporate whatever peter comes up with.
Status: NEW → ASSIGNED
Okay, so I'll try to come up with a patch. Leaf, could you explain to me how the installers get built currently? Does each different platform build it's own installers? Or do they push their staging area to one machine and does that machine build the xpi's then? The reason I'm asking is because I didn't find the scripts to build an installer for Macintosh in the tree. Some of these components don't change any code in the default build, eg. component viewer, XML Extras, ... but some do eg. MathML. So would we get separate build machines for the non-default components? Also, is there anything specific I should be looking out for that comes to mind, so that I can make it easy for you to integrate this?
Hi all, some comments: 1) I would like to have the packages files with the components, eg mozilla/extensions/transformiix/build/packages-transformiix instead of something in mozilla/xpinstall/packages. 2) the jst files are not used by makexpi.pl, but makejs.pl. See my patch on 22062 3) AFAI figured, building an xpi should be: a. pkgcp.pl -f some-package -d stagingpath b. makejs.pl component.jst SOMEVERSION stagingpath builddir/component.js c. makexpi.pl component stagingpath builddir There are a few hickups here, at least if we wanna have this rather automated: The most prominent one, those perl file don't like relative path names, so having DIST=$(DEPTH)/dist in autoconf.mk.in is bad. If we move to DIST=@prefix@, we get absolute pathnames for the dist dir. added dveditz for installer magic, me, and dependency on 22062. Axel
Depends on: 22062
I have most of this working on Macintosh. Part of the solution comes from my patch for bug 56997 [Patch for building an installer on Macintosh]. I'll attach a patch, you'll also need http://bugzilla.mozilla.org/ showattachment.cgi?attach_id=17337 (mozilla/build/mac/MozInstaller.pm), http:// bugzilla.mozilla.org/showattachment.cgi?attach_id=17338 (mozilla/xpinstall/ packager/mac/makejs.pl) and http://bugzilla.mozilla.org/ showattachment.cgi?attach_id=17339 (mozilla/xpinstall/packager/mac/makexpi.pl). The scripts build XPIs in :mozilla:dist_installer:xpi. I have the necessary package and jst files for Component viewer, LDAP, XMLExtras, MathML and Transformiix on Macintosh. Shall I attach them too (> 10 files)? In the patch, I assumed that the package files will be distributed over the tree, instead of all being in mozilla/xpinstall/packager (see bug 22062). I put them in a package/mac directory, named them 'packages' and put the corresponding jst file next to them. (eg. mozilla/extensions/cview/package/mac/packages and mozilla/extensions/cview/package/mac/cview.jst). I don't know how the XPInstall people were planning to do this, dveditz hasn't replied (yet?) to my e-mail asking for more info. I'll try to get to the other platforms (win/linux) after this, though my makefile knowledge is only superficial. Anyone wants to help out?
Attached patch Patch to Mac build system (obsolete) — Splinter Review
cc'ing mac build system experts for r= of patch
Attaching the packages and jst files here might be a good idea, since it would allow for easy review before checkin. I think you're right, though, that these files want to be spread out across the tree, so we should probably wait for dveditz' thoughts on that. I can't help out at this moment, as I'm drowning in other work at the moment. But I hope to be able to do the road a bit...
target=future.
Target Milestone: --- → Future
Target Milestone: Future → ---
this is build config.
Component: Miscellaneous → Build Config
Product: mozilla.org → Browser
Target Milestone: --- → Future
Version: other → Trunk
default owners so they know it's been moved?
Assignee: leaf → seawood
Status: ASSIGNED → NEW
QA Contact: granrose
back to leaf. cls isn't going to work on this.
Assignee: seawood → leaf
ok, sorry about that. I see bugs get moved between components without reassigning a lot (and usually they meant to and overlooked it) so I have a hair trigger on that :-)
Comment on attachment 17342 [details] [diff] [review] Patch to Mac build system CFM is dead.
Attachment #17342 - Attachment is obsolete: true
Assignee: leaf → cmp
Product: Browser → Seamonkey
Mass reassign of open bugs for chase@mozilla.org to build@mozilla-org.bugs.
Assignee: chase → build
Fixed by bug 286147
Status: NEW → RESOLVED
Closed: 19 years ago
Resolution: --- → FIXED
Re-opening; while it may now be possible to do this work thanks to the fixing of bug 286147, I don't believe that there are yet machines churning out such builds. If I'm wrong, feel free to re-close.
Status: RESOLVED → REOPENED
Resolution: FIXED → ---
What optional components are we talking about, then?
Mass re-assign of bugs that aren't on the build team radar, so bugs assigned to build@mozilla-org.bugs reflects reality. If there is a bug you really think we need to be looking at, please *email* build@mozilla.org with a bug number and explanation.
Assignee: build → nobody
Status: REOPENED → NEW
We have no plans on doing this for SeaMonkey. If you want something for the platform or so, please file a new bug that makes really clear what it is you want, and updated to what this really means nowadays. There's not much in this bug that makes sense with the current state of affairs without completely reformulating the actual goals.
Status: NEW → RESOLVED
Closed: 19 years ago16 years ago
Resolution: --- → WONTFIX
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: