[Rpm-maint] [rpm-software-management/rpm] dnf install recommends() ? (Discussion #3154)

2024-06-10 Thread Daan De Meyer
Would adding this make sense? I'm not sure under which part of rpm this falls 
but it'd be great if I could do `dnf install recommends()`. Same 
for all the other dependency types.

-- 
Reply to this email directly or view it on GitHub:
https://github.com/rpm-software-management/rpm/discussions/3154
You are receiving this because you are subscribed to this thread.

Message ID: ___
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
http://lists.rpm.org/mailman/listinfo/rpm-maint


Re: [Rpm-maint] [rpm-software-management/rpm] debugsourcefiles.list is empty since rpm 4.19.91 (Issue #3136)

2024-05-31 Thread Daan De Meyer
Closed #3136 as not planned.

-- 
Reply to this email directly or view it on GitHub:
https://github.com/rpm-software-management/rpm/issues/3136#event-12996020177
You are receiving this because you are subscribed to this thread.

Message ID: 
___
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
http://lists.rpm.org/mailman/listinfo/rpm-maint


Re: [Rpm-maint] [rpm-software-management/rpm] debugsourcefiles.list is empty since rpm 4.19.91 (Issue #3136)

2024-05-31 Thread Daan De Meyer
Nvm It seems I had to nuke my build directory which fixed the issue. I think 
meson is not correctly propagating changed compilation flags from rpm

-- 
Reply to this email directly or view it on GitHub:
https://github.com/rpm-software-management/rpm/issues/3136#issuecomment-2141390960
You are receiving this because you are subscribed to this thread.

Message ID: ___
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
http://lists.rpm.org/mailman/listinfo/rpm-maint


Re: [Rpm-maint] [rpm-software-management/rpm] --build-in-place regression in 4.19.91 (Issue #3135)

2024-05-31 Thread Daan De Meyer
Worked around the bug by adding `--define "_fixperms true"` to my rpmbuild call.

-- 
Reply to this email directly or view it on GitHub:
https://github.com/rpm-software-management/rpm/issues/3135#issuecomment-2141357164
You are receiving this because you are subscribed to this thread.

Message ID: ___
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
http://lists.rpm.org/mailman/listinfo/rpm-maint


Re: [Rpm-maint] [rpm-software-management/rpm] debugsourcefiles.list is empty since rpm 4.19.91 (Issue #3136)

2024-05-31 Thread Daan De Meyer
Only seems to happen when building with `-O0`. If i use `-Og` as the 
optimization level, the build succeeds. Maybe this is a bug in debugedit?

-- 
Reply to this email directly or view it on GitHub:
https://github.com/rpm-software-management/rpm/issues/3136#issuecomment-2141356329
You are receiving this because you are subscribed to this thread.

Message ID: ___
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
http://lists.rpm.org/mailman/listinfo/rpm-maint


Re: [Rpm-maint] [rpm-software-management/rpm] debugsourcefiles.list is empty since rpm 4.19.91 (Issue #3136)

2024-05-31 Thread Daan De Meyer
Logs when adding `set -x` to the find-debuginfo script: 
https://gist.github.com/DaanDeMeyer/5b675dddba914ac658d78d7ddd398c8e

-- 
Reply to this email directly or view it on GitHub:
https://github.com/rpm-software-management/rpm/issues/3136#issuecomment-2141342834
You are receiving this because you are subscribed to this thread.

Message ID: ___
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
http://lists.rpm.org/mailman/listinfo/rpm-maint


[Rpm-maint] [rpm-software-management/rpm] debugsourcefiles.list is empty since rpm 4.19.91 (Issue #3136)

2024-05-30 Thread Daan De Meyer
**Describe the bug**

Since rpm 4.19.91 (and with a workaround for #3135), the mkosi rpm build in 
systemd is failing because debugsourcefiles.list is empty. I see that 
find-debuginfo is being called and passed `-S debugsourcefiles.list` as 
expected, yet the file is still empty after find-debuginfo finishes.

**To Reproduce**
Steps to reproduce the behavior:

```
git clone https://github.com/systemd/systemd
cd systemd
mkosi genkey
mkosi -E WITH_DEBUG=1 -f
```

Please link or attach the packages or spec files involved.

https://src.fedoraproject.org/rpms/systemd/blob/rawhide/f/systemd.spec

**Expected behavior**

debugsourcefiles.list is populated with files.

**Output**

```
‣  Running build script 
/home/daandemeyer/projects/systemd/mkosi.images/system/mkosi.conf.d/10-centos-fedora/mkosi.build.chroot…
+ (( NO_BUILD ))
+ . /usr/lib/os-release
++ NAME='Fedora Linux'
++ VERSION='41 (Rawhide Prerelease)'
++ ID=fedora
++ VERSION_ID=41
++ VERSION_CODENAME=
++ PLATFORM_ID=platform:f41
++ PRETTY_NAME='Fedora Linux 41 (Rawhide Prerelease)'
++ ANSI_COLOR='0;38;2;60;110;180'
++ LOGO=fedora-logo-icon
++ CPE_NAME=cpe:/o:fedoraproject:fedora:41
++ DEFAULT_HOSTNAME=fedora
++ HOME_URL=https://fedoraproject.org/
++ 
DOCUMENTATION_URL=https://docs.fedoraproject.org/en-US/fedora/rawhide/system-administrators-guide/
++ SUPPORT_URL=https://ask.fedoraproject.org/
++ BUG_REPORT_URL=https://bugzilla.redhat.com/
++ REDHAT_BUGZILLA_PRODUCT=Fedora
++ REDHAT_BUGZILLA_PRODUCT_VERSION=rawhide
++ REDHAT_SUPPORT_PRODUCT=Fedora
++ REDHAT_SUPPORT_PRODUCT_VERSION=rawhide
++ SUPPORT_END=2025-05-13
+ '[' '!' -f pkg/fedora/systemd.spec ']'
+ '[' -d .git/ ']'
++ git status --porcelain
+ '[' -z ' M 
mkosi.images/system/mkosi.conf.d/10-centos-fedora/mkosi.build.chroot
 M mkosi.images/system/mkosi.conf.d/10-opensuse/mkosi.build.chroot
?? pkg/fedora/' ']'
++ date +%s
+ TS=1717099550
++ rpm --version
++ cut -d ' ' -f3
+ systemd-analyze compare-versions 4.19.91 lt 4.19.91
++ cat meson.version
+ VERSION=256~rc3
++ date +%Y%m%d%H%M%S --date @1717099550
+ RELEASE=20240530200550
++ rpm --eval %dist
+ DIST=.fc41
++ rpm --eval %_arch
+ ARCH=x86_64
+ SRCDEST=/usr/src/debug/systemd-256~rc3-20240530200550.fc41.x86_64
++ rpm --define '_fortify_level 0' --undefine _lto_cflags --eval %build_cflags
+ CFLAGS='-O2  -fexceptions -g -grecord-gcc-switches -pipe -Wall 
-Werror=format-security  -Wp,-D_GLIBCXX_ASSERTIONS 
-specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong 
-specs=/usr/lib/rpm/redhat/redhat-annobin-cc1  -m64 -march=x86-64 
-mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection 
-fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer 
-mno-omit-leaf-frame-pointer  -O0 -Wp,-U_FORTIFY_SOURCE'
+ (( WITH_DEBUG ))
+ CFLAGS='-O2  -fexceptions -g -grecord-gcc-switches -pipe -Wall 
-Werror=format-security  -Wp,-D_GLIBCXX_ASSERTIONS 
-specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong 
-specs=/usr/lib/rpm/redhat/redhat-annobin-cc1  -m64 -march=x86-64 
-mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection 
-fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer 
-mno-omit-leaf-frame-pointer  -O0 -Wp,-U_FORTIFY_SOURCE 
-fdebug-prefix-map=../src=/usr/src/debug/systemd-256~rc3-20240530200550.fc41.x86_64'
+ IFS=
++ (( WITH_TESTS ))
++ echo --nocheck
++ (( WITH_DOCS ))
++ (( WITH_DEBUG ))
++ (( WITH_DEBUG ))
+ ANNOBIN=no-active-checks
+ rpmbuild -bb --build-in-place --with upstream --nocheck --define '_topdir 
/var/tmp' --define '_sourcedir pkg/fedora' --define '_rpmdir /work/out' 
'--define=_vpath_builddir /work/build' --define '_build_name_fmt 
%%{NAME}-%%{VERSION}-%%{RELEASE}.%%{ARCH}.rpm' --define '_binary_payload 
w.ufdio' --define 'version_override 256~rc3' --define 'release_override 
20240530200550' --define 'build_cflags -O2  -fexceptions -g 
-grecord-gcc-switches -pipe -Wall -Werror=format-security  
-Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 
-fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1  -m64 
-march=x86-64 -mtune=generic -fasynchronous-unwind-tables 
-fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 
-fno-omit-frame-pointer -mno-omit-leaf-frame-pointer  -O0 -Wp,-U_FORTIFY_SOURCE 
-fdebug-prefix-map=../src=/usr/src/debug/systemd-256~rc3-20240530200550.fc41.x86_64'
 --define 'meson_build %{shrink:%{__meson} compile -C %{_vpath_builddir} -j 
%{_smp_build_ncpus} %{nil}}' --define 'meson_install 
%{shrink:DESTDIR=%{buildroot} %{__meson} install -C %{_vpath_builddir} 
--no-rebuild --quiet %{nil}}' --define 'meson_extra_configure_options -D 
mode=developer -D b_sanitize=none' --define '__brp_compress %{nil}' --define 
'__brp_mangle_shebangs %{nil}' --define '__brp_strip_comment_note %{nil}' 
--define '__brp_strip_static_archive %{nil}' --define '__brp_check_rpaths 
%{nil}' --undefine __brp_add_determinism --define '__elf_exclude_path 
^/usr/lib/systemd/tests/unit-tests/.*$' --define '__script_requires %{nil}' 
--define 

[Rpm-maint] [rpm-software-management/rpm] --build-in-place regression in 4.20 (Issue #3135)

2024-05-30 Thread Daan De Meyer
**Describe the bug**

Since rpm 4.20, the rpm build in systemd's mkosi image build fails in the %prep 
stage when trying to fix the source permissions. 

**To Reproduce**
Steps to reproduce the behavior:

```
git clone https://github.com/systemd/systemd
cd systemd
mkosi genkey
mkosi -d fedora -r rawhide -f
```

Please link or attach the packages or spec files involved.

https://src.fedoraproject.org/rpms/systemd/blob/rawhide/f/systemd.spec

**Expected behavior**

Build succeeds

**Output**

```
‣  Running build script 
/home/daandemeyer/projects/systemd/mkosi.images/system/mkosi.conf.d/10-centos-fedora/mkosi.build.chroot…
+ (( NO_BUILD ))
+ . /usr/lib/os-release
++ NAME='Fedora Linux'
++ VERSION='41 (Rawhide Prerelease)'
++ ID=fedora
++ VERSION_ID=41
++ VERSION_CODENAME=
++ PLATFORM_ID=platform:f41
++ PRETTY_NAME='Fedora Linux 41 (Rawhide Prerelease)'
++ ANSI_COLOR='0;38;2;60;110;180'
++ LOGO=fedora-logo-icon
++ CPE_NAME=cpe:/o:fedoraproject:fedora:41
++ DEFAULT_HOSTNAME=fedora
++ HOME_URL=https://fedoraproject.org/
++ 
DOCUMENTATION_URL=https://docs.fedoraproject.org/en-US/fedora/rawhide/system-administrators-guide/
++ SUPPORT_URL=https://ask.fedoraproject.org/
++ BUG_REPORT_URL=https://bugzilla.redhat.com/
++ REDHAT_BUGZILLA_PRODUCT=Fedora
++ REDHAT_BUGZILLA_PRODUCT_VERSION=rawhide
++ REDHAT_SUPPORT_PRODUCT=Fedora
++ REDHAT_SUPPORT_PRODUCT_VERSION=rawhide
++ SUPPORT_END=2025-05-13
+ '[' '!' -f pkg/fedora/systemd.spec ']'
+ '[' -d .git/ ']'
++ git status --porcelain
+ '[' -z ' M 
mkosi.images/system/mkosi.conf.d/10-centos-fedora/mkosi.build.chroot
 M mkosi.images/system/mkosi.conf.d/10-opensuse/mkosi.build.chroot
?? pkg/fedora/' ']'
++ date +%s
+ TS=1717098377
++ rpm --version
++ cut -d ' ' -f3
+ systemd-analyze compare-versions 4.19.91 lt 4.20
+ tee --append /usr/lib/rpm/redhat/macros
%install %{?_enable_debug_packages:%{debug_package}}\
%%install\
%{nil}
++ cat meson.version
+ VERSION=256~rc3
++ date +%Y%m%d%H%M%S --date @1717098377
+ RELEASE=20240530194617
++ rpm --eval %dist
+ DIST=.fc41
++ rpm --eval %_arch
+ ARCH=x86_64
+ SRCDEST=/usr/src/debug/systemd-256~rc3-20240530194617.fc41.x86_64
++ rpm --define '_fortify_level 0' --undefine _lto_cflags --eval %build_cflags
+ CFLAGS='-O2  -fexceptions -g -grecord-gcc-switches -pipe -Wall 
-Werror=format-security  -Wp,-D_GLIBCXX_ASSERTIONS 
-specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong 
-specs=/usr/lib/rpm/redhat/redhat-annobin-cc1  -m64 -march=x86-64 
-mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection 
-fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer 
-mno-omit-leaf-frame-pointer  -O0 -Wp,-U_FORTIFY_SOURCE'
+ (( WITH_DEBUG ))
+ CFLAGS='-O2  -fexceptions -g -grecord-gcc-switches -pipe -Wall 
-Werror=format-security  -Wp,-D_GLIBCXX_ASSERTIONS 
-specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong 
-specs=/usr/lib/rpm/redhat/redhat-annobin-cc1  -m64 -march=x86-64 
-mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection 
-fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer 
-mno-omit-leaf-frame-pointer  -O0 -Wp,-U_FORTIFY_SOURCE 
-fdebug-prefix-map=../src=/usr/src/debug/systemd-256~rc3-20240530194617.fc41.x86_64'
+ IFS=
++ (( WITH_TESTS ))
++ echo --nocheck
++ (( WITH_DOCS ))
++ (( WITH_DEBUG ))
++ (( WITH_DEBUG ))
+ ANNOBIN=no-active-checks
+ rpmbuild -bb --build-in-place --with upstream --nocheck --define '_topdir 
/var/tmp' --define '_sourcedir pkg/fedora' --define '_rpmdir /work/out' 
'--define=_vpath_builddir /work/build' --define '_build_name_fmt 
%%{NAME}-%%{VERSION}-%%{RELEASE}.%%{ARCH}.rpm' --define '_binary_payload 
w.ufdio' --define 'version_override 256~rc3' --define 'release_override 
20240530194617' --define 'build_cflags -O2  -fexceptions -g 
-grecord-gcc-switches -pipe -Wall -Werror=format-security  
-Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 
-fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1  -m64 
-march=x86-64 -mtune=generic -fasynchronous-unwind-tables 
-fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 
-fno-omit-frame-pointer -mno-omit-leaf-frame-pointer  -O0 -Wp,-U_FORTIFY_SOURCE 
-fdebug-prefix-map=../src=/usr/src/debug/systemd-256~rc3-20240530194617.fc41.x86_64'
 --define 'meson_build %{shrink:%{__meson} compile -C %{_vpath_builddir} -j 
%{_smp_build_ncpus} %{nil}}' --define 'meson_install 
%{shrink:DESTDIR=%{buildroot} %{__meson} install -C %{_vpath_builddir} 
--no-rebuild --quiet %{nil}}' --define 'meson_extra_configure_options -D 
mode=developer -D b_sanitize=none' --define '__brp_compress %{nil}' --define 
'__brp_mangle_shebangs %{nil}' --define '__brp_strip_comment_note %{nil}' 
--define '__brp_strip_static_archive %{nil}' --define '__brp_check_rpaths 
%{nil}' --define '__elf_exclude_path ^/usr/lib/systemd/tests/unit-tests/.*$' 
--define '__script_requires %{nil}' --define '_find_debuginfo_dwz_opts %{nil}' 
--define '_fortify_level 0' --undefine _lto_cflags --undefine 

Re: [Rpm-maint] [rpm-software-management/rpm] --build-in-place multiple flaws (Issue #3131)

2024-05-29 Thread Daan De Meyer
> The more I look/think into this, it seems that --build-in-place should 
> entirely disable %prep and all Source/Patch processing, because .. that's 
> what's it all about. Or, it should take a copy of the original source 
> directory to preserve semi-normal functionality of rpm.

So I haven't really settled on this myself yet. In the systemd case, we have 
two types of patches: backports from upstream and downstream patches. The 
backports from upstream are of course useless in the --build-in-place scenario, 
but the downstream patches are useful to keep sometimes. As an example, systemd 
has a downstream patch to match the systemd upstream PAM snippet to match the 
Fedora guidelines. That's one patch that is not disabled when the %upstream 
macro is defined.

A copy of the original source directory could be rather slow depending on the 
project unfortunately, and one of the core benefits of --build-in-place is 
being able to do fast rebuilds.

-- 
Reply to this email directly or view it on GitHub:
https://github.com/rpm-software-management/rpm/issues/3131#issuecomment-2136786731
You are receiving this because you are subscribed to this thread.

Message ID: ___
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
http://lists.rpm.org/mailman/listinfo/rpm-maint


Re: [Rpm-maint] [rpm-software-management/rpm] --build-in-place multiple flaws (Issue #3131)

2024-05-29 Thread Daan De Meyer
Yes we just use the fedora spec as is and include it as a git submodule so we 
can pin each commit in the systemd repository to a specific commit of the spec 
sources.

-- 
Reply to this email directly or view it on GitHub:
https://github.com/rpm-software-management/rpm/issues/3131#issuecomment-2136754246
You are receiving this because you are subscribed to this thread.

Message ID: ___
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
http://lists.rpm.org/mailman/listinfo/rpm-maint


Re: [Rpm-maint] [rpm-software-management/rpm] --build-in-place multiple flaws (Issue #3131)

2024-05-29 Thread Daan De Meyer
I have run into a few of these getting --build-in-place to work for systemd, 
let me post my workarounds here as extra information:

> the only way --build-in-place really makes sense is doing vpath builds, but 
> we don't natively support that in rpm (yet)

I implicitly assume that I can set vpath_builddir which is luckily supported 
everywhere via distribution macros

> %patch should be disabled with --build-in-place because it's not a pristine 
> source we can return to
> source/patch meaning is questionable in the first place, because it's not 
> what we build there

I added a `BuildSourcesEphemeral=` option in 
[mkosi](https://github.com/systemd/mkosi) which mounts a writable overlay on 
top of the build sources that is thrown away after the build. This way the spec 
can patch and change all it wants without those changes persisting after the 
build.

> build-in-place always requires spec to be aware of the action, should it 
> instead be an option to %setup instead of cli? or maybe it should just skip 
> %prep entirely, that seems more appropriate for the cause

For the systemd spec we had to add `%version_override`, `%release_override` and 
`%upstream` macros. The first two allow us to build rpms that are guaranteed to 
be newer than previous ones. We set the version override to the upstream 
version in git and set the release override to the timestamp of the git commit 
(or current unix timestamp if the tree is dirty). The upstream macro allows us 
to accomodate build system changes or other customizations that are only 
desired for --build-in-place upstream builds.

-- 
Reply to this email directly or view it on GitHub:
https://github.com/rpm-software-management/rpm/issues/3131#issuecomment-2136723330
You are receiving this because you are subscribed to this thread.

Message ID: ___
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
http://lists.rpm.org/mailman/listinfo/rpm-maint


Re: [Rpm-maint] [rpm-software-management/rpm] debuginfo generation does not work with --build-in-place (Issue #3042)

2024-05-27 Thread Daan De Meyer
@pmatilai Thank you for working on this!

-- 
Reply to this email directly or view it on GitHub:
https://github.com/rpm-software-management/rpm/issues/3042#issuecomment-213286
You are receiving this because you are subscribed to this thread.

Message ID: ___
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
http://lists.rpm.org/mailman/listinfo/rpm-maint


Re: [Rpm-maint] [rpm-software-management/rpm] RFE: Standardize on OCI images for test-suite, even locally (Issue #2643)

2024-05-27 Thread Daan De Meyer
There have indeed been quite a few improvements to mkosi lately so I understand 
that it might not have been suitable when you were working on this.

Note that when it comes to building cross building, we have CI in mkosi that 
verifies that verifies that mkosi can do cross distribution image builds for 
all supported distributions. The only combos that aren't directly supported are 
building Arch/Ubuntu/Debian images from OpenSUSE as they don't package apt or 
pacman. However, mkosi also supports so called tools trees, where it first 
builds an image with all necessary tools and then uses that image to build the 
actual image. So on OpenSUSE, you can build a Fedora tools tree and use that to 
build all other supported distributions. This is what we use in the systemd 
repository to build images on the Github Actions CI runners. We simply 
configure `ToolsTree=default` and `ToolsTreeDistribution=fedora` and mkosi will 
first build a Fedora image with all the latest and greatest tooling and then 
use that to build the actual image. Of course you still need the package 
manager on the host system to build the tools tree, but mkosi's CI makes sure 
that we're notified whenever something breaks in that area.

Re-using the local build directory might indeed be somewhat more difficult, 
since you would need to trick CMake into not wanting to reconfigure and rebuild 
when installing. But there's also no guarantee that the local build directory 
would actually work unless the dependencies are roughly the same as on the host.

Anyway, feel free to email me if you ever feel the itch to switch to mkosi.

-- 
Reply to this email directly or view it on GitHub:
https://github.com/rpm-software-management/rpm/issues/2643#issuecomment-2132860226
You are receiving this because you are subscribed to this thread.

Message ID: ___
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
http://lists.rpm.org/mailman/listinfo/rpm-maint


Re: [Rpm-maint] [rpm-software-management/rpm] debuginfo generation does not work with --build-in-place (Issue #3042)

2024-04-24 Thread Daan De Meyer
It's not the prettiest thing in the world but if you're interested in how we 
use --build-in-place, the build script that builds the development rpms in 
systemd can be found 
[here](https://github.com/systemd/systemd/blob/main/mkosi.images/system/mkosi.conf.d/10-centos-fedora/mkosi.build.chroot)

-- 
Reply to this email directly or view it on GitHub:
https://github.com/rpm-software-management/rpm/issues/3042#issuecomment-2074519704
You are receiving this because you are subscribed to this thread.

Message ID: ___
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
http://lists.rpm.org/mailman/listinfo/rpm-maint


Re: [Rpm-maint] [rpm-software-management/rpm] debuginfo generation does not work with --build-in-place (Issue #3042)

2024-04-17 Thread Daan De Meyer
@pmatilai We're using it as part of systemd's development workflow these days. 
Being able to incrementally build rpms from a locally checked out tree of the 
upstream repository allows us to incorporate package building in the 
development workflow itself. I can build an image with newly packaged systemd 
rpms from the latest upstream sources and boot it in a virtual machine in about 
30s thanks to `--build-in-place`. Without `--build-in-place` we'd have to 
remove rpm from our development workflow entirely again, which I would hate to 
do because we get more useful test coverage by using rpm since our test images 
mimick regular distribution installs more compared to us doing `meson install` 
and hoping for the best.

It also makes debugging production issues a joy because I can make a source 
code change, get new rpms in 30s, install them, get more feedback, and do the 
same thing. This would also be a lot harder without `--build-in-place`.

(This does not take away that any proper rpm build intended to be distributed 
widely should always be done from pristine sources)

This is just some feedback on how this option makes my life a lot easier, so 
I'm hoping it won't get removed at some point because it conflicts with rpm's 
design.

-- 
Reply to this email directly or view it on GitHub:
https://github.com/rpm-software-management/rpm/issues/3042#issuecomment-2060484948
You are receiving this because you are subscribed to this thread.

Message ID: ___
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
http://lists.rpm.org/mailman/listinfo/rpm-maint


Re: [Rpm-maint] [rpm-software-management/rpm] debuginfo generation does not work with --build-in-place (Issue #3042)

2024-04-16 Thread Daan De Meyer
@keszybz I filed this here given 
https://github.com/rpm-software-management/rpm/pull/3040 and 
https://github.com/rpm-software-management/rpm/pull/3036 are going to move this 
into rpm itself

-- 
Reply to this email directly or view it on GitHub:
https://github.com/rpm-software-management/rpm/issues/3042#issuecomment-2059493773
You are receiving this because you are subscribed to this thread.

Message ID: ___
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
http://lists.rpm.org/mailman/listinfo/rpm-maint


Re: [Rpm-maint] [rpm-software-management/rpm] debuginfo generation does not work with --build-in-place (Issue #3042)

2024-04-16 Thread Daan De Meyer
@pmatilai Is there by any chance a better way than `--build-in-place` to do 
builds using a local checkout of the sources? I'd be happy to switch to 
something else that fits more within rpm's view of the world if that exists.

-- 
Reply to this email directly or view it on GitHub:
https://github.com/rpm-software-management/rpm/issues/3042#issuecomment-2058993277
You are receiving this because you are subscribed to this thread.

Message ID: ___
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
http://lists.rpm.org/mailman/listinfo/rpm-maint


Re: [Rpm-maint] [rpm-software-management/rpm] Upstream debuginfo enablement (PR #3040)

2024-04-16 Thread Daan De Meyer
Would be great if https://github.com/rpm-software-management/rpm/issues/3042 
could also be fixed at the same time as it touches the same logic.

-- 
Reply to this email directly or view it on GitHub:
https://github.com/rpm-software-management/rpm/pull/3040#issuecomment-2058887932
You are receiving this because you are subscribed to this thread.

Message ID: ___
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
http://lists.rpm.org/mailman/listinfo/rpm-maint


Re: [Rpm-maint] [rpm-software-management/rpm] debuginfo generation does not work with --build-in-place (Issue #3042)

2024-04-16 Thread Daan De Meyer
AFAIK for `--build-in-place`, `%buildsubdir` doesn't need to be defined. If I 
remove the check from the `%install` override, debuginfo packages are generated 
without problems.

-- 
Reply to this email directly or view it on GitHub:
https://github.com/rpm-software-management/rpm/issues/3042#issuecomment-2058875214
You are receiving this because you are subscribed to this thread.

Message ID: ___
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
http://lists.rpm.org/mailman/listinfo/rpm-maint


[Rpm-maint] [rpm-software-management/rpm] debuginfo generation does not work with --build-in-place (Issue #3042)

2024-04-16 Thread Daan De Meyer
**Describe the bug**

The %install to make debuginfo work is currently defined as follows on Fedora:

```
%install %{?_enable_debug_packages:%{?buildsubdir:%{debug_package}}}\
%%install\
%{nil}
```

The `--build-in-place` documentation says:

```
   --build-in-place
  Build from locally checked out sources.  Sets _builddir to 
current working directory.  Skips handling of -n and untar in the %setup and 
the deletion of the buildSubdir.
```

Something in the interaction between these two causes debuginfo to not get 
generated when `--build-in-place` is used, presumably because `buildsubdir` is 
not defined when `--build-in-place` is used.

**To Reproduce**
Steps to reproduce the behavior:
1. Try to build a package that should produce debuginfo packages by using 
`--build-in-place`

Please link or attach the packages or spec files involved.

**Expected behavior**

Debuginfo packages are generated

**Environment**
 - OS / Distribution: Fedora 39
 - Version: RPM version 4.19.1.1


-- 
Reply to this email directly or view it on GitHub:
https://github.com/rpm-software-management/rpm/issues/3042
You are receiving this because you are subscribed to this thread.

Message ID: ___
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
http://lists.rpm.org/mailman/listinfo/rpm-maint


Re: [Rpm-maint] [rpm-software-management/rpm] RFE: Standardize on OCI images for test-suite, even locally (Issue #2643)

2024-03-15 Thread Daan De Meyer
@dmnks Next time shout at me about what's missing! I Would have been happy to 
discuss improvements to mkosi to make it work for your use case. (I would have 
commented but had no clue you were considering it)

-- 
Reply to this email directly or view it on GitHub:
https://github.com/rpm-software-management/rpm/issues/2643#issuecomment-2000416984
You are receiving this because you are subscribed to this thread.

Message ID: ___
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
http://lists.rpm.org/mailman/listinfo/rpm-maint


Re: [Rpm-maint] [rpm-software-management/rpm] How to specify a fallback package for unpackaged files? (Discussion #2907)

2024-02-17 Thread Daan De Meyer
So what I ended up doing is something like the following:

```sh
build() {
# TODO: Replace meson_build and meson_install overrides with "--undefine 
__meson_verbose" once
# https://github.com/mesonbuild/meson/pull/12835 is available.
rpmbuild \
-bb \
--build-in-place \
--define "_topdir /var/tmp" \
--define "_sourcedir rpm" \
--define "_rpmdir $PACKAGEDIR" \
--define "__check_files sh -c '$(rpm --eval %__check_files) | tee 
/tmp/unpackaged-files'" \
"$@" \
rpm/systemd.spec
}

if ! build; then
EXIT_STATUS=$?
if [ ! -s /tmp/unpackaged-files ]; then
exit $EXIT_STATUS
fi

# rpm will append to any existing systemd.lang so delete it explicitly so 
we don't get duplicate file
# warnings.
rm systemd.lang

cat /tmp/unpackaged-files >>rpm/files.systemd
build --noprep --nocheck
fi
```

Basically we run `rpmbuild` once and if it fails, we check if there are any 
unpackaged files. If there are unpackaged files, we append those to the 
files.systemd file which lists the files of the systemd package and then run 
`rpmbuild` again with `--noprep` and `--nocheck`.

To get the unpackaged files, we override the `__check_files` macro and have it 
write its output to `/tmp/unpackaged-files`  in addition to writing it to the 
standard output.

-- 
Reply to this email directly or view it on GitHub:
https://github.com/rpm-software-management/rpm/discussions/2907#discussioncomment-8503531
You are receiving this because you are subscribed to this thread.

Message ID: 
___
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
http://lists.rpm.org/mailman/listinfo/rpm-maint


[Rpm-maint] [rpm-software-management/rpm] Including a file, expanding the macros in it and writing the result to another file? (Discussion #2912)

2024-02-15 Thread Daan De Meyer
I'm trying to include a file with macros in it, expand those macros and write 
the result to another file. My last attempt that doesn't work is the following:

```
echo "%{expand:%include %{SOURCE203}}" > expanded
```

If SOURCE203 contains the following:

```
%{_unitdir}/systemd-coredump.socket
%{_unitdir}/systemd-coredump@.service
```

I want "expanded" to contain:

```
/usr/lib/systemd/system/systemd-coredump.socket
/usr/lib/systemd/system/systemd-coredump@.service
```

Anyone able to help me out?

-- 
Reply to this email directly or view it on GitHub:
https://github.com/rpm-software-management/rpm/discussions/2912
You are receiving this because you are subscribed to this thread.

Message ID: ___
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
http://lists.rpm.org/mailman/listinfo/rpm-maint


Re: [Rpm-maint] [rpm-software-management/rpm] How to specify a fallback package for unpackaged files? (Discussion #2907)

2024-02-14 Thread Daan De Meyer
@pmatilai I found that flag, but that's not a solution, we want these new files 
to actually get packaged so we can install the development with those new files 
so we can run tests with them.

Anyway, the Fedora spec already handles this by dynamically generating the 
files lists so I'll probably try to work the suse spec maintainers to do the 
same thing.

-- 
Reply to this email directly or view it on GitHub:
https://github.com/rpm-software-management/rpm/discussions/2907#discussioncomment-8464140
You are receiving this because you are subscribed to this thread.

Message ID: 
___
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
http://lists.rpm.org/mailman/listinfo/rpm-maint


Re: [Rpm-maint] [rpm-software-management/rpm] How to specify a fallback package for unpackaged files? (Discussion #2907)

2024-02-14 Thread Daan De Meyer
@pmatilai Yes but these packaging specs are downstream. You end up with a 
chicken and egg problem. If we want to use the downstream packaging specs for 
building upstream testing packages, the downstream spec needs to be updated 
before any upstream PR introducing new unpackaged files can be tested and 
merged. But the downstream spec can only be updated once the upstream PR is 
merged, because otherwise it would fail to build because the newly added files 
are not yet installed so you get into a circular dependency.

One way out of this circular dependency is to be able to specify that, when 
building packages from upstream sources, any unpackaged files go into a 
fallback package (which in systemd's case would be the main systemd package).

-- 
Reply to this email directly or view it on GitHub:
https://github.com/rpm-software-management/rpm/discussions/2907#discussioncomment-8463024
You are receiving this because you are subscribed to this thread.

Message ID: 
___
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
http://lists.rpm.org/mailman/listinfo/rpm-maint


Re: [Rpm-maint] [rpm-software-management/rpm] How to specify a fallback package for unpackaged files? (Discussion #2907)

2024-02-14 Thread Daan De Meyer
@pmatilai That's exactly what I'm doing. I'm trying to reuse the opensuse spec. 
The same problem still applies.

-- 
Reply to this email directly or view it on GitHub:
https://github.com/rpm-software-management/rpm/discussions/2907#discussioncomment-8462862
You are receiving this because you are subscribed to this thread.

Message ID: 
___
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
http://lists.rpm.org/mailman/listinfo/rpm-maint


[Rpm-maint] [rpm-software-management/rpm] How to specify a fallback package for unpackaged files? (Discussion #2907)

2024-02-13 Thread Daan De Meyer
For hacking on systemd, I'm looking into building rpms from upstream sources. 
Because we're building from upstream sources, there are naturally unpackaged 
files depending on how the %files directives are handled. I would like to 
assign any unpackaged upstream files that haven't been explicitly assigned to a 
package yet to the systemd package. Is there any way I can specify to rpm that 
any unpackaged files should be assigned to a specific package?

-- 
Reply to this email directly or view it on GitHub:
https://github.com/rpm-software-management/rpm/discussions/2907
You are receiving this because you are subscribed to this thread.

Message ID: ___
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
http://lists.rpm.org/mailman/listinfo/rpm-maint


[Rpm-maint] [rpm-software-management/rpm] rpmspec: Add some more popt aliases (PR #2600)

2023-08-03 Thread Daan De Meyer
These are all available on the rpm CLI so lets make them available on the 
rpmspec CLI as well.
You can view, comment on, or merge this pull request online at:

  https://github.com/rpm-software-management/rpm/pull/2600

-- Commit Summary --

  * rpmspec: Add some more popt aliases

-- File Changes --

M rpmpopt.in (12)

-- Patch Links --

https://github.com/rpm-software-management/rpm/pull/2600.patch
https://github.com/rpm-software-management/rpm/pull/2600.diff

-- 
Reply to this email directly or view it on GitHub:
https://github.com/rpm-software-management/rpm/pull/2600
You are receiving this because you are subscribed to this thread.

Message ID: rpm-software-management/rpm/pull/2...@github.com
___
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
http://lists.rpm.org/mailman/listinfo/rpm-maint


Re: [Rpm-maint] [rpm-software-management/rpm] rpmug: Make sure /etc/passwd and /etc/group from chroot are used (PR #2480)

2023-04-14 Thread Daan De Meyer
Rewriting the f-variants is a bit more work than I'm willing to spend on this. 
I realized that I can simply install in two steps, first to install `setup` 
which provides /etc/passwd and then to install the rest. For the second step, I 
mount over passwd from the root over passwd from the host and that fixes the 
issue for me as well, so I won't spend any more time on this.

Would still like to see the issue fixed in rpm though! Thanks for taking the 
time to review the PR.

-- 
Reply to this email directly or view it on GitHub:
https://github.com/rpm-software-management/rpm/pull/2480#issuecomment-1508174859
You are receiving this because you are subscribed to this thread.

Message ID: ___
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
http://lists.rpm.org/mailman/listinfo/rpm-maint


Re: [Rpm-maint] [rpm-software-management/rpm] rpmug: Make sure /etc/passwd and /etc/group from chroot are used (PR #2480)

2023-04-14 Thread Daan De Meyer
Closed #2480.

-- 
Reply to this email directly or view it on GitHub:
https://github.com/rpm-software-management/rpm/pull/2480#event-9005424815
You are receiving this because you are subscribed to this thread.

Message ID: 
___
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
http://lists.rpm.org/mailman/listinfo/rpm-maint


[Rpm-maint] [rpm-software-management/rpm] rpmug: Make sure /etc/passwd and /etc/group from chroot are used (PR #2480)

2023-04-12 Thread Daan De Meyer
If we chroot(), getpwnam() and friends will still return results from the host 
/etc/passwd and related files because of caching. We cant flush the caches 
ourselves, so instead, lets open /etc/passwd ourselves in the chroot and 
use fgetpwent() and friends to read from it. This makes sure we avoid the glibc 
cache and get up-to-date results after chrooting.

We also drop the in function caching because it doesnt take chroot() into 
account either. The same passwd name could have different uids assigned to it 
inside and outside of the chroot, so we cant use the current cache as is 
without having some mechanism to flush the caches every time we chroot() or 
keeping a cache per chroot.
You can view, comment on, or merge this pull request online at:

  https://github.com/rpm-software-management/rpm/pull/2480

-- Commit Summary --

  * rpmug: Make sure /etc/passwd and /etc/group from chroot are used

-- File Changes --

M lib/rpmug.c (132)

-- Patch Links --

https://github.com/rpm-software-management/rpm/pull/2480.patch
https://github.com/rpm-software-management/rpm/pull/2480.diff

-- 
Reply to this email directly or view it on GitHub:
https://github.com/rpm-software-management/rpm/pull/2480
You are receiving this because you are subscribed to this thread.

Message ID: rpm-software-management/rpm/pull/2...@github.com
___
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
http://lists.rpm.org/mailman/listinfo/rpm-maint


Re: [Rpm-maint] [rpm-software-management/rpm] Rpm chroot operations use user/group info from the host (#882)

2023-03-07 Thread Daan De Meyer
@pmatilai Is it an option to use `fgetpwent()` and `fgetgrent()` to circumvent 
glibc's caching? I'm not sure if rpm needs to take into account nsswitch. If it 
doesn't, using those two functions could be an option.

-- 
Reply to this email directly or view it on GitHub:
https://github.com/rpm-software-management/rpm/issues/882#issuecomment-1458154427
You are receiving this because you are subscribed to this thread.

Message ID: ___
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
http://lists.rpm.org/mailman/listinfo/rpm-maint