Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!

Bug 207193

Summary: [EAPI] unpacking lzma files
Product: Gentoo Linux Reporter: Grant Goodyear (RETIRED) <g2boojum>
Component: [OLD] Core systemAssignee: PMS/EAPI <pms>
Status: RESOLVED NEEDINFO    
Severity: normal CC: almostik, arctika42, bugs_gentoo_org.Tim_OKelly, christopher.aiken, cJ-gentoo, der.osterhase, dev-portage, esigra, jer, jordi.sola, pacho, peper, pms, rafael, rodrigo
Priority: High    
Version: unspecified   
Hardware: All   
OS: Linux   
Whiteboard:
Package list:
Runtime testing required: ---

Description Grant Goodyear (RETIRED) gentoo-dev 2008-01-23 17:35:54 UTC
# cat /var/tmp/paludis/sys-apps/coreutils-6.10-r1/temp/003_all_coreutils-gentoo-uname.patch-18821.out 
***** 003_all_coreutils-gentoo-uname.patch *****

================================================

PATCH COMMAND:	 patch -p0 -g0 -E --no-backup-if-mismatch < /var/tmp/paludis/sys-apps/coreutils-6.10-r1/work/patch/003_all_coreutils-gentoo-uname.patch

================================================
can't find file to patch at input line 14
Perhaps you used the wrong -p or --strip option?
The text leading up to this was:
--------------------------
|On linux platforms, grok /proc/cpuinfo for the CPU/vendor info.
|
|Prob not suitable for upstream seeing as how it's 100% linux-specific
|http://lists.gnu.org/archive/html/bug-coreutils/2005-09/msg00063.html
|
|Patch originally by Carlos E. Gorges <carlos@techlinux.com.br>, but 
|heavily reworked to suck less.
|
|To add support for additional platforms, check out the show_cpuinfo()
|func in the linux/arch/<ARCH>/ source tree of the kernel.
|
|--- coreutils/src/uname.c
|+++ coreutils/src/uname.c
--------------------------
No file to patch.  Skipping patch.
4 out of 4 hunks ignored
================================================

PATCH COMMAND:	 patch -p1 -g0 -E --no-backup-if-mismatch < /var/tmp/paludis/sys-apps/coreutils-6.10-r1/work/patch/003_all_coreutils-gentoo-uname.patch

================================================
can't find file to patch at input line 14
Perhaps you used the wrong -p or --strip option?
The text leading up to this was:
--------------------------
|On linux platforms, grok /proc/cpuinfo for the CPU/vendor info.
|
|Prob not suitable for upstream seeing as how it's 100% linux-specific
|http://lists.gnu.org/archive/html/bug-coreutils/2005-09/msg00063.html
|
|Patch originally by Carlos E. Gorges <carlos@techlinux.com.br>, but 
|heavily reworked to suck less.
|
|To add support for additional platforms, check out the show_cpuinfo()
|func in the linux/arch/<ARCH>/ source tree of the kernel.
|
|--- coreutils/src/uname.c
|+++ coreutils/src/uname.c
--------------------------
No file to patch.  Skipping patch.
4 out of 4 hunks ignored
================================================

PATCH COMMAND:	 patch -p2 -g0 -E --no-backup-if-mismatch < /var/tmp/paludis/sys-apps/coreutils-6.10-r1/work/patch/003_all_coreutils-gentoo-uname.patch

================================================
can't find file to patch at input line 14
Perhaps you used the wrong -p or --strip option?
The text leading up to this was:
--------------------------
|On linux platforms, grok /proc/cpuinfo for the CPU/vendor info.
|
|Prob not suitable for upstream seeing as how it's 100% linux-specific
|http://lists.gnu.org/archive/html/bug-coreutils/2005-09/msg00063.html
|
|Patch originally by Carlos E. Gorges <carlos@techlinux.com.br>, but 
|heavily reworked to suck less.
|
|To add support for additional platforms, check out the show_cpuinfo()
|func in the linux/arch/<ARCH>/ source tree of the kernel.
|
|--- coreutils/src/uname.c
|+++ coreutils/src/uname.c
--------------------------
No file to patch.  Skipping patch.
4 out of 4 hunks ignored
================================================

PATCH COMMAND:	 patch -p3 -g0 -E --no-backup-if-mismatch < /var/tmp/paludis/sys-apps/coreutils-6.10-r1/work/patch/003_all_coreutils-gentoo-uname.patch

================================================
missing header for unified diff at line 14 of patch
can't find file to patch at input line 14
Perhaps you used the wrong -p or --strip option?
The text leading up to this was:
--------------------------
|On linux platforms, grok /proc/cpuinfo for the CPU/vendor info.
|
|Prob not suitable for upstream seeing as how it's 100% linux-specific
|http://lists.gnu.org/archive/html/bug-coreutils/2005-09/msg00063.html
|
|Patch originally by Carlos E. Gorges <carlos@techlinux.com.br>, but 
|heavily reworked to suck less.
|
|To add support for additional platforms, check out the show_cpuinfo()
|func in the linux/arch/<ARCH>/ source tree of the kernel.
|
|--- coreutils/src/uname.c
|+++ coreutils/src/uname.c
--------------------------
No file to patch.  Skipping patch.
4 out of 4 hunks ignored
================================================

PATCH COMMAND:	 patch -p4 -g0 -E --no-backup-if-mismatch < /var/tmp/paludis/sys-apps/coreutils-6.10-r1/work/patch/003_all_coreutils-gentoo-uname.patch

================================================
missing header for unified diff at line 14 of patch
can't find file to patch at input line 14
Perhaps you used the wrong -p or --strip option?
The text leading up to this was:
--------------------------
|On linux platforms, grok /proc/cpuinfo for the CPU/vendor info.
|
|Prob not suitable for upstream seeing as how it's 100% linux-specific
|http://lists.gnu.org/archive/html/bug-coreutils/2005-09/msg00063.html
|
|Patch originally by Carlos E. Gorges <carlos@techlinux.com.br>, but 
|heavily reworked to suck less.
|
|To add support for additional platforms, check out the show_cpuinfo()
|func in the linux/arch/<ARCH>/ source tree of the kernel.
|
|--- coreutils/src/uname.c
|+++ coreutils/src/uname.c
--------------------------
No file to patch.  Skipping patch.
4 out of 4 hunks ignored


# paludis --info
paludis 0.26.0_alpha7
Paludis build information:
    Compiler:
        CXX:                   i686-pc-linux-gnu-g++ 4.1.2 (Gentoo 4.1.2)
        CXXFLAGS:              -O2 -march=i686 -pipe -ggdb
        LDFLAGS:               
        DATE:                  2008-01-21T14:46:41-0600

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

    Reduced Privs:
        reduced_uid:           108
        reduced_uid->name:     paludisbuild
        reduced_uid->dir:      /dev/null
        reduced_gid:           414
        reduced_gid->name:     paludisbuild

    Paths:
        DATADIR:               /usr/share
        LIBDIR:                /usr/lib
        LIBEXECDIR:            /usr/libexec
        SYSCONFDIR:            /etc
        PYTHONINSTALLDIR:      /usr/lib/python2.5/site-packages
        RUBYINSTALLDIR:        /usr/lib/ruby/site_ruby/1.8/i686-linux

Repository virtuals:
    format:                    virtuals

Repository installed-virtuals:
    format:                    installed_virtuals
    root:                      /

Repository gentoo:
    format:                    ebuild
    location:                  /usr/portage
    append_repository_name_to_write_cache: true
    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/.cache/gentoo-names
    newsdir:                   /usr/portage/metadata/news
    profile_eapi:              0
    profiles:                  /usr/portage/profiles/default-linux/x86/2006.1
    securitydir:               /usr/portage/metadata/glsa
    setsdir:                   /usr/portage/sets
    sync:                      rsync://rsync.us.gentoo.org/gentoo-portage/
    sync_options:              
    use_manifest:              use
    write_cache:               /var/empty

    Package information:
        app-admin/eselect-compiler: (none)
        app-shells/bash:       3.2_p17-r1
        dev-java/java-config:  1.3.7 2.1.3
        dev-lang/python:       2.4.4 2.5.1-r5
        dev-python/pycrypto:   2.0.1-r6
        dev-util/ccache:       (none)
        dev-util/confcache:    (none)
        sys-apps/baselayout:   1.12.11.1
        sys-apps/sandbox:      1.2.18.1-r2
        sys-devel/autoconf:    2.13 2.61-r1
        sys-devel/automake:    1.10.1 1.4_p6 1.5 1.6.3 1.7.9-r1 1.8.5-r3 1.9.6-r2
        sys-devel/binutils:    2.18-r1
        sys-devel/gcc-config:  1.4.0-r4
        sys-devel/libtool:     1.5.24
        virtual/os-headers:    2.6.23-r3 (for sys-kernel/linux-headers::installed)

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

Repository local_overlay:
    format:                    ebuild
    location:                  /usr/local/portage
    append_repository_name_to_write_cache: true
    builddir:                  /var/tmp/paludis
    cache:                     /var/empty
    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/empty
    newsdir:                   /usr/local/portage/metadata/news
    profile_eapi:              0
    profiles:                  /usr/portage/profiles/default-linux/x86/2006.1
    securitydir:               /usr/local/portage/metadata/glsa
    setsdir:                   /usr/local/portage/sets
    sync:                      
    sync_options:              
    use_manifest:              use
    write_cache:               /var/empty

Repository x-mabi:
    format:                    ebuild
    location:                  /usr/portage/local/layman/mabi
    append_repository_name_to_write_cache: true
    builddir:                  /var/tmp/paludis
    cache:                     /var/empty
    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/empty
    newsdir:                   /usr/portage/local/layman/mabi/metadata/news
    profile_eapi:              0
    profiles:                  /usr/portage/profiles/default-linux/x86/2006.1
    securitydir:               /usr/portage/local/layman/mabi/metadata/glsa
    setsdir:                   /usr/portage/local/layman/mabi/sets
    sync:                      
    sync_options:              
    use_manifest:              use
    write_cache:               /var/empty


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).
Comment 1 Grant Goodyear (RETIRED) gentoo-dev 2008-01-23 17:57:11 UTC
Paludis skips the lzma-compressed file.

17:36 < g2boojum> SpanKY, vapier: bug # 207193  <-- nobody else seeing this?
17:37 <@vapier> that's weird
17:37 <@vapier> i bet it's the lzma hate
17:38 <@vapier> g2boojum: you'd have to post the full build output, not the 
                epatch log
17:41 < g2boojum> Ah, you mean this part: >>> Starting src_unpack
17:41 < g2boojum> >>> Unpacking coreutils-6.10.tar.lzma to 
                  /var/tmp/paludis/sys-apps/coreutils-6.10-r1/work
17:41 < g2boojum> Skipping unpack for 
                  /usr/portage/distfiles/coreutils-6.10.tar.lzma
17:43 <@vapier> ;)
Comment 2 Piotr Jaroszyński (RETIRED) gentoo-dev 2008-01-23 18:52:26 UTC
There should be an EAPI bump for this kind of change. Since which version is the lzma support included in portage?

btw. 0.26.0_alpha9 supports lzma extraction
Comment 3 Grant Goodyear (RETIRED) gentoo-dev 2008-01-23 21:01:23 UTC
(In reply to comment #2)
> There should be an EAPI bump for this kind of change. Since which version is
> the lzma support included in portage?

Yep, that's what vapier said when I asked him about it.
 
> btw. 0.26.0_alpha9 supports lzma extraction

So it does.  Thanks! 

Comment 4 Matthias 2008-02-08 17:59:24 UTC
Because sys-apps/coreutils-6.10-r1 now contains mktemp, you have to remove sys-apps/mktemp before upgrading coreutils (otherwise mktemp blocks coreutils). For decompression lzma (while upgrading coreutils) the mktemp binary is required.

try: 
$ p7zip <Enter>
which: no mktemp in ( ...
/usr/bin/p7zip: mktemp: command not found

Workaround:
- copy mktemp from /bin to /usr/local/bin
- unmerge mktemp
- emerge -u coreutils
- remove mktemp from /usr/local/bin
- maybe now you should change the dir or try "hash -r"


Comment 5 Zac Medico gentoo-dev 2008-02-08 21:52:40 UTC
(In reply to comment #4)
> Because sys-apps/coreutils-6.10-r1 now contains mktemp, you have to remove
> sys-apps/mktemp before upgrading coreutils (otherwise mktemp blocks coreutils).
> For decompression lzma (while upgrading coreutils) the mktemp binary is
> required.
> 
> try: 
> $ p7zip <Enter>
> which: no mktemp in ( ...
> /usr/bin/p7zip: mktemp: command not found

It works fine with portage afaik. Our extraction code uses lzma-utils instead of p7zip so it doesn't need mktemp:

lzma)
	if [ "${y}" == "tar" ]; then
		lzma -dc "${srcdir}${x}" | tar xof - ${tar_opts}
		assert "$myfail"
	else
		lzma -dc "${srcdir}${x}" > ${x%.*} || die "$myfail"
	fi
	;;
Comment 6 Doug Goldstein (RETIRED) gentoo-dev 2008-02-08 22:09:41 UTC
Well we've clearly established it's not a base-system bug, it's a Pauldis bug. Re-assigning to peper to fix.
Comment 7 David Leverton 2008-02-08 22:14:47 UTC
(In reply to comment #6)
> Well we've clearly established it's not a base-system bug, it's a Pauldis bug.
> Re-assigning to peper to fix.

As peper pointed out in comment #2, paludis has already been fixed.  The only reason I can see for this to still be open is to discuss the matter of adding a new compression format to unpack without an EAPI bump.
Comment 8 Richard Brown (RETIRED) gentoo-dev 2008-02-08 22:19:34 UTC
(In reply to comment #6)
> Well we've clearly established it's not a base-system bug, it's a Pauldis bug.
> Re-assigning to peper to fix.
> 
As dleverton said, it's not a paludis bug. Also, you appear to have misread the package metadata.xml
Comment 9 Doug Goldstein (RETIRED) gentoo-dev 2008-02-08 22:24:24 UTC
works for me on the shipping package manager with Gentoo. The ebuild is fine. Hence not a base-system bug.
Comment 10 Fernando J. Pereda (RETIRED) gentoo-dev 2008-02-08 22:35:04 UTC
(In reply to comment #9)
> works for me on the shipping package manager with Gentoo.

Why do we have EAPIs then? New features require EAPI bumps. Ideally, this should also be documented in PMS.

- ferdy
Comment 11 Richard Brown (RETIRED) gentoo-dev 2008-02-08 22:39:16 UTC
(In reply to comment #9)
> works for me on the shipping package manager with Gentoo. 

a) I just downloaded a portage snapshot, it appears to be shipping with at least 5 package managers: yum, rpm, portage, pkgcore and paludis

> The ebuild is fine.
> Hence not a base-system bug.

Oh, maybe that's why vapier added pms-bugs to the cc? Maybe you could have taken a second to look at the bug, rather than reassigning it to the wrong person and then INVALIDing it.
Comment 12 Doug Goldstein (RETIRED) gentoo-dev 2008-02-08 22:40:13 UTC
If we're talking about EAPI and PMS changes, that's the PMS people.
Comment 13 Zac Medico gentoo-dev 2008-02-08 22:52:54 UTC
(In reply to comment #10)
> Why do we have EAPIs then? New features require EAPI bumps. Ideally, this
> should also be documented in PMS.

We can avoid the need for an EAPI bump for trivial changes like this if we move unpack into the tree somewhere. For example, the unpack function could be defined in something like an eclass or the profile.bashrc of the base profile and then it would be less tightly coupled to EAPI. Then we could easily do lots of api extensions without changing the EAPI.
Comment 14 SpanKY gentoo-dev 2008-02-09 18:11:11 UTC
we talked about this sort of thing a long time ago, but ferringb iirc was against it which means it wasnt going to happen

the proposal was to move a bunch of funcs out of ebuild.sh and into the tree and that file would be auto-sourced.  things like unpack(), epatch(), econf(), etc... were being looked at for it.
Comment 15 Zac Medico gentoo-dev 2008-02-09 22:43:15 UTC
If our new system is well designed then there will be no drawbacks and it will only give us more flexibility in the ebuild api while allowing us to avoid EAPI breakages like this bug.

We're creating another class of ebuild libraries in the tree, similar to eclasses.   If we organize it so that there is a separate script for each eapi then the package manager can take the eapi from the ebuild and use that to determine which script to source. The separate scripts for each eapi could share implementations of some functions amongst themselves where appropriate. For example, the econf function is the same for both eapi 1 and 2, so it's implementation could be shared between them.
Comment 16 SpanKY gentoo-dev 2008-02-09 23:11:03 UTC
i'm not really concerned with the security aspects of it, but if we dont care about forcing people to fetch some tree in order to perform any ebuild operation, then it should be fine
Comment 17 Brian Harring (RETIRED) gentoo-dev 2008-03-04 18:46:03 UTC
(In reply to comment #15)
> If our new system is well designed then there will be no drawbacks and it will
> only give us more flexibility in the ebuild api while allowing us to avoid EAPI
> breakages like this bug.
> 
> We're creating another class of ebuild libraries in the tree, similar to
> eclasses.   If we organize it so that there is a separate script for each eapi
> then the package manager can take the eapi from the ebuild and use that to
> determine which script to source. The separate scripts for each eapi could
> share implementations of some functions amongst themselves where appropriate.
> For example, the econf function is the same for both eapi 1 and 2, so it's
> implementation could be shared between them.
And... what do you do if you're *not* deriving from gentoo-x86, and using a seperate/standalone tree?

I'm all for moving chunks of ebuild.sh into the tree- I'm against mandating that each repo carry their own implementation of EAPI chunks (that's the managers duty, not the tree). 

Comment 18 cJ 2008-04-19 23:49:48 UTC
I'm nobody to talk, but I agree with the idea of having "exotical" unpackers in the tree in the form of eclasses.
This can add the correct dependencies to packages and do nice things.

This idea can be a solution to a part of my request in bug #218459 : 
>I also think of the possibility to add support to app-arch/lzma's lzma in
package managers' unpackers, and having virtual/unlzma, which could be provided
by both lzmas and busybox with use=lzma.
>This principle could also be used with other compression methods...

I imagine an unpack-lzma.eclass, a virtual/unlzma provided by the packages that could unpack lzmas.
Cleaner tree, and it would avoid duplication of code in package managers :)
Comment 19 SpanKY gentoo-dev 2008-05-10 07:24:38 UTC
*** Bug 216997 has been marked as a duplicate of this bug. ***
Comment 20 SpanKY gentoo-dev 2008-05-23 10:17:56 UTC
*** Bug 223187 has been marked as a duplicate of this bug. ***
Comment 21 Jeroen Roovers (RETIRED) gentoo-dev 2008-08-07 02:29:04 UTC
*** Bug 233931 has been marked as a duplicate of this bug. ***
Comment 22 Jeroen Roovers (RETIRED) gentoo-dev 2008-09-01 21:16:57 UTC
*** Bug 236215 has been marked as a duplicate of this bug. ***
Comment 23 Jeroen Roovers (RETIRED) gentoo-dev 2008-09-09 15:09:36 UTC
*** Bug 237188 has been marked as a duplicate of this bug. ***
Comment 24 SpanKY gentoo-dev 2010-04-19 23:05:49 UTC
*** Bug 316093 has been marked as a duplicate of this bug. ***
Comment 25 Ulrich Müller gentoo-dev 2011-02-26 06:34:29 UTC
What is this bug about?
- PMS should mention lzma (it does since EAPI 2 or so)
- Move unpack to an eclass (as suggested in comment #13)
- Tracker for packages with missing lzma dependencies (as the dupes indicate)

Feel free to reopen with appropriately changed summary. Or open a new bug (which may be cleaner).