Gentoo Logo
Gentoo Spaceship

Installation:
Gentoo Handbook
Installation Docs

Documentation:
Home
Listing
About Gentoo
Philosophy
Social Contract

Resources:
Bug Tracker
Developer List
Discussion Forums
Gentoo BitTorrents
Gentoo Linux Enhancement Proposals
IRC Channels
Mailing Lists
Mirrors
Name and Logo Guidelines
Online Package Database
Security Announcements
Staffing Needs
Supporting Vendors
View our CVS

Graphics:
Logos and themes
Icons
ScreenShots

Miscellaneous Resources:
Gentoo Linux Store
Gentoo-hosted projects
IBM dW/Intel article archive




List Archive: gentoo-dev
Navigation:
Lists: gentoo-dev: < Prev By Thread Next > < Prev By Date Next >
Headers:
To: gentoo-dev@g.o
From: Thomas Sachau <tommy@g.o>
Subject: Re: EAPI 3's default src_install needs bikeshedding
Date: Sat, 04 Apr 2009 15:11:23 +0200
Robert Buchholz schrieb:
> On Monday 30 March 2009, Thomas Sachau wrote:
>> Ciaran McCreesh schrieb:
>>> So far, we've got this, by agreement of the Council:
>>>
>>> * There will be a default src_install in EAPI 3
>>> * It will have a DOCS variable, or something along those lines.
>>>
>>> I'd like to suggest the following too:
>>>
>>> * If DOCS is explicitly specified, it is an error if anything in it
>>>   doesn't exist.
>>> * If DOCS isn't explicitly specified, it isn't an error if anything
>>> in its default, if it has one, doesn't exist.
>>>
>>> We don't have an implementation yet. So I'll start off with this:
>>>
>>>     default_src_install() {
>>>         emake -j1 DESTDIR="${D}" install
>> Why do you want to force -j1 here?
>>
>> And i had this proposal some months ago, which noone argued against
>> any more (the default list may of course be extended):
> ...
> 
> What Ciaran added was a way to disable installation of default DOCS. The 
> implmenetation we discussed on the thread a while ago does not check 
> whether DOCS is declared but empty.
> I believe the way the DOCS variable is handled in the first example of 
> the thread starter is good for a default_src_install although I don't 
> know if we really need arrays. But why not? :-)

ok, so actually it is the following:

first this part:

default_src_install() {
	if [ -f Makefile ] || [ -f GNUmakefile ] || [ -f makefile ]; then
		emake DESTDIR="${D}" install || die "emake install failed"
	fi

then there are 2 ideas from Ciaran:

1.:

        local d
        if ! declare -p DOCS >/dev/null 2>&1 ; then
            for d in README* ChangeLog AUTHORS NEWS TODO CHANGES \
	            THANKS BUGS FAQ CREDITS CHANGELOG ; do
                [[ -s "${d}" ]] && dodoc "${d}"
            done
        elif declare -p DOCS | grep -q '^declare -a ' ; then
            for d in "${DOCS[@]}" ; do
                dodoc "${d}"
            done
        else
            dodoc ${DOCS}
        fi
    }

and 2.:

    emagicdocs

    emagicdocs() {
        done_docs=
        old_set=$(shopt | grep 'nocaseglob[[:space:]]*on')
        shopt -s nocaseglob
        for d in '' "${DEFAULT_SRC_INSTALL_EXTRA_SUBDIRS[@]}" ; do
            if [[ -n ${d} ]]; then
                [[ -d ${d} ]] || die "${d} is not a dir"
                pushd "${d}" > /dev/null || die "Failed to enter ${d}"
                local docdesttree="${DOCDESTTREE}"
                docinto "${d}"
            fi
            for f in README Change{,s,Log} AUTHORS NEWS TODO ABOUT THANKS {KNOWN_,}BUGS SUBMITTING \
                HACKING FAQ CREDITS PKG-INFO HISTORY PACKAGING MAINTAINER{,S} CONTRIBUT{E,OR,ORS}
RELEASE \
                ANNOUNCE PORTING NOTES PROBLEMS NOTICE "${DEFAULT_SRC_INSTALL_EXTRA_DOCS[@]}"; do
                for p in "${DEFAULT_SRC_INSTALL_EXTRA_PREFIXES[@]}" '' ; do
                    for doc in "${p}"*([[:digit:]])"${f}"{,+([._-])*} ; do
                        if [[ -s "${doc}" ]] ; then
                            for e in "${DEFAULT_SRC_INSTALL_EXCLUDE[@]}" ; do
                                [[ ${doc} == ${e} ]] && continue 2
                            done
                            done_docs="${done_docs} ${d%/}${d:+/}${doc}"
                            dodoc "${doc}"
                        fi
                    done
                done
            done
            if [[ -n ${d} ]]; then
                docinto "${docdesttree}"
                popd > /dev/null || die "Failed to leave ${d}"
            fi
        done
        if [[ -n "${done_docs}" ]] ; then
            echo "Installed docs ${done_docs# }"
        else
            echo "Didn't find any docs to install"
        fi
        [[ -n ${old_set} ]] || shopt -u nocaseglob
    }

Any more comments about this?

> 
> 
>> So what about this funcion for the next EAPI and also implementation
>> in base.eclass?
> 
> Why would you want to implement it in base.eclass when it's in EAPI=3? I 
> can't think of a case where "inherit base" would make things easier 
> than bumping to EAPI=3. In both cases, you might need to change logic 
> within your ebuild and test it.

That ideas was months ago, where EAPI-2 was just introduced and i had no idea when a default
src_install with EAPI-3 could come in, so i suggested base.eclass as alternative, so it could be
used earlier.

-- 
Thomas Sachau

Gentoo Linux Developer

Attachment:
signature.asc (OpenPGP digital signature)
References:
EAPI 3's default src_install needs bikeshedding
-- Ciaran McCreesh
Re: EAPI 3's default src_install needs bikeshedding
-- Thomas Sachau
Re: EAPI 3's default src_install needs bikeshedding
-- Robert Buchholz
Navigation:
Lists: gentoo-dev: < Prev By Thread Next > < Prev By Date Next >
Previous by thread:
Re: EAPI 3's default src_install needs bikeshedding
Next by thread:
Re: EAPI 3's default src_install needs bikeshedding
Previous by date:
Re: RFC: best way to introduce USE=prefix
Next by date:
Re: Real multilib support for Gentoo


Updated Jun 17, 2009

Donate to support our development efforts.

Gentoo Centric Hosting: vr.org

VR Hosted

Tek Alchemy

Tek Alchemy

SevenL.net

SevenL.net

php|architect

php|architect

Copyright 2001-2007 Gentoo Foundation, Inc. Questions, Comments? Email www@gentoo.org.