Closed Bug 368855 Opened 18 years ago Closed 13 years ago

JEP isn't updated in objdir builds

Categories

(Camino Graveyard :: General, defect)

PowerPC
macOS
defect
Not set
normal

Tracking

(Not tracked)

RESOLVED WONTFIX

People

(Reporter: alqahira, Unassigned)

Details

STR:

1. Have an objdir tree; build it
2. Wait for JEP to be updated
3. Rebuild your objdir tree (make -f client.mk, or make in the objdir after updating)
4. Look at the JEP in $objdir/camino/build/Camino.app or $objdir/dist/Camino.app

Expected: Latest JEP version (0.9.6)
Actual: Old JEP version (0.9.5+g+2)

I'm not sure if this is an issue for other products (probably?), but I've seen it now in both my 1.8 and 1.8.0 trees.  I verified that the JEP in oji/JEP is 0.9.6, and the only way I could get my objdir's Camino's JEP to update was to kill the tree and rebuild or kill $objdir/camino/build/Camino.app and rebuild just Camino.
Is this just an Xcode bundle timestamp issue like people often hit with version-controlled nibs?
They get "copied" into dist/bin/plugins as symlinks, and I guess those symlinks never get "touch"ed (and/or the build system doesn't follow them to see if the originals have changed)....
mento, is there anything we can do about this, say a shell script phase to "touch" the symlink in dist/bin/plugins before doing the copy phase?
Try this:

mozilla/plugin/oji/JEP/Makefile.in:
  69         $(INSTALL) $(JEP_PLUGIN_BUNDLE) $(DIST)/bin/plugins
  70         $(INSTALL) $(MRJ_PLUGIN_BUNDLE) $(DIST)/bin/plugins
+            touch $(DIST)/bin/plugins/$(JEP_PLUGIN_BUNDLE)
+            touch $(DIST)/bin/plugins/$(MRJ_PLUGIN_BUNDLE)

(Those should be tabs, not spaces.)
Really, try it - if Xcode is doing lstat where it should be doing stat, we'll need something else like this:

+            $(RM) -rf $(DIST)/bin/plugins/$(JEP_PLUGIN_BUNDLE)
+            $(RM) -rf $(DIST)/bin/plugins/$(MRJ_PLUGIN_BUNDLE)
  69         $(INSTALL) $(JEP_PLUGIN_BUNDLE) $(DIST)/bin/plugins
  70         $(INSTALL) $(MRJ_PLUGIN_BUNDLE) $(DIST)/bin/plugins
(In reply to comment #4)
> mozilla/plugin/oji/JEP/Makefile.in:
>   69         $(INSTALL) $(JEP_PLUGIN_BUNDLE) $(DIST)/bin/plugins
>   70         $(INSTALL) $(MRJ_PLUGIN_BUNDLE) $(DIST)/bin/plugins
> +            touch $(DIST)/bin/plugins/$(JEP_PLUGIN_BUNDLE)
> +            touch $(DIST)/bin/plugins/$(MRJ_PLUGIN_BUNDLE)

This works when I do a full rebuild in that objdir, which is what I filed the bug about, as well as something like make -C plugin/oji/JEP; make -C camino

However, your next comment 5 led me to wonder: do we ever expect just making in camino (or building in Xcode) to pull the latest JEP when a full Gecko has not been rebuilt?  Or maybe make -C embedding/config; make -C camino ?  If these aren't reasonable expectations--and in my mind the first isn't, but someone might be able to make a case that second could be (although JEP doesn't end up in dist/Embed)--comment 4 seems like a winner.
We're not fixing this for 2.1, and it's irrelevant for any future release, so closing.
Status: NEW → RESOLVED
Closed: 13 years ago
Resolution: --- → WONTFIX
You need to log in before you can comment on or make changes to this bug.