YaST/研究

< YaST(Redirected from YaST/Research)
Jump to: navigation, search

Susemini.png 本文处于需要翻译的文章的状态,欢迎您积极参与翻译与修订。 翻译人员:无,修订人员:无。

TODO

  • Provide steps how to update this page
  • link old projects and tmp branch

Make YaST more IPv6 compatible

Now YaST is not able to set up static IPv6 routes and not able to setup IPv6 tunnel. Student should make YaST network module able to setup static IPv6 configuration and create a new one IPv6 tunnel configuration module.

This module should be able to setup basic IPv6 tunnels.

  • AYIYA
  • 6to4
  • 6in4
  • Heartbeat

That AYIYA and Heartbeat should have be compatible with SixXS broker, but there could be possibility to change to other providers. 6in4 should be able to handle all providers but a few providers can be mentioned in help. 6to4 is anycast using tunnel.

Required knowledge: YCP, IPv6 routing, iproute2, aiccu

Skill level: medium

Willing mentors: Maybe mzugec, maintainer of yast2-network, kmachalkova, maintainer of yast2-network and yast2-heartbeat

YaST web user interface

YaST is a power component framework that can interact with components written in different languages, and it is the only successful 1:1 system management tool.

In the age of web 2.0, we would like to bring YaST a web user interface. This means:

  • Figuring out which approach to use
    • Rewrite modules user interface (generate a prototype for some) and use the YaST components.
    • Make current modules to work, by leveraging the pluggable user interface and something like the Witty toolkit.
    • Figure out issues like sessions, concurrency, etc.

Required knowledge: C++, some AJAX, a web-toolkit would be good, YaST2 useful

Skill level: hard

Willing mentors: michael dot meeks at novell.com


YaST PolicyKit integration

YaST right now assumes you are root.

  • Define a framework to leverage something like policykit to allow YaST to perform tasks without being root, based on system policy definitions.

Required knowledge: C++, D-BUS, YaST2, ycp useful

Skill level: hard

Willing mentors:

YaST PolicyKit configuration module

Since PolicyKit get integrated more and more into the system we need a YaST module to edit the policy settings.

There are for example currently already 27 different policy rules for HAL alone (plus may more in other tools in the future). We need a way for the admins to change the rules to allow/disallow e.g. the user to suspend, change the CPU frequency or mount internal/external volumes.

Required knowledge: PolicyKit, ycp useful

Skill level: easy

Willing mentors:

Notes: Note that there is already prior work in having a GUI to configure PolicyKit: screenshot 1, screenshot 2, screenshot 3. It may not make sense to write a YaST module from scratch.

YaST Webcam module

YaST currently does not provide a generic way to configure your webcam. Listing the detected devices and performing the necessary steps would be part of the module. It has to be developed within the community for testing / feedback and collecting quirks of all existing hardware.

Required knowledge: YCP, Python or Perl, v4l/webcam knowledge

Skill level: medium

Willing mentors: Dirk Mueller

Make YaST Independent of YCP

YaST has its own language which is not very popular. We have support for perl components, and since recently, support for Ruby and Python is here.

  • Now that libyui is independent of YaST, we need to leverage it without YCP, defining nice APIs in popular languages
  • There is a prototype to convert ycp code to xml and then to ruby, which can be used to move _some_ functionality
  • There is a prototype of a MySQL server module written in Python.

Required knowledge: Ruby or Python, C++, YaST2, languages, parsers, compilers

Skill level: hard

Willing mentors: dmacvicar

Automatic generation of YCP bindings

Right now, if you want to access low level libraries from YCP code, you have two options:

  • Create manual bindings, may be with help of /usr/share/YaST2/data/devtools/bin/generateYCPWrappers script. (used by package-bindings and libyui ycp bindings )
  • Wrap your library using swig, and then generate perl bindings from that, and then use the module using YaST perl bindings (libstorage is accessed this way).

This problem could be solved in various ways:

  • Create a SWIG module that allows ycp glue as output.

This approach would get all the swig parsing magic for free.

  • Extend generateYCPWrappers so it could wrap any C library in a easy and automatic way. C++ is not required, as YCP is not object oriented.

Expected result:

Get package bindings or libstorage output which don't depend on perl bindings and are automaticaly updated if the target API changes.

Required knowledge: C++, YaST2, languages

Skill level: medium

Willing mentors: dmacvicar

Build YaST using cmake

YaST builds using autotools and a automated layer of scripts over that (called y2conf, y2make, etc).

Some modules as libzypp and friends, yast2-qt and ruby bindings build using cmake.

It would be great to build complete YaST using cmake. This would bring benefits like:

  • Access to the CTest test framework
  • out of the box out of source builds
  • Easier and more intuitive.

This task means:

  • making yast2-core to compile using cmake
  • create devtools skeletons for modules and agents using cmake
  • add support for devtools utilities which may break
  • port all modules. (porting 3 would be a challenge, the others is mostly mechanical work once core and some problematic ones compile). Automating the conversion would also be a goal.

Required knowledge: cmake, building, packaging

Skill level: easy

Willing mentors: dmacvicar


Integrate YaST into KDE 4 SystemSettings

Integrate YaST modules into KDE 4 SystemSettings

  • Instead of having two separate applications to configure one's system, integrate the YaST modules into SystemSettings and also eliminate duplicated functionality.

Required knowledge: C++, Qt, YaST2 (?)

Skill level: low or medium (?)

Willing mentors:

Icon-info.png
There is already ongoing effort on a new version of the control center based on System settings concept, but not to integrate with it. http://svn.opensuse.org/svn/yast/branches/tmp/tgoettlicher/yast2cc_rewrite/

Better Integration into Windows Domain

The Samba Client Module allows to join a Windows Domain - but it doesn't allow the mount the users homedirectory automatically or run scripts during login (like the logon scripts on windows). As a result admins must try more than one way to get a Linux Client well integrated in an Windows Domain.

A solution could be to integrate the configuration of pam_mount into the YaST module - or try another way to get the homedirectory of a user mounted automatically during login.

Required knowledge: C++, System knowledge, Qt, YaST2 (?)

Skill level: medium - high

Willing mentors: