Opened 6 years ago

Closed 6 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), dlc@…, 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 Schmidt), scantor (Scott Cantor), nerdling (Jeremy L), stromnov (Andrew 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) 6 years ago.
patch-icu.diff (15.9 KB) - added by MarcusCalhoun-Lopez (Marcus Calhoun-Lopez) 6 years ago.

Download all attachments as: .zip

Change History (8)

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

Attachment: patch-dependents.diff added

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

Attachment: patch-icu.diff added

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

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

comment:2 Changed 6 years ago by ryandesign (Ryan 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 6 years ago by ryandesign (Ryan 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 6 years ago by ryandesign (Ryan Schmidt) (previous) (diff)

comment:4 in reply to:  3 Changed 6 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 6 years ago by MarcusCalhoun-Lopez (Marcus Calhoun-Lopez)

Fixed in r120843 and r120845.

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

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