Archive:Making an openSUSE based distribution
tagline: From openSUSE
This guide can be used to make a personalized distribution for several cases
- Include software that is not included by default
- Remove software that is included by default
- Modify settings
- Personalize the distribution
- Standard settings for your country, company, LUG, ...
- Fix problems
Be sure to install the following package:
This short instruction is outdated. Using rembrand for the debranding step is obsolete. Please see the debranding instructions in the long version below.
- 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 Artwork brand 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 references 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 trademarks. rembrand may be useful for removing these brandings. See also http://www.davjam.org/mediawiki/index.php/openSUSE:Debrand:howto , .
- 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 [ 11.3 ] suse/x86_64/kupdateapplet-<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
- 11.3 patterns
openSUSE 11.3 and newer added patterns-* packages which reference the above debranded packages. You will need to make your own patterns-YOURBRAND package.
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
You can find more info on the YaST portal.
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.