Join GitHub today
GitHub is home to over 28 million developers working together to host and review code, manage projects, and build software together.
Sign upbuild proper src.rpm packages #1508
Comments
marmarek
added
enhancement
C: builder
P: major
labels
Dec 11, 2015
marmarek
added this to the Release 3.2 milestone
Dec 11, 2015
added a commit
that referenced
this issue
May 31, 2016
added a commit
to marmarek/qubes-core-libvirt
that referenced
this issue
Jul 29, 2016
marmarek
modified the milestones:
Release 3.2,
Release 4.0
Aug 5, 2016
qubesos-bot
referenced this issue
in QubesOS/updates-status
Apr 2, 2017
Closed
core-libvirt v3.1.0-1 (r4.0) #24
marmarek
referenced this issue
in QubesOS/qubes-core-qubesdb
Nov 6, 2017
Closed
rpmbuild: fix build error for empty debug files #7
added a commit
to marmarek/qubes-builder-rpm
that referenced
this issue
Nov 9, 2017
added a commit
to marmarek/qubes-builder-rpm
that referenced
this issue
Nov 9, 2017
added a commit
to marmarek/qubes-builder-rpm
that referenced
this issue
Nov 9, 2017
added a commit
to marmarek/qubes-builder-rpm
that referenced
this issue
Nov 9, 2017
added a commit
to marmarek/qubes-builder-rpm
that referenced
this issue
Nov 9, 2017
added a commit
to marmarek/qubes-linux-utils
that referenced
this issue
Nov 9, 2017
This comment has been minimized.
Show comment
Hide comment
This comment has been minimized.
marmarek
Nov 9, 2017
Member
Work in progress version here: https://github.com/marmarek/qubes-builder-fedora/tree/reprobuild + https://github.com/marmarek/qubes-builder/tree/reprobuild
This require source component to be modified:
- Rename .spec to .spec.in, use
@VERSION@instead ofcat versionhack. - Make sure that symlink hack in %prep is either under
%if 0%{?qubes_builder}, or removed. - Same for
%define _builddir %(pwd). - Add
Source0: %{name}-%{version}.tar.gz - If component use BACKEND_VMM variable, set it in spec with
@BACKEND_VMM@, for exampleexport BACKEND_VMM=@BACKEND_VMM@. - Set
RPM_USE_MOCKBUILD = 1inMakefile.builderof that component.
Example modified component: https://github.com/marmarek/qubes-linux-utils/tree/srcrpm
Missing parts:
- replace
git archivewith tar and move it to builder-fedora plugin; to have more explicit format and archive layout, and also to take into account local changes (devel builds) - see reprobuild branch in builder-debian - fill changelog in spec (see issue description)
- handle the case when source tarball is already provided (vmm-xen, linux-kernel, installer-qubes-os)
- handle multi-package components (installer-qubes-os) - related to replacing
git archive - fix building "new" type packages using "old" code - for fast devel builds (avoid installing build deps every time)
- verify if "old" code really build all "old" components - for example if all Qubes 3.2 can be built
- verify if
INCREMENT_DEVEL_VERSIONS=1still works - verify if
signandupdate-repo/check-repotargets still works
cc @fepitre
|
Work in progress version here: https://github.com/marmarek/qubes-builder-fedora/tree/reprobuild + https://github.com/marmarek/qubes-builder/tree/reprobuild This require source component to be modified:
Example modified component: https://github.com/marmarek/qubes-linux-utils/tree/srcrpm Missing parts:
cc @fepitre |
This comment has been minimized.
Show comment
Hide comment
This comment has been minimized.
fepitre
Nov 9, 2017
Member
Great job! So the starting point here is to handle the missing parts and doing the "repack" of all the components?
|
Great job! So the starting point here is to handle the missing parts and doing the "repack" of all the components? |
This comment has been minimized.
Show comment
Hide comment
This comment has been minimized.
marmarek
Nov 9, 2017
Member
So the starting point here is to handle the missing parts and doing the "repack" of all the components?
Yes. While working on some of them it may turn out some better options for Makefile.builder in each component will suit there. Some alternative approach is to specify "builder compatibility version", instead of requested feature. This might ease handling similar changes in the future.
Yes. While working on some of them it may turn out some better options for |
This comment has been minimized.
Show comment
Hide comment
This comment has been minimized.
fepitre
Nov 11, 2017
Member
I'm looking at Mock possibilities and I'm testing the --buildsrpm using the spec file. Preliminaries tests of packaging work great but I encounter a problem with folders of patches. Is there a way to include easily folders of patches (e.g. patches.misc) with all the patches inside included? It seems that we have to list explicitly all the patches (like it is done in series.conf) and or Fedora upstream xen.spec. It that case it would rethink the way of applying patches?
|
I'm looking at Mock possibilities and I'm testing the --buildsrpm using the spec file. Preliminaries tests of packaging work great but I encounter a problem with folders of patches. Is there a way to include easily folders of patches (e.g. patches.misc) with all the patches inside included? It seems that we have to list explicitly all the patches (like it is done in series.conf) and or Fedora upstream xen.spec. It that case it would rethink the way of applying patches? |
This comment has been minimized.
Show comment
Hide comment
This comment has been minimized.
marmarek
Nov 12, 2017
Member
Is there a way to include easily folders of patches (e.g. patches.misc) with all the patches inside included?
No, listing a folder of patches is a bug in rpm packaging. It require explicit patch list. It works for us because of _builddir hack. Part of fixing components is about listing patches in spec file... See libvirt.spec for example how to not list them twice (the second one in %prep). I was thinking about generating that list (add @PATCHES@ or such), but finally abandoned that idea, because we don't have that much components with many patches.
No, listing a folder of patches is a bug in rpm packaging. It require explicit patch list. It works for us because of |
added a commit
to fepitre/qubes-linux-utils
that referenced
this issue
Jan 22, 2018
added a commit
to fepitre/qubes-builder-rpm
that referenced
this issue
Jan 22, 2018
added a commit
to fepitre/qubes-builder-rpm
that referenced
this issue
Jan 22, 2018
added a commit
to fepitre/qubes-builder-rpm
that referenced
this issue
Jan 22, 2018
added a commit
to fepitre/qubes-builder-rpm
that referenced
this issue
Jan 22, 2018
added a commit
to fepitre/qubes-builder-rpm
that referenced
this issue
Jan 22, 2018
added a commit
to fepitre/qubes-linux-utils
that referenced
this issue
Jan 25, 2018
andrewdavidwong
modified the milestones:
Release 4.0,
Release 4.1
Mar 31, 2018
added a commit
to fepitre/qubes-builder-rpm
that referenced
this issue
Apr 1, 2018
added a commit
to fepitre/qubes-builder-rpm
that referenced
this issue
Apr 1, 2018
added a commit
to fepitre/qubes-builder-rpm
that referenced
this issue
Apr 1, 2018
added a commit
to fepitre/qubes-builder-rpm
that referenced
this issue
Apr 1, 2018
added a commit
to fepitre/qubes-builder-rpm
that referenced
this issue
Apr 1, 2018
added a commit
to fepitre/qubes-linux-utils
that referenced
this issue
Apr 1, 2018
added a commit
to fepitre/qubes-linux-utils
that referenced
this issue
Apr 3, 2018
added a commit
to fepitre/qubes-linux-utils
that referenced
this issue
Apr 3, 2018
This comment has been minimized.
Show comment
Hide comment
This comment has been minimized.
marmarek
Apr 18, 2018
Member
@fepitre vmm-xen build fails with RPM_USE_MOCKBUILD=1. Because git submodules (Source3[3-6] in spec) are not included in any tarball. I think each of them should have own tarball (created with create-archive in source-copy-in or such). Probably with some artificial version number, for example hash of last commit (or shortened hash), to avoid having same named tarball with different content.
stubdom-dhcp isn't a submodule, but there are only 3 files - IMO listing them directly should be ok.
|
@fepitre vmm-xen build fails with
|
This comment has been minimized.
Show comment
Hide comment
This comment has been minimized.
|
Oh yes. I will solve this problem as top priority. |
marmarek commentedDec 11, 2015
Currently building src.rpm packages is broken. Mostly because we're building directly from git checkout, without proper source tarball. But src.rpm packages are needed for #816 .
The work include:
git archivecan be useful hereversionfile for getting package version - similar problem is already solved in Debian packagesOptional: