Linux ns1.utparral.edu.mx 6.8.0-79-generic #79~22.04.1-Ubuntu SMP PREEMPT_DYNAMIC Fri Aug 15 16:54:53 UTC 2 x86_64
Apache/2.4.58 (Unix) OpenSSL/1.1.1w PHP/8.2.12 mod_perl/2.0.12 Perl/v5.34.1
: 10.10.1.9 | : 10.10.1.254
Cant Read [ /etc/named.conf ]
daemon
Terminal
AUTO ROOT
Adminer
Backdoor Destroyer
Linux Exploit
Lock Shell
Lock File
Create User
README
+ Create Folder
+ Create File
/
snap /
gnome-42-2204 /
202 /
usr /
bin /
[ HOME SHELL ]
Name
Size
Permission
Action
X11
[ DIR ]
drwxr-xr-x
aclocal-1.16
35.18
KB
-rwxr-xr-x
appstreamcli
118.23
KB
-rwxr-xr-x
appstream-compose
26.3
KB
-rwxr-xr-x
appstream-util
98.3
KB
-rwxr-xr-x
autoconf
14.85
KB
-rwxr-xr-x
autoheader
8.82
KB
-rwxr-xr-x
autom4te
32.69
KB
-rwxr-xr-x
automake-1.16
255.91
KB
-rwxr-xr-x
autoreconf
26.3
KB
-rwxr-xr-x
autoscan
16.77
KB
-rwxr-xr-x
autoupdate
33.22
KB
-rwxr-xr-x
broadwayd
130.21
KB
-rwxr-xr-x
bwrap
70.47
KB
-rwxr-xr-x
c89-gcc
428
B
-rwxr-xr-x
c99-gcc
454
B
-rwxr-xr-x
cairo-trace
2.95
KB
-rwxr-xr-x
canberra-gtk-play
18.2
KB
-rwxr-xr-x
corelist
15.01
KB
-rwxr-xr-x
cpan
8.16
KB
-rwxr-xr-x
cpan5.34-x86_64-linux-gnu
8.18
KB
-rwxr-xr-x
curl-config
6.52
KB
-rwxr-xr-x
dazzle-list-counters
14.13
KB
-rwxr-xr-x
debconf
2.79
KB
-rwxr-xr-x
debconf-apt-progress
11.27
KB
-rwxr-xr-x
debconf-communicate
608
B
-rwxr-xr-x
debconf-copydb
1.68
KB
-rwxr-xr-x
debconf-escape
647
B
-rwxr-xr-x
debconf-set-selections
2.92
KB
-rwxr-xr-x
debconf-show
1.78
KB
-rwxr-xr-x
derb
26.88
KB
-rwxr-xr-x
desktop-file-edit
96.44
KB
-rwxr-xr-x
desktop-file-install
96.44
KB
-rwxr-xr-x
desktop-file-validate
76.69
KB
-rwxr-xr-x
dh_autotools-dev_restoreconfig
1.79
KB
-rwxr-xr-x
dh_autotools-dev_updateconfig
1.81
KB
-rwxr-xr-x
dh_girepository
12.88
KB
-rwxr-xr-x
dumpsexp
18.3
KB
-rwxr-xr-x
enc2xs
40.84
KB
-rwxr-xr-x
encguess
3.01
KB
-rwxr-xr-x
envsubst
34.38
KB
-rwxr-xr-x
fc-cache
22.23
KB
-rwxr-xr-x
fc-cat
18.23
KB
-rwxr-xr-x
fc-conflist
14.23
KB
-rwxr-xr-x
fc-list
14.23
KB
-rwxr-xr-x
fc-match
14.23
KB
-rwxr-xr-x
fc-pattern
14.23
KB
-rwxr-xr-x
fc-query
14.23
KB
-rwxr-xr-x
fc-scan
14.23
KB
-rwxr-xr-x
fc-validate
14.23
KB
-rwxr-xr-x
file
26.56
KB
-rwxr-xr-x
fribidi
26.99
KB
-rwxr-xr-x
gapplication
22.21
KB
-rwxr-xr-x
gdbus
54.21
KB
-rwxr-xr-x
gdbus-codegen
1.99
KB
-rwxr-xr-x
gdk-pixbuf-csource
14.15
KB
-rwxr-xr-x
gdk-pixbuf-pixdata
14.13
KB
-rwxr-xr-x
gdk-pixbuf-thumbnailer
18.21
KB
-rwxr-xr-x
genbrk
14.78
KB
-rwxr-xr-x
gencat
26.37
KB
-rwxr-xr-x
gencfu
14.73
KB
-rwxr-xr-x
gencnval
26.61
KB
-rwxr-xr-x
gendict
26.78
KB
-rwxr-xr-x
genrb
147.91
KB
-rwxr-xr-x
getconf
34.29
KB
-rwxr-xr-x
getent
38.65
KB
-rwxr-xr-x
gettext
34.38
KB
-rwxr-xr-x
gettextize
41.28
KB
-rwxr-xr-x
gettext.sh
5.07
KB
-rwxr-xr-x
gio
102.23
KB
-rwxr-xr-x
gio-querymodules
18.13
KB
-rwxr-xr-x
gjs
26.7
KB
-rwxr-xr-x
gjs-console
26.7
KB
-rwxr-xr-x
glib-compile-schemas
66.21
KB
-rwxr-xr-x
gobject-query
14.14
KB
-rwxr-xr-x
gpg-error-config
2.04
KB
-rwxr-xr-x
gpgrt-config
13.11
KB
-rwxr-xr-x
gresource
26.13
KB
-rwxr-xr-x
gsettings
30.21
KB
-rwxr-xr-x
gsound-play
18.21
KB
-rwxr-xr-x
gtk4-broadwayd
150.22
KB
-rwxr-xr-x
gtk4-encode-symbolic-svg
8.58
MB
-rwxr-xr-x
gtk4-launch
18.29
KB
-rwxr-xr-x
gtk4-query-settings
14.13
KB
-rwxr-xr-x
gtk4-rendernode-tool
30.13
KB
-rwxr-xr-x
gtk-encode-symbolic-svg
22.24
KB
-rwxr-xr-x
gtk-launch
18.29
KB
-rwxr-xr-x
gtk-query-settings
14.13
KB
-rwxr-xr-x
gtk-update-icon-cache
38.57
KB
-rwxr-xr-x
hb-info
54.21
KB
-rwxr-xr-x
hb-ot-shape-closure
46.21
KB
-rwxr-xr-x
hb-shape
50.21
KB
-rwxr-xr-x
hb-subset
46.18
KB
-rwxr-xr-x
hb-view
82.35
KB
-rwxr-xr-x
hmac256
18.7
KB
-rwxr-xr-x
iconv
66.41
KB
-rwxr-xr-x
icuexportdata
30.98
KB
-rwxr-xr-x
icuinfo
14.62
KB
-rwxr-xr-x
ifnames
4.08
KB
-rwxr-xr-x
instmodsh
4.27
KB
-rwxr-xr-x
ispell-wrapper
7.05
KB
-rwxr-xr-x
itstool
67.8
KB
-rwxr-xr-x
js102
28.97
MB
-rwxr-xr-x
js102-config
2.03
KB
-rwxr-xr-x
json-glib-format
18.38
KB
-rwxr-xr-x
json-glib-validate
14.24
KB
-rwxr-xr-x
json_pp
4.88
KB
-rwxr-xr-x
ldd
5.32
KB
-rwxr-xr-x
libgcrypt-config
4.52
KB
-rwxr-xr-x
libinput
62.35
KB
-rwxr-xr-x
libnetcfg
15.41
KB
-rwxr-xr-x
libpng16-config
2.41
KB
-rwxr-xr-x
libpng-config
2.41
KB
-rwxr-xr-x
libtool
366.5
KB
-rwxr-xr-x
libtoolize
128.35
KB
-rwxr-xr-x
libwacom-list-devices
14.24
KB
-rwxr-xr-x
libwacom-list-local-devices
18.29
KB
-rwxr-xr-x
libwacom-show-stylus
5.99
KB
-rwxr-xr-x
libwacom-update-db
8.99
KB
-rwxr-xr-x
locale
57.56
KB
-rwxr-xr-x
localedef
326.96
KB
-rwxr-xr-x
lzmainfo
14.23
KB
-rwxr-xr-x
m4
154.37
KB
-rwxr-xr-x
makeconv
50.89
KB
-rwxr-xr-x
mako-render
961
B
-rwxr-xr-x
markdown_py
973
B
-rwxr-xr-x
mpicalc
22.3
KB
-rwxr-xr-x
msgattrib
26.38
KB
-rwxr-xr-x
msgcat
26.38
KB
-rwxr-xr-x
msgcmp
26.38
KB
-rwxr-xr-x
msgcomm
26.38
KB
-rwxr-xr-x
msgconv
22.38
KB
-rwxr-xr-x
msgen
22.38
KB
-rwxr-xr-x
msgexec
22.38
KB
-rwxr-xr-x
msgfilter
34.38
KB
-rwxr-xr-x
msgfmt
82.59
KB
-rwxr-xr-x
msggrep
114.46
KB
-rwxr-xr-x
msginit
66.39
KB
-rwxr-xr-x
msgmerge
74.41
KB
-rwxr-xr-x
msgunfmt
34.39
KB
-rwxr-xr-x
msguniq
22.38
KB
-rwxr-xr-x
ngettext
34.38
KB
-rwxr-xr-x
nspr-config
2.58
KB
-rwxr-xr-x
nss-config
2.31
KB
-rwxr-xr-x
p11-kit
170.45
KB
-rwxr-xr-x
pango-list
18.13
KB
-rwxr-xr-x
pango-segmentation
18.21
KB
-rwxr-xr-x
pango-view
66.42
KB
-rwxr-xr-x
pcre2-config
1.93
KB
-rwxr-xr-x
pcre-config
2.29
KB
-rwxr-xr-x
pdfattach
22.21
KB
-rwxr-xr-x
pdfdetach
26.32
KB
-rwxr-xr-x
pdffonts
22.33
KB
-rwxr-xr-x
pdfimages
42.33
KB
-rwxr-xr-x
pdfinfo
62.33
KB
-rwxr-xr-x
pdfseparate
22.21
KB
-rwxr-xr-x
pdfsig
42.6
KB
-rwxr-xr-x
pdftocairo
190.3
KB
-rwxr-xr-x
pdftohtml
118.23
KB
-rwxr-xr-x
pdftoppm
34.24
KB
-rwxr-xr-x
pdftops
34.34
KB
-rwxr-xr-x
pdftotext
50.34
KB
-rwxr-xr-x
pdfunite
34.21
KB
-rwxr-xr-x
perl5.34-x86_64-linux-gnu
14.3
KB
-rwxr-xr-x
perlbug
44.12
KB
-rwxr-xr-x
perldoc
125
B
-rwxr-xr-x
perlivp
10.61
KB
-rwxr-xr-x
perlthanks
44.12
KB
-rwxr-xr-x
piconv
8.16
KB
-rwxr-xr-x
pip
225
B
-rwxr-xr-x
pip3
225
B
-rwxr-xr-x
pip3.10
225
B
-rwxr-xr-x
pipewire
14.38
KB
-rwxr-xr-x
pkgdata
43.53
KB
-rwxr-xr-x
pldd
22.37
KB
-rwxr-xr-x
pod2html
4.04
KB
-rwxr-xr-x
pod2man
14.68
KB
-rwxr-xr-x
pod2text
10.55
KB
-rwxr-xr-x
pod2usage
4.01
KB
-rwxr-xr-x
podchecker
3.57
KB
-rwxr-xr-x
psl
22.16
KB
-rwxr-xr-x
psl-make-dafsa
22.21
KB
-rwxr-xr-x
ptar
3.48
KB
-rwxr-xr-x
ptardiff
2.58
KB
-rwxr-xr-x
ptargrep
4.29
KB
-rwxr-xr-x
pw-cat
138.38
KB
-rwxr-xr-x
pw-cli
134.38
KB
-rwxr-xr-x
pw-dot
34.38
KB
-rwxr-xr-x
pw-dsdplay
138.38
KB
-rwxr-xr-x
pw-dump
94.38
KB
-rwxr-xr-x
pw-link
30.38
KB
-rwxr-xr-x
pw-loopback
18.38
KB
-rwxr-xr-x
pw-metadata
14.38
KB
-rwxr-xr-x
pw-mididump
34.38
KB
-rwxr-xr-x
pw-midiplay
138.38
KB
-rwxr-xr-x
pw-midirecord
138.38
KB
-rwxr-xr-x
pw-mon
90.42
KB
-rwxr-xr-x
pw-play
138.38
KB
-rwxr-xr-x
pw-profiler
26.38
KB
-rwxr-xr-x
pw-record
138.38
KB
-rwxr-xr-x
pw-reserve
26.38
KB
-rwxr-xr-x
pw-top
30.38
KB
-rwxr-xr-x
pw-v4l2
1.95
KB
-rwxr-xr-x
py3compile
12.89
KB
-rwxr-xr-x
py3versions
11.63
KB
-rwxr-xr-x
python3.10
5.67
MB
-rwxr-xr-x
recode-sr-latin
14.38
KB
-rwxr-xr-x
rsvg-convert
5.53
MB
-rwxr-xr-x
secret-tool
22.21
KB
-rwxr-xr-x
select-default-iwrap
474
B
-rwxr-xr-x
session-migration
22.15
KB
-rwxr-xr-x
shasum
9.75
KB
-rwxr-xr-x
spa-acp-tool
268.12
KB
-rwxr-xr-x
spa-inspect
78.48
KB
-rwxr-xr-x
spa-json-dump
14.3
KB
-rwxr-xr-x
spa-monitor
14.48
KB
-rwxr-xr-x
spa-resample
30.6
KB
-rwxr-xr-x
splain
18.96
KB
-rwxr-xr-x
streamzip
7.75
KB
-rwxr-xr-x
tzselect
15.02
KB
-rwxr-xr-x
uconv
54.83
KB
-rwxr-xr-x
unxz
82.52
KB
-rwxr-xr-x
update-desktop-database
22.38
KB
-rwxr-xr-x
update-mime-database
58.23
KB
-rwxr-xr-x
xdg-dbus-proxy
50.14
KB
-rwxr-xr-x
xdg-user-dir
234
B
-rwxr-xr-x
xdg-user-dirs-update
26.23
KB
-rwxr-xr-x
xml2-config
1.44
KB
-rwxr-xr-x
xmlcatalog
22.3
KB
-rwxr-xr-x
xmllint
78.95
KB
-rwxr-xr-x
xz
82.52
KB
-rwxr-xr-x
xzcat
82.52
KB
-rwxr-xr-x
xzcmp
6.86
KB
-rwxr-xr-x
xzdiff
6.86
KB
-rwxr-xr-x
xzegrep
5.87
KB
-rwxr-xr-x
xzfgrep
5.87
KB
-rwxr-xr-x
xzgrep
5.87
KB
-rwxr-xr-x
xzless
1.76
KB
-rwxr-xr-x
xzmore
2.11
KB
-rwxr-xr-x
zdump
26.21
KB
-rwxr-xr-x
zipdetails
58.66
KB
-rwxr-xr-x
Delete
Unzip
Zip
${this.title}
Close
Code Editor : gpgrt-config
#!/bin/sh # -*- mode: shell-script; sh-shell: "/bin/sh" -*- # Copyright (C) 2018, 2021 g10 Code GmbH # # This file is free software; as a special exception the author gives # unlimited permission to copy and/or distribute it, with or without # modifications, as long as this notice is preserved. # # This file is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY, to the extent permitted by law; without even the # implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. # SPDX-License-Identifier: FSFULLR #### start of functions for this script # # Bourne shell functions for config file in pkg-config style, so that # we can share such a config file between pkg-config and script # # # get_var: Get the variable value of NAME # # Variables are recorded in the shell variables named "VAR_<NAME>" # get_var () { ___name=$1 eval echo \$VAR_$___name } # # get_attr: Get the attribute value of KEY # # Attributes are recorded in the shell variables named "ATTR_<KEY>" # get_attr () { ___name=$1 eval echo \$ATTR_$___name } # variant of get_attr for list (separated by ',') get_attr_l () { (IFS=', '; echo "$(get_attr $1)") } # Remove ${varname} part in the beginning of a string. remove_var_expr () { ___varname=$1 shift expr "$*" : "\${$___varname}\\(.*\\)" } # Given a string, substitute variables. substitute_vars () { __string="$1" __varname="" __result="" while [ -n "$__string" ]; do case "$__string" in \$\$*) __result="$__result\$" __string="${__string#\$\$}" ;; \${*}*) __varname="${__string#\$\{}" __varname="${__varname%%\}*}" __result="$__result$(get_var $__varname)" __string=$(remove_var_expr $__varname $__string) ;; *) __result="$__result$(printf %c "$__string")" __string="${__string#$(printf %c "$__string")}" ;; esac done echo "$__result" } # # Read a config from stdin # # Variables: # For VAR=VALUE, value is stored in the shell variable VAR_*. # # Attributes: # For KEY: VALUE, value is stored in the shell variable ATTR_*. # read_config_from_stdin () { _filename=$1 _line="" _varname="" _value="" _key="" _reading_attrs="" while read _line; do if [ -z "$_line" ]; then _reading_attrs=yes continue elif [ -z "$_reading_attrs" ]; then case "$_line" in *=*) _varname="${_line%%=*}" _value="${_line#*=}" VAR_list="$VAR_list${VAR_list:+ }VAR_$_varname" read VAR_$_varname <<EOF1 $(substitute_vars "$_value") EOF1 continue ;; *) _reading_attrs=yes ;; esac fi if [ -n "$_reading_attrs" ]; then case "$_line" in *:\ *) _key="${_line%%:\ *}" _value="${_line#*:\ }" if expr "$_key" : ".*\..*" >/dev/null; then _key="${_key%.*}_${_key#*.}" fi ATTR_list="$ATTR_list${ATTR_list:+ }ATTR_$_key" read ATTR_$_key <<EOF2 $(substitute_vars "$_value") EOF2 ;; *:|*:\ ) ;; *) echo "Error reading $_filename: $_line" 1>&2 exit 1 ;; esac fi done } find_file_in_path () { _f=$1 _p=$2 _saved_IFS="$IFS" _arg="" IFS=":" # On Windows it should be ";"??? for _arg in $_p; do if [ -r $_arg/$_f ]; then RESULT="$_arg/$_f" IFS="$_saved_IFS" return 0 fi done IFS="$_saved_IFS" RESULT="" return 1 } read_config_file () { if ! find_file_in_path $1.pc $2; then if [ -z "$want_exists" ]; then echo "Can't find $1.pc" 1>&2 fi exit 1 fi read_config_from_stdin $RESULT < $RESULT } cleanup_vars_attrs () { eval unset $VAR_list VAR_list eval unset $ATTR_list ATTR_list } not_listed_yet () { ___m=$1 ___arg="" shift for ___arg; do if [ $___m = $___arg ]; then return 1 fi done return 0 } list_only_once () { __result="" __arg="" for __arg; do if not_listed_yet $__arg $__result; then __result="$__result${__result:+ }$__arg" fi done echo $__result } list_only_once_for_libs () { __result="" __rev_list="" __arg="" # Scan the list and eliminate duplicates for non-"-lxxx" # the resulted list is in reverse order for __arg; do case "$__arg" in -l*) # As-is __rev_list="$__arg${__rev_list:+ }$__rev_list" ;; *) if not_listed_yet $__arg $__rev_list; then __rev_list="$__arg${__rev_list:+ }$__rev_list" fi ;; esac done # Scan again for __arg in $__rev_list; do case "$__arg" in -l*) if not_listed_yet $__arg $__result; then __result="$__arg${__result:+ }$__result" fi ;; *) # As-is __result="$__arg${__result:+ }$__result" ;; esac done echo $__result } arg1_is_same () { [ "$1" = "=" -o "$1" = ">=" -o "$1" = "<=" ] } arg1_is_less () { [ "$1" = "!=" -o "$1" = "<" -o "$1" = "<=" ] } arg1_is_great () { [ "$1" = "!=" -o "$1" = ">" -o "$1" = ">=" ] } # # Evaluate comparison between versions in RPM way # eval_compare_version () { ___str1="$1" ___cmp="$2" ___str2="$3" ___char1="" ___char2="" ___chunk1="" ___chunk2="" while [ -n "$___str1" -a -n "$___str2" ]; do # Trim anything that's not alnum or tilde from the front ___str1="$(expr "$___str1" : '[^0-9A-Za-z~]*\(.*\)')" ___str2="$(expr "$___str2" : '[^0-9A-Za-z~]*\(.*\)')" # Get the first character ___char1=${___str1%${___str1#?}} ___char2=${___str2%${___str2#?}} if [ "$___char1" = ~ -o "$___char2" = ~ ]; then if [ "$___char1" != ~ ]; then arg1_is_great $___cmp return fi if [ "$___char2" != ~ ]; then arg1_is_less $___cmp return fi ___str1=${___str1#~} ___str2=${___str2#~} continue fi if [ -z "$___char1" -o -z "$___char2" ]; then break fi case "$___char1$___char2" in [0-9][A-Za-z]) arg1_is_great $___cmp return ;; [A-Za-z][0-9]) arg1_is_less $___cmp return ;; [0-9][0-9]) ___chunk1="$(expr "$___str1" : '\([0-9]*\)')" ___chunk2="$(expr "$___str2" : '\([0-9]*\)')" ;; [A-Za-z][A-Za-z]) ___chunk1="$(expr "$___str1" : '\([A-Za-z]*\)')" ___chunk2="$(expr "$___str2" : '\([A-Za-z]*\)')" ;; esac # Compare chunks numerically if digits, or lexicographically if expr "$___chunk1" "!=" "$___chunk2" >/dev/null; then if expr "$___chunk1" ">" "$___chunk2" >/dev/null; then arg1_is_great $___cmp return else arg1_is_less $___cmp return fi fi # Remove the chunk ___str1="${___str1#$___chunk1}" ___str2="${___str2#$___chunk2}" done # Either STR1, STR2 or both is empty here if [ -n "$___str1" ]; then case "$___str1" in ~*) arg1_is_less $___cmp ;; *) arg1_is_great $___cmp ;; esac elif [ -n "$___str2" ]; then case "$___str2" in ~*) arg1_is_great $___cmp ;; *) arg1_is_less $___cmp ;; esac else arg1_is_same $___cmp fi } # # Recursively solve package dependencies # # Result is in the PKG_LIST variable # all_required_config_files () { all_list="" new_list="" p="" pkg="" cmp="" list=$* while [ -n "$list" ]; do for p in $list; do if [ -z "$pkg" ]; then pkg=$p elif [ -z "$cmp" ]; then case "$p" in "="|"!="|"<"|">"|"<="|">=") cmp=$p ;; *) read_config_file $pkg $PKG_CONFIG_PATH all_list="$all_list${all_list:+ }$pkg" new_list="$new_list${new_list:+ }$(get_attr_l Requires)" if [ -n "$enable_static" ]; then new_list="$new_list${new_list:+ }$(get_attr_l Requires_private)" fi cleanup_vars_attrs pkg=$p ;; esac else read_config_file $pkg $PKG_CONFIG_PATH if ! eval_compare_version "$(get_attr Version)" $cmp $p; then echo "Version mismatch for $pkg $cmp $p: $(get_attr Version)" 1>&2 exit 1 fi all_list="$all_list${all_list:+ }$pkg" new_list="$new_list${new_list:+ }$(get_attr_l Requires)" if [ -n "$enable_static" ]; then new_list="$new_list${new_list:+ }$(get_attr_l Requires_private)" fi cleanup_vars_attrs pkg="" cmp="" fi done if [ -n "$cmp" ]; then echo "No version after comparison operator ($cmp): $pkg" 1>&2 exit 1 elif [ -n "$pkg" ]; then read_config_file $pkg $PKG_CONFIG_PATH all_list="$all_list${all_list:+ }$pkg" new_list="$new_list${new_list:+ }$(get_attr_l Requires)" if [ -n "$enable_static" ]; then new_list="$new_list${new_list:+ }$(get_attr_l Requires_private)" fi cleanup_vars_attrs fi list="$new_list" new_list="" done PKG_LIST=$(list_only_once $all_list) } # # Modify -I or -L by PKG_CONFIG_SYSROOT_DIR variable # sysroot () { _opt="$1" _result="" shift while [ $# -gt 0 ]; do if [ $1 = $_opt ]; then _result="$_result${_result:+ }$_opt" shift _result="$_result $PKG_CONFIG_SYSROOT_DIR$1" elif expr "x$1" : "^x$_opt" >/dev/null; then _result="$_result${_result:+ }$_opt$PKG_CONFIG_SYSROOT_DIR$(expr "x$1" : "^x$_opt\(.*\)")" else _result="$_result${_result:+ }$1" fi shift done echo "$_result" } # Show usage usage () { cat <<EOF Usage: gpgrt-config [--libdir=LIBDIR] [OPTIONS] MODULES Options: [--exists] [--modversion] [--libs] [--cflags] [--static] [--variable=VARNAME] EOF exit $1 } #### end of functions for this script myname=${0##*/} if [ $myname = gpgrt-config ]; then default_module="gpg-error" else default_module=${myname%-config} fi # First stage to process --libdir option libdir="" while test $# -gt 0; do case $1 in --libdir=*) libdir=${1#--libdir=} shift ;; *) break ;; esac done if env | grep '^PKG_CONFIG_LIBDIR=$' >/dev/null 2>&1; then # The variable set as empty, we use PKG_CONFIG_PATH in this case, # ignoring --libdir option if [ -z "$PKG_CONFIG_PATH" ]; then echo "Please have valid PKG_CONFIG_PATH if PKG_CONFIG_LIBDIR is empty" 1>&2 exit 1 fi else if [ -n "$libdir" ]; then # --libdir option is available, it overrides existing PKG_CONFIG_LIBDIR PKG_CONFIG_LIBDIR=$libdir/pkgconfig fi if [ -z "$PKG_CONFIG_LIBDIR" ]; then if [ -z "$PKG_CONFIG_PATH" ]; then echo "Please use --libdir=LIBDIR option or set PKG_CONFIG_LIBDIR" 1>&2 echo "Or set PKG_CONFIG_PATH" 1>&2 exit 1 fi else # PKG_CONFIG_LIBDIR is available here # Modify PKG_CONFIG_PATH, prepending PKG_CONFIG_LIBDIR PKG_CONFIG_PATH="$PKG_CONFIG_LIBDIR${PKG_CONFIG_PATH:+:}$PKG_CONFIG_PATH" fi fi # PKG_CONFIG_PATH is ready here # if test $# -eq 0; then usage 1 1>&2 fi # Second stage to do the main functionality module_list="" want_var="" want_attr="" want_cflags="" want_libs="" want_exists="" enable_static="" cflags="" libs="" mtcflags="" mtlibs="" output="" mt="no" VAR_list=VAR_pc_sysrootdir if [ -z "$PKG_CONFIG_SYSROOT_DIR" ]; then VAR_pc_sysrootdir="/" else VAR_pc_sysrootdir="$PKG_CONFIG_SYSROOT_DIR" fi while test $# -gt 0; do case $1 in #### pkg-config incompatible options: begin --prefix) # In future, use --variable=prefix instead. want_var=prefix ;; --exec-prefix) # In future, use --variable=exec_prefix instead. want_var=exec_prefix ;; --version) # In future, use --modversion instead. want_attr=Version ;; --api-version) # In future, use --variable=api_version instead. want_var=api_version ;; --host) # In future, use --variable=host instead. want_var=host ;; --mt) # In future, use --variable=mtcflags or --variable=mtlibs. mt=yes ;; #### pkg-config incompatible options: end --modversion) want_attr=Version ;; --exists) want_exists=yes ;; --cflags) want_cflags=yes ;; --libs) want_libs=yes ;; --static) enable_static=yes ;; --variable=*) want_var=${1#*=} ;; --help) usage 0 ;; --*) usage 1 1>&2 ;; *) # Modules module_list="$module_list${module_list:+ }$1" ;; esac shift done if [ -z "$module_list" ]; then module_list=$default_module elif expr "$module_list" : "=\|!=\|<\|>\|<=\|>=" >/dev/null; then module_list="$default_module $module_list" fi all_required_config_files $module_list for p in $PKG_LIST; do read_config_file $p $PKG_CONFIG_PATH # For want_var or want_attr, get it from the first package if [ -n "$want_var" ]; then output="$(get_var $want_var)" break elif [ -n "$want_attr" ]; then output="$(get_attr $want_attr)" break else cflags="$cflags${cflags:+ }$(get_attr Cflags)" libs="$libs${libs:+ }$(get_attr Libs)" if [ -n "$enable_static" ]; then libs="$libs${libs:+ }$(get_attr Libs_private)" fi if [ $p = "gpg-error" ]; then mtcflags="$(get_var mtcflags)" mtlibs="$(get_var mtlibs)" fi fi cleanup_vars_attrs done if [ -z "$want_var" -a -z "$want_attr" ]; then if [ -n "$want_cflags" ]; then output="$output${output:+ }$(sysroot -I $(list_only_once $cflags))" # Backward compatibility to old gpg-error-config if [ $mt = yes -a -n "$mtcflags" ]; then output="$output${output:+ }$mtcflags" fi fi if [ -n "$want_libs" ]; then output="$output${output:+ }$(sysroot -L $(list_only_once_for_libs $libs))" # Backward compatibility to old gpg-error-config if [ $mt = yes -a -n "$mtlibs" ]; then output="$output${output:+ }$mtlibs" fi fi fi if [ -z "$want_exists" ]; then echo "$output" fi exit 0
Close