jmacd / xdelta

open-source binary diff, delta/differential compression tools, VCDIFF/RFC 3284 delta compression

Home Page:http://xdelta.org

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

xdelta3 on CentOS 6

Zlatokosa opened this issue · comments

Hi, I have to install xdelta3 on CentOS 6.8. With yum, only older versions are installed.
I found the following manual on the internet:

  • CentOS6 64bit
    Because there is no 'RPM package' of xdelta3 for CentOS6, It is necessary to get the source code and build it.

    Install the following if you do not have

    yum install git
    yum install libtool
    yum install xz
    yum install gcc-c++

    Installing autoconf

    cd /usr/local/src/
    wget http://ftp.gnu.org/gnu/autoconf/autoconf-2.69.tar.gz
    tar zxf autoconf-2.69.tar.gz
    cd autoconf-2.69
    ./configure
    make
    make install

    Confirming version

    autoconf -V

    Build and Installing xdelta

    git clone https://github.com/jmacd/xdelta-devel.git
    cd xdelta-devel
    wget http://tukaani.org/xz/xz-5.2.1.tar.xz
    cd xdelta3
    mkdir build
    ./run_release.sh
    cd build/x86_64-pc-linux-gnu-m64/xoff64/
    make
    make install
    cp -Rap bin/xdelta3 /usr/bin/xdelta3

    Confirming version

    /usr/bin/xdelta3 -V

I cannot perform ./run_release.sh without errors.
Among all errors, please take a look at following.
Also If you have better way to install xdelta3 on CentOS6, please let me know.

Error /usr/local/src/autoconf-2.69/xdelta-devel/xdelta3/configure in /usr/local/src/autoconf-2.69/xdelta-devel/xdelta3/build/x86_64-pc-linux-gnu-m64-afl/usize32/xoff32
... x86_64-pc-linux-gnu-m64-afl-32-64
configure-xdelta ... failed!
Error /usr/local/src/autoconf-2.69/xdelta-devel/xdelta3/configure in /usr/local/src/autoconf-2.69/xdelta-devel/xdelta3/build/x86_64-pc-linux-gnu-m64-afl/usize32/xoff64
... x86_64-pc-linux-gnu-m64-afl-64-64
configure-xdelta ... failed!
Error /usr/local/src/autoconf-2.69/xdelta-devel/xdelta3/configure in /usr/local/src/autoconf-2.69/xdelta-devel/xdelta3/build/x86_64-pc-linux-gnu-m64-afl/usize64/xoff64

Host i686-w64-mingw32-mconsole afl=0

Attach files:
autoconf-2.68.tar.gz
automake-1.15.tar.gz
xz-5.2.1.tar.gz

: libtoolize autoconf

yum -y install libtool libtool-ltdl libtool-ltdl-devel
yum install git
yum install gcc-c++

tar zxvf autoconf-2.68.tar.gz
cd autoconf-2.68
./configure --prefix=/usr/
make && make install
cd xdelta3 
cp -f xz-5.2.1.tar.gz ../
ln -sf /usr/share/libtool/config/config.sub  .

update automake :

tar -zxvf automake-1.15.tar.gz 
cd automake-1.15/
./configure --prefix=/usr/
make 
 make install
cd xdelta3
ln -sf /usr/share/automake-1.15/install-sh  ./install-sh

start make xdelta

cd xdelta3
rm -rf build && ./run_release.sh
cd build/x86_64-pc-linux-gnu-m64/xoff64/
make
make install

if run error : cc1plus: “-std=c++11” error
you need make in gcc4.8.2+:
need update gcc => gcc 4.8.2

参考:
http://blog.csdn.net/liubaohuachina/article/details/50699524
http://www.educity.cn/linux/1572887.html

I've got a version here that seems to work reasonably well. I relaxed a few library dependencies (automake, autoconf) and flipped the unsupported c++11 flags to the previous naming convention for gcc 4.4.7. You can find it here: https://github.com/kwharrigan/xdelta/tree/centos

Haven't done any extensive testing so ymmv.

See a CentOS-specific readme here:
https://github.com/kwharrigan/xdelta/blob/centos/xdelta3/README_centos.md

I created a RPM spec file for CentOS 6. I am attaching it here for those that are interested. I had to change the file extension from .spec to .txt because of GitHub's stupid filtering. You can build with a "plain vanilla" release of xdelta3.

To build

  • enable the two repositories referenced in the comments at the top of the spec file
  • 'yum install' all the BuildRequires
  • Ensure you have both the spec file (change the file extension to .spec) and the source tarball in the appropriate locations.
  • Run the following commands: (you may replace bash with zsh in the first command)
    -- scl enable devtoolset-3 bash
    -- cd (path-where-you-keep-your-spec-files)
    -- rpmbuild -ba xdelta3.spec
    -- (sudo or as root) yum localinstall (path-to-xdelta3-${version}.rpm)

(Edited because GitHub seems not to like angle brackets)

xdelta3.txt