gtk2-engines 套件實例

  1. 下載 SRPM 套件
    [dywang@dywH ~]$ cd rpmbuild
    [dywang@dywH rpmbuild]$ wget ftp://ftp.pbone.net/mirror/vault.centos.org/6.3\
    /os/Source/SPackages/gtk2-engines-2.18.4-5.el6.centos.src.rpm
    
  2. 查看安裝的所有檔案。
    [dywang@dywH rpmbuild]$ rpm -qpl gtk2-engines-2.18.4-5.el6.centos.src.rpm 
    gtk-engines-2.18.2-change-bullet.patch
    gtk-engines-2.18.4.tar.bz2
    gtk2-engines.spec
    tooltips.patch
    
  3. 安裝 SRPM 套件
    [dywang@dywH rpmbuild]$ rpm -ivh gtk2-engines-2.18.4-5.el6.centos.src.rpm
    
  4. 查看程式主要的打包壓縮檔。
    [dywang@dywH rpmbuild]$ cd SOURCES/
    [dywang@dywH SOURCES]$ ls gtk-engines-2.18.4.tar.bz2 
    gtk-engines-2.18.4.tar.bz2
    
  5. 切換到暫存目錄,不安裝 rpm 檔下抽取 rpm 檔,做為修改前後之比較。
    [dywang@dywH tmp]$ rpm2cpio ../gtk2-engines-2.18.4-5.el6.centos.src.rpm | cpio -idvm
    gtk-engines-2.18.2-change-bullet.patch
    gtk-engines-2.18.4.tar.bz2
    gtk2-engines.spec
    tooltips.patch
    1416 blocks
    
  6. 暫存目錄下解開 gtk-engines-2.18.4.tar.bz2。
    [dywang@dywH tmp]$ tar jxvf gtk-engines-2.18.4.tar.bz2
    
  7. 查看 gtk-engines-2.18.4 目錄的檔案。
    [dywang@dywH SOURCES]$ ls ../tmp/gtk-engines-2.18.4
    aclocal.m4    configure.ac         INSTALL              missing
    AUTHORS       COPYING              install-sh           NEWS
    autogen.sh    depcomp              intltool-extract.in  po
    ChangeLog     engines              intltool-merge.in    README
    compile       gtk-engines-2.pc.in  intltool-update.in   schema
    config.guess  gtk-engines.doap     ltmain.sh            test
    config.sub    gtk-engines.spec     Makefile.am          themes
    configure     gtk-engines.spec.in  Makefile.in
    
  8. 將要修改的 gtkrc 複製到到工作目錄。
    [dywang@dywH SOURCES]$ cp ../tmp/gtk-engines-2.18.4/themes/Clearlooks/gtk-2.0/gtkrc mygtkrc
    
  9. 修改 mygtkrc 後將修改前後 patch 存成 gtk-engines-2.18.4-gtkrc.patch。
    [dywang@dywH SOURCES]$ vim mygtkrc
    [dywang@dywH SOURCES]$ diff -uN ../tmp/gtk-engines-2.18.4/themes/Clearlooks/gtk-2.0/gtkrc mygtkrc \
    > gtk-engines-2.18.4-gtkrc.patch
    
  10. 修改預設顏色。
    [dywang@dywH SOURCES]$ diff -uN gtk-engines-2.18.4/themes/Clearlooks/gtk-2.0/gtkrc gtkrc.my > gtk-engines-2.18.4-gtkrc.patch
    [dywang@dywH SOURCES]$ cat gtk-engines-2.18.4-gtkrc.patch
    --- gtk-engines-2.18.4/themes/Clearlooks/gtk-2.0/gtkrc	2015-09-28 14:55:13.731393117 +0800
    +++ gtkrc.my	2015-09-28 14:50:41.371393424 +0800
    @@ -1,7 +1,7 @@
     
     # Please keep this gtkrc in sync with the other ones from Clearlooks based themes.
     
    -gtk-color-scheme = "base_color:#ffffff\nfg_color:#000000\ntooltip_fg_color:#000000\nselected_bg_color:#86ABD9\n\
    selected_fg_color:#ffffff\ntext_color:#1A1A1A\nbg_color:#EDECEB\ntooltip_bg_color:#F5F5B5"
    +gtk-color-scheme = "base_color:#ffffff\nfg_color:#000000\ntooltip_fg_color:#000000\nselected_bg_color:#7cd39cec90a8\n\
    selected_fg_color:#ffffff\ntext_color:#1A1A1A\nbg_color:#d9d9e147dce2\ntooltip_bg_color:#d5d5dadadede"
     
     style "default" {
     	xthickness = 1
    
  11. 修改 slider 寬度及大小。
    @@ -19,8 +19,8 @@
     	GtkPaned::handle-size = 6
     
     	GtkRange::trough-border = 0
    -	GtkRange::slider-width = 15
    -	GtkRange::stepper-size = 15
    +	GtkRange::slider-width = 14
    +	GtkRange::stepper-size = 14
     
     	GtkScale::slider-length = 23
     	GtkScale::trough-side-details = 1
    
  12. 修改 notebook (例如 gnome-terminals 的 TAB 新增分頁) 上下左右尺寸。原先 gnome-terminals tab 佔用畫面太大,修改成上下左右不留空白。
    @@ -176,8 +176,8 @@
     # The color is changed by the notebook_bg style, this style
     # changes the x/ythickness
     style "notebook" {
    -	xthickness = 3
    -	ythickness = 3
    +	xthickness = 0
    +	ythickness = 0
     }
     
     style "statusbar" {
    
  13. 修改預設選單選項上下左右寬度。
    @@ -216,8 +216,8 @@
     }
     
     style "menu_item" {
    -	xthickness = 2
    -	ythickness = 3
    +	xthickness = 1
    +	ythickness = 1
     
     	fg[PRELIGHT]      = @selected_fg_color
     }
    
  14. 修改 new-tooltip-style。
    @@ -277,6 +277,8 @@
     	xthickness = 4
     	ythickness = 4
     
    +	GtkWidget::new-tooltip-style = 1
    +
     	bg[NORMAL]        = @tooltip_bg_color
     	fg[NORMAL]        = @tooltip_fg_color
     }
    
  15. 修改 RPM spec 規格檔版本加入 dyw,且將 gtk-engines-2.18.4-gtkrc.patch 設定為 Patch1,原先的 patch1 tooltips 也是修改 gtkrc,因而造成新設定的 patch 出問題,故直接取代 patch1。
    [dywang@dywH SOURCES]$ diff -uN ../tmp/gtk2-engines.spec ../SPECS/gtk2-engines.spec 
    --- ../tmp/gtk2-engines.spec	2010-06-21 21:26:10.000000000 +0800
    +++ ../SPECS/gtk2-engines.spec	2015-09-28 14:56:04.392393060 +0800
    @@ -1,7 +1,7 @@
     Summary:        Theme engines for GTK+ 2.0
     Name:           gtk2-engines
     Version:        2.18.4
    -Release:	5%{?dist}
    +Release:	5%{?dist}.dyw
     # for details on which engines are GPL vs LGPL, see COPYING
     License:        LGPLv2+
     Group:          System Environment/Libraries
    @@ -21,7 +21,9 @@
     # http://bugzilla.gnome.org/show_bug.cgi?id=593030
     Patch0: gtk-engines-2.18.2-change-bullet.patch
     
    -Patch1: tooltips.patch
    +#Patch1: tooltips.patch
    +
    +Patch1: gtk-engines-2.18.4-gtkrc.patch
     
     %package devel
     Summary: Development files for %{name}
    @@ -44,7 +46,8 @@
     %setup -q -n gtk-engines-%{version}
     
     %patch0 -p1 -b .change-bullet
    -%patch1 -p1 -b .tooltips
    +#%patch1 -p1 -b .tooltips
    +%patch1 -p1 -b .gtkrc
     
     %build
     %configure
    
  16. 建立 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
    
  17. 安裝相依套件。
    [dywang@dywH SOURCES]$ sudo yum install intltool --enablerepo=centos
    
  18. 再同時建立 RPM 及 SRPM 二進位檔字,成功建立的訊息最後幾行,看到產生三個 RPM 檔及一個 SRPM 檔。
    [dywang@dywH SOURCES]$ rpmbuild -ba --clean --target=$(uname -m) ../SPECS/gtk2-engines.spec 
    .....................
    Wrote: /home/dywang/rpmbuild/SRPMS/gtk2-engines-2.18.4-5.el6.dyw.src.rpm
    Wrote: /home/dywang/rpmbuild/RPMS/x86_64/gtk2-engines-2.18.4-5.el6.dyw.x86_64.rpm
    Wrote: /home/dywang/rpmbuild/RPMS/x86_64/gtk2-engines-devel-2.18.4-5.el6.dyw.x86_64.rpm
    Wrote: /home/dywang/rpmbuild/RPMS/x86_64/gtk2-engines-debuginfo-2.18.4-5.el6.dyw.x86_64.rpm
    Executing(%clean): /bin/sh -e /var/tmp/rpm-tmp.msMMbL
    + umask 022
    + cd /home/dywang/rpmbuild/BUILD
    + cd gtk-engines-2.18.4
    + rm -rf /home/dywang/rpmbuild/BUILDROOT/gtk2-engines-2.18.4-5.el6.dyw.x86_64
    + exit 0
    Executing(--clean): /bin/sh -e /var/tmp/rpm-tmp.UPA63r
    + umask 022
    + cd /home/dywang/rpmbuild/BUILD
    + rm -rf gtk-engines-2.18.4
    + exit 0
    
  19. 修改前 gnome-termianl 的分頁、選單選項佔用較大的版面。
    Image gtkrc-orig
    Image gtkrc-my