Commit graph

12 commits

Author SHA1 Message Date
Konrad Kleine
28f33f948e Better detect last run script in mock chroot
Before when running one of the following targets it could be that there were multiple run files in `/var/lib/mock/$(MOCK_CHROOT)/root/var/tmp`.

```
edit-last-failing-script              - Opens the last failing or running script from mock in your editor
                                        of choice for you to edit it and later re-run it in mock with:
                                        "make mockbuild-rerun-last-script-...".
mockbuild-rerun-last-script           - Re-runs the last failing or running script of your release/mock mockbuild.
```

The function to edit the last one that was run sometimes picked the wrong file. Now we sort the files in there aforementioned directory before editing or running it again.
2024-11-21 15:00:06 +01:00
Konrad Kleine
5bc80c81ed [make] Use mock instead of rpmbuild
I always wanted to use `mock` instead of `rpmbuild` for building release
and snapshot builds. I disliked `mock` for a very particular reason.
When a build failed and I wanted to go in and change the last running
script and re-run it, I thought this wasn't possible. Little did I know.

Here are the make targets and what they do now:

```
Available targets
-----------------
get-sources-snapshot                  - Downloads all sources we need
for a snapshot build.
get-sources-release                   - Downloads all sources we need
for a release build.
srpm-release                          - Builds an SRPM that can be used
for a release build.
srpm-snapshot                         - Builds an SRPM that can be used
for a snapshot build.
scrub-chroot                          - Completely remove the fedora
chroot and cache.
mockbuild-release                     - Start a mock build of the
release SRPM.
mockbuild-snapshot                    - Start a mock build of the
snapshot SRPM.
edit-last-failing-script              - Opens the last failing or
running script from mock in your editor
                                        of choice for you to edit it and
later re-run it in mock with:
                                        "make
mockbuild-rerun-last-script-...".
mockbuild-rerun-last-script           - Re-runs the last failing or
running script of your release/mock mockbuild.
help                                  - Display this help text.
get-llvm-version-release              - Determines the LLVM version
given in the llvm.spec file.
get-llvm-version-snapshot             - Determines the LLVM version
given in the version.spec.inc file.
get-spec-file-release                 - Parses the spec file for the
Release: tag
get-srpm-release                      - Determines the name of the SRPM
used for release builds
                                        Can be overriden by giving "make
... SRPM_PATH=foo.src.rpm".
get-srpm-snapshot                     - Determines the name of the SRPM
used for snapshot builds
                                        Can be overriden by giving "make
... SRPM_PATH=foo.src.rpm".
```

When you want to build a release build for fedora you can do so by
running `make mockbuild-release` it will download the sources for you
and create an SRPM that it will pass to `mock` for the final build.

To build for `centos` you can use `make mockbuild-release
MOCK_CHROOT=centos-stream-9-x86_64`.
2024-11-18 19:53:31 +00:00
Konrad Kleine
260d8e1cdc [pre-commit]: pre-commit-hooks 5.0.0, tmt 1.38.0
After the update I ran: `pre-commit run -a`
2024-10-29 11:17:42 +01:00
Konrad Kleine
7f69c7ebdf Prepare non-snapshot builds
Remove version.spec.inc from git
================================

We no longer track `version.spec.inc` in git. This is useful for
development. If we build a snapshot, the file is required but if we
build a `release` build (see below), then we don't include it.

Make improvements
=================

We distinguish between `snapshot-` and `release-` builds now in the
`Makefile`. These old targets are mapped to their new counterparts and a
deprecation warning is shown:

* `setup` -> `snapshot-setup`
* `local-rpm` -> `snapshot-rpm`
* `local-srpm` -> `snapshot-srpm`
* `local-prep` -> `snapshot-prep`
* `local-clean` -> `snapshot-clean`

We also have these new Make targets that run the build process with a
release tarball instead:

* `release-setup`
* `release-rpm`
* `release-srpm`
* `release-prep`
* `release-clean`

The targets `local-list-check` and `local-tmt-vm` have been commented
out because I think they were not needed. I just kept them for future
reference of research done in those areas.

All builds described by the `Makefile` are still local and no `mock` is
involved. I find this the easiest to debug.

Toggle default bcond state for snapshot_build
=============================================

We want to be able to build non-snapshot releases with this repo. That's
why be default the build condition `snapshot_build` is off. So
only when you explicitly enable `--with=snapshot_build` or define
`--define "_with_snapshot_build 1"` you'll be able to build a snapshot.
If however the build happens in Copr with a namespace that begins with
`fedora-llvm-team/llvm-snapshots-`, then the build condition is ON by
default and there's no need to enable it explicitly with `--with=snapshot_build`.

Things related to release update
================================

* Add llvm-project tarball and signature to sources
* Fix: error: source 1001 defined multiple times
* Fix: error: source 1006 defined multiple times
* Fix missing newline
* Conditionally apply 0001-Always-build-shared-libs-for-LLD.patch
* Only enable offload runtime in snapshot mode

Misc.
=====

* Add missing prep dependency
2024-09-02 15:45:30 +02:00
Konrad Kleine
f474b07a47 Makefile fixes
We can prefetch the sources using spectool as usual.
2024-09-02 15:45:30 +02:00
Konrad Kleine
bbf0c012f8 Don't clean after building the RPM 2024-09-02 15:45:30 +02:00
Konrad Kleine
d786a89a64 Format all files with 'pre-commit run -a' 2024-09-02 15:45:30 +02:00
Konrad Kleine
34c048f35a make: Remove LTO objects when cleaning 2024-09-02 15:45:30 +02:00
Konrad Kleine
ab194f104b merge llvm, clang, compiler-rt and libomp repos
* %check: export LD_LIBRARY_PATH because runtimes use external cmake projects that wouldn't find libclang++.so
* %check: use LLVM's LIT_XFAIL to mark tests that are expected to fail and don't just delete them
* clang: bring over *.patch files
* clang: remove build requires tags from clang package that are already defined by main llvm package
* clang: remove duplicates found in llvm globals and use %{pkg_datadir} instead of %{install_datadir}
* clang: rename and use pkg_name -> pkg_name_clang
* clang: use %{pkg_name_clang} instead of %{name}
* compiler-rt and libomp: wrap in %if %{without compat_build}
* libomp: also build libomp for s390x (See https://github.com/llvm/llvm-project/pull/66081)
* libomp: exclude libomp-devel on s390x just like libomp itself
* libomp: introduce pkg_name_libomp and cleanup the globals
* libomp: remove gdb-plugin (NEED TO CONFIRM IF THIS IS REALLY TRUE)
* libomp: filter out flaky libomp test: ompt/teams/distribute_dispatch.c
* llvm: add BuildRequires: graphviz to llvm-doc
* llvm: use %{pkg_name_llvm} instead of %{name}
* make: added temporary Makefile so I can more easily run srpm or rpm builds locally
* make: Added local-tmt-vm target (not really useful yet)
* rpm: for non-RHEL add prefix like "Jan 05 16:17:06" to every log line This should help in finding out how long things take to build/install/...
* rpm: fully specify %files for top-level packages
* rpm: make all packages fully qualified
* rpm: obsolete llvm-snapshot-builder
* rpm: remove BuildRequires: python3-lit because we have it in-tree
* rpm: remove BuildRequires: tags for clang and llvm specifics as we're building in-tree
* rpm: rename %llvm_srcdir -> %srcdir_llvm
* rpm: rename %pkg_name -> %pkg_name_llvm
* rpm: use full qualified name in %description
* rpm: use region comments in spec file to group by package. This allows editors to fold text to get a better overview
* rpmlint: update rc file to reflect clang and compiler-rt (libomp has no rpmlint rc file)
* use python-lit from within tree
2024-09-02 15:45:17 +02:00
Fedora Release Engineering
60da43cf2b dist-git conversion 2010-07-29 02:29:26 +00:00
Bill Nottingham
5741fe2ce5 Fix typo that causes a failure to update the common directory. (releng
#2781)
2009-11-25 23:51:33 +00:00
Kevin Fenzi
50a6fff966 Setup of module llvm 2008-01-21 17:30:08 +00:00