Summary

This is an overview of the direction of taking Ubuntu Netbook Remix for Jaunty, and what we wish to implement for it.

The open source components of Ubuntu Netbook Remix (UNR) will be fully integrated into the Jaunty release. An installation image will be created by the distro team using the standard distro tools (ubiquity). The UNR Jaunty image will have the following requirments:

Requirements

Image Format

Hardware Supported

Pre-installed Software

Implementation/Task List

Modification Details

New UNR Packages

The source is available for most of these packages at https://code.edge.launchpad.net/unr. Some packages have not yet been added, but will be shortly.

netbook-config           # bfiller default UNR configuration (gconf settings, etc..)
netbook-launcher         # njpatel UNR launcher
desktop-switcher         # njpatel switch between UNR desktop and gnome
human-netbook-theme      # njpatel default UNR theme
maximus                  # njpatel window maximizer daemon
window-picker-applet     # njpatel window picker panel applet
go-home-applet           # njpatel go home panel applet
webfav                   # bfiller firefox extension to save bookmarks to UNR launcher

UNR seed diff relative to 8.04 Ubuntu Desktop seed

Added:

netbook-config           # bfiller default UNR configuration (gconf settings, etc..)
netbook-launcher         # njpatel UNR launcher
desktop-switcher         # njpatel switch between UNR desktop and gnome
human-netbook-theme      # njpatel default UNR theme
maximus                  # njpatel window maximizer daemon
window-picker-applet     # njpatel window picker panel applet
go-home-applet           # njpatel go home panel applet
webfav                   # bfiller firefox extension to save bookmarks to UNR launcher
icedtea-gcjwebplugin     # java plugin for browser (not sure if needed anymore)
mtp-tools                # Media Transfer Protocol (MTP) library tools?
language-support-en      # default English lang packs
language-pack-en 
language-pack-gnome-en 
ttf-liberation           # default font for web browser
cheese 
stardict 
stardict-gnome 
stardict-plugin 
stardict-plugin-spell 
python-gtkglext1 
python-opengl 
libzlui-gtk 
binutils
powermanagement-interface # needed for reboot-from-update-notifier to work

Removed:

deskbar-applet
evolution-exchange
gimp
gimp-gnomevfs
transmission-gtk
gnome-pilot-conduits
ekiga
nautilus-cd-burner
brasero
sound-juicer
tracker
libdeskbar-tracker
tracker-search-tool
xsane
tsclient
vinagre
gimp-python
diveintopython

Translation Updates

Some applications have expanded translations in the forms of patches. We haven't yet figured out best way to integrate these:

Applications/Desktop Package Modifications

Assignments

Focus on first on patches marked P1, then do P2's. For resolution changes, the approach we want to take is to make the packages dynamically determine screen size, as specified here, and pick the layout to use.

Done

Not Needed

TODO

Out of box experience package modification

Done

Not Needed

TODO

System package modification

acpi-support    0.109netbook0unr1
belocs-locales-bin      2.4-2.2ubuntu7netbook1
bsdutils        1:2.13.1-5ubuntu2netbook1
gdebi   0.3.8netbook1
gdebi-core      0.3.8netbook1
gnome-power-manager     2.22.1-1ubuntu4netbook4
gnome-utils     2.20.0.1-1ubuntu5netbook0unr1
gnome-volume-manager    2.22.1-1ubuntu6netbook4
grub    0.97-29ubuntu21netbook3
hal     0.5.11~rc2-1ubuntu8.2netbook2
initramfs-tools 0.85eubuntu39.2netbook1
jockey-common   0.3.3-0ubuntu8netbook1
jockey-gtk      0.3.3-0ubuntu8netbook1
libsmbios1      0.13.10-1ubuntu1.1netbook1
lsb-base        3.2-4ubuntu1netbook1
lsb-release     3.2-4ubuntu1netbook1
mount   2.13.1-5ubuntu2netbook1
procps  1:3.2.7-9ubuntu1netbook0unr3
update-notifier 0.70.9netbook1
update-notifier-common  0.70.9netbook1
util-linux      2.13.1-5ubuntu2netbook1
util-linux-locales      2.13.1-5ubuntu2netbook1
xserver-xorg-input-kbd  1:1.2.2-3ubuntu1netbook1
xserver-xorg-input-mouse        1:1.2.3-2netbook1
libpolkit-gnome0        0.7-2ubuntu1.1usg2
policykit-gnome 0.7-2ubuntu1.1usg2
sysklogd        1.5-1ubuntu1usg2
ssl-cert        1.0.14-0ubuntu3~msg1
xserver-xorg-input-synaptics    0.14.7~git20070706-1ubuntu4msg1
libdrm2 2.3.0.16-0ubuntu2~804um1

System Packages With Debdiffs

policykit-gnome:

belocs:

System Packages Not Being Integrated

gdebi:

gnome-utils

grub

initramfs-tools

jockey-common, jockey-gtk:

libdrm:

libsmbios:

lsb:

procps:

ssl-cert:

sysklogd:

update-notifier:

util-linux:

xserver-xorg-input-kbd:

xserver-xorg-input-mouse:

xfree86-driver-synaptics xserver-xorg-input-synaptics:

acpi-support

gnome-volume-manager:

gnome-power-manager

System Packages Still Under Review

hal:

Kernel modifications

The current Netbook Kernel , based on 2.6.24, is maintained on zinc. The full set of patches can be determined from there.

Sample Text for Sending Resolution Changes

Several of the above customizations are changes to make the app work in a smaller resolution. But they are all hard-coded, which is not very upstreamable. To get these changes in, we have to make the patches be clever, and do different things based on the resolution of the screen. This will need upstream's approval, since it is often a somewhat new thing to be doing, and they may have their own ideas.

We think that dynamically changing behavior based on asking GDK for the screen size is probably the best solution. So I've written up some sample text for sending to the maintainers of software to get their opinion on such an approach.

First, you should take a stab at adapting your patch to be dynamic (see example code for how below). We should also probably start the process of pushing such patches to StevenK, since if we gated on upstream comments, we'd miss the boat.

However, we should get upstream involved as early as possible, so if they do quickly respond, we can react. So, next you should file a bug on their tracker, with something like the following (obviously please replace the uppercase parts with relevant text):

In the process of developing the Ubuntu Netbook Remix, with the smaller screens of netbooks in mind, I wrote a patch to make YOURAPP work with less pixels.

A QUICK SUMMARY OF BUG + PATCH, AND ATTACH THE PATCH

Now, this patch originally used hard-coded changes, because we were only targeting smaller screens.  But I've modified it to check the resolution dynamically.

How interested are you in making such a resolution-dependent change?

By way of example, something like this is a simple way to check the screen size:

gtk_widget_realize (w);
s = gtk_widget_get_screen (w);
height = gdk_screen_get_height (s);
if (height <= 600)
  g_object_set (G_OBJECT (w), "height-request", 300, NULL);

YOU MAY WANT TO CUSTOMIZE THE ABOVE CODE TO BE RELEVANT TO YOUR PATCH, BUT I THINK THEY'D GET THE IDEA ANYWAY

If the above doesn't excite you, maybe a gconf key?  Something like /apps/YOURAPP/small-screen = true to toggle the resolution choices.

Since bugs are notorious for lying around unexamined, we are in something of a rush, and the above suggestion may be controversial, it's probably a good idea to email the mailing list too. Here's some sample text for that (again, obviously replace uppercase text):

Dear Gentle Maintainers,

I recently filed bug XXXXXX (URL) about a patch I wrote to make YOURAPP look good on smaller screens.  But since the bug involves a discussion item about how best to notice whether the screen is small or not, I thought I'd bring it up on the mailing list as well.

To recap, I'm proposing that YOURAPP become resolution-aware and take different code paths based on the size of the screen.  For example:

gtk_widget_realize (w);
s = gtk_widget_get_screen (w);
height = gdk_screen_get_height (s);
if (height <= 600)
  g_object_set (G_OBJECT (w), "height-request", 300, NULL);

What do you think?

Release Note

Open Issues

BoF agenda and discussion

Specs/JauntyUNR (last edited 2009-03-02 23:31:43 by c-98-229-129-45)