public inbox for gentoo-soc@lists.gentoo.org
 help / color / mirror / Atom feed
* [gentoo-soc] Auto dependency builder progress report. Week 7.
@ 2011-07-14  6:22 Александр Берсенев
  2011-07-15 15:31 ` Donnie Berkholz
  0 siblings, 1 reply; 5+ messages in thread
From: Александр Берсенев @ 2011-07-14  6:22 UTC (permalink / raw
  To: gentoo-soc

What has been done this week:
- exec* call handling: execl, execlp, execle, execv, execvp, execvpe,
execve, system
- tests for all exec* calls
- fixed a bug with setenv and multithreading. I developed own setenv
function to fix it
- handling mmap call
- a function get_deps(pkg) has been developed. It returns a list of
installed dependencies for package, installed dependencies of
dependencies, etc.
- changes in file structure of my project

What I plan to do next:
- filter packages which are part of system profile in output
- filter packages which having files accessed only, but not readed or
writed or executed.
- highlight packages, used during package building but not listed in
dependency lists of any level
- think about python versions in dependencies.
- produce a log file with all events and data about environment to
send it on central storage.

Best,
Alexander Bersenev



^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [gentoo-soc] Auto dependency builder progress report. Week 7.
  2011-07-14  6:22 [gentoo-soc] Auto dependency builder progress report. Week 7 Александр Берсенев
@ 2011-07-15 15:31 ` Donnie Berkholz
  2011-07-15 16:29   ` Александр Берсенев
  0 siblings, 1 reply; 5+ messages in thread
From: Donnie Berkholz @ 2011-07-15 15:31 UTC (permalink / raw
  To: gentoo-soc

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

On 06:22 Thu 14 Jul     , Александр Берсенев wrote:
> - filter packages which are part of system profile in output

Can you make this optional? If I'm working on a system-level package, I 
might want to keep track of some of its system dependencies.

> - filter packages which having files accessed only, but not readed or
> writed or executed.

Why does this happen, anyway?

> - highlight packages, used during package building but not listed in
> dependency lists of any level

For DEPEND rather than RDEPEND ones, we'll want to make sure they're 
definitely listed in dependencies of the ebuild being used, rather than 
any level.

> - think about python versions in dependencies.
> - produce a log file with all events and data about environment to
> send it on central storage.
> 
> Best,
> Alexander Bersenev
> 

-- 
Thanks,
Donnie

Donnie Berkholz
Admin, Summer of Code
Gentoo Linux and X.Org
Blog: http://dberkholz.com


[-- Attachment #2: Type: application/pgp-signature, Size: 198 bytes --]

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [gentoo-soc] Auto dependency builder progress report. Week 7.
  2011-07-15 15:31 ` Donnie Berkholz
@ 2011-07-15 16:29   ` Александр Берсенев
  2011-07-15 18:54     ` Donnie Berkholz
  0 siblings, 1 reply; 5+ messages in thread
From: Александр Берсенев @ 2011-07-15 16:29 UTC (permalink / raw
  To: gentoo-soc

2011/7/15 Donnie Berkholz <dberkholz@gentoo.org>:
> On 06:22 Thu 14 Jul     , Александр Берсенев wrote:
>> - filter packages which are part of system profile in output
>
> Can you make this optional? If I'm working on a system-level package, I
> might want to keep track of some of its system dependencies.
Yes, this is already optional. I am trying to shrink an output, but
there is --verbose key to show all packages, including "unknown"
package and unknown stages and also there is --files key to show not
only packages and stages, but also files accessed(including not
founded and blocked).

I think in most cases filtering system packages from output is useful
because this packages almost never listed in dependencies and user has
them installed in general case.

>> - filter packages which having files accessed only, but not readed or
>> writed or executed.
>
> Why does this happen, anyway?
>
This is very rare case, for example when program scans a directory.
I've seen this for one or two times only.

I am trying to get rid from non-dependency packages in output. Here is
few examples.
All non-system packages when "emerge lsof":
dev-lang/python-3.1.3-r1
<many files here>
dev-libs/openssl-1.0.0d                 : ['unpack', 'compile',
'test', 'install']
  /etc/sandbox.d/10openssl                                 readed
media-libs/fontconfig-2.8.0-r1          : ['unpack', 'compile',
'test', 'install']
  /etc/sandbox.d/37fontconfig                              readed
net-zope/zope-fixers-1.0                : ['setup', 'unpack',
'compile', 'test', 'install', 'preinst', 'postinst', 'prerm',
'postrm']
  /usr/lib64/python3.1/site-packages/zope.fixers-1.0-py3.1-nspkg.pth readed
net-zope/zope-interface-3.6.2           : ['setup', 'unpack',
'compile', 'test', 'install', 'preinst', 'postinst', 'prerm',
'postrm']
  /usr/lib64/python3.1/site-packages/zope.interface-3.6.2-py3.1-nspkg.pth readed
sys-apps/sandbox-2.5                    : ['unpack', 'compile',
'test', 'install']
  /etc/sandbox.d/00default                                 readed
  /etc/sandbox.conf                                        readed
  /usr/share/sandbox/sandbox.bashrc                        readed

Openssl and fontconfig is here because /etc/sandbox.d/* is readed. I
think about filtering this directory from logging. Python is here
because it is not a part of system set. I don't know about zope-*
packages and why they have files readed.

While I do emerge bash I got more packages:
sys-devel/crossdev-20110310             : ['compile']
  /usr/share/config.site                                   readed
  /usr/share/crossdev/include/site/linux                   readed
sys-devel/gettext-0.18.1.1-r2           : ['compile']
  /usr/bin/msgmerge                                        readed
  /usr/bin/xgettext                                        readed
  /usr/bin/msgfmt                                          readed
  /usr/bin/gmsgfmt                                         readed

Gettext is a dependency of bash, but crossdev is unknown package.

>> - highlight packages, used during package building but not listed in
>> dependency lists of any level
>
> For DEPEND rather than RDEPEND ones, we'll want to make sure they're
> definitely listed in dependencies of the ebuild being used, rather than
> any level.

The main drawback of hooklib approach is an inability to track what
files have been loaded while exec call(runtime libraries). Most
RDEPENDS are naturally filtered here. Fusefs approach logs all file
system events.

This is a difficult problem to distinguish RDEPENDS from DEPENDS. If I
look on files accessed I can say if the dependency is runtime, but I
haven't general strategy. I should watch more building logs of various
packages to find a way.

Best,
Alexander Bersenev



^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [gentoo-soc] Auto dependency builder progress report. Week 7.
  2011-07-15 16:29   ` Александр Берсенев
@ 2011-07-15 18:54     ` Donnie Berkholz
  2011-07-15 20:08       ` Jesus Rivero (Neurogeek)
  0 siblings, 1 reply; 5+ messages in thread
From: Donnie Berkholz @ 2011-07-15 18:54 UTC (permalink / raw
  To: gentoo-soc

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

On 16:29 Fri 15 Jul     , Александр Берсенев wrote:
> 2011/7/15 Donnie Berkholz <dberkholz@gentoo.org>:
> > For DEPEND rather than RDEPEND ones, we'll want to make sure they're 
> > definitely listed in dependencies of the ebuild being used, rather 
> > than any level.
> 
> The main drawback of hooklib approach is an inability to track what
> files have been loaded while exec call(runtime libraries). Most
> RDEPENDS are naturally filtered here. Fusefs approach logs all file
> system events.
> 
> This is a difficult problem to distinguish RDEPENDS from DEPENDS. If I
> look on files accessed I can say if the dependency is runtime, but I
> haven't general strategy. I should watch more building logs of various
> packages to find a way.

You might be able to use src_test for this. If a package is accessed in 
src_test as well as src_configure/src_compile, it's RDEPEND. Clearly 
this won't work when src_test isn't defined, but it's a start.

-- 
Thanks,
Donnie

Donnie Berkholz
Admin, Summer of Code
Gentoo Linux and X.Org
Blog: http://dberkholz.com


[-- Attachment #2: Type: application/pgp-signature, Size: 198 bytes --]

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [gentoo-soc] Auto dependency builder progress report. Week 7.
  2011-07-15 18:54     ` Donnie Berkholz
@ 2011-07-15 20:08       ` Jesus Rivero (Neurogeek)
  0 siblings, 0 replies; 5+ messages in thread
From: Jesus Rivero (Neurogeek) @ 2011-07-15 20:08 UTC (permalink / raw
  To: gentoo-soc

On Fri, Jul 15, 2011 at 2:54 PM, Donnie Berkholz <dberkholz@gentoo.org> wrote:
> On 16:29 Fri 15 Jul     , Александр Берсенев wrote:
>> 2011/7/15 Donnie Berkholz <dberkholz@gentoo.org>:
>> > For DEPEND rather than RDEPEND ones, we'll want to make sure they're
>> > definitely listed in dependencies of the ebuild being used, rather
>> > than any level.
>>
>> The main drawback of hooklib approach is an inability to track what
>> files have been loaded while exec call(runtime libraries). Most
>> RDEPENDS are naturally filtered here. Fusefs approach logs all file
>> system events.
>>
>> This is a difficult problem to distinguish RDEPENDS from DEPENDS. If I
>> look on files accessed I can say if the dependency is runtime, but I
>> haven't general strategy. I should watch more building logs of various
>> packages to find a way.
>
> You might be able to use src_test for this. If a package is accessed in
> src_test as well as src_configure/src_compile, it's RDEPEND. Clearly
> this won't work when src_test isn't defined, but it's a start.
>
RDEPEND will be tricky to get right, but I like this approach, could
work for those packages with tests.
We are going to discuss an approach for this and for the filtering of
@system, as we need to find a way to get rid of second-hand deps.

> --
> Thanks,
> Donnie
>
> Donnie Berkholz
> Admin, Summer of Code
> Gentoo Linux and X.Org
> Blog: http://dberkholz.com
>
>



-- 
Jesus Rivero (Neurogeek)
Gentoo Developer



^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2011-07-15 20:08 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-07-14  6:22 [gentoo-soc] Auto dependency builder progress report. Week 7 Александр Берсенев
2011-07-15 15:31 ` Donnie Berkholz
2011-07-15 16:29   ` Александр Берсенев
2011-07-15 18:54     ` Donnie Berkholz
2011-07-15 20:08       ` Jesus Rivero (Neurogeek)

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox