Re: [Spice-devel] [PATCH spice-gtk 2/2] Add copr builds integration
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 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 --- .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 000..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@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/spice-devel
Re: [Spice-devel] [PATCH spice-gtk 2/2] Add copr builds integration
> > Hi, > > On 8/27/19 10:49 PM, Marc-André Lureau wrote: > > Hi > > > > On Tue, Aug 27, 2019 at 6:27 PM Snir Sheriber 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) > > > >> Signed-off-by: Snir Sheriber > >> --- > >> .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 000..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? > > > > >> + > >> +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@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/spice-devel
Re: [Spice-devel] [PATCH spice-gtk 2/2] Add copr builds integration
Hi, On 8/27/19 10:49 PM, Marc-André Lureau wrote: Hi On Tue, Aug 27, 2019 at 6:27 PM Snir Sheriber 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). 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) Signed-off-by: Snir Sheriber --- .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 000..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) + +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. -- 2.21.0 ___ Spice-devel mailing list Spice-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/spice-devel ___ Spice-devel mailing list Spice-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/spice-devel
Re: [Spice-devel] [PATCH spice-gtk 2/2] Add copr builds integration
Hi On Tue, Aug 27, 2019 at 6:27 PM Snir Sheriber 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? > > Signed-off-by: Snir Sheriber > --- > .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 000..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? > + > +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. > -- > 2.21.0 > > ___ > Spice-devel mailing list > Spice-devel@lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/spice-devel -- Marc-André Lureau ___ Spice-devel mailing list Spice-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/spice-devel
Re: [Spice-devel] [PATCH spice-gtk 2/2] Add copr builds integration
> > This will let copr to generate srpm using the .copr/Makefile script > > Signed-off-by: Snir Sheriber > --- > .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 000..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 > + > +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 Maybe adding a "--match=v\*" to git describe to avoid other tags beside the ones starting with "v" ? > + # 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 Sure you don't want build/meson-dist instead? > + ninja -C build dist > + rpmbuild -bs ./build/*spec --define "_sourcedir $$PWD/build/meson-dist/" > --define "_srcrpmdir $(outdir)" I would use *.spec, I know *spec works too, just a bit more specific. Frediano ___ Spice-devel mailing list Spice-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/spice-devel
[Spice-devel] [PATCH spice-gtk 2/2] Add copr builds integration
This will let copr to generate srpm using the .copr/Makefile script Signed-off-by: Snir Sheriber --- .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 000..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 + +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)" -- 2.21.0 ___ Spice-devel mailing list Spice-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/spice-devel