Re: Creating symlink and paths for 8.1.14

Thank you Remi!

Re: Creating symlink and paths for 8.1.14

Hey Remi,

It seems my script broke and provided me with the following error:

Start: build phase for php-pear-1.10.13-5.remi.src.rpm
Start: build setup for php-pear-1.10.13-5.remi.src.rpm
error: Too many levels of recursion in macro expansion. It is likely caused by recursive macro declaration.
error: line 124: Requires: php81-runtime(
Building target platforms: aarch64

Is it my mock configuration template? It's really odd.

Thanks a lot!

Re: Creating symlink and paths for 8.1.14

Sorry, no idea, never saw this

Laptop:  Fedora 38 + rpmfusion + remi (SCL only)
x86_64 builder: Fedora 39 + rpmfusion + remi-test
aarch64 builder: RHEL 9 with EPEL
Hosting Server: CentOS 8 Stream with EPEL, rpmfusion, remi

79 (edited by kdgeorgiev 2023-05-22 14:32:02)

Re: Creating symlink and paths for 8.1.14

Hey Remi,

It was a bad mock configuration. Thanks for the reply

By the way, have you used to mock --chain?

It seems that I was able to build the pecl modules before but now when I run
mock --chain /opt/src-rpms/*src.rpm --continue -r /etc/mock/centos-7-rg-aarch64-php81scl.cfg
It builds them from a localrepo, which is odd and when I want to define the repo I've created on my machine it doesn't use it.

Any suggestions on this ?

And another question I'm asking is..

Is this an expected behaviour when php-pear is installed through your repo or any other rpm's built the way yours is built?

php-pear                                        noarch                                      1:1.10.13-5.el7.remi                                     /php-pear-1.10.13-5.el7.remi.noarch                                     2.1 M
Installing for dependencies:
libzip                                          aarch64                                     0.10.1-8.el7                                             base                                                                     47 k
php-cli                                         aarch64                                     5.4.16-48.el7                                            base                                                                    2.5 M
php-common                                      aarch64                                     5.4.16-48.el7                                            base                                                                    550 k
php-process                                     aarch64                                     5.4.16-48.el7                                            base                                                                     56 k
php-xml                                         aarch64                                     5.4.16-48.el7                                            base                                                                    120 k

I thought I have to see php 8.1.19 not 5.4 but my mind can be playing tricks on me!

Re: Creating symlink and paths for 8.1.14

> By the way, have you used to mock --chain?

I don't need it

> Is this an expected behaviour when php-pear is installed through your repo or any other rpm's built the way yours is built?

php-pear will pull "php" (from whatever repository is enabled)
php81-php-pear will pull "php81-php"

Laptop:  Fedora 38 + rpmfusion + remi (SCL only)
x86_64 builder: Fedora 39 + rpmfusion + remi-test
aarch64 builder: RHEL 9 with EPEL
Hosting Server: CentOS 8 Stream with EPEL, rpmfusion, remi

Re: Creating symlink and paths for 8.1.14

Okay!
It's really odd to me it can't find 8.1.19 even if it's installed and there is a local repo with it in my mock config.

Thanks! Any suggestions on how you built multiple pecl extensions in one go if you're not using mock --chain?

Re: Creating symlink and paths for 8.1.14

> Any suggestions on how you built multiple pecl extensions in one go if you're not using mock --chain?

Each one is build separately, using a new and clean chroot.

Laptop:  Fedora 38 + rpmfusion + remi (SCL only)
x86_64 builder: Fedora 39 + rpmfusion + remi-test
aarch64 builder: RHEL 9 with EPEL
Hosting Server: CentOS 8 Stream with EPEL, rpmfusion, remi

Re: Creating symlink and paths for 8.1.14

Thank you! I will go away from mock --chain and do individual builds on each perl module.
It seems that you're right that php81-php-pear can be attached to php81. I have it on working with version 8.1.17 but it seems I can't get php81-php-pear attached to 8.1.19.
I've missed something in my script and that's why it doesn't build it attached to php81.

Re: Creating symlink and paths for 8.1.14

Hey Remi!

It seems that I am able to build everything from start to end with my mock config and templates if the target PHP version is 8.1.17.
However, that's not the case with 8.1.19. Can you tell me if something has changed in the build process?

I'm using these src.rpms to make 8.1.19 https://rpms.remirepo.net/SRPMS/php81-8 … mi.src.rpm and then https://rpms.remirepo.net/SRPMS/php81-p … i.src.rpm.
This step goes through perfectly and I'm able to get a working 8.1.19 but then the php-pear seems to ignore my local repo and I'm not able to build it for 8.1.19.
Any suggestions on where I should investigate?

The only error I get is this;

Start: build phase for php-pear-1.10.13-5.remi.src.rpm
Start: build setup for php-pear-1.10.13-5.remi.src.rpm
error: Too many levels of recursion in macro expansion. It is likely caused by recursive macro declaration.
error: line 124: Requires: php81-runtime(
Building target platforms: aarch64


Thanks in advance!

Re: Creating symlink and paths for 8.1.14

> Can you tell me if something has changed in the build process?

Nothing

Is "scl_vendor" defined in your mock configuration ?

Laptop:  Fedora 38 + rpmfusion + remi (SCL only)
x86_64 builder: Fedora 39 + rpmfusion + remi-test
aarch64 builder: RHEL 9 with EPEL
Hosting Server: CentOS 8 Stream with EPEL, rpmfusion, remi

Re: Creating symlink and paths for 8.1.14

Yes it is!

Here is the output from the config.

config_opts['macros']['%_scl_prefix']="/opt/rg"
config_opts['macros']['%_scl_vendor']="rg"

Re: Creating symlink and paths for 8.1.14

It's scl_vendor, not _scl_vendor

Laptop:  Fedora 38 + rpmfusion + remi (SCL only)
x86_64 builder: Fedora 39 + rpmfusion + remi-test
aarch64 builder: RHEL 9 with EPEL
Hosting Server: CentOS 8 Stream with EPEL, rpmfusion, remi

Re: Creating symlink and paths for 8.1.14

Ah I see. I assume I would have to change it for all the templates?

Re: Creating symlink and paths for 8.1.14

Again, don't know why you have multiple templates
but yes

Laptop:  Fedora 38 + rpmfusion + remi (SCL only)
x86_64 builder: Fedora 39 + rpmfusion + remi-test
aarch64 builder: RHEL 9 with EPEL
Hosting Server: CentOS 8 Stream with EPEL, rpmfusion, remi

Re: Creating symlink and paths for 8.1.14

Thanks!
I use multiple templates for my personal convenience and I follow the build process much easier for debug and etc.

Re: Creating symlink and paths for 8.1.14

Hey Remi,

Do you know if SCL Multiple Version PHP 8.1.20+ for EL9 is offered by the official repository?
Also, can we build SCL PHP 8.1.+ for aarch64 if we use your .src.rpms and mock config files?

Thank you in advance!

Re: Creating symlink and paths for 8.1.14

> Do you know if SCL Multiple Version PHP 8.1.20+ for EL9 is offered by the official repository?

No (official SCL are only for EL-7)

> Also, can we build SCL PHP 8.1.+ for aarch64 if we use your .src.rpms and mock config files?

Yes.

Perhaps I will build them this summer if I receive the real aarch64 builder I expect.

https://twitter.com/RemiRepository/stat … 0619613184

Laptop:  Fedora 38 + rpmfusion + remi (SCL only)
x86_64 builder: Fedora 39 + rpmfusion + remi-test
aarch64 builder: RHEL 9 with EPEL
Hosting Server: CentOS 8 Stream with EPEL, rpmfusion, remi

Re: Creating symlink and paths for 8.1.14

BTW, seriously, switch to both EL-9 and single version.
Make things simple!

Laptop:  Fedora 38 + rpmfusion + remi (SCL only)
x86_64 builder: Fedora 39 + rpmfusion + remi-test
aarch64 builder: RHEL 9 with EPEL
Hosting Server: CentOS 8 Stream with EPEL, rpmfusion, remi

Re: Creating symlink and paths for 8.1.14

Remi,

Thanks for the prompt reply! Let me follow you on Twitter.

For base PHP81 I will use this: https://git.remirepo.net/cgit/tools/moc … el9x81.cfg
And SCL Build this: https://git.remirepo.net/cgit/tools/moc … xscl81.cfg

They look a bit different from EL7 but I assume these templates would help me with the build?

Re: Creating symlink and paths for 8.1.14

> For base PHP81 I will use this: https://git.remirepo.net/cgit/tools/moc … el9x81.cfg

No need to build anything, aarch64 packages are available
and aarch mock config is https://git.remirepo.net/cgit/tools/moc … el9a81.cfg

> And SCL Build this: https://git.remirepo.net/cgit/tools/moc … xscl81.cfg

Again, prefer single version
Or be patient, SCL should be available this summer (waiting for a real aarch64 computer)

Laptop:  Fedora 38 + rpmfusion + remi (SCL only)
x86_64 builder: Fedora 39 + rpmfusion + remi-test
aarch64 builder: RHEL 9 with EPEL
Hosting Server: CentOS 8 Stream with EPEL, rpmfusion, remi

Re: Creating symlink and paths for 8.1.14

Notice: aarch64 is now a primary arch for EL-8, EL-9 and Fedora 39

This means all packages (modules and SCL, from 7.4 to 8.3) are available.

Laptop:  Fedora 38 + rpmfusion + remi (SCL only)
x86_64 builder: Fedora 39 + rpmfusion + remi-test
aarch64 builder: RHEL 9 with EPEL
Hosting Server: CentOS 8 Stream with EPEL, rpmfusion, remi

Re: Creating symlink and paths for 8.1.14

Hey Remi,

It seems there has been a big change from 8.1.19 to 8.1.26 in the build process.
Do you know why I get this?

--> Finished Dependency Resolution
Error: Package: 1:php81-php-pear-1.10.14-1.el7.remi.noarch (remi)
           Requires: php81-php-posix
Error: Package: 1:php81-php-pear-1.10.14-1.el7.remi.noarch (remi)
           Requires: php81-php-pcre
Error: Package: 1:php81-php-pear-1.10.14-1.el7.remi.noarch (remi)
           Requires: php81-php-ftp
Error: Package: 1:php81-php-pear-1.10.14-1.el7.remi.noarch (remi)
           Requires: php81-php-cli
Error: Package: 1:php81-php-pear-1.10.14-1.el7.remi.noarch (remi)
           Requires: php81-php-tokenizer
Error: Package: 1:php81-php-pear-1.10.14-1.el7.remi.noarch (remi)
           Requires: php81-php-xml
Error: Package: 1:php81-php-pear-1.10.14-1.el7.remi.noarch (remi)
           Requires: php81-php-bz2
Error: Package: 1:php81-php-pear-1.10.14-1.el7.remi.noarch (remi)
           Requires: php81-php(language) > 5.4
You could try using --skip-broken to work around the problem
You could try running: rpm -Va --nofiles --nodigest
Error: Package: 1:php81-php-pear-1.10.14-1.el7.remi.noarch (remi)
           Requires: php81-php-zlib

Re: Creating symlink and paths for 8.1.14

No idea

These dependencies are expected.

Laptop:  Fedora 38 + rpmfusion + remi (SCL only)
x86_64 builder: Fedora 39 + rpmfusion + remi-test
aarch64 builder: RHEL 9 with EPEL
Hosting Server: CentOS 8 Stream with EPEL, rpmfusion, remi

99 (edited by kdgeorgiev 2023-12-19 13:52:00)

Re: Creating symlink and paths for 8.1.14

My building process:

1. What I do is build a base with php81-8.1-4.
2. Before I build php81-php-8.1.26-1 I go on to build this icu72-72 dependency or should I use icu-73 ? Or is this wrong ?
3. libssh2 which was a prerequisite for php81-php-8.1.26-1

Template for php81

config_opts['target_arch'] = 'aarch64'
config_opts['legal_host_arches'] = ('aarch64',)
config_opts['chroot_setup_cmd'] = 'install @buildsys-build ccache devtoolset-10 devtoolset-10-gcc* ccache scl-utils-build scl-utils'
config_opts['use_bootstrap'] = 'True'

Template for the dependencies and php81-php-

config_opts['target_arch'] = 'aarch64'
config_opts['legal_host_arches'] = ('aarch64',)
config_opts['chroot_setup_cmd'] = 'install @buildsys-build ccache devtoolset-10 devtoolset-10-gcc* scl-utils-build scl-utils php81-build php81-php-devel php81-runtime php81-php-pear'
config_opts['use_bootstrap'] = 'True'

Re: Creating symlink and paths for 8.1.14

Okay, it seems I used the wrong .cfg template for the icu !
But can you confirm if icu-73 can be used for PHP81 or only for PHP82 ?