Compare commits
7 Commits
master
...
Release_2.
Author | SHA1 | Date |
---|---|---|
![]() |
76cd8e7b84 | 3 years ago |
![]() |
c31f44447e | 3 years ago |
![]() |
5b9d3e352c | 3 years ago |
![]() |
51e54e5aba | 3 years ago |
![]() |
dc65fa6e68 | 4 years ago |
![]() |
bc6a6fe3c5 | 4 years ago |
![]() |
f1060d82bf | 4 years ago |
16 changed files with 258 additions and 78 deletions
@ -0,0 +1,56 @@ |
|||
include ../DEPENDENCIES |
|||
export
|
|||
CURRENT_DISTRO=${CI_DISTRO_TARGET} |
|||
IMAGE_NAME=${DOCKER_REGISTRY_HOST}/pep-$(CI_DISTRO_TARGET)-libpepadapter |
|||
DOCKERFILE=libpEpAdapter.linux.Dockerfile |
|||
PKG_BUILD_IMAGE=${DOCKER_REGISTRY_HOST}/fpm-$(CURRENT_DISTRO) |
|||
PKG_INSTALL_PATH=/opt/pEp |
|||
PKG_NAME=libpEpAdapter |
|||
PKG_DESCRIPTION="p≡p libpEpAdapter Binary RPM Package" |
|||
PKG_DEPENDS=pEpEngine |
|||
PKG_INSTALL_PATH_STRING="/ /package/lib=${PKG_INSTALL_PATH} /package/include/pEp=${PKG_INSTALL_PATH}/include" |
|||
IS_TAGGED=${TAGGED_BUILD} |
|||
ifeq ($(IS_TAGGED), true) |
|||
# $CI_COMMIT_TAG is a predefined environment variable from Gitlab
|
|||
LIBPEPADAPTER_VERSION=${CI_COMMIT_TAG} |
|||
else |
|||
LIBPEPADAPTER_VERSION=$(shell git rev-parse --short=8 HEAD) |
|||
endif |
|||
all: build |
|||
|
|||
build: |
|||
-docker pull --quiet $(IMAGE_NAME):latest |
|||
cd ../ && docker build --build-arg CURRENT_DISTRO=$(CURRENT_DISTRO) \
|
|||
--build-arg DOCKER_REGISTRY_HOST=${DOCKER_REGISTRY_HOST} \
|
|||
--build-arg LIBPEPADAPTER_VERSION=$(LIBPEPADAPTER_VERSION) \
|
|||
--cache-from $(IMAGE_NAME):latest \
|
|||
--tag=$(IMAGE_NAME):$(LIBPEPADAPTER_VERSION) \
|
|||
--tag=$(IMAGE_NAME):latest \
|
|||
-f scripts/common/$(DOCKERFILE) . |
|||
docker push --quiet $(IMAGE_NAME):${LIBPEPADAPTER_VERSION} |
|||
docker push --quiet $(IMAGE_NAME):latest |
|||
|
|||
rpm: |
|||
-docker pull --quiet $(PKG_BUILD_IMAGE)-libpepadapter:latest |
|||
@docker build --build-arg CURRENT_DISTRO=$(CURRENT_DISTRO) \
|
|||
--build-arg LIBPEPADAPTER_VERSION=$(LIBPEPADAPTER_VERSION) \
|
|||
--build-arg DOCKER_REGISTRY_HOST=${DOCKER_REGISTRY_HOST} \
|
|||
--build-arg PKG_INSTALL_PATH=$(PKG_INSTALL_PATH) \
|
|||
--cache-from $(PKG_BUILD_IMAGE)-engine:latest \
|
|||
--tag=$(PKG_BUILD_IMAGE)-libpepadapter:$(LIBPEPADAPTER_VERSION) \
|
|||
--tag=$(PKG_BUILD_IMAGE)-libpepadapter:latest \
|
|||
centos8/packages/rpm |
|||
@docker push --quiet $(PKG_BUILD_IMAGE)-libpepadapter:$(LIBPEPADAPTER_VERSION) |
|||
@docker push --quiet $(PKG_BUILD_IMAGE)-libpepadapter:latest |
|||
@docker run -e LIBPEPADAPTER_VERSION=$(LIBPEPADAPTER_VERSION) \
|
|||
-e PEP_MACHINE_DIR=$(PEP_MACHINE_DIR) \
|
|||
-e PKG_VERSION=$(LIBPEPADAPTER_VERSION) \
|
|||
-e PKG_INSTALL_PATH=$(PKG_INSTALL_PATH) \
|
|||
-e PKG_NAME=$(PKG_NAME) \
|
|||
-e PKG_DESCRIPTION=$(PKG_DESCRIPTION) \
|
|||
-e PKG_DEPENDS=$(PKG_DEPENDS) \
|
|||
-e PKG_INSTALL_PATH_STRING=$(PKG_INSTALL_PATH_STRING) \
|
|||
--rm -v $(shell pwd)/centos8/packages/rpm/create-libpepadapter-rpm.sh:/usr/bin/create-rpm.sh:ro \
|
|||
-v $(shell pwd)/out:/out \
|
|||
-w / $(PKG_BUILD_IMAGE)-libpepadapter:${LIBPEPADAPTER_VERSION} \
|
|||
/usr/bin/create-rpm.sh |
@ -1,15 +0,0 @@ |
|||
CURRENT_DISTRO=$(shell basename $(shell pwd)) |
|||
LIBPEPADAPTER_VERSION=$(shell git rev-parse --short=8 HEAD) |
|||
IMAGE_NAME=${DOCKER_REGISTRY_HOST}/pep-$(CURRENT_DISTRO)-libpepadapter |
|||
DOCKERFILE=libpEpAdapter.$(CURRENT_DISTRO).Dockerfile |
|||
all: |
|||
-docker pull $(IMAGE_NAME):latest |
|||
cd ../../ && docker build --build-arg CURRENT_DISTRO=$(CURRENT_DISTRO) \
|
|||
--build-arg DOCKER_REGISTRY_HOST=${DOCKER_REGISTRY_HOST} \
|
|||
--build-arg LIBPEPADAPTER_VERSION=$(LIBPEPADAPTER_VERSION) \
|
|||
--cache-from $(IMAGE_NAME):latest \
|
|||
--tag=$(IMAGE_NAME):$(LIBPEPADAPTER_VERSION) \
|
|||
--tag=$(IMAGE_NAME):latest \
|
|||
-f scripts/${CURRENT_DISTRO}/$(DOCKERFILE) . |
|||
docker push $(IMAGE_NAME):${LIBPEPADAPTER_VERSION} |
|||
docker push $(IMAGE_NAME):latest |
@ -1,23 +0,0 @@ |
|||
ARG DOCKER_REGISTRY_HOST |
|||
ARG CURRENT_DISTRO |
|||
ARG PEPENGINE_VERSION=latest |
|||
FROM ${DOCKER_REGISTRY_HOST}/pep-${CURRENT_DISTRO}-engine:${PEPENGINE_VERSION} |
|||
|
|||
ENV BUILDROOT /build |
|||
ENV INSTPREFIX /install |
|||
ENV OUTDIR /out |
|||
|
|||
### Setup working directory |
|||
RUN mkdir ${BUILDROOT}/libpEpAdapter |
|||
COPY . ${BUILDROOT}/libpEpAdapter |
|||
USER root |
|||
RUN chown -R pep-builder:pep-builder ${BUILDROOT}/libpEpAdapter |
|||
USER pep-builder |
|||
WORKDIR ${BUILDROOT}/libpEpAdapter |
|||
|
|||
ARG LIBPEPADAPTER_VERSION |
|||
ARG CURRENT_DISTRO |
|||
|
|||
### Build libpEpAdapter |
|||
RUN sh ./scripts/${CURRENT_DISTRO}/build_libpEpAdapter.sh && \ |
|||
rm -rf ${BUILDROOT}/* |
@ -0,0 +1,18 @@ |
|||
ARG DOCKER_REGISTRY_HOST |
|||
ARG CURRENT_DISTRO |
|||
ARG LIBPEPADAPTER_VERSION |
|||
FROM ${DOCKER_REGISTRY_HOST}/pep-${CURRENT_DISTRO}-libpepadapter:${LIBPEPADAPTER_VERSION} AS pEpBuild |
|||
|
|||
FROM ${DOCKER_REGISTRY_HOST}/fpm-${CURRENT_DISTRO}:latest |
|||
# whatever is required for building should be installed in this image; just like BuildRequires: for RPM specs |
|||
RUN yum -y install readline-devel epel-release && \ |
|||
yum -y install patchelf chrpath |
|||
|
|||
ARG PEP_MACHINE_DIR |
|||
COPY --from=pEpBuild /install /source |
|||
|
|||
COPY install.sh /usr/local/bin/install.sh |
|||
|
|||
ENV INSTPREFIX /source |
|||
|
|||
RUN /usr/local/bin/install.sh |
@ -0,0 +1,27 @@ |
|||
#!/bin/bash -ex |
|||
# we should always set proper ownership before exiting, otherwise |
|||
# the created packages will have root:root ownership and we'll be unable |
|||
# to delete them from our host. |
|||
trap 'chown -R --reference /usr/bin/create-rpm.sh /out/' EXIT |
|||
|
|||
# the source directory is mounted read-only to prevent issues where the build |
|||
# could alter the source; we should copy it somewhere inside the container |
|||
cd /source/out |
|||
ls -alh |
|||
tree |
|||
INSTALL_TOP=/package |
|||
mkdir -p ${INSTALL_TOP}/lib |
|||
mkdir -p ${INSTALL_TOP}/include/pEp |
|||
cp -ar lib/* ${INSTALL_TOP}/lib/. |
|||
cp -ar include/pEp/* ${INSTALL_TOP}/include/pEp/. |
|||
|
|||
|
|||
cd /out |
|||
|
|||
#this would be the no-signature command line |
|||
fpm -t rpm -s dir \ |
|||
-n ${PKG_NAME} \ |
|||
--version ${PKG_VERSION} \ |
|||
--description "${PKG_DESCRIPTION}" \ |
|||
--depends ${PKG_DEPENDS} \ |
|||
-C ${PKG_INSTALL_PATH_STRING} |
@ -0,0 +1,32 @@ |
|||
#!/bin/bash |
|||
set -exuo pipefail |
|||
|
|||
# =========================== |
|||
# Distro |
|||
# =========================== |
|||
|
|||
echo 7 >"${INSTPREFIX}/D_REVISION" |
|||
|
|||
D_REV=$(cat ${INSTPREFIX}/D_REVISION) |
|||
D="" |
|||
|
|||
D=${INSTPREFIX}/out |
|||
|
|||
mkdir -p ${INSTPREFIX}/out |
|||
rm -rf ${INSTPREFIX}/out/* |
|||
mkdir -p "$D"/{bin,ld,lib/pEp,share/pEp,include/pEp} |
|||
|
|||
# libpEpAdapter |
|||
cp -a ${INSTPREFIX}/lib/libpEpAdapter.a "$D"/lib |
|||
cp -av ${INSTPREFIX}/include/pEp/{status_to_string.hh,message_cache.hh,call_with_lock.hh,Adapter.hh,callback_dispatcher.hh,locked_queue.hh,slurp.hh,constant_time_algo.hh,Semaphore.hh,pc_container.hh,passphrase_cache.hh,pEpLog.hh,Adapter.hxx,passphrase_cache.hxx} "$D"/include/pEp |
|||
|
|||
|
|||
# versions |
|||
cp -a ${INSTPREFIX}/*.ver "$D" |
|||
|
|||
find "$D"/lib -maxdepth 1 -type f -print -exec patchelf --set-rpath '$ORIGIN/pEp:$ORIGIN' {} \; |
|||
find "$D"/lib/pEp -type f -print -exec patchelf --set-rpath '$ORIGIN' {} \; |
|||
find "$D"/bin -type f -print -exec patchelf --set-rpath '$ORIGIN/../lib/pEp:$ORIGIN/../lib' {} \; |
|||
|
|||
ls -lh "$D"/* |
|||
du -sch "$D" |
@ -1,27 +0,0 @@ |
|||
include ../../DEPENDENCIES |
|||
export
|
|||
PEPENGINE_VERSION=${pEpEngine} |
|||
CURRENT_DISTRO=$(shell basename $(shell pwd)) |
|||
IMAGE_NAME=${DOCKER_REGISTRY_HOST}/pep-$(CURRENT_DISTRO)-libpepadapter |
|||
DOCKERFILE=libpEpAdapter.$(CURRENT_DISTRO).Dockerfile |
|||
IS_TAGGED=${TAGGED_BUILD} |
|||
ifeq ($(IS_TAGGED), true) |
|||
# $CI_COMMIT_TAG is a predefined environment variable from Gitlab
|
|||
LIBPEPADAPTER_VERSION=${CI_COMMIT_TAG} |
|||
else |
|||
LIBPEPADAPTER_VERSION=$(shell git rev-parse --short=8 HEAD) |
|||
endif |
|||
all: |
|||
-docker pull $(IMAGE_NAME):latest |
|||
cd ../../ && docker build --build-arg CURRENT_DISTRO=$(CURRENT_DISTRO) \
|
|||
--build-arg DOCKER_REGISTRY_HOST=${DOCKER_REGISTRY_HOST} \
|
|||
--build-arg PEPENGINE_VERSION=$(PEPENGINE_VERSION) \
|
|||
--build-arg LIBPEPADAPTER_VERSION=$(LIBPEPADAPTER_VERSION) \
|
|||
--cache-from $(IMAGE_NAME):latest \
|
|||
--tag=$(IMAGE_NAME):$(LIBPEPADAPTER_VERSION) \
|
|||
--tag=$(IMAGE_NAME):${LIBPEPADAPTER_VERSION}_engine-${PEPENGINE_VERSION} \
|
|||
--tag=$(IMAGE_NAME):latest \
|
|||
-f scripts/${CURRENT_DISTRO}/$(DOCKERFILE) . |
|||
docker push $(IMAGE_NAME):${LIBPEPADAPTER_VERSION} |
|||
docker push $(IMAGE_NAME):${LIBPEPADAPTER_VERSION}_engine-${PEPENGINE_VERSION} |
|||
docker push $(IMAGE_NAME):latest |
@ -1,8 +0,0 @@ |
|||
#!/usr/bin/env sh |
|||
set -exo |
|||
|
|||
echo "ENGINE_LIB_PATH=${INSTPREFIX}/lib" >> local.conf |
|||
echo "ENGINE_INC_PATH=${INSTPREFIX}/include" >> local.conf |
|||
|
|||
make |
|||
make install PREFIX="${INSTPREFIX}" |
@ -0,0 +1,22 @@ |
|||
// This file is under GNU General Public License 3.0
|
|||
// see LICENSE.txt
|
|||
|
|||
#include <iostream> |
|||
#include <assert.h> |
|||
#include <unistd.h> |
|||
#include <sys/param.h> |
|||
|
|||
#include <pEpLog.hh> |
|||
#include <Adapter.hh> |
|||
|
|||
using namespace std; |
|||
using namespace pEp; |
|||
|
|||
int main(int argc, char **argv) |
|||
{ |
|||
// ::PEP_SESSION session_;
|
|||
// ::PEP_STATUS status = ::init(&session_, NULL, NULL, NULL);
|
|||
|
|||
Adapter::session(); |
|||
return 0; |
|||
} |
Loading…
Reference in new issue