File _image.spec.in of Package obs-source-service-podman
# needsrootforbuild
%define image_name __IMAGE_NAME__
%define containers_dir /srv/obs/service/containers
%define containers_user obsservicerun
Url: http://www.suse.com/
Name: __NAME__
Summary: Package with the OBS source service container image
Version: __VERSION__
Release: __RELEASE__
Group: System/Management
License: SUSE-EULA
Source0: __SOURCE0__
Source1: __SOURCE1__
Source2: __SOURCE2__
BuildRoot: %{_tmppath}/%{name}-%{version}-build
Requires: podman
# Requires: user(obsservicerun)
Requires: obs-server
%description
This package contains the unofficial container image of the OBS source services.
%prep
echo __RELEASE__ > BUILD_ID
%build
%install
install -d -m 755 $RPM_BUILD_ROOT%{_datadir}/suse-container-images/native
install -p -D -m 644 %{SOURCE0} $RPM_BUILD_ROOT%{_datadir}/suse-container-images/native/
install -p -D -m 644 %{SOURCE1} $RPM_BUILD_ROOT%{_datadir}/suse-container-images/native/
install -p -D -m 644 %{SOURCE2} $RPM_BUILD_ROOT%{_datadir}/suse-container-images/native/
ln -s ./$(basename %{SOURCE0}) $RPM_BUILD_ROOT%{_datadir}/suse-container-images/native/__PKG_NAME__
ln -s ./$(basename %{SOURCE1}) $RPM_BUILD_ROOT%{_datadir}/suse-container-images/native/__PKG_NAME__.%{_arch}-__VERSION__-Build__RELEASE__.metadata
ln -s ./$(basename %{SOURCE2}) $RPM_BUILD_ROOT%{_datadir}/suse-container-images/native/__PKG_NAME__.%{_arch}-__VERSION__-Build__RELEASE__.tag
mkdir -p %{buildroot}/usr/lib/obs/services/
mkdir -p %{buildroot}/etc/obs/services/scm-bridge
cp BUILD_ID $RPM_BUILD_ROOT%{_datadir}/suse-container-images/native/
if [[ -d /usr/src/packages/KIWIROOT ]];then
KIWIROOT="/usr/src/packages/KIWIROOT"
elif [[ -d /usr/src/packages/KIWIROOT-docker ]];then
KIWIROOT="/usr/src/packages/KIWIROOT-docker"
fi
if [[ -n $KIWIROOT ]];then
[[ -d %{buildroot}/usr/lib/obs/service/ ]] || \
mkdir -p %{buildroot}/usr/lib/obs/service/
cp $KIWIROOT/usr/lib/obs/service/*.service \
%{buildroot}/usr/lib/obs/service/ || /bin/true
fi
%files
%defattr(-, root, root)
%{_datadir}/suse-container-images/native
%dir /usr/lib/obs
%dir /etc/obs/services/scm-bridge
/usr/lib/obs/service/
%post
if [ ! -d %{containers_dir} ];then
mkdir -p %{containers_dir}
fi
chown -R %{containers_user} %{containers_dir}
C_UID=`id -u %{containers_user}`
[ -d /run/user/${C_UID}/containers/ ] && chown -R %{containers_user} /run/user/${C_UID}/containers/
echo "Loading image"
su -s /bin/sh -l -c "podman --log-level debug --root %{containers_dir} --storage-opt overlay.mount_program=/usr/bin/fuse-overlayfs load -qi %{_datadir}/suse-container-images/native/__PKG_NAME__.%{_arch}-__VERSION__-Build__RELEASE__.docker.tar.xz" %{containers_user}
echo "Tagging image"
su -s /bin/sh -l -c "podman --log-level debug --root %{containers_dir} --storage-opt overlay.mount_program=/usr/bin/fuse-overlayfs tag docker.io/library/__PKG_NAME__:%{version} __PKG_NAME__:latest" %{containers_user}
echo "Pruning old images"
su -s /bin/sh -l -c "podman --log-level debug --root %{containers_dir} --storage-opt overlay.mount_program=/usr/bin/fuse-overlayfs image prune --force" %{containers_user}
%changelog