public inbox for gentoo-catalyst@lists.gentoo.org
 help / color / mirror / Atom feed
From: "W. Trevor King" <wking@tremily.us>
To: gentoo-catalyst@lists.gentoo.org
Subject: Re: [gentoo-catalyst] Binary package dependencies and update_seed
Date: Thu, 11 Apr 2013 21:11:58 -0400	[thread overview]
Message-ID: <20130412011158.GB17116@odin.tremily.us> (raw)
In-Reply-To: <20130411203412.GA15862@odin.tremily.us>

[-- Attachment #1: Type: text/plain, Size: 5221 bytes --]

On Thu, Apr 11, 2013 at 04:34:12PM -0400, W. Trevor King wrote:
> On Thu, Apr 11, 2013 at 01:24:19PM -0700, Matt Turner wrote:
> > So, to make sure that I'm on the same page: is the the problem that
> > we're using stale packages in stage1 and if so, where did they come
> > from? A previous stage1 build that didn't do update-seed?
> 
> That's where mine (and presumably iamben's) came from.  However, they
> could also (I think) come from a stage1 build that used an older
> snapshot.  I'm testing now with a build from:
> 
>   subarch: i686
>   version_stamp: 2013.1
>   target: stage1
>   rel_type: default
>   profile: default/linux/x86/13.0/desktop
>   portage_confdir: /var/tmp/catalyst/portage-conf/default/
>   snapshot: 20130208
>   source_subpath: default/stage3-i686-20121213
>   update_seed: yes
> 
> Followed by another build with the same version_stamp but using:
> 
>   snapshot: 20130308
> 
> The idea is that the first build might produce packages linking
> libmpc.so.2, and the second build might reuse those packages, despite
> the stabilization of mpc-1.0.1 in the tree.

So I finished the build and I have a broken stage1 after the tree
update (as I expected).  Here's how it goes:

Clear the caches:

  # rm -rf --one-file-system /tmp/*.log /var/tmp/catalyst/{kerncache,packages,tmp}

Confirm the first spec (using the older tree)

  # cat /var/tmp/catalyst/spec/default-stage1-i686-test.1.spec
  subarch: i686
  version_stamp: 2013.1
  target: stage1
  rel_type: default
  profile: default/linux/x86/13.0/desktop
  portage_confdir: /var/tmp/catalyst/portage-conf/default/
  snapshot: 20130208
  source_subpath: default/stage3-i686-20121213
  update_seed: yes

Build it:

  # python2.7 catalyst -c catalyst.conf -f /var/tmp/catalyst/spec/default-stage1-i686-test.1.spec 2>&1 | tee /tmp/stage1-i686-test.1.log
  …
  >>> Emerging (30 of 38) sys-devel/gcc-4.6.3 for /tmp/stage1root/
  >>> Installing (30 of 38) sys-devel/gcc-4.6.3 to /tmp/stage1root/
  …

As expected, with a tree where mpc-0.8.2 is the latest stable version,
we get dependencies on libmpc.so.2:

  # less /var/tmp/catalyst/tmp/default/stage1-i686-2013.1/tmp/stage1root/usr/libexec/gcc/i686-pc-linux-gnu/4.6.3/cc1 | grep libmpc
   0x00000001 (NEEDED)                     Shared library: [libmpc.so.2]
  # ls -l /var/tmp/catalyst/tmp/default/stage1-i686-2013.1/tmp/stage1root/usr/libexec/gcc/i686-pc-linux-gnu/4.6.3/cc1 
  -rwxr-xr-x 1 root root 10557140 Apr 11 21:24 /var/tmp/catalyst/tmp/default/stage1-i686-2013.1/tmp/stage1root/usr/libexec/gcc/i686-pc-linux-gnu/4.6.3/cc1
  # less /var/tmp/catalyst/packages/default/stage1-i686-2013.1/sys-devel/gcc-4.6.3.tbz2 | grep '/cc1$'
  -rwxr-xr-x root/root  10557140 2013-04-11 21:24 ./usr/libexec/gcc/i686-pc-linux-gnu/4.6.3/cc1

Let's shift that stage out of the way for safe keeping and build
another with a new snapshot:

  # mv /var/tmp/catalyst/tmp/default/stage1-i686-{2013.1,test.1}/
  # diff /var/tmp/catalyst/spec/default-stage1-i686-test.{1,2}.spec
  7c7
  < snapshot: 20130208
  ---
  > snapshot: 20130308
  # python2.7 catalyst -c catalyst.conf -f /var/tmp/catalyst/spec/default-stage1-i686-test.2.spec 2>&1 | tee /tmp/stage1-i686-test.2.log
  …
  >>> Emerging binary (10 of 75) sys-devel/gcc-config-1.7.3 for /tmp/stage1root/
  >>> Installing (10 of 75) sys-devel/gcc-config-1.7.3 to /tmp/stage1root/
  …

Looks like were using the out-of-date binary package.  Let's check to
see we're still linking against the old libmpc:

  # less /var/tmp/catalyst/tmp/default/stage1-i686-2013.1/tmp/stage1root/usr/libexec/gcc/i686-pc-linux-gnu/4.6.3/cc1 | grep libmpc
   0x00000001 (NEEDED)                     Shared library: [libmpc.so.2]
  # ls -l /var/tmp/catalyst/tmp/default/stage1-i686-2013.1/tmp/stage1root/usr/libexec/gcc/i686-pc-linux-gnu/4.6.3/cc1 
  -rwxr-xr-x 1 root root 10557140 Apr 11 21:24 /var/tmp/catalyst/tmp/default/stage1-i686-2013.1/tmp/stage1root/usr/libexec/gcc/i686-pc-linux-gnu/4.6.3/cc1

Yup.  And that mpc version isn't in the new stage1:

  # ls /var/tmp/catalyst/tmp/default/stage1-i686-2013.1/tmp/stage1root/usr/lib/libmpc.so*
  /var/tmp/catalyst/tmp/default/stage1-i686-2013.1/tmp/stage1root/usr/lib/libmpc.so
  /var/tmp/catalyst/tmp/default/stage1-i686-2013.1/tmp/stage1root/usr/lib/libmpc.so.3
  /var/tmp/catalyst/tmp/default/stage1-i686-2013.1/tmp/stage1root/usr/lib/libmpc.so.3.0.0

So, while iamben (I think) and I (definitely) ran into this problem
because we had just turned on update_seed (with out-of-date packeages
from a non-update_seed run), this problem can also crop up due to
snapshot updates (even if you always have update_seed on).  That means
that the only reasonable fixes are:

a. Clear the package cache whenever you update a spec (without bumping
   version_stamp).
b. Migrate the toolchain packages to EAPI5 and use ABI sub-slotting.

Since (b), even if it does happen, is likely to take a while, I think
we should be pushing (a) for now.

Cheers,
Trevor

-- 
This email may be signed or encrypted with GnuPG (http://www.gnupg.org).
For more information, see http://en.wikipedia.org/wiki/Pretty_Good_Privacy

[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 836 bytes --]

  reply	other threads:[~2013-04-12  1:12 UTC|newest]

Thread overview: 76+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-02-26 16:20 [gentoo-catalyst] patch, fix broken seed stage update Brian Dolbec
2013-02-26 16:37 ` W. Trevor King
2013-02-26 16:47   ` Brian Dolbec
2013-02-26 16:48     ` Peter Stuge
2013-02-26 17:29 ` Rick "Zero_Chaos" Farina
2013-02-26 19:39   ` Matt Turner
2013-02-27  2:04     ` Brian Dolbec
2013-02-27  2:37       ` Matt Turner
2013-02-27 12:12       ` W. Trevor King
2013-02-27  2:37 ` Matt Turner
2013-02-27  3:03   ` Brian Dolbec
2013-02-27  3:22     ` Matt Turner
2013-02-27  3:49       ` Brian Dolbec
2013-03-08 17:27 ` [gentoo-catalyst] [PATCH v2] Remove update_seed_command and strengthen update_seed W. Trevor King
2013-03-08 18:34   ` Rick "Zero_Chaos" Farina
2013-03-08 18:47     ` [gentoo-catalyst] [PATCH v3] Strengthen update_seed to update @system and @world with dependencies W. Trevor King
2013-03-08 20:14       ` Matt Turner
2013-03-09 12:10         ` [gentoo-catalyst] " W. Trevor King
2013-04-11 17:09           ` [gentoo-catalyst] Binary package dependencies and update_seed W. Trevor King
2013-04-11 17:39             ` Rick "Zero_Chaos" Farina
2013-04-11 17:52               ` W. Trevor King
2013-04-12 15:12                 ` [gentoo-catalyst] [PATCH] files/catalyst.conf: Document linking issues with binary packages W. Trevor King
2013-04-12 15:21                   ` Rick "Zero_Chaos" Farina
2013-04-12 15:33                     ` W. Trevor King
2013-04-12 16:11                       ` Rick "Zero_Chaos" Farina
2013-04-12 18:21                         ` [gentoo-catalyst] [PATCH v2 0/2] pkgcache warning in catalyst-config(5) W. Trevor King
2013-04-12 18:21                           ` [gentoo-catalyst] [PATCH v2 1/2] doc/catalyst-config.5.txt: Add man page for catalyst.conf W. Trevor King
2013-04-12 18:27                             ` [gentoo-catalyst] " W. Trevor King
2013-04-12 18:47                             ` [gentoo-catalyst] " Rick "Zero_Chaos" Farina
2013-04-12 19:05                               ` W. Trevor King
2013-04-12 19:30                                 ` Rick "Zero_Chaos" Farina
2013-04-16  1:33                                   ` [gentoo-catalyst] [PATCH v3 0/2] pkgcache warning in catalyst-config(5) W. Trevor King
2013-04-16  1:33                                     ` [gentoo-catalyst] [PATCH v3 1/2] doc/catalyst-config.5.txt: Add man page for catalyst.conf W. Trevor King
2013-04-16  1:33                                     ` [gentoo-catalyst] [PATCH v3 2/2] doc/catalyst-config.5.txt: Document linking issues with binary packages W. Trevor King
2013-12-14  5:41                                     ` [gentoo-catalyst] Re: [PATCH v3 0/2] pkgcache warning in catalyst-config(5) W. Trevor King
2013-04-12 18:21                           ` [gentoo-catalyst] [PATCH v2 2/2] doc/catalyst-config.5.txt: Document linking issues with binary packages W. Trevor King
2013-04-11 18:20               ` [gentoo-catalyst] Binary package dependencies and update_seed Matt Turner
2013-04-11 18:22             ` Matt Turner
2013-04-11 18:53               ` Rick "Zero_Chaos" Farina
2013-04-11 19:00                 ` W. Trevor King
2013-04-11 19:03                 ` Matt Turner
2013-04-11 19:18                   ` Rick "Zero_Chaos" Farina
2013-04-11 20:24                     ` Matt Turner
2013-04-11 20:34                       ` W. Trevor King
2013-04-12  1:11                         ` W. Trevor King [this message]
2013-04-11 20:37                       ` Rick "Zero_Chaos" Farina
2013-04-11 18:53               ` W. Trevor King
2013-04-12  6:57                 ` Brian Dolbec
2013-04-16 19:42           ` [gentoo-catalyst] [PATCH 0/2] Blacklisting binary packages W. Trevor King
2013-04-16 19:42             ` [gentoo-catalyst] [PATCH 1/2] spec: Add binpkg_blacklist option for troublesome packages W. Trevor King
2013-04-16 19:42             ` [gentoo-catalyst] [PATCH 2/2] Revert "don't build packages during update_seed" W. Trevor King
2013-04-16 20:35             ` [gentoo-catalyst] [PATCH 0/2] Blacklisting binary packages Matt Turner
2013-04-16 20:59               ` W. Trevor King
     [not found]                 ` <516DD074.3090906@gentoo.org>
2013-04-16 22:53                   ` W. Trevor King
2013-04-17  4:18                     ` Brian Dolbec
2013-04-17 11:30                       ` W. Trevor King
2013-04-17 14:57                         ` Matt Turner
2013-04-19 14:11             ` Rick "Zero_Chaos" Farina
2013-04-19 16:18               ` W. Trevor King
2013-04-19 16:32                 ` Rick "Zero_Chaos" Farina
2013-04-19 16:36                   ` W. Trevor King
  -- strict thread matches above, loose matches on Subject: below --
2013-01-08  8:32 [gentoo-catalyst] More proposed Catalyst changes Brian Dolbec
2013-01-08 18:08 ` Peter Stuge
2013-01-12  8:55 ` Brian Dolbec
2013-01-31 18:39   ` W. Trevor King
2013-01-31 19:46     ` W. Trevor King
2013-02-02 20:41       ` Brian Dolbec
2013-02-03 12:44         ` W. Trevor King
2013-04-11  2:06       ` [gentoo-catalyst] chmod +x all sh scripts so they can run from the git checkout W. Trevor King
2013-02-02 18:45     ` [gentoo-catalyst] More proposed Catalyst changes Brian Dolbec
2013-02-03 12:20       ` W. Trevor King
2013-02-26 18:04     ` [gentoo-catalyst] patch, fix broken seed stage update W. Trevor King
2013-02-27  1:30       ` Brian Dolbec
2013-02-27  1:40         ` W. Trevor King
2013-02-27  2:35           ` Brian Dolbec
2013-02-27  2:41             ` Matt Turner

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20130412011158.GB17116@odin.tremily.us \
    --to=wking@tremily.us \
    --cc=gentoo-catalyst@lists.gentoo.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox