# third_party_git **Repository Path**: lyn1996/third_party_git ## Basic Information - **Project Name**: third_party_git - **Description**: 适配openharmony的分布式版本控制系统Git的支持 - **Primary Language**: Unknown - **License**: GPL-2.0 - **Default Branch**: master - **Homepage**: https://gitee.com/openharmony-sig/third_party_git - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 5 - **Created**: 2024-10-30 - **Last Updated**: 2025-01-13 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # git #### 介绍 openharmony系统的分布式版本控制系统Git的支持,下载地址。 [下载地址2](store://opensource/install?id=com.develop.opensource.git) #### 代码下载 ``` git clone https://gitee.com/openharmony-sig/third_party_git ``` #### 软件架构 ``` ├── deps ---- Git编译依赖的三方库 ├── git-2.45.2.tar.gz ---- v2.45.2的Git源码 ├── patch ---- Git鸿蒙化需要修改的patch ├── README.en.md ---- 编译安装方法 └── README.md ---- 编译安装方法 ``` #### 编译环境配置 1. 在你的编译机器上首先配置编译工具链,在Openharmony发布的SDK中有一个ohos文件夹,该文件夹提供了可以在鸿蒙PC上可以使用的编译工具链 2. 准备编译工具make,下载地址。 3. 用以下脚本配置环境变量 ``` export OHOS_SDK=/your_path/ohos-sdk export AS=${OHOS_SDK}/native/llvm/bin/llvm-as export CC="${OHOS_SDK}/native/llvm/bin/clang --target=aarch64-linux-ohos" export CXX="${OHOS_SDK}/native/llvm/bin/clang++ --target=aarch64-linux-ohos" export LD=${OHOS_SDK}/native/llvm/bin/ld.lld export STRIP=${OHOS_SDK}/native/llvm/bin/llvm-strip export RANLIB=${OHOS_SDK}/native/llvm/bin/llvm-ranlib export OBJDUMP=${OHOS_SDK}/native/llvm/bin/llvm-objdump export OBJCOPY=${OHOS_SDK}/native/llvm/bin/llvm-objcopy export NM=${OHOS_SDK}/native/llvm/bin/llvm-nm export AR=${OHOS_SDK}/native/llvm/bin/llvm-ar export CFLAGS="-fPIC -D__MUSL__=1" export CXXFLAGS="-fPIC -D__MUSL__=1" export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:${OHOS_SDK}/native/llvm/lib ``` #### 安装教程 ##### 三方依赖库编译 1. 三方库源码下载 可以使用浏览器分别下载以下源码包,下载地址。 ``` https://github.com/libexpat/libexpat/releases/download/R_2_6_2/expat-2.6.2.tar.gz https://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.17.tar.gz https://github.com/PCRE2Project/pcre2/releases/download/pcre2-10.43/pcre2-10.43.tar.gz https://github.com/openssl/openssl/releases/download/OpenSSL_1_1_1w/openssl-1.1.1w.tar.gz https://curl.se/download/curl-8.0.1.tar.gz https://ftp.gnu.org/pub/gnu/gettext/gettext-0.22.tar.gz ``` 2. 三方库的编译 ``` tar zxvf expat-2.6.2.tar.gz cd expat-2.6.2/ ./configure --prefix=/your_path/git/deps --host=aarch64-linux --without-xmlwf --without-examples --without-tests --without-docbook --disable-shared make -j8 && make install ``` ``` tar zxvf openssl-1.1.1w.tar.gz cd openssl-1.1.1w/ ./Configure --prefix=/your_path/git/deps" --host=aarch64-linux --no-shared make -j8 && make install ``` ``` tar zxvf curl-8.0.1.tar.gz cd curl-8.0.1/ ./configure --prefix=/your_path/git/deps --host=aarch64-linux --with-openssl=/your_path/git/deps --with-ca-bundle=/etc/ssl/certs/cacert.pem --with-ca-path=/etc/ssl/certs --disable-shared CFLAGS="-Wno-int-conversion $CFLAGS" make-j8 && make install ``` ``` tar zxvf libiconv-1.17.tar.gz cd libiconv-1.17 ./configure --prefix=/your_path/git/deps --host=aarch64-linux --disable-shared make-j8 && make install ``` ``` tar zxvf pcre2-10.43.tar.gz cd pcre2-10.43/ ./configure --prefix=/your_path/git/deps --host=aarch64-linux --disable-shared make -j8 && make install ``` ``` tar zxvf gettext-0.22.tar.gz cd gettext-0.22/ ./configure --prefix=/your_path/git/deps --host=aarch64-linux --disable-shared CFLAGS="-Wno-int-conversion $CFLAGS" make -j8 && make install ``` 3. Git的编译 ``` # cd /your_path/git # tar zxvf git-2.45.2.tar.gz # cd git-2.45.2 # patch -p1 < ../patch/git_oh_pkg.patch # ./configure --prefix="${PWD}/install" --host=aarch64-linux --disable-pthreads \ ac_cv_iconv_omits_bom=yes \ ac_cv_fread_reads_directories=yes \ ac_cv_snprintf_returns_bogus=no \ ac_cv_lib_curl_curl_global_init=yes \ --with-libpcre2 \ --with-tcltk=no \ ac_cv_prog_CURL_CONFIG=${PWD}/../deps/bin/curl-config \ CPPFLAGS="-I${PWD}/../deps/include" \ LDFLAGS="-L${PWD}/../deps/lib" # make NO_GETTEXT=YesPlease install -j8 ``` 以上指令执行完,在/your_path/git/git-2.45.2/install中生成所有git的编译产物 #### 使用说明 ``` # cd /your_path/git/git-2.45.2/install/bin # ./git --version git version 2.45.2 ```