On Fri, Jun 15, 2012 at 08:43:59AM +0100, Matthew Seaman wrote:
> On 15/06/2012 00:06, Jason Helfman wrote:
> > On Thu, Jun 14, 2012 at 10:14:52AM +0200, Baptiste Daroussin thus spake:
> >> On Wed, Jun 13, 2012 at 04:21:16PM +0100, Matthew Seaman wrote:
> >>>
> >>> Dear all,
> >>>
> >>> After recent mention in this list that UNIQUENAME is not actually a
> >>> unique name for each port and how obviously non-sensical that is, plus
> >>> how it causes various problems with OPTIONS processing and how having a
> >>> proper UNIQUENAME will facilitate the new sub-package functionality
> >>> currently on the drawing board.
> >>>
> >>> So, here are some patches:
> >>>
> >>>    http://people.freebsd.org/~matthew/uniquename/uniquenames.diff
> >>>
> >>> There's also some data on the effect these have on OPTIONSFILE and
> >>> UNIQUENAME values per port in
> >>>
> >>>    http://people.freebsd.org/~matthew/uniquename/before/*
> >>>    http://people.freebsd.org/~matthew/uniquename/after/*
> >>>
> >>> Summarizing the changes:
> >>>
> >>>    * UNIQUENAME is now unique per port, and is primarily derived from
> >>>      the port directory name.
> >>>
> >>>    * Where the port directory name isn't unique (eg. accessibility/orca
> >>>      vs graphics/orca) there is a new UNIQUEPREFIX variable to
> >>>      distinguish the affected ports.  This is set for all the LANG
> >>>      specific category ports (arabic, chinese, french, german, hebrew,
> >>>      hungarian, japanese, korean, polish, portuguese, russian,
> >>>      ukranian, vietnamese) to the standard 2 character abbreviation for
> >>>      that LANG.  Otherwise it is only set for the specific ports where
> >>>      there is a directory name collision, usually based on the category
> >>>      names.
> >>>
> >>>    * To avoid accidental non-uniqueness, UNIQUENAME should be treated
> >>>      as a read-only variable by port maintainers.  UNIQUEPREFIX should
> >>>      only be set where necessary to resolve conflicts.  All instances of
> >>>      ports setting UNIQUENAME have been removed: in the majority of
> >>>      cases, this turned out to be a no-op as the new UNIQUENAME turned
> >>>      out to be the same as what most ports were previously overriding
> >>>      it to.
> >>>
> >>>    * The way UNIQUENAME is defined means that it doesn't now change
> >>>      depending on the version of python, ruby or apache installed on a
> >>>      machine.
> >>>
> >>>    * UNIQUENAME will have changed for numerous ports -- consequently
> >>>      port OPTIONFILEs may well have changed location.  By default now,
> >>>      each port should have an individual  OPTIONFILE location.  This
> >>>      has removed a number of accidental cases of different (maybe
> >>>      completely unrelated) ports sharing the same OPTIONSFILE.
> >>>
> >>>    * If you do want to share the same OPTIONSFILE between several
> >>>      different ports, you can modify OPTIONSFILE directly or there is
> >>>      now a new OPTIONS_DIR variable allowing a simple way for you to
> >>>      override the location: OPTIONSFILE is redefined as:
> >>>
> >>>        OPTIONSFILE= ${PORT_DBDIR}/${OPTIONS_DIR}/options
> >>>
> >>>      with OPTIONS_DIR defaulting (as before) to UNIQUENAME unless
> >>>      overriden.  See databases/postgresql91-server for an example.
> >>>
> >>>    * Other things that may be affected: ports with USE_LDCONFIG or
> >>>      USE_LDCONFIG32 can have ldconfig data written to a different
> >>>      location.  This shouldn't make any user-visible change.
> >>>      Per-port options settings (OPTIONSng-style) in /etc/make.conf
> >>>      may need to be modified.
> >>>
> >>> Please test.  Comments, corrections and bug reports will be most welcome.
> >>>
> >>>   Cheers,
> >>>
> >>>   Matthew
> >>>
> >>> --
> >>> Dr Matthew J Seaman MA, D.Phil.
> >>> PGP: http://www.infracaninophile.co.uk/pgpkey
> >>>
> >>>
> >>>
> > 
> >> Thank you very much for the patch, it solves a problem that sticks for way 
> >> too
> >> long in the ports tree: the problem with options files.
> > 
> >> It also solve another problem which is really important when dealing with 
> >> binary
> >> packages and will allow to simplify the life of pkgng development: we 
> >> would for
> >> real get a unique identifier for a package!!!, before for we were 
> >> workarounding
> >> the problem considering origin as our unique identifier which "worked" but 
> >> no
> >> that good, it was hard to track a package which was moved (no MOVED isn't 
> >> an
> >> ideal solution to track them in full binary world)
> > 
> >> The other thing that it could solve for binary only world if that if 
> >> people from
> >> python ruby perl and others uses always the same uniquename for their 
> >> default
> >> version, then it will be easy to move from python26 as a default to 
> >> python27 as
> >> a default in full binary environment with no manual intervention from the 
> >> user
> >> and no complex hacks to figure it out in the package tool.
> > 
> >> Last but no least once it is done the LATEST_LINK overwrite could die, and 
> >> the
> >> feature associated could just use LATEST_LINK.
> > 
> >> Please do test this patch comment on it and improve it.
> > 
> >> regards,
> >> Bapt
> > 
> > Great patch. I've done some testing, but was aware of this issue, and even
> > have raised this with bapt during his implementation of optionsng to see if
> > he knew of this issue.
> > 
> >  From what I can see, this also takes care of this PR, but also adds some
> > needed consistency that has long been removed.
> > 
> > And by looking up the pr, I see you already have found it :)
> > 
> > http://www.freebsd.org/cgi/query-pr.cgi?pr=ports/148637
> > 
> > I humbly suggest to move this PR to an open state.
> > 
> > Great work, Matthew!
> > 
> > Thanks!
> > -jgh
> 
> If people want to get  a feeling for the changes involved in this patch,
> I've put together a script to scan the ports tree and highlight
> UNIQUENAME (and port name) conflicts.
> 
> http://people.freebsd.org/~matthew/uniquename/uniquecheck
> 
> No output is good,  unless you turn up the verbosity.
> 
>       Cheers,
> 
>       Matthew
> 
> -- 
> Dr Matthew J Seaman MA, D.Phil.
> PGP: http://www.infracaninophile.co.uk/pgpkey
> 
> 
> 
> 


Get this script in Tools/scripts maybe after your patch gets in that can be
useful!

regards,
Bapt

Attachment: pgpyUscx92UZp.pgp
Description: PGP signature

Reply via email to