|
| 1 | + |
| 2 | +sudo apt-get install -y --quiet buildah podman |
| 3 | + |
| 4 | +# remove tmpctn if exists |
| 5 | +buildah ps | grep $CTN_BUILD_TDLIB |
| 6 | +[[ $? -eq 0 ]] && buildah rm $CTN_BUILD_TDLIB || \ |
| 7 | + echo "[INFO] $CTN_BUILD_TDLIB not found" |
| 8 | +[[ $? -eq 0 ]] || exit 1 |
| 9 | + |
| 10 | +buildah ps | grep $CTN_PACK_TDLIB |
| 11 | +[[ $? -eq 0 ]] && buildah rm $CTN_PACK_TDLIB || \ |
| 12 | + echo "[INFO] $CTN_PACK_TDLIB not found" |
| 13 | +[[ $? -eq 0 ]] || exit 2 |
| 14 | + |
| 15 | +buildah ps | grep $CTN_PACK_TOOLC |
| 16 | +[[ $? -eq 0 ]] && buildah rm $CTN_PACK_TOOLC || \ |
| 17 | + echo "[INFO] $CTN_PACK_TOOLC not found" |
| 18 | +[[ $? -eq 0 ]] || exit 2 |
| 19 | + |
| 20 | +# prepare gcc img |
| 21 | +buildah ps | grep $CTN_PACK_TDLIB |
| 22 | +if [[ $? -ne 0 ]] |
| 23 | +then |
| 24 | + buildah from --name $CTN_PACK_TOOLC "docker.io/micl2e2/$PICK_TOOLC_IMGFULLNAME" |
| 25 | + [[ $? -eq 0 ]] || exit 3 |
| 26 | + buildah inspect "docker.io/micl2e2/$PICK_TOOLC_IMGFULLNAME" | grep FromImageID |
| 27 | + [[ $? -eq 0 ]] || exit 3 |
| 28 | +fi |
| 29 | + |
| 30 | +# prepare build ctn |
| 31 | +buildah from --name $CTN_BUILD_TDLIB $PICK_BASEIMG |
| 32 | +[[ $? -eq 0 ]] || exit 4 |
| 33 | + |
| 34 | +USE_APT_MIRROR="deb.debian.org" |
| 35 | +[[ -n $PICK_APT_MIRROR ]] && USE_APT_MIRROR=$PICK_APT_MIRROR |
| 36 | +buildah run $CTN_BUILD_TDLIB -- \ |
| 37 | + sed -i "s/deb.debian.org/${USE_APT_MIRROR}/" /etc/apt/sources.list |
| 38 | +[[ $? -eq 0 ]] || exit 3 |
| 39 | + |
| 40 | +buildah run $CTN_BUILD_TDLIB -- \ |
| 41 | + apt-get -o Acquire::ForceIPv4=true update |
| 42 | +[[ $? -eq 0 ]] || exit 5 |
| 43 | + |
| 44 | +buildah run $CTN_BUILD_TDLIB -- \ |
| 45 | + apt-get -o Acquire::ForceIPv4=true install gperf cmake g++ git zlib1g-dev libssl-dev wget -y --quiet |
| 46 | +[[ $? -eq 0 ]] || exit 6 |
| 47 | + |
| 48 | +$PXY_FRONTEND buildah run $CTN_BUILD_TDLIB -- \ |
| 49 | + bash -c "git clone --depth=1000 https://github.com/tdlib/td" |
| 50 | +[[ $? -eq 0 ]] || exit 7 |
| 51 | + |
| 52 | +buildah run $CTN_BUILD_TDLIB -- \ |
| 53 | + bash -c "cd td && git reset --hard $PICK_TDLIB_SRC" |
| 54 | +[[ $? -eq 0 ]] || exit 8 |
| 55 | + |
| 56 | +# grab gcc bins |
| 57 | +buildah copy --from $CTN_PACK_TOOLC $CTN_BUILD_TDLIB '/usr/local' '/usr/local' |
| 58 | +[[ $? -eq 0 ]] || exit 9 |
| 59 | + |
| 60 | +buildah run $CTN_BUILD_TDLIB -- \ |
| 61 | + bash -c "cd td && cmake -DCMAKE_BUILD_TYPE=Release -DOPENSSL_USE_STATIC_LIBS=TRUE -DZLIB_USE_STATIC_LIBS=ON -DCMAKE_C_COMPILER=/usr/local/bin/alt-gcc -DCMAKE_CXX_COMPILER=/usr/local/bin/alt-g++ -B build" |
| 62 | +[[ $? -eq 0 ]] || exit 10 |
| 63 | + |
| 64 | +buildah run $CTN_BUILD_TDLIB -- \ |
| 65 | + bash -c 'cd td/build && LD_LIBRARY_PATH=/usr/local/lib64:$LD_LIBRARY_PATH make -j$(nproc)' |
| 66 | +[[ $? -eq 0 ]] || exit 11 |
| 67 | + |
| 68 | +buildah run $CTN_BUILD_TDLIB -- \ |
| 69 | + bash -c 'cd td/build && LD_LIBRARY_PATH=/usr/local/lib64:$LD_LIBRARY_PATH make test' |
| 70 | +[[ $? -eq 0 ]] || exit 12 |
| 71 | + |
| 72 | +buildah run $CTN_BUILD_TDLIB -- \ |
| 73 | + bash -c 'cd td/build && LD_LIBRARY_PATH=/usr/local/lib64:$LD_LIBRARY_PATH make install' |
| 74 | +[[ $? -eq 0 ]] || exit 13 |
| 75 | + |
| 76 | +# package |
| 77 | + |
| 78 | +buildah from --name $CTN_PACK_TDLIB $PICK_BASEIMG |
| 79 | +[[ $? -eq 0 ]] || exit 14 |
| 80 | + |
| 81 | +buildah copy --from $CTN_BUILD_TDLIB $CTN_PACK_TDLIB '/usr/local' '/usr/local' |
| 82 | +[[ $? -eq 0 ]] || exit 15 |
| 83 | + |
| 84 | +buildah commit $CTN_PACK_TDLIB $PICK_TDLIB_IMGFULLNAME |
| 85 | +[[ $? -eq 0 ]] || exit 16 |
| 86 | + |
| 87 | +# save tar |
| 88 | +podman save --output $PICK_TDLIB_ARTIFACTNAME.tar --format oci-archive $PICK_TDLIB_IMGFULLNAME |
| 89 | +[[ $? -eq 0 ]] || exit 17 |
| 90 | + |
| 91 | +# save json |
| 92 | +buildah inspect $PICK_TDLIB_IMGFULLNAME >$PICK_TDLIB_ARTIFACTNAME.json |
| 93 | +[[ $? -eq 0 ]] || exit 18 |
| 94 | + |
| 95 | +# save checksums |
| 96 | +sha512sum $PICK_TDLIB_ARTIFACTNAME.tar >> CHECKSUMS |
| 97 | +[[ $? -eq 0 ]] || exit 19 |
| 98 | +sha512sum $PICK_TDLIB_ARTIFACTNAME.json >> CHECKSUMS |
| 99 | +[[ $? -eq 0 ]] || exit 20 |
| 100 | + |
0 commit comments