Closed Bug 330421 Opened 18 years ago Closed 18 years ago

Allow arbitrary replacement of embed.jar members

Categories

(Camino Graveyard :: General, defect)

1.8 Branch
PowerPC
macOS
defect
Not set
normal

Tracking

(Not tracked)

RESOLVED FIXED

People

(Reporter: mark, Assigned: mark)

References

Details

(Keywords: fixed1.8.0.2, fixed1.8.1)

Attachments

(1 file, 1 obsolete file)

Right now, we're stuck with the embed.jar that the core gives us.  I landed a custom icon on the 1.0 minibranch to avoid obscene ugliness (bug 312501), but there should be a more workable solution, even if it is only temporary and embedding is eventually fixed to not be so evil about this stuff.

My current solution is to provide a directory (mozilla/camino/embed-replacements) that serves as a hierarchy containing files to replace in (or add to) embed.jar.  Processing on embed.jar would occur prior to building Camino with xcodebuild.
Attached patch Replace members of embed.jar (obsolete) — Splinter Review
zip options used: -r (recusive), -0 (no compression), -D (don't add members for directories), -X (don't add extended Unix attributes).  This causes replaced/added members to exist in the zip file in the same way that they would if they had been added the "normal" way by make-jars.pl.

To use this, create a directory mozilla/camino/embed-replacements.  To use it to beautify the error pages (bug 312501), place attachment 199596 [details] at mozilla/camino/embed-replacements/skin/classic/global/icons/alert-exclam.gif.
Attachment #214971 - Flags: superreview?(mikepinkerton)
Attachment #214971 - Flags: review?(sfraser_bugs)
Comment on attachment 214971 [details] [diff] [review]
Replace members of embed.jar

Oh, this doesn't exclude CVS crap in non-objdir builds.
Attachment #214971 - Flags: superreview?(mikepinkerton)
Attachment #214971 - Flags: review?(sfraser_bugs)
zip doesn't have powerful enough exclude lists to handle something simple like "exclude all directories named CVS and their children," so I'll rsync for both types of builds.  Here, I've moved to rsync -C, which sets up a nice healthy exclude list that also keeps out *.orig and .##* and other things CVS might create.
Attachment #214973 - Flags: superreview?(mikepinkerton)
Attachment #214973 - Flags: review?(sfraser_bugs)
Is this only a temporary solution (for the 1.8 branch, I'd guess) until the trunk fixes the overall issue?
It can be temporary if these pages become customizable for embedders, but there's no good reason we shouldn't be able to replace arbitrary members of embed.jar.  We already are able to pick and choose what we want to take from the core by adding and removing things from the project file.  We don't have this ability (yet) for embed.jar only because Xcode can't see inside zip files.
r?
Blocks: 312501
Attachment #214971 - Attachment is obsolete: true
Comment on attachment 214973 [details] [diff] [review]
Works for srcdir and objdir builds

sr=pink
Attachment #214973 - Flags: superreview?(mikepinkerton) → superreview+
Comment on attachment 214973 [details] [diff] [review]
Works for srcdir and objdir builds

Looks good. 

How about also hiding the temp folder (".embed-replacements")?

r=me either way.
Attachment #214973 - Flags: review?(sfraser_bugs) → review+
Landed on the three branches so there's one less thing to do on the 1.0.1 minibranch.
Status: NEW → RESOLVED
Closed: 18 years ago
Resolution: --- → FIXED
(Hidden things are evil!  Don't be evil!)
No longer depends on: 336447
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: