bz2.rb 1.52 KB
Newer Older
1 2 3
require 'package'

class Bz2 < Package
4
  version '1.0.6'
5 6 7
  source_url 'http://www.bzip.org/1.0.6/bzip2-1.0.6.tar.gz'
  source_sha1 '3f89f861209ce81a6bab1fd1998c0ef311712002'

8 9
  depends_on 'diffutils' => :build

10 11 12 13 14
  def self.build
    system "make -f Makefile-libbz2_so"
  end

  def self.install
15 16 17 18 19 20 21 22
    # bz2 Makefile doesn't have DESTDIR, so we need several tricks
    # to make it install files correctly.

    # Modify Makefile from "ln -s $(PREFIX)/bin/xxx $(PREFIX)/bin/yyy" to
    # "ln -s xxx $(PREFIX)/bin/yyy"
    system "sed", "-i", "Makefile", "-e", "/ln -s/s:$(PREFIX)/bin/::"

    # Use PREFIX instead of DESTDIR
23
    system "make", "PREFIX=#{CREW_DEST_DIR}/usr/local", "install"
24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41

    # Remove static library
    system "rm", "#{CREW_DEST_DIR}/usr/local/lib/libbz2.a"

    # Install bzip2 using shared library by hand
    system "cp", "-p", "bzip2-shared", "bzip2"
    system "cp", "-p", "bzip2", "#{CREW_DEST_DIR}/usr/local/bin/bzip2"
    system "ln", "-sf", "bzip2", "#{CREW_DEST_DIR}/usr/local/bin/bunzip2"
    system "ln", "-sf", "bzip2", "#{CREW_DEST_DIR}/usr/local/bin/bzcat"

    # Install shared library by hand
    system "cp", "-p", "libbz2.so.1.0.6", "#{CREW_DEST_DIR}/usr/local/lib"
    system "ln", "-s", "libbz2.so.1.0.6", "#{CREW_DEST_DIR}/usr/local/lib/libbz2.so.1.0"

    # Strip binaries and libraries
    system "strip #{CREW_DEST_DIR}/usr/local/bin/bzip2"
    system "strip #{CREW_DEST_DIR}/usr/local/bin/bzip2recover"
    system "strip -S #{CREW_DEST_DIR}/usr/local/lib/*"
42
  end
43 44 45 46

  def self.check
    system "make", "test"
  end
47
end