2013年6月6日星期四

我的 ArchLinux ABS 包定制

Arch Linux 有 ABS (Arch Build System) 就是好。如果自带的包不满意,比如需要什么功能没有编译进去,可以自己编译。
下面贴上我自己定制的几个 ABS 包,以 PKGBUILD patch 的形式提供。算作备忘,也算是分享。

  1. ffmpeg 加入一些因版权问题没有自带的解码器,比如我经常需要压制 mp4 视频,需要 aac 编码器:
    文件名:ffmpeg.diff
    --- a/ffmpeg/PKGBUILD 2013-06-06 01:43:40.319846062 +0800
    +++ b/ffmpeg/PKGBUILD 2013-05-26 21:35:51.118143876 +0800
    @@ -57,7 +57,9 @@
         --enable-shared \
         --enable-vdpau \
         --enable-version3 \
    -    --enable-x11grab
    +    --enable-x11grab \
    +    --enable-nonfree \
    +    --enable-libfaac
      
     
       make
    
    
  2. Timidity++ 允许播放超过 1,048,575 个音符的 MIDI 文件
    文件名:timidity++-maxalloc.diff
    --- a/timidity/timidity.h 2012-06-01 11:40:44.000000000 +0800
    +++ b/timidity/timidity.h 2013-06-06 01:48:14.186722904 +0800
    @@ -436,7 +436,7 @@
     /* you cannot but use safe_malloc(). */
     #define HAVE_SAFE_MALLOC 1
     /* malloc's limit */
    -#define MAX_SAFE_MALLOC_SIZE (1<<23) /* 8M */
    +#define MAX_SAFE_MALLOC_SIZE (1<<26) /* 64M */
     
     #define DEFAULT_SOUNDFONT_ORDER 0
     
    
    文件名:timidity++.diff

    --- a/timidity++/PKGBUILD 2013-06-06 01:45:15.627480183 +0800
    +++ b/timidity++/PKGBUILD 2013-06-06 01:56:25.255489134 +0800
    @@ -14,13 +14,16 @@
                 'xaw3d: for using the Xaw interface')
     backup=('etc/timidity++/timidity.cfg')
     source=(http://downloads.sourceforge.net/timidity/TiMidity++-${pkgver}.tar.xz \
    +        timidity++-maxalloc.diff
             timidity.cfg timidity.service)
     sha1sums=('15ec27f1ea3e718a8d61603521fc16df5c0dd24b'
    +          'SKIP'
               '660b3afbb720d26e8f008034cee66dd8da082d6e'
               'f0351b9eb8928d3d82c380107654a7dbe7cd2d54')
     
     build() {
       cd "${srcdir}/TiMidity++-${pkgver}"
    +  patch -p1 <"${srcdir}/timidity++-maxalloc.diff"
       sed -i -e 's/tcl8.5/tcl8.6 tcl8.5/' -e 's/tk8.5/tk8.6 tk8.5/' configure
       sed -i 's/my_interp->result/(char *) Tcl_GetObjResult(my_interp)/' interface/tk_c.c
       ./configure --prefix=/usr --mandir=/usr/share/man --with-default-path=/etc/timidity++/ \
    
  3. lib32-fontconfig 中保留 fc-cache fc-list fc-match 等命令。
    文件名:lib32-fontconfig.diff
    --- a/lib32-fontconfig/PKGBUILD 2013-06-05 06:07:34.000000000 +0800
    +++ b/lib32-fontconfig/PKGBUILD 2013-06-05 22:44:01.613122245 +0800
    @@ -54,7 +54,10 @@
     
       make DESTDIR="${pkgdir}" install
     
    -  rm -rf "${pkgdir}"/usr/{include,share,bin} "$pkgdir"/{etc,var}
    +  rm -rf "${pkgdir}"/usr/{include,share} "$pkgdir"/{etc,var}
    +  for i in "${pkgdir}"/usr/bin/fc-*; do
    +    mv "$i" "$i"32
    +  done
       mkdir -p "$pkgdir/usr/share/licenses"
       ln -s $_pkgbasename "$pkgdir/usr/share/licenses/$pkgname"
     }
    
后续还会继续追加……比如开启 Pidgin 的视频聊天功能等。