Closed Bug 465039 Opened 16 years ago Closed 15 years ago

mobile (linux, wince) builds on try server

Categories

(Release Engineering :: General, defect, P3)

x86
Linux
defect

Tracking

(Not tracked)

RESOLVED FIXED

People

(Reporter: romaxa, Assigned: jhford)

Details

Attachments

(6 files, 13 obsolete files)

5.99 KB, patch
mozilla
: review+
mozilla
: checked-in+
Details | Diff | Splinter Review
22.71 KB, patch
mozilla
: review+
mozilla
: checked-in+
Details | Diff | Splinter Review
3.36 KB, patch
mozilla
: review+
mozilla
: checked-in+
Details | Diff | Splinter Review
2.47 KB, patch
mozilla
: review+
mozilla
: checked-in+
Details | Diff | Splinter Review
1.22 KB, patch
bhearsum
: review+
mozilla
: checked-in+
Details | Diff | Splinter Review
506 bytes, patch
bhearsum
: review+
mozilla
: checked-in+
Details | Diff | Splinter Review
Armel/scratchbox/Maemo builds is very specific platform, and I think it would be nice to have armel (scratchbox) builds on try server.
Target Milestone: --- → Future
Assignee: nobody → aki
Aki, can we expand this bug to also include windows ce builds?  Or would you rather I file a separate bug?
Brad: Oh, either way.  Updating the summary for simplicity.
It may be a while before I can get to this, though.
Priority: -- → P3
Summary: armel builds on try server → mobile (linux, wince) builds on try server
Overriding various functions in WinceBuildFactory.
This appears to work in try staging, though the upload is untested.

I'm putting off Maemo since it a) seems to be less urgent and b) the scratchbox path munging will complicate things.

Patch 1 of 2.
Attachment #372519 - Flags: review?(bhearsum)
Modified WinceBuildFactory to be a little more inherit-and-override friendly.
Also modified MozillaUploadTryBuild to allow for packageGlob's, I think.
Attachment #372521 - Flags: review?(bhearsum)
Comment on attachment 372521 [details] [diff] [review]
factory.py and tryserver/steps.py patch for wince try

>diff -r 29c6b7dee93a process/factory.py
>--- a/process/factory.py	Mon Apr 13 14:27:43 2009 -0700
>+++ b/process/factory.py	Mon Apr 13 18:18:24 2009 -0700

Changes to this file look fine. Please make sure you test them on staging-master to make sure regular wince builds don't break, though.

>diff -r 29c6b7dee93a tryserver/steps.py

>-        self.setCommand(["scp", slavesrc, self.scpString])
>+        self.setCommand("scp %s %s" % (self.slavesrc, self.scpString))

Any particular reason for the change from [] to ""? [] is preferable, as it uses exec() instead of the shell.

r=bhearsum, but please let me know about the scp command.
Attachment #372521 - Flags: review?(bhearsum) → review+
Comment on attachment 372521 [details] [diff] [review]
factory.py and tryserver/steps.py patch for wince try


>@@ -261,14 +263,15 @@
>         # this is the filename of the package built on the slave
>         filename = "%s-%s" % (self.getProperty('identifier'), self.baseFilename)
>         # the path to the package + the filename
>-        slavesrc = path.join(self.slavedir, filename)
>+        if self.slavesrc is None:
>+            self.slavesrc = path.join(self.slavedir, filename)
>         # the full path + full filename to the package
>         # the filename is prepended with the submission time and submitter so
>         # it can be sorted by the server on the other end
>         self.scpString = path.join(self.scpString, dir, "%s-%s"
>                                    % (changer, filename))
> 
>-        self.setCommand(["scp", slavesrc, self.scpString])
>+        self.setCommand("scp %s %s" % (self.slavesrc, self.scpString))
>         self.setProperty('uploadpath', path.join(dir, "%s-%s" % (changer, filename)))
>         ShellCommand.start(self)
> 

I see now that you're passing in a glob as self.slavesrc - so this change is fine.
Comment on attachment 372519 [details] [diff] [review]
buildbot-configs patch for wince_try_factory

>diff -r 314fe74857fb tryserver/master.cfg
>+import mobile_master
>+reload(mobile_master)
>+import mobile_config
>+reload(mobile_config)
>+

Since everything in mobile_config.py is going away or elsewhere, and the factory will be moving to factory.py this probably isn't necessary anymore.

>+wince_try_factory = mobile_master.WinceTryBuildFactory(
>+    hgHost = 'hg.mozilla.org',
>+    buildToolsRepoPath='build/tools',
>+    repoPath = '.',  #hack
>+    configRepoPath = 'build/buildbot-configs',
>+    configSubDir = 'mozilla2',

Please use 'tryserver' here to ensure that all builds use the same mozconfig.

>+    env = mobile_config.wince_arm_env,
>+    mozconfig = "wince/mobile-browser/nightly",

And adjust the last bit of this to be 'try'. I know our factories make crappy assumptions about the name of the mozconfig, so I won't make you fix that here. Just make sure to move the mozconfig to tryserver/wince/mobile-browser/try/mozconfig.

Does that make sense?

>+    mobileRepoPath = "mobile-browser",
>+    platform = 'wince-arm',
>+    baseWorkDir = 'mozilla',
>+    buildSpace = 0,
>+    objdir = OBJDIR,
>+    scp_string = SCP_STRING,
>+)
>+firefox_sendchange_wince_hg_builder = {
>+    'name': "Try server wince hg builder",
>+    'slavenames': BuildSlaves.Win32,
>+    'builddir': "sendchange-wince-hg",
>+    'factory': wince_try_factory,
>+    'category': "Sendchange",
>+}
>+builders.append(firefox_sendchange_wince_hg_builder)
>+
> c['builders'] = builders
>diff -r 314fe74857fb tryserver/mobile_config.py
>--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
>+++ b/tryserver/mobile_config.py	Mon Apr 13 18:27:32 2009 -0700
>@@ -0,0 +1,63 @@
>+# -*- python -*-
>+# ex: set syntax=python:
>+
>+OBJDIR = 'objdir'
>+SBOX_HOME = '/scratchbox/users/cltbld/home/cltbld'

I don't think we need either of these here - SBOX_HOME is unused, and OBJDIR is exactly the same as the one in master.cfg.

>+
>+wince_arm_env = {
>+    "DEVENVDIR": 'd:\\msvs9\\Common7\\IDE',
>+    "FRAMEWORK35VERSION": 'v3.5',
>+    "FRAMEWORKDIR": 'C:\\WINDOWS\\Microsoft.NET\\Framework',
>+    "FRAMEWORKVERSION": 'v2.0.50727',
<snip>
>+}

If this is exactly the same as the env in mozilla2/mobile_config.py and mozilla2-staging/mobile_config.py please take this opportunity to move it to buildbotcustom, and import it from there. If it's not the same, I'd like to know why :).


>diff -r 314fe74857fb tryserver/mobile_master.py

>+class WinceTryBuildFactory(WinceBuildFactory):

This definitely should go in buildbotcustom.process.factory.

>+    def __init__(self, scp_string=None, **kwargs):
>+        self.scp_string = scp_string
>+        WinceBuildFactory.__init__(self, **kwargs)
>+
>+    #
>+    # Override the first step.  This is a bit of a hack, but I think better
>+    # than adding a 'if self.try: self.addMozillaTryProcessing()' to
>+    # MozillaBuildFactory.
>+    #
>+    # However, adding an empty function that happens first inside of
>+    # MozillaBuildFactory might not be a bad idea.
>+    #

This would be fine with me. The other you could do is:
def __init__(self, scp_string=None, **kwargs):
    self.scp_string = scp_string
    
    self.addStep(MozillaTryProcessing)
    self.addStep(ShellCommand, ...)
    WinceBuildFactory.__init__(self, **kwargs)

I'd like to see one of those changes happen.

>+        # TODO change WinceBuildFactory.addPrecleanSteps to use
>+        # if self.clobber rather than if self.nightly
>+        #WinceBuildFactory.addPrecleanSteps(self)

Please fix this TODO as part of this bug.


This is looking really good. Functionality-wise, this seems there, just take care of the tidy-up mentioned above and we're ready to go :).
Attachment #372519 - Flags: review?(bhearsum) → review-
Attempting to assign to jford + move components at the same time.
Assignee: aki → nobody
Component: Try Server → Release Engineering
Product: Webtools → mozilla.org
QA Contact: try-server → release
Target Milestone: Future → ---
Version: Trunk → other
Assignee: nobody → jford
Attached patch master-config (obsolete) — Splinter Review
updated configuration files.  moved wince arm env to buildbotcustom.env
Attachment #372519 - Attachment is obsolete: true
Attached patch wince-try-custom (obsolete) — Splinter Review
wincetrybuildfactory moved to factory.py
Attachment #372521 - Attachment is obsolete: true
Attached patch master-config (obsolete) — Splinter Review
config and custom patch weren't in sync
Attachment #377047 - Attachment is obsolete: true
Attached patch wince-try-custom (obsolete) — Splinter Review
Attachment #377048 - Attachment is obsolete: true
Comment on attachment 377053 [details] [diff] [review]
master-config

>+import buildbotcustom.env.MozillaEnvironments
>+reload(buildbotcustom.env.MozillaEnvironments)

I think this should be

  import buildbotcustom.env
  reload(buildbotcustom.env)
  from buildbotcustom.env import MozillaEnvironments

After which point you can refer to it as 'MozillaEnvironments' rather than buildbotcustom.env.MozillaEnvironments.

>+from buildbotcustom.process.factory import WinceTryBuildFactory
>+reload(buildbotcustom.process.factory.WinceTryBuildFactory)

Closer =)
Same thing here.

>+wince_try_factory = mobile_master.WinceTryBuildFactory(

You're referring to mobile_master.WinceTryBuildFactory again (from my patch).
You should just be able to use 'WinceTryBuildFactory'.

>+    hgHost = 'hg.mozilla.org',
>+    buildToolsRepoPath='build/tools',
>+    repoPath = '.',  #hack
>+    configRepoPath = 'build/buildbot-configs',
>+    configSubDir = 'mozilla2',
>+    env = MozillaEnvironments['wince-arm'],
>+    mozconfig = "tryserver/wince/mobile-browser/try/mozconfig",
>+    mobileRepoPath = "mobile-browser",
>+    platform = 'wince-arm',
>+    baseWorkDir = 'mozilla',
>+    buildSpace = 0,
>+    objdir = OBJDIR,
>+    scp_string = SCP_STRING,
>+)

Once you add the clobber option in WinceBuildFactory, you can also set |clobber = True| here, but until then I think this is fine.
Comment on attachment 377054 [details] [diff] [review]
wince-try-custom

>+class WinceTryBuildFactory(WinceBuildFactory):
>+    def __init__(self, scp_string=None, **kwargs):
>+        self.scp_string = scp_string
>+        self.addStep(MozillaTryProcessing)
>+        WinceBuildFactory.__init__(self, **kwargs)

Cool, you're doing the MozillaTryProcessing here.

>+
>+    #
>+    # Override the first step.  This is a bit of a hack, but I think better
>+    # than adding a 'if self.try: self.addMozillaTryProcessing()' to
>+    # MozillaBuildFactory.
>+    #
>+    # However, adding an empty function that happens first inside of
>+    # MozillaBuildFactory might not be a bad idea.
>+    #
>+    def addPreCleanSteps(self):
>+        self.addStep(MozillaTryProcessing)

You're also doing it here.
If you add the |clobber| option to WinceBuildFactory, and change WinceBuildFactory.addPreCleanSteps() to clobber |if self.clobber|, then you don't have to override addPreCleanSteps() at all.

You will, however, have to add |clobber = True| to the mobile_nightly_factory in mozilla2/mobile_master.py and mozilla2-staging/mobile_master.py.

>+        # TODO change WinceBuildFactory.addPrecleanSteps to use
>+        # if self.clobber rather than if self.nightly
>+        #WinceBuildFactory.addPrecleanSteps(self)
>+        # TODO: Did i (jhford) do it right?

Looks like you haven't, yet =)
Attached patch wince+maemo-config (obsolete) — Splinter Review
wince and maemo added to master_config
Attachment #377053 - Attachment is obsolete: true
Attached patch wince+maemo-try-factories (obsolete) — Splinter Review
Try factories for Maemo and Wince
Attachment #377054 - Attachment is obsolete: true
Comment on attachment 377553 [details] [diff] [review]
wince+maemo-try-factories

>+import buildbotcustom.tryserver.steps as try_steps

Ok.  This is good, but you'll have to remember to refer to steps as try_steps.STEPNAME below.

>@@ -2895,6 +2901,7 @@
>                  **kwargs):
>         MobileBuildFactory.__init__(self, **kwargs)
>         self.packageGlob = packageGlob
>+        self.clobber = clobber

As mentioned in person, you're overwriting the self.clobber from MobileBuildFactory.__init__() here.

>+    def addBaseRepoSteps(self):
>+        self.addHgPullSteps(repository=self.repository,
>+                            workdir=self.baseWorkDir,
>+                            cloneTimeout=60*30)
>+        self.addHgPullSteps(repository=self.mobileRepository,
>+                            workdir='%s/%s' % (self.baseWorkDir,
>+                                               self.branchName),
>+                            targetDirectory='mobile')
>+

As mentioned in person, this is good, but you have to call it =)
Also, MaemoBuildFactory needs one.

>+class MaemoTryBuildFactory(MaemoBuildFactory):
>+    def __init__(self, scp_string=None, **kwargs):
>+        self.scp_string = scp_string
>+        self.addStep(MozillaTryProcessing)
>+        MaemoBuildFactory.__init__(self, **kwargs)
>+    
>+    def addBaseRepoSteps(self):
>+        self.addHgPullSteps(repository=self.repository,
>+                            workdir=self.baseWorkDir)
>+        self.addHgPullSteps(repository=self.mobileRepository,
>+                            workdir='%s/%s' % (self.baseWorkDir,
>+                                               self.branchName),
>+                            targetDirectory='mobile')

I think you want to replace the first addHgPullSteps with try_steps.MozillaTryServerHgClone().
Since there's no try repository for mobile-browser, the second addHgPullSteps will stay.

>+    def addUploadSteps(self, platform=None):
>+        """ToDo:
>+            -MozillaCreateUploadDirectory
>+            -MozillaUploadTryBuild
>+            """
>+        self.addStep(MozillaCreateUploadDirectory,
>+            scpString=self.scp_string,
>+            haltOnFailure=False,
>+            flunkOnFailure=False,
>+            workdir='.'
>+        )
>+        self.addStep(MozillaUploadTryBuild,
>+            slavedir="%s/%s" % (self.baseWorkDir, self.objdir),
>+            baseFilename="",
>+            slavesrc=self.packageGlob,
>+            scpString=self.scp_string,
>+            haltOnFailure=False,
>+            flunkOnFailure=False,
>+            flunkOnFailure=False,
>+            workdir="%s/%s" % (self.baseWorkDir, self.objdir),
>+        )

I think your ToDo is done?  Yeah, WIP patch, I know =)

>+class WinceTryBuildFactory(WinceBuildFactory):
>+    def __init__(self, scp_string=None, **kwargs):
>+        self.scp_string = scp_string
>+        self.addStep(MozillaTryProcessing)
>+        WinceBuildFactory.__init__(self, clobber=True, **kwargs)
>+
>+    def addBaseRepoSteps(self):
>+        self.addStep(MozillaTryServerHgClone, workdir=self.baseWorkDir)
>+        self.addHgPullSteps(repository=self.mobileRepository,
>+                            workdir='%s/%s' % (self.baseWorkDir,
>+                                               self.branchName),
>+                            targetDirectory='mobile')

Yes, this is what you're missing from MaemoTryBuildFactory, done correctly here *except* you'll probably need to refer to it as try_steps.MozillaTryServerHgClone.

>diff -r 42720ad7391d tryserver/steps.py
>--- a/tryserver/steps.py	Tue May 12 15:08:29 2009 -0400
>+++ b/tryserver/steps.py	Thu May 14 15:39:45 2009 -0700
>@@ -111,7 +111,7 @@
>     flunkOnFailure = False
>     warnOnFailure = False
> 
>-    def __init__(self, mastersrc=None, patchDir=".", **kwargs):
>+    def __init__(self, mastersrc=None, patchDir=".", workdir="mozilla/", **kwargs):
>         """arguments:
>         @type  patchDir:   string
>         @param patchDir:   The directory on the master that holds the mozconfig
>@@ -121,8 +121,8 @@
>                             Defaults to '.'
>         """
>         # mastersrc and slavedest get overridden in start()
>-        FileDownload.__init__(self, mastersrc=mastersrc, slavedest=".mozconfig",
>-                              workdir="mozilla/", **kwargs)
>+        FileDownload.__init__(self, mastersrc=mastersrc, 
>+                              slavedest=".mozconfig", **kwargs)

Do you need to workdir=workdir or workdir=self.workdir here?

>@@ -225,7 +225,8 @@
> class MozillaUploadTryBuild(ShellCommand):
>     warnOnFailure = True
> 
>-    def __init__(self, slavedir, baseFilename, scpString, **kwargs):
>+    def __init__(self, slavedir, baseFilename, scpString, slavesrc=None,
>+                 **kwargs):
>         """
>         @type  slavedir:   string
>         @param slavedir:   The directory that contains the file that will be
>@@ -261,14 +262,15 @@
>         # this is the filename of the package built on the slave
>         filename = "%s-%s" % (self.getProperty('identifier'), self.baseFilename)
>         # the path to the package + the filename
>-        slavesrc = path.join(self.slavedir, filename)
>+        if self.slavesrc is None:
>+            self.slavesrc = path.join(self.slavedir, filename)

I think the logic here is a bit off.
slavesrc is set, but not self.slavesrc anywhere.  I think you want

    if slavesrc:
        self.slavesrc = slavesrc
    else:
        self.slavesrc = path.join(...)

Anyway, those are my comments (purely an eyeball test), and you'll probably find more when you're debugging on try-staging.  Then you need to merge in bhearsum's patches tomorrow.
Attached patch mobile-try-configs (obsolete) — Splinter Review
This works with buildbot checkconfig
Attachment #377552 - Attachment is obsolete: true
Attached patch mobile-try-custom (obsolete) — Splinter Review
Attachment #377553 - Attachment is obsolete: true
I'm going to wait to look at these until you get further with your on-server debugging =)
Attached patch buildbot-configs (obsolete) — Splinter Review
Master patch to enable fennec builds for WinCE and Maemo
Attachment #378151 - Attachment is obsolete: true
Attachment #379011 - Flags: review?
Attached patch buildbotcustom (obsolete) — Splinter Review
Custom steps to enable fennec builds for WinCE and Maemo
Attachment #378153 - Attachment is obsolete: true
Attachment #379012 - Flags: review?
Attachment #379011 - Flags: review? → review?(aki)
Attachment #379012 - Flags: review? → review?(aki)
Ok.

- Uploads will be broken b/c MozillaUploadTryBuild has no concept of globs.  We can create a new class or move the binaries to known names or something.  We're considering creating a temporary upload location on sm-staging-try-master to test this; this could actually become the permanent STAGE_SERVER for the tryserver-staging tree.  It'll probably need an aggressive (hourly?) cleanup cron.

- We also need to test on staging to make sure nothing broke on standard Maemo/WinCE builds.

I'll take a closer look at the patches tomorrow as well.
Ok, thought about this during the long drive.

So at PGP I created a local uploadDir and laid out the directory tree the way I wanted, put the logs and size zero revision file and binaries and symbols and l10n MSIs and .sig's and diffs all in that uploadDir as they became available, then rsync'ed that all up in one fell swoop (if the doUpload bool was True).  Then that dir was a one-stop-shop for anything about that build, and cleaning up binaries and logs and symbols all happened at the same time.

You could do something similar here:

* in MobileBuildFactory, add an __init__ option |additionalClobberFiles=""| and in the preclean steps add that to the rm string.  This should be set to objdir/upload in Try.
* before the upload, copy objdir/mobile/dist/fennec-*.tar.bz2 and objdir/xulrunner/dist/xulrunner-*.tests.tar.bz2 to objdir/upload/maemo/ with a ShellCommand.  You'll need to create objdir/upload/mobile first.
* in MozillaUploadTryBuild, add a -r to the scp command. I'd prefer rsync but I'm not sure it's available on our win32 slaves.  objdir/upload/maemo/ will become identifier-maemo/.  (I would have named it mobile/ but that'll probably result in a mobile/mobile/ directory with the WinCE upload... another reason rsync would be nicer).
** I also thought about just recursively uploading '.' inside of objdir/upload/mobile/ but MobileUploadTryBuild will probably rename '.' to identifier-.
** This is all kind of a hack, so whatever works that isn't too ugly is probably best.
** If rsync is on our win32 slaves, n/m the above. Use that.

This is all just in my head so you may run into other issues, but I think this will work.  We may even want to eventually go with this as our default since other bugs are open for uploading the diffs and revision numbers... logs would be nice too. It's only disk space ;-)
Do we not have 'make upload' for mobile builds?
I don't think so.
Plus, the uploaddir solution gets us closer to being able to upload things like the try patch.
We should really get 'make upload' for mobile soon. It sucks to have two completely different implementations. But obviously that's beyond the scope of this bug.
Attached patch buildbot-configsSplinter Review
Add Maemo and Wince configurations to sm-staging-try-master
Attachment #379011 - Attachment is obsolete: true
Attachment #379011 - Flags: review?(aki)
Attached patch buildbotcustomSplinter Review
-Add the WinceTryBuildFactory and MaemoTryBuildFactory
-Add the Wince Environment
-Modify MozillaTryUploadBuild step to be able to upload a whole directory.
Attachment #379012 - Attachment is obsolete: true
Attachment #380255 - Flags: review?(aki)
Attachment #379012 - Flags: review?(aki)
Attachment #380253 - Flags: review?(aki)
Attachment #380255 - Flags: review?(aki)
Attachment #380255 - Flags: review+
Attachment #380255 - Flags: checked‑in+
Attachment #380293 - Flags: review?(aki)
Comment on attachment 380293 [details] [diff] [review]
fixes clobber builds

Ensure that the mozconfig is applied in the right place
Attachment #380253 - Flags: review?(aki)
Attachment #380253 - Flags: review+
Attachment #380253 - Flags: checked‑in+
Attachment #380293 - Flags: review?(aki)
Attachment #380293 - Flags: review+
Attachment #380293 - Flags: checked‑in+
buildbotcustom revisions 319:ed9e8e700105 and 320:301e503b6e62; buildbot-configs revision 1172:6402e3e32f85
Pushed to production-master and try-master and reconfig'ed.
Attached patch re-enable-changesetlink (obsolete) — Splinter Review
Fix MobileBF addBaseRepoSteps to get the changeset link and remove the dupe addBaseRepoSteps in MaemoBF
Attachment #380310 - Flags: review?(aki)
Add for mobileRepository in mobile try repositories
Attachment #380310 - Attachment is obsolete: true
Attachment #380310 - Flags: review?(aki)
Attachment #380315 - Attachment is patch: true
Attachment #380315 - Attachment mime type: application/octet-stream → text/plain
Comment on attachment 380315 [details] [diff] [review]
re-enable-changesetlink v2

Ok, this looks good, r=me.

I'm going to wait til tomorrow to land + reconfig b/c I'm kinda all brain-fried right now; until then wince builds + try mobile builds will be missing changeset links on the tinderbox waterfall.

I *think* this is the last thing that needs to be done, though.

RelEng: we'll need to watch Try builder load + build.m.o disk space since we're adding 2 more builds per try request.
Attachment #380315 - Flags: review+
Oh, also.

Put on your todo list: ping bhearsum next week about the MailNotifier. I think that's something we'll want to put in (mails developers about the status of their patch on Try) but I don't necessarily want to futz with it while he's not here.

In theory it's as simple as adding the builder names to the list though.
Comment on attachment 380315 [details] [diff] [review]
re-enable-changesetlink v2

rev 321:a58e43b245a6
Attachment #380315 - Flags: checked‑in+
Attached patch directory-namingSplinter Review
The current try server for non-mobile does not have timestamps in the directory that is being uploaded to.  This patch ensures that the try server steps use the correct directory pattern.
Attachment #380491 - Flags: review?(bhearsum)
Attached patch mailnotifierSplinter Review
This ensures that the submitter is notified when their patch finishes a build for mobile.
Attachment #380493 - Flags: review?(bhearsum)
Comment on attachment 380491 [details] [diff] [review]
directory-naming

(In the future, please file new bugs for things like this - this patch is completely aside from mobile builds)

Yes, this seems fine. Have you tested to make sure try talos will still properly pick up CVS builds? Please do so if you haven't.
Attachment #380491 - Flags: review?(bhearsum) → review+
Attachment #380493 - Flags: review?(bhearsum) → review+
Comment on attachment 380493 [details] [diff] [review]
mailnotifier

Yeah, this seems fine.
(In reply to comment #40)
> (From update of attachment 380491 [details] [diff] [review])
> (In the future, please file new bugs for things like this - this patch is
> completely aside from mobile builds)

Oops, after digging a bit more I see that the mobile builds are using these classes too. Given that, this patch is fine in this bug.
Comment on attachment 380491 [details] [diff] [review]
directory-naming

Revision 323:aac8e84405a7
Attachment #380491 - Flags: checked‑in+
Comment on attachment 380493 [details] [diff] [review]
mailnotifier

Revision 1178:cfb7ca953134.

Double check that this is working for you (mail + upload dir names and anything else) and resolve fixed if everything's good =)
Attachment #380493 - Flags: checked‑in+
It seems as though this has broken try-talos picking up cvs builds.  If this is required please open a new bug
Status: NEW → RESOLVED
Closed: 15 years ago
Resolution: --- → FIXED
Product: mozilla.org → Release Engineering
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: