Add four new ports related entries:

1) Collect the pkg-message output in dependencies and display it after the
   build finish
2) Parallelization of the Ports Collection (this one is suitable as SoC
   project)
3) UPDATING parser, kind of a junior task
4) portupgrade in base thing

Discussed with:	cperciva and others

Also change technical contact for COMPAT_43TTY task to Ed Maste, who's actively
working on it.
This commit is contained in:
Pav Lucistnik 2007-03-18 16:38:50 +00:00
parent 9f255a118c
commit ec5f057e17
Notes: svn2git 2020-12-08 03:00:23 +00:00
svn path=/www/; revision=29819

View file

@ -15,7 +15,7 @@ Ideas//EN"
<ideas>
<cvs:keywords xmlns:cvs="http://www.FreeBSD.org/XML/CVS" version="1.0">
<cvs:keyword name="freebsd">
$FreeBSD: www/en/projects/ideas/ideas.xml,v 1.14 2007/03/17 09:48:31 joel Exp $
$FreeBSD: www/en/projects/ideas/ideas.xml,v 1.15 2007/03/18 02:28:50 murray Exp $
</cvs:keyword>
</cvs:keywords>
@ -1056,12 +1056,41 @@ of other syscalls.</p>
</desc>
</idea>
<idea id="ports-collect-messages">
<title>Collect the pkg-message output</title>
<desc>
<p><strong>Technical contact</strong>: <a
href="mailto:pav@FreeBSD.org">Pav Lucistnik</a></p>
<p>Collect the pkg-message output of dependencies and print them together
after the whole build finishes.</p>
<p>Details: Change the current ad-hoc way of including pkg-message in
the stdout of the build process. Automatically display pkg-message
in post-install, if present. For the dependencies, save the copies
of pkg-messages, as displayed in post-install, in /var/db/pkg, and
display them collectively once the whole build finishes. Also
allow for manual review by user later (new flag to
pkg_info(1)).</p>
<p><strong>Requirements:</strong></p>
<ul>
<li>Knowledge of shell and make coding, and basic overview of how
ports works.</li>
<li>Basic knowledge of C.</li>
</ul>
</desc>
</idea>
<idea id="ports-comp43tty">
<title>COMPAT_43TTY</title>
<desc>
<p><strong>Technical contact</strong>: <a
href="mailto:gbell72@rogers.com">Gardner Bell</a></p>
href="mailto:ed@fxq.nl">Ed Schouten</a></p>
<p>Some ports may break when removing COMPAT_43TTY from the kernel
configuration since they assume old ioctl's when they identify
FreeBSD. The goal of this entry is to:</p>
@ -1072,6 +1101,7 @@ of other syscalls.</p>
from Kris Kennaway might also be good starting points.</li>
<li>Fix breakages and send patches upstream.</li>
</ul>
<p><strong>Note</strong>: Ed is working on this. Please coordinate with him.</p>
<p><strong>Requirements</strong>:</p>
<ul>
<li>Knowledge of autotools.</li>
@ -1134,6 +1164,102 @@ of other syscalls.</p>
</desc>
</idea>
<idea class="soc" id="ports-parallel">
<title>Parallelization in the Ports Collection</title>
<desc>
<p><strong>Technical contact</strong>: <a
href="mailto:pav@FreeBSD.org">Pav Lucistnik</a></p>
<p>Add locking of write access to PKG_DBDIR (/var/db/pkg), to allow
several port builds run in parallel without clobbering the package
data. Should be done both in makefiles and in C tools like
pkg_install and pkg_delete. A simple flock(2) approach over the
whole database comes to mind.</p>
<p>The next step is the parallelization of dependency building. Have
the port build it's dependencies in parallel, automatically
depending on number of CPUs in the machine, or manually specified
by user (make -j3 install clean). Some kind of split screen should
be devised, so user can easily watch the process and interact with
it (make config screens, for example). Attention must be paid to
prevent deadlocks.</p>
<p>Allow for situation when two ports want to build and install
common dependency. One of the ports have to wait on the other to
install it before proceeding.</p>
<p>And finally, unrelated to previous steps, but also desirable. Add
parallelization inside single builds, ie. enable -jX flag inside
vendor makefiles. This will allow us to exploit the power of
multi-core systems when building single port. Because a lot of
vendor code does not work correctly when built with -jX flag, some
kind of whitelist or blacklist must be implemented.</p>
<p><strong>Requirements</strong>:</p>
<ul>
<li>Strong knowledge of make and shell code.</li>
<li>Strong knowledge of C code.</li>
<li>Good understanding of the inner design of the Ports Collection.</li>
</ul>
</desc>
</idea>
<idea id="ports-updating">
<title>UPDATING parser and displayer</title>
<desc>
<p>Write a small C/shell app that will scan the installed ports and
show all UPDATING entries that affect one of the installed ports,
and are relevant on the given machine (ie. user haven't already performed the update).
Possibly the UPDATING format will have to be expanded to record the
versions of affected ports, like:</p>
<p>gettext&lt;0.16 -> gettext&gt;=0.16</p>
<p>The app will be used standalone, and called from pkg_version or
portupgrade.</p>
<p><strong>Requirements</strong>:</p>
<ul>
<li>Basic shell/C coding.</li>
</ul>
</desc>
</idea>
<idea id="ports-upgrade">
<title>Utility for safe updating of ports in base system</title>
<desc>
<p>Also known as <em>rewrite portupgrade in C</em>.</p>
<p>Write a new utility for the pkg_install suite, possibly named
pkg_upgrade(1), implementing a subset of existing portupgrade
functionality. The required functionality is:</p>
<ul>
<li>fixing @pkgdep records in +CONTENTS file</li>
<li>fixing +REQUIRED_BY records</li>
<li>storing old copies of shared libraries after shmajor number
change in /usr/local/lib/compat/pkg</li>
<li>upwards and downwards recursive modes</li>
</ul>
<p>Anything that existing portupgrade can do is a desired
functionality. It would be nice to be command line compatible with
portupgrade, but it's not a requirement.</p>
<p><strong>Requirements</strong>:</p>
<ul>
<li>Basic understanding of the Ports Collection design.</li>
<li>Good skills writing C code.</li>
<li>Ability to read Ruby will help.</li>
</ul>
</desc>
</idea>
</category>
<category>