Add a bunch of new projects:

- Port OpenBSD's sensors framework
- lint(1) improvements from OpenBSD
- Port prebind from OpenBSD
- Add hashed .db support to pkg_tools

Submitted by:	netchild [1-3]
Submitted by:	kris [4]
This commit is contained in:
Joel Dahl 2007-02-21 23:09:54 +00:00
parent f1ef0dbdd4
commit 32123a8d79
Notes: svn2git 2020-12-08 03:00:23 +00:00
svn path=/www/; revision=29628

View file

@ -1,6 +1,6 @@
<!DOCTYPE HTML PUBLIC "-//FreeBSD//DTD HTML 4.01 Transitional-Based Extension//EN" [ <!DOCTYPE HTML PUBLIC "-//FreeBSD//DTD HTML 4.01 Transitional-Based Extension//EN" [
<!ENTITY base CDATA "../.."> <!ENTITY base CDATA "../..">
<!ENTITY date "$FreeBSD: www/en/projects/ideas/index.sgml,v 1.89 2007/02/17 10:52:21 joel Exp $"> <!ENTITY date "$FreeBSD: www/en/projects/ideas/index.sgml,v 1.90 2007/02/19 18:01:05 danger Exp $">
<!ENTITY title "FreeBSD list of projects and ideas for volunteers"> <!ENTITY title "FreeBSD list of projects and ideas for volunteers">
<!ENTITY % navinclude.developers "INCLUDE"> <!ENTITY % navinclude.developers "INCLUDE">
<!ENTITY % developers SYSTEM "../../developers.sgml"> %developers; <!ENTITY % developers SYSTEM "../../developers.sgml"> %developers;
@ -51,7 +51,7 @@
<h3>File System</h3> <h3>File System</h3>
<ul> <ul>
<li><a href="#p-extenddump">Extend UFS2 dump/restore support</a></li> <li><a href="#p-extenddump">Extend dump/restore (extended attributes)</a></li>
<li><a href="#p-mdfs">MDFS lockups</a></li> <li><a href="#p-mdfs">MDFS lockups</a></li>
<li><a href="#p-tmpfs">TMPFS</a></li> <li><a href="#p-tmpfs">TMPFS</a></li>
</ul> </ul>
@ -72,6 +72,7 @@
<li><a href="#p-busalloc">New bus_alloc_resources() API.</a></li> <li><a href="#p-busalloc">New bus_alloc_resources() API.</a></li>
<li><a href="#p-pcihotplug">PCI-Hotplug support</a></li> <li><a href="#p-pcihotplug">PCI-Hotplug support</a></li>
<li><a href="#p-psched">Pluggable Disk Scheduler</a></li> <li><a href="#p-psched">Pluggable Disk Scheduler</a></li>
<li><a href="#p-sensors">Port OpenBSD's sensors framework</a></li>
<li><a href="#p-trussprocfs">Remove procfs dependencies</a></li> <li><a href="#p-trussprocfs">Remove procfs dependencies</a></li>
<li><a href="#p-syncer">Rewrite the in-kernel file system syncer</a></li> <li><a href="#p-syncer">Rewrite the in-kernel file system syncer</a></li>
<li><a href="#p-suspend">Suspend to disk</a></li> <li><a href="#p-suspend">Suspend to disk</a></li>
@ -94,6 +95,7 @@
<h3>Ports</h3> <h3>Ports</h3>
<ul> <ul>
<li><a href="#p-ports-db">Add hashed .db support to pkg_tools</a></li>
<li><a href="#p-ports-uid">Automatic registering of UID and GID</a></li> <li><a href="#p-ports-uid">Automatic registering of UID and GID</a></li>
<li><a href="#p-ports-cleanup-use">Cleanup of USE and WITH variables</a></li> <li><a href="#p-ports-cleanup-use">Cleanup of USE and WITH variables</a></li>
<li><a href="#p-ports-comp43tty">COMPAT_43TTY</a></li> <li><a href="#p-ports-comp43tty">COMPAT_43TTY</a></li>
@ -113,11 +115,13 @@
<ul> <ul>
<li><a href="#p-bsdelftools">BSD-licensed ELF Tools</a></li> <li><a href="#p-bsdelftools">BSD-licensed ELF Tools</a></li>
<li><a href="#p-noswitches">Build options improvements</a></li> <li><a href="#p-noswitches">Build options improvements</a></li>
<li><a href="#p-lint">lint(1) improvements from OpenBSD</a></li>
<li><a href="#p-libprocnet">Libprocstat and libnetstat</a></li> <li><a href="#p-libprocnet">Libprocstat and libnetstat</a></li>
<li><a href="#p-multibyte">Multibyte collation support</a></li> <li><a href="#p-multibyte">Multibyte collation support</a></li>
<li><a href="#p-ndmp">NDMP data server</a></li> <li><a href="#p-ndmp">NDMP data server</a></li>
<li><a href="#p-performancetracking">Performance tracking</a></li> <li><a href="#p-performancetracking">Performance tracking</a></li>
<li><a href="#p-libumem">Port libumem to FreeBSD</a></li> <li><a href="#p-libumem">Port libumem to FreeBSD</a></li>
<li><a href="#p-prebind">Port prebind from OpenBSD</a></li>
<li><a href="#p-pxeinstaller">PXE Installer</a></li> <li><a href="#p-pxeinstaller">PXE Installer</a></li>
<li><a href="#p-regression">Regression testing system</a></li> <li><a href="#p-regression">Regression testing system</a></li>
<li><a href="#p-sysinstall">Sysinstall</a></li> <li><a href="#p-sysinstall">Sysinstall</a></li>
@ -138,12 +142,17 @@
<!------------------------------------------------------------------> <!------------------------------------------------------------------>
<a name="p-extenddump"></a> <a name="p-extenddump"></a>
<h2>Extend UFS2 dump/restore support for UFS2</h2> <h2>Extend dump/restore (extended attributes)</h2>
<p>The UFS2 file system in FreeBSD supports extended attributes. Extended <p>The UFS2 file system in FreeBSD supports extended attributes. Extended
attributes are meta-data associated with vnodes representing files and attributes are meta-data associated with vnodes representing files and
directories. Unfortunately dump and restore do not backup or restore directories. Unfortunately dump and restore do not backup or restore
such attributes. People interested in this should contact <a such attributes. People interested in this should contact <a
href="mailto:mckusick@FreeBSD.org">&a.mckusick;</a>.</p> href="mailto:mckusick@FreeBSD.org">&a.mckusick;</a>.</p>
<p>Furthermore a performance evaluation of the split cache (as is) and
an unified cache (like e.g. NetBSD) would be interesting. More details
in <a
href="http://lists.freebsd.org/pipermail/freebsd-hackers/2007-February/019666.html">
this</a> mail to the hackers mailing-list.</p>
<p><strong>Requirements</strong>:</p> <p><strong>Requirements</strong>:</p>
<ul> <ul>
<li>Knowledge of C programming.</li> <li>Knowledge of C programming.</li>
@ -496,6 +505,28 @@
<hr> <hr>
<a name="p-sensors"></a>
<h2>Port OpenBSD's sensors framework</h2>
<p><strong>References</strong>: <a
href="http://www.openbsd.org/papers/bsdcan06-biosensors.pdf">Overview</a>,
<a href="http://www.openbsd.org/cgi-bin/cvsweb/src/usr.sbin/sensorsd/">
http://www.openbsd.org/cgi-bin/cvsweb/src/usr.sbin/sensorsd/</a>,
<a href="http://www.openbsd.org/cgi-bin/cvsweb/src/sbin/bioctl/">
http://www.openbsd.org/cgi-bin/cvsweb/src/sbin/bioctl/</a>, <a
href="http://www.openbsd.org/cgi-bin/cvsweb/src/sys/scsi/safte.c">
http://www.openbsd.org/cgi-bin/cvsweb/src/sys/scsi/safte.c</a></p>
<p>The OpenBSD sensors framework is an unified way of handling
any kind of hardware sensor one can image. A sensor driver collects
data from system sensors, SAS devices, harddisks, ... and allows an
administrator to query the data with the unified management interface.</p>
<p><strong>Requirements</strong>:</p>
<ul>
<li>Ability to read and understand foreign C code.</li>
<li>Ability to write C code.</li>
</ul>
<hr>
<a name="p-trussprocfs"></a> <a name="p-trussprocfs"></a>
<h2>Remove procfs dependencies</h2> <h2>Remove procfs dependencies</h2>
<p><strong>Technical contact</strong>: <a <p><strong>Technical contact</strong>: <a
@ -802,6 +833,31 @@
<!- Ports -> <!- Ports ->
<!------------------------------------------------------------------> <!------------------------------------------------------------------>
<a name="p-ports-db"></a>
<h2>Add hashed .db support to pkg_tools</h2>
<p><strong>Technical contact</strong>: <a
href="mailto:kris@FreeBSD.org">&a.kris;</a></p>
<p>pkg_create(1) and friends use flat databases (aka ordinary
files and directories in /var/db/pkg) to maintain their data. This
makes it cumbersome and/or impossible to do efficient lookups of data
on installed packages and makes certain operations very slow.
portupgrade has the right idea of hashing this into a berkeley db
file, but it uses tools that are not in the base system (ruby).</p>
<p>A self-contained project would be to add similar (preferably
compatible) code into pkg_tools directly, possibly also extending
the data that is stored and allowing for more flexible querying with
tools like pkg_info (e.g. replicating the pkg_which utility of
portupgrade). Adding mutual exclusion to protect concurrent
pkg_add/delete operations from corrupting database state is also
important.</p>
<p><strong>Requirements</strong>:</p>
<ul>
<li>Knowledge of C.</li>
<li>Basic understanding of the use of berkeley db.</li>
</ul>
<hr>
<a name="p-ports-uid"></a> <a name="p-ports-uid"></a>
<h2>Automatic registering of UID and GID</h2> <h2>Automatic registering of UID and GID</h2>
<p>Some sort of mechanism for adding/removing users/groups automatically, <p>Some sort of mechanism for adding/removing users/groups automatically,
@ -1061,6 +1117,17 @@ New tests must be created; existing tests must be completed and updated.
<hr> <hr>
<a name="p-lint"></a>
<h2>lint(1) improvements from OpenBSD</h2>
<p>OpenBSD has some improvements to lint(1) which may be beneficial to
have.</p>
<p><strong>Requirements</strong>:</p>
<ul>
<li>Good knowledge of C.</li>
</ul>
<hr>
<a name="p-libprocnet"></a> <a name="p-libprocnet"></a>
<h2>Libprocstat and libnetstat</h2> <h2>Libprocstat and libnetstat</h2>
<p><strong>Technical contact</strong>: <a <p><strong>Technical contact</strong>: <a
@ -1186,6 +1253,19 @@ New tests must be created; existing tests must be completed and updated.
<hr> <hr>
<a name="p-prebind"></a>
<h2>Port prebind from OpenBSD</h2>
<p>The OpenBSD prebind is a secure implementation of prelinking that
is compatible with address space randomization. Prelinking allows to
speed up application startup when a lot of libraries are involved.
This should show a noticeable effect with e.g. GNOME/KDE.</p>
<p><strong>Requirements</strong>:</p>
<ul>
<li>Good C knowledge (reading and writing).</li>
</ul>
<hr>
<a name="p-pxeinstaller"></a> <a name="p-pxeinstaller"></a>
<h2>PXE Installer</h2> <h2>PXE Installer</h2>
<p>It would be great to have a bundled PXE installer. This would allow one to <p>It would be great to have a bundled PXE installer. This would allow one to