[needs-packaging] juju-mongodb2.6 in xenial, wily, and trusty

Bug #1557830 reported by Curtis Hovey
20
This bug affects 1 person
Affects Status Importance Assigned to Milestone
juju-mongodb2.6 (Ubuntu)
Fix Released
Undecided
Unassigned

Bug Description

# juju-mongodb2.6

The Juju team wants juju-mongodb2.6 packaged in xenial.

    lp:~sinzui/ubuntu/xenial/juju-mongodb2.6/xenial-mongodb-2.6

This packaged in is a fork of juju-mongodb upgraded to version 2.6.
This package is only used to upgrade from juju-mongodb to
juju-mongodb3.2. The upstream source is the same as mongodb_2.6.

Note that the juju-mongodb3.2 package is more important than this
package, but this package was my starting point for change. I think
the review of the juju-mongodb3.2 package is easier if the changes
to this package are understood.

I used the changes from mongodb_2.4 to mongodb_2.6 as guide for which
patches to drop and add. The package targets the supported series,
xenial, wily, and trusty for the three 64 bit archs supported by
1.25.0 (amd64, arm64, and ppc64el)

## juju-mongodb-to-juju-mongodb2.6.diff

show the changes to the debian dir. The changes include
1. A rename from juju-mongodb => juju-mongddb2.6
2. The package only supports 64 bit archs, I restrict the package
   to amd64, arm64, and ppc64el. s390x is not relevant because
   it is new.
3. Per mongodb_2.6, I use "--use-system-yaml" in d/rules.

## juju-mongodb2.6-patches-from mongodb2.6.diff

Shows the diff of changed patches. I just deleted the 2.4 patches
and copied the 2.6 patches into d/patches. I did not change any patches.

## mongodb_2.6-to-juju-mongodb2.6.diff

This diff from the mongodb_2.6 package debian/ to the juju-mongodb2.6
debian dir shows a lot of change. The crix of the diff is that it shows
the d/patches in the ne package are identical to the ubunti package.

Revision history for this message
Curtis Hovey (sinzui) wrote :
Revision history for this message
Curtis Hovey (sinzui) wrote :

a diff of just the changes to d/patches. The patches are from mongodb 1:2.6.10-0ubuntu1

Revision history for this message
Curtis Hovey (sinzui) wrote :

This diff from the mongodb_2.6 package debian/ to the juju-mongodb2.6
debian dir shows a lot of change. The crux of the diff is that it shows
the d/patches in the ne package are identical to the ubunti package.

Revision history for this message
Robie Basak (racb) wrote :

Hi Curtis,

This looks good. A few minor things:

1. Please run update-maintainer so as not to make the Debian mongodb maintainer appear to be responsible for this package.

2. Architecture list in d/control: we prefer to just say "Architecture: any" and let things FTBFS on architectures we are not directly targeting. This makes life easier for porters, for example xnox. Please update the architecture lists to xnox's satisfaction.

3. Quilt patch drops are misleadingly documented, since patches have changed as well as been dropped. Maybe it's easier to just say that you've synced upstream patches with the mongodb 1:2.6.10-0ubuntu1 from the archive? I'd be fine with that as a changelog entry.

4. As discussed on IRC, since you based this on ubuntu4 and we've had 5 and 6, there are some things that could have been dropped. Please can you check this? If everything is fine, just document that in the changelog.

5. As discussed on IRC, xnox doesn't want this to regress over architecture support he ported in juju-mongodb 2.4. Please could you coordinate with him to reach a conclusion on this? I don't care what you do here as long as xnox is happy. This may involve adding patches. If you add patches to juju-mongodb, it may make sense to also add them to mongodb and/or send things to Debian or upstream. Then our diffs would remain smaller for the future.

I'm happy to upload if the above is resolved (even if that means no action). In the longer term, it may be worth figuring out a workflow to keep these Juju-specific mongodb packages updated, as we expect a number of them. The server team's new git-based workflow for merges might be worth looking at, since one thing in common is the need to maintain a delta against something else, and verifying that delta when we bump upstream versions.

Revision history for this message
Curtis Hovey (sinzui) wrote :

Hi Robie, Dimitri

Attached is a diff of my changes per the review.
1. I corrected the maintainer
2. I updated the changelog to state I synced the patches with mongodb 2.6.10.
   Note I refreshed the patches so that they apply without fuzzy.
3, I then reverted the archs to match what juju-core 1.25 and juju-mongodb 2.4 support
4. I dropped the be-port patch.

As we discussed on IRC. The Juju team is adding s390x support to Juju2 and that will
use juju-mongodb3.2. The juju team wont support 1.25 and juju-mongdb on s390x in
production since that version has not been arch enabled. The older juju packages will
be demoted to universe. So this package that is used to upgrade from a juju 1.25
env is not needed for big-endian archs.

Revision history for this message
Robie Basak (racb) wrote :

Thanks, this looks good.

AFAICS, the quilt patches in Ubuntu mongodb 1:2.6.10-0ubuntu1 apply with only offset, not fuzz. This is allowed, so refreshing wasn't necessary. I can see that your refresh (and one line of series being moved) is effectively a no-op but it would be easier for me if we didn't refresh things unnecessarily to reduce review diff. Similarly the change to COMMON_OPTIONS in debian/rules just adds diff and is a no-op, so I'd prefer not to have it.

I'm not sure what approach to take against mongodb 3.2 here though, as there's nothing really to diff against except 2.6.

I've also been grappling a little with coming up with a good review strategy for these packages in general. I ended up using meld to examine a 3-way diff between your tree, Ubuntu mongodb 1:2.6.10-0ubuntu1 and Ubuntu juju-mongodb 2.4.10-0ubuntu6. I'm much happier now that I can see better what you changed, though I will have to do something different for 3.2. With this though, I found a couple of other things that I missed before. Sorry to go back to you again on this.

Ubuntu mongodb 1:2.6.10-0ubuntu1 introduced --use-system-v8, but you haven't carried this forward. Is this expected (not described in changelog)? Perhaps it is because of --disable-scripting but I'm not sure.

You also introduced a nocheck wrapper around override_dh_auto_build which isn't in any of the base versions. This looks unintentional to me, or was it intended?

Revision history for this message
Robie Basak (racb) wrote :

No need to give me any changes. Just let me know what you think we should do on these two points, and I'll upload.

Revision history for this message
Martin Packman (gz) wrote :

> Ubuntu mongodb 1:2.6.10-0ubuntu1 introduced --use-system-v8, but you haven't
> carried this forward. Is this expected (not described in changelog)? Perhaps it
> is because of --disable-scripting but I'm not sure.

Indeed. We have always built juju-mongodb without the javascript engine because the security team had concerns and we didn't need it anyway. Note in 3.2 V8 has gone, and they're back to spidermonkey:

<https://docs.mongodb.org/manual/release-notes/3.2-javascript/>

Revision history for this message
Robie Basak (racb) wrote :

Everything looks good now, but my test build failed on armhf: https://launchpad.net/~racb/+archive/ubuntu/experimental/+build/9394477

Looks like a segfault (Bus error) stops mongodb from starting.

<mgz> rbasak: I think we should care about it
<mgz> rbasak: I don't think I have the expertise to fix a mongo build failure on armhf. it won't build on my chromebook :)#

I'm happy to upload this as-is, but this may cause a hold up at archive admin or release team review as I understand that the armhf build was expected to work. Please let me know which you'd prefer.

My tree is at https://git.launchpad.net/~racb/+git/juju-mongodb. sinzui-2.6-fixes (0afe0ab) is what I can upload; experimental-2.6 (5e8dca2) is what I tested in my experimental PPA.

Revision history for this message
Curtis Hovey (sinzui) wrote :

Hi Robie. Juju2 will *not* support 32 bit archs. As this package is only used to upgrade to 2.0, it will not be used on armhf and i386 archs.

Per point 2 to in comment 4, Ubuntu accepts FTBFS, where as the Juju team prefers to be clear about what is not supported:
maybe we want
Architecture: !i386 !armhf

Revision history for this message
Curtis Hovey (sinzui) wrote :

I pushed a small change to the changelog
   * New upstream release (LP #1557830).
at
   lp:~sinzui/ubuntu/xenial/juju-mongodb2.6/xenial-mongodb-2.6'

Revision history for this message
Robie Basak (racb) wrote :

Uploaded 2.6.10-0ubuntu1. Now awaiting NEW review from an archive admin.

Curtis, please note that I had made some further changes. So please base any packaging against what's the archive rather than your tree. For reference my changes are in https://git.launchpad.net/~racb/+git/juju-mongodb/log/?h=sinzui-2.6-fixes

Revision history for this message
Robie Basak (racb) wrote :

> So please base any packaging against what's the archive rather than your tree.

Badly worded, sorry. I mean: please base any future packaging changes against what's in the archive at that point, rather than your tree.

Revision history for this message
Robie Basak (racb) wrote :

Also, following a brief IRC conversation, I decided to make the package Arch: any. I understand that this is the convention since it makes porting easier for anyone who wants to focus on a particular architecture. I understand that Juju upstream have no plans to support armhf for this package though for example, which will FTBFS. But I understand that FTBFS is the preferred status and helps inform everyone about the status.

I will leave this between Juju upstream and the archive admins and release teams to resolve in this bug if necessary.

Changed in juju-mongodb (Ubuntu):
status: New → Fix Committed
affects: juju-mongodb (Ubuntu) → juju-mongodb2.6 (Ubuntu)
Revision history for this message
Steve Langasek (vorlon) wrote :

This package has reached the xenial release pocket; manually closing the bug.

Changed in juju-mongodb2.6 (Ubuntu):
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.