public inbox for gentoo-dev@lists.gentoo.org
 help / color / mirror / Atom feed
* [gentoo-dev] [RFC] obs eclasses
@ 2011-09-13 11:11 Michal Hrusecky
  2011-09-13 11:24 ` Amadeusz Żołnowski
                   ` (3 more replies)
  0 siblings, 4 replies; 29+ messages in thread
From: Michal Hrusecky @ 2011-09-13 11:11 UTC (permalink / raw
  To: gentoo-dev


[-- Attachment #1.1: Type: text/plain, Size: 221 bytes --]

Hi,

please take a look at attached eclasses. Purpose is to make installation
of obs services (plugins for osc) easier.

Comments and improvements are welcome.

Regards

-- 
	Michal Hrusecky <miska@gentoo.org>

[-- Attachment #1.2: obs-download.eclass --]
[-- Type: text/plain, Size: 1516 bytes --]

# Copyright 1999-2011 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: $

# @ECLASS: obs-download.eclass
# @MAINTAINER:
# miska@gentoo.org
# @BLURB: Reduces code duplication in the downloading from obs.
# @DESCRIPTION:
# This eclass constructs OBS_URI based on provided project in openSUSE Build
# Service and package name. It can be used later by packages/eclasses to
# download actual files.
#
# All you need to do in order to use it is set OBS_PROJECT and OBS_PACKAGE and
# inherit this eclass. It will provide OBS_URI in return which you will prepend
# to your files and use in SRC_URI. Alternatively you can just set
# OPENSUSE_RELEASE and OBS_PACKAGE and it will give you back OBS_URI for
# downloading files from obs projects corresponding to the specified openSUSE
# release.

# @ECLASS-VARIABLE: OPENSUSE_RELEASE
# @DEFAULT_UNSET
# @DESCRIPTION:
# From which stable openSUSE realease to take files.

# @ECLASS-VARIABLE: OBS_PROJECT
# @DEFAULT_UNSET
# @DESCRIPTION:
# In which obs project pakage is. This variable don't have to be set, if
# OPENSUSE_RELEASE is provided.

# @ECLASS-VARIABLE: OPENSUSE_PACKAGE
# @REQUIRED
# @DESCRIPTION:
# Name of the package we want to take files from.

[[ -z ${OPENSUSE_RELEASE} ]] || OBS_PROJECT="openSUSE:${OPENSUSE_RELEASE}"
[[ -n ${OBS_PROJECT} ]]      || die "OBS_PROJECT not set!"
[[ -n ${OBS_PACKAGE} ]]      || die "OBS_PACKAGE not set!"

OBS_URI="https://api.opensuse.org/public/source/${OBS_PROJECT}/${OBS_PACKAGE}"

[-- Attachment #1.3: obs-service.eclass --]
[-- Type: text/plain, Size: 2375 bytes --]

# Copyright 1999-2011 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: $

# @ECLASS: obs-service.eclass
# @MAINTAINER:
# miska@gentoo.org
# @BLURB: Reduces code duplication in the obs services.
# @DESCRIPTION:
# This eclass makes it easier to package obs services. Based on provided
# information it will all neede variables and takes care of installation.
#
# @EXAMPLE:
# Typical ebuild using obs-service.eclass:
#
# @CODE
# EAPI=4
#
# inherit obs-service
#
# KEYWORDS=""
#
# DEPEND=""
# RDEPEND="${DEPEND}"
#
# @CODE

# @ECLASS-VARIABLE: OBS_SERVICE_NAME
# @DESCRIPTION:
# Name of the service. If not set, it is taken from ${PN}.

# @ECLASS-VARIABLE: OPENSUSE_RELEASE
# @DESCRIPTION:
# From which stable openSUSE realease to take a package.

# @ECLASS-VARIABLE: ADDITIONAL_FILES
# @DEFAULT_UNSET
# @DESCRIPTION:
# If any additional files are needed.

case "${EAPI:-0}" in
	4) : ;;
	*) die "EAPI=${EAPI} is not supported" ;;
esac

HOMEPAGE="http://en.opensuse.org/openSUSE:OSC"
LICENSE="GPL-2"
SLOT="0"
IUSE=""
RDEPEND+="dev-util/osc"

[[ -n ${OBS_SERVICE_NAME} ]] || OBS_SERVICE_NAME=${PN/obs-service-/}
[[ -n ${OPENSUSE_RELEASE} ]] || OBS_PROJECT="openSUSE:Tools"

DESCRIPTION="Open Build Service client module - ${OBS_SERVICE_NAME} service"
OBS_PACKAGE="obs-service-${OBS_SERVICE_NAME}"

inherit obs-download

SRC_URI="${OBS_URI}/${OBS_SERVICE_NAME}"
SRC_URI+=" ${OBS_URI}/${OBS_SERVICE_NAME}.service"

for i in ${ADDITIONAL_FILES}; do
	SRC_URI+=" ${OBS_URI}/${i}"
done

S="${WORKDIR}"

# @FUNCTION: obs-service_src_configure
# @DESCRIPTION:
# Does nothing. Files are not compressed.
obs-service_src_unpack() {
	debug-print-function ${FUNCNAME} "$@"
}

# @FUNCTION: obs-service_src_install
# @DESCRIPTION:
# Does the installation of the downloaded files.
obs-service_src_install() {
	debug-print-function ${FUNCNAME} "$@"
	debug-print "Installing service \"${OBS_SERVICE_NAME}\""
	exeinto /usr/lib/obs/service
	doexe ${DISTDIR}/${OBS_SERVICE_NAME}
	insinto /usr/lib/obs/service
	doins ${DISTDIR}/${OBS_SERVICE_NAME}.service
	if [[ -n ${ADDITIONAL_FILES} ]]; then
		debug-print "Installing following additional files:"
		debug-print "	${ADDITIONAL_FILES}"
		exeinto /usr/lib/obs/service/${OBS_SERVICE_NAME}.files
		for i in ${ADDITIONAL_FILES}; do
			doexe ${DISTDIR}/$i
		done
	fi
}

EXPORT_FUNCTIONS src_install src_unpack

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 230 bytes --]

^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [gentoo-dev] [RFC] obs eclasses
  2011-09-13 11:11 [gentoo-dev] [RFC] obs eclasses Michal Hrusecky
@ 2011-09-13 11:24 ` Amadeusz Żołnowski
  2011-09-13 12:26   ` Joshua Kinard
  2011-09-13 14:37   ` [gentoo-dev] " Michal Hrusecky
  2011-09-13 14:59 ` Donnie Berkholz
                   ` (2 subsequent siblings)
  3 siblings, 2 replies; 29+ messages in thread
From: Amadeusz Żołnowski @ 2011-09-13 11:24 UTC (permalink / raw
  To: gentoo-dev

[-- Attachment #1: Type: text/plain, Size: 1497 bytes --]

Hi,


Excerpts from Michal Hrusecky's message of 2011-09-13 13:11:28 +0200:
> Comments and improvements are welcome.

Just some minor remarks:


> [[ -z ${OPENSUSE_RELEASE} ]] || OBS_PROJECT="openSUSE:${OPENSUSE_RELEASE}"
> [[ -n ${OBS_PROJECT} ]]      || die "OBS_PROJECT not set!"
> [[ -n ${OBS_PACKAGE} ]]      || die "OBS_PACKAGE not set!"

You don't need -n/-z with [[.

  [[ $var ]] == [[ -n $var ]]
  [[ ! $var ]] == [[ -z $var ]]

So:

  [[ ${OPENSUSE_RELEASE} ]] && OBS_PROJECT="openSUSE:${OPENSUSE_RELEASE}"
  [[ ${OBS_PROJECT} ]] || die "OBS_PROJECT not set!"
  [[ ${OBS_PACKAGE} ]] || die "OBS_PACKAGE not set!"

> obs-service_src_install() {
>         debug-print-function ${FUNCNAME} "$@"
>         debug-print "Installing service \"${OBS_SERVICE_NAME}\""
>         exeinto /usr/lib/obs/service
>         doexe ${DISTDIR}/${OBS_SERVICE_NAME}
>         insinto /usr/lib/obs/service
>         doins ${DISTDIR}/${OBS_SERVICE_NAME}.service
>         if [[ -n ${ADDITIONAL_FILES} ]]; then
>                 debug-print "Installing following additional files:"
>                 debug-print "        ${ADDITIONAL_FILES}"
>                 exeinto /usr/lib/obs/service/${OBS_SERVICE_NAME}.files
>                 for i in ${ADDITIONAL_FILES}; do
>                         doexe ${DISTDIR}/$i

"" just in case.

>                 done
>         fi
> }

-- 
Amadeusz Żołnowski

PGP key fpr: C700 CEDE 0C18 212E 49DA  4653 F013 4531 E1DB FAB5

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 490 bytes --]

^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [gentoo-dev] [RFC] obs eclasses
  2011-09-13 11:24 ` Amadeusz Żołnowski
@ 2011-09-13 12:26   ` Joshua Kinard
  2011-09-13 13:02     ` Amadeusz Żołnowski
  2011-09-20  5:09     ` [gentoo-dev] " Steven J Long
  2011-09-13 14:37   ` [gentoo-dev] " Michal Hrusecky
  1 sibling, 2 replies; 29+ messages in thread
From: Joshua Kinard @ 2011-09-13 12:26 UTC (permalink / raw
  To: gentoo-dev

[-- Attachment #1: Type: text/plain, Size: 1356 bytes --]

On 09/13/2011 07:24, Amadeusz Żołnowski wrote:

> Hi,
> 
> 
> Excerpts from Michal Hrusecky's message of 2011-09-13 13:11:28 +0200:
>> Comments and improvements are welcome.
> 
> Just some minor remarks:
> 
> 
>> [[ -z ${OPENSUSE_RELEASE} ]] || OBS_PROJECT="openSUSE:${OPENSUSE_RELEASE}"
>> [[ -n ${OBS_PROJECT} ]]      || die "OBS_PROJECT not set!"
>> [[ -n ${OBS_PACKAGE} ]]      || die "OBS_PACKAGE not set!"
> 
> You don't need -n/-z with [[.
> 
>   [[ $var ]] == [[ -n $var ]]
>   [[ ! $var ]] == [[ -z $var ]]
> 

What about other comparisons, like -f, -e, or -d?  Bash's manpage only says
[[ expression ]] -- it doesn't seem to go into the level of detail (at least
not in the section that I quickly perused) about what flag operators are
necessary or not.

Also, is this a bash4-only thing, or bash3 and/or bash2 as well?

If yes to above, we should get this edited and fixed up, then, because it
uses -z/-n inside [[ ]]:
http://devmanual.gentoo.org/tools-reference/bash/index.html

Oh, forgot, it won't break initscripts, will it?

-- 
Joshua Kinard
Gentoo/MIPS
kumba@gentoo.org
4096R/D25D95E3 2011-03-28

"The past tempts us, the present confuses us, the future frightens us.  And
our lives slip away, moment by moment, lost in that vast, terrible in-between."

--Emperor Turhan, Centauri Republic


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 834 bytes --]

^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [gentoo-dev] [RFC] obs eclasses
  2011-09-13 12:26   ` Joshua Kinard
@ 2011-09-13 13:02     ` Amadeusz Żołnowski
  2011-09-13 13:12       ` Michał Górny
  2011-09-13 14:44       ` Donnie Berkholz
  2011-09-20  5:09     ` [gentoo-dev] " Steven J Long
  1 sibling, 2 replies; 29+ messages in thread
From: Amadeusz Żołnowski @ 2011-09-13 13:02 UTC (permalink / raw
  To: gentoo-dev

[-- Attachment #1: Type: text/plain, Size: 769 bytes --]

Excerpts from Joshua Kinard's message of 2011-09-13 14:26:02 +0200:
> > You don't need -n/-z with [[.
> > 
> >   [[ $var ]] == [[ -n $var ]]
> >   [[ ! $var ]] == [[ -z $var ]]
> 
> What about other comparisons, like -f, -e, or -d?

Same as inside [, but no need of quotes inside [[.

> Also, is this a bash4-only thing, or bash3 and/or bash2 as well?

I'm not sure.

OT: When I was going through recruitment process, dberkholz pointed to
me that I use things bash4-only. And again: why we need to stick to
ancient 3 version? I would understand pseudo POSIX compatibility, but
what is the benefit of bash3 compatibility while bash4 is stable
already?


-- 
Amadeusz Żołnowski

PGP key fpr: C700 CEDE 0C18 212E 49DA  4653 F013 4531 E1DB FAB5

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 490 bytes --]

^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [gentoo-dev] [RFC] obs eclasses
  2011-09-13 13:02     ` Amadeusz Żołnowski
@ 2011-09-13 13:12       ` Michał Górny
  2011-09-13 14:44       ` Donnie Berkholz
  1 sibling, 0 replies; 29+ messages in thread
From: Michał Górny @ 2011-09-13 13:12 UTC (permalink / raw
  To: gentoo-dev; +Cc: aidecoe

[-- Attachment #1: Type: text/plain, Size: 484 bytes --]

On Tue, 13 Sep 2011 15:02:43 +0200
Amadeusz Żołnowski <aidecoe@gentoo.org> wrote:

> OT: When I was going through recruitment process, dberkholz pointed to
> me that I use things bash4-only. And again: why we need to stick to
> ancient 3 version? I would understand pseudo POSIX compatibility, but
> what is the benefit of bash3 compatibility while bash4 is stable
> already?

It was to prevent Arfrever from doing insane things :D.

-- 
Best regards,
Michał Górny

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 316 bytes --]

^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [gentoo-dev] [RFC] obs eclasses
  2011-09-13 11:24 ` Amadeusz Żołnowski
  2011-09-13 12:26   ` Joshua Kinard
@ 2011-09-13 14:37   ` Michal Hrusecky
  1 sibling, 0 replies; 29+ messages in thread
From: Michal Hrusecky @ 2011-09-13 14:37 UTC (permalink / raw
  To: gentoo-dev

[-- Attachment #1: Type: text/plain, Size: 1580 bytes --]

Amadeusz Żołnowski - 13:24 13.09.11 wrote:
> Hi,
> 
> 
> Excerpts from Michal Hrusecky's message of 2011-09-13 13:11:28 +0200:
> > Comments and improvements are welcome.
> 
> Just some minor remarks:
> 
> 
> > [[ -z ${OPENSUSE_RELEASE} ]] || OBS_PROJECT="openSUSE:${OPENSUSE_RELEASE}"
> > [[ -n ${OBS_PROJECT} ]]      || die "OBS_PROJECT not set!"
> > [[ -n ${OBS_PACKAGE} ]]      || die "OBS_PACKAGE not set!"
> 
> You don't need -n/-z with [[.

But they don't do any harm either, right ;-)

>   [[ $var ]] == [[ -n $var ]]
>   [[ ! $var ]] == [[ -z $var ]]
> 
> So:
> 
>   [[ ${OPENSUSE_RELEASE} ]] && OBS_PROJECT="openSUSE:${OPENSUSE_RELEASE}"
>   [[ ${OBS_PROJECT} ]] || die "OBS_PROJECT not set!"
>   [[ ${OBS_PACKAGE} ]] || die "OBS_PACKAGE not set!"
> 
> > obs-service_src_install() {
> >         debug-print-function ${FUNCNAME} "$@"
> >         debug-print "Installing service \"${OBS_SERVICE_NAME}\""
> >         exeinto /usr/lib/obs/service
> >         doexe ${DISTDIR}/${OBS_SERVICE_NAME}
> >         insinto /usr/lib/obs/service
> >         doins ${DISTDIR}/${OBS_SERVICE_NAME}.service
> >         if [[ -n ${ADDITIONAL_FILES} ]]; then
> >                 debug-print "Installing following additional files:"
> >                 debug-print "        ${ADDITIONAL_FILES}"
> >                 exeinto /usr/lib/obs/service/${OBS_SERVICE_NAME}.files
> >                 for i in ${ADDITIONAL_FILES}; do
> >                         doexe ${DISTDIR}/$i
> 
> "" just in case.

Fixed.

-- 
	Michal Hrusecky <miska@gentoo.org>

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 230 bytes --]

^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [gentoo-dev] [RFC] obs eclasses
  2011-09-13 13:02     ` Amadeusz Żołnowski
  2011-09-13 13:12       ` Michał Górny
@ 2011-09-13 14:44       ` Donnie Berkholz
  2011-09-13 15:58         ` Patrick Lauer
  1 sibling, 1 reply; 29+ messages in thread
From: Donnie Berkholz @ 2011-09-13 14:44 UTC (permalink / raw
  To: gentoo-dev

[-- Attachment #1: Type: text/plain, Size: 1266 bytes --]

On 15:02 Tue 13 Sep     , Amadeusz Żołnowski wrote:
> Excerpts from Joshua Kinard's message of 2011-09-13 14:26:02 +0200:
> > > You don't need -n/-z with [[.
> > > 
> > >   [[ $var ]] == [[ -n $var ]]
> > >   [[ ! $var ]] == [[ -z $var ]]
> > 
> > What about other comparisons, like -f, -e, or -d?
> 
> Same as inside [, but no need of quotes inside [[.
> 
> > Also, is this a bash4-only thing, or bash3 and/or bash2 as well?
> 
> I'm not sure.
> 
> OT: When I was going through recruitment process, dberkholz pointed to
> me that I use things bash4-only. And again: why we need to stick to
> ancient 3 version? I would understand pseudo POSIX compatibility, but
> what is the benefit of bash3 compatibility while bash4 is stable
> already?

It's because people want to pretend that it's possible for incredibly 
outdated systems (those with bash-3 only) to be updated.

We're stuck in this limbo because "we" have apparently decided that just 
waiting a year, as we used to do, isn't good enough anymore; but at the 
same time, we don't have a better mechanism in place yet. So we're 
waffling around, doing nothing.

-- 
Thanks,
Donnie

Donnie Berkholz
Council Member / Sr. Developer
Gentoo Linux
Blog: http://dberkholz.com

[-- Attachment #2: Type: application/pgp-signature, Size: 198 bytes --]

^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [gentoo-dev] [RFC] obs eclasses
  2011-09-13 11:11 [gentoo-dev] [RFC] obs eclasses Michal Hrusecky
  2011-09-13 11:24 ` Amadeusz Żołnowski
@ 2011-09-13 14:59 ` Donnie Berkholz
  2011-09-13 15:55   ` Nirbheek Chauhan
  2011-09-14  8:44   ` Michal Hrusecky
  2011-09-14  8:56 ` Michal Hrusecky
  2011-09-20  8:23 ` [gentoo-dev] " Michał Górny
  3 siblings, 2 replies; 29+ messages in thread
From: Donnie Berkholz @ 2011-09-13 14:59 UTC (permalink / raw
  To: gentoo-dev

[-- Attachment #1: Type: text/plain, Size: 1270 bytes --]

On 13:11 Tue 13 Sep     , Michal Hrusecky wrote:
> # Copyright 1999-2011 Gentoo Foundation
> # Distributed under the terms of the GNU General Public License v2
> # $Header: $
> 
> # @ECLASS: obs-download.eclass

Are there going to be lots of packages using this and not the other 
eclass? I wonder whether there really need to be two of them.

> # @MAINTAINER:
> # miska@gentoo.org
> # @BLURB: Reduces code duplication in the downloading from obs.

Could you tell us what "obs" is in the blurb too? I had no clue what 
this email was about (obs, osc, etc are meaningless to me) until I got 
down to the eclass description.

> # @ECLASS: obs-service.eclass
> # @MAINTAINER:
> # miska@gentoo.org
> # @BLURB: Reduces code duplication in the obs services.
> # @DESCRIPTION:
> # This eclass makes it easier to package obs services. Based on provided
> # information it will all neede variables and takes care of installation.

Lots of typos here.

> HOMEPAGE="http://en.opensuse.org/openSUSE:OSC"
> LICENSE="GPL-2"
> SLOT="0"
> IUSE=""
> RDEPEND+="dev-util/osc"

You probably want a space here.

RDEPEND+=" dev-util/osc"

-- 
Thanks,
Donnie

Donnie Berkholz
Council Member / Sr. Developer
Gentoo Linux
Blog: http://dberkholz.com

[-- Attachment #2: Type: application/pgp-signature, Size: 198 bytes --]

^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [gentoo-dev] [RFC] obs eclasses
  2011-09-13 14:59 ` Donnie Berkholz
@ 2011-09-13 15:55   ` Nirbheek Chauhan
  2011-09-14  8:44   ` Michal Hrusecky
  1 sibling, 0 replies; 29+ messages in thread
From: Nirbheek Chauhan @ 2011-09-13 15:55 UTC (permalink / raw
  To: gentoo-dev

On Tue, Sep 13, 2011 at 8:29 PM, Donnie Berkholz <dberkholz@gentoo.org> wrote:
>> HOMEPAGE="http://en.opensuse.org/openSUSE:OSC"
>> LICENSE="GPL-2"
>> SLOT="0"
>> IUSE=""
>> RDEPEND+="dev-util/osc"
>
> You probably want a space here.
>
> RDEPEND+=" dev-util/osc"
>

Slightly bike-sheddy, but it's less error-prone to use:

RDEPEND="dev-util/osc"

iirc, portage handles merging of the values of *DEPEND defined in
eclasses and ebuilds.

-- 
~Nirbheek Chauhan

Gentoo GNOME+Mozilla Team



^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [gentoo-dev] [RFC] obs eclasses
  2011-09-13 14:44       ` Donnie Berkholz
@ 2011-09-13 15:58         ` Patrick Lauer
  2011-09-13 16:41           ` Donnie Berkholz
  2011-09-14  5:37           ` Ciaran McCreesh
  0 siblings, 2 replies; 29+ messages in thread
From: Patrick Lauer @ 2011-09-13 15:58 UTC (permalink / raw
  To: gentoo-dev

On 09/13/11 16:44, Donnie Berkholz wrote:
> On 15:02 Tue 13 Sep     , Amadeusz Żołnowski wrote:
>> Excerpts from Joshua Kinard's message of 2011-09-13 14:26:02 +0200:
>>>> You don't need -n/-z with [[.
>>>>
>>>>   [[ $var ]] == [[ -n $var ]]
>>>>   [[ ! $var ]] == [[ -z $var ]]
>>>
>>> What about other comparisons, like -f, -e, or -d?
>>
>> Same as inside [, but no need of quotes inside [[.
>>
>>> Also, is this a bash4-only thing, or bash3 and/or bash2 as well?
>>
>> I'm not sure.
>>
>> OT: When I was going through recruitment process, dberkholz pointed to
>> me that I use things bash4-only. And again: why we need to stick to
>> ancient 3 version? I would understand pseudo POSIX compatibility, but
>> what is the benefit of bash3 compatibility while bash4 is stable
>> already?
> 
> It's because people want to pretend that it's possible for incredibly 
> outdated systems (those with bash-3 only) to be updated.

Actually it's worse - PMS enforces this, and the only clean way out is
to patch/fix/extend PMS to allow bash4 - but that breaks compatibility
in silly ways.

The proper way to handle that? I'm not sure, since we had a long fight
to get PMS to acknowledge bash 3.2 instead of 3.0 I'm mostly ignoring
PMS as it doesn't care about reality.
> 
> We're stuck in this limbo because "we" have apparently decided that just 
> waiting a year, as we used to do, isn't good enough anymore; but at the 
> same time, we don't have a better mechanism in place yet. So we're 
> waffling around, doing nothing.
> 
That's not quite correct for this case, but it shows that we need to
discuss destructive changes (in the sense that they are not
backwards-compatible etc.) to have any decent progress



^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [gentoo-dev] [RFC] obs eclasses
  2011-09-13 15:58         ` Patrick Lauer
@ 2011-09-13 16:41           ` Donnie Berkholz
  2011-09-13 17:25             ` Ulrich Mueller
  2011-09-14  5:39             ` Ciaran McCreesh
  2011-09-14  5:37           ` Ciaran McCreesh
  1 sibling, 2 replies; 29+ messages in thread
From: Donnie Berkholz @ 2011-09-13 16:41 UTC (permalink / raw
  To: gentoo-dev

[-- Attachment #1: Type: text/plain, Size: 1677 bytes --]

On 17:58 Tue 13 Sep     , Patrick Lauer wrote:
> On 09/13/11 16:44, Donnie Berkholz wrote:
> > It's because people want to pretend that it's possible for 
> > incredibly outdated systems (those with bash-3 only) to be updated.
> 
> Actually it's worse - PMS enforces this, and the only clean way out is 
> to patch/fix/extend PMS to allow bash4 - but that breaks compatibility 
> in silly ways.
> 
> The proper way to handle that? I'm not sure, since we had a long fight 
> to get PMS to acknowledge bash 3.2 instead of 3.0 I'm mostly ignoring 
> PMS as it doesn't care about reality.

Thanks for the reminder; I looked, and it turns out that we now have a 
great precedent. Quoting PMS:

"The required bash version was retroactively updated from 3.0 to 3.2 in 
November 2009 (see http://www.gentoo. 
org/proj/en/council/meeting-logs/20091109.txt)."

So we could just retroactively update it again and let people scream if 
they're actually affected by this.

> > We're stuck in this limbo because "we" have apparently decided that 
> > just waiting a year, as we used to do, isn't good enough anymore; 
> > but at the same time, we don't have a better mechanism in place yet. 
> > So we're waffling around, doing nothing.
> 
> That's not quite correct for this case, but it shows that we need to 
> discuss destructive changes (in the sense that they are not 
> backwards-compatible etc.) to have any decent progress

Maybe a way to set tree-level dependencies/EAPIs/features is something 
we seriously need to get going on.

-- 
Thanks,
Donnie

Donnie Berkholz
Council Member / Sr. Developer
Gentoo Linux
Blog: http://dberkholz.com

[-- Attachment #2: Type: application/pgp-signature, Size: 198 bytes --]

^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [gentoo-dev] [RFC] obs eclasses
  2011-09-13 16:41           ` Donnie Berkholz
@ 2011-09-13 17:25             ` Ulrich Mueller
  2011-09-13 17:33               ` Tomáš Chvátal
                                 ` (2 more replies)
  2011-09-14  5:39             ` Ciaran McCreesh
  1 sibling, 3 replies; 29+ messages in thread
From: Ulrich Mueller @ 2011-09-13 17:25 UTC (permalink / raw
  To: gentoo-dev

>>>>> On Tue, 13 Sep 2011, Donnie Berkholz wrote:

> Thanks for the reminder; I looked, and it turns out that we now have
> a great precedent.

> Quoting PMS:

> "The required bash version was retroactively updated from 3.0 to 3.2
> in November 2009 (see http://www.gentoo.
> org/proj/en/council/meeting-logs/20091109.txt)."

> So we could just retroactively update it again and let people scream
> if they're actually affected by this.

If you read the quoted council log, you'll find that the retroactive
change was done because usage of bash 3.2 features in the tree was
already widespread at that time. This is very different from the
current situation, therefore it is not at all a precedent.

Ulrich



^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [gentoo-dev] [RFC] obs eclasses
  2011-09-13 17:25             ` Ulrich Mueller
@ 2011-09-13 17:33               ` Tomáš Chvátal
  2011-09-13 17:38               ` Amadeusz Żołnowski
  2011-09-13 17:40               ` Michał Górny
  2 siblings, 0 replies; 29+ messages in thread
From: Tomáš Chvátal @ 2011-09-13 17:33 UTC (permalink / raw
  To: gentoo-dev

2011/9/13 Ulrich Mueller <ulm@gentoo.org>:
>>>>>> On Tue, 13 Sep 2011, Donnie Berkholz wrote:
>
>> Thanks for the reminder; I looked, and it turns out that we now have
>> a great precedent.
>
>> Quoting PMS:
>
>> "The required bash version was retroactively updated from 3.0 to 3.2
>> in November 2009 (see http://www.gentoo.
>> org/proj/en/council/meeting-logs/20091109.txt)."
>
>> So we could just retroactively update it again and let people scream
>> if they're actually affected by this.
>

I would really like if we do it properly this time.

So it is done for goot and does not reappear from time to time.

> If you read the quoted council log, you'll find that the retroactive
> change was done because usage of bash 3.2 features in the tree was
> already widespread at that time. This is very different from the
> current situation, therefore it is not at all a precedent.
>
As is Ulrich saying, it was done because everyone at that point was
using such features.
Not because we wanted those features to be used.

Cheers

Tom



^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [gentoo-dev] [RFC] obs eclasses
  2011-09-13 17:25             ` Ulrich Mueller
  2011-09-13 17:33               ` Tomáš Chvátal
@ 2011-09-13 17:38               ` Amadeusz Żołnowski
  2011-09-13 17:40               ` Michał Górny
  2 siblings, 0 replies; 29+ messages in thread
From: Amadeusz Żołnowski @ 2011-09-13 17:38 UTC (permalink / raw
  To: gentoo-dev

[-- Attachment #1: Type: text/plain, Size: 1001 bytes --]

Excerpts from Ulrich Mueller's message of 2011-09-13 19:25:59 +0200:
> >>>>> On Tue, 13 Sep 2011, Donnie Berkholz wrote:
> 
> > Thanks for the reminder; I looked, and it turns out that we now have
> > a great precedent.
> 
> > Quoting PMS:
> 
> > "The required bash version was retroactively updated from 3.0 to 3.2
> > in November 2009 (see http://www.gentoo.
> > org/proj/en/council/meeting-logs/20091109.txt)."
> 
> > So we could just retroactively update it again and let people scream
> > if they're actually affected by this.
> 
> If you read the quoted council log, you'll find that the retroactive
> change was done because usage of bash 3.2 features in the tree was
> already widespread at that time. This is very different from the
> current situation, therefore it is not at all a precedent.
> 
> Ulrich

So we need to do it “illegally” first to make it “legal”?

-- 
Amadeusz Żołnowski

PGP key fpr: C700 CEDE 0C18 212E 49DA  4653 F013 4531 E1DB FAB5

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 490 bytes --]

^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [gentoo-dev] [RFC] obs eclasses
  2011-09-13 17:25             ` Ulrich Mueller
  2011-09-13 17:33               ` Tomáš Chvátal
  2011-09-13 17:38               ` Amadeusz Żołnowski
@ 2011-09-13 17:40               ` Michał Górny
  2011-09-13 18:40                 ` Ulrich Mueller
  2 siblings, 1 reply; 29+ messages in thread
From: Michał Górny @ 2011-09-13 17:40 UTC (permalink / raw
  To: gentoo-dev; +Cc: ulm

[-- Attachment #1: Type: text/plain, Size: 1087 bytes --]

On Tue, 13 Sep 2011 19:25:59 +0200
Ulrich Mueller <ulm@gentoo.org> wrote:

> >>>>> On Tue, 13 Sep 2011, Donnie Berkholz wrote:
> 
> > Thanks for the reminder; I looked, and it turns out that we now have
> > a great precedent.
> 
> > Quoting PMS:
> 
> > "The required bash version was retroactively updated from 3.0 to 3.2
> > in November 2009 (see http://www.gentoo.
> > org/proj/en/council/meeting-logs/20091109.txt)."
> 
> > So we could just retroactively update it again and let people scream
> > if they're actually affected by this.
> 
> If you read the quoted council log, you'll find that the retroactive
> change was done because usage of bash 3.2 features in the tree was
> already widespread at that time. This is very different from the
> current situation, therefore it is not at all a precedent.

The current situation is that you can't even install bash-3.2
systemwide because of the number of packages [ebuilds/eclasses]
requiring on bash-4.

I myself had to prefix-install bash to test my code against it.

-- 
Best regards,
Michał Górny

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 316 bytes --]

^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [gentoo-dev] [RFC] obs eclasses
  2011-09-13 17:40               ` Michał Górny
@ 2011-09-13 18:40                 ` Ulrich Mueller
  2011-09-13 18:47                   ` Michał Górny
  0 siblings, 1 reply; 29+ messages in thread
From: Ulrich Mueller @ 2011-09-13 18:40 UTC (permalink / raw
  To: Michał Górny; +Cc: gentoo-dev

>>>>> On Tue, 13 Sep 2011, Michał Górny wrote:

> The current situation is that you can't even install bash-3.2
> systemwide because of the number of packages [ebuilds/eclasses]
> requiring on bash-4.

Have you filed bug reports for these?

Ulrich



^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [gentoo-dev] [RFC] obs eclasses
  2011-09-13 18:40                 ` Ulrich Mueller
@ 2011-09-13 18:47                   ` Michał Górny
  0 siblings, 0 replies; 29+ messages in thread
From: Michał Górny @ 2011-09-13 18:47 UTC (permalink / raw
  To: gentoo-dev; +Cc: ulm

[-- Attachment #1: Type: text/plain, Size: 416 bytes --]

On Tue, 13 Sep 2011 20:40:12 +0200
Ulrich Mueller <ulm@gentoo.org> wrote:

> >>>>> On Tue, 13 Sep 2011, Michał Górny wrote:
> 
> > The current situation is that you can't even install bash-3.2
> > systemwide because of the number of packages [ebuilds/eclasses]
> > requiring on bash-4.
> 
> Have you filed bug reports for these?

I mean having *DEPEND=">=bash-4".

-- 
Best regards,
Michał Górny

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 316 bytes --]

^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [gentoo-dev] [RFC] obs eclasses
  2011-09-13 15:58         ` Patrick Lauer
  2011-09-13 16:41           ` Donnie Berkholz
@ 2011-09-14  5:37           ` Ciaran McCreesh
  1 sibling, 0 replies; 29+ messages in thread
From: Ciaran McCreesh @ 2011-09-14  5:37 UTC (permalink / raw
  To: gentoo-dev

[-- Attachment #1: Type: text/plain, Size: 945 bytes --]

On Tue, 13 Sep 2011 17:58:15 +0200
Patrick Lauer <patrick@gentoo.org> wrote:
> > It's because people want to pretend that it's possible for
> > incredibly outdated systems (those with bash-3 only) to be updated.
> 
> Actually it's worse - PMS enforces this, and the only clean way out is
> to patch/fix/extend PMS to allow bash4 - but that breaks compatibility
> in silly ways.
> 
> The proper way to handle that? I'm not sure, since we had a long fight
> to get PMS to acknowledge bash 3.2 instead of 3.0 I'm mostly ignoring
> PMS as it doesn't care about reality.

The proper fix for this, along with a whole bunch of other things, is
GLEP 55. Don't blame the PMS team for that not having been implemented.

As for you ignoring the specification, the reason that problems like
this exist is precisely because of you doing that. Do you code websites
based purely upon what Internet Explorer supports?

-- 
Ciaran McCreesh

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 198 bytes --]

^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [gentoo-dev] [RFC] obs eclasses
  2011-09-13 16:41           ` Donnie Berkholz
  2011-09-13 17:25             ` Ulrich Mueller
@ 2011-09-14  5:39             ` Ciaran McCreesh
  1 sibling, 0 replies; 29+ messages in thread
From: Ciaran McCreesh @ 2011-09-14  5:39 UTC (permalink / raw
  To: gentoo-dev

[-- Attachment #1: Type: text/plain, Size: 841 bytes --]

On Tue, 13 Sep 2011 11:41:00 -0500
Donnie Berkholz <dberkholz@gentoo.org> wrote:
> Thanks for the reminder; I looked, and it turns out that we now have
> a great precedent. Quoting PMS:
> 
> "The required bash version was retroactively updated from 3.0 to 3.2
> in November 2009 (see http://www.gentoo. 
> org/proj/en/council/meeting-logs/20091109.txt)."
> 
> So we could just retroactively update it again and let people scream
> if they're actually affected by this.

The last time this happened, the Council said "we're doing this once
because people have forced our hand, but we're never doing it again".
That's not a precedent.

> Maybe a way to set tree-level dependencies/EAPIs/features is
> something we seriously need to get going on.

No need. GLEP 55 solves it with a far lower impact.

-- 
Ciaran McCreesh

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 198 bytes --]

^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [gentoo-dev] [RFC] obs eclasses
  2011-09-13 14:59 ` Donnie Berkholz
  2011-09-13 15:55   ` Nirbheek Chauhan
@ 2011-09-14  8:44   ` Michal Hrusecky
  1 sibling, 0 replies; 29+ messages in thread
From: Michal Hrusecky @ 2011-09-14  8:44 UTC (permalink / raw
  To: gentoo-dev

[-- Attachment #1: Type: text/plain, Size: 1373 bytes --]

Donnie Berkholz -  9:59 13.09.11 wrote:
> On 13:11 Tue 13 Sep     , Michal Hrusecky wrote:
> > # Copyright 1999-2011 Gentoo Foundation
> > # Distributed under the terms of the GNU General Public License v2
> > # $Header: $
> > 
> > # @ECLASS: obs-download.eclass
> 
> Are there going to be lots of packages using this and not the other 
> eclass? I wonder whether there really need to be two of them.

Two more currently.

> > # @MAINTAINER:
> > # miska@gentoo.org
> > # @BLURB: Reduces code duplication in the downloading from obs.
> 
> Could you tell us what "obs" is in the blurb too? I had no clue what 
> this email was about (obs, osc, etc are meaningless to me) until I got 
> down to the eclass description.

Fixed

> > # @ECLASS: obs-service.eclass
> > # @MAINTAINER:
> > # miska@gentoo.org
> > # @BLURB: Reduces code duplication in the obs services.
> > # @DESCRIPTION:
> > # This eclass makes it easier to package obs services. Based on provided
> > # information it will all neede variables and takes care of installation.
> 
> Lots of typos here.

Sorry, fixed.

> > HOMEPAGE="http://en.opensuse.org/openSUSE:OSC"
> > LICENSE="GPL-2"
> > SLOT="0"
> > IUSE=""
> > RDEPEND+="dev-util/osc"
> 
> You probably want a space here.
> 
> RDEPEND+=" dev-util/osc"

Thanks, fixed.

-- 
	Michal Hrusecky <miska@gentoo.org>

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 230 bytes --]

^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [gentoo-dev] [RFC] obs eclasses
  2011-09-13 11:11 [gentoo-dev] [RFC] obs eclasses Michal Hrusecky
  2011-09-13 11:24 ` Amadeusz Żołnowski
  2011-09-13 14:59 ` Donnie Berkholz
@ 2011-09-14  8:56 ` Michal Hrusecky
  2011-09-14  9:56   ` Ulrich Mueller
  2011-09-15  7:35   ` Marijn
  2011-09-20  8:23 ` [gentoo-dev] " Michał Górny
  3 siblings, 2 replies; 29+ messages in thread
From: Michal Hrusecky @ 2011-09-14  8:56 UTC (permalink / raw
  To: gentoo-dev


[-- Attachment #1.1: Type: text/plain, Size: 122 bytes --]

Hi,

new versions of eclasses after hopefully fixing most of the comments.

-- 
	Michal Hrusecky <miska@gentoo.org>

[-- Attachment #1.2: obs-download.eclass --]
[-- Type: text/plain, Size: 1514 bytes --]

# Copyright 1999-2011 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: $

# @ECLASS: obs-download.eclass
# @MAINTAINER:
# miska@gentoo.org
# @BLURB: Simplifies downloading from openSUSE Build Service.
# @DESCRIPTION:
# This eclass constructs OBS_URI based on provided project in openSUSE Build
# Service and package name. It can be used later by packages/eclasses to
# download actual files.
#
# All you need to do in order to use it is set OBS_PROJECT and OBS_PACKAGE and
# inherit this eclass. It will provide OBS_URI in return which you will prepend
# to your files and use in SRC_URI. Alternatively you can just set
# OPENSUSE_RELEASE and OBS_PACKAGE and it will give you back OBS_URI for
# downloading files from obs projects corresponding to the specified openSUSE
# release.

# @ECLASS-VARIABLE: OPENSUSE_RELEASE
# @DEFAULT_UNSET
# @DESCRIPTION:
# From which stable openSUSE realease to take files.

# @ECLASS-VARIABLE: OBS_PROJECT
# @DEFAULT_UNSET
# @DESCRIPTION:
# In which obs project pakage is. This variable don't have to be set, if
# OPENSUSE_RELEASE is provided.

# @ECLASS-VARIABLE: OPENSUSE_PACKAGE
# @REQUIRED
# @DESCRIPTION:
# Name of the package we want to take files from.

[[ -z ${OPENSUSE_RELEASE} ]] || OBS_PROJECT="openSUSE:${OPENSUSE_RELEASE}"
[[ -n ${OBS_PROJECT} ]]      || die "OBS_PROJECT not set!"
[[ -n ${OBS_PACKAGE} ]]      || die "OBS_PACKAGE not set!"

OBS_URI="https://api.opensuse.org/public/source/${OBS_PROJECT}/${OBS_PACKAGE}"

[-- Attachment #1.3: obs-service.eclass --]
[-- Type: text/plain, Size: 2419 bytes --]

# Copyright 1999-2011 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: $

# @ECLASS: obs-service.eclass
# @MAINTAINER:
# miska@gentoo.org
# @BLURB: Reduces code duplication in the Open Build Service services.
# @DESCRIPTION:
# This eclass makes it easier to package Open Build Service services. Based on
# provided information it will set all needed variables and takes care of
# installation.
#
# @EXAMPLE:
# Typical ebuild using obs-service.eclass:
#
# @CODE
# EAPI=4
#
# inherit obs-service
#
# KEYWORDS=""
#
# DEPEND=""
# RDEPEND="${DEPEND}"
#
# @CODE

# @ECLASS-VARIABLE: OBS_SERVICE_NAME
# @DESCRIPTION:
# Name of the service. If not set, it is taken from ${PN}.

# @ECLASS-VARIABLE: OPENSUSE_RELEASE
# @DESCRIPTION:
# From which stable openSUSE realease to take a package.

# @ECLASS-VARIABLE: ADDITIONAL_FILES
# @DEFAULT_UNSET
# @DESCRIPTION:
# If any additional files are needed.

case "${EAPI:-0}" in
	4) : ;;
	*) die "EAPI=${EAPI} is not supported" ;;
esac

HOMEPAGE="http://en.opensuse.org/openSUSE:OSC"
LICENSE="GPL-2"
SLOT="0"
IUSE=""
RDEPEND="dev-util/osc"

[[ -n ${OBS_SERVICE_NAME} ]] || OBS_SERVICE_NAME=${PN/obs-service-/}
[[ -n ${OPENSUSE_RELEASE} ]] || OBS_PROJECT="openSUSE:Tools"

DESCRIPTION="Open Build Service client module - ${OBS_SERVICE_NAME} service"
OBS_PACKAGE="obs-service-${OBS_SERVICE_NAME}"

inherit obs-download

SRC_URI="${OBS_URI}/${OBS_SERVICE_NAME}"
SRC_URI+=" ${OBS_URI}/${OBS_SERVICE_NAME}.service"

for i in ${ADDITIONAL_FILES}; do
	SRC_URI+=" ${OBS_URI}/${i}"
done

S="${WORKDIR}"

# @FUNCTION: obs-service_src_configure
# @DESCRIPTION:
# Does nothing. Files are not compressed.
obs-service_src_unpack() {
	debug-print-function ${FUNCNAME} "$@"
}

# @FUNCTION: obs-service_src_install
# @DESCRIPTION:
# Does the installation of the downloaded files.
obs-service_src_install() {
	debug-print-function ${FUNCNAME} "$@"
	debug-print "Installing service \"${OBS_SERVICE_NAME}\""
	exeinto /usr/lib/obs/service
	doexe "${DISTDIR}"/${OBS_SERVICE_NAME}
	insinto /usr/lib/obs/service
	doins "${DISTDIR}"/${OBS_SERVICE_NAME}.service
	if [[ -n ${ADDITIONAL_FILES} ]]; then
		debug-print "Installing following additional files:"
		debug-print "	${ADDITIONAL_FILES}"
		exeinto /usr/lib/obs/service/${OBS_SERVICE_NAME}.files
		for i in ${ADDITIONAL_FILES}; do
			doexe "${DISTDIR}"/${i}
		done
	fi
}

EXPORT_FUNCTIONS src_install src_unpack

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 230 bytes --]

^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [gentoo-dev] [RFC] obs eclasses
  2011-09-14  8:56 ` Michal Hrusecky
@ 2011-09-14  9:56   ` Ulrich Mueller
  2011-09-14 13:34     ` Michal Hrusecky
  2011-09-15  7:35   ` Marijn
  1 sibling, 1 reply; 29+ messages in thread
From: Ulrich Mueller @ 2011-09-14  9:56 UTC (permalink / raw
  To: gentoo-dev

>>>>> On Wed, 14 Sep 2011, Michal Hrusecky wrote:
> new versions of eclasses after hopefully fixing most of the comments.

> # @ECLASS-VARIABLE: OPENSUSE_RELEASE
> # @ECLASS-VARIABLE: OBS_PROJECT
> # @ECLASS-VARIABLE: OPENSUSE_PACKAGE

Can't this use a single namespace, i.e. either "OBS" or "OPENSUSE"?
Otherwise people will get confused ...

> [[ -n ${OBS_PACKAGE} ]]      || die "OBS_PACKAGE not set!"

... including yourself. ;-)

Ulrich



^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [gentoo-dev] [RFC] obs eclasses
  2011-09-14  9:56   ` Ulrich Mueller
@ 2011-09-14 13:34     ` Michal Hrusecky
  0 siblings, 0 replies; 29+ messages in thread
From: Michal Hrusecky @ 2011-09-14 13:34 UTC (permalink / raw
  To: gentoo-dev

[-- Attachment #1: Type: text/plain, Size: 788 bytes --]

Ulrich Mueller - 11:56 14.09.11 wrote:
> >>>>> On Wed, 14 Sep 2011, Michal Hrusecky wrote:
> > new versions of eclasses after hopefully fixing most of the comments.
> 
> > # @ECLASS-VARIABLE: OPENSUSE_RELEASE
> > # @ECLASS-VARIABLE: OBS_PROJECT
> > # @ECLASS-VARIABLE: OPENSUSE_PACKAGE
> 
> Can't this use a single namespace, i.e. either "OBS" or "OPENSUSE"?
> Otherwise people will get confused ...

Ok, fixed the documentation, replaced OPENSUSE_PACKAGE with OBS_PACKAGE.
OBS is whole service that can host pretty much anything.
OPENSUSE_RELEASE is just to make it easier to take files from one
particular project (that I'll be using for "stable" releases of some
packages). So it has some reasons to have different prefix...

-- 
	Michal Hrusecky <miska@gentoo.org>

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 230 bytes --]

^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [gentoo-dev] [RFC] obs eclasses
  2011-09-14  8:56 ` Michal Hrusecky
  2011-09-14  9:56   ` Ulrich Mueller
@ 2011-09-15  7:35   ` Marijn
  2011-09-15  8:18     ` Michal Hrusecky
  1 sibling, 1 reply; 29+ messages in thread
From: Marijn @ 2011-09-15  7:35 UTC (permalink / raw
  To: gentoo-dev; +Cc: Michal Hrusecky

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Hi Michal,

On 09/14/11 10:56, Michal Hrusecky wrote:
> Hi,
> 
> new versions of eclasses after hopefully fixing most of the
> comments.
> 

The download eclass speaks about ``openSUSE Build Service'' while the
other calls it the ``Open Build Service''. I note that the command
line tool dev-util/osc also speaks about ``Open Build Service''.

Others have remarked on this, but could you please explain why there
are (going to be) ebuilds that don't/cannot use the full eclass? What
numbers are we talking about?

How about using open-build-service in the name of the eclass(es)?

Finally, has this seen any testing in an overlay?

Marijn
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.18 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/

iEYEARECAAYFAk5xqtgACgkQp/VmCx0OL2w+aACffzDKZkDMOiKE55hh5CAS3b27
JA0AnRDZmVM3W/BuLBK0VPQEmIsYh0u6
=S84c
-----END PGP SIGNATURE-----



^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [gentoo-dev] [RFC] obs eclasses
  2011-09-15  7:35   ` Marijn
@ 2011-09-15  8:18     ` Michal Hrusecky
  2011-09-15 16:30       ` [gentoo-dev] " Duncan
  0 siblings, 1 reply; 29+ messages in thread
From: Michal Hrusecky @ 2011-09-15  8:18 UTC (permalink / raw
  To: gentoo-dev; +Cc: Michal Hrusecky, hkBst

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

Marijn -  9:35 15.09.11 wrote:
> Hi Michal,
> 
> On 09/14/11 10:56, Michal Hrusecky wrote:
> > Hi,
> > 
> > new versions of eclasses after hopefully fixing most of the
> > comments.
> > 
> 
> The download eclass speaks about ``openSUSE Build Service'' while the
> other calls it the ``Open Build Service''. I note that the command
> line tool dev-util/osc also speaks about ``Open Build Service''.

Things are a little bit complicated. Once upon a time, there were some
people unhappy with the process of building packages for SUSE/openSUSE
and they created server application and called it "openSUSE Build
Service". As "openSUSE Build Service" is quite a long name, everybody
started calling it just 'obs'. Even developers themselves. As obs
supported building packages for many distributions and was open source,
some other companies and organizations started using it (for example
Meego). Some didn't even know what 'obs' stands for and assumed, that
'o' is for 'Open'. But some other knew and was reluctant to use it
because of openSUSE in it's name. So it got renamed to 'Open Build
Service' (so the 'obs' abbreviation will still work). But the original
first running publicly available instance is still called 'openSUSE
Build Service'. So we've got a software, which is called "Open Build
Service" and tools like dev-util/osc and it's plugins (obs services -
what is second eclass intended for) that works with any instance. And
we've got "openSUSE Build Service" which is basically build.opensuse.org
server running Open Build Service :-D And as some SUSE guys are lazy to
be a good upstream, they publish some source code and packages just
through the openSUSE Build Service (that's what is the first eclass good
for).

> Others have remarked on this, but could you please explain why there
> are (going to be) ebuilds that don't/cannot use the full eclass? What
> numbers are we talking about?

Currently, there are two more ebuilds that can make a use of
obs-download.eclass: 'dev-util/osc' and 'dev-util/suse-build'. It is not
that much of code duplication, but I think it could make ebuilds more
readable.

> How about using open-build-service in the name of the eclass(es)?

I personally dislike long file names and obs is well known abbreviation
(in my google search, second link is http://guild.opensuse.org and first
http://en.wikipedia.org/wiki/OBS which also list OBS as Open Build
Service), although a little bit ambiguous. If it would be hard
requirement for getting them in, I would consider expanding the 'obs',
but personally I would prefer not to.

> Finally, has this seen any testing in an overlay?

Only locally - on my computer. Currently I have 3 services (osc plugins)
that I needed to commit stuff with osc from git.

- -- 
	Michal Hrusecky <miska@gentoo.org>
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.18 (GNU/Linux)

iF4EAREIAAYFAk5xtNwACgkQpMQOFjUY7FXlQwEAqyoRWVzPxdq7Bf43wnPaeCXr
o/jw7aKw8bCYokTEDlgA/306yyqBmePvSast4nOJJSg6KPi6QcLusC81QJJlKu9K
=I8KK
-----END PGP SIGNATURE-----



^ permalink raw reply	[flat|nested] 29+ messages in thread

* [gentoo-dev] Re: [RFC] obs eclasses
  2011-09-15  8:18     ` Michal Hrusecky
@ 2011-09-15 16:30       ` Duncan
  0 siblings, 0 replies; 29+ messages in thread
From: Duncan @ 2011-09-15 16:30 UTC (permalink / raw
  To: gentoo-dev

Michal Hrusecky posted on Thu, 15 Sep 2011 10:18:36 +0200 as excerpted:

>> How about using open-build-service in the name of the eclass(es)?
> 
> I personally dislike long file names and obs is well known abbreviation
> (in my google search, second link is http://guild.opensuse.org and first
> http://en.wikipedia.org/wiki/OBS which also list OBS as Open Build
> Service), although a little bit ambiguous. If it would be hard
> requirement for getting them in, I would consider expanding the 'obs',
> but personally I would prefer not to.

Taking a hint from the existing eclass name patterns, I'd strongly urge 
open-build.eclass or the like, over obs.eclass, which is intuitively read 
as "obsolete" (or in a medical context, obstetrics), here.

Similarly with its vars and functions.  obs_* is simply not immediately 
readable to many of those who may end up looking at ebuilds using it (I'm 
not the only one who has mentioned it), and were it me proposing it, I'd 
be particularly anxious to avoid the negative implications and confusion 
of someone reading "obsolete" into such references.

But of course I'm not the primary target audience or the person that's 
going to end up typing it in repeatedly, so...

-- 
Duncan - List replies preferred.   No HTML msgs.
"Every nonfree program has a lord, a master --
and if you use the program, he is your master."  Richard Stallman




^ permalink raw reply	[flat|nested] 29+ messages in thread

* [gentoo-dev] Re: [RFC] obs eclasses
  2011-09-13 12:26   ` Joshua Kinard
  2011-09-13 13:02     ` Amadeusz Żołnowski
@ 2011-09-20  5:09     ` Steven J Long
  1 sibling, 0 replies; 29+ messages in thread
From: Steven J Long @ 2011-09-20  5:09 UTC (permalink / raw
  To: gentoo-dev

Joshua Kinard wrote:

> On 09/13/2011 07:24, Amadeusz Żołnowski wrote:
> 
>> You don't need -n/-z with [[.
>> 
>>   [[ $var ]] == [[ -n $var ]]
>>   [[ ! $var ]] == [[ -z $var ]]
>>
Also, you can usually be more succinct with [[ $var ]] || { some code; } for 
the empty case (as opposed to [[ $var ]] && { something else; } for code run 
when var is non-empty.)

> What about other comparisons, like -f, -e, or -d?  Bash's manpage only
> says
> [[ expression ]] -- it doesn't seem to go into the level of detail (at
> least not in the section that I quickly perused) about what flag
> operators are necessary or not.
>
As Amadeusz said, you can't omit the other ones.

> Also, is this a bash4-only thing, or bash3 and/or bash2 as well?
>
It was definitely around in all bash-3 versions, from experience, and it's 
also a defined behaviour for POSIX sh test or [, tho only guaranteed for XSI 
systems[1] so I'd be surprised if it weren't in bash-2.

> If yes to above, we should get this edited and fixed up, then, because it
> uses -z/-n inside [[ ]]:
> http://devmanual.gentoo.org/tools-reference/bash/index.html
>
As Michal said, it doesn't do any harm. imo it'd be better just to add that 
[[ $var ]] is the same as [[ -n $var ]]. [[ ! $var ]] doesn't seem better 
than [[ -z $var ]] to my eyes; the latter is clearer imo.

(Decrufting ${var} to $var would be more of a help for learners imo; you 
only need to wrap a simple variable expansion in {} when it's immediately 
followed by an alphanumeric or underscore character, which would get 
interpreted as part of its name, which any syntax highlighting editor will 
show you. In several years of BASH scripting I've only once had an issue 
with that, in some complex text output.)
> Oh, forgot, it won't break initscripts, will it?
> 
Well you wouldn't use [[ in a sh-compatible initscript in any case. There 
it'd be safest to stick to [ -n "$var" ] (or -z ofc.)

[1] http://pubs.opengroup.org/onlinepubs/009695399/utilities/test.html
-- 
#friendly-coders -- We're friendly, but we're not /that/ friendly ;-)





^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [gentoo-dev] [RFC] obs eclasses
  2011-09-13 11:11 [gentoo-dev] [RFC] obs eclasses Michal Hrusecky
                   ` (2 preceding siblings ...)
  2011-09-14  8:56 ` Michal Hrusecky
@ 2011-09-20  8:23 ` Michał Górny
  2011-09-20  9:26   ` Tomáš Chvátal
  3 siblings, 1 reply; 29+ messages in thread
From: Michał Górny @ 2011-09-20  8:23 UTC (permalink / raw
  To: gentoo-dev; +Cc: miska

[-- Attachment #1: Type: text/plain, Size: 404 bytes --]

On Tue, 13 Sep 2011 13:11:28 +0200
Michal Hrusecky <miska@gentoo.org> wrote:

> please take a look at attached eclasses. Purpose is to make
> installation of obs services (plugins for osc) easier.
> 
> Comments and improvements are welcome.

I don't get the concept of having two eclasses for this. The first one
looks more like a thirdpartymirrors entry.

-- 
Best regards,
Michał Górny

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 316 bytes --]

^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [gentoo-dev] [RFC] obs eclasses
  2011-09-20  8:23 ` [gentoo-dev] " Michał Górny
@ 2011-09-20  9:26   ` Tomáš Chvátal
  0 siblings, 0 replies; 29+ messages in thread
From: Tomáš Chvátal @ 2011-09-20  9:26 UTC (permalink / raw
  To: gentoo-dev

2011/9/20 Michał Górny <mgorny@gentoo.org>:
> On Tue, 13 Sep 2011 13:11:28 +0200
> Michal Hrusecky <miska@gentoo.org> wrote:
>
>> please take a look at attached eclasses. Purpose is to make
>> installation of obs services (plugins for osc) easier.
>>
>> Comments and improvements are welcome.
>
> I don't get the concept of having two eclasses for this. The first one
> looks more like a thirdpartymirrors entry.
>
Not really, you can't use variables in third-party mirrors, and
storing there all opensuse releases or opensuse projects to check is
REALLY insane as the package is usually just on one project.
So it is not a "mirror" at all, rather one download url with really
complex path.

Tom



^ permalink raw reply	[flat|nested] 29+ messages in thread

end of thread, other threads:[~2011-09-20  9:27 UTC | newest]

Thread overview: 29+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-09-13 11:11 [gentoo-dev] [RFC] obs eclasses Michal Hrusecky
2011-09-13 11:24 ` Amadeusz Żołnowski
2011-09-13 12:26   ` Joshua Kinard
2011-09-13 13:02     ` Amadeusz Żołnowski
2011-09-13 13:12       ` Michał Górny
2011-09-13 14:44       ` Donnie Berkholz
2011-09-13 15:58         ` Patrick Lauer
2011-09-13 16:41           ` Donnie Berkholz
2011-09-13 17:25             ` Ulrich Mueller
2011-09-13 17:33               ` Tomáš Chvátal
2011-09-13 17:38               ` Amadeusz Żołnowski
2011-09-13 17:40               ` Michał Górny
2011-09-13 18:40                 ` Ulrich Mueller
2011-09-13 18:47                   ` Michał Górny
2011-09-14  5:39             ` Ciaran McCreesh
2011-09-14  5:37           ` Ciaran McCreesh
2011-09-20  5:09     ` [gentoo-dev] " Steven J Long
2011-09-13 14:37   ` [gentoo-dev] " Michal Hrusecky
2011-09-13 14:59 ` Donnie Berkholz
2011-09-13 15:55   ` Nirbheek Chauhan
2011-09-14  8:44   ` Michal Hrusecky
2011-09-14  8:56 ` Michal Hrusecky
2011-09-14  9:56   ` Ulrich Mueller
2011-09-14 13:34     ` Michal Hrusecky
2011-09-15  7:35   ` Marijn
2011-09-15  8:18     ` Michal Hrusecky
2011-09-15 16:30       ` [gentoo-dev] " Duncan
2011-09-20  8:23 ` [gentoo-dev] " Michał Górny
2011-09-20  9:26   ` Tomáš Chvátal

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox