[paludis-sekrit] [Paludis] #762: Issue with 'kernel_is' with linux-mod eclass

Paludis trac at pioto.org
Sun May 31 23:19:29 UTC 2009


#762: Issue with 'kernel_is' with linux-mod eclass
-----------------------------+----------------------------------------------
 Reporter:  jkomar           |          Owner:        
     Type:  support-request  |         Status:  new   
 Priority:  Sometime         |      Milestone:        
Component:  clients/paludis  |        Version:  0.36.1
 Keywords:                   |      Blockedby:        
 Blocking:                   |   Distribution:  Gentoo
-----------------------------+----------------------------------------------
 net-wireless/madwifi-ng in the Portage tree doesn't support gentoo-
 sources-2.6.29. I found an ebuild in bugzilla and added it to my overlay
 at: [http://code.google.com/p/stormfront/]

 I get an error with this ebuild with Paludis when I even query it with -q
 which after much trial and error I have tracked down to this line just
 below the RDEPEND section:
 {{{
 kernel_is lt 2 6 29 && CONFIG_CHECK="${CONFIG_CHECK} KMOD"
 }}}

 kernel_is is also used in the src_unpack section and doesn't seem to cause
 the same issue.

 The ebuild inherits the linux-mod eclass. kernel_is comes from the linux-
 info eclass which I know is referenced by linux-mod. I wasn't sure if it
 referenced the whole thing, so I tried adding linux-info to the inherit,
 but it didn't change anything.

 I'm not sure if this is an issue with the eclass, or if 'kernel_is' cannot
 be used in this particular section, or if Paludis is just not handling it
 correctly.

 Here is the result of paludis --info =net-wireless/madwifi-
 ng-0.9.4-r2::stormfront


 {{{
 paludis --info =net-wireless/madwifi-ng-0.9.4-r2::stormfront
 paludis 0.36.1
 Paludis build information:
     Compiler:
         CXX:                   x86_64-pc-linux-gnu-g++ 4.1.2 (Gentoo 4.1.2
 p1.1)
         CXXFLAGS:               -march=athlon64 -O2 -pipe
         LDFLAGS:               -Wl,-O1
         DATE:                  2009-04-27T19:41:50-0600

     Libraries:
         C++ Library:           GNU libstdc++ 20070214

     Reduced Privs:
         reduced_uid:           102
         reduced_uid->name:     paludisbuild
         reduced_uid->dir:      /var/tmp/paludis
         reduced_gid:           441
         reduced_gid->name:     paludisbuild

     Paths:
         DATADIR:               /usr/share
         LIBDIR:                /usr/lib64
         LIBEXECDIR:            /usr/libexec
         SYSCONFDIR:            /etc
         PYTHONINSTALLDIR:
         RUBYINSTALLDIR:

 Environment:
     Format:                    paludis
     Config dir:                /etc/paludis
     World file:                /var/db/pkg/world

 Repository installed-virtuals:
     format:                    installed_virtuals
     root:                      /

 Repository virtuals:
     format:                    virtuals

 Repository gentoo:
     format:                    ebuild
     location:                  /usr/portage
     append_repository_name_to_write_cache: true
     binary_destination:        false
     binary_keywords:
     binary_uri_prefix:
     builddir:                  /var/tmp/paludis
     cache:                     /usr/portage/metadata/cache
     distdir:                   /usr/portage/distfiles
     eapi_when_unknown:         0
     eapi_when_unspecified:     0
     eclassdirs:                /usr/portage/eclass
     ignore_deprecated_profiles: false
     layout:                    traditional
     names_cache:               /usr/portage/.cache/names
     newsdir:                   /usr/portage/metadata/news
     profile_eapi_when_unspecified: 0
     profiles:
 /usr/portage/profiles/default/linux/amd64/2008.0
     securitydir:               /usr/portage/metadata/glsa
     setsdir:                   /usr/portage/sets
     sync:                      rsync://rsync.gentoo.org/gentoo-portage
     sync_options:
     use_manifest:              use
     write_cache:               /var/cache/paludis/metadata

 Repository installed:
     format:                    vdb
     location:                  /var/db/pkg
     builddir:                  /var/tmp/paludis
     names_cache:               /var/db/pkg/.cache/names
     provides_cache:            /var/db/pkg/.cache/provides
     root:                      /

 Repository java-overlay:
     format:                    ebuild
     location:                  /usr/portage/local/layman/java-overlay
     append_repository_name_to_write_cache: true
     binary_destination:        false
     binary_keywords:
     binary_uri_prefix:
     builddir:                  /var/tmp/paludis
     cache:                     /var/empty
     distdir:                   /usr/portage/distfiles
     eapi_when_unknown:         0
     eapi_when_unspecified:     0
     eclassdirs:                /usr/portage/eclass
 /usr/portage/local/layman/java-overlay/eclass
     ignore_deprecated_profiles: false
     layout:                    traditional
     master_repository:         gentoo
     names_cache:               /var/empty
     newsdir:                   /usr/portage/local/layman/java-
 overlay/metadata/news
     profile_eapi_when_unspecified: 0
     profiles:
 /usr/portage/profiles/default/linux/amd64/2008.0
     securitydir:               /usr/portage/local/layman/java-
 overlay/metadata/glsa
     setsdir:                   /usr/portage/local/layman/java-overlay/sets
     sync:
 svn+http://overlays.gentoo.org/svn/proj/java/java-overlay
     sync_options:
     use_manifest:              use
     write_cache:               /var/empty

 Repository stormfront:
     format:                    ebuild
     location:                  /usr/portage/local/layman/stormfront
     append_repository_name_to_write_cache: true
     binary_destination:        false
     binary_keywords:
     binary_uri_prefix:
     builddir:                  /var/tmp/paludis
     cache:                     /var/empty
     distdir:                   /usr/portage/distfiles
     eapi_when_unknown:         0
     eapi_when_unspecified:     0
     eclassdirs:                /usr/portage/eclass
 /usr/portage/local/layman/stormfront/eclass
     ignore_deprecated_profiles: false
     layout:                    traditional
     master_repository:         gentoo
     names_cache:               /var/empty
     newsdir:
 /usr/portage/local/layman/stormfront/metadata/news
     profile_eapi_when_unspecified: 0
     profiles:
 /usr/portage/profiles/default/linux/amd64/2008.0
     securitydir:
 /usr/portage/local/layman/stormfront/metadata/glsa
     setsdir:                   /usr/portage/local/layman/stormfront/sets
     sync:
 svn+http://stormfront.googlecode.com/svn/trunk
     sync_options:
     use_manifest:              use
     write_cache:               /var/empty

 paludis at 1243811517: [WARNING e.ebuild.cache_failure] In thread ID '22514':
   ... In program paludis --info =net-wireless/madwifi-
 ng-0.9.4-r2::stormfront:
   ... When handling query '=net-wireless/madwifi-ng-0.9.4-r2::stormfront':
   ... When finding all versions sorted from packages matching =net-
 wireless/madwifi-ng-0.9.4-r2::stormfront with filter all matches filtered
 through supports action install filtered through not masked:
   ... When generating metadata for ID 'net-wireless/madwifi-
 ng-0.9.4-r2::stormfront':
   ... When running an ebuild command on 'net-wireless/madwifi-
 ng-0.9.4-r2::stormfront':
   ... Caught exception 'Expected an = at line 1'
 (paludis::ConfigFileError) when generating cache for 'net-wireless
 /madwifi-ng-0.9.4-r2::stormfront', input is '* \n Determining \n the \n
 location \n of \n the \n kernel \n source \n code \n * \n Found \n kernel
 \n source \n directory: \n * \n /usr/src/linux \n DEPEND=" \n
 kernel_linux? \n ( \n virtual/linux-sources \n ) \n kernel_linux? \n ( \n
 virtual/modutils \n ) \n sys-apps/sed" \n RDEPEND="!net-wireless/madwifi-
 old \n net-wireless/wireless-tools \n ~net-wireless/madwifi-ng-tools-0.9.4
 \n kernel_linux? \n ( \n virtual/modutils \n )" \n PDEPEND=" \n " \n
 IUSE="injection \n kernel_linux" \n
 SRC_URI="mirror://sourceforge/madwifi/madwifi-0.9.4.tar.bz2" \n
 DOWNLOADS="" \n RESTRICT="" \n LICENSE="atheros-hal \n || \n ( \n BSD \n
 GPL-2 \n )" \n LICENCES="" \n KEYWORDS="~amd64 \n ~ppc \n ~x86" \n
 INHERITED=" \n toolchain-funcs \n multilib \n portability \n eutils \n
 versionator \n linux-info \n linux-mod" \n PROVIDE="" \n
 HOMEPAGE="http://www.madwifi-project.org/" \n DESCRIPTION="Next \n
 Generation \n driver \n for \n Atheros \n based \n IEEE \n 802.11a/b/g \n
 wireless \n LAN \n cards" \n DEPENDENCIES="" \n E_IUSE=" \n kernel_linux"
 \n E_DEPEND=" \n kernel_linux? \n ( \n virtual/linux-sources \n ) \n
 kernel_linux? \n ( \n virtual/modutils \n ) \n sys-apps/sed" \n
 E_RDEPEND=" \n kernel_linux? \n ( \n virtual/modutils \n )" \n E_PDEPEND="
 \n " \n PLATFORMS="" \n MYOPTIONS="" \n E_MYOPTIONS="" \n
 E_DEPENDENCIES="" \n BINARY_KEYWORDS="" \n BINARY_URI="" \n
 GENERATED_USING="" \n GENERATED_TIME="" \n BINARY_PLATFORMS="" \n
 REMOTE_IDS="" \n SUMMARY="" \n BUGS_TO="" \n UPSTREAM_DOCUMENTATION="" \n
 UPSTREAM_CHANGELOG="" \n UPSTREAM_RELEASE_NOTES="" \n PROPERTIES="" \n
 PALUDIS_DECLARED_FUNCTIONS="EXPORT_FUNCTIONS \n KV_major \n KV_micro \n
 KV_minor \n KV_to_int \n __versionator__test_version_compare \n
 __versionator_shopt_toggle \n _cdrom_locate_file_on_cd \n _eend \n _gcc-
 install-dir \n _gcc-specs-directive_raw \n _gcc-specs-exists \n adddeny \n
 addpredict \n addread \n addwrite \n best_version \n built_with_use \n
 cdrom_get_cds \n cdrom_load_next_cd \n check_KV \n check_extra_config \n
 check_kernel_built \n check_license \n check_modules_supported \n
 check_paludis_pipe_command \n check_vermagic \n check_zlibinflate \n
 convert_to_m \n create_ml_includes \n create_ml_includes-absolute \n
 create_ml_includes-allfiles \n create_ml_includes-listdirs \n
 create_ml_includes-makedestdirs \n create_ml_includes-sym_for_dir \n
 create_ml_includes-tidy_path \n cut \n date \n debug-print \n debug-print-
 function \n debug-print-section \n delete_all_version_separators \n
 delete_version_separator \n diefunc \n diropts \n dlopen_lib \n docinto \n
 doicon \n domenu \n ebeep \n ebegin \n ebegin_unhooked \n
 ebuild_f_metadata \n ebuild_get_abi_CDEFINE \n ebuild_get_abi_CFLAGS \n
 ebuild_get_abi_CHOST \n ebuild_get_abi_CTARGET \n
 ebuild_get_abi_FAKE_TARGETS \n ebuild_get_abi_LDFLAGS \n
 ebuild_get_abi_LIBDIR \n ebuild_get_abi_var \n ebuild_get_libdir \n
 ebuild_load_ebuild \n ebuild_load_environment \n ebuild_load_module \n
 ebuild_main \n ebuild_notice \n ebuild_safe_source \n
 ebuild_scrub_environment \n ebuild_section \n ebuild_source_profile \n
 econf \n ecvs_clean \n edos2unix \n eend \n eerror \n egetent \n egethome
 \n egetshell \n einfo \n einfo_unhooked \n einfon \n einstall \n elog \n
 emktemp \n enewgroup \n enewuser \n epatch \n epause \n epunt_cxx \n
 esvn_clean \n ewarn \n ewend \n exeinto \n exeopts \n find_module_params
 \n find_unpackable_file \n gcc-fullversion \n gcc-major-version \n gcc-
 micro-version \n gcc-minor-version \n gcc-specs-directive \n gcc-specs-
 nostrict \n gcc-specs-now \n gcc-specs-pie \n gcc-specs-relro \n gcc-
 specs-ssp \n gcc-specs-ssp-to-all \n gcc-version \n gen_usr_ldscript \n
 generate_modulesd \n get-KERNEL_CC \n get_KV \n get_abi_ASFLAGS \n
 get_abi_CDEFINE \n get_abi_CFLAGS \n get_abi_CHOST \n get_abi_CTARGET \n
 get_abi_FAKE_TARGETS \n get_abi_LDFLAGS \n get_abi_LIBDIR \n get_abi_var
 \n get_after_major_version \n get_all_abis \n get_all_libdirs \n
 get_all_version_components \n get_bmake \n get_install_abis \n
 get_last_version_component_index \n get_libdir \n get_libdir_override \n
 get_libname \n get_localversion \n get_major_version \n get_ml_incdir \n
 get_mounts \n get_multilibdir \n get_running_version \n get_version \n
 get_version_component_count \n get_version_component_range \n
 get_version_components \n getfilevar \n has \n has_multilib_profile \n
 has_version \n hasq \n hasv \n inherit \n insinto \n insopts \n into \n
 is-login-disabled \n is_final_abi \n keepdir \n kernel_is \n libopts \n
 linux-info_pkg_setup \n linux-mod_pkg_postinst \n linux-mod_pkg_postrm \n
 linux-mod_pkg_preinst \n linux-mod_pkg_setup \n linux-mod_src_compile \n
 linux-mod_src_install \n linux_chkconfig_builtin \n linux_chkconfig_module
 \n linux_chkconfig_present \n linux_chkconfig_string \n
 linux_config_exists \n locked_pipe_command \n make_desktop_entry \n
 make_session_desktop \n make_wrapper \n move_old_moduledb \n multilib_env
 \n multilib_toolchain_setup \n newicon \n newmenu \n number_abis \n
 paludis_die_or_error_func \n paludis_die_unless_nonfatal_func \n
 paludis_ecmd \n paludis_phase_to_function_name \n paludis_pipe_command \n
 paludis_rewrite_var \n perform_hook \n pkg_postinst \n pkg_postrm \n
 pkg_preinst \n pkg_setup \n portageq \n prep_ml_includes \n
 preserve_old_lib \n preserve_old_lib_notify \n qeerror \n qeinfo \n qout
 \n remove_moduledb \n replace_all_version_separators \n
 replace_version_separator \n require_configured_kernel \n seq \n
 set_arch_to_kernel \n set_arch_to_portage \n set_kvobj \n src_compile \n
 src_install \n src_unpack \n strip-linguas \n strip_modulenames \n tc-arch
 \n tc-arch-kernel \n tc-endian \n tc-export \n tc-getAR \n tc-getAS \n tc-
 getBUILD_CC \n tc-getCC \n tc-getCPP \n tc-getCXX \n tc-getF77 \n tc-getFC
 \n tc-getGCJ \n tc-getLD \n tc-getNM \n tc-getOBJCOPY \n tc-getPROG \n tc-
 getRANLIB \n tc-getSTRIP \n tc-is-cross-compiler \n tc-is-softfloat \n tc-
 is-static-only \n tc-ninja_magic_to_arch \n tr \n treecopy \n
 unpack_makeself \n unpack_pdv \n update_depmod \n update_moduledb \n
 update_modules \n use \n use_enable \n use_m \n use_with \n useq \n usev
 \n validate_desktop_entries \n vdb_path \n version_compare \n
 version_is_at_least \n version_sort \n " \n SLOT="0" \n EAPI="0" \n
 OPTIONS="" \n USE=""', stderr is ''
 paludis at 1243811517: [WARNING e.ebuild.cache_failure] (same context) Could
 not generate cache for 'net-wireless/madwifi-ng-0.9.4-r2::stormfront'
 stderr says ''
 paludis at 1243811517: [WARNING e.ebuild.metadata.unusable] No usable
 metadata for 'net-wireless/madwifi-ng-0.9.4-r2::stormfront'
 Package net-wireless/madwifi-ng-0.9.4-r2::stormfront:

         No extra information available for 'net-wireless/madwifi-
 ng-0.9.4-r2::stormfront'
 }}}

 Here is the ebuild itself:


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

 inherit linux-mod

 MY_P=${PN/-ng/}-${PV}
 S="${WORKDIR}"/${MY_P}

 DESCRIPTION="Next Generation driver for Atheros based IEEE 802.11a/b/g
 wireless LAN cards"
 HOMEPAGE="http://www.madwifi-project.org/"
 SRC_URI="mirror://sourceforge/madwifi/madwifi-${PV}.tar.bz2"

 LICENSE="atheros-hal
         || ( BSD GPL-2 )"
 SLOT="0"
 KEYWORDS="~amd64 ~ppc ~x86"
 IUSE="injection"

 RDEPEND="!net-wireless/madwifi-old
                 net-wireless/wireless-tools
                 ~net-wireless/madwifi-ng-tools-${PV}"

 CONFIG_CHECK="CRYPTO WIRELESS_EXT SYSCTL"
 kernel_is lt 2 6 29 && CONFIG_CHECK="${CONFIG_CHECK} KMOD"
 ERROR_CRYPTO="${P} requires Cryptographic API support (CONFIG_CRYPTO)."
 ERROR_WIRELESS_EXT="${P} requires CONFIG_WIRELESS_EXT selected by Wireless
 LAN drivers (non-hamradio) & Wireless Extensions"
 ERROR_SYSCTL="${P} requires Sysctl support (CONFIG_SYSCTL)."
 BUILD_TARGETS="all"
 MODULESD_ATH_PCI_DOCS="README"

 pkg_setup() {
         linux-mod_pkg_setup

         MODULE_NAMES='ath_hal(net:"${S}"/ath_hal)
                                 wlan(net:"${S}"/net80211)
                                 wlan_acl(net:"${S}"/net80211)
                                 wlan_ccmp(net:"${S}"/net80211)
                                 wlan_tkip(net:"${S}"/net80211)
                                 wlan_wep(net:"${S}"/net80211)
                                 wlan_xauth(net:"${S}"/net80211)
                                 wlan_scan_sta(net:"${S}"/net80211)
                                 wlan_scan_ap(net:"${S}"/net80211)
                                 ath_rate_amrr(net:"${S}"/ath_rate/amrr)
                                 ath_rate_onoe(net:"${S}"/ath_rate/onoe)
 ath_rate_sample(net:"${S}"/ath_rate/sample)
 ath_rate_minstrel(net:"${S}"/ath_rate/minstrel)
                                 ath_pci(net:"${S}"/ath)'

         BUILD_PARAMS="KERNELPATH=${KV_OUT_DIR}"
 }

 src_unpack() {
         unpack ${A}

         cd "${S}"
         epatch "${FILESDIR}/${PN}-0.9.3-uudecode-gcda-fix.patch"
         for dir in ath ath_hal net80211 ath_rate ath_rate/amrr
 ath_rate/minstrel ath_rate/onoe ath_rate/sample; do
                 convert_to_m "${S}/${dir}/Makefile"
         done
         kernel_is ge 2 6 27 && epatch
 "${FILESDIR}/${P}-2.6.27-r3811.patch"
         epatch "${FILESDIR}/madwifi-dfs-ieee80211-skb-update.patch"
         kernel_is ge 2 6 29 && epatch
 "${FILESDIR}/${P}-2.6.29-r3907.patch"
         epatch "${FILESDIR}/${P}-request_module-build.patch"
         if use injection; then epatch "${FILESDIR}"/${PN}-r3925.patch; fi
 }

 src_install() {
         linux-mod_src_install

         dodoc README THANKS docs/users-guide.pdf docs/WEP-HOWTO.txt
 }

 pkg_postinst() {
         local moddir="${ROOT}/lib/modules/${KV_FULL}/net/"

         linux-mod_pkg_postinst

         einfo
         einfo "Interfaces (athX) are now automatically created upon
 loading the ath_pci"
         einfo "module."
         einfo
         einfo "The type of the created interface can be controlled through
 the 'autocreate'"
         einfo "module parameter."
         einfo
         einfo "As of net-wireless/madwifi-ng-0.9.3 rate control module
 selection is done at"
         einfo "module load time via the 'ratectl' module parameter. USE
 flags amrr and onoe"
         einfo "no longer serve any purpose."

         elog "Please note: This release is based off of 0.9.3.3 and NOT
 trunk."
         elog "# No AR5007 support in this release;"
         elog "experimental support is available for i386 (32bit) in #1679"
         elog "# No AR5008 support in this release; support is available in
 trunk "
         elog "No, we will not apply the patch from 1679, if you must,
 please do so
         in an overlay on your system. That is upstreams ticket 1679, not
 Gentoo's."
 }
 }}}

 Thanks for any help you can provide,
 Jason

-- 
Ticket URL: <http://trac.pioto.org/paludis/ticket/762>
Paludis <http://paludis.pioto.org/>
Paludis, the Other Package Mangler


More information about the paludis-dev mailing list