Opened 10 years ago

Closed 10 years ago

#43959 closed update (fixed)

upgrade icu and all of its dependents

Reported by: MarcusCalhoun-Lopez (Marcus Calhoun-Lopez) Owned by: macports-tickets@…
Priority: Normal Milestone:
Component: ports Version: 2.3.0
Keywords: haspatch Cc: bfulgham@…, neverpanic (Clemens Lang), dbsgeo@…, dbevans (David B. Evans), coateconnection (David Coate), drkp (Dan Ports), frodwith@…, humem (humem), jeff@…, jeremyhu (Jeremy Huddleston Sequoia), kjellpk (Kjell Konis), l2g@…, landonf (Landon Fuller), bpanulla (Brian Panulla), mww@…, p.ixiemotion@…, rowue@…, ryandesign (Ryan Carsten Schmidt), scantor (Scott Cantor), nerdling (Jeremy Lavergne), stromnov (Andrey Stromnov), coke (Will Coleda), yeti@…
Port: icu

Description

I would like to upgrade icu (51.2 -> 53.1 ), which requires upgrading all of its dependents.
#34457 seems to indicate that permission from maintainers is not necessary for a revision bump of all of these port, but I am not entirely sure.

Attachments (2)

patch-dependents.diff (13.5 KB) - added by MarcusCalhoun-Lopez (Marcus Calhoun-Lopez) 10 years ago.
patch-icu.diff (15.9 KB) - added by MarcusCalhoun-Lopez (Marcus Calhoun-Lopez) 10 years ago.

Download all attachments as: .zip

Change History (8)

Changed 10 years ago by MarcusCalhoun-Lopez (Marcus Calhoun-Lopez)

Attachment: patch-dependents.diff added

Changed 10 years ago by MarcusCalhoun-Lopez (Marcus Calhoun-Lopez)

Attachment: patch-icu.diff added

comment:1 Changed 10 years ago by mf2k (Frank Schima)

There is definitely precedent for doing so with the libpng (r115019) and jpeg (r102822) ports.

comment:2 Changed 10 years ago by ryandesign (Ryan Carsten Schmidt)

Assuming the library version of icu has increased, I would consider it the responsibility of the person updating icu to ensure that the dependents' revisions get increased. I would not consider permission from those port's maintainers to be necessary, but before committing such an update I would want to verify that most of the ports that depend on icu can still build using the new version.

comment:3 Changed 10 years ago by ryandesign (Ryan Carsten Schmidt)

You added a comment in your patchfile:

# port echo depends:icu finds dependencies

Note first of all that this finds dependents of icu (i.e. those that have a dependency on icu), not dependencies of icu. Second, note that more precisely, this finds ports that have dependencies whose names match the regular expression "icu"; this is more than just those that depend on the port icu. For example, it would find py-pyicu and gramps (which depend on py27-pyicu, not icu) and the webkit-gtk ports (which depend on harfbuzz-icu, not icu). Finally, note that this only finds dependencies declared by default; it does not find dependencies in non-default variants or that vary by platform or other conditionals; for example, if you run the command on Mavericks or later, you'll miss sword, which depends on icu, but clears its dependencies on Mavericks and later so that it can more quickly inform the user of the fact that it is not Mavericks-compatible. I usually just grep the portfiles, which doesn't have these shortcomings.

port file all | sort -u | xargs grep -E ':icu( |$)' | cut -d / -f 7 | sort -u

However, this produces slightly different output: where "port echo depends:icu" will print the names of affected subports, this grep pipeline will print the name of the directory the portfile is in.

Last edited 10 years ago by ryandesign (Ryan Carsten Schmidt) (previous) (diff)

comment:4 in reply to:  3 Changed 10 years ago by dbevans (David B. Evans)

Replying to ryandesign@…:

You added a comment in your patchfile:

# port echo depends:icu finds dependencies

Note first of all that this finds dependents of icu (i.e. those that have a dependency on icu), not dependencies of icu. Second, note that more precisely, this finds ports that have dependencies whose names match the regular expression "icu"; this is more than just those that depend on the port icu. For example, it would find py-pyicu and gramps (which depend on py27-pyicu, not icu) and the webkit-gtk ports (which depend on harfbuzz-icu, not icu). Finally, note that this only finds dependencies declared by default; it does not find dependencies in non-default variants or that vary by platform or other conditionals; for example, if you run the command on Mavericks or later, you'll miss sword, which depends on icu, but clears its dependencies on Mavericks and later so that it can more quickly inform the user of the fact that it is not Mavericks-compatible. I usually just grep the portfiles, which doesn't have these shortcomings.

port file all | sort -u | xargs grep -E ':icu( |$)' | cut -d / -f 7 | sort -u

However, this produces slightly different output: where "port echo depends:icu" will print the names of affected subports, this grep pipeline will print the name of the directory the portfile is in.

A example is gramps which has no direct dependency on icu but rather depends on py2[67]-pyicu. Gramps is pure python and does not need to be revbumped for this upgrade.

comment:5 Changed 10 years ago by MarcusCalhoun-Lopez (Marcus Calhoun-Lopez)

Fixed in r120843 and r120845.

comment:6 Changed 10 years ago by MarcusCalhoun-Lopez (Marcus Calhoun-Lopez)

Resolution: fixed
Status: newclosed
Note: See TracTickets for help on using tickets.