[arch-dev-public] Strange behaviour of pacman

Daniel Isenmann daniel.isenmann at gmx.de
Mon Oct 19 16:00:10 EDT 2009


On Mon, 19 Oct 2009 14:56:02 -0500
Aaron Griffin <aaronmgriffin at gmail.com> wrote:

> On Mon, Oct 19, 2009 at 2:49 PM, Eric Bélanger
> <snowmaniscool at gmail.com> wrote:
> > On Mon, Oct 19, 2009 at 3:38 PM, Aaron Griffin
> > <aaronmgriffin at gmail.com> wrote:
> >> On Mon, Oct 19, 2009 at 2:21 PM, Daniel Isenmann
> >> <daniel.isenmann at gmx.de> wrote:
> >>> On Mon, 19 Oct 2009 14:08:33 -0500
> >>> Aaron Griffin <aaronmgriffin at gmail.com> wrote:
> >>>
> >>>> On Mon, Oct 19, 2009 at 2:03 PM, Daniel Isenmann
> >>>> <daniel.isenmann at gmx.de> wrote:
> >>>> > On Mon, 19 Oct 2009 14:45:20 -0400
> >>>> > Eric Bélanger <snowmaniscool at gmail.com> wrote:
> >>>> >
> >>>> >> On Mon, Oct 19, 2009 at 2:06 PM, Travis Willard
> >>>> >> <twillard2 at gmail.com> wrote:
> >>>> >> >> As I can see now, these are .pyo files. Are they generate
> >>>> >> >> at runtime or something like that? They are not in the
> >>>> >> >> package.
> >>>> >> >>
> >>>> >> >
> >>>> >> > .pyo files are, I believe, "optimized" python files
> >>>> >> > generated during runtime.
> >>>> >> >
> >>>> >>
> >>>> >> I beleiie so too.  I think there was a thread about how to
> >>>> >> deal with these files.  I think the info is in a wiki article
> >>>> >> about python packaging guidelines. The other remaining file
> >>>> >> is wicd.log wich is generated at runtime too.
> >>>> >
> >>>> > I have nothing found about those files. The article about
> >>>> > python package guidelines is very short. Nothing special about
> >>>> > it.
> >>>> >
> >>>> > The log file is acceptable, but the pyo files are annyoing.
> >>>>
> >>>> I imagine that this only happens with apps run as root (or have
> >>>> write permissions to their install dir).
> >>>>
> >>>> I think the best thing, for the time being, is to do this in a
> >>>> pre_remove (so you have access to pacman -Ql at that time) and do
> >>>> something like:
> >>>>
> >>>> PKGNAME=wicd
> >>>> pre_remove () {
> >>>>     for pyo in $(pacman -Qql $PKGNAME  | grep \.py$ | sed
> >>>> 's|.py$|.pyo|g'); do if [ -f "$pyo" ]; then
> >>>>             rm "$pyo"
> >>>>         fi
> >>>>     done
> >>>> }
> >>>
> >>> Ok, I will do it this way, but shouldn't we have a better
> >>> solution for this for the future?
> >>
> >> Well, the only sane way to do it would be to make sure pacman
> >> tracks the .pyo files by generating them as part of the package
> >> creation process, but I don't even know if that's possible
> >>
> >
> > it's possible. Just create empty files with the same name with
> > 'touch' in the build function.

But then you have to track the files every rebuild, if they really
exists or not.
 
> Looks like python -O py_compile.py foo.py will do this. And it looks
> like setuptools has an --optimize argument. I'd suggest trying this
> 
> python setup.py install --optimize=1 ...other args...

This is the correct parameter:

--optimize (-O)     
also compile with optimization: -O1 for "python -O", -O2 for "python
-OO", and -O0 to disable [default: -O0]

But as the parameter mentioned, it is disabled by
default. :(


More information about the arch-dev-public mailing list