Re: [PATCH spice-gtk 2/2] Add copr builds integration

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

On 8/28/19 1:36 PM, Frediano Ziglio wrote:
Hi,

On 8/27/19 10:49 PM, Marc-André Lureau wrote:
Hi

On Tue, Aug 27, 2019 at 6:27 PM Snir Sheriber <ssheribe@xxxxxxxxxx> wrote:
This will let copr to generate srpm using the .copr/Makefile script
Do we really want to maintain that kind of distro things upstream? Do
we need it?

What does it bring that gitlab CI doesn't have?

This srpm is generated with every commit and then a build is triggered
in copr so that we'll have a repository of latest upstream packages which
can be easily enabled by simple "dnf copr enable X" command.
This should eventually replace the nightly builds repo which is currently
created by an unmaintained vm that runs cron job that creates the srpms
and push to copr (there is also a git repo for the spec file templates used
by it).
IMO replacing the current nightly copr should be more a requirement than a
"should". Removing an hidden, not open VM into some small hooks configuration
with open source code that people can change sounds really nice thing.
Having two semi-official development setups to package/use SPICE seems a
bit too much.

Hence the intention was not to use it as ci, just for creating this repo, if
i could have easily push the srpm created by gitlab ci to copr i would have
done it. (can be done but would require to maintain our own runners)

Mumble... could we not use artifacts and a webhook? So CI prepare the SRPM,
save in the artifacts and send a link to the SRPM using a copr webhook
(or something similar, not sure what can be done in copr)


AFAIK you cannot pass a link to copr.

BUT if it's a known address we may be able to do one of the following:

1. Create the SRPM in gitlab and use a small script to just to download it to
    copr's srpm_output dir.

2. Pass only the tarball as artifact and have a small script to download it and
    create the SRPM in the srpm_output dir of copr

Then copr will take the srpm from this dir and execute a build

This way we even can drop the Makefile since it's also possible to have the
script directly in copr (without root privileges)

I'll test those options, thanks!



Signed-off-by: Snir Sheriber <ssheribe@xxxxxxxxxx>
---
   .copr/Makefile | 29 +++++++++++++++++++++++++++++
   1 file changed, 29 insertions(+)
   create mode 100644 .copr/Makefile

diff --git a/.copr/Makefile b/.copr/Makefile
new file mode 100644
index 0000000..db297fb
--- /dev/null
+++ b/.copr/Makefile
@@ -0,0 +1,29 @@
+# This Makefile script is invoked by copr to build source rpm
+# See:
https://docs.pagure.org/copr.copr/user_documentation.html#make-srpm
When is the build actually triggered? Is copr monitoring the git
repository? Is there a hook somewhere in gitlab to trigger the build?

Yes, there is a gitlab hook that should be enabled (just by adding
the copr webhook url as gitlab hook)

Do you mean a gitlab (as gitlab.freedesktop.org) hook that trigger copr
build?


Yes

Snir.


+
+PROTOCOL_GIT_REPO = https://gitlab.freedesktop.org/spice/spice-protocol
+BUILD = meson gcc xz git rpm-build
+
+srpm:
+       dnf install -y $(BUILD)
+
+       # get upstream spice protocol
+       git clone $(PROTOCOL_GIT_REPO)
+       cd spice-protocol && meson -Dprefix=/usr/ build && ninja -C build
install
+       rm -rf spice-protocol
+
+       # get other dependencies for project excluding spice-protocol
+       dnf install -y `sed '/^BuildRequires:/!d; s/.*://;
s/\bspice-protocol\b//; s/>.*//' *.spec.in`
+
+       # do not use commit id for version
+       git fetch --tags
+       git describe --abbrev=0 | sed 's/v//' > .tarball-version
+       # create source rpm
+       meson --buildtype=release build
+       # Meson does not update submodules recursively
+       git submodule update --init --recursive
+       # this fix an issue with Meson dist
+       if ! test -r ../spice-common.git; then DIR=`basename "$$PWD"`; ln
-s "$$DIR/.git/modules/spice-common" ../spice-common.git; fi
+       rm -rf meson-dist
+       ninja -C build dist
+       rpmbuild -bs ./build/*spec --define "_sourcedir
$$PWD/build/meson-dist/" --define "_srcrpmdir $(outdir)"
Too much hacks for my taste here.

I agree but it's still less hacks than what we have now in order to
create the
nightly repo, hopefully this will become simpler once some copr & meson
issues will be solved (or we'll be able to use rpkg when it will support
submodules)

Snir.

Frediano
_______________________________________________
Spice-devel mailing list
Spice-devel@xxxxxxxxxxxxxxxxxxxxx
https://lists.freedesktop.org/mailman/listinfo/spice-devel




[Index of Archives]     [Linux Virtualization]     [Linux Virtualization]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux OMAP]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]     [Monitors]