Mailinglist Archive: opensuse-buildservice (233 mails)

< Previous Next >
Re: [opensuse-buildservice] Colons considered harmful: escaping LD_LIBRARY_PATH in OBS projects
  • From: Juergen Weigert <jw@xxxxxxx>
  • Date: Fri, 19 Dec 2008 16:50:17 +0100
  • Message-id: <20081219155017.GA3237@xxxxxxx>
On Dec 19, 08 14:44:50 +0100, Pavol Rusnak wrote:
Michal Marek wrote:
My idea was that 'osc co home:a_jaeger:something' would create
home_a_jaeger_something. If there would be a user "a" with project
home:a:jaeger:something and you would want to checkout his project, then
you would have to chose a different directory name. Would that work?

I don't like that name clash.

I did a little investigation about using special chars in OBS projects.
Mine observation:

':' - 6940 times (obviously)
'_' - 3361 (probably not a good candidate either)
'-' - 349
'.' - 107
'+' - 3

More reasons for getting rid of the colons:
Perl packages cannot be build when a colon is in the path.
selftests fail. Probably a bug in the perl test suite code.
Scp cannot handle names with colon in them at all.
Probably a bug in ssh quoting on the server side.

The following group of delimiters is unusable, because of the above or
the shell expansion:


This leaves us with the following set:

# = ^ @ ,

You forgot ~. checking out home~a_jaeger~something is not subject to shell
expansion. Only names starting with ~ are.

First three (# = ^) could be a part of the e-mail address (thus also
Novell account) and @ is used as user@host separator, so using it could
be confusing.

So from my point of view - comma is the winner! :D (and it is also
pretty readable too)

Do we have login names containing = ? Bugzilla search did not return any.
I guess we are left with three alternatives: ~ = , right?

Still my favourite would be /
In osc I can already say things like
$ osc up home\:jnweiger\:perl/perl-Wx/
U home:jnweiger:perl/perl-Wx/perl-Wx.spec
A home:jnweiger:perl/perl-Wx/
At revision 20.

I'd really appreciate if sub-projects could be sub-direcories when checked
out. e.g.
$ osc up home/jnweiger/perl/perl-Wx/
(off-topic: Currently it takes some effort to make subprojects inherit from
their parents. Imho, inheritance should be default, and the effort only be
needed to prevent it.)

From the design discussions, I only remember, that the ':'-suffix was chosen to
differenciate between package 'perl' and project 'perl:'
Do we have other reasons that prevent us from using simple '/' ?

From a checkout perspective this is technically not needed: In my example:
all directories under 'perl' form subprojects, all files under 'perl' belong
to the project perl. Too ugly? Solvable?

Okay, let's have a look at some of the alternatives mentioned so far:

$ osc up home:/a_jaeger:/perl/perl-Wx/
$ osc up home=/a_jaeger=/perl/perl-Wx/
$ osc up home~/a_jaeger~/perl/perl-Wx/
$ osc up home,/a_jaeger,/perl/perl-Wx/
$ osc up home_/a_jaeger_/perl/perl-Wx/
$ osc up home/a_jaeger/perl/perl-Wx/

$ osc up home=a_jaeger=perl/perl-Wx/
$ osc up home~a_jaeger~perl/perl-Wx/
$ osc up home,a_jaeger,perl/perl-Wx/
$ osc up home_a_jaeger_perl/perl-Wx/,/a_jaeger,/perl/openSUSE_11.0

Whatever syntax we choose, whe should chose a consistent syntax everywhere.


o \ Juergen Weigert paint it green! __/ _=======.=======_
<V> | jw@xxxxxxx (not a debating __/ _---|____________\/
\ | 0911 74053-508 excercise.) __/ (____/ /\
(/) | _____________________________/ _/ \_ vim:set sw=2 wm=8
SUSE LINUX Products GmbH, GF: Markus Rex, HRB 16746 (AG Nuernberg)
To unsubscribe, e-mail: opensuse-buildservice+unsubscribe@xxxxxxxxxxxx
For additional commands, e-mail: opensuse-buildservice+help@xxxxxxxxxxxx

< Previous Next >