Dnia 16 maja 2016 11:39:23 CEST, Joerg Bornkessel <hd_bru...@gentoo.org> napisał(a): >Hallo, >after my last commit disaster, >i bring my changes to review before i break some things again. > >- Added changes to make it work with eapi=6 >- removed some unneeded code parts (never they was used in any >ebuilds, i though they was integrated to make the eclass more >flexibel,...)
After reading this I don't see anything breakingly wrong, though I haven't tested it. However, a few general suggestions: 1. Split this into multiple commits. Generic cleanup should happen separately from EAPI 6 support. And it would probably be a good idea to remove features one at a time, so that reverting would be possible. 2. Prefer logic that evaluates to true for future EAPIs. For example, instead of [[ ${EAPI} == 6 ]], it's better to say != [012345], so that we won't have to extend the list with every new EAPI if nothing changes. 3. Please namespace the eclass functions. Using generic names is really asking for trouble. vdr_ prefix should be sufficient. 4. Please kill that src_util helper. It makes the logic terribly hard to follow, and there's really no reason to use case over separate functions. 5. There are some missing || die, for example after cd. I'm sorry i can't really to specific parts of the eclass but I'm replying from a phone. > ><snipp .diff> >-- vdr-plugin-2.eclass 2016-05-15 22:03:21.807417485 +0200 >+++ vdr-plugin-2.eclass.new 2016-05-15 22:01:10.000000000 +0200 >@@ -1,4 +1,4 @@ >-# Copyright 1999-2015 Gentoo Foundation >+# Copyright 1999-2016 Gentoo Foundation > # Distributed under the terms of the GNU General Public License v2 > # $Id$ > >@@ -90,7 +90,7 @@ > # @CODE > > # Applying your own local/user patches: >-# This is done by using the >+# This is done by using the > # (EAPI = 4,5) epatch_user() function of the eutils.eclass, > # (EAPI = 6) eapply_user function integrated in EAPI = 6. > # Simply add your patches into one of these directories: >@@ -104,10 +104,7 @@ > inherit flag-o-matic toolchain-funcs unpacker > > case ${EAPI:-0} in >- 4|5) >- ;; >- 6) >- ewarn "EAPI 6 support for test purpose only, plz report bugs to >v...@gentoo.org" >+ 4|5|6) > ;; > *) die "EAPI ${EAPI} unsupported." > ;; >@@ -156,6 +153,7 @@ > # EBUILD=${CATEGORY}/${PN} > # EBUILD_V=${PVR} > # EOT >+# obsolet? fix me later... > { > echo "VDRPLUGIN_DB=1" > echo "CREATOR=ECLASS" >@@ -232,6 +230,7 @@ > #sed -i Makefile \ > # -e "s:^DVBDIR.*$:DVBDIR = ${DVB_INCLUDE_DIR}:" \ > # -e 's:-I$(DVBDIR)/include:-I$(DVBDIR):' >+ # obsolet? fix me later... > > if ! grep -q APIVERSION Makefile; then > ebegin " Converting to APIVERSION" >@@ -289,7 +288,7 @@ > linguas_support() { > # Patching Makefile for linguas support. ># Only locales, enabled through the LINGUAS (make.conf) variable will >be >-# "compiled" and installed. >+# compiled and installed. > > einfo "Patching for Linguas support" > einfo "available Languages for ${P} are:" >@@ -311,12 +310,9 @@ > vdr_i18n() { > # i18n handling was deprecated since >=media-video/vdr-1.5.9, > # finally with >=media-video/vdr-1.7.27 it has been dropped entirely >and some >-# plugins will fail to "compile" because they're still using the old >variant. >+# plugins will fail to compile because they're still using the old >variant. > # Simply remove the i18n.o object from Makefile (OBJECT) and > # remove "static const tI18nPhrase*" from i18n.h. >-# >-# Plugins that are still using the old method will be pmasked until >they're >-# fixed or in case of maintainer timeout they'll be masked for >removal. > > gettext_missing > >@@ -391,6 +387,7 @@ > > # Plugins need to be compiled with position independent code, >otherwise linking > # VDR against it will fail >+ # depricated if fi, as we have only >=vdr-2 in the tree, fix me >later... > if has_version ">=media-video/vdr-1.7.13"; then > append-cxxflags -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE >-D_LARGEFILE64_SOURCE > fi >@@ -500,7 +497,9 @@ > die "vdr-plugin-2_src_prepare not called!" > fi > >- [[ ${PATCHES[@]} ]] && epatch "${PATCHES[@]}" >+ [[ ${EAPI} == [45] ]] && [[ ${PATCHES[@]} ]] && epatch >"${PATCHES[@]}" >+ [[ ${EAPI} == "6" ]] && [[ ${PATCHES[@]} ]] && eapply >"${PATCHES[@]}" >+ > debug-print "$FUNCNAME: applying user patches" > > vdr-plugin-2_src_util prepare >@@ -522,14 +521,12 @@ > fi > cd "${S}" > >- BUILD_TARGETS=${BUILD_TARGETS:-${VDRPLUGIN_MAKE_TARGET:-all >}} >- emake ${BUILD_PARAMS} \ >- ${BUILD_TARGETS} \ >- LOCALEDIR="${TMP_LOCALE_DIR}" \ >- LOCDIR="${TMP_LOCALE_DIR}" \ >- LIBDIR="${S}" \ >- TMPDIR="${T}" \ >- || die "emake failed" >+ emake all ${BUILD_PARAMS} \ >+ LOCALEDIR="${TMP_LOCALE_DIR}" \ >+ LOCDIR="${TMP_LOCALE_DIR}" \ >+ LIBDIR="${S}" \ >+ TMPDIR="${T}" \ >+ || die "emake all failed" > ;; > esac > >@@ -570,12 +567,11 @@ > > local SOFILE_STRING=$(grep SOFILE Makefile) > if [[ -n ${SOFILE_STRING} ]]; then >- BUILD_TARGETS=${BUILD_TARGETS:-${VDRPLUGIN_MAKE_TARGET:-install >}} >- einstall ${BUILD_PARAMS} \ >- ${BUILD_TARGETS} \ >- TMPDIR="${T}" \ >- DESTDIR="${D}" \ >- || die "einstall (makefile target) failed" >+ emake install \ >+ ${BUILD_PARAMS} \ >+ TMPDIR="${T}" \ >+ DESTDIR="${D}" \ >+ || die "emake install (makefile target) failed" > else > dev_check "Plugin use still the old Makefile handling" > insinto "${VDR_PLUGIN_DIR}" >@@ -609,9 +605,14 @@ > create_header_checksum_file ${vdr_plugin_list} > create_plugindb_file ${vdr_plugin_list} > >- local docfile >- for docfile in README* HISTORY CHANGELOG; do >- [[ -f ${docfile} ]] && dodoc ${docfile} >+ local commondoc=( README* HISTORY CHANGELOG ) >+ for docfile in "${commondoc[@]}"; do >+ if [[ ${EAPI} == "6" ]]; then >+ local DOCS="${DOCS} ${docfile}" >+ [[ -f ${docfile} ]] && einstalldocs "${DOCS[@]}" >+ else >+ [[ -f ${docfile} ]] && dodoc ${docfile} >+ fi > done > > # if VDR_CONFD_FILE is empty and ${FILESDIR}/confd exists take it ></snapp> > >Attached: >vdr-plugin-2.eclass >vdr-plugin-2.eclass.diff >vdr-plugin-2.eclass.new > > >Cheers >/dev/joerg -- Best regards, Michał Górny (by phone)