Closed Bug 456466 Opened 16 years ago Closed 16 years ago

compiling SeaMonkey Linux debug symlink build fails in Jarmaker/Gnomestripe

Categories

(Firefox Build System :: General, defect)

x86
Linux
defect
Not set
normal

Tracking

(Not tracked)

RESOLVED FIXED

People

(Reporter: mnyromyr, Assigned: Pike)

References

Details

Attachments

(1 file, 1 obsolete file)

Compiling SeaMonkey trunk debug (with --enable-chrome-format=symlink) fails as of today on Linux when JarMaker.py tries to package gnomestripe:

processing /home/kd/projekte/mozilla/mozilla.org/src/trunk/mozilla/toolkit/themes/gnomestripe/global/jar.mn
Traceback (most recent call last):
  File "/home/kd/projekte/mozilla/mozilla.org/src/trunk/mozilla/config/JarMaker.py", line 445, in <module>
    main()
  File "/home/kd/projekte/mozilla/mozilla.org/src/trunk/mozilla/config/JarMaker.py", line 442, in main
    jardir=options.j)
  File "/home/kd/projekte/mozilla/mozilla.org/src/trunk/mozilla/config/JarMaker.py", line 228, in makeJar
    localedirs)
  File "/home/kd/projekte/mozilla/mozilla.org/src/trunk/mozilla/config/JarMaker.py", line 299, in processJarSection
    outHelper, jf)
  File "/home/kd/projekte/mozilla/mozilla.org/src/trunk/mozilla/config/JarMaker.py", line 348, in _processEntryLine
    outHelper.symlink(realsrc, out)
  File "/home/kd/projekte/mozilla/mozilla.org/src/trunk/mozilla/config/JarMaker.py", line 397, in symlink
    os.symlink(src, out)
OSError: [Errno 17] File exists
make[8]: *** [libs] Error 1
make[8]: Leaving directory `/home/kd/projekte/mozilla/mozilla.org/obj/sr/mozilla/toolkit/themes/gnomestripe/global'
make[7]: *** [libs] Error 2
make[7]: Leaving directory `/home/kd/projekte/mozilla/mozilla.org/obj/sr/mozilla/toolkit/themes/gnomestripe'
make[6]: *** [libs] Error 2
make[6]: Leaving directory `/home/kd/projekte/mozilla/mozilla.org/obj/sr/mozilla/toolkit/themes'
make[5]: *** [libs] Error 2
make[5]: Leaving directory `/home/kd/projekte/mozilla/mozilla.org/obj/sr/mozilla/toolkit'
make[4]: *** [libs_tier_toolkit] Error 2
make[4]: Leaving directory `/home/kd/projekte/mozilla/mozilla.org/obj/sr/mozilla'
make[3]: *** [tier_toolkit] Error 2
make[3]: Leaving directory `/home/kd/projekte/mozilla/mozilla.org/obj/sr/mozilla'
make[2]: *** [default] Error 2
make[2]: Leaving directory `/home/kd/projekte/mozilla/mozilla.org/obj/sr/mozilla'
make[1]: *** [default] Error 2
make[1]: Leaving directory `/home/kd/projekte/mozilla/mozilla.org/obj/sr'
make: *** [build] Error 2
Severity: blocker → normal
(In reply to comment #1)
> Dupe of bug 456483?

Most likely. (Or the other way round, but Sylvain's has a patch.)

But I wonder since when debug build breakage is considered "normal"?
Attached patch remove target for symlinks (obsolete) — Splinter Review
This is normal because symlink output isn't stop-world. We were *that* close to unsupporting it completely, even.

To copy my review statement from bug 456483, that version required python 2.4, and that's ungood, I just had to fix something else for 2.3.

The perl version unconditionally removes the target, let's just do that, too. It's probably cheaper than checking for all the possible error conditions, too.
Attachment #339940 - Flags: review?(ted.mielczarek)
Attachment #339940 - Flags: review?(mnyromyr)
Assignee: nobody → l10n
Status: NEW → ASSIGNED
I tried using os.path.exists in a previous version of the patch in bug 456483 but it didn't work. For some reasons I had broken symlinks in my objdir (the buildinfo.html file or something similar), so os.path.exists returned False, the target was not removed and the symlink call raised an exception.

Here's how bazaar implement lexists for Python < 2.4: http://www.google.com/codesearch?hl=en&q=lexists+show:F74BlVeB2yE:_0ashqPj9x0:dQkYe0kRM40&sa=N&cd=2&ct=rc&cs_p=http://bazaar-vcs.org/releases/src/bzr-0.14.tar.gz&cs_f=bzr-0.14/bzrlib/osutils.py#l151
... which is why I'm not using os.path.exists in the first place.
Except your patch is using os.path.exists?

+      # remove previous link or file
+      if os.path.exists(out):
+        os.remove(out)
Attachment #339940 - Attachment is obsolete: true
Attachment #339940 - Flags: review?(ted.mielczarek)
Attachment #339940 - Flags: review?(mnyromyr)
Comment on attachment 339940 [details] [diff] [review]
remove target for symlinks

Old patch, sorry. Duh.
This time for real, try to remove and except fine if that fails.
Attachment #339963 - Flags: review?(ted.mielczarek)
Attachment #339963 - Flags: review?(mnyromyr)
Attachment #339963 - Flags: review?(ted.mielczarek) → review+
Comment on attachment 339963 [details] [diff] [review]
remove target for symlinks

This works for me with Python 2.5, but I couldn't test with 2.4.
Attachment #339963 - Flags: review?(mnyromyr) → review+
http://hg.mozilla.org/mozilla-central/rev/4d57bfc569f5, FIXED.
Status: ASSIGNED → RESOLVED
Closed: 16 years ago
Resolution: --- → FIXED
(In reply to comment #4 by l10n@mozilla.com)
> This is normal because symlink output isn't stop-world. We were *that* close to
> unsupporting it completely, even.
Which is ironic as symlink builds speed up l10n development the most.
Product: Core → Firefox Build System
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: