gnome-themes 套件實例

  1. 下載 SRPM 套件
    [dywang@dywH ~]$ cd rpmbuild
    [dywang@dywH rpmbuild]$ wget ftp://ftp.pbone.net/mirror/vault.centos.org/6.5\
    /os/Source/SPackages/gnome-themes-2.28.1-6.el6.src.rpm
    
  2. 查看安裝的所有檔案。
    [dywang@dywH rpmbuild]$ rpm -qpl gnome-themes-2.28.1-6.el6.src.rpm 
    gnome-themes-2.28.1.tar.bz2
    gnome-themes.spec
    indic-titlebars.patch
    newer-icons.tar
    slider-metacity.tar
    slider-theme.patch
    
  3. 安裝 SRPM 套件
    [dywang@dywH rpmbuild]$ rpm -ivh gnome-themes-2.28.1-6.el6.src.rpm
    
  4. 切換到暫存目錄,不安裝 rpm 檔下抽取 rpm 檔,做為修改前後之比較。
    [dywang@dywH tmp]$ rpm2cpio ../gnome-themes-2.28.1-6.el6.src.rpm | cpio -idvm
    gnome-themes-2.28.1.tar.bz2
    gnome-themes.spec
    indic-titlebars.patch
    newer-icons.tar
    slider-metacity.tar
    slider-theme.patch
    21625 blocks
    
  5. 暫存目錄下解開壓縮檔。
    [dywang@dywH tmp]$ tar jxvf gnome-themes-2.28.1.tar.bz2
    
  6. 查看 gnome-themes-2.28.1 目錄的檔案。
    [dywang@dywH tmp]$ ls gnome-themes-2.28.1
    aclocal.m4    configure.in          INSTALL                  Makefile.in
    AUTHORS       COPYING               install-sh               metacity-themes
    ChangeLog     desktop-themes        intltool-extract.in      missing
    common        gnome-themes.spec     intltool-merge.in        mkinstalldirs
    config.guess  gnome-themes.spec.in  intltool-update.in       NEWS
    config.sub    gtk-themes            low-contrast-preset.scm  po
    configure     icon-themes           Makefile.am              README
    
  7. 將要修改的 gtkrc 複製到到工作目錄。
    [dywang@dywH SOURCES]$ cp ../tmp/gtk-engines-2.18.4/themes/Clearlooks/gtk-2.0/gtkrc mygtkrc
    
  8. 修改 Clearlooks 佈景主題抬頭高度並將其差異存成 gnome-themes-Clearlooks.patch,其中 metacity-theme-1-0.xml 為未修改前安裝在系統的的檔案,也就是編譯時經過 patch 補丁過的檔案,metacity-theme-1-0.xml 則是將其修改後的檔案。 注意:必須將補丁檔中的 metacity-theme-1-0.xml 改成 gnome-themes-2.28.1/metacity-themes/Clearlooks/metacity-theme-1.xml,否則編譯時會找不到檔案。
    [dywang@dywH SOURCES]$ diff -uN metacity-theme-1-0.xml metacity-theme-1-my.xml > gnome-themes-Clearlooks.patch 
    [dywang@dywH SOURCES]$ cat gnome-themes-Clearlooks.patch
    --- metacity-theme-1-0.xml	2015-09-28 23:14:13.778276989 +0800
    --- gnome-themes-2.28.1/metacity-themes/Clearlooks/metacity-theme-1.xml	2015-09-28 23:14:13.778276989 +0800
    +++ metacity-theme-1-my.xml	2015-09-28 23:14:27.104667297 +0800
    @@ -18,8 +18,8 @@
     	<distance name="right_titlebar_edge" value="4"/>
     	<aspect_ratio name="button" value="1.0"/>
     	<distance name="title_vertical_pad" value="0"/>
    -	<border name="title_border" left="2" right="2" top="4" bottom="3"/>
    -	<border name="button_border" left="1" right="1" top="2" bottom="2"/>
    +	<border name="title_border" left="1" right="1" top="0" bottom="0"/>
    +	<border name="button_border" left="1" right="1" top="1" bottom="1"/>
     </frame_geometry>
     
     <frame_geometry name="shaded" parent="normal" rounded_top_left="true" rounded_top_right="true" rounded_bottom_left="true" rounded_bottom_right="true"/>
    @@ -46,14 +46,14 @@
     </frame_geometry>
     
     <frame_geometry name="border" has_title="false">
    -	<distance name="left_width" value="4"/>
    -	<distance name="right_width" value="4"/>
    -	<distance name="bottom_height" value="4"/>
    +	<distance name="left_width" value="0"/>
    +	<distance name="right_width" value="0"/>
    +	<distance name="bottom_height" value="0"/>
     	<distance name="left_titlebar_edge" value="0"/>
     	<distance name="right_titlebar_edge" value="0"/>
     	<distance name="button_width" value="0"/>
     	<distance name="button_height" value="0"/>
    -	<distance name="title_vertical_pad" value="4"/>
    +	<distance name="title_vertical_pad" value="0"/>
     	<border name="title_border" left="0" right="0" top="0" bottom="0"/>
     	<border name="button_border" left="0" right="0" top="0" bottom="0"/>
     </frame_geometry>
    
  9. 修改 RPM spec 規格檔版本加入 dyw,因 patch0 主要是修改 Clearlooks 佈景主題,與本次修改目的相同故將本次修改補丁放在其後,也就是 patch11。
    [dywang@dywH SOURCES]$ diff -uN ../tmp/gnome-themes.spec ../SPECS/gnome-themes.spec
    --- ../tmp/gnome-themes.spec	2010-07-15 00:05:03.000000000 +0800
    +++ ../SPECS/gnome-themes.spec	2015-09-28 23:21:59.428115175 +0800
    @@ -1,7 +1,7 @@
     Summary: Themes for GNOME
     Name: gnome-themes
     Version: 2.28.1
    -Release: 6%{?dist}
    +Release: 6%{?dist}.dyw
     URL: http://download.gnome.org/sources/gnome-themes/
     Source: http://download.gnome.org/sources/gnome-themes/2.28/%{name}-%{version}.tar.bz2
     # Icons done by Andreas Nilsson for http://live.gnome.org/GnomeArt/ArtRequests/issue26
    @@ -10,6 +10,7 @@
     Source10: slider-metacity.tar
     # https://bugzilla.gnome.org/show_bug.cgi?id=614343
     Patch0: indic-titlebars.patch
    +Patch1: gnome-themes-Clearlooks.patch
     Patch10: slider-theme.patch
     License: LGPLv2 and GPLv2
     Group: User Interface/Desktops
    @@ -38,6 +39,7 @@
     %prep
     %setup -q
     %patch0 -p1 -b .indic-titlebars
    +%patch1 -p1 -b .Clearlooks
     %patch10 -p1 -b .slider-theme
     find . -exec touch \{\} \;
    
  10. 建立 RPM 二進位檔,出現相依套件問題,不同的建立環境缺的套件不會相同,必須把缺的套件都安裝起來。
    [dywang@dywH SOURCES]$ rpmbuild -ba --clean --target=$(uname -m) ../SPECS/gtk2-engines.spec
    Building target platforms: x86_64
    Building for target x86_64
    error: Failed build dependencies:
        intltool is needed by gtk2-engines-2.18.4.dyw-5.el6.x86_64
    
  11. 安裝相依套件。
    [root@dywH ~]# yum install gtk2-engines-devel icon-naming-utils --enablerepo=centos
    
  12. 再同時建立 RPM 及 SRPM 二進位檔字,成功建立的訊息最後幾行,看到產生三個 RPM 檔及一個 SRPM 檔。
    [dywang@dywH SOURCES]$ rpmbuild -ba --clean --target=$(uname -m) ../SPECS/gnome-themes.spec 
    .....................
    Wrote: /home/dywang/rpmbuild/SRPMS/gnome-themes-2.28.1-6.el6.dyw.src.rpm
    Wrote: /home/dywang/rpmbuild/RPMS/noarch/gnome-themes-2.28.1-6.el6.dyw.noarch.rpm
    Executing(%clean): /bin/sh -e /var/tmp/rpm-tmp.nwqySf
    + umask 022
    + cd /home/dywang/rpmbuild/BUILD
    + cd gnome-themes-2.28.1
    + rm -rf /home/dywang/rpmbuild/BUILDROOT/gnome-themes-2.28.1-6.el6.dyw.x86_64
    + exit 0
    Executing(--clean): /bin/sh -e /var/tmp/rpm-tmp.F8sVZU
    + umask 022
    + cd /home/dywang/rpmbuild/BUILD
    + rm -rf gnome-themes-2.28.1
    + exit 0