redhat-logos 套件實例

  1. 下載 SRPM 套件
    [dywang@dywmac ~]$ cd rpmbuild/
    [dywang@dywmac rpmbuild]$ wget ftp://ftp.pbone.net/mirror/vault.centos.org/6.1\
    /os/SRPMS/Packages/redhat-logos-60.0.14-10.el6.src.rpm
    
  2. 安裝 SRPM 套件
    [dywang@dywmac rpmbuild]$ rpm -ivh redhat-logos-60.0.14-10.el6.src.rpm 
       1:redhat-logos           ########################################### [100%]
    
  3. 解打包壓縮
    [dywang@dywmac rpmbuild]$ cd SOURCES/
    [dywang@dywmac SOURCES]$ tar jxvf redhat-logos-60.0.14.tar.bz2 
    redhat-logos-60.0.14/
    redhat-logos-60.0.14/gnome-screensaver/
    ................
    
  4. 將 faenza-icon-theme 套件中的 icon gksu-root-terminal.png 複製到 redhat-logos 套件解打包的原始碼 icons 目錄中。
    [dywang@dywmac SOURCES]$ cp /usr/share/icons/Faenza/apps/48/gksu-root-terminal.png \
    redhat-logos-60.0.14/icons/hicolor/48x48/apps/root-terminal.png
    
  5. 將客製化的背景圖複製到 backgrounds 目錄中並移除原來預設的圖檔 default*.png。
    [dywang@dywmac SOURCES]$ rm redhat-logos-60.0.14/backgrounds/*.png
    [dywang@dywmac SOURCES]$ cp /usr/share/backgrounds/dywang6_1280x1024.jpg redhat-logos-60.0.14/backgrounds/
    [dywang@dywmac SOURCES]$ ll redhat-logos-60.0.14/backgrounds/total 1440
    -rw-r--r--. 1 dywang dywang    473 Sep 29 14:18 default.xml
    -rw-r--r--. 1 dywang dywang    312 Nov 19  2010 desktop-backgrounds-default.xml
    -rw-r--r--. 1 dywang dywang 529176 Sep 29 14:19 dywang6_1280x1024.jpg
    -rw-r--r--. 1 dywang dywang 931957 Jan 26  2011 simple_waves.jpg
    
  6. 移除 kde 相關的圖檔。
    [dywang@dywmac rpmbuild]$ cd SOURCES/
    [dywang@dywmac SOURCES]$ cd redhat-logos-60.0.14
    [dywang@dywmac redhat-logos-60.0.14]$ rm -rf kde-splash
    
  7. 將客製化的開機背景圖複製到相對的目錄中。
    [dywang@dywmac redhat-logos-60.0.14]$ cp /boot/grub/splash.xpm.gz bootloader/
    [dywang@dywmac redhat-logos-60.0.14]$ cp /usr/share/anaconda/pixmaps/splash.png anaconda/
    [dywang@dywmac redhat-logos-60.0.14]$ cp /usr/share/firstboot/themes/RHEL/splash-small.png firstboot/
    [dywang@dywmac redhat-logos-60.0.14]$ cp /usr/lib/anaconda-runtime/s* anaconda/
    [dywang@dywmac customlinux]$ cd ~/rpmbuild/SOURCES/redhat-logos-60.0.14
    [dywang@dywmac redhat-logos-60.0.14]$ cp /usr/lib/anaconda-runtime/boot/syslinux-splash.png anaconda/
    [dywang@dywmac redhat-logos-60.0.14]$ cp /usr/share/anaconda/pixmaps/anaconda_header.png anaconda/
    [dywang@dywmac redhat-logos-60.0.14]$ cp /usr/share/anaconda/pixmaps/syslinux-splash.png anaconda/
    [dywang@dywmac redhat-logos-60.0.14]$ cp /usr/share/backgrounds/desktop-backgrounds-default.xml backgrounds/
    [dywang@dywmac redhat-logos-60.0.14]$ cp /usr/share/firstboot/themes/RHEL/firstboot-* firstboot/
    [dywang@dywmac redhat-logos-60.0.14]$ cp /usr/share/firstboot/themes/RHEL/workstation.png firstboot/
    [dywang@dywmac redhat-logos-60.0.14]$ cp /usr/share/plymouth/themes/rings/header-image.png plymouth/rings/
    
  8. 重新打包壓縮 redhat-logos-60.0.14.tar.bz2。
    [dywang@dywmac redhat-logos-60.0.14]$ cd ..
    [dywang@dywmac SOURCES]$ tar jcvf redhat-logos-60.0.14.tar.bz2 redhat-logos-60.0.14
    
  9. 修改 initscript 規格檔,增加 dyw 次版本標示。因預設使用 gnome 且不打算使用 kde,所以取消 kde 相關檔案的安裝,為節省檔案大小,預設背景圖檔以連結方式處理。
    [dywang@dywmac redhat-logos-60.0.14]$ cd ../../SPECS
    [dywang@dywmac SPECS]$ cp redhat-logos.spec redhat-logos.spec.orig
    [dywang@dywmac SPECS]$ vim redhat-logos.spec
    [dywang@dywmac SPECS]$ diff -uN redhat-logos.spec.orig redhat-logos.spec
    --- redhat-logos.spec.orig	2017-09-29 14:23:01.545441145 +0800
    +++ redhat-logos.spec	2017-09-29 14:52:22.048798871 +0800
    @@ -4,7 +4,7 @@
     Name: redhat-logos
     Summary: CentOS-related icons and pictures
     Version: 60.0.14
    -Release: 10%{?dist}
    +Release: 10%{?dist}.dyw
     Group: System Environment/Base
     # No upstream, do in dist-cvs
     Source0: redhat-logos-%{version}.tar.bz2
    @@ -19,8 +19,6 @@
     Provides: desktop-backgrounds-basic = %{version}-%{release}
     Conflicts: redhat-artwork <= 5.0.5
     Requires(post): coreutils
    -# For _kde4_appsdir macro:
    -BuildRequires: kde-filesystem
     
     %description
     The redhat-logos package (the "Package") contains files created by the
    @@ -51,7 +49,7 @@
     done
     
     mkdir -p $RPM_BUILD_ROOT%{_datadir}/backgrounds/
    -for i in backgrounds/*.png backgrounds/*.jpg backgrounds/default.xml; do
    +for i in backgrounds/*.jpg backgrounds/default.xml; do
       install -p -m 644 $i $RPM_BUILD_ROOT%{_datadir}/backgrounds/
     done
     
    @@ -92,36 +90,14 @@
     for i in 16 24 32 36 48 96; do
       mkdir -p $RPM_BUILD_ROOT%{_datadir}/icons/System/${i}x${i}/places
       install -p -m 644 -D $RPM_BUILD_ROOT%{_datadir}/icons/hicolor/${i}x${i}/apps/system-logo-icon.png $RPM_BUILD_ROOT%{_datadir}/icons/System/${i}x${i}/places/start-here.png
    -  install -p -m 644 -D $RPM_BUILD_ROOT%{_datadir}/icons/hicolor/${i}x${i}/apps/system-logo-icon.png $RPM_BUILD_ROOT%{_datadir}/kde-settings/kde-profile/default/share/icons/Fedora-KDE/${i}x${i}/places/start-here.png 
     done
     
    -# ksplash theme
    -mkdir -p $RPM_BUILD_ROOT%{_kde4_appsdir}/ksplash/Themes/
    -cp -rp kde-splash/CentOS6/ $RPM_BUILD_ROOT%{_kde4_appsdir}/ksplash/Themes/
    -pushd $RPM_BUILD_ROOT%{_kde4_appsdir}/ksplash/Themes/CentOS6/1920x1200/
    -ln -s %{_datadir}/anaconda/pixmaps/splash.png splash.png
    -ln -s %{_datadir}/backgrounds/default.png background.png
    -popd
    -
    -# kdm theme
    -mkdir -p $RPM_BUILD_ROOT/%{_kde4_appsdir}/kdm/themes/
    -cp -rp kde-kdm/CentOS6/ $RPM_BUILD_ROOT/%{_kde4_appsdir}/kdm/themes/
    -pushd $RPM_BUILD_ROOT/%{_kde4_appsdir}/kdm/themes/CentOS6/
    -ln -s %{_datadir}/backgrounds/default.png background.png
    -ln -s %{_datadir}/pixmaps/system-logo-white.png system-logo-white.png
    -popd
    -
    -# wallpaper theme
    -mkdir -p $RPM_BUILD_ROOT/%{_datadir}/wallpapers/
    -cp -rp kde-plasma/CentOS6/ $RPM_BUILD_ROOT/%{_datadir}/wallpapers
    -
     %clean
     rm -rf $RPM_BUILD_ROOT
     
     %post
     touch --no-create %{_datadir}/icons/hicolor || :
     touch --no-create %{_datadir}/icons/System || :
    -touch --no-create %{_datadir}/kde-settings/kde-profile/default/share/icons/Fedora-KDE ||:
     if [ -x /usr/bin/gtk-update-icon-cache ]; then
       if [ -f %{_datadir}/icons/hicolor/index.theme ]; then
         gtk-update-icon-cache %{_datadir}/icons/hicolor &> /dev/null || :
    @@ -131,6 +107,11 @@
       fi
     fi
     
    +cd %{_datadir}/backgrounds
    +ln -sf dywang6_1280x1024.jpg default_1920x1200.png
    +ln -sf dywang6_1280x1024.jpg default_1920x1440.png
    +ln -sf dywang6_1280x1024.jpg default.png
    +
     %files
     %defattr(-, root, root, -)
     %doc COPYING
    @@ -139,7 +120,6 @@
     %{_datadir}/gnome-background-properties/*
     %{_datadir}/firstboot/themes/RHEL/
     %{_datadir}/plymouth/themes/rings/
    -%{_datadir}/kde-settings/kde-profile/default/share/icons/Fedora-KDE/*/places/*
     %{_datadir}/pixmaps/*
     %{_datadir}/anaconda/pixmaps/*
     %{_datadir}/icons/hicolor/*/apps/*
    @@ -148,9 +128,6 @@
     %{anaconda_image_prefix}/boot/*png
     %{anaconda_image_prefix}/*.sh
     %{anaconda_image_prefix}/*.jpg
    -%{_kde4_appsdir}/ksplash/Themes/CentOS6/
    -%{_kde4_appsdir}/kdm/themes/CentOS6/
    -%{_kde4_datadir}/wallpapers/CentOS6/
     
     # we multi-own these directories, so as not to require the packages that
     # provide them, thereby dragging in excess dependencies.
    @@ -159,25 +136,6 @@
     %dir %{anaconda_image_prefix}/boot
     %dir %{_datadir}/anaconda
     %dir %{_datadir}/anaconda/pixmaps/
    -%dir %{_datadir}/kde-settings
    -%dir %{_datadir}/kde-settings/kde-profile
    -%dir %{_datadir}/kde-settings/kde-profile/default
    -%dir %{_datadir}/kde-settings/kde-profile/default/share
    -%dir %{_datadir}/kde-settings/kde-profile/default/share/icons
    -%dir %{_datadir}/kde-settings/kde-profile/default/share/icons/Fedora-KDE
    -%dir %{_datadir}/kde-settings/kde-profile/default/share/icons/Fedora-KDE/16x16
    -%dir %{_datadir}/kde-settings/kde-profile/default/share/icons/Fedora-KDE/16x16/places
    -%dir %{_datadir}/kde-settings/kde-profile/default/share/icons/Fedora-KDE/24x24
    -%dir %{_datadir}/kde-settings/kde-profile/default/share/icons/Fedora-KDE/24x24/places
    -%dir %{_datadir}/kde-settings/kde-profile/default/share/icons/Fedora-KDE/32x32
    -%dir %{_datadir}/kde-settings/kde-profile/default/share/icons/Fedora-KDE/32x32/places
    -%dir %{_datadir}/kde-settings/kde-profile/default/share/icons/Fedora-KDE/36x36
    -%dir %{_datadir}/kde-settings/kde-profile/default/share/icons/Fedora-KDE/36x36/places
    -%dir %{_datadir}/kde-settings/kde-profile/default/share/icons/Fedora-KDE/48x48
    -%dir %{_datadir}/kde-settings/kde-profile/default/share/icons/Fedora-KDE/48x48/places
    -%dir %{_datadir}/kde-settings/kde-profile/default/share/icons/Fedora-KDE/96x96
    -%dir %{_datadir}/kde-settings/kde-profile/default/share/icons/Fedora-KDE/96x96/places
    -%dir %{_kde4_appsdir}
     # should be ifarch i386
     /boot/grub/splash.xpm.gz
     # end i386 bits
    

  10. 重建 centos-release RPM 及 SRPM 二進位檔
    [dywang@dywmac SOURCES]$ rpmbuild -ba --clean --target=$(uname -m) ../SPECS/redhat-logos.spec
    

  11. 查看新產生的 redhat-logos RPM 及 SRPM 二進位檔
    [dywang@dywmac SOURCES]$ ll ../RPMS/noarch/redhat-logos* ../SRPMS/redhat-logos*
    -rw-rw-r--. 1 dywang dywang  2276332 Sep 29 16:26 ../RPMS/noarch/redhat-logos-60.0.14-10.el6.dyw.noarch.rpm
    -rw-rw-r--. 1 dywang dywang  6772832 Sep 29 16:26 ../SRPMS/redhat-logos-60.0.14-10.el6.dyw.src.rpm