[MacPorts] #27588: users are not aware that xz-devel is outdated and they should replace it by xz
MacPorts
noreply at macports.org
Mon Dec 6 11:29:26 PST 2010
#27588: users are not aware that xz-devel is outdated and they should replace it by
xz
----------------------------------+-----------------------------------------
Reporter: vinc17@… | Owner: afb@…
Type: defect | Status: closed
Priority: Normal | Milestone:
Component: ports | Version:
Resolution: fixed | Keywords:
Port: xz xz-devel |
----------------------------------+-----------------------------------------
Comment(by ryandesign@…):
Replying to [comment:7 afb@…]:
> > Adding explicit conflicts is absolutely necessary; it prevents a user
from wasting time building a port if it won't be able to activate anyway
due to conflicting files.
>
> Well, it does activate if the new/stable one is deactivated.
>
> > Which implicit file conflicts are you talking about?
>
> Your "conflicting files", above. As in they both install bin/xz
That's the exclusive purpose of the `conflicts` keyword -- to identify
ports that want to install the same files. The ports system assumes only
one port will ever install any particular file; the `conflicts` keyword is
the mechanism by which ports can be tagged to override this assumption, to
provide a better user experience.
> > > But it's a pretty strange way to version things, either way.
> >
> > What is?
>
> Separating two versions of a piece of software by changing name.
>
> Upgrading from 4.999.9beta to 5.0.0 is more of a "version" thing ?
>
> So ports systems are pretty strange, that way. Not everything is.
Well, 4.999.9beta was a development version. 5.0.0 is a stable version. In
cases where we want to maintain both a development version and a stable
version of a software in MacPorts, we maintain separate foo-devel and foo
ports. c.f. php5 & php5-devel, graphviz & graphviz-devel, pango & pango-
devel, cairo & cairo-devel, libpixman & libpixman-devel, glib2 &
glib2-devel, minivmac & minivmac-devel, etc. In the case of xz, we have
the more unusual circumstance of having had a development version of a
port before, and wishing to discontinue it and replace it with a stable
version, so we have to go through some acrobatics to support that.
> I have no idea how the new xz-devel works, so I'll unmaintain it.
It works in these ways:
* `replaced_by` tells MacPorts that when a user tries to upgrade the
port, it will instead install its replacement.
* increasing `version` causes the old port to appear in the output of
"port outdated", thus prompting the user to run "port upgrade" and
initiate the above process.
* clearing `distfiles` makes "port fetch" not attempt to download
anything.
* since there are no distfiles and the port doesn't install anything
anymore, `master_sites`, `checksums`, patchfiles, dependencies, configure,
build and destroot arguments, variants, and conflicts are deleted
* a message is printed in pre-configure so that anyone attempting to
install the port will be informed of its replacement.
* `livecheck.type` is set to none since this port's version never needs
to be updated again.
Once all users can reasonably be expected to have run "sudo port sync" and
"sudo port upgrade xz-devel" (to cause xz-devel to go away and xz to be
installed in its place), xz-devel can be deleted. I typically recommend
this not be done until at least one year in the future, since some users
upgrade very infrequently.
--
Ticket URL: <https://trac.macports.org/ticket/27588#comment:8>
MacPorts <http://www.macports.org/>
Ports system for Mac OS
More information about the macports-tickets
mailing list