Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:124221 X-Original-To: internals@lists.php.net Delivered-To: internals@lists.php.net Received: from php-smtp4.php.net (php-smtp4.php.net [45.112.84.5]) by qa.php.net (Postfix) with ESMTPS id 7C4D51A009C for ; Thu, 4 Jul 2024 16:09:40 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=php.net; s=mail; t=1720109462; bh=Bk3kG/Rm4ItnEHEqcnCYNxzfZsnfk6CvayjgN/S9k+E=; h=From:Date:Subject:To:From; b=GBBSb9J4VrjLiN1/AdU6nOEMSqEV4mqehKJ2e3XjBPkShNbsBKhbdcnP6cQ045rvb My+s1crwL3Nocpunx/cgNSUM4j2KBPzi7GdNpkW8+/XSmj4WDWuS1mMexflc2jxtqZ WdaSOwuBfyle7Lib2RIkX27vTEGVsEWg4uyUUATtLOWTbnm/ih5TDOzHl7dcMMTu6H hBwi4TnGyPjo9etfVBmFxNDzLgchvERicxeGa0e2v3l4c1X1l/5o+EDxzOaLeYW4+N zT2gdqAfiAt7Nep4KZ9YQ6GJuuqxfj1WEvdAgTkU8umkYH7J1vHmZuwPzOsuPXIlwd dBQulRnBYqADg== Received: from php-smtp4.php.net (localhost [127.0.0.1]) by php-smtp4.php.net (Postfix) with ESMTP id 082541804F4 for ; Thu, 4 Jul 2024 16:11:02 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 4.0.0 (2022-12-13) on php-smtp4.php.net X-Spam-Level: **** X-Spam-Status: No, score=4.7 required=5.0 tests=BAYES_50,DMARC_NONE, HTML_MESSAGE,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H3,RCVD_IN_MSPIKE_WL, SPF_HELO_NONE,SPF_SOFTFAIL,T_SCC_BODY_TEXT_LINE autolearn=no autolearn_force=no version=4.0.0 X-Spam-Virus: Error (Cannot connect to unix socket '/var/run/clamav/clamd.ctl': connect: Connection refused) X-Envelope-From: Received: from 20.mo581.mail-out.ovh.net (20.mo581.mail-out.ovh.net [46.105.49.208]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by php-smtp4.php.net (Postfix) with ESMTPS for ; Thu, 4 Jul 2024 16:11:01 +0000 (UTC) Received: from director6.ghost.mail-out.ovh.net (unknown [10.108.17.59]) by mo581.mail-out.ovh.net (Postfix) with ESMTP id 4WFM6T2k0lz1JQk for ; Thu, 4 Jul 2024 16:09:37 +0000 (UTC) Received: from ghost-submission-6684bf9d7b-k44dq (unknown [10.110.178.140]) by director6.ghost.mail-out.ovh.net (Postfix) with ESMTPS id 0CFFE1FD57 for ; Thu, 4 Jul 2024 16:09:36 +0000 (UTC) Received: from php.earth ([37.59.142.101]) by ghost-submission-6684bf9d7b-k44dq with ESMTPSA id 5IvgNEDJhmaPDwEAwhN0Gg (envelope-from ) for ; Thu, 04 Jul 2024 16:09:36 +0000 Authentication-Results:garm.ovh; auth=pass (GARM-101G004dcd5f134-6111-469a-8268-88ffe2d7fa61, 9589F11C9C779435ABDDA8833E0811E0B0D92057) smtp.auth=peter.kokot@php.earth X-OVh-ClientIp:209.85.166.181 Received: by mail-il1-f181.google.com with SMTP id e9e14a558f8ab-375858224adso3259675ab.0 for ; Thu, 04 Jul 2024 09:09:36 -0700 (PDT) X-Gm-Message-State: AOJu0YzKu2Um9OyuZfImGWScIT8pUQAs93E//8Ns1I9Vlqo3L0ncasaR tH6O922ac/GRDUPwR5ysJGiT0w3UviN2WeilqgkgN9gGZ/4wi8SkjdfIXziTRJjVZH8xx8dQfdb KsBZte+x/hDBhUaqXoPw3nsde2rc= X-Google-Smtp-Source: AGHT+IEJnSS2lDv5iuDi55jW34jjk7Pk94Vb4PC+TKU1oRg+aSjqk1bXJd9sZByUVpRV5bopWb2P0wcndlnTc+pW558= X-Received: by 2002:a92:cd8f:0:b0:383:284:113 with SMTP id e9e14a558f8ab-38398431589mr26473275ab.4.1720109375821; Thu, 04 Jul 2024 09:09:35 -0700 (PDT) Precedence: bulk list-help: list-post: List-Id: internals.lists.php.net MIME-Version: 1.0 Date: Thu, 4 Jul 2024 18:09:22 +0200 X-Gmail-Original-Message-ID: Message-ID: Subject: [PHP-DEV] Support for pkg-config .pc files To: Internals Content-Type: multipart/alternative; boundary="000000000000522e49061c6e2c3f" X-Ovh-Tracer-Id: 14501872277774393862 X-VR-SPAMSTATE: OK X-VR-SPAMSCORE: 0 X-VR-SPAMCAUSE: gggruggvucftvghtrhhoucdtuddrgeeftddrudelgdelhecutefuodetggdotefrodftvfcurfhrohhfihhlvgemucfqggfjpdevjffgvefmvefgnecuuegrihhlohhuthemucehtddtnecunecujfgurhepggfhfffkuffvtgesrgdtreertddtjeenucfhrhhomheprfgvthgvrhcumfhokhhothcuoehpvghtkhesphhhphdrnhgvtheqnecuggftrfgrthhtvghrnhepueefleejleejffeufeejjedtvdegteduhfefgfeutedtvddtlefhkeelffelkeejnecuffhomhgrihhnpehgihhthhhusgdrtghomhdpfihikhhiphgvughirgdrohhrghdpfhhrvggvuggvshhkthhophdrohhrghdpphgtrdhinhenucfkphepuddvjedrtddrtddruddpvddtledrkeehrdduieeirddukedupdefjedrheelrddugedvrddutddunecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehinhgvthepuddvjedrtddrtddruddpmhgrihhlfhhrohhmpehpvghtkhesphhhphdrnhgvthdpnhgspghrtghpthhtohepuddprhgtphhtthhopehinhhtvghrnhgrlhhssehlihhsthhsrdhphhhprdhnvghtpdfovfetjfhoshhtpehmohehkedupdhmohguvgepshhmthhpohhuth From: petk@php.net (Peter Kokot) --000000000000522e49061c6e2c3f Content-Type: text/plain; charset="UTF-8" Hello, There is another pull request in preparation that I'd like to squeeze in the PHP-8.4 branch if it will possible to wrap it up until the feature freeze milestone: https://github.com/php/php-src/pull/13755 In short, pkg-config is *nix command line utility to query installed libraries on the system: https://en.wikipedia.org/wiki/Pkg-config https://people.freedesktop.org/~dbn/pkg-config-guide.html And pkgconf is a compatible maintained continuation/fork that many distributions might also use. Each library creates a so-called .pc file, for example, php.pc which is installed to the pkgconfig subdirectory. For example, /usr/lib/x86_64-linux-gnu/pkgconfig/php.pc .pc file is created from a template .pc.in and gets some placeholders replaced during the configuration phase of building to get the library name, include flags etc. PHP already extensively relies on pkg-config's interface for finding certain dependencies during the build (libxml2, SQLite, OpenSSL, curl...) but so far never implemented its own .pc file(s). PHP could have two such .pc files. One for a global PHP installation as a whole that PHP extensions can use (php.pc) and one for the embed SAPI to embed PHP into an application (php-embed.pc) Its usage is very similar to php-config script, i.e. getting build details. See PR for details, I'll update it on the way what can be done. Let me know if that's fine or is there some concern. --000000000000522e49061c6e2c3f Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hello,

There is another pull request in preparation= that I'd like to squeeze in the PHP-8.4 branch if it will possible to = wrap it up until the feature freeze milestone:
https://github.com/php/php-src/pull/13755<= br>
In short, pkg-config is *nix command line utility to query installed= libraries on the system:
https://en.wikipedia.org/wiki/Pkg-config
https://people.freedeskto= p.org/~dbn/pkg-config-guide.html

And pkgconf is a compatible mai= ntained continuation/fork that many distributions might also use.

Ea= ch library creates a so-called .pc file, for example, php.pc which is insta= lled to the pkgconfig subdirectory. For example, /usr/lib/x86_64-linux-gnu/= pkgconfig/php.pc

.pc file is created from a template .pc.in and gets some placeholders replaced during the configu= ration phase of building to get the library name, include flags etc.
PHP already extensively relies on pkg-config's interface for finding c= ertain dependencies during the build (libxml2, SQLite, OpenSSL, curl...) bu= t so far never implemented its own .pc file(s).

PHP could have two s= uch .pc files. One for a global PHP installation as a whole that PHP extens= ions can use (php.pc) and one for the embed SAPI to embed PHP into an appli= cation (php-embed.pc)

Its usage is very similar to php-config script= , i.e. getting build details.

See PR for details, I'll update it= on the way what can be done.

Let me know if that's fine or is t= here some concern.
--000000000000522e49061c6e2c3f--