1) 29.04.2009 Daniel Robbins have decided to move to new modular package mask for better support overlays. http://github.com/funtoo/portage/commit/5dc56b9ee75773a3e5d3a5e0c2a63e57e29d0adc http://xenoterracide.blogspot.com/2009/02/split-packagemask.html 2) sys-apps/paludis didn't adapt to this change and so began to fail. Reproducible: Always Steps to Reproduce: 1. Clone the Funtoo Portage repository (brief instructions are here: http://wiki.github.com/funtoo/portage/first-steps) 2. Switch to the funtoo.org branch of that tree (# cd /usr/portage; git checkout funtoo.org) 3. Sync the tree (# paludis -s) 4. Try to install (or pretend) something: (# paludis -ip ccache) 5. Paludis failed * When adding profile configuration file '/usr/portage/profiles/package.mask': * In file '/usr/portage/profiles/package.mask': Error reading file: 'Error reading from fd 3: Is a directory' (paludis::SafeIFStreamError) (paludis::ConfigFileError) Actual Results: travel portage # paludis -ip ccache Building target list... Unhandled exception: * In program paludis (--continue-on-failure if-satisfied --with-unused-dependencies --dl-new-slots as-needed --log-level silent) -ip ccache: * When performing install action from command line: * When adding install target 'ccache': * When parsing user package dep spec 'ccache': * When parsing generic package dep spec 'ccache': * When disambiguating package name 'ccache': * When finding all versions in some arbitrary order from packages matching */ccache with filter all matches filtered through supports action install: * When generating metadata for ID 'dev-util/ccache-2.4-r6::funtoo': * When querying repository mask for 'dev-util/ccache-2.4-r6:0::funtoo': * When adding profile configuration file '/usr/portage/profiles/package.mask': * In file '/usr/portage/profiles/package.mask': Error reading file: 'Error reading from fd 3: Is a directory' (paludis::SafeIFStreamError) (paludis::ConfigFileError) Expected Results: Normal work as expected. # paludis --info paludis 0.36.1 Paludis build information: Compiler: CXX: i686-pc-linux-gnu-g++ 4.4.0 CXXFLAGS: -O2 -march=pentium4 -ftracer -mfpmath=sse -pipe -pedantic LDFLAGS: -Wl,-O1 DATE: 2009-05-18T14:06:16+0400 Libraries: C++ Library: GNU libstdc++ 20090421 Reduced Privs: reduced_uid: 101 reduced_uid->name: paludisbuild reduced_uid->dir: /var/tmp/paludis reduced_gid: 1000 reduced_gid->name: paludisbuild Paths: DATADIR: /usr/share LIBDIR: /usr/lib LIBEXECDIR: /usr/libexec SYSCONFDIR: /etc PYTHONINSTALLDIR: RUBYINSTALLDIR: /usr/lib/ruby/site_ruby/1.8/i686-linux 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 funtoo: 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: /var/cache/paludis/names newsdir: /usr/portage/metadata/news profile_eapi_when_unspecified: 0 profiles: /usr/portage/profiles/default/linux/x86/2008.0 securitydir: /usr/portage/metadata/glsa setsdir: /usr/portage/sets sync: git://github.com/funtoo/portage.git 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/cache/paludis/names provides_cache: /var/cache/paludis/provides root: / Repository gentoo-taiwan: format: ebuild location: /var/paludis/repositories/gentoo-taiwan 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 /var/paludis/repositories/gentoo-taiwan/eclass ignore_deprecated_profiles: false layout: traditional master_repository: funtoo names_cache: /var/cache/paludis/names newsdir: /var/paludis/repositories/gentoo-taiwan/metadata/news profile_eapi_when_unspecified: 0 profiles: /usr/portage/profiles/default/linux/x86/2008.0 securitydir: /var/paludis/repositories/gentoo-taiwan/metadata/glsa setsdir: /var/paludis/repositories/gentoo-taiwan/sets sync: svn+http://gentoo-taiwan.googlecode.com/svn/trunk/ sync_options: use_manifest: use write_cache: /var/cache/paludis/metadata Repository mozilla: format: ebuild location: /var/paludis/repositories/mozilla 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 /var/paludis/repositories/mozilla/eclass ignore_deprecated_profiles: false layout: traditional master_repository: funtoo names_cache: /var/cache/paludis/names newsdir: /var/paludis/repositories/mozilla/metadata/news profile_eapi_when_unspecified: 0 profiles: /usr/portage/profiles/default/linux/x86/2008.0 securitydir: /var/paludis/repositories/mozilla/metadata/glsa setsdir: /var/paludis/repositories/mozilla/sets sync: svn://overlays.gentoo.org/proj/mozilla sync_options: use_manifest: use write_cache: /var/cache/paludis/metadata Repository x-local: format: ebuild location: /var/paludis/repositories/local 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 /var/paludis/repositories/local/eclass ignore_deprecated_profiles: false layout: traditional master_repository: funtoo names_cache: /var/cache/paludis/names newsdir: /var/paludis/repositories/local/metadata/news profile_eapi_when_unspecified: 0 profiles: /usr/portage/profiles/default/linux/x86/2008.0 securitydir: /var/paludis/repositories/local/metadata/glsa setsdir: /var/paludis/repositories/local/sets sync: sync_options: use_manifest: use write_cache: /var/cache/paludis/metadata No packages were specified on the command line, so detailed information is not available (Paludis can display detailed information for both installed and installable packages). So if you're reporting a bug in cat/pkg, use 'paludis --info cat/pkg' instead.
I'm Marking this as RESO INVALID for the following reasons: 1) If anything this is a funtoo problem and as such should not be reported to gentoo's bugzilla. 2) Funtoo uses EAPI 0 ebuilds in the tree. As such, they /should/ have their tree in compliance with PMS(http://dev.gentoo.org/~gentoofan23/pms/head/html/pms.html#x1-450005.2 specifically). Rather, they rely on certain portage behaviour that allows package.mask to be a directory. Whether or not one thinks this should be changed is beyond the scope of this bug report. Paludis follows what the PMS states(and the Gentoo Council approved PMS as a draft standard(any discrepancies have a review process)), and, if anything, portage is the package to be 'fixed' to not allow package.mask be a directory. I would strongly suggest that the Funtoo people instruct their users that paludis will not work with the funtoo tree due to differences in the profiles/ directory structure.
Change Resolution...
Thanks for the detailed explanation. I agree, that it's not a paludis bug. I like paludis for it's strict following standarts. But I'm a novice developer and I can't ask Daniel Robbins to change his opinion about modular package.mask. And also I agree with him, that it's not a bad idea and can possibly be included in future versions of PMS (I just don't see, why modular package.mask is bad). To deal with this situation as I can, I wrote simple workaround for paludis (a hook script), that makes it work with funtoo portage tree by switching it to modular before syncing, and back to singular after it. I hope it will be useful and so publish it here.
Created attachment 192538 [details] Should reside in /usr/share/paludis/hooks/auto/
I think the simplest thing to do is to rename the modular package.mask as package.mask.d before doing anything with paludis, and rename it as package.mask before syncing or doing anything with portage, that's how I do and it works pretty well