YaST/研究
Contents
- 1 TODO
- 1.1 Make YaST more IPv6 compatible
- 1.2 YaST web user interface
- 1.3 YaST PolicyKit integration
- 1.4 YaST PolicyKit configuration module
- 1.5 YaST Webcam module
- 1.6 Make YaST Independent of YCP
- 1.7 Automatic generation of YCP bindings
- 1.8 Build YaST using cmake
- 1.9 Integrate YaST into KDE 4 SystemSettings
- 1.10 Better Integration into Windows Domain
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.
- There is a current prototype http://svn.opensuse.org/svn/yast/branches/research/ , needs to be ported to the lastest libyui "modular UI" changes
- 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:
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: