Bug 173767 - lang/tcl85 conflicts with x11-toolkits/open-motif
lang/tcl85 conflicts with x11-toolkits/open-motif
Status: Closed FIXED
Product: Ports & Packages
Classification: Unclassified
Component: Individual Port(s)
Latest
Any Any
: Normal Affects Only Me
Assigned To: Brendan Fabeny
:
Depends on:
Blocks:
  Show dependency treegraph
 
Reported: 2012-11-21 15:50 UTC by chris.dukes.aix
Modified: 2013-02-06 15:53 UTC (History)
0 users

See Also:


Attachments
patch-conflicts-tcl85.txt (2.57 KB, patch)
2012-11-21 21:23 UTC, c.petrik.sosa
no flags Details | Diff
tcl85-manpages.txt (76.65 KB, text/plain; charset=US-ASCII)
2012-11-22 13:28 UTC, c.petrik.sosa
no flags Details
tcl85.diff.txt (6.10 KB, text/plain; charset=US-ASCII)
2012-11-25 04:02 UTC, bf1783
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description chris.dukes.aix 2012-11-21 15:50:00 UTC
I'm building packages under poudriere and opting to enable documentation on all modules.

The following error occurs when attempting to install.
Checking integrity...pkg: WARNING: locally installed open-motif-2.3.3_2 conflicts on /usr/local/man/man3/Object.3.gz with:
	- tcl-8.5.12_2

Or or both packages probably need to rename this manpage.

How-To-Repeat: Using poudriere to build the ports, enable docs/manpages for both and attempt to install tcl85 after open-motif
Comment 1 Mark Linimon freebsd_committer 2012-11-21 18:39:34 UTC
Responsible Changed
From-To: freebsd-bugs->freebsd-ports-bugs

ports PR.
Comment 2 Edwin Groothuis freebsd_committer 2012-11-21 18:39:49 UTC
Maintainer of lang/tcl85,

Please note that PR ports/173767 has just been submitted.

If it contains a patch for an upgrade, an enhancement or a bug fix
you agree on, reply to this email stating that you approve the patch
and a committer will take care of it.

The full text of the PR can be found at:
    http://www.freebsd.org/cgi/query-pr.cgi?pr=ports/173767

-- 
Edwin Groothuis via the GNATS Auto Assign Tool
edwin@FreeBSD.org
Comment 3 Edwin Groothuis freebsd_committer 2012-11-21 18:39:50 UTC
State Changed
From-To: open->feedback

Awaiting maintainers feedback (via the GNATS Auto Assign Tool)
Comment 4 c.petrik.sosa 2012-11-21 20:46:23 UTC
I will create a patch for this to rename the man page.
Comment 5 bf1783 2012-11-22 12:08:34 UTC
We generally try to avoid installing a file and then moving it to
another location.  It's inefficient, and can cause problems with some
security measures.  Moreover, it doesn't prevent an overwrite of the
existing manpage if motif is already installed.  A solution would be
to use the --enable-man-suffix configure option, to rename all of the
manpages.  This would help prevent other conflicts, and make it clear
what manpages are associated with tcl.  This should be done uniformly,
for all of the tcl/tk ports.

b.
Comment 6 Brendan Fabeny freebsd_committer 2012-11-22 12:11:00 UTC
Responsible Changed
From-To: freebsd-ports-bugs->bf

I'll take it.
Comment 7 bf1783 2012-11-22 12:34:13 UTC
On 11/22/12, Cpet Services <cpetservice@gmail.com> wrote:
> it was done with kvirc

You are talking about (what is now) r160922?  I misread the patch at
first: I thought you were installing the patch and then moving it,
which is definitely frowned upon.  Shuffling things about in the
WRKDIR is not as bad, but it's not necessary.  This kind of problem
has been looming for the tcl ports for some time: we may as well solve
the problem once and for all, instead of renaming only one manpage.

b.
Comment 8 bf1783 2012-11-22 13:05:42 UTC
On 11/22/12, Cpet Services <cpetservice@gmail.com> wrote:
> If it did not have so many man pages I would change it but since it has so
> many renaming 1 man page vs all of them

The number of manpages shouldn't present much of a problem for
renaming.  Many of the manpages have generic names, that (a) don't
clearly indicate to users of apropos(1) that they are associated with
tcl/tk (or what version of tcl/tk); and (b) may conflict with manpages
from other ports, in documentation database name or in actual
location.  It would be far better, in my opinion, to rename all of
them uniformly, using the option that the configure script provides
for that purpose.

b.
Comment 9 bf1783 2012-11-25 04:02:44 UTC
On 11/22/12, Chris Petrik <c.petrik.sosa@gmail.com> wrote:
> The following reply was made to PR ports/173767; it has been noted by
> GNATS.
>
> From: Chris Petrik <c.petrik.sosa@gmail.com>
> To: bug-followup@FreeBSD.org, chris.dukes.aix@gmail.com
> Cc:
> Subject: Re: ports/173767: lang/tcl85 conflicts with
> x11-toolkits/open-motif
> Date: Thu, 22 Nov 2012 07:28:25 -0600
>
>  --f46d04083b5115d01004cf157170
>  Content-Type: multipart/alternative; boundary=f46d04083b5115d00d04cf15716e
>
>  --f46d04083b5115d00d04cf15716e
>  Content-Type: text/plain; charset=UTF-8
>
>  Please test this patch to renamed all man pages to -tcl-8.5.3,n
>
>  Also if you are going to fix the man pages please update tcl85 to 8.5.13
>  and apply the patch PR for that is:
>  ports/173753<http://www.freebsd.org/cgi/query-pr.cgi?pr=ports/173753>
>

It looks like your patch is also polluted with some of the earlier
suggested changes? I see why you were worried about the number of
manpages to be renamed.  I had in mind something more compact, using
intermediate variables and a batch substitution, that would yield a
smaller diff, and not repeat the suffix unnecessarily.  Also, I was
thinking of a slightly shorter suffix that didn't include hyphens or
minor version numbers, and so would be easier to type.  It turns out
that some of our local patches rendered --enable-man-suffix useless,
so I just modified the appropriate parts of our local patches to have
the same effect.  While here, I included two changes that I've had in
my local tree for some time, and have been meaning to commit:

(1) Remove the two != assignments: these are bad because they are
unnecessarily executed every time the Makefile is parsed, and so slow
down index-building, etc.  I replaced them with the equivalent code
that is safely placed under Makefile targets; and

(2) Respect _MAKE_JOBS, MAKE_ARGS, MAKE_ENV, etc. by using the
canonical make stanza for the secondary targets.

Comments?

I will take a look at ports/173753, but it will have to wait until
after the ports tree is unfrozen.  It will have to be synchronized
with an update to tk85, and possibly other dependent ports, and will
probably need an exp-run.

b.
Comment 10 c.petrik.sosa 2012-11-25 14:37:53 UTC
I think you are over complicating this as people will have issues with the
man pages being named -tcl-ver. the manpage causing the issue should be the
one thats renamed not the whole lot.
Comment 11 bf1783 2012-11-25 17:38:49 UTC
On 11/25/12, Chris Petrik <c.petrik.sosa@gmail.com> wrote:
> The following reply was made to PR ports/173767; it has been noted by
> GNATS.
>
> From: Chris Petrik <c.petrik.sosa@gmail.com>

>  I think you are over complicating this as people will have issues with the
>  man pages being named -tcl-ver. the manpage causing the issue should be
> the
>  one thats renamed not the whole lot.

I can understand your desire to keep things simple, but I think that
it is a good idea for the reasons I already mentioned.  Apart from the
other changes that I suggested, that should be made anyway, renaming
all of the manpages only adds a few more lines to the port Makefile
and to the diff (and maybe a few more if you want to change the
internal references in the manpages).  And it removes not only the
file conflicts with x11-toolkits/open-motif (Object.3) and the other
lang/tcl8* ports (nearly all manpages), but also removes the
documentation database conflicts with the lang/tcl8* ports (nearly all
manpages), lang/perl5.* ports (Thread.3) and lang/linux-f10-tcl85
(TCL_MEM_DEBUG.3 and Tcl_Main.3), and so obviates the need to tinker
with MANPREFIX or use fully-qualified pathnames when you want to view
conflicting manpages. Consider the alternatives:

--If you only rename one or two manpages, you prevent users from
simultaneously installing more than one version of lang/tcl8* with
manpages, and you must register CONFLICTS with the other tcl ports,
but only when manpages are installed.  To do that you must either
split the manpages into separate ports with unconditional CONFLICTS,
or you must change the package names via PKGNAMESUFFIX or the like,
and add conditional CONFLICTS.

--Or you could change mandir to be version-specific, but then you have
to add MANPREFIX, etc.

And with both of these alternatives there are still the annoying
documentation database conflicts.

I think that the fact that the upstream maintainers added the
--enable-manpage-suffix option is a tacit acknowledgement that
renaming would be needed and acceptable in certain circumstances.
Some of the other packaging systems change the mandir and/or rename
the manpage sections. While the latter may help users of apropos(1) in
some cases, it isn't wholly satisfactory; and neither the former nor
the latter solve the problem with documentation database conflicts:
users still have to tinker with MANPREFIX and/or MANSECTION, or use
fully-qualified pathnames, to read the right manpages.

b.
Comment 12 c.petrik.sosa 2012-11-25 17:53:02 UTC
On 11/25/2012 11:38 AM, b. f. wrote:
> On 11/25/12, Chris Petrik <c.petrik.sosa@gmail.com> wrote:
>> The following reply was made to PR ports/173767; it has been noted by
>> GNATS.
>>
>> From: Chris Petrik <c.petrik.sosa@gmail.com>
>>   I think you are over complicating this as people will have issues with the
>>   man pages being named -tcl-ver. the manpage causing the issue should be
>> the
>>   one thats renamed not the whole lot.
> I can understand your desire to keep things simple, but I think that
> it is a good idea for the reasons I already mentioned.  Apart from the
> other changes that I suggested, that should be made anyway, renaming
> all of the manpages only adds a few more lines to the port Makefile
> and to the diff (and maybe a few more if you want to change the
> internal references in the manpages).  And it removes not only the
> file conflicts with x11-toolkits/open-motif (Object.3) and the other
> lang/tcl8* ports (nearly all manpages), but also removes the
> documentation database conflicts with the lang/tcl8* ports (nearly all
> manpages), lang/perl5.* ports (Thread.3) and lang/linux-f10-tcl85
> (TCL_MEM_DEBUG.3 and Tcl_Main.3), and so obviates the need to tinker
> with MANPREFIX or use fully-qualified pathnames when you want to view
> conflicting manpages. Consider the alternatives:
>
> --If you only rename one or two manpages, you prevent users from
> simultaneously installing more than one version of lang/tcl8* with
> manpages, and you must register CONFLICTS with the other tcl ports,
> but only when manpages are installed.  To do that you must either
> split the manpages into separate ports with unconditional CONFLICTS,
> or you must change the package names via PKGNAMESUFFIX or the like,
> and add conditional CONFLICTS.
>
> --Or you could change mandir to be version-specific, but then you have
> to add MANPREFIX, etc.
>
> And with both of these alternatives there are still the annoying
> documentation database conflicts.
>
> I think that the fact that the upstream maintainers added the
> --enable-manpage-suffix option is a tacit acknowledgement that
> renaming would be needed and acceptable in certain circumstances.
> Some of the other packaging systems change the mandir and/or rename
> the manpage sections. While the latter may help users of apropos(1) in
> some cases, it isn't wholly satisfactory; and neither the former nor
> the latter solve the problem with documentation database conflicts:
> users still have to tinker with MANPREFIX and/or MANSECTION, or use
> fully-qualified pathnames, to read the right manpages.
>
> b.
If you think this is the way to go by all means commit your patch :) I 
will use it to fix the other tcl ports later on.
Comment 13 bf1783 2012-11-25 19:32:17 UTC
On 11/25/12, Chris Petrik <c.petrik.sosa@gmail.com> wrote:

...

>> Some of the other packaging systems change the mandir and/or rename
>> the manpage sections. While the latter may help users of apropos(1) in
>> some cases, it isn't wholly satisfactory; and neither the former nor
>> the latter solve the problem with documentation database conflicts:
>> users still have to tinker with MANPREFIX and/or MANSECTION, or use

In the above, I meant MANPATH and/or MANSECTION, of course...

>> fully-qualified pathnames, to read the right manpages.

...

> If you think this is the way to go by all means commit your patch :) I
> will use it to fix the other tcl ports later on.

I'll consult with one or two other interested committers.  If there
isn't significant disagreement, we can make the changes
simultaneously.

b.
Comment 14 c.petrik.sosa 2012-11-26 14:57:47 UTC
On 11/25/2012 2:06 PM, Chris Petrik wrote:
> On 11/25/2012 1:32 PM, b. f. wrote:
>> On 11/25/12, Chris Petrik <c.petrik.sosa@gmail.com> wrote:
>>
>> ...
>>
>>>> Some of the other packaging systems change the mandir and/or rename
>>>> the manpage sections. While the latter may help users of apropos(1) in
>>>> some cases, it isn't wholly satisfactory; and neither the former nor
>>>> the latter solve the problem with documentation database conflicts:
>>>> users still have to tinker with MANPREFIX and/or MANSECTION, or use
>> In the above, I meant MANPATH and/or MANSECTION, of course...
>>
>>>> fully-qualified pathnames, to read the right manpages.
>> ...
>>
>>> If you think this is the way to go by all means commit your patch :) I
>>> will use it to fix the other tcl ports later on.
>> I'll consult with one or two other interested committers.  If there
>> isn't significant disagreement, we can make the changes
>> simultaneously. I
>>
>> b.
> I maintain most of them 83,84,85
I no longer maintain tcl 83 84 85 tk 83 tcl-modules and new maintainer 
is tcltk@ feel free to change as needed.
Comment 15 Pietro Cerutti freebsd_committer 2013-02-06 15:53:48 UTC
State Changed
From-To: feedback->closed

This has been taken care of in r311773 and r311775. Thanks!