Re: [Rpm-maint] [rpm-software-management/rpm] RFE: introduce an rpm-controlled per-build directory to builds (Issue #2078)

2024-02-05 Thread Panu Matilainen
Making remote execution (cross-compilation) easier added (inspired by 
https://github.com/rpm-software-management/rpm/discussions/2884)

-- 
Reply to this email directly or view it on GitHub:
https://github.com/rpm-software-management/rpm/issues/2078#issuecomment-1928947972
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] Support for running %check on a different machine (Discussion #2884)

2024-02-05 Thread Panu Matilainen
Oh. Reading more carefully now, I can see a lack of "the" and a relevant plural 
in "running test suites"  :sweat_smile: Adjusted the title to make it clear.

All the build scriptlets have (some) support for remote execution through this:

> %___build_cmd   %{?_sudo:%{_sudo} }%{?_remsh:%{_remsh} %{_remhost} 
> }%{?_remsudo:%{_remsudo} }%{?_remchroot:%{_remchroot} %{_remroot} 
> }%{___build_shell} %{___build_args}

It requires setting up some shared mounts of course (for %_tmpdir and the build 
area at least), I've never tried that in practise.

-- 
Reply to this email directly or view it on GitHub:
https://github.com/rpm-software-management/rpm/discussions/2884#discussioncomment-8378969
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] Support for running tests on a different machine (Discussion #2884)

2024-02-05 Thread Demi Marie Obenour
@pmatilai I was referring to `%check` in spec files, _not_ RPM’s own test suite 
(though that would be useful too).

-- 
Reply to this email directly or view it on GitHub:
https://github.com/rpm-software-management/rpm/discussions/2884#discussioncomment-8374826
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] RPM 4.19.1.1 bugfix update (PR #2888)

2024-02-05 Thread Mark Dascher
I confirmed that this still builds on macOS, using [these 
commands](https://github.com/rpm-software-management/rpm/issues/2807#issuecomment-1877296382)–the
 only difference being that I added `readline` to `PKG_CONFIG_PATH` like this:

`PKG_CONFIG_PATH=/usr/local/opt/libarchive/lib/pkgconfig:/usr/local/opt/readline/lib/pkgconfig`

So this looks great to me 

-- 
Reply to this email directly or view it on GitHub:
https://github.com/rpm-software-management/rpm/pull/2888#issuecomment-1927664713
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] Introduce an rpm-controlled per-build directory (PR #2885)

2024-02-05 Thread Tomasz Kłoczko
Just found in inbox that another maintainer sorted out issue related to create 
directory in python module source tree 
https://github.com/PyGithub/PyGithub/pull/2894. As you see fixing that it is 
not rocket science ..

-- 
Reply to this email directly or view it on GitHub:
https://github.com/rpm-software-management/rpm/pull/2885#issuecomment-1927414807
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] Introduce an rpm-controlled per-build directory (PR #2885)

2024-02-05 Thread Tomasz Kłoczko
Just made grep across all Fedora spec files
```console
[tkloczko@pers-jacek SPECS.fedora]$ grep SPECPARTS  *
python-bidict.spec:# SPECPARTS dir in %%_builddir/%%buildsubdir is leaking to 
setuptools package
python-bidict.spec:rm -rf SPECPARTS
python-cairocffi.spec:- Drop rmdir SPECPARTS
python-chaospy.spec:rm -rf SPECPARTS
python-linkify-it-py.spec:- Stop removing the SPECPARTS directory, it doesn't 
exist
python-linkify-it-py.spec:- Remove empty SPECPARTS directory that breaks build
python-mechanize.spec:rm -rf SPECPARTS
python-neo.spec:# remove rpm's SPECPARTS file
python-neo.spec:rm -rf SPECPARTS
python-nihtest.spec:# Work around issue with package discovery due to SPECPARTS 
dir
python-nose2.spec:rm -rf SPECPARTS
python-numpoly.spec:rm -rf SPECPARTS
python-quantities.spec:# Work around confusion with SPECPARTS directory looking 
like a package to
python-quantities.spec:rm -rf SPECPARTS
python-uc-micro-py.spec:rm -rf SPECPARTS
qcad.spec:rm -rf ../*-SPECPARTS
rpm.spec:- Use mkdir -p for creating SPECPARTS dir
traceroute.spec:%make_build CFLAGS="$RPM_OPT_FLAGS" LDFLAGS="$RPM_LD_FLAGS" 
SKIPDIRS="${RPM_SPECPARTS_DIR##*/}"
```
Few of those cases already have been sorted out by source tree maintainers.

Another question is .. is it really worth to keep SPECPARTS extension in rpm? 樂 
So far not been able to find even SINGLE case of use that.
IMO that whole SPECPARTS created so far more issues (and by this wasted more 
man/hours) than saved any time on packaging.

-- 
Reply to this email directly or view it on GitHub:
https://github.com/rpm-software-management/rpm/pull/2885#issuecomment-1927384811
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] Introduce an rpm-controlled per-build directory (PR #2885)

2024-02-05 Thread Tomasz Kłoczko
> Do I understand correctly that the `BUILDROOT` dir was replaced by 
> `%{_builddir}/%{_target_cpu}-%{_target_os}-root`? The `%{_builddir}` is the 
> right move IMHO, but what is the advantage of 
> `%{_target_cpu}-%{_target_os}-root` over `BUILDROOT`, especially when e.g. 
> `SPECPARTS` stays the same.

I'm using below patch
```patch
--- a/tests/rpmspec.at
+++ b/tests/rpmspec.at
@@ -333,8 +333,8 @@
   exit $STATUS
 fi
 cd 'hello-1.0'
-rm -rf '/build/BUILD/hello-1.0-SPECPARTS'
-/usr/bin/mkdir -p '/build/BUILD/hello-1.0-SPECPARTS'
+rm -rf '/build/BUILD/hello-1.0/SPECPARTS'
+/usr/bin/mkdir -p '/build/BUILD/hello-1.0/SPECPARTS'
 /usr/bin/chmod -Rf a+rX,u+w,g-w,o-w .
 echo "Patch #0 (hello-1.0-modernize.patch):"
 /usr/bin/patch --no-backup-if-mismatch -f -p1 -b --suffix .modernize --fuzz=0 
< /build/SOURCES/hello-1.0-modernize.patch
--- a/macros.in
+++ b/macros.in
@@ -271,7 +271,7 @@
 %buildroot %{_buildrootdir}/%{NAME}-%{VERSION}-%{RELEASE}.%{_arch}

 #  Path for spec file snippets generated during build
-%specpartsdir %{_builddir}/%{buildsubdir}-SPECPARTS
+%specpartsdir %{_builddir}/%{buildsubdir}/SPECPARTS

 #  Directory where temporaray files can be created.
 %_tmppath  %{_var}/tmp
--- a/build/build.c
+++ b/build/build.c
@@ -195,14 +195,8 @@
fprintf(fp, "cd '%s'\n", buildSubdir);

 if (what == RPMBUILD_RMBUILD) {
-   if (rpmMacroIsDefined(spec->macros, "specpartsdir")) {
-   char * buf = rpmExpand("%{specpartsdir}", NULL);
-   fprintf(fp, "rm -rf '%s'\n", buf);
-   free(buf);
-   }
if (buildSubdir[0] != '\0')
-   fprintf(fp, "rm -rf '%s' '%s.gemspec'\n",
-   buildSubdir, buildSubdir);
+   fprintf(fp, "rm -rf '%s'\n", buildSubdir);
 } else if (sb != NULL)
fprintf(fp, "%s", sb);

```
After that I've tested that whit almost 5k of my src.rpm and found that only 
few packages are failing because of that change.
All those packages are python modules and fail s result of MISSING parts in 
pyprojects toml.

Because SPECPARTS **exposed those issue** IMO instead evacuating that directory 
outside source tree it should be INTENTIONALLY put in that location.

In meantime for all those cases I've opened issue tickets and ~half already 
have been sorted out.

Example fail on building `uc-micro-py` python module:
```console
+ /usr/bin/python3 -sBm build -w --no-isolation
* Getting build dependencies for wheel...
No `packages` or `py_modules` configuration, performing automatic discovery.
`flat-layout` detected -- analysing .
discovered packages -- ['uc_micro', 'SPECPARTS ', 'uc_micro.categories', 
'uc_micro.properties', 'uc_micro.categories.Cc', 'uc_micro.categories.Cf', 
'uc_micro.categories.P', 'uc_micro.categories.Z', 'uc_micro.properties.Any']
Traceback (most recent call last):
  File 
"/usr/lib/python3.8/site-packages/pyproject_hooks/_in_process/_in_process.py", 
line 353, in 
main()
  File 
"/usr/lib/python3.8/site-packages/pyproject_hooks/_in_process/_in_process.py", 
line 335, in main
json_out['return_val'] = hook(**hook_input['kwargs'])
  File 
"/usr/lib/python3.8/site-packages/pyproject_hooks/_in_process/_in_process.py", 
line 118, in get_requires_for_build_wheel
return hook(config_settings)
  File "/usr/lib/python3.8/site-packages/setuptools/build_meta.py", line 325, 
in get_requires_for_build_wheel
return self._get_build_requires(config_settings, requirements=['wheel'])
  File "/usr/lib/python3.8/site-packages/setuptools/build_meta.py", line 295, 
in _get_build_requires
self.run_setup()
  File "/usr/lib/python3.8/site-packages/setuptools/build_meta.py", line 311, 
in run_setup
exec(code, locals())
  File "", line 1, in 
  File "/usr/lib/python3.8/site-packages/setuptools/__init__.py", line 103, in 
setup
return distutils.core.setup(**attrs)
  File "/usr/lib/python3.8/site-packages/setuptools/_distutils/core.py", line 
159, in setup
dist.parse_config_files()
  File "/usr/lib/python3.8/site-packages/setuptools/dist.py", line 627, in 
parse_config_files
pyprojecttoml.apply_configuration(self, filename, ignore_option_errors)
  File "/usr/lib/python3.8/site-packages/setuptools/config/pyprojecttoml.py", 
line 66, in apply_configuration
config = read_configuration(filepath, True, ignore_option_errors, dist)
  File "/usr/lib/python3.8/site-packages/setuptools/config/pyprojecttoml.py", 
line 131, in read_configuration
return expand_configuration(asdict, root_dir, ignore_option_errors, dist)
  File "/usr/lib/python3.8/site-packages/setuptools/config/pyprojecttoml.py", 
line 156, in expand_configuration
return _ConfigExpander(config, root_dir, ignore_option_errors, 
dist).expand()
  File "/usr/lib/python3.8/site-packages/setuptools/config/pyprojecttoml.py", 
line 204, in expand
self._expand_all_dynamic(dist, package_dir)
  File "/usr/lib/python3.8/site-packages/setuptools/config/pyprojecttoml.py", 
line 249, in _expand_all_dynamic

Re: [Rpm-maint] [rpm-software-management/rpm] Proof-of-concept native support for vpath-style builds (PR #2886)

2024-02-05 Thread Vít Ondruch
I am not sure if tying this to the `%setup` is useful, unless there is also 
some alternative to setup this independently. Maybe if the `%{-s}` also 
accepted some alternative build name(s).

> A one gotcha here is that special %doc and %license has traditionally worked 
> for both built and pre-existing content.

The files could be gathered in `%{sourcesubdir}` followed by `%{buildsubdir}`, 
why not. But how often is the documentation build? It never came to my mind 
that the documentation could be generated during build and I wouldn't mind if 
only the former was possible. Or actually if neither one worked and the 
documentation would need to be installed into `%{_buildrootdir}` manually.

BTW this does not update the `make` macros, right? Which are likely more noisy 
then the `configure` itself. IOW on one `./configure` call, there are typically 
two make calls, such as `make` and `make install`

-- 
Reply to this email directly or view it on GitHub:
https://github.com/rpm-software-management/rpm/pull/2886#issuecomment-1927267885
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] Introduce an rpm-controlled per-build directory (PR #2885)

2024-02-05 Thread Vít Ondruch
Do I understand correctly that the `BUILDROOT` dir was replaced by 
`%{_builddir}/%{_target_cpu}-%{_target_os}-root`? The `%{_builddir}` is the 
right move IMHO, but what is the advantage of 
`%{_target_cpu}-%{_target_os}-root` over `BUILDROOT`, especially when e.g. 
`SPECPARTS` stays the same.

-- 
Reply to this email directly or view it on GitHub:
https://github.com/rpm-software-management/rpm/pull/2885#issuecomment-1927215228
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] Is there a way to merge several RPMs (Discussion #2887)

2024-02-05 Thread Vít Ondruch
> > > You are also kinda confused about RPMs and SRPMs.
> > 
> > 
> > I don't think I am. Or at least I don't know why you think so.
> 
> That's what a confused person would say...

:rofl: :man_facepalming: 路

> Merging RPMs and SRPMs is not something we will pursue and it doesn't make 
> any sense. There is no point in merging SRPMs as they can only have one spec 
> file each.
> > > If you do want to merge binary packages (not that I can think of a good 
> > > reason) use meta packages instead.
> > 
> > 
> > This is not an option in this context. One way or the other, it adds one 
> > more package.
> 
> I have not yet seen an argument why the number of packages is a problem.

There was modularity, but it is not anymore. Now I am thinking what to use 
instead.

In the case of Ruby, the module consisted of Ruby and DB connectors. We can 
simplify this into having `ruby` and `rubygem-pg` SRPMs, which in it full 
fledge state builds into gazillion RPMs subpackages, and call it "default Ruby".

Now I am considering options how to deliver some alternative version. One of 
the options is lump everything together and deliver it as a single RPM (instead 
of all the subpackages which "default ruby" consists of). Of course I could 
ignore everything what is already available and start from scratch. The other 
option is to try gather various bits and pieces and try to reuse them.

> > > Merging Spec files is a different thing completely. That is probably 
> > > something to look into - especially if they can be created automatically 
> > > from gems or similar language specific package formats.
> > 
> > 
> > This is what I thought would be the hard part  Maybe mainly because I 
> > don't see a merit in merging spec files like just plain concatenating and 
> > obtaining the same result. It would probably be interesting, if I can 
> > select some sections, while probably modify the associated `%files` section.
> 
> This is the only thing here that is actually worth considering here. It would 
> kinda fit into both the Dynamic Spec and the Handsfree Packaging initiatives. 
> Basically dropping multiple gems into a single distgit package and assemble 
> the merged spec file automatically. There are probably still a few pieces 
> missing but we already made big steps into making this possible.

Nice. Still to me, merging RPMs sounds easier then merging .spec files. To me, 
merging RPMs happens every time two RPMs are installed. Of course I ignore 
metadata. But I have never heard of merging .spec files.

-- 
Reply to this email directly or view it on GitHub:
https://github.com/rpm-software-management/rpm/discussions/2887#discussioncomment-8370983
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] RPM 4.19.x bugfix release (Issue #2878)

2024-02-05 Thread Michal Domonkos
> * [Print full path if file removal fails 
> #2806](https://github.com/rpm-software-management/rpm/pull/2806)

Just FTR, this one already is in 4.19.1.

-- 
Reply to this email directly or view it on GitHub:
https://github.com/rpm-software-management/rpm/issues/2878#issuecomment-1927097817
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] RPM 4.19.1.1 bugfix update (PR #2888)

2024-02-05 Thread Michal Domonkos
This is a small bugfix-only update addressing a number of regressions and other 
issues. A changelog preview follows:

 Fixes
* *Packaging:* Dont warn about missing user/group on skipped files 
supRegression/sup 
([#2814](https://github.com/rpm-software-management/rpm/pull/2814))
* *Packaging:* Make user/group lookup caching thread-safe 
supRegression/sup 
([#2843](https://github.com/rpm-software-management/rpm/pull/2843))
* *Lua interface:* Fix regression in Lua scriptlet runaway child detection 
supRegression/sup 
([#2818](https://github.com/rpm-software-management/rpm/pull/2818))
* *Build:* CMakeLists.txt: restore readline support as an explicit option 
supRegression/sup 
([#2852](https://github.com/rpm-software-management/rpm/pull/2852))
* *Build:* Fix unconditional uses of Linux-specific extensions 
supRegression/sup 
([#2812](https://github.com/rpm-software-management/rpm/pull/2812))
* *Build:* Add missing include for check_symbol_exists 
([#2831](https://github.com/rpm-software-management/rpm/pull/2831))
* *Build:* Dont use _nl_msg_cat_cntr if its not available 
([#2856](https://github.com/rpm-software-management/rpm/pull/2856))

Resolves: #2878
You can view, comment on, or merge this pull request online at:

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

-- Commit Summary --

  * Dont warn about missing user/group on skipped files
  * Fix markdown formatting in man page
  * Fix regression in Lua scriptlet runaway child detection
  * Fix hard dependency on libelf (cmake transition fallout)
  * Fix hard dependency on strchrnul() GNU extension
  * Fix unconditional dependency on non-POSIX GLOB_ONLYDIR flag
  * Fix rpm2archive build regression due to missing libgen.h include
  * Fix missing private linkage to iconv and popt in librpmbuild and sign
  * Conditionalize libdw and libelf linkage to librpmbuild
  * Cosmetics: fix rpmio cmake indentation style
  * Fix libintl linkage and include directories (cmake transition fallout)
  * Drop unnecessary rpmcli.h include from rpmbuild.h
  * rpmcli.h forces a public dependency on popt includes
  * Add missing include
  * Dont attempt to install html pages if theyre not built
  * CMakeLists.txt: restore readline support as an explicit option
  * Remember to free user/group cache on librpm shutdown (again)
  * Centralize user/group lookup caching into a single data structure
  * Make user/group lookup caching minimally thread-safe
  * Simplify the cache lookup logic, no functional changes
  * Dont use _nl_msg_cat_cntr if its not available
  * Use unsigned integers for buildtime too for Y2K38 safety
  * Fix a theoretical use of uninitialized struct members
  * Add a note about rpmfiFN()/rpmfiOFN() pointer validity to API docs
  * Preparing for rpm 4.19.1.1

-- File Changes --

M CMakeLists.txt (17)
M build/CMakeLists.txt (16)
M build/build.c (4)
M config.h.in (2)
M docs/CMakeLists.txt (5)
M docs/man/rpmdb.8.md (2)
M include/rpm/rpmbuild.h (1)
M include/rpm/rpmfi.h (2)
M lib/CMakeLists.txt (5)
M lib/fsm.c (2)
M lib/rpmrc.c (2)
M lib/rpmscript.c (2)
M lib/rpmug.c (126)
M lib/tagexts.c (6)
M misc/CMakeLists.txt (1)
M plugins/CMakeLists.txt (4)
M rpmio/CMakeLists.txt (13)
M rpmio/rpmglob.c (2)
M rpmio/rpmlua.c (10)
M sign/CMakeLists.txt (2)
M tests/rpmgeneral.at (8)
M tests/rpmmacro.at (9)
M tests/rpmsigdig.at (6)
M tools/CMakeLists.txt (20)
M tools/rpm2archive.c (5)

-- Patch Links --

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

-- 
Reply to this email directly or view it on GitHub:
https://github.com/rpm-software-management/rpm/pull/2888
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] support reproducible automatic rebuilds (PR #2880)

2024-02-05 Thread Panu Matilainen
> Steps to reproduce:
>
>package gcc: version 1.1
>package hello: BuildDepends gcc; changelog epoch 1; but its build script 
> includes SOURCE_DATE_EPOCH in the binary
>build package hello
>update package gcc to version 1.2
>[...]

I get that this is the real-world scenario, but we'd need something much, MUCH 
simpler for the test-suite.

-- 
Reply to this email directly or view it on GitHub:
https://github.com/rpm-software-management/rpm/pull/2880#issuecomment-1926944167
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] Is there a way to merge several RPMs (Discussion #2887)

2024-02-05 Thread Florian Festi
> > You are also kinda confused about RPMs and SRPMs.
> 
> I don't think I am. Or at least I don't know why you think so.

That's what a confused person would say...

Merging RPMs and SRPMs is not something we will pursue and it doesn't make any 
sense. There is no point in merging SRPMs as they can only have one spec file 
each.

> > If you do want to merge binary packages (not that I can think of a good 
> > reason) use meta packages instead.
> 
> This is not an option in this context. One way or the other, it adds one more 
> package.

I have not yet seen an argument why the number of packages is a problem.

> > Merging Spec files is a different thing completely. That is probably 
> > something to look into - especially if they can be created automatically 
> > from gems or similar language specific package formats.
> 
> This is what I thought would be the hard part  Maybe mainly because I don't 
> see a merit in merging spec files like just plain concatenating and obtaining 
> the same result. It would probably be interesting, if I can select some 
> sections, while probably modify the associated `%files` section.

This is the only thing here that is actually worth considering here. It would 
kinda fit into both the Dynamic Spec and the Handsfree Packaging initiatives. 
Basically dropping multiple gems into a single distgit package and assemble the 
merged spec file automatically. There are probably still a few pieces missing 
but we already made big steps into making this possible.



-- 
Reply to this email directly or view it on GitHub:
https://github.com/rpm-software-management/rpm/discussions/2887#discussioncomment-8369464
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] Support for running tests on a different machine (Discussion #2884)

2024-02-05 Thread Panu Matilainen
@dmnks feel free to correct/extend, but the test-suite does run as a separate 
step in the "native" mode using already built binaries. That's only supported 
on Fedora at the moment but that's AIUI just a matter of somebody adding + 
maintaining a native dockerfile for their target distro.

-- 
Reply to this email directly or view it on GitHub:
https://github.com/rpm-software-management/rpm/discussions/2884#discussioncomment-8369228
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] Is there a way to merge several RPMs (Discussion #2887)

2024-02-05 Thread Vít Ondruch
> You are also kinda confused about RPMs and SRPMs.

I don't think I am. Or at least I don't know why you think so.

One possibility I can think of is that if the RPMs should be mergeable, then 
probably also SRPM should be mergeable for consistency? That would be likely 
weird, not sure 路

> I don't think you really want to merge binary RPMs but get rid of packages in 
> distgit - which is the expensive part as far as I see it.

Maybe or maybe not. I am looking for options.

> If you do want to merge binary packages (not that I can think of a good 
> reason) use meta packages instead.

This is not an option in this context. One way or the other, it adds one more 
package.

> Merging Spec files is a different thing completely. That is probably 
> something to look into - especially if they can be created automatically from 
> gems or similar language specific package formats.

This is what I thought would be the hard part  Maybe mainly because I don't 
see a merit in merging spec files like just plain concatenating and obtaining 
the same result. It would probably be interesting, if I can select some 
sections, while probably modify the associated `%files` section.

-- 
Reply to this email directly or view it on GitHub:
https://github.com/rpm-software-management/rpm/discussions/2887#discussioncomment-8369215
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] Is there a way to merge several RPMs (Discussion #2887)

2024-02-05 Thread Florian Festi
Even longer answer: One could create a tool to do that with the rpm API. But I 
really don't see a a reason to do so. You are also kinda confused about RPMs 
and SRPMs. I don't think you really want to merge binary RPMs but get rid of 
packages in distgit - which is the expensive part as far as I see it.
If you do want to merge binary packages (not that I can think of a good reason) 
use meta packages instead.

Merging Spec files is a different thing completely. That is probably something 
to look into - especially if they can be created automatically from gems or 
similar language specific package formats.

-- 
Reply to this email directly or view it on GitHub:
https://github.com/rpm-software-management/rpm/discussions/2887#discussioncomment-8368898
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] Is there a way to merge several RPMs (Discussion #2887)

2024-02-05 Thread Florian Festi
Short answer: No
Longer answer: No, but one could create one, but you really do not want to.
Other answer: Yes, but no the way you want.

-- 
Reply to this email directly or view it on GitHub:
https://github.com/rpm-software-management/rpm/discussions/2887#discussioncomment-8368857
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] Introduce an rpm-controlled per-build directory (PR #2885)

2024-02-05 Thread Panu Matilainen
FWIW, the %{NAME}-%{VERSION}-PKG name is not really intended as final, I used 
that just to have it stand out from the logs. Better ideas welcome.

-- 
Reply to this email directly or view it on GitHub:
https://github.com/rpm-software-management/rpm/pull/2885#issuecomment-1926715511
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] Proof-of-concept native support for vpath-style builds (PR #2886)

2024-02-05 Thread Panu Matilainen
Besides PoC, this is of course rather simple-minded too. There may be some 
interesting possibilities in supporting multiple build variants natively here.

-- 
Reply to this email directly or view it on GitHub:
https://github.com/rpm-software-management/rpm/pull/2886#issuecomment-1926707782
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] Introduce an rpm-controlled per-build directory (PR #2885)

2024-02-05 Thread Panu Matilainen
@pmatilai pushed 1 commit.

80a60aa2bddb78a897e6279891ec58d862d92d74  fixup! Introduce an rpm-controlled 
per-build directory

-- 
View it on GitHub:
https://github.com/rpm-software-management/rpm/pull/2885/files/2e18582771df083726278bc64feee8b8b5268e74..80a60aa2bddb78a897e6279891ec58d862d92d74
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] Is there a way to merge several RPMs (Discussion #2887)

2024-02-05 Thread Vít Ondruch
This is related to 
https://github.com/rpm-software-management/rpm/discussions/2849#discussioncomment-8368400.
 Given there are a.rpm and b.rpm packages, is there a way to merge them into 
package c.rpm (or merge b.rpm into a.rpm, it does not matter).

-- 
Reply to this email directly or view it on GitHub:
https://github.com/rpm-software-management/rpm/discussions/2887
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] Proof-of-concept native support for vpath-style builds (PR #2886)

2024-02-05 Thread Panu Matilainen
This is on top of the per-build directory PR because it makes this much easier 
to do, ie the actual feature here is just the last commit.

This is NOT meant for merging at this point, just that even a crude 
implementation is easier to discuss than thin air. See also 
https://github.com/rpm-software-management/rpm/discussions/2882

-- 
Reply to this email directly or view it on GitHub:
https://github.com/rpm-software-management/rpm/pull/2886#issuecomment-1926674899
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] Package specific prep/build/... sections (Discussion #2849)

2024-02-05 Thread Vít Ondruch
Just FTR, this is related to the #2847.

What I am possibly about to do is to package Ruby with a few gems into single 
binary RPM. So my high level idea is to essentially "join" Ruby .spec file with 
the .spec files of the gems.

-- 
Reply to this email directly or view it on GitHub:
https://github.com/rpm-software-management/rpm/discussions/2849#discussioncomment-8368400
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] Package specific prep/build/... sections (Discussion #2849)

2024-02-05 Thread Vít Ondruch
> Append/prepend is still operating on exactly one script of a type.

Maybe it could stay like that in practice, if you are talking about the 
underlying bash script (which to me is just implementation detail I 
deliberately ignore)

> With append/prepend, you can place sub-package specific build scriptlet 
> sections into their own sections though, so you can have a single %if/%endif 
> around it all.

Possibly, while I can't really imagine it lacking real experience.

-- 
Reply to this email directly or view it on GitHub:
https://github.com/rpm-software-management/rpm/discussions/2849#discussioncomment-8368363
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] Proof-of-concept native support for vpath-style builds (PR #2886)

2024-02-05 Thread Panu Matilainen
Add a new %setup switch -s to indicate building in a directory outside the 
source directory, known as vpath build in some circles. Add a new 
%{sourcesubdir} macro which by default equals %{buildsubdir}, but when -s is 
used, we create and switch to a separate directory after unpacking.

A one gotcha here is that special %doc and %license has traditionally worked 
for both built and pre-existing content. With build and source trees separated, 
both cannot work. As special %doc/%license is mostly used for things like 
READMEs and COPYING which come as part of the source, we define %doc on 
vpath builds to mean source directory, and assume built content has its own 
means of installing (eg make install-doc).

Another potential issue is that we redefine %_configure to an absolute path in 
the sourcesubdir, this would break some unusual cases where %configure is used 
to invoke a configure-script outside the project top directory. Its mainly 
redefined here to make testing -s on an autotools project easy, a final 
implementation might do something else.
You can view, comment on, or merge this pull request online at:

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

-- Commit Summary --

  * Introduce an rpm-controlled per-build directory
  * Make buildroot fully rpm controlled, always inside the per-build directory
  * Move SPECPARTS to per-pkg builddir, no longer needing name-version
  * PoC: Add native support for vpath-style builds outside the source tree

-- File Changes --

M build/build.c (38)
M build/files.c (2)
M build/parsePreamble.c (30)
M build/parsePrep.c (20)
M build/parseSpec.c (15)
M build/rpmbuild_internal.h (1)
M build/spec.c (4)
M include/rpm/rpmbuild.h (3)
M macros.in (22)
M tests/rpmbuild.at (46)
M tests/rpmspec.at (8)
M tools/rpmbuild.c (18)

-- Patch Links --

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

-- 
Reply to this email directly or view it on GitHub:
https://github.com/rpm-software-management/rpm/pull/2886
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] Introduce an rpm-controlled per-build directory (PR #2885)

2024-02-05 Thread Panu Matilainen
@pmatilai pushed 2 commits.

beeb017d5f471aa5572f5c18365ece89cce8ebd0  Make buildroot fully rpm controlled, 
always inside the per-build directory
2e18582771df083726278bc64feee8b8b5268e74  Move SPECPARTS to per-pkg builddir, 
no longer needing name-version

-- 
View it on GitHub:
https://github.com/rpm-software-management/rpm/pull/2885/files/18b31fd7cb9ebf3e2d656013935e68ac78320482..2e18582771df083726278bc64feee8b8b5268e74
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] Introduce an rpm-controlled per-build directory (PR #2885)

2024-02-05 Thread Panu Matilainen
In our ancient wacko setup, %_builddir is shared by all your packages, under 
which a package may create %buildsubdir - if it uses %setup that is. In other 
words, theres no safe and sane place for rpm to place per-build material. 
Introduce a new intermediate directory between the two, created in a newly 
added (internal) %builddir build step, to give rpm that place. This opens up 
all manner of opportunities, to be explored in later commits.

A new build-time macro %pkgbuilddir is added for the absolute path of this new 
directory, but in addition we override %_builddir to the same value for maximum 
compatibility with existing specs - a LOT of packages reference %{_builddir} 
for all sorts of (mostly bad) reasons and we dont want to deal with the 
carnage that would follow from breaking it. A further complication here is that 
defining %_builddir (along with sources etc) to current working directory is a 
common configuration (used eg by fedpkg and its variants) that we dont 
want to break either. So upon entry, we grab the pre-existing %_builddir and 
define %_top_builddir from it, which we can then base the %pkgbuilddir on, 
while preserving compatibility with both of the above scenarios.
You can view, comment on, or merge this pull request online at:

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

-- Commit Summary --

  * Introduce an rpm-controlled per-build directory

-- File Changes --

M build/build.c (29)
M build/parsePreamble.c (13)
M build/rpmbuild_internal.h (1)
M build/spec.c (4)
M include/rpm/rpmbuild.h (1)
M macros.in (8)
M tests/rpmbuild.at (32)
M tests/rpmspec.at (6)
M tools/rpmbuild.c (6)

-- Patch Links --

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

-- 
Reply to this email directly or view it on GitHub:
https://github.com/rpm-software-management/rpm/pull/2885
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] Native support for separate build and source tree (aka vpath builds) (Discussion #2882)

2024-02-05 Thread Panu Matilainen
Good point wrt multiple build directories :+1: While we have native support for 
these kind of multiple variants builds via `RemovePathPostfixes` (which isn't 
used by vim or python in fedora, curl does though), having separate build and 
buildroot directories could make that easier to use.

-- 
Reply to this email directly or view it on GitHub:
https://github.com/rpm-software-management/rpm/discussions/2882#discussioncomment-8367139
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] Package specific prep/build/... sections (Discussion #2849)

2024-02-05 Thread Panu Matilainen
Append/prepend is still operating on exactly one script of a type. Adding 
support for multiple scripts for each step would be a huge amount of work for 
very little benefit, I don't see that happening. With append/prepend, you can 
place sub-package specific build scriptlet sections into their own sections 
though, so you can have a single %if/%endif around it all.

-- 
Reply to this email directly or view it on GitHub:
https://github.com/rpm-software-management/rpm/discussions/2849#discussioncomment-8366986
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