Re: [arch-dev-public] Strange behaviour of pacman

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]



On Tue, 20 Oct 2009 09:48:58 +1000,
Allan McRae <allan@xxxxxxxxxxxxx> wrote:

> Jan de Groot wrote:
> > On Mon, 2009-10-19 at 15:18 -0500, Aaron Griffin wrote:
> >   
> >> Are you saying that the .pyo files are no longer architecture
> >> independent? I was under the assumption they were.
> >>     
> >
> > Actually, they're even python-version specific. Updating python could
> > break the precompiled .pyo files. 
> >   
> 
> And this whole issue was a fairly major source of headaches during the 
> python-2.6 transition...  which is why I started making the python 
> packaging policy to deal with them, although that obviously was never 
> finished with  (in fact, I had never seen the comment with --optimize=1 
> in it).
> 
> Now my main concern about all of this is that .pyc and .pyo files used 
> to contain full paths to where they were created.  That meant they need 
> to be created on the users system and not during the packaging stage.   
> I have not confirmed if this is still the case.
> 
> So the best way to deal with them seems to be:
> 1) touch them during packaging
> 2) generate them during post_install()

I have found a way to automate that which is, I believe, not PKGBUILD-dependant.

Here's what I do in the PKGBUILD:

[...]
install="pyo_remover.install"
[...]
build() {
  [...]
  # Take care of .pyo files
  cd $pkgdir
  echo "post_install() {" > $startdir/$install
  for _i in  $(find . -name '*.pyo'); do
    echo "rm -f "$(echo "$_i" | cut -c2-) >> $startdir/$install
    echo > "$_i"
  done
  echo -e '}\npost_upgrade() {\npost_install $1\n}\n' >>  $startdir/$install
}

pyo_remover.install can be anything, even an empty file. For packages that need a .install file this has to be adapted.

Does this look like a good way to solve the problem?  I know the way I do it for now is kind of ugly, but I think it could be much cleaner if the same kind of thing was done directly by makepkg.

-- 
catwell


[Index of Archives]     [Linux Wireless]     [Linux Kernel]     [ATH6KL]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Share Photos]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Samba]     [Device Mapper]
  Powered by Linux