From c8f05a50ac933cb7a6e734a16eded776d0b113f6 Mon Sep 17 00:00:00 2001 From: Waldemar Brodkorb Date: Sat, 2 Mar 2024 11:38:34 +0100 Subject: libcap-ng: new package --- package/libcap-ng/Makefile | 28 ++ package/libcap-ng/patches/patch-INSTALL | 521 +++++++++++++++++++++++++++++ package/libcap-ng/patches/patch-autogen_sh | 9 + 3 files changed, 558 insertions(+) create mode 100644 package/libcap-ng/Makefile create mode 100644 package/libcap-ng/patches/patch-INSTALL create mode 100644 package/libcap-ng/patches/patch-autogen_sh diff --git a/package/libcap-ng/Makefile b/package/libcap-ng/Makefile new file mode 100644 index 000000000..48ce9dee5 --- /dev/null +++ b/package/libcap-ng/Makefile @@ -0,0 +1,28 @@ +# This file is part of the OpenADK project. OpenADK is copyrighted +# material, please see the LICENCE file in the top-level directory. + +include $(ADK_TOPDIR)/rules.mk + +PKG_NAME:= libcap-ng +PKG_VERSION:= 0.8.4 +PKG_RELEASE:= 1 +PKG_HASH:= 5615c76a61039e283a6bd107c4faf345ae5ad4dcd45907defe5e474d8fdb6fd2 +PKG_DESCR:= capability library +PKG_SECTION:= libs/misc +PKG_SITES:= https://github.com/stevegrubb/libcap-ng/archive/refs/tags/ +PKG_OPTS:= dev + +DISTFILES:= v$(PKG_VERSION).tar.gz + +include $(ADK_TOPDIR)/mk/package.mk + +$(eval $(call PKG_template,LIBCAP_NG,libcap-ng,$(PKG_VERSION)-$(PKG_RELEASE),$(PKG_DEPENDS),$(PKG_DESCR),$(PKG_SECTION),$(PKG_OPTS))) + +AUTOTOOL_STYLE:= autogen + +libcap-ng-install: + $(INSTALL_DIR) $(IDIR_LIBCAP_NG)/usr/lib + $(CP) $(WRKINST)/usr/lib/libcap-ng*.so* \ + $(IDIR_LIBCAP_NG)/usr/lib + +include $(ADK_TOPDIR)/mk/pkg-bottom.mk diff --git a/package/libcap-ng/patches/patch-INSTALL b/package/libcap-ng/patches/patch-INSTALL new file mode 100644 index 000000000..b9ca10914 --- /dev/null +++ b/package/libcap-ng/patches/patch-INSTALL @@ -0,0 +1,521 @@ +--- libcap-ng-0.8.4.orig/INSTALL 2023-12-20 16:18:45.000000000 +0100 ++++ libcap-ng-0.8.4/INSTALL 2024-02-27 12:31:52.534581269 +0100 +@@ -1,8 +1,8 @@ + Installation Instructions + ************************* + +-Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004, 2005, +-2006, 2007, 2008, 2009 Free Software Foundation, Inc. ++ Copyright (C) 1994-1996, 1999-2002, 2004-2016 Free Software ++Foundation, Inc. + + Copying and distribution of this file, with or without modification, + are permitted in any medium without royalty provided the copyright +@@ -12,97 +12,96 @@ without warranty of any kind. + Basic Installation + ================== + +- Briefly, the shell commands `./configure; make; make install' should +-configure, build, and install this package. The following +-more-detailed instructions are generic; see the `README' file for ++ Briefly, the shell command './configure && make && make install' ++should configure, build, and install this package. The following ++more-detailed instructions are generic; see the 'README' file for + instructions specific to this package. Some packages provide this +-`INSTALL' file but do not implement all of the features documented ++'INSTALL' file but do not implement all of the features documented + below. The lack of an optional feature in a given package is not + necessarily a bug. More recommendations for GNU packages can be found + in *note Makefile Conventions: (standards)Makefile Conventions. + +- The `configure' shell script attempts to guess correct values for ++ The 'configure' shell script attempts to guess correct values for + various system-dependent variables used during compilation. It uses +-those values to create a `Makefile' in each directory of the package. +-It may also create one or more `.h' files containing system-dependent +-definitions. Finally, it creates a shell script `config.status' that ++those values to create a 'Makefile' in each directory of the package. ++It may also create one or more '.h' files containing system-dependent ++definitions. Finally, it creates a shell script 'config.status' that + you can run in the future to recreate the current configuration, and a +-file `config.log' containing compiler output (useful mainly for +-debugging `configure'). ++file 'config.log' containing compiler output (useful mainly for ++debugging 'configure'). + +- It can also use an optional file (typically called `config.cache' +-and enabled with `--cache-file=config.cache' or simply `-C') that saves +-the results of its tests to speed up reconfiguring. Caching is +-disabled by default to prevent problems with accidental use of stale +-cache files. ++ It can also use an optional file (typically called 'config.cache' and ++enabled with '--cache-file=config.cache' or simply '-C') that saves the ++results of its tests to speed up reconfiguring. Caching is disabled by ++default to prevent problems with accidental use of stale cache files. + + If you need to do unusual things to compile the package, please try +-to figure out how `configure' could check whether to do them, and mail +-diffs or instructions to the address given in the `README' so they can ++to figure out how 'configure' could check whether to do them, and mail ++diffs or instructions to the address given in the 'README' so they can + be considered for the next release. If you are using the cache, and at +-some point `config.cache' contains results you don't want to keep, you ++some point 'config.cache' contains results you don't want to keep, you + may remove or edit it. + +- The file `configure.ac' (or `configure.in') is used to create +-`configure' by a program called `autoconf'. You need `configure.ac' if +-you want to change it or regenerate `configure' using a newer version +-of `autoconf'. ++ The file 'configure.ac' (or 'configure.in') is used to create ++'configure' by a program called 'autoconf'. You need 'configure.ac' if ++you want to change it or regenerate 'configure' using a newer version of ++'autoconf'. + + The simplest way to compile this package is: + +- 1. `cd' to the directory containing the package's source code and type +- `./configure' to configure the package for your system. ++ 1. 'cd' to the directory containing the package's source code and type ++ './configure' to configure the package for your system. + +- Running `configure' might take a while. While running, it prints ++ Running 'configure' might take a while. While running, it prints + some messages telling which features it is checking for. + +- 2. Type `make' to compile the package. ++ 2. Type 'make' to compile the package. + +- 3. Optionally, type `make check' to run any self-tests that come with ++ 3. Optionally, type 'make check' to run any self-tests that come with + the package, generally using the just-built uninstalled binaries. + +- 4. Type `make install' to install the programs and any data files and ++ 4. Type 'make install' to install the programs and any data files and + documentation. When installing into a prefix owned by root, it is + recommended that the package be configured and built as a regular +- user, and only the `make install' phase executed with root ++ user, and only the 'make install' phase executed with root + privileges. + +- 5. Optionally, type `make installcheck' to repeat any self-tests, but ++ 5. Optionally, type 'make installcheck' to repeat any self-tests, but + this time using the binaries in their final installed location. + This target does not install anything. Running this target as a +- regular user, particularly if the prior `make install' required ++ regular user, particularly if the prior 'make install' required + root privileges, verifies that the installation completed + correctly. + + 6. You can remove the program binaries and object files from the +- source code directory by typing `make clean'. To also remove the +- files that `configure' created (so you can compile the package for +- a different kind of computer), type `make distclean'. There is +- also a `make maintainer-clean' target, but that is intended mainly ++ source code directory by typing 'make clean'. To also remove the ++ files that 'configure' created (so you can compile the package for ++ a different kind of computer), type 'make distclean'. There is ++ also a 'make maintainer-clean' target, but that is intended mainly + for the package's developers. If you use it, you may have to get + all sorts of other programs in order to regenerate files that came + with the distribution. + +- 7. Often, you can also type `make uninstall' to remove the installed ++ 7. Often, you can also type 'make uninstall' to remove the installed + files again. In practice, not all packages have tested that + uninstallation works correctly, even though it is required by the + GNU Coding Standards. + +- 8. Some packages, particularly those that use Automake, provide `make ++ 8. Some packages, particularly those that use Automake, provide 'make + distcheck', which can by used by developers to test that all other +- targets like `make install' and `make uninstall' work correctly. ++ targets like 'make install' and 'make uninstall' work correctly. + This target is generally not run by end users. + + Compilers and Options + ===================== + + Some systems require unusual options for compilation or linking that +-the `configure' script does not know about. Run `./configure --help' ++the 'configure' script does not know about. Run './configure --help' + for details on some of the pertinent environment variables. + +- You can give `configure' initial values for configuration parameters +-by setting variables in the command line or in the environment. Here +-is an example: ++ You can give 'configure' initial values for configuration parameters ++by setting variables in the command line or in the environment. Here is ++an example: + + ./configure CC=c99 CFLAGS=-g LIBS=-lposix + +@@ -113,21 +112,21 @@ Compiling For Multiple Architectures + + You can compile the package for more than one kind of computer at the + same time, by placing the object files for each architecture in their +-own directory. To do this, you can use GNU `make'. `cd' to the ++own directory. To do this, you can use GNU 'make'. 'cd' to the + directory where you want the object files and executables to go and run +-the `configure' script. `configure' automatically checks for the +-source code in the directory that `configure' is in and in `..'. This +-is known as a "VPATH" build. ++the 'configure' script. 'configure' automatically checks for the source ++code in the directory that 'configure' is in and in '..'. This is known ++as a "VPATH" build. + +- With a non-GNU `make', it is safer to compile the package for one ++ With a non-GNU 'make', it is safer to compile the package for one + architecture at a time in the source code directory. After you have +-installed the package for one architecture, use `make distclean' before ++installed the package for one architecture, use 'make distclean' before + reconfiguring for another architecture. + + On MacOS X 10.5 and later systems, you can create libraries and + executables that work on multiple system types--known as "fat" or +-"universal" binaries--by specifying multiple `-arch' options to the +-compiler but only a single `-arch' option to the preprocessor. Like ++"universal" binaries--by specifying multiple '-arch' options to the ++compiler but only a single '-arch' option to the preprocessor. Like + this: + + ./configure CC="gcc -arch i386 -arch x86_64 -arch ppc -arch ppc64" \ +@@ -136,100 +135,104 @@ this: + + This is not guaranteed to produce working output in all cases, you + may have to build one architecture at a time and combine the results +-using the `lipo' tool if you have problems. ++using the 'lipo' tool if you have problems. + + Installation Names + ================== + +- By default, `make install' installs the package's commands under +-`/usr/local/bin', include files under `/usr/local/include', etc. You +-can specify an installation prefix other than `/usr/local' by giving +-`configure' the option `--prefix=PREFIX', where PREFIX must be an ++ By default, 'make install' installs the package's commands under ++'/usr/local/bin', include files under '/usr/local/include', etc. You ++can specify an installation prefix other than '/usr/local' by giving ++'configure' the option '--prefix=PREFIX', where PREFIX must be an + absolute file name. + + You can specify separate installation prefixes for + architecture-specific files and architecture-independent files. If you +-pass the option `--exec-prefix=PREFIX' to `configure', the package uses ++pass the option '--exec-prefix=PREFIX' to 'configure', the package uses + PREFIX as the prefix for installing programs and libraries. + Documentation and other data files still use the regular prefix. + + In addition, if you use an unusual directory layout you can give +-options like `--bindir=DIR' to specify different values for particular +-kinds of files. Run `configure --help' for a list of the directories +-you can set and what kinds of files go in them. In general, the +-default for these options is expressed in terms of `${prefix}', so that +-specifying just `--prefix' will affect all of the other directory ++options like '--bindir=DIR' to specify different values for particular ++kinds of files. Run 'configure --help' for a list of the directories ++you can set and what kinds of files go in them. In general, the default ++for these options is expressed in terms of '${prefix}', so that ++specifying just '--prefix' will affect all of the other directory + specifications that were not explicitly provided. + + The most portable way to affect installation locations is to pass the +-correct locations to `configure'; however, many packages provide one or ++correct locations to 'configure'; however, many packages provide one or + both of the following shortcuts of passing variable assignments to the +-`make install' command line to change installation locations without ++'make install' command line to change installation locations without + having to reconfigure or recompile. + + The first method involves providing an override variable for each +-affected directory. For example, `make install ++affected directory. For example, 'make install + prefix=/alternate/directory' will choose an alternate location for all + directory configuration variables that were expressed in terms of +-`${prefix}'. Any directories that were specified during `configure', +-but not in terms of `${prefix}', must each be overridden at install +-time for the entire installation to be relocated. The approach of +-makefile variable overrides for each directory variable is required by +-the GNU Coding Standards, and ideally causes no recompilation. +-However, some platforms have known limitations with the semantics of +-shared libraries that end up requiring recompilation when using this +-method, particularly noticeable in packages that use GNU Libtool. ++'${prefix}'. Any directories that were specified during 'configure', ++but not in terms of '${prefix}', must each be overridden at install time ++for the entire installation to be relocated. The approach of makefile ++variable overrides for each directory variable is required by the GNU ++Coding Standards, and ideally causes no recompilation. However, some ++platforms have known limitations with the semantics of shared libraries ++that end up requiring recompilation when using this method, particularly ++noticeable in packages that use GNU Libtool. + +- The second method involves providing the `DESTDIR' variable. For +-example, `make install DESTDIR=/alternate/directory' will prepend +-`/alternate/directory' before all installation names. The approach of +-`DESTDIR' overrides is not required by the GNU Coding Standards, and ++ The second method involves providing the 'DESTDIR' variable. For ++example, 'make install DESTDIR=/alternate/directory' will prepend ++'/alternate/directory' before all installation names. The approach of ++'DESTDIR' overrides is not required by the GNU Coding Standards, and + does not work on platforms that have drive letters. On the other hand, + it does better at avoiding recompilation issues, and works well even +-when some directory options were not specified in terms of `${prefix}' +-at `configure' time. ++when some directory options were not specified in terms of '${prefix}' ++at 'configure' time. + + Optional Features + ================= + + If the package supports it, you can cause programs to be installed +-with an extra prefix or suffix on their names by giving `configure' the +-option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'. ++with an extra prefix or suffix on their names by giving 'configure' the ++option '--program-prefix=PREFIX' or '--program-suffix=SUFFIX'. + +- Some packages pay attention to `--enable-FEATURE' options to +-`configure', where FEATURE indicates an optional part of the package. +-They may also pay attention to `--with-PACKAGE' options, where PACKAGE +-is something like `gnu-as' or `x' (for the X Window System). The +-`README' should mention any `--enable-' and `--with-' options that the ++ Some packages pay attention to '--enable-FEATURE' options to ++'configure', where FEATURE indicates an optional part of the package. ++They may also pay attention to '--with-PACKAGE' options, where PACKAGE ++is something like 'gnu-as' or 'x' (for the X Window System). The ++'README' should mention any '--enable-' and '--with-' options that the + package recognizes. + +- For packages that use the X Window System, `configure' can usually ++ For packages that use the X Window System, 'configure' can usually + find the X include and library files automatically, but if it doesn't, +-you can use the `configure' options `--x-includes=DIR' and +-`--x-libraries=DIR' to specify their locations. ++you can use the 'configure' options '--x-includes=DIR' and ++'--x-libraries=DIR' to specify their locations. + + Some packages offer the ability to configure how verbose the +-execution of `make' will be. For these packages, running `./configure ++execution of 'make' will be. For these packages, running './configure + --enable-silent-rules' sets the default to minimal output, which can be +-overridden with `make V=1'; while running `./configure ++overridden with 'make V=1'; while running './configure + --disable-silent-rules' sets the default to verbose, which can be +-overridden with `make V=0'. ++overridden with 'make V=0'. + + Particular systems + ================== + +- On HP-UX, the default C compiler is not ANSI C compatible. If GNU +-CC is not installed, it is recommended to use the following options in ++ On HP-UX, the default C compiler is not ANSI C compatible. If GNU CC ++is not installed, it is recommended to use the following options in + order to use an ANSI C compiler: + + ./configure CC="cc -Ae -D_XOPEN_SOURCE=500" + + and if that doesn't work, install pre-built binaries of GCC for HP-UX. + ++ HP-UX 'make' updates targets which have the same time stamps as their ++prerequisites, which makes it generally unusable when shipped generated ++files such as 'configure' are involved. Use GNU 'make' instead. ++ + On OSF/1 a.k.a. Tru64, some versions of the default C compiler cannot +-parse its `' header file. The option `-nodtk' can be used as +-a workaround. If GNU CC is not installed, it is therefore recommended +-to try ++parse its '' header file. The option '-nodtk' can be used as a ++workaround. If GNU CC is not installed, it is therefore recommended to ++try + + ./configure CC="cc" + +@@ -237,26 +240,26 @@ and if that doesn't work, try + + ./configure CC="cc -nodtk" + +- On Solaris, don't put `/usr/ucb' early in your `PATH'. This ++ On Solaris, don't put '/usr/ucb' early in your 'PATH'. This + directory contains several dysfunctional programs; working variants of +-these programs are available in `/usr/bin'. So, if you need `/usr/ucb' +-in your `PATH', put it _after_ `/usr/bin'. ++these programs are available in '/usr/bin'. So, if you need '/usr/ucb' ++in your 'PATH', put it _after_ '/usr/bin'. + +- On Haiku, software installed for all users goes in `/boot/common', +-not `/usr/local'. It is recommended to use the following options: ++ On Haiku, software installed for all users goes in '/boot/common', ++not '/usr/local'. It is recommended to use the following options: + + ./configure --prefix=/boot/common + + Specifying the System Type + ========================== + +- There may be some features `configure' cannot figure out ++ There may be some features 'configure' cannot figure out + automatically, but needs to determine by the type of machine the package + will run on. Usually, assuming the package is built to be run on the +-_same_ architectures, `configure' can figure that out, but if it prints ++_same_ architectures, 'configure' can figure that out, but if it prints + a message saying it cannot guess the machine type, give it the +-`--build=TYPE' option. TYPE can either be a short name for the system +-type, such as `sun4', or a canonical name which has the form: ++'--build=TYPE' option. TYPE can either be a short name for the system ++type, such as 'sun4', or a canonical name which has the form: + + CPU-COMPANY-SYSTEM + +@@ -265,101 +268,101 @@ where SYSTEM can have one of these forms + OS + KERNEL-OS + +- See the file `config.sub' for the possible values of each field. If +-`config.sub' isn't included in this package, then this package doesn't ++ See the file 'config.sub' for the possible values of each field. If ++'config.sub' isn't included in this package, then this package doesn't + need to know the machine type. + + If you are _building_ compiler tools for cross-compiling, you should +-use the option `--target=TYPE' to select the type of system they will ++use the option '--target=TYPE' to select the type of system they will + produce code for. + + If you want to _use_ a cross compiler, that generates code for a + platform different from the build platform, you should specify the + "host" platform (i.e., that on which the generated programs will +-eventually be run) with `--host=TYPE'. ++eventually be run) with '--host=TYPE'. + + Sharing Defaults + ================ + +- If you want to set default values for `configure' scripts to share, +-you can create a site shell script called `config.site' that gives +-default values for variables like `CC', `cache_file', and `prefix'. +-`configure' looks for `PREFIX/share/config.site' if it exists, then +-`PREFIX/etc/config.site' if it exists. Or, you can set the +-`CONFIG_SITE' environment variable to the location of the site script. +-A warning: not all `configure' scripts look for a site script. ++ If you want to set default values for 'configure' scripts to share, ++you can create a site shell script called 'config.site' that gives ++default values for variables like 'CC', 'cache_file', and 'prefix'. ++'configure' looks for 'PREFIX/share/config.site' if it exists, then ++'PREFIX/etc/config.site' if it exists. Or, you can set the ++'CONFIG_SITE' environment variable to the location of the site script. ++A warning: not all 'configure' scripts look for a site script. + + Defining Variables + ================== + + Variables not defined in a site shell script can be set in the +-environment passed to `configure'. However, some packages may run ++environment passed to 'configure'. However, some packages may run + configure again during the build, and the customized values of these + variables may be lost. In order to avoid this problem, you should set +-them in the `configure' command line, using `VAR=value'. For example: ++them in the 'configure' command line, using 'VAR=value'. For example: + + ./configure CC=/usr/local2/bin/gcc + +-causes the specified `gcc' to be used as the C compiler (unless it is ++causes the specified 'gcc' to be used as the C compiler (unless it is + overridden in the site shell script). + +-Unfortunately, this technique does not work for `CONFIG_SHELL' due to +-an Autoconf bug. Until the bug is fixed you can use this workaround: ++Unfortunately, this technique does not work for 'CONFIG_SHELL' due to an ++Autoconf limitation. Until the limitation is lifted, you can use this ++workaround: + +- CONFIG_SHELL=/bin/bash /bin/bash ./configure CONFIG_SHELL=/bin/bash ++ CONFIG_SHELL=/bin/bash ./configure CONFIG_SHELL=/bin/bash + +-`configure' Invocation ++'configure' Invocation + ====================== + +- `configure' recognizes the following options to control how it ++ 'configure' recognizes the following options to control how it + operates. + +-`--help' +-`-h' +- Print a summary of all of the options to `configure', and exit. ++'--help' ++'-h' ++ Print a summary of all of the options to 'configure', and exit. + +-`--help=short' +-`--help=recursive' ++'--help=short' ++'--help=recursive' + Print a summary of the options unique to this package's +- `configure', and exit. The `short' variant lists options used +- only in the top level, while the `recursive' variant lists options +- also present in any nested packages. ++ 'configure', and exit. The 'short' variant lists options used only ++ in the top level, while the 'recursive' variant lists options also ++ present in any nested packages. + +-`--version' +-`-V' +- Print the version of Autoconf used to generate the `configure' ++'--version' ++'-V' ++ Print the version of Autoconf used to generate the 'configure' + script, and exit. + +-`--cache-file=FILE' ++'--cache-file=FILE' + Enable the cache: use and save the results of the tests in FILE, +- traditionally `config.cache'. FILE defaults to `/dev/null' to ++ traditionally 'config.cache'. FILE defaults to '/dev/null' to + disable caching. + +-`--config-cache' +-`-C' +- Alias for `--cache-file=config.cache'. ++'--config-cache' ++'-C' ++ Alias for '--cache-file=config.cache'. + +-`--quiet' +-`--silent' +-`-q' ++'--quiet' ++'--silent' ++'-q' + Do not print messages saying which checks are being made. To +- suppress all normal output, redirect it to `/dev/null' (any error ++ suppress all normal output, redirect it to '/dev/null' (any error + messages will still be shown). + +-`--srcdir=DIR' ++'--srcdir=DIR' + Look for the package's source code in directory DIR. Usually +- `configure' can determine that directory automatically. ++ 'configure' can determine that directory automatically. + +-`--prefix=DIR' +- Use DIR as the installation prefix. *note Installation Names:: +- for more details, including other options available for fine-tuning +- the installation locations. ++'--prefix=DIR' ++ Use DIR as the installation prefix. *note Installation Names:: for ++ more details, including other options available for fine-tuning the ++ installation locations. + +-`--no-create' +-`-n' ++'--no-create' ++'-n' + Run the configure checks, but stop before creating any output + files. + +-`configure' also accepts some other, not widely useful, options. Run +-`configure --help' for more details. +- ++'configure' also accepts some other, not widely useful, options. Run ++'configure --help' for more details. diff --git a/package/libcap-ng/patches/patch-autogen_sh b/package/libcap-ng/patches/patch-autogen_sh new file mode 100644 index 000000000..8efae3587 --- /dev/null +++ b/package/libcap-ng/patches/patch-autogen_sh @@ -0,0 +1,9 @@ +--- libcap-ng-0.8.4.orig/autogen.sh 2023-12-20 16:18:45.000000000 +0100 ++++ libcap-ng-0.8.4/autogen.sh 2024-02-27 12:33:16.298580133 +0100 +@@ -1,5 +1,5 @@ + #! /bin/sh + set -x -e + # --no-recursive is available only in recent autoconf versions +-touch NEWS ++touch NEWS README + autoreconf -fv --install -- cgit v1.2.3