CommonCustomizations

Revision 15 as of 2006-06-22 22:15:22

Clear message

Summary

With the many community customization scripts floating around, it is relevant to provide relevant information about the status of integrating the changes these scripts provide in Ubuntu. This page seeks to

  • Examine what these scripts specifically do and how they affect the system
  • Provide a list of suggested improvements inspired by these scripts that may make these scripts unnecessary in the future.
  • Give instructions on how to avoid these scripts and work toward implementing official solutions to the issues that these scripts are addressing.
  • Give an explanation of why there are some packages that Ubuntu cannot or will not adopt.

This page is a result of the Common Customizations BOF at the Ubuntu Paris Summit, June 2006.

BR Anchor

Dissection of community scripts and how-tos

EasyUbuntu

Easy Ubuntu is a community script, maintained at http://easyubuntu.freecontrib.org/ It uses a GUI to allow the user to choose to do the following:

  • Swapping totem-xine for totem-gstreamer
    • we believe this is now obsolete; totem-gstreamer should work as well and is more flexible
  • Freecodes
  • libdvdcss
    • installs libdvdcss package
    • cannot be adopted. See explanation below.

* midi

  • installs timidity, timidity-interfaces-extra and freepats: midi playback in the desktop still doesn't seem to work, but selecting a midi file in firefox will launch timidity in the background (Soren: i think there's some sort of integration between alsa and timidity available that emulates a midi playback device which in turn sends the midi stream to timidity.) dsilvers: Indeed there is, and it's documented in the timididy README.Debian so it needs to be made easier(default when there's no hardware midi device available?) perhaps?
  • too large to include on the CD
  • timidity already depends on freepats

* Flash

  • We already have flashplugin-nonfree -- do we need more?
  • already in Gnome Application Installer (g-a-i)
  • gnash is supposedly getting better support for newer SWF features -- may be useful for amd64 systems in the future
  • Java
    • Installs non-free Java
    • Is there a suitable free implementation?
    • We ship free java in main, but it isn't generally useful for running popular apps
  • Videos -- embedded into web pages
    • installs totem-gstreamer-firefox-plugin and kaffeine-mozilla
    • totem-gstreamer-firefox-plugin has proven unstable in the past, but is under consideration for Edgy already
    • mozilla-mplayer from multiverse (or something like that) is working quite nicely for some
  • RAR (support for proprietary file compression format)
    • installs non-free rar tools
  • ACE (support for proprietary file compression format)
    • the free version of rar doesn't even support listing the content of an archiveACE - installs unace from universe
    • file-roller doesn't seem to integrate with it, so only command-line support
  • Repository list
  • Fonts
    • installs msttcorefonts (non-free), gsfonts-x11 (free, but useful?), xfonts-intl-european (free, but useful?)
    • Expect that most users benefit from msttcorefonts and the others are noise.
    • the installation of the ms fonts is covered by the desktop guide and we also have got a virtual "application" for it in gnome-app-install
  • DMA - on Breezy, this installed a hardcoded hdparm.conf. On Dapper, it does nothing
    • The Dapper kernel now enables DMA where it is known-safe
  • nvidia video drivers
    • installs non-free driver and correctly enables
  • ati video drives
    • installs non-free driver, doesn't seem to enable
  • wengo (free SIP phone)
    • installs package from Universe
    • in gnome-app-install for those who want it
  • skype - installs non-free package
    • Investigate adding skype to gnome-app-install

Automatix

Automatix is a community script, maintained at http://www.getautomatix.com/ It does not seem to have source packages in repository, and is written in sh. The german version has some serious issues currently: removes its own files instead of using the packaging system. uses apt-get --force and --assume-yes

It install most of the packages that EasyUbuntu offers as well as the following:

  • Acrobat reader (proprietary .pdf-reader which can be used with Firefox plugin (see below))
    • installs non-free package
    • Is available in gnome-app-install
  • AMSN (a F/OSS chat program that copies the look and feel of MSN Messenger, for those users who are used to that)
    • installs package from universe
    • Is available in gnome-app-install
  • aMule (P2P application)
    • installs package from universe
    • Is available in gnome-app-install
  • avidemux
    • installs package from universe
    • Is available in gnome-app-install
  • backup and restore
  • bittorrent clients
    • installs bittornado and azureus from universe
    • The default bittorrent that comes with Dapper has a far easier GUI so it's more useful for new users
    • azureus is in gnome-app-install
    • doesn't install the GUI for bittornado; what's the point?
  • boot-up manager
  • checkgmail (system tray application which notifies of new mail in gmail)
    • installs checkgmail by downloading hardcoded .debs from Debian (which will be synced to Ubuntu when syncing starts for Edgy...)
    • we already have gmail-notify and kcheckgmail in universe
  • ctrl-alt-del
    • configures GNOME shortcut for ctrl-alt-del to launch gnome-system-monitor (similar to Windows)
    • gconftool-2 -t str --set /apps/metacity/global_keybindings/run_command_9 "<Control><Alt>Delete" && gconftool-2 -t str --set /apps/metacity/keybinding_commands/command_9 "gnome-system-monitor"

    • This key-combination does nothing by default; why not this?
    • Maybe more appropriate to open the logout dialog?
  • DCPP (P2P client) maintained at http://linuxdcpp.berlios.de/

  • Debian Menu
    • enables the Debian menu
    • we don't want this; packages should provide XDG .desktop files instead
  • DVD ripper
    • installs dvdrip (command-line program) from multiverse
  • Eject CD
    • disables tray locking on CD-ROM drive
    • We do better than this in Dapper; HAL sends a signal and the device is unmounted cleanly
  • GAIM beta
    • adds a people.ubuntu.com source to get beta GAIM .debs
    • for use as a msn replacement, more usable than gaim1.5 (offical MSN client has increased functionality)
  • Firefox 1.5 plugins
    • installs Sun Java, Flash, msttcorefonts(?), mozilla-acroread, mozilla-mplayer
    • Sun Java, Flash and msttcorefonts are already in g-a-i
    • mozilla-acroread and mozilla-mplayer should be added
  • Frostwire (P2P client)
    • installed by downloading third party .deb
    • GPL
  • gdesklets (desktop applets for GNOME)
    • installs gdesklets gdesklets-data from universe
    • gdesklets depends on gdesklets-data
    • available in gnome-app-install for those who want it
  • gftp
    • installs gftp from universe, which installs gftp-gtk and gftp-text
    • gftp-gtk is in main and available in gnome-app-install
  • gnomebaker
    • installs gnomebaker from universe
    • is available in gnome-app-install
    • how does this compare to Nautilus/Serpentine?
  • wifi-setup
  • gnomeppp
    • installs gnomeppp
  • listen media manager (http://listengnome.free.fr/)

    • installs third party deb of Listen
  • media players
    • package realplayer in commercial
    • totem-xine is not in g-a-i (totem-gstreamer is)
    • vlc is in g-a-i
    • beep-media-player is in g-a-i
  • nautilus-scripts
    • opens a root terminal in the correct directory
    • opens the selected file in gedit as user root
    • starts the gnome-search-tool with the current path
  • Numlock ON
    • installs numlockx from universe
    • replaces /etc/X11/gdm/Init/Default with a version that runs numlockx
    • should really be part of gnome, in keyboard preferences or something
  • Opera Browser
    • Installs the Sun JRE and other dependencies of Opera
    • Installs a third-party xlibs .deb(!)
    • Adds the Opera .deb repository to sources.list
    • Installs the opera .deb
    • Installs a custom .desktop file
    • Opera should go in the commercial repo (that will handle all dependencies)
  • Programming tools
    • Installs anjuta, bluefish, screem and nvu from universe
    • all of these are in g-a-i
  • Rhythmbox
    • Downloads a pre-release rhythmbox .deb from people.ubuntu.com/~seb128 and installs it
  • Ripper and Tuner
    • Installs streamripper, streamtuner, xmms from universe
    • streamripper: command line tool
    • streamtuner is in g-a-i
    • xmms is in g-a-i
  • Sun Java 1.5 JRE
    • Installs sun-java5-jre from multiverse
    • is in g-a-i
  • Sun Java 1.5 SDK
    • Installs sun-java5-sdk from multiverse
    • is in g-a-i
  • Swiftfox Browser
    • Installs swiftfox (http://www.getswiftfox.com/, a binary firefox build) from a tarball

    • given compelling benchmarks, we would consider building our firefox for 686 instead
  • Swiftfox plugins
    • Installs sun-java5-plugin msttcorefonts acroread mozilla-acroread mplayer-386 mplayer-fonts mozilla-mplayer from multiverse
    • Clobbers totem firefox plugin if it is installed
    • Cannot be included in Ubuntu - see explanation below.
  • Thunderbird 1.5
    • Installs mozilla-thunderbird from main
    • in g-a-i
  • Wine
    • Adds wine.lowvoice.nl repository to sources.list and installs wine package from there
    • Ubuntu a version of Wine in g-a-i
  • XChat
    • Installs xchat, xchat-systray from universe
    • xchat-gnome is rumoured to do what xchat-systray does
  • NVIDIA Cards
    • If a PCI device in a hardcoded list is present:
    • Installs nvidia-glx and l-r-m
    • Runs nvidia-xconfig (which is the wrong thing to do)
    • nvidia-glx should automagically configure itself upon installation
  • Laptop-wifi
    • Installs ndisgtk (a GTK configuration thing for ndiswrapper)
    • Installs network-manager-{gnome,kde} depending on which env you're in when running it.
    • as above

PLF Repositoty

A community repository that offers various controversial packages. Maintained at http://wiki.ubuntu-fr.org/doc/plf, http://plf.zarb.org/

Contains the following:

  • "free" component
    • deCSS
  • "non-free" component
    • realplayer
    • w32codecs

Ubuntu cannot include any of this for copyright reasons (not patents). For further explanation, see below.

Multimedia howto on ubuntuforums by ubuntu_demon

howto found at http://www.ubuntuforums.org/showthread.php?t=186792

Contains instructions on how to install codecs, Java and Flash from multiverse, universe and cipherfunk repositories. Again, Ubuntu cannot include the codecs, Java and Flash is discussed above.

Ubuntu Guide

Another community how-to. Offers instructions on how to enable universe and plf repositories and on how to install many of the above packages as well as the following:

  • Clipboard daemon for GNOME
  • Winpopup (linpopup)
    • Install linpopup from universe
    • Manually create a .desktop in /usr/share/applications
  • Multimedia codecs
    • installs all the gstreamer plugin packages from Ubuntu
    • these are in g-a-i
  • DVD support
    • install libdvdread3 from main
    • Run the install-css.sh
    • Install totem-xine
  • Multimedia player (xine-ui)
    • installs xine-ui from universe
    • Bodges the autoplay_dvd_command to run xine
    • Futzes the default app from totem to xine in /usr/share/applications

Joe Brockmeier's 10 Ubuntu tips

Another community guide. Contains instructions to:

  1. Getting multimedia to work
    • Should be adequately addressed above
  2. Changing the default editor from nano to vim
    • ???
  3. How to install packages
    • Suggests Synaptic and Adept -- but not gnome-app-install?
  4. Sudo and gksudo
    • Documentation issue, covered by existing docs
  5. Add users to sudo
    • A documentation issue - covered in the Ubuntu Desktop Guide?
  6. Adding a new desktop
    • Introduction to -desktop metapackages; not necessarily a good idea for most users
  7. How to reconfigure X.org
    • We don't cope automatically with hardware changes yet
  8. How to configure autologin
    • A documentation issue - covered in the Ubuntu Desktop Guide?
  9. Compiling from source
    • gcc and build-essential -- mdz supports installing these by default
    • checkinstall (not recommended for quality reasons)
  10. Installing an optimized kernel
    • Done automatically on the DVD
    • No space for it on the CD

BR Anchor

Implementation

The following to-do list consists of small changes that can make installation and use of many of the above items easier.

Video

  • nvidia drivers
    • non-free driver should be added to gnome-app-install and automatically enabled
  • ati
    • non-free driver should add to gnome-app-install and automatically enabled
  • Reconfiguration of X.org

Audio and Media

  • Rhythmbox
    • apply pressure to upstream to ship more regularly, possibly use backports
  • Midi
    • add an icon in gnome-app-install which installs timidity
  • Listen media manager
    • should be packaged and put it in universe
  • totem-xine
    • consider putting totem-xine in g-a-i (where currently only totem-gstreamer is)
  • bmp-docklet

Bittorrent and P2P clients

  • Azareus
    • Consider moving Azareus to main if it is confirmed to work well with current free Java in Edgy
  • Frostwire (P2P client)
    • should be packaged for universe and in g-a-i

  • Swiftfox Browser
    • given compelling benchmarks, we would consider building our firefox for 686 instead
  • Firefox 1.5 plugins
    • mozilla-acroread and mozilla-mplayer should be added to g-a-i as easily findable plugins.
  • Sun Java
    • Sun java in the g-a-i only installs sun-java5-bin and not the (browser) plugin, which is only Suggested
    • Include an additional .desktop file for the browser plugin, or a bundle which installs both, or upgrade Suggests to Recommends
    • JSS libraries are needed to allow user certificates (and digital signatures) to work with firefox (allowing e-government processes). We have them packaged for guadalinex.
  • msttcorefonts (Microsoft Core Fonts such as Times New Roman and Arial)
    • Description in gnome-app-install should be clarified (says "TrueType core fonts")

Network

  • wifi-setup
    • ndis-gtk integration could be included it in g-a-i or by default
  • Gnome PPP
    • JeffWaugh to check back in the archives about why gnome-ppp wasn't included in GNOME upstream

Instant Messaging

  • GAIM beta
    • Consider for dapper-backports

Desktop

  • ctrl-alt-del
    • Create Gnome shortcut preferences to allow user to define this themselves.
    • Currently this key-combination does nothing by default
    • Could be used as shortcut for System Monitor or the Logout Dialog
    • Discuss with Gnome upstream
  • nautilus-scripts
    • nautilus-actions should be in g-a-i
  • Numlock ON
    • should really be part of gnome, in keyboard preferences or something
  • Winpopup (linpopup)
    • should have a .desktop file added to the package, will appear in g-a-i
  • Clipboard daemon for GNOME
    • Surely we can do better?

Other

  • boot-up manager
    • Since Ubuntu already ships services-admin already, which provides a simpler interface, instead consider adding an option to services-admin to display a full list of services for power users
  • Wine
    • should look at this alternative Wine package (maintained at wine.lowvoice.nl) and see what differs from ours in universe
    • ours is already in g-a-i

Commercial

The following should be considered for the new Commercial repository:

  • Opera should go in the commercial repo (that will handle all dependencies)
  • Skype - installs non-free package
    • Investigate adding skype to gnome-app-install
  • realplayer should be packaged for the commercial repo

General Improvements

  • Planned enhancements to gnome-app-install will make finding many of these packages easier, as the most popular applications in its list will be sorted to the top.
  • g-a-i relies on good keywords in package descriptions. We should study user behaviour to see what keywords they are using to find these applications, and make them easier to find. good keywords would be:
    • mp3, dvd (bring up gstreamer extra plugins)
    • flash (bring up flash plugin)
    • real (bringing up real player plugin)
    • acrobat (bringing up acrobat reader + firefox plugin)
    • ...
  • Consider enabling universe and multiverse by default. But this is not useful for corporate use.
  • If so, improve clearly indicate packages as belonging to either main vs. universe vs. multiverse vs. commercial (such as a clear icon marking each package in the g-a-i or synaptic - much in the same way as with the Ubuntu symbol for Main packages in Synaptic)
  • Consider creating a meta-package containing the most popular of these common customizations, such as:
    • Flash
    • Java (with browser plugin)
    • gstreamer codecs (incl. MP3 etc)
    • libdvdread3
    • MS Truetype Fonts
  • This would obviously be a multiverse package - this would make the most popular functions of the community customization scripts available with very few clicks.

BR Anchor

Instructions on avoiding scripts

Generally, refer to the RestrictedFormats wiki page, and use the documentation. If the above suggestions are implemented, the needs of most users will be covered, and there will be little incentive for them to seek out alternatives.

BR Anchor

Why Ubuntu cannot adopt certain packages

Proprietary packages

Many popular packages, such as Flash, Java and the MS TrueType fonts, are proprietary, and can as such not be shipped with Ubuntu due to copyright or restrictive licensing that among other things do not allow free redistribution. Therefore, these packages are placed in the Multiverse repository for non-free software from which it can be installed through the Gnome Application Installer.

Patent-encumbered packages

Other popular packages such as the gstreamer multimedia codecs for such formats as MP3 are free software implementations of well-known media encoding algorithms. But since the algorithms themselves are patented (for instance, the MP3 encoding and decoding algorithm is patented by the Fraunhofer corporation), it is not possible for Ubuntu to ship these codecs without a license from the patent-holding corporation. They are available from the Universe repositories, instead.

Packages that it would potentially illegal to redistribute

Some packages are of a dubious legal status, such as the libdvdcss2 package which circumvents the CSS encryption on DVDs. Since the DeCSS method is illegal in some countries - including the USA - Ubuntu will not ship these.

Windows Codecs

A package such as w32codecs containing the proprietary Windows multimedia codecs can only be used legally by users who also have purchased a Windows license which allows the use of these codecs. Therefore Ubuntu cannot ship or hold such a package in its repositories.

BR Anchor

random mutterings from Gobby

needed : firefox totem plugin installed byu deault (or mplayer or something else) its nice to use totem for playback because it follows gstreamer preferences, but mplayer seems to have the highest success of playback. in my personal experiences mplayer and totem-gstreamer are almost equal .. some videos don't play using totem and other don't play using mplayer. but therefor totem-gstreamer is probably the better choice How does totem-gstreamer handle non-free win32 dlls these days -- it seemed to be difficult to configure. It does some magic with ffmpeg, I think. It seems to kind of work.. sometimes theres some package on cipherpunk .. pitfdll or something. i think it works for most wmv's except the newest ones(wmv 10 doesnt work at all AFAIK) it appears pitfdll is in dapper at least.great!

compiz/aiglx/xgl currently needs a warning

  • ((I tried it on a geforce 3 when Dapper was still in development I stopped trying after a bit of time though))
  • compiz.net -forums for aiglx/xgl/compiz howtos for ubuntu (and other distros) * xgl.compiz.info repositories contain cvs debs of compiz, aiglx, xgl and
    • associated xlibs, as well as patched parts of gnome to make compiz function
    • many users report sucess
  • aiglx/compiz/i810 has wacky breakages in it like password dialogs don't draw right and sustpend is broken. must make sure users understand that this has a


CategorySpec