Add support and directions for doing builds with --build-in-place
This commit is contained in:
parent
975bf63eb5
commit
05f788e704
14
README.build-in-place
Normal file
14
README.build-in-place
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
== Building systemd rpms for local development using rpmbuild --build-in-place ==
|
||||||
|
|
||||||
|
This approach is based on https://github.com/filbranden/git-rpmbuild
|
||||||
|
and filbranden's talk during ASG2019 [https://cfp.all-systems-go.io/ASG2019/talk/JM7GDN/].
|
||||||
|
|
||||||
|
```
|
||||||
|
git clone https://github.com/systemd/systemd
|
||||||
|
fedpkg clone systemd fedora-systemd
|
||||||
|
cd systemd
|
||||||
|
rpmbuild -bb --build-in-place --noprep --define "_sourcedir $PWD/../fedora-systemd" --define "_rpmdir $PWD/rpms" --with inplace ../systemd.spec
|
||||||
|
sudo dnf upgrade --setopt install_weak_deps=False rpms/*/*.rpm
|
||||||
|
```
|
||||||
|
|
||||||
|
`--without lto` and `--without tests` may be useful to speed up the build.
|
21
systemd.spec
21
systemd.spec
@ -23,10 +23,21 @@
|
|||||||
%bcond_without tests
|
%bcond_without tests
|
||||||
%bcond_without lto
|
%bcond_without lto
|
||||||
|
|
||||||
|
# Support for quick builds with rpmbuild --build-in-place.
|
||||||
|
# See README.build-in-place.
|
||||||
|
%bcond_with inplace
|
||||||
|
|
||||||
Name: systemd
|
Name: systemd
|
||||||
Url: https://www.freedesktop.org/wiki/Software/systemd
|
Url: https://www.freedesktop.org/wiki/Software/systemd
|
||||||
|
%if %{without inplace}
|
||||||
Version: 248.3
|
Version: 248.3
|
||||||
Release: 1%{?dist}
|
Release: 1%{?dist}
|
||||||
|
%else
|
||||||
|
# determine the build information from local checkout
|
||||||
|
Version: %(tools/meson-vcs-tag.sh . error | sed -r 's/-([0-9])/.^\1/; s/-g/_g/')
|
||||||
|
Release: 1
|
||||||
|
%endif
|
||||||
|
|
||||||
# For a breakdown of the licensing, see README
|
# For a breakdown of the licensing, see README
|
||||||
License: LGPLv2+ and MIT and GPLv2+
|
License: LGPLv2+ and MIT and GPLv2+
|
||||||
Summary: System and Service Manager
|
Summary: System and Service Manager
|
||||||
@ -481,7 +492,15 @@ CONFIGURE_OPTS=(
|
|||||||
%global _lto_cflags %nil
|
%global _lto_cflags %nil
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
%meson "${CONFIGURE_OPTS[@]}"
|
# Do configuration. If doing an inplace build, try to do
|
||||||
|
# reconfiguration to pick up new options.
|
||||||
|
%if %{with inplace}
|
||||||
|
command -v ccache 2>/dev/null && { CC="${CC:-ccache %__cc}"; CXX="${CXX:-ccache %__cxx}"; }
|
||||||
|
|
||||||
|
[ -e %{_vpath_builddir}/build.ninja ] &&
|
||||||
|
%__meson configure %{_vpath_builddir} "${CONFIGURE_OPTS[@]}" ||
|
||||||
|
%endif
|
||||||
|
{ %meson "${CONFIGURE_OPTS[@]}"; }
|
||||||
|
|
||||||
new_triggers=%{_vpath_builddir}/src/rpm/triggers.systemd.sh
|
new_triggers=%{_vpath_builddir}/src/rpm/triggers.systemd.sh
|
||||||
if ! diff -u %{SOURCE1} ${new_triggers}; then
|
if ! diff -u %{SOURCE1} ${new_triggers}; then
|
||||||
|
Loading…
Reference in New Issue
Block a user