Making a SUSE based distribution
tagline: From openSUSE
This guide can be used to make a personalised distribution for several cases
- Include RPM software that is not included by default
- Remove software that is included
- Edit software
- Personalize the distribution
- Standard settings for your country, company, LUG, ...
- Fix any problems RPMs
- Download the ISOs you desire
- If you need extra RPM's, download them
- Run makeSUSEdvd -i [any other parameter]
- Run rembrand -b "#FF00FF" -R /tmp/pink_rpms *.rpm
- Browse through Branding Overview and check for any left-overs.
- Edit, remove and change anything you desire.
- Run makeSUSEdvd -C
It is step 4 in the short version that is the most important step. Here I will go into more detail into each and every step.
You can download any version ISOs you like to an empty directory. e.g. when using 10.1 as a base, you can download the first CD for minimal installation, the first 3 for standard German and English KDE or GNOME installation, the 5 CDs for other languages and extra software, or the 6CDs or the DVD.
If you want to add extra software that is not available from openSUSE, you need to have a working RPM. Download it to e.g. /usr/src/packages/RPMS/* or make a directory with the same sub-directories athlon i386 i486 i586 i686 noarch.
Do not forget extra RPMs that might be needed to prevent a dependency hell later.
No content change
If you just want to add RPMs, you can just do the following from the directory where the RPMs are.
makeSUSEdvd [-a /usr/src/packages/RPMS] [any other parameter]
This will leave you with your own personalized distribution. During the installation, you can select software and can select Personal selection or any RPM in that Personal selection.
Please read COPYING, COPYRIGHT and LICENCE.TXT on the ISO you just made to see if you are allowed to distribute it.
Changing the content
- Now you run makeSUSEdvd -i [-a /usr/src/packages/RPMS] [any other parameter] from the directory where the ISOs are. This will make a directory CD_DIR, unless you specified differently. CD_DIR is the directory you need to change.
- Next you can remove any RPM that you do not want to be on your own distribution. You can leave anything you like. The RPMs are in CD_ROM/suse
- Then you can edit CD_DIR/control.xml There is more information about this file on this page from Novell. A lot can be changed and thus broken here, so be sure to test it before you distribute your distribution.
- According to the changes, you can change any and all CD_DIR/suse/setup/desc/*sel files.
- Especially look at default*.sel If you have added RPMs, makeSUSEdvd has made a makeSUSEdvd.sel.
- If you want programs to be installed by default, add them to default*
- When adding your own *.sel file, see that it has a different =Ord: inside then any of the other *.sel files have. The lower the number, the higher it will be in the list. Negative numbers do work.
- Add or remove any *.sel from /suse/setup/desc/selections as well as any *.sel, although it is just as easy to leave it.
- To further personalize it, you can edit the following files. In most files you need to remove the openSUSE and/or Novell reference and add your own
/COPYRIGHT* Different languages. /LICENCE.txt Put in your own licence /README* /LIESMICH* /SuSEgo.ico Remove and add your own *.ico /autorun.inf Change SuSEgo.ico to your own /content Change VENDOR Change RELNOTESURL to your own RPM if desired /docu/RELEASE Remove SUSE and Novell reference /boot/*/LIESMICH* /boot/*/README* /boot/*/loader/* Several files. Mainly removing openSUSE name and change some JPGs /media.1/info.txt This is placed there by makeSUSEdvd. Edit it in makeSUSEdvd, or comment it out completely. /media.1/licence.zip Look inside and edit any or all different licences to your own. /media.1/media /suse/setup/README /suse/setup/LIESMISCH /suse/setup/slide/* Here you can realy personalize your distribution. These are the slides that are shown during the installation.
- Several RPM-packages contain images with openSUSE/Novell Trademarks. rembrand may be useful for removing these brandings. See also http://www.davjam.org/mediawiki/index.php/openSUSE:Debrand:howto , .
- There is a list of some of the Novell brandings on OpenSuSE
- Some packages need an End User Licence Agreement (EULA) before installation, or a warning when you select them to install so that people can decide wether or not to install them. They are in packages.$LANG and written in basic HTML. For examples, look in /suse/setup/descr/packages.en
EULA stuff: +Eul: -Eul: Install warning: +Ins: -Ins:
- Some packages have restricted licensing if you embed or base your product on the OS. You may want to remove these packages.
ckermit -- the pre-amble 'embedded' conflicts with conditions for REDISTRIBUTION (A). frink -- you need written permission to redistribute this package. mirror -- redistribution contingent on not modifying the content. mmv -- depends on if you charge for your product. myodbc -- mysql is GPL not LGPL. Linking with your non-GPL product may convert it to GPL. vlna -- review the language with respect to 'sell'.
Many packages contain openSUSE trademarks and images. Most of these are contained in packages PACKAGE_NAME-branding-openSUSE. For some packages, you can replace the PACKAGE_NAME-branding-openSUSE with the PACKAGE_NAME-branding-upstream package from the repository. Some packages you need to remake.
- Packages you need to create
YOURBRAND-release branding-YOURBRAND desktop-data-YOURBRAND gconf2-branding-YOURBRAND release-notes-YOURBRAND yast2-branding-YOURBRAND yast2-installation yast2-theme xdmbgrd
- Packages to add from the repository
bootsplash-branding-upstream gdm-branding-upstream gimp-branding-upstream glib2-branding-upstream gnome-menus-branding-upstream gnome-session-branding-upstream gtk2-branding-upstream kde4-kdm-branding-upstream kdebase4-workspace-branding-upstream MozillaFirefox-branding-upsteam OpenOffice_org-branding-upstream xfce4-desktop-branding-upstream
- Packages to delete
suse/noarch/OpenOffice_org-branding-openSUSE-<version>.noarch.rpm suse/noarch/branding-openSUSE-<version>.noarch.rpm suse/noarch/desktop-data-openSUSE-<version>.noarch.rpm suse/noarch/desktop-data-openSUSE-extra-gnome-<version>.noarch.rpm suse/noarch/epiphany-branding-openSUSE-<version>.noarch.rpm suse/noarch/gconf2-branding-openSUSE-<version>.noarch.rpm suse/noarch/gdm-branding-openSUSE-<version>.noarch.rpm suse/noarch/gimp-branding-openSUSE-<version>.noarch.rpm suse/noarch/glib2-branding-openSUSE-<version>.noarch.rpm suse/noarch/gnome-menus-branding-openSUSE-<version>.noarch.rpm suse/noarch/gtk2-branding-openSUSE-<version>.noarch.rpm suse/noarch/gtk2-theme-openSUSE-<version>.noarch.rpm suse/noarch/pidgin-branding-openSUSE-<version>.noarch.rpm suse/noarch/release-notes-openSUSE-<version>.noarch.rpm suse/noarch/release-notes-openSUSE-<version>.noarch.rpm suse/noarch/yast2-branding-openSUSE-<version>.noarch.rpm suse/noarch/yast2-installation-<version>.noarch.rpm suse/noarch/yast2-registration-<version>.noarch.rpm suse/noarch/yast2-registration-branding-openSUSE-<version>.noarch.rpm suse/noarch/yast2-theme-openSUSE-<version>.noarch.rpm suse/noarch/yast2-theme-openSUSE-Crystal-<version>.noarch.rpm suse/noarch/yast2-theme-openSUSE-Oxygen-<version>.noarch.rpm suse/x86_64/MozillaFirefox-branding-openSUSE-<version>.x86_64.rpm suse/x86_64/bootsplash-branding-openSUSE-<version>.x86_64.rpm suse/x86_64/compiz-<version>.x86_64.rpm suse/x86_64/compiz-branding-openSUSE-<version>.x86_64.rpm suse/x86_64/gfxboot-branding-openSUSE-<version>.x86_64.rpm suse/x86_64/install-initrd-branding-openSUSE-<version>.x86_64.rpm suse/x86_64/kde4-kdm-branding-openSUSE-<version>.x86_64.rpm suse/x86_64/kde4-kio_sysinfo-branding-openSUSE-<version>.x86_64.rpm suse/x86_64/kdebase3-SUSE-<version>.x86_64.rpm suse/x86_64/kdebase3-SuSE-<version>.x86_64.rpm suse/x86_64/kdebase3-SuSE-branding-openSUSE-<version>.x86_64.rpm suse/x86_64/kdebase4-openSUSE-<version>.x86_64.rpm suse/x86_64/kdebase4-workspace-branding-openSUSE-<version>.x86_64.rpm suse/x86_64/openSUSE-release-<version>.x86_64.rpm suse/x86_64/openSUSE-release-dvd-<version>.x86_64.rpm suse/x86_64/splashy-branding-openSUSE-<version>.x86_64.rpm suse/x86_64/xfce4-desktop-branding-openSUSE-<version>.x86_64.rpm
- Edit or rebuild the pattern file suse/setup/descr/dvd-*
s/branding-openSUSE/branding-YOURBRAND/ s/bootsplash-branding-openSUSE/bootsplash-branding/ s/gconf2-branding-openSUSE/gconf2-branding-YOURBRAND/ s/gtk2-branding-openSUSE/gtk2-branding/ s/desktop-data-openSUSE/desktop-data-YOURBRAND/ s/yast2-theme-openSUSE/yast2-theme-YOURBRAND/ /kdebase3-SuSE/d /yast2-registration/d
Customizing or adding YaST modules
The control.xml file controls the YaST modules that will be run in order to install or configure your system. Moreover, this modules can be modified or implemented from scratch. YaST modules are located into the boot/arch/root file at the DVD (or first CD). You can extract the root file system into a temporal directory by entering:
mkdir oldroot mount root oldroot -o loop mkdir newroot rsync -av oldroot/* newroot/
and then do the changes there. YaST modules are located into /usr/share/YaST2/. You can add or edit them. Then you have to compile them :
ycpc -c module_path
and redo the root filesystem by:
umount oldroot /sbin/mkfs.cramfs newroot/ root
Making the distribution
First copy or backup CD_DIR as it will be deleted at the end. When all your editing is done for all files and/or RPMs, you can make the iso with makeSUSEdvd -C which will give you an ISO that you can burn. Don't forget to test it first, so use a re-writable disk, if possible.
If all is well, you can make your final ISO and start using it.
The trademarks are generally protected by law and it is not allowed to use them without prior written consent of trademark owner.