uog curl links

This commit is contained in:
joborun linux 2023-01-04 01:59:35 +02:00
parent 8194399ed3
commit bd49e301d5
10 changed files with 178 additions and 23 deletions

View File

@ -0,0 +1,52 @@
From e2aed004302e51cfa5b6ce8c8ab65ef92aa83196 Mon Sep 17 00:00:00 2001
From: Patrick Monnerat <patrick@monnerat.net>
Date: Fri, 23 Dec 2022 15:35:27 +0100
Subject: typecheck: accept expressions for option/info parameters
As expressions can have side effects, evaluate only once.
To enable deprecation reporting only once, get rid of the __typeof__
use to define the local temporary variable and use the target type
(CURLoption/CURLINFO). This also avoids multiple reports on type
conflicts (if some) by the curlcheck_* macros.
Note that CURLOPT_* and CURLINFO_* symbols may be deprecated, but not
their values: a curl_easy_setopt call with an integer constant as option
will never report a deprecation.
Reported-by: Thomas Klausner
Fixes #10148
Closes #10149
---
include/curl/typecheck-gcc.h | 6 ++----
1 file changed, 2 insertions(+), 4 deletions(-)
diff --git a/include/curl/typecheck-gcc.h b/include/curl/typecheck-gcc.h
index bf655bb632..85aa8b7b49 100644
--- a/include/curl/typecheck-gcc.h
+++ b/include/curl/typecheck-gcc.h
@@ -42,9 +42,8 @@
*/
#define curl_easy_setopt(handle, option, value) \
__extension__({ \
- CURL_IGNORE_DEPRECATION(__typeof__(option) _curl_opt = option;) \
+ CURLoption _curl_opt = (option); \
if(__builtin_constant_p(_curl_opt)) { \
- (void) option; \
CURL_IGNORE_DEPRECATION( \
if(curlcheck_long_option(_curl_opt)) \
if(!curlcheck_long(value)) \
@@ -120,9 +119,8 @@
/* wraps curl_easy_getinfo() with typechecking */
#define curl_easy_getinfo(handle, info, arg) \
__extension__({ \
- CURL_IGNORE_DEPRECATION(__typeof__(info) _curl_info = info;) \
+ CURLINFO _curl_info = (info); \
if(__builtin_constant_p(_curl_info)) { \
- (void) info; \
CURL_IGNORE_DEPRECATION( \
if(curlcheck_string_info(_curl_info)) \
if(!curlcheck_arr((arg), char *)) \
--
cgit v1.2.3-53-g9071

View File

@ -8,7 +8,7 @@
pkgbase=curl
pkgname=(curl libcurl-compat libcurl-gnutls)
pkgver=7.87.0
pkgrel=01
pkgrel=02
pkgdesc='An URL retrieval utility and library - w/o ipv6 & zstd'
arch=('x86_64')
url='https://curl.haxx.se'
@ -18,8 +18,8 @@ depends=('ca-certificates' 'brotli' 'libbrotlidec.so' 'krb5' 'libgssapi_krb5.so'
'openssl' 'zlib')
makedepends=('patchelf')
provides=('libcurl.so')
source=("https://curl.haxx.se/download/${pkgname}-${pkgver}.tar.gz"{,.asc})
# '0001-noproxy.patch')
source=("https://curl.haxx.se/download/${pkgname}-${pkgver}.tar.gz"{,.asc}
'0001-typecheck_accept_expressions_for_option_info_parameters.patch')
_configure_options=(
--prefix='/usr'
@ -37,11 +37,11 @@ _configure_options=(
--with-ca-bundle='/etc/ssl/certs/ca-certificates.crt'
)
#prepare() {
# cd "${srcdir}/${pkgbase}-${pkgver}"
#
# patch -Np1 < "${srcdir}"/0001-noproxy.patch
#}
prepare() {
cd "${srcdir}/${pkgbase}-${pkgver}"
patch -Np1 < ../0001-typecheck_accept_expressions_for_option_info_parameters.patch
}
build() {
mkdir build-curl{,-compat,-gnutls}
@ -135,8 +135,10 @@ license=('MIT')
validpgpkeys=('27EDEAF22F3ABCEB50DB9A125CC908FDB71E12C2') # Daniel Stenberg
sha256sums=(8a063d664d1c23d35526b87a2bf15514962ffdd8ef7fd40519191b3c23e39548 # curl-7.87.0.tar.gz
0b2d605653367adeaee6f33d190c0791b6809afd6b6469468bd2c1d532409ab8) # curl-7.87.0.tar.gz.asc
0b2d605653367adeaee6f33d190c0791b6809afd6b6469468bd2c1d532409ab8 # curl-7.87.0.tar.gz.asc
15b85263f8b8a7acbfa0861d71ce994cbe26c1a67e7de6749cb11831e34a481f) # 0001-typecheck_accept_expressions_for_option_info_parameters.patch
sha512sums=('939be5a7d82f7ed4e96173639aa50f5e6748b387d3f458f3845c584ad24d15d77b8cd64f4f2dc11bcc207b097d125d1dc713a9769964e3d4766182a217e9898d'
'SKIP')
sha512sums=(939be5a7d82f7ed4e96173639aa50f5e6748b387d3f458f3845c584ad24d15d77b8cd64f4f2dc11bcc207b097d125d1dc713a9769964e3d4766182a217e9898d
SKIP
89bacef6d58f296c4a21e0bf669b94b8dd771aae7a3897b445b7d98a0cf006e6131ed9a26d8e10aef4605c5a9d63030332ca5e32e8bae35e8a1844f1ae2c47a1)

View File

@ -7,7 +7,7 @@
pkgbase=curl
pkgname=(curl libcurl-compat libcurl-gnutls)
pkgver=7.87.0
pkgrel=1
pkgrel=2
pkgdesc='An URL retrieval utility and library'
arch=('x86_64')
url='https://curl.haxx.se'
@ -18,9 +18,11 @@ depends=('ca-certificates' 'brotli' 'libbrotlidec.so' 'krb5' 'libgssapi_krb5.so'
'openssl' 'zlib' 'zstd' 'libzstd.so')
makedepends=('patchelf')
provides=('libcurl.so')
source=("https://curl.haxx.se/download/${pkgname}-${pkgver}.tar.gz"{,.asc})
source=("https://curl.haxx.se/download/${pkgname}-${pkgver}.tar.gz"{,.asc}
'0001-typecheck_accept_expressions_for_option_info_parameters.patch')
sha512sums=('939be5a7d82f7ed4e96173639aa50f5e6748b387d3f458f3845c584ad24d15d77b8cd64f4f2dc11bcc207b097d125d1dc713a9769964e3d4766182a217e9898d'
'SKIP')
'SKIP'
'89bacef6d58f296c4a21e0bf669b94b8dd771aae7a3897b445b7d98a0cf006e6131ed9a26d8e10aef4605c5a9d63030332ca5e32e8bae35e8a1844f1ae2c47a1')
validpgpkeys=('27EDEAF22F3ABCEB50DB9A125CC908FDB71E12C2') # Daniel Stenberg
_configure_options=(
@ -37,6 +39,12 @@ _configure_options=(
--with-ca-bundle='/etc/ssl/certs/ca-certificates.crt'
)
prepare() {
cd "${srcdir}/${pkgbase}-${pkgver}"
patch -Np1 < ../0001-typecheck_accept_expressions_for_option_info_parameters.patch
}
build() {
mkdir build-curl{,-compat,-gnutls}

View File

@ -1,6 +1,6 @@
real 4m18.899s
user 3m50.742s
sys 0m32.983s
real 3m40.946s
user 3m13.964s
sys 0m32.094s

View File

@ -7,12 +7,12 @@
pkgname=links
pkgver=2.28
pkgrel=02
pkgdesc='A text WWW browser, similar to Lynx - gfx enabled in xlinks'
pkgrel=05
pkgdesc='A text WWW browser, similar to Lynx - gfx enabled in xlinks w/o zstd and ipv6'
arch=('x86_64')
url='http://links.twibright.com/'
depends=('brotli' 'libbrotlidec.so' 'bzip2' 'libbz2.so' 'gpm' 'libgpm.so'
'libevent' 'openssl' 'pcre' 'xz' 'zstd' 'libzstd.so')
'libevent' 'openssl' 'xz')
makedepends=('libtiff' 'libpng' 'libxt' 'librsvg')
optdepends=('libx11: for using xlinks'
'libtiff: for using xlinks'
@ -26,6 +26,8 @@ configure_options=(
--prefix=/usr
--mandir=/usr/share/man
--disable-javascript
--without-zstd
--without-ipv6
)
prepare() {
@ -74,4 +76,3 @@ license=('GPL')
sha256sums=(2fd5499b13dee59457c132c167b8495c40deda75389489c6cccb683193f454b4 # links-2.28.tar.bz2
f96bf2638e9c309bfdb857bd62a732b980231b3a683cd585ec872b249c2c1b19) # links.desktop

View File

@ -3,13 +3,13 @@
pkgname=links
pkgver=2.28
pkgrel=2
pkgrel=5
pkgdesc='A text WWW browser, similar to Lynx'
arch=('x86_64')
url='http://links.twibright.com/'
license=('GPL')
depends=('brotli' 'libbrotlidec.so' 'bzip2' 'libbz2.so' 'gpm' 'libgpm.so'
'libevent' 'openssl' 'pcre' 'xz' 'zstd' 'libzstd.so')
'libevent' 'openssl' 'xz' 'zstd' 'libzstd.so')
makedepends=('libtiff' 'libpng' 'libxt' 'librsvg')
optdepends=('libx11: for using xlinks'
'libtiff: for using xlinks'

1
links/confdefs.h Normal file
View File

@ -0,0 +1 @@

0
links/config.cache Normal file
View File

6
links/config.log Normal file
View File

@ -0,0 +1,6 @@
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
configure:638: checking for a BSD compatible install
configure:691: checking whether build environment is sane
configure:748: checking whether make sets ${MAKE}

85
links/configure vendored Normal file
View File

@ -0,0 +1,85 @@
Usage: configure [options] [host]
Options: [defaults in brackets after descriptions]
Configuration:
--cache-file=FILE cache test results in FILE
--help print this message
--no-create do not create output files
--quiet, --silent do not print `checking...' messages
--version print the version of autoconf that created configure
Directory and file names:
--prefix=PREFIX install architecture-independent files in PREFIX
[/usr/local]
--exec-prefix=EPREFIX install architecture-dependent files in EPREFIX
[same as prefix]
--bindir=DIR user executables in DIR [EPREFIX/bin]
--sbindir=DIR system admin executables in DIR [EPREFIX/sbin]
--libexecdir=DIR program executables in DIR [EPREFIX/libexec]
--datadir=DIR read-only architecture-independent data in DIR
[PREFIX/share]
--sysconfdir=DIR read-only single-machine data in DIR [PREFIX/etc]
--sharedstatedir=DIR modifiable architecture-independent data in DIR
[PREFIX/com]
--localstatedir=DIR modifiable single-machine data in DIR [PREFIX/var]
--libdir=DIR object code libraries in DIR [EPREFIX/lib]
--includedir=DIR C header files in DIR [PREFIX/include]
--oldincludedir=DIR C header files for non-gcc in DIR [/usr/include]
--infodir=DIR info documentation in DIR [PREFIX/info]
--mandir=DIR man documentation in DIR [PREFIX/man]
--srcdir=DIR find the sources in DIR [configure dir or ..]
--program-prefix=PREFIX prepend PREFIX to installed program names
--program-suffix=SUFFIX append SUFFIX to installed program names
--program-transform-name=PROGRAM
run sed PROGRAM on installed program names
Host type:
--build=BUILD configure for building on BUILD [BUILD=HOST]
--host=HOST configure for HOST [guessed]
--target=TARGET configure for TARGET [TARGET=HOST]
Features and packages:
--disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no)
--enable-FEATURE[=ARG] include FEATURE [ARG=yes]
--with-PACKAGE[=ARG] use PACKAGE [ARG=yes]
--without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no)
--x-includes=DIR X include files are in DIR
--x-libraries=DIR X library files are in DIR
--enable and --with options recognized:
--enable-debuglevel set internal checking level
-1 - recover from segmentation faults
0 - no checks (fastest)
1 - check memory leaks
2 - check memory leaks, red zone
3 - check memory leaks, red zone, pattern filling
--enable-graphics use graphics
--disable-utf8 disable UTF-8 terminal (saves memory)
--without-getaddrinfo compile without getaddrinfo function
--without-ipv6 compile without ipv6
--without-libevent compile without libevent
--without-gpm compile without gpm mouse
--with-ssl(=directory) enable SSL support
--with-ssl=nss enable SSL support through NSS OpenSSL emulation
--disable-ssl-pkgconfig don't use pkgconfig when searching for openssl
--without-zlib compile without zlib compression
--without-brotli compile without brotli compression
--without-zstd compile without zstandard compression
--without-bzip2 compile without bzip2 compression
--without-lzma compile without lzma compression
--without-lzip compile without lzip compression
--without-openmp compile without OpenMP
--without-svgalib compile without svgalib graphics driver
--without-x compile without X Window System graphics driver
--without-fb compile without Linux Framebuffer graphics driver
--without-directfb compile without DirectFB graphics driver
--without-pmshell compile without PMShell graphics driver
--without-windows compile without Windows graphics driver
--without-atheos compile without Atheos graphics driver
--without-haiku compile without Haiku graphics driver
--without-grx compile without DOS GRX graphics driver
--with-x use the X Window System
--without-freetype compile without freetype support
--disable-freetype-pkgconfig don't use pkgconfig when searching for libfreetype
--disable-png-pkgconfig don't use pkgconfig when searching for libpng
--without-libjpeg compile without JPEG support
--without-libtiff compile without TIFF support
--without-librsvg compile without SVG support
--disable-svg-pkgconfig don't use pkgconfig when searching for librsvg
--without-libwebp compile without WEBP support
--disable-webp-pkgconfig don't use pkgconfig when searching for librwebp