+++ /dev/null
-/var/log/asterisk/messages /var/log/asterisk/full /var/log/asterisk/security /var/log/asterisk/*_log {
- weekly
- missingok
- rotate 4
- sharedscripts
- postrotate
- /usr/sbin/asterisk -rx 'logger reload' > /dev/null 2> /dev/null
- endscript
-}
make_addon_backup "${addon}"
done
- tar cvzf "${filename}" \
+ # Backup using global exclude/include definitions
+ tar cvf "${filename}" \
--exclude-from="/var/ipfire/backup/exclude" \
+ $(process_includes "/var/ipfire/backup/include") \
+ "$@"
+
+ # Backup using user exclude/include definitions and append to global backup
+ tar rvf "${filename}" \
--exclude-from="/var/ipfire/backup/exclude.user" \
- $(process_includes "/var/ipfire/backup/include" "/var/ipfire/backup/include.user") \
+ $(process_includes "/var/ipfire/backup/include.user") \
"$@"
+ # gzip the combined global/user backup and use .ipf suffix
+ gzip --suffix .ipf "${filename}"
+
return 0
}
local filename="${1}"
if [ -z "${filename}" ]; then
- filename="/var/ipfire/backup/${NOW}.ipf"
+ filename="/var/ipfire/backup/${NOW}"
fi
make_backup "${filename}" $(find_logfiles)
local filename="${1}"
if [ -z "${filename}" ]; then
- filename="/var/ipfire/backup/${NOW}.ipf"
+ filename="/var/ipfire/backup/${NOW}"
fi
make_backup "${filename}"
+++ /dev/null
-/var/ipfire/asterisk/
-/var/log/asterisk/cdr-csv/
+++ /dev/null
-/etc/lcd4linux.conf
+++ /dev/null
-/etc/motion.conf
+++ /dev/null
-/etc/sane.d/
-#
+#
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
END
CKA_NSS_MOZILLA_CA_POLICY CK_BBOOL CK_TRUE
CKA_NSS_SERVER_DISTRUST_AFTER CK_BBOOL CK_FALSE
-CKA_NSS_EMAIL_DISTRUST_AFTER CK_BBOOL CK_FALSE
+# For Email Distrust After: Wed Aug 31 00:00:00 2022
+CKA_NSS_EMAIL_DISTRUST_AFTER MULTILINE_OCTAL
+\062\062\060\070\063\061\060\060\060\060\060\060\132
+END
# Trust for Certificate "Verisign Class 1 Public Primary Certification Authority - G3"
# Issuer: CN=VeriSign Class 1 Public Primary Certification Authority - G3,OU="(c) 1999 VeriSign, Inc. - For authorized use only",OU=VeriSign Trust Network,O="VeriSign, Inc.",C=US
END
CKA_NSS_MOZILLA_CA_POLICY CK_BBOOL CK_TRUE
CKA_NSS_SERVER_DISTRUST_AFTER CK_BBOOL CK_FALSE
-CKA_NSS_EMAIL_DISTRUST_AFTER CK_BBOOL CK_FALSE
+# For Email Distrust After: Wed Aug 31 00:00:00 2022
+CKA_NSS_EMAIL_DISTRUST_AFTER MULTILINE_OCTAL
+\062\062\060\070\063\061\060\060\060\060\060\060\132
+END
# Trust for Certificate "Verisign Class 2 Public Primary Certification Authority - G3"
# Issuer: CN=VeriSign Class 2 Public Primary Certification Authority - G3,OU="(c) 1999 VeriSign, Inc. - For authorized use only",OU=VeriSign Trust Network,O="VeriSign, Inc.",C=US
CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_MUST_VERIFY_TRUST
CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE
-#
-# Certificate "QuoVadis Root CA"
-#
-# Issuer: CN=QuoVadis Root Certification Authority,OU=Root Certification Authority,O=QuoVadis Limited,C=BM
-# Serial Number: 985026699 (0x3ab6508b)
-# Subject: CN=QuoVadis Root Certification Authority,OU=Root Certification Authority,O=QuoVadis Limited,C=BM
-# Not Valid Before: Mon Mar 19 18:33:33 2001
-# Not Valid After : Wed Mar 17 18:33:33 2021
-# Fingerprint (MD5): 27:DE:36:FE:72:B7:00:03:00:9D:F4:F0:1E:6C:04:24
-# Fingerprint (SHA1): DE:3F:40:BD:50:93:D3:9B:6C:60:F6:DA:BC:07:62:01:00:89:76:C9
-CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE
-CKA_TOKEN CK_BBOOL CK_TRUE
-CKA_PRIVATE CK_BBOOL CK_FALSE
-CKA_MODIFIABLE CK_BBOOL CK_FALSE
-CKA_LABEL UTF8 "QuoVadis Root CA"
-CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509
-CKA_SUBJECT MULTILINE_OCTAL
-\060\177\061\013\060\011\006\003\125\004\006\023\002\102\115\061
-\031\060\027\006\003\125\004\012\023\020\121\165\157\126\141\144
-\151\163\040\114\151\155\151\164\145\144\061\045\060\043\006\003
-\125\004\013\023\034\122\157\157\164\040\103\145\162\164\151\146
-\151\143\141\164\151\157\156\040\101\165\164\150\157\162\151\164
-\171\061\056\060\054\006\003\125\004\003\023\045\121\165\157\126
-\141\144\151\163\040\122\157\157\164\040\103\145\162\164\151\146
-\151\143\141\164\151\157\156\040\101\165\164\150\157\162\151\164
-\171
-END
-CKA_ID UTF8 "0"
-CKA_ISSUER MULTILINE_OCTAL
-\060\177\061\013\060\011\006\003\125\004\006\023\002\102\115\061
-\031\060\027\006\003\125\004\012\023\020\121\165\157\126\141\144
-\151\163\040\114\151\155\151\164\145\144\061\045\060\043\006\003
-\125\004\013\023\034\122\157\157\164\040\103\145\162\164\151\146
-\151\143\141\164\151\157\156\040\101\165\164\150\157\162\151\164
-\171\061\056\060\054\006\003\125\004\003\023\045\121\165\157\126
-\141\144\151\163\040\122\157\157\164\040\103\145\162\164\151\146
-\151\143\141\164\151\157\156\040\101\165\164\150\157\162\151\164
-\171
-END
-CKA_SERIAL_NUMBER MULTILINE_OCTAL
-\002\004\072\266\120\213
-END
-CKA_VALUE MULTILINE_OCTAL
-\060\202\005\320\060\202\004\270\240\003\002\001\002\002\004\072
-\266\120\213\060\015\006\011\052\206\110\206\367\015\001\001\005
-\005\000\060\177\061\013\060\011\006\003\125\004\006\023\002\102
-\115\061\031\060\027\006\003\125\004\012\023\020\121\165\157\126
-\141\144\151\163\040\114\151\155\151\164\145\144\061\045\060\043
-\006\003\125\004\013\023\034\122\157\157\164\040\103\145\162\164
-\151\146\151\143\141\164\151\157\156\040\101\165\164\150\157\162
-\151\164\171\061\056\060\054\006\003\125\004\003\023\045\121\165
-\157\126\141\144\151\163\040\122\157\157\164\040\103\145\162\164
-\151\146\151\143\141\164\151\157\156\040\101\165\164\150\157\162
-\151\164\171\060\036\027\015\060\061\060\063\061\071\061\070\063
-\063\063\063\132\027\015\062\061\060\063\061\067\061\070\063\063
-\063\063\132\060\177\061\013\060\011\006\003\125\004\006\023\002
-\102\115\061\031\060\027\006\003\125\004\012\023\020\121\165\157
-\126\141\144\151\163\040\114\151\155\151\164\145\144\061\045\060
-\043\006\003\125\004\013\023\034\122\157\157\164\040\103\145\162
-\164\151\146\151\143\141\164\151\157\156\040\101\165\164\150\157
-\162\151\164\171\061\056\060\054\006\003\125\004\003\023\045\121
-\165\157\126\141\144\151\163\040\122\157\157\164\040\103\145\162
-\164\151\146\151\143\141\164\151\157\156\040\101\165\164\150\157
-\162\151\164\171\060\202\001\042\060\015\006\011\052\206\110\206
-\367\015\001\001\001\005\000\003\202\001\017\000\060\202\001\012
-\002\202\001\001\000\277\141\265\225\123\272\127\374\372\362\147
-\013\072\032\337\021\200\144\225\264\321\274\315\172\317\366\051
-\226\056\044\124\100\044\070\367\032\205\334\130\114\313\244\047
-\102\227\320\237\203\212\303\344\006\003\133\000\245\121\036\160
-\004\164\342\301\324\072\253\327\255\073\007\030\005\216\375\203
-\254\352\146\331\030\033\150\212\365\127\032\230\272\365\355\166
-\075\174\331\336\224\152\073\113\027\301\325\217\275\145\070\072
-\225\320\075\125\066\116\337\171\127\061\052\036\330\131\145\111
-\130\040\230\176\253\137\176\237\351\326\115\354\203\164\251\307
-\154\330\356\051\112\205\052\006\024\371\124\346\323\332\145\007
-\213\143\067\022\327\320\354\303\173\040\101\104\243\355\313\240
-\027\341\161\145\316\035\146\061\367\166\001\031\310\175\003\130
-\266\225\111\035\246\022\046\350\306\014\166\340\343\146\313\352
-\135\246\046\356\345\314\137\275\147\247\001\047\016\242\312\124
-\305\261\172\225\035\161\036\112\051\212\003\334\152\105\301\244
-\031\136\157\066\315\303\242\260\267\376\134\070\342\122\274\370
-\104\103\346\220\273\002\003\001\000\001\243\202\002\122\060\202
-\002\116\060\075\006\010\053\006\001\005\005\007\001\001\004\061
-\060\057\060\055\006\010\053\006\001\005\005\007\060\001\206\041
-\150\164\164\160\163\072\057\057\157\143\163\160\056\161\165\157
-\166\141\144\151\163\157\146\146\163\150\157\162\145\056\143\157
-\155\060\017\006\003\125\035\023\001\001\377\004\005\060\003\001
-\001\377\060\202\001\032\006\003\125\035\040\004\202\001\021\060
-\202\001\015\060\202\001\011\006\011\053\006\001\004\001\276\130
-\000\001\060\201\373\060\201\324\006\010\053\006\001\005\005\007
-\002\002\060\201\307\032\201\304\122\145\154\151\141\156\143\145
-\040\157\156\040\164\150\145\040\121\165\157\126\141\144\151\163
-\040\122\157\157\164\040\103\145\162\164\151\146\151\143\141\164
-\145\040\142\171\040\141\156\171\040\160\141\162\164\171\040\141
-\163\163\165\155\145\163\040\141\143\143\145\160\164\141\156\143
-\145\040\157\146\040\164\150\145\040\164\150\145\156\040\141\160
-\160\154\151\143\141\142\154\145\040\163\164\141\156\144\141\162
-\144\040\164\145\162\155\163\040\141\156\144\040\143\157\156\144
-\151\164\151\157\156\163\040\157\146\040\165\163\145\054\040\143
-\145\162\164\151\146\151\143\141\164\151\157\156\040\160\162\141
-\143\164\151\143\145\163\054\040\141\156\144\040\164\150\145\040
-\121\165\157\126\141\144\151\163\040\103\145\162\164\151\146\151
-\143\141\164\145\040\120\157\154\151\143\171\056\060\042\006\010
-\053\006\001\005\005\007\002\001\026\026\150\164\164\160\072\057
-\057\167\167\167\056\161\165\157\166\141\144\151\163\056\142\155
-\060\035\006\003\125\035\016\004\026\004\024\213\113\155\355\323
-\051\271\006\031\354\071\071\251\360\227\204\152\313\357\337\060
-\201\256\006\003\125\035\043\004\201\246\060\201\243\200\024\213
-\113\155\355\323\051\271\006\031\354\071\071\251\360\227\204\152
-\313\357\337\241\201\204\244\201\201\060\177\061\013\060\011\006
-\003\125\004\006\023\002\102\115\061\031\060\027\006\003\125\004
-\012\023\020\121\165\157\126\141\144\151\163\040\114\151\155\151
-\164\145\144\061\045\060\043\006\003\125\004\013\023\034\122\157
-\157\164\040\103\145\162\164\151\146\151\143\141\164\151\157\156
-\040\101\165\164\150\157\162\151\164\171\061\056\060\054\006\003
-\125\004\003\023\045\121\165\157\126\141\144\151\163\040\122\157
-\157\164\040\103\145\162\164\151\146\151\143\141\164\151\157\156
-\040\101\165\164\150\157\162\151\164\171\202\004\072\266\120\213
-\060\016\006\003\125\035\017\001\001\377\004\004\003\002\001\006
-\060\015\006\011\052\206\110\206\367\015\001\001\005\005\000\003
-\202\001\001\000\212\324\024\265\376\364\232\222\247\031\324\244
-\176\162\030\217\331\150\174\122\044\335\147\157\071\172\304\252
-\136\075\342\130\260\115\160\230\204\141\350\033\343\151\030\016
-\316\373\107\120\240\116\377\360\044\037\275\262\316\365\047\374
-\354\057\123\252\163\173\003\075\164\156\346\026\236\353\245\056
-\304\277\126\047\120\053\142\272\276\113\034\074\125\134\101\035
-\044\276\202\040\107\135\325\104\176\172\026\150\337\175\115\121
-\160\170\127\035\063\036\375\002\231\234\014\315\012\005\117\307
-\273\216\244\165\372\112\155\261\200\216\011\126\271\234\032\140
-\376\135\301\327\172\334\021\170\320\326\135\301\267\325\255\062
-\231\003\072\212\314\124\045\071\061\201\173\023\042\121\272\106
-\154\241\273\236\372\004\154\111\046\164\217\322\163\353\314\060
-\242\346\352\131\042\207\370\227\365\016\375\352\314\222\244\026
-\304\122\030\352\041\316\261\361\346\204\201\345\272\251\206\050
-\362\103\132\135\022\235\254\036\331\250\345\012\152\247\177\240
-\207\051\317\362\211\115\324\354\305\342\346\172\320\066\043\212
-\112\164\066\371
-END
-CKA_NSS_MOZILLA_CA_POLICY CK_BBOOL CK_TRUE
-CKA_NSS_SERVER_DISTRUST_AFTER CK_BBOOL CK_FALSE
-CKA_NSS_EMAIL_DISTRUST_AFTER CK_BBOOL CK_FALSE
-
-# Trust for Certificate "QuoVadis Root CA"
-# Issuer: CN=QuoVadis Root Certification Authority,OU=Root Certification Authority,O=QuoVadis Limited,C=BM
-# Serial Number: 985026699 (0x3ab6508b)
-# Subject: CN=QuoVadis Root Certification Authority,OU=Root Certification Authority,O=QuoVadis Limited,C=BM
-# Not Valid Before: Mon Mar 19 18:33:33 2001
-# Not Valid After : Wed Mar 17 18:33:33 2021
-# Fingerprint (MD5): 27:DE:36:FE:72:B7:00:03:00:9D:F4:F0:1E:6C:04:24
-# Fingerprint (SHA1): DE:3F:40:BD:50:93:D3:9B:6C:60:F6:DA:BC:07:62:01:00:89:76:C9
-CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST
-CKA_TOKEN CK_BBOOL CK_TRUE
-CKA_PRIVATE CK_BBOOL CK_FALSE
-CKA_MODIFIABLE CK_BBOOL CK_FALSE
-CKA_LABEL UTF8 "QuoVadis Root CA"
-CKA_CERT_SHA1_HASH MULTILINE_OCTAL
-\336\077\100\275\120\223\323\233\154\140\366\332\274\007\142\001
-\000\211\166\311
-END
-CKA_CERT_MD5_HASH MULTILINE_OCTAL
-\047\336\066\376\162\267\000\003\000\235\364\360\036\154\004\044
-END
-CKA_ISSUER MULTILINE_OCTAL
-\060\177\061\013\060\011\006\003\125\004\006\023\002\102\115\061
-\031\060\027\006\003\125\004\012\023\020\121\165\157\126\141\144
-\151\163\040\114\151\155\151\164\145\144\061\045\060\043\006\003
-\125\004\013\023\034\122\157\157\164\040\103\145\162\164\151\146
-\151\143\141\164\151\157\156\040\101\165\164\150\157\162\151\164
-\171\061\056\060\054\006\003\125\004\003\023\045\121\165\157\126
-\141\144\151\163\040\122\157\157\164\040\103\145\162\164\151\146
-\151\143\141\164\151\157\156\040\101\165\164\150\157\162\151\164
-\171
-END
-CKA_SERIAL_NUMBER MULTILINE_OCTAL
-\002\004\072\266\120\213
-END
-CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR
-CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR
-CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_MUST_VERIFY_TRUST
-CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE
-
#
# Certificate "QuoVadis Root CA 2"
#
CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_MUST_VERIFY_TRUST
CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE
-#
-# Certificate "Sonera Class 2 Root CA"
-#
-# Issuer: CN=Sonera Class2 CA,O=Sonera,C=FI
-# Serial Number: 29 (0x1d)
-# Subject: CN=Sonera Class2 CA,O=Sonera,C=FI
-# Not Valid Before: Fri Apr 06 07:29:40 2001
-# Not Valid After : Tue Apr 06 07:29:40 2021
-# Fingerprint (MD5): A3:EC:75:0F:2E:88:DF:FA:48:01:4E:0B:5C:48:6F:FB
-# Fingerprint (SHA1): 37:F7:6D:E6:07:7C:90:C5:B1:3E:93:1A:B7:41:10:B4:F2:E4:9A:27
-CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE
-CKA_TOKEN CK_BBOOL CK_TRUE
-CKA_PRIVATE CK_BBOOL CK_FALSE
-CKA_MODIFIABLE CK_BBOOL CK_FALSE
-CKA_LABEL UTF8 "Sonera Class 2 Root CA"
-CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509
-CKA_SUBJECT MULTILINE_OCTAL
-\060\071\061\013\060\011\006\003\125\004\006\023\002\106\111\061
-\017\060\015\006\003\125\004\012\023\006\123\157\156\145\162\141
-\061\031\060\027\006\003\125\004\003\023\020\123\157\156\145\162
-\141\040\103\154\141\163\163\062\040\103\101
-END
-CKA_ID UTF8 "0"
-CKA_ISSUER MULTILINE_OCTAL
-\060\071\061\013\060\011\006\003\125\004\006\023\002\106\111\061
-\017\060\015\006\003\125\004\012\023\006\123\157\156\145\162\141
-\061\031\060\027\006\003\125\004\003\023\020\123\157\156\145\162
-\141\040\103\154\141\163\163\062\040\103\101
-END
-CKA_SERIAL_NUMBER MULTILINE_OCTAL
-\002\001\035
-END
-CKA_VALUE MULTILINE_OCTAL
-\060\202\003\040\060\202\002\010\240\003\002\001\002\002\001\035
-\060\015\006\011\052\206\110\206\367\015\001\001\005\005\000\060
-\071\061\013\060\011\006\003\125\004\006\023\002\106\111\061\017
-\060\015\006\003\125\004\012\023\006\123\157\156\145\162\141\061
-\031\060\027\006\003\125\004\003\023\020\123\157\156\145\162\141
-\040\103\154\141\163\163\062\040\103\101\060\036\027\015\060\061
-\060\064\060\066\060\067\062\071\064\060\132\027\015\062\061\060
-\064\060\066\060\067\062\071\064\060\132\060\071\061\013\060\011
-\006\003\125\004\006\023\002\106\111\061\017\060\015\006\003\125
-\004\012\023\006\123\157\156\145\162\141\061\031\060\027\006\003
-\125\004\003\023\020\123\157\156\145\162\141\040\103\154\141\163
-\163\062\040\103\101\060\202\001\042\060\015\006\011\052\206\110
-\206\367\015\001\001\001\005\000\003\202\001\017\000\060\202\001
-\012\002\202\001\001\000\220\027\112\065\235\312\360\015\226\307
-\104\372\026\067\374\110\275\275\177\200\055\065\073\341\157\250
-\147\251\277\003\034\115\214\157\062\107\325\101\150\244\023\004
-\301\065\014\232\204\103\374\134\035\377\211\263\350\027\030\315
-\221\137\373\211\343\352\277\116\135\174\033\046\323\165\171\355
-\346\204\343\127\345\255\051\304\364\072\050\347\245\173\204\066
-\151\263\375\136\166\275\243\055\231\323\220\116\043\050\175\030
-\143\361\124\073\046\235\166\133\227\102\262\377\256\360\116\354
-\335\071\225\116\203\006\177\347\111\100\310\305\001\262\124\132
-\146\035\075\374\371\351\074\012\236\201\270\160\360\001\213\344
-\043\124\174\310\256\370\220\036\000\226\162\324\124\317\141\043
-\274\352\373\235\002\225\321\266\271\161\072\151\010\077\017\264
-\341\102\307\210\365\077\230\250\247\272\034\340\161\161\357\130
-\127\201\120\172\134\153\164\106\016\203\003\230\303\216\250\156
-\362\166\062\156\047\203\302\163\363\334\030\350\264\223\352\165
-\104\153\004\140\040\161\127\207\235\363\276\240\220\043\075\212
-\044\341\332\041\333\303\002\003\001\000\001\243\063\060\061\060
-\017\006\003\125\035\023\001\001\377\004\005\060\003\001\001\377
-\060\021\006\003\125\035\016\004\012\004\010\112\240\252\130\204
-\323\136\074\060\013\006\003\125\035\017\004\004\003\002\001\006
-\060\015\006\011\052\206\110\206\367\015\001\001\005\005\000\003
-\202\001\001\000\132\316\207\371\026\162\025\127\113\035\331\233
-\347\242\046\060\354\223\147\337\326\055\322\064\257\367\070\245
-\316\253\026\271\253\057\174\065\313\254\320\017\264\114\053\374
-\200\357\153\214\221\137\066\166\367\333\263\033\031\352\364\262
-\021\375\141\161\104\277\050\263\072\035\277\263\103\350\237\277
-\334\061\010\161\260\235\215\326\064\107\062\220\306\145\044\367
-\240\112\174\004\163\217\071\157\027\214\162\265\275\113\310\172
-\370\173\203\303\050\116\234\011\352\147\077\262\147\004\033\303
-\024\332\370\347\111\044\221\320\035\152\372\141\071\357\153\347
-\041\165\006\007\330\022\264\041\040\160\102\161\201\332\074\232
-\066\276\246\133\015\152\154\232\037\221\173\371\371\357\102\272
-\116\116\236\314\014\215\224\334\331\105\234\136\354\102\120\143
-\256\364\135\304\261\022\334\312\073\250\056\235\024\132\005\165
-\267\354\327\143\342\272\065\266\004\010\221\350\332\235\234\366
-\146\265\030\254\012\246\124\046\064\063\322\033\301\324\177\032
-\072\216\013\252\062\156\333\374\117\045\237\331\062\307\226\132
-\160\254\337\114
-END
-CKA_NSS_MOZILLA_CA_POLICY CK_BBOOL CK_TRUE
-CKA_NSS_SERVER_DISTRUST_AFTER CK_BBOOL CK_FALSE
-CKA_NSS_EMAIL_DISTRUST_AFTER CK_BBOOL CK_FALSE
-
-# Trust for Certificate "Sonera Class 2 Root CA"
-# Issuer: CN=Sonera Class2 CA,O=Sonera,C=FI
-# Serial Number: 29 (0x1d)
-# Subject: CN=Sonera Class2 CA,O=Sonera,C=FI
-# Not Valid Before: Fri Apr 06 07:29:40 2001
-# Not Valid After : Tue Apr 06 07:29:40 2021
-# Fingerprint (MD5): A3:EC:75:0F:2E:88:DF:FA:48:01:4E:0B:5C:48:6F:FB
-# Fingerprint (SHA1): 37:F7:6D:E6:07:7C:90:C5:B1:3E:93:1A:B7:41:10:B4:F2:E4:9A:27
-CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST
-CKA_TOKEN CK_BBOOL CK_TRUE
-CKA_PRIVATE CK_BBOOL CK_FALSE
-CKA_MODIFIABLE CK_BBOOL CK_FALSE
-CKA_LABEL UTF8 "Sonera Class 2 Root CA"
-CKA_CERT_SHA1_HASH MULTILINE_OCTAL
-\067\367\155\346\007\174\220\305\261\076\223\032\267\101\020\264
-\362\344\232\047
-END
-CKA_CERT_MD5_HASH MULTILINE_OCTAL
-\243\354\165\017\056\210\337\372\110\001\116\013\134\110\157\373
-END
-CKA_ISSUER MULTILINE_OCTAL
-\060\071\061\013\060\011\006\003\125\004\006\023\002\106\111\061
-\017\060\015\006\003\125\004\012\023\006\123\157\156\145\162\141
-\061\031\060\027\006\003\125\004\003\023\020\123\157\156\145\162
-\141\040\103\154\141\163\163\062\040\103\101
-END
-CKA_SERIAL_NUMBER MULTILINE_OCTAL
-\002\001\035
-END
-CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR
-CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR
-CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_MUST_VERIFY_TRUST
-CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE
-
#
# Certificate "Camerfirma Chambers of Commerce Root"
#
END
CKA_NSS_MOZILLA_CA_POLICY CK_BBOOL CK_TRUE
CKA_NSS_SERVER_DISTRUST_AFTER CK_BBOOL CK_FALSE
-CKA_NSS_EMAIL_DISTRUST_AFTER CK_BBOOL CK_FALSE
+# For Email Distrust After: Mon Mar 01 00:00:00 2021
+CKA_NSS_EMAIL_DISTRUST_AFTER MULTILINE_OCTAL
+\062\061\060\063\060\061\060\060\060\060\060\060\132
+END
# Trust for Certificate "Camerfirma Chambers of Commerce Root"
# Issuer: CN=Chambers of Commerce Root,OU=http://www.chambersign.org,O=AC Camerfirma SA CIF A82743287,C=EU
END
CKA_NSS_MOZILLA_CA_POLICY CK_BBOOL CK_TRUE
CKA_NSS_SERVER_DISTRUST_AFTER CK_BBOOL CK_FALSE
-CKA_NSS_EMAIL_DISTRUST_AFTER CK_BBOOL CK_FALSE
+# For Email Distrust After: Mon Mar 01 00:00:00 2021
+CKA_NSS_EMAIL_DISTRUST_AFTER MULTILINE_OCTAL
+\062\061\060\063\060\061\060\060\060\060\060\060\132
+END
# Trust for Certificate "Camerfirma Global Chambersign Root"
# Issuer: CN=Global Chambersign Root,OU=http://www.chambersign.org,O=AC Camerfirma SA CIF A82743287,C=EU
CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_MUST_VERIFY_TRUST
CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE
-#
-# Certificate "GeoTrust Primary Certification Authority - G2"
-#
-# Issuer: CN=GeoTrust Primary Certification Authority - G2,OU=(c) 2007 GeoTrust Inc. - For authorized use only,O=GeoTrust Inc.,C=US
-# Serial Number:3c:b2:f4:48:0a:00:e2:fe:eb:24:3b:5e:60:3e:c3:6b
-# Subject: CN=GeoTrust Primary Certification Authority - G2,OU=(c) 2007 GeoTrust Inc. - For authorized use only,O=GeoTrust Inc.,C=US
-# Not Valid Before: Mon Nov 05 00:00:00 2007
-# Not Valid After : Mon Jan 18 23:59:59 2038
-# Fingerprint (MD5): 01:5E:D8:6B:BD:6F:3D:8E:A1:31:F8:12:E0:98:73:6A
-# Fingerprint (SHA1): 8D:17:84:D5:37:F3:03:7D:EC:70:FE:57:8B:51:9A:99:E6:10:D7:B0
-CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE
-CKA_TOKEN CK_BBOOL CK_TRUE
-CKA_PRIVATE CK_BBOOL CK_FALSE
-CKA_MODIFIABLE CK_BBOOL CK_FALSE
-CKA_LABEL UTF8 "GeoTrust Primary Certification Authority - G2"
-CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509
-CKA_SUBJECT MULTILINE_OCTAL
-\060\201\230\061\013\060\011\006\003\125\004\006\023\002\125\123
-\061\026\060\024\006\003\125\004\012\023\015\107\145\157\124\162
-\165\163\164\040\111\156\143\056\061\071\060\067\006\003\125\004
-\013\023\060\050\143\051\040\062\060\060\067\040\107\145\157\124
-\162\165\163\164\040\111\156\143\056\040\055\040\106\157\162\040
-\141\165\164\150\157\162\151\172\145\144\040\165\163\145\040\157
-\156\154\171\061\066\060\064\006\003\125\004\003\023\055\107\145
-\157\124\162\165\163\164\040\120\162\151\155\141\162\171\040\103
-\145\162\164\151\146\151\143\141\164\151\157\156\040\101\165\164
-\150\157\162\151\164\171\040\055\040\107\062
-END
-CKA_ID UTF8 "0"
-CKA_ISSUER MULTILINE_OCTAL
-\060\201\230\061\013\060\011\006\003\125\004\006\023\002\125\123
-\061\026\060\024\006\003\125\004\012\023\015\107\145\157\124\162
-\165\163\164\040\111\156\143\056\061\071\060\067\006\003\125\004
-\013\023\060\050\143\051\040\062\060\060\067\040\107\145\157\124
-\162\165\163\164\040\111\156\143\056\040\055\040\106\157\162\040
-\141\165\164\150\157\162\151\172\145\144\040\165\163\145\040\157
-\156\154\171\061\066\060\064\006\003\125\004\003\023\055\107\145
-\157\124\162\165\163\164\040\120\162\151\155\141\162\171\040\103
-\145\162\164\151\146\151\143\141\164\151\157\156\040\101\165\164
-\150\157\162\151\164\171\040\055\040\107\062
-END
-CKA_SERIAL_NUMBER MULTILINE_OCTAL
-\002\020\074\262\364\110\012\000\342\376\353\044\073\136\140\076
-\303\153
-END
-CKA_VALUE MULTILINE_OCTAL
-\060\202\002\256\060\202\002\065\240\003\002\001\002\002\020\074
-\262\364\110\012\000\342\376\353\044\073\136\140\076\303\153\060
-\012\006\010\052\206\110\316\075\004\003\003\060\201\230\061\013
-\060\011\006\003\125\004\006\023\002\125\123\061\026\060\024\006
-\003\125\004\012\023\015\107\145\157\124\162\165\163\164\040\111
-\156\143\056\061\071\060\067\006\003\125\004\013\023\060\050\143
-\051\040\062\060\060\067\040\107\145\157\124\162\165\163\164\040
-\111\156\143\056\040\055\040\106\157\162\040\141\165\164\150\157
-\162\151\172\145\144\040\165\163\145\040\157\156\154\171\061\066
-\060\064\006\003\125\004\003\023\055\107\145\157\124\162\165\163
-\164\040\120\162\151\155\141\162\171\040\103\145\162\164\151\146
-\151\143\141\164\151\157\156\040\101\165\164\150\157\162\151\164
-\171\040\055\040\107\062\060\036\027\015\060\067\061\061\060\065
-\060\060\060\060\060\060\132\027\015\063\070\060\061\061\070\062
-\063\065\071\065\071\132\060\201\230\061\013\060\011\006\003\125
-\004\006\023\002\125\123\061\026\060\024\006\003\125\004\012\023
-\015\107\145\157\124\162\165\163\164\040\111\156\143\056\061\071
-\060\067\006\003\125\004\013\023\060\050\143\051\040\062\060\060
-\067\040\107\145\157\124\162\165\163\164\040\111\156\143\056\040
-\055\040\106\157\162\040\141\165\164\150\157\162\151\172\145\144
-\040\165\163\145\040\157\156\154\171\061\066\060\064\006\003\125
-\004\003\023\055\107\145\157\124\162\165\163\164\040\120\162\151
-\155\141\162\171\040\103\145\162\164\151\146\151\143\141\164\151
-\157\156\040\101\165\164\150\157\162\151\164\171\040\055\040\107
-\062\060\166\060\020\006\007\052\206\110\316\075\002\001\006\005
-\053\201\004\000\042\003\142\000\004\025\261\350\375\003\025\103
-\345\254\353\207\067\021\142\357\322\203\066\122\175\105\127\013
-\112\215\173\124\073\072\156\137\025\002\300\120\246\317\045\057
-\175\312\110\270\307\120\143\034\052\041\010\174\232\066\330\013
-\376\321\046\305\130\061\060\050\045\363\135\135\243\270\266\245
-\264\222\355\154\054\237\353\335\103\211\242\074\113\110\221\035
-\120\354\046\337\326\140\056\275\041\243\102\060\100\060\017\006
-\003\125\035\023\001\001\377\004\005\060\003\001\001\377\060\016
-\006\003\125\035\017\001\001\377\004\004\003\002\001\006\060\035
-\006\003\125\035\016\004\026\004\024\025\137\065\127\121\125\373
-\045\262\255\003\151\374\001\243\372\276\021\125\325\060\012\006
-\010\052\206\110\316\075\004\003\003\003\147\000\060\144\002\060
-\144\226\131\246\350\011\336\213\272\372\132\210\210\360\037\221
-\323\106\250\362\112\114\002\143\373\154\137\070\333\056\101\223
-\251\016\346\235\334\061\034\262\240\247\030\034\171\341\307\066
-\002\060\072\126\257\232\164\154\366\373\203\340\063\323\010\137
-\241\234\302\133\237\106\326\266\313\221\006\143\242\006\347\063
-\254\076\250\201\022\320\313\272\320\222\013\266\236\226\252\004
-\017\212
-END
-CKA_NSS_MOZILLA_CA_POLICY CK_BBOOL CK_TRUE
-# For Server Distrust After: Wed Jan 01 00:00:00 2020
-CKA_NSS_SERVER_DISTRUST_AFTER MULTILINE_OCTAL
-\062\060\060\061\060\061\060\060\060\060\060\060\132
-END
-CKA_NSS_EMAIL_DISTRUST_AFTER CK_BBOOL CK_FALSE
-
-# Trust for Certificate "GeoTrust Primary Certification Authority - G2"
-# Issuer: CN=GeoTrust Primary Certification Authority - G2,OU=(c) 2007 GeoTrust Inc. - For authorized use only,O=GeoTrust Inc.,C=US
-# Serial Number:3c:b2:f4:48:0a:00:e2:fe:eb:24:3b:5e:60:3e:c3:6b
-# Subject: CN=GeoTrust Primary Certification Authority - G2,OU=(c) 2007 GeoTrust Inc. - For authorized use only,O=GeoTrust Inc.,C=US
-# Not Valid Before: Mon Nov 05 00:00:00 2007
-# Not Valid After : Mon Jan 18 23:59:59 2038
-# Fingerprint (MD5): 01:5E:D8:6B:BD:6F:3D:8E:A1:31:F8:12:E0:98:73:6A
-# Fingerprint (SHA1): 8D:17:84:D5:37:F3:03:7D:EC:70:FE:57:8B:51:9A:99:E6:10:D7:B0
-CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST
-CKA_TOKEN CK_BBOOL CK_TRUE
-CKA_PRIVATE CK_BBOOL CK_FALSE
-CKA_MODIFIABLE CK_BBOOL CK_FALSE
-CKA_LABEL UTF8 "GeoTrust Primary Certification Authority - G2"
-CKA_CERT_SHA1_HASH MULTILINE_OCTAL
-\215\027\204\325\067\363\003\175\354\160\376\127\213\121\232\231
-\346\020\327\260
-END
-CKA_CERT_MD5_HASH MULTILINE_OCTAL
-\001\136\330\153\275\157\075\216\241\061\370\022\340\230\163\152
-END
-CKA_ISSUER MULTILINE_OCTAL
-\060\201\230\061\013\060\011\006\003\125\004\006\023\002\125\123
-\061\026\060\024\006\003\125\004\012\023\015\107\145\157\124\162
-\165\163\164\040\111\156\143\056\061\071\060\067\006\003\125\004
-\013\023\060\050\143\051\040\062\060\060\067\040\107\145\157\124
-\162\165\163\164\040\111\156\143\056\040\055\040\106\157\162\040
-\141\165\164\150\157\162\151\172\145\144\040\165\163\145\040\157
-\156\154\171\061\066\060\064\006\003\125\004\003\023\055\107\145
-\157\124\162\165\163\164\040\120\162\151\155\141\162\171\040\103
-\145\162\164\151\146\151\143\141\164\151\157\156\040\101\165\164
-\150\157\162\151\164\171\040\055\040\107\062
-END
-CKA_SERIAL_NUMBER MULTILINE_OCTAL
-\002\020\074\262\364\110\012\000\342\376\353\044\073\136\140\076
-\303\153
-END
-CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR
-CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_MUST_VERIFY_TRUST
-CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_MUST_VERIFY_TRUST
-CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE
-
-#
-# Certificate "VeriSign Universal Root Certification Authority"
-#
-# Issuer: CN=VeriSign Universal Root Certification Authority,OU="(c) 2008 VeriSign, Inc. - For authorized use only",OU=VeriSign Trust Network,O="VeriSign, Inc.",C=US
-# Serial Number:40:1a:c4:64:21:b3:13:21:03:0e:bb:e4:12:1a:c5:1d
-# Subject: CN=VeriSign Universal Root Certification Authority,OU="(c) 2008 VeriSign, Inc. - For authorized use only",OU=VeriSign Trust Network,O="VeriSign, Inc.",C=US
-# Not Valid Before: Wed Apr 02 00:00:00 2008
-# Not Valid After : Tue Dec 01 23:59:59 2037
-# Fingerprint (MD5): 8E:AD:B5:01:AA:4D:81:E4:8C:1D:D1:E1:14:00:95:19
-# Fingerprint (SHA1): 36:79:CA:35:66:87:72:30:4D:30:A5:FB:87:3B:0F:A7:7B:B7:0D:54
-CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE
-CKA_TOKEN CK_BBOOL CK_TRUE
-CKA_PRIVATE CK_BBOOL CK_FALSE
-CKA_MODIFIABLE CK_BBOOL CK_FALSE
-CKA_LABEL UTF8 "VeriSign Universal Root Certification Authority"
-CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509
-CKA_SUBJECT MULTILINE_OCTAL
-\060\201\275\061\013\060\011\006\003\125\004\006\023\002\125\123
-\061\027\060\025\006\003\125\004\012\023\016\126\145\162\151\123
-\151\147\156\054\040\111\156\143\056\061\037\060\035\006\003\125
-\004\013\023\026\126\145\162\151\123\151\147\156\040\124\162\165
-\163\164\040\116\145\164\167\157\162\153\061\072\060\070\006\003
-\125\004\013\023\061\050\143\051\040\062\060\060\070\040\126\145
-\162\151\123\151\147\156\054\040\111\156\143\056\040\055\040\106
-\157\162\040\141\165\164\150\157\162\151\172\145\144\040\165\163
-\145\040\157\156\154\171\061\070\060\066\006\003\125\004\003\023
-\057\126\145\162\151\123\151\147\156\040\125\156\151\166\145\162
-\163\141\154\040\122\157\157\164\040\103\145\162\164\151\146\151
-\143\141\164\151\157\156\040\101\165\164\150\157\162\151\164\171
-END
-CKA_ID UTF8 "0"
-CKA_ISSUER MULTILINE_OCTAL
-\060\201\275\061\013\060\011\006\003\125\004\006\023\002\125\123
-\061\027\060\025\006\003\125\004\012\023\016\126\145\162\151\123
-\151\147\156\054\040\111\156\143\056\061\037\060\035\006\003\125
-\004\013\023\026\126\145\162\151\123\151\147\156\040\124\162\165
-\163\164\040\116\145\164\167\157\162\153\061\072\060\070\006\003
-\125\004\013\023\061\050\143\051\040\062\060\060\070\040\126\145
-\162\151\123\151\147\156\054\040\111\156\143\056\040\055\040\106
-\157\162\040\141\165\164\150\157\162\151\172\145\144\040\165\163
-\145\040\157\156\154\171\061\070\060\066\006\003\125\004\003\023
-\057\126\145\162\151\123\151\147\156\040\125\156\151\166\145\162
-\163\141\154\040\122\157\157\164\040\103\145\162\164\151\146\151
-\143\141\164\151\157\156\040\101\165\164\150\157\162\151\164\171
-END
-CKA_SERIAL_NUMBER MULTILINE_OCTAL
-\002\020\100\032\304\144\041\263\023\041\003\016\273\344\022\032
-\305\035
-END
-CKA_VALUE MULTILINE_OCTAL
-\060\202\004\271\060\202\003\241\240\003\002\001\002\002\020\100
-\032\304\144\041\263\023\041\003\016\273\344\022\032\305\035\060
-\015\006\011\052\206\110\206\367\015\001\001\013\005\000\060\201
-\275\061\013\060\011\006\003\125\004\006\023\002\125\123\061\027
-\060\025\006\003\125\004\012\023\016\126\145\162\151\123\151\147
-\156\054\040\111\156\143\056\061\037\060\035\006\003\125\004\013
-\023\026\126\145\162\151\123\151\147\156\040\124\162\165\163\164
-\040\116\145\164\167\157\162\153\061\072\060\070\006\003\125\004
-\013\023\061\050\143\051\040\062\060\060\070\040\126\145\162\151
-\123\151\147\156\054\040\111\156\143\056\040\055\040\106\157\162
-\040\141\165\164\150\157\162\151\172\145\144\040\165\163\145\040
-\157\156\154\171\061\070\060\066\006\003\125\004\003\023\057\126
-\145\162\151\123\151\147\156\040\125\156\151\166\145\162\163\141
-\154\040\122\157\157\164\040\103\145\162\164\151\146\151\143\141
-\164\151\157\156\040\101\165\164\150\157\162\151\164\171\060\036
-\027\015\060\070\060\064\060\062\060\060\060\060\060\060\132\027
-\015\063\067\061\062\060\061\062\063\065\071\065\071\132\060\201
-\275\061\013\060\011\006\003\125\004\006\023\002\125\123\061\027
-\060\025\006\003\125\004\012\023\016\126\145\162\151\123\151\147
-\156\054\040\111\156\143\056\061\037\060\035\006\003\125\004\013
-\023\026\126\145\162\151\123\151\147\156\040\124\162\165\163\164
-\040\116\145\164\167\157\162\153\061\072\060\070\006\003\125\004
-\013\023\061\050\143\051\040\062\060\060\070\040\126\145\162\151
-\123\151\147\156\054\040\111\156\143\056\040\055\040\106\157\162
-\040\141\165\164\150\157\162\151\172\145\144\040\165\163\145\040
-\157\156\154\171\061\070\060\066\006\003\125\004\003\023\057\126
-\145\162\151\123\151\147\156\040\125\156\151\166\145\162\163\141
-\154\040\122\157\157\164\040\103\145\162\164\151\146\151\143\141
-\164\151\157\156\040\101\165\164\150\157\162\151\164\171\060\202
-\001\042\060\015\006\011\052\206\110\206\367\015\001\001\001\005
-\000\003\202\001\017\000\060\202\001\012\002\202\001\001\000\307
-\141\067\136\261\001\064\333\142\327\025\233\377\130\132\214\043
-\043\326\140\216\221\327\220\230\203\172\346\130\031\070\214\305
-\366\345\144\205\264\242\161\373\355\275\271\332\315\115\000\264
-\310\055\163\245\307\151\161\225\037\071\074\262\104\007\234\350
-\016\372\115\112\304\041\337\051\141\217\062\042\141\202\305\207
-\037\156\214\174\137\026\040\121\104\321\160\117\127\352\343\034
-\343\314\171\356\130\330\016\302\263\105\223\300\054\347\232\027
-\053\173\000\067\172\101\063\170\341\063\342\363\020\032\177\207
-\054\276\366\365\367\102\342\345\277\207\142\211\137\000\113\337
-\305\335\344\165\104\062\101\072\036\161\156\151\313\013\165\106
-\010\321\312\322\053\225\320\317\373\271\100\153\144\214\127\115
-\374\023\021\171\204\355\136\124\366\064\237\010\001\363\020\045
-\006\027\112\332\361\035\172\146\153\230\140\146\244\331\357\322
-\056\202\361\360\357\011\352\104\311\025\152\342\003\156\063\323
-\254\237\125\000\307\366\010\152\224\271\137\334\340\063\361\204
-\140\371\133\047\021\264\374\026\362\273\126\152\200\045\215\002
-\003\001\000\001\243\201\262\060\201\257\060\017\006\003\125\035
-\023\001\001\377\004\005\060\003\001\001\377\060\016\006\003\125
-\035\017\001\001\377\004\004\003\002\001\006\060\155\006\010\053
-\006\001\005\005\007\001\014\004\141\060\137\241\135\240\133\060
-\131\060\127\060\125\026\011\151\155\141\147\145\057\147\151\146
-\060\041\060\037\060\007\006\005\053\016\003\002\032\004\024\217
-\345\323\032\206\254\215\216\153\303\317\200\152\324\110\030\054
-\173\031\056\060\045\026\043\150\164\164\160\072\057\057\154\157
-\147\157\056\166\145\162\151\163\151\147\156\056\143\157\155\057
-\166\163\154\157\147\157\056\147\151\146\060\035\006\003\125\035
-\016\004\026\004\024\266\167\372\151\110\107\237\123\022\325\302
-\352\007\062\166\007\321\227\007\031\060\015\006\011\052\206\110
-\206\367\015\001\001\013\005\000\003\202\001\001\000\112\370\370
-\260\003\346\054\147\173\344\224\167\143\314\156\114\371\175\016
-\015\334\310\271\065\271\160\117\143\372\044\372\154\203\214\107
-\235\073\143\363\232\371\166\062\225\221\261\167\274\254\232\276
-\261\344\061\041\306\201\225\126\132\016\261\302\324\261\246\131
-\254\361\143\313\270\114\035\131\220\112\357\220\026\050\037\132
-\256\020\373\201\120\070\014\154\314\361\075\303\365\143\343\263
-\343\041\311\044\071\351\375\025\146\106\364\033\021\320\115\163
-\243\175\106\371\075\355\250\137\142\324\361\077\370\340\164\127
-\053\030\235\201\264\304\050\332\224\227\245\160\353\254\035\276
-\007\021\360\325\333\335\345\214\360\325\062\260\203\346\127\342
-\217\277\276\241\252\277\075\035\265\324\070\352\327\260\134\072
-\117\152\077\217\300\146\154\143\252\351\331\244\026\364\201\321
-\225\024\016\175\315\225\064\331\322\217\160\163\201\173\234\176
-\275\230\141\330\105\207\230\220\305\353\206\060\306\065\277\360
-\377\303\125\210\203\113\357\005\222\006\161\362\270\230\223\267
-\354\315\202\141\361\070\346\117\227\230\052\132\215
-END
-CKA_NSS_MOZILLA_CA_POLICY CK_BBOOL CK_TRUE
-# For Server Distrust After: Tue Apr 30 00:00:00 2019
-CKA_NSS_SERVER_DISTRUST_AFTER MULTILINE_OCTAL
-\061\071\060\064\063\060\060\060\060\060\060\060\132
-END
-CKA_NSS_EMAIL_DISTRUST_AFTER CK_BBOOL CK_FALSE
-
-# Trust for Certificate "VeriSign Universal Root Certification Authority"
-# Issuer: CN=VeriSign Universal Root Certification Authority,OU="(c) 2008 VeriSign, Inc. - For authorized use only",OU=VeriSign Trust Network,O="VeriSign, Inc.",C=US
-# Serial Number:40:1a:c4:64:21:b3:13:21:03:0e:bb:e4:12:1a:c5:1d
-# Subject: CN=VeriSign Universal Root Certification Authority,OU="(c) 2008 VeriSign, Inc. - For authorized use only",OU=VeriSign Trust Network,O="VeriSign, Inc.",C=US
-# Not Valid Before: Wed Apr 02 00:00:00 2008
-# Not Valid After : Tue Dec 01 23:59:59 2037
-# Fingerprint (MD5): 8E:AD:B5:01:AA:4D:81:E4:8C:1D:D1:E1:14:00:95:19
-# Fingerprint (SHA1): 36:79:CA:35:66:87:72:30:4D:30:A5:FB:87:3B:0F:A7:7B:B7:0D:54
-CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST
-CKA_TOKEN CK_BBOOL CK_TRUE
-CKA_PRIVATE CK_BBOOL CK_FALSE
-CKA_MODIFIABLE CK_BBOOL CK_FALSE
-CKA_LABEL UTF8 "VeriSign Universal Root Certification Authority"
-CKA_CERT_SHA1_HASH MULTILINE_OCTAL
-\066\171\312\065\146\207\162\060\115\060\245\373\207\073\017\247
-\173\267\015\124
-END
-CKA_CERT_MD5_HASH MULTILINE_OCTAL
-\216\255\265\001\252\115\201\344\214\035\321\341\024\000\225\031
-END
-CKA_ISSUER MULTILINE_OCTAL
-\060\201\275\061\013\060\011\006\003\125\004\006\023\002\125\123
-\061\027\060\025\006\003\125\004\012\023\016\126\145\162\151\123
-\151\147\156\054\040\111\156\143\056\061\037\060\035\006\003\125
-\004\013\023\026\126\145\162\151\123\151\147\156\040\124\162\165
-\163\164\040\116\145\164\167\157\162\153\061\072\060\070\006\003
-\125\004\013\023\061\050\143\051\040\062\060\060\070\040\126\145
-\162\151\123\151\147\156\054\040\111\156\143\056\040\055\040\106
-\157\162\040\141\165\164\150\157\162\151\172\145\144\040\165\163
-\145\040\157\156\154\171\061\070\060\066\006\003\125\004\003\023
-\057\126\145\162\151\123\151\147\156\040\125\156\151\166\145\162
-\163\141\154\040\122\157\157\164\040\103\145\162\164\151\146\151
-\143\141\164\151\157\156\040\101\165\164\150\157\162\151\164\171
-END
-CKA_SERIAL_NUMBER MULTILINE_OCTAL
-\002\020\100\032\304\144\041\263\023\041\003\016\273\344\022\032
-\305\035
-END
-CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR
-CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR
-CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_MUST_VERIFY_TRUST
-CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE
-
#
# Certificate "NetLock Arany (Class Gold) Főtanúsítvány"
#
CKA_SERIAL_NUMBER MULTILINE_OCTAL
\002\011\000\243\332\102\176\244\261\256\332
END
-CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR
+CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_MUST_VERIFY_TRUST
CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR
CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_MUST_VERIFY_TRUST
CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE
CKA_SERIAL_NUMBER MULTILINE_OCTAL
\002\011\000\311\315\323\351\325\175\043\316
END
-CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR
+CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_MUST_VERIFY_TRUST
CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR
CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_MUST_VERIFY_TRUST
CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE
CKA_NSS_SERVER_DISTRUST_AFTER MULTILINE_OCTAL
\061\071\061\062\062\070\060\060\060\060\060\060\132
END
-CKA_NSS_EMAIL_DISTRUST_AFTER CK_BBOOL CK_FALSE
+# For Email Distrust After: Wed Aug 31 00:00:00 2022
+CKA_NSS_EMAIL_DISTRUST_AFTER MULTILINE_OCTAL
+\062\062\060\070\063\061\060\060\060\060\060\060\132
+END
# Trust for Certificate "EC-ACC"
# Issuer: CN=EC-ACC,OU=Jerarquia Entitats de Certificacio Catalanes,OU=Vegeu https://www.catcert.net/verarrel (c)03,OU=Serveis Publics de Certificacio,O=Agencia Catalana de Certificacio (NIF Q-0801176-I),C=ES
CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE
#
-# Certificate "Trustis FPS Root CA"
+# Certificate "Buypass Class 2 Root CA"
#
-# Issuer: OU=Trustis FPS Root CA,O=Trustis Limited,C=GB
-# Serial Number:1b:1f:ad:b6:20:f9:24:d3:36:6b:f7:c7:f1:8c:a0:59
-# Subject: OU=Trustis FPS Root CA,O=Trustis Limited,C=GB
-# Not Valid Before: Tue Dec 23 12:14:06 2003
-# Not Valid After : Sun Jan 21 11:36:54 2024
-# Fingerprint (MD5): 30:C9:E7:1E:6B:E6:14:EB:65:B2:16:69:20:31:67:4D
-# Fingerprint (SHA1): 3B:C0:38:0B:33:C3:F6:A6:0C:86:15:22:93:D9:DF:F5:4B:81:C0:04
+# Issuer: CN=Buypass Class 2 Root CA,O=Buypass AS-983163327,C=NO
+# Serial Number: 2 (0x2)
+# Subject: CN=Buypass Class 2 Root CA,O=Buypass AS-983163327,C=NO
+# Not Valid Before: Tue Oct 26 08:38:03 2010
+# Not Valid After : Fri Oct 26 08:38:03 2040
+# Fingerprint (MD5): 46:A7:D2:FE:45:FB:64:5A:A8:59:90:9B:78:44:9B:29
+# Fingerprint (SHA1): 49:0A:75:74:DE:87:0A:47:FE:58:EE:F6:C7:6B:EB:C6:0B:12:40:99
CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE
CKA_TOKEN CK_BBOOL CK_TRUE
CKA_PRIVATE CK_BBOOL CK_FALSE
CKA_MODIFIABLE CK_BBOOL CK_FALSE
-CKA_LABEL UTF8 "Trustis FPS Root CA"
+CKA_LABEL UTF8 "Buypass Class 2 Root CA"
CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509
CKA_SUBJECT MULTILINE_OCTAL
-\060\105\061\013\060\011\006\003\125\004\006\023\002\107\102\061
-\030\060\026\006\003\125\004\012\023\017\124\162\165\163\164\151
-\163\040\114\151\155\151\164\145\144\061\034\060\032\006\003\125
-\004\013\023\023\124\162\165\163\164\151\163\040\106\120\123\040
-\122\157\157\164\040\103\101
-END
-CKA_ID UTF8 "0"
-CKA_ISSUER MULTILINE_OCTAL
-\060\105\061\013\060\011\006\003\125\004\006\023\002\107\102\061
-\030\060\026\006\003\125\004\012\023\017\124\162\165\163\164\151
-\163\040\114\151\155\151\164\145\144\061\034\060\032\006\003\125
-\004\013\023\023\124\162\165\163\164\151\163\040\106\120\123\040
-\122\157\157\164\040\103\101
-END
-CKA_SERIAL_NUMBER MULTILINE_OCTAL
-\002\020\033\037\255\266\040\371\044\323\066\153\367\307\361\214
-\240\131
-END
-CKA_VALUE MULTILINE_OCTAL
-\060\202\003\147\060\202\002\117\240\003\002\001\002\002\020\033
-\037\255\266\040\371\044\323\066\153\367\307\361\214\240\131\060
-\015\006\011\052\206\110\206\367\015\001\001\005\005\000\060\105
-\061\013\060\011\006\003\125\004\006\023\002\107\102\061\030\060
-\026\006\003\125\004\012\023\017\124\162\165\163\164\151\163\040
-\114\151\155\151\164\145\144\061\034\060\032\006\003\125\004\013
-\023\023\124\162\165\163\164\151\163\040\106\120\123\040\122\157
-\157\164\040\103\101\060\036\027\015\060\063\061\062\062\063\061
-\062\061\064\060\066\132\027\015\062\064\060\061\062\061\061\061
-\063\066\065\064\132\060\105\061\013\060\011\006\003\125\004\006
-\023\002\107\102\061\030\060\026\006\003\125\004\012\023\017\124
-\162\165\163\164\151\163\040\114\151\155\151\164\145\144\061\034
-\060\032\006\003\125\004\013\023\023\124\162\165\163\164\151\163
-\040\106\120\123\040\122\157\157\164\040\103\101\060\202\001\042
-\060\015\006\011\052\206\110\206\367\015\001\001\001\005\000\003
-\202\001\017\000\060\202\001\012\002\202\001\001\000\305\120\173
-\236\073\065\320\337\304\214\315\216\233\355\243\300\066\231\364
-\102\352\247\076\200\203\017\246\247\131\207\311\220\105\103\176
-\000\352\206\171\052\003\275\075\067\231\211\146\267\345\212\126
-\206\223\234\150\113\150\004\214\223\223\002\076\060\322\067\072
-\042\141\211\034\205\116\175\217\325\257\173\065\366\176\050\107
-\211\061\334\016\171\144\037\231\322\133\272\376\177\140\277\255
-\353\347\074\070\051\152\057\345\221\013\125\377\354\157\130\325
-\055\311\336\114\146\161\217\014\327\004\332\007\346\036\030\343
-\275\051\002\250\372\034\341\133\271\203\250\101\110\274\032\161
-\215\347\142\345\055\262\353\337\174\317\333\253\132\312\061\361
-\114\042\363\005\023\367\202\371\163\171\014\276\327\113\034\300
-\321\025\074\223\101\144\321\346\276\043\027\042\000\211\136\037
-\153\245\254\156\247\113\214\355\243\162\346\257\143\115\057\205
-\322\024\065\232\056\116\214\352\062\230\050\206\241\221\011\101
-\072\264\341\343\362\372\360\311\012\242\101\335\251\343\003\307
-\210\025\073\034\324\032\224\327\237\144\131\022\155\002\003\001
-\000\001\243\123\060\121\060\017\006\003\125\035\023\001\001\377
-\004\005\060\003\001\001\377\060\037\006\003\125\035\043\004\030
-\060\026\200\024\272\372\161\045\171\213\127\101\045\041\206\013
-\161\353\262\144\016\213\041\147\060\035\006\003\125\035\016\004
-\026\004\024\272\372\161\045\171\213\127\101\045\041\206\013\161
-\353\262\144\016\213\041\147\060\015\006\011\052\206\110\206\367
-\015\001\001\005\005\000\003\202\001\001\000\176\130\377\375\065
-\031\175\234\030\117\236\260\053\274\216\214\024\377\054\240\332
-\107\133\303\357\201\055\257\005\352\164\110\133\363\076\116\007
-\307\155\305\263\223\317\042\065\134\266\077\165\047\137\011\226
-\315\240\376\276\100\014\134\022\125\370\223\202\312\051\351\136
-\077\126\127\213\070\066\367\105\032\114\050\315\236\101\270\355
-\126\114\204\244\100\310\270\260\245\053\151\160\004\152\303\370
-\324\022\062\371\016\303\261\334\062\204\104\054\157\313\106\017
-\352\146\101\017\117\361\130\245\246\015\015\017\141\336\245\236
-\135\175\145\241\074\027\347\250\125\116\357\240\307\355\306\104
-\177\124\365\243\340\217\360\174\125\042\217\051\266\201\243\341
-\155\116\054\033\200\147\354\255\040\237\014\142\141\325\227\377
-\103\355\055\301\332\135\051\052\205\077\254\145\356\206\017\005
-\215\220\137\337\356\237\364\277\356\035\373\230\344\177\220\053
-\204\170\020\016\154\111\123\357\025\133\145\106\112\135\257\272
-\373\072\162\035\315\366\045\210\036\227\314\041\234\051\001\015
-\145\353\127\331\363\127\226\273\110\315\201
-END
-CKA_NSS_MOZILLA_CA_POLICY CK_BBOOL CK_TRUE
-CKA_NSS_SERVER_DISTRUST_AFTER MULTILINE_OCTAL
-\062\060\060\067\060\061\060\060\060\060\060\060\132
-END
-CKA_NSS_EMAIL_DISTRUST_AFTER CK_BBOOL CK_FALSE
-
-# Trust for "Trustis FPS Root CA"
-# Issuer: OU=Trustis FPS Root CA,O=Trustis Limited,C=GB
-# Serial Number:1b:1f:ad:b6:20:f9:24:d3:36:6b:f7:c7:f1:8c:a0:59
-# Subject: OU=Trustis FPS Root CA,O=Trustis Limited,C=GB
-# Not Valid Before: Tue Dec 23 12:14:06 2003
-# Not Valid After : Sun Jan 21 11:36:54 2024
-# Fingerprint (MD5): 30:C9:E7:1E:6B:E6:14:EB:65:B2:16:69:20:31:67:4D
-# Fingerprint (SHA1): 3B:C0:38:0B:33:C3:F6:A6:0C:86:15:22:93:D9:DF:F5:4B:81:C0:04
-CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST
-CKA_TOKEN CK_BBOOL CK_TRUE
-CKA_PRIVATE CK_BBOOL CK_FALSE
-CKA_MODIFIABLE CK_BBOOL CK_FALSE
-CKA_LABEL UTF8 "Trustis FPS Root CA"
-CKA_CERT_SHA1_HASH MULTILINE_OCTAL
-\073\300\070\013\063\303\366\246\014\206\025\042\223\331\337\365
-\113\201\300\004
-END
-CKA_CERT_MD5_HASH MULTILINE_OCTAL
-\060\311\347\036\153\346\024\353\145\262\026\151\040\061\147\115
-END
-CKA_ISSUER MULTILINE_OCTAL
-\060\105\061\013\060\011\006\003\125\004\006\023\002\107\102\061
-\030\060\026\006\003\125\004\012\023\017\124\162\165\163\164\151
-\163\040\114\151\155\151\164\145\144\061\034\060\032\006\003\125
-\004\013\023\023\124\162\165\163\164\151\163\040\106\120\123\040
-\122\157\157\164\040\103\101
-END
-CKA_SERIAL_NUMBER MULTILINE_OCTAL
-\002\020\033\037\255\266\040\371\044\323\066\153\367\307\361\214
-\240\131
-END
-CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR
-CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR
-CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_MUST_VERIFY_TRUST
-CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE
-
-#
-# Certificate "Buypass Class 2 Root CA"
-#
-# Issuer: CN=Buypass Class 2 Root CA,O=Buypass AS-983163327,C=NO
-# Serial Number: 2 (0x2)
-# Subject: CN=Buypass Class 2 Root CA,O=Buypass AS-983163327,C=NO
-# Not Valid Before: Tue Oct 26 08:38:03 2010
-# Not Valid After : Fri Oct 26 08:38:03 2040
-# Fingerprint (MD5): 46:A7:D2:FE:45:FB:64:5A:A8:59:90:9B:78:44:9B:29
-# Fingerprint (SHA1): 49:0A:75:74:DE:87:0A:47:FE:58:EE:F6:C7:6B:EB:C6:0B:12:40:99
-CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE
-CKA_TOKEN CK_BBOOL CK_TRUE
-CKA_PRIVATE CK_BBOOL CK_FALSE
-CKA_MODIFIABLE CK_BBOOL CK_FALSE
-CKA_LABEL UTF8 "Buypass Class 2 Root CA"
-CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509
-CKA_SUBJECT MULTILINE_OCTAL
-\060\116\061\013\060\011\006\003\125\004\006\023\002\116\117\061
-\035\060\033\006\003\125\004\012\014\024\102\165\171\160\141\163
-\163\040\101\123\055\071\070\063\061\066\063\063\062\067\061\040
-\060\036\006\003\125\004\003\014\027\102\165\171\160\141\163\163
-\040\103\154\141\163\163\040\062\040\122\157\157\164\040\103\101
+\060\116\061\013\060\011\006\003\125\004\006\023\002\116\117\061
+\035\060\033\006\003\125\004\012\014\024\102\165\171\160\141\163
+\163\040\101\123\055\071\070\063\061\066\063\063\062\067\061\040
+\060\036\006\003\125\004\003\014\027\102\165\171\160\141\163\163
+\040\103\154\141\163\163\040\062\040\122\157\157\164\040\103\101
END
CKA_ID UTF8 "0"
CKA_ISSUER MULTILINE_OCTAL
CKA_SERIAL_NUMBER MULTILINE_OCTAL
\002\004\000\230\242\071
END
-CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR
+CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_MUST_VERIFY_TRUST
CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR
CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_MUST_VERIFY_TRUST
CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE
END
CKA_NSS_MOZILLA_CA_POLICY CK_BBOOL CK_TRUE
CKA_NSS_SERVER_DISTRUST_AFTER CK_BBOOL CK_FALSE
-CKA_NSS_EMAIL_DISTRUST_AFTER CK_BBOOL CK_FALSE
+# For Email Distrust After: Wed Aug 31 00:00:00 2022
+CKA_NSS_EMAIL_DISTRUST_AFTER MULTILINE_OCTAL
+\062\062\060\070\063\061\060\060\060\060\060\060\132
+END
# Trust for "Symantec Class 1 Public Primary Certification Authority - G6"
# Issuer: CN=Symantec Class 1 Public Primary Certification Authority - G6,OU=Symantec Trust Network,O=Symantec Corporation,C=US
END
CKA_NSS_MOZILLA_CA_POLICY CK_BBOOL CK_TRUE
CKA_NSS_SERVER_DISTRUST_AFTER CK_BBOOL CK_FALSE
-CKA_NSS_EMAIL_DISTRUST_AFTER CK_BBOOL CK_FALSE
+# For Email Distrust After: Wed Aug 31 00:00:00 2022
+CKA_NSS_EMAIL_DISTRUST_AFTER MULTILINE_OCTAL
+\062\062\060\070\063\061\060\060\060\060\060\060\132
+END
# Trust for "Symantec Class 2 Public Primary Certification Authority - G6"
# Issuer: CN=Symantec Class 2 Public Primary Certification Authority - G6,OU=Symantec Trust Network,O=Symantec Corporation,C=US
CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_MUST_VERIFY_TRUST
CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_MUST_VERIFY_TRUST
CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE
+
+#
+# Certificate "AC RAIZ FNMT-RCM SERVIDORES SEGUROS"
+#
+# Issuer: CN=AC RAIZ FNMT-RCM SERVIDORES SEGUROS,OID.2.5.4.97=VATES-Q2826004J,OU=Ceres,O=FNMT-RCM,C=ES
+# Serial Number:62:f6:32:6c:e5:c4:e3:68:5c:1b:62:dd:9c:2e:9d:95
+# Subject: CN=AC RAIZ FNMT-RCM SERVIDORES SEGUROS,OID.2.5.4.97=VATES-Q2826004J,OU=Ceres,O=FNMT-RCM,C=ES
+# Not Valid Before: Thu Dec 20 09:37:33 2018
+# Not Valid After : Sun Dec 20 09:37:33 2043
+# Fingerprint (SHA-256): 55:41:53:B1:3D:2C:F9:DD:B7:53:BF:BE:1A:4E:0A:E0:8D:0A:A4:18:70:58:FE:60:A2:B8:62:B2:E4:B8:7B:CB
+# Fingerprint (SHA1): 62:FF:D9:9E:C0:65:0D:03:CE:75:93:D2:ED:3F:2D:32:C9:E3:E5:4A
+CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE
+CKA_TOKEN CK_BBOOL CK_TRUE
+CKA_PRIVATE CK_BBOOL CK_FALSE
+CKA_MODIFIABLE CK_BBOOL CK_FALSE
+CKA_LABEL UTF8 "AC RAIZ FNMT-RCM SERVIDORES SEGUROS"
+CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509
+CKA_SUBJECT MULTILINE_OCTAL
+\060\170\061\013\060\011\006\003\125\004\006\023\002\105\123\061
+\021\060\017\006\003\125\004\012\014\010\106\116\115\124\055\122
+\103\115\061\016\060\014\006\003\125\004\013\014\005\103\145\162
+\145\163\061\030\060\026\006\003\125\004\141\014\017\126\101\124
+\105\123\055\121\062\070\062\066\060\060\064\112\061\054\060\052
+\006\003\125\004\003\014\043\101\103\040\122\101\111\132\040\106
+\116\115\124\055\122\103\115\040\123\105\122\126\111\104\117\122
+\105\123\040\123\105\107\125\122\117\123
+END
+CKA_ID UTF8 "0"
+CKA_ISSUER MULTILINE_OCTAL
+\060\170\061\013\060\011\006\003\125\004\006\023\002\105\123\061
+\021\060\017\006\003\125\004\012\014\010\106\116\115\124\055\122
+\103\115\061\016\060\014\006\003\125\004\013\014\005\103\145\162
+\145\163\061\030\060\026\006\003\125\004\141\014\017\126\101\124
+\105\123\055\121\062\070\062\066\060\060\064\112\061\054\060\052
+\006\003\125\004\003\014\043\101\103\040\122\101\111\132\040\106
+\116\115\124\055\122\103\115\040\123\105\122\126\111\104\117\122
+\105\123\040\123\105\107\125\122\117\123
+END
+CKA_SERIAL_NUMBER MULTILINE_OCTAL
+\002\020\142\366\062\154\345\304\343\150\134\033\142\335\234\056
+\235\225
+END
+CKA_VALUE MULTILINE_OCTAL
+\060\202\002\156\060\202\001\363\240\003\002\001\002\002\020\142
+\366\062\154\345\304\343\150\134\033\142\335\234\056\235\225\060
+\012\006\010\052\206\110\316\075\004\003\003\060\170\061\013\060
+\011\006\003\125\004\006\023\002\105\123\061\021\060\017\006\003
+\125\004\012\014\010\106\116\115\124\055\122\103\115\061\016\060
+\014\006\003\125\004\013\014\005\103\145\162\145\163\061\030\060
+\026\006\003\125\004\141\014\017\126\101\124\105\123\055\121\062
+\070\062\066\060\060\064\112\061\054\060\052\006\003\125\004\003
+\014\043\101\103\040\122\101\111\132\040\106\116\115\124\055\122
+\103\115\040\123\105\122\126\111\104\117\122\105\123\040\123\105
+\107\125\122\117\123\060\036\027\015\061\070\061\062\062\060\060
+\071\063\067\063\063\132\027\015\064\063\061\062\062\060\060\071
+\063\067\063\063\132\060\170\061\013\060\011\006\003\125\004\006
+\023\002\105\123\061\021\060\017\006\003\125\004\012\014\010\106
+\116\115\124\055\122\103\115\061\016\060\014\006\003\125\004\013
+\014\005\103\145\162\145\163\061\030\060\026\006\003\125\004\141
+\014\017\126\101\124\105\123\055\121\062\070\062\066\060\060\064
+\112\061\054\060\052\006\003\125\004\003\014\043\101\103\040\122
+\101\111\132\040\106\116\115\124\055\122\103\115\040\123\105\122
+\126\111\104\117\122\105\123\040\123\105\107\125\122\117\123\060
+\166\060\020\006\007\052\206\110\316\075\002\001\006\005\053\201
+\004\000\042\003\142\000\004\366\272\127\123\310\312\253\337\066
+\112\122\041\344\227\322\203\147\236\360\145\121\320\136\207\307
+\107\261\131\362\127\107\233\000\002\223\104\027\151\333\102\307
+\261\262\072\030\016\264\135\214\263\146\135\241\064\371\066\054
+\111\333\363\106\374\263\104\151\104\023\146\375\327\305\375\257
+\066\115\316\003\115\007\161\317\257\152\005\322\242\103\132\012
+\122\157\001\003\116\216\213\243\102\060\100\060\017\006\003\125
+\035\023\001\001\377\004\005\060\003\001\001\377\060\016\006\003
+\125\035\017\001\001\377\004\004\003\002\001\006\060\035\006\003
+\125\035\016\004\026\004\024\001\271\057\357\277\021\206\140\362
+\117\320\101\156\253\163\037\347\322\156\111\060\012\006\010\052
+\206\110\316\075\004\003\003\003\151\000\060\146\002\061\000\256
+\112\343\053\100\303\164\021\362\225\255\026\043\336\116\014\032
+\346\135\245\044\136\153\104\173\374\070\342\117\313\234\105\027
+\021\114\024\047\046\125\071\165\112\003\314\023\220\237\222\002
+\061\000\372\112\154\140\210\163\363\356\270\230\142\251\316\053
+\302\331\212\246\160\061\035\257\260\224\114\353\117\306\343\321
+\363\142\247\074\377\223\056\007\134\111\001\147\151\022\002\162
+\277\347
+END
+CKA_NSS_MOZILLA_CA_POLICY CK_BBOOL CK_TRUE
+CKA_NSS_SERVER_DISTRUST_AFTER CK_BBOOL CK_FALSE
+CKA_NSS_EMAIL_DISTRUST_AFTER CK_BBOOL CK_FALSE
+
+# Trust for "AC RAIZ FNMT-RCM SERVIDORES SEGUROS"
+# Issuer: CN=AC RAIZ FNMT-RCM SERVIDORES SEGUROS,OID.2.5.4.97=VATES-Q2826004J,OU=Ceres,O=FNMT-RCM,C=ES
+# Serial Number:62:f6:32:6c:e5:c4:e3:68:5c:1b:62:dd:9c:2e:9d:95
+# Subject: CN=AC RAIZ FNMT-RCM SERVIDORES SEGUROS,OID.2.5.4.97=VATES-Q2826004J,OU=Ceres,O=FNMT-RCM,C=ES
+# Not Valid Before: Thu Dec 20 09:37:33 2018
+# Not Valid After : Sun Dec 20 09:37:33 2043
+# Fingerprint (SHA-256): 55:41:53:B1:3D:2C:F9:DD:B7:53:BF:BE:1A:4E:0A:E0:8D:0A:A4:18:70:58:FE:60:A2:B8:62:B2:E4:B8:7B:CB
+# Fingerprint (SHA1): 62:FF:D9:9E:C0:65:0D:03:CE:75:93:D2:ED:3F:2D:32:C9:E3:E5:4A
+CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST
+CKA_TOKEN CK_BBOOL CK_TRUE
+CKA_PRIVATE CK_BBOOL CK_FALSE
+CKA_MODIFIABLE CK_BBOOL CK_FALSE
+CKA_LABEL UTF8 "AC RAIZ FNMT-RCM SERVIDORES SEGUROS"
+CKA_CERT_SHA1_HASH MULTILINE_OCTAL
+\142\377\331\236\300\145\015\003\316\165\223\322\355\077\055\062
+\311\343\345\112
+END
+CKA_CERT_MD5_HASH MULTILINE_OCTAL
+\031\066\234\122\003\057\322\321\273\043\314\335\036\022\125\273
+END
+CKA_ISSUER MULTILINE_OCTAL
+\060\170\061\013\060\011\006\003\125\004\006\023\002\105\123\061
+\021\060\017\006\003\125\004\012\014\010\106\116\115\124\055\122
+\103\115\061\016\060\014\006\003\125\004\013\014\005\103\145\162
+\145\163\061\030\060\026\006\003\125\004\141\014\017\126\101\124
+\105\123\055\121\062\070\062\066\060\060\064\112\061\054\060\052
+\006\003\125\004\003\014\043\101\103\040\122\101\111\132\040\106
+\116\115\124\055\122\103\115\040\123\105\122\126\111\104\117\122
+\105\123\040\123\105\107\125\122\117\123
+END
+CKA_SERIAL_NUMBER MULTILINE_OCTAL
+\002\020\142\366\062\154\345\304\343\150\134\033\142\335\234\056
+\235\225
+END
+CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR
+CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_MUST_VERIFY_TRUST
+CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_MUST_VERIFY_TRUST
+CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE
+
+#
+# Certificate "GlobalSign Secure Mail Root R45"
+#
+# Issuer: CN=GlobalSign Secure Mail Root R45,O=GlobalSign nv-sa,C=BE
+# Serial Number:76:53:fe:a8:4c:50:ab:9f:8d:32:b5:1d:03:8f:57:dc
+# Subject: CN=GlobalSign Secure Mail Root R45,O=GlobalSign nv-sa,C=BE
+# Not Valid Before: Wed Mar 18 00:00:00 2020
+# Not Valid After : Sat Mar 18 00:00:00 2045
+# Fingerprint (SHA-256): 31:9A:F0:A7:72:9E:6F:89:26:9C:13:1E:A6:A3:A1:6F:CD:86:38:9F:DC:AB:3C:47:A4:A6:75:C1:61:A3:F9:74
+# Fingerprint (SHA1): 76:18:D1:F3:80:24:3D:52:40:C6:11:6A:AD:57:77:09:7D:81:30:A0
+CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE
+CKA_TOKEN CK_BBOOL CK_TRUE
+CKA_PRIVATE CK_BBOOL CK_FALSE
+CKA_MODIFIABLE CK_BBOOL CK_FALSE
+CKA_LABEL UTF8 "GlobalSign Secure Mail Root R45"
+CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509
+CKA_SUBJECT MULTILINE_OCTAL
+\060\122\061\013\060\011\006\003\125\004\006\023\002\102\105\061
+\031\060\027\006\003\125\004\012\023\020\107\154\157\142\141\154
+\123\151\147\156\040\156\166\055\163\141\061\050\060\046\006\003
+\125\004\003\023\037\107\154\157\142\141\154\123\151\147\156\040
+\123\145\143\165\162\145\040\115\141\151\154\040\122\157\157\164
+\040\122\064\065
+END
+CKA_ID UTF8 "0"
+CKA_ISSUER MULTILINE_OCTAL
+\060\122\061\013\060\011\006\003\125\004\006\023\002\102\105\061
+\031\060\027\006\003\125\004\012\023\020\107\154\157\142\141\154
+\123\151\147\156\040\156\166\055\163\141\061\050\060\046\006\003
+\125\004\003\023\037\107\154\157\142\141\154\123\151\147\156\040
+\123\145\143\165\162\145\040\115\141\151\154\040\122\157\157\164
+\040\122\064\065
+END
+CKA_SERIAL_NUMBER MULTILINE_OCTAL
+\002\020\166\123\376\250\114\120\253\237\215\062\265\035\003\217
+\127\334
+END
+CKA_VALUE MULTILINE_OCTAL
+\060\202\005\160\060\202\003\130\240\003\002\001\002\002\020\166
+\123\376\250\114\120\253\237\215\062\265\035\003\217\127\334\060
+\015\006\011\052\206\110\206\367\015\001\001\014\005\000\060\122
+\061\013\060\011\006\003\125\004\006\023\002\102\105\061\031\060
+\027\006\003\125\004\012\023\020\107\154\157\142\141\154\123\151
+\147\156\040\156\166\055\163\141\061\050\060\046\006\003\125\004
+\003\023\037\107\154\157\142\141\154\123\151\147\156\040\123\145
+\143\165\162\145\040\115\141\151\154\040\122\157\157\164\040\122
+\064\065\060\036\027\015\062\060\060\063\061\070\060\060\060\060
+\060\060\132\027\015\064\065\060\063\061\070\060\060\060\060\060
+\060\132\060\122\061\013\060\011\006\003\125\004\006\023\002\102
+\105\061\031\060\027\006\003\125\004\012\023\020\107\154\157\142
+\141\154\123\151\147\156\040\156\166\055\163\141\061\050\060\046
+\006\003\125\004\003\023\037\107\154\157\142\141\154\123\151\147
+\156\040\123\145\143\165\162\145\040\115\141\151\154\040\122\157
+\157\164\040\122\064\065\060\202\002\042\060\015\006\011\052\206
+\110\206\367\015\001\001\001\005\000\003\202\002\017\000\060\202
+\002\012\002\202\002\001\000\334\171\314\155\006\371\155\273\340
+\126\004\154\177\340\165\314\055\005\111\350\113\334\124\354\133
+\167\225\162\277\177\142\235\205\251\212\044\120\137\123\345\333
+\164\157\244\051\133\023\052\011\255\232\305\057\302\367\166\073
+\241\105\106\252\103\346\044\376\053\260\157\062\160\031\106\132
+\171\046\057\374\075\175\137\144\313\127\314\141\141\250\331\225
+\156\343\225\240\156\177\107\022\030\326\357\003\311\373\212\372
+\232\275\202\025\251\125\167\113\021\117\131\340\153\303\161\363
+\014\330\124\325\201\150\076\023\271\025\056\207\212\074\104\047
+\066\142\044\156\370\054\005\162\060\141\275\102\221\043\304\235
+\045\247\331\124\232\024\243\061\255\200\171\014\247\143\154\230
+\243\254\127\107\063\037\145\226\341\320\322\065\332\371\161\367
+\241\246\045\265\101\135\337\076\140\330\321\366\237\245\362\270
+\314\023\252\217\371\262\156\341\203\055\223\335\076\205\032\335
+\350\261\134\046\001\313\111\205\374\374\322\324\177\205\142\206
+\164\371\313\354\065\042\242\014\060\217\073\253\171\353\126\362
+\372\102\363\355\371\037\105\211\100\051\255\352\222\164\352\122
+\375\126\264\053\332\242\355\165\302\156\253\316\122\220\113\366
+\336\360\111\217\232\110\324\210\031\155\105\346\314\214\271\335
+\144\140\140\002\100\370\271\317\274\130\353\075\205\271\306\012
+\323\234\007\146\217\307\030\071\043\106\341\074\036\243\057\120
+\141\222\013\075\053\154\361\243\107\070\127\221\253\015\217\306
+\235\115\004\322\046\122\134\345\245\375\052\055\026\052\001\151
+\347\251\175\341\066\267\261\052\305\331\261\215\275\271\213\316
+\314\213\241\076\013\110\315\120\225\064\304\330\010\131\330\153
+\046\364\276\365\324\042\027\000\127\311\256\233\004\060\063\237
+\013\373\337\126\242\311\156\124\166\332\261\227\142\047\131\017
+\021\212\042\033\144\226\077\250\361\267\044\112\215\074\123\174
+\155\203\166\075\262\046\110\163\365\104\026\001\055\011\052\216
+\026\226\120\320\163\006\135\273\042\110\202\114\012\106\132\077
+\200\377\134\362\362\232\254\054\010\340\326\352\360\022\070\201
+\117\246\020\355\106\253\314\026\234\013\317\144\246\231\002\205
+\104\147\106\255\375\115\347\002\003\001\000\001\243\102\060\100
+\060\016\006\003\125\035\017\001\001\377\004\004\003\002\001\206
+\060\017\006\003\125\035\023\001\001\377\004\005\060\003\001\001
+\377\060\035\006\003\125\035\016\004\026\004\024\240\223\025\050
+\156\356\217\010\262\065\306\236\142\171\164\247\261\016\053\173
+\060\015\006\011\052\206\110\206\367\015\001\001\014\005\000\003
+\202\002\001\000\105\012\370\321\134\254\142\201\320\004\327\266
+\377\127\121\211\013\014\313\336\044\145\067\373\253\236\355\146
+\364\352\014\031\151\211\270\031\261\060\126\264\331\366\367\276
+\306\256\227\313\105\366\021\214\072\060\144\114\301\237\131\300
+\106\102\010\006\107\144\027\170\340\225\007\006\326\214\242\254
+\251\331\077\323\173\126\117\374\304\207\050\337\266\053\026\043
+\300\237\037\133\343\326\104\136\042\117\043\004\214\065\026\265
+\171\007\206\134\057\227\342\366\010\144\246\334\333\250\212\343
+\244\173\167\015\321\051\223\050\040\264\123\243\113\116\137\336
+\301\366\165\043\374\037\074\170\117\160\061\170\057\242\065\124
+\161\004\254\310\304\155\303\366\221\261\376\315\356\104\156\201
+\366\100\305\076\052\001\277\253\114\261\003\077\015\021\344\017
+\322\044\343\042\210\233\237\137\107\075\121\111\340\011\067\176
+\027\041\061\166\267\147\161\110\050\113\045\327\020\350\237\141
+\131\026\305\076\062\116\037\014\316\243\314\017\344\307\021\007
+\042\057\070\010\335\133\227\353\102\154\131\232\232\356\172\320
+\235\337\305\333\011\103\056\012\252\031\075\153\350\152\060\172
+\127\346\277\263\152\071\251\217\343\361\117\145\150\266\275\237
+\050\217\241\026\132\011\120\072\062\056\035\057\104\021\102\246
+\000\346\061\230\377\055\241\017\346\244\140\126\317\171\327\262
+\116\327\260\372\156\014\127\043\307\316\037\245\261\114\155\031
+\111\236\016\177\160\217\161\077\130\050\237\165\335\141\340\072
+\267\071\266\356\227\324\065\121\373\213\111\140\310\074\146\256
+\227\356\215\046\131\127\273\170\360\172\120\060\011\260\140\252
+\237\116\334\311\076\036\072\334\142\223\063\260\072\124\164\157
+\054\061\105\321\153\021\062\152\150\166\366\075\366\152\023\136
+\044\230\347\352\035\232\317\170\202\007\140\367\115\020\323\201
+\232\105\215\236\257\233\334\200\307\103\262\225\150\244\303\016
+\350\012\107\025\277\124\063\334\001\347\325\246\036\163\330\172
+\262\277\057\255\343\125\060\236\337\016\101\274\340\021\365\241
+\014\250\042\341\343\000\243\116\160\174\222\343\004\321\172\102
+\212\165\220\131\343\233\321\114\242\144\275\163\171\233\157\362
+\263\301\366\074
+END
+CKA_NSS_MOZILLA_CA_POLICY CK_BBOOL CK_TRUE
+CKA_NSS_SERVER_DISTRUST_AFTER CK_BBOOL CK_FALSE
+CKA_NSS_EMAIL_DISTRUST_AFTER CK_BBOOL CK_FALSE
+
+# Trust for "GlobalSign Secure Mail Root R45"
+# Issuer: CN=GlobalSign Secure Mail Root R45,O=GlobalSign nv-sa,C=BE
+# Serial Number:76:53:fe:a8:4c:50:ab:9f:8d:32:b5:1d:03:8f:57:dc
+# Subject: CN=GlobalSign Secure Mail Root R45,O=GlobalSign nv-sa,C=BE
+# Not Valid Before: Wed Mar 18 00:00:00 2020
+# Not Valid After : Sat Mar 18 00:00:00 2045
+# Fingerprint (SHA-256): 31:9A:F0:A7:72:9E:6F:89:26:9C:13:1E:A6:A3:A1:6F:CD:86:38:9F:DC:AB:3C:47:A4:A6:75:C1:61:A3:F9:74
+# Fingerprint (SHA1): 76:18:D1:F3:80:24:3D:52:40:C6:11:6A:AD:57:77:09:7D:81:30:A0
+CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST
+CKA_TOKEN CK_BBOOL CK_TRUE
+CKA_PRIVATE CK_BBOOL CK_FALSE
+CKA_MODIFIABLE CK_BBOOL CK_FALSE
+CKA_LABEL UTF8 "GlobalSign Secure Mail Root R45"
+CKA_CERT_SHA1_HASH MULTILINE_OCTAL
+\166\030\321\363\200\044\075\122\100\306\021\152\255\127\167\011
+\175\201\060\240
+END
+CKA_CERT_MD5_HASH MULTILINE_OCTAL
+\223\304\173\263\016\124\107\034\103\054\213\276\160\205\142\051
+END
+CKA_ISSUER MULTILINE_OCTAL
+\060\122\061\013\060\011\006\003\125\004\006\023\002\102\105\061
+\031\060\027\006\003\125\004\012\023\020\107\154\157\142\141\154
+\123\151\147\156\040\156\166\055\163\141\061\050\060\046\006\003
+\125\004\003\023\037\107\154\157\142\141\154\123\151\147\156\040
+\123\145\143\165\162\145\040\115\141\151\154\040\122\157\157\164
+\040\122\064\065
+END
+CKA_SERIAL_NUMBER MULTILINE_OCTAL
+\002\020\166\123\376\250\114\120\253\237\215\062\265\035\003\217
+\127\334
+END
+CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_MUST_VERIFY_TRUST
+CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR
+CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_MUST_VERIFY_TRUST
+CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE
+
+#
+# Certificate "GlobalSign Secure Mail Root E45"
+#
+# Issuer: CN=GlobalSign Secure Mail Root E45,O=GlobalSign nv-sa,C=BE
+# Serial Number:76:53:fe:aa:27:1d:95:46:5d:d6:f1:9e:e5:b8:90:0a
+# Subject: CN=GlobalSign Secure Mail Root E45,O=GlobalSign nv-sa,C=BE
+# Not Valid Before: Wed Mar 18 00:00:00 2020
+# Not Valid After : Sat Mar 18 00:00:00 2045
+# Fingerprint (SHA-256): 5C:BF:6F:B8:1F:D4:17:EA:41:28:CD:6F:81:72:A3:C9:40:20:94:F7:4A:B2:ED:3A:06:B4:40:5D:04:F3:0B:19
+# Fingerprint (SHA1): 18:2E:1F:32:4F:89:DF:BE:FE:88:89:F0:93:C2:C4:A0:2B:67:75:21
+CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE
+CKA_TOKEN CK_BBOOL CK_TRUE
+CKA_PRIVATE CK_BBOOL CK_FALSE
+CKA_MODIFIABLE CK_BBOOL CK_FALSE
+CKA_LABEL UTF8 "GlobalSign Secure Mail Root E45"
+CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509
+CKA_SUBJECT MULTILINE_OCTAL
+\060\122\061\013\060\011\006\003\125\004\006\023\002\102\105\061
+\031\060\027\006\003\125\004\012\023\020\107\154\157\142\141\154
+\123\151\147\156\040\156\166\055\163\141\061\050\060\046\006\003
+\125\004\003\023\037\107\154\157\142\141\154\123\151\147\156\040
+\123\145\143\165\162\145\040\115\141\151\154\040\122\157\157\164
+\040\105\064\065
+END
+CKA_ID UTF8 "0"
+CKA_ISSUER MULTILINE_OCTAL
+\060\122\061\013\060\011\006\003\125\004\006\023\002\102\105\061
+\031\060\027\006\003\125\004\012\023\020\107\154\157\142\141\154
+\123\151\147\156\040\156\166\055\163\141\061\050\060\046\006\003
+\125\004\003\023\037\107\154\157\142\141\154\123\151\147\156\040
+\123\145\143\165\162\145\040\115\141\151\154\040\122\157\157\164
+\040\105\064\065
+END
+CKA_SERIAL_NUMBER MULTILINE_OCTAL
+\002\020\166\123\376\252\047\035\225\106\135\326\361\236\345\270
+\220\012
+END
+CKA_VALUE MULTILINE_OCTAL
+\060\202\002\041\060\202\001\247\240\003\002\001\002\002\020\166
+\123\376\252\047\035\225\106\135\326\361\236\345\270\220\012\060
+\012\006\010\052\206\110\316\075\004\003\003\060\122\061\013\060
+\011\006\003\125\004\006\023\002\102\105\061\031\060\027\006\003
+\125\004\012\023\020\107\154\157\142\141\154\123\151\147\156\040
+\156\166\055\163\141\061\050\060\046\006\003\125\004\003\023\037
+\107\154\157\142\141\154\123\151\147\156\040\123\145\143\165\162
+\145\040\115\141\151\154\040\122\157\157\164\040\105\064\065\060
+\036\027\015\062\060\060\063\061\070\060\060\060\060\060\060\132
+\027\015\064\065\060\063\061\070\060\060\060\060\060\060\132\060
+\122\061\013\060\011\006\003\125\004\006\023\002\102\105\061\031
+\060\027\006\003\125\004\012\023\020\107\154\157\142\141\154\123
+\151\147\156\040\156\166\055\163\141\061\050\060\046\006\003\125
+\004\003\023\037\107\154\157\142\141\154\123\151\147\156\040\123
+\145\143\165\162\145\040\115\141\151\154\040\122\157\157\164\040
+\105\064\065\060\166\060\020\006\007\052\206\110\316\075\002\001
+\006\005\053\201\004\000\042\003\142\000\004\371\171\213\201\107
+\067\211\226\077\105\111\120\177\032\046\013\223\062\176\056\300
+\300\247\010\232\303\156\217\233\076\013\042\354\067\123\267\157
+\212\260\274\047\067\113\155\251\106\073\331\037\377\245\241\104
+\273\055\163\277\236\101\007\134\123\233\121\010\072\132\273\157
+\070\307\026\221\170\302\112\023\151\035\202\337\132\057\000\210
+\226\242\056\034\164\371\235\176\146\067\212\243\102\060\100\060
+\016\006\003\125\035\017\001\001\377\004\004\003\002\001\206\060
+\017\006\003\125\035\023\001\001\377\004\005\060\003\001\001\377
+\060\035\006\003\125\035\016\004\026\004\024\337\023\136\213\137
+\302\100\002\375\126\267\224\114\266\036\325\246\261\024\226\060
+\012\006\010\052\206\110\316\075\004\003\003\003\150\000\060\145
+\002\060\023\260\276\327\161\040\076\344\253\234\316\066\022\175
+\137\114\037\052\265\151\105\063\137\323\055\132\262\344\210\307
+\336\012\066\102\062\171\235\246\153\272\341\371\104\052\173\212
+\303\022\002\061\000\240\146\034\116\207\235\207\311\355\231\114
+\033\012\356\055\140\303\067\307\035\315\265\162\260\331\306\357
+\274\362\377\077\360\122\335\010\347\252\144\171\303\344\151\127
+\221\057\244\313\174
+END
+CKA_NSS_MOZILLA_CA_POLICY CK_BBOOL CK_TRUE
+CKA_NSS_SERVER_DISTRUST_AFTER CK_BBOOL CK_FALSE
+CKA_NSS_EMAIL_DISTRUST_AFTER CK_BBOOL CK_FALSE
+
+# Trust for "GlobalSign Secure Mail Root E45"
+# Issuer: CN=GlobalSign Secure Mail Root E45,O=GlobalSign nv-sa,C=BE
+# Serial Number:76:53:fe:aa:27:1d:95:46:5d:d6:f1:9e:e5:b8:90:0a
+# Subject: CN=GlobalSign Secure Mail Root E45,O=GlobalSign nv-sa,C=BE
+# Not Valid Before: Wed Mar 18 00:00:00 2020
+# Not Valid After : Sat Mar 18 00:00:00 2045
+# Fingerprint (SHA-256): 5C:BF:6F:B8:1F:D4:17:EA:41:28:CD:6F:81:72:A3:C9:40:20:94:F7:4A:B2:ED:3A:06:B4:40:5D:04:F3:0B:19
+# Fingerprint (SHA1): 18:2E:1F:32:4F:89:DF:BE:FE:88:89:F0:93:C2:C4:A0:2B:67:75:21
+CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST
+CKA_TOKEN CK_BBOOL CK_TRUE
+CKA_PRIVATE CK_BBOOL CK_FALSE
+CKA_MODIFIABLE CK_BBOOL CK_FALSE
+CKA_LABEL UTF8 "GlobalSign Secure Mail Root E45"
+CKA_CERT_SHA1_HASH MULTILINE_OCTAL
+\030\056\037\062\117\211\337\276\376\210\211\360\223\302\304\240
+\053\147\165\041
+END
+CKA_CERT_MD5_HASH MULTILINE_OCTAL
+\305\374\306\056\237\364\122\055\052\250\244\272\373\147\062\377
+END
+CKA_ISSUER MULTILINE_OCTAL
+\060\122\061\013\060\011\006\003\125\004\006\023\002\102\105\061
+\031\060\027\006\003\125\004\012\023\020\107\154\157\142\141\154
+\123\151\147\156\040\156\166\055\163\141\061\050\060\046\006\003
+\125\004\003\023\037\107\154\157\142\141\154\123\151\147\156\040
+\123\145\143\165\162\145\040\115\141\151\154\040\122\157\157\164
+\040\105\064\065
+END
+CKA_SERIAL_NUMBER MULTILINE_OCTAL
+\002\020\166\123\376\252\047\035\225\106\135\326\361\236\345\270
+\220\012
+END
+CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_MUST_VERIFY_TRUST
+CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR
+CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_MUST_VERIFY_TRUST
+CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE
+
+#
+# Certificate "GlobalSign Root R46"
+#
+# Issuer: CN=GlobalSign Root R46,O=GlobalSign nv-sa,C=BE
+# Serial Number:11:d2:bb:b9:d7:23:18:9e:40:5f:0a:9d:2d:d0:df:25:67:d1
+# Subject: CN=GlobalSign Root R46,O=GlobalSign nv-sa,C=BE
+# Not Valid Before: Wed Mar 20 00:00:00 2019
+# Not Valid After : Tue Mar 20 00:00:00 2046
+# Fingerprint (SHA-256): 4F:A3:12:6D:8D:3A:11:D1:C4:85:5A:4F:80:7C:BA:D6:CF:91:9D:3A:5A:88:B0:3B:EA:2C:63:72:D9:3C:40:C9
+# Fingerprint (SHA1): 53:A2:B0:4B:CA:6B:D6:45:E6:39:8A:8E:C4:0D:D2:BF:77:C3:A2:90
+CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE
+CKA_TOKEN CK_BBOOL CK_TRUE
+CKA_PRIVATE CK_BBOOL CK_FALSE
+CKA_MODIFIABLE CK_BBOOL CK_FALSE
+CKA_LABEL UTF8 "GlobalSign Root R46"
+CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509
+CKA_SUBJECT MULTILINE_OCTAL
+\060\106\061\013\060\011\006\003\125\004\006\023\002\102\105\061
+\031\060\027\006\003\125\004\012\023\020\107\154\157\142\141\154
+\123\151\147\156\040\156\166\055\163\141\061\034\060\032\006\003
+\125\004\003\023\023\107\154\157\142\141\154\123\151\147\156\040
+\122\157\157\164\040\122\064\066
+END
+CKA_ID UTF8 "0"
+CKA_ISSUER MULTILINE_OCTAL
+\060\106\061\013\060\011\006\003\125\004\006\023\002\102\105\061
+\031\060\027\006\003\125\004\012\023\020\107\154\157\142\141\154
+\123\151\147\156\040\156\166\055\163\141\061\034\060\032\006\003
+\125\004\003\023\023\107\154\157\142\141\154\123\151\147\156\040
+\122\157\157\164\040\122\064\066
+END
+CKA_SERIAL_NUMBER MULTILINE_OCTAL
+\002\022\021\322\273\271\327\043\030\236\100\137\012\235\055\320
+\337\045\147\321
+END
+CKA_VALUE MULTILINE_OCTAL
+\060\202\005\132\060\202\003\102\240\003\002\001\002\002\022\021
+\322\273\271\327\043\030\236\100\137\012\235\055\320\337\045\147
+\321\060\015\006\011\052\206\110\206\367\015\001\001\014\005\000
+\060\106\061\013\060\011\006\003\125\004\006\023\002\102\105\061
+\031\060\027\006\003\125\004\012\023\020\107\154\157\142\141\154
+\123\151\147\156\040\156\166\055\163\141\061\034\060\032\006\003
+\125\004\003\023\023\107\154\157\142\141\154\123\151\147\156\040
+\122\157\157\164\040\122\064\066\060\036\027\015\061\071\060\063
+\062\060\060\060\060\060\060\060\132\027\015\064\066\060\063\062
+\060\060\060\060\060\060\060\132\060\106\061\013\060\011\006\003
+\125\004\006\023\002\102\105\061\031\060\027\006\003\125\004\012
+\023\020\107\154\157\142\141\154\123\151\147\156\040\156\166\055
+\163\141\061\034\060\032\006\003\125\004\003\023\023\107\154\157
+\142\141\154\123\151\147\156\040\122\157\157\164\040\122\064\066
+\060\202\002\042\060\015\006\011\052\206\110\206\367\015\001\001
+\001\005\000\003\202\002\017\000\060\202\002\012\002\202\002\001
+\000\254\254\164\062\350\263\145\345\272\355\103\046\035\246\211
+\015\105\272\051\210\262\244\035\143\335\323\301\054\011\127\211
+\071\241\125\351\147\064\167\014\156\344\125\035\122\045\322\023
+\153\136\341\035\251\267\175\211\062\137\015\236\237\054\172\143
+\140\100\037\246\260\266\170\217\231\124\226\010\130\256\344\006
+\274\142\005\002\026\277\257\250\043\003\266\224\017\274\156\154
+\302\313\325\246\273\014\351\366\301\002\373\041\336\146\335\027
+\253\164\102\357\360\164\057\045\364\352\153\125\133\220\333\235
+\337\136\207\012\100\373\255\031\153\373\367\312\140\210\336\332
+\301\217\326\256\325\177\324\074\203\356\327\026\114\203\105\063
+\153\047\320\206\320\034\055\153\363\253\175\361\205\251\365\050
+\322\255\357\363\204\113\034\207\374\023\243\072\162\242\132\021
+\053\326\047\161\047\355\201\055\155\146\201\222\207\264\033\130
+\172\314\077\012\372\106\117\115\170\134\370\053\110\343\004\204
+\313\135\366\264\152\263\145\374\102\236\121\046\043\040\313\075
+\024\371\201\355\145\026\000\117\032\144\227\146\010\317\214\173
+\343\053\300\235\371\024\362\033\361\126\152\026\277\054\205\205
+\315\170\070\232\353\102\152\002\064\030\203\027\116\224\126\370
+\266\202\265\363\226\335\075\363\276\177\040\167\076\173\031\043
+\153\054\324\162\163\103\127\175\340\370\327\151\117\027\066\004
+\371\300\220\140\067\105\336\346\014\330\164\215\256\234\242\155
+\164\135\102\276\006\365\331\144\156\002\020\254\211\260\114\073
+\007\115\100\176\044\305\212\230\202\171\216\244\247\202\040\215
+\043\372\047\161\311\337\306\101\164\240\115\366\221\026\334\106
+\214\137\051\143\061\131\161\014\330\157\302\266\062\175\373\346
+\135\123\246\176\025\374\273\165\174\135\354\370\366\027\034\354
+\307\153\031\313\363\173\360\053\007\245\331\154\171\124\166\154
+\235\034\246\156\016\351\171\014\250\043\152\243\337\033\060\061
+\237\261\124\173\376\152\313\146\252\334\145\320\242\236\112\232
+\007\041\153\201\217\333\304\131\372\336\042\300\004\234\343\252
+\133\066\223\350\075\275\172\241\235\013\166\261\013\307\235\375
+\317\230\250\006\302\370\052\243\241\203\240\267\045\162\245\002
+\343\002\003\001\000\001\243\102\060\100\060\016\006\003\125\035
+\017\001\001\377\004\004\003\002\001\206\060\017\006\003\125\035
+\023\001\001\377\004\005\060\003\001\001\377\060\035\006\003\125
+\035\016\004\026\004\024\003\134\253\163\201\207\250\314\260\246
+\325\224\342\066\226\111\377\005\231\054\060\015\006\011\052\206
+\110\206\367\015\001\001\014\005\000\003\202\002\001\000\174\170
+\354\366\002\054\273\133\176\222\053\135\071\334\276\330\035\242
+\102\063\115\371\357\244\052\073\104\151\036\254\331\105\243\116
+\074\247\330\044\121\262\124\034\223\116\304\357\173\223\205\140
+\046\352\011\110\340\365\273\307\351\150\322\273\152\061\161\314
+\171\256\021\250\360\231\375\345\037\274\057\250\314\127\353\166
+\304\041\246\107\123\125\115\150\277\005\244\356\327\046\253\142
+\332\103\067\113\342\306\265\345\262\203\031\072\307\323\333\115
+\236\010\172\363\356\317\076\142\373\254\350\140\314\321\307\241
+\134\203\105\304\105\314\363\027\153\024\311\004\002\076\322\044
+\246\171\351\036\316\242\347\301\131\025\237\035\342\113\232\076
+\237\166\010\055\153\330\272\127\024\332\203\352\376\214\125\351
+\320\116\251\314\167\061\261\104\021\172\134\261\076\323\024\105
+\025\030\142\044\023\322\313\115\316\134\203\301\066\362\020\265
+\016\210\155\270\341\126\237\211\336\226\146\071\107\144\054\156
+\115\256\142\173\277\140\164\031\270\126\254\222\254\026\062\355
+\255\150\125\376\230\272\323\064\336\364\311\141\303\016\206\366
+\113\204\140\356\015\173\265\062\130\171\221\125\054\201\103\263
+\164\037\172\252\045\236\035\327\241\213\271\315\102\056\004\244
+\146\203\115\211\065\266\154\250\066\112\171\041\170\042\320\102
+\274\321\100\061\220\241\276\004\317\312\147\355\365\360\200\323
+\140\311\203\052\042\005\320\007\073\122\277\014\236\252\053\371
+\273\346\037\217\045\272\205\215\027\036\002\376\135\120\004\127
+\317\376\055\274\357\134\300\032\253\266\237\044\306\337\163\150
+\110\220\054\024\364\077\122\032\344\322\313\024\303\141\151\317
+\342\371\030\305\272\063\237\024\243\004\135\271\161\367\265\224
+\330\366\063\301\132\301\064\213\174\233\335\223\072\347\023\242
+\160\141\237\257\217\353\330\305\165\370\063\146\324\164\147\072
+\067\167\234\347\335\244\017\166\103\146\212\103\362\237\373\014
+\102\170\143\321\342\017\157\173\324\241\075\164\227\205\267\110
+\071\101\326\040\374\320\072\263\372\350\157\304\212\272\161\067
+\276\213\227\261\170\061\117\263\347\266\003\023\316\124\235\256
+\045\131\314\177\065\137\010\367\100\105\061\170\052\172
+END
+CKA_NSS_MOZILLA_CA_POLICY CK_BBOOL CK_TRUE
+CKA_NSS_SERVER_DISTRUST_AFTER CK_BBOOL CK_FALSE
+CKA_NSS_EMAIL_DISTRUST_AFTER CK_BBOOL CK_FALSE
+
+# Trust for "GlobalSign Root R46"
+# Issuer: CN=GlobalSign Root R46,O=GlobalSign nv-sa,C=BE
+# Serial Number:11:d2:bb:b9:d7:23:18:9e:40:5f:0a:9d:2d:d0:df:25:67:d1
+# Subject: CN=GlobalSign Root R46,O=GlobalSign nv-sa,C=BE
+# Not Valid Before: Wed Mar 20 00:00:00 2019
+# Not Valid After : Tue Mar 20 00:00:00 2046
+# Fingerprint (SHA-256): 4F:A3:12:6D:8D:3A:11:D1:C4:85:5A:4F:80:7C:BA:D6:CF:91:9D:3A:5A:88:B0:3B:EA:2C:63:72:D9:3C:40:C9
+# Fingerprint (SHA1): 53:A2:B0:4B:CA:6B:D6:45:E6:39:8A:8E:C4:0D:D2:BF:77:C3:A2:90
+CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST
+CKA_TOKEN CK_BBOOL CK_TRUE
+CKA_PRIVATE CK_BBOOL CK_FALSE
+CKA_MODIFIABLE CK_BBOOL CK_FALSE
+CKA_LABEL UTF8 "GlobalSign Root R46"
+CKA_CERT_SHA1_HASH MULTILINE_OCTAL
+\123\242\260\113\312\153\326\105\346\071\212\216\304\015\322\277
+\167\303\242\220
+END
+CKA_CERT_MD5_HASH MULTILINE_OCTAL
+\304\024\060\344\372\146\103\224\052\152\033\044\137\031\320\357
+END
+CKA_ISSUER MULTILINE_OCTAL
+\060\106\061\013\060\011\006\003\125\004\006\023\002\102\105\061
+\031\060\027\006\003\125\004\012\023\020\107\154\157\142\141\154
+\123\151\147\156\040\156\166\055\163\141\061\034\060\032\006\003
+\125\004\003\023\023\107\154\157\142\141\154\123\151\147\156\040
+\122\157\157\164\040\122\064\066
+END
+CKA_SERIAL_NUMBER MULTILINE_OCTAL
+\002\022\021\322\273\271\327\043\030\236\100\137\012\235\055\320
+\337\045\147\321
+END
+CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR
+CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_MUST_VERIFY_TRUST
+CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_MUST_VERIFY_TRUST
+CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE
+
+#
+# Certificate "GlobalSign Root E46"
+#
+# Issuer: CN=GlobalSign Root E46,O=GlobalSign nv-sa,C=BE
+# Serial Number:11:d2:bb:ba:33:6e:d4:bc:e6:24:68:c5:0d:84:1d:98:e8:43
+# Subject: CN=GlobalSign Root E46,O=GlobalSign nv-sa,C=BE
+# Not Valid Before: Wed Mar 20 00:00:00 2019
+# Not Valid After : Tue Mar 20 00:00:00 2046
+# Fingerprint (SHA-256): CB:B9:C4:4D:84:B8:04:3E:10:50:EA:31:A6:9F:51:49:55:D7:BF:D2:E2:C6:B4:93:01:01:9A:D6:1D:9F:50:58
+# Fingerprint (SHA1): 39:B4:6C:D5:FE:80:06:EB:E2:2F:4A:BB:08:33:A0:AF:DB:B9:DD:84
+CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE
+CKA_TOKEN CK_BBOOL CK_TRUE
+CKA_PRIVATE CK_BBOOL CK_FALSE
+CKA_MODIFIABLE CK_BBOOL CK_FALSE
+CKA_LABEL UTF8 "GlobalSign Root E46"
+CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509
+CKA_SUBJECT MULTILINE_OCTAL
+\060\106\061\013\060\011\006\003\125\004\006\023\002\102\105\061
+\031\060\027\006\003\125\004\012\023\020\107\154\157\142\141\154
+\123\151\147\156\040\156\166\055\163\141\061\034\060\032\006\003
+\125\004\003\023\023\107\154\157\142\141\154\123\151\147\156\040
+\122\157\157\164\040\105\064\066
+END
+CKA_ID UTF8 "0"
+CKA_ISSUER MULTILINE_OCTAL
+\060\106\061\013\060\011\006\003\125\004\006\023\002\102\105\061
+\031\060\027\006\003\125\004\012\023\020\107\154\157\142\141\154
+\123\151\147\156\040\156\166\055\163\141\061\034\060\032\006\003
+\125\004\003\023\023\107\154\157\142\141\154\123\151\147\156\040
+\122\157\157\164\040\105\064\066
+END
+CKA_SERIAL_NUMBER MULTILINE_OCTAL
+\002\022\021\322\273\272\063\156\324\274\346\044\150\305\015\204
+\035\230\350\103
+END
+CKA_VALUE MULTILINE_OCTAL
+\060\202\002\013\060\202\001\221\240\003\002\001\002\002\022\021
+\322\273\272\063\156\324\274\346\044\150\305\015\204\035\230\350
+\103\060\012\006\010\052\206\110\316\075\004\003\003\060\106\061
+\013\060\011\006\003\125\004\006\023\002\102\105\061\031\060\027
+\006\003\125\004\012\023\020\107\154\157\142\141\154\123\151\147
+\156\040\156\166\055\163\141\061\034\060\032\006\003\125\004\003
+\023\023\107\154\157\142\141\154\123\151\147\156\040\122\157\157
+\164\040\105\064\066\060\036\027\015\061\071\060\063\062\060\060
+\060\060\060\060\060\132\027\015\064\066\060\063\062\060\060\060
+\060\060\060\060\132\060\106\061\013\060\011\006\003\125\004\006
+\023\002\102\105\061\031\060\027\006\003\125\004\012\023\020\107
+\154\157\142\141\154\123\151\147\156\040\156\166\055\163\141\061
+\034\060\032\006\003\125\004\003\023\023\107\154\157\142\141\154
+\123\151\147\156\040\122\157\157\164\040\105\064\066\060\166\060
+\020\006\007\052\206\110\316\075\002\001\006\005\053\201\004\000
+\042\003\142\000\004\234\016\261\317\267\350\236\122\167\165\064
+\372\245\106\247\255\062\031\062\264\007\251\047\312\224\273\014
+\322\012\020\307\332\211\260\227\014\160\023\011\001\216\330\352
+\107\352\276\262\200\053\315\374\050\015\333\254\274\244\206\067
+\355\160\010\000\165\352\223\013\173\056\122\234\043\150\043\006
+\103\354\222\057\123\204\333\373\107\024\007\350\137\224\147\135
+\311\172\201\074\040\243\102\060\100\060\016\006\003\125\035\017
+\001\001\377\004\004\003\002\001\206\060\017\006\003\125\035\023
+\001\001\377\004\005\060\003\001\001\377\060\035\006\003\125\035
+\016\004\026\004\024\061\012\220\217\266\306\235\322\104\113\200
+\265\242\346\037\261\022\117\033\225\060\012\006\010\052\206\110
+\316\075\004\003\003\003\150\000\060\145\002\061\000\337\124\220
+\355\233\357\213\224\002\223\027\202\231\276\263\236\054\366\013
+\221\214\237\112\024\261\366\144\274\273\150\121\023\014\003\367
+\025\213\204\140\271\213\377\122\216\347\214\274\034\002\060\074
+\371\021\324\214\116\300\301\141\302\025\114\252\253\035\013\061
+\137\073\034\342\000\227\104\061\346\376\163\226\057\332\226\323
+\376\010\007\263\064\211\274\005\237\367\036\206\356\213\160
+END
+CKA_NSS_MOZILLA_CA_POLICY CK_BBOOL CK_TRUE
+CKA_NSS_SERVER_DISTRUST_AFTER CK_BBOOL CK_FALSE
+CKA_NSS_EMAIL_DISTRUST_AFTER CK_BBOOL CK_FALSE
+
+# Trust for "GlobalSign Root E46"
+# Issuer: CN=GlobalSign Root E46,O=GlobalSign nv-sa,C=BE
+# Serial Number:11:d2:bb:ba:33:6e:d4:bc:e6:24:68:c5:0d:84:1d:98:e8:43
+# Subject: CN=GlobalSign Root E46,O=GlobalSign nv-sa,C=BE
+# Not Valid Before: Wed Mar 20 00:00:00 2019
+# Not Valid After : Tue Mar 20 00:00:00 2046
+# Fingerprint (SHA-256): CB:B9:C4:4D:84:B8:04:3E:10:50:EA:31:A6:9F:51:49:55:D7:BF:D2:E2:C6:B4:93:01:01:9A:D6:1D:9F:50:58
+# Fingerprint (SHA1): 39:B4:6C:D5:FE:80:06:EB:E2:2F:4A:BB:08:33:A0:AF:DB:B9:DD:84
+CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST
+CKA_TOKEN CK_BBOOL CK_TRUE
+CKA_PRIVATE CK_BBOOL CK_FALSE
+CKA_MODIFIABLE CK_BBOOL CK_FALSE
+CKA_LABEL UTF8 "GlobalSign Root E46"
+CKA_CERT_SHA1_HASH MULTILINE_OCTAL
+\071\264\154\325\376\200\006\353\342\057\112\273\010\063\240\257
+\333\271\335\204
+END
+CKA_CERT_MD5_HASH MULTILINE_OCTAL
+\265\270\146\355\336\010\203\343\311\342\001\064\006\254\121\157
+END
+CKA_ISSUER MULTILINE_OCTAL
+\060\106\061\013\060\011\006\003\125\004\006\023\002\102\105\061
+\031\060\027\006\003\125\004\012\023\020\107\154\157\142\141\154
+\123\151\147\156\040\156\166\055\163\141\061\034\060\032\006\003
+\125\004\003\023\023\107\154\157\142\141\154\123\151\147\156\040
+\122\157\157\164\040\105\064\066
+END
+CKA_SERIAL_NUMBER MULTILINE_OCTAL
+\002\022\021\322\273\272\063\156\324\274\346\044\150\305\015\204
+\035\230\350\103
+END
+CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR
+CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_MUST_VERIFY_TRUST
+CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_MUST_VERIFY_TRUST
+CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE
+
+#
+# Certificate "GLOBALTRUST 2020"
+#
+# Issuer: CN=GLOBALTRUST 2020,O=e-commerce monitoring GmbH,C=AT
+# Serial Number:5a:4b:bd:5a:fb:4f:8a:5b:fa:65:e5
+# Subject: CN=GLOBALTRUST 2020,O=e-commerce monitoring GmbH,C=AT
+# Not Valid Before: Mon Feb 10 00:00:00 2020
+# Not Valid After : Sun Jun 10 00:00:00 2040
+# Fingerprint (SHA-256): 9A:29:6A:51:82:D1:D4:51:A2:E3:7F:43:9B:74:DA:AF:A2:67:52:33:29:F9:0F:9A:0D:20:07:C3:34:E2:3C:9A
+# Fingerprint (SHA1): D0:67:C1:13:51:01:0C:AA:D0:C7:6A:65:37:31:16:26:4F:53:71:A2
+CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE
+CKA_TOKEN CK_BBOOL CK_TRUE
+CKA_PRIVATE CK_BBOOL CK_FALSE
+CKA_MODIFIABLE CK_BBOOL CK_FALSE
+CKA_LABEL UTF8 "GLOBALTRUST 2020"
+CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509
+CKA_SUBJECT MULTILINE_OCTAL
+\060\115\061\013\060\011\006\003\125\004\006\023\002\101\124\061
+\043\060\041\006\003\125\004\012\023\032\145\055\143\157\155\155
+\145\162\143\145\040\155\157\156\151\164\157\162\151\156\147\040
+\107\155\142\110\061\031\060\027\006\003\125\004\003\023\020\107
+\114\117\102\101\114\124\122\125\123\124\040\062\060\062\060
+END
+CKA_ID UTF8 "0"
+CKA_ISSUER MULTILINE_OCTAL
+\060\115\061\013\060\011\006\003\125\004\006\023\002\101\124\061
+\043\060\041\006\003\125\004\012\023\032\145\055\143\157\155\155
+\145\162\143\145\040\155\157\156\151\164\157\162\151\156\147\040
+\107\155\142\110\061\031\060\027\006\003\125\004\003\023\020\107
+\114\117\102\101\114\124\122\125\123\124\040\062\060\062\060
+END
+CKA_SERIAL_NUMBER MULTILINE_OCTAL
+\002\013\132\113\275\132\373\117\212\133\372\145\345
+END
+CKA_VALUE MULTILINE_OCTAL
+\060\202\005\202\060\202\003\152\240\003\002\001\002\002\013\132
+\113\275\132\373\117\212\133\372\145\345\060\015\006\011\052\206
+\110\206\367\015\001\001\013\005\000\060\115\061\013\060\011\006
+\003\125\004\006\023\002\101\124\061\043\060\041\006\003\125\004
+\012\023\032\145\055\143\157\155\155\145\162\143\145\040\155\157
+\156\151\164\157\162\151\156\147\040\107\155\142\110\061\031\060
+\027\006\003\125\004\003\023\020\107\114\117\102\101\114\124\122
+\125\123\124\040\062\060\062\060\060\036\027\015\062\060\060\062
+\061\060\060\060\060\060\060\060\132\027\015\064\060\060\066\061
+\060\060\060\060\060\060\060\132\060\115\061\013\060\011\006\003
+\125\004\006\023\002\101\124\061\043\060\041\006\003\125\004\012
+\023\032\145\055\143\157\155\155\145\162\143\145\040\155\157\156
+\151\164\157\162\151\156\147\040\107\155\142\110\061\031\060\027
+\006\003\125\004\003\023\020\107\114\117\102\101\114\124\122\125
+\123\124\040\062\060\062\060\060\202\002\042\060\015\006\011\052
+\206\110\206\367\015\001\001\001\005\000\003\202\002\017\000\060
+\202\002\012\002\202\002\001\000\256\056\126\255\033\034\357\366
+\225\217\240\167\033\053\323\143\217\204\115\105\242\017\237\133
+\105\253\131\173\121\064\371\354\213\212\170\305\335\153\257\275
+\304\337\223\105\036\277\221\070\013\256\016\026\347\101\163\370
+\333\273\321\270\121\340\313\203\073\163\070\156\167\212\017\131
+\143\046\315\247\052\316\124\373\270\342\300\174\107\316\140\174
+\077\262\163\362\300\031\266\212\222\207\065\015\220\050\242\344
+\025\004\143\076\272\257\356\174\136\314\246\213\120\262\070\367
+\101\143\312\316\377\151\217\150\016\225\066\345\314\271\214\011
+\312\113\335\061\220\226\310\314\037\375\126\226\064\333\216\034
+\352\054\276\205\056\143\335\252\251\225\323\375\051\225\023\360
+\310\230\223\331\055\026\107\220\021\203\242\072\042\242\050\127
+\242\353\376\300\214\050\240\246\175\347\052\102\073\202\200\143
+\245\143\037\031\314\174\262\146\250\302\323\155\067\157\342\176
+\006\121\331\105\204\037\022\316\044\122\144\205\013\110\200\116
+\207\261\042\042\060\252\353\256\276\340\002\340\100\350\260\102
+\200\003\121\252\264\176\252\104\327\103\141\363\242\153\026\211
+\111\244\243\244\053\212\002\304\170\364\150\212\301\344\172\066
+\261\157\033\226\033\167\111\215\324\311\006\162\217\317\123\343
+\334\027\205\040\112\334\230\047\323\221\046\053\107\036\151\007
+\257\336\242\344\344\324\153\013\263\136\174\324\044\200\107\051
+\151\073\156\350\254\375\100\353\330\355\161\161\053\362\350\130
+\035\353\101\227\042\305\037\324\071\320\047\217\207\343\030\364
+\340\251\106\015\365\164\072\202\056\320\156\054\221\243\061\134
+\073\106\352\173\004\020\126\136\200\035\365\245\145\350\202\374
+\342\007\214\142\105\365\040\336\106\160\206\241\274\223\323\036
+\164\246\154\260\054\367\003\014\210\014\313\324\162\123\206\274
+\140\106\363\230\152\302\361\277\103\371\160\040\167\312\067\101
+\171\125\122\143\215\133\022\237\305\150\304\210\235\254\362\060
+\253\267\243\061\227\147\255\217\027\017\154\307\163\355\044\224
+\153\310\203\232\320\232\067\111\004\253\261\026\310\154\111\111
+\055\253\241\320\214\222\362\101\112\171\041\045\333\143\327\266
+\234\247\176\102\151\373\072\143\002\003\001\000\001\243\143\060
+\141\060\017\006\003\125\035\023\001\001\377\004\005\060\003\001
+\001\377\060\016\006\003\125\035\017\001\001\377\004\004\003\002
+\001\006\060\035\006\003\125\035\016\004\026\004\024\334\056\037
+\321\141\067\171\344\253\325\325\263\022\161\150\075\152\150\234
+\042\060\037\006\003\125\035\043\004\030\060\026\200\024\334\056
+\037\321\141\067\171\344\253\325\325\263\022\161\150\075\152\150
+\234\042\060\015\006\011\052\206\110\206\367\015\001\001\013\005
+\000\003\202\002\001\000\221\360\102\002\150\100\356\303\150\300
+\124\057\337\354\142\303\303\236\212\240\061\050\252\203\216\244
+\126\226\022\020\206\126\272\227\162\322\124\060\174\255\031\325
+\035\150\157\373\024\102\330\215\016\363\265\321\245\343\002\102
+\136\334\350\106\130\007\065\002\060\340\274\164\112\301\103\052
+\377\333\032\320\260\257\154\303\375\313\263\365\177\155\003\056
+\131\126\235\055\055\065\214\262\326\103\027\054\222\012\313\135
+\350\214\017\113\160\103\320\202\377\250\314\277\244\224\300\276
+\207\275\212\343\223\173\306\217\233\026\235\047\145\274\172\305
+\102\202\154\134\007\320\251\301\210\140\104\351\230\205\026\137
+\370\217\312\001\020\316\045\303\371\140\033\240\305\227\303\323
+\054\210\061\242\275\060\354\320\320\300\022\361\301\071\343\345
+\365\370\326\112\335\064\315\373\157\301\117\343\000\213\126\342
+\222\367\050\262\102\167\162\043\147\307\077\021\025\262\304\003
+\005\276\273\021\173\012\277\250\156\347\377\130\103\317\233\147
+\240\200\007\266\035\312\255\155\352\101\021\176\055\164\223\373
+\302\274\276\121\104\305\357\150\045\047\200\343\310\240\324\022
+\354\331\245\067\035\067\174\264\221\312\332\324\261\226\201\357
+\150\134\166\020\111\257\176\245\067\200\261\034\122\275\063\201
+\114\217\371\335\145\331\024\315\212\045\130\364\342\305\203\245
+\011\220\324\154\024\143\265\100\337\353\300\374\304\130\176\015
+\024\026\207\124\047\156\126\344\160\204\270\154\062\022\176\202
+\061\103\276\327\335\174\241\255\256\326\253\040\022\357\012\303
+\020\214\111\226\065\334\013\165\136\261\117\325\117\064\016\021
+\040\007\165\103\105\351\243\021\332\254\243\231\302\266\171\047
+\342\271\357\310\342\366\065\051\172\164\372\305\177\202\005\142
+\246\012\352\150\262\171\107\006\156\362\127\250\025\063\306\367
+\170\112\075\102\173\153\176\376\367\106\352\321\353\216\357\210
+\150\133\350\301\331\161\176\375\144\357\377\147\107\210\130\045
+\057\076\206\007\275\373\250\345\202\250\254\245\323\151\103\315
+\061\210\111\204\123\222\300\261\071\033\071\203\001\060\304\362
+\251\372\320\003\275\162\067\140\126\037\066\174\275\071\221\365
+\155\015\277\173\327\222
+END
+CKA_NSS_MOZILLA_CA_POLICY CK_BBOOL CK_TRUE
+CKA_NSS_SERVER_DISTRUST_AFTER CK_BBOOL CK_FALSE
+CKA_NSS_EMAIL_DISTRUST_AFTER CK_BBOOL CK_FALSE
+
+# Trust for "GLOBALTRUST 2020"
+# Issuer: CN=GLOBALTRUST 2020,O=e-commerce monitoring GmbH,C=AT
+# Serial Number:5a:4b:bd:5a:fb:4f:8a:5b:fa:65:e5
+# Subject: CN=GLOBALTRUST 2020,O=e-commerce monitoring GmbH,C=AT
+# Not Valid Before: Mon Feb 10 00:00:00 2020
+# Not Valid After : Sun Jun 10 00:00:00 2040
+# Fingerprint (SHA-256): 9A:29:6A:51:82:D1:D4:51:A2:E3:7F:43:9B:74:DA:AF:A2:67:52:33:29:F9:0F:9A:0D:20:07:C3:34:E2:3C:9A
+# Fingerprint (SHA1): D0:67:C1:13:51:01:0C:AA:D0:C7:6A:65:37:31:16:26:4F:53:71:A2
+CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST
+CKA_TOKEN CK_BBOOL CK_TRUE
+CKA_PRIVATE CK_BBOOL CK_FALSE
+CKA_MODIFIABLE CK_BBOOL CK_FALSE
+CKA_LABEL UTF8 "GLOBALTRUST 2020"
+CKA_CERT_SHA1_HASH MULTILINE_OCTAL
+\320\147\301\023\121\001\014\252\320\307\152\145\067\061\026\046
+\117\123\161\242
+END
+CKA_CERT_MD5_HASH MULTILINE_OCTAL
+\212\307\157\313\155\343\314\242\361\174\203\372\016\170\327\350
+END
+CKA_ISSUER MULTILINE_OCTAL
+\060\115\061\013\060\011\006\003\125\004\006\023\002\101\124\061
+\043\060\041\006\003\125\004\012\023\032\145\055\143\157\155\155
+\145\162\143\145\040\155\157\156\151\164\157\162\151\156\147\040
+\107\155\142\110\061\031\060\027\006\003\125\004\003\023\020\107
+\114\117\102\101\114\124\122\125\123\124\040\062\060\062\060
+END
+CKA_SERIAL_NUMBER MULTILINE_OCTAL
+\002\013\132\113\275\132\373\117\212\133\372\145\345
+END
+CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR
+CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR
+CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_MUST_VERIFY_TRUST
+CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE
+
+#
+# Certificate "ANF Secure Server Root CA"
+#
+# Issuer: CN=ANF Secure Server Root CA,OU=ANF CA Raiz,O=ANF Autoridad de Certificacion,C=ES,serialNumber=G63287510
+# Serial Number:0d:d3:e3:bc:6c:f9:6b:b1
+# Subject: CN=ANF Secure Server Root CA,OU=ANF CA Raiz,O=ANF Autoridad de Certificacion,C=ES,serialNumber=G63287510
+# Not Valid Before: Wed Sep 04 10:00:38 2019
+# Not Valid After : Tue Aug 30 10:00:38 2039
+# Fingerprint (SHA-256): FB:8F:EC:75:91:69:B9:10:6B:1E:51:16:44:C6:18:C5:13:04:37:3F:6C:06:43:08:8D:8B:EF:FD:1B:99:75:99
+# Fingerprint (SHA1): 5B:6E:68:D0:CC:15:B6:A0:5F:1E:C1:5F:AE:02:FC:6B:2F:5D:6F:74
+CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE
+CKA_TOKEN CK_BBOOL CK_TRUE
+CKA_PRIVATE CK_BBOOL CK_FALSE
+CKA_MODIFIABLE CK_BBOOL CK_FALSE
+CKA_LABEL UTF8 "ANF Secure Server Root CA"
+CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509
+CKA_SUBJECT MULTILINE_OCTAL
+\060\201\204\061\022\060\020\006\003\125\004\005\023\011\107\066
+\063\062\070\067\065\061\060\061\013\060\011\006\003\125\004\006
+\023\002\105\123\061\047\060\045\006\003\125\004\012\023\036\101
+\116\106\040\101\165\164\157\162\151\144\141\144\040\144\145\040
+\103\145\162\164\151\146\151\143\141\143\151\157\156\061\024\060
+\022\006\003\125\004\013\023\013\101\116\106\040\103\101\040\122
+\141\151\172\061\042\060\040\006\003\125\004\003\023\031\101\116
+\106\040\123\145\143\165\162\145\040\123\145\162\166\145\162\040
+\122\157\157\164\040\103\101
+END
+CKA_ID UTF8 "0"
+CKA_ISSUER MULTILINE_OCTAL
+\060\201\204\061\022\060\020\006\003\125\004\005\023\011\107\066
+\063\062\070\067\065\061\060\061\013\060\011\006\003\125\004\006
+\023\002\105\123\061\047\060\045\006\003\125\004\012\023\036\101
+\116\106\040\101\165\164\157\162\151\144\141\144\040\144\145\040
+\103\145\162\164\151\146\151\143\141\143\151\157\156\061\024\060
+\022\006\003\125\004\013\023\013\101\116\106\040\103\101\040\122
+\141\151\172\061\042\060\040\006\003\125\004\003\023\031\101\116
+\106\040\123\145\143\165\162\145\040\123\145\162\166\145\162\040
+\122\157\157\164\040\103\101
+END
+CKA_SERIAL_NUMBER MULTILINE_OCTAL
+\002\010\015\323\343\274\154\371\153\261
+END
+CKA_VALUE MULTILINE_OCTAL
+\060\202\005\357\060\202\003\327\240\003\002\001\002\002\010\015
+\323\343\274\154\371\153\261\060\015\006\011\052\206\110\206\367
+\015\001\001\013\005\000\060\201\204\061\022\060\020\006\003\125
+\004\005\023\011\107\066\063\062\070\067\065\061\060\061\013\060
+\011\006\003\125\004\006\023\002\105\123\061\047\060\045\006\003
+\125\004\012\023\036\101\116\106\040\101\165\164\157\162\151\144
+\141\144\040\144\145\040\103\145\162\164\151\146\151\143\141\143
+\151\157\156\061\024\060\022\006\003\125\004\013\023\013\101\116
+\106\040\103\101\040\122\141\151\172\061\042\060\040\006\003\125
+\004\003\023\031\101\116\106\040\123\145\143\165\162\145\040\123
+\145\162\166\145\162\040\122\157\157\164\040\103\101\060\036\027
+\015\061\071\060\071\060\064\061\060\060\060\063\070\132\027\015
+\063\071\060\070\063\060\061\060\060\060\063\070\132\060\201\204
+\061\022\060\020\006\003\125\004\005\023\011\107\066\063\062\070
+\067\065\061\060\061\013\060\011\006\003\125\004\006\023\002\105
+\123\061\047\060\045\006\003\125\004\012\023\036\101\116\106\040
+\101\165\164\157\162\151\144\141\144\040\144\145\040\103\145\162
+\164\151\146\151\143\141\143\151\157\156\061\024\060\022\006\003
+\125\004\013\023\013\101\116\106\040\103\101\040\122\141\151\172
+\061\042\060\040\006\003\125\004\003\023\031\101\116\106\040\123
+\145\143\165\162\145\040\123\145\162\166\145\162\040\122\157\157
+\164\040\103\101\060\202\002\042\060\015\006\011\052\206\110\206
+\367\015\001\001\001\005\000\003\202\002\017\000\060\202\002\012
+\002\202\002\001\000\333\353\153\053\346\144\124\225\202\220\243
+\162\244\031\001\235\234\013\201\137\163\111\272\247\254\363\004
+\116\173\226\013\354\021\340\133\246\034\316\033\322\015\203\034
+\053\270\236\035\176\105\062\140\017\007\351\167\130\176\237\152
+\310\141\116\266\046\301\114\215\377\114\357\064\262\037\145\330
+\271\170\365\255\251\161\271\357\117\130\035\245\336\164\040\227
+\241\355\150\114\336\222\027\113\274\253\377\145\232\236\373\107
+\331\127\162\363\011\241\256\166\104\023\156\234\055\104\071\274
+\371\307\073\244\130\075\101\275\264\302\111\243\310\015\322\227
+\057\007\145\122\000\247\156\310\257\150\354\364\024\226\266\127
+\037\126\303\071\237\053\155\344\363\076\366\065\144\332\014\034
+\241\204\113\057\113\113\342\054\044\235\155\223\100\353\265\043
+\216\062\312\157\105\323\250\211\173\036\317\036\372\133\103\213
+\315\315\250\017\152\312\014\136\271\236\107\217\360\331\266\012
+\013\130\145\027\063\271\043\344\167\031\175\313\112\056\222\173
+\117\057\020\167\261\215\057\150\234\142\314\340\120\370\354\221
+\247\124\114\127\011\325\166\143\305\350\145\036\356\155\152\317
+\011\235\372\174\117\255\140\010\375\126\231\017\025\054\173\251
+\200\253\214\141\217\112\007\166\102\336\075\364\335\262\044\063
+\133\270\265\243\104\311\254\177\167\074\035\043\354\202\251\246
+\342\310\006\114\002\376\254\134\231\231\013\057\020\212\246\364
+\177\325\207\164\015\131\111\105\366\360\161\134\071\051\326\277
+\112\043\213\365\137\001\143\322\207\163\050\265\113\012\365\370
+\253\202\054\176\163\045\062\035\013\143\012\027\201\000\377\266
+\166\136\347\264\261\100\312\041\273\325\200\121\345\110\122\147
+\054\322\141\211\007\015\017\316\102\167\300\104\163\234\104\120
+\240\333\020\012\055\225\034\201\257\344\034\345\024\036\361\066
+\101\001\002\057\175\163\247\336\102\314\114\351\211\015\126\367
+\237\221\324\003\306\154\311\217\333\330\034\340\100\230\135\146
+\231\230\200\156\055\377\001\305\316\313\106\037\254\002\306\103
+\346\256\242\204\074\305\116\036\075\155\311\024\114\343\056\101
+\273\312\071\277\066\074\052\031\252\101\207\116\245\316\113\062
+\171\335\220\111\177\002\003\001\000\001\243\143\060\141\060\037
+\006\003\125\035\043\004\030\060\026\200\024\234\137\320\154\143
+\243\137\223\312\223\230\010\255\214\207\245\054\134\301\067\060
+\035\006\003\125\035\016\004\026\004\024\234\137\320\154\143\243
+\137\223\312\223\230\010\255\214\207\245\054\134\301\067\060\016
+\006\003\125\035\017\001\001\377\004\004\003\002\001\206\060\017
+\006\003\125\035\023\001\001\377\004\005\060\003\001\001\377\060
+\015\006\011\052\206\110\206\367\015\001\001\013\005\000\003\202
+\002\001\000\116\036\271\212\306\240\230\077\156\303\151\300\152
+\134\111\122\254\313\053\135\170\070\301\325\124\204\237\223\360
+\207\031\075\054\146\211\353\015\102\374\314\360\165\205\077\213
+\364\200\135\171\345\027\147\275\065\202\342\362\074\216\175\133
+\066\313\132\200\000\051\362\316\053\054\361\217\252\155\005\223
+\154\162\307\126\353\337\120\043\050\345\105\020\075\350\147\243
+\257\016\125\017\220\011\142\357\113\131\242\366\123\361\300\065
+\344\057\301\044\275\171\057\116\040\042\073\375\032\040\260\244
+\016\054\160\355\164\077\270\023\225\006\121\310\350\207\046\312
+\244\133\152\026\041\222\335\163\140\236\020\030\336\074\201\352
+\350\030\303\174\211\362\213\120\076\275\021\342\025\003\250\066
+\175\063\001\154\110\025\327\210\220\231\004\305\314\346\007\364
+\274\364\220\355\023\342\352\213\303\217\243\063\017\301\051\114
+\023\116\332\025\126\161\163\162\202\120\366\232\063\174\242\261
+\250\032\064\164\145\134\316\321\353\253\123\340\032\200\330\352
+\072\111\344\046\060\233\345\034\212\250\251\025\062\206\231\222
+\012\020\043\126\022\340\366\316\114\342\273\276\333\215\222\163
+\001\146\057\142\076\262\162\047\105\066\355\115\126\343\227\231
+\377\072\065\076\245\124\112\122\131\113\140\333\356\376\170\021
+\177\112\334\024\171\140\266\153\144\003\333\025\203\341\242\276
+\366\043\227\120\360\011\063\066\247\161\226\045\363\271\102\175
+\333\070\077\054\130\254\350\102\341\016\330\323\073\114\056\202
+\351\203\056\153\061\331\335\107\206\117\155\227\221\056\117\342
+\050\161\065\026\321\362\163\376\045\053\007\107\044\143\047\310
+\370\366\331\153\374\022\061\126\010\300\123\102\257\234\320\063
+\176\374\006\360\061\104\003\024\361\130\352\362\152\015\251\021
+\262\203\276\305\032\277\007\352\131\334\243\210\065\357\234\166
+\062\074\115\006\042\316\025\345\335\236\330\217\332\336\322\304
+\071\345\027\201\317\070\107\353\177\210\155\131\033\337\237\102
+\024\256\176\317\250\260\146\145\332\067\257\237\252\075\352\050
+\266\336\325\061\130\026\202\133\352\273\031\165\002\163\032\312
+\110\032\041\223\220\012\216\223\204\247\175\073\043\030\222\211
+\240\215\254
+END
+CKA_NSS_MOZILLA_CA_POLICY CK_BBOOL CK_TRUE
+CKA_NSS_SERVER_DISTRUST_AFTER CK_BBOOL CK_FALSE
+CKA_NSS_EMAIL_DISTRUST_AFTER CK_BBOOL CK_FALSE
+
+# Trust for "ANF Secure Server Root CA"
+# Issuer: CN=ANF Secure Server Root CA,OU=ANF CA Raiz,O=ANF Autoridad de Certificacion,C=ES,serialNumber=G63287510
+# Serial Number:0d:d3:e3:bc:6c:f9:6b:b1
+# Subject: CN=ANF Secure Server Root CA,OU=ANF CA Raiz,O=ANF Autoridad de Certificacion,C=ES,serialNumber=G63287510
+# Not Valid Before: Wed Sep 04 10:00:38 2019
+# Not Valid After : Tue Aug 30 10:00:38 2039
+# Fingerprint (SHA-256): FB:8F:EC:75:91:69:B9:10:6B:1E:51:16:44:C6:18:C5:13:04:37:3F:6C:06:43:08:8D:8B:EF:FD:1B:99:75:99
+# Fingerprint (SHA1): 5B:6E:68:D0:CC:15:B6:A0:5F:1E:C1:5F:AE:02:FC:6B:2F:5D:6F:74
+CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST
+CKA_TOKEN CK_BBOOL CK_TRUE
+CKA_PRIVATE CK_BBOOL CK_FALSE
+CKA_MODIFIABLE CK_BBOOL CK_FALSE
+CKA_LABEL UTF8 "ANF Secure Server Root CA"
+CKA_CERT_SHA1_HASH MULTILINE_OCTAL
+\133\156\150\320\314\025\266\240\137\036\301\137\256\002\374\153
+\057\135\157\164
+END
+CKA_CERT_MD5_HASH MULTILINE_OCTAL
+\046\246\104\132\331\257\116\057\262\035\266\145\260\116\350\226
+END
+CKA_ISSUER MULTILINE_OCTAL
+\060\201\204\061\022\060\020\006\003\125\004\005\023\011\107\066
+\063\062\070\067\065\061\060\061\013\060\011\006\003\125\004\006
+\023\002\105\123\061\047\060\045\006\003\125\004\012\023\036\101
+\116\106\040\101\165\164\157\162\151\144\141\144\040\144\145\040
+\103\145\162\164\151\146\151\143\141\143\151\157\156\061\024\060
+\022\006\003\125\004\013\023\013\101\116\106\040\103\101\040\122
+\141\151\172\061\042\060\040\006\003\125\004\003\023\031\101\116
+\106\040\123\145\143\165\162\145\040\123\145\162\166\145\162\040
+\122\157\157\164\040\103\101
+END
+CKA_SERIAL_NUMBER MULTILINE_OCTAL
+\002\010\015\323\343\274\154\371\153\261
+END
+CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR
+CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_MUST_VERIFY_TRUST
+CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_MUST_VERIFY_TRUST
+CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE
+
+#
+# Certificate "Certum EC-384 CA"
+#
+# Issuer: CN=Certum EC-384 CA,OU=Certum Certification Authority,O=Asseco Data Systems S.A.,C=PL
+# Serial Number:78:8f:27:5c:81:12:52:20:a5:04:d0:2d:dd:ba:73:f4
+# Subject: CN=Certum EC-384 CA,OU=Certum Certification Authority,O=Asseco Data Systems S.A.,C=PL
+# Not Valid Before: Mon Mar 26 07:24:54 2018
+# Not Valid After : Thu Mar 26 07:24:54 2043
+# Fingerprint (SHA-256): 6B:32:80:85:62:53:18:AA:50:D1:73:C9:8D:8B:DA:09:D5:7E:27:41:3D:11:4C:F7:87:A0:F5:D0:6C:03:0C:F6
+# Fingerprint (SHA1): F3:3E:78:3C:AC:DF:F4:A2:CC:AC:67:55:69:56:D7:E5:16:3C:E1:ED
+CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE
+CKA_TOKEN CK_BBOOL CK_TRUE
+CKA_PRIVATE CK_BBOOL CK_FALSE
+CKA_MODIFIABLE CK_BBOOL CK_FALSE
+CKA_LABEL UTF8 "Certum EC-384 CA"
+CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509
+CKA_SUBJECT MULTILINE_OCTAL
+\060\164\061\013\060\011\006\003\125\004\006\023\002\120\114\061
+\041\060\037\006\003\125\004\012\023\030\101\163\163\145\143\157
+\040\104\141\164\141\040\123\171\163\164\145\155\163\040\123\056
+\101\056\061\047\060\045\006\003\125\004\013\023\036\103\145\162
+\164\165\155\040\103\145\162\164\151\146\151\143\141\164\151\157
+\156\040\101\165\164\150\157\162\151\164\171\061\031\060\027\006
+\003\125\004\003\023\020\103\145\162\164\165\155\040\105\103\055
+\063\070\064\040\103\101
+END
+CKA_ID UTF8 "0"
+CKA_ISSUER MULTILINE_OCTAL
+\060\164\061\013\060\011\006\003\125\004\006\023\002\120\114\061
+\041\060\037\006\003\125\004\012\023\030\101\163\163\145\143\157
+\040\104\141\164\141\040\123\171\163\164\145\155\163\040\123\056
+\101\056\061\047\060\045\006\003\125\004\013\023\036\103\145\162
+\164\165\155\040\103\145\162\164\151\146\151\143\141\164\151\157
+\156\040\101\165\164\150\157\162\151\164\171\061\031\060\027\006
+\003\125\004\003\023\020\103\145\162\164\165\155\040\105\103\055
+\063\070\064\040\103\101
+END
+CKA_SERIAL_NUMBER MULTILINE_OCTAL
+\002\020\170\217\047\134\201\022\122\040\245\004\320\055\335\272
+\163\364
+END
+CKA_VALUE MULTILINE_OCTAL
+\060\202\002\145\060\202\001\353\240\003\002\001\002\002\020\170
+\217\047\134\201\022\122\040\245\004\320\055\335\272\163\364\060
+\012\006\010\052\206\110\316\075\004\003\003\060\164\061\013\060
+\011\006\003\125\004\006\023\002\120\114\061\041\060\037\006\003
+\125\004\012\023\030\101\163\163\145\143\157\040\104\141\164\141
+\040\123\171\163\164\145\155\163\040\123\056\101\056\061\047\060
+\045\006\003\125\004\013\023\036\103\145\162\164\165\155\040\103
+\145\162\164\151\146\151\143\141\164\151\157\156\040\101\165\164
+\150\157\162\151\164\171\061\031\060\027\006\003\125\004\003\023
+\020\103\145\162\164\165\155\040\105\103\055\063\070\064\040\103
+\101\060\036\027\015\061\070\060\063\062\066\060\067\062\064\065
+\064\132\027\015\064\063\060\063\062\066\060\067\062\064\065\064
+\132\060\164\061\013\060\011\006\003\125\004\006\023\002\120\114
+\061\041\060\037\006\003\125\004\012\023\030\101\163\163\145\143
+\157\040\104\141\164\141\040\123\171\163\164\145\155\163\040\123
+\056\101\056\061\047\060\045\006\003\125\004\013\023\036\103\145
+\162\164\165\155\040\103\145\162\164\151\146\151\143\141\164\151
+\157\156\040\101\165\164\150\157\162\151\164\171\061\031\060\027
+\006\003\125\004\003\023\020\103\145\162\164\165\155\040\105\103
+\055\063\070\064\040\103\101\060\166\060\020\006\007\052\206\110
+\316\075\002\001\006\005\053\201\004\000\042\003\142\000\004\304
+\050\216\253\030\133\152\276\156\144\067\143\344\315\354\253\072
+\367\314\241\270\016\202\111\327\206\051\237\241\224\362\343\140
+\170\230\201\170\006\115\362\354\232\016\127\140\203\237\264\346
+\027\057\032\263\135\002\133\211\043\074\302\021\005\052\247\210
+\023\030\363\120\204\327\275\064\054\047\211\125\377\316\114\347
+\337\246\037\050\304\360\124\303\271\174\267\123\255\353\302\243
+\102\060\100\060\017\006\003\125\035\023\001\001\377\004\005\060
+\003\001\001\377\060\035\006\003\125\035\016\004\026\004\024\215
+\006\146\164\044\166\072\363\211\367\274\326\275\107\175\057\274
+\020\137\113\060\016\006\003\125\035\017\001\001\377\004\004\003
+\002\001\006\060\012\006\010\052\206\110\316\075\004\003\003\003
+\150\000\060\145\002\060\003\125\055\246\346\030\304\174\357\311
+\120\156\301\047\017\234\207\257\156\325\033\010\030\275\222\051
+\301\357\224\221\170\322\072\034\125\211\142\345\033\011\036\272
+\144\153\361\166\264\324\002\061\000\264\102\204\231\377\253\347
+\236\373\221\227\047\135\334\260\133\060\161\316\136\070\032\152
+\331\045\347\352\367\141\222\126\370\352\332\066\302\207\145\226
+\056\162\045\057\177\337\303\023\311
+END
+CKA_NSS_MOZILLA_CA_POLICY CK_BBOOL CK_TRUE
+CKA_NSS_SERVER_DISTRUST_AFTER CK_BBOOL CK_FALSE
+CKA_NSS_EMAIL_DISTRUST_AFTER CK_BBOOL CK_FALSE
+
+# Trust for "Certum EC-384 CA"
+# Issuer: CN=Certum EC-384 CA,OU=Certum Certification Authority,O=Asseco Data Systems S.A.,C=PL
+# Serial Number:78:8f:27:5c:81:12:52:20:a5:04:d0:2d:dd:ba:73:f4
+# Subject: CN=Certum EC-384 CA,OU=Certum Certification Authority,O=Asseco Data Systems S.A.,C=PL
+# Not Valid Before: Mon Mar 26 07:24:54 2018
+# Not Valid After : Thu Mar 26 07:24:54 2043
+# Fingerprint (SHA-256): 6B:32:80:85:62:53:18:AA:50:D1:73:C9:8D:8B:DA:09:D5:7E:27:41:3D:11:4C:F7:87:A0:F5:D0:6C:03:0C:F6
+# Fingerprint (SHA1): F3:3E:78:3C:AC:DF:F4:A2:CC:AC:67:55:69:56:D7:E5:16:3C:E1:ED
+CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST
+CKA_TOKEN CK_BBOOL CK_TRUE
+CKA_PRIVATE CK_BBOOL CK_FALSE
+CKA_MODIFIABLE CK_BBOOL CK_FALSE
+CKA_LABEL UTF8 "Certum EC-384 CA"
+CKA_CERT_SHA1_HASH MULTILINE_OCTAL
+\363\076\170\074\254\337\364\242\314\254\147\125\151\126\327\345
+\026\074\341\355
+END
+CKA_CERT_MD5_HASH MULTILINE_OCTAL
+\266\145\263\226\140\227\022\241\354\116\341\075\243\306\311\361
+END
+CKA_ISSUER MULTILINE_OCTAL
+\060\164\061\013\060\011\006\003\125\004\006\023\002\120\114\061
+\041\060\037\006\003\125\004\012\023\030\101\163\163\145\143\157
+\040\104\141\164\141\040\123\171\163\164\145\155\163\040\123\056
+\101\056\061\047\060\045\006\003\125\004\013\023\036\103\145\162
+\164\165\155\040\103\145\162\164\151\146\151\143\141\164\151\157
+\156\040\101\165\164\150\157\162\151\164\171\061\031\060\027\006
+\003\125\004\003\023\020\103\145\162\164\165\155\040\105\103\055
+\063\070\064\040\103\101
+END
+CKA_SERIAL_NUMBER MULTILINE_OCTAL
+\002\020\170\217\047\134\201\022\122\040\245\004\320\055\335\272
+\163\364
+END
+CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR
+CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR
+CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_MUST_VERIFY_TRUST
+CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE
+
+#
+# Certificate "Certum Trusted Root CA"
+#
+# Issuer: CN=Certum Trusted Root CA,OU=Certum Certification Authority,O=Asseco Data Systems S.A.,C=PL
+# Serial Number:1e:bf:59:50:b8:c9:80:37:4c:06:f7:eb:55:4f:b5:ed
+# Subject: CN=Certum Trusted Root CA,OU=Certum Certification Authority,O=Asseco Data Systems S.A.,C=PL
+# Not Valid Before: Fri Mar 16 12:10:13 2018
+# Not Valid After : Mon Mar 16 12:10:13 2043
+# Fingerprint (SHA-256): FE:76:96:57:38:55:77:3E:37:A9:5E:7A:D4:D9:CC:96:C3:01:57:C1:5D:31:76:5B:A9:B1:57:04:E1:AE:78:FD
+# Fingerprint (SHA1): C8:83:44:C0:18:AE:9F:CC:F1:87:B7:8F:22:D1:C5:D7:45:84:BA:E5
+CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE
+CKA_TOKEN CK_BBOOL CK_TRUE
+CKA_PRIVATE CK_BBOOL CK_FALSE
+CKA_MODIFIABLE CK_BBOOL CK_FALSE
+CKA_LABEL UTF8 "Certum Trusted Root CA"
+CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509
+CKA_SUBJECT MULTILINE_OCTAL
+\060\172\061\013\060\011\006\003\125\004\006\023\002\120\114\061
+\041\060\037\006\003\125\004\012\023\030\101\163\163\145\143\157
+\040\104\141\164\141\040\123\171\163\164\145\155\163\040\123\056
+\101\056\061\047\060\045\006\003\125\004\013\023\036\103\145\162
+\164\165\155\040\103\145\162\164\151\146\151\143\141\164\151\157
+\156\040\101\165\164\150\157\162\151\164\171\061\037\060\035\006
+\003\125\004\003\023\026\103\145\162\164\165\155\040\124\162\165
+\163\164\145\144\040\122\157\157\164\040\103\101
+END
+CKA_ID UTF8 "0"
+CKA_ISSUER MULTILINE_OCTAL
+\060\172\061\013\060\011\006\003\125\004\006\023\002\120\114\061
+\041\060\037\006\003\125\004\012\023\030\101\163\163\145\143\157
+\040\104\141\164\141\040\123\171\163\164\145\155\163\040\123\056
+\101\056\061\047\060\045\006\003\125\004\013\023\036\103\145\162
+\164\165\155\040\103\145\162\164\151\146\151\143\141\164\151\157
+\156\040\101\165\164\150\157\162\151\164\171\061\037\060\035\006
+\003\125\004\003\023\026\103\145\162\164\165\155\040\124\162\165
+\163\164\145\144\040\122\157\157\164\040\103\101
+END
+CKA_SERIAL_NUMBER MULTILINE_OCTAL
+\002\020\036\277\131\120\270\311\200\067\114\006\367\353\125\117
+\265\355
+END
+CKA_VALUE MULTILINE_OCTAL
+\060\202\005\300\060\202\003\250\240\003\002\001\002\002\020\036
+\277\131\120\270\311\200\067\114\006\367\353\125\117\265\355\060
+\015\006\011\052\206\110\206\367\015\001\001\015\005\000\060\172
+\061\013\060\011\006\003\125\004\006\023\002\120\114\061\041\060
+\037\006\003\125\004\012\023\030\101\163\163\145\143\157\040\104
+\141\164\141\040\123\171\163\164\145\155\163\040\123\056\101\056
+\061\047\060\045\006\003\125\004\013\023\036\103\145\162\164\165
+\155\040\103\145\162\164\151\146\151\143\141\164\151\157\156\040
+\101\165\164\150\157\162\151\164\171\061\037\060\035\006\003\125
+\004\003\023\026\103\145\162\164\165\155\040\124\162\165\163\164
+\145\144\040\122\157\157\164\040\103\101\060\036\027\015\061\070
+\060\063\061\066\061\062\061\060\061\063\132\027\015\064\063\060
+\063\061\066\061\062\061\060\061\063\132\060\172\061\013\060\011
+\006\003\125\004\006\023\002\120\114\061\041\060\037\006\003\125
+\004\012\023\030\101\163\163\145\143\157\040\104\141\164\141\040
+\123\171\163\164\145\155\163\040\123\056\101\056\061\047\060\045
+\006\003\125\004\013\023\036\103\145\162\164\165\155\040\103\145
+\162\164\151\146\151\143\141\164\151\157\156\040\101\165\164\150
+\157\162\151\164\171\061\037\060\035\006\003\125\004\003\023\026
+\103\145\162\164\165\155\040\124\162\165\163\164\145\144\040\122
+\157\157\164\040\103\101\060\202\002\042\060\015\006\011\052\206
+\110\206\367\015\001\001\001\005\000\003\202\002\017\000\060\202
+\002\012\002\202\002\001\000\321\055\216\273\267\066\352\155\067
+\221\237\116\223\247\005\344\051\003\045\316\034\202\367\174\231
+\237\101\006\315\355\243\272\300\333\011\054\301\174\337\051\176
+\113\145\057\223\247\324\001\153\003\050\030\243\330\235\005\301
+\052\330\105\361\221\336\337\073\320\200\002\214\317\070\017\352
+\247\134\170\021\244\301\310\205\134\045\323\323\262\347\045\317
+\021\124\227\253\065\300\036\166\034\357\000\123\237\071\334\024
+\245\054\042\045\263\162\162\374\215\263\345\076\010\036\024\052
+\067\013\210\074\312\260\364\310\302\241\256\274\301\276\051\147
+\125\342\374\255\131\134\376\275\127\054\260\220\215\302\355\067
+\266\174\231\210\265\325\003\232\075\025\015\075\072\250\250\105
+\360\225\116\045\131\035\315\230\151\273\323\314\062\311\215\357
+\201\376\255\175\211\273\272\140\023\312\145\225\147\240\363\031
+\366\003\126\324\152\323\047\342\241\255\203\360\112\022\042\167
+\034\005\163\342\031\161\102\300\354\165\106\232\220\130\340\152
+\216\053\245\106\060\004\216\031\262\027\343\276\251\272\177\126
+\361\044\003\327\262\041\050\166\016\066\060\114\171\325\101\232
+\232\250\270\065\272\014\072\362\104\033\040\210\367\305\045\327
+\075\306\343\076\103\335\207\376\304\352\365\123\076\114\145\377
+\073\112\313\170\132\153\027\137\015\307\303\117\116\232\052\242
+\355\127\115\042\342\106\232\077\017\221\064\044\175\125\343\214
+\225\067\323\032\360\011\053\054\322\311\215\264\015\000\253\147
+\051\050\330\001\365\031\004\266\035\276\166\376\162\134\304\205
+\312\322\200\101\337\005\250\243\325\204\220\117\013\363\340\077
+\233\031\322\067\211\077\362\173\122\034\214\366\341\367\074\007
+\227\214\016\242\131\201\014\262\220\075\323\343\131\106\355\017
+\251\247\336\200\153\132\252\007\266\031\313\274\127\363\227\041
+\172\014\261\053\164\076\353\332\247\147\055\114\304\230\236\066
+\011\166\146\146\374\032\077\352\110\124\034\276\060\275\200\120
+\277\174\265\316\000\366\014\141\331\347\044\003\340\343\001\201
+\016\275\330\205\064\210\275\262\066\250\173\134\010\345\104\200
+\214\157\370\057\325\041\312\035\034\320\373\304\265\207\321\072
+\116\307\166\265\065\110\265\002\003\001\000\001\243\102\060\100
+\060\017\006\003\125\035\023\001\001\377\004\005\060\003\001\001
+\377\060\035\006\003\125\035\016\004\026\004\024\214\373\034\165
+\274\002\323\237\116\056\110\331\371\140\124\252\304\263\117\372
+\060\016\006\003\125\035\017\001\001\377\004\004\003\002\001\006
+\060\015\006\011\052\206\110\206\367\015\001\001\015\005\000\003
+\202\002\001\000\110\242\325\000\013\056\320\077\274\034\325\265
+\124\111\036\132\153\364\344\362\340\100\067\340\314\024\173\271
+\311\372\065\265\165\027\223\152\005\151\205\234\315\117\031\170
+\133\031\201\363\143\076\303\316\133\217\365\057\136\001\166\023
+\077\054\000\271\315\226\122\071\111\155\004\116\305\351\017\206
+\015\341\372\263\137\202\022\361\072\316\146\006\044\064\053\350
+\314\312\347\151\334\207\235\302\064\327\171\321\323\167\270\252
+\131\130\376\235\046\372\070\206\076\235\212\207\144\127\345\027
+\072\342\371\215\271\343\063\170\301\220\330\270\335\267\203\121
+\344\304\314\043\325\006\174\346\121\323\315\064\061\300\366\106
+\273\013\255\374\075\020\005\052\073\112\221\045\356\214\324\204
+\207\200\052\274\011\214\252\072\023\137\350\064\171\120\301\020
+\031\371\323\050\036\324\321\121\060\051\263\256\220\147\326\037
+\012\143\261\305\251\306\102\061\143\027\224\357\151\313\057\372
+\214\024\175\304\103\030\211\331\360\062\100\346\200\342\106\137
+\345\343\301\000\131\250\371\350\040\274\211\054\016\107\064\013
+\352\127\302\123\066\374\247\324\257\061\315\376\002\345\165\372
+\271\047\011\371\363\365\073\312\175\237\251\042\313\210\311\252
+\321\107\075\066\167\250\131\144\153\047\317\357\047\301\343\044
+\265\206\367\256\176\062\115\260\171\150\321\071\350\220\130\303
+\203\274\017\054\326\227\353\316\014\341\040\307\332\267\076\303
+\077\277\057\334\064\244\373\053\041\315\147\217\113\364\343\352
+\324\077\347\117\272\271\245\223\105\034\146\037\041\372\144\136
+\157\340\166\224\062\313\165\365\156\345\366\217\307\270\244\314
+\250\226\175\144\373\044\132\112\003\154\153\070\306\350\003\103
+\232\367\127\271\263\051\151\223\070\364\003\362\273\373\202\153
+\007\040\321\122\037\232\144\002\173\230\146\333\134\115\132\017
+\320\204\225\240\074\024\103\006\312\312\333\270\101\066\332\152
+\104\147\207\257\257\343\105\021\025\151\010\262\276\026\071\227
+\044\157\022\105\321\147\135\011\250\311\025\332\372\322\246\137
+\023\141\037\277\205\254\264\255\255\005\224\010\203\036\165\027
+\323\161\073\223\120\043\131\240\355\074\221\124\235\166\000\305
+\303\270\070\333
+END
+CKA_NSS_MOZILLA_CA_POLICY CK_BBOOL CK_TRUE
+CKA_NSS_SERVER_DISTRUST_AFTER CK_BBOOL CK_FALSE
+CKA_NSS_EMAIL_DISTRUST_AFTER CK_BBOOL CK_FALSE
+
+# Trust for "Certum Trusted Root CA"
+# Issuer: CN=Certum Trusted Root CA,OU=Certum Certification Authority,O=Asseco Data Systems S.A.,C=PL
+# Serial Number:1e:bf:59:50:b8:c9:80:37:4c:06:f7:eb:55:4f:b5:ed
+# Subject: CN=Certum Trusted Root CA,OU=Certum Certification Authority,O=Asseco Data Systems S.A.,C=PL
+# Not Valid Before: Fri Mar 16 12:10:13 2018
+# Not Valid After : Mon Mar 16 12:10:13 2043
+# Fingerprint (SHA-256): FE:76:96:57:38:55:77:3E:37:A9:5E:7A:D4:D9:CC:96:C3:01:57:C1:5D:31:76:5B:A9:B1:57:04:E1:AE:78:FD
+# Fingerprint (SHA1): C8:83:44:C0:18:AE:9F:CC:F1:87:B7:8F:22:D1:C5:D7:45:84:BA:E5
+CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST
+CKA_TOKEN CK_BBOOL CK_TRUE
+CKA_PRIVATE CK_BBOOL CK_FALSE
+CKA_MODIFIABLE CK_BBOOL CK_FALSE
+CKA_LABEL UTF8 "Certum Trusted Root CA"
+CKA_CERT_SHA1_HASH MULTILINE_OCTAL
+\310\203\104\300\030\256\237\314\361\207\267\217\042\321\305\327
+\105\204\272\345
+END
+CKA_CERT_MD5_HASH MULTILINE_OCTAL
+\121\341\302\347\376\114\204\257\131\016\057\364\124\157\352\051
+END
+CKA_ISSUER MULTILINE_OCTAL
+\060\172\061\013\060\011\006\003\125\004\006\023\002\120\114\061
+\041\060\037\006\003\125\004\012\023\030\101\163\163\145\143\157
+\040\104\141\164\141\040\123\171\163\164\145\155\163\040\123\056
+\101\056\061\047\060\045\006\003\125\004\013\023\036\103\145\162
+\164\165\155\040\103\145\162\164\151\146\151\143\141\164\151\157
+\156\040\101\165\164\150\157\162\151\164\171\061\037\060\035\006
+\003\125\004\003\023\026\103\145\162\164\165\155\040\124\162\165
+\163\164\145\144\040\122\157\157\164\040\103\101
+END
+CKA_SERIAL_NUMBER MULTILINE_OCTAL
+\002\020\036\277\131\120\270\311\200\067\114\006\367\353\125\117
+\265\355
+END
+CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR
+CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR
+CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_MUST_VERIFY_TRUST
+CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE
require "${General::swroot}/network-functions.pl";
+# This function executes a shell command without forking a shell or do any other
+# Perl-voodoo before it. It deprecates the "system" command and is the only way
+# to call shell commands.
+sub safe_system($) {
+ my @command = @_;
+
+ system { ${command[0]} } @command;
+
+ # Return exit code
+ return $? >> 8;
+}
+
+# Calls a process in the background and returns nothing
+sub system_background($) {
+ my $pid = fork();
+
+ unless ($pid) {
+ my $rc = &system(@_);
+ exit($rc);
+ }
+
+ return 0;
+}
+
+# Returns the output of a shell command
+sub system_output($) {
+ my @command = @_;
+ my $pid;
+ my @output = ();
+
+ unless ($pid = open(OUTPUT, "-|")) {
+ open(STDERR, ">&STDOUT");
+ exec { ${command[0]} } @command;
+ die "Could not execute @command: $!";
+ }
+
+ waitpid($pid, 0);
+
+ while (<OUTPUT>) {
+ push(@output, $_);
+ }
+ close(OUTPUT);
+
+ return @output;
+}
+
+# Calls a shell command and throws away the output
+sub system($) {
+ my @command = @_;
+
+ open(SAVEOUT, ">&STDOUT");
+ open(SAVEERR, ">&STDERR");
+
+ open(STDOUT, ">/dev/null");
+ open(STDERR, ">&STDOUT");
+
+ select(STDERR); $|=1;
+ select(STDOUT); $|=1;
+
+ my $rc = &safe_system(@command);
+
+ close(STDOUT);
+ close(STDERR);
+
+ # Restore
+ open(STDOUT, ">&SAVEOUT");
+ open(STDERR, ">&SAVEERR");
+
+ return $rc;
+}
+
# Function to remove duplicates from an array
sub uniq { my %seen; grep !$seen{$_}++, @_ }
my $logmessage = $_[0];
$logmessage =~ /([\w\W]*)/;
$logmessage = $1;
- system('logger', '-t', $tag, $logmessage);
+ &system('logger', '-t', $tag, $logmessage);
}
sub setup_default_networks
{
}
sub firewall_reload() {
- system("/usr/local/bin/firewallctrl");
+ &system("/usr/local/bin/firewallctrl");
}
# Function which will return the used interface for the red network zone (red0, ppp0, etc).
#
sub checkdiskspace () {
# Call diskfree to gather the free disk space of /var.
- my @df = `/bin/df -B M /var`;
+ my @df = &General::system_output("/bin/df", "-B", "M", "/var");
# Loop through the output.
foreach my $line (@df) {
# Call the suricatactrl binary and pass the "cron" command
# with the requrested interval.
- system("$suricatactrl $option $interval &>/dev/null");
+ &General::system("$suricatactrl", "$option", "$interval");
# Return "1" - True.
return 1;
} else {
# Call the suricatactrl binary and pass the requrested
# option to it.
- system("$suricatactrl $option &>/dev/null");
+ &General::system("$suricatactrl", "$option");
# Return "1" - True.
return 1;
my $intf = shift;
if (!$wireless_status{$intf}) {
- $wireless_status{$intf} = `iwconfig $intf`;
+ $wireless_status{$intf} = &General::system_output("iwconfig", "$intf");
}
return $wireless_status{$intf};
+++ /dev/null
-#
-# DirectFB video modes, should be placed into "/etc"
-#
-
-mode "640x480 75Hz 16bit"
- # D: 31.50 MHz, H: 37.500 kHz, V: 75.00 Hz
- geometry 640 480 640 480 16
- timings 31747 120 16 16 1 64 3
-endmode
-
-mode "720x576 50Hz 16bit"
- geometry 720 576 720 576 16
- timings 31208 144 40 32 10 128 3
-endmode
-
-mode "768x576 75Hz 16bit"
- # D: 49.188 MHz, H: 46.580 kHz, V: 75.008 Hz
- geometry 768 576 768 576 16
- timings 20330 128 32 32 8 128 5
-endmode
-
-
-mode "800x600 75Hz 16bit"
- # D: 49.50 MHz, H: 46.875 kHz, V: 75.00 Hz
- geometry 800 600 800 600 16
- timings 20203 160 16 21 1 80 3
- hsync high
- vsync high
-endmode
-
-
-mode "1024x768 72Hz 16bit"
- # D: 75.00 MHz, H: 58.230 kHz, V: 72.245 Hz
- geometry 1024 768 1024 768 16
- timings 13334 104 24 29 3 136 6
-endmode
-
-
-mode "1280x1024-75"
- # D: 134.880 MHz, H: 79.905 kHz, V: 74.958 Hz
- geometry 1280 1024 1280 3264 16
- timings 7414 232 64 38 1 112 3
- hsync high
- vsync high
-endmode
-
-mode "1280x1024 60Hz 16bit"
- # D: 108.00 MHz, H: 63.981 kHz, V: 60.02 Hz
- geometry 1280 1024 1280 1024 16
- timings 9260 248 48 38 1 112 3
- hsync high
- vsync high
-endmode
-
-
-mode "1600x1200 60Hz 16bit"
- # D: 156.00 MHz, H: 76.200 kHz, V: 60.00 Hz
- geometry 1600 1200 1600 1200 16
- timings 6411 256 32 52 10 160 8
-endmode
-
-
-mode "640x400 93Hz 16bit"
- geometry 640 400 640 400 16
- timings 28272 48 32 17 22 128 12
-endmode
-
-mode "400x300 100Hz 16bit"
- geometry 400 300 400 300 16
- timings 31747 40 16 16 1 40 3
- double true
-endmode
-
-
-mode "320x240 85Hz 16bit"
- geometry 320 240 320 240 16
- timings 51383 32 32 20 4 48 1
- double true
-endmode
-
-mode "320x200 85Hz 16bit"
- geometry 320 200 320 200 16
- timings 60440 32 32 20 4 48 1
- double true
-endmode
local subnet="${1}"
local action="${2}"
+ # Nothing to be done if no action is requested
+ if [ "${action}" = "none" ]; then
+ return 0
+ fi
+
# Don't block a wildcard subnet
if [ "${subnet}" = "0.0.0.0/0" ] || [ "${subnet}" = "0.0.0.0/0.0.0.0" ]; then
return 0
case "${route}" in
route)
- action="drop"
+ action="none"
;;
*)
action="reject"
'title' => "$Lang::tr{'blue access'}",
'enabled' => 1,
};
- $subfirewall->{'80.upnp'} = {
- 'caption' => 'UPnP',
- 'uri' => '/cgi-bin/upnp.cgi',
- 'title' => "Universal Plug and Play",
- 'enabled' => 0,
- };
- $subfirewall->{'90.iptables'} = {
+ $subfirewall->{'90.iptables'} = {
'caption' => $Lang::tr{'ipts'},
'uri' => '/cgi-bin/iptables.cgi',
'title' => "$Lang::tr{'ipts'}",
+++ /dev/null
-
-# LAN network interfaces IPs / networks
-# there can be multiple listening ips for SSDP traffic.
-# should be under the form nnn.nnn.nnn.nnn/nn
-listening_ip=green0
-#listening_ip=green1
-
-# HTTP is available on all interfaces
-# port for HTTP (descriptions and SOAP) traffic. set 0 for autoselect.
-port=0
-
-# chain names for netfilter (not used for pf or ipf).
-upnp_forward_chain=UPNPFW
-upnp_nat_chain=UPNPFW
-
-# bitrates reported by daemon in bits per second
-bitrate_up=1000000
-bitrate_down=10000000
-
-# "secure" mode : when enabled, UPnP client are allowed to add mappings only
-# to their IP.
-secure_mode=yes
-
-# report system uptime instead of daemon uptime
-system_uptime=yes
-
-# notify interval in seconds. default is 30 seconds.
-notify_interval=60
-
-# unused rules cleaning.
-# never remove any rule before this threshold for the number
-# of redirections is exceeded. default to 20
-#clean_ruleset_threshold=10
-# clean process work interval in seconds. default to 0 (disabled).
-# a 600 seconds (10 minutes) interval makes sense
-clean_ruleset_interval=600
-
-# serial and model number the daemon will report to clients
-# in its XML description
-serial=12345678
-model_number=1
-
-# UPnP permission rules
-# (allow|deny) (external port range) ip/mask (internal port range)
-# A port range is <min port>-<max port> or <port> if there is only
-# one port in the range.
-# ip/mask format must be nn.nn.nn.nn/nn
-# it is advised to only allow redirection of port above 1024
-# and to finish the rule set with "deny 0-65535 0.0.0.0/0 0-65535"
-allow 0-65535 0.0.0.0/0 0-65535
+++ /dev/null
-# Rename this distribution example file to motion.conf
-#
-# This config file was generated by motion 3.2.11
-
-
-############################################################
-# Daemon
-############################################################
-
-# Start in daemon (background) mode and release terminal (default: off)
-daemon on
-
-# File to store the process ID, also called pid file. (default: not defined)
-process_id_file /var/run/motion.pid
-
-############################################################
-# Basic Setup Mode
-############################################################
-
-# Start in Setup-Mode, daemon disabled. (default: off)
-setup_mode off
-
-###########################################################
-# Capture device options
-############################################################
-
-# Videodevice to be used for capturing (default /dev/video0)
-# for FreeBSD default is /dev/bktr0
-videodevice /dev/video0
-
-# v4l2_palette allows to choose preferable palette to be use by motion
-# to capture from those supported by your videodevice. (default: 8)
-# E.g. if your videodevice supports both V4L2_PIX_FMT_SBGGR8 and
-# V4L2_PIX_FMT_MJPEG then motion will by default use V4L2_PIX_FMT_MJPEG.
-# Setting v4l2_palette to 1 forces motion to use V4L2_PIX_FMT_SBGGR8
-# instead.
-#
-# Values :
-# V4L2_PIX_FMT_SN9C10X : 0 'S910'
-# V4L2_PIX_FMT_SBGGR8 : 1 'BA81'
-# V4L2_PIX_FMT_MJPEG : 2 'MJPEG'
-# V4L2_PIX_FMT_JPEG : 3 'JPEG'
-# V4L2_PIX_FMT_RGB24 : 4 'RGB3'
-# V4L2_PIX_FMT_UYVY : 5 'UYVY'
-# V4L2_PIX_FMT_YUYV : 6 'YUYV'
-# V4L2_PIX_FMT_YUV422P : 7 '422P'
-# V4L2_PIX_FMT_YUV420 : 8 'YU12'
-v4l2_palette 8
-
-# Tuner device to be used for capturing using tuner as source (default /dev/tuner0)
-# This is ONLY used for FreeBSD. Leave it commented out for Linux
-; tunerdevice /dev/tuner0
-
-# The video input to be used (default: 8)
-# Should normally be set to 0 or 1 for video/TV cards, and 8 for USB cameras
-input 8
-
-# The video norm to use (only for video capture and TV tuner cards)
-# Values: 0 (PAL), 1 (NTSC), 2 (SECAM), 3 (PAL NC no colour). Default: 0 (PAL)
-norm 0
-
-# The frequency to set the tuner to (kHz) (only for TV tuner cards) (default: 0)
-frequency 0
-
-# Rotate image this number of degrees. The rotation affects all saved images as
-# well as mpeg movies. Valid values: 0 (default = no rotation), 90, 180 and 270.
-rotate 0
-
-# Image width (pixels). Valid range: Camera dependent, default: 352
-width 640
-
-# Image height (pixels). Valid range: Camera dependent, default: 288
-height 480
-
-# Maximum number of frames to be captured per second.
-# Valid range: 2-100. Default: 100 (almost no limit).
-framerate 2
-
-# Minimum time in seconds between capturing picture frames from the camera.
-# Default: 0 = disabled - the capture rate is given by the camera framerate.
-# This option is used when you want to capture images at a rate lower than 2 per second.
-minimum_frame_time 0
-
-# URL to use if you are using a network camera, size will be autodetected (incl http:// ftp:// or file:///)
-# Must be a URL that returns single jpeg pictures or a raw mjpeg stream. Default: Not defined
-; netcam_url value
-
-# Username and password for network camera (only if required). Default: not defined
-# Syntax is user:password
-; netcam_userpass value
-
-# The setting for keep-alive of network socket, should improve performance on compatible net cameras.
-# 1.0: The historical implementation using HTTP/1.0, closing the socket after each http request.
-# keep_alive: Use HTTP/1.0 requests with keep alive header to reuse the same connection.
-# 1.1: Use HTTP/1.1 requests that support keep alive as default.
-# Default: 1.0
-; netcam_http 1.0
-
-# URL to use for a netcam proxy server, if required, e.g. "http://myproxy".
-# If a port number other than 80 is needed, use "http://myproxy:1234".
-# Default: not defined
-; netcam_proxy value
-
-# Set less strict jpeg checks for network cameras with a poor/buggy firmware.
-# Default: off
-netcam_tolerant_check off
-
-# Let motion regulate the brightness of a video device (default: off).
-# The auto_brightness feature uses the brightness option as its target value.
-# If brightness is zero auto_brightness will adjust to average brightness value 128.
-# Only recommended for cameras without auto brightness
-auto_brightness on
-
-# Set the initial brightness of a video device.
-# If auto_brightness is enabled, this value defines the average brightness level
-# which Motion will try and adjust to.
-# Valid range 0-255, default 0 = disabled
-brightness 128
-
-# Set the contrast of a video device.
-# Valid range 0-255, default 0 = disabled
-contrast 0
-
-# Set the saturation of a video device.
-# Valid range 0-255, default 0 = disabled
-saturation 0
-
-# Set the hue of a video device (NTSC feature).
-# Valid range 0-255, default 0 = disabled
-hue 0
-
-
-############################################################
-# Round Robin (multiple inputs on same video device name)
-############################################################
-
-# Number of frames to capture in each roundrobin step (default: 1)
-roundrobin_frames 1
-
-# Number of frames to skip before each roundrobin step (default: 1)
-roundrobin_skip 1
-
-# Try to filter out noise generated by roundrobin (default: off)
-switchfilter off
-
-
-############################################################
-# Motion Detection Settings:
-############################################################
-
-# Threshold for number of changed pixels in an image that
-# triggers motion detection (default: 1500)
-threshold 1500
-
-# Automatically tune the threshold down if possible (default: off)
-threshold_tune off
-
-# Noise threshold for the motion detection (default: 32)
-noise_level 32
-
-# Automatically tune the noise threshold (default: on)
-noise_tune on
-
-# Despeckle motion image using (e)rode or (d)ilate or (l)abel (Default: not defined)
-# Recommended value is EedDl. Any combination (and number of) of E, e, d, and D is valid.
-# (l)abeling must only be used once and the 'l' must be the last letter.
-# Comment out to disable
-despeckle EedDl
-
-# Detect motion in predefined areas (1 - 9). Areas are numbered like that: 1 2 3
-# A script (on_area_detected) is started immediately when motion is 4 5 6
-# detected in one of the given areas, but only once during an event. 7 8 9
-# One or more areas can be specified with this option. (Default: not defined)
-; area_detect value
-
-# PGM file to use as a sensitivity mask.
-# Full path name to. (Default: not defined)
-; mask_file value
-
-# Dynamically create a mask file during operation (default: 0)
-# Adjust speed of mask changes from 0 (off) to 10 (fast)
-smart_mask_speed 0
-
-# Ignore sudden massive light intensity changes given as a percentage of the picture
-# area that changed intensity. Valid range: 0 - 100 , default: 0 = disabled
-lightswitch 0
-
-# Picture frames must contain motion at least the specified number of frames
-# in a row before they are detected as true motion. At the default of 1, all
-# motion is detected. Valid range: 1 to thousands, recommended 1-5
-minimum_motion_frames 1
-
-# Specifies the number of pre-captured (buffered) pictures from before motion
-# was detected that will be output at motion detection.
-# Recommended range: 0 to 5 (default: 0)
-# Do not use large values! Large values will cause Motion to skip video frames and
-# cause unsmooth mpegs. To smooth mpegs use larger values of post_capture instead.
-pre_capture 5
-
-# Number of frames to capture after motion is no longer detected (default: 0)
-post_capture 5
-
-# Gap is the seconds of no motion detection that triggers the end of an event
-# An event is defined as a series of motion images taken within a short timeframe.
-# Recommended value is 60 seconds (Default). The value 0 is allowed and disables
-# events causing all Motion to be written to one single mpeg file and no pre_capture.
-gap 0
-
-# Maximum length in seconds of an mpeg movie
-# When value is exceeded a new mpeg file is created. (Default: 0 = infinite)
-max_mpeg_time 86400
-
-# Always save images even if there was no motion (default: off)
-output_all off
-
-
-############################################################
-# Image File Output
-############################################################
-
-# Output 'normal' pictures when motion is detected (default: on)
-# Valid values: on, off, first, best, center
-# When set to 'first', only the first picture of an event is saved.
-# Picture with most motion of an event is saved when set to 'best'.
-# Picture with motion nearest center of picture is saved when set to 'center'.
-# Can be used as preview shot for the corresponding movie.
-output_normal off
-
-# Output pictures with only the pixels moving object (ghost images) (default: off)
-output_motion off
-
-# The quality (in percent) to be used by the jpeg compression (default: 75)
-quality 75
-
-# Output ppm images instead of jpeg (default: off)
-ppm off
-
-
-############################################################
-# FFMPEG related options
-# Film (mpeg) file output, and deinterlacing of the video input
-# The options movie_filename and timelapse_filename are also used
-# by the ffmpeg feature
-############################################################
-
-# Use ffmpeg to encode mpeg movies in realtime (default: off)
-ffmpeg_cap_new off
-
-# Use ffmpeg to make movies with only the pixels moving
-# object (ghost images) (default: off)
-ffmpeg_cap_motion off
-
-# Use ffmpeg to encode a timelapse movie
-# Default value 0 = off - else save frame every Nth second
-ffmpeg_timelapse 0
-
-# The file rollover mode of the timelapse video
-# Valid values: hourly, daily (default), weekly-sunday, weekly-monday, monthly, manual
-ffmpeg_timelapse_mode daily
-
-# Bitrate to be used by the ffmpeg encoder (default: 400000)
-# This option is ignored if ffmpeg_variable_bitrate is not 0 (disabled)
-ffmpeg_bps 500000
-
-# Enables and defines variable bitrate for the ffmpeg encoder.
-# ffmpeg_bps is ignored if variable bitrate is enabled.
-# Valid values: 0 (default) = fixed bitrate defined by ffmpeg_bps,
-# or the range 2 - 31 where 2 means best quality and 31 is worst.
-ffmpeg_variable_bitrate 0
-
-# Codec to used by ffmpeg for the video compression.
-# Timelapse mpegs are always made in mpeg1 format independent from this option.
-# Supported formats are: mpeg1 (ffmpeg-0.4.8 only), mpeg4 (default), and msmpeg4.
-# mpeg1 - gives you files with extension .mpg
-# mpeg4 or msmpeg4 - gives you files with extension .avi
-# msmpeg4 is recommended for use with Windows Media Player because
-# it requires no installation of codec on the Windows client.
-# swf - gives you a flash film with extension .swf
-# flv - gives you a flash video with extension .flv
-# ffv1 - FF video codec 1 for Lossless Encoding ( experimental )
-# mov - QuickTime ( testing )
-ffmpeg_video_codec msmpeg4
-
-# Use ffmpeg to deinterlace video. Necessary if you use an analog camera
-# and see horizontal combing on moving objects in video or pictures.
-# (default: off)
-ffmpeg_deinterlace off
-
-
-############################################################
-# Snapshots (Traditional Periodic Webcam File Output)
-############################################################
-
-# Make automated snapshot every N seconds (default: 0 = disabled)
-snapshot_interval 0
-
-
-############################################################
-# Text Display
-# %Y = year, %m = month, %d = date,
-# %H = hour, %M = minute, %S = second, %T = HH:MM:SS,
-# %v = event, %q = frame number, %t = thread (camera) number,
-# %D = changed pixels, %N = noise level, \n = new line,
-# %i and %J = width and height of motion area,
-# %K and %L = X and Y coordinates of motion center
-# %C = value defined by text_event - do not use with text_event!
-# You can put quotation marks around the text to allow
-# leading spaces
-############################################################
-
-# Locate and draw a box around the moving object.
-# Valid values: on, off and preview (default: off)
-# Set to 'preview' will only draw a box in preview_shot pictures.
-locate off
-
-# Draws the timestamp using same options as C function strftime(3)
-# Default: %Y-%m-%d\n%T = date in ISO format and time in 24 hour clock
-# Text is placed in lower right corner
-text_right %Y-%m-%d\n%T-%q
-
-# Draw a user defined text on the images using same options as C function strftime(3)
-# Default: Not defined = no text
-# Text is placed in lower left corner
-text_left CAMERA %t\nhttp://www.ipfire.org
-
-# Draw the number of changed pixed on the images (default: off)
-# Will normally be set to off except when you setup and adjust the motion settings
-# Text is placed in upper right corner
-text_changes off
-
-# This option defines the value of the special event conversion specifier %C
-# You can use any conversion specifier in this option except %C. Date and time
-# values are from the timestamp of the first image in the current event.
-# Default: %Y%m%d%H%M%S
-# The idea is that %C can be used filenames and text_left/right for creating
-# a unique identifier for each event.
-text_event %Y%m%d%H%M%S
-
-# Draw characters at twice normal size on images. (default: off)
-text_double off
-
-
-############################################################
-# Target Directories and filenames For Images And Films
-# For the options snapshot_, jpeg_, mpeg_ and timelapse_filename
-# you can use conversion specifiers
-# %Y = year, %m = month, %d = date,
-# %H = hour, %M = minute, %S = second,
-# %v = event, %q = frame number, %t = thread (camera) number,
-# %D = changed pixels, %N = noise level,
-# %i and %J = width and height of motion area,
-# %K and %L = X and Y coordinates of motion center
-# %C = value defined by text_event
-# Quotation marks round string are allowed.
-############################################################
-
-# Target base directory for pictures and films
-# Recommended to use absolute path. (Default: current working directory)
-target_dir /var/motion/cam1
-
-# File path for snapshots (jpeg or ppm) relative to target_dir
-# Default: %v-%Y%m%d%H%M%S-snapshot
-# Default value is equivalent to legacy oldlayout option
-# For Motion 3.0 compatible mode choose: %Y/%m/%d/%H/%M/%S-snapshot
-# File extension .jpg or .ppm is automatically added so do not include this.
-# Note: A symbolic link called lastsnap.jpg created in the target_dir will always
-# point to the latest snapshot, unless snapshot_filename is exactly 'lastsnap'
-snapshot_filename %v-%Y%m%d%H%M%S-snapshot
-
-# File path for motion triggered images (jpeg or ppm) relative to target_dir
-# Default: %v-%Y%m%d%H%M%S-%q
-# Default value is equivalent to legacy oldlayout option
-# For Motion 3.0 compatible mode choose: %Y/%m/%d/%H/%M/%S-%q
-# File extension .jpg or .ppm is automatically added so do not include this
-# Set to 'preview' together with best-preview feature enables special naming
-# convention for preview shots. See motion guide for details
-jpeg_filename %v-%Y%m%d%H%M%S-%q
-
-# File path for motion triggered ffmpeg films (mpeg) relative to target_dir
-# Default: %v-%Y%m%d%H%M%S
-# Default value is equivalent to legacy oldlayout option
-# For Motion 3.0 compatible mode choose: %Y/%m/%d/%H%M%S
-# File extension .mpg or .avi is automatically added so do not include this
-# This option was previously called ffmpeg_filename
-movie_filename %v-%Y%m%d%H%M%S
-
-# File path for timelapse mpegs relative to target_dir
-# Default: %Y%m%d-timelapse
-# Default value is near equivalent to legacy oldlayout option
-# For Motion 3.0 compatible mode choose: %Y/%m/%d-timelapse
-# File extension .mpg is automatically added so do not include this
-timelapse_filename %Y%m%d-timelapse
-
-
-############################################################
-# Live Webcam Server
-############################################################
-
-# The mini-http server listens to this port for requests (default: 0 = disabled)
-webcam_port 2500
-
-# Quality of the jpeg images produced (default: 50)
-webcam_quality 50
-
-# Output frames at 1 fps when no motion is detected and increase to the
-# rate given by webcam_maxrate when motion is detected (default: off)
-webcam_motion off
-
-# Maximum framerate for webcam streams (default: 1)
-webcam_maxrate 1
-
-# Restrict webcam connections to localhost only (default: on)
-webcam_localhost off
-
-# Limits the number of images per connection (default: 0 = unlimited)
-# Number can be defined by multiplying actual webcam rate by desired number of seconds
-# Actual webcam rate is the smallest of the numbers framerate and webcam_maxrate
-webcam_limit 0
-
-
-############################################################
-# HTTP Based Control
-############################################################
-
-# TCP/IP port for the http server to listen on (default: 0 = disabled)
-control_port 0
-
-# Restrict control connections to localhost only (default: on)
-control_localhost on
-
-# Output for http server, select off to choose raw text plain (default: on)
-control_html_output on
-
-# Authentication for the http based control. Syntax username:password
-# Default: not defined (Disabled)
-; control_authentication username:password
-
-
-############################################################
-# Tracking (Pan/Tilt)
-############################################################
-
-# Type of tracker (0=none (default), 1=stepper, 2=iomojo, 3=pwc, 4=generic, 5=uvcvideo)
-# The generic type enables the definition of motion center and motion size to
-# be used with the conversion specifiers for options like on_motion_detected
-track_type 0
-
-# Enable auto tracking (default: off)
-track_auto off
-
-# Serial port of motor (default: none)
-; track_port value
-
-# Motor number for x-axis (default: 0)
-track_motorx 0
-
-# Motor number for y-axis (default: 0)
-track_motory 0
-
-# Maximum value on x-axis (default: 0)
-track_maxx 0
-
-# Maximum value on y-axis (default: 0)
-track_maxy 0
-
-# ID of an iomojo camera if used (default: 0)
-track_iomojo_id 0
-
-# Angle in degrees the camera moves per step on the X-axis
-# with auto-track (default: 10)
-# Currently only used with pwc type cameras
-track_step_angle_x 10
-
-# Angle in degrees the camera moves per step on the Y-axis
-# with auto-track (default: 10)
-# Currently only used with pwc type cameras
-track_step_angle_y 10
-
-# Delay to wait for after tracking movement as number
-# of picture frames (default: 10)
-track_move_wait 10
-
-# Speed to set the motor to (stepper motor option) (default: 255)
-track_speed 255
-
-# Number of steps to make (stepper motor option) (default: 40)
-track_stepsize 40
-
-
-############################################################
-# External Commands, Warnings and Logging:
-# You can use conversion specifiers for the on_xxxx commands
-# %Y = year, %m = month, %d = date,
-# %H = hour, %M = minute, %S = second,
-# %v = event, %q = frame number, %t = thread (camera) number,
-# %D = changed pixels, %N = noise level,
-# %i and %J = width and height of motion area,
-# %K and %L = X and Y coordinates of motion center
-# %C = value defined by text_event
-# %f = filename with full path
-# %n = number indicating filetype
-# Both %f and %n are only defined for on_picture_save,
-# on_movie_start and on_movie_end
-# Quotation marks round string are allowed.
-############################################################
-
-# Do not sound beeps when detecting motion (default: on)
-# Note: Motion never beeps when running in daemon mode.
-quiet on
-
-# Command to be executed when an event starts. (default: none)
-# An event starts at first motion detected after a period of no motion defined by gap
-; on_event_start value
-
-# Command to be executed when an event ends after a period of no motion
-# (default: none). The period of no motion is defined by option gap.
-; on_event_end value
-
-# Command to be executed when a picture (.ppm|.jpg) is saved (default: none)
-# To give the filename as an argument to a command append it with %f
-; on_picture_save value
-
-# Command to be executed when a motion frame is detected (default: none)
-; on_motion_detected value
-
-# Command to be executed when motion in a predefined area is detected
-# Check option 'area_detect'. (default: none)
-; on_area_detected value
-
-# Command to be executed when a movie file (.mpg|.avi) is created. (default: none)
-# To give the filename as an argument to a command append it with %f
-; on_movie_start value
-
-# Command to be executed when a movie file (.mpg|.avi) is closed. (default: none)
-# To give the filename as an argument to a command append it with %f
-; on_movie_end value
-
-# Command to be executed when a camera can't be opened or if it is lost
-# NOTE: There is situations when motion doesn't detect a lost camera!
-# It depends on the driver, some drivers don't detect a lost camera at all
-# Some hang the motion thread. Some even hang the PC! (default: none)
-; on_camera_lost value
-
-############################################################
-# Common Options For MySQL and PostgreSQL database features.
-# Options require the MySQL/PostgreSQL options to be active also.
-############################################################
-
-# Log to the database when creating motion triggered image file (default: on)
-sql_log_image on
-
-# Log to the database when creating a snapshot image file (default: on)
-sql_log_snapshot on
-
-# Log to the database when creating motion triggered mpeg file (default: off)
-sql_log_mpeg off
-
-# Log to the database when creating timelapse mpeg file (default: off)
-sql_log_timelapse off
-
-# SQL query string that is sent to the database
-# Use same conversion specifiers has for text features
-# Additional special conversion specifiers are
-# %n = the number representing the file_type
-# %f = filename with full path
-# Default value:
-# insert into security(camera, filename, frame, file_type, time_stamp, text_event) values('%t', '%f', '%q', '%n', '%Y-%m-%d %T', '%C')
-sql_query insert into security(camera, filename, frame, file_type, time_stamp, event_time_stamp) values('%t', '%f', '%q', '%n', '%Y-%m-%d %T', '%C')
-
-
-############################################################
-# Database Options For MySQL
-############################################################
-
-# Mysql database to log to (default: not defined)
-; mysql_db value
-
-# The host on which the database is located (default: localhost)
-; mysql_host value
-
-# User account name for MySQL database (default: not defined)
-; mysql_user value
-
-# User password for MySQL database (default: not defined)
-; mysql_password value
-
-
-############################################################
-# Database Options For PostgreSQL
-############################################################
-
-# PostgreSQL database to log to (default: not defined)
-; pgsql_db value
-
-# The host on which the database is located (default: localhost)
-; pgsql_host value
-
-# User account name for PostgreSQL database (default: not defined)
-; pgsql_user value
-
-# User password for PostgreSQL database (default: not defined)
-; pgsql_password value
-
-# Port on which the PostgreSQL database is located (default: 5432)
-; pgsql_port 5432
-
-
-############################################################
-# Video Loopback Device (vloopback project)
-############################################################
-
-# Output images to a video4linux loopback device
-# The value '-' means next available (default: not defined)
-; video_pipe value
-
-# Output motion images to a video4linux loopback device
-# The value '-' means next available (default: not defined)
-; motion_video_pipe value
-
-
-##############################################################
-# Thread config files - One for each camera.
-# Except if only one camera - You only need this config file.
-# If you have more than one camera you MUST define one thread
-# config file for each camera in addition to this config file.
-##############################################################
-
-# Remember: If you have more than one camera you must have one
-# thread file for each camera. E.g. 2 cameras requires 3 files:
-# This motion.conf file AND thread1.conf and thread2.conf.
-# Only put the options that are unique to each camera in the
-# thread config files.
-; thread /usr/local/etc/thread1.conf
-; thread /usr/local/etc/thread2.conf
-; thread /usr/local/etc/thread3.conf
-; thread /usr/local/etc/thread4.conf
-
#usr/lib/perl5/site_perl/5.32.1/xxxMACHINExxx-linux-thread-multi/XML/Parser/Encodings/README
#usr/lib/perl5/site_perl/5.32.1/xxxMACHINExxx-linux-thread-multi/XML/Parser/Encodings/big5.enc
#usr/lib/perl5/site_perl/5.32.1/xxxMACHINExxx-linux-thread-multi/XML/Parser/Encodings/euc-kr.enc
+#usr/lib/perl5/site_perl/5.32.1/xxxMACHINExxx-linux-thread-multi/XML/Parser/Encodings/ibm866.enc
+#usr/lib/perl5/site_perl/5.32.1/xxxMACHINExxx-linux-thread-multi/XML/Parser/Encodings/iso-8859-15.enc
#usr/lib/perl5/site_perl/5.32.1/xxxMACHINExxx-linux-thread-multi/XML/Parser/Encodings/iso-8859-2.enc
#usr/lib/perl5/site_perl/5.32.1/xxxMACHINExxx-linux-thread-multi/XML/Parser/Encodings/iso-8859-3.enc
#usr/lib/perl5/site_perl/5.32.1/xxxMACHINExxx-linux-thread-multi/XML/Parser/Encodings/iso-8859-4.enc
#usr/lib/perl5/site_perl/5.32.1/xxxMACHINExxx-linux-thread-multi/XML/Parser/Encodings/iso-8859-7.enc
#usr/lib/perl5/site_perl/5.32.1/xxxMACHINExxx-linux-thread-multi/XML/Parser/Encodings/iso-8859-8.enc
#usr/lib/perl5/site_perl/5.32.1/xxxMACHINExxx-linux-thread-multi/XML/Parser/Encodings/iso-8859-9.enc
+#usr/lib/perl5/site_perl/5.32.1/xxxMACHINExxx-linux-thread-multi/XML/Parser/Encodings/koi8-r.enc
#usr/lib/perl5/site_perl/5.32.1/xxxMACHINExxx-linux-thread-multi/XML/Parser/Encodings/windows-1250.enc
+#usr/lib/perl5/site_perl/5.32.1/xxxMACHINExxx-linux-thread-multi/XML/Parser/Encodings/windows-1251.enc
#usr/lib/perl5/site_perl/5.32.1/xxxMACHINExxx-linux-thread-multi/XML/Parser/Encodings/windows-1252.enc
+#usr/lib/perl5/site_perl/5.32.1/xxxMACHINExxx-linux-thread-multi/XML/Parser/Encodings/windows-1255.enc
#usr/lib/perl5/site_perl/5.32.1/xxxMACHINExxx-linux-thread-multi/XML/Parser/Encodings/x-euc-jp-jisx0221.enc
#usr/lib/perl5/site_perl/5.32.1/xxxMACHINExxx-linux-thread-multi/XML/Parser/Encodings/x-euc-jp-unicode.enc
#usr/lib/perl5/site_perl/5.32.1/xxxMACHINExxx-linux-thread-multi/XML/Parser/Encodings/x-sjis-cp932.enc
#usr/lib/perl5/site_perl/5.32.1/xxxMACHINExxx-linux-thread-multi/auto/XML/Parser
#usr/lib/perl5/site_perl/5.32.1/xxxMACHINExxx-linux-thread-multi/auto/XML/Parser/.packlist
#usr/lib/perl5/site_perl/5.32.1/xxxMACHINExxx-linux-thread-multi/auto/XML/Parser/Expat
-#usr/lib/perl5/site_perl/5.32.1/xxxMACHINExxx-linux-thread-multi/auto/XML/Parser/Expat/Expat.bs
usr/lib/perl5/site_perl/5.32.1/xxxMACHINExxx-linux-thread-multi/auto/XML/Parser/Expat/Expat.so
#usr/share/man/man3/XML::Parser.3
#usr/share/man/man3/XML::Parser::Expat.3
etc/rc.d/init.d/networking/red
#etc/rc.d/init.d/networking/red.down
etc/rc.d/init.d/networking/red.down/10-ipsec
-etc/rc.d/init.d/networking/red.down/10-miniupnpd
etc/rc.d/init.d/networking/red.down/10-ovpn
etc/rc.d/init.d/networking/red.down/10-static-routes
etc/rc.d/init.d/networking/red.down/20-firewall
etc/rc.d/init.d/networking/red.down/99-beep
#etc/rc.d/init.d/networking/red.up
etc/rc.d/init.d/networking/red.up/01-conntrack-cleanup
-etc/rc.d/init.d/networking/red.up/10-miniupnpd
etc/rc.d/init.d/networking/red.up/10-multicast
etc/rc.d/init.d/networking/red.up/10-static-routes
etc/rc.d/init.d/networking/red.up/20-firewall
etc/rc.d/init.d/udev
etc/rc.d/init.d/udev_retry
etc/rc.d/init.d/unbound
-etc/rc.d/init.d/upnpd
etc/rc.d/init.d/vnstat
etc/rc.d/init.d/waitdrives
etc/rc.d/init.d/wlanclient
etc/rc.d/rc0.d/K79leds
etc/rc.d/rc0.d/K80network
etc/rc.d/rc0.d/K82wlanclient
-#etc/rc.d/rc0.d/K84bluetooth
#etc/rc.d/rc0.d/K85messagebus
etc/rc.d/rc0.d/K86unbound
etc/rc.d/rc0.d/K87acpid
etc/rc.d/rc3.d/S12acpid
etc/rc.d/rc3.d/S15fireinfo
#etc/rc.d/rc3.d/S15messagebus
-#etc/rc.d/rc3.d/S16bluetooth
#etc/rc.d/rc3.d/S18cpufreq
etc/rc.d/rc3.d/S19smartenabler
etc/rc.d/rc3.d/S19wlanclient
etc/rc.d/rc6.d/K79leds
etc/rc.d/rc6.d/K80network
etc/rc.d/rc6.d/K82wlanclient
-#etc/rc.d/rc6.d/K84bluetooth
#etc/rc.d/rc6.d/K85messagebus
etc/rc.d/rc6.d/K86unbound
etc/rc.d/rc6.d/K87acpid
#srv/web/ipfire/manual/getting-started.html
#srv/web/ipfire/manual/getting-started.html.en
#srv/web/ipfire/manual/getting-started.html.fr.utf8
+#srv/web/ipfire/manual/getting-started.html.ru.utf8
#srv/web/ipfire/manual/glossary.html
#srv/web/ipfire/manual/glossary.html.de
#srv/web/ipfire/manual/glossary.html.en
#srv/web/ipfire/manual/index.html.ja.utf8
#srv/web/ipfire/manual/index.html.ko.euc-kr
#srv/web/ipfire/manual/index.html.pt-br
+#srv/web/ipfire/manual/index.html.ru.utf8
#srv/web/ipfire/manual/index.html.tr.utf8
#srv/web/ipfire/manual/index.html.zh-cn.utf8
#srv/web/ipfire/manual/install.html
#srv/web/ipfire/manual/new_features_2_0.html.ja.utf8
#srv/web/ipfire/manual/new_features_2_0.html.ko.euc-kr
#srv/web/ipfire/manual/new_features_2_0.html.pt-br
-#srv/web/ipfire/manual/new_features_2_0.html.ru.koi8-r
#srv/web/ipfire/manual/new_features_2_0.html.tr.utf8
#srv/web/ipfire/manual/new_features_2_2.html
#srv/web/ipfire/manual/new_features_2_2.html.en
#usr/include/apache/http_main.h
#usr/include/apache/http_protocol.h
#usr/include/apache/http_request.h
+#usr/include/apache/http_ssl.h
#usr/include/apache/http_vhost.h
#usr/include/apache/httpd.h
#usr/include/apache/mod_auth.h
etc/rc.d/init.d/networking/red
#etc/rc.d/init.d/networking/red.down
etc/rc.d/init.d/networking/red.down/10-ipsec
-etc/rc.d/init.d/networking/red.down/10-miniupnpd
etc/rc.d/init.d/networking/red.down/10-ovpn
etc/rc.d/init.d/networking/red.down/10-static-routes
etc/rc.d/init.d/networking/red.down/20-firewall
etc/rc.d/init.d/networking/red.down/99-beep
#etc/rc.d/init.d/networking/red.up
etc/rc.d/init.d/networking/red.up/01-conntrack-cleanup
-etc/rc.d/init.d/networking/red.up/10-miniupnpd
etc/rc.d/init.d/networking/red.up/10-multicast
etc/rc.d/init.d/networking/red.up/10-static-routes
etc/rc.d/init.d/networking/red.up/20-firewall
etc/rc.d/init.d/udev
etc/rc.d/init.d/udev_retry
etc/rc.d/init.d/unbound
-etc/rc.d/init.d/upnpd
etc/rc.d/init.d/vnstat
etc/rc.d/init.d/waitdrives
etc/rc.d/init.d/wlanclient
etc/rc.d/rc0.d/K79leds
etc/rc.d/rc0.d/K80network
etc/rc.d/rc0.d/K82wlanclient
-#etc/rc.d/rc0.d/K84bluetooth
#etc/rc.d/rc0.d/K85messagebus
etc/rc.d/rc0.d/K86unbound
etc/rc.d/rc0.d/K87acpid
etc/rc.d/rc3.d/S12acpid
etc/rc.d/rc3.d/S15fireinfo
#etc/rc.d/rc3.d/S15messagebus
-#etc/rc.d/rc3.d/S16bluetooth
#etc/rc.d/rc3.d/S18cpufreq
etc/rc.d/rc3.d/S19smartenabler
etc/rc.d/rc3.d/S19wlanclient
etc/rc.d/rc6.d/K79leds
etc/rc.d/rc6.d/K80network
etc/rc.d/rc6.d/K82wlanclient
-#etc/rc.d/rc6.d/K84bluetooth
#etc/rc.d/rc6.d/K85messagebus
etc/rc.d/rc6.d/K86unbound
etc/rc.d/rc6.d/K87acpid
usr/lib/libbind9.so.161.0.4
#usr/lib/libdns.la
#usr/lib/libdns.so
-usr/lib/libdns.so.1113
-usr/lib/libdns.so.1113.0.2
+usr/lib/libdns.so.1115
+usr/lib/libdns.so.1115.0.0
#usr/lib/libisc.la
#usr/lib/libisc.so
usr/lib/libisc.so.1107
var/ipfire/updatexlrator
var/ipfire/updatexlrator/autocheck
var/ipfire/updatexlrator/bin
-var/ipfire/upnp
-#var/ipfire/upnp/settings
var/ipfire/urlfilter
#var/ipfire/urlfilter/autoupdate
#var/ipfire/urlfilter/bin
#usr/lib/conntrack-tools
#usr/lib/conntrack-tools/ct_helper_amanda.la
-usr/lib/conntrack-tools/ct_helper_amanda.so
+#usr/lib/conntrack-tools/ct_helper_amanda.so
#usr/lib/conntrack-tools/ct_helper_dhcpv6.la
#usr/lib/conntrack-tools/ct_helper_dhcpv6.so
#usr/lib/conntrack-tools/ct_helper_ftp.la
-usr/lib/conntrack-tools/ct_helper_ftp.so
+#usr/lib/conntrack-tools/ct_helper_ftp.so
#usr/lib/conntrack-tools/ct_helper_mdns.la
-usr/lib/conntrack-tools/ct_helper_mdns.so
+#usr/lib/conntrack-tools/ct_helper_mdns.so
#usr/lib/conntrack-tools/ct_helper_rpc.la
-usr/lib/conntrack-tools/ct_helper_rpc.so
+#usr/lib/conntrack-tools/ct_helper_rpc.so
#usr/lib/conntrack-tools/ct_helper_sane.la
-usr/lib/conntrack-tools/ct_helper_sane.so
+#usr/lib/conntrack-tools/ct_helper_sane.so
#usr/lib/conntrack-tools/ct_helper_slp.la
-usr/lib/conntrack-tools/ct_helper_slp.so
+#usr/lib/conntrack-tools/ct_helper_slp.so
#usr/lib/conntrack-tools/ct_helper_ssdp.la
-usr/lib/conntrack-tools/ct_helper_ssdp.so
+#usr/lib/conntrack-tools/ct_helper_ssdp.so
#usr/lib/conntrack-tools/ct_helper_tftp.la
-usr/lib/conntrack-tools/ct_helper_tftp.so
+#usr/lib/conntrack-tools/ct_helper_tftp.so
#usr/lib/conntrack-tools/ct_helper_tns.la
-usr/lib/conntrack-tools/ct_helper_tns.so
+#usr/lib/conntrack-tools/ct_helper_tns.so
usr/sbin/conntrack
usr/sbin/conntrackd
usr/sbin/nfct
#usr/share/man/man3/CURLOPT_AWS_SIGV4.3
#usr/share/man/man3/CURLOPT_BUFFERSIZE.3
#usr/share/man/man3/CURLOPT_CAINFO.3
+#usr/share/man/man3/CURLOPT_CAINFO_BLOB.3
#usr/share/man/man3/CURLOPT_CAPATH.3
#usr/share/man/man3/CURLOPT_CERTINFO.3
#usr/share/man/man3/CURLOPT_CHUNK_BGN_FUNCTION.3
#usr/share/man/man3/CURLOPT_PROXYUSERNAME.3
#usr/share/man/man3/CURLOPT_PROXYUSERPWD.3
#usr/share/man/man3/CURLOPT_PROXY_CAINFO.3
+#usr/share/man/man3/CURLOPT_PROXY_CAINFO_BLOB.3
#usr/share/man/man3/CURLOPT_PROXY_CAPATH.3
#usr/share/man/man3/CURLOPT_PROXY_CRLFILE.3
#usr/share/man/man3/CURLOPT_PROXY_ISSUERCERT.3
usr/sbin/ethtool
+#usr/share/bash-completion/completions/ethtool
#usr/share/man/man8/ethtool.8
#usr/include/expat.h
#usr/include/expat_config.h
#usr/include/expat_external.h
-#usr/lib/cmake/expat-2.3.0
-#usr/lib/cmake/expat-2.3.0/expat-config-version.cmake
-#usr/lib/cmake/expat-2.3.0/expat-config.cmake
-#usr/lib/cmake/expat-2.3.0/expat-noconfig.cmake
-#usr/lib/cmake/expat-2.3.0/expat.cmake
+#usr/lib/cmake/expat-2.4.1
+#usr/lib/cmake/expat-2.4.1/expat-config-version.cmake
+#usr/lib/cmake/expat-2.4.1/expat-config.cmake
+#usr/lib/cmake/expat-2.4.1/expat-noconfig.cmake
+#usr/lib/cmake/expat-2.4.1/expat.cmake
#usr/lib/libexpat.a
#usr/lib/libexpat.la
#usr/lib/libexpat.so
usr/lib/libexpat.so.1
-usr/lib/libexpat.so.1.7.0
+usr/lib/libexpat.so.1.8.1
#usr/lib/pkgconfig/expat.pc
#usr/share/doc/expat
-#usr/share/doc/expat-2.3.0
-#usr/share/doc/expat-2.3.0/expat.png
-#usr/share/doc/expat-2.3.0/reference.html
-#usr/share/doc/expat-2.3.0/style.css
-#usr/share/doc/expat-2.3.0/valid-xhtml10.png
+#usr/share/doc/expat-2.4.1
+#usr/share/doc/expat-2.4.1/ok.min.css
+#usr/share/doc/expat-2.4.1/reference.html
+#usr/share/doc/expat-2.4.1/style.css
+#usr/share/doc/expat-2.4.1/valid-xhtml10.png
#usr/share/doc/expat/AUTHORS
#usr/share/doc/expat/changelog
+++ /dev/null
-#usr/man/man5/fb.modes.5
-#usr/man/man8/fbset.8
-usr/sbin/fbset
-etc/fb.modes
usr/bin/sendprofile
-usr/lib/python2.7/site-packages/fireinfo
-usr/lib/python2.7/site-packages/fireinfo/__init__.py
-usr/lib/python2.7/site-packages/fireinfo/__init__.pyc
-usr/lib/python2.7/site-packages/fireinfo/__init__.pyo
-#usr/lib/python2.7/site-packages/fireinfo/_fireinfo.la
-usr/lib/python2.7/site-packages/fireinfo/_fireinfo.so
-usr/lib/python2.7/site-packages/fireinfo/bios.py
-usr/lib/python2.7/site-packages/fireinfo/bios.pyc
-usr/lib/python2.7/site-packages/fireinfo/bios.pyo
-usr/lib/python2.7/site-packages/fireinfo/cpu.py
-usr/lib/python2.7/site-packages/fireinfo/cpu.pyc
-usr/lib/python2.7/site-packages/fireinfo/cpu.pyo
-usr/lib/python2.7/site-packages/fireinfo/device.py
-usr/lib/python2.7/site-packages/fireinfo/device.pyc
-usr/lib/python2.7/site-packages/fireinfo/device.pyo
-usr/lib/python2.7/site-packages/fireinfo/hypervisor.py
-usr/lib/python2.7/site-packages/fireinfo/hypervisor.pyc
-usr/lib/python2.7/site-packages/fireinfo/hypervisor.pyo
-usr/lib/python2.7/site-packages/fireinfo/network.py
-usr/lib/python2.7/site-packages/fireinfo/network.pyc
-usr/lib/python2.7/site-packages/fireinfo/network.pyo
-usr/lib/python2.7/site-packages/fireinfo/system.py
-usr/lib/python2.7/site-packages/fireinfo/system.pyc
-usr/lib/python2.7/site-packages/fireinfo/system.pyo
-usr/share/doc/fireinfo
-usr/share/doc/fireinfo/COPYING
+#usr/lib/python3.8/site-packages/fireinfo
+usr/lib/python3.8/site-packages/fireinfo/__init__.py
+#usr/lib/python3.8/site-packages/fireinfo/_fireinfo.la
+usr/lib/python3.8/site-packages/fireinfo/_fireinfo.so
+usr/lib/python3.8/site-packages/fireinfo/bios.py
+usr/lib/python3.8/site-packages/fireinfo/cpu.py
+usr/lib/python3.8/site-packages/fireinfo/device.py
+usr/lib/python3.8/site-packages/fireinfo/hypervisor.py
+usr/lib/python3.8/site-packages/fireinfo/network.py
+usr/lib/python3.8/site-packages/fireinfo/system.py
+#usr/share/doc/fireinfo
+#usr/share/doc/fireinfo/COPYING
#usr/include/fuse3/fuse_opt.h
#usr/lib/libfuse3.so
usr/lib/libfuse3.so.3
-usr/lib/libfuse3.so.3.10.3
+usr/lib/libfuse3.so.3.10.4
#usr/lib/pkgconfig/fuse3.pc
#usr/share/man/man1/fusermount3.1
#usr/share/man/man8/mount.fuse3.8
#usr/lib/glib-2.0/include/glibconfig.h
#usr/lib/libgio-2.0.so
usr/lib/libgio-2.0.so.0
-usr/lib/libgio-2.0.so.0.6800.1
+usr/lib/libgio-2.0.so.0.6800.3
#usr/lib/libglib-2.0.so
usr/lib/libglib-2.0.so.0
-usr/lib/libglib-2.0.so.0.6800.1
+usr/lib/libglib-2.0.so.0.6800.3
#usr/lib/libgmodule-2.0.so
usr/lib/libgmodule-2.0.so.0
-usr/lib/libgmodule-2.0.so.0.6800.1
+usr/lib/libgmodule-2.0.so.0.6800.3
#usr/lib/libgobject-2.0.so
usr/lib/libgobject-2.0.so.0
-usr/lib/libgobject-2.0.so.0.6800.1
+usr/lib/libgobject-2.0.so.0.6800.3
#usr/lib/libgthread-2.0.so
usr/lib/libgthread-2.0.so.0
-usr/lib/libgthread-2.0.so.0.6800.1
+usr/lib/libgthread-2.0.so.0.6800.3
#usr/lib/pkgconfig/gio-2.0.pc
#usr/lib/pkgconfig/gio-unix-2.0.pc
#usr/lib/pkgconfig/glib-2.0.pc
#usr/share/gdb/auto-load
#usr/share/gdb/auto-load/usr
#usr/share/gdb/auto-load/usr/lib
-#usr/share/gdb/auto-load/usr/lib/libglib-2.0.so.0.6800.1-gdb.py
-#usr/share/gdb/auto-load/usr/lib/libgobject-2.0.so.0.6800.1-gdb.py
+#usr/share/gdb/auto-load/usr/lib/libglib-2.0.so.0.6800.3-gdb.py
+#usr/share/gdb/auto-load/usr/lib/libgobject-2.0.so.0.6800.3-gdb.py
#usr/share/gettext/its
#usr/share/gettext/its/gschema.its
#usr/share/gettext/its/gschema.loc
#usr/lib/libgnutls.la
#usr/lib/libgnutls.so
usr/lib/libgnutls.so.30
-usr/lib/libgnutls.so.30.28.0
+usr/lib/libgnutls.so.30.28.2
#usr/lib/libgnutlsxx.la
#usr/lib/libgnutlsxx.so
usr/lib/libgnutlsxx.so.28
#usr/share/doc/dmidecode
#usr/share/doc/dmidecode/AUTHORS
#usr/share/doc/dmidecode/CHANGELOG
+#usr/share/doc/dmidecode/NEWS
#usr/share/doc/dmidecode/README
#usr/share/man/man8/biosdecode.8
#usr/share/man/man8/dmidecode.8
etc/rc.d/init.d/networking/red
#etc/rc.d/init.d/networking/red.down
etc/rc.d/init.d/networking/red.down/10-ipsec
-etc/rc.d/init.d/networking/red.down/10-miniupnpd
etc/rc.d/init.d/networking/red.down/10-ovpn
etc/rc.d/init.d/networking/red.down/10-static-routes
etc/rc.d/init.d/networking/red.down/20-firewall
etc/rc.d/init.d/networking/red.down/99-beep
#etc/rc.d/init.d/networking/red.up
etc/rc.d/init.d/networking/red.up/01-conntrack-cleanup
-etc/rc.d/init.d/networking/red.up/10-miniupnpd
etc/rc.d/init.d/networking/red.up/10-multicast
etc/rc.d/init.d/networking/red.up/10-static-routes
etc/rc.d/init.d/networking/red.up/20-firewall
etc/rc.d/init.d/udev
etc/rc.d/init.d/udev_retry
etc/rc.d/init.d/unbound
-etc/rc.d/init.d/upnpd
etc/rc.d/init.d/vnstat
etc/rc.d/init.d/waitdrives
etc/rc.d/init.d/wlanclient
etc/rc.d/rc0.d/K79leds
etc/rc.d/rc0.d/K80network
etc/rc.d/rc0.d/K82wlanclient
-#etc/rc.d/rc0.d/K84bluetooth
#etc/rc.d/rc0.d/K85messagebus
etc/rc.d/rc0.d/K86unbound
etc/rc.d/rc0.d/K87acpid
etc/rc.d/rc3.d/S12acpid
etc/rc.d/rc3.d/S15fireinfo
#etc/rc.d/rc3.d/S15messagebus
-#etc/rc.d/rc3.d/S16bluetooth
#etc/rc.d/rc3.d/S18cpufreq
etc/rc.d/rc3.d/S19smartenabler
etc/rc.d/rc3.d/S19wlanclient
etc/rc.d/rc6.d/K79leds
etc/rc.d/rc6.d/K80network
etc/rc.d/rc6.d/K82wlanclient
-#etc/rc.d/rc6.d/K84bluetooth
#etc/rc.d/rc6.d/K85messagebus
etc/rc.d/rc6.d/K86unbound
etc/rc.d/rc6.d/K87acpid
lib/firmware/intel-ucode/06-4e-03
lib/firmware/intel-ucode/06-55-03
lib/firmware/intel-ucode/06-55-04
+lib/firmware/intel-ucode/06-55-05
lib/firmware/intel-ucode/06-55-06
lib/firmware/intel-ucode/06-55-07
lib/firmware/intel-ucode/06-55-0b
lib/firmware/intel-ucode/06-5e-03
lib/firmware/intel-ucode/06-5f-01
lib/firmware/intel-ucode/06-66-03
+lib/firmware/intel-ucode/06-6a-05
+lib/firmware/intel-ucode/06-6a-06
lib/firmware/intel-ucode/06-7a-01
lib/firmware/intel-ucode/06-7a-08
lib/firmware/intel-ucode/06-7e-05
+lib/firmware/intel-ucode/06-86-04
+lib/firmware/intel-ucode/06-86-05
lib/firmware/intel-ucode/06-8a-01
+lib/firmware/intel-ucode/06-8c-01
+lib/firmware/intel-ucode/06-8c-02
+lib/firmware/intel-ucode/06-8d-01
lib/firmware/intel-ucode/06-8e-09
lib/firmware/intel-ucode/06-8e-0a
lib/firmware/intel-ucode/06-8e-0b
lib/firmware/intel-ucode/06-8e-0c
+lib/firmware/intel-ucode/06-96-01
+lib/firmware/intel-ucode/06-9c-00
lib/firmware/intel-ucode/06-9e-09
lib/firmware/intel-ucode/06-9e-0a
lib/firmware/intel-ucode/06-9e-0b
lib/firmware/intel-ucode/06-a5-05
lib/firmware/intel-ucode/06-a6-00
lib/firmware/intel-ucode/06-a6-01
+lib/firmware/intel-ucode/06-a7-01
lib/firmware/intel-ucode/0f-00-07
lib/firmware/intel-ucode/0f-00-0a
lib/firmware/intel-ucode/0f-01-02
-usr/bin/intltool-extract
-usr/bin/intltool-merge
-usr/bin/intltool-prepare
-usr/bin/intltool-update
-usr/bin/intltoolize
+#usr/bin/intltool-extract
+#usr/bin/intltool-merge
+#usr/bin/intltool-prepare
+#usr/bin/intltool-update
+#usr/bin/intltoolize
#usr/share/aclocal/intltool.m4
#usr/share/intltool
#usr/share/intltool/Makefile.in.in
bin/ping
+#etc/rc.d/init.d/ninfod.sh
+#usr/bin/arping
+#usr/bin/clockdiff
usr/bin/ping
usr/bin/tracepath
+#usr/sbin/ninfod
+#usr/sbin/rdisc
+#usr/share/locale/de/LC_MESSAGES/iputils.mo
+#usr/share/locale/fr/LC_MESSAGES/iputils.mo
+#usr/share/locale/ja/LC_MESSAGES/iputils.mo
+#usr/share/locale/pt_BR/LC_MESSAGES/iputils.mo
+#usr/share/locale/tr/LC_MESSAGES/iputils.mo
+#usr/share/locale/uk/LC_MESSAGES/iputils.mo
+#usr/share/locale/zh_CN/LC_MESSAGES/iputils.mo
#lib/libcap.a
lib/libcap.so.2
-lib/libcap.so.2.49
+lib/libcap.so.2.50
#lib/libpsx.a
#lib/libpsx.so
#lib/libpsx.so.2
-#lib/libpsx.so.2.49
+#lib/libpsx.so.2.50
#lib/pkgconfig/libcap.pc
#lib/pkgconfig/libpsx.pc
lib/security/pam_cap.so
#usr/lib/libedit.la
#usr/lib/libedit.so
usr/lib/libedit.so.0
-usr/lib/libedit.so.0.0.65
+usr/lib/libedit.so.0.0.66
#usr/lib/pkgconfig/libedit.pc
#usr/share/man/man3/editline.3
#usr/share/man/man3/el_deletestr.3
#usr/include/libnl3/netlink/object.h
#usr/include/libnl3/netlink/route
#usr/include/libnl3/netlink/route/act
+#usr/include/libnl3/netlink/route/act/gact.h
#usr/include/libnl3/netlink/route/act/mirred.h
+#usr/include/libnl3/netlink/route/act/skbedit.h
+#usr/include/libnl3/netlink/route/act/vlan.h
#usr/include/libnl3/netlink/route/action.h
#usr/include/libnl3/netlink/route/addr.h
#usr/include/libnl3/netlink/route/class.h
#usr/include/libnl3/netlink/route/cls/ematch/nbyte.h
#usr/include/libnl3/netlink/route/cls/ematch/text.h
#usr/include/libnl3/netlink/route/cls/fw.h
+#usr/include/libnl3/netlink/route/cls/matchall.h
#usr/include/libnl3/netlink/route/cls/police.h
#usr/include/libnl3/netlink/route/cls/u32.h
#usr/include/libnl3/netlink/route/link
#usr/include/libnl3/netlink/route/link/bonding.h
#usr/include/libnl3/netlink/route/link/bridge.h
#usr/include/libnl3/netlink/route/link/can.h
+#usr/include/libnl3/netlink/route/link/geneve.h
#usr/include/libnl3/netlink/route/link/inet.h
+#usr/include/libnl3/netlink/route/link/inet6.h
#usr/include/libnl3/netlink/route/link/info-api.h
#usr/include/libnl3/netlink/route/link/ip6tnl.h
#usr/include/libnl3/netlink/route/link/ipgre.h
#usr/include/libnl3/netlink/route/link/ipip.h
+#usr/include/libnl3/netlink/route/link/ipvlan.h
#usr/include/libnl3/netlink/route/link/ipvti.h
+#usr/include/libnl3/netlink/route/link/macsec.h
#usr/include/libnl3/netlink/route/link/macvlan.h
+#usr/include/libnl3/netlink/route/link/macvtap.h
+#usr/include/libnl3/netlink/route/link/ppp.h
#usr/include/libnl3/netlink/route/link/sit.h
+#usr/include/libnl3/netlink/route/link/sriov.h
#usr/include/libnl3/netlink/route/link/veth.h
#usr/include/libnl3/netlink/route/link/vlan.h
+#usr/include/libnl3/netlink/route/link/vrf.h
#usr/include/libnl3/netlink/route/link/vxlan.h
+#usr/include/libnl3/netlink/route/link/xfrmi.h
#usr/include/libnl3/netlink/route/neighbour.h
#usr/include/libnl3/netlink/route/neightbl.h
+#usr/include/libnl3/netlink/route/netconf.h
#usr/include/libnl3/netlink/route/nexthop.h
#usr/include/libnl3/netlink/route/pktloc.h
#usr/include/libnl3/netlink/route/qdisc
#usr/include/libnl3/netlink/route/qdisc/dsmark.h
#usr/include/libnl3/netlink/route/qdisc/fifo.h
#usr/include/libnl3/netlink/route/qdisc/fq_codel.h
+#usr/include/libnl3/netlink/route/qdisc/hfsc.h
#usr/include/libnl3/netlink/route/qdisc/htb.h
+#usr/include/libnl3/netlink/route/qdisc/mqprio.h
#usr/include/libnl3/netlink/route/qdisc/netem.h
#usr/include/libnl3/netlink/route/qdisc/plug.h
#usr/include/libnl3/netlink/route/qdisc/prio.h
#usr/include/libnl3/netlink/types.h
#usr/include/libnl3/netlink/utils.h
#usr/include/libnl3/netlink/version.h
+#usr/include/libnl3/netlink/xfrm
+#usr/include/libnl3/netlink/xfrm/ae.h
+#usr/include/libnl3/netlink/xfrm/lifetime.h
+#usr/include/libnl3/netlink/xfrm/sa.h
+#usr/include/libnl3/netlink/xfrm/selector.h
+#usr/include/libnl3/netlink/xfrm/sp.h
+#usr/include/libnl3/netlink/xfrm/template.h
#usr/lib/libnl
-#usr/lib/libnl-3.a
#usr/lib/libnl-3.la
#usr/lib/libnl-3.so
usr/lib/libnl-3.so.200
-usr/lib/libnl-3.so.200.20.0
-#usr/lib/libnl-cli-3.a
+usr/lib/libnl-3.so.200.26.0
#usr/lib/libnl-cli-3.la
#usr/lib/libnl-cli-3.so
usr/lib/libnl-cli-3.so.200
-usr/lib/libnl-cli-3.so.200.20.0
-#usr/lib/libnl-genl-3.a
+usr/lib/libnl-cli-3.so.200.26.0
#usr/lib/libnl-genl-3.la
#usr/lib/libnl-genl-3.so
usr/lib/libnl-genl-3.so.200
-usr/lib/libnl-genl-3.so.200.20.0
-#usr/lib/libnl-idiag-3.a
+usr/lib/libnl-genl-3.so.200.26.0
#usr/lib/libnl-idiag-3.la
#usr/lib/libnl-idiag-3.so
usr/lib/libnl-idiag-3.so.200
-usr/lib/libnl-idiag-3.so.200.20.0
-#usr/lib/libnl-nf-3.a
+usr/lib/libnl-idiag-3.so.200.26.0
#usr/lib/libnl-nf-3.la
#usr/lib/libnl-nf-3.so
usr/lib/libnl-nf-3.so.200
-usr/lib/libnl-nf-3.so.200.20.0
-#usr/lib/libnl-route-3.a
+usr/lib/libnl-nf-3.so.200.26.0
#usr/lib/libnl-route-3.la
#usr/lib/libnl-route-3.so
usr/lib/libnl-route-3.so.200
-usr/lib/libnl-route-3.so.200.20.0
+usr/lib/libnl-route-3.so.200.26.0
+#usr/lib/libnl-xfrm-3.la
+#usr/lib/libnl-xfrm-3.so
+usr/lib/libnl-xfrm-3.so.200
+usr/lib/libnl-xfrm-3.so.200.26.0
#usr/lib/libnl/cli
#usr/lib/libnl/cli/cls
-#usr/lib/libnl/cli/cls/basic.a
#usr/lib/libnl/cli/cls/basic.la
usr/lib/libnl/cli/cls/basic.so
-#usr/lib/libnl/cli/cls/cgroup.a
#usr/lib/libnl/cli/cls/cgroup.la
usr/lib/libnl/cli/cls/cgroup.so
#usr/lib/libnl/cli/qdisc
-#usr/lib/libnl/cli/qdisc/bfifo.a
#usr/lib/libnl/cli/qdisc/bfifo.la
usr/lib/libnl/cli/qdisc/bfifo.so
-#usr/lib/libnl/cli/qdisc/blackhole.a
#usr/lib/libnl/cli/qdisc/blackhole.la
usr/lib/libnl/cli/qdisc/blackhole.so
-#usr/lib/libnl/cli/qdisc/fq_codel.a
#usr/lib/libnl/cli/qdisc/fq_codel.la
usr/lib/libnl/cli/qdisc/fq_codel.so
-#usr/lib/libnl/cli/qdisc/htb.a
+#usr/lib/libnl/cli/qdisc/hfsc.la
+#usr/lib/libnl/cli/qdisc/hfsc.so
#usr/lib/libnl/cli/qdisc/htb.la
usr/lib/libnl/cli/qdisc/htb.so
-#usr/lib/libnl/cli/qdisc/ingress.a
#usr/lib/libnl/cli/qdisc/ingress.la
usr/lib/libnl/cli/qdisc/ingress.so
-#usr/lib/libnl/cli/qdisc/pfifo.a
#usr/lib/libnl/cli/qdisc/pfifo.la
usr/lib/libnl/cli/qdisc/pfifo.so
-#usr/lib/libnl/cli/qdisc/plug.a
#usr/lib/libnl/cli/qdisc/plug.la
usr/lib/libnl/cli/qdisc/plug.so
#usr/lib/pkgconfig/libnl-3.0.pc
#usr/lib/pkgconfig/libnl-cli-3.0.pc
#usr/lib/pkgconfig/libnl-genl-3.0.pc
+#usr/lib/pkgconfig/libnl-idiag-3.0.pc
#usr/lib/pkgconfig/libnl-nf-3.0.pc
#usr/lib/pkgconfig/libnl-route-3.0.pc
+#usr/lib/pkgconfig/libnl-xfrm-3.0.pc
#usr/sbin/genl-ctrl-list
+#usr/sbin/idiag-socket-details
+#usr/sbin/nf-ct-add
+#usr/sbin/nf-ct-events
+#usr/sbin/nf-ct-list
+#usr/sbin/nf-exp-add
+#usr/sbin/nf-exp-delete
+#usr/sbin/nf-exp-list
+#usr/sbin/nf-log
+#usr/sbin/nf-monitor
+#usr/sbin/nf-queue
+#usr/sbin/nl-addr-add
+#usr/sbin/nl-addr-delete
+#usr/sbin/nl-addr-list
usr/sbin/nl-class-add
usr/sbin/nl-class-delete
usr/sbin/nl-class-list
usr/sbin/nl-cls-add
usr/sbin/nl-cls-delete
usr/sbin/nl-cls-list
+#usr/sbin/nl-fib-lookup
+#usr/sbin/nl-link-enslave
+#usr/sbin/nl-link-ifindex2name
usr/sbin/nl-link-list
+#usr/sbin/nl-link-name2ifindex
+#usr/sbin/nl-link-release
+#usr/sbin/nl-link-set
+#usr/sbin/nl-link-stats
+#usr/sbin/nl-list-caches
+#usr/sbin/nl-list-sockets
+#usr/sbin/nl-monitor
+#usr/sbin/nl-neigh-add
+#usr/sbin/nl-neigh-delete
+#usr/sbin/nl-neigh-list
+#usr/sbin/nl-neightbl-list
usr/sbin/nl-pktloc-lookup
usr/sbin/nl-qdisc-add
usr/sbin/nl-qdisc-delete
usr/sbin/nl-qdisc-list
+#usr/sbin/nl-route-add
+#usr/sbin/nl-route-delete
+#usr/sbin/nl-route-get
+#usr/sbin/nl-route-list
+#usr/sbin/nl-rule-list
+#usr/sbin/nl-tctree-list
+#usr/sbin/nl-util-addr
#usr/share/man/man8/genl-ctrl-list.8
#usr/share/man/man8/nl-classid-lookup.8
#usr/share/man/man8/nl-pktloc-lookup.8
#usr/lib/libpcap.a
usr/lib/libpcap.so
usr/lib/libpcap.so.1
-usr/lib/libpcap.so.1.10.0
+usr/lib/libpcap.so.1.10.1
#usr/lib/pkgconfig/libpcap.pc
#usr/share/man/man1/pcap-config.1
#usr/share/man/man3/pcap.3pcap
+++ /dev/null
-#usr/include/upnp
-#usr/include/upnp/Callback.h
-#usr/include/upnp/UpnpActionComplete.h
-#usr/include/upnp/UpnpActionRequest.h
-#usr/include/upnp/UpnpDiscovery.h
-#usr/include/upnp/UpnpEvent.h
-#usr/include/upnp/UpnpEventSubscribe.h
-#usr/include/upnp/UpnpExtraHeaders.h
-#usr/include/upnp/UpnpFileInfo.h
-#usr/include/upnp/UpnpGlobal.h
-#usr/include/upnp/UpnpInet.h
-#usr/include/upnp/UpnpIntTypes.h
-#usr/include/upnp/UpnpStateVarComplete.h
-#usr/include/upnp/UpnpStateVarRequest.h
-#usr/include/upnp/UpnpStdInt.h
-#usr/include/upnp/UpnpString.h
-#usr/include/upnp/UpnpSubscriptionRequest.h
-#usr/include/upnp/UpnpUniStd.h
-#usr/include/upnp/ithread.h
-#usr/include/upnp/ixml.h
-#usr/include/upnp/ixmldebug.h
-#usr/include/upnp/list.h
-#usr/include/upnp/upnp.h
-#usr/include/upnp/upnpconfig.h
-#usr/include/upnp/upnpdebug.h
-#usr/include/upnp/upnptools.h
-#usr/lib/libixml.a
-#usr/lib/libixml.la
-#usr/lib/libixml.so
-usr/lib/libixml.so.11
-usr/lib/libixml.so.11.0.1
-#usr/lib/libupnp.a
-#usr/lib/libupnp.la
-#usr/lib/libupnp.so
-usr/lib/libupnp.so.17
-usr/lib/libupnp.so.17.0.6
-#usr/lib/pkgconfig/libupnp.pc
#usr/lib/libusb-1.0.la
#usr/lib/libusb-1.0.so
usr/lib/libusb-1.0.so.0
-usr/lib/libusb-1.0.so.0.2.0
+usr/lib/libusb-1.0.so.0.3.0
#usr/lib/pkgconfig/libusb-1.0.pc
lib/firmware/amd-ucode/microcode_amd_fam16h.bin
lib/firmware/amd-ucode/microcode_amd_fam17h.bin
lib/firmware/amd/amd_sev_fam17h_model0xh.sbin
+lib/firmware/amd/amd_sev_fam17h_model3xh.sbin
#lib/firmware/amdgpu
+lib/firmware/amdgpu/arcturus_asd.bin
+lib/firmware/amdgpu/arcturus_gpu_info.bin
+lib/firmware/amdgpu/arcturus_mec.bin
+lib/firmware/amdgpu/arcturus_mec2.bin
+lib/firmware/amdgpu/arcturus_rlc.bin
+lib/firmware/amdgpu/arcturus_sdma.bin
+lib/firmware/amdgpu/arcturus_smc.bin
+lib/firmware/amdgpu/arcturus_sos.bin
+lib/firmware/amdgpu/arcturus_ta.bin
+lib/firmware/amdgpu/arcturus_vcn.bin
lib/firmware/amdgpu/banks_k_2_smc.bin
lib/firmware/amdgpu/bonaire_ce.bin
lib/firmware/amdgpu/bonaire_k_smc.bin
lib/firmware/amdgpu/fiji_smc.bin
lib/firmware/amdgpu/fiji_uvd.bin
lib/firmware/amdgpu/fiji_vce.bin
+lib/firmware/amdgpu/green_sardine_asd.bin
+lib/firmware/amdgpu/green_sardine_ce.bin
+lib/firmware/amdgpu/green_sardine_dmcub.bin
+lib/firmware/amdgpu/green_sardine_me.bin
+lib/firmware/amdgpu/green_sardine_mec.bin
+lib/firmware/amdgpu/green_sardine_mec2.bin
+lib/firmware/amdgpu/green_sardine_pfp.bin
+lib/firmware/amdgpu/green_sardine_rlc.bin
+lib/firmware/amdgpu/green_sardine_sdma.bin
+lib/firmware/amdgpu/green_sardine_ta.bin
+lib/firmware/amdgpu/green_sardine_vcn.bin
lib/firmware/amdgpu/hainan_ce.bin
lib/firmware/amdgpu/hainan_k_smc.bin
lib/firmware/amdgpu/hainan_mc.bin
lib/firmware/amdgpu/navi10_sos.bin
lib/firmware/amdgpu/navi10_ta.bin
lib/firmware/amdgpu/navi10_vcn.bin
+lib/firmware/amdgpu/navi12_asd.bin
+lib/firmware/amdgpu/navi12_ce.bin
+lib/firmware/amdgpu/navi12_dmcu.bin
+lib/firmware/amdgpu/navi12_gpu_info.bin
+lib/firmware/amdgpu/navi12_me.bin
+lib/firmware/amdgpu/navi12_mec.bin
+lib/firmware/amdgpu/navi12_mec2.bin
+lib/firmware/amdgpu/navi12_pfp.bin
+lib/firmware/amdgpu/navi12_rlc.bin
+lib/firmware/amdgpu/navi12_sdma.bin
+lib/firmware/amdgpu/navi12_sdma1.bin
+lib/firmware/amdgpu/navi12_smc.bin
+lib/firmware/amdgpu/navi12_sos.bin
+lib/firmware/amdgpu/navi12_ta.bin
+lib/firmware/amdgpu/navi12_vcn.bin
lib/firmware/amdgpu/navi14_asd.bin
lib/firmware/amdgpu/navi14_ce.bin
lib/firmware/amdgpu/navi14_ce_wks.bin
lib/firmware/amdgpu/navi14_sos.bin
lib/firmware/amdgpu/navi14_ta.bin
lib/firmware/amdgpu/navi14_vcn.bin
+lib/firmware/amdgpu/navy_flounder_ce.bin
+lib/firmware/amdgpu/navy_flounder_dmcub.bin
+lib/firmware/amdgpu/navy_flounder_me.bin
+lib/firmware/amdgpu/navy_flounder_mec.bin
+lib/firmware/amdgpu/navy_flounder_mec2.bin
+lib/firmware/amdgpu/navy_flounder_pfp.bin
+lib/firmware/amdgpu/navy_flounder_rlc.bin
+lib/firmware/amdgpu/navy_flounder_sdma.bin
+lib/firmware/amdgpu/navy_flounder_smc.bin
+lib/firmware/amdgpu/navy_flounder_sos.bin
+lib/firmware/amdgpu/navy_flounder_ta.bin
+lib/firmware/amdgpu/navy_flounder_vcn.bin
lib/firmware/amdgpu/oland_ce.bin
lib/firmware/amdgpu/oland_k_smc.bin
lib/firmware/amdgpu/oland_mc.bin
lib/firmware/amdgpu/oland_pfp.bin
lib/firmware/amdgpu/oland_rlc.bin
lib/firmware/amdgpu/oland_smc.bin
+lib/firmware/amdgpu/oland_uvd.bin
lib/firmware/amdgpu/picasso_asd.bin
lib/firmware/amdgpu/picasso_ce.bin
lib/firmware/amdgpu/picasso_gpu_info.bin
lib/firmware/amdgpu/pitcairn_pfp.bin
lib/firmware/amdgpu/pitcairn_rlc.bin
lib/firmware/amdgpu/pitcairn_smc.bin
+lib/firmware/amdgpu/pitcairn_uvd.bin
lib/firmware/amdgpu/polaris10_ce.bin
lib/firmware/amdgpu/polaris10_ce_2.bin
lib/firmware/amdgpu/polaris10_k2_smc.bin
lib/firmware/amdgpu/polaris11_smc_sk.bin
lib/firmware/amdgpu/polaris11_uvd.bin
lib/firmware/amdgpu/polaris11_vce.bin
+lib/firmware/amdgpu/polaris12_32_mc.bin
lib/firmware/amdgpu/polaris12_ce.bin
lib/firmware/amdgpu/polaris12_ce_2.bin
lib/firmware/amdgpu/polaris12_k_mc.bin
lib/firmware/amdgpu/renoir_pfp.bin
lib/firmware/amdgpu/renoir_rlc.bin
lib/firmware/amdgpu/renoir_sdma.bin
+lib/firmware/amdgpu/renoir_ta.bin
lib/firmware/amdgpu/renoir_vcn.bin
lib/firmware/amdgpu/si58_mc.bin
+lib/firmware/amdgpu/sienna_cichlid_ce.bin
+lib/firmware/amdgpu/sienna_cichlid_dmcub.bin
+lib/firmware/amdgpu/sienna_cichlid_me.bin
+lib/firmware/amdgpu/sienna_cichlid_mec.bin
+lib/firmware/amdgpu/sienna_cichlid_mec2.bin
+lib/firmware/amdgpu/sienna_cichlid_pfp.bin
+lib/firmware/amdgpu/sienna_cichlid_rlc.bin
+lib/firmware/amdgpu/sienna_cichlid_sdma.bin
+lib/firmware/amdgpu/sienna_cichlid_smc.bin
+lib/firmware/amdgpu/sienna_cichlid_sos.bin
+lib/firmware/amdgpu/sienna_cichlid_ta.bin
+lib/firmware/amdgpu/sienna_cichlid_vcn.bin
lib/firmware/amdgpu/stoney_ce.bin
lib/firmware/amdgpu/stoney_me.bin
lib/firmware/amdgpu/stoney_mec.bin
lib/firmware/amdgpu/tahiti_pfp.bin
lib/firmware/amdgpu/tahiti_rlc.bin
lib/firmware/amdgpu/tahiti_smc.bin
+lib/firmware/amdgpu/tahiti_uvd.bin
lib/firmware/amdgpu/tonga_ce.bin
lib/firmware/amdgpu/tonga_k_smc.bin
lib/firmware/amdgpu/tonga_mc.bin
lib/firmware/amdgpu/vega20_sdma1.bin
lib/firmware/amdgpu/vega20_smc.bin
lib/firmware/amdgpu/vega20_sos.bin
+lib/firmware/amdgpu/vega20_ta.bin
lib/firmware/amdgpu/vega20_uvd.bin
lib/firmware/amdgpu/vega20_vce.bin
lib/firmware/amdgpu/vegam_ce.bin
lib/firmware/amdgpu/verde_pfp.bin
lib/firmware/amdgpu/verde_rlc.bin
lib/firmware/amdgpu/verde_smc.bin
+lib/firmware/amdgpu/verde_uvd.bin
#lib/firmware/ar3k
#lib/firmware/ar3k/1020200
lib/firmware/ar3k/1020200/PS_ASIC.pst
lib/firmware/ath10k/QCA6174/hw3.0/board.bin
lib/firmware/ath10k/QCA6174/hw3.0/firmware-4.bin
lib/firmware/ath10k/QCA6174/hw3.0/firmware-6.bin
+lib/firmware/ath10k/QCA6174/hw3.0/firmware-sdio-6.bin
#lib/firmware/ath10k/QCA9377
#lib/firmware/ath10k/QCA9377/hw1.0
lib/firmware/ath10k/QCA9377/hw1.0/board-2.bin
lib/firmware/ath10k/QCA9377/hw1.0/board.bin
lib/firmware/ath10k/QCA9377/hw1.0/firmware-5.bin
lib/firmware/ath10k/QCA9377/hw1.0/firmware-6.bin
+lib/firmware/ath10k/QCA9377/hw1.0/firmware-sdio-5.bin
#lib/firmware/ath10k/QCA9887
#lib/firmware/ath10k/QCA9887/hw1.0
lib/firmware/ath10k/QCA9887/hw1.0/board.bin
lib/firmware/ath10k/WCN3990/hw1.0
lib/firmware/ath10k/WCN3990/hw1.0/firmware-5.bin
lib/firmware/ath10k/WCN3990/hw1.0/wlanmdsp.mbn
+lib/firmware/ath11k
+lib/firmware/ath11k/IPQ6018
+lib/firmware/ath11k/IPQ6018/hw1.0
+lib/firmware/ath11k/IPQ6018/hw1.0/board-2.bin
+lib/firmware/ath11k/IPQ6018/hw1.0/m3_fw.b00
+lib/firmware/ath11k/IPQ6018/hw1.0/m3_fw.b01
+lib/firmware/ath11k/IPQ6018/hw1.0/m3_fw.b02
+lib/firmware/ath11k/IPQ6018/hw1.0/m3_fw.flist
+lib/firmware/ath11k/IPQ6018/hw1.0/m3_fw.mdt
+lib/firmware/ath11k/IPQ6018/hw1.0/q6_fw.b00
+lib/firmware/ath11k/IPQ6018/hw1.0/q6_fw.b01
+lib/firmware/ath11k/IPQ6018/hw1.0/q6_fw.b02
+lib/firmware/ath11k/IPQ6018/hw1.0/q6_fw.b03
+lib/firmware/ath11k/IPQ6018/hw1.0/q6_fw.b04
+lib/firmware/ath11k/IPQ6018/hw1.0/q6_fw.b05
+lib/firmware/ath11k/IPQ6018/hw1.0/q6_fw.b07
+lib/firmware/ath11k/IPQ6018/hw1.0/q6_fw.b08
+lib/firmware/ath11k/IPQ6018/hw1.0/q6_fw.flist
+lib/firmware/ath11k/IPQ6018/hw1.0/q6_fw.mdt
+lib/firmware/ath11k/IPQ8074
+lib/firmware/ath11k/IPQ8074/hw2.0
+lib/firmware/ath11k/IPQ8074/hw2.0/board-2.bin
+lib/firmware/ath11k/IPQ8074/hw2.0/m3_fw.b00
+lib/firmware/ath11k/IPQ8074/hw2.0/m3_fw.b01
+lib/firmware/ath11k/IPQ8074/hw2.0/m3_fw.b02
+lib/firmware/ath11k/IPQ8074/hw2.0/m3_fw.flist
+lib/firmware/ath11k/IPQ8074/hw2.0/m3_fw.mdt
+lib/firmware/ath11k/IPQ8074/hw2.0/q6_fw.b00
+lib/firmware/ath11k/IPQ8074/hw2.0/q6_fw.b01
+lib/firmware/ath11k/IPQ8074/hw2.0/q6_fw.b02
+lib/firmware/ath11k/IPQ8074/hw2.0/q6_fw.b03
+lib/firmware/ath11k/IPQ8074/hw2.0/q6_fw.b04
+lib/firmware/ath11k/IPQ8074/hw2.0/q6_fw.b05
+lib/firmware/ath11k/IPQ8074/hw2.0/q6_fw.b07
+lib/firmware/ath11k/IPQ8074/hw2.0/q6_fw.b08
+lib/firmware/ath11k/IPQ8074/hw2.0/q6_fw.flist
+lib/firmware/ath11k/IPQ8074/hw2.0/q6_fw.mdt
+lib/firmware/ath11k/QCA6390
+lib/firmware/ath11k/QCA6390/hw2.0
+lib/firmware/ath11k/QCA6390/hw2.0/amss.bin
+lib/firmware/ath11k/QCA6390/hw2.0/board-2.bin
+lib/firmware/ath11k/QCA6390/hw2.0/m3.bin
lib/firmware/ath3k-1.fw
#lib/firmware/ath6k
#lib/firmware/ath6k/AR6002
lib/firmware/atmel/wilc1000_ap_fw.bin
lib/firmware/atmel/wilc1000_fw.bin
lib/firmware/atmel/wilc1000_p2p_fw.bin
+lib/firmware/atmel/wilc1000_wifi_firmware-1.bin
lib/firmware/atmel/wilc1000_wifi_firmware.bin
lib/firmware/atmsar11.fw
#lib/firmware/atusb
lib/firmware/brcm/bcm4329-fullmac-4.bin
lib/firmware/brcm/bcm43xx-0.fw
lib/firmware/brcm/bcm43xx_hdr-0.fw
+lib/firmware/brcm/brcmfmac43012-sdio.bin
+lib/firmware/brcm/brcmfmac43012-sdio.clm_blob
lib/firmware/brcm/brcmfmac43143-sdio.bin
lib/firmware/brcm/brcmfmac43143.bin
lib/firmware/brcm/brcmfmac43236b.bin
lib/firmware/brcm/brcmfmac43340-sdio.bin
lib/firmware/brcm/brcmfmac43340-sdio.meegopad-t08.txt
lib/firmware/brcm/brcmfmac43340-sdio.pov-tab-p1006w-data.txt
+lib/firmware/brcm/brcmfmac43340-sdio.predia-basic.txt
lib/firmware/brcm/brcmfmac4335-sdio.bin
lib/firmware/brcm/brcmfmac43362-sdio.bin
lib/firmware/brcm/brcmfmac43362-sdio.cubietech,cubietruck.txt
lib/firmware/brcm/brcmfmac43430-sdio.Hampoo-D2D3_Vi8A1.txt
lib/firmware/brcm/brcmfmac43430-sdio.MUR1DX.txt
lib/firmware/brcm/brcmfmac43430-sdio.bin
+lib/firmware/brcm/brcmfmac43430-sdio.clm_blob
lib/firmware/brcm/brcmfmac43430-sdio.raspberrypi,3-model-b.txt
+lib/firmware/brcm/brcmfmac43430-sdio.raspberrypi,model-zero-w.txt
+lib/firmware/brcm/brcmfmac43430-sdio.sinovoip,bpi-m2-plus.txt
+lib/firmware/brcm/brcmfmac43430-sdio.sinovoip,bpi-m2-ultra.txt
+lib/firmware/brcm/brcmfmac43430-sdio.sinovoip,bpi-m2-zero.txt
+lib/firmware/brcm/brcmfmac43430-sdio.sinovoip,bpi-m3.txt
lib/firmware/brcm/brcmfmac43430a0-sdio.ONDA-V80_PLUS.txt
lib/firmware/brcm/brcmfmac43430a0-sdio.bin
+lib/firmware/brcm/brcmfmac43430a0-sdio.ilife-S806.txt
lib/firmware/brcm/brcmfmac43430a0-sdio.jumper-ezpad-mini3.txt
lib/firmware/brcm/brcmfmac43455-sdio.MINIX-NEO_Z83-4.txt
+lib/firmware/brcm/brcmfmac43455-sdio.Raspberry_Pi_Foundation-Raspberry_Pi_4_Model_B.txt
+lib/firmware/brcm/brcmfmac43455-sdio.Raspberry_Pi_Foundation-Raspberry_Pi_Compute_Module_4.txt
lib/firmware/brcm/brcmfmac43455-sdio.bin
+lib/firmware/brcm/brcmfmac43455-sdio.clm_blob
+lib/firmware/brcm/brcmfmac43455-sdio.raspberrypi,3-model-a-plus.txt
lib/firmware/brcm/brcmfmac43455-sdio.raspberrypi,3-model-b-plus.txt
lib/firmware/brcm/brcmfmac43455-sdio.raspberrypi,4-model-b.txt
lib/firmware/brcm/brcmfmac4350-pcie.bin
lib/firmware/brcm/brcmfmac4350c2-pcie.bin
lib/firmware/brcm/brcmfmac4354-sdio.bin
+lib/firmware/brcm/brcmfmac4354-sdio.clm_blob
lib/firmware/brcm/brcmfmac4356-pcie.bin
+lib/firmware/brcm/brcmfmac4356-pcie.clm_blob
lib/firmware/brcm/brcmfmac4356-pcie.gpd-win-pocket.txt
lib/firmware/brcm/brcmfmac4356-sdio.bin
+lib/firmware/brcm/brcmfmac4356-sdio.clm_blob
+lib/firmware/brcm/brcmfmac4356-sdio.khadas,vim2.txt
+lib/firmware/brcm/brcmfmac4356-sdio.vamrs,rock960.txt
lib/firmware/brcm/brcmfmac43569.bin
lib/firmware/brcm/brcmfmac43570-pcie.bin
+lib/firmware/brcm/brcmfmac43570-pcie.clm_blob
lib/firmware/brcm/brcmfmac4358-pcie.bin
lib/firmware/brcm/brcmfmac43602-pcie.ap.bin
lib/firmware/brcm/brcmfmac43602-pcie.bin
lib/firmware/brcm/brcmfmac4366c-pcie.bin
lib/firmware/brcm/brcmfmac4371-pcie.bin
lib/firmware/brcm/brcmfmac4373-sdio.bin
+lib/firmware/brcm/brcmfmac4373-sdio.clm_blob
lib/firmware/brcm/brcmfmac4373.bin
+lib/firmware/brcm/brcmfmac54591-pcie.bin
+lib/firmware/brcm/brcmfmac54591-pcie.clm_blob
#lib/firmware/cadence
lib/firmware/cadence/mhdp8546.bin
lib/firmware/carl9170-1.fw
lib/firmware/cxgb4/t4-config.txt
lib/firmware/cxgb4/t4fw-1.14.4.0.bin
lib/firmware/cxgb4/t4fw-1.15.37.0.bin
-lib/firmware/cxgb4/t4fw-1.24.14.0.bin
+lib/firmware/cxgb4/t4fw-1.25.4.0.bin
lib/firmware/cxgb4/t4fw.bin
lib/firmware/cxgb4/t5-config.txt
lib/firmware/cxgb4/t5fw-1.14.4.0.bin
lib/firmware/cxgb4/t5fw-1.15.37.0.bin
-lib/firmware/cxgb4/t5fw-1.24.14.0.bin
+lib/firmware/cxgb4/t5fw-1.25.4.0.bin
lib/firmware/cxgb4/t5fw.bin
lib/firmware/cxgb4/t6-config.txt
-lib/firmware/cxgb4/t6fw-1.24.14.0.bin
+lib/firmware/cxgb4/t6fw-1.25.4.0.bin
lib/firmware/cxgb4/t6fw.bin
+lib/firmware/cypress
+lib/firmware/cypress/cyfmac43012-sdio.bin
+lib/firmware/cypress/cyfmac43012-sdio.clm_blob
+lib/firmware/cypress/cyfmac43340-sdio.bin
+lib/firmware/cypress/cyfmac43362-sdio.bin
+lib/firmware/cypress/cyfmac4339-sdio.bin
+lib/firmware/cypress/cyfmac43430-sdio.bin
+lib/firmware/cypress/cyfmac43430-sdio.clm_blob
+lib/firmware/cypress/cyfmac43455-sdio.bin
+lib/firmware/cypress/cyfmac43455-sdio.clm_blob
+lib/firmware/cypress/cyfmac4354-sdio.bin
+lib/firmware/cypress/cyfmac4354-sdio.clm_blob
+lib/firmware/cypress/cyfmac4356-pcie.bin
+lib/firmware/cypress/cyfmac4356-pcie.clm_blob
+lib/firmware/cypress/cyfmac4356-sdio.bin
+lib/firmware/cypress/cyfmac4356-sdio.clm_blob
+lib/firmware/cypress/cyfmac43570-pcie.bin
+lib/firmware/cypress/cyfmac43570-pcie.clm_blob
+lib/firmware/cypress/cyfmac4373-sdio.bin
+lib/firmware/cypress/cyfmac4373-sdio.clm_blob
+lib/firmware/cypress/cyfmac54591-pcie.bin
+lib/firmware/cypress/cyfmac54591-pcie.clm_blob
#lib/firmware/dabusb
lib/firmware/dabusb/bitstream.bin
lib/firmware/dabusb/firmware.fw
lib/firmware/i2400m-fw-usb-1.5.sbcf
lib/firmware/i6050-fw-usb-1.5.sbcf
#lib/firmware/i915
+lib/firmware/i915/adlp_dmc_ver2_09.bin
+lib/firmware/i915/adlp_dmc_ver2_10.bin
+lib/firmware/i915/adls_dmc_ver2_01.bin
lib/firmware/i915/bxt_dmc_ver1.bin
lib/firmware/i915/bxt_dmc_ver1_07.bin
lib/firmware/i915/bxt_guc_32.0.3.bin
lib/firmware/i915/bxt_guc_33.0.0.bin
+lib/firmware/i915/bxt_guc_49.0.1.bin
lib/firmware/i915/bxt_guc_ver8_7.bin
lib/firmware/i915/bxt_guc_ver9_29.bin
lib/firmware/i915/bxt_huc_2.0.0.bin
lib/firmware/i915/bxt_huc_ver01_07_1398.bin
lib/firmware/i915/bxt_huc_ver01_8_2893.bin
lib/firmware/i915/cml_guc_33.0.0.bin
+lib/firmware/i915/cml_guc_49.0.1.bin
lib/firmware/i915/cml_huc_4.0.0.bin
lib/firmware/i915/cnl_dmc_ver1_06.bin
lib/firmware/i915/cnl_dmc_ver1_07.bin
+lib/firmware/i915/dg1_dmc_ver2_02.bin
+lib/firmware/i915/dg1_guc_49.0.1.bin
+lib/firmware/i915/dg1_huc_7.7.1.bin
lib/firmware/i915/ehl_guc_33.0.4.bin
+lib/firmware/i915/ehl_guc_49.0.1.bin
lib/firmware/i915/ehl_huc_9.0.0.bin
lib/firmware/i915/glk_dmc_ver1_04.bin
lib/firmware/i915/glk_guc_32.0.3.bin
lib/firmware/i915/glk_guc_33.0.0.bin
+lib/firmware/i915/glk_guc_49.0.1.bin
lib/firmware/i915/glk_huc_4.0.0.bin
lib/firmware/i915/glk_huc_ver03_01_2893.bin
lib/firmware/i915/icl_dmc_ver1_07.bin
lib/firmware/i915/icl_dmc_ver1_09.bin
lib/firmware/i915/icl_guc_32.0.3.bin
lib/firmware/i915/icl_guc_33.0.0.bin
+lib/firmware/i915/icl_guc_49.0.1.bin
lib/firmware/i915/icl_huc_9.0.0.bin
lib/firmware/i915/icl_huc_ver8_4_3238.bin
lib/firmware/i915/kbl_dmc_ver1.bin
lib/firmware/i915/kbl_dmc_ver1_04.bin
lib/firmware/i915/kbl_guc_32.0.3.bin
lib/firmware/i915/kbl_guc_33.0.0.bin
+lib/firmware/i915/kbl_guc_49.0.1.bin
lib/firmware/i915/kbl_guc_ver9_14.bin
lib/firmware/i915/kbl_guc_ver9_39.bin
lib/firmware/i915/kbl_huc_4.0.0.bin
lib/firmware/i915/kbl_huc_ver02_00_1810.bin
+lib/firmware/i915/rkl_dmc_ver2_02.bin
lib/firmware/i915/skl_dmc_ver1.bin
lib/firmware/i915/skl_dmc_ver1_23.bin
lib/firmware/i915/skl_dmc_ver1_26.bin
lib/firmware/i915/skl_dmc_ver1_27.bin
lib/firmware/i915/skl_guc_32.0.3.bin
lib/firmware/i915/skl_guc_33.0.0.bin
+lib/firmware/i915/skl_guc_49.0.1.bin
lib/firmware/i915/skl_guc_ver1.bin
lib/firmware/i915/skl_guc_ver4.bin
lib/firmware/i915/skl_guc_ver6.bin
lib/firmware/i915/skl_huc_ver01_07_1398.bin
lib/firmware/i915/tgl_dmc_ver2_04.bin
lib/firmware/i915/tgl_dmc_ver2_06.bin
+lib/firmware/i915/tgl_dmc_ver2_08.bin
lib/firmware/i915/tgl_guc_35.2.0.bin
+lib/firmware/i915/tgl_guc_49.0.1.bin
lib/firmware/i915/tgl_huc_7.0.12.bin
lib/firmware/i915/tgl_huc_7.0.3.bin
+lib/firmware/i915/tgl_huc_7.5.0.bin
#lib/firmware/imx
#lib/firmware/imx/sdma
lib/firmware/imx/sdma/sdma-imx6q.bin
lib/firmware/intel/fw_sst_0f28.bin-48kHz_i2s_master
lib/firmware/intel/fw_sst_0f28_ssp0.bin
lib/firmware/intel/fw_sst_22a8.bin
+lib/firmware/intel/ibt-0041-0041.ddc
+lib/firmware/intel/ibt-0041-0041.sfi
lib/firmware/intel/ibt-11-5.ddc
lib/firmware/intel/ibt-11-5.sfi
lib/firmware/intel/ibt-12-16.ddc
lib/firmware/intel/ibt-hw-37.8.bseq
#lib/firmware/intel/ice
#lib/firmware/intel/ice/ddp
-lib/firmware/intel/ice/ddp/ice-1.3.4.0.pkg
+lib/firmware/intel/ice/ddp-comms
+lib/firmware/intel/ice/ddp-comms/ice_comms-1.3.20.0.pkg
+lib/firmware/intel/ice/ddp/ice-1.3.16.0.pkg
lib/firmware/intel/ice/ddp/ice.pkg
lib/firmware/intel/ipu3-fw.bin
lib/firmware/intel/irci_irci_ecr-master_20161208_0213_20170112_1500.bin
lib/firmware/iwlwifi-Qu-b0-hr-b0-50.ucode
lib/firmware/iwlwifi-Qu-b0-hr-b0-53.ucode
lib/firmware/iwlwifi-Qu-b0-hr-b0-55.ucode
+lib/firmware/iwlwifi-Qu-b0-hr-b0-59.ucode
+lib/firmware/iwlwifi-Qu-b0-hr-b0-62.ucode
lib/firmware/iwlwifi-Qu-b0-jf-b0-48.ucode
lib/firmware/iwlwifi-Qu-b0-jf-b0-50.ucode
lib/firmware/iwlwifi-Qu-b0-jf-b0-53.ucode
lib/firmware/iwlwifi-Qu-b0-jf-b0-55.ucode
+lib/firmware/iwlwifi-Qu-b0-jf-b0-59.ucode
+lib/firmware/iwlwifi-Qu-b0-jf-b0-62.ucode
lib/firmware/iwlwifi-Qu-c0-hr-b0-48.ucode
lib/firmware/iwlwifi-Qu-c0-hr-b0-50.ucode
lib/firmware/iwlwifi-Qu-c0-hr-b0-53.ucode
lib/firmware/iwlwifi-Qu-c0-hr-b0-55.ucode
+lib/firmware/iwlwifi-Qu-c0-hr-b0-59.ucode
+lib/firmware/iwlwifi-Qu-c0-hr-b0-62.ucode
lib/firmware/iwlwifi-Qu-c0-jf-b0-48.ucode
lib/firmware/iwlwifi-Qu-c0-jf-b0-50.ucode
lib/firmware/iwlwifi-Qu-c0-jf-b0-53.ucode
lib/firmware/iwlwifi-Qu-c0-jf-b0-55.ucode
+lib/firmware/iwlwifi-Qu-c0-jf-b0-59.ucode
+lib/firmware/iwlwifi-Qu-c0-jf-b0-62.ucode
lib/firmware/iwlwifi-QuZ-a0-hr-b0-48.ucode
lib/firmware/iwlwifi-QuZ-a0-hr-b0-50.ucode
lib/firmware/iwlwifi-QuZ-a0-hr-b0-53.ucode
lib/firmware/iwlwifi-QuZ-a0-hr-b0-55.ucode
+lib/firmware/iwlwifi-QuZ-a0-hr-b0-59.ucode
+lib/firmware/iwlwifi-QuZ-a0-hr-b0-62.ucode
lib/firmware/iwlwifi-QuZ-a0-jf-b0-48.ucode
lib/firmware/iwlwifi-QuZ-a0-jf-b0-50.ucode
lib/firmware/iwlwifi-QuZ-a0-jf-b0-53.ucode
lib/firmware/iwlwifi-QuZ-a0-jf-b0-55.ucode
+lib/firmware/iwlwifi-QuZ-a0-jf-b0-59.ucode
+lib/firmware/iwlwifi-QuZ-a0-jf-b0-62.ucode
lib/firmware/iwlwifi-cc-a0-46.ucode
lib/firmware/iwlwifi-cc-a0-48.ucode
lib/firmware/iwlwifi-cc-a0-50.ucode
lib/firmware/iwlwifi-cc-a0-53.ucode
lib/firmware/iwlwifi-cc-a0-55.ucode
+lib/firmware/iwlwifi-cc-a0-59.ucode
+lib/firmware/iwlwifi-cc-a0-62.ucode
+lib/firmware/iwlwifi-ty-a0-gf-a0-59.ucode
+lib/firmware/iwlwifi-ty-a0-gf-a0-62.ucode
+lib/firmware/iwlwifi-ty-a0-gf-a0.pnvm
#lib/firmware/kaweth
lib/firmware/kaweth/new_code.bin
lib/firmware/kaweth/new_code_fix.bin
lib/firmware/liquidio/lio_23xx_nic.bin
lib/firmware/liquidio/lio_23xx_vsw.bin
lib/firmware/liquidio/lio_410nv_nic.bin
+lib/firmware/lt9611uxc_fw.bin
#lib/firmware/matrox
lib/firmware/matrox/g200_warp.fw
lib/firmware/matrox/g400_warp.fw
#lib/firmware/mediatek
+lib/firmware/mediatek/BT_RAM_CODE_MT7961_1_2_hdr.bin
+lib/firmware/mediatek/WIFI_MT7961_patch_mcu_1_2_hdr.bin
+lib/firmware/mediatek/WIFI_RAM_CODE_MT7961_1.bin
lib/firmware/mediatek/mt7610e.bin
lib/firmware/mediatek/mt7610u.bin
lib/firmware/mediatek/mt7615_cr4.bin
lib/firmware/mellanox/mlxsw_spectrum-13.2000.1886.mfa2
lib/firmware/mellanox/mlxsw_spectrum-13.2000.2308.mfa2
lib/firmware/mellanox/mlxsw_spectrum-13.2000.2714.mfa2
+lib/firmware/mellanox/mlxsw_spectrum-13.2007.1168.mfa2
+lib/firmware/mellanox/mlxsw_spectrum-13.2008.1036.mfa2
+lib/firmware/mellanox/mlxsw_spectrum-13.2008.1310.mfa2
+lib/firmware/mellanox/mlxsw_spectrum-13.2008.1312.mfa2
+lib/firmware/mellanox/mlxsw_spectrum-13.2008.2018.mfa2
+lib/firmware/mellanox/mlxsw_spectrum-13.2008.2304.mfa2
+lib/firmware/mellanox/mlxsw_spectrum-13.2008.2406.mfa2
+lib/firmware/mellanox/mlxsw_spectrum-13.2008.2438.mfa2
lib/firmware/mellanox/mlxsw_spectrum2-29.2000.2308.mfa2
lib/firmware/mellanox/mlxsw_spectrum2-29.2000.2714.mfa2
+lib/firmware/mellanox/mlxsw_spectrum2-29.2007.1168.mfa2
+lib/firmware/mellanox/mlxsw_spectrum2-29.2008.1036.mfa2
+lib/firmware/mellanox/mlxsw_spectrum2-29.2008.1310.mfa2
+lib/firmware/mellanox/mlxsw_spectrum2-29.2008.1312.mfa2
+lib/firmware/mellanox/mlxsw_spectrum2-29.2008.2018.mfa2
+lib/firmware/mellanox/mlxsw_spectrum2-29.2008.2304.mfa2
+lib/firmware/mellanox/mlxsw_spectrum2-29.2008.2406.mfa2
+lib/firmware/mellanox/mlxsw_spectrum2-29.2008.2438.mfa2
+lib/firmware/mellanox/mlxsw_spectrum3-30.2007.1168.mfa2
+lib/firmware/mellanox/mlxsw_spectrum3-30.2008.1036.mfa2
+lib/firmware/mellanox/mlxsw_spectrum3-30.2008.1310.mfa2
+lib/firmware/mellanox/mlxsw_spectrum3-30.2008.1312.mfa2
+lib/firmware/mellanox/mlxsw_spectrum3-30.2008.2018.mfa2
+lib/firmware/mellanox/mlxsw_spectrum3-30.2008.2304.mfa2
+lib/firmware/mellanox/mlxsw_spectrum3-30.2008.2406.mfa2
+lib/firmware/mellanox/mlxsw_spectrum3-30.2008.2438.mfa2
#lib/firmware/meson
#lib/firmware/meson/vdec
lib/firmware/meson/vdec/g12a_h264.bin
lib/firmware/mrvl/pcie8997_wlan_v4.bin
lib/firmware/mrvl/pcieuart8997_combo_v4.bin
lib/firmware/mrvl/pcieusb8997_combo_v4.bin
+lib/firmware/mrvl/prestera
+lib/firmware/mrvl/prestera/mvsw_prestera_fw-v2.0.img
+lib/firmware/mrvl/prestera/mvsw_prestera_fw-v3.0.img
lib/firmware/mrvl/sd8688.bin
lib/firmware/mrvl/sd8688_helper.bin
lib/firmware/mrvl/sd8787_uapsta.bin
lib/firmware/nvidia/tegra186/vic04_ucode.bin
lib/firmware/nvidia/tegra186/xusb.bin
#lib/firmware/nvidia/tegra194
+lib/firmware/nvidia/tegra194/vic.bin
lib/firmware/nvidia/tegra194/xusb.bin
#lib/firmware/nvidia/tegra210
lib/firmware/nvidia/tegra210/vic.bin
lib/firmware/qca/crbtfw32.tlv
lib/firmware/qca/crnv21.bin
lib/firmware/qca/crnv32.bin
+lib/firmware/qca/crnv32u.bin
lib/firmware/qca/htbtfw20.tlv
lib/firmware/qca/htnv20.bin
lib/firmware/qca/nvm_00130300.bin
lib/firmware/qcom/a530v3_gpmu.fw2
lib/firmware/qcom/a630_gmu.bin
lib/firmware/qcom/a630_sqe.fw
+lib/firmware/qcom/a650_gmu.bin
+lib/firmware/qcom/a650_sqe.fw
+lib/firmware/qcom/a660_gmu.bin
+lib/firmware/qcom/a660_sqe.fw
#lib/firmware/qcom/sdm845
lib/firmware/qcom/sdm845/a630_zap.mbn
lib/firmware/qcom/sdm845/adsp.mbn
lib/firmware/qcom/sdm845/modem.mbn
lib/firmware/qcom/sdm845/modemuw.jsn
lib/firmware/qcom/sdm845/wlanmdsp.mbn
+lib/firmware/qcom/sm8250
+lib/firmware/qcom/sm8250/a650_zap.mbn
+lib/firmware/qcom/sm8250/adsp.mbn
+lib/firmware/qcom/sm8250/adspr.jsn
+lib/firmware/qcom/sm8250/adspua.jsn
+lib/firmware/qcom/sm8250/cdsp.mbn
+lib/firmware/qcom/sm8250/cdspr.jsn
#lib/firmware/qcom/venus-1.8
lib/firmware/qcom/venus-1.8/venus.b00
lib/firmware/qcom/venus-1.8/venus.b01
lib/firmware/qcom/venus-5.4/venus.b04
lib/firmware/qcom/venus-5.4/venus.mbn
lib/firmware/qcom/venus-5.4/venus.mdt
+lib/firmware/qcom/vpu-1.0
+lib/firmware/qcom/vpu-1.0/venus.b00
+lib/firmware/qcom/vpu-1.0/venus.b01
+lib/firmware/qcom/vpu-1.0/venus.b02
+lib/firmware/qcom/vpu-1.0/venus.b03
+lib/firmware/qcom/vpu-1.0/venus.b04
+lib/firmware/qcom/vpu-1.0/venus.b05
+lib/firmware/qcom/vpu-1.0/venus.b06
+lib/firmware/qcom/vpu-1.0/venus.b07
+lib/firmware/qcom/vpu-1.0/venus.b08
+lib/firmware/qcom/vpu-1.0/venus.b09
+lib/firmware/qcom/vpu-1.0/venus.b10
+lib/firmware/qcom/vpu-1.0/venus.b19
+lib/firmware/qcom/vpu-1.0/venus.mbn
+lib/firmware/qcom/vpu-1.0/venus.mdt
+lib/firmware/qcom/vpu-2.0
+lib/firmware/qcom/vpu-2.0/venus.b00
+lib/firmware/qcom/vpu-2.0/venus.b01
+lib/firmware/qcom/vpu-2.0/venus.b02
+lib/firmware/qcom/vpu-2.0/venus.b03
+lib/firmware/qcom/vpu-2.0/venus.b04
+lib/firmware/qcom/vpu-2.0/venus.b05
+lib/firmware/qcom/vpu-2.0/venus.b06
+lib/firmware/qcom/vpu-2.0/venus.b07
+lib/firmware/qcom/vpu-2.0/venus.b08
+lib/firmware/qcom/vpu-2.0/venus.b09
+lib/firmware/qcom/vpu-2.0/venus.b10
+lib/firmware/qcom/vpu-2.0/venus.b19
+lib/firmware/qcom/vpu-2.0/venus.mbn
+lib/firmware/qcom/vpu-2.0/venus.mdt
#lib/firmware/qed
lib/firmware/qed/qed_init_values-8.10.9.0.bin
lib/firmware/qed/qed_init_values-8.14.6.0.bin
lib/firmware/rtl_bt/rtl8192eu_fw.bin
lib/firmware/rtl_bt/rtl8723a_fw.bin
lib/firmware/rtl_bt/rtl8723b_fw.bin
+lib/firmware/rtl_bt/rtl8723bs_config-OBDA0623.bin
lib/firmware/rtl_bt/rtl8723bs_config-OBDA8723.bin
lib/firmware/rtl_bt/rtl8723bs_fw.bin
lib/firmware/rtl_bt/rtl8723d_config.bin
lib/firmware/rtl_bt/rtl8723d_fw.bin
lib/firmware/rtl_bt/rtl8761a_fw.bin
lib/firmware/rtl_bt/rtl8812ae_fw.bin
+lib/firmware/rtl_bt/rtl8821a_config.bin
lib/firmware/rtl_bt/rtl8821a_fw.bin
lib/firmware/rtl_bt/rtl8821c_config.bin
lib/firmware/rtl_bt/rtl8821c_fw.bin
lib/firmware/rtl_bt/rtl8822cs_fw.bin
lib/firmware/rtl_bt/rtl8822cu_config.bin
lib/firmware/rtl_bt/rtl8822cu_fw.bin
+lib/firmware/rtl_bt/rtl8852au_config.bin
+lib/firmware/rtl_bt/rtl8852au_fw.bin
#lib/firmware/rtl_nic
lib/firmware/rtl_nic/rtl8105e-1.fw
lib/firmware/rtl_nic/rtl8106e-1.fw
lib/firmware/rtl_nic/rtl8107e-1.fw
lib/firmware/rtl_nic/rtl8107e-2.fw
lib/firmware/rtl_nic/rtl8125a-3.fw
+lib/firmware/rtl_nic/rtl8125b-1.fw
+lib/firmware/rtl_nic/rtl8125b-2.fw
lib/firmware/rtl_nic/rtl8153a-2.fw
lib/firmware/rtl_nic/rtl8153a-3.fw
lib/firmware/rtl_nic/rtl8153a-4.fw
lib/firmware/rtl_nic/rtl8153b-2.fw
+lib/firmware/rtl_nic/rtl8153c-1.fw
+lib/firmware/rtl_nic/rtl8156a-2.fw
+lib/firmware/rtl_nic/rtl8156b-2.fw
lib/firmware/rtl_nic/rtl8168d-1.fw
lib/firmware/rtl_nic/rtl8168d-2.fw
lib/firmware/rtl_nic/rtl8168e-1.fw
lib/firmware/rtw88/rtw8822b_fw.bin
lib/firmware/rtw88/rtw8822c_fw.bin
lib/firmware/rtw88/rtw8822c_wow_fw.bin
+lib/firmware/rtw89
+lib/firmware/rtw89/rtw8852a_fw.bin
lib/firmware/s2250.fw
lib/firmware/s2250_loader.fw
lib/firmware/s5p-mfc-v6-v2.fw
lib/firmware/sb16/ima_adpcm_playback.csp
lib/firmware/sb16/mulaw_main.csp
lib/firmware/sdd_sagrad_1091_1098.bin
+lib/firmware/silabs
+lib/firmware/silabs/wfm_wf200_C0.sec
#lib/firmware/slicoss
lib/firmware/slicoss/gbdownload.sys
lib/firmware/slicoss/gbrcvucode.sys
lib/firmware/tdmb_nova_12mhz.inp
#lib/firmware/tehuti
lib/firmware/tehuti/bdx.bin
+lib/firmware/ti
#lib/firmware/ti-connectivity
lib/firmware/ti-connectivity/TIInit_6.2.31.bts
lib/firmware/ti-connectivity/TIInit_6.6.15.bts
lib/firmware/ti-connectivity/wl18xx-fw.bin
#lib/firmware/ti-keystone
lib/firmware/ti-keystone/ks2_qmss_pdsp_acc48_k2_le_1_0_0_9.bin
+lib/firmware/ti/vpdma-1b8.bin
lib/firmware/ti_3410.fw
lib/firmware/ti_5052.fw
#lib/firmware/tigon
#usr/include/nettle/yarrow.h
usr/lib/libhogweed.so
usr/lib/libhogweed.so.6
-usr/lib/libhogweed.so.6.3
+usr/lib/libhogweed.so.6.4
#usr/lib/libnettle.so
usr/lib/libnettle.so.8
-usr/lib/libnettle.so.8.3
+usr/lib/libnettle.so.8.4
#usr/lib/pkgconfig/hogweed.pc
#usr/lib/pkgconfig/nettle.pc
#usr/lib/libpcre2-16.la
#usr/lib/libpcre2-16.so
usr/lib/libpcre2-16.so.0
-usr/lib/libpcre2-16.so.0.10.1
+usr/lib/libpcre2-16.so.0.10.2
#usr/lib/libpcre2-32.la
#usr/lib/libpcre2-32.so
usr/lib/libpcre2-32.so.0
-usr/lib/libpcre2-32.so.0.10.1
+usr/lib/libpcre2-32.so.0.10.2
#usr/lib/libpcre2-8.la
#usr/lib/libpcre2-8.so
usr/lib/libpcre2-8.so.0
-usr/lib/libpcre2-8.so.0.10.1
+usr/lib/libpcre2-8.so.0.10.2
#usr/lib/libpcre2-posix.la
#usr/lib/libpcre2-posix.so
-usr/lib/libpcre2-posix.so.2
-usr/lib/libpcre2-posix.so.2.0.3
+usr/lib/libpcre2-posix.so.3
+usr/lib/libpcre2-posix.so.3.0.0
#usr/lib/pkgconfig/libpcre2-16.pc
#usr/lib/pkgconfig/libpcre2-32.pc
#usr/lib/pkgconfig/libpcre2-8.pc
#usr/lib/pkgconfig/libpcre2-posix.pc
-#usr/share/doc/pcre-pcre2-10.36
-#usr/share/doc/pcre-pcre2-10.36/AUTHORS
-#usr/share/doc/pcre-pcre2-10.36/COPYING
-#usr/share/doc/pcre-pcre2-10.36/ChangeLog
-#usr/share/doc/pcre-pcre2-10.36/LICENCE
-#usr/share/doc/pcre-pcre2-10.36/NEWS
-#usr/share/doc/pcre-pcre2-10.36/README
-#usr/share/doc/pcre-pcre2-10.36/html
-#usr/share/doc/pcre-pcre2-10.36/html/NON-AUTOTOOLS-BUILD.txt
-#usr/share/doc/pcre-pcre2-10.36/html/README.txt
-#usr/share/doc/pcre-pcre2-10.36/html/index.html
-#usr/share/doc/pcre-pcre2-10.36/html/pcre2-config.html
-#usr/share/doc/pcre-pcre2-10.36/html/pcre2.html
-#usr/share/doc/pcre-pcre2-10.36/html/pcre2_callout_enumerate.html
-#usr/share/doc/pcre-pcre2-10.36/html/pcre2_code_copy.html
-#usr/share/doc/pcre-pcre2-10.36/html/pcre2_code_copy_with_tables.html
-#usr/share/doc/pcre-pcre2-10.36/html/pcre2_code_free.html
-#usr/share/doc/pcre-pcre2-10.36/html/pcre2_compile.html
-#usr/share/doc/pcre-pcre2-10.36/html/pcre2_compile_context_copy.html
-#usr/share/doc/pcre-pcre2-10.36/html/pcre2_compile_context_create.html
-#usr/share/doc/pcre-pcre2-10.36/html/pcre2_compile_context_free.html
-#usr/share/doc/pcre-pcre2-10.36/html/pcre2_config.html
-#usr/share/doc/pcre-pcre2-10.36/html/pcre2_convert_context_copy.html
-#usr/share/doc/pcre-pcre2-10.36/html/pcre2_convert_context_create.html
-#usr/share/doc/pcre-pcre2-10.36/html/pcre2_convert_context_free.html
-#usr/share/doc/pcre-pcre2-10.36/html/pcre2_converted_pattern_free.html
-#usr/share/doc/pcre-pcre2-10.36/html/pcre2_dfa_match.html
-#usr/share/doc/pcre-pcre2-10.36/html/pcre2_general_context_copy.html
-#usr/share/doc/pcre-pcre2-10.36/html/pcre2_general_context_create.html
-#usr/share/doc/pcre-pcre2-10.36/html/pcre2_general_context_free.html
-#usr/share/doc/pcre-pcre2-10.36/html/pcre2_get_error_message.html
-#usr/share/doc/pcre-pcre2-10.36/html/pcre2_get_mark.html
-#usr/share/doc/pcre-pcre2-10.36/html/pcre2_get_match_data_size.html
-#usr/share/doc/pcre-pcre2-10.36/html/pcre2_get_ovector_count.html
-#usr/share/doc/pcre-pcre2-10.36/html/pcre2_get_ovector_pointer.html
-#usr/share/doc/pcre-pcre2-10.36/html/pcre2_get_startchar.html
-#usr/share/doc/pcre-pcre2-10.36/html/pcre2_jit_compile.html
-#usr/share/doc/pcre-pcre2-10.36/html/pcre2_jit_free_unused_memory.html
-#usr/share/doc/pcre-pcre2-10.36/html/pcre2_jit_match.html
-#usr/share/doc/pcre-pcre2-10.36/html/pcre2_jit_stack_assign.html
-#usr/share/doc/pcre-pcre2-10.36/html/pcre2_jit_stack_create.html
-#usr/share/doc/pcre-pcre2-10.36/html/pcre2_jit_stack_free.html
-#usr/share/doc/pcre-pcre2-10.36/html/pcre2_maketables.html
-#usr/share/doc/pcre-pcre2-10.36/html/pcre2_maketables_free.html
-#usr/share/doc/pcre-pcre2-10.36/html/pcre2_match.html
-#usr/share/doc/pcre-pcre2-10.36/html/pcre2_match_context_copy.html
-#usr/share/doc/pcre-pcre2-10.36/html/pcre2_match_context_create.html
-#usr/share/doc/pcre-pcre2-10.36/html/pcre2_match_context_free.html
-#usr/share/doc/pcre-pcre2-10.36/html/pcre2_match_data_create.html
-#usr/share/doc/pcre-pcre2-10.36/html/pcre2_match_data_create_from_pattern.html
-#usr/share/doc/pcre-pcre2-10.36/html/pcre2_match_data_free.html
-#usr/share/doc/pcre-pcre2-10.36/html/pcre2_pattern_convert.html
-#usr/share/doc/pcre-pcre2-10.36/html/pcre2_pattern_info.html
-#usr/share/doc/pcre-pcre2-10.36/html/pcre2_serialize_decode.html
-#usr/share/doc/pcre-pcre2-10.36/html/pcre2_serialize_encode.html
-#usr/share/doc/pcre-pcre2-10.36/html/pcre2_serialize_free.html
-#usr/share/doc/pcre-pcre2-10.36/html/pcre2_serialize_get_number_of_codes.html
-#usr/share/doc/pcre-pcre2-10.36/html/pcre2_set_bsr.html
-#usr/share/doc/pcre-pcre2-10.36/html/pcre2_set_callout.html
-#usr/share/doc/pcre-pcre2-10.36/html/pcre2_set_character_tables.html
-#usr/share/doc/pcre-pcre2-10.36/html/pcre2_set_compile_extra_options.html
-#usr/share/doc/pcre-pcre2-10.36/html/pcre2_set_compile_recursion_guard.html
-#usr/share/doc/pcre-pcre2-10.36/html/pcre2_set_depth_limit.html
-#usr/share/doc/pcre-pcre2-10.36/html/pcre2_set_glob_escape.html
-#usr/share/doc/pcre-pcre2-10.36/html/pcre2_set_glob_separator.html
-#usr/share/doc/pcre-pcre2-10.36/html/pcre2_set_heap_limit.html
-#usr/share/doc/pcre-pcre2-10.36/html/pcre2_set_match_limit.html
-#usr/share/doc/pcre-pcre2-10.36/html/pcre2_set_max_pattern_length.html
-#usr/share/doc/pcre-pcre2-10.36/html/pcre2_set_newline.html
-#usr/share/doc/pcre-pcre2-10.36/html/pcre2_set_offset_limit.html
-#usr/share/doc/pcre-pcre2-10.36/html/pcre2_set_parens_nest_limit.html
-#usr/share/doc/pcre-pcre2-10.36/html/pcre2_set_recursion_limit.html
-#usr/share/doc/pcre-pcre2-10.36/html/pcre2_set_recursion_memory_management.html
-#usr/share/doc/pcre-pcre2-10.36/html/pcre2_set_substitute_callout.html
-#usr/share/doc/pcre-pcre2-10.36/html/pcre2_substitute.html
-#usr/share/doc/pcre-pcre2-10.36/html/pcre2_substring_copy_byname.html
-#usr/share/doc/pcre-pcre2-10.36/html/pcre2_substring_copy_bynumber.html
-#usr/share/doc/pcre-pcre2-10.36/html/pcre2_substring_free.html
-#usr/share/doc/pcre-pcre2-10.36/html/pcre2_substring_get_byname.html
-#usr/share/doc/pcre-pcre2-10.36/html/pcre2_substring_get_bynumber.html
-#usr/share/doc/pcre-pcre2-10.36/html/pcre2_substring_length_byname.html
-#usr/share/doc/pcre-pcre2-10.36/html/pcre2_substring_length_bynumber.html
-#usr/share/doc/pcre-pcre2-10.36/html/pcre2_substring_list_free.html
-#usr/share/doc/pcre-pcre2-10.36/html/pcre2_substring_list_get.html
-#usr/share/doc/pcre-pcre2-10.36/html/pcre2_substring_nametable_scan.html
-#usr/share/doc/pcre-pcre2-10.36/html/pcre2_substring_number_from_name.html
-#usr/share/doc/pcre-pcre2-10.36/html/pcre2api.html
-#usr/share/doc/pcre-pcre2-10.36/html/pcre2build.html
-#usr/share/doc/pcre-pcre2-10.36/html/pcre2callout.html
-#usr/share/doc/pcre-pcre2-10.36/html/pcre2compat.html
-#usr/share/doc/pcre-pcre2-10.36/html/pcre2convert.html
-#usr/share/doc/pcre-pcre2-10.36/html/pcre2demo.html
-#usr/share/doc/pcre-pcre2-10.36/html/pcre2grep.html
-#usr/share/doc/pcre-pcre2-10.36/html/pcre2jit.html
-#usr/share/doc/pcre-pcre2-10.36/html/pcre2limits.html
-#usr/share/doc/pcre-pcre2-10.36/html/pcre2matching.html
-#usr/share/doc/pcre-pcre2-10.36/html/pcre2partial.html
-#usr/share/doc/pcre-pcre2-10.36/html/pcre2pattern.html
-#usr/share/doc/pcre-pcre2-10.36/html/pcre2perform.html
-#usr/share/doc/pcre-pcre2-10.36/html/pcre2posix.html
-#usr/share/doc/pcre-pcre2-10.36/html/pcre2sample.html
-#usr/share/doc/pcre-pcre2-10.36/html/pcre2serialize.html
-#usr/share/doc/pcre-pcre2-10.36/html/pcre2syntax.html
-#usr/share/doc/pcre-pcre2-10.36/html/pcre2test.html
-#usr/share/doc/pcre-pcre2-10.36/html/pcre2unicode.html
-#usr/share/doc/pcre-pcre2-10.36/pcre2-config.txt
-#usr/share/doc/pcre-pcre2-10.36/pcre2.txt
-#usr/share/doc/pcre-pcre2-10.36/pcre2grep.txt
-#usr/share/doc/pcre-pcre2-10.36/pcre2test.txt
+#usr/share/doc/pcre-pcre2-10.37
+#usr/share/doc/pcre-pcre2-10.37/AUTHORS
+#usr/share/doc/pcre-pcre2-10.37/COPYING
+#usr/share/doc/pcre-pcre2-10.37/ChangeLog
+#usr/share/doc/pcre-pcre2-10.37/LICENCE
+#usr/share/doc/pcre-pcre2-10.37/NEWS
+#usr/share/doc/pcre-pcre2-10.37/README
+#usr/share/doc/pcre-pcre2-10.37/html
+#usr/share/doc/pcre-pcre2-10.37/html/NON-AUTOTOOLS-BUILD.txt
+#usr/share/doc/pcre-pcre2-10.37/html/README.txt
+#usr/share/doc/pcre-pcre2-10.37/html/index.html
+#usr/share/doc/pcre-pcre2-10.37/html/pcre2-config.html
+#usr/share/doc/pcre-pcre2-10.37/html/pcre2.html
+#usr/share/doc/pcre-pcre2-10.37/html/pcre2_callout_enumerate.html
+#usr/share/doc/pcre-pcre2-10.37/html/pcre2_code_copy.html
+#usr/share/doc/pcre-pcre2-10.37/html/pcre2_code_copy_with_tables.html
+#usr/share/doc/pcre-pcre2-10.37/html/pcre2_code_free.html
+#usr/share/doc/pcre-pcre2-10.37/html/pcre2_compile.html
+#usr/share/doc/pcre-pcre2-10.37/html/pcre2_compile_context_copy.html
+#usr/share/doc/pcre-pcre2-10.37/html/pcre2_compile_context_create.html
+#usr/share/doc/pcre-pcre2-10.37/html/pcre2_compile_context_free.html
+#usr/share/doc/pcre-pcre2-10.37/html/pcre2_config.html
+#usr/share/doc/pcre-pcre2-10.37/html/pcre2_convert_context_copy.html
+#usr/share/doc/pcre-pcre2-10.37/html/pcre2_convert_context_create.html
+#usr/share/doc/pcre-pcre2-10.37/html/pcre2_convert_context_free.html
+#usr/share/doc/pcre-pcre2-10.37/html/pcre2_converted_pattern_free.html
+#usr/share/doc/pcre-pcre2-10.37/html/pcre2_dfa_match.html
+#usr/share/doc/pcre-pcre2-10.37/html/pcre2_general_context_copy.html
+#usr/share/doc/pcre-pcre2-10.37/html/pcre2_general_context_create.html
+#usr/share/doc/pcre-pcre2-10.37/html/pcre2_general_context_free.html
+#usr/share/doc/pcre-pcre2-10.37/html/pcre2_get_error_message.html
+#usr/share/doc/pcre-pcre2-10.37/html/pcre2_get_mark.html
+#usr/share/doc/pcre-pcre2-10.37/html/pcre2_get_match_data_size.html
+#usr/share/doc/pcre-pcre2-10.37/html/pcre2_get_ovector_count.html
+#usr/share/doc/pcre-pcre2-10.37/html/pcre2_get_ovector_pointer.html
+#usr/share/doc/pcre-pcre2-10.37/html/pcre2_get_startchar.html
+#usr/share/doc/pcre-pcre2-10.37/html/pcre2_jit_compile.html
+#usr/share/doc/pcre-pcre2-10.37/html/pcre2_jit_free_unused_memory.html
+#usr/share/doc/pcre-pcre2-10.37/html/pcre2_jit_match.html
+#usr/share/doc/pcre-pcre2-10.37/html/pcre2_jit_stack_assign.html
+#usr/share/doc/pcre-pcre2-10.37/html/pcre2_jit_stack_create.html
+#usr/share/doc/pcre-pcre2-10.37/html/pcre2_jit_stack_free.html
+#usr/share/doc/pcre-pcre2-10.37/html/pcre2_maketables.html
+#usr/share/doc/pcre-pcre2-10.37/html/pcre2_maketables_free.html
+#usr/share/doc/pcre-pcre2-10.37/html/pcre2_match.html
+#usr/share/doc/pcre-pcre2-10.37/html/pcre2_match_context_copy.html
+#usr/share/doc/pcre-pcre2-10.37/html/pcre2_match_context_create.html
+#usr/share/doc/pcre-pcre2-10.37/html/pcre2_match_context_free.html
+#usr/share/doc/pcre-pcre2-10.37/html/pcre2_match_data_create.html
+#usr/share/doc/pcre-pcre2-10.37/html/pcre2_match_data_create_from_pattern.html
+#usr/share/doc/pcre-pcre2-10.37/html/pcre2_match_data_free.html
+#usr/share/doc/pcre-pcre2-10.37/html/pcre2_pattern_convert.html
+#usr/share/doc/pcre-pcre2-10.37/html/pcre2_pattern_info.html
+#usr/share/doc/pcre-pcre2-10.37/html/pcre2_serialize_decode.html
+#usr/share/doc/pcre-pcre2-10.37/html/pcre2_serialize_encode.html
+#usr/share/doc/pcre-pcre2-10.37/html/pcre2_serialize_free.html
+#usr/share/doc/pcre-pcre2-10.37/html/pcre2_serialize_get_number_of_codes.html
+#usr/share/doc/pcre-pcre2-10.37/html/pcre2_set_bsr.html
+#usr/share/doc/pcre-pcre2-10.37/html/pcre2_set_callout.html
+#usr/share/doc/pcre-pcre2-10.37/html/pcre2_set_character_tables.html
+#usr/share/doc/pcre-pcre2-10.37/html/pcre2_set_compile_extra_options.html
+#usr/share/doc/pcre-pcre2-10.37/html/pcre2_set_compile_recursion_guard.html
+#usr/share/doc/pcre-pcre2-10.37/html/pcre2_set_depth_limit.html
+#usr/share/doc/pcre-pcre2-10.37/html/pcre2_set_glob_escape.html
+#usr/share/doc/pcre-pcre2-10.37/html/pcre2_set_glob_separator.html
+#usr/share/doc/pcre-pcre2-10.37/html/pcre2_set_heap_limit.html
+#usr/share/doc/pcre-pcre2-10.37/html/pcre2_set_match_limit.html
+#usr/share/doc/pcre-pcre2-10.37/html/pcre2_set_max_pattern_length.html
+#usr/share/doc/pcre-pcre2-10.37/html/pcre2_set_newline.html
+#usr/share/doc/pcre-pcre2-10.37/html/pcre2_set_offset_limit.html
+#usr/share/doc/pcre-pcre2-10.37/html/pcre2_set_parens_nest_limit.html
+#usr/share/doc/pcre-pcre2-10.37/html/pcre2_set_recursion_limit.html
+#usr/share/doc/pcre-pcre2-10.37/html/pcre2_set_recursion_memory_management.html
+#usr/share/doc/pcre-pcre2-10.37/html/pcre2_set_substitute_callout.html
+#usr/share/doc/pcre-pcre2-10.37/html/pcre2_substitute.html
+#usr/share/doc/pcre-pcre2-10.37/html/pcre2_substring_copy_byname.html
+#usr/share/doc/pcre-pcre2-10.37/html/pcre2_substring_copy_bynumber.html
+#usr/share/doc/pcre-pcre2-10.37/html/pcre2_substring_free.html
+#usr/share/doc/pcre-pcre2-10.37/html/pcre2_substring_get_byname.html
+#usr/share/doc/pcre-pcre2-10.37/html/pcre2_substring_get_bynumber.html
+#usr/share/doc/pcre-pcre2-10.37/html/pcre2_substring_length_byname.html
+#usr/share/doc/pcre-pcre2-10.37/html/pcre2_substring_length_bynumber.html
+#usr/share/doc/pcre-pcre2-10.37/html/pcre2_substring_list_free.html
+#usr/share/doc/pcre-pcre2-10.37/html/pcre2_substring_list_get.html
+#usr/share/doc/pcre-pcre2-10.37/html/pcre2_substring_nametable_scan.html
+#usr/share/doc/pcre-pcre2-10.37/html/pcre2_substring_number_from_name.html
+#usr/share/doc/pcre-pcre2-10.37/html/pcre2api.html
+#usr/share/doc/pcre-pcre2-10.37/html/pcre2build.html
+#usr/share/doc/pcre-pcre2-10.37/html/pcre2callout.html
+#usr/share/doc/pcre-pcre2-10.37/html/pcre2compat.html
+#usr/share/doc/pcre-pcre2-10.37/html/pcre2convert.html
+#usr/share/doc/pcre-pcre2-10.37/html/pcre2demo.html
+#usr/share/doc/pcre-pcre2-10.37/html/pcre2grep.html
+#usr/share/doc/pcre-pcre2-10.37/html/pcre2jit.html
+#usr/share/doc/pcre-pcre2-10.37/html/pcre2limits.html
+#usr/share/doc/pcre-pcre2-10.37/html/pcre2matching.html
+#usr/share/doc/pcre-pcre2-10.37/html/pcre2partial.html
+#usr/share/doc/pcre-pcre2-10.37/html/pcre2pattern.html
+#usr/share/doc/pcre-pcre2-10.37/html/pcre2perform.html
+#usr/share/doc/pcre-pcre2-10.37/html/pcre2posix.html
+#usr/share/doc/pcre-pcre2-10.37/html/pcre2sample.html
+#usr/share/doc/pcre-pcre2-10.37/html/pcre2serialize.html
+#usr/share/doc/pcre-pcre2-10.37/html/pcre2syntax.html
+#usr/share/doc/pcre-pcre2-10.37/html/pcre2test.html
+#usr/share/doc/pcre-pcre2-10.37/html/pcre2unicode.html
+#usr/share/doc/pcre-pcre2-10.37/pcre2-config.txt
+#usr/share/doc/pcre-pcre2-10.37/pcre2.txt
+#usr/share/doc/pcre-pcre2-10.37/pcre2grep.txt
+#usr/share/doc/pcre-pcre2-10.37/pcre2test.txt
#usr/share/man/man1/pcre2-config.1
#usr/share/man/man1/pcre2grep.1
#usr/share/man/man1/pcre2test.1
--- /dev/null
+#usr/lib/perl5/site_perl/5.32.1/xxxMACHINExxx-linux-thread-multi/Data
+usr/lib/perl5/site_perl/5.32.1/xxxMACHINExxx-linux-thread-multi/Data/UUID.pm
+#usr/lib/perl5/site_perl/5.32.1/xxxMACHINExxx-linux-thread-multi/auto/Data
+#usr/lib/perl5/site_perl/5.32.1/xxxMACHINExxx-linux-thread-multi/auto/Data/UUID
+#usr/lib/perl5/site_perl/5.32.1/xxxMACHINExxx-linux-thread-multi/auto/Data/UUID/.packlist
+usr/lib/perl5/site_perl/5.32.1/xxxMACHINExxx-linux-thread-multi/auto/Data/UUID/UUID.so
+#usr/share/man/man3/Data::UUID.3
+++ /dev/null
-#usr/lib/python2.7/site-packages/pyparsing-2.2.0-py2.7.egg
#usr/lib/libqpdf.la
#usr/lib/libqpdf.so
usr/lib/libqpdf.so.28
-usr/lib/libqpdf.so.28.3.0
+usr/lib/libqpdf.so.28.3.2
#usr/lib/pkgconfig/libqpdf.pc
#usr/share/doc/qpdf
#usr/share/doc/qpdf/qpdf-manual.html
srv/web/ipfire/html/images/addblue.gif
srv/web/ipfire/html/images/addgreen.gif
srv/web/ipfire/html/images/address-book-new.png
+srv/web/ipfire/html/images/apple.png
srv/web/ipfire/html/images/application-certificate.png
srv/web/ipfire/html/images/application-x-executable.png
srv/web/ipfire/html/images/applications-accessories.png
#usr/share/doc/dmidecode
#usr/share/doc/dmidecode/AUTHORS
#usr/share/doc/dmidecode/CHANGELOG
+#usr/share/doc/dmidecode/NEWS
#usr/share/doc/dmidecode/README
#usr/share/man/man8/biosdecode.8
#usr/share/man/man8/dmidecode.8
etc/rc.d/init.d/networking/red
#etc/rc.d/init.d/networking/red.down
etc/rc.d/init.d/networking/red.down/10-ipsec
-etc/rc.d/init.d/networking/red.down/10-miniupnpd
etc/rc.d/init.d/networking/red.down/10-ovpn
etc/rc.d/init.d/networking/red.down/10-static-routes
etc/rc.d/init.d/networking/red.down/20-firewall
etc/rc.d/init.d/networking/red.down/99-beep
#etc/rc.d/init.d/networking/red.up
etc/rc.d/init.d/networking/red.up/01-conntrack-cleanup
-etc/rc.d/init.d/networking/red.up/10-miniupnpd
etc/rc.d/init.d/networking/red.up/10-multicast
etc/rc.d/init.d/networking/red.up/10-static-routes
etc/rc.d/init.d/networking/red.up/20-firewall
etc/rc.d/init.d/udev
etc/rc.d/init.d/udev_retry
etc/rc.d/init.d/unbound
-etc/rc.d/init.d/upnpd
etc/rc.d/init.d/vnstat
etc/rc.d/init.d/waitdrives
etc/rc.d/init.d/wlanclient
etc/rc.d/rc0.d/K79leds
etc/rc.d/rc0.d/K80network
etc/rc.d/rc0.d/K82wlanclient
-#etc/rc.d/rc0.d/K84bluetooth
#etc/rc.d/rc0.d/K85messagebus
etc/rc.d/rc0.d/K86unbound
etc/rc.d/rc0.d/K87acpid
etc/rc.d/rc3.d/S12acpid
etc/rc.d/rc3.d/S15fireinfo
#etc/rc.d/rc3.d/S15messagebus
-#etc/rc.d/rc3.d/S16bluetooth
#etc/rc.d/rc3.d/S18cpufreq
etc/rc.d/rc3.d/S19smartenabler
etc/rc.d/rc3.d/S19wlanclient
etc/rc.d/rc6.d/K79leds
etc/rc.d/rc6.d/K80network
etc/rc.d/rc6.d/K82wlanclient
-#etc/rc.d/rc6.d/K84bluetooth
#etc/rc.d/rc6.d/K85messagebus
etc/rc.d/rc6.d/K86unbound
etc/rc.d/rc6.d/K87acpid
lib/firmware/intel-ucode/06-4e-03
lib/firmware/intel-ucode/06-55-03
lib/firmware/intel-ucode/06-55-04
+lib/firmware/intel-ucode/06-55-05
lib/firmware/intel-ucode/06-55-06
lib/firmware/intel-ucode/06-55-07
lib/firmware/intel-ucode/06-55-0b
lib/firmware/intel-ucode/06-5e-03
lib/firmware/intel-ucode/06-5f-01
lib/firmware/intel-ucode/06-66-03
+lib/firmware/intel-ucode/06-6a-05
+lib/firmware/intel-ucode/06-6a-06
lib/firmware/intel-ucode/06-7a-01
lib/firmware/intel-ucode/06-7a-08
lib/firmware/intel-ucode/06-7e-05
+lib/firmware/intel-ucode/06-86-04
+lib/firmware/intel-ucode/06-86-05
lib/firmware/intel-ucode/06-8a-01
+lib/firmware/intel-ucode/06-8c-01
+lib/firmware/intel-ucode/06-8c-02
+lib/firmware/intel-ucode/06-8d-01
lib/firmware/intel-ucode/06-8e-09
lib/firmware/intel-ucode/06-8e-0a
lib/firmware/intel-ucode/06-8e-0b
lib/firmware/intel-ucode/06-8e-0c
+lib/firmware/intel-ucode/06-96-01
+lib/firmware/intel-ucode/06-9c-00
lib/firmware/intel-ucode/06-9e-09
lib/firmware/intel-ucode/06-9e-0a
lib/firmware/intel-ucode/06-9e-0b
lib/firmware/intel-ucode/06-a5-05
lib/firmware/intel-ucode/06-a6-00
lib/firmware/intel-ucode/06-a6-01
+lib/firmware/intel-ucode/06-a7-01
lib/firmware/intel-ucode/0f-00-07
lib/firmware/intel-ucode/0f-00-0a
lib/firmware/intel-ucode/0f-01-02
#usr/lib/libzstd.a
#usr/lib/libzstd.so
usr/lib/libzstd.so.1
-usr/lib/libzstd.so.1.4.9
+usr/lib/libzstd.so.1.5.0
#usr/lib/pkgconfig/libzstd.pc
#usr/share/man/man1/unzstd.1
#usr/share/man/man1/zstd.1
--- /dev/null
+../../../common/XML-Parser
\ No newline at end of file
--- /dev/null
+../../../common/bind
\ No newline at end of file
--- /dev/null
+../../../common/ca-certificates
\ No newline at end of file
--- /dev/null
+../../../common/ethtool
\ No newline at end of file
--- /dev/null
+etc/rc.d/init.d/firewall
+etc/ssh/sshd_config
+opt/pakfire/lib/functions.pl
+opt/pakfire/pakfire
+usr/lib/firewall/ipsec-policy
+var/ipfire/backup/bin/backup.pl
+var/ipfire/countries.pl
+var/ipfire/general-functions.pl
+var/ipfire/graphs.pl
+var/ipfire/header.pl
+var/ipfire/ids-functions.pl
+var/ipfire/lang.pl
+var/ipfire/location-functions.pl
+var/ipfire/modem-lib.pl
--- /dev/null
+../../../common/fireinfo
\ No newline at end of file
--- /dev/null
+../../../common/gnutls
\ No newline at end of file
--- /dev/null
+../../../common/gzip
\ No newline at end of file
--- /dev/null
+../../../common/hwdata
\ No newline at end of file
--- /dev/null
+../../../../common/i586/dmidecode
\ No newline at end of file
--- /dev/null
+../../../../common/i586/intel-microcode
\ No newline at end of file
--- /dev/null
+../../../common/knot
\ No newline at end of file
--- /dev/null
+../../../common/libcap
\ No newline at end of file
--- /dev/null
+../../../common/libnl-3
\ No newline at end of file
--- /dev/null
+../../../common/libpcap
\ No newline at end of file
--- /dev/null
+../../../common/libusb
\ No newline at end of file
--- /dev/null
+/lib/firmware/amd/amd_sev_fam17h_model0xh.sbin
+/lib/firmware/amd/amd_sev_fam17h_model3xh.sbin
+/lib/firmware/amdgpu/arcturus_asd.bin
+/lib/firmware/amdgpu/arcturus_gpu_info.bin
+/lib/firmware/amdgpu/arcturus_mec2.bin
+/lib/firmware/amdgpu/arcturus_mec.bin
+/lib/firmware/amdgpu/arcturus_rlc.bin
+/lib/firmware/amdgpu/arcturus_sdma.bin
+/lib/firmware/amdgpu/arcturus_smc.bin
+/lib/firmware/amdgpu/arcturus_sos.bin
+/lib/firmware/amdgpu/arcturus_ta.bin
+/lib/firmware/amdgpu/arcturus_vcn.bin
+/lib/firmware/amdgpu/green_sardine_asd.bin
+/lib/firmware/amdgpu/green_sardine_ce.bin
+/lib/firmware/amdgpu/green_sardine_dmcub.bin
+/lib/firmware/amdgpu/green_sardine_me.bin
+/lib/firmware/amdgpu/green_sardine_mec2.bin
+/lib/firmware/amdgpu/green_sardine_mec.bin
+/lib/firmware/amdgpu/green_sardine_pfp.bin
+/lib/firmware/amdgpu/green_sardine_rlc.bin
+/lib/firmware/amdgpu/green_sardine_sdma.bin
+/lib/firmware/amdgpu/green_sardine_ta.bin
+/lib/firmware/amdgpu/green_sardine_vcn.bin
+/lib/firmware/amdgpu/navi10_asd.bin
+/lib/firmware/amdgpu/navi10_ce.bin
+/lib/firmware/amdgpu/navi10_me.bin
+/lib/firmware/amdgpu/navi10_mec2.bin
+/lib/firmware/amdgpu/navi10_mec.bin
+/lib/firmware/amdgpu/navi10_pfp.bin
+/lib/firmware/amdgpu/navi10_rlc.bin
+/lib/firmware/amdgpu/navi10_sdma1.bin
+/lib/firmware/amdgpu/navi10_sdma.bin
+/lib/firmware/amdgpu/navi10_smc.bin
+/lib/firmware/amdgpu/navi10_sos.bin
+/lib/firmware/amdgpu/navi10_ta.bin
+/lib/firmware/amdgpu/navi10_vcn.bin
+/lib/firmware/amdgpu/navi12_asd.bin
+/lib/firmware/amdgpu/navi12_ce.bin
+/lib/firmware/amdgpu/navi12_dmcu.bin
+/lib/firmware/amdgpu/navi12_gpu_info.bin
+/lib/firmware/amdgpu/navi12_me.bin
+/lib/firmware/amdgpu/navi12_mec2.bin
+/lib/firmware/amdgpu/navi12_mec.bin
+/lib/firmware/amdgpu/navi12_pfp.bin
+/lib/firmware/amdgpu/navi12_rlc.bin
+/lib/firmware/amdgpu/navi12_sdma1.bin
+/lib/firmware/amdgpu/navi12_sdma.bin
+/lib/firmware/amdgpu/navi12_smc.bin
+/lib/firmware/amdgpu/navi12_sos.bin
+/lib/firmware/amdgpu/navi12_ta.bin
+/lib/firmware/amdgpu/navi12_vcn.bin
+/lib/firmware/amdgpu/navi14_asd.bin
+/lib/firmware/amdgpu/navi14_ce.bin
+/lib/firmware/amdgpu/navi14_me.bin
+/lib/firmware/amdgpu/navi14_mec2.bin
+/lib/firmware/amdgpu/navi14_mec.bin
+/lib/firmware/amdgpu/navi14_pfp.bin
+/lib/firmware/amdgpu/navi14_rlc.bin
+/lib/firmware/amdgpu/navi14_sdma1.bin
+/lib/firmware/amdgpu/navi14_sdma.bin
+/lib/firmware/amdgpu/navi14_smc.bin
+/lib/firmware/amdgpu/navi14_sos.bin
+/lib/firmware/amdgpu/navi14_ta.bin
+/lib/firmware/amdgpu/navi14_vcn.bin
+/lib/firmware/amdgpu/navy_flounder_ce.bin
+/lib/firmware/amdgpu/navy_flounder_dmcub.bin
+/lib/firmware/amdgpu/navy_flounder_me.bin
+/lib/firmware/amdgpu/navy_flounder_mec2.bin
+/lib/firmware/amdgpu/navy_flounder_mec.bin
+/lib/firmware/amdgpu/navy_flounder_pfp.bin
+/lib/firmware/amdgpu/navy_flounder_rlc.bin
+/lib/firmware/amdgpu/navy_flounder_sdma.bin
+/lib/firmware/amdgpu/navy_flounder_smc.bin
+/lib/firmware/amdgpu/navy_flounder_sos.bin
+/lib/firmware/amdgpu/navy_flounder_ta.bin
+/lib/firmware/amdgpu/navy_flounder_vcn.bin
+/lib/firmware/amdgpu/oland_uvd.bin
+/lib/firmware/amdgpu/picasso_asd.bin
+/lib/firmware/amdgpu/picasso_ce.bin
+/lib/firmware/amdgpu/picasso_me.bin
+/lib/firmware/amdgpu/picasso_mec2.bin
+/lib/firmware/amdgpu/picasso_mec.bin
+/lib/firmware/amdgpu/picasso_pfp.bin
+/lib/firmware/amdgpu/picasso_rlc.bin
+/lib/firmware/amdgpu/picasso_sdma.bin
+/lib/firmware/amdgpu/picasso_ta.bin
+/lib/firmware/amdgpu/picasso_vcn.bin
+/lib/firmware/amdgpu/pitcairn_uvd.bin
+/lib/firmware/amdgpu/polaris12_32_mc.bin
+/lib/firmware/amdgpu/raven2_asd.bin
+/lib/firmware/amdgpu/raven2_ce.bin
+/lib/firmware/amdgpu/raven2_me.bin
+/lib/firmware/amdgpu/raven2_mec2.bin
+/lib/firmware/amdgpu/raven2_mec.bin
+/lib/firmware/amdgpu/raven2_pfp.bin
+/lib/firmware/amdgpu/raven2_sdma.bin
+/lib/firmware/amdgpu/raven2_ta.bin
+/lib/firmware/amdgpu/raven2_vcn.bin
+/lib/firmware/amdgpu/raven_asd.bin
+/lib/firmware/amdgpu/raven_ce.bin
+/lib/firmware/amdgpu/raven_me.bin
+/lib/firmware/amdgpu/raven_mec2.bin
+/lib/firmware/amdgpu/raven_mec.bin
+/lib/firmware/amdgpu/raven_pfp.bin
+/lib/firmware/amdgpu/raven_sdma.bin
+/lib/firmware/amdgpu/raven_ta.bin
+/lib/firmware/amdgpu/raven_vcn.bin
+/lib/firmware/amdgpu/renoir_asd.bin
+/lib/firmware/amdgpu/renoir_ce.bin
+/lib/firmware/amdgpu/renoir_dmcub.bin
+/lib/firmware/amdgpu/renoir_me.bin
+/lib/firmware/amdgpu/renoir_mec2.bin
+/lib/firmware/amdgpu/renoir_mec.bin
+/lib/firmware/amdgpu/renoir_pfp.bin
+/lib/firmware/amdgpu/renoir_rlc.bin
+/lib/firmware/amdgpu/renoir_sdma.bin
+/lib/firmware/amdgpu/renoir_ta.bin
+/lib/firmware/amdgpu/sienna_cichlid_ce.bin
+/lib/firmware/amdgpu/sienna_cichlid_dmcub.bin
+/lib/firmware/amdgpu/sienna_cichlid_me.bin
+/lib/firmware/amdgpu/sienna_cichlid_mec2.bin
+/lib/firmware/amdgpu/sienna_cichlid_mec.bin
+/lib/firmware/amdgpu/sienna_cichlid_pfp.bin
+/lib/firmware/amdgpu/sienna_cichlid_rlc.bin
+/lib/firmware/amdgpu/sienna_cichlid_sdma.bin
+/lib/firmware/amdgpu/sienna_cichlid_smc.bin
+/lib/firmware/amdgpu/sienna_cichlid_sos.bin
+/lib/firmware/amdgpu/sienna_cichlid_ta.bin
+/lib/firmware/amdgpu/sienna_cichlid_vcn.bin
+/lib/firmware/amdgpu/tahiti_uvd.bin
+/lib/firmware/amdgpu/vega10_asd.bin
+/lib/firmware/amdgpu/vega10_ce.bin
+/lib/firmware/amdgpu/vega10_me.bin
+/lib/firmware/amdgpu/vega10_mec2.bin
+/lib/firmware/amdgpu/vega10_mec.bin
+/lib/firmware/amdgpu/vega10_pfp.bin
+/lib/firmware/amdgpu/vega12_asd.bin
+/lib/firmware/amdgpu/vega12_ce.bin
+/lib/firmware/amdgpu/vega12_me.bin
+/lib/firmware/amdgpu/vega12_mec2.bin
+/lib/firmware/amdgpu/vega12_mec.bin
+/lib/firmware/amdgpu/vega12_pfp.bin
+/lib/firmware/amdgpu/vega12_smc.bin
+/lib/firmware/amdgpu/vega20_asd.bin
+/lib/firmware/amdgpu/vega20_ce.bin
+/lib/firmware/amdgpu/vega20_me.bin
+/lib/firmware/amdgpu/vega20_mec2.bin
+/lib/firmware/amdgpu/vega20_mec.bin
+/lib/firmware/amdgpu/vega20_pfp.bin
+/lib/firmware/amdgpu/vega20_sdma1.bin
+/lib/firmware/amdgpu/vega20_sdma.bin
+/lib/firmware/amdgpu/vega20_smc.bin
+/lib/firmware/amdgpu/vega20_sos.bin
+/lib/firmware/amdgpu/vega20_ta.bin
+/lib/firmware/amdgpu/verde_uvd.bin
+/lib/firmware/ath10k/QCA6174/hw3.0/board-2.bin
+/lib/firmware/ath10k/QCA6174/hw3.0/firmware-6.bin
+/lib/firmware/ath10k/QCA6174/hw3.0/firmware-sdio-6.bin
+/lib/firmware/ath10k/QCA9377/hw1.0/firmware-sdio-5.bin
+/lib/firmware/ath10k/QCA9888/hw2.0/firmware-5.bin
+/lib/firmware/ath10k/QCA9984/hw1.0/firmware-5.bin
+/lib/firmware/ath11k/IPQ6018/hw1.0/board-2.bin
+/lib/firmware/ath11k/IPQ6018/hw1.0/m3_fw.b00
+/lib/firmware/ath11k/IPQ6018/hw1.0/m3_fw.b01
+/lib/firmware/ath11k/IPQ6018/hw1.0/m3_fw.b02
+/lib/firmware/ath11k/IPQ6018/hw1.0/m3_fw.flist
+/lib/firmware/ath11k/IPQ6018/hw1.0/m3_fw.mdt
+/lib/firmware/ath11k/IPQ6018/hw1.0/q6_fw.b00
+/lib/firmware/ath11k/IPQ6018/hw1.0/q6_fw.b01
+/lib/firmware/ath11k/IPQ6018/hw1.0/q6_fw.b02
+/lib/firmware/ath11k/IPQ6018/hw1.0/q6_fw.b03
+/lib/firmware/ath11k/IPQ6018/hw1.0/q6_fw.b04
+/lib/firmware/ath11k/IPQ6018/hw1.0/q6_fw.b05
+/lib/firmware/ath11k/IPQ6018/hw1.0/q6_fw.b07
+/lib/firmware/ath11k/IPQ6018/hw1.0/q6_fw.b08
+/lib/firmware/ath11k/IPQ6018/hw1.0/q6_fw.flist
+/lib/firmware/ath11k/IPQ6018/hw1.0/q6_fw.mdt
+/lib/firmware/ath11k/IPQ8074/hw2.0/board-2.bin
+/lib/firmware/ath11k/IPQ8074/hw2.0/m3_fw.b00
+/lib/firmware/ath11k/IPQ8074/hw2.0/m3_fw.b01
+/lib/firmware/ath11k/IPQ8074/hw2.0/m3_fw.b02
+/lib/firmware/ath11k/IPQ8074/hw2.0/m3_fw.flist
+/lib/firmware/ath11k/IPQ8074/hw2.0/m3_fw.mdt
+/lib/firmware/ath11k/IPQ8074/hw2.0/q6_fw.b00
+/lib/firmware/ath11k/IPQ8074/hw2.0/q6_fw.b01
+/lib/firmware/ath11k/IPQ8074/hw2.0/q6_fw.b02
+/lib/firmware/ath11k/IPQ8074/hw2.0/q6_fw.b03
+/lib/firmware/ath11k/IPQ8074/hw2.0/q6_fw.b04
+/lib/firmware/ath11k/IPQ8074/hw2.0/q6_fw.b05
+/lib/firmware/ath11k/IPQ8074/hw2.0/q6_fw.b07
+/lib/firmware/ath11k/IPQ8074/hw2.0/q6_fw.b08
+/lib/firmware/ath11k/IPQ8074/hw2.0/q6_fw.flist
+/lib/firmware/ath11k/IPQ8074/hw2.0/q6_fw.mdt
+/lib/firmware/ath11k/QCA6390/hw2.0/amss.bin
+/lib/firmware/ath11k/QCA6390/hw2.0/board-2.bin
+/lib/firmware/ath11k/QCA6390/hw2.0/m3.bin
+/lib/firmware/atmel/wilc1000_wifi_firmware-1.bin
+/lib/firmware/brcm/brcmfmac43340-sdio.predia-basic.txt
+/lib/firmware/brcm/brcmfmac43430a0-sdio.ilife-S806.txt
+/lib/firmware/brcm/brcmfmac43455-sdio.raspberrypi,3-model-b-plus.txt
+/lib/firmware/brcm/brcmfmac43455-sdio.raspberrypi,4-model-b.txt
+/lib/firmware/brcm/brcmfmac4356-sdio.vamrs,rock960.txt
+/lib/firmware/cadence/mhdp8546.bin
+/lib/firmware/cxgb4/configs/t6-config-default.txt
+/lib/firmware/cxgb4/t4fw-1.25.4.0.bin
+/lib/firmware/cxgb4/t5fw-1.25.4.0.bin
+/lib/firmware/cxgb4/t6fw-1.25.4.0.bin
+/lib/firmware/cypress/cyfmac43012-sdio.bin
+/lib/firmware/cypress/cyfmac43012-sdio.clm_blob
+/lib/firmware/cypress/cyfmac43340-sdio.bin
+/lib/firmware/cypress/cyfmac43362-sdio.bin
+/lib/firmware/cypress/cyfmac4339-sdio.bin
+/lib/firmware/cypress/cyfmac43430-sdio.bin
+/lib/firmware/cypress/cyfmac43430-sdio.clm_blob
+/lib/firmware/cypress/cyfmac43455-sdio.bin
+/lib/firmware/cypress/cyfmac43455-sdio.clm_blob
+/lib/firmware/cypress/cyfmac4354-sdio.bin
+/lib/firmware/cypress/cyfmac4354-sdio.clm_blob
+/lib/firmware/cypress/cyfmac4356-pcie.bin
+/lib/firmware/cypress/cyfmac4356-pcie.clm_blob
+/lib/firmware/cypress/cyfmac4356-sdio.bin
+/lib/firmware/cypress/cyfmac4356-sdio.clm_blob
+/lib/firmware/cypress/cyfmac43570-pcie.bin
+/lib/firmware/cypress/cyfmac43570-pcie.clm_blob
+/lib/firmware/cypress/cyfmac4373-sdio.bin
+/lib/firmware/cypress/cyfmac4373-sdio.clm_blob
+/lib/firmware/cypress/cyfmac54591-pcie.bin
+/lib/firmware/cypress/cyfmac54591-pcie.clm_blob
+/lib/firmware/i915/adlp_dmc_ver2_09.bin
+/lib/firmware/i915/adlp_dmc_ver2_10.bin
+/lib/firmware/i915/adls_dmc_ver2_01.bin
+/lib/firmware/i915/bxt_guc_49.0.1.bin
+/lib/firmware/i915/cml_guc_49.0.1.bin
+/lib/firmware/i915/dg1_dmc_ver2_02.bin
+/lib/firmware/i915/dg1_guc_49.0.1.bin
+/lib/firmware/i915/dg1_huc_7.7.1.bin
+/lib/firmware/i915/ehl_guc_49.0.1.bin
+/lib/firmware/i915/glk_guc_49.0.1.bin
+/lib/firmware/i915/icl_guc_49.0.1.bin
+/lib/firmware/i915/kbl_guc_49.0.1.bin
+/lib/firmware/i915/rkl_dmc_ver2_02.bin
+/lib/firmware/i915/skl_guc_49.0.1.bin
+/lib/firmware/i915/tgl_dmc_ver2_08.bin
+/lib/firmware/i915/tgl_guc_49.0.1.bin
+/lib/firmware/i915/tgl_huc_7.5.0.bin
+/lib/firmware/intel/ibt-0041-0041.ddc
+/lib/firmware/intel/ibt-0041-0041.sfi
+/lib/firmware/intel/ibt-12-16.sfi
+/lib/firmware/intel/ibt-17-16-1.sfi
+/lib/firmware/intel/ibt-17-2.sfi
+/lib/firmware/intel/ibt-18-16-1.sfi
+/lib/firmware/intel/ibt-18-2.sfi
+/lib/firmware/intel/ibt-19-0-0.sfi
+/lib/firmware/intel/ibt-19-0-1.sfi
+/lib/firmware/intel/ibt-19-0-4.sfi
+/lib/firmware/intel/ibt-19-16-4.sfi
+/lib/firmware/intel/ibt-19-240-1.sfi
+/lib/firmware/intel/ibt-19-240-4.sfi
+/lib/firmware/intel/ibt-19-32-0.sfi
+/lib/firmware/intel/ibt-19-32-1.sfi
+/lib/firmware/intel/ibt-19-32-4.sfi
+/lib/firmware/intel/ibt-20-0-3.sfi
+/lib/firmware/intel/ibt-20-1-3.sfi
+/lib/firmware/intel/ibt-20-1-4.sfi
+/lib/firmware/intel/ibt-hw-37.8.10-fw-22.50.19.14.f.bseq
+/lib/firmware/intel/ice/ddp-comms/ice_comms-1.3.20.0.pkg
+/lib/firmware/intel/ice/ddp/ice-1.3.16.0.pkg
+/lib/firmware/iwlwifi-3168-29.ucode
+/lib/firmware/iwlwifi-7265D-29.ucode
+/lib/firmware/iwlwifi-8000C-36.ucode
+/lib/firmware/iwlwifi-8265-36.ucode
+/lib/firmware/iwlwifi-9000-pu-b0-jf-b0-46.ucode
+/lib/firmware/iwlwifi-9260-th-b0-jf-b0-46.ucode
+/lib/firmware/iwlwifi-cc-a0-59.ucode
+/lib/firmware/iwlwifi-cc-a0-62.ucode
+/lib/firmware/iwlwifi-Qu-b0-hr-b0-59.ucode
+/lib/firmware/iwlwifi-Qu-b0-hr-b0-62.ucode
+/lib/firmware/iwlwifi-Qu-b0-jf-b0-59.ucode
+/lib/firmware/iwlwifi-Qu-b0-jf-b0-62.ucode
+/lib/firmware/iwlwifi-Qu-c0-hr-b0-59.ucode
+/lib/firmware/iwlwifi-Qu-c0-hr-b0-62.ucode
+/lib/firmware/iwlwifi-Qu-c0-jf-b0-59.ucode
+/lib/firmware/iwlwifi-Qu-c0-jf-b0-62.ucode
+/lib/firmware/iwlwifi-QuZ-a0-hr-b0-59.ucode
+/lib/firmware/iwlwifi-QuZ-a0-hr-b0-62.ucode
+/lib/firmware/iwlwifi-QuZ-a0-jf-b0-59.ucode
+/lib/firmware/iwlwifi-QuZ-a0-jf-b0-62.ucode
+/lib/firmware/iwlwifi-ty-a0-gf-a0-59.ucode
+/lib/firmware/iwlwifi-ty-a0-gf-a0-62.ucode
+/lib/firmware/iwlwifi-ty-a0-gf-a0.pnvm
+/lib/firmware/lt9611uxc_fw.bin
+/lib/firmware/mediatek/BT_RAM_CODE_MT7961_1_2_hdr.bin
+/lib/firmware/mediatek/mt7615_n9.bin
+/lib/firmware/mediatek/mt7663_n9_v3.bin
+/lib/firmware/mediatek/mt7663pr2h.bin
+/lib/firmware/mediatek/mt7915_rom_patch.bin
+/lib/firmware/mediatek/mt7915_wa.bin
+/lib/firmware/mediatek/mt7915_wm.bin
+/lib/firmware/mediatek/mt8173/vpu_d.bin
+/lib/firmware/mediatek/mt8173/vpu_p.bin
+/lib/firmware/mediatek/WIFI_MT7961_patch_mcu_1_2_hdr.bin
+/lib/firmware/mediatek/WIFI_RAM_CODE_MT7961_1.bin
+/lib/firmware/mellanox/mlxsw_spectrum-13.2007.1168.mfa2
+/lib/firmware/mellanox/mlxsw_spectrum-13.2008.1036.mfa2
+/lib/firmware/mellanox/mlxsw_spectrum-13.2008.1310.mfa2
+/lib/firmware/mellanox/mlxsw_spectrum-13.2008.1312.mfa2
+/lib/firmware/mellanox/mlxsw_spectrum-13.2008.2018.mfa2
+/lib/firmware/mellanox/mlxsw_spectrum-13.2008.2304.mfa2
+/lib/firmware/mellanox/mlxsw_spectrum-13.2008.2406.mfa2
+/lib/firmware/mellanox/mlxsw_spectrum-13.2008.2438.mfa2
+/lib/firmware/mellanox/mlxsw_spectrum2-29.2007.1168.mfa2
+/lib/firmware/mellanox/mlxsw_spectrum2-29.2008.1036.mfa2
+/lib/firmware/mellanox/mlxsw_spectrum2-29.2008.1310.mfa2
+/lib/firmware/mellanox/mlxsw_spectrum2-29.2008.1312.mfa2
+/lib/firmware/mellanox/mlxsw_spectrum2-29.2008.2018.mfa2
+/lib/firmware/mellanox/mlxsw_spectrum2-29.2008.2304.mfa2
+/lib/firmware/mellanox/mlxsw_spectrum2-29.2008.2406.mfa2
+/lib/firmware/mellanox/mlxsw_spectrum2-29.2008.2438.mfa2
+/lib/firmware/mellanox/mlxsw_spectrum3-30.2007.1168.mfa2
+/lib/firmware/mellanox/mlxsw_spectrum3-30.2008.1036.mfa2
+/lib/firmware/mellanox/mlxsw_spectrum3-30.2008.1310.mfa2
+/lib/firmware/mellanox/mlxsw_spectrum3-30.2008.1312.mfa2
+/lib/firmware/mellanox/mlxsw_spectrum3-30.2008.2018.mfa2
+/lib/firmware/mellanox/mlxsw_spectrum3-30.2008.2304.mfa2
+/lib/firmware/mellanox/mlxsw_spectrum3-30.2008.2406.mfa2
+/lib/firmware/mellanox/mlxsw_spectrum3-30.2008.2438.mfa2
+/lib/firmware/mrvl/prestera/mvsw_prestera_fw-v2.0.img
+/lib/firmware/mrvl/prestera/mvsw_prestera_fw-v3.0.img
+/lib/firmware/mrvl/sdsd8997_combo_v4.bin
+/lib/firmware/netronome/flower/nic_AMDA0058.nffw
+/lib/firmware/netronome/flower/nic_AMDA0096.nffw
+/lib/firmware/netronome/flower/nic_AMDA0097.nffw
+/lib/firmware/netronome/flower/nic_AMDA0099.nffw
+/lib/firmware/nvidia/tegra186/xusb.bin
+/lib/firmware/nvidia/tegra194/vic.bin
+/lib/firmware/nvidia/tegra194/xusb.bin
+/lib/firmware/nvidia/tegra210/xusb.bin
+/lib/firmware/qca/crbtfw32.tlv
+/lib/firmware/qca/crnv32.bin
+/lib/firmware/qca/crnv32u.bin
+/lib/firmware/qca/htbtfw20.tlv
+/lib/firmware/qca/htnv20.bin
+/lib/firmware/qca/nvm_usb_00000302.bin
+/lib/firmware/qca/rampatch_usb_00000302.bin
+/lib/firmware/qcom/a530_pfp.fw
+/lib/firmware/qcom/a630_sqe.fw
+/lib/firmware/qcom/a650_gmu.bin
+/lib/firmware/qcom/a650_sqe.fw
+/lib/firmware/qcom/a660_gmu.bin
+/lib/firmware/qcom/a660_sqe.fw
+/lib/firmware/qcom/sm8250/a650_zap.mbn
+/lib/firmware/qcom/sm8250/adsp.mbn
+/lib/firmware/qcom/sm8250/adspr.jsn
+/lib/firmware/qcom/sm8250/adspua.jsn
+/lib/firmware/qcom/sm8250/cdsp.mbn
+/lib/firmware/qcom/sm8250/cdspr.jsn
+/lib/firmware/qcom/venus-5.4/venus.b00
+/lib/firmware/qcom/venus-5.4/venus.b01
+/lib/firmware/qcom/venus-5.4/venus.b02
+/lib/firmware/qcom/venus-5.4/venus.b03
+/lib/firmware/qcom/venus-5.4/venus.mbn
+/lib/firmware/qcom/venus-5.4/venus.mdt
+/lib/firmware/qcom/vpu-1.0/venus.b00
+/lib/firmware/qcom/vpu-1.0/venus.b01
+/lib/firmware/qcom/vpu-1.0/venus.b02
+/lib/firmware/qcom/vpu-1.0/venus.b03
+/lib/firmware/qcom/vpu-1.0/venus.b04
+/lib/firmware/qcom/vpu-1.0/venus.b05
+/lib/firmware/qcom/vpu-1.0/venus.b06
+/lib/firmware/qcom/vpu-1.0/venus.b07
+/lib/firmware/qcom/vpu-1.0/venus.b08
+/lib/firmware/qcom/vpu-1.0/venus.b09
+/lib/firmware/qcom/vpu-1.0/venus.b10
+/lib/firmware/qcom/vpu-1.0/venus.b19
+/lib/firmware/qcom/vpu-1.0/venus.mbn
+/lib/firmware/qcom/vpu-1.0/venus.mdt
+/lib/firmware/qcom/vpu-2.0/venus.b00
+/lib/firmware/qcom/vpu-2.0/venus.b01
+/lib/firmware/qcom/vpu-2.0/venus.b02
+/lib/firmware/qcom/vpu-2.0/venus.b03
+/lib/firmware/qcom/vpu-2.0/venus.b04
+/lib/firmware/qcom/vpu-2.0/venus.b05
+/lib/firmware/qcom/vpu-2.0/venus.b06
+/lib/firmware/qcom/vpu-2.0/venus.b07
+/lib/firmware/qcom/vpu-2.0/venus.b08
+/lib/firmware/qcom/vpu-2.0/venus.b09
+/lib/firmware/qcom/vpu-2.0/venus.b10
+/lib/firmware/qcom/vpu-2.0/venus.b19
+/lib/firmware/qcom/vpu-2.0/venus.mbn
+/lib/firmware/qcom/vpu-2.0/venus.mdt
+/lib/firmware/rtl_bt/rtl8821c_fw.bin
+/lib/firmware/rtl_bt/rtl8822cs_fw.bin
+/lib/firmware/rtl_bt/rtl8822cu_fw.bin
+/lib/firmware/rtl_bt/rtl8852au_config.bin
+/lib/firmware/rtl_bt/rtl8852au_fw.bin
+/lib/firmware/rtl_nic/rtl8125b-1.fw
+/lib/firmware/rtl_nic/rtl8125b-2.fw
+/lib/firmware/rtl_nic/rtl8153c-1.fw
+/lib/firmware/rtl_nic/rtl8156a-2.fw
+/lib/firmware/rtl_nic/rtl8156b-2.fw
+/lib/firmware/rtlwifi/rtl8192cufw_A.bin
+/lib/firmware/rtlwifi/rtl8192cufw_B.bin
+/lib/firmware/rtlwifi/rtl8192cufw_TMSC.bin
+/lib/firmware/rtw88/rtw8821c_fw.bin
+/lib/firmware/rtw88/rtw8822c_fw.bin
+/lib/firmware/rtw88/rtw8822c_wow_fw.bin
+/lib/firmware/rtw89/rtw8852a_fw.bin
+/lib/firmware/silabs/wfm_wf200_C0.sec
+/lib/firmware/ti-connectivity/wl18xx-fw-4.bin
+/lib/firmware/ti/vpdma-1b8.bin
--- /dev/null
+../../../common/nettle
\ No newline at end of file
--- /dev/null
+../../../common/pcre2
\ No newline at end of file
--- /dev/null
+../../../common/perl-CGI
\ No newline at end of file
--- /dev/null
+../../../common/perl-Data-UUID
\ No newline at end of file
--- /dev/null
+../../../common/qpdf
\ No newline at end of file
--- /dev/null
+../../../common/rng-tools
\ No newline at end of file
--- /dev/null
+../../../common/smartmontools
\ No newline at end of file
--- /dev/null
+../../../common/vnstat
\ No newline at end of file
--- /dev/null
+../../../common/web-user-interface
\ No newline at end of file
--- /dev/null
+../../../../common/x86_64/dmidecode
\ No newline at end of file
--- /dev/null
+../../../../common/x86_64/intel-microcode
\ No newline at end of file
--- /dev/null
+../../../common/zd1211-firmware
\ No newline at end of file
--- /dev/null
+../../../common/zstd
\ No newline at end of file
# #
# IPFire is free software; you can redistribute it and/or modify #
# it under the terms of the GNU General Public License as published by #
-# the Free Software Foundation; either version 2 of the License, or #
+# the Free Software Foundation; either version 3 of the License, or #
# (at your option) any later version. #
# #
# IPFire is distributed in the hope that it will be useful, #
# along with IPFire; if not, write to the Free Software #
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA #
# #
-# Copyright (C) 2007 IPFire-Team <info@ipfire.org>. #
+# Copyright (C) 2020 IPFire-Team <info@ipfire.org>. #
# #
############################################################################
#
. /opt/pakfire/lib/functions.sh
+/usr/local/bin/backupctrl exclude >/dev/null 2>&1
+
+core=158
+
+# Remove old core updates from pakfire cache to save space...
+for (( i=1; i<=$core; i++ )); do
+ rm -f /var/cache/pakfire/core-upgrade-*-$i.ipfire
+done
+
+# Remove files
+rm -vrf \
+ /etc/rc.d/init.d/upnpd \
+ /etc/rc.d/init.d/networking/red.down/10-miniupnpd \
+ /etc/rc.d/init.d/networking/red.up/10-miniupnpd \
+ /usr/lib/conntrack-tools \
+ /usr/lib/libixml.so.* \
+ /usr/lib/libupnp.so.* \
+ /var/ipfire/upnp \
+ /lib/firmware/cxgb4/t4fw-1.24.14.0.bin \
+ /lib/firmware/cxgb4/t5fw-1.24.14.0.bin \
+ /lib/firmware/cxgb4/t6fw-1.24.14.0.bin \
+ /lib/firmware/intel/ice/ddp/ice-1.3.4.0.pkg
+
+# Stop services
+
+# Extract files
extract_files
-restore_backup ${NAME}
-useradd -s /bin/false video
-#Ignore error if the user already exist
+
+# update linker config
+ldconfig
+
+# Update Language cache
+/usr/local/bin/update-lang-cache
+
+# Filesytem cleanup
+/usr/local/bin/filesystem-cleanup
+
+# Start services
+/etc/init.d/apache restart
+/etc/init.d/vnstatd restart
+/etc/init.d/rngd restart
+
+# This update needs a reboot...
+#touch /var/run/need_reboot
+
+# Finish
+/etc/init.d/fireinfo start
+sendprofile
+
+# Update grub config to display new core version
+if [ -e /boot/grub/grub.cfg ]; then
+ grub-mkconfig -o /boot/grub/grub.cfg
+fi
+
+sync
+
+# Don't report the exitcode last command
exit 0
--- /dev/null
+boot/config.txt
+boot/grub/grub.cfg
+boot/grub/grubenv
+etc/alternatives
+etc/collectd.custom
+etc/default/grub
+etc/ipsec.conf
+etc/ipsec.secrets
+etc/ipsec.user.conf
+etc/ipsec.user.secrets
+etc/localtime
+etc/shadow
+etc/snort/snort.conf
+etc/ssl/openssl.cnf
+etc/sudoers
+etc/sysconfig/firewall.local
+etc/sysconfig/rc.local
+etc/udev/rules.d/30-persistent-network.rules
+srv/web/ipfire/html/proxy.pac
+usr/share/xt_geoip
+var/ipfire/dma
+var/ipfire/time
+var/ipfire/firewall/locationblock
+var/ipfire/fwhosts/customlocationgrp
+var/ipfire/ovpn
+var/ipfire/urlfilter/blacklist
+var/ipfire/urlfilter/settings
+var/lib/alternatives
+var/lib/location/database.db
+var/log/cache
+var/log/dhcpcd.log
+var/log/messages
+var/state/dhcp/dhcpd.leases
+var/updatecache
--- /dev/null
+../../../common/apache2
\ No newline at end of file
--- /dev/null
+../../../common/boost
\ No newline at end of file
--- /dev/null
+../../../common/curl
\ No newline at end of file
--- /dev/null
+../../../common/expat
\ No newline at end of file
--- /dev/null
+../../../common/fuse
\ No newline at end of file
--- /dev/null
+../../../common/glib
\ No newline at end of file
--- /dev/null
+../../../common/iputils
\ No newline at end of file
--- /dev/null
+../../../common/libedit
\ No newline at end of file
--- /dev/null
+../../../common/libxcrypt
\ No newline at end of file
--- /dev/null
+etc/system-release
+etc/issue
+etc/os-release
+srv/web/ipfire/cgi-bin/credits.cgi
+var/ipfire/langs
--- /dev/null
+../../../common/sudo
\ No newline at end of file
--- /dev/null
+../../../common/xfsprogs
\ No newline at end of file
+++ /dev/null
-etc/rc.d/init.d/sane
-etc/rc.d/rc0.d/K10sane
-etc/rc.d/rc3.d/S95sane
-etc/rc.d/rc6.d/K10sane
-#etc/sane.d
-etc/sane.d/abaton.conf
-etc/sane.d/agfafocus.conf
-etc/sane.d/apple.conf
-etc/sane.d/artec.conf
-etc/sane.d/artec_eplus48u.conf
-etc/sane.d/avision.conf
-etc/sane.d/bh.conf
-etc/sane.d/canon.conf
-etc/sane.d/canon630u.conf
-etc/sane.d/canon_dr.conf
-etc/sane.d/cardscan.conf
-etc/sane.d/coolscan.conf
-etc/sane.d/coolscan2.conf
-etc/sane.d/coolscan3.conf
-etc/sane.d/dc210.conf
-etc/sane.d/dc240.conf
-etc/sane.d/dc25.conf
-etc/sane.d/dell1600n_net.conf
-etc/sane.d/dll.conf
-etc/sane.d/dll.d
-etc/sane.d/dmc.conf
-etc/sane.d/epjitsu.conf
-etc/sane.d/epson.conf
-etc/sane.d/epson2.conf
-etc/sane.d/epsonds.conf
-etc/sane.d/fujitsu.conf
-etc/sane.d/genesys.conf
-etc/sane.d/gt68xx.conf
-etc/sane.d/hp.conf
-etc/sane.d/hp3900.conf
-etc/sane.d/hp4200.conf
-etc/sane.d/hp5400.conf
-etc/sane.d/hs2p.conf
-etc/sane.d/ibm.conf
-etc/sane.d/kodak.conf
-etc/sane.d/kodakaio.conf
-etc/sane.d/kvs1025.conf
-etc/sane.d/leo.conf
-etc/sane.d/lexmark.conf
-etc/sane.d/ma1509.conf
-etc/sane.d/magicolor.conf
-etc/sane.d/matsushita.conf
-etc/sane.d/microtek.conf
-etc/sane.d/microtek2.conf
-etc/sane.d/mustek.conf
-etc/sane.d/mustek_pp.conf
-etc/sane.d/mustek_usb.conf
-etc/sane.d/nec.conf
-etc/sane.d/net.conf
-etc/sane.d/p5.conf
-etc/sane.d/pie.conf
-etc/sane.d/pieusb.conf
-etc/sane.d/pixma.conf
-etc/sane.d/plustek.conf
-etc/sane.d/plustek_pp.conf
-etc/sane.d/ricoh.conf
-etc/sane.d/rts8891.conf
-etc/sane.d/s9036.conf
-etc/sane.d/saned.conf
-etc/sane.d/sceptre.conf
-etc/sane.d/sharp.conf
-etc/sane.d/sm3840.conf
-etc/sane.d/snapscan.conf
-etc/sane.d/sp15c.conf
-etc/sane.d/st400.conf
-etc/sane.d/stv680.conf
-etc/sane.d/tamarack.conf
-etc/sane.d/teco1.conf
-etc/sane.d/teco2.conf
-etc/sane.d/teco3.conf
-etc/sane.d/test.conf
-etc/sane.d/u12.conf
-etc/sane.d/umax.conf
-etc/sane.d/umax1220u.conf
-etc/sane.d/umax_pp.conf
-etc/sane.d/xerox_mfp.conf
-usr/bin/gamma4scanimage
-usr/bin/sane-config
-usr/bin/sane-find-scanner
-usr/bin/scanimage
-usr/bin/umax_pp
-#usr/include/sane
-usr/include/sane/sane.h
-usr/include/sane/saneopts.h
-#usr/lib/libsane.la
-usr/lib/libsane.so
-usr/lib/libsane.so.1
-usr/lib/libsane.so.1.0.28
-#usr/lib/pkgconfig/sane-backends.pc
-#usr/lib/sane
-#usr/lib/sane/libsane-abaton.la
-usr/lib/sane/libsane-abaton.so
-usr/lib/sane/libsane-abaton.so.1
-usr/lib/sane/libsane-abaton.so.1.0.28
-#usr/lib/sane/libsane-agfafocus.la
-usr/lib/sane/libsane-agfafocus.so
-usr/lib/sane/libsane-agfafocus.so.1
-usr/lib/sane/libsane-agfafocus.so.1.0.28
-#usr/lib/sane/libsane-apple.la
-usr/lib/sane/libsane-apple.so
-usr/lib/sane/libsane-apple.so.1
-usr/lib/sane/libsane-apple.so.1.0.28
-#usr/lib/sane/libsane-artec.la
-usr/lib/sane/libsane-artec.so
-usr/lib/sane/libsane-artec.so.1
-usr/lib/sane/libsane-artec.so.1.0.28
-#usr/lib/sane/libsane-artec_eplus48u.la
-usr/lib/sane/libsane-artec_eplus48u.so
-usr/lib/sane/libsane-artec_eplus48u.so.1
-usr/lib/sane/libsane-artec_eplus48u.so.1.0.28
-#usr/lib/sane/libsane-as6e.la
-usr/lib/sane/libsane-as6e.so
-usr/lib/sane/libsane-as6e.so.1
-usr/lib/sane/libsane-as6e.so.1.0.28
-#usr/lib/sane/libsane-avision.la
-usr/lib/sane/libsane-avision.so
-usr/lib/sane/libsane-avision.so.1
-usr/lib/sane/libsane-avision.so.1.0.28
-#usr/lib/sane/libsane-bh.la
-usr/lib/sane/libsane-bh.so
-usr/lib/sane/libsane-bh.so.1
-usr/lib/sane/libsane-bh.so.1.0.28
-#usr/lib/sane/libsane-canon.la
-usr/lib/sane/libsane-canon.so
-usr/lib/sane/libsane-canon.so.1
-usr/lib/sane/libsane-canon.so.1.0.28
-#usr/lib/sane/libsane-canon630u.la
-usr/lib/sane/libsane-canon630u.so
-usr/lib/sane/libsane-canon630u.so.1
-usr/lib/sane/libsane-canon630u.so.1.0.28
-#usr/lib/sane/libsane-canon_dr.la
-usr/lib/sane/libsane-canon_dr.so
-usr/lib/sane/libsane-canon_dr.so.1
-usr/lib/sane/libsane-canon_dr.so.1.0.28
-#usr/lib/sane/libsane-cardscan.la
-usr/lib/sane/libsane-cardscan.so
-usr/lib/sane/libsane-cardscan.so.1
-usr/lib/sane/libsane-cardscan.so.1.0.28
-#usr/lib/sane/libsane-coolscan.la
-usr/lib/sane/libsane-coolscan.so
-usr/lib/sane/libsane-coolscan.so.1
-usr/lib/sane/libsane-coolscan.so.1.0.28
-#usr/lib/sane/libsane-coolscan2.la
-usr/lib/sane/libsane-coolscan2.so
-usr/lib/sane/libsane-coolscan2.so.1
-usr/lib/sane/libsane-coolscan2.so.1.0.28
-#usr/lib/sane/libsane-coolscan3.la
-usr/lib/sane/libsane-coolscan3.so
-usr/lib/sane/libsane-coolscan3.so.1
-usr/lib/sane/libsane-coolscan3.so.1.0.28
-#usr/lib/sane/libsane-dc210.la
-usr/lib/sane/libsane-dc210.so
-usr/lib/sane/libsane-dc210.so.1
-usr/lib/sane/libsane-dc210.so.1.0.28
-#usr/lib/sane/libsane-dc240.la
-usr/lib/sane/libsane-dc240.so
-usr/lib/sane/libsane-dc240.so.1
-usr/lib/sane/libsane-dc240.so.1.0.28
-#usr/lib/sane/libsane-dc25.la
-usr/lib/sane/libsane-dc25.so
-usr/lib/sane/libsane-dc25.so.1
-usr/lib/sane/libsane-dc25.so.1.0.28
-#usr/lib/sane/libsane-dell1600n_net.la
-usr/lib/sane/libsane-dell1600n_net.so
-usr/lib/sane/libsane-dell1600n_net.so.1
-usr/lib/sane/libsane-dell1600n_net.so.1.0.28
-#usr/lib/sane/libsane-dll.la
-usr/lib/sane/libsane-dll.so
-usr/lib/sane/libsane-dll.so.1
-usr/lib/sane/libsane-dll.so.1.0.28
-#usr/lib/sane/libsane-dmc.la
-usr/lib/sane/libsane-dmc.so
-usr/lib/sane/libsane-dmc.so.1
-usr/lib/sane/libsane-dmc.so.1.0.28
-#usr/lib/sane/libsane-epjitsu.la
-usr/lib/sane/libsane-epjitsu.so
-usr/lib/sane/libsane-epjitsu.so.1
-usr/lib/sane/libsane-epjitsu.so.1.0.28
-#usr/lib/sane/libsane-epson.la
-usr/lib/sane/libsane-epson.so
-usr/lib/sane/libsane-epson.so.1
-usr/lib/sane/libsane-epson.so.1.0.28
-#usr/lib/sane/libsane-epson2.la
-usr/lib/sane/libsane-epson2.so
-usr/lib/sane/libsane-epson2.so.1
-usr/lib/sane/libsane-epson2.so.1.0.28
-#usr/lib/sane/libsane-epsonds.la
-usr/lib/sane/libsane-epsonds.so
-usr/lib/sane/libsane-epsonds.so.1
-usr/lib/sane/libsane-epsonds.so.1.0.28
-#usr/lib/sane/libsane-fujitsu.la
-usr/lib/sane/libsane-fujitsu.so
-usr/lib/sane/libsane-fujitsu.so.1
-usr/lib/sane/libsane-fujitsu.so.1.0.28
-#usr/lib/sane/libsane-genesys.la
-usr/lib/sane/libsane-genesys.so
-usr/lib/sane/libsane-genesys.so.1
-usr/lib/sane/libsane-genesys.so.1.0.28
-#usr/lib/sane/libsane-gt68xx.la
-usr/lib/sane/libsane-gt68xx.so
-usr/lib/sane/libsane-gt68xx.so.1
-usr/lib/sane/libsane-gt68xx.so.1.0.28
-#usr/lib/sane/libsane-hp.la
-usr/lib/sane/libsane-hp.so
-usr/lib/sane/libsane-hp.so.1
-usr/lib/sane/libsane-hp.so.1.0.28
-#usr/lib/sane/libsane-hp3500.la
-usr/lib/sane/libsane-hp3500.so
-usr/lib/sane/libsane-hp3500.so.1
-usr/lib/sane/libsane-hp3500.so.1.0.28
-#usr/lib/sane/libsane-hp3900.la
-usr/lib/sane/libsane-hp3900.so
-usr/lib/sane/libsane-hp3900.so.1
-usr/lib/sane/libsane-hp3900.so.1.0.28
-#usr/lib/sane/libsane-hp4200.la
-usr/lib/sane/libsane-hp4200.so
-usr/lib/sane/libsane-hp4200.so.1
-usr/lib/sane/libsane-hp4200.so.1.0.28
-#usr/lib/sane/libsane-hp5400.la
-usr/lib/sane/libsane-hp5400.so
-usr/lib/sane/libsane-hp5400.so.1
-usr/lib/sane/libsane-hp5400.so.1.0.28
-#usr/lib/sane/libsane-hp5590.la
-usr/lib/sane/libsane-hp5590.so
-usr/lib/sane/libsane-hp5590.so.1
-usr/lib/sane/libsane-hp5590.so.1.0.28
-#usr/lib/sane/libsane-hpljm1005.la
-usr/lib/sane/libsane-hpljm1005.so
-usr/lib/sane/libsane-hpljm1005.so.1
-usr/lib/sane/libsane-hpljm1005.so.1.0.28
-#usr/lib/sane/libsane-hs2p.la
-usr/lib/sane/libsane-hs2p.so
-usr/lib/sane/libsane-hs2p.so.1
-usr/lib/sane/libsane-hs2p.so.1.0.28
-#usr/lib/sane/libsane-ibm.la
-usr/lib/sane/libsane-ibm.so
-usr/lib/sane/libsane-ibm.so.1
-usr/lib/sane/libsane-ibm.so.1.0.28
-#usr/lib/sane/libsane-kodak.la
-usr/lib/sane/libsane-kodak.so
-usr/lib/sane/libsane-kodak.so.1
-usr/lib/sane/libsane-kodak.so.1.0.28
-#usr/lib/sane/libsane-kodakaio.la
-usr/lib/sane/libsane-kodakaio.so
-usr/lib/sane/libsane-kodakaio.so.1
-usr/lib/sane/libsane-kodakaio.so.1.0.28
-#usr/lib/sane/libsane-kvs1025.la
-usr/lib/sane/libsane-kvs1025.so
-usr/lib/sane/libsane-kvs1025.so.1
-usr/lib/sane/libsane-kvs1025.so.1.0.28
-#usr/lib/sane/libsane-kvs20xx.la
-usr/lib/sane/libsane-kvs20xx.so
-usr/lib/sane/libsane-kvs20xx.so.1
-usr/lib/sane/libsane-kvs20xx.so.1.0.28
-#usr/lib/sane/libsane-kvs40xx.la
-usr/lib/sane/libsane-kvs40xx.so
-usr/lib/sane/libsane-kvs40xx.so.1
-usr/lib/sane/libsane-kvs40xx.so.1.0.28
-#usr/lib/sane/libsane-leo.la
-usr/lib/sane/libsane-leo.so
-usr/lib/sane/libsane-leo.so.1
-usr/lib/sane/libsane-leo.so.1.0.28
-#usr/lib/sane/libsane-lexmark.la
-usr/lib/sane/libsane-lexmark.so
-usr/lib/sane/libsane-lexmark.so.1
-usr/lib/sane/libsane-lexmark.so.1.0.28
-#usr/lib/sane/libsane-ma1509.la
-usr/lib/sane/libsane-ma1509.so
-usr/lib/sane/libsane-ma1509.so.1
-usr/lib/sane/libsane-ma1509.so.1.0.28
-#usr/lib/sane/libsane-magicolor.la
-usr/lib/sane/libsane-magicolor.so
-usr/lib/sane/libsane-magicolor.so.1
-usr/lib/sane/libsane-magicolor.so.1.0.28
-#usr/lib/sane/libsane-matsushita.la
-usr/lib/sane/libsane-matsushita.so
-usr/lib/sane/libsane-matsushita.so.1
-usr/lib/sane/libsane-matsushita.so.1.0.28
-#usr/lib/sane/libsane-microtek.la
-usr/lib/sane/libsane-microtek.so
-usr/lib/sane/libsane-microtek.so.1
-usr/lib/sane/libsane-microtek.so.1.0.28
-#usr/lib/sane/libsane-microtek2.la
-usr/lib/sane/libsane-microtek2.so
-usr/lib/sane/libsane-microtek2.so.1
-usr/lib/sane/libsane-microtek2.so.1.0.28
-#usr/lib/sane/libsane-mustek.la
-usr/lib/sane/libsane-mustek.so
-usr/lib/sane/libsane-mustek.so.1
-usr/lib/sane/libsane-mustek.so.1.0.28
-#usr/lib/sane/libsane-mustek_pp.la
-usr/lib/sane/libsane-mustek_pp.so
-usr/lib/sane/libsane-mustek_pp.so.1
-usr/lib/sane/libsane-mustek_pp.so.1.0.28
-#usr/lib/sane/libsane-mustek_usb.la
-usr/lib/sane/libsane-mustek_usb.so
-usr/lib/sane/libsane-mustek_usb.so.1
-usr/lib/sane/libsane-mustek_usb.so.1.0.28
-#usr/lib/sane/libsane-mustek_usb2.la
-usr/lib/sane/libsane-mustek_usb2.so
-usr/lib/sane/libsane-mustek_usb2.so.1
-usr/lib/sane/libsane-mustek_usb2.so.1.0.28
-#usr/lib/sane/libsane-nec.la
-usr/lib/sane/libsane-nec.so
-usr/lib/sane/libsane-nec.so.1
-usr/lib/sane/libsane-nec.so.1.0.28
-#usr/lib/sane/libsane-net.la
-usr/lib/sane/libsane-net.so
-usr/lib/sane/libsane-net.so.1
-usr/lib/sane/libsane-net.so.1.0.28
-#usr/lib/sane/libsane-niash.la
-usr/lib/sane/libsane-niash.so
-usr/lib/sane/libsane-niash.so.1
-usr/lib/sane/libsane-niash.so.1.0.28
-#usr/lib/sane/libsane-p5.la
-usr/lib/sane/libsane-p5.so
-usr/lib/sane/libsane-p5.so.1
-usr/lib/sane/libsane-p5.so.1.0.28
-#usr/lib/sane/libsane-pie.la
-usr/lib/sane/libsane-pie.so
-usr/lib/sane/libsane-pie.so.1
-usr/lib/sane/libsane-pie.so.1.0.28
-#usr/lib/sane/libsane-pieusb.la
-usr/lib/sane/libsane-pieusb.so
-usr/lib/sane/libsane-pieusb.so.1
-usr/lib/sane/libsane-pieusb.so.1.0.28
-#usr/lib/sane/libsane-pixma.la
-usr/lib/sane/libsane-pixma.so
-usr/lib/sane/libsane-pixma.so.1
-usr/lib/sane/libsane-pixma.so.1.0.28
-#usr/lib/sane/libsane-plustek.la
-usr/lib/sane/libsane-plustek.so
-usr/lib/sane/libsane-plustek.so.1
-usr/lib/sane/libsane-plustek.so.1.0.28
-#usr/lib/sane/libsane-plustek_pp.la
-usr/lib/sane/libsane-plustek_pp.so
-usr/lib/sane/libsane-plustek_pp.so.1
-usr/lib/sane/libsane-plustek_pp.so.1.0.28
-#usr/lib/sane/libsane-ricoh.la
-usr/lib/sane/libsane-ricoh.so
-usr/lib/sane/libsane-ricoh.so.1
-usr/lib/sane/libsane-ricoh.so.1.0.28
-#usr/lib/sane/libsane-ricoh2.la
-usr/lib/sane/libsane-ricoh2.so
-usr/lib/sane/libsane-ricoh2.so.1
-usr/lib/sane/libsane-ricoh2.so.1.0.28
-#usr/lib/sane/libsane-rts8891.la
-usr/lib/sane/libsane-rts8891.so
-usr/lib/sane/libsane-rts8891.so.1
-usr/lib/sane/libsane-rts8891.so.1.0.28
-#usr/lib/sane/libsane-s9036.la
-usr/lib/sane/libsane-s9036.so
-usr/lib/sane/libsane-s9036.so.1
-usr/lib/sane/libsane-s9036.so.1.0.28
-#usr/lib/sane/libsane-sceptre.la
-usr/lib/sane/libsane-sceptre.so
-usr/lib/sane/libsane-sceptre.so.1
-usr/lib/sane/libsane-sceptre.so.1.0.28
-#usr/lib/sane/libsane-sharp.la
-usr/lib/sane/libsane-sharp.so
-usr/lib/sane/libsane-sharp.so.1
-usr/lib/sane/libsane-sharp.so.1.0.28
-#usr/lib/sane/libsane-sm3600.la
-usr/lib/sane/libsane-sm3600.so
-usr/lib/sane/libsane-sm3600.so.1
-usr/lib/sane/libsane-sm3600.so.1.0.28
-#usr/lib/sane/libsane-sm3840.la
-usr/lib/sane/libsane-sm3840.so
-usr/lib/sane/libsane-sm3840.so.1
-usr/lib/sane/libsane-sm3840.so.1.0.28
-#usr/lib/sane/libsane-snapscan.la
-usr/lib/sane/libsane-snapscan.so
-usr/lib/sane/libsane-snapscan.so.1
-usr/lib/sane/libsane-snapscan.so.1.0.28
-#usr/lib/sane/libsane-sp15c.la
-usr/lib/sane/libsane-sp15c.so
-usr/lib/sane/libsane-sp15c.so.1
-usr/lib/sane/libsane-sp15c.so.1.0.28
-#usr/lib/sane/libsane-st400.la
-usr/lib/sane/libsane-st400.so
-usr/lib/sane/libsane-st400.so.1
-usr/lib/sane/libsane-st400.so.1.0.28
-#usr/lib/sane/libsane-stv680.la
-usr/lib/sane/libsane-stv680.so
-usr/lib/sane/libsane-stv680.so.1
-usr/lib/sane/libsane-stv680.so.1.0.28
-#usr/lib/sane/libsane-tamarack.la
-usr/lib/sane/libsane-tamarack.so
-usr/lib/sane/libsane-tamarack.so.1
-usr/lib/sane/libsane-tamarack.so.1.0.28
-#usr/lib/sane/libsane-teco1.la
-usr/lib/sane/libsane-teco1.so
-usr/lib/sane/libsane-teco1.so.1
-usr/lib/sane/libsane-teco1.so.1.0.28
-#usr/lib/sane/libsane-teco2.la
-usr/lib/sane/libsane-teco2.so
-usr/lib/sane/libsane-teco2.so.1
-usr/lib/sane/libsane-teco2.so.1.0.28
-#usr/lib/sane/libsane-teco3.la
-usr/lib/sane/libsane-teco3.so
-usr/lib/sane/libsane-teco3.so.1
-usr/lib/sane/libsane-teco3.so.1.0.28
-#usr/lib/sane/libsane-test.la
-usr/lib/sane/libsane-test.so
-usr/lib/sane/libsane-test.so.1
-usr/lib/sane/libsane-test.so.1.0.28
-#usr/lib/sane/libsane-u12.la
-usr/lib/sane/libsane-u12.so
-usr/lib/sane/libsane-u12.so.1
-usr/lib/sane/libsane-u12.so.1.0.28
-#usr/lib/sane/libsane-umax.la
-usr/lib/sane/libsane-umax.so
-usr/lib/sane/libsane-umax.so.1
-usr/lib/sane/libsane-umax.so.1.0.28
-#usr/lib/sane/libsane-umax1220u.la
-usr/lib/sane/libsane-umax1220u.so
-usr/lib/sane/libsane-umax1220u.so.1
-usr/lib/sane/libsane-umax1220u.so.1.0.28
-#usr/lib/sane/libsane-umax_pp.la
-usr/lib/sane/libsane-umax_pp.so
-usr/lib/sane/libsane-umax_pp.so.1
-usr/lib/sane/libsane-umax_pp.so.1.0.28
-#usr/lib/sane/libsane-xerox_mfp.la
-usr/lib/sane/libsane-xerox_mfp.so
-usr/lib/sane/libsane-xerox_mfp.so.1
-usr/lib/sane/libsane-xerox_mfp.so.1.0.28
-usr/sbin/saned
-#usr/share/doc/sane-backends
-#usr/share/doc/sane-backends/AUTHORS
-#usr/share/doc/sane-backends/COPYING
-#usr/share/doc/sane-backends/ChangeLog
-#usr/share/doc/sane-backends/LICENSE
-#usr/share/doc/sane-backends/NEWS
-#usr/share/doc/sane-backends/PROBLEMS
-#usr/share/doc/sane-backends/PROJECTS
-#usr/share/doc/sane-backends/README
-#usr/share/doc/sane-backends/README.aix
-#usr/share/doc/sane-backends/README.beos
-#usr/share/doc/sane-backends/README.darwin
-#usr/share/doc/sane-backends/README.djpeg
-#usr/share/doc/sane-backends/README.freebsd
-#usr/share/doc/sane-backends/README.hp-ux
-#usr/share/doc/sane-backends/README.linux
-#usr/share/doc/sane-backends/README.netbsd
-#usr/share/doc/sane-backends/README.openbsd
-#usr/share/doc/sane-backends/README.os2
-#usr/share/doc/sane-backends/README.solaris
-#usr/share/doc/sane-backends/README.unixware2
-#usr/share/doc/sane-backends/README.unixware7
-#usr/share/doc/sane-backends/README.windows
-#usr/share/doc/sane-backends/README.zeta
-#usr/share/doc/sane-backends/backend-writing.txt
-#usr/share/doc/sane-backends/canon
-#usr/share/doc/sane-backends/canon/canon.changes
-#usr/share/doc/sane-backends/canon/canon.install2700F.txt
-#usr/share/doc/sane-backends/gt68xx
-#usr/share/doc/sane-backends/gt68xx/gt68xx.CHANGES
-#usr/share/doc/sane-backends/gt68xx/gt68xx.TODO
-#usr/share/doc/sane-backends/leo
-#usr/share/doc/sane-backends/leo/leo.txt
-#usr/share/doc/sane-backends/matsushita
-#usr/share/doc/sane-backends/matsushita/matsushita.txt
-#usr/share/doc/sane-backends/mustek
-#usr/share/doc/sane-backends/mustek/mustek.CHANGES
-#usr/share/doc/sane-backends/mustek_usb
-#usr/share/doc/sane-backends/mustek_usb/mustek_usb.CHANGES
-#usr/share/doc/sane-backends/mustek_usb/mustek_usb.TODO
-#usr/share/doc/sane-backends/mustek_usb2
-#usr/share/doc/sane-backends/mustek_usb2/mustek_usb2.CHANGES
-#usr/share/doc/sane-backends/mustek_usb2/mustek_usb2.TODO
-#usr/share/doc/sane-backends/niash
-#usr/share/doc/sane-backends/niash/niash.TODO
-#usr/share/doc/sane-backends/plustek
-#usr/share/doc/sane-backends/plustek/FAQ
-#usr/share/doc/sane-backends/plustek/MakeModule.sh
-#usr/share/doc/sane-backends/plustek/Makefile.kernel24
-#usr/share/doc/sane-backends/plustek/Makefile.kernel26
-#usr/share/doc/sane-backends/plustek/Plustek-PARPORT-TODO.txt
-#usr/share/doc/sane-backends/plustek/Plustek-PARPORT.changes
-#usr/share/doc/sane-backends/plustek/Plustek-PARPORT.txt
-#usr/share/doc/sane-backends/plustek/Plustek-USB-TODO.txt
-#usr/share/doc/sane-backends/plustek/Plustek-USB.changes
-#usr/share/doc/sane-backends/plustek/Plustek-USB.txt
-#usr/share/doc/sane-backends/sane-backends-external.html
-#usr/share/doc/sane-backends/sane-backends.html
-#usr/share/doc/sane-backends/sane-mfgs-external.html
-#usr/share/doc/sane-backends/sane-mfgs.html
-#usr/share/doc/sane-backends/sceptre
-#usr/share/doc/sane-backends/sceptre/s1200.txt
-#usr/share/doc/sane-backends/teco
-#usr/share/doc/sane-backends/teco/teco1.txt
-#usr/share/doc/sane-backends/teco/teco2.txt
-#usr/share/doc/sane-backends/teco/teco3.txt
-#usr/share/doc/sane-backends/u12
-#usr/share/doc/sane-backends/u12/U12.changes
-#usr/share/doc/sane-backends/u12/U12.todo
-#usr/share/doc/sane-backends/umax
-#usr/share/doc/sane-backends/umax/negative-types.txt
-#usr/share/doc/sane-backends/umax/sane-logo.jpg
-#usr/share/doc/sane-backends/umax/sane-umax-advanced-options-doc.html
-#usr/share/doc/sane-backends/umax/sane-umax-advanced.jpg
-#usr/share/doc/sane-backends/umax/sane-umax-astra-doc.html
-#usr/share/doc/sane-backends/umax/sane-umax-config-doc.html
-#usr/share/doc/sane-backends/umax/sane-umax-doc.html
-#usr/share/doc/sane-backends/umax/sane-umax-histogram.jpg
-#usr/share/doc/sane-backends/umax/sane-umax-mirage-doc.html
-#usr/share/doc/sane-backends/umax/sane-umax-not-listed-doc.html
-#usr/share/doc/sane-backends/umax/sane-umax-others-doc.html
-#usr/share/doc/sane-backends/umax/sane-umax-parport-doc.html
-#usr/share/doc/sane-backends/umax/sane-umax-powerlook-doc.html
-#usr/share/doc/sane-backends/umax/sane-umax-scanner-clones-doc.html
-#usr/share/doc/sane-backends/umax/sane-umax-speed-doc.html
-#usr/share/doc/sane-backends/umax/sane-umax-standard-options-doc.html
-#usr/share/doc/sane-backends/umax/sane-umax-standard.jpg
-#usr/share/doc/sane-backends/umax/sane-umax-text.jpg
-#usr/share/doc/sane-backends/umax/sane-umax-text2.jpg
-#usr/share/doc/sane-backends/umax/sane-umax-text4.jpg
-#usr/share/doc/sane-backends/umax/sane-umax-uc-doc.html
-#usr/share/doc/sane-backends/umax/sane-umax-vista-doc.html
-#usr/share/doc/sane-backends/umax/sane-umax.jpg
-#usr/share/doc/sane-backends/umax/umax.BUGS
-#usr/share/doc/sane-backends/umax/umax.CHANGES
-#usr/share/doc/sane-backends/umax/umax.FAQ
-#usr/share/doc/sane-backends/umax/umax.TODO
-#usr/share/locale/bg/LC_MESSAGES/sane-backends.mo
-#usr/share/locale/ca/LC_MESSAGES/sane-backends.mo
-#usr/share/locale/ca@valencia/LC_MESSAGES/sane-backends.mo
-#usr/share/locale/cs/LC_MESSAGES/sane-backends.mo
-#usr/share/locale/da/LC_MESSAGES/sane-backends.mo
-#usr/share/locale/de/LC_MESSAGES/sane-backends.mo
-#usr/share/locale/en@boldquot/LC_MESSAGES/sane-backends.mo
-#usr/share/locale/en@quot/LC_MESSAGES/sane-backends.mo
-#usr/share/locale/en_GB/LC_MESSAGES/sane-backends.mo
-#usr/share/locale/eo/LC_MESSAGES/sane-backends.mo
-#usr/share/locale/es/LC_MESSAGES/sane-backends.mo
-#usr/share/locale/fi/LC_MESSAGES/sane-backends.mo
-#usr/share/locale/fr/LC_MESSAGES/sane-backends.mo
-#usr/share/locale/gl/LC_MESSAGES/sane-backends.mo
-#usr/share/locale/he/LC_MESSAGES/sane-backends.mo
-#usr/share/locale/hu/LC_MESSAGES/sane-backends.mo
-#usr/share/locale/it/LC_MESSAGES/sane-backends.mo
-#usr/share/locale/ja/LC_MESSAGES/sane-backends.mo
-#usr/share/locale/nb/LC_MESSAGES/sane-backends.mo
-#usr/share/locale/nl/LC_MESSAGES/sane-backends.mo
-#usr/share/locale/pl/LC_MESSAGES/sane-backends.mo
-#usr/share/locale/pt/LC_MESSAGES/sane-backends.mo
-#usr/share/locale/ru/LC_MESSAGES/sane-backends.mo
-#usr/share/locale/sv/LC_MESSAGES/sane-backends.mo
-#usr/share/locale/uk/LC_MESSAGES/sane-backends.mo
-#usr/share/man/man1/gamma4scanimage.1
-#usr/share/man/man1/sane-config.1
-#usr/share/man/man1/sane-find-scanner.1
-#usr/share/man/man1/scanimage.1
-#usr/share/man/man5/sane-abaton.5
-#usr/share/man/man5/sane-agfafocus.5
-#usr/share/man/man5/sane-apple.5
-#usr/share/man/man5/sane-artec.5
-#usr/share/man/man5/sane-artec_eplus48u.5
-#usr/share/man/man5/sane-as6e.5
-#usr/share/man/man5/sane-avision.5
-#usr/share/man/man5/sane-bh.5
-#usr/share/man/man5/sane-canon.5
-#usr/share/man/man5/sane-canon630u.5
-#usr/share/man/man5/sane-canon_dr.5
-#usr/share/man/man5/sane-cardscan.5
-#usr/share/man/man5/sane-coolscan.5
-#usr/share/man/man5/sane-coolscan2.5
-#usr/share/man/man5/sane-coolscan3.5
-#usr/share/man/man5/sane-dc210.5
-#usr/share/man/man5/sane-dc240.5
-#usr/share/man/man5/sane-dc25.5
-#usr/share/man/man5/sane-dll.5
-#usr/share/man/man5/sane-dmc.5
-#usr/share/man/man5/sane-epjitsu.5
-#usr/share/man/man5/sane-epson.5
-#usr/share/man/man5/sane-epson2.5
-#usr/share/man/man5/sane-epsonds.5
-#usr/share/man/man5/sane-fujitsu.5
-#usr/share/man/man5/sane-genesys.5
-#usr/share/man/man5/sane-gt68xx.5
-#usr/share/man/man5/sane-hp.5
-#usr/share/man/man5/sane-hp3500.5
-#usr/share/man/man5/sane-hp3900.5
-#usr/share/man/man5/sane-hp4200.5
-#usr/share/man/man5/sane-hp5400.5
-#usr/share/man/man5/sane-hp5590.5
-#usr/share/man/man5/sane-hpljm1005.5
-#usr/share/man/man5/sane-hs2p.5
-#usr/share/man/man5/sane-ibm.5
-#usr/share/man/man5/sane-kodak.5
-#usr/share/man/man5/sane-kodakaio.5
-#usr/share/man/man5/sane-kvs1025.5
-#usr/share/man/man5/sane-kvs20xx.5
-#usr/share/man/man5/sane-kvs40xx.5
-#usr/share/man/man5/sane-leo.5
-#usr/share/man/man5/sane-lexmark.5
-#usr/share/man/man5/sane-ma1509.5
-#usr/share/man/man5/sane-magicolor.5
-#usr/share/man/man5/sane-matsushita.5
-#usr/share/man/man5/sane-microtek.5
-#usr/share/man/man5/sane-microtek2.5
-#usr/share/man/man5/sane-mustek.5
-#usr/share/man/man5/sane-mustek_pp.5
-#usr/share/man/man5/sane-mustek_usb.5
-#usr/share/man/man5/sane-mustek_usb2.5
-#usr/share/man/man5/sane-nec.5
-#usr/share/man/man5/sane-net.5
-#usr/share/man/man5/sane-niash.5
-#usr/share/man/man5/sane-p5.5
-#usr/share/man/man5/sane-pie.5
-#usr/share/man/man5/sane-pieusb.5
-#usr/share/man/man5/sane-pixma.5
-#usr/share/man/man5/sane-plustek.5
-#usr/share/man/man5/sane-plustek_pp.5
-#usr/share/man/man5/sane-ricoh.5
-#usr/share/man/man5/sane-rts8891.5
-#usr/share/man/man5/sane-s9036.5
-#usr/share/man/man5/sane-sceptre.5
-#usr/share/man/man5/sane-scsi.5
-#usr/share/man/man5/sane-sharp.5
-#usr/share/man/man5/sane-sm3600.5
-#usr/share/man/man5/sane-sm3840.5
-#usr/share/man/man5/sane-snapscan.5
-#usr/share/man/man5/sane-sp15c.5
-#usr/share/man/man5/sane-st400.5
-#usr/share/man/man5/sane-stv680.5
-#usr/share/man/man5/sane-tamarack.5
-#usr/share/man/man5/sane-teco1.5
-#usr/share/man/man5/sane-teco2.5
-#usr/share/man/man5/sane-teco3.5
-#usr/share/man/man5/sane-test.5
-#usr/share/man/man5/sane-u12.5
-#usr/share/man/man5/sane-umax.5
-#usr/share/man/man5/sane-umax1220u.5
-#usr/share/man/man5/sane-umax_pp.5
-#usr/share/man/man5/sane-usb.5
-#usr/share/man/man5/sane-xerox_mfp.5
-#usr/share/man/man7/sane.7
-#usr/share/man/man8/saned.8
-#usr/share/sane
-usr/share/sane/artec_eplus48u
-usr/share/sane/epjitsu
-usr/share/sane/gt68xx
-usr/share/sane/snapscan
-#usr/var
-#usr/var/lock
-usr/var/lock/sane
-var/ipfire/backup/addons/includes/sane
+++ /dev/null
-etc/rc.d/init.d/sane
-etc/rc.d/rc0.d/K10sane
-etc/rc.d/rc3.d/S95sane
-etc/rc.d/rc6.d/K10sane
-#etc/sane.d
-etc/sane.d/abaton.conf
-etc/sane.d/agfafocus.conf
-etc/sane.d/apple.conf
-etc/sane.d/artec.conf
-etc/sane.d/artec_eplus48u.conf
-etc/sane.d/avision.conf
-etc/sane.d/bh.conf
-etc/sane.d/canon.conf
-etc/sane.d/canon630u.conf
-etc/sane.d/canon_dr.conf
-etc/sane.d/cardscan.conf
-etc/sane.d/coolscan.conf
-etc/sane.d/coolscan2.conf
-etc/sane.d/coolscan3.conf
-etc/sane.d/dc210.conf
-etc/sane.d/dc240.conf
-etc/sane.d/dc25.conf
-etc/sane.d/dell1600n_net.conf
-etc/sane.d/dll.conf
-etc/sane.d/dll.d
-etc/sane.d/dmc.conf
-etc/sane.d/epjitsu.conf
-etc/sane.d/epson.conf
-etc/sane.d/epson2.conf
-etc/sane.d/epsonds.conf
-etc/sane.d/fujitsu.conf
-etc/sane.d/genesys.conf
-etc/sane.d/gt68xx.conf
-etc/sane.d/hp.conf
-etc/sane.d/hp3900.conf
-etc/sane.d/hp4200.conf
-etc/sane.d/hp5400.conf
-etc/sane.d/hs2p.conf
-etc/sane.d/ibm.conf
-etc/sane.d/kodak.conf
-etc/sane.d/kodakaio.conf
-etc/sane.d/kvs1025.conf
-etc/sane.d/leo.conf
-etc/sane.d/lexmark.conf
-etc/sane.d/ma1509.conf
-etc/sane.d/magicolor.conf
-etc/sane.d/matsushita.conf
-etc/sane.d/microtek.conf
-etc/sane.d/microtek2.conf
-etc/sane.d/mustek.conf
-etc/sane.d/mustek_pp.conf
-etc/sane.d/mustek_usb.conf
-etc/sane.d/nec.conf
-etc/sane.d/net.conf
-etc/sane.d/p5.conf
-etc/sane.d/pie.conf
-etc/sane.d/pieusb.conf
-etc/sane.d/pixma.conf
-etc/sane.d/plustek.conf
-etc/sane.d/plustek_pp.conf
-etc/sane.d/ricoh.conf
-etc/sane.d/rts8891.conf
-etc/sane.d/s9036.conf
-etc/sane.d/saned.conf
-etc/sane.d/sceptre.conf
-etc/sane.d/sharp.conf
-etc/sane.d/sm3840.conf
-etc/sane.d/snapscan.conf
-etc/sane.d/sp15c.conf
-etc/sane.d/st400.conf
-etc/sane.d/stv680.conf
-etc/sane.d/tamarack.conf
-etc/sane.d/teco1.conf
-etc/sane.d/teco2.conf
-etc/sane.d/teco3.conf
-etc/sane.d/test.conf
-etc/sane.d/u12.conf
-etc/sane.d/umax.conf
-etc/sane.d/umax1220u.conf
-etc/sane.d/umax_pp.conf
-etc/sane.d/xerox_mfp.conf
-usr/bin/gamma4scanimage
-usr/bin/sane-config
-usr/bin/sane-find-scanner
-usr/bin/scanimage
-usr/bin/umax_pp
-#usr/include/sane
-usr/include/sane/sane.h
-usr/include/sane/saneopts.h
-#usr/lib/libsane.la
-usr/lib/libsane.so
-usr/lib/libsane.so.1
-usr/lib/libsane.so.1.0.28
-#usr/lib/pkgconfig/sane-backends.pc
-#usr/lib/sane
-#usr/lib/sane/libsane-abaton.la
-usr/lib/sane/libsane-abaton.so
-usr/lib/sane/libsane-abaton.so.1
-usr/lib/sane/libsane-abaton.so.1.0.28
-#usr/lib/sane/libsane-agfafocus.la
-usr/lib/sane/libsane-agfafocus.so
-usr/lib/sane/libsane-agfafocus.so.1
-usr/lib/sane/libsane-agfafocus.so.1.0.28
-#usr/lib/sane/libsane-apple.la
-usr/lib/sane/libsane-apple.so
-usr/lib/sane/libsane-apple.so.1
-usr/lib/sane/libsane-apple.so.1.0.28
-#usr/lib/sane/libsane-artec.la
-usr/lib/sane/libsane-artec.so
-usr/lib/sane/libsane-artec.so.1
-usr/lib/sane/libsane-artec.so.1.0.28
-#usr/lib/sane/libsane-artec_eplus48u.la
-usr/lib/sane/libsane-artec_eplus48u.so
-usr/lib/sane/libsane-artec_eplus48u.so.1
-usr/lib/sane/libsane-artec_eplus48u.so.1.0.28
-#usr/lib/sane/libsane-as6e.la
-usr/lib/sane/libsane-as6e.so
-usr/lib/sane/libsane-as6e.so.1
-usr/lib/sane/libsane-as6e.so.1.0.28
-#usr/lib/sane/libsane-avision.la
-usr/lib/sane/libsane-avision.so
-usr/lib/sane/libsane-avision.so.1
-usr/lib/sane/libsane-avision.so.1.0.28
-#usr/lib/sane/libsane-bh.la
-usr/lib/sane/libsane-bh.so
-usr/lib/sane/libsane-bh.so.1
-usr/lib/sane/libsane-bh.so.1.0.28
-#usr/lib/sane/libsane-canon.la
-usr/lib/sane/libsane-canon.so
-usr/lib/sane/libsane-canon.so.1
-usr/lib/sane/libsane-canon.so.1.0.28
-#usr/lib/sane/libsane-canon630u.la
-usr/lib/sane/libsane-canon630u.so
-usr/lib/sane/libsane-canon630u.so.1
-usr/lib/sane/libsane-canon630u.so.1.0.28
-#usr/lib/sane/libsane-canon_dr.la
-usr/lib/sane/libsane-canon_dr.so
-usr/lib/sane/libsane-canon_dr.so.1
-usr/lib/sane/libsane-canon_dr.so.1.0.28
-#usr/lib/sane/libsane-cardscan.la
-usr/lib/sane/libsane-cardscan.so
-usr/lib/sane/libsane-cardscan.so.1
-usr/lib/sane/libsane-cardscan.so.1.0.28
-#usr/lib/sane/libsane-coolscan.la
-usr/lib/sane/libsane-coolscan.so
-usr/lib/sane/libsane-coolscan.so.1
-usr/lib/sane/libsane-coolscan.so.1.0.28
-#usr/lib/sane/libsane-coolscan2.la
-usr/lib/sane/libsane-coolscan2.so
-usr/lib/sane/libsane-coolscan2.so.1
-usr/lib/sane/libsane-coolscan2.so.1.0.28
-#usr/lib/sane/libsane-coolscan3.la
-usr/lib/sane/libsane-coolscan3.so
-usr/lib/sane/libsane-coolscan3.so.1
-usr/lib/sane/libsane-coolscan3.so.1.0.28
-#usr/lib/sane/libsane-dc210.la
-usr/lib/sane/libsane-dc210.so
-usr/lib/sane/libsane-dc210.so.1
-usr/lib/sane/libsane-dc210.so.1.0.28
-#usr/lib/sane/libsane-dc240.la
-usr/lib/sane/libsane-dc240.so
-usr/lib/sane/libsane-dc240.so.1
-usr/lib/sane/libsane-dc240.so.1.0.28
-#usr/lib/sane/libsane-dc25.la
-usr/lib/sane/libsane-dc25.so
-usr/lib/sane/libsane-dc25.so.1
-usr/lib/sane/libsane-dc25.so.1.0.28
-#usr/lib/sane/libsane-dell1600n_net.la
-usr/lib/sane/libsane-dell1600n_net.so
-usr/lib/sane/libsane-dell1600n_net.so.1
-usr/lib/sane/libsane-dell1600n_net.so.1.0.28
-#usr/lib/sane/libsane-dll.la
-usr/lib/sane/libsane-dll.so
-usr/lib/sane/libsane-dll.so.1
-usr/lib/sane/libsane-dll.so.1.0.28
-#usr/lib/sane/libsane-dmc.la
-usr/lib/sane/libsane-dmc.so
-usr/lib/sane/libsane-dmc.so.1
-usr/lib/sane/libsane-dmc.so.1.0.28
-#usr/lib/sane/libsane-epjitsu.la
-usr/lib/sane/libsane-epjitsu.so
-usr/lib/sane/libsane-epjitsu.so.1
-usr/lib/sane/libsane-epjitsu.so.1.0.28
-#usr/lib/sane/libsane-epson.la
-usr/lib/sane/libsane-epson.so
-usr/lib/sane/libsane-epson.so.1
-usr/lib/sane/libsane-epson.so.1.0.28
-#usr/lib/sane/libsane-epson2.la
-usr/lib/sane/libsane-epson2.so
-usr/lib/sane/libsane-epson2.so.1
-usr/lib/sane/libsane-epson2.so.1.0.28
-#usr/lib/sane/libsane-epsonds.la
-usr/lib/sane/libsane-epsonds.so
-usr/lib/sane/libsane-epsonds.so.1
-usr/lib/sane/libsane-epsonds.so.1.0.28
-#usr/lib/sane/libsane-fujitsu.la
-usr/lib/sane/libsane-fujitsu.so
-usr/lib/sane/libsane-fujitsu.so.1
-usr/lib/sane/libsane-fujitsu.so.1.0.28
-#usr/lib/sane/libsane-genesys.la
-usr/lib/sane/libsane-genesys.so
-usr/lib/sane/libsane-genesys.so.1
-usr/lib/sane/libsane-genesys.so.1.0.28
-#usr/lib/sane/libsane-gt68xx.la
-usr/lib/sane/libsane-gt68xx.so
-usr/lib/sane/libsane-gt68xx.so.1
-usr/lib/sane/libsane-gt68xx.so.1.0.28
-#usr/lib/sane/libsane-hp.la
-usr/lib/sane/libsane-hp.so
-usr/lib/sane/libsane-hp.so.1
-usr/lib/sane/libsane-hp.so.1.0.28
-#usr/lib/sane/libsane-hp3500.la
-usr/lib/sane/libsane-hp3500.so
-usr/lib/sane/libsane-hp3500.so.1
-usr/lib/sane/libsane-hp3500.so.1.0.28
-#usr/lib/sane/libsane-hp3900.la
-usr/lib/sane/libsane-hp3900.so
-usr/lib/sane/libsane-hp3900.so.1
-usr/lib/sane/libsane-hp3900.so.1.0.28
-#usr/lib/sane/libsane-hp4200.la
-usr/lib/sane/libsane-hp4200.so
-usr/lib/sane/libsane-hp4200.so.1
-usr/lib/sane/libsane-hp4200.so.1.0.28
-#usr/lib/sane/libsane-hp5400.la
-usr/lib/sane/libsane-hp5400.so
-usr/lib/sane/libsane-hp5400.so.1
-usr/lib/sane/libsane-hp5400.so.1.0.28
-#usr/lib/sane/libsane-hp5590.la
-usr/lib/sane/libsane-hp5590.so
-usr/lib/sane/libsane-hp5590.so.1
-usr/lib/sane/libsane-hp5590.so.1.0.28
-#usr/lib/sane/libsane-hpljm1005.la
-usr/lib/sane/libsane-hpljm1005.so
-usr/lib/sane/libsane-hpljm1005.so.1
-usr/lib/sane/libsane-hpljm1005.so.1.0.28
-#usr/lib/sane/libsane-hs2p.la
-usr/lib/sane/libsane-hs2p.so
-usr/lib/sane/libsane-hs2p.so.1
-usr/lib/sane/libsane-hs2p.so.1.0.28
-#usr/lib/sane/libsane-ibm.la
-usr/lib/sane/libsane-ibm.so
-usr/lib/sane/libsane-ibm.so.1
-usr/lib/sane/libsane-ibm.so.1.0.28
-#usr/lib/sane/libsane-kodak.la
-usr/lib/sane/libsane-kodak.so
-usr/lib/sane/libsane-kodak.so.1
-usr/lib/sane/libsane-kodak.so.1.0.28
-#usr/lib/sane/libsane-kodakaio.la
-usr/lib/sane/libsane-kodakaio.so
-usr/lib/sane/libsane-kodakaio.so.1
-usr/lib/sane/libsane-kodakaio.so.1.0.28
-#usr/lib/sane/libsane-kvs1025.la
-usr/lib/sane/libsane-kvs1025.so
-usr/lib/sane/libsane-kvs1025.so.1
-usr/lib/sane/libsane-kvs1025.so.1.0.28
-#usr/lib/sane/libsane-kvs20xx.la
-usr/lib/sane/libsane-kvs20xx.so
-usr/lib/sane/libsane-kvs20xx.so.1
-usr/lib/sane/libsane-kvs20xx.so.1.0.28
-#usr/lib/sane/libsane-kvs40xx.la
-usr/lib/sane/libsane-kvs40xx.so
-usr/lib/sane/libsane-kvs40xx.so.1
-usr/lib/sane/libsane-kvs40xx.so.1.0.28
-#usr/lib/sane/libsane-leo.la
-usr/lib/sane/libsane-leo.so
-usr/lib/sane/libsane-leo.so.1
-usr/lib/sane/libsane-leo.so.1.0.28
-#usr/lib/sane/libsane-lexmark.la
-usr/lib/sane/libsane-lexmark.so
-usr/lib/sane/libsane-lexmark.so.1
-usr/lib/sane/libsane-lexmark.so.1.0.28
-#usr/lib/sane/libsane-ma1509.la
-usr/lib/sane/libsane-ma1509.so
-usr/lib/sane/libsane-ma1509.so.1
-usr/lib/sane/libsane-ma1509.so.1.0.28
-#usr/lib/sane/libsane-magicolor.la
-usr/lib/sane/libsane-magicolor.so
-usr/lib/sane/libsane-magicolor.so.1
-usr/lib/sane/libsane-magicolor.so.1.0.28
-#usr/lib/sane/libsane-matsushita.la
-usr/lib/sane/libsane-matsushita.so
-usr/lib/sane/libsane-matsushita.so.1
-usr/lib/sane/libsane-matsushita.so.1.0.28
-#usr/lib/sane/libsane-microtek.la
-usr/lib/sane/libsane-microtek.so
-usr/lib/sane/libsane-microtek.so.1
-usr/lib/sane/libsane-microtek.so.1.0.28
-#usr/lib/sane/libsane-microtek2.la
-usr/lib/sane/libsane-microtek2.so
-usr/lib/sane/libsane-microtek2.so.1
-usr/lib/sane/libsane-microtek2.so.1.0.28
-#usr/lib/sane/libsane-mustek.la
-usr/lib/sane/libsane-mustek.so
-usr/lib/sane/libsane-mustek.so.1
-usr/lib/sane/libsane-mustek.so.1.0.28
-#usr/lib/sane/libsane-mustek_pp.la
-usr/lib/sane/libsane-mustek_pp.so
-usr/lib/sane/libsane-mustek_pp.so.1
-usr/lib/sane/libsane-mustek_pp.so.1.0.28
-#usr/lib/sane/libsane-mustek_usb.la
-usr/lib/sane/libsane-mustek_usb.so
-usr/lib/sane/libsane-mustek_usb.so.1
-usr/lib/sane/libsane-mustek_usb.so.1.0.28
-#usr/lib/sane/libsane-mustek_usb2.la
-usr/lib/sane/libsane-mustek_usb2.so
-usr/lib/sane/libsane-mustek_usb2.so.1
-usr/lib/sane/libsane-mustek_usb2.so.1.0.28
-#usr/lib/sane/libsane-nec.la
-usr/lib/sane/libsane-nec.so
-usr/lib/sane/libsane-nec.so.1
-usr/lib/sane/libsane-nec.so.1.0.28
-#usr/lib/sane/libsane-net.la
-usr/lib/sane/libsane-net.so
-usr/lib/sane/libsane-net.so.1
-usr/lib/sane/libsane-net.so.1.0.28
-#usr/lib/sane/libsane-niash.la
-usr/lib/sane/libsane-niash.so
-usr/lib/sane/libsane-niash.so.1
-usr/lib/sane/libsane-niash.so.1.0.28
-#usr/lib/sane/libsane-p5.la
-usr/lib/sane/libsane-p5.so
-usr/lib/sane/libsane-p5.so.1
-usr/lib/sane/libsane-p5.so.1.0.28
-#usr/lib/sane/libsane-pie.la
-usr/lib/sane/libsane-pie.so
-usr/lib/sane/libsane-pie.so.1
-usr/lib/sane/libsane-pie.so.1.0.28
-#usr/lib/sane/libsane-pieusb.la
-usr/lib/sane/libsane-pieusb.so
-usr/lib/sane/libsane-pieusb.so.1
-usr/lib/sane/libsane-pieusb.so.1.0.28
-#usr/lib/sane/libsane-pixma.la
-usr/lib/sane/libsane-pixma.so
-usr/lib/sane/libsane-pixma.so.1
-usr/lib/sane/libsane-pixma.so.1.0.28
-#usr/lib/sane/libsane-plustek.la
-usr/lib/sane/libsane-plustek.so
-usr/lib/sane/libsane-plustek.so.1
-usr/lib/sane/libsane-plustek.so.1.0.28
-#usr/lib/sane/libsane-plustek_pp.la
-usr/lib/sane/libsane-plustek_pp.so
-usr/lib/sane/libsane-plustek_pp.so.1
-usr/lib/sane/libsane-plustek_pp.so.1.0.28
-#usr/lib/sane/libsane-ricoh.la
-usr/lib/sane/libsane-ricoh.so
-usr/lib/sane/libsane-ricoh.so.1
-usr/lib/sane/libsane-ricoh.so.1.0.28
-#usr/lib/sane/libsane-ricoh2.la
-usr/lib/sane/libsane-ricoh2.so
-usr/lib/sane/libsane-ricoh2.so.1
-usr/lib/sane/libsane-ricoh2.so.1.0.28
-#usr/lib/sane/libsane-rts8891.la
-usr/lib/sane/libsane-rts8891.so
-usr/lib/sane/libsane-rts8891.so.1
-usr/lib/sane/libsane-rts8891.so.1.0.28
-#usr/lib/sane/libsane-s9036.la
-usr/lib/sane/libsane-s9036.so
-usr/lib/sane/libsane-s9036.so.1
-usr/lib/sane/libsane-s9036.so.1.0.28
-#usr/lib/sane/libsane-sceptre.la
-usr/lib/sane/libsane-sceptre.so
-usr/lib/sane/libsane-sceptre.so.1
-usr/lib/sane/libsane-sceptre.so.1.0.28
-#usr/lib/sane/libsane-sharp.la
-usr/lib/sane/libsane-sharp.so
-usr/lib/sane/libsane-sharp.so.1
-usr/lib/sane/libsane-sharp.so.1.0.28
-#usr/lib/sane/libsane-sm3600.la
-usr/lib/sane/libsane-sm3600.so
-usr/lib/sane/libsane-sm3600.so.1
-usr/lib/sane/libsane-sm3600.so.1.0.28
-#usr/lib/sane/libsane-sm3840.la
-usr/lib/sane/libsane-sm3840.so
-usr/lib/sane/libsane-sm3840.so.1
-usr/lib/sane/libsane-sm3840.so.1.0.28
-#usr/lib/sane/libsane-snapscan.la
-usr/lib/sane/libsane-snapscan.so
-usr/lib/sane/libsane-snapscan.so.1
-usr/lib/sane/libsane-snapscan.so.1.0.28
-#usr/lib/sane/libsane-sp15c.la
-usr/lib/sane/libsane-sp15c.so
-usr/lib/sane/libsane-sp15c.so.1
-usr/lib/sane/libsane-sp15c.so.1.0.28
-#usr/lib/sane/libsane-st400.la
-usr/lib/sane/libsane-st400.so
-usr/lib/sane/libsane-st400.so.1
-usr/lib/sane/libsane-st400.so.1.0.28
-#usr/lib/sane/libsane-stv680.la
-usr/lib/sane/libsane-stv680.so
-usr/lib/sane/libsane-stv680.so.1
-usr/lib/sane/libsane-stv680.so.1.0.28
-#usr/lib/sane/libsane-tamarack.la
-usr/lib/sane/libsane-tamarack.so
-usr/lib/sane/libsane-tamarack.so.1
-usr/lib/sane/libsane-tamarack.so.1.0.28
-#usr/lib/sane/libsane-teco1.la
-usr/lib/sane/libsane-teco1.so
-usr/lib/sane/libsane-teco1.so.1
-usr/lib/sane/libsane-teco1.so.1.0.28
-#usr/lib/sane/libsane-teco2.la
-usr/lib/sane/libsane-teco2.so
-usr/lib/sane/libsane-teco2.so.1
-usr/lib/sane/libsane-teco2.so.1.0.28
-#usr/lib/sane/libsane-teco3.la
-usr/lib/sane/libsane-teco3.so
-usr/lib/sane/libsane-teco3.so.1
-usr/lib/sane/libsane-teco3.so.1.0.28
-#usr/lib/sane/libsane-test.la
-usr/lib/sane/libsane-test.so
-usr/lib/sane/libsane-test.so.1
-usr/lib/sane/libsane-test.so.1.0.28
-#usr/lib/sane/libsane-u12.la
-usr/lib/sane/libsane-u12.so
-usr/lib/sane/libsane-u12.so.1
-usr/lib/sane/libsane-u12.so.1.0.28
-#usr/lib/sane/libsane-umax.la
-usr/lib/sane/libsane-umax.so
-usr/lib/sane/libsane-umax.so.1
-usr/lib/sane/libsane-umax.so.1.0.28
-#usr/lib/sane/libsane-umax1220u.la
-usr/lib/sane/libsane-umax1220u.so
-usr/lib/sane/libsane-umax1220u.so.1
-usr/lib/sane/libsane-umax1220u.so.1.0.28
-#usr/lib/sane/libsane-umax_pp.la
-usr/lib/sane/libsane-umax_pp.so
-usr/lib/sane/libsane-umax_pp.so.1
-usr/lib/sane/libsane-umax_pp.so.1.0.28
-#usr/lib/sane/libsane-xerox_mfp.la
-usr/lib/sane/libsane-xerox_mfp.so
-usr/lib/sane/libsane-xerox_mfp.so.1
-usr/lib/sane/libsane-xerox_mfp.so.1.0.28
-usr/sbin/saned
-#usr/share/doc/sane-backends
-#usr/share/doc/sane-backends/AUTHORS
-#usr/share/doc/sane-backends/COPYING
-#usr/share/doc/sane-backends/ChangeLog
-#usr/share/doc/sane-backends/LICENSE
-#usr/share/doc/sane-backends/NEWS
-#usr/share/doc/sane-backends/PROBLEMS
-#usr/share/doc/sane-backends/PROJECTS
-#usr/share/doc/sane-backends/README
-#usr/share/doc/sane-backends/README.aix
-#usr/share/doc/sane-backends/README.beos
-#usr/share/doc/sane-backends/README.darwin
-#usr/share/doc/sane-backends/README.djpeg
-#usr/share/doc/sane-backends/README.freebsd
-#usr/share/doc/sane-backends/README.hp-ux
-#usr/share/doc/sane-backends/README.linux
-#usr/share/doc/sane-backends/README.netbsd
-#usr/share/doc/sane-backends/README.openbsd
-#usr/share/doc/sane-backends/README.os2
-#usr/share/doc/sane-backends/README.solaris
-#usr/share/doc/sane-backends/README.unixware2
-#usr/share/doc/sane-backends/README.unixware7
-#usr/share/doc/sane-backends/README.windows
-#usr/share/doc/sane-backends/README.zeta
-#usr/share/doc/sane-backends/backend-writing.txt
-#usr/share/doc/sane-backends/canon
-#usr/share/doc/sane-backends/canon/canon.changes
-#usr/share/doc/sane-backends/canon/canon.install2700F.txt
-#usr/share/doc/sane-backends/gt68xx
-#usr/share/doc/sane-backends/gt68xx/gt68xx.CHANGES
-#usr/share/doc/sane-backends/gt68xx/gt68xx.TODO
-#usr/share/doc/sane-backends/leo
-#usr/share/doc/sane-backends/leo/leo.txt
-#usr/share/doc/sane-backends/matsushita
-#usr/share/doc/sane-backends/matsushita/matsushita.txt
-#usr/share/doc/sane-backends/mustek
-#usr/share/doc/sane-backends/mustek/mustek.CHANGES
-#usr/share/doc/sane-backends/mustek_usb
-#usr/share/doc/sane-backends/mustek_usb/mustek_usb.CHANGES
-#usr/share/doc/sane-backends/mustek_usb/mustek_usb.TODO
-#usr/share/doc/sane-backends/mustek_usb2
-#usr/share/doc/sane-backends/mustek_usb2/mustek_usb2.CHANGES
-#usr/share/doc/sane-backends/mustek_usb2/mustek_usb2.TODO
-#usr/share/doc/sane-backends/niash
-#usr/share/doc/sane-backends/niash/niash.TODO
-#usr/share/doc/sane-backends/plustek
-#usr/share/doc/sane-backends/plustek/FAQ
-#usr/share/doc/sane-backends/plustek/MakeModule.sh
-#usr/share/doc/sane-backends/plustek/Makefile.kernel24
-#usr/share/doc/sane-backends/plustek/Makefile.kernel26
-#usr/share/doc/sane-backends/plustek/Plustek-PARPORT-TODO.txt
-#usr/share/doc/sane-backends/plustek/Plustek-PARPORT.changes
-#usr/share/doc/sane-backends/plustek/Plustek-PARPORT.txt
-#usr/share/doc/sane-backends/plustek/Plustek-USB-TODO.txt
-#usr/share/doc/sane-backends/plustek/Plustek-USB.changes
-#usr/share/doc/sane-backends/plustek/Plustek-USB.txt
-#usr/share/doc/sane-backends/sane-backends-external.html
-#usr/share/doc/sane-backends/sane-backends.html
-#usr/share/doc/sane-backends/sane-mfgs-external.html
-#usr/share/doc/sane-backends/sane-mfgs.html
-#usr/share/doc/sane-backends/sceptre
-#usr/share/doc/sane-backends/sceptre/s1200.txt
-#usr/share/doc/sane-backends/teco
-#usr/share/doc/sane-backends/teco/teco1.txt
-#usr/share/doc/sane-backends/teco/teco2.txt
-#usr/share/doc/sane-backends/teco/teco3.txt
-#usr/share/doc/sane-backends/u12
-#usr/share/doc/sane-backends/u12/U12.changes
-#usr/share/doc/sane-backends/u12/U12.todo
-#usr/share/doc/sane-backends/umax
-#usr/share/doc/sane-backends/umax/negative-types.txt
-#usr/share/doc/sane-backends/umax/sane-logo.jpg
-#usr/share/doc/sane-backends/umax/sane-umax-advanced-options-doc.html
-#usr/share/doc/sane-backends/umax/sane-umax-advanced.jpg
-#usr/share/doc/sane-backends/umax/sane-umax-astra-doc.html
-#usr/share/doc/sane-backends/umax/sane-umax-config-doc.html
-#usr/share/doc/sane-backends/umax/sane-umax-doc.html
-#usr/share/doc/sane-backends/umax/sane-umax-histogram.jpg
-#usr/share/doc/sane-backends/umax/sane-umax-mirage-doc.html
-#usr/share/doc/sane-backends/umax/sane-umax-not-listed-doc.html
-#usr/share/doc/sane-backends/umax/sane-umax-others-doc.html
-#usr/share/doc/sane-backends/umax/sane-umax-parport-doc.html
-#usr/share/doc/sane-backends/umax/sane-umax-powerlook-doc.html
-#usr/share/doc/sane-backends/umax/sane-umax-scanner-clones-doc.html
-#usr/share/doc/sane-backends/umax/sane-umax-speed-doc.html
-#usr/share/doc/sane-backends/umax/sane-umax-standard-options-doc.html
-#usr/share/doc/sane-backends/umax/sane-umax-standard.jpg
-#usr/share/doc/sane-backends/umax/sane-umax-text.jpg
-#usr/share/doc/sane-backends/umax/sane-umax-text2.jpg
-#usr/share/doc/sane-backends/umax/sane-umax-text4.jpg
-#usr/share/doc/sane-backends/umax/sane-umax-uc-doc.html
-#usr/share/doc/sane-backends/umax/sane-umax-vista-doc.html
-#usr/share/doc/sane-backends/umax/sane-umax.jpg
-#usr/share/doc/sane-backends/umax/umax.BUGS
-#usr/share/doc/sane-backends/umax/umax.CHANGES
-#usr/share/doc/sane-backends/umax/umax.FAQ
-#usr/share/doc/sane-backends/umax/umax.TODO
-#usr/share/locale/bg/LC_MESSAGES/sane-backends.mo
-#usr/share/locale/ca/LC_MESSAGES/sane-backends.mo
-#usr/share/locale/ca@valencia/LC_MESSAGES/sane-backends.mo
-#usr/share/locale/cs/LC_MESSAGES/sane-backends.mo
-#usr/share/locale/da/LC_MESSAGES/sane-backends.mo
-#usr/share/locale/de/LC_MESSAGES/sane-backends.mo
-#usr/share/locale/en@boldquot/LC_MESSAGES/sane-backends.mo
-#usr/share/locale/en@quot/LC_MESSAGES/sane-backends.mo
-#usr/share/locale/en_GB/LC_MESSAGES/sane-backends.mo
-#usr/share/locale/eo/LC_MESSAGES/sane-backends.mo
-#usr/share/locale/es/LC_MESSAGES/sane-backends.mo
-#usr/share/locale/fi/LC_MESSAGES/sane-backends.mo
-#usr/share/locale/fr/LC_MESSAGES/sane-backends.mo
-#usr/share/locale/gl/LC_MESSAGES/sane-backends.mo
-#usr/share/locale/he/LC_MESSAGES/sane-backends.mo
-#usr/share/locale/hu/LC_MESSAGES/sane-backends.mo
-#usr/share/locale/it/LC_MESSAGES/sane-backends.mo
-#usr/share/locale/ja/LC_MESSAGES/sane-backends.mo
-#usr/share/locale/nb/LC_MESSAGES/sane-backends.mo
-#usr/share/locale/nl/LC_MESSAGES/sane-backends.mo
-#usr/share/locale/pl/LC_MESSAGES/sane-backends.mo
-#usr/share/locale/pt/LC_MESSAGES/sane-backends.mo
-#usr/share/locale/ru/LC_MESSAGES/sane-backends.mo
-#usr/share/locale/sv/LC_MESSAGES/sane-backends.mo
-#usr/share/locale/uk/LC_MESSAGES/sane-backends.mo
-#usr/share/man/man1/gamma4scanimage.1
-#usr/share/man/man1/sane-config.1
-#usr/share/man/man1/sane-find-scanner.1
-#usr/share/man/man1/scanimage.1
-#usr/share/man/man5/sane-abaton.5
-#usr/share/man/man5/sane-agfafocus.5
-#usr/share/man/man5/sane-apple.5
-#usr/share/man/man5/sane-artec.5
-#usr/share/man/man5/sane-artec_eplus48u.5
-#usr/share/man/man5/sane-as6e.5
-#usr/share/man/man5/sane-avision.5
-#usr/share/man/man5/sane-bh.5
-#usr/share/man/man5/sane-canon.5
-#usr/share/man/man5/sane-canon630u.5
-#usr/share/man/man5/sane-canon_dr.5
-#usr/share/man/man5/sane-cardscan.5
-#usr/share/man/man5/sane-coolscan.5
-#usr/share/man/man5/sane-coolscan2.5
-#usr/share/man/man5/sane-coolscan3.5
-#usr/share/man/man5/sane-dc210.5
-#usr/share/man/man5/sane-dc240.5
-#usr/share/man/man5/sane-dc25.5
-#usr/share/man/man5/sane-dll.5
-#usr/share/man/man5/sane-dmc.5
-#usr/share/man/man5/sane-epjitsu.5
-#usr/share/man/man5/sane-epson.5
-#usr/share/man/man5/sane-epson2.5
-#usr/share/man/man5/sane-epsonds.5
-#usr/share/man/man5/sane-fujitsu.5
-#usr/share/man/man5/sane-genesys.5
-#usr/share/man/man5/sane-gt68xx.5
-#usr/share/man/man5/sane-hp.5
-#usr/share/man/man5/sane-hp3500.5
-#usr/share/man/man5/sane-hp3900.5
-#usr/share/man/man5/sane-hp4200.5
-#usr/share/man/man5/sane-hp5400.5
-#usr/share/man/man5/sane-hp5590.5
-#usr/share/man/man5/sane-hpljm1005.5
-#usr/share/man/man5/sane-hs2p.5
-#usr/share/man/man5/sane-ibm.5
-#usr/share/man/man5/sane-kodak.5
-#usr/share/man/man5/sane-kodakaio.5
-#usr/share/man/man5/sane-kvs1025.5
-#usr/share/man/man5/sane-kvs20xx.5
-#usr/share/man/man5/sane-kvs40xx.5
-#usr/share/man/man5/sane-leo.5
-#usr/share/man/man5/sane-lexmark.5
-#usr/share/man/man5/sane-ma1509.5
-#usr/share/man/man5/sane-magicolor.5
-#usr/share/man/man5/sane-matsushita.5
-#usr/share/man/man5/sane-microtek.5
-#usr/share/man/man5/sane-microtek2.5
-#usr/share/man/man5/sane-mustek.5
-#usr/share/man/man5/sane-mustek_pp.5
-#usr/share/man/man5/sane-mustek_usb.5
-#usr/share/man/man5/sane-mustek_usb2.5
-#usr/share/man/man5/sane-nec.5
-#usr/share/man/man5/sane-net.5
-#usr/share/man/man5/sane-niash.5
-#usr/share/man/man5/sane-p5.5
-#usr/share/man/man5/sane-pie.5
-#usr/share/man/man5/sane-pieusb.5
-#usr/share/man/man5/sane-pixma.5
-#usr/share/man/man5/sane-plustek.5
-#usr/share/man/man5/sane-plustek_pp.5
-#usr/share/man/man5/sane-ricoh.5
-#usr/share/man/man5/sane-rts8891.5
-#usr/share/man/man5/sane-s9036.5
-#usr/share/man/man5/sane-sceptre.5
-#usr/share/man/man5/sane-scsi.5
-#usr/share/man/man5/sane-sharp.5
-#usr/share/man/man5/sane-sm3600.5
-#usr/share/man/man5/sane-sm3840.5
-#usr/share/man/man5/sane-snapscan.5
-#usr/share/man/man5/sane-sp15c.5
-#usr/share/man/man5/sane-st400.5
-#usr/share/man/man5/sane-stv680.5
-#usr/share/man/man5/sane-tamarack.5
-#usr/share/man/man5/sane-teco1.5
-#usr/share/man/man5/sane-teco2.5
-#usr/share/man/man5/sane-teco3.5
-#usr/share/man/man5/sane-test.5
-#usr/share/man/man5/sane-u12.5
-#usr/share/man/man5/sane-umax.5
-#usr/share/man/man5/sane-umax1220u.5
-#usr/share/man/man5/sane-umax_pp.5
-#usr/share/man/man5/sane-usb.5
-#usr/share/man/man5/sane-xerox_mfp.5
-#usr/share/man/man7/sane.7
-#usr/share/man/man8/saned.8
-#usr/share/sane
-usr/share/sane/artec_eplus48u
-usr/share/sane/epjitsu
-usr/share/sane/gt68xx
-usr/share/sane/snapscan
-#usr/var
-#usr/var/lock
-usr/var/lock/sane
-var/ipfire/backup/addons/includes/sane
+++ /dev/null
-etc/asterisk
-etc/logrotate.d/asterisk
-etc/rc.d/init.d/asterisk
-etc/rc.d/rc0.d/K30asterisk
-etc/rc.d/rc3.d/S30asterisk
-etc/rc.d/rc6.d/K30asterisk
-#usr/include/asterisk
-#usr/include/asterisk.h
-#usr/include/asterisk/_private.h
-#usr/include/asterisk/abstract_jb.h
-#usr/include/asterisk/acl.h
-#usr/include/asterisk/adsi.h
-#usr/include/asterisk/ael_structs.h
-#usr/include/asterisk/agi.h
-#usr/include/asterisk/alaw.h
-#usr/include/asterisk/alertpipe.h
-#usr/include/asterisk/aoc.h
-#usr/include/asterisk/app.h
-#usr/include/asterisk/ari.h
-#usr/include/asterisk/ast_expr.h
-#usr/include/asterisk/ast_version.h
-#usr/include/asterisk/astdb.h
-#usr/include/asterisk/astmm.h
-#usr/include/asterisk/astobj.h
-#usr/include/asterisk/astobj2.h
-#usr/include/asterisk/astosp.h
-#usr/include/asterisk/audiohook.h
-#usr/include/asterisk/autochan.h
-#usr/include/asterisk/autoconfig.h
-#usr/include/asterisk/backtrace.h
-#usr/include/asterisk/beep.h
-#usr/include/asterisk/bridge.h
-#usr/include/asterisk/bridge_after.h
-#usr/include/asterisk/bridge_basic.h
-#usr/include/asterisk/bridge_channel.h
-#usr/include/asterisk/bridge_channel_internal.h
-#usr/include/asterisk/bridge_features.h
-#usr/include/asterisk/bridge_internal.h
-#usr/include/asterisk/bridge_roles.h
-#usr/include/asterisk/bridge_technology.h
-#usr/include/asterisk/bucket.h
-#usr/include/asterisk/build.h
-#usr/include/asterisk/buildinfo.h
-#usr/include/asterisk/buildopts.h
-#usr/include/asterisk/calendar.h
-#usr/include/asterisk/callerid.h
-#usr/include/asterisk/causes.h
-#usr/include/asterisk/ccss.h
-#usr/include/asterisk/cdr.h
-#usr/include/asterisk/cel.h
-#usr/include/asterisk/celt.h
-#usr/include/asterisk/channel.h
-#usr/include/asterisk/channel_internal.h
-#usr/include/asterisk/channelstate.h
-#usr/include/asterisk/chanvars.h
-#usr/include/asterisk/cli.h
-#usr/include/asterisk/codec.h
-#usr/include/asterisk/compat.h
-#usr/include/asterisk/compiler.h
-#usr/include/asterisk/config.h
-#usr/include/asterisk/config_options.h
-#usr/include/asterisk/core_local.h
-#usr/include/asterisk/core_unreal.h
-#usr/include/asterisk/crypto.h
-#usr/include/asterisk/data.h
-#usr/include/asterisk/datastore.h
-#usr/include/asterisk/devicestate.h
-#usr/include/asterisk/dial.h
-#usr/include/asterisk/dlinkedlists.h
-#usr/include/asterisk/dns.h
-#usr/include/asterisk/dnsmgr.h
-#usr/include/asterisk/doxygen
-#usr/include/asterisk/doxygen/architecture.h
-#usr/include/asterisk/doxygen/asterisk-git-howto.h
-#usr/include/asterisk/doxygen/commits.h
-#usr/include/asterisk/doxygen/licensing.h
-#usr/include/asterisk/doxygen/releases.h
-#usr/include/asterisk/doxygen/reviewboard.h
-#usr/include/asterisk/doxyref.h
-#usr/include/asterisk/dsp.h
-#usr/include/asterisk/dundi.h
-#usr/include/asterisk/endian.h
-#usr/include/asterisk/endpoints.h
-#usr/include/asterisk/enum.h
-#usr/include/asterisk/event.h
-#usr/include/asterisk/event_defs.h
-#usr/include/asterisk/extconf.h
-#usr/include/asterisk/features.h
-#usr/include/asterisk/features_config.h
-#usr/include/asterisk/file.h
-#usr/include/asterisk/format.h
-#usr/include/asterisk/format_cache.h
-#usr/include/asterisk/format_cap.h
-#usr/include/asterisk/format_compatibility.h
-#usr/include/asterisk/frame.h
-#usr/include/asterisk/framehook.h
-#usr/include/asterisk/fskmodem.h
-#usr/include/asterisk/fskmodem_float.h
-#usr/include/asterisk/fskmodem_int.h
-#usr/include/asterisk/global_datastores.h
-#usr/include/asterisk/hashtab.h
-#usr/include/asterisk/heap.h
-#usr/include/asterisk/http.h
-#usr/include/asterisk/http_websocket.h
-#usr/include/asterisk/image.h
-#usr/include/asterisk/indications.h
-#usr/include/asterisk/inline_api.h
-#usr/include/asterisk/io.h
-#usr/include/asterisk/json.h
-#usr/include/asterisk/linkedlists.h
-#usr/include/asterisk/localtime.h
-#usr/include/asterisk/lock.h
-#usr/include/asterisk/logger.h
-#usr/include/asterisk/manager.h
-#usr/include/asterisk/max_forwards.h
-#usr/include/asterisk/md5.h
-#usr/include/asterisk/media_index.h
-#usr/include/asterisk/message.h
-#usr/include/asterisk/mixmonitor.h
-#usr/include/asterisk/mod_format.h
-#usr/include/asterisk/module.h
-#usr/include/asterisk/monitor.h
-#usr/include/asterisk/multicast_rtp.h
-#usr/include/asterisk/musiconhold.h
-#usr/include/asterisk/named_locks.h
-#usr/include/asterisk/netsock.h
-#usr/include/asterisk/netsock2.h
-#usr/include/asterisk/network.h
-#usr/include/asterisk/optional_api.h
-#usr/include/asterisk/options.h
-#usr/include/asterisk/opus.h
-#usr/include/asterisk/parking.h
-#usr/include/asterisk/paths.h
-#usr/include/asterisk/pbx.h
-#usr/include/asterisk/phoneprov.h
-#usr/include/asterisk/pickup.h
-#usr/include/asterisk/pktccops.h
-#usr/include/asterisk/plc.h
-#usr/include/asterisk/poll-compat.h
-#usr/include/asterisk/presencestate.h
-#usr/include/asterisk/privacy.h
-#usr/include/asterisk/pval.h
-#usr/include/asterisk/res_fax.h
-#usr/include/asterisk/res_hep.h
-#usr/include/asterisk/res_mwi_external.h
-#usr/include/asterisk/res_odbc.h
-#usr/include/asterisk/res_odbc_transaction.h
-#usr/include/asterisk/res_pjproject.h
-#usr/include/asterisk/res_pjsip.h
-#usr/include/asterisk/res_pjsip_body_generator_types.h
-#usr/include/asterisk/res_pjsip_cli.h
-#usr/include/asterisk/res_pjsip_outbound_publish.h
-#usr/include/asterisk/res_pjsip_presence_xml.h
-#usr/include/asterisk/res_pjsip_pubsub.h
-#usr/include/asterisk/res_pjsip_session.h
-#usr/include/asterisk/res_srtp.h
-#usr/include/asterisk/rtp_engine.h
-#usr/include/asterisk/say.h
-#usr/include/asterisk/sched.h
-#usr/include/asterisk/sdp_srtp.h
-#usr/include/asterisk/security_events.h
-#usr/include/asterisk/security_events_defs.h
-#usr/include/asterisk/select.h
-#usr/include/asterisk/sem.h
-#usr/include/asterisk/sha1.h
-#usr/include/asterisk/silk.h
-#usr/include/asterisk/sip_api.h
-#usr/include/asterisk/slin.h
-#usr/include/asterisk/slinfactory.h
-#usr/include/asterisk/smdi.h
-#usr/include/asterisk/smoother.h
-#usr/include/asterisk/sorcery.h
-#usr/include/asterisk/sounds_index.h
-#usr/include/asterisk/speech.h
-#usr/include/asterisk/spinlock.h
-#usr/include/asterisk/srv.h
-#usr/include/asterisk/stasis.h
-#usr/include/asterisk/stasis_app.h
-#usr/include/asterisk/stasis_app_device_state.h
-#usr/include/asterisk/stasis_app_impl.h
-#usr/include/asterisk/stasis_app_mailbox.h
-#usr/include/asterisk/stasis_app_playback.h
-#usr/include/asterisk/stasis_app_recording.h
-#usr/include/asterisk/stasis_app_snoop.h
-#usr/include/asterisk/stasis_bridges.h
-#usr/include/asterisk/stasis_cache_pattern.h
-#usr/include/asterisk/stasis_channels.h
-#usr/include/asterisk/stasis_endpoints.h
-#usr/include/asterisk/stasis_internal.h
-#usr/include/asterisk/stasis_message_router.h
-#usr/include/asterisk/stasis_system.h
-#usr/include/asterisk/stasis_test.h
-#usr/include/asterisk/statsd.h
-#usr/include/asterisk/stringfields.h
-#usr/include/asterisk/strings.h
-#usr/include/asterisk/stun.h
-#usr/include/asterisk/syslog.h
-#usr/include/asterisk/taskprocessor.h
-#usr/include/asterisk/tcptls.h
-#usr/include/asterisk/tdd.h
-#usr/include/asterisk/term.h
-#usr/include/asterisk/test.h
-#usr/include/asterisk/threadpool.h
-#usr/include/asterisk/threadstorage.h
-#usr/include/asterisk/time.h
-#usr/include/asterisk/timing.h
-#usr/include/asterisk/transcap.h
-#usr/include/asterisk/translate.h
-#usr/include/asterisk/udptl.h
-#usr/include/asterisk/ulaw.h
-#usr/include/asterisk/unaligned.h
-#usr/include/asterisk/uri.h
-#usr/include/asterisk/utils.h
-#usr/include/asterisk/uuid.h
-#usr/include/asterisk/vector.h
-#usr/include/asterisk/version.h
-#usr/include/asterisk/xml.h
-#usr/include/asterisk/xmldoc.h
-#usr/include/asterisk/xmpp.h
-#usr/lib/asterisk
-#usr/lib/asterisk/modules
-usr/lib/asterisk/modules/app_adsiprog.so
-usr/lib/asterisk/modules/app_agent_pool.so
-usr/lib/asterisk/modules/app_alarmreceiver.so
-usr/lib/asterisk/modules/app_amd.so
-usr/lib/asterisk/modules/app_authenticate.so
-usr/lib/asterisk/modules/app_bridgewait.so
-usr/lib/asterisk/modules/app_cdr.so
-usr/lib/asterisk/modules/app_celgenuserevent.so
-usr/lib/asterisk/modules/app_chanisavail.so
-usr/lib/asterisk/modules/app_channelredirect.so
-usr/lib/asterisk/modules/app_chanspy.so
-usr/lib/asterisk/modules/app_confbridge.so
-usr/lib/asterisk/modules/app_controlplayback.so
-usr/lib/asterisk/modules/app_db.so
-usr/lib/asterisk/modules/app_dial.so
-usr/lib/asterisk/modules/app_dictate.so
-usr/lib/asterisk/modules/app_directed_pickup.so
-usr/lib/asterisk/modules/app_directory.so
-usr/lib/asterisk/modules/app_disa.so
-usr/lib/asterisk/modules/app_dumpchan.so
-usr/lib/asterisk/modules/app_echo.so
-usr/lib/asterisk/modules/app_exec.so
-usr/lib/asterisk/modules/app_externalivr.so
-usr/lib/asterisk/modules/app_festival.so
-usr/lib/asterisk/modules/app_followme.so
-usr/lib/asterisk/modules/app_forkcdr.so
-usr/lib/asterisk/modules/app_getcpeid.so
-usr/lib/asterisk/modules/app_ices.so
-usr/lib/asterisk/modules/app_image.so
-usr/lib/asterisk/modules/app_macro.so
-usr/lib/asterisk/modules/app_milliwatt.so
-usr/lib/asterisk/modules/app_minivm.so
-usr/lib/asterisk/modules/app_mixmonitor.so
-usr/lib/asterisk/modules/app_morsecode.so
-usr/lib/asterisk/modules/app_mp3.so
-usr/lib/asterisk/modules/app_nbscat.so
-usr/lib/asterisk/modules/app_originate.so
-usr/lib/asterisk/modules/app_page.so
-usr/lib/asterisk/modules/app_playback.so
-usr/lib/asterisk/modules/app_playtones.so
-usr/lib/asterisk/modules/app_privacy.so
-usr/lib/asterisk/modules/app_queue.so
-usr/lib/asterisk/modules/app_read.so
-usr/lib/asterisk/modules/app_readexten.so
-usr/lib/asterisk/modules/app_record.so
-usr/lib/asterisk/modules/app_sayunixtime.so
-usr/lib/asterisk/modules/app_senddtmf.so
-usr/lib/asterisk/modules/app_sendtext.so
-usr/lib/asterisk/modules/app_sms.so
-usr/lib/asterisk/modules/app_softhangup.so
-usr/lib/asterisk/modules/app_speech_utils.so
-usr/lib/asterisk/modules/app_stack.so
-usr/lib/asterisk/modules/app_stasis.so
-usr/lib/asterisk/modules/app_system.so
-usr/lib/asterisk/modules/app_talkdetect.so
-usr/lib/asterisk/modules/app_test.so
-usr/lib/asterisk/modules/app_transfer.so
-usr/lib/asterisk/modules/app_url.so
-usr/lib/asterisk/modules/app_userevent.so
-usr/lib/asterisk/modules/app_verbose.so
-usr/lib/asterisk/modules/app_voicemail.so
-usr/lib/asterisk/modules/app_waitforring.so
-usr/lib/asterisk/modules/app_waitforsilence.so
-usr/lib/asterisk/modules/app_waituntil.so
-usr/lib/asterisk/modules/app_while.so
-usr/lib/asterisk/modules/app_zapateller.so
-usr/lib/asterisk/modules/bridge_builtin_features.so
-usr/lib/asterisk/modules/bridge_builtin_interval_features.so
-usr/lib/asterisk/modules/bridge_holding.so
-usr/lib/asterisk/modules/bridge_native_rtp.so
-usr/lib/asterisk/modules/bridge_simple.so
-usr/lib/asterisk/modules/bridge_softmix.so
-usr/lib/asterisk/modules/cdr_csv.so
-usr/lib/asterisk/modules/cdr_custom.so
-usr/lib/asterisk/modules/cdr_manager.so
-usr/lib/asterisk/modules/cdr_sqlite3_custom.so
-usr/lib/asterisk/modules/cdr_syslog.so
-usr/lib/asterisk/modules/cel_custom.so
-usr/lib/asterisk/modules/cel_manager.so
-usr/lib/asterisk/modules/cel_sqlite3_custom.so
-usr/lib/asterisk/modules/chan_alsa.so
-usr/lib/asterisk/modules/chan_bridge_media.so
-usr/lib/asterisk/modules/chan_iax2.so
-usr/lib/asterisk/modules/chan_mgcp.so
-usr/lib/asterisk/modules/chan_phone.so
-usr/lib/asterisk/modules/chan_rtp.so
-usr/lib/asterisk/modules/chan_sip.so
-usr/lib/asterisk/modules/chan_skinny.so
-usr/lib/asterisk/modules/chan_unistim.so
-usr/lib/asterisk/modules/codec_a_mu.so
-usr/lib/asterisk/modules/codec_adpcm.so
-usr/lib/asterisk/modules/codec_alaw.so
-usr/lib/asterisk/modules/codec_g722.so
-usr/lib/asterisk/modules/codec_g726.so
-usr/lib/asterisk/modules/codec_gsm.so
-usr/lib/asterisk/modules/codec_ilbc.so
-usr/lib/asterisk/modules/codec_lpc10.so
-usr/lib/asterisk/modules/codec_resample.so
-usr/lib/asterisk/modules/codec_ulaw.so
-usr/lib/asterisk/modules/format_g719.so
-usr/lib/asterisk/modules/format_g723.so
-usr/lib/asterisk/modules/format_g726.so
-usr/lib/asterisk/modules/format_g729.so
-usr/lib/asterisk/modules/format_gsm.so
-usr/lib/asterisk/modules/format_h263.so
-usr/lib/asterisk/modules/format_h264.so
-usr/lib/asterisk/modules/format_ilbc.so
-usr/lib/asterisk/modules/format_jpeg.so
-usr/lib/asterisk/modules/format_pcm.so
-usr/lib/asterisk/modules/format_siren14.so
-usr/lib/asterisk/modules/format_siren7.so
-usr/lib/asterisk/modules/format_sln.so
-usr/lib/asterisk/modules/format_vox.so
-usr/lib/asterisk/modules/format_wav.so
-usr/lib/asterisk/modules/format_wav_gsm.so
-usr/lib/asterisk/modules/func_aes.so
-usr/lib/asterisk/modules/func_audiohookinherit.so
-usr/lib/asterisk/modules/func_base64.so
-usr/lib/asterisk/modules/func_blacklist.so
-usr/lib/asterisk/modules/func_callcompletion.so
-usr/lib/asterisk/modules/func_callerid.so
-usr/lib/asterisk/modules/func_cdr.so
-usr/lib/asterisk/modules/func_channel.so
-usr/lib/asterisk/modules/func_config.so
-usr/lib/asterisk/modules/func_curl.so
-usr/lib/asterisk/modules/func_cut.so
-usr/lib/asterisk/modules/func_db.so
-usr/lib/asterisk/modules/func_devstate.so
-usr/lib/asterisk/modules/func_dialgroup.so
-usr/lib/asterisk/modules/func_dialplan.so
-usr/lib/asterisk/modules/func_enum.so
-usr/lib/asterisk/modules/func_env.so
-usr/lib/asterisk/modules/func_extstate.so
-usr/lib/asterisk/modules/func_frame_trace.so
-usr/lib/asterisk/modules/func_global.so
-usr/lib/asterisk/modules/func_groupcount.so
-usr/lib/asterisk/modules/func_hangupcause.so
-usr/lib/asterisk/modules/func_holdintercept.so
-usr/lib/asterisk/modules/func_iconv.so
-usr/lib/asterisk/modules/func_jitterbuffer.so
-usr/lib/asterisk/modules/func_lock.so
-usr/lib/asterisk/modules/func_logic.so
-usr/lib/asterisk/modules/func_math.so
-usr/lib/asterisk/modules/func_md5.so
-usr/lib/asterisk/modules/func_module.so
-usr/lib/asterisk/modules/func_periodic_hook.so
-usr/lib/asterisk/modules/func_pitchshift.so
-usr/lib/asterisk/modules/func_presencestate.so
-usr/lib/asterisk/modules/func_rand.so
-usr/lib/asterisk/modules/func_realtime.so
-usr/lib/asterisk/modules/func_sha1.so
-usr/lib/asterisk/modules/func_shell.so
-usr/lib/asterisk/modules/func_sorcery.so
-usr/lib/asterisk/modules/func_sprintf.so
-usr/lib/asterisk/modules/func_srv.so
-usr/lib/asterisk/modules/func_strings.so
-usr/lib/asterisk/modules/func_sysinfo.so
-usr/lib/asterisk/modules/func_talkdetect.so
-usr/lib/asterisk/modules/func_timeout.so
-usr/lib/asterisk/modules/func_uri.so
-usr/lib/asterisk/modules/func_version.so
-usr/lib/asterisk/modules/func_vmcount.so
-usr/lib/asterisk/modules/func_volume.so
-usr/lib/asterisk/modules/pbx_ael.so
-usr/lib/asterisk/modules/pbx_config.so
-usr/lib/asterisk/modules/pbx_dundi.so
-usr/lib/asterisk/modules/pbx_loopback.so
-usr/lib/asterisk/modules/pbx_realtime.so
-usr/lib/asterisk/modules/pbx_spool.so
-usr/lib/asterisk/modules/res_adsi.so
-usr/lib/asterisk/modules/res_ael_share.so
-usr/lib/asterisk/modules/res_agi.so
-usr/lib/asterisk/modules/res_ari.so
-usr/lib/asterisk/modules/res_ari_applications.so
-usr/lib/asterisk/modules/res_ari_asterisk.so
-usr/lib/asterisk/modules/res_ari_bridges.so
-usr/lib/asterisk/modules/res_ari_channels.so
-usr/lib/asterisk/modules/res_ari_device_states.so
-usr/lib/asterisk/modules/res_ari_endpoints.so
-usr/lib/asterisk/modules/res_ari_events.so
-usr/lib/asterisk/modules/res_ari_model.so
-usr/lib/asterisk/modules/res_ari_playbacks.so
-usr/lib/asterisk/modules/res_ari_recordings.so
-usr/lib/asterisk/modules/res_ari_sounds.so
-usr/lib/asterisk/modules/res_calendar.so
-usr/lib/asterisk/modules/res_clialiases.so
-usr/lib/asterisk/modules/res_clioriginate.so
-usr/lib/asterisk/modules/res_config_curl.so
-usr/lib/asterisk/modules/res_config_ldap.so
-usr/lib/asterisk/modules/res_config_sqlite3.so
-usr/lib/asterisk/modules/res_convert.so
-usr/lib/asterisk/modules/res_crypto.so
-usr/lib/asterisk/modules/res_curl.so
-usr/lib/asterisk/modules/res_fax.so
-usr/lib/asterisk/modules/res_fax_spandsp.so
-usr/lib/asterisk/modules/res_format_attr_celt.so
-usr/lib/asterisk/modules/res_format_attr_g729.so
-usr/lib/asterisk/modules/res_format_attr_h263.so
-usr/lib/asterisk/modules/res_format_attr_h264.so
-usr/lib/asterisk/modules/res_format_attr_opus.so
-usr/lib/asterisk/modules/res_format_attr_silk.so
-usr/lib/asterisk/modules/res_format_attr_siren14.so
-usr/lib/asterisk/modules/res_format_attr_siren7.so
-usr/lib/asterisk/modules/res_format_attr_vp8.so
-usr/lib/asterisk/modules/res_hep.so
-usr/lib/asterisk/modules/res_hep_rtcp.so
-usr/lib/asterisk/modules/res_http_websocket.so
-usr/lib/asterisk/modules/res_limit.so
-usr/lib/asterisk/modules/res_manager_devicestate.so
-usr/lib/asterisk/modules/res_manager_presencestate.so
-usr/lib/asterisk/modules/res_monitor.so
-usr/lib/asterisk/modules/res_musiconhold.so
-usr/lib/asterisk/modules/res_mutestream.so
-usr/lib/asterisk/modules/res_parking.so
-usr/lib/asterisk/modules/res_phoneprov.so
-usr/lib/asterisk/modules/res_realtime.so
-usr/lib/asterisk/modules/res_rtp_asterisk.so
-usr/lib/asterisk/modules/res_rtp_multicast.so
-usr/lib/asterisk/modules/res_security_log.so
-usr/lib/asterisk/modules/res_smdi.so
-usr/lib/asterisk/modules/res_sorcery_astdb.so
-usr/lib/asterisk/modules/res_sorcery_config.so
-usr/lib/asterisk/modules/res_sorcery_memory.so
-usr/lib/asterisk/modules/res_sorcery_memory_cache.so
-usr/lib/asterisk/modules/res_sorcery_realtime.so
-usr/lib/asterisk/modules/res_speech.so
-usr/lib/asterisk/modules/res_srtp.so
-usr/lib/asterisk/modules/res_stasis.so
-usr/lib/asterisk/modules/res_stasis_answer.so
-usr/lib/asterisk/modules/res_stasis_device_state.so
-usr/lib/asterisk/modules/res_stasis_playback.so
-usr/lib/asterisk/modules/res_stasis_recording.so
-usr/lib/asterisk/modules/res_stasis_snoop.so
-usr/lib/asterisk/modules/res_statsd.so
-usr/lib/asterisk/modules/res_stun_monitor.so
-usr/lib/asterisk/modules/res_timing_pthread.so
-usr/lib/asterisk/modules/res_timing_timerfd.so
-usr/lib/libasteriskssl.so
-usr/lib/libasteriskssl.so.1
-#usr/lib/pkgconfig/asterisk.pc
-usr/sbin/astcanary
-usr/sbin/astdb2bdb
-usr/sbin/astdb2sqlite3
-usr/sbin/asterisk
-usr/sbin/astgenkey
-usr/sbin/astversion
-usr/sbin/autosupport
-usr/sbin/rasterisk
-usr/sbin/safe_asterisk
-#usr/share/man/man8/astdb2bdb.8
-#usr/share/man/man8/astdb2sqlite3.8
-#usr/share/man/man8/asterisk.8
-#usr/share/man/man8/astgenkey.8
-#usr/share/man/man8/autosupport.8
-#usr/share/man/man8/safe_asterisk.8
-#var/ipfire/asterisk
-var/ipfire/asterisk/acl.conf
-var/ipfire/asterisk/adsi.conf
-var/ipfire/asterisk/agents.conf
-var/ipfire/asterisk/alarmreceiver.conf
-var/ipfire/asterisk/alsa.conf
-var/ipfire/asterisk/amd.conf
-var/ipfire/asterisk/app_mysql.conf
-var/ipfire/asterisk/app_skel.conf
-var/ipfire/asterisk/ari.conf
-var/ipfire/asterisk/ast_debug_tools.conf
-var/ipfire/asterisk/asterisk.adsi
-var/ipfire/asterisk/asterisk.conf
-var/ipfire/asterisk/asterisk.logrotate
-var/ipfire/asterisk/calendar.conf
-var/ipfire/asterisk/ccss.conf
-var/ipfire/asterisk/cdr.conf
-var/ipfire/asterisk/cdr_adaptive_odbc.conf
-var/ipfire/asterisk/cdr_custom.conf
-var/ipfire/asterisk/cdr_manager.conf
-var/ipfire/asterisk/cdr_mysql.conf
-var/ipfire/asterisk/cdr_odbc.conf
-var/ipfire/asterisk/cdr_pgsql.conf
-var/ipfire/asterisk/cdr_sqlite3_custom.conf
-var/ipfire/asterisk/cdr_syslog.conf
-var/ipfire/asterisk/cdr_tds.conf
-var/ipfire/asterisk/cel.conf
-var/ipfire/asterisk/cel_custom.conf
-var/ipfire/asterisk/cel_odbc.conf
-var/ipfire/asterisk/cel_pgsql.conf
-var/ipfire/asterisk/cel_sqlite3_custom.conf
-var/ipfire/asterisk/cel_tds.conf
-var/ipfire/asterisk/chan_dahdi.conf
-var/ipfire/asterisk/chan_mobile.conf
-var/ipfire/asterisk/cli.conf
-var/ipfire/asterisk/cli_aliases.conf
-var/ipfire/asterisk/cli_permissions.conf
-var/ipfire/asterisk/codecs.conf
-var/ipfire/asterisk/confbridge.conf
-var/ipfire/asterisk/config_test.conf
-var/ipfire/asterisk/console.conf
-var/ipfire/asterisk/dbsep.conf
-var/ipfire/asterisk/dnsmgr.conf
-var/ipfire/asterisk/dsp.conf
-var/ipfire/asterisk/dundi.conf
-var/ipfire/asterisk/enum.conf
-var/ipfire/asterisk/extconfig.conf
-var/ipfire/asterisk/extensions.ael
-var/ipfire/asterisk/extensions.conf
-var/ipfire/asterisk/extensions.lua
-var/ipfire/asterisk/extensions_minivm.conf
-var/ipfire/asterisk/features.conf
-var/ipfire/asterisk/festival.conf
-var/ipfire/asterisk/followme.conf
-var/ipfire/asterisk/func_odbc.conf
-var/ipfire/asterisk/hep.conf
-var/ipfire/asterisk/http.conf
-var/ipfire/asterisk/iax.conf
-var/ipfire/asterisk/iaxprov.conf
-var/ipfire/asterisk/indications.conf
-var/ipfire/asterisk/logger.conf
-var/ipfire/asterisk/manager.conf
-var/ipfire/asterisk/meetme.conf
-var/ipfire/asterisk/mgcp.conf
-var/ipfire/asterisk/minivm.conf
-var/ipfire/asterisk/misdn.conf
-var/ipfire/asterisk/modules.conf
-var/ipfire/asterisk/motif.conf
-var/ipfire/asterisk/musiconhold.conf
-var/ipfire/asterisk/muted.conf
-var/ipfire/asterisk/ooh323.conf
-var/ipfire/asterisk/osp.conf
-var/ipfire/asterisk/oss.conf
-var/ipfire/asterisk/phone.conf
-var/ipfire/asterisk/phoneprov.conf
-var/ipfire/asterisk/pjproject.conf
-var/ipfire/asterisk/pjsip.conf
-var/ipfire/asterisk/pjsip_notify.conf
-var/ipfire/asterisk/pjsip_wizard.conf
-var/ipfire/asterisk/queuerules.conf
-var/ipfire/asterisk/queues.conf
-var/ipfire/asterisk/res_config_mysql.conf
-var/ipfire/asterisk/res_config_sqlite.conf
-var/ipfire/asterisk/res_config_sqlite3.conf
-var/ipfire/asterisk/res_corosync.conf
-var/ipfire/asterisk/res_curl.conf
-var/ipfire/asterisk/res_fax.conf
-var/ipfire/asterisk/res_ldap.conf
-var/ipfire/asterisk/res_odbc.conf
-var/ipfire/asterisk/res_parking.conf
-var/ipfire/asterisk/res_pgsql.conf
-var/ipfire/asterisk/res_pktccops.conf
-var/ipfire/asterisk/res_snmp.conf
-var/ipfire/asterisk/res_stun_monitor.conf
-var/ipfire/asterisk/rtp.conf
-var/ipfire/asterisk/say.conf
-var/ipfire/asterisk/sip.conf
-var/ipfire/asterisk/sip_notify.conf
-var/ipfire/asterisk/skinny.conf
-var/ipfire/asterisk/sla.conf
-var/ipfire/asterisk/smdi.conf
-var/ipfire/asterisk/sorcery.conf
-var/ipfire/asterisk/ss7.timers
-var/ipfire/asterisk/stasis.conf
-var/ipfire/asterisk/statsd.conf
-var/ipfire/asterisk/telcordia-1.adsi
-var/ipfire/asterisk/test_sorcery.conf
-var/ipfire/asterisk/udptl.conf
-var/ipfire/asterisk/unistim.conf
-var/ipfire/asterisk/users.conf
-var/ipfire/asterisk/voicemail.conf
-var/ipfire/asterisk/vpb.conf
-var/ipfire/asterisk/xmpp.conf
-var/ipfire/backup/addons/includes/asterisk
-#var/lib/asterisk
-var/lib/asterisk/agi-bin
-#var/lib/asterisk/documentation
-var/lib/asterisk/documentation/appdocsxml.dtd
-var/lib/asterisk/documentation/appdocsxml.xslt
-var/lib/asterisk/documentation/core-en_US.xml
-var/lib/asterisk/documentation/thirdparty
-#var/lib/asterisk/firmware
-var/lib/asterisk/firmware/iax
-#var/lib/asterisk/images
-#var/lib/asterisk/images/asterisk-intro.jpg
-#var/lib/asterisk/images/kpad2.jpg
-var/lib/asterisk/keys
-#var/lib/asterisk/moh
-var/lib/asterisk/moh/.asterisk-moh-opsound-gsm-2.03
-var/lib/asterisk/moh/.asterisk-moh-opsound-wav-2.03
-var/lib/asterisk/moh/CHANGES-asterisk-moh-opsound-gsm
-var/lib/asterisk/moh/CHANGES-asterisk-moh-opsound-wav
-var/lib/asterisk/moh/CREDITS-asterisk-moh-opsound-gsm
-var/lib/asterisk/moh/CREDITS-asterisk-moh-opsound-wav
-var/lib/asterisk/moh/LICENSE-asterisk-moh-opsound-gsm
-var/lib/asterisk/moh/LICENSE-asterisk-moh-opsound-wav
-var/lib/asterisk/moh/macroform-cold_day.gsm
-var/lib/asterisk/moh/macroform-cold_day.wav
-var/lib/asterisk/moh/macroform-robot_dity.gsm
-var/lib/asterisk/moh/macroform-robot_dity.wav
-var/lib/asterisk/moh/macroform-the_simplicity.gsm
-var/lib/asterisk/moh/macroform-the_simplicity.wav
-var/lib/asterisk/moh/manolo_camp-morning_coffee.gsm
-var/lib/asterisk/moh/manolo_camp-morning_coffee.wav
-var/lib/asterisk/moh/reno_project-system.gsm
-var/lib/asterisk/moh/reno_project-system.wav
-var/lib/asterisk/phoneprov
-var/lib/asterisk/phoneprov/000000000000-directory.xml
-var/lib/asterisk/phoneprov/000000000000-phone.cfg
-var/lib/asterisk/phoneprov/000000000000.cfg
-var/lib/asterisk/phoneprov/polycom.xml
-var/lib/asterisk/phoneprov/polycom_line.xml
-var/lib/asterisk/phoneprov/snom-mac.xml
-var/lib/asterisk/rest-api
-#var/lib/asterisk/rest-api/applications.json
-#var/lib/asterisk/rest-api/asterisk.json
-#var/lib/asterisk/rest-api/bridges.json
-#var/lib/asterisk/rest-api/channels.json
-#var/lib/asterisk/rest-api/deviceStates.json
-#var/lib/asterisk/rest-api/endpoints.json
-#var/lib/asterisk/rest-api/events.json
-#var/lib/asterisk/rest-api/mailboxes.json
-#var/lib/asterisk/rest-api/playbacks.json
-#var/lib/asterisk/rest-api/recordings.json
-#var/lib/asterisk/rest-api/resources.json
-#var/lib/asterisk/rest-api/sounds.json
-var/lib/asterisk/scripts
-#var/lib/asterisk/scripts/ast_coredumper
-#var/lib/asterisk/scripts/ast_logescalator
-#var/lib/asterisk/scripts/ast_loggrabber
-#var/lib/asterisk/scripts/refcounter.py
-#var/lib/asterisk/sounds
-#var/lib/asterisk/sounds/de
-var/lib/asterisk/sounds/de/.DS_Store
-var/lib/asterisk/sounds/de/agent-alreadyon.gsm
-var/lib/asterisk/sounds/de/agent-incorrect.gsm
-var/lib/asterisk/sounds/de/agent-loggedoff.gsm
-var/lib/asterisk/sounds/de/agent-loginok.gsm
-var/lib/asterisk/sounds/de/agent-newlocation.gsm
-var/lib/asterisk/sounds/de/agent-pass.gsm
-var/lib/asterisk/sounds/de/agent-user.gsm
-var/lib/asterisk/sounds/de/auth-incorrect.gsm
-var/lib/asterisk/sounds/de/auth-thankyou.gsm
-var/lib/asterisk/sounds/de/beep.gsm
-var/lib/asterisk/sounds/de/beeperr.gsm
-var/lib/asterisk/sounds/de/conf-adminmenu.gsm
-var/lib/asterisk/sounds/de/conf-enteringno.gsm
-var/lib/asterisk/sounds/de/conf-errormenu.gsm
-var/lib/asterisk/sounds/de/conf-getchannel.gsm
-var/lib/asterisk/sounds/de/conf-getconfno.gsm
-var/lib/asterisk/sounds/de/conf-getpin.gsm
-var/lib/asterisk/sounds/de/conf-hasjoin.gsm
-var/lib/asterisk/sounds/de/conf-hasleft.gsm
-var/lib/asterisk/sounds/de/conf-invalid.gsm
-var/lib/asterisk/sounds/de/conf-invalidpin.gsm
-var/lib/asterisk/sounds/de/conf-kicked.gsm
-var/lib/asterisk/sounds/de/conf-leaderhasleft.gsm
-var/lib/asterisk/sounds/de/conf-locked.gsm
-var/lib/asterisk/sounds/de/conf-lockednow.gsm
-var/lib/asterisk/sounds/de/conf-muted.gsm
-var/lib/asterisk/sounds/de/conf-noempty.gsm
-var/lib/asterisk/sounds/de/conf-onlyone.gsm
-var/lib/asterisk/sounds/de/conf-onlyperson.gsm
-var/lib/asterisk/sounds/de/conf-otherinparty.gsm
-var/lib/asterisk/sounds/de/conf-placeintoconf.gsm
-var/lib/asterisk/sounds/de/conf-thereare.gsm
-var/lib/asterisk/sounds/de/conf-unlockednow.gsm
-var/lib/asterisk/sounds/de/conf-unmuted.gsm
-var/lib/asterisk/sounds/de/conf-usermenu.gsm
-var/lib/asterisk/sounds/de/conf-userswilljoin.gsm
-var/lib/asterisk/sounds/de/conf-userwilljoin.gsm
-var/lib/asterisk/sounds/de/conf-waitforleader.gsm
-var/lib/asterisk/sounds/de/demo-abouttotry.gsm
-var/lib/asterisk/sounds/de/demo-congrats.gsm
-var/lib/asterisk/sounds/de/demo-echodone.gsm
-var/lib/asterisk/sounds/de/demo-echotest.gsm
-var/lib/asterisk/sounds/de/demo-enterkeywords.gsm
-var/lib/asterisk/sounds/de/demo-instruct.gsm
-var/lib/asterisk/sounds/de/demo-moreinfo.gsm
-var/lib/asterisk/sounds/de/demo-nogo.gsm
-var/lib/asterisk/sounds/de/demo-nomatch.gsm
-var/lib/asterisk/sounds/de/demo-thanks.gsm
-var/lib/asterisk/sounds/de/dir-instr.gsm
-var/lib/asterisk/sounds/de/dir-intro-fn.gsm
-var/lib/asterisk/sounds/de/dir-intro.gsm
-var/lib/asterisk/sounds/de/dir-nomatch.gsm
-var/lib/asterisk/sounds/de/dir-nomore.gsm
-var/lib/asterisk/sounds/de/dollars.gsm
-var/lib/asterisk/sounds/de/hello-world.gsm
-var/lib/asterisk/sounds/de/hours.gsm
-var/lib/asterisk/sounds/de/invalid.gsm
-var/lib/asterisk/sounds/de/minutes.gsm
-var/lib/asterisk/sounds/de/pbx-invalid.gsm
-var/lib/asterisk/sounds/de/pbx-invalidpark.gsm
-var/lib/asterisk/sounds/de/pbx-transfer.gsm
-var/lib/asterisk/sounds/de/priv-callee-options.gsm
-var/lib/asterisk/sounds/de/priv-callpending.gsm
-var/lib/asterisk/sounds/de/priv-introsaved.gsm
-var/lib/asterisk/sounds/de/priv-recordintro.gsm
-var/lib/asterisk/sounds/de/privacy-incorrect.gsm
-var/lib/asterisk/sounds/de/privacy-prompt.gsm
-var/lib/asterisk/sounds/de/privacy-thankyou.gsm
-var/lib/asterisk/sounds/de/privacy-unident.gsm
-var/lib/asterisk/sounds/de/queue-callswaiting.gsm
-var/lib/asterisk/sounds/de/queue-holdtime.gsm
-var/lib/asterisk/sounds/de/queue-less-than.gsm
-var/lib/asterisk/sounds/de/queue-minutes.gsm
-var/lib/asterisk/sounds/de/queue-periodic-announce.gsm
-var/lib/asterisk/sounds/de/queue-reporthold.gsm
-var/lib/asterisk/sounds/de/queue-seconds.gsm
-var/lib/asterisk/sounds/de/queue-thankyou.gsm
-var/lib/asterisk/sounds/de/queue-thereare.gsm
-var/lib/asterisk/sounds/de/queue-youarenext.gsm
-var/lib/asterisk/sounds/de/screen-callee-options.gsm
-var/lib/asterisk/sounds/de/seconds.gsm
-var/lib/asterisk/sounds/de/spy-agent.gsm
-var/lib/asterisk/sounds/de/spy-h323.gsm
-var/lib/asterisk/sounds/de/spy-iax.gsm
-var/lib/asterisk/sounds/de/spy-iax2.gsm
-var/lib/asterisk/sounds/de/spy-mgcp.gsm
-var/lib/asterisk/sounds/de/spy-sip.gsm
-var/lib/asterisk/sounds/de/spy-skinny.gsm
-var/lib/asterisk/sounds/de/spy-zap.gsm
-var/lib/asterisk/sounds/de/ss-noservice.gsm
-var/lib/asterisk/sounds/de/transfer.gsm
-var/lib/asterisk/sounds/de/tt-allbusy.gsm
-var/lib/asterisk/sounds/de/tt-monkeys.gsm
-var/lib/asterisk/sounds/de/tt-monkeysintro.gsm
-var/lib/asterisk/sounds/de/tt-somethingwrong.gsm
-var/lib/asterisk/sounds/de/tt-weasels.gsm
-var/lib/asterisk/sounds/de/vm-Cust1.gsm
-var/lib/asterisk/sounds/de/vm-Cust2.gsm
-var/lib/asterisk/sounds/de/vm-Cust3.gsm
-var/lib/asterisk/sounds/de/vm-Cust4.gsm
-var/lib/asterisk/sounds/de/vm-Cust5.gsm
-var/lib/asterisk/sounds/de/vm-Family.gsm
-var/lib/asterisk/sounds/de/vm-Friends.gsm
-var/lib/asterisk/sounds/de/vm-INBOX.gsm
-var/lib/asterisk/sounds/de/vm-Old.gsm
-var/lib/asterisk/sounds/de/vm-Work.gsm
-var/lib/asterisk/sounds/de/vm-advopts.gsm
-var/lib/asterisk/sounds/de/vm-and.gsm
-var/lib/asterisk/sounds/de/vm-calldiffnum.gsm
-var/lib/asterisk/sounds/de/vm-changeto.gsm
-var/lib/asterisk/sounds/de/vm-delete.gsm
-var/lib/asterisk/sounds/de/vm-deleted.gsm
-var/lib/asterisk/sounds/de/vm-dialout.gsm
-var/lib/asterisk/sounds/de/vm-enter-num-to-call.gsm
-var/lib/asterisk/sounds/de/vm-extension.gsm
-var/lib/asterisk/sounds/de/vm-first.gsm
-var/lib/asterisk/sounds/de/vm-for.gsm
-var/lib/asterisk/sounds/de/vm-forward.gsm
-var/lib/asterisk/sounds/de/vm-forwardoptions.gsm
-var/lib/asterisk/sounds/de/vm-from-extension.gsm
-var/lib/asterisk/sounds/de/vm-from-phonenumber.gsm
-var/lib/asterisk/sounds/de/vm-from.gsm
-var/lib/asterisk/sounds/de/vm-goodbye.gsm
-var/lib/asterisk/sounds/de/vm-helpexit.gsm
-var/lib/asterisk/sounds/de/vm-incorrect-mailbox.gsm
-var/lib/asterisk/sounds/de/vm-incorrect.gsm
-var/lib/asterisk/sounds/de/vm-instructions.gsm
-var/lib/asterisk/sounds/de/vm-intro.gsm
-var/lib/asterisk/sounds/de/vm-isonphone.gsm
-var/lib/asterisk/sounds/de/vm-isunavail.gsm
-var/lib/asterisk/sounds/de/vm-last.gsm
-var/lib/asterisk/sounds/de/vm-leavemsg.gsm
-var/lib/asterisk/sounds/de/vm-login.gsm
-var/lib/asterisk/sounds/de/vm-mailboxfull.gsm
-var/lib/asterisk/sounds/de/vm-message.gsm
-var/lib/asterisk/sounds/de/vm-messages.gsm
-var/lib/asterisk/sounds/de/vm-minutes.gsm
-var/lib/asterisk/sounds/de/vm-mismatch.gsm
-var/lib/asterisk/sounds/de/vm-msginstruct.gsm
-var/lib/asterisk/sounds/de/vm-msgsaved.gsm
-var/lib/asterisk/sounds/de/vm-newpassword.gsm
-var/lib/asterisk/sounds/de/vm-newuser.gsm
-var/lib/asterisk/sounds/de/vm-next.gsm
-var/lib/asterisk/sounds/de/vm-no.gsm
-var/lib/asterisk/sounds/de/vm-nobodyavail.gsm
-var/lib/asterisk/sounds/de/vm-nobox.gsm
-var/lib/asterisk/sounds/de/vm-nomore.gsm
-var/lib/asterisk/sounds/de/vm-nonumber.gsm
-var/lib/asterisk/sounds/de/vm-num-i-have.gsm
-var/lib/asterisk/sounds/de/vm-onefor.gsm
-var/lib/asterisk/sounds/de/vm-options.gsm
-var/lib/asterisk/sounds/de/vm-opts.gsm
-var/lib/asterisk/sounds/de/vm-passchanged.gsm
-var/lib/asterisk/sounds/de/vm-password.gsm
-var/lib/asterisk/sounds/de/vm-press.gsm
-var/lib/asterisk/sounds/de/vm-prev.gsm
-var/lib/asterisk/sounds/de/vm-reachoper.gsm
-var/lib/asterisk/sounds/de/vm-rec-busy.gsm
-var/lib/asterisk/sounds/de/vm-rec-name.gsm
-var/lib/asterisk/sounds/de/vm-rec-temp.gsm
-var/lib/asterisk/sounds/de/vm-rec-unv.gsm
-var/lib/asterisk/sounds/de/vm-received.gsm
-var/lib/asterisk/sounds/de/vm-reenterpassword.gsm
-var/lib/asterisk/sounds/de/vm-repeat.gsm
-var/lib/asterisk/sounds/de/vm-review.gsm
-var/lib/asterisk/sounds/de/vm-saved.gsm
-var/lib/asterisk/sounds/de/vm-savedto.gsm
-var/lib/asterisk/sounds/de/vm-savefolder.gsm
-var/lib/asterisk/sounds/de/vm-savemessage.gsm
-var/lib/asterisk/sounds/de/vm-saveoper.gsm
-var/lib/asterisk/sounds/de/vm-sorry.gsm
-var/lib/asterisk/sounds/de/vm-star-cancel.gsm
-var/lib/asterisk/sounds/de/vm-starmain.gsm
-var/lib/asterisk/sounds/de/vm-tempgreetactive.gsm
-var/lib/asterisk/sounds/de/vm-tempgreeting.gsm
-var/lib/asterisk/sounds/de/vm-tempgreeting2.gsm
-var/lib/asterisk/sounds/de/vm-tempremoved.gsm
-var/lib/asterisk/sounds/de/vm-then-pound.gsm
-var/lib/asterisk/sounds/de/vm-theperson.gsm
-var/lib/asterisk/sounds/de/vm-tocallback.gsm
-var/lib/asterisk/sounds/de/vm-tocallnum.gsm
-var/lib/asterisk/sounds/de/vm-tocancel.gsm
-var/lib/asterisk/sounds/de/vm-tocancelmsg.gsm
-var/lib/asterisk/sounds/de/vm-toenternumber.gsm
-var/lib/asterisk/sounds/de/vm-toforward.gsm
-var/lib/asterisk/sounds/de/vm-tohearenv.gsm
-var/lib/asterisk/sounds/de/vm-tomakecall.gsm
-var/lib/asterisk/sounds/de/vm-tooshort.gsm
-var/lib/asterisk/sounds/de/vm-toreply.gsm
-var/lib/asterisk/sounds/de/vm-torerecord.gsm
-var/lib/asterisk/sounds/de/vm-undelete.gsm
-var/lib/asterisk/sounds/de/vm-undeleted.gsm
-var/lib/asterisk/sounds/de/vm-unknown-caller.gsm
-var/lib/asterisk/sounds/de/vm-whichbox.gsm
-var/lib/asterisk/sounds/de/vm-youhave.gsm
-#var/lib/asterisk/sounds/dictate
-#var/lib/asterisk/sounds/dictate/de
-var/lib/asterisk/sounds/dictate/de/both_help.gsm
-var/lib/asterisk/sounds/dictate/de/enter_filename.gsm
-var/lib/asterisk/sounds/dictate/de/forhelp.gsm
-var/lib/asterisk/sounds/dictate/de/pause.gsm
-var/lib/asterisk/sounds/dictate/de/paused.gsm
-var/lib/asterisk/sounds/dictate/de/play_help.gsm
-var/lib/asterisk/sounds/dictate/de/playback.gsm
-var/lib/asterisk/sounds/dictate/de/playback_mode.gsm
-var/lib/asterisk/sounds/dictate/de/record.gsm
-var/lib/asterisk/sounds/dictate/de/record_help.gsm
-var/lib/asterisk/sounds/dictate/de/record_mode.gsm
-var/lib/asterisk/sounds/dictate/de/truncating_audio.gsm
-#var/lib/asterisk/sounds/digits
-#var/lib/asterisk/sounds/digits/de
-var/lib/asterisk/sounds/digits/de/0.gsm
-var/lib/asterisk/sounds/digits/de/1.gsm
-var/lib/asterisk/sounds/digits/de/10.gsm
-var/lib/asterisk/sounds/digits/de/11.gsm
-var/lib/asterisk/sounds/digits/de/12.gsm
-var/lib/asterisk/sounds/digits/de/13.gsm
-var/lib/asterisk/sounds/digits/de/14.gsm
-var/lib/asterisk/sounds/digits/de/15.gsm
-var/lib/asterisk/sounds/digits/de/16.gsm
-var/lib/asterisk/sounds/digits/de/17.gsm
-var/lib/asterisk/sounds/digits/de/18.gsm
-var/lib/asterisk/sounds/digits/de/19.gsm
-var/lib/asterisk/sounds/digits/de/1F.gsm
-var/lib/asterisk/sounds/digits/de/2.gsm
-var/lib/asterisk/sounds/digits/de/20.gsm
-var/lib/asterisk/sounds/digits/de/3.gsm
-var/lib/asterisk/sounds/digits/de/30.gsm
-var/lib/asterisk/sounds/digits/de/4.gsm
-var/lib/asterisk/sounds/digits/de/40.gsm
-var/lib/asterisk/sounds/digits/de/5.gsm
-var/lib/asterisk/sounds/digits/de/50.gsm
-var/lib/asterisk/sounds/digits/de/6.gsm
-var/lib/asterisk/sounds/digits/de/60.gsm
-var/lib/asterisk/sounds/digits/de/7.gsm
-var/lib/asterisk/sounds/digits/de/70.gsm
-var/lib/asterisk/sounds/digits/de/8.gsm
-var/lib/asterisk/sounds/digits/de/80.gsm
-var/lib/asterisk/sounds/digits/de/9.gsm
-var/lib/asterisk/sounds/digits/de/90.gsm
-var/lib/asterisk/sounds/digits/de/a-m.gsm
-var/lib/asterisk/sounds/digits/de/day-0.gsm
-var/lib/asterisk/sounds/digits/de/day-1.gsm
-var/lib/asterisk/sounds/digits/de/day-2.gsm
-var/lib/asterisk/sounds/digits/de/day-3.gsm
-var/lib/asterisk/sounds/digits/de/day-4.gsm
-var/lib/asterisk/sounds/digits/de/day-5.gsm
-var/lib/asterisk/sounds/digits/de/day-6.gsm
-var/lib/asterisk/sounds/digits/de/h-1.gsm
-var/lib/asterisk/sounds/digits/de/h-10.gsm
-var/lib/asterisk/sounds/digits/de/h-11.gsm
-var/lib/asterisk/sounds/digits/de/h-12.gsm
-var/lib/asterisk/sounds/digits/de/h-13.gsm
-var/lib/asterisk/sounds/digits/de/h-14.gsm
-var/lib/asterisk/sounds/digits/de/h-15.gsm
-var/lib/asterisk/sounds/digits/de/h-16.gsm
-var/lib/asterisk/sounds/digits/de/h-17.gsm
-var/lib/asterisk/sounds/digits/de/h-18.gsm
-var/lib/asterisk/sounds/digits/de/h-19.gsm
-var/lib/asterisk/sounds/digits/de/h-2.gsm
-var/lib/asterisk/sounds/digits/de/h-20.gsm
-var/lib/asterisk/sounds/digits/de/h-3.gsm
-var/lib/asterisk/sounds/digits/de/h-30.gsm
-var/lib/asterisk/sounds/digits/de/h-4.gsm
-var/lib/asterisk/sounds/digits/de/h-5.gsm
-var/lib/asterisk/sounds/digits/de/h-6.gsm
-var/lib/asterisk/sounds/digits/de/h-7.gsm
-var/lib/asterisk/sounds/digits/de/h-8.gsm
-var/lib/asterisk/sounds/digits/de/h-9.gsm
-var/lib/asterisk/sounds/digits/de/hundred.gsm
-var/lib/asterisk/sounds/digits/de/million.gsm
-var/lib/asterisk/sounds/digits/de/minus.gsm
-var/lib/asterisk/sounds/digits/de/mon-0.gsm
-var/lib/asterisk/sounds/digits/de/mon-1.gsm
-var/lib/asterisk/sounds/digits/de/mon-10.gsm
-var/lib/asterisk/sounds/digits/de/mon-11.gsm
-var/lib/asterisk/sounds/digits/de/mon-2.gsm
-var/lib/asterisk/sounds/digits/de/mon-3.gsm
-var/lib/asterisk/sounds/digits/de/mon-4.gsm
-var/lib/asterisk/sounds/digits/de/mon-5.gsm
-var/lib/asterisk/sounds/digits/de/mon-6.gsm
-var/lib/asterisk/sounds/digits/de/mon-7.gsm
-var/lib/asterisk/sounds/digits/de/mon-8.gsm
-var/lib/asterisk/sounds/digits/de/mon-9.gsm
-var/lib/asterisk/sounds/digits/de/oclock.gsm
-var/lib/asterisk/sounds/digits/de/oh.gsm
-var/lib/asterisk/sounds/digits/de/p-m.gsm
-var/lib/asterisk/sounds/digits/de/pound.gsm
-var/lib/asterisk/sounds/digits/de/star.gsm
-var/lib/asterisk/sounds/digits/de/thousand.gsm
-var/lib/asterisk/sounds/digits/de/today.gsm
-var/lib/asterisk/sounds/digits/de/tomorrow.gsm
-var/lib/asterisk/sounds/digits/de/xh-10x.gsm
-var/lib/asterisk/sounds/digits/de/xh-11x.gsm
-var/lib/asterisk/sounds/digits/de/xh-12x.gsm
-var/lib/asterisk/sounds/digits/de/xh-13x.gsm
-var/lib/asterisk/sounds/digits/de/xh-14x.gsm
-var/lib/asterisk/sounds/digits/de/xh-15x.gsm
-var/lib/asterisk/sounds/digits/de/xh-16x.gsm
-var/lib/asterisk/sounds/digits/de/xh-17x.gsm
-var/lib/asterisk/sounds/digits/de/xh-18x.gsm
-var/lib/asterisk/sounds/digits/de/xh-19x.gsm
-var/lib/asterisk/sounds/digits/de/xh-1x.gsm
-var/lib/asterisk/sounds/digits/de/xh-20x.gsm
-var/lib/asterisk/sounds/digits/de/xh-2x.gsm
-var/lib/asterisk/sounds/digits/de/xh-30x.gsm
-var/lib/asterisk/sounds/digits/de/xh-3x.gsm
-var/lib/asterisk/sounds/digits/de/xh-4x.gsm
-var/lib/asterisk/sounds/digits/de/xh-5x.gsm
-var/lib/asterisk/sounds/digits/de/xh-6x.gsm
-var/lib/asterisk/sounds/digits/de/xh-7x.gsm
-var/lib/asterisk/sounds/digits/de/xh-8x.gsm
-var/lib/asterisk/sounds/digits/de/xh-9x.gsm
-var/lib/asterisk/sounds/digits/de/yesterday.gsm
-var/lib/asterisk/sounds/en
-#var/lib/asterisk/sounds/en/.asterisk-core-sounds-en-gsm-1.6
-#var/lib/asterisk/sounds/en/.asterisk-extra-sounds-en-gsm-1.5.1
-var/lib/asterisk/sounds/en/1-for-am-2-for-pm.gsm
-var/lib/asterisk/sounds/en/1-yes-2-no.gsm
-#var/lib/asterisk/sounds/en/CHANGES-asterisk-core-en-1.6
-#var/lib/asterisk/sounds/en/CHANGES-asterisk-extra-en-1.5.1
-#var/lib/asterisk/sounds/en/CREDITS-asterisk-core-en-1.6
-#var/lib/asterisk/sounds/en/CREDITS-asterisk-extra-en-1.5.1
-#var/lib/asterisk/sounds/en/LICENSE-asterisk-core-en-1.6
-#var/lib/asterisk/sounds/en/LICENSE-asterisk-extra-en-1.5.1
-var/lib/asterisk/sounds/en/OfficeSpace.gsm
-var/lib/asterisk/sounds/en/Randulo-allison.gsm
-var/lib/asterisk/sounds/en/SIP_Test_Failure.gsm
-var/lib/asterisk/sounds/en/SIP_Test_Success.gsm
-var/lib/asterisk/sounds/en/T-changed-to.gsm
-var/lib/asterisk/sounds/en/T-is-not-available.gsm
-var/lib/asterisk/sounds/en/T-to-disable-ancmnt.gsm
-var/lib/asterisk/sounds/en/T-to-enable-ancmnt.gsm
-var/lib/asterisk/sounds/en/T-to-hear-cur-ancmnt.gsm
-var/lib/asterisk/sounds/en/T-to-leave-msg.gsm
-var/lib/asterisk/sounds/en/T-to-reach-main-office.gsm
-var/lib/asterisk/sounds/en/T-to-rec-ancmnt.gsm
-var/lib/asterisk/sounds/en/T-to-rtrn-to-main-menu.gsm
-var/lib/asterisk/sounds/en/a-charge-for-this-svc.gsm
-var/lib/asterisk/sounds/en/a-collect-charge-of.gsm
-var/lib/asterisk/sounds/en/a-collect-charge.gsm
-var/lib/asterisk/sounds/en/a-connect-charge-of.gsm
-var/lib/asterisk/sounds/en/a-connect-charge.gsm
-var/lib/asterisk/sounds/en/abandon-all-hope.gsm
-var/lib/asterisk/sounds/en/abandons.gsm
-var/lib/asterisk/sounds/en/academic-support.gsm
-var/lib/asterisk/sounds/en/access-code.gsm
-var/lib/asterisk/sounds/en/access-denied.gsm
-var/lib/asterisk/sounds/en/access-granted.gsm
-var/lib/asterisk/sounds/en/accessible-through-system.gsm
-var/lib/asterisk/sounds/en/account-balance-is.gsm
-var/lib/asterisk/sounds/en/account_number.gsm
-var/lib/asterisk/sounds/en/accounting.gsm
-var/lib/asterisk/sounds/en/accounts-payable.gsm
-var/lib/asterisk/sounds/en/accounts-receivable.gsm
-var/lib/asterisk/sounds/en/activated.gsm
-var/lib/asterisk/sounds/en/added-to.gsm
-var/lib/asterisk/sounds/en/added.gsm
-var/lib/asterisk/sounds/en/address.gsm
-var/lib/asterisk/sounds/en/administration.gsm
-var/lib/asterisk/sounds/en/advised-to-seek-shelter.gsm
-var/lib/asterisk/sounds/en/after-the-tone.gsm
-var/lib/asterisk/sounds/en/after_tone.gsm
-var/lib/asterisk/sounds/en/afternoon.gsm
-var/lib/asterisk/sounds/en/agent-alreadyon.gsm
-var/lib/asterisk/sounds/en/agent-incorrect.gsm
-var/lib/asterisk/sounds/en/agent-loggedoff.gsm
-var/lib/asterisk/sounds/en/agent-loginok.gsm
-var/lib/asterisk/sounds/en/agent-newlocation.gsm
-var/lib/asterisk/sounds/en/agent-pass.gsm
-var/lib/asterisk/sounds/en/agent-user.gsm
-var/lib/asterisk/sounds/en/airport.gsm
-var/lib/asterisk/sounds/en/alabama.gsm
-var/lib/asterisk/sounds/en/alaska.gsm
-var/lib/asterisk/sounds/en/albuquerque.gsm
-var/lib/asterisk/sounds/en/alert.gsm
-var/lib/asterisk/sounds/en/all-circuits-busy-now.gsm
-var/lib/asterisk/sounds/en/all-outgoing-lines-unavailable.gsm
-var/lib/asterisk/sounds/en/all-reps-busy.gsm
-var/lib/asterisk/sounds/en/all-your-base.gsm
-var/lib/asterisk/sounds/en/altitude.gsm
-var/lib/asterisk/sounds/en/ampersand.gsm
-var/lib/asterisk/sounds/en/an-error-has-occurred.gsm
-var/lib/asterisk/sounds/en/and-area-code.gsm
-var/lib/asterisk/sounds/en/and-or.gsm
-var/lib/asterisk/sounds/en/and-prs-pound-whn-finished.gsm
-var/lib/asterisk/sounds/en/and.gsm
-var/lib/asterisk/sounds/en/andnowstandby.gsm
-var/lib/asterisk/sounds/en/another-time.gsm
-var/lib/asterisk/sounds/en/approaching.gsm
-var/lib/asterisk/sounds/en/approximately.gsm
-var/lib/asterisk/sounds/en/are-you-still-there.gsm
-var/lib/asterisk/sounds/en/are-you-still-there2.gsm
-var/lib/asterisk/sounds/en/arizona.gsm
-var/lib/asterisk/sounds/en/arkansas.gsm
-var/lib/asterisk/sounds/en/arlington.gsm
-var/lib/asterisk/sounds/en/ascending-2tone.gsm
-var/lib/asterisk/sounds/en/astcc-account-balance-is.gsm
-var/lib/asterisk/sounds/en/astcc-account-number-invalid.gsm
-var/lib/asterisk/sounds/en/astcc-balance-of-account-is.gsm
-var/lib/asterisk/sounds/en/astcc-card-number-invalid.gsm
-var/lib/asterisk/sounds/en/astcc-digit-account-number.gsm
-var/lib/asterisk/sounds/en/astcc-followed-by-the-hash-key.gsm
-var/lib/asterisk/sounds/en/astcc-followed-by-the-pound-key.gsm
-var/lib/asterisk/sounds/en/astcc-login12pound.gsm
-var/lib/asterisk/sounds/en/astcc-please-enter-your.gsm
-var/lib/asterisk/sounds/en/astcc-skipping-any-punctuation.gsm
-var/lib/asterisk/sounds/en/asterisk-friend.gsm
-var/lib/asterisk/sounds/en/at-any-time.gsm
-var/lib/asterisk/sounds/en/at-customers-request.gsm
-var/lib/asterisk/sounds/en/at-following-number.gsm
-var/lib/asterisk/sounds/en/at-sign.gsm
-var/lib/asterisk/sounds/en/at-tone-time-exactly.gsm
-var/lib/asterisk/sounds/en/at_tone.gsm
-var/lib/asterisk/sounds/en/athletics.gsm
-var/lib/asterisk/sounds/en/atlanta.gsm
-var/lib/asterisk/sounds/en/atlantic.gsm
-var/lib/asterisk/sounds/en/attention-required.gsm
-var/lib/asterisk/sounds/en/auditing.gsm
-var/lib/asterisk/sounds/en/austin.gsm
-var/lib/asterisk/sounds/en/auth-incorrect.gsm
-var/lib/asterisk/sounds/en/auth-thankyou.gsm
-var/lib/asterisk/sounds/en/available-options.gsm
-var/lib/asterisk/sounds/en/available.gsm
-var/lib/asterisk/sounds/en/avg-speed-answer.gsm
-var/lib/asterisk/sounds/en/away-naughty-boy.gsm
-var/lib/asterisk/sounds/en/away-naughty-girl.gsm
-var/lib/asterisk/sounds/en/awkward.gsm
-var/lib/asterisk/sounds/en/backslash.gsm
-var/lib/asterisk/sounds/en/bad.gsm
-var/lib/asterisk/sounds/en/baltimore.gsm
-var/lib/asterisk/sounds/en/bar.gsm
-var/lib/asterisk/sounds/en/barn.gsm
-var/lib/asterisk/sounds/en/barns.gsm
-var/lib/asterisk/sounds/en/barometric.gsm
-var/lib/asterisk/sounds/en/basic-pbx-ivr-main.gsm
-var/lib/asterisk/sounds/en/bearing.gsm
-var/lib/asterisk/sounds/en/beaufort.gsm
-var/lib/asterisk/sounds/en/because-paranoid.gsm
-var/lib/asterisk/sounds/en/beep.gsm
-var/lib/asterisk/sounds/en/beeperr.gsm
-var/lib/asterisk/sounds/en/before-the-number.gsm
-var/lib/asterisk/sounds/en/believe-its-free.gsm
-var/lib/asterisk/sounds/en/billing-and-collections.gsm
-var/lib/asterisk/sounds/en/billing.gsm
-var/lib/asterisk/sounds/en/billionth.gsm
-var/lib/asterisk/sounds/en/binary.gsm
-var/lib/asterisk/sounds/en/bits.gsm
-var/lib/asterisk/sounds/en/blue-eyed-polar-bear.gsm
-var/lib/asterisk/sounds/en/bombsquad.gsm
-var/lib/asterisk/sounds/en/bookstore.gsm
-var/lib/asterisk/sounds/en/boston.gsm
-var/lib/asterisk/sounds/en/box.gsm
-var/lib/asterisk/sounds/en/brian.gsm
-var/lib/asterisk/sounds/en/business-development.gsm
-var/lib/asterisk/sounds/en/busy-hangovers.gsm
-var/lib/asterisk/sounds/en/busy-pls-hold.gsm
-var/lib/asterisk/sounds/en/but.gsm
-var/lib/asterisk/sounds/en/by.gsm
-var/lib/asterisk/sounds/en/bytes.gsm
-var/lib/asterisk/sounds/en/cafeteria.gsm
-var/lib/asterisk/sounds/en/california.gsm
-var/lib/asterisk/sounds/en/call-forward.gsm
-var/lib/asterisk/sounds/en/call-forwarding.gsm
-var/lib/asterisk/sounds/en/call-fwd-cancelled.gsm
-var/lib/asterisk/sounds/en/call-fwd-no-ans.gsm
-var/lib/asterisk/sounds/en/call-fwd-on-busy.gsm
-var/lib/asterisk/sounds/en/call-fwd-parallel.gsm
-var/lib/asterisk/sounds/en/call-fwd-unconditional.gsm
-var/lib/asterisk/sounds/en/call-preempted.gsm
-var/lib/asterisk/sounds/en/call-quality-menu.gsm
-var/lib/asterisk/sounds/en/call-requres.gsm
-var/lib/asterisk/sounds/en/call-terminated.gsm
-var/lib/asterisk/sounds/en/call-waiting.gsm
-var/lib/asterisk/sounds/en/call.gsm
-var/lib/asterisk/sounds/en/calling.gsm
-var/lib/asterisk/sounds/en/calls-taken-by.gsm
-var/lib/asterisk/sounds/en/calls-waiting-for-rep.gsm
-var/lib/asterisk/sounds/en/calls.gsm
-var/lib/asterisk/sounds/en/campground-office.gsm
-var/lib/asterisk/sounds/en/cancelled.gsm
-var/lib/asterisk/sounds/en/cannot-complete-as-dialed.gsm
-var/lib/asterisk/sounds/en/cannot-complete-network-error.gsm
-var/lib/asterisk/sounds/en/cannot-complete-otherend-error.gsm
-var/lib/asterisk/sounds/en/cannot-complete-temp-error.gsm
-var/lib/asterisk/sounds/en/card-balance-is.gsm
-var/lib/asterisk/sounds/en/card-is-invalid.gsm
-var/lib/asterisk/sounds/en/card-number.gsm
-var/lib/asterisk/sounds/en/carried-away-by-monkeys.gsm
-var/lib/asterisk/sounds/en/cause-code.gsm
-var/lib/asterisk/sounds/en/cc-amex.gsm
-var/lib/asterisk/sounds/en/cc-discover.gsm
-var/lib/asterisk/sounds/en/cc-mastercard.gsm
-var/lib/asterisk/sounds/en/cc-visa.gsm
-var/lib/asterisk/sounds/en/celsius.gsm
-var/lib/asterisk/sounds/en/cent.gsm
-var/lib/asterisk/sounds/en/central.gsm
-var/lib/asterisk/sounds/en/cents-per-minute.gsm
-var/lib/asterisk/sounds/en/cents.gsm
-var/lib/asterisk/sounds/en/ceo-office.gsm
-var/lib/asterisk/sounds/en/challenge_try_again.gsm
-var/lib/asterisk/sounds/en/chance-of.gsm
-var/lib/asterisk/sounds/en/changing.gsm
-var/lib/asterisk/sounds/en/channel-insecure-warn.gsm
-var/lib/asterisk/sounds/en/channel-secure.gsm
-var/lib/asterisk/sounds/en/channel.gsm
-var/lib/asterisk/sounds/en/charlotte.gsm
-var/lib/asterisk/sounds/en/chat-room.gsm
-var/lib/asterisk/sounds/en/check-number-dial-again.gsm
-var/lib/asterisk/sounds/en/chemistry.gsm
-var/lib/asterisk/sounds/en/chicago.gsm
-var/lib/asterisk/sounds/en/chris.gsm
-var/lib/asterisk/sounds/en/claims.gsm
-var/lib/asterisk/sounds/en/clear.gsm
-var/lib/asterisk/sounds/en/clearing.gsm
-var/lib/asterisk/sounds/en/cleveland.gsm
-var/lib/asterisk/sounds/en/clli.gsm
-var/lib/asterisk/sounds/en/close-parenthesis.gsm
-var/lib/asterisk/sounds/en/closed.gsm
-var/lib/asterisk/sounds/en/clouds.gsm
-var/lib/asterisk/sounds/en/cloudy.gsm
-var/lib/asterisk/sounds/en/collections.gsm
-var/lib/asterisk/sounds/en/colorado-springs.gsm
-var/lib/asterisk/sounds/en/colorado.gsm
-var/lib/asterisk/sounds/en/columbus.gsm
-var/lib/asterisk/sounds/en/comedyclub.gsm
-var/lib/asterisk/sounds/en/comma.gsm
-var/lib/asterisk/sounds/en/communications.gsm
-var/lib/asterisk/sounds/en/company-dir-411.gsm
-var/lib/asterisk/sounds/en/complaint.gsm
-var/lib/asterisk/sounds/en/compliance.gsm
-var/lib/asterisk/sounds/en/computer-friend1.gsm
-var/lib/asterisk/sounds/en/computer-friend2.gsm
-var/lib/asterisk/sounds/en/conditions.gsm
-var/lib/asterisk/sounds/en/conf-1-to-list-users.gsm
-var/lib/asterisk/sounds/en/conf-2-to-kick-nonadmin.gsm
-var/lib/asterisk/sounds/en/conf-3-mute-or-unmute-nonadmin.gsm
-var/lib/asterisk/sounds/en/conf-4-to-record-conf.gsm
-var/lib/asterisk/sounds/en/conf-8-for-more-options.gsm
-var/lib/asterisk/sounds/en/conf-8-to-exit-return-to-conf.gsm
-var/lib/asterisk/sounds/en/conf-adminmenu-162.gsm
-var/lib/asterisk/sounds/en/conf-adminmenu-18.gsm
-var/lib/asterisk/sounds/en/conf-adminmenu-menu8.gsm
-var/lib/asterisk/sounds/en/conf-adminmenu.gsm
-var/lib/asterisk/sounds/en/conf-banned.gsm
-var/lib/asterisk/sounds/en/conf-enteringno.gsm
-var/lib/asterisk/sounds/en/conf-errormenu.gsm
-var/lib/asterisk/sounds/en/conf-extended.gsm
-var/lib/asterisk/sounds/en/conf-full.gsm
-var/lib/asterisk/sounds/en/conf-getchannel.gsm
-var/lib/asterisk/sounds/en/conf-getconfno.gsm
-var/lib/asterisk/sounds/en/conf-getpin.gsm
-var/lib/asterisk/sounds/en/conf-hasentered.gsm
-var/lib/asterisk/sounds/en/conf-hasjoin.gsm
-var/lib/asterisk/sounds/en/conf-hasleft.gsm
-var/lib/asterisk/sounds/en/conf-invalid.gsm
-var/lib/asterisk/sounds/en/conf-invalidpin.gsm
-var/lib/asterisk/sounds/en/conf-kicked.gsm
-var/lib/asterisk/sounds/en/conf-leaderhasleft.gsm
-var/lib/asterisk/sounds/en/conf-locked.gsm
-var/lib/asterisk/sounds/en/conf-lockednow.gsm
-var/lib/asterisk/sounds/en/conf-muted.gsm
-var/lib/asterisk/sounds/en/conf-noempty.gsm
-var/lib/asterisk/sounds/en/conf-nonextended.gsm
-var/lib/asterisk/sounds/en/conf-now-muted.gsm
-var/lib/asterisk/sounds/en/conf-now-recording.gsm
-var/lib/asterisk/sounds/en/conf-now-unmuted.gsm
-var/lib/asterisk/sounds/en/conf-onlyone.gsm
-var/lib/asterisk/sounds/en/conf-onlyperson.gsm
-var/lib/asterisk/sounds/en/conf-onlypersonleft.gsm
-var/lib/asterisk/sounds/en/conf-otherinparty.gsm
-var/lib/asterisk/sounds/en/conf-peopleinconf.gsm
-var/lib/asterisk/sounds/en/conf-placeintoconf.gsm
-var/lib/asterisk/sounds/en/conf-roll-callcomplete.gsm
-var/lib/asterisk/sounds/en/conf-sysop.gsm
-var/lib/asterisk/sounds/en/conf-sysopreq.gsm
-var/lib/asterisk/sounds/en/conf-sysopreqcancelled.gsm
-var/lib/asterisk/sounds/en/conf-thereare.gsm
-var/lib/asterisk/sounds/en/conf-unlockednow.gsm
-var/lib/asterisk/sounds/en/conf-unmuted.gsm
-var/lib/asterisk/sounds/en/conf-usermenu-162.gsm
-var/lib/asterisk/sounds/en/conf-usermenu.gsm
-var/lib/asterisk/sounds/en/conf-userswilljoin.gsm
-var/lib/asterisk/sounds/en/conf-userwilljoin.gsm
-var/lib/asterisk/sounds/en/conf-waitforleader.gsm
-var/lib/asterisk/sounds/en/conf-youareinconfnum.gsm
-var/lib/asterisk/sounds/en/confbridge-begin-glorious-a.gsm
-var/lib/asterisk/sounds/en/confbridge-begin-glorious-b.gsm
-var/lib/asterisk/sounds/en/confbridge-begin-glorious-c.gsm
-var/lib/asterisk/sounds/en/confbridge-begin-leader.gsm
-var/lib/asterisk/sounds/en/confbridge-binaural-off.gsm
-var/lib/asterisk/sounds/en/confbridge-binaural-on.gsm
-var/lib/asterisk/sounds/en/confbridge-conf-begin.gsm
-var/lib/asterisk/sounds/en/confbridge-conf-end.gsm
-var/lib/asterisk/sounds/en/confbridge-dec-list-vol-in.gsm
-var/lib/asterisk/sounds/en/confbridge-dec-list-vol-out.gsm
-var/lib/asterisk/sounds/en/confbridge-dec-talk-vol-in.gsm
-var/lib/asterisk/sounds/en/confbridge-dec-talk-vol-out.gsm
-var/lib/asterisk/sounds/en/confbridge-has-joined.gsm
-var/lib/asterisk/sounds/en/confbridge-has-left.gsm
-var/lib/asterisk/sounds/en/confbridge-inc-list-vol-in.gsm
-var/lib/asterisk/sounds/en/confbridge-inc-list-vol-out.gsm
-var/lib/asterisk/sounds/en/confbridge-inc-talk-vol-in.gsm
-var/lib/asterisk/sounds/en/confbridge-inc-talk-vol-out.gsm
-var/lib/asterisk/sounds/en/confbridge-invalid.gsm
-var/lib/asterisk/sounds/en/confbridge-join.gsm
-var/lib/asterisk/sounds/en/confbridge-leave-in.gsm
-var/lib/asterisk/sounds/en/confbridge-leave-out.gsm
-var/lib/asterisk/sounds/en/confbridge-leave.gsm
-var/lib/asterisk/sounds/en/confbridge-lock-extended.gsm
-var/lib/asterisk/sounds/en/confbridge-lock-in.gsm
-var/lib/asterisk/sounds/en/confbridge-lock-no-join.gsm
-var/lib/asterisk/sounds/en/confbridge-lock-out.gsm
-var/lib/asterisk/sounds/en/confbridge-locked.gsm
-var/lib/asterisk/sounds/en/confbridge-menu-exit-in.gsm
-var/lib/asterisk/sounds/en/confbridge-menu-exit-out.gsm
-var/lib/asterisk/sounds/en/confbridge-mute-extended.gsm
-var/lib/asterisk/sounds/en/confbridge-mute-in.gsm
-var/lib/asterisk/sounds/en/confbridge-mute-out.gsm
-var/lib/asterisk/sounds/en/confbridge-muted.gsm
-var/lib/asterisk/sounds/en/confbridge-only-one.gsm
-var/lib/asterisk/sounds/en/confbridge-only-participant.gsm
-var/lib/asterisk/sounds/en/confbridge-participants.gsm
-var/lib/asterisk/sounds/en/confbridge-pin-bad.gsm
-var/lib/asterisk/sounds/en/confbridge-pin.gsm
-var/lib/asterisk/sounds/en/confbridge-remove-last-in.gsm
-var/lib/asterisk/sounds/en/confbridge-remove-last-out.gsm
-var/lib/asterisk/sounds/en/confbridge-removed.gsm
-var/lib/asterisk/sounds/en/confbridge-rest-list-vol-in.gsm
-var/lib/asterisk/sounds/en/confbridge-rest-list-vol-out.gsm
-var/lib/asterisk/sounds/en/confbridge-rest-talk-vol-in.gsm
-var/lib/asterisk/sounds/en/confbridge-rest-talk-vol-out.gsm
-var/lib/asterisk/sounds/en/confbridge-there-are.gsm
-var/lib/asterisk/sounds/en/confbridge-unlocked.gsm
-var/lib/asterisk/sounds/en/confbridge-unmuted.gsm
-var/lib/asterisk/sounds/en/conference-call.gsm
-var/lib/asterisk/sounds/en/conference-reservations.gsm
-var/lib/asterisk/sounds/en/conference.gsm
-var/lib/asterisk/sounds/en/confirm-number-is.gsm
-var/lib/asterisk/sounds/en/connected.gsm
-var/lib/asterisk/sounds/en/connecticut.gsm
-var/lib/asterisk/sounds/en/connecting.gsm
-var/lib/asterisk/sounds/en/connection-failed.gsm
-var/lib/asterisk/sounds/en/connection-timed-out.gsm
-var/lib/asterisk/sounds/en/continue-english-press.gsm
-var/lib/asterisk/sounds/en/continue-in-english.gsm
-var/lib/asterisk/sounds/en/copy-center.gsm
-var/lib/asterisk/sounds/en/core-sounds-en.txt
-var/lib/asterisk/sounds/en/could-lose-a-few-pounds.gsm
-var/lib/asterisk/sounds/en/counseling-services.gsm
-var/lib/asterisk/sounds/en/count.gsm
-var/lib/asterisk/sounds/en/countdown.gsm
-var/lib/asterisk/sounds/en/crash.gsm
-var/lib/asterisk/sounds/en/crashing_conf.gsm
-var/lib/asterisk/sounds/en/current-time-is.gsm
-var/lib/asterisk/sounds/en/current_account_balance.gsm
-var/lib/asterisk/sounds/en/currently.gsm
-var/lib/asterisk/sounds/en/customer-accounts.gsm
-var/lib/asterisk/sounds/en/customer-relations.gsm
-var/lib/asterisk/sounds/en/customer-service.gsm
-var/lib/asterisk/sounds/en/cyclone.gsm
-var/lib/asterisk/sounds/en/dallas.gsm
-var/lib/asterisk/sounds/en/date.gsm
-var/lib/asterisk/sounds/en/day.gsm
-var/lib/asterisk/sounds/en/daylight.gsm
-var/lib/asterisk/sounds/en/days.gsm
-var/lib/asterisk/sounds/en/de-activated.gsm
-var/lib/asterisk/sounds/en/deadbeat.gsm
-var/lib/asterisk/sounds/en/decode.gsm
-var/lib/asterisk/sounds/en/default-attendant.gsm
-var/lib/asterisk/sounds/en/degrees.gsm
-var/lib/asterisk/sounds/en/delaware.gsm
-var/lib/asterisk/sounds/en/demo-abouttotry.gsm
-var/lib/asterisk/sounds/en/demo-congrats.gsm
-var/lib/asterisk/sounds/en/demo-echodone.gsm
-var/lib/asterisk/sounds/en/demo-echotest.gsm
-var/lib/asterisk/sounds/en/demo-enterkeywords.gsm
-var/lib/asterisk/sounds/en/demo-instruct.gsm
-var/lib/asterisk/sounds/en/demo-moreinfo.gsm
-var/lib/asterisk/sounds/en/demo-nogo.gsm
-var/lib/asterisk/sounds/en/demo-nomatch.gsm
-var/lib/asterisk/sounds/en/demo-thanks.gsm
-var/lib/asterisk/sounds/en/denial-of-service.gsm
-var/lib/asterisk/sounds/en/denver.gsm
-var/lib/asterisk/sounds/en/department-administrator.gsm
-var/lib/asterisk/sounds/en/department.gsm
-var/lib/asterisk/sounds/en/deposit.gsm
-var/lib/asterisk/sounds/en/descending-2tone.gsm
-var/lib/asterisk/sounds/en/design.gsm
-var/lib/asterisk/sounds/en/detroit.gsm
-var/lib/asterisk/sounds/en/development.gsm
-var/lib/asterisk/sounds/en/dial-here-often.gsm
-var/lib/asterisk/sounds/en/dictate
-var/lib/asterisk/sounds/en/dictate/both_help.gsm
-var/lib/asterisk/sounds/en/dictate/enter_filename.gsm
-var/lib/asterisk/sounds/en/dictate/forhelp.gsm
-var/lib/asterisk/sounds/en/dictate/pause.gsm
-var/lib/asterisk/sounds/en/dictate/paused.gsm
-var/lib/asterisk/sounds/en/dictate/play_help.gsm
-var/lib/asterisk/sounds/en/dictate/playback.gsm
-var/lib/asterisk/sounds/en/dictate/playback_mode.gsm
-var/lib/asterisk/sounds/en/dictate/record.gsm
-var/lib/asterisk/sounds/en/dictate/record_help.gsm
-var/lib/asterisk/sounds/en/dictate/record_mode.gsm
-var/lib/asterisk/sounds/en/dictate/truncating_audio.gsm
-var/lib/asterisk/sounds/en/digit.gsm
-var/lib/asterisk/sounds/en/digits
-var/lib/asterisk/sounds/en/digits.gsm
-var/lib/asterisk/sounds/en/digits/0.gsm
-var/lib/asterisk/sounds/en/digits/1.gsm
-var/lib/asterisk/sounds/en/digits/10.gsm
-var/lib/asterisk/sounds/en/digits/11.gsm
-var/lib/asterisk/sounds/en/digits/12.gsm
-var/lib/asterisk/sounds/en/digits/13.gsm
-var/lib/asterisk/sounds/en/digits/14.gsm
-var/lib/asterisk/sounds/en/digits/15.gsm
-var/lib/asterisk/sounds/en/digits/16.gsm
-var/lib/asterisk/sounds/en/digits/17.gsm
-var/lib/asterisk/sounds/en/digits/18.gsm
-var/lib/asterisk/sounds/en/digits/19.gsm
-var/lib/asterisk/sounds/en/digits/2.gsm
-var/lib/asterisk/sounds/en/digits/20.gsm
-var/lib/asterisk/sounds/en/digits/3.gsm
-var/lib/asterisk/sounds/en/digits/30.gsm
-var/lib/asterisk/sounds/en/digits/4.gsm
-var/lib/asterisk/sounds/en/digits/40.gsm
-var/lib/asterisk/sounds/en/digits/5.gsm
-var/lib/asterisk/sounds/en/digits/50.gsm
-var/lib/asterisk/sounds/en/digits/6.gsm
-var/lib/asterisk/sounds/en/digits/60.gsm
-var/lib/asterisk/sounds/en/digits/7.gsm
-var/lib/asterisk/sounds/en/digits/70.gsm
-var/lib/asterisk/sounds/en/digits/8.gsm
-var/lib/asterisk/sounds/en/digits/80.gsm
-var/lib/asterisk/sounds/en/digits/9.gsm
-var/lib/asterisk/sounds/en/digits/90.gsm
-var/lib/asterisk/sounds/en/digits/a-m.gsm
-var/lib/asterisk/sounds/en/digits/at.gsm
-var/lib/asterisk/sounds/en/digits/billion.gsm
-var/lib/asterisk/sounds/en/digits/day-0.gsm
-var/lib/asterisk/sounds/en/digits/day-1.gsm
-var/lib/asterisk/sounds/en/digits/day-2.gsm
-var/lib/asterisk/sounds/en/digits/day-3.gsm
-var/lib/asterisk/sounds/en/digits/day-4.gsm
-var/lib/asterisk/sounds/en/digits/day-5.gsm
-var/lib/asterisk/sounds/en/digits/day-6.gsm
-var/lib/asterisk/sounds/en/digits/dollars.gsm
-var/lib/asterisk/sounds/en/digits/h-1.gsm
-var/lib/asterisk/sounds/en/digits/h-10.gsm
-var/lib/asterisk/sounds/en/digits/h-11.gsm
-var/lib/asterisk/sounds/en/digits/h-12.gsm
-var/lib/asterisk/sounds/en/digits/h-13.gsm
-var/lib/asterisk/sounds/en/digits/h-14.gsm
-var/lib/asterisk/sounds/en/digits/h-15.gsm
-var/lib/asterisk/sounds/en/digits/h-16.gsm
-var/lib/asterisk/sounds/en/digits/h-17.gsm
-var/lib/asterisk/sounds/en/digits/h-18.gsm
-var/lib/asterisk/sounds/en/digits/h-19.gsm
-var/lib/asterisk/sounds/en/digits/h-2.gsm
-var/lib/asterisk/sounds/en/digits/h-20.gsm
-var/lib/asterisk/sounds/en/digits/h-3.gsm
-var/lib/asterisk/sounds/en/digits/h-30.gsm
-var/lib/asterisk/sounds/en/digits/h-4.gsm
-var/lib/asterisk/sounds/en/digits/h-40.gsm
-var/lib/asterisk/sounds/en/digits/h-5.gsm
-var/lib/asterisk/sounds/en/digits/h-50.gsm
-var/lib/asterisk/sounds/en/digits/h-6.gsm
-var/lib/asterisk/sounds/en/digits/h-60.gsm
-var/lib/asterisk/sounds/en/digits/h-7.gsm
-var/lib/asterisk/sounds/en/digits/h-70.gsm
-var/lib/asterisk/sounds/en/digits/h-8.gsm
-var/lib/asterisk/sounds/en/digits/h-80.gsm
-var/lib/asterisk/sounds/en/digits/h-9.gsm
-var/lib/asterisk/sounds/en/digits/h-90.gsm
-var/lib/asterisk/sounds/en/digits/h-billion.gsm
-var/lib/asterisk/sounds/en/digits/h-hundred.gsm
-var/lib/asterisk/sounds/en/digits/h-million.gsm
-var/lib/asterisk/sounds/en/digits/h-thousand.gsm
-var/lib/asterisk/sounds/en/digits/hundred.gsm
-var/lib/asterisk/sounds/en/digits/million.gsm
-var/lib/asterisk/sounds/en/digits/minus.gsm
-var/lib/asterisk/sounds/en/digits/mon-0.gsm
-var/lib/asterisk/sounds/en/digits/mon-1.gsm
-var/lib/asterisk/sounds/en/digits/mon-10.gsm
-var/lib/asterisk/sounds/en/digits/mon-11.gsm
-var/lib/asterisk/sounds/en/digits/mon-2.gsm
-var/lib/asterisk/sounds/en/digits/mon-3.gsm
-var/lib/asterisk/sounds/en/digits/mon-4.gsm
-var/lib/asterisk/sounds/en/digits/mon-5.gsm
-var/lib/asterisk/sounds/en/digits/mon-6.gsm
-var/lib/asterisk/sounds/en/digits/mon-7.gsm
-var/lib/asterisk/sounds/en/digits/mon-8.gsm
-var/lib/asterisk/sounds/en/digits/mon-9.gsm
-var/lib/asterisk/sounds/en/digits/oclock.gsm
-var/lib/asterisk/sounds/en/digits/oh.gsm
-var/lib/asterisk/sounds/en/digits/p-m.gsm
-var/lib/asterisk/sounds/en/digits/pound.gsm
-var/lib/asterisk/sounds/en/digits/star.gsm
-var/lib/asterisk/sounds/en/digits/thousand.gsm
-var/lib/asterisk/sounds/en/digits/today.gsm
-var/lib/asterisk/sounds/en/digits/tomorrow.gsm
-var/lib/asterisk/sounds/en/digits/yesterday.gsm
-var/lib/asterisk/sounds/en/dir-first.gsm
-var/lib/asterisk/sounds/en/dir-firstlast.gsm
-var/lib/asterisk/sounds/en/dir-instr.gsm
-var/lib/asterisk/sounds/en/dir-intro-fn.gsm
-var/lib/asterisk/sounds/en/dir-intro.gsm
-var/lib/asterisk/sounds/en/dir-last.gsm
-var/lib/asterisk/sounds/en/dir-multi1.gsm
-var/lib/asterisk/sounds/en/dir-multi2.gsm
-var/lib/asterisk/sounds/en/dir-multi3.gsm
-var/lib/asterisk/sounds/en/dir-multi9.gsm
-var/lib/asterisk/sounds/en/dir-nomatch.gsm
-var/lib/asterisk/sounds/en/dir-nomore.gsm
-var/lib/asterisk/sounds/en/dir-pls-enter.gsm
-var/lib/asterisk/sounds/en/dir-usingkeypad.gsm
-var/lib/asterisk/sounds/en/dir-welcome.gsm
-var/lib/asterisk/sounds/en/directory-assistance.gsm
-var/lib/asterisk/sounds/en/directory.gsm
-var/lib/asterisk/sounds/en/disabled.gsm
-var/lib/asterisk/sounds/en/discon-or-out-of-service.gsm
-var/lib/asterisk/sounds/en/disconnected.gsm
-var/lib/asterisk/sounds/en/disk.gsm
-var/lib/asterisk/sounds/en/distribution.gsm
-var/lib/asterisk/sounds/en/divided-by.gsm
-var/lib/asterisk/sounds/en/dns.gsm
-var/lib/asterisk/sounds/en/do-not-disturb.gsm
-var/lib/asterisk/sounds/en/doing-enum-lookup.gsm
-var/lib/asterisk/sounds/en/donotcall1.gsm
-var/lib/asterisk/sounds/en/donotcall2.gsm
-var/lib/asterisk/sounds/en/dont-know-who-sent.gsm
-var/lib/asterisk/sounds/en/doppler-radar.gsm
-var/lib/asterisk/sounds/en/down.gsm
-var/lib/asterisk/sounds/en/driving-directions.gsm
-var/lib/asterisk/sounds/en/duplex.gsm
-var/lib/asterisk/sounds/en/duplication.gsm
-var/lib/asterisk/sounds/en/early.gsm
-var/lib/asterisk/sounds/en/east.gsm
-var/lib/asterisk/sounds/en/easterly.gsm
-var/lib/asterisk/sounds/en/eastern.gsm
-var/lib/asterisk/sounds/en/echo-test.gsm
-var/lib/asterisk/sounds/en/ed.gsm
-var/lib/asterisk/sounds/en/eighteenth.gsm
-var/lib/asterisk/sounds/en/eighth.gsm
-var/lib/asterisk/sounds/en/eightieth.gsm
-var/lib/asterisk/sounds/en/el-paso.gsm
-var/lib/asterisk/sounds/en/eletelephony.gsm
-var/lib/asterisk/sounds/en/eleventh.gsm
-var/lib/asterisk/sounds/en/email.gsm
-var/lib/asterisk/sounds/en/emergency.gsm
-var/lib/asterisk/sounds/en/enabled.gsm
-var/lib/asterisk/sounds/en/encode.gsm
-var/lib/asterisk/sounds/en/engineering.gsm
-var/lib/asterisk/sounds/en/ent-target-attendant.gsm
-var/lib/asterisk/sounds/en/enter-a-time.gsm
-var/lib/asterisk/sounds/en/enter-conf-call-number.gsm
-var/lib/asterisk/sounds/en/enter-conf-pin-number.gsm
-var/lib/asterisk/sounds/en/enter-ext-of-person.gsm
-var/lib/asterisk/sounds/en/enter-num-blacklist.gsm
-var/lib/asterisk/sounds/en/enter-password.gsm
-var/lib/asterisk/sounds/en/enter-phone-number10.gsm
-var/lib/asterisk/sounds/en/enter_account.gsm
-var/lib/asterisk/sounds/en/entering-conf-number.gsm
-var/lib/asterisk/sounds/en/entr-num-rmv-blklist.gsm
-var/lib/asterisk/sounds/en/enum-lookup-failed.gsm
-var/lib/asterisk/sounds/en/enum-lookup-successful.gsm
-var/lib/asterisk/sounds/en/error-number.gsm
-var/lib/asterisk/sounds/en/error.gsm
-var/lib/asterisk/sounds/en/est-hold-time-is.gsm
-var/lib/asterisk/sounds/en/euro.gsm
-var/lib/asterisk/sounds/en/european.gsm
-var/lib/asterisk/sounds/en/euros.gsm
-var/lib/asterisk/sounds/en/evening.gsm
-var/lib/asterisk/sounds/en/explanation.gsm
-var/lib/asterisk/sounds/en/ext-or-zero.gsm
-var/lib/asterisk/sounds/en/extension.gsm
-var/lib/asterisk/sounds/en/extensions.gsm
-var/lib/asterisk/sounds/en/extra-sounds-en.txt
-var/lib/asterisk/sounds/en/facilities.gsm
-var/lib/asterisk/sounds/en/fahrenheit.gsm
-var/lib/asterisk/sounds/en/falling.gsm
-var/lib/asterisk/sounds/en/fast.gsm
-var/lib/asterisk/sounds/en/feature-not-avail-line.gsm
-var/lib/asterisk/sounds/en/feeling_lucky_punk.gsm
-var/lib/asterisk/sounds/en/feet.gsm
-var/lib/asterisk/sounds/en/female.gsm
-var/lib/asterisk/sounds/en/fifteenth.gsm
-var/lib/asterisk/sounds/en/fifth.gsm
-var/lib/asterisk/sounds/en/fiftieth.gsm
-var/lib/asterisk/sounds/en/finals.gsm
-var/lib/asterisk/sounds/en/finance.gsm
-var/lib/asterisk/sounds/en/first-in-line.gsm
-var/lib/asterisk/sounds/en/first.gsm
-var/lib/asterisk/sounds/en/flagged-for-lea.gsm
-var/lib/asterisk/sounds/en/flooding.gsm
-var/lib/asterisk/sounds/en/florida.gsm
-var/lib/asterisk/sounds/en/fog.gsm
-var/lib/asterisk/sounds/en/foggy.gsm
-var/lib/asterisk/sounds/en/followed-by.gsm
-var/lib/asterisk/sounds/en/followed_hash.gsm
-var/lib/asterisk/sounds/en/followed_pound.gsm
-var/lib/asterisk/sounds/en/followme
-var/lib/asterisk/sounds/en/followme/call-from.gsm
-var/lib/asterisk/sounds/en/followme/no-recording.gsm
-var/lib/asterisk/sounds/en/followme/options.gsm
-var/lib/asterisk/sounds/en/followme/pls-hold-while-try.gsm
-var/lib/asterisk/sounds/en/followme/sorry.gsm
-var/lib/asterisk/sounds/en/followme/status.gsm
-var/lib/asterisk/sounds/en/food-service.gsm
-var/lib/asterisk/sounds/en/food-services.gsm
-var/lib/asterisk/sounds/en/for-a-daily-wakeup-call.gsm
-var/lib/asterisk/sounds/en/for-a-list-of.gsm
-var/lib/asterisk/sounds/en/for-accounting.gsm
-var/lib/asterisk/sounds/en/for-billing.gsm
-var/lib/asterisk/sounds/en/for-english-press.gsm
-var/lib/asterisk/sounds/en/for-investor-relations.gsm
-var/lib/asterisk/sounds/en/for-louie-louie.gsm
-var/lib/asterisk/sounds/en/for-no-press.gsm
-var/lib/asterisk/sounds/en/for-qc-and-training-purposes.gsm
-var/lib/asterisk/sounds/en/for-quality-purposes.gsm
-var/lib/asterisk/sounds/en/for-sales.gsm
-var/lib/asterisk/sounds/en/for-service.gsm
-var/lib/asterisk/sounds/en/for-tech-support.gsm
-var/lib/asterisk/sounds/en/for-the-first.gsm
-var/lib/asterisk/sounds/en/for-the-weather.gsm
-var/lib/asterisk/sounds/en/for-wakeup-call.gsm
-var/lib/asterisk/sounds/en/for-yes-press.gsm
-var/lib/asterisk/sounds/en/for.gsm
-var/lib/asterisk/sounds/en/forget_about_it.gsm
-var/lib/asterisk/sounds/en/fort-worth.gsm
-var/lib/asterisk/sounds/en/fortieth.gsm
-var/lib/asterisk/sounds/en/fourteenth.gsm
-var/lib/asterisk/sounds/en/fourth.gsm
-var/lib/asterisk/sounds/en/freeze.gsm
-var/lib/asterisk/sounds/en/freezing.gsm
-var/lib/asterisk/sounds/en/frequency.gsm
-var/lib/asterisk/sounds/en/fresno.gsm
-var/lib/asterisk/sounds/en/from-unknown-caller.gsm
-var/lib/asterisk/sounds/en/from.gsm
-var/lib/asterisk/sounds/en/ftp.gsm
-var/lib/asterisk/sounds/en/gale.gsm
-var/lib/asterisk/sounds/en/gambling-drunk.gsm
-var/lib/asterisk/sounds/en/georgia.gsm
-var/lib/asterisk/sounds/en/get-in-line-sales-guy.gsm
-var/lib/asterisk/sounds/en/get_bleep_outta.gsm
-var/lib/asterisk/sounds/en/get_information.gsm
-var/lib/asterisk/sounds/en/get_information_first.gsm
-var/lib/asterisk/sounds/en/gigabits.gsm
-var/lib/asterisk/sounds/en/gigabytes.gsm
-var/lib/asterisk/sounds/en/gigahertz.gsm
-var/lib/asterisk/sounds/en/giggle1.gsm
-var/lib/asterisk/sounds/en/gmt.gsm
-var/lib/asterisk/sounds/en/go-away1.gsm
-var/lib/asterisk/sounds/en/go-away2.gsm
-var/lib/asterisk/sounds/en/good-afternoon.gsm
-var/lib/asterisk/sounds/en/good-evening.gsm
-var/lib/asterisk/sounds/en/good-morning.gsm
-var/lib/asterisk/sounds/en/good.gsm
-var/lib/asterisk/sounds/en/goodbye.gsm
-var/lib/asterisk/sounds/en/goodbye_for_the_best.gsm
-var/lib/asterisk/sounds/en/goodbye_love.gsm
-var/lib/asterisk/sounds/en/got_kidding.gsm
-var/lib/asterisk/sounds/en/grammar.gsm
-var/lib/asterisk/sounds/en/greater-than.gsm
-var/lib/asterisk/sounds/en/groovy.gsm
-var/lib/asterisk/sounds/en/ha
-var/lib/asterisk/sounds/en/ha/ac.gsm
-var/lib/asterisk/sounds/en/ha/air-conditioner.gsm
-var/lib/asterisk/sounds/en/ha/alarm.gsm
-var/lib/asterisk/sounds/en/ha/amp.gsm
-var/lib/asterisk/sounds/en/ha/amps.gsm
-var/lib/asterisk/sounds/en/ha/attic.gsm
-var/lib/asterisk/sounds/en/ha/baby-sleeping-mode.gsm
-var/lib/asterisk/sounds/en/ha/back.gsm
-var/lib/asterisk/sounds/en/ha/basement.gsm
-var/lib/asterisk/sounds/en/ha/bathroom.gsm
-var/lib/asterisk/sounds/en/ha/bedroom.gsm
-var/lib/asterisk/sounds/en/ha/bright.gsm
-var/lib/asterisk/sounds/en/ha/callerid.gsm
-var/lib/asterisk/sounds/en/ha/carport.gsm
-var/lib/asterisk/sounds/en/ha/closet.gsm
-var/lib/asterisk/sounds/en/ha/coffee-pot.gsm
-var/lib/asterisk/sounds/en/ha/cool.gsm
-var/lib/asterisk/sounds/en/ha/cooling.gsm
-var/lib/asterisk/sounds/en/ha/dc.gsm
-var/lib/asterisk/sounds/en/ha/decibel.gsm
-var/lib/asterisk/sounds/en/ha/decibels.gsm
-var/lib/asterisk/sounds/en/ha/deck.gsm
-var/lib/asterisk/sounds/en/ha/degree.gsm
-var/lib/asterisk/sounds/en/ha/degrees.gsm
-var/lib/asterisk/sounds/en/ha/den.gsm
-var/lib/asterisk/sounds/en/ha/dim.gsm
-var/lib/asterisk/sounds/en/ha/dining-room.gsm
-var/lib/asterisk/sounds/en/ha/door.gsm
-var/lib/asterisk/sounds/en/ha/doors.gsm
-var/lib/asterisk/sounds/en/ha/down.gsm
-var/lib/asterisk/sounds/en/ha/driveway.gsm
-var/lib/asterisk/sounds/en/ha/dryer.gsm
-var/lib/asterisk/sounds/en/ha/fan.gsm
-var/lib/asterisk/sounds/en/ha/farad.gsm
-var/lib/asterisk/sounds/en/ha/farads.gsm
-var/lib/asterisk/sounds/en/ha/first-floor.gsm
-var/lib/asterisk/sounds/en/ha/floor.gsm
-var/lib/asterisk/sounds/en/ha/floors.gsm
-var/lib/asterisk/sounds/en/ha/for-extended-status-report.gsm
-var/lib/asterisk/sounds/en/ha/for-quick-status-report.gsm
-var/lib/asterisk/sounds/en/ha/for-wx-report.gsm
-var/lib/asterisk/sounds/en/ha/fountain.gsm
-var/lib/asterisk/sounds/en/ha/foyer.gsm
-var/lib/asterisk/sounds/en/ha/front.gsm
-var/lib/asterisk/sounds/en/ha/furnace.gsm
-var/lib/asterisk/sounds/en/ha/game-room.gsm
-var/lib/asterisk/sounds/en/ha/garage.gsm
-var/lib/asterisk/sounds/en/ha/great-room.gsm
-var/lib/asterisk/sounds/en/ha/guest-room.gsm
-var/lib/asterisk/sounds/en/ha/hall.gsm
-var/lib/asterisk/sounds/en/ha/has-been-left.gsm
-var/lib/asterisk/sounds/en/ha/heat-pump.gsm
-var/lib/asterisk/sounds/en/ha/heat.gsm
-var/lib/asterisk/sounds/en/ha/heating.gsm
-var/lib/asterisk/sounds/en/ha/hot-tub.gsm
-var/lib/asterisk/sounds/en/ha/house.gsm
-var/lib/asterisk/sounds/en/ha/intruder.gsm
-var/lib/asterisk/sounds/en/ha/is.gsm
-var/lib/asterisk/sounds/en/ha/kelvin.gsm
-var/lib/asterisk/sounds/en/ha/kitchen.gsm
-var/lib/asterisk/sounds/en/ha/lamp.gsm
-var/lib/asterisk/sounds/en/ha/lamps.gsm
-var/lib/asterisk/sounds/en/ha/landscape.gsm
-var/lib/asterisk/sounds/en/ha/laundry.gsm
-var/lib/asterisk/sounds/en/ha/library.gsm
-var/lib/asterisk/sounds/en/ha/light.gsm
-var/lib/asterisk/sounds/en/ha/lights.gsm
-var/lib/asterisk/sounds/en/ha/living-room.gsm
-var/lib/asterisk/sounds/en/ha/locked.gsm
-var/lib/asterisk/sounds/en/ha/locking.gsm
-var/lib/asterisk/sounds/en/ha/mailbox.gsm
-var/lib/asterisk/sounds/en/ha/master.gsm
-var/lib/asterisk/sounds/en/ha/off.gsm
-var/lib/asterisk/sounds/en/ha/office.gsm
-var/lib/asterisk/sounds/en/ha/ohm.gsm
-var/lib/asterisk/sounds/en/ha/ohms.gsm
-var/lib/asterisk/sounds/en/ha/on.gsm
-var/lib/asterisk/sounds/en/ha/open.gsm
-var/lib/asterisk/sounds/en/ha/patio.gsm
-var/lib/asterisk/sounds/en/ha/phone.gsm
-var/lib/asterisk/sounds/en/ha/play-room.gsm
-var/lib/asterisk/sounds/en/ha/play.gsm
-var/lib/asterisk/sounds/en/ha/pool.gsm
-var/lib/asterisk/sounds/en/ha/porch.gsm
-var/lib/asterisk/sounds/en/ha/power-failure.gsm
-var/lib/asterisk/sounds/en/ha/pressure.gsm
-var/lib/asterisk/sounds/en/ha/psi.gsm
-var/lib/asterisk/sounds/en/ha/quiet-mode.gsm
-var/lib/asterisk/sounds/en/ha/reset.gsm
-var/lib/asterisk/sounds/en/ha/roof.gsm
-var/lib/asterisk/sounds/en/ha/room.gsm
-var/lib/asterisk/sounds/en/ha/rooms.gsm
-var/lib/asterisk/sounds/en/ha/second-floor.gsm
-var/lib/asterisk/sounds/en/ha/secure.gsm
-var/lib/asterisk/sounds/en/ha/security-system.gsm
-var/lib/asterisk/sounds/en/ha/set.gsm
-var/lib/asterisk/sounds/en/ha/side.gsm
-var/lib/asterisk/sounds/en/ha/solar.gsm
-var/lib/asterisk/sounds/en/ha/sprinklers.gsm
-var/lib/asterisk/sounds/en/ha/still.gsm
-var/lib/asterisk/sounds/en/ha/stove.gsm
-var/lib/asterisk/sounds/en/ha/sump-pump.gsm
-var/lib/asterisk/sounds/en/ha/sun-room.gsm
-var/lib/asterisk/sounds/en/ha/system.gsm
-var/lib/asterisk/sounds/en/ha/systems.gsm
-var/lib/asterisk/sounds/en/ha/thermostat.gsm
-var/lib/asterisk/sounds/en/ha/to-control-environ-sys.gsm
-var/lib/asterisk/sounds/en/ha/to-control-lights-appl.gsm
-var/lib/asterisk/sounds/en/ha/tower.gsm
-var/lib/asterisk/sounds/en/ha/unlocked.gsm
-var/lib/asterisk/sounds/en/ha/unlocking.gsm
-var/lib/asterisk/sounds/en/ha/up.gsm
-var/lib/asterisk/sounds/en/ha/volt.gsm
-var/lib/asterisk/sounds/en/ha/volts.gsm
-var/lib/asterisk/sounds/en/ha/washing-machine.gsm
-var/lib/asterisk/sounds/en/ha/water-heater.gsm
-var/lib/asterisk/sounds/en/ha/watt.gsm
-var/lib/asterisk/sounds/en/ha/watts.gsm
-var/lib/asterisk/sounds/en/ha/well-pump.gsm
-var/lib/asterisk/sounds/en/ha/window.gsm
-var/lib/asterisk/sounds/en/ha/windows.gsm
-var/lib/asterisk/sounds/en/ha/xmas-lights.gsm
-var/lib/asterisk/sounds/en/ha/xmas-tree.gsm
-var/lib/asterisk/sounds/en/ha/yard.gsm
-var/lib/asterisk/sounds/en/hail.gsm
-var/lib/asterisk/sounds/en/hal_goodbye.gsm
-var/lib/asterisk/sounds/en/half.gsm
-var/lib/asterisk/sounds/en/hang-on-a-second-angry.gsm
-var/lib/asterisk/sounds/en/hang-on-a-second.gsm
-var/lib/asterisk/sounds/en/hangup-try-again.gsm
-var/lib/asterisk/sounds/en/happy_saved.gsm
-var/lib/asterisk/sounds/en/has-arrived-at.gsm
-var/lib/asterisk/sounds/en/has-been-changed-to.gsm
-var/lib/asterisk/sounds/en/has-been-cleared.gsm
-var/lib/asterisk/sounds/en/has-been-disconnected.gsm
-var/lib/asterisk/sounds/en/has-been-set-to.gsm
-var/lib/asterisk/sounds/en/has-been.gsm
-var/lib/asterisk/sounds/en/has-expired.gsm
-var/lib/asterisk/sounds/en/has-issued-a.gsm
-var/lib/asterisk/sounds/en/has-not-been-seen-for.gsm
-var/lib/asterisk/sounds/en/has.gsm
-var/lib/asterisk/sounds/en/hash.gsm
-var/lib/asterisk/sounds/en/hawaii.gsm
-var/lib/asterisk/sounds/en/headed-towards.gsm
-var/lib/asterisk/sounds/en/heading.gsm
-var/lib/asterisk/sounds/en/health-center.gsm
-var/lib/asterisk/sounds/en/hear-odd-noise.gsm
-var/lib/asterisk/sounds/en/hear-toilet-flush.gsm
-var/lib/asterisk/sounds/en/hectopascal.gsm
-var/lib/asterisk/sounds/en/hello-world.gsm
-var/lib/asterisk/sounds/en/hello.gsm
-var/lib/asterisk/sounds/en/helpdesk.gsm
-var/lib/asterisk/sounds/en/hertz.gsm
-var/lib/asterisk/sounds/en/high.gsm
-var/lib/asterisk/sounds/en/highway.gsm
-var/lib/asterisk/sounds/en/hit.gsm
-var/lib/asterisk/sounds/en/hold-or-dial-0.gsm
-var/lib/asterisk/sounds/en/home.gsm
-var/lib/asterisk/sounds/en/honolulu.gsm
-var/lib/asterisk/sounds/en/hours.gsm
-var/lib/asterisk/sounds/en/housekeeping.gsm
-var/lib/asterisk/sounds/en/houston.gsm
-var/lib/asterisk/sounds/en/http.gsm
-var/lib/asterisk/sounds/en/human-resources.gsm
-var/lib/asterisk/sounds/en/humidity.gsm
-var/lib/asterisk/sounds/en/hundredth.gsm
-var/lib/asterisk/sounds/en/hurricane.gsm
-var/lib/asterisk/sounds/en/hz.gsm
-var/lib/asterisk/sounds/en/i-dont-understand.gsm
-var/lib/asterisk/sounds/en/i-dont-understand2.gsm
-var/lib/asterisk/sounds/en/i-dont-understand3.gsm
-var/lib/asterisk/sounds/en/i-dont-understand4.gsm
-var/lib/asterisk/sounds/en/i-dont-understand5.gsm
-var/lib/asterisk/sounds/en/i-grow-bored.gsm
-var/lib/asterisk/sounds/en/ice.gsm
-var/lib/asterisk/sounds/en/icmp.gsm
-var/lib/asterisk/sounds/en/icy.gsm
-var/lib/asterisk/sounds/en/idaho.gsm
-var/lib/asterisk/sounds/en/if-correct-press.gsm
-var/lib/asterisk/sounds/en/if-grtg-played-indefinately.gsm
-var/lib/asterisk/sounds/en/if-grtg-should-expire-at.gsm
-var/lib/asterisk/sounds/en/if-maint-contract-or-emergency.gsm
-var/lib/asterisk/sounds/en/if-rotary-phone.gsm
-var/lib/asterisk/sounds/en/if-this-is-correct-press.gsm
-var/lib/asterisk/sounds/en/if-this-is-correct.gsm
-var/lib/asterisk/sounds/en/if-this-is-not-correct.gsm
-var/lib/asterisk/sounds/en/if-u-know-ext-dial.gsm
-var/lib/asterisk/sounds/en/if-unsuccessful-speak-to.gsm
-var/lib/asterisk/sounds/en/if-you-know-the.gsm
-var/lib/asterisk/sounds/en/if-you-need-help.gsm
-var/lib/asterisk/sounds/en/if-youd-like-to-make-a-call.gsm
-var/lib/asterisk/sounds/en/illinois.gsm
-var/lib/asterisk/sounds/en/im-sorry-unable-to-connect-to-eng.gsm
-var/lib/asterisk/sounds/en/im-sorry.gsm
-var/lib/asterisk/sounds/en/imap.gsm
-var/lib/asterisk/sounds/en/in-service.gsm
-var/lib/asterisk/sounds/en/in-the-line.gsm
-var/lib/asterisk/sounds/en/in-the-queue.gsm
-var/lib/asterisk/sounds/en/in-the.gsm
-var/lib/asterisk/sounds/en/in-your-city.gsm
-var/lib/asterisk/sounds/en/in-your-zip-code.gsm
-var/lib/asterisk/sounds/en/inbound.gsm
-var/lib/asterisk/sounds/en/indiana.gsm
-var/lib/asterisk/sounds/en/indianapolis.gsm
-var/lib/asterisk/sounds/en/indicated.gsm
-var/lib/asterisk/sounds/en/info-about-last-call.gsm
-var/lib/asterisk/sounds/en/information-technology.gsm
-var/lib/asterisk/sounds/en/information.gsm
-var/lib/asterisk/sounds/en/infuriate-tech-staff.gsm
-var/lib/asterisk/sounds/en/initiated.gsm
-var/lib/asterisk/sounds/en/initiating.gsm
-var/lib/asterisk/sounds/en/inside-sales.gsm
-var/lib/asterisk/sounds/en/internal-audit.gsm
-var/lib/asterisk/sounds/en/international-call.gsm
-var/lib/asterisk/sounds/en/interstate.gsm
-var/lib/asterisk/sounds/en/invalid-date.gsm
-var/lib/asterisk/sounds/en/invalid-featurecode.gsm
-var/lib/asterisk/sounds/en/invalid.gsm
-var/lib/asterisk/sounds/en/investor-relations.gsm
-var/lib/asterisk/sounds/en/iowa.gsm
-var/lib/asterisk/sounds/en/is-at.gsm
-var/lib/asterisk/sounds/en/is-curntly-busy.gsm
-var/lib/asterisk/sounds/en/is-curntly-unavail.gsm
-var/lib/asterisk/sounds/en/is-currently.gsm
-var/lib/asterisk/sounds/en/is-in-use.gsm
-var/lib/asterisk/sounds/en/is-not-in-the.gsm
-var/lib/asterisk/sounds/en/is-not-set.gsm
-var/lib/asterisk/sounds/en/is-now-being-recorded.gsm
-var/lib/asterisk/sounds/en/is-set-to.gsm
-var/lib/asterisk/sounds/en/is.gsm
-var/lib/asterisk/sounds/en/it-now.gsm
-var/lib/asterisk/sounds/en/it-services.gsm
-var/lib/asterisk/sounds/en/jacksonville.gsm
-var/lib/asterisk/sounds/en/janitorial.gsm
-var/lib/asterisk/sounds/en/jason.gsm
-var/lib/asterisk/sounds/en/jedi-extension-trick.gsm
-var/lib/asterisk/sounds/en/john.gsm
-var/lib/asterisk/sounds/en/just-kidding-not-upset.gsm
-var/lib/asterisk/sounds/en/just-kidding-not-upset2.gsm
-var/lib/asterisk/sounds/en/kansas-city.gsm
-var/lib/asterisk/sounds/en/kansas.gsm
-var/lib/asterisk/sounds/en/kentucky.gsm
-var/lib/asterisk/sounds/en/keywords_cross_fingers.gsm
-var/lib/asterisk/sounds/en/kilobits.gsm
-var/lib/asterisk/sounds/en/kilobytes.gsm
-var/lib/asterisk/sounds/en/kilohertz.gsm
-var/lib/asterisk/sounds/en/kilometer.gsm
-var/lib/asterisk/sounds/en/kilometers-per-hour.gsm
-var/lib/asterisk/sounds/en/knock-knock.gsm
-var/lib/asterisk/sounds/en/knots.gsm
-var/lib/asterisk/sounds/en/language.gsm
-var/lib/asterisk/sounds/en/las-vegas.gsm
-var/lib/asterisk/sounds/en/last-error-was.gsm
-var/lib/asterisk/sounds/en/last-num-to-call.gsm
-var/lib/asterisk/sounds/en/late.gsm
-var/lib/asterisk/sounds/en/later.gsm
-var/lib/asterisk/sounds/en/lea-may-request-info.gsm
-var/lib/asterisk/sounds/en/left-bracket.gsm
-var/lib/asterisk/sounds/en/legal.gsm
-var/lib/asterisk/sounds/en/len.gsm
-var/lib/asterisk/sounds/en/less-than.gsm
-var/lib/asterisk/sounds/en/letters
-var/lib/asterisk/sounds/en/letters/a.gsm
-var/lib/asterisk/sounds/en/letters/ascii123.gsm
-var/lib/asterisk/sounds/en/letters/ascii124.gsm
-var/lib/asterisk/sounds/en/letters/ascii125.gsm
-var/lib/asterisk/sounds/en/letters/ascii126.gsm
-var/lib/asterisk/sounds/en/letters/ascii34.gsm
-var/lib/asterisk/sounds/en/letters/ascii36.gsm
-var/lib/asterisk/sounds/en/letters/ascii37.gsm
-var/lib/asterisk/sounds/en/letters/ascii38.gsm
-var/lib/asterisk/sounds/en/letters/ascii39.gsm
-var/lib/asterisk/sounds/en/letters/ascii40.gsm
-var/lib/asterisk/sounds/en/letters/ascii41.gsm
-var/lib/asterisk/sounds/en/letters/ascii42.gsm
-var/lib/asterisk/sounds/en/letters/ascii44.gsm
-var/lib/asterisk/sounds/en/letters/ascii58.gsm
-var/lib/asterisk/sounds/en/letters/ascii59.gsm
-var/lib/asterisk/sounds/en/letters/ascii60.gsm
-var/lib/asterisk/sounds/en/letters/ascii62.gsm
-var/lib/asterisk/sounds/en/letters/ascii63.gsm
-var/lib/asterisk/sounds/en/letters/ascii91.gsm
-var/lib/asterisk/sounds/en/letters/ascii92.gsm
-var/lib/asterisk/sounds/en/letters/ascii93.gsm
-var/lib/asterisk/sounds/en/letters/ascii94.gsm
-var/lib/asterisk/sounds/en/letters/ascii95.gsm
-var/lib/asterisk/sounds/en/letters/ascii96.gsm
-var/lib/asterisk/sounds/en/letters/asterisk.gsm
-var/lib/asterisk/sounds/en/letters/at.gsm
-var/lib/asterisk/sounds/en/letters/b.gsm
-var/lib/asterisk/sounds/en/letters/c.gsm
-var/lib/asterisk/sounds/en/letters/d.gsm
-var/lib/asterisk/sounds/en/letters/dash.gsm
-var/lib/asterisk/sounds/en/letters/dollar.gsm
-var/lib/asterisk/sounds/en/letters/dot.gsm
-var/lib/asterisk/sounds/en/letters/e.gsm
-var/lib/asterisk/sounds/en/letters/equals.gsm
-var/lib/asterisk/sounds/en/letters/exclaimation-point.gsm
-var/lib/asterisk/sounds/en/letters/f.gsm
-var/lib/asterisk/sounds/en/letters/g.gsm
-var/lib/asterisk/sounds/en/letters/h.gsm
-var/lib/asterisk/sounds/en/letters/i.gsm
-var/lib/asterisk/sounds/en/letters/j.gsm
-var/lib/asterisk/sounds/en/letters/k.gsm
-var/lib/asterisk/sounds/en/letters/l.gsm
-var/lib/asterisk/sounds/en/letters/m.gsm
-var/lib/asterisk/sounds/en/letters/n.gsm
-var/lib/asterisk/sounds/en/letters/o.gsm
-var/lib/asterisk/sounds/en/letters/p.gsm
-var/lib/asterisk/sounds/en/letters/plus.gsm
-var/lib/asterisk/sounds/en/letters/q.gsm
-var/lib/asterisk/sounds/en/letters/r.gsm
-var/lib/asterisk/sounds/en/letters/s.gsm
-var/lib/asterisk/sounds/en/letters/slash.gsm
-var/lib/asterisk/sounds/en/letters/space.gsm
-var/lib/asterisk/sounds/en/letters/t.gsm
-var/lib/asterisk/sounds/en/letters/u.gsm
-var/lib/asterisk/sounds/en/letters/v.gsm
-var/lib/asterisk/sounds/en/letters/w.gsm
-var/lib/asterisk/sounds/en/letters/x.gsm
-var/lib/asterisk/sounds/en/letters/y.gsm
-var/lib/asterisk/sounds/en/letters/z.gsm
-var/lib/asterisk/sounds/en/letters/zed.gsm
-var/lib/asterisk/sounds/en/library.gsm
-var/lib/asterisk/sounds/en/lightning.gsm
-var/lib/asterisk/sounds/en/like_to_tell_valid_ext.gsm
-var/lib/asterisk/sounds/en/limit-simul-calls.gsm
-var/lib/asterisk/sounds/en/lines-complaining-customers.gsm
-var/lib/asterisk/sounds/en/linux.gsm
-var/lib/asterisk/sounds/en/list.gsm
-var/lib/asterisk/sounds/en/load-average.gsm
-var/lib/asterisk/sounds/en/local-authorities.gsm
-var/lib/asterisk/sounds/en/location.gsm
-var/lib/asterisk/sounds/en/login-fail.gsm
-var/lib/asterisk/sounds/en/long-beach.gsm
-var/lib/asterisk/sounds/en/los-angeles.gsm
-var/lib/asterisk/sounds/en/loss-prevention.gsm
-var/lib/asterisk/sounds/en/loss.gsm
-var/lib/asterisk/sounds/en/lots-o-monkeys.gsm
-var/lib/asterisk/sounds/en/louisiana.gsm
-var/lib/asterisk/sounds/en/low.gsm
-var/lib/asterisk/sounds/en/lowercase.gsm
-var/lib/asterisk/sounds/en/lunch.gsm
-var/lib/asterisk/sounds/en/lyrics-louie-louie.gsm
-var/lib/asterisk/sounds/en/machine.gsm
-var/lib/asterisk/sounds/en/made-it-up.gsm
-var/lib/asterisk/sounds/en/mail.gsm
-var/lib/asterisk/sounds/en/mailroom.gsm
-var/lib/asterisk/sounds/en/main-menu.gsm
-var/lib/asterisk/sounds/en/maine.gsm
-var/lib/asterisk/sounds/en/maintenance.gsm
-var/lib/asterisk/sounds/en/male.gsm
-var/lib/asterisk/sounds/en/management.gsm
-var/lib/asterisk/sounds/en/manufacturing.gsm
-var/lib/asterisk/sounds/en/marketing.gsm
-var/lib/asterisk/sounds/en/marryme.gsm
-var/lib/asterisk/sounds/en/martini.gsm
-var/lib/asterisk/sounds/en/maryland.gsm
-var/lib/asterisk/sounds/en/massachusetts.gsm
-var/lib/asterisk/sounds/en/mathematics.gsm
-var/lib/asterisk/sounds/en/maximum.gsm
-var/lib/asterisk/sounds/en/megabits.gsm
-var/lib/asterisk/sounds/en/megabytes.gsm
-var/lib/asterisk/sounds/en/megahertz.gsm
-var/lib/asterisk/sounds/en/memory.gsm
-var/lib/asterisk/sounds/en/memphis.gsm
-var/lib/asterisk/sounds/en/menu.gsm
-var/lib/asterisk/sounds/en/mesa.gsm
-var/lib/asterisk/sounds/en/message-from.gsm
-var/lib/asterisk/sounds/en/message-number.gsm
-var/lib/asterisk/sounds/en/messages_curious.gsm
-var/lib/asterisk/sounds/en/meter.gsm
-var/lib/asterisk/sounds/en/meters.gsm
-var/lib/asterisk/sounds/en/miami.gsm
-var/lib/asterisk/sounds/en/michigan.gsm
-var/lib/asterisk/sounds/en/midnight-tomorrow-night.gsm
-var/lib/asterisk/sounds/en/midnight-tonight.gsm
-var/lib/asterisk/sounds/en/midnight.gsm
-var/lib/asterisk/sounds/en/mike.gsm
-var/lib/asterisk/sounds/en/miles-per-hour.gsm
-var/lib/asterisk/sounds/en/miles.gsm
-var/lib/asterisk/sounds/en/millionth.gsm
-var/lib/asterisk/sounds/en/milwaukee.gsm
-var/lib/asterisk/sounds/en/mind_repeating.gsm
-var/lib/asterisk/sounds/en/minimum.gsm
-var/lib/asterisk/sounds/en/minions-not-answering-leave-message.gsm
-var/lib/asterisk/sounds/en/minneapolis.gsm
-var/lib/asterisk/sounds/en/minnesota.gsm
-var/lib/asterisk/sounds/en/minute.gsm
-var/lib/asterisk/sounds/en/minutes.gsm
-var/lib/asterisk/sounds/en/missed.gsm
-var/lib/asterisk/sounds/en/mississippi.gsm
-var/lib/asterisk/sounds/en/missouri.gsm
-var/lib/asterisk/sounds/en/misty.gsm
-var/lib/asterisk/sounds/en/mode.gsm
-var/lib/asterisk/sounds/en/monitored.gsm
-var/lib/asterisk/sounds/en/montana.gsm
-var/lib/asterisk/sounds/en/month.gsm
-var/lib/asterisk/sounds/en/months.gsm
-var/lib/asterisk/sounds/en/moo1.gsm
-var/lib/asterisk/sounds/en/moo2.gsm
-var/lib/asterisk/sounds/en/morning.gsm
-var/lib/asterisk/sounds/en/moron.gsm
-var/lib/asterisk/sounds/en/mostly.gsm
-var/lib/asterisk/sounds/en/motor-pool.gsm
-var/lib/asterisk/sounds/en/mountain.gsm
-var/lib/asterisk/sounds/en/moving.gsm
-var/lib/asterisk/sounds/en/ms.gsm
-var/lib/asterisk/sounds/en/nashville.gsm
-var/lib/asterisk/sounds/en/national-weather-service.gsm
-var/lib/asterisk/sounds/en/nautical-miles.gsm
-var/lib/asterisk/sounds/en/nbdy-avail-to-take-call.gsm
-var/lib/asterisk/sounds/en/near.gsm
-var/lib/asterisk/sounds/en/nebraska.gsm
-var/lib/asterisk/sounds/en/negative.gsm
-var/lib/asterisk/sounds/en/network-operations-center.gsm
-var/lib/asterisk/sounds/en/network-operations.gsm
-var/lib/asterisk/sounds/en/nevada.gsm
-var/lib/asterisk/sounds/en/new-accounts.gsm
-var/lib/asterisk/sounds/en/new-hampshire.gsm
-var/lib/asterisk/sounds/en/new-jersey.gsm
-var/lib/asterisk/sounds/en/new-mexico.gsm
-var/lib/asterisk/sounds/en/new-orleans.gsm
-var/lib/asterisk/sounds/en/new-york.gsm
-var/lib/asterisk/sounds/en/night.gsm
-var/lib/asterisk/sounds/en/nineteenth.gsm
-var/lib/asterisk/sounds/en/ninetieth.gsm
-var/lib/asterisk/sounds/en/ninth.gsm
-var/lib/asterisk/sounds/en/no-112-1.gsm
-var/lib/asterisk/sounds/en/no-112-2.gsm
-var/lib/asterisk/sounds/en/no-911-1.gsm
-var/lib/asterisk/sounds/en/no-911-2.gsm
-var/lib/asterisk/sounds/en/no-empty-conferences.gsm
-var/lib/asterisk/sounds/en/no-info-about-number.gsm
-var/lib/asterisk/sounds/en/no-longer-in-service.gsm
-var/lib/asterisk/sounds/en/no-reply-no-mailbox.gsm
-var/lib/asterisk/sounds/en/no-route-exists-to-dest.gsm
-var/lib/asterisk/sounds/en/no_invite_to_conf.gsm
-var/lib/asterisk/sounds/en/no_longer_conf.gsm
-var/lib/asterisk/sounds/en/no_problem_help.gsm
-var/lib/asterisk/sounds/en/no_worries_try_again.gsm
-var/lib/asterisk/sounds/en/nobody-but-chickens.gsm
-var/lib/asterisk/sounds/en/node.gsm
-var/lib/asterisk/sounds/en/none_of_my_business1.gsm
-var/lib/asterisk/sounds/en/none_of_my_business2.gsm
-var/lib/asterisk/sounds/en/north-carolina.gsm
-var/lib/asterisk/sounds/en/north-dakota.gsm
-var/lib/asterisk/sounds/en/north.gsm
-var/lib/asterisk/sounds/en/northerly.gsm
-var/lib/asterisk/sounds/en/not-auth-pstn.gsm
-var/lib/asterisk/sounds/en/not-enough-credit.gsm
-var/lib/asterisk/sounds/en/not-necessary-1.gsm
-var/lib/asterisk/sounds/en/not-necessary-ac.gsm
-var/lib/asterisk/sounds/en/not-necessary-dial-1-or-ac.gsm
-var/lib/asterisk/sounds/en/not-rqsted-wakeup.gsm
-var/lib/asterisk/sounds/en/not-taking-your-call.gsm
-var/lib/asterisk/sounds/en/not-yet-assigned.gsm
-var/lib/asterisk/sounds/en/not-yet-connected.gsm
-var/lib/asterisk/sounds/en/not_me.gsm
-var/lib/asterisk/sounds/en/not_pass.gsm
-var/lib/asterisk/sounds/en/not_siri.gsm
-var/lib/asterisk/sounds/en/not_you.gsm
-var/lib/asterisk/sounds/en/nothing-recorded.gsm
-var/lib/asterisk/sounds/en/now.gsm
-var/lib/asterisk/sounds/en/num-not-in-db.gsm
-var/lib/asterisk/sounds/en/num-outside-area.gsm
-var/lib/asterisk/sounds/en/num-was-successfully.gsm
-var/lib/asterisk/sounds/en/number-not-answering.gsm
-var/lib/asterisk/sounds/en/number.gsm
-var/lib/asterisk/sounds/en/oakland.gsm
-var/lib/asterisk/sounds/en/octothorpe.gsm
-var/lib/asterisk/sounds/en/off-duty.gsm
-var/lib/asterisk/sounds/en/off.gsm
-var/lib/asterisk/sounds/en/office-code.gsm
-var/lib/asterisk/sounds/en/office-iguanas.gsm
-var/lib/asterisk/sounds/en/office.gsm
-var/lib/asterisk/sounds/en/ogm_home.gsm
-var/lib/asterisk/sounds/en/ohio.gsm
-var/lib/asterisk/sounds/en/oklahoma-city.gsm
-var/lib/asterisk/sounds/en/oklahoma.gsm
-var/lib/asterisk/sounds/en/omaha.gsm
-var/lib/asterisk/sounds/en/on-busy.gsm
-var/lib/asterisk/sounds/en/on-monthly-tel-stment.gsm
-var/lib/asterisk/sounds/en/on-no-answer.gsm
-var/lib/asterisk/sounds/en/on.gsm
-var/lib/asterisk/sounds/en/one-moment-please.gsm
-var/lib/asterisk/sounds/en/one-small-step.gsm
-var/lib/asterisk/sounds/en/one-small-step2.gsm
-var/lib/asterisk/sounds/en/oops1.gsm
-var/lib/asterisk/sounds/en/oops2.gsm
-var/lib/asterisk/sounds/en/oops3.gsm
-var/lib/asterisk/sounds/en/open-parenthesis.gsm
-var/lib/asterisk/sounds/en/open.gsm
-var/lib/asterisk/sounds/en/operations.gsm
-var/lib/asterisk/sounds/en/option-is-invalid.gsm
-var/lib/asterisk/sounds/en/option-not-implemented.gsm
-var/lib/asterisk/sounds/en/or-press.gsm
-var/lib/asterisk/sounds/en/or.gsm
-var/lib/asterisk/sounds/en/order-desk.gsm
-var/lib/asterisk/sounds/en/orders.gsm
-var/lib/asterisk/sounds/en/oregon.gsm
-var/lib/asterisk/sounds/en/other-options-exercise.gsm
-var/lib/asterisk/sounds/en/otherwise-press.gsm
-var/lib/asterisk/sounds/en/otherwise.gsm
-var/lib/asterisk/sounds/en/our-business-hours-are.gsm
-var/lib/asterisk/sounds/en/outbound.gsm
-var/lib/asterisk/sounds/en/outside-sales.gsm
-var/lib/asterisk/sounds/en/outside-transfer.gsm
-var/lib/asterisk/sounds/en/pacific.gsm
-var/lib/asterisk/sounds/en/packet.gsm
-var/lib/asterisk/sounds/en/panic.gsm
-var/lib/asterisk/sounds/en/partially.gsm
-var/lib/asterisk/sounds/en/partly.gsm
-var/lib/asterisk/sounds/en/pascal.gsm
-var/lib/asterisk/sounds/en/pascal2.gsm
-var/lib/asterisk/sounds/en/passwords_not_match.gsm
-var/lib/asterisk/sounds/en/patchy.gsm
-var/lib/asterisk/sounds/en/pbx-invalid.gsm
-var/lib/asterisk/sounds/en/pbx-invalidpark.gsm
-var/lib/asterisk/sounds/en/pbx-parkingfailed.gsm
-var/lib/asterisk/sounds/en/pbx-transfer.gsm
-var/lib/asterisk/sounds/en/pence.gsm
-var/lib/asterisk/sounds/en/pennies.gsm
-var/lib/asterisk/sounds/en/pennsylvania.gsm
-var/lib/asterisk/sounds/en/penny.gsm
-var/lib/asterisk/sounds/en/percent.gsm
-var/lib/asterisk/sounds/en/perhaps-we-are.gsm
-var/lib/asterisk/sounds/en/perhaps-we-are2.gsm
-var/lib/asterisk/sounds/en/period.gsm
-var/lib/asterisk/sounds/en/personnel.gsm
-var/lib/asterisk/sounds/en/persons-in-path-of.gsm
-var/lib/asterisk/sounds/en/philadelphia.gsm
-var/lib/asterisk/sounds/en/phoenix.gsm
-var/lib/asterisk/sounds/en/phonetic
-var/lib/asterisk/sounds/en/phonetic/9_p.gsm
-var/lib/asterisk/sounds/en/phonetic/a_p.gsm
-var/lib/asterisk/sounds/en/phonetic/b_p.gsm
-var/lib/asterisk/sounds/en/phonetic/c_p.gsm
-var/lib/asterisk/sounds/en/phonetic/d_p.gsm
-var/lib/asterisk/sounds/en/phonetic/e_p.gsm
-var/lib/asterisk/sounds/en/phonetic/f_p.gsm
-var/lib/asterisk/sounds/en/phonetic/g_p.gsm
-var/lib/asterisk/sounds/en/phonetic/h_p.gsm
-var/lib/asterisk/sounds/en/phonetic/i_p.gsm
-var/lib/asterisk/sounds/en/phonetic/j_p.gsm
-var/lib/asterisk/sounds/en/phonetic/k_p.gsm
-var/lib/asterisk/sounds/en/phonetic/l_p.gsm
-var/lib/asterisk/sounds/en/phonetic/m_p.gsm
-var/lib/asterisk/sounds/en/phonetic/n_p.gsm
-var/lib/asterisk/sounds/en/phonetic/o_p.gsm
-var/lib/asterisk/sounds/en/phonetic/p_p.gsm
-var/lib/asterisk/sounds/en/phonetic/q_p.gsm
-var/lib/asterisk/sounds/en/phonetic/r_p.gsm
-var/lib/asterisk/sounds/en/phonetic/s_p.gsm
-var/lib/asterisk/sounds/en/phonetic/t_p.gsm
-var/lib/asterisk/sounds/en/phonetic/u_p.gsm
-var/lib/asterisk/sounds/en/phonetic/v_p.gsm
-var/lib/asterisk/sounds/en/phonetic/w_p.gsm
-var/lib/asterisk/sounds/en/phonetic/x_p.gsm
-var/lib/asterisk/sounds/en/phonetic/y_p.gsm
-var/lib/asterisk/sounds/en/phonetic/z_p.gsm
-var/lib/asterisk/sounds/en/physics.gsm
-var/lib/asterisk/sounds/en/pin-invalid.gsm
-var/lib/asterisk/sounds/en/pin-number-accepted.gsm
-var/lib/asterisk/sounds/en/pin_number.gsm
-var/lib/asterisk/sounds/en/ping.gsm
-var/lib/asterisk/sounds/en/pipe.gsm
-var/lib/asterisk/sounds/en/planning.gsm
-var/lib/asterisk/sounds/en/please-answer-the-following.gsm
-var/lib/asterisk/sounds/en/please-contact-tech-supt.gsm
-var/lib/asterisk/sounds/en/please-enter-first-three-letters.gsm
-var/lib/asterisk/sounds/en/please-enter-the.gsm
-var/lib/asterisk/sounds/en/please-enter-your.gsm
-var/lib/asterisk/sounds/en/please-hang-up-and-dial-operator.gsm
-var/lib/asterisk/sounds/en/please-hang-up-and-try-again.gsm
-var/lib/asterisk/sounds/en/please-hold-minion-connect.gsm
-var/lib/asterisk/sounds/en/please-hold-while-minion.gsm
-var/lib/asterisk/sounds/en/please-try-again-later.gsm
-var/lib/asterisk/sounds/en/please-try-again.gsm
-var/lib/asterisk/sounds/en/please-try-call-later.gsm
-var/lib/asterisk/sounds/en/please-try.gsm
-var/lib/asterisk/sounds/en/please-wait-connect-oncall-eng.gsm
-var/lib/asterisk/sounds/en/pls-ent-num-transfer.gsm
-var/lib/asterisk/sounds/en/pls-enter-conf-password.gsm
-var/lib/asterisk/sounds/en/pls-enter-num-message-after-tone.gsm
-var/lib/asterisk/sounds/en/pls-enter-vm-password.gsm
-var/lib/asterisk/sounds/en/pls-entr-num-uwish2-call.gsm
-var/lib/asterisk/sounds/en/pls-hold-process-tx.gsm
-var/lib/asterisk/sounds/en/pls-hold-silent30.gsm
-var/lib/asterisk/sounds/en/pls-hold-while-try.gsm
-var/lib/asterisk/sounds/en/pls-listen-options-changed.gsm
-var/lib/asterisk/sounds/en/pls-lv-msg-will-contact.gsm
-var/lib/asterisk/sounds/en/pls-rcrd-name-at-tone.gsm
-var/lib/asterisk/sounds/en/pls-stay-on-line.gsm
-var/lib/asterisk/sounds/en/pls-try-again.gsm
-var/lib/asterisk/sounds/en/pls-try-area-code.gsm
-var/lib/asterisk/sounds/en/pls-try-manually.gsm
-var/lib/asterisk/sounds/en/pls-wait-connect-call.gsm
-var/lib/asterisk/sounds/en/plugh.gsm
-var/lib/asterisk/sounds/en/pm-announcement-number.gsm
-var/lib/asterisk/sounds/en/pm-invalid-option.gsm
-var/lib/asterisk/sounds/en/pm-phrase-management.gsm
-var/lib/asterisk/sounds/en/pm-prompt-number.gsm
-var/lib/asterisk/sounds/en/pm-to-record-phrase.gsm
-var/lib/asterisk/sounds/en/pm-to-review-phrase.gsm
-var/lib/asterisk/sounds/en/point.gsm
-var/lib/asterisk/sounds/en/pop.gsm
-var/lib/asterisk/sounds/en/port.gsm
-var/lib/asterisk/sounds/en/portland.gsm
-var/lib/asterisk/sounds/en/portnumber.gsm
-var/lib/asterisk/sounds/en/position.gsm
-var/lib/asterisk/sounds/en/post-entry-pound.gsm
-var/lib/asterisk/sounds/en/pounds.gsm
-var/lib/asterisk/sounds/en/presales-support.gsm
-var/lib/asterisk/sounds/en/presidents-office.gsm
-var/lib/asterisk/sounds/en/press-0.gsm
-var/lib/asterisk/sounds/en/press-1.gsm
-var/lib/asterisk/sounds/en/press-2.gsm
-var/lib/asterisk/sounds/en/press-3.gsm
-var/lib/asterisk/sounds/en/press-4.gsm
-var/lib/asterisk/sounds/en/press-5.gsm
-var/lib/asterisk/sounds/en/press-6-to-eject.gsm
-var/lib/asterisk/sounds/en/press-6.gsm
-var/lib/asterisk/sounds/en/press-7.gsm
-var/lib/asterisk/sounds/en/press-8.gsm
-var/lib/asterisk/sounds/en/press-9.gsm
-var/lib/asterisk/sounds/en/press-button-again.gsm
-var/lib/asterisk/sounds/en/press-enter.gsm
-var/lib/asterisk/sounds/en/press-escape.gsm
-var/lib/asterisk/sounds/en/press-hash.gsm
-var/lib/asterisk/sounds/en/press-or-say-0.gsm
-var/lib/asterisk/sounds/en/press-or-say-1.gsm
-var/lib/asterisk/sounds/en/press-or-say-2.gsm
-var/lib/asterisk/sounds/en/press-or-say-3.gsm
-var/lib/asterisk/sounds/en/press-or-say-4.gsm
-var/lib/asterisk/sounds/en/press-or-say-5.gsm
-var/lib/asterisk/sounds/en/press-or-say-6.gsm
-var/lib/asterisk/sounds/en/press-or-say-7.gsm
-var/lib/asterisk/sounds/en/press-or-say-8.gsm
-var/lib/asterisk/sounds/en/press-or-say-9.gsm
-var/lib/asterisk/sounds/en/press-pound-save-changes.gsm
-var/lib/asterisk/sounds/en/press-pound-to-login-star-to-hangup.gsm
-var/lib/asterisk/sounds/en/press-pound.gsm
-var/lib/asterisk/sounds/en/press-return.gsm
-var/lib/asterisk/sounds/en/press-star-cancel.gsm
-var/lib/asterisk/sounds/en/press-star.gsm
-var/lib/asterisk/sounds/en/press-the-space-bar.gsm
-var/lib/asterisk/sounds/en/press-tilde.gsm
-var/lib/asterisk/sounds/en/press.gsm
-var/lib/asterisk/sounds/en/press_pound_hash.gsm
-var/lib/asterisk/sounds/en/press_pound_hash_key.gsm
-var/lib/asterisk/sounds/en/pressure.gsm
-var/lib/asterisk/sounds/en/prime_number.gsm
-var/lib/asterisk/sounds/en/printing.gsm
-var/lib/asterisk/sounds/en/priv-callee-options.gsm
-var/lib/asterisk/sounds/en/priv-callpending.gsm
-var/lib/asterisk/sounds/en/priv-introsaved.gsm
-var/lib/asterisk/sounds/en/priv-recordintro.gsm
-var/lib/asterisk/sounds/en/privacy-blacklisted.gsm
-var/lib/asterisk/sounds/en/privacy-blocked.gsm
-var/lib/asterisk/sounds/en/privacy-if-error-leave-message-or-hangup.gsm
-var/lib/asterisk/sounds/en/privacy-if-error.gsm
-var/lib/asterisk/sounds/en/privacy-if-sales-call-contact-in-writing.gsm
-var/lib/asterisk/sounds/en/privacy-incorrect.gsm
-var/lib/asterisk/sounds/en/privacy-last-caller-was.gsm
-var/lib/asterisk/sounds/en/privacy-not.gsm
-var/lib/asterisk/sounds/en/privacy-please-dial.gsm
-var/lib/asterisk/sounds/en/privacy-please-stay-on-line-to-be-connected.gsm
-var/lib/asterisk/sounds/en/privacy-prompt.gsm
-var/lib/asterisk/sounds/en/privacy-restricted-by-req.gsm
-var/lib/asterisk/sounds/en/privacy-screening-unidentified-calls.gsm
-var/lib/asterisk/sounds/en/privacy-stop-calling-not-welcome.gsm
-var/lib/asterisk/sounds/en/privacy-stop-calling-not-welcome2.gsm
-var/lib/asterisk/sounds/en/privacy-thankyou.gsm
-var/lib/asterisk/sounds/en/privacy-this-number-is.gsm
-var/lib/asterisk/sounds/en/privacy-to-blacklist-last-caller.gsm
-var/lib/asterisk/sounds/en/privacy-to-blacklist-this-number.gsm
-var/lib/asterisk/sounds/en/privacy-to-hear-our-contact-details.gsm
-var/lib/asterisk/sounds/en/privacy-to-whitelist-last-caller.gsm
-var/lib/asterisk/sounds/en/privacy-to-whitelist-this-number.gsm
-var/lib/asterisk/sounds/en/privacy-unident.gsm
-var/lib/asterisk/sounds/en/privacy-whitelisted.gsm
-var/lib/asterisk/sounds/en/privacy-you-are-blacklisted.gsm
-var/lib/asterisk/sounds/en/privacy-you-are-calling-from.gsm
-var/lib/asterisk/sounds/en/privacy-your-callerid-is.gsm
-var/lib/asterisk/sounds/en/product.gsm
-var/lib/asterisk/sounds/en/production.gsm
-var/lib/asterisk/sounds/en/projects.gsm
-var/lib/asterisk/sounds/en/prompt-not-found.gsm
-var/lib/asterisk/sounds/en/protocol.gsm
-var/lib/asterisk/sounds/en/public-relations.gsm
-var/lib/asterisk/sounds/en/purchasing.gsm
-var/lib/asterisk/sounds/en/purposes.gsm
-var/lib/asterisk/sounds/en/q-dot-931.gsm
-var/lib/asterisk/sounds/en/q-dot-9thirty1.gsm
-var/lib/asterisk/sounds/en/quality-assurance.gsm
-var/lib/asterisk/sounds/en/quality-control.gsm
-var/lib/asterisk/sounds/en/quality_control.gsm
-var/lib/asterisk/sounds/en/quarter.gsm
-var/lib/asterisk/sounds/en/queue-callswaiting.gsm
-var/lib/asterisk/sounds/en/queue-holdtime.gsm
-var/lib/asterisk/sounds/en/queue-less-than.gsm
-var/lib/asterisk/sounds/en/queue-minute.gsm
-var/lib/asterisk/sounds/en/queue-minutes.gsm
-var/lib/asterisk/sounds/en/queue-periodic-announce.gsm
-var/lib/asterisk/sounds/en/queue-quantity1.gsm
-var/lib/asterisk/sounds/en/queue-quantity2.gsm
-var/lib/asterisk/sounds/en/queue-reporthold.gsm
-var/lib/asterisk/sounds/en/queue-seconds.gsm
-var/lib/asterisk/sounds/en/queue-thankyou.gsm
-var/lib/asterisk/sounds/en/queue-thereare.gsm
-var/lib/asterisk/sounds/en/queue-youarenext.gsm
-var/lib/asterisk/sounds/en/quickly.gsm
-var/lib/asterisk/sounds/en/quote.gsm
-var/lib/asterisk/sounds/en/race.gsm
-var/lib/asterisk/sounds/en/rain.gsm
-var/lib/asterisk/sounds/en/rainfall.gsm
-var/lib/asterisk/sounds/en/rainy.gsm
-var/lib/asterisk/sounds/en/range.gsm
-var/lib/asterisk/sounds/en/reassigned-new-areacode.gsm
-var/lib/asterisk/sounds/en/rebates.gsm
-var/lib/asterisk/sounds/en/received.gsm
-var/lib/asterisk/sounds/en/receiving.gsm
-var/lib/asterisk/sounds/en/reception.gsm
-var/lib/asterisk/sounds/en/recorded.gsm
-var/lib/asterisk/sounds/en/registrar.gsm
-var/lib/asterisk/sounds/en/regret_not_saved.gsm
-var/lib/asterisk/sounds/en/remote-already-in-this-mode-2.gsm
-var/lib/asterisk/sounds/en/remote-already-in-this-mode.gsm
-var/lib/asterisk/sounds/en/remote-base.gsm
-var/lib/asterisk/sounds/en/removed.gsm
-var/lib/asterisk/sounds/en/repair.gsm
-var/lib/asterisk/sounds/en/repeat-only.gsm
-var/lib/asterisk/sounds/en/repeat_pin.gsm
-var/lib/asterisk/sounds/en/repeater.gsm
-var/lib/asterisk/sounds/en/research-and-development.gsm
-var/lib/asterisk/sounds/en/research.gsm
-var/lib/asterisk/sounds/en/reservations.gsm
-var/lib/asterisk/sounds/en/restarting.gsm
-var/lib/asterisk/sounds/en/rhode-island.gsm
-var/lib/asterisk/sounds/en/right-bracket.gsm
-var/lib/asterisk/sounds/en/rising.gsm
-var/lib/asterisk/sounds/en/risk-management.gsm
-var/lib/asterisk/sounds/en/roaming.gsm
-var/lib/asterisk/sounds/en/room-service.gsm
-var/lib/asterisk/sounds/en/route-sip.gsm
-var/lib/asterisk/sounds/en/rqsted-wakeup-for.gsm
-var/lib/asterisk/sounds/en/sacramento.gsm
-var/lib/asterisk/sounds/en/said_hold_on.gsm
-var/lib/asterisk/sounds/en/saint-louis.gsm
-var/lib/asterisk/sounds/en/sales-floor.gsm
-var/lib/asterisk/sounds/en/sales.gsm
-var/lib/asterisk/sounds/en/saleshell.gsm
-var/lib/asterisk/sounds/en/san-antonio.gsm
-var/lib/asterisk/sounds/en/san-diego.gsm
-var/lib/asterisk/sounds/en/san-francisco.gsm
-var/lib/asterisk/sounds/en/san-jose.gsm
-var/lib/asterisk/sounds/en/save-announce-press.gsm
-var/lib/asterisk/sounds/en/say-temp-msg-prs-pound.gsm
-var/lib/asterisk/sounds/en/says-thats-stupid.gsm
-var/lib/asterisk/sounds/en/scattered.gsm
-var/lib/asterisk/sounds/en/sciences.gsm
-var/lib/asterisk/sounds/en/screen-callee-options.gsm
-var/lib/asterisk/sounds/en/seattle.gsm
-var/lib/asterisk/sounds/en/second.gsm
-var/lib/asterisk/sounds/en/seconds.gsm
-var/lib/asterisk/sounds/en/secretary.gsm
-var/lib/asterisk/sounds/en/security.gsm
-var/lib/asterisk/sounds/en/self-destruct-in.gsm
-var/lib/asterisk/sounds/en/self-destruct.gsm
-var/lib/asterisk/sounds/en/sendhelp.gsm
-var/lib/asterisk/sounds/en/server.gsm
-var/lib/asterisk/sounds/en/service-not-implemented.gsm
-var/lib/asterisk/sounds/en/service.gsm
-var/lib/asterisk/sounds/en/seventeenth.gsm
-var/lib/asterisk/sounds/en/seventh.gsm
-var/lib/asterisk/sounds/en/seventieth.gsm
-var/lib/asterisk/sounds/en/severe.gsm
-var/lib/asterisk/sounds/en/shall-i-try-again.gsm
-var/lib/asterisk/sounds/en/shiny-brass-lamp.gsm
-var/lib/asterisk/sounds/en/shipping.gsm
-var/lib/asterisk/sounds/en/shop.gsm
-var/lib/asterisk/sounds/en/show-office.gsm
-var/lib/asterisk/sounds/en/sighted.gsm
-var/lib/asterisk/sounds/en/silence
-var/lib/asterisk/sounds/en/silence/1.gsm
-var/lib/asterisk/sounds/en/silence/10.gsm
-var/lib/asterisk/sounds/en/silence/2.gsm
-var/lib/asterisk/sounds/en/silence/3.gsm
-var/lib/asterisk/sounds/en/silence/4.gsm
-var/lib/asterisk/sounds/en/silence/5.gsm
-var/lib/asterisk/sounds/en/silence/6.gsm
-var/lib/asterisk/sounds/en/silence/7.gsm
-var/lib/asterisk/sounds/en/silence/8.gsm
-var/lib/asterisk/sounds/en/silence/9.gsm
-var/lib/asterisk/sounds/en/simplex.gsm
-var/lib/asterisk/sounds/en/simul-call-limit-reached.gsm
-var/lib/asterisk/sounds/en/sixteenth.gsm
-var/lib/asterisk/sounds/en/sixth.gsm
-var/lib/asterisk/sounds/en/sixtieth.gsm
-var/lib/asterisk/sounds/en/sleet.gsm
-var/lib/asterisk/sounds/en/sleeting.gsm
-var/lib/asterisk/sounds/en/slow.gsm
-var/lib/asterisk/sounds/en/slowly.gsm
-var/lib/asterisk/sounds/en/snow.gsm
-var/lib/asterisk/sounds/en/snowing.gsm
-var/lib/asterisk/sounds/en/snowy.gsm
-var/lib/asterisk/sounds/en/software.gsm
-var/lib/asterisk/sounds/en/someone-you-trust1.gsm
-var/lib/asterisk/sounds/en/someone-you-trust2.gsm
-var/lib/asterisk/sounds/en/someone-you-trust3.gsm
-var/lib/asterisk/sounds/en/something-terribly-wrong.gsm
-var/lib/asterisk/sounds/en/sorry-cant-let-you-do-that.gsm
-var/lib/asterisk/sounds/en/sorry-cant-let-you-do-that2.gsm
-var/lib/asterisk/sounds/en/sorry-cant-let-you-do-that3.gsm
-var/lib/asterisk/sounds/en/sorry-mailbox-full.gsm
-var/lib/asterisk/sounds/en/sorry-youre-having-problems.gsm
-var/lib/asterisk/sounds/en/sorry.gsm
-var/lib/asterisk/sounds/en/sorry2.gsm
-var/lib/asterisk/sounds/en/sorry_caller_number.gsm
-var/lib/asterisk/sounds/en/sorry_didnt_get.gsm
-var/lib/asterisk/sounds/en/sorry_didnt_quite_get.gsm
-var/lib/asterisk/sounds/en/sorry_login_incorrect.gsm
-var/lib/asterisk/sounds/en/sorry_missed.gsm
-var/lib/asterisk/sounds/en/sorry_no_messages.gsm
-var/lib/asterisk/sounds/en/sorrydave.gsm
-var/lib/asterisk/sounds/en/south-carolina.gsm
-var/lib/asterisk/sounds/en/south-dakota.gsm
-var/lib/asterisk/sounds/en/south.gsm
-var/lib/asterisk/sounds/en/southerly.gsm
-var/lib/asterisk/sounds/en/spam.gsm
-var/lib/asterisk/sounds/en/spam2.gsm
-var/lib/asterisk/sounds/en/speak-louder-into-phone.gsm
-var/lib/asterisk/sounds/en/speak-louder.gsm
-var/lib/asterisk/sounds/en/speak-to-the-operator.gsm
-var/lib/asterisk/sounds/en/speed-dial-empty.gsm
-var/lib/asterisk/sounds/en/speed-dial.gsm
-var/lib/asterisk/sounds/en/speed.gsm
-var/lib/asterisk/sounds/en/splat.gsm
-var/lib/asterisk/sounds/en/spy-agent.gsm
-var/lib/asterisk/sounds/en/spy-console.gsm
-var/lib/asterisk/sounds/en/spy-dahdi.gsm
-var/lib/asterisk/sounds/en/spy-h323.gsm
-var/lib/asterisk/sounds/en/spy-iax.gsm
-var/lib/asterisk/sounds/en/spy-iax2.gsm
-var/lib/asterisk/sounds/en/spy-jingle.gsm
-var/lib/asterisk/sounds/en/spy-local.gsm
-var/lib/asterisk/sounds/en/spy-mgcp.gsm
-var/lib/asterisk/sounds/en/spy-misdn.gsm
-var/lib/asterisk/sounds/en/spy-mobile.gsm
-var/lib/asterisk/sounds/en/spy-nbs.gsm
-var/lib/asterisk/sounds/en/spy-sip.gsm
-var/lib/asterisk/sounds/en/spy-skinny.gsm
-var/lib/asterisk/sounds/en/spy-unistim.gsm
-var/lib/asterisk/sounds/en/spy-usbradio.gsm
-var/lib/asterisk/sounds/en/spy-zap.gsm
-var/lib/asterisk/sounds/en/ss-noservice.gsm
-var/lib/asterisk/sounds/en/ssh.gsm
-var/lib/asterisk/sounds/en/staff.gsm
-var/lib/asterisk/sounds/en/staffing.gsm
-var/lib/asterisk/sounds/en/standard.gsm
-var/lib/asterisk/sounds/en/star-for-menu-again.gsm
-var/lib/asterisk/sounds/en/starting-with-either.gsm
-var/lib/asterisk/sounds/en/station.gsm
-var/lib/asterisk/sounds/en/status.gsm
-var/lib/asterisk/sounds/en/step-in-stream.gsm
-var/lib/asterisk/sounds/en/sterling.gsm
-var/lib/asterisk/sounds/en/still_on_phone.gsm
-var/lib/asterisk/sounds/en/store-accounting.gsm
-var/lib/asterisk/sounds/en/storm.gsm
-var/lib/asterisk/sounds/en/sun.gsm
-var/lib/asterisk/sounds/en/sunny.gsm
-var/lib/asterisk/sounds/en/support.gsm
-var/lib/asterisk/sounds/en/sure_help.gsm
-var/lib/asterisk/sounds/en/swap.gsm
-var/lib/asterisk/sounds/en/system-crashed.gsm
-var/lib/asterisk/sounds/en/system-status-msg.gsm
-var/lib/asterisk/sounds/en/system.gsm
-var/lib/asterisk/sounds/en/systems.gsm
-var/lib/asterisk/sounds/en/talkin_me.gsm
-var/lib/asterisk/sounds/en/talking-to-myself.gsm
-var/lib/asterisk/sounds/en/target-attendant.gsm
-var/lib/asterisk/sounds/en/tcp.gsm
-var/lib/asterisk/sounds/en/technical-support.gsm
-var/lib/asterisk/sounds/en/telemarketercalling.gsm
-var/lib/asterisk/sounds/en/telephone-in-your-pocket.gsm
-var/lib/asterisk/sounds/en/telephone-in-your-pocket2.gsm
-var/lib/asterisk/sounds/en/telephone-number.gsm
-var/lib/asterisk/sounds/en/telesales.gsm
-var/lib/asterisk/sounds/en/teletubbie-murder.gsm
-var/lib/asterisk/sounds/en/telnet.gsm
-var/lib/asterisk/sounds/en/temp-disconnected.gsm
-var/lib/asterisk/sounds/en/temperature.gsm
-var/lib/asterisk/sounds/en/tennessee.gsm
-var/lib/asterisk/sounds/en/tenth.gsm
-var/lib/asterisk/sounds/en/terabits.gsm
-var/lib/asterisk/sounds/en/terabytes.gsm
-var/lib/asterisk/sounds/en/terminated.gsm
-var/lib/asterisk/sounds/en/terminating.gsm
-var/lib/asterisk/sounds/en/test-tones-follow.gsm
-var/lib/asterisk/sounds/en/texas.gsm
-var/lib/asterisk/sounds/en/thank-you-cooperation.gsm
-var/lib/asterisk/sounds/en/thank-you-for-calling.gsm
-var/lib/asterisk/sounds/en/thank_you_calling.gsm
-var/lib/asterisk/sounds/en/thanks-annoyance.gsm
-var/lib/asterisk/sounds/en/thanks-for-calling-today.gsm
-var/lib/asterisk/sounds/en/thanks-for-using.gsm
-var/lib/asterisk/sounds/en/that-is-not-rec-phn-num.gsm
-var/lib/asterisk/sounds/en/that-number.gsm
-var/lib/asterisk/sounds/en/that-tickles.gsm
-var/lib/asterisk/sounds/en/that-you-require.gsm
-var/lib/asterisk/sounds/en/the-mailbox.gsm
-var/lib/asterisk/sounds/en/the-monkeys-twice.gsm
-var/lib/asterisk/sounds/en/the-new-number-is.gsm
-var/lib/asterisk/sounds/en/the-next.gsm
-var/lib/asterisk/sounds/en/the-num-i-have-is.gsm
-var/lib/asterisk/sounds/en/the-number-u-dialed.gsm
-var/lib/asterisk/sounds/en/the-party-you-are-calling.gsm
-var/lib/asterisk/sounds/en/the-weather-at.gsm
-var/lib/asterisk/sounds/en/then-press-pound.gsm
-var/lib/asterisk/sounds/en/there-are.gsm
-var/lib/asterisk/sounds/en/there-is-no-customer-support.gsm
-var/lib/asterisk/sounds/en/these-are-currently.gsm
-var/lib/asterisk/sounds/en/third.gsm
-var/lib/asterisk/sounds/en/thirteenth.gsm
-var/lib/asterisk/sounds/en/thirtieth.gsm
-var/lib/asterisk/sounds/en/this-call-may-be-monitored-or-recorded.gsm
-var/lib/asterisk/sounds/en/this-call-may-be.gsm
-var/lib/asterisk/sounds/en/this-call-will-cost.gsm
-var/lib/asterisk/sounds/en/this-call-will-end-in.gsm
-var/lib/asterisk/sounds/en/this-is-the-voice-mail-system.gsm
-var/lib/asterisk/sounds/en/this-is-yr-wakeup-call.gsm
-var/lib/asterisk/sounds/en/this.gsm
-var/lib/asterisk/sounds/en/thnk-u-for-patience.gsm
-var/lib/asterisk/sounds/en/thousandth.gsm
-var/lib/asterisk/sounds/en/through.gsm
-var/lib/asterisk/sounds/en/thunderstorm.gsm
-var/lib/asterisk/sounds/en/tide.gsm
-var/lib/asterisk/sounds/en/time.gsm
-var/lib/asterisk/sounds/en/times.gsm
-var/lib/asterisk/sounds/en/timewarp.gsm
-var/lib/asterisk/sounds/en/to-accept-recording.gsm
-var/lib/asterisk/sounds/en/to-be-called-back.gsm
-var/lib/asterisk/sounds/en/to-blklist-last-caller.gsm
-var/lib/asterisk/sounds/en/to-blklist-last-num.gsm
-var/lib/asterisk/sounds/en/to-call-num-press.gsm
-var/lib/asterisk/sounds/en/to-call-prson-w-sent-msg.gsm
-var/lib/asterisk/sounds/en/to-call-this-number.gsm
-var/lib/asterisk/sounds/en/to-cancel-this-msg.gsm
-var/lib/asterisk/sounds/en/to-cancel-wakeup.gsm
-var/lib/asterisk/sounds/en/to-change-exp-date.gsm
-var/lib/asterisk/sounds/en/to-change-your-pin-number.gsm
-var/lib/asterisk/sounds/en/to-collect-voicemail.gsm
-var/lib/asterisk/sounds/en/to-compose-a-message.gsm
-var/lib/asterisk/sounds/en/to-confirm-wakeup.gsm
-var/lib/asterisk/sounds/en/to-dial-by-name-press.gsm
-var/lib/asterisk/sounds/en/to-dial-by-name.gsm
-var/lib/asterisk/sounds/en/to-enter-a-diff-number.gsm
-var/lib/asterisk/sounds/en/to-enter-a-number.gsm
-var/lib/asterisk/sounds/en/to-erase-yr-temp-grtg.gsm
-var/lib/asterisk/sounds/en/to-extension.gsm
-var/lib/asterisk/sounds/en/to-hang-up-2.gsm
-var/lib/asterisk/sounds/en/to-hang-up.gsm
-var/lib/asterisk/sounds/en/to-hear-callerid.gsm
-var/lib/asterisk/sounds/en/to-hear-menu-again.gsm
-var/lib/asterisk/sounds/en/to-hear-msg-again.gsm
-var/lib/asterisk/sounds/en/to-hear-msg-envelope.gsm
-var/lib/asterisk/sounds/en/to-hear-net-status.gsm
-var/lib/asterisk/sounds/en/to-hear-weather-status.gsm
-var/lib/asterisk/sounds/en/to-hear-your-account-balance.gsm
-var/lib/asterisk/sounds/en/to-join-a-meeting.gsm
-var/lib/asterisk/sounds/en/to-leave-message-for.gsm
-var/lib/asterisk/sounds/en/to-listen-to-it.gsm
-var/lib/asterisk/sounds/en/to-log-in-to-voice-mail.gsm
-var/lib/asterisk/sounds/en/to-place-outgoing-call.gsm
-var/lib/asterisk/sounds/en/to-reach-first-rep.gsm
-var/lib/asterisk/sounds/en/to-reach-operator.gsm
-var/lib/asterisk/sounds/en/to-rec-yr-temp-grtg.gsm
-var/lib/asterisk/sounds/en/to-record-call.gsm
-var/lib/asterisk/sounds/en/to-redial-the-last-number-you-called.gsm
-var/lib/asterisk/sounds/en/to-report-emergency.gsm
-var/lib/asterisk/sounds/en/to-report-system-network-down.gsm
-var/lib/asterisk/sounds/en/to-rerecord-announce.gsm
-var/lib/asterisk/sounds/en/to-rerecord-it.gsm
-var/lib/asterisk/sounds/en/to-rerecord-yr-message.gsm
-var/lib/asterisk/sounds/en/to-rmv-num-blklist.gsm
-var/lib/asterisk/sounds/en/to-rqst-wakeup-call.gsm
-var/lib/asterisk/sounds/en/to-send-a-reply.gsm
-var/lib/asterisk/sounds/en/to-snooze-for.gsm
-var/lib/asterisk/sounds/en/to-use-def-attendant.gsm
-var/lib/asterisk/sounds/en/tomorrow-night.gsm
-var/lib/asterisk/sounds/en/tone_time.gsm
-var/lib/asterisk/sounds/en/tones-that-follow-are-for-the-deaf.gsm
-var/lib/asterisk/sounds/en/tonight.gsm
-var/lib/asterisk/sounds/en/too-low.gsm
-var/lib/asterisk/sounds/en/tornado.gsm
-var/lib/asterisk/sounds/en/touchtone1.gsm
-var/lib/asterisk/sounds/en/touchtone2.gsm
-var/lib/asterisk/sounds/en/touchtone3.gsm
-var/lib/asterisk/sounds/en/towards.gsm
-var/lib/asterisk/sounds/en/trading-desk.gsm
-var/lib/asterisk/sounds/en/traffic.gsm
-var/lib/asterisk/sounds/en/training.gsm
-var/lib/asterisk/sounds/en/transfer.gsm
-var/lib/asterisk/sounds/en/transfer_to_agent.gsm
-var/lib/asterisk/sounds/en/transportation.gsm
-var/lib/asterisk/sounds/en/travel.gsm
-var/lib/asterisk/sounds/en/treasury.gsm
-var/lib/asterisk/sounds/en/tt-allbusy.gsm
-var/lib/asterisk/sounds/en/tt-codezone.gsm
-var/lib/asterisk/sounds/en/tt-codezone_MIXDOWN.gsm
-var/lib/asterisk/sounds/en/tt-hangup.gsm
-var/lib/asterisk/sounds/en/tt-monkeys.gsm
-var/lib/asterisk/sounds/en/tt-monkeysintro.gsm
-var/lib/asterisk/sounds/en/tt-monty-knights.gsm
-var/lib/asterisk/sounds/en/tt-somethingwrong.gsm
-var/lib/asterisk/sounds/en/tt-weasels.gsm
-var/lib/asterisk/sounds/en/tucson.gsm
-var/lib/asterisk/sounds/en/tulsa.gsm
-var/lib/asterisk/sounds/en/turn-off-recording.gsm
-var/lib/asterisk/sounds/en/turning-to.gsm
-var/lib/asterisk/sounds/en/twelveth.gsm
-var/lib/asterisk/sounds/en/twentieth.gsm
-var/lib/asterisk/sounds/en/twisty-maze.gsm
-var/lib/asterisk/sounds/en/tx-has-been-approved.gsm
-var/lib/asterisk/sounds/en/typhoon.gsm
-var/lib/asterisk/sounds/en/udp.gsm
-var/lib/asterisk/sounds/en/uh-oh1.gsm
-var/lib/asterisk/sounds/en/uh-oh2.gsm
-var/lib/asterisk/sounds/en/uk.gsm
-var/lib/asterisk/sounds/en/unavailable.gsm
-var/lib/asterisk/sounds/en/unconditional.gsm
-var/lib/asterisk/sounds/en/unicorn_blood.gsm
-var/lib/asterisk/sounds/en/unicorn_blood_MIXDOWN.gsm
-var/lib/asterisk/sounds/en/unidentified-no-callback.gsm
-var/lib/asterisk/sounds/en/units.gsm
-var/lib/asterisk/sounds/en/unix.gsm
-var/lib/asterisk/sounds/en/unwelcomecall.gsm
-var/lib/asterisk/sounds/en/up.gsm
-var/lib/asterisk/sounds/en/uppercase.gsm
-var/lib/asterisk/sounds/en/uptime.gsm
-var/lib/asterisk/sounds/en/user.gsm
-var/lib/asterisk/sounds/en/users.gsm
-var/lib/asterisk/sounds/en/utah.gsm
-var/lib/asterisk/sounds/en/variable.gsm
-var/lib/asterisk/sounds/en/vermont.gsm
-var/lib/asterisk/sounds/en/virginia-beach.gsm
-var/lib/asterisk/sounds/en/virginia.gsm
-var/lib/asterisk/sounds/en/visibility.gsm
-var/lib/asterisk/sounds/en/visit-asterisk-website.gsm
-var/lib/asterisk/sounds/en/vm-Cust1.gsm
-var/lib/asterisk/sounds/en/vm-Cust2.gsm
-var/lib/asterisk/sounds/en/vm-Cust3.gsm
-var/lib/asterisk/sounds/en/vm-Cust4.gsm
-var/lib/asterisk/sounds/en/vm-Cust5.gsm
-var/lib/asterisk/sounds/en/vm-Family.gsm
-var/lib/asterisk/sounds/en/vm-Friends.gsm
-var/lib/asterisk/sounds/en/vm-INBOX.gsm
-var/lib/asterisk/sounds/en/vm-Old.gsm
-var/lib/asterisk/sounds/en/vm-Urgent.gsm
-var/lib/asterisk/sounds/en/vm-Work.gsm
-var/lib/asterisk/sounds/en/vm-advopts.gsm
-var/lib/asterisk/sounds/en/vm-and.gsm
-var/lib/asterisk/sounds/en/vm-calldiffnum.gsm
-var/lib/asterisk/sounds/en/vm-changeto.gsm
-var/lib/asterisk/sounds/en/vm-delete.gsm
-var/lib/asterisk/sounds/en/vm-deleted.gsm
-var/lib/asterisk/sounds/en/vm-dialout.gsm
-var/lib/asterisk/sounds/en/vm-duration.gsm
-var/lib/asterisk/sounds/en/vm-enter-num-to-call.gsm
-var/lib/asterisk/sounds/en/vm-extension.gsm
-var/lib/asterisk/sounds/en/vm-first.gsm
-var/lib/asterisk/sounds/en/vm-for.gsm
-var/lib/asterisk/sounds/en/vm-forward-multiple.gsm
-var/lib/asterisk/sounds/en/vm-forward.gsm
-var/lib/asterisk/sounds/en/vm-forwardoptions.gsm
-var/lib/asterisk/sounds/en/vm-from-extension.gsm
-var/lib/asterisk/sounds/en/vm-from-phonenumber.gsm
-var/lib/asterisk/sounds/en/vm-from.gsm
-var/lib/asterisk/sounds/en/vm-goodbye.gsm
-var/lib/asterisk/sounds/en/vm-helpexit.gsm
-var/lib/asterisk/sounds/en/vm-incorrect-mailbox.gsm
-var/lib/asterisk/sounds/en/vm-incorrect.gsm
-var/lib/asterisk/sounds/en/vm-instructions.gsm
-var/lib/asterisk/sounds/en/vm-intro.gsm
-var/lib/asterisk/sounds/en/vm-invalid-password.gsm
-var/lib/asterisk/sounds/en/vm-invalidpassword.gsm
-var/lib/asterisk/sounds/en/vm-isonphone.gsm
-var/lib/asterisk/sounds/en/vm-isunavail.gsm
-var/lib/asterisk/sounds/en/vm-last.gsm
-var/lib/asterisk/sounds/en/vm-leavemsg.gsm
-var/lib/asterisk/sounds/en/vm-login.gsm
-var/lib/asterisk/sounds/en/vm-mailboxfull.gsm
-var/lib/asterisk/sounds/en/vm-marked-nonurgent.gsm
-var/lib/asterisk/sounds/en/vm-marked-urgent.gsm
-var/lib/asterisk/sounds/en/vm-message.gsm
-var/lib/asterisk/sounds/en/vm-messages.gsm
-var/lib/asterisk/sounds/en/vm-minutes.gsm
-var/lib/asterisk/sounds/en/vm-mismatch.gsm
-var/lib/asterisk/sounds/en/vm-msgforwarded.gsm
-var/lib/asterisk/sounds/en/vm-msginstruct.gsm
-var/lib/asterisk/sounds/en/vm-msgsaved.gsm
-var/lib/asterisk/sounds/en/vm-newpassword.gsm
-var/lib/asterisk/sounds/en/vm-newuser.gsm
-var/lib/asterisk/sounds/en/vm-next.gsm
-var/lib/asterisk/sounds/en/vm-no.gsm
-var/lib/asterisk/sounds/en/vm-nobodyavail.gsm
-var/lib/asterisk/sounds/en/vm-nobox.gsm
-var/lib/asterisk/sounds/en/vm-nomore.gsm
-var/lib/asterisk/sounds/en/vm-nonumber.gsm
-var/lib/asterisk/sounds/en/vm-num-i-have.gsm
-var/lib/asterisk/sounds/en/vm-onefor-full.gsm
-var/lib/asterisk/sounds/en/vm-onefor.gsm
-var/lib/asterisk/sounds/en/vm-options.gsm
-var/lib/asterisk/sounds/en/vm-opts-full.gsm
-var/lib/asterisk/sounds/en/vm-opts.gsm
-var/lib/asterisk/sounds/en/vm-passchanged.gsm
-var/lib/asterisk/sounds/en/vm-password.gsm
-var/lib/asterisk/sounds/en/vm-pls-try-again.gsm
-var/lib/asterisk/sounds/en/vm-press.gsm
-var/lib/asterisk/sounds/en/vm-prev.gsm
-var/lib/asterisk/sounds/en/vm-reachoper.gsm
-var/lib/asterisk/sounds/en/vm-rec-busy.gsm
-var/lib/asterisk/sounds/en/vm-rec-name.gsm
-var/lib/asterisk/sounds/en/vm-rec-temp.gsm
-var/lib/asterisk/sounds/en/vm-rec-unv.gsm
-var/lib/asterisk/sounds/en/vm-received.gsm
-var/lib/asterisk/sounds/en/vm-record-prepend.gsm
-var/lib/asterisk/sounds/en/vm-reenterpassword.gsm
-var/lib/asterisk/sounds/en/vm-repeat.gsm
-var/lib/asterisk/sounds/en/vm-review-nonurgent.gsm
-var/lib/asterisk/sounds/en/vm-review-urgent.gsm
-var/lib/asterisk/sounds/en/vm-review.gsm
-var/lib/asterisk/sounds/en/vm-saved.gsm
-var/lib/asterisk/sounds/en/vm-savedto.gsm
-var/lib/asterisk/sounds/en/vm-savefolder.gsm
-var/lib/asterisk/sounds/en/vm-savemessage.gsm
-var/lib/asterisk/sounds/en/vm-saveoper.gsm
-var/lib/asterisk/sounds/en/vm-sorry.gsm
-var/lib/asterisk/sounds/en/vm-star-cancel.gsm
-var/lib/asterisk/sounds/en/vm-starmain.gsm
-var/lib/asterisk/sounds/en/vm-tempgreetactive.gsm
-var/lib/asterisk/sounds/en/vm-tempgreeting.gsm
-var/lib/asterisk/sounds/en/vm-tempgreeting2.gsm
-var/lib/asterisk/sounds/en/vm-tempremoved.gsm
-var/lib/asterisk/sounds/en/vm-then-pound.gsm
-var/lib/asterisk/sounds/en/vm-theperson.gsm
-var/lib/asterisk/sounds/en/vm-tmpexists.gsm
-var/lib/asterisk/sounds/en/vm-tocallback.gsm
-var/lib/asterisk/sounds/en/vm-tocallnum.gsm
-var/lib/asterisk/sounds/en/vm-tocancel.gsm
-var/lib/asterisk/sounds/en/vm-tocancelmsg.gsm
-var/lib/asterisk/sounds/en/vm-toenternumber.gsm
-var/lib/asterisk/sounds/en/vm-toforward.gsm
-var/lib/asterisk/sounds/en/vm-tohearenv.gsm
-var/lib/asterisk/sounds/en/vm-tomakecall.gsm
-var/lib/asterisk/sounds/en/vm-tooshort.gsm
-var/lib/asterisk/sounds/en/vm-toreply.gsm
-var/lib/asterisk/sounds/en/vm-torerecord.gsm
-var/lib/asterisk/sounds/en/vm-undelete.gsm
-var/lib/asterisk/sounds/en/vm-undeleted.gsm
-var/lib/asterisk/sounds/en/vm-unknown-caller.gsm
-var/lib/asterisk/sounds/en/vm-whichbox.gsm
-var/lib/asterisk/sounds/en/vm-youhave.gsm
-var/lib/asterisk/sounds/en/voice-mail-system.gsm
-var/lib/asterisk/sounds/en/wait-moment.gsm
-var/lib/asterisk/sounds/en/wait-offensive-sounds.gsm
-var/lib/asterisk/sounds/en/wakeup-call-cancelled.gsm
-var/lib/asterisk/sounds/en/wakeup-call.gsm
-var/lib/asterisk/sounds/en/wakeup-daily.gsm
-var/lib/asterisk/sounds/en/wakeup-for-daily.gsm
-var/lib/asterisk/sounds/en/wakeup-for-one-time.gsm
-var/lib/asterisk/sounds/en/wakeup-onetime.gsm
-var/lib/asterisk/sounds/en/walks-into-bar-mail.gsm
-var/lib/asterisk/sounds/en/warning.gsm
-var/lib/asterisk/sounds/en/was-last-seen.gsm
-var/lib/asterisk/sounds/en/was.gsm
-var/lib/asterisk/sounds/en/washington-dc.gsm
-var/lib/asterisk/sounds/en/washington.gsm
-var/lib/asterisk/sounds/en/watch.gsm
-var/lib/asterisk/sounds/en/watson.gsm
-var/lib/asterisk/sounds/en/we-apologize.gsm
-var/lib/asterisk/sounds/en/we-dont-have-tech-support.gsm
-var/lib/asterisk/sounds/en/weasels-eaten-phonesys.gsm
-var/lib/asterisk/sounds/en/weather-station.gsm
-var/lib/asterisk/sounds/en/weather.gsm
-var/lib/asterisk/sounds/en/web.gsm
-var/lib/asterisk/sounds/en/weeks.gsm
-var/lib/asterisk/sounds/en/welcome.gsm
-var/lib/asterisk/sounds/en/were-sorry.gsm
-var/lib/asterisk/sounds/en/west-virginia.gsm
-var/lib/asterisk/sounds/en/west.gsm
-var/lib/asterisk/sounds/en/westerly.gsm
-var/lib/asterisk/sounds/en/what-are-you-wearing.gsm
-var/lib/asterisk/sounds/en/what-time-it-is.gsm
-var/lib/asterisk/sounds/en/what-time-it-is2.gsm
-var/lib/asterisk/sounds/en/when-dialing-this-number.gsm
-var/lib/asterisk/sounds/en/who-would-you-like-to-call.gsm
-var/lib/asterisk/sounds/en/whoareyou.gsm
-var/lib/asterisk/sounds/en/why-no-answer-mystery.gsm
-var/lib/asterisk/sounds/en/wichita.gsm
-var/lib/asterisk/sounds/en/will-apply.gsm
-var/lib/asterisk/sounds/en/will-expire.gsm
-var/lib/asterisk/sounds/en/will-not-expire.gsm
-var/lib/asterisk/sounds/en/will-reflect-charge-of.gsm
-var/lib/asterisk/sounds/en/wind.gsm
-var/lib/asterisk/sounds/en/windows.gsm
-var/lib/asterisk/sounds/en/windy.gsm
-var/lib/asterisk/sounds/en/wisconsin.gsm
-var/lib/asterisk/sounds/en/wish-to-continue.gsm
-var/lib/asterisk/sounds/en/wish_command_totally.gsm
-var/lib/asterisk/sounds/en/with.gsm
-var/lib/asterisk/sounds/en/within.gsm
-var/lib/asterisk/sounds/en/woo_hoo_call_first.gsm
-var/lib/asterisk/sounds/en/work.gsm
-var/lib/asterisk/sounds/en/wrong-try-again-smarty.gsm
-var/lib/asterisk/sounds/en/wtng-to-spk-w-rep.gsm
-var/lib/asterisk/sounds/en/www-switchboard-com.gsm
-var/lib/asterisk/sounds/en/wx
-var/lib/asterisk/sounds/en/wx/around.gsm
-var/lib/asterisk/sounds/en/wx/barometer.gsm
-var/lib/asterisk/sounds/en/wx/ceiling.gsm
-var/lib/asterisk/sounds/en/wx/dew-point.gsm
-var/lib/asterisk/sounds/en/wx/falling.gsm
-var/lib/asterisk/sounds/en/wx/feet.gsm
-var/lib/asterisk/sounds/en/wx/foot.gsm
-var/lib/asterisk/sounds/en/wx/gust.gsm
-var/lib/asterisk/sounds/en/wx/gusting-to.gsm
-var/lib/asterisk/sounds/en/wx/gusts.gsm
-var/lib/asterisk/sounds/en/wx/gusty.gsm
-var/lib/asterisk/sounds/en/wx/heat-index.gsm
-var/lib/asterisk/sounds/en/wx/humidity.gsm
-var/lib/asterisk/sounds/en/wx/inch.gsm
-var/lib/asterisk/sounds/en/wx/inches.gsm
-var/lib/asterisk/sounds/en/wx/kilometer.gsm
-var/lib/asterisk/sounds/en/wx/large.gsm
-var/lib/asterisk/sounds/en/wx/meter.gsm
-var/lib/asterisk/sounds/en/wx/mist.gsm
-var/lib/asterisk/sounds/en/wx/northeast.gsm
-var/lib/asterisk/sounds/en/wx/northwest.gsm
-var/lib/asterisk/sounds/en/wx/percent.gsm
-var/lib/asterisk/sounds/en/wx/point.gsm
-var/lib/asterisk/sounds/en/wx/rising.gsm
-var/lib/asterisk/sounds/en/wx/southeast.gsm
-var/lib/asterisk/sounds/en/wx/southwest.gsm
-var/lib/asterisk/sounds/en/wx/steady.gsm
-var/lib/asterisk/sounds/en/wx/temperature.gsm
-var/lib/asterisk/sounds/en/wx/wind-chill.gsm
-var/lib/asterisk/sounds/en/wx/winds.gsm
-var/lib/asterisk/sounds/en/wyoming.gsm
-var/lib/asterisk/sounds/en/yeah.gsm
-var/lib/asterisk/sounds/en/year.gsm
-var/lib/asterisk/sounds/en/years.gsm
-var/lib/asterisk/sounds/en/yes-dear.gsm
-var/lib/asterisk/sounds/en/yes-dear2.gsm
-var/lib/asterisk/sounds/en/you-are-caller-num.gsm
-var/lib/asterisk/sounds/en/you-are-curr-call-num.gsm
-var/lib/asterisk/sounds/en/you-can-press.gsm
-var/lib/asterisk/sounds/en/you-dialed-wrong-number.gsm
-var/lib/asterisk/sounds/en/you-entered.gsm
-var/lib/asterisk/sounds/en/you-have-dialed.gsm
-var/lib/asterisk/sounds/en/you-have-reached-a-test-number.gsm
-var/lib/asterisk/sounds/en/you-have-these-options.gsm
-var/lib/asterisk/sounds/en/you-must-first-dial.gsm
-var/lib/asterisk/sounds/en/you-seem-impatient.gsm
-var/lib/asterisk/sounds/en/you-sound-cute.gsm
-var/lib/asterisk/sounds/en/you-wish-to-join.gsm
-var/lib/asterisk/sounds/en/you_say_yes.gsm
-var/lib/asterisk/sounds/en/your-account.gsm
-var/lib/asterisk/sounds/en/your-msg-has-been-saved.gsm
-var/lib/asterisk/sounds/en/your-msg-is-too-short.gsm
-var/lib/asterisk/sounds/en/your-notifications.gsm
-var/lib/asterisk/sounds/en/your-req-notification.gsm
-var/lib/asterisk/sounds/en/your-temp-greeting.gsm
-var/lib/asterisk/sounds/en/your.gsm
-var/lib/asterisk/sounds/en/yourcallisimportant.gsm
-var/lib/asterisk/sounds/en/yourcallisimpotent.gsm
-var/lib/asterisk/sounds/en/zip-code.gsm
-var/lib/asterisk/sounds/en/zombies.gsm
-#var/lib/asterisk/sounds/letters
-#var/lib/asterisk/sounds/letters/de
-var/lib/asterisk/sounds/letters/de/a.gsm
-var/lib/asterisk/sounds/letters/de/at.gsm
-var/lib/asterisk/sounds/letters/de/b.gsm
-var/lib/asterisk/sounds/letters/de/c.gsm
-var/lib/asterisk/sounds/letters/de/d.gsm
-var/lib/asterisk/sounds/letters/de/dash.gsm
-var/lib/asterisk/sounds/letters/de/dollar.gsm
-var/lib/asterisk/sounds/letters/de/dot.gsm
-var/lib/asterisk/sounds/letters/de/e.gsm
-var/lib/asterisk/sounds/letters/de/equals.gsm
-var/lib/asterisk/sounds/letters/de/exclaimation-point.gsm
-var/lib/asterisk/sounds/letters/de/f.gsm
-var/lib/asterisk/sounds/letters/de/g.gsm
-var/lib/asterisk/sounds/letters/de/h.gsm
-var/lib/asterisk/sounds/letters/de/i.gsm
-var/lib/asterisk/sounds/letters/de/j.gsm
-var/lib/asterisk/sounds/letters/de/k.gsm
-var/lib/asterisk/sounds/letters/de/l.gsm
-var/lib/asterisk/sounds/letters/de/m.gsm
-var/lib/asterisk/sounds/letters/de/n.gsm
-var/lib/asterisk/sounds/letters/de/o.gsm
-var/lib/asterisk/sounds/letters/de/p.gsm
-var/lib/asterisk/sounds/letters/de/plus.gsm
-var/lib/asterisk/sounds/letters/de/q.gsm
-var/lib/asterisk/sounds/letters/de/r.gsm
-var/lib/asterisk/sounds/letters/de/s.gsm
-var/lib/asterisk/sounds/letters/de/slash.gsm
-var/lib/asterisk/sounds/letters/de/space.gsm
-var/lib/asterisk/sounds/letters/de/t.gsm
-var/lib/asterisk/sounds/letters/de/u.gsm
-var/lib/asterisk/sounds/letters/de/v.gsm
-var/lib/asterisk/sounds/letters/de/w.gsm
-var/lib/asterisk/sounds/letters/de/x.gsm
-var/lib/asterisk/sounds/letters/de/y.gsm
-var/lib/asterisk/sounds/letters/de/z.gsm
-var/lib/asterisk/sounds/letters/de/zed.gsm
-#var/lib/asterisk/sounds/phonetic
-#var/lib/asterisk/sounds/phonetic/de
-var/lib/asterisk/sounds/phonetic/de/9_p.gsm
-var/lib/asterisk/sounds/phonetic/de/a_p.gsm
-var/lib/asterisk/sounds/phonetic/de/b_p.gsm
-var/lib/asterisk/sounds/phonetic/de/c_p.gsm
-var/lib/asterisk/sounds/phonetic/de/d_p.gsm
-var/lib/asterisk/sounds/phonetic/de/e_p.gsm
-var/lib/asterisk/sounds/phonetic/de/f_p.gsm
-var/lib/asterisk/sounds/phonetic/de/g_p.gsm
-var/lib/asterisk/sounds/phonetic/de/h_p.gsm
-var/lib/asterisk/sounds/phonetic/de/i_p.gsm
-var/lib/asterisk/sounds/phonetic/de/j_p.gsm
-var/lib/asterisk/sounds/phonetic/de/k_p.gsm
-var/lib/asterisk/sounds/phonetic/de/l_p.gsm
-var/lib/asterisk/sounds/phonetic/de/m_p.gsm
-var/lib/asterisk/sounds/phonetic/de/n_p.gsm
-var/lib/asterisk/sounds/phonetic/de/niner.gsm
-var/lib/asterisk/sounds/phonetic/de/o_p.gsm
-var/lib/asterisk/sounds/phonetic/de/p_p.gsm
-var/lib/asterisk/sounds/phonetic/de/q_p.gsm
-var/lib/asterisk/sounds/phonetic/de/r_p.gsm
-var/lib/asterisk/sounds/phonetic/de/s_p.gsm
-var/lib/asterisk/sounds/phonetic/de/t_p.gsm
-var/lib/asterisk/sounds/phonetic/de/u_p.gsm
-var/lib/asterisk/sounds/phonetic/de/v_p.gsm
-var/lib/asterisk/sounds/phonetic/de/w_p.gsm
-var/lib/asterisk/sounds/phonetic/de/x_p.gsm
-var/lib/asterisk/sounds/phonetic/de/y_p.gsm
-var/lib/asterisk/sounds/phonetic/de/z_p.gsm
-#var/lib/asterisk/static-http
-#var/lib/asterisk/static-http/ajamdemo.html
-#var/lib/asterisk/static-http/appdocsxml.xslt
-#var/lib/asterisk/static-http/astman.css
-#var/lib/asterisk/static-http/astman.js
-#var/lib/asterisk/static-http/core-en_US.xml
-#var/lib/asterisk/static-http/mantest.html
-#var/lib/asterisk/static-http/prototype.js
-#var/lib/asterisk/third-party
-#var/log/asterisk
-var/log/asterisk/cdr-csv
-var/log/asterisk/cdr-custom
-var/log/asterisk/cel-custom
-#var/spool/asterisk
-var/spool/asterisk/dictate
-var/spool/asterisk/meetme
-var/spool/asterisk/monitor
-var/spool/asterisk/recording
-var/spool/asterisk/system
-var/spool/asterisk/tmp
-#var/spool/asterisk/voicemail
-#var/spool/asterisk/voicemail/default
-#var/spool/asterisk/voicemail/default/1234
-var/spool/asterisk/voicemail/default/1234/INBOX
-var/spool/asterisk/voicemail/default/1234/en
-var/spool/asterisk/voicemail/default/1234/en/busy.gsm
-var/spool/asterisk/voicemail/default/1234/en/unavail.gsm
+++ /dev/null
-#etc/bluetooth
-etc/bluetooth/audio.conf
-etc/bluetooth/hcid.conf
-etc/bluetooth/input.conf
-etc/bluetooth/main.conf
-etc/bluetooth/network.conf
-etc/bluetooth/rfcomm.conf
-etc/dbus-1/system.d/bluetooth.conf
-#lib/udev/rules.d/24-bluetooth.rules
-lib/firmware/BCM-LEGAL.txt
-lib/firmware/BCM2033-FW.bin
-lib/firmware/BCM2033-MD.hex
-lib/firmware/STLC2500_R4_00_03.ptc
-lib/firmware/STLC2500_R4_00_06.ssf
-lib/firmware/STLC2500_R4_02_02_WLAN.ssf
-lib/firmware/STLC2500_R4_02_04.ptc
-lib/udev/bluetooth_serial
-usr/bin/ciptool
-usr/bin/dfutool
-usr/bin/dund
-usr/bin/hcitool
-usr/bin/hidd
-usr/bin/l2ping
-usr/bin/l2test
-usr/bin/pand
-usr/bin/passkey-agent
-usr/bin/rctest
-usr/bin/rfcomm
-usr/bin/sdptool
-#usr/include/bluetooth
-#usr/include/bluetooth/bluetooth.h
-#usr/include/bluetooth/bnep.h
-#usr/include/bluetooth/cmtp.h
-#usr/include/bluetooth/hci.h
-#usr/include/bluetooth/hci_lib.h
-#usr/include/bluetooth/hidp.h
-#usr/include/bluetooth/l2cap.h
-#usr/include/bluetooth/rfcomm.h
-#usr/include/bluetooth/sco.h
-#usr/include/bluetooth/sdp.h
-#usr/include/bluetooth/sdp_lib.h
-#usr/lib/alsa-lib/libasound_module_ctl_bluetooth.la
-usr/lib/alsa-lib/libasound_module_ctl_bluetooth.so
-#usr/lib/alsa-lib/libasound_module_pcm_bluetooth.la
-usr/lib/alsa-lib/libasound_module_pcm_bluetooth.so
-#usr/lib/bluetooth
-#usr/lib/bluetooth/plugins
-#usr/lib/bluetooth/plugins/audio.la
-usr/lib/bluetooth/plugins/audio.so
-#usr/lib/bluetooth/plugins/input.la
-usr/lib/bluetooth/plugins/input.so
-#usr/lib/bluetooth/plugins/netlink.la
-usr/lib/bluetooth/plugins/netlink.so
-#usr/lib/bluetooth/plugins/network.la
-usr/lib/bluetooth/plugins/network.so
-#usr/lib/bluetooth/plugins/serial.la
-usr/lib/bluetooth/plugins/serial.so
-usr/lib/cups/backend/bluetooth
-#usr/lib/libbluetooth.a
-#usr/lib/libbluetooth.la
-usr/lib/libbluetooth.so
-usr/lib/libbluetooth.so.2
-usr/lib/libbluetooth.so.2.11.2
-#usr/lib/pkgconfig/bluez.pc
-usr/sbin/bccmd
-usr/sbin/hciattach
-usr/sbin/hciconfig
-usr/sbin/hcid
-usr/sbin/hcidump
-#usr/sbin/hciemu
-usr/sbin/hid2hci
-#usr/share/aclocal/bluez.m4
-#usr/share/man/man1/ciptool.1
-#usr/share/man/man1/dfutool.1
-#usr/share/man/man1/dund.1
-#usr/share/man/man1/hcitool.1
-#usr/share/man/man1/hidd.1
-#usr/share/man/man1/l2ping.1
-#usr/share/man/man1/pand.1
-#usr/share/man/man1/rfcomm.1
-#usr/share/man/man1/sdptool.1
-#usr/share/man/man5/hcid.conf.5
-#usr/share/man/man8/bccmd.8
-#usr/share/man/man8/hciattach.8
-#usr/share/man/man8/hciconfig.8
-#usr/share/man/man8/hcid.8
-#usr/share/man/man8/hcidump.8
-#usr/share/man/man8/hid2hci.8
-var/ipfire/backup/addons/includes/bluetooth
-#var/ipfire/bluetooth
-var/ipfire/bluetooth/settings
-var/lib/bluetooth
-srv/web/ipfire/cgi-bin/bluetooth.cgi
-var/ipfire/menu.d/EX-bluetooth.menu
-etc/rc.d/init.d/bluetooth
-etc/rc.d/rc3.d/S16bluetooth
-etc/rc.d/rc0.d/K84bluetooth
-etc/rc.d/rc6.d/K84bluetooth
+++ /dev/null
-#usr/include/dpf.h
-#usr/include/usbuser.h
-usr/lib/libdpf.so
#usr/include/gelf.h
#usr/include/libelf.h
#usr/include/nlist.h
-usr/lib/libasm-0.184.so
+usr/lib/libasm-0.185.so
#usr/lib/libasm.a
#usr/lib/libasm.so
usr/lib/libasm.so.1
-usr/lib/libdw-0.184.so
+usr/lib/libdw-0.185.so
#usr/lib/libdw.a
#usr/lib/libdw.so
usr/lib/libdw.so.1
-usr/lib/libelf-0.184.so
+usr/lib/libelf-0.185.so
#usr/lib/libelf.a
#usr/lib/libelf.so
usr/lib/libelf.so.1
#usr/lib/pkgconfig/flac.pc
#usr/share/aclocal/libFLAC++.m4
#usr/share/aclocal/libFLAC.m4
-#usr/share/doc/flac-1.3.2
-#usr/share/doc/flac-1.3.2/FLAC.tag
-#usr/share/doc/flac-1.3.2/html
-#usr/share/doc/flac-1.3.2/html/changelog.html
-#usr/share/doc/flac-1.3.2/html/developers.html
-#usr/share/doc/flac-1.3.2/html/documentation.html
-#usr/share/doc/flac-1.3.2/html/documentation_bugs.html
-#usr/share/doc/flac-1.3.2/html/documentation_example_code.html
-#usr/share/doc/flac-1.3.2/html/documentation_format_overview.html
-#usr/share/doc/flac-1.3.2/html/documentation_tools.html
-#usr/share/doc/flac-1.3.2/html/documentation_tools_flac.html
-#usr/share/doc/flac-1.3.2/html/documentation_tools_metaflac.html
-#usr/share/doc/flac-1.3.2/html/faq.html
-#usr/share/doc/flac-1.3.2/html/favicon.ico
-#usr/share/doc/flac-1.3.2/html/features.html
-#usr/share/doc/flac-1.3.2/html/flac.css
-#usr/share/doc/flac-1.3.2/html/format.html
-#usr/share/doc/flac-1.3.2/html/id.html
-#usr/share/doc/flac-1.3.2/html/images
-#usr/share/doc/flac-1.3.2/html/images/logo.svg
-#usr/share/doc/flac-1.3.2/html/images/logo130.gif
-#usr/share/doc/flac-1.3.2/html/index.html
-#usr/share/doc/flac-1.3.2/html/license.html
-#usr/share/doc/flac-1.3.2/html/ogg_mapping.html
+#usr/share/doc/flac
+#usr/share/doc/flac/FLAC.tag
+#usr/share/doc/flac/changelog.html
+#usr/share/doc/flac/developers.html
+#usr/share/doc/flac/documentation.html
+#usr/share/doc/flac/documentation_bugs.html
+#usr/share/doc/flac/documentation_example_code.html
+#usr/share/doc/flac/documentation_format_overview.html
+#usr/share/doc/flac/documentation_tools.html
+#usr/share/doc/flac/documentation_tools_flac.html
+#usr/share/doc/flac/documentation_tools_metaflac.html
+#usr/share/doc/flac/faq.html
+#usr/share/doc/flac/favicon.ico
+#usr/share/doc/flac/features.html
+#usr/share/doc/flac/flac.css
+#usr/share/doc/flac/format.html
+#usr/share/doc/flac/id.html
+#usr/share/doc/flac/images
+#usr/share/doc/flac/images/logo.svg
+#usr/share/doc/flac/images/logo130.gif
+#usr/share/doc/flac/index.html
+#usr/share/doc/flac/license.html
+#usr/share/doc/flac/ogg_mapping.html
#usr/share/man/man1/flac.1
#usr/share/man/man1/metaflac.1
+++ /dev/null
-usr/bin/lcd4linux
-var/ipfire/backup/addons/includes/lcd4linux
-etc/rc.d/init.d/lcd4linux
+++ /dev/null
-#usr/include/microhttpd.h
-#usr/lib/libmicrohttpd.la
-#usr/lib/libmicrohttpd.so
-usr/lib/libmicrohttpd.so.12
-usr/lib/libmicrohttpd.so.12.58.0
-#usr/lib/pkgconfig/libmicrohttpd.pc
#usr/lib/libogg.la
#usr/lib/libogg.so
usr/lib/libogg.so.0
-usr/lib/libogg.so.0.8.4
+usr/lib/libogg.so.0.8.5
#usr/lib/pkgconfig/ogg.pc
#usr/share/aclocal/ogg.m4
#usr/share/doc/libogg
#usr/share/doc/libogg/vorbisword2.png
#usr/share/doc/libogg/white-ogg.png
#usr/share/doc/libogg/white-xifish.png
-
+++ /dev/null
-#usr/include/srtp
-#usr/include/srtp/aes.h
-#usr/include/srtp/aes_cbc.h
-#usr/include/srtp/aes_gcm_ossl.h
-#usr/include/srtp/aes_icm.h
-#usr/include/srtp/aes_icm_ossl.h
-#usr/include/srtp/alloc.h
-#usr/include/srtp/auth.h
-#usr/include/srtp/cipher.h
-#usr/include/srtp/config.h
-#usr/include/srtp/crypto.h
-#usr/include/srtp/crypto_kernel.h
-#usr/include/srtp/crypto_math.h
-#usr/include/srtp/crypto_types.h
-#usr/include/srtp/cryptoalg.h
-#usr/include/srtp/datatypes.h
-#usr/include/srtp/ekt.h
-#usr/include/srtp/err.h
-#usr/include/srtp/getopt_s.h
-#usr/include/srtp/gf2_8.h
-#usr/include/srtp/hmac.h
-#usr/include/srtp/integers.h
-#usr/include/srtp/kernel_compat.h
-#usr/include/srtp/key.h
-#usr/include/srtp/null_auth.h
-#usr/include/srtp/null_cipher.h
-#usr/include/srtp/prng.h
-#usr/include/srtp/rand_source.h
-#usr/include/srtp/rdb.h
-#usr/include/srtp/rdbx.h
-#usr/include/srtp/rtp.h
-#usr/include/srtp/rtp_priv.h
-#usr/include/srtp/sha1.h
-#usr/include/srtp/srtp.h
-#usr/include/srtp/srtp_priv.h
-#usr/include/srtp/stat.h
-#usr/include/srtp/ut_sim.h
-#usr/include/srtp/xfm.h
-usr/lib/libsrtp.so
-usr/lib/libsrtp.so.1
-#usr/lib/pkgconfig/libsrtp.pc
+++ /dev/null
-etc/miniupnpd
-etc/miniupnpd/miniupnpd.conf
-etc/rc.d/init.d/miniupnpd
-etc/rc.d/init.d/networking/red.down/10-miniupnpd
-etc/rc.d/init.d/networking/red.up/10-miniupnpd
-usr/sbin/miniupnpd
+++ /dev/null
-etc/motion
-etc/motion.conf
-etc/motion/camera1-dist.conf
-etc/motion/camera2-dist.conf
-etc/motion/camera3-dist.conf
-etc/motion/camera4-dist.conf
-#etc/motion/motion-dist.conf
-etc/rc.d/init.d/motion
-etc/rc.d/rc0.d/K01motion
-etc/rc.d/rc6.d/K01motion
-etc/rc.d/rc3.d/S99motion
-usr/bin/motion
-#usr/share/doc/motion
-#usr/share/doc/motion/COPYING
-#usr/share/doc/motion/CREDITS
-#usr/share/doc/motion/mask1.png
-#usr/share/doc/motion/motion_build.html
-#usr/share/doc/motion/motion_config.html
-#usr/share/doc/motion/motion_guide.html
-#usr/share/doc/motion/motion_stylesheet.css
-#usr/share/doc/motion/normal.jpg
-#usr/share/doc/motion/outputmotion1.jpg
-#usr/share/doc/motion/outputnormal1.jpg
-#usr/share/locale/da/LC_MESSAGES/motion.mo
-#usr/share/locale/de/LC_MESSAGES/motion.mo
-#usr/share/locale/es/LC_MESSAGES/motion.mo
-#usr/share/locale/fi/LC_MESSAGES/motion.mo
-#usr/share/locale/fr/LC_MESSAGES/motion.mo
-#usr/share/locale/it/LC_MESSAGES/motion.mo
-#usr/share/locale/ja/LC_MESSAGES/motion.mo
-#usr/share/locale/ko/LC_MESSAGES/motion.mo
-#usr/share/locale/li
-#usr/share/locale/li/LC_MESSAGES
-#usr/share/locale/li/LC_MESSAGES/motion.mo
-#usr/share/locale/nl/LC_MESSAGES/motion.mo
-#usr/share/locale/no
-#usr/share/locale/no/LC_MESSAGES
-#usr/share/locale/no/LC_MESSAGES/motion.mo
-#usr/share/locale/pt/LC_MESSAGES/motion.mo
-#usr/share/locale/sk/LC_MESSAGES/motion.mo
-#usr/share/locale/sv/LC_MESSAGES/motion.mo
-#usr/share/locale/zh/LC_MESSAGES/motion.mo
-#usr/share/man/man1/motion.1
-var/ipfire/backup/addons/includes/motion
#usr/include/net-snmp/library/snmp.h
#usr/include/net-snmp/library/snmpAliasDomain.h
#usr/include/net-snmp/library/snmpCallbackDomain.h
+#usr/include/net-snmp/library/snmpIPBaseDomain.h
#usr/include/net-snmp/library/snmpIPv4BaseDomain.h
#usr/include/net-snmp/library/snmpIPv6BaseDomain.h
#usr/include/net-snmp/library/snmpSocketBaseDomain.h
#usr/include/net-snmp/system/bsdi4.h
#usr/include/net-snmp/system/cygwin.h
#usr/include/net-snmp/system/darwin.h
-#usr/include/net-snmp/system/darwin10.h
-#usr/include/net-snmp/system/darwin11.h
-#usr/include/net-snmp/system/darwin12.h
-#usr/include/net-snmp/system/darwin13.h
-#usr/include/net-snmp/system/darwin14.h
-#usr/include/net-snmp/system/darwin15.h
-#usr/include/net-snmp/system/darwin16.h
-#usr/include/net-snmp/system/darwin17.h
-#usr/include/net-snmp/system/darwin7.h
-#usr/include/net-snmp/system/darwin8.h
-#usr/include/net-snmp/system/darwin9.h
#usr/include/net-snmp/system/dragonfly.h
#usr/include/net-snmp/system/dynix.h
#usr/include/net-snmp/system/freebsd.h
#usr/include/net-snmp/system/freebsd10.h
#usr/include/net-snmp/system/freebsd11.h
#usr/include/net-snmp/system/freebsd12.h
+#usr/include/net-snmp/system/freebsd13.h
+#usr/include/net-snmp/system/freebsd14.h
#usr/include/net-snmp/system/freebsd2.h
#usr/include/net-snmp/system/freebsd3.h
#usr/include/net-snmp/system/freebsd4.h
#usr/lib/libnetsnmp.a
#usr/lib/libnetsnmp.la
#usr/lib/libnetsnmp.so
-usr/lib/libnetsnmp.so.35
-usr/lib/libnetsnmp.so.35.0.0
+usr/lib/libnetsnmp.so.40
+usr/lib/libnetsnmp.so.40.1.0
#usr/lib/libnetsnmpagent.a
#usr/lib/libnetsnmpagent.la
#usr/lib/libnetsnmpagent.so
-usr/lib/libnetsnmpagent.so.35
-usr/lib/libnetsnmpagent.so.35.0.0
+usr/lib/libnetsnmpagent.so.40
+usr/lib/libnetsnmpagent.so.40.1.0
#usr/lib/libnetsnmphelpers.a
#usr/lib/libnetsnmphelpers.la
#usr/lib/libnetsnmphelpers.so
-usr/lib/libnetsnmphelpers.so.35
-usr/lib/libnetsnmphelpers.so.35.0.0
+usr/lib/libnetsnmphelpers.so.40
+usr/lib/libnetsnmphelpers.so.40.1.0
#usr/lib/libnetsnmpmibs.a
#usr/lib/libnetsnmpmibs.la
#usr/lib/libnetsnmpmibs.so
-usr/lib/libnetsnmpmibs.so.35
-usr/lib/libnetsnmpmibs.so.35.0.0
+usr/lib/libnetsnmpmibs.so.40
+usr/lib/libnetsnmpmibs.so.40.1.0
#usr/lib/libnetsnmptrapd.a
#usr/lib/libnetsnmptrapd.la
#usr/lib/libnetsnmptrapd.so
-usr/lib/libnetsnmptrapd.so.35
-usr/lib/libnetsnmptrapd.so.35.0.0
+usr/lib/libnetsnmptrapd.so.40
+usr/lib/libnetsnmptrapd.so.40.1.0
#usr/lib/perl5/site_perl/5.32.1/xxxMACHINExxx-linux-thread-multi/Bundle
usr/lib/perl5/site_perl/5.32.1/xxxMACHINExxx-linux-thread-multi/Bundle/MakefileSubs.pm
#usr/lib/perl5/site_perl/5.32.1/xxxMACHINExxx-linux-thread-multi/NetSNMP
#usr/lib/perl5/site_perl/5.32.1/xxxMACHINExxx-linux-thread-multi/auto/Bundle/NetSNMP/.packlist
#usr/lib/perl5/site_perl/5.32.1/xxxMACHINExxx-linux-thread-multi/auto/NetSNMP
#usr/lib/perl5/site_perl/5.32.1/xxxMACHINExxx-linux-thread-multi/auto/NetSNMP/ASN
-#usr/lib/perl5/site_perl/5.32.1/xxxMACHINExxx-linux-thread-multi/auto/NetSNMP/ASN/ASN.bs
usr/lib/perl5/site_perl/5.32.1/xxxMACHINExxx-linux-thread-multi/auto/NetSNMP/ASN/ASN.so
usr/lib/perl5/site_perl/5.32.1/xxxMACHINExxx-linux-thread-multi/auto/NetSNMP/ASN/autosplit.ix
#usr/lib/perl5/site_perl/5.32.1/xxxMACHINExxx-linux-thread-multi/auto/NetSNMP/OID
-#usr/lib/perl5/site_perl/5.32.1/xxxMACHINExxx-linux-thread-multi/auto/NetSNMP/OID/OID.bs
usr/lib/perl5/site_perl/5.32.1/xxxMACHINExxx-linux-thread-multi/auto/NetSNMP/OID/OID.so
usr/lib/perl5/site_perl/5.32.1/xxxMACHINExxx-linux-thread-multi/auto/NetSNMP/OID/autosplit.ix
#usr/lib/perl5/site_perl/5.32.1/xxxMACHINExxx-linux-thread-multi/auto/NetSNMP/TrapReceiver
-#usr/lib/perl5/site_perl/5.32.1/xxxMACHINExxx-linux-thread-multi/auto/NetSNMP/TrapReceiver/TrapReceiver.bs
usr/lib/perl5/site_perl/5.32.1/xxxMACHINExxx-linux-thread-multi/auto/NetSNMP/TrapReceiver/TrapReceiver.so
usr/lib/perl5/site_perl/5.32.1/xxxMACHINExxx-linux-thread-multi/auto/NetSNMP/TrapReceiver/autosplit.ix
#usr/lib/perl5/site_perl/5.32.1/xxxMACHINExxx-linux-thread-multi/auto/NetSNMP/agent
-#usr/lib/perl5/site_perl/5.32.1/xxxMACHINExxx-linux-thread-multi/auto/NetSNMP/agent/agent.bs
usr/lib/perl5/site_perl/5.32.1/xxxMACHINExxx-linux-thread-multi/auto/NetSNMP/agent/agent.so
usr/lib/perl5/site_perl/5.32.1/xxxMACHINExxx-linux-thread-multi/auto/NetSNMP/agent/autosplit.ix
#usr/lib/perl5/site_perl/5.32.1/xxxMACHINExxx-linux-thread-multi/auto/NetSNMP/agent/default_store
usr/lib/perl5/site_perl/5.32.1/xxxMACHINExxx-linux-thread-multi/auto/NetSNMP/agent/default_store/autosplit.ix
-#usr/lib/perl5/site_perl/5.32.1/xxxMACHINExxx-linux-thread-multi/auto/NetSNMP/agent/default_store/default_store.bs
usr/lib/perl5/site_perl/5.32.1/xxxMACHINExxx-linux-thread-multi/auto/NetSNMP/agent/default_store/default_store.so
#usr/lib/perl5/site_perl/5.32.1/xxxMACHINExxx-linux-thread-multi/auto/NetSNMP/default_store
usr/lib/perl5/site_perl/5.32.1/xxxMACHINExxx-linux-thread-multi/auto/NetSNMP/default_store/autosplit.ix
-#usr/lib/perl5/site_perl/5.32.1/xxxMACHINExxx-linux-thread-multi/auto/NetSNMP/default_store/default_store.bs
usr/lib/perl5/site_perl/5.32.1/xxxMACHINExxx-linux-thread-multi/auto/NetSNMP/default_store/default_store.so
#usr/lib/perl5/site_perl/5.32.1/xxxMACHINExxx-linux-thread-multi/auto/SNMP
-#usr/lib/perl5/site_perl/5.32.1/xxxMACHINExxx-linux-thread-multi/auto/SNMP/SNMP.bs
usr/lib/perl5/site_perl/5.32.1/xxxMACHINExxx-linux-thread-multi/auto/SNMP/SNMP.so
usr/lib/perl5/site_perl/5.32.1/xxxMACHINExxx-linux-thread-multi/auto/SNMP/autosplit.ix
+#usr/lib/pkgconfig/netsnmp-agent.pc
+#usr/lib/pkgconfig/netsnmp.pc
usr/sbin/snmpd
usr/sbin/snmptrapd
#usr/share/man/man1/agentxtrap.1
usr/lib/perl5/site_perl/5.32.1/Date/Language/Amharic.pm
usr/lib/perl5/site_perl/5.32.1/Date/Language/Austrian.pm
usr/lib/perl5/site_perl/5.32.1/Date/Language/Brazilian.pm
+usr/lib/perl5/site_perl/5.32.1/Date/Language/Bulgarian.pm
usr/lib/perl5/site_perl/5.32.1/Date/Language/Chinese.pm
usr/lib/perl5/site_perl/5.32.1/Date/Language/Chinese_GB.pm
usr/lib/perl5/site_perl/5.32.1/Date/Language/Czech.pm
usr/lib/perl5/site_perl/5.32.1/Date/Language/Icelandic.pm
usr/lib/perl5/site_perl/5.32.1/Date/Language/Italian.pm
usr/lib/perl5/site_perl/5.32.1/Date/Language/Norwegian.pm
+usr/lib/perl5/site_perl/5.32.1/Date/Language/Occitan.pm
usr/lib/perl5/site_perl/5.32.1/Date/Language/Oromo.pm
usr/lib/perl5/site_perl/5.32.1/Date/Language/Romanian.pm
usr/lib/perl5/site_perl/5.32.1/Date/Language/Russian.pm
usr/lib/perl5/site_perl/5.32.1/Date/Parse.pm
#usr/lib/perl5/site_perl/5.32.1/Time
usr/lib/perl5/site_perl/5.32.1/Time/Zone.pm
-#usr/lib/perl5/site_perl/5.32.1/xxxMACHINExxx-linux-thread-multi/auto/TimeDate
-#usr/lib/perl5/site_perl/5.32.1/xxxMACHINExxx-linux-thread-multi/auto/TimeDate/.packlist
+usr/lib/perl5/site_perl/5.32.1/TimeDate.pm
+#usr/lib/perl5/site_perl/5.32.1/xxxMACHINExxx-linux-thread-multi/auto/Date/Parse
+#usr/lib/perl5/site_perl/5.32.1/xxxMACHINExxx-linux-thread-multi/auto/Date/Parse/.packlist
#usr/share/man/man3/Date::Format.3
#usr/share/man/man3/Date::Language.3
+#usr/share/man/man3/Date::Language::Bulgarian.3
#usr/share/man/man3/Date::Language::Hungarian.3
#usr/share/man/man3/Date::Parse.3
#usr/share/man/man3/Time::Zone.3
+#usr/share/man/man3/TimeDate.3
--- /dev/null
+#usr/lib/python3.8/site-packages/easy-install.pth
+#usr/lib/python3.8/site-packages/pyparsing-2.4.7-py3.8.egg
+#usr/lib/python3.8/site-packages/pyparsing-2.4.7-py3.8.egg/EGG-INFO
+#usr/lib/python3.8/site-packages/pyparsing-2.4.7-py3.8.egg/EGG-INFO/PKG-INFO
+#usr/lib/python3.8/site-packages/pyparsing-2.4.7-py3.8.egg/EGG-INFO/SOURCES.txt
+#usr/lib/python3.8/site-packages/pyparsing-2.4.7-py3.8.egg/EGG-INFO/dependency_links.txt
+#usr/lib/python3.8/site-packages/pyparsing-2.4.7-py3.8.egg/EGG-INFO/not-zip-safe
+#usr/lib/python3.8/site-packages/pyparsing-2.4.7-py3.8.egg/EGG-INFO/top_level.txt
+usr/lib/python3.8/site-packages/pyparsing-2.4.7-py3.8.egg/pyparsing.py
--- /dev/null
+#usr/lib/python3.8/site-packages/easy-install.pth
+#usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg
+#usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/EGG-INFO
+#usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/EGG-INFO/PKG-INFO
+#usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/EGG-INFO/SOURCES.txt
+#usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/EGG-INFO/dependency_links.txt
+#usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/EGG-INFO/entry_points.txt
+#usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/EGG-INFO/not-zip-safe
+#usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/EGG-INFO/requires.txt
+#usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/EGG-INFO/top_level.txt
+#usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/_distutils_hack
+usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/_distutils_hack/__init__.py
+usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/_distutils_hack/override.py
+#usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/pkg_resources
+usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/pkg_resources/__init__.py
+#usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/pkg_resources/_vendor
+usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/pkg_resources/_vendor/__init__.py
+usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/pkg_resources/_vendor/appdirs.py
+usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/pkg_resources/_vendor/packaging
+usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/pkg_resources/_vendor/packaging/__about__.py
+usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/pkg_resources/_vendor/packaging/__init__.py
+usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/pkg_resources/_vendor/packaging/_compat.py
+usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/pkg_resources/_vendor/packaging/_structures.py
+usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/pkg_resources/_vendor/packaging/_typing.py
+usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/pkg_resources/_vendor/packaging/markers.py
+usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/pkg_resources/_vendor/packaging/requirements.py
+usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/pkg_resources/_vendor/packaging/specifiers.py
+usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/pkg_resources/_vendor/packaging/tags.py
+usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/pkg_resources/_vendor/packaging/utils.py
+usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/pkg_resources/_vendor/packaging/version.py
+usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/pkg_resources/_vendor/pyparsing.py
+#usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/pkg_resources/extern
+usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/pkg_resources/extern/__init__.py
+#usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/pkg_resources/tests
+#usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/pkg_resources/tests/data
+usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/pkg_resources/tests/data/my-test-package-source
+usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/pkg_resources/tests/data/my-test-package-source/setup.py
+#usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools
+usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/__init__.py
+usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/_deprecation_warning.py
+#usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/_distutils
+usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/_distutils/__init__.py
+usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/_distutils/_msvccompiler.py
+usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/_distutils/archive_util.py
+usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/_distutils/bcppcompiler.py
+usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/_distutils/ccompiler.py
+usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/_distutils/cmd.py
+#usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/_distutils/command
+usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/_distutils/command/__init__.py
+usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/_distutils/command/bdist.py
+usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/_distutils/command/bdist_dumb.py
+usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/_distutils/command/bdist_msi.py
+usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/_distutils/command/bdist_rpm.py
+usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/_distutils/command/bdist_wininst.py
+usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/_distutils/command/build.py
+usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/_distutils/command/build_clib.py
+usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/_distutils/command/build_ext.py
+usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/_distutils/command/build_py.py
+usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/_distutils/command/build_scripts.py
+usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/_distutils/command/check.py
+usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/_distutils/command/clean.py
+usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/_distutils/command/config.py
+usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/_distutils/command/install.py
+usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/_distutils/command/install_data.py
+usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/_distutils/command/install_egg_info.py
+usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/_distutils/command/install_headers.py
+usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/_distutils/command/install_lib.py
+usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/_distutils/command/install_scripts.py
+usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/_distutils/command/py37compat.py
+usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/_distutils/command/register.py
+usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/_distutils/command/sdist.py
+usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/_distutils/command/upload.py
+usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/_distutils/config.py
+usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/_distutils/core.py
+usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/_distutils/cygwinccompiler.py
+usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/_distutils/debug.py
+usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/_distutils/dep_util.py
+usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/_distutils/dir_util.py
+usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/_distutils/dist.py
+usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/_distutils/errors.py
+usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/_distutils/extension.py
+usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/_distutils/fancy_getopt.py
+usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/_distutils/file_util.py
+usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/_distutils/filelist.py
+usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/_distutils/log.py
+usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/_distutils/msvc9compiler.py
+usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/_distutils/msvccompiler.py
+usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/_distutils/py35compat.py
+usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/_distutils/py38compat.py
+usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/_distutils/spawn.py
+usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/_distutils/sysconfig.py
+usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/_distutils/text_file.py
+usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/_distutils/unixccompiler.py
+usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/_distutils/util.py
+usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/_distutils/version.py
+usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/_distutils/versionpredicate.py
+usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/_imp.py
+#usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/_vendor
+usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/_vendor/__init__.py
+usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/_vendor/ordered_set.py
+#usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/_vendor/packaging
+usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/_vendor/packaging/__about__.py
+usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/_vendor/packaging/__init__.py
+usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/_vendor/packaging/_compat.py
+usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/_vendor/packaging/_structures.py
+usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/_vendor/packaging/_typing.py
+usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/_vendor/packaging/markers.py
+usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/_vendor/packaging/requirements.py
+usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/_vendor/packaging/specifiers.py
+usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/_vendor/packaging/tags.py
+usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/_vendor/packaging/utils.py
+usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/_vendor/packaging/version.py
+usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/_vendor/pyparsing.py
+usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/archive_util.py
+usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/build_meta.py
+#usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/cli-32.exe
+#usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/cli-64.exe
+#usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/cli.exe
+#usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/command
+usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/command/__init__.py
+usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/command/alias.py
+usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/command/bdist_egg.py
+usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/command/bdist_rpm.py
+usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/command/build_clib.py
+usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/command/build_ext.py
+usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/command/build_py.py
+usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/command/develop.py
+usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/command/dist_info.py
+usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/command/easy_install.py
+usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/command/egg_info.py
+usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/command/install.py
+usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/command/install_egg_info.py
+usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/command/install_lib.py
+usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/command/install_scripts.py
+#usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/command/launcher
+#manifest.xml
+usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/command/py36compat.py
+usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/command/register.py
+usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/command/rotate.py
+usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/command/saveopts.py
+usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/command/sdist.py
+usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/command/setopt.py
+usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/command/test.py
+usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/command/upload.py
+usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/command/upload_docs.py
+usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/config.py
+usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/dep_util.py
+usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/depends.py
+usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/dist.py
+usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/errors.py
+usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/extension.py
+#usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/extern
+usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/extern/__init__.py
+usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/glob.py
+usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/gui-32.exe
+usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/gui-64.exe
+usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/gui.exe
+usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/installer.py
+usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/launch.py
+usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/lib2to3_ex.py
+usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/monkey.py
+usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/msvc.py
+usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/namespaces.py
+usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/package_index.py
+usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/py34compat.py
+usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/sandbox.py
+#usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/script
+#(dev).tmpl
+#usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/script.tmpl
+usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/ssl_support.py
+usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/unicode_utils.py
+usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/version.py
+usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/wheel.py
+usr/lib/python3.8/site-packages/setuptools-56.2.0-py3.8.egg/setuptools/windows_support.py
+#usr/lib/python3.8/site-packages/setuptools.pth
+++ /dev/null
-etc/rc.d/init.d/sane
-etc/rc.d/rc0.d/K10sane
-etc/rc.d/rc3.d/S95sane
-etc/rc.d/rc6.d/K10sane
-#etc/sane.d
-etc/sane.d/abaton.conf
-etc/sane.d/agfafocus.conf
-etc/sane.d/apple.conf
-etc/sane.d/artec.conf
-etc/sane.d/artec_eplus48u.conf
-etc/sane.d/avision.conf
-etc/sane.d/bh.conf
-etc/sane.d/canon.conf
-etc/sane.d/canon630u.conf
-etc/sane.d/canon_dr.conf
-etc/sane.d/cardscan.conf
-etc/sane.d/coolscan.conf
-etc/sane.d/coolscan2.conf
-etc/sane.d/coolscan3.conf
-etc/sane.d/dc210.conf
-etc/sane.d/dc240.conf
-etc/sane.d/dc25.conf
-etc/sane.d/dell1600n_net.conf
-etc/sane.d/dll.conf
-etc/sane.d/dll.d
-etc/sane.d/dmc.conf
-etc/sane.d/epjitsu.conf
-etc/sane.d/epson.conf
-etc/sane.d/epson2.conf
-etc/sane.d/epsonds.conf
-etc/sane.d/fujitsu.conf
-etc/sane.d/genesys.conf
-etc/sane.d/gt68xx.conf
-etc/sane.d/hp.conf
-etc/sane.d/hp3900.conf
-etc/sane.d/hp4200.conf
-etc/sane.d/hp5400.conf
-etc/sane.d/hs2p.conf
-etc/sane.d/ibm.conf
-etc/sane.d/kodak.conf
-etc/sane.d/kodakaio.conf
-etc/sane.d/kvs1025.conf
-etc/sane.d/leo.conf
-etc/sane.d/lexmark.conf
-etc/sane.d/ma1509.conf
-etc/sane.d/magicolor.conf
-etc/sane.d/matsushita.conf
-etc/sane.d/microtek.conf
-etc/sane.d/microtek2.conf
-etc/sane.d/mustek.conf
-etc/sane.d/mustek_pp.conf
-etc/sane.d/mustek_usb.conf
-etc/sane.d/nec.conf
-etc/sane.d/net.conf
-etc/sane.d/p5.conf
-etc/sane.d/pie.conf
-etc/sane.d/pieusb.conf
-etc/sane.d/pixma.conf
-etc/sane.d/plustek.conf
-etc/sane.d/plustek_pp.conf
-etc/sane.d/qcam.conf
-etc/sane.d/ricoh.conf
-etc/sane.d/rts8891.conf
-etc/sane.d/s9036.conf
-etc/sane.d/saned.conf
-etc/sane.d/sceptre.conf
-etc/sane.d/sharp.conf
-etc/sane.d/sm3840.conf
-etc/sane.d/snapscan.conf
-etc/sane.d/sp15c.conf
-etc/sane.d/st400.conf
-etc/sane.d/stv680.conf
-etc/sane.d/tamarack.conf
-etc/sane.d/teco1.conf
-etc/sane.d/teco2.conf
-etc/sane.d/teco3.conf
-etc/sane.d/test.conf
-etc/sane.d/u12.conf
-etc/sane.d/umax.conf
-etc/sane.d/umax1220u.conf
-etc/sane.d/umax_pp.conf
-etc/sane.d/xerox_mfp.conf
-usr/bin/gamma4scanimage
-usr/bin/sane-config
-usr/bin/sane-find-scanner
-usr/bin/scanimage
-usr/bin/umax_pp
-#usr/include/sane
-usr/include/sane/sane.h
-usr/include/sane/saneopts.h
-#usr/lib/libsane.la
-usr/lib/libsane.so
-usr/lib/libsane.so.1
-usr/lib/libsane.so.1.0.28
-#usr/lib/pkgconfig/sane-backends.pc
-#usr/lib/sane
-#usr/lib/sane/libsane-abaton.la
-usr/lib/sane/libsane-abaton.so
-usr/lib/sane/libsane-abaton.so.1
-usr/lib/sane/libsane-abaton.so.1.0.28
-#usr/lib/sane/libsane-agfafocus.la
-usr/lib/sane/libsane-agfafocus.so
-usr/lib/sane/libsane-agfafocus.so.1
-usr/lib/sane/libsane-agfafocus.so.1.0.28
-#usr/lib/sane/libsane-apple.la
-usr/lib/sane/libsane-apple.so
-usr/lib/sane/libsane-apple.so.1
-usr/lib/sane/libsane-apple.so.1.0.28
-#usr/lib/sane/libsane-artec.la
-usr/lib/sane/libsane-artec.so
-usr/lib/sane/libsane-artec.so.1
-usr/lib/sane/libsane-artec.so.1.0.28
-#usr/lib/sane/libsane-artec_eplus48u.la
-usr/lib/sane/libsane-artec_eplus48u.so
-usr/lib/sane/libsane-artec_eplus48u.so.1
-usr/lib/sane/libsane-artec_eplus48u.so.1.0.28
-#usr/lib/sane/libsane-as6e.la
-usr/lib/sane/libsane-as6e.so
-usr/lib/sane/libsane-as6e.so.1
-usr/lib/sane/libsane-as6e.so.1.0.28
-#usr/lib/sane/libsane-avision.la
-usr/lib/sane/libsane-avision.so
-usr/lib/sane/libsane-avision.so.1
-usr/lib/sane/libsane-avision.so.1.0.28
-#usr/lib/sane/libsane-bh.la
-usr/lib/sane/libsane-bh.so
-usr/lib/sane/libsane-bh.so.1
-usr/lib/sane/libsane-bh.so.1.0.28
-#usr/lib/sane/libsane-canon.la
-usr/lib/sane/libsane-canon.so
-usr/lib/sane/libsane-canon.so.1
-usr/lib/sane/libsane-canon.so.1.0.28
-#usr/lib/sane/libsane-canon630u.la
-usr/lib/sane/libsane-canon630u.so
-usr/lib/sane/libsane-canon630u.so.1
-usr/lib/sane/libsane-canon630u.so.1.0.28
-#usr/lib/sane/libsane-canon_dr.la
-usr/lib/sane/libsane-canon_dr.so
-usr/lib/sane/libsane-canon_dr.so.1
-usr/lib/sane/libsane-canon_dr.so.1.0.28
-#usr/lib/sane/libsane-cardscan.la
-usr/lib/sane/libsane-cardscan.so
-usr/lib/sane/libsane-cardscan.so.1
-usr/lib/sane/libsane-cardscan.so.1.0.28
-#usr/lib/sane/libsane-coolscan.la
-usr/lib/sane/libsane-coolscan.so
-usr/lib/sane/libsane-coolscan.so.1
-usr/lib/sane/libsane-coolscan.so.1.0.28
-#usr/lib/sane/libsane-coolscan2.la
-usr/lib/sane/libsane-coolscan2.so
-usr/lib/sane/libsane-coolscan2.so.1
-usr/lib/sane/libsane-coolscan2.so.1.0.28
-#usr/lib/sane/libsane-coolscan3.la
-usr/lib/sane/libsane-coolscan3.so
-usr/lib/sane/libsane-coolscan3.so.1
-usr/lib/sane/libsane-coolscan3.so.1.0.28
-#usr/lib/sane/libsane-dc210.la
-usr/lib/sane/libsane-dc210.so
-usr/lib/sane/libsane-dc210.so.1
-usr/lib/sane/libsane-dc210.so.1.0.28
-#usr/lib/sane/libsane-dc240.la
-usr/lib/sane/libsane-dc240.so
-usr/lib/sane/libsane-dc240.so.1
-usr/lib/sane/libsane-dc240.so.1.0.28
-#usr/lib/sane/libsane-dc25.la
-usr/lib/sane/libsane-dc25.so
-usr/lib/sane/libsane-dc25.so.1
-usr/lib/sane/libsane-dc25.so.1.0.28
-#usr/lib/sane/libsane-dell1600n_net.la
-usr/lib/sane/libsane-dell1600n_net.so
-usr/lib/sane/libsane-dell1600n_net.so.1
-usr/lib/sane/libsane-dell1600n_net.so.1.0.28
-#usr/lib/sane/libsane-dll.la
-usr/lib/sane/libsane-dll.so
-usr/lib/sane/libsane-dll.so.1
-usr/lib/sane/libsane-dll.so.1.0.28
-#usr/lib/sane/libsane-dmc.la
-usr/lib/sane/libsane-dmc.so
-usr/lib/sane/libsane-dmc.so.1
-usr/lib/sane/libsane-dmc.so.1.0.28
-#usr/lib/sane/libsane-epjitsu.la
-usr/lib/sane/libsane-epjitsu.so
-usr/lib/sane/libsane-epjitsu.so.1
-usr/lib/sane/libsane-epjitsu.so.1.0.28
-#usr/lib/sane/libsane-epson.la
-usr/lib/sane/libsane-epson.so
-usr/lib/sane/libsane-epson.so.1
-usr/lib/sane/libsane-epson.so.1.0.28
-#usr/lib/sane/libsane-epson2.la
-usr/lib/sane/libsane-epson2.so
-usr/lib/sane/libsane-epson2.so.1
-usr/lib/sane/libsane-epson2.so.1.0.28
-#usr/lib/sane/libsane-epsonds.la
-usr/lib/sane/libsane-epsonds.so
-usr/lib/sane/libsane-epsonds.so.1
-usr/lib/sane/libsane-epsonds.so.1.0.28
-#usr/lib/sane/libsane-fujitsu.la
-usr/lib/sane/libsane-fujitsu.so
-usr/lib/sane/libsane-fujitsu.so.1
-usr/lib/sane/libsane-fujitsu.so.1.0.28
-#usr/lib/sane/libsane-genesys.la
-usr/lib/sane/libsane-genesys.so
-usr/lib/sane/libsane-genesys.so.1
-usr/lib/sane/libsane-genesys.so.1.0.28
-#usr/lib/sane/libsane-gt68xx.la
-usr/lib/sane/libsane-gt68xx.so
-usr/lib/sane/libsane-gt68xx.so.1
-usr/lib/sane/libsane-gt68xx.so.1.0.28
-#usr/lib/sane/libsane-hp.la
-usr/lib/sane/libsane-hp.so
-usr/lib/sane/libsane-hp.so.1
-usr/lib/sane/libsane-hp.so.1.0.28
-#usr/lib/sane/libsane-hp3500.la
-usr/lib/sane/libsane-hp3500.so
-usr/lib/sane/libsane-hp3500.so.1
-usr/lib/sane/libsane-hp3500.so.1.0.28
-#usr/lib/sane/libsane-hp3900.la
-usr/lib/sane/libsane-hp3900.so
-usr/lib/sane/libsane-hp3900.so.1
-usr/lib/sane/libsane-hp3900.so.1.0.28
-#usr/lib/sane/libsane-hp4200.la
-usr/lib/sane/libsane-hp4200.so
-usr/lib/sane/libsane-hp4200.so.1
-usr/lib/sane/libsane-hp4200.so.1.0.28
-#usr/lib/sane/libsane-hp5400.la
-usr/lib/sane/libsane-hp5400.so
-usr/lib/sane/libsane-hp5400.so.1
-usr/lib/sane/libsane-hp5400.so.1.0.28
-#usr/lib/sane/libsane-hp5590.la
-usr/lib/sane/libsane-hp5590.so
-usr/lib/sane/libsane-hp5590.so.1
-usr/lib/sane/libsane-hp5590.so.1.0.28
-#usr/lib/sane/libsane-hpljm1005.la
-usr/lib/sane/libsane-hpljm1005.so
-usr/lib/sane/libsane-hpljm1005.so.1
-usr/lib/sane/libsane-hpljm1005.so.1.0.28
-#usr/lib/sane/libsane-hs2p.la
-usr/lib/sane/libsane-hs2p.so
-usr/lib/sane/libsane-hs2p.so.1
-usr/lib/sane/libsane-hs2p.so.1.0.28
-#usr/lib/sane/libsane-ibm.la
-usr/lib/sane/libsane-ibm.so
-usr/lib/sane/libsane-ibm.so.1
-usr/lib/sane/libsane-ibm.so.1.0.28
-#usr/lib/sane/libsane-kodak.la
-usr/lib/sane/libsane-kodak.so
-usr/lib/sane/libsane-kodak.so.1
-usr/lib/sane/libsane-kodak.so.1.0.28
-#usr/lib/sane/libsane-kodakaio.la
-usr/lib/sane/libsane-kodakaio.so
-usr/lib/sane/libsane-kodakaio.so.1
-usr/lib/sane/libsane-kodakaio.so.1.0.28
-#usr/lib/sane/libsane-kvs1025.la
-usr/lib/sane/libsane-kvs1025.so
-usr/lib/sane/libsane-kvs1025.so.1
-usr/lib/sane/libsane-kvs1025.so.1.0.28
-#usr/lib/sane/libsane-kvs20xx.la
-usr/lib/sane/libsane-kvs20xx.so
-usr/lib/sane/libsane-kvs20xx.so.1
-usr/lib/sane/libsane-kvs20xx.so.1.0.28
-#usr/lib/sane/libsane-kvs40xx.la
-usr/lib/sane/libsane-kvs40xx.so
-usr/lib/sane/libsane-kvs40xx.so.1
-usr/lib/sane/libsane-kvs40xx.so.1.0.28
-#usr/lib/sane/libsane-leo.la
-usr/lib/sane/libsane-leo.so
-usr/lib/sane/libsane-leo.so.1
-usr/lib/sane/libsane-leo.so.1.0.28
-#usr/lib/sane/libsane-lexmark.la
-usr/lib/sane/libsane-lexmark.so
-usr/lib/sane/libsane-lexmark.so.1
-usr/lib/sane/libsane-lexmark.so.1.0.28
-#usr/lib/sane/libsane-ma1509.la
-usr/lib/sane/libsane-ma1509.so
-usr/lib/sane/libsane-ma1509.so.1
-usr/lib/sane/libsane-ma1509.so.1.0.28
-#usr/lib/sane/libsane-magicolor.la
-usr/lib/sane/libsane-magicolor.so
-usr/lib/sane/libsane-magicolor.so.1
-usr/lib/sane/libsane-magicolor.so.1.0.28
-#usr/lib/sane/libsane-matsushita.la
-usr/lib/sane/libsane-matsushita.so
-usr/lib/sane/libsane-matsushita.so.1
-usr/lib/sane/libsane-matsushita.so.1.0.28
-#usr/lib/sane/libsane-microtek.la
-usr/lib/sane/libsane-microtek.so
-usr/lib/sane/libsane-microtek.so.1
-usr/lib/sane/libsane-microtek.so.1.0.28
-#usr/lib/sane/libsane-microtek2.la
-usr/lib/sane/libsane-microtek2.so
-usr/lib/sane/libsane-microtek2.so.1
-usr/lib/sane/libsane-microtek2.so.1.0.28
-#usr/lib/sane/libsane-mustek.la
-usr/lib/sane/libsane-mustek.so
-usr/lib/sane/libsane-mustek.so.1
-usr/lib/sane/libsane-mustek.so.1.0.28
-#usr/lib/sane/libsane-mustek_pp.la
-usr/lib/sane/libsane-mustek_pp.so
-usr/lib/sane/libsane-mustek_pp.so.1
-usr/lib/sane/libsane-mustek_pp.so.1.0.28
-#usr/lib/sane/libsane-mustek_usb.la
-usr/lib/sane/libsane-mustek_usb.so
-usr/lib/sane/libsane-mustek_usb.so.1
-usr/lib/sane/libsane-mustek_usb.so.1.0.28
-#usr/lib/sane/libsane-mustek_usb2.la
-usr/lib/sane/libsane-mustek_usb2.so
-usr/lib/sane/libsane-mustek_usb2.so.1
-usr/lib/sane/libsane-mustek_usb2.so.1.0.28
-#usr/lib/sane/libsane-nec.la
-usr/lib/sane/libsane-nec.so
-usr/lib/sane/libsane-nec.so.1
-usr/lib/sane/libsane-nec.so.1.0.28
-#usr/lib/sane/libsane-net.la
-usr/lib/sane/libsane-net.so
-usr/lib/sane/libsane-net.so.1
-usr/lib/sane/libsane-net.so.1.0.28
-#usr/lib/sane/libsane-niash.la
-usr/lib/sane/libsane-niash.so
-usr/lib/sane/libsane-niash.so.1
-usr/lib/sane/libsane-niash.so.1.0.28
-#usr/lib/sane/libsane-p5.la
-usr/lib/sane/libsane-p5.so
-usr/lib/sane/libsane-p5.so.1
-usr/lib/sane/libsane-p5.so.1.0.28
-#usr/lib/sane/libsane-pie.la
-usr/lib/sane/libsane-pie.so
-usr/lib/sane/libsane-pie.so.1
-usr/lib/sane/libsane-pie.so.1.0.28
-#usr/lib/sane/libsane-pieusb.la
-usr/lib/sane/libsane-pieusb.so
-usr/lib/sane/libsane-pieusb.so.1
-usr/lib/sane/libsane-pieusb.so.1.0.28
-#usr/lib/sane/libsane-pixma.la
-usr/lib/sane/libsane-pixma.so
-usr/lib/sane/libsane-pixma.so.1
-usr/lib/sane/libsane-pixma.so.1.0.28
-#usr/lib/sane/libsane-plustek.la
-usr/lib/sane/libsane-plustek.so
-usr/lib/sane/libsane-plustek.so.1
-usr/lib/sane/libsane-plustek.so.1.0.28
-#usr/lib/sane/libsane-plustek_pp.la
-usr/lib/sane/libsane-plustek_pp.so
-usr/lib/sane/libsane-plustek_pp.so.1
-usr/lib/sane/libsane-plustek_pp.so.1.0.28
-#usr/lib/sane/libsane-qcam.la
-usr/lib/sane/libsane-qcam.so
-usr/lib/sane/libsane-qcam.so.1
-usr/lib/sane/libsane-qcam.so.1.0.28
-#usr/lib/sane/libsane-ricoh.la
-usr/lib/sane/libsane-ricoh.so
-usr/lib/sane/libsane-ricoh.so.1
-usr/lib/sane/libsane-ricoh.so.1.0.28
-#usr/lib/sane/libsane-ricoh2.la
-usr/lib/sane/libsane-ricoh2.so
-usr/lib/sane/libsane-ricoh2.so.1
-usr/lib/sane/libsane-ricoh2.so.1.0.28
-#usr/lib/sane/libsane-rts8891.la
-usr/lib/sane/libsane-rts8891.so
-usr/lib/sane/libsane-rts8891.so.1
-usr/lib/sane/libsane-rts8891.so.1.0.28
-#usr/lib/sane/libsane-s9036.la
-usr/lib/sane/libsane-s9036.so
-usr/lib/sane/libsane-s9036.so.1
-usr/lib/sane/libsane-s9036.so.1.0.28
-#usr/lib/sane/libsane-sceptre.la
-usr/lib/sane/libsane-sceptre.so
-usr/lib/sane/libsane-sceptre.so.1
-usr/lib/sane/libsane-sceptre.so.1.0.28
-#usr/lib/sane/libsane-sharp.la
-usr/lib/sane/libsane-sharp.so
-usr/lib/sane/libsane-sharp.so.1
-usr/lib/sane/libsane-sharp.so.1.0.28
-#usr/lib/sane/libsane-sm3600.la
-usr/lib/sane/libsane-sm3600.so
-usr/lib/sane/libsane-sm3600.so.1
-usr/lib/sane/libsane-sm3600.so.1.0.28
-#usr/lib/sane/libsane-sm3840.la
-usr/lib/sane/libsane-sm3840.so
-usr/lib/sane/libsane-sm3840.so.1
-usr/lib/sane/libsane-sm3840.so.1.0.28
-#usr/lib/sane/libsane-snapscan.la
-usr/lib/sane/libsane-snapscan.so
-usr/lib/sane/libsane-snapscan.so.1
-usr/lib/sane/libsane-snapscan.so.1.0.28
-#usr/lib/sane/libsane-sp15c.la
-usr/lib/sane/libsane-sp15c.so
-usr/lib/sane/libsane-sp15c.so.1
-usr/lib/sane/libsane-sp15c.so.1.0.28
-#usr/lib/sane/libsane-st400.la
-usr/lib/sane/libsane-st400.so
-usr/lib/sane/libsane-st400.so.1
-usr/lib/sane/libsane-st400.so.1.0.28
-#usr/lib/sane/libsane-stv680.la
-usr/lib/sane/libsane-stv680.so
-usr/lib/sane/libsane-stv680.so.1
-usr/lib/sane/libsane-stv680.so.1.0.28
-#usr/lib/sane/libsane-tamarack.la
-usr/lib/sane/libsane-tamarack.so
-usr/lib/sane/libsane-tamarack.so.1
-usr/lib/sane/libsane-tamarack.so.1.0.28
-#usr/lib/sane/libsane-teco1.la
-usr/lib/sane/libsane-teco1.so
-usr/lib/sane/libsane-teco1.so.1
-usr/lib/sane/libsane-teco1.so.1.0.28
-#usr/lib/sane/libsane-teco2.la
-usr/lib/sane/libsane-teco2.so
-usr/lib/sane/libsane-teco2.so.1
-usr/lib/sane/libsane-teco2.so.1.0.28
-#usr/lib/sane/libsane-teco3.la
-usr/lib/sane/libsane-teco3.so
-usr/lib/sane/libsane-teco3.so.1
-usr/lib/sane/libsane-teco3.so.1.0.28
-#usr/lib/sane/libsane-test.la
-usr/lib/sane/libsane-test.so
-usr/lib/sane/libsane-test.so.1
-usr/lib/sane/libsane-test.so.1.0.28
-#usr/lib/sane/libsane-u12.la
-usr/lib/sane/libsane-u12.so
-usr/lib/sane/libsane-u12.so.1
-usr/lib/sane/libsane-u12.so.1.0.28
-#usr/lib/sane/libsane-umax.la
-usr/lib/sane/libsane-umax.so
-usr/lib/sane/libsane-umax.so.1
-usr/lib/sane/libsane-umax.so.1.0.28
-#usr/lib/sane/libsane-umax1220u.la
-usr/lib/sane/libsane-umax1220u.so
-usr/lib/sane/libsane-umax1220u.so.1
-usr/lib/sane/libsane-umax1220u.so.1.0.28
-#usr/lib/sane/libsane-umax_pp.la
-usr/lib/sane/libsane-umax_pp.so
-usr/lib/sane/libsane-umax_pp.so.1
-usr/lib/sane/libsane-umax_pp.so.1.0.28
-#usr/lib/sane/libsane-xerox_mfp.la
-usr/lib/sane/libsane-xerox_mfp.so
-usr/lib/sane/libsane-xerox_mfp.so.1
-usr/lib/sane/libsane-xerox_mfp.so.1.0.28
-usr/sbin/saned
-#usr/share/doc/sane-backends
-#usr/share/doc/sane-backends/AUTHORS
-#usr/share/doc/sane-backends/COPYING
-#usr/share/doc/sane-backends/ChangeLog
-#usr/share/doc/sane-backends/LICENSE
-#usr/share/doc/sane-backends/NEWS
-#usr/share/doc/sane-backends/PROBLEMS
-#usr/share/doc/sane-backends/PROJECTS
-#usr/share/doc/sane-backends/README
-#usr/share/doc/sane-backends/README.aix
-#usr/share/doc/sane-backends/README.beos
-#usr/share/doc/sane-backends/README.darwin
-#usr/share/doc/sane-backends/README.djpeg
-#usr/share/doc/sane-backends/README.freebsd
-#usr/share/doc/sane-backends/README.hp-ux
-#usr/share/doc/sane-backends/README.linux
-#usr/share/doc/sane-backends/README.netbsd
-#usr/share/doc/sane-backends/README.openbsd
-#usr/share/doc/sane-backends/README.os2
-#usr/share/doc/sane-backends/README.solaris
-#usr/share/doc/sane-backends/README.unixware2
-#usr/share/doc/sane-backends/README.unixware7
-#usr/share/doc/sane-backends/README.windows
-#usr/share/doc/sane-backends/README.zeta
-#usr/share/doc/sane-backends/backend-writing.txt
-#usr/share/doc/sane-backends/canon
-#usr/share/doc/sane-backends/canon/canon.changes
-#usr/share/doc/sane-backends/canon/canon.install2700F.txt
-#usr/share/doc/sane-backends/gt68xx
-#usr/share/doc/sane-backends/gt68xx/gt68xx.CHANGES
-#usr/share/doc/sane-backends/gt68xx/gt68xx.TODO
-#usr/share/doc/sane-backends/leo
-#usr/share/doc/sane-backends/leo/leo.txt
-#usr/share/doc/sane-backends/matsushita
-#usr/share/doc/sane-backends/matsushita/matsushita.txt
-#usr/share/doc/sane-backends/mustek
-#usr/share/doc/sane-backends/mustek/mustek.CHANGES
-#usr/share/doc/sane-backends/mustek_usb
-#usr/share/doc/sane-backends/mustek_usb/mustek_usb.CHANGES
-#usr/share/doc/sane-backends/mustek_usb/mustek_usb.TODO
-#usr/share/doc/sane-backends/mustek_usb2
-#usr/share/doc/sane-backends/mustek_usb2/mustek_usb2.CHANGES
-#usr/share/doc/sane-backends/mustek_usb2/mustek_usb2.TODO
-#usr/share/doc/sane-backends/niash
-#usr/share/doc/sane-backends/niash/niash.TODO
-#usr/share/doc/sane-backends/plustek
-#usr/share/doc/sane-backends/plustek/FAQ
-#usr/share/doc/sane-backends/plustek/MakeModule.sh
-#usr/share/doc/sane-backends/plustek/Makefile.kernel24
-#usr/share/doc/sane-backends/plustek/Makefile.kernel26
-#usr/share/doc/sane-backends/plustek/Plustek-PARPORT-TODO.txt
-#usr/share/doc/sane-backends/plustek/Plustek-PARPORT.changes
-#usr/share/doc/sane-backends/plustek/Plustek-PARPORT.txt
-#usr/share/doc/sane-backends/plustek/Plustek-USB-TODO.txt
-#usr/share/doc/sane-backends/plustek/Plustek-USB.changes
-#usr/share/doc/sane-backends/plustek/Plustek-USB.txt
-#usr/share/doc/sane-backends/sane-backends-external.html
-#usr/share/doc/sane-backends/sane-backends.html
-#usr/share/doc/sane-backends/sane-mfgs-external.html
-#usr/share/doc/sane-backends/sane-mfgs.html
-#usr/share/doc/sane-backends/sceptre
-#usr/share/doc/sane-backends/sceptre/s1200.txt
-#usr/share/doc/sane-backends/teco
-#usr/share/doc/sane-backends/teco/teco1.txt
-#usr/share/doc/sane-backends/teco/teco2.txt
-#usr/share/doc/sane-backends/teco/teco3.txt
-#usr/share/doc/sane-backends/u12
-#usr/share/doc/sane-backends/u12/U12.changes
-#usr/share/doc/sane-backends/u12/U12.todo
-#usr/share/doc/sane-backends/umax
-#usr/share/doc/sane-backends/umax/negative-types.txt
-#usr/share/doc/sane-backends/umax/sane-logo.jpg
-#usr/share/doc/sane-backends/umax/sane-umax-advanced-options-doc.html
-#usr/share/doc/sane-backends/umax/sane-umax-advanced.jpg
-#usr/share/doc/sane-backends/umax/sane-umax-astra-doc.html
-#usr/share/doc/sane-backends/umax/sane-umax-config-doc.html
-#usr/share/doc/sane-backends/umax/sane-umax-doc.html
-#usr/share/doc/sane-backends/umax/sane-umax-histogram.jpg
-#usr/share/doc/sane-backends/umax/sane-umax-mirage-doc.html
-#usr/share/doc/sane-backends/umax/sane-umax-not-listed-doc.html
-#usr/share/doc/sane-backends/umax/sane-umax-others-doc.html
-#usr/share/doc/sane-backends/umax/sane-umax-parport-doc.html
-#usr/share/doc/sane-backends/umax/sane-umax-powerlook-doc.html
-#usr/share/doc/sane-backends/umax/sane-umax-scanner-clones-doc.html
-#usr/share/doc/sane-backends/umax/sane-umax-speed-doc.html
-#usr/share/doc/sane-backends/umax/sane-umax-standard-options-doc.html
-#usr/share/doc/sane-backends/umax/sane-umax-standard.jpg
-#usr/share/doc/sane-backends/umax/sane-umax-text.jpg
-#usr/share/doc/sane-backends/umax/sane-umax-text2.jpg
-#usr/share/doc/sane-backends/umax/sane-umax-text4.jpg
-#usr/share/doc/sane-backends/umax/sane-umax-uc-doc.html
-#usr/share/doc/sane-backends/umax/sane-umax-vista-doc.html
-#usr/share/doc/sane-backends/umax/sane-umax.jpg
-#usr/share/doc/sane-backends/umax/umax.BUGS
-#usr/share/doc/sane-backends/umax/umax.CHANGES
-#usr/share/doc/sane-backends/umax/umax.FAQ
-#usr/share/doc/sane-backends/umax/umax.TODO
-#usr/share/locale/bg/LC_MESSAGES/sane-backends.mo
-#usr/share/locale/ca/LC_MESSAGES/sane-backends.mo
-#usr/share/locale/ca@valencia/LC_MESSAGES/sane-backends.mo
-#usr/share/locale/cs/LC_MESSAGES/sane-backends.mo
-#usr/share/locale/da/LC_MESSAGES/sane-backends.mo
-#usr/share/locale/de/LC_MESSAGES/sane-backends.mo
-#usr/share/locale/en@boldquot/LC_MESSAGES/sane-backends.mo
-#usr/share/locale/en@quot/LC_MESSAGES/sane-backends.mo
-#usr/share/locale/en_GB/LC_MESSAGES/sane-backends.mo
-#usr/share/locale/eo/LC_MESSAGES/sane-backends.mo
-#usr/share/locale/es/LC_MESSAGES/sane-backends.mo
-#usr/share/locale/fi/LC_MESSAGES/sane-backends.mo
-#usr/share/locale/fr/LC_MESSAGES/sane-backends.mo
-#usr/share/locale/gl/LC_MESSAGES/sane-backends.mo
-#usr/share/locale/he/LC_MESSAGES/sane-backends.mo
-#usr/share/locale/hu/LC_MESSAGES/sane-backends.mo
-#usr/share/locale/it/LC_MESSAGES/sane-backends.mo
-#usr/share/locale/ja/LC_MESSAGES/sane-backends.mo
-#usr/share/locale/nb/LC_MESSAGES/sane-backends.mo
-#usr/share/locale/nl/LC_MESSAGES/sane-backends.mo
-#usr/share/locale/pl/LC_MESSAGES/sane-backends.mo
-#usr/share/locale/pt/LC_MESSAGES/sane-backends.mo
-#usr/share/locale/ru/LC_MESSAGES/sane-backends.mo
-#usr/share/locale/sv/LC_MESSAGES/sane-backends.mo
-#usr/share/locale/uk/LC_MESSAGES/sane-backends.mo
-#usr/share/man/man1/gamma4scanimage.1
-#usr/share/man/man1/sane-config.1
-#usr/share/man/man1/sane-find-scanner.1
-#usr/share/man/man1/scanimage.1
-#usr/share/man/man5/sane-abaton.5
-#usr/share/man/man5/sane-agfafocus.5
-#usr/share/man/man5/sane-apple.5
-#usr/share/man/man5/sane-artec.5
-#usr/share/man/man5/sane-artec_eplus48u.5
-#usr/share/man/man5/sane-as6e.5
-#usr/share/man/man5/sane-avision.5
-#usr/share/man/man5/sane-bh.5
-#usr/share/man/man5/sane-canon.5
-#usr/share/man/man5/sane-canon630u.5
-#usr/share/man/man5/sane-canon_dr.5
-#usr/share/man/man5/sane-cardscan.5
-#usr/share/man/man5/sane-coolscan.5
-#usr/share/man/man5/sane-coolscan2.5
-#usr/share/man/man5/sane-coolscan3.5
-#usr/share/man/man5/sane-dc210.5
-#usr/share/man/man5/sane-dc240.5
-#usr/share/man/man5/sane-dc25.5
-#usr/share/man/man5/sane-dll.5
-#usr/share/man/man5/sane-dmc.5
-#usr/share/man/man5/sane-epjitsu.5
-#usr/share/man/man5/sane-epson.5
-#usr/share/man/man5/sane-epson2.5
-#usr/share/man/man5/sane-epsonds.5
-#usr/share/man/man5/sane-fujitsu.5
-#usr/share/man/man5/sane-genesys.5
-#usr/share/man/man5/sane-gt68xx.5
-#usr/share/man/man5/sane-hp.5
-#usr/share/man/man5/sane-hp3500.5
-#usr/share/man/man5/sane-hp3900.5
-#usr/share/man/man5/sane-hp4200.5
-#usr/share/man/man5/sane-hp5400.5
-#usr/share/man/man5/sane-hp5590.5
-#usr/share/man/man5/sane-hpljm1005.5
-#usr/share/man/man5/sane-hs2p.5
-#usr/share/man/man5/sane-ibm.5
-#usr/share/man/man5/sane-kodak.5
-#usr/share/man/man5/sane-kodakaio.5
-#usr/share/man/man5/sane-kvs1025.5
-#usr/share/man/man5/sane-kvs20xx.5
-#usr/share/man/man5/sane-kvs40xx.5
-#usr/share/man/man5/sane-leo.5
-#usr/share/man/man5/sane-lexmark.5
-#usr/share/man/man5/sane-ma1509.5
-#usr/share/man/man5/sane-magicolor.5
-#usr/share/man/man5/sane-matsushita.5
-#usr/share/man/man5/sane-microtek.5
-#usr/share/man/man5/sane-microtek2.5
-#usr/share/man/man5/sane-mustek.5
-#usr/share/man/man5/sane-mustek_pp.5
-#usr/share/man/man5/sane-mustek_usb.5
-#usr/share/man/man5/sane-mustek_usb2.5
-#usr/share/man/man5/sane-nec.5
-#usr/share/man/man5/sane-net.5
-#usr/share/man/man5/sane-niash.5
-#usr/share/man/man5/sane-p5.5
-#usr/share/man/man5/sane-pie.5
-#usr/share/man/man5/sane-pieusb.5
-#usr/share/man/man5/sane-pixma.5
-#usr/share/man/man5/sane-plustek.5
-#usr/share/man/man5/sane-plustek_pp.5
-#usr/share/man/man5/sane-qcam.5
-#usr/share/man/man5/sane-ricoh.5
-#usr/share/man/man5/sane-rts8891.5
-#usr/share/man/man5/sane-s9036.5
-#usr/share/man/man5/sane-sceptre.5
-#usr/share/man/man5/sane-scsi.5
-#usr/share/man/man5/sane-sharp.5
-#usr/share/man/man5/sane-sm3600.5
-#usr/share/man/man5/sane-sm3840.5
-#usr/share/man/man5/sane-snapscan.5
-#usr/share/man/man5/sane-sp15c.5
-#usr/share/man/man5/sane-st400.5
-#usr/share/man/man5/sane-stv680.5
-#usr/share/man/man5/sane-tamarack.5
-#usr/share/man/man5/sane-teco1.5
-#usr/share/man/man5/sane-teco2.5
-#usr/share/man/man5/sane-teco3.5
-#usr/share/man/man5/sane-test.5
-#usr/share/man/man5/sane-u12.5
-#usr/share/man/man5/sane-umax.5
-#usr/share/man/man5/sane-umax1220u.5
-#usr/share/man/man5/sane-umax_pp.5
-#usr/share/man/man5/sane-usb.5
-#usr/share/man/man5/sane-xerox_mfp.5
-#usr/share/man/man7/sane.7
-#usr/share/man/man8/saned.8
-#usr/share/sane
-usr/share/sane/artec_eplus48u
-usr/share/sane/epjitsu
-usr/share/sane/gt68xx
-usr/share/sane/snapscan
-#usr/var
-#usr/var/lock
-usr/var/lock/sane
-var/ipfire/backup/addons/includes/sane
+++ /dev/null
-usr/local/bin/sendEmail
+++ /dev/null
-#
-# saned.conf
-#
-# The contents of the saned.conf file is a list of host names, IP
-# addresses or IP subnets (CIDR notation) that are permitted to use local
-# SANE devices. IPv6 addresses must be enclosed in brackets, and should
-# always be specified in their compressed form.
-#
-# The hostname matching is not case-sensitive.
-#
-#scan-client.somedomain.firm
-#192.168.0.1
-#192.168.0.1/29
-#[2001:7a8:185e::42:12]
-#[2001:7a8:185e::42:12]/64
-#
-# NOTE: /etc/inetd.conf (or /etc/xinetd.conf) and
-# /etc/services must also be properly configured to start
-# the saned daemon as documented in saned(8), services(4)
-# and inetd.conf(4) (or xinetd.conf(5)).
-#
-# a singe "+" allow all hosts to connect.
-+
-
+++ /dev/null
-<?xml version="1.0"?>
-<root xmlns="urn:schemas-upnp-org:device-1-0">
- <specVersion>
- <major>1</major>
- <minor>0</minor>
- </specVersion>
- <device>
- <deviceType>urn:schemas-upnp-org:device:InternetGatewayDevice:1</deviceType>
- <friendlyName>IPFire UPnP Device</friendlyName>
- <manufacturer>IPFire Project</manufacturer>
- <manufacturerURL>http://www.ipfire.org</manufacturerURL>
- <modelName>IPFire 2.3</modelName>
- <UDN>uuid:75802409-bccb-40e7-8e6c-fa095ecce13e</UDN>
- <iconList>
- <icon>
- <mimetype>image/gif</mimetype>
- <width>118</width>
- <height>119</height>
- <depth>8</depth>
- <url>/ligd.gif</url>
- </icon>
- </iconList>
- <serviceList>
- <service>
- <serviceType>urn:schemas-dummy-com:service:Dummy:1</serviceType>
- <serviceId>urn:dummy-com:serviceId:dummy1</serviceId>
- <controlURL>/dummy</controlURL>
- <eventSubURL>/dummy</eventSubURL>
- <SCPDURL>/dummy.xml</SCPDURL>
- </service>
- </serviceList>
- <deviceList>
- <device>
- <deviceType>urn:schemas-upnp-org:device:WANDevice:1</deviceType>
- <friendlyName>WANDevice</friendlyName>
- <manufacturer>IPFire Project</manufacturer>
- <manufacturerURL>http://www.ipfire.org</manufacturerURL>
- <modelDescription>WAN Device on Linux IGD</modelDescription>
- <modelName>IPFire</modelName>
- <modelNumber>2.3</modelNumber>
- <modelURL>http://linux-igd.sourceforge.net</modelURL>
- <serialNumber>2.3</serialNumber>
- <UDN>uuid:75802409-bccb-40e7-8e6c-fa095ecce13e</UDN>
- <UPC>Linux IGD</UPC>
- <serviceList>
- <service>
- <serviceType>urn:schemas-upnp-org:service:WANCommonInterfaceConfig:1</serviceType>
- <serviceId>urn:upnp-org:serviceId:WANCommonIFC1</serviceId>
- <controlURL>/upnp/control/WANCommonIFC1</controlURL>
- <eventSubURL>/upnp/control/WANCommonIFC1</eventSubURL>
- <SCPDURL>/gateicfgSCPD.xml</SCPDURL>
- </service>
- </serviceList>
- <deviceList>
- <device>
- <deviceType>urn:schemas-upnp-org:device:WANConnectionDevice:1</deviceType>
- <friendlyName>Internet Connection</friendlyName>
- <manufacturer>IPFire Project</manufacturer>
- <manufacturerURL>http://www.ipfire.org</manufacturerURL>
- <modelDescription>Internet connection on Linux IPFire Firewall</modelDescription>
- <modelName>IPFire</modelName>
- <modelNumber>2.3</modelNumber>
- <modelURL>http://www.ipfire.org</modelURL>
- <serialNumber>2.3</serialNumber>
- <UDN>uuid:75802409-bccb-40e7-8e6c-fa095ecce13e</UDN>
- <UPC>Linux IGD</UPC>
- <serviceList>
- <service>
- <serviceType>urn:schemas-upnp-org:service:WANIPConnection:1</serviceType>
- <serviceId>urn:upnp-org:serviceId:WANIPConn1</serviceId>
- <controlURL>/upnp/control/WANIPConn1</controlURL>
- <eventSubURL>/upnp/control/WANIPConn1</eventSubURL>
- <SCPDURL>/gateconnSCPD.xml</SCPDURL>
- </service>
- </serviceList>
- </device>
- </deviceList>
- </device>
- </deviceList>
- </device>
-</root>
WARNING: translation string unused: alt ovpn
WARNING: translation string unused: alt vpn
WARNING: translation string unused: and
-WARNING: translation string unused: application layer gateways
WARNING: translation string unused: apply
WARNING: translation string unused: archive not exist
WARNING: translation string unused: attemps
WARNING: translation string unused: zoneconf val zoneslave amount error
WARNING: untranslated string: desired = Desired
WARNING: untranslated string: disable = Disable
+WARNING: untranslated string: download apple profile = Download Apple Configuration Profile
WARNING: untranslated string: enable = Enable
WARNING: untranslated string: error the to date has to be later than the from date = The to date has to be later than the from date!
WARNING: untranslated string: fwhost cust locationgrp = unknown string
WARNING: untranslated string: guardian logtarget_syslog = unknown string
WARNING: untranslated string: guardian no entries = unknown string
WARNING: untranslated string: guardian service = unknown string
+WARNING: untranslated string: ipsec dns server address is invalid = Invalid DNS server IP address(es)
+WARNING: untranslated string: ipsec invalid ip address or fqdn for rw endpoint = Invalid IP address or FQDN for Host-to-Net Endpoint
+WARNING: untranslated string: ipsec roadwarrior endpoint = Host-to-Net Endpoint
WARNING: untranslated string: netbios nameserver daemon = NetBIOS Nameserver Daemon
WARNING: untranslated string: no entries = No entries at the moment.
WARNING: untranslated string: optional = Optional
WARNING: untranslated string: authentication = Authentication:
WARNING: untranslated string: automatic = Automatic
WARNING: untranslated string: autonomous system = Autonomous System
+WARNING: untranslated string: available = available
WARNING: untranslated string: available updates = Available updates
WARNING: untranslated string: average = Average
WARNING: untranslated string: back = Back
WARNING: untranslated string: downlink speed = Downlink speed (kbit/sec)
WARNING: untranslated string: downlink std class = downlink standard class
WARNING: untranslated string: download = download
+WARNING: untranslated string: download apple profile = Download Apple Configuration Profile
WARNING: untranslated string: download ca certificate = Download CA certificate
WARNING: untranslated string: download certificate = Download file
WARNING: untranslated string: download host certificate = Download host certificate
WARNING: untranslated string: esp keylife should be between 1 and 24 hours = ESP keylife should be between 1 and 24 hours.
WARNING: untranslated string: every = Every
WARNING: untranslated string: exclude logfiles = Exclude logfiles
-WARNING: untranslated string: excluding buffers and cache = -/+ buffers/cache
WARNING: untranslated string: expires = Expires
WARNING: untranslated string: export = Export
WARNING: untranslated string: external aliases configuration = External aliases configuration
WARNING: untranslated string: ipinfo = IP info
WARNING: untranslated string: ipsec = IPsec
WARNING: untranslated string: ipsec connection = IPsec Connection
+WARNING: untranslated string: ipsec dns server address is invalid = Invalid DNS server IP address(es)
WARNING: untranslated string: ipsec interface mode gre = GRE
WARNING: untranslated string: ipsec interface mode none = - None (Default) -
WARNING: untranslated string: ipsec interface mode vti = VTI
+WARNING: untranslated string: ipsec invalid ip address or fqdn for rw endpoint = Invalid IP address or FQDN for Host-to-Net Endpoint
WARNING: untranslated string: ipsec mode transport = Transport
WARNING: untranslated string: ipsec mode tunnel = Tunnel
WARNING: untranslated string: ipsec network = IPsec network
+WARNING: untranslated string: ipsec roadwarrior endpoint = Host-to-Net Endpoint
WARNING: untranslated string: ipsec routing table entries = IPsec Routing Table Entries
WARNING: untranslated string: ipsec settings = IPsec Settings
WARNING: untranslated string: iptmangles = IPTable Mangles
WARNING: untranslated string: atm device = Device:
WARNING: untranslated string: attention = ATTENTION
WARNING: untranslated string: autonomous system = Autonomous System
+WARNING: untranslated string: available = available
WARNING: untranslated string: bit = bit
WARNING: untranslated string: block = Block
WARNING: untranslated string: broken = Broken
WARNING: untranslated string: dnssec not supported = DNSSEC Not supported
WARNING: untranslated string: dnssec validating = DNSSEC Validating
WARNING: untranslated string: downlink = Downlink
+WARNING: untranslated string: download apple profile = Download Apple Configuration Profile
WARNING: untranslated string: download tls-auth key = Download tls-auth key
WARNING: untranslated string: dpd delay = Delay
WARNING: untranslated string: dpd timeout = Timeout
WARNING: untranslated string: ip info for = IP information for
WARNING: untranslated string: ipsec = IPsec
WARNING: untranslated string: ipsec connection = IPsec Connection
+WARNING: untranslated string: ipsec dns server address is invalid = Invalid DNS server IP address(es)
WARNING: untranslated string: ipsec interface mode gre = GRE
WARNING: untranslated string: ipsec interface mode none = - None (Default) -
WARNING: untranslated string: ipsec interface mode vti = VTI
+WARNING: untranslated string: ipsec invalid ip address or fqdn for rw endpoint = Invalid IP address or FQDN for Host-to-Net Endpoint
WARNING: untranslated string: ipsec mode transport = Transport
WARNING: untranslated string: ipsec mode tunnel = Tunnel
WARNING: untranslated string: ipsec network = IPsec network
+WARNING: untranslated string: ipsec roadwarrior endpoint = Host-to-Net Endpoint
WARNING: untranslated string: ipsec routing table entries = IPsec Routing Table Entries
WARNING: untranslated string: ipsec settings = IPsec Settings
WARNING: untranslated string: itlb multihit = iTLB MultiHit
WARNING: translation string unused: alt ovpn
WARNING: translation string unused: alt vpn
WARNING: translation string unused: and
-WARNING: translation string unused: application layer gateways
WARNING: translation string unused: apply
WARNING: translation string unused: archive not exist
WARNING: translation string unused: attemps
WARNING: translation string unused: zoneconf val vlan amount assignment error
WARNING: translation string unused: zoneconf val vlan tag assignment error
WARNING: translation string unused: zoneconf val zoneslave amount error
+WARNING: untranslated string: available = available
+WARNING: untranslated string: download apple profile = Download Apple Configuration Profile
WARNING: untranslated string: fwhost cust locationgrp = unknown string
WARNING: untranslated string: fwhost err hostip = unknown string
WARNING: untranslated string: guardian block a host = unknown string
WARNING: untranslated string: guardian logtarget_syslog = unknown string
WARNING: untranslated string: guardian no entries = unknown string
WARNING: untranslated string: guardian service = unknown string
+WARNING: untranslated string: ipsec dns server address is invalid = Invalid DNS server IP address(es)
+WARNING: untranslated string: ipsec invalid ip address or fqdn for rw endpoint = Invalid IP address or FQDN for Host-to-Net Endpoint
+WARNING: untranslated string: ipsec roadwarrior endpoint = Host-to-Net Endpoint
WARNING: untranslated string: pakfire ago = ago.
WARNING: untranslated string: route config changed = unknown string
WARNING: untranslated string: routing config added = unknown string
WARNING: untranslated string: advproxy wpad view pac = Open PAC File
WARNING: untranslated string: asn lookup failed = AS lookup failed
WARNING: untranslated string: autonomous system = Autonomous System
+WARNING: untranslated string: available = available
WARNING: untranslated string: block = Block
WARNING: untranslated string: broken = Broken
WARNING: untranslated string: bytes = unknown string
WARNING: untranslated string: dnsforward dnssec disabled = DNSSEC Validation is disabled
WARNING: untranslated string: dnsforward forward_servers = Nameservers
WARNING: untranslated string: dnssec disabled warning = WARNING: DNSSEC has been disabled
+WARNING: untranslated string: download apple profile = Download Apple Configuration Profile
WARNING: untranslated string: duration = Duration
WARNING: untranslated string: eight hours = 8 Hours
WARNING: untranslated string: email config = Configuration
WARNING: untranslated string: ip basic info = Basic IP information
WARNING: untranslated string: ip info for = IP information for
WARNING: untranslated string: ipsec connection = IPsec Connection
+WARNING: untranslated string: ipsec dns server address is invalid = Invalid DNS server IP address(es)
WARNING: untranslated string: ipsec interface mode gre = GRE
WARNING: untranslated string: ipsec interface mode none = - None (Default) -
WARNING: untranslated string: ipsec interface mode vti = VTI
+WARNING: untranslated string: ipsec invalid ip address or fqdn for rw endpoint = Invalid IP address or FQDN for Host-to-Net Endpoint
WARNING: untranslated string: ipsec mode transport = Transport
WARNING: untranslated string: ipsec mode tunnel = Tunnel
+WARNING: untranslated string: ipsec roadwarrior endpoint = Host-to-Net Endpoint
WARNING: untranslated string: ipsec routing table entries = IPsec Routing Table Entries
WARNING: untranslated string: ipsec settings = IPsec Settings
WARNING: untranslated string: itlb multihit = iTLB MultiHit
WARNING: untranslated string: asn lookup failed = AS lookup failed
WARNING: untranslated string: atm device = Device:
WARNING: untranslated string: autonomous system = Autonomous System
+WARNING: untranslated string: available = available
WARNING: untranslated string: block = Block
WARNING: untranslated string: broken = Broken
WARNING: untranslated string: bytes = unknown string
WARNING: untranslated string: dnssec disabled warning = WARNING: DNSSEC has been disabled
WARNING: untranslated string: dnssec not supported = DNSSEC Not supported
WARNING: untranslated string: dnssec validating = DNSSEC Validating
+WARNING: untranslated string: download apple profile = Download Apple Configuration Profile
WARNING: untranslated string: download tls-auth key = Download tls-auth key
WARNING: untranslated string: drop outgoing = Log dropped outgoing packets
WARNING: untranslated string: duration = Duration
WARNING: untranslated string: ip basic info = Basic IP information
WARNING: untranslated string: ip info for = IP information for
WARNING: untranslated string: ipsec connection = IPsec Connection
+WARNING: untranslated string: ipsec dns server address is invalid = Invalid DNS server IP address(es)
WARNING: untranslated string: ipsec interface mode gre = GRE
WARNING: untranslated string: ipsec interface mode none = - None (Default) -
WARNING: untranslated string: ipsec interface mode vti = VTI
+WARNING: untranslated string: ipsec invalid ip address or fqdn for rw endpoint = Invalid IP address or FQDN for Host-to-Net Endpoint
WARNING: untranslated string: ipsec mode transport = Transport
WARNING: untranslated string: ipsec mode tunnel = Tunnel
+WARNING: untranslated string: ipsec roadwarrior endpoint = Host-to-Net Endpoint
WARNING: untranslated string: ipsec routing table entries = IPsec Routing Table Entries
WARNING: untranslated string: ipsec settings = IPsec Settings
WARNING: untranslated string: itlb multihit = iTLB MultiHit
WARNING: untranslated string: atm device = Device:
WARNING: untranslated string: attention = ATTENTION
WARNING: untranslated string: autonomous system = Autonomous System
+WARNING: untranslated string: available = available
WARNING: untranslated string: bit = bit
WARNING: untranslated string: block = Block
WARNING: untranslated string: broken = Broken
WARNING: untranslated string: dnssec not supported = DNSSEC Not supported
WARNING: untranslated string: dnssec validating = DNSSEC Validating
WARNING: untranslated string: downlink = Downlink
+WARNING: untranslated string: download apple profile = Download Apple Configuration Profile
WARNING: untranslated string: download tls-auth key = Download tls-auth key
WARNING: untranslated string: dpd delay = Delay
WARNING: untranslated string: dpd timeout = Timeout
WARNING: untranslated string: ip info for = IP information for
WARNING: untranslated string: ipsec = IPsec
WARNING: untranslated string: ipsec connection = IPsec Connection
+WARNING: untranslated string: ipsec dns server address is invalid = Invalid DNS server IP address(es)
WARNING: untranslated string: ipsec interface mode gre = GRE
WARNING: untranslated string: ipsec interface mode none = - None (Default) -
WARNING: untranslated string: ipsec interface mode vti = VTI
+WARNING: untranslated string: ipsec invalid ip address or fqdn for rw endpoint = Invalid IP address or FQDN for Host-to-Net Endpoint
WARNING: untranslated string: ipsec mode transport = Transport
WARNING: untranslated string: ipsec mode tunnel = Tunnel
WARNING: untranslated string: ipsec network = IPsec network
+WARNING: untranslated string: ipsec roadwarrior endpoint = Host-to-Net Endpoint
WARNING: untranslated string: ipsec routing table entries = IPsec Routing Table Entries
WARNING: untranslated string: ipsec settings = IPsec Settings
WARNING: untranslated string: itlb multihit = iTLB MultiHit
WARNING: untranslated string: atm device = Device:
WARNING: untranslated string: attention = ATTENTION
WARNING: untranslated string: autonomous system = Autonomous System
+WARNING: untranslated string: available = available
WARNING: untranslated string: bit = bit
WARNING: untranslated string: block = Block
WARNING: untranslated string: broken = Broken
WARNING: untranslated string: dnssec not supported = DNSSEC Not supported
WARNING: untranslated string: dnssec validating = DNSSEC Validating
WARNING: untranslated string: downlink = Downlink
+WARNING: untranslated string: download apple profile = Download Apple Configuration Profile
WARNING: untranslated string: download tls-auth key = Download tls-auth key
WARNING: untranslated string: dpd delay = Delay
WARNING: untranslated string: dpd timeout = Timeout
WARNING: untranslated string: ip info for = IP information for
WARNING: untranslated string: ipsec = IPsec
WARNING: untranslated string: ipsec connection = IPsec Connection
+WARNING: untranslated string: ipsec dns server address is invalid = Invalid DNS server IP address(es)
WARNING: untranslated string: ipsec interface mode gre = GRE
WARNING: untranslated string: ipsec interface mode none = - None (Default) -
WARNING: untranslated string: ipsec interface mode vti = VTI
+WARNING: untranslated string: ipsec invalid ip address or fqdn for rw endpoint = Invalid IP address or FQDN for Host-to-Net Endpoint
WARNING: untranslated string: ipsec mode transport = Transport
WARNING: untranslated string: ipsec mode tunnel = Tunnel
WARNING: untranslated string: ipsec network = IPsec network
+WARNING: untranslated string: ipsec roadwarrior endpoint = Host-to-Net Endpoint
WARNING: untranslated string: ipsec routing table entries = IPsec Routing Table Entries
WARNING: untranslated string: ipsec settings = IPsec Settings
WARNING: untranslated string: itlb multihit = iTLB MultiHit
WARNING: translation string unused: alt vpn
WARNING: translation string unused: and
WARNING: translation string unused: ansi t1.483
-WARNING: translation string unused: application layer gateways
WARNING: translation string unused: apply
WARNING: translation string unused: archive not exist
WARNING: translation string unused: attemps
WARNING: untranslated string: advproxy wpad view pac = Open PAC File
WARNING: untranslated string: asn lookup failed = AS lookup failed
WARNING: untranslated string: autonomous system = Autonomous System
+WARNING: untranslated string: available = available
WARNING: untranslated string: broken = Broken
WARNING: untranslated string: bytes = unknown string
WARNING: untranslated string: cpu frequency = CPU frequency
WARNING: untranslated string: dns use protocol for dns queries = Protocol for DNS queries
WARNING: untranslated string: dnsforward dnssec disabled = DNSSEC Validation is disabled
WARNING: untranslated string: dnsforward forward_servers = Nameservers
+WARNING: untranslated string: download apple profile = Download Apple Configuration Profile
WARNING: untranslated string: duration = Duration
WARNING: untranslated string: email tls explicit = explicit (STARTTLS)
WARNING: untranslated string: email tls implicit = implicit (TLS)
WARNING: untranslated string: ip basic info = Basic IP information
WARNING: untranslated string: ip info for = IP information for
WARNING: untranslated string: ipsec connection = IPsec Connection
+WARNING: untranslated string: ipsec dns server address is invalid = Invalid DNS server IP address(es)
WARNING: untranslated string: ipsec interface mode gre = GRE
WARNING: untranslated string: ipsec interface mode none = - None (Default) -
WARNING: untranslated string: ipsec interface mode vti = VTI
+WARNING: untranslated string: ipsec invalid ip address or fqdn for rw endpoint = Invalid IP address or FQDN for Host-to-Net Endpoint
WARNING: untranslated string: ipsec mode transport = Transport
WARNING: untranslated string: ipsec mode tunnel = Tunnel
+WARNING: untranslated string: ipsec roadwarrior endpoint = Host-to-Net Endpoint
WARNING: untranslated string: ipsec routing table entries = IPsec Routing Table Entries
WARNING: untranslated string: ipsec settings = IPsec Settings
WARNING: untranslated string: itlb multihit = iTLB MultiHit
< disable
< dns could not add server
< done
+< download apple profile
< enable
< error the to date has to be later than the from date
< g.dtm
< g.lite
< insert removable device
+< ipsec dns server address is invalid
+< ipsec invalid ip address or fqdn for rw endpoint
+< ipsec roadwarrior endpoint
< netbios nameserver daemon
< no entries
< notes
< age shour
< age sminute
< age ssecond
-< application layer gateways
< asn lookup failed
< Async logging enabled
< atm device
< attention
< autonomous system
+< available
< bit
< block
< broken
< dns use isp assigned nameservers
< dns use protocol for dns queries
< downlink
+< download apple profile
< download dh parameter
< download tls-auth key
< dpd delay
< ip info for
< ipsec
< ipsec connection
+< ipsec dns server address is invalid
< ipsec interface mode gre
< ipsec interface mode none
< ipsec interface mode vti
+< ipsec invalid ip address or fqdn for rw endpoint
< ipsec mode transport
< ipsec mode tunnel
< ipsec network
< ipsec no connections
+< ipsec roadwarrior endpoint
< ipsec routing table entries
< ipsec settings
< itlb multihit
# Checking cgi-bin translations for language: fr #
############################################################################
< ansi t1.483
+< available
< bewan adsl pci st
< bewan adsl usb
+< download apple profile
< g.dtm
< g.lite
+< ipsec dns server address is invalid
+< ipsec invalid ip address or fqdn for rw endpoint
+< ipsec roadwarrior endpoint
< upload fcdsl.o
< zoneconf val vlan tag range error
############################################################################
< advproxy wpad notice
< advproxy wpad title
< advproxy wpad view pac
-< application layer gateways
< asn lookup failed
< autonomous system
+< available
< block
< broken
< Captive
< dns tls hostname
< dns use isp assigned nameservers
< dns use protocol for dns queries
+< download apple profile
< duration
< eight hours
< email config
< ip basic info
< ip info for
< ipsec connection
+< ipsec dns server address is invalid
< ipsec interface mode gre
< ipsec interface mode none
< ipsec interface mode vti
+< ipsec invalid ip address or fqdn for rw endpoint
< ipsec mode transport
< ipsec mode tunnel
+< ipsec roadwarrior endpoint
< ipsec routing table entries
< ipsec settings
< itlb multihit
< advproxy wpad notice
< advproxy wpad title
< advproxy wpad view pac
-< application layer gateways
< asn lookup failed
< atm device
< autonomous system
+< available
< block
< broken
< capabilities
< dns tls hostname
< dns use isp assigned nameservers
< dns use protocol for dns queries
+< download apple profile
< download dh parameter
< download tls-auth key
< drop outgoing
< ip basic info
< ip info for
< ipsec connection
+< ipsec dns server address is invalid
< ipsec interface mode gre
< ipsec interface mode none
< ipsec interface mode vti
+< ipsec invalid ip address or fqdn for rw endpoint
< ipsec mode transport
< ipsec mode tunnel
+< ipsec roadwarrior endpoint
< ipsec routing table entries
< ipsec settings
< itlb multihit
< age shour
< age sminute
< age ssecond
-< application layer gateways
< asn lookup failed
< atm device
< attention
< autonomous system
+< available
< bit
< block
< broken
< dns use isp assigned nameservers
< dns use protocol for dns queries
< downlink
+< download apple profile
< download dh parameter
< download tls-auth key
< dpd delay
< ip info for
< ipsec
< ipsec connection
+< ipsec dns server address is invalid
< ipsec interface mode gre
< ipsec interface mode none
< ipsec interface mode vti
+< ipsec invalid ip address or fqdn for rw endpoint
< ipsec mode transport
< ipsec mode tunnel
< ipsec network
< ipsec no connections
+< ipsec roadwarrior endpoint
< ipsec routing table entries
< ipsec settings
< itlb multihit
< age shour
< age sminute
< age ssecond
-< application layer gateways
< asn lookup failed
< atm device
< attention
< autonomous system
+< available
< bit
< block
< broken
< dns use isp assigned nameservers
< dns use protocol for dns queries
< downlink
+< download apple profile
< download dh parameter
< download tls-auth key
< dpd delay
< ip info for
< ipsec
< ipsec connection
+< ipsec dns server address is invalid
< ipsec interface mode gre
< ipsec interface mode none
< ipsec interface mode vti
+< ipsec invalid ip address or fqdn for rw endpoint
< ipsec mode transport
< ipsec mode tunnel
< ipsec network
< ipsec no connections
+< ipsec roadwarrior endpoint
< ipsec routing table entries
< ipsec settings
< itlb multihit
< advproxy wpad view pac
< asn lookup failed
< autonomous system
+< available
< broken
< Captive delete logo
< cpu frequency
< dns tls hostname
< dns use isp assigned nameservers
< dns use protocol for dns queries
+< download apple profile
< duration
< email tls explicit
< email tls implicit
< ip basic info
< ip info for
< ipsec connection
+< ipsec dns server address is invalid
< ipsec interface mode gre
< ipsec interface mode none
< ipsec interface mode vti
+< ipsec invalid ip address or fqdn for rw endpoint
< ipsec mode transport
< ipsec mode tunnel
+< ipsec roadwarrior endpoint
< ipsec routing table entries
< ipsec settings
< itlb multihit
#
sub BuildConfiguration {
# Restart service associated with this
- system '/usr/local/bin/setaliases';
+ &General::system('/usr/local/bin/setaliases');
}
#
############################################################################################################################
################################################ Workaround for Directories ################################################
-system("/usr/local/bin/backupctrl makedirs >/dev/null 2>&1 ") unless ( -e '/var/ipfire/backup/addons/backup') ;
+&General::system("/usr/local/bin/backupctrl", "makedirs") unless ( -e '/var/ipfire/backup/addons/backup') ;
############################################################################################################################
############################################## System calls ohne Http Header ###############################################
print UPLOADFILE;
}
close UPLOADFILE;
- system("/usr/local/bin/backupctrl restore >/dev/null 2>&1");
+ &General::system("/usr/local/bin/backupctrl", "restore");
}
elsif ( $cgiparams{'ACTION'} eq "restoreaddon" )
{
print UPLOADFILE;
}
close UPLOADFILE;
- system("/usr/local/bin/backupctrl restoreaddon ".$temp[$#temp]." >/dev/null 2>&1");
+ &General::system("/usr/local/bin/backupctrl", "restoreaddon", $temp[$#temp]);
}
&Header::showhttpheaders();
if ( $cgiparams{'ACTION'} eq "backup" )
{
if ( $cgiparams{'BACKUPLOGS'} eq "include" ) {
- system("/usr/local/bin/backupctrl include >/dev/null 2>&1");
+ &General::system("/usr/local/bin/backupctrl", "include");
} elsif ( $cgiparams{'BACKUPLOGS'} eq "exclude" ) {
- system("/usr/local/bin/backupctrl exclude >/dev/null 2>&1");
+ &General::system("/usr/local/bin/backupctrl", "exclude");
} elsif ( $cgiparams{'BACKUPLOGS'} eq "iso" ) {
- system("/usr/local/bin/backupctrl iso >/dev/null 2>&1");
+ &General::system("/usr/local/bin/backupctrl", "iso");
}
}
if ( $cgiparams{'ACTION'} eq "addonbackup" )
# Check if the addon exists
exit(1) unless (-e "/var/ipfire/backup/addons/includes/$cgiparams{'ADDON'}");
- system("/usr/local/bin/backupctrl addonbackup $cgiparams{'ADDON'} >/dev/null 2>&1");
+ &General::system("/usr/local/bin/backupctrl", "addonbackup", "$cgiparams{'ADDON'}");
}
elsif ( $cgiparams{'ACTION'} eq "delete" )
{
my $file = &sanitise_file($cgiparams{'FILE'});
exit(1) unless defined($file);
- system("/usr/local/bin/backupctrl $file >/dev/null 2>&1");
+ &General::system("/usr/local/bin/backupctrl", "$file");
}
############################################################################################################################
my $clients="${General::swroot}/captive/clients";
my %clientshash=();
my $settingsfile="${General::swroot}/captive/settings";
-unless (-e $settingsfile) { system("touch $settingsfile"); }
+unless (-e $settingsfile) { &General::system("touch $settingsfile"); }
&Header::getcgihash(\%cgiparams);
}
}
+# Call safe system_output function to get all available routes.
+my @all_routes = &General::system_output("/sbin/route", "-n");
+
# Add Green Firewall Interface
push(@network, $netsettings{'GREEN_ADDRESS'});
push(@masklen, "255.255.255.255" );
push(@colour, ${Header::colourgreen} );
# Add Green Routes to Array
-my @routes = `/sbin/route -n | /bin/grep $netsettings{'GREEN_DEV'}`;
+my @routes = grep (/$netsettings{'GREEN_DEV'}/, @all_routes);
foreach my $route (@routes) {
chomp($route);
my @temp = split(/[\t ]+/, $route);
push(@colour, ${Header::colourblue} );
# Add Blue Routes to Array
- @routes = `/sbin/route -n | /bin/grep $netsettings{'BLUE_DEV'}`;
+ @routes = grep(/$netsettings{'BLUE_DEV'}/, @all_routes);
foreach my $route (@routes) {
chomp($route);
my @temp = split(/[\t ]+/, $route);
push(@masklen, $netsettings{'ORANGE_NETMASK'} );
push(@colour, ${Header::colourorange} );
# Add Orange Routes to Array
- @routes = `/sbin/route -n | /bin/grep $netsettings{'ORANGE_DEV'}`;
+ @routes = grep(/$netsettings{'ORANGE_DEV'}/, @all_routes);
foreach my $route (@routes) {
chomp($route);
my @temp = split(/[\t ]+/, $route);
# Handle forced updates.
#
if ($settings{'ACTION'} eq $Lang::tr{'instant update'}) {
- system(@ddnsprog) == 0 or die "@ddnsprog failed: $?\n";
+ &General::system(@ddnsprog) == 0 or die "@ddnsprog failed: $?\n";
}
#
our @current2 = <FILE>;
close(FILE);
+# Open and read-in file which contains the list of allowed advanced options.
+open(FILE, $filename3) or die "Could not open $filename3. $!\n";
+
+# Grab file content.
+my @advoptions_list = <FILE>;
+
+# Close file handle.
+close(FILE);
+
# Check Settings1 first because they are needed by &buildconf
if ($dhcpsettings{'ACTION'} eq $Lang::tr{'save'}) {
foreach my $itf (@ITFs) {
map ($dhcpsettings{"ADVOPT_SCOPE_$_"} = 'off', @ITFs); # force global
} elsif (ValidNewOption ($dhcpsettings{'ADVOPT_NAME'} . ' ' . $dhcpsettings{'ADVOPT_DATA'})) {
#was a new option
- } elsif (! `grep "\$option $dhcpsettings{'ADVOPT_NAME'} " $filename3`) {
+ } elsif (! grep(/option $dhcpsettings{'ADVOPT_NAME'}/, @advoptions_list)) {
$errormessage=$Lang::tr{'dhcp advopt unknown'}.': '.$dhcpsettings{'ADVOPT_NAME'};
}
}
}
$dhcpsettings{'FIX_ENABLED'} = 'on';
-}
+ $dhcpsettings{'ADVOPT_ENABLED'} = 'on';
+ }
&Header::openpage($Lang::tr{'dhcp configuration'}, 1, '');
&Header::openbigbox('100%', 'left', '', $errormessage);
}
#search if the 'option' is in the list and print the syntax model
-my $opt = `grep "\$option $dhcpsettings{'ADVOPT_NAME'} " $filename3`;
+my $opt;
+
+# Check if a advanced option name is set.
+if ($dhcpsettings{'ADVOPT_NAME'}) {
+ # Check if the name is part of the list and grab syntax.
+ my @opt = grep(/option $dhcpsettings{'ADVOPT_NAME'}/, @advoptions_list);
+
+ # Assign array element to variable.
+ $opt = @opt[0];
+
+ # Remove newlines.
+ chomp($opt);
+}
+
if ($opt ne '') {
$opt =~ s/option $dhcpsettings{'ADVOPT_NAME'}/Syntax:/; # "option xyz abc" => "syntax: abc"
$opt =~ s/;//;
print FILE "}\n\n";
}
- system ('/usr/bin/touch', "${General::swroot}/dhcp/enable_${lc_itf}");
+ &General::system('/usr/bin/touch', "${General::swroot}/dhcp/enable_${lc_itf}");
&General::log("DHCP on ${itf}: " . $Lang::tr{'dhcp server enabled'})
} else {
unlink "${General::swroot}/dhcp/enable_${lc_itf}";
}
print FILE "include \"${General::swroot}/dhcp/dhcpd.conf.local\";\n";
close FILE;
- if ( $dhcpsettings{"ENABLE_GREEN"} eq 'on' || $dhcpsettings{"ENABLE_BLUE"} eq 'on' ) {system '/usr/local/bin/dhcpctrl enable >/dev/null 2>&1';}
- else {system '/usr/local/bin/dhcpctrl disable >/dev/null 2>&1';}
- system '/usr/local/bin/dhcpctrl restart >/dev/null 2>&1 &';
+ if ( $dhcpsettings{"ENABLE_GREEN"} eq 'on' || $dhcpsettings{"ENABLE_BLUE"} eq 'on' ) {&General::system('/usr/local/bin/dhcpctrl', 'enable');}
+ else {&General::system('/usr/local/bin/dhcpctrl', 'disable');}
+ &General::system_background('/usr/local/bin/dhcpctrl', 'restart');
}
#
my $servers_file = "${General::swroot}/dns/servers";
# Create files if the does not exist.
-unless (-f $settings_file) { system("touch $settings_file") };
-unless (-f $servers_file) { system("touch $servers_file") };
+unless (-f $settings_file) { &General::system("touch", "$settings_file") };
+unless (-f $servers_file) { &General::system("touch", "$servers_file") };
# File which stores the ISP assigned DNS servers.
my @ISP_nameserver_files = ( "/var/run/dns1", "/var/run/dns2" );
&IDS::call_suricatactrl("restart");
}
# Restart unbound
- system('/usr/local/bin/unboundctrl reload >/dev/null');
+ &General::system('/usr/local/bin/unboundctrl', 'reload');
}
# Check if the system is online (RED is connected).
}
}
# Restart unbound
- system('/usr/local/bin/unboundctrl reload >/dev/null');
+ &General::system('/usr/local/bin/unboundctrl', 'reload');
}
###
}
close(FILE);
# Restart unbound.
- system('/usr/local/bin/unboundctrl reload >/dev/null');
+ &General::system('/usr/local/bin/unboundctrl', 'reload');
}
###
}
close(FILE);
# Restart unbound.
- system('/usr/local/bin/unboundctrl reload >/dev/null');
+ &General::system('/usr/local/bin/unboundctrl', 'reload');
}
###
my @dummy = ( ${Header::colourgreen}, ${Header::colourred} );
undef (@dummy);
-system("/usr/local/bin/extrahdctrl scanhd ide >/dev/null");
-system("/usr/local/bin/extrahdctrl scanhd partitions >/dev/null");
+&General::system("/usr/local/bin/extrahdctrl", "scanhd", "ide");
+&General::system("/usr/local/bin/extrahdctrl", "scanhd", "partitions");
&Header::showhttpheaders();
UUID=$extrahdsettings{'UUID'};$extrahdsettings{'FS'};$extrahdsettings{'PATH'};
END
;
- system("/usr/local/bin/extrahdctrl mount $extrahdsettings{'PATH'}");
+ &General::system("/usr/local/bin/extrahdctrl", "mount", "$extrahdsettings{'PATH'}");
}
}
elsif ($extrahdsettings{'ACTION'} eq $Lang::tr{'delete'})
{
- if ( `/usr/local/bin/extrahdctrl umount $extrahdsettings{'PATH'}` ) {
+ if ( &General::system("/usr/local/bin/extrahdctrl", "umount", "$extrahdsettings{'PATH'}")) {
open( FILE, "< $devicefile" ) or die "Unable to read $devicefile";
@tmp = <FILE>;
close FILE;
{
@deviceline = split( /\;/, $deviceentry );
my $color="$Header::colourred";
- if ( ! `/bin/mountpoint $deviceline[2] | grep " not "` ) {
+
+ # Use safe system_output to get mountpoint details.
+ my @mountpoint = &General::system_output("/bin/mountpoint", "$deviceline[2]");
+
+ if ( ! grep(/not/, @mountpoint)) {
$color=$Header::colourgreen;
}
print <<END
if ("$fireinfosettings{'ACTION'}" eq "trigger") {
if ($fireinfosettings{'ENABLE_FIREINFO'} eq 'off') {
&General::log($Lang::tr{'fireinfo is enabled'});
- system ('/usr/bin/touch', $configfile);
+
+ # Write empty configfile.
+ open(FILE, ">$configfile");
+ close(FILE);
+
$fireinfosettings{'ENABLE_FIREINFO'} = 'on';
} else {
&General::log($Lang::tr{'fireinfo is disabled'});
unlink "$configfile";
$fireinfosettings{'ENABLE_FIREINFO'} = 'off';
}
- system("/usr/local/bin/fireinfoctrl &");
+ &General::system_background("/usr/local/bin/fireinfoctrl");
}
&Header::openpage('Fireinfo', 1, '');
&Header::closebox();
}
-my $ipfire_version = `cat /etc/system-release`;
+# Get IPFire version string.
+open(FILE, "/etc/system-release");
+my $ipfire_version = <FILE>;
+close(FILE);
+
my $pakfire_version = &Pakfire::make_version();
-my $kernel_version = `uname -a`;
+my $kernel_version = &General::system_output("uname", "-a");
&Header::openbox('100%', 'left', $Lang::tr{'fireinfo system version'});
print <<END;
&Header::closebox();
# Read pregenerated profile data
-my $profile = `cat /var/ipfire/fireinfo/profile`;
+open(FILE, "/var/ipfire/fireinfo/profile");
+my @profile = <FILE>;
+close(FILE);
print "<form method='post' action='$ENV{'SCRIPT_NAME'}'>\n";
# Read profile ID from file
-my $profile_id = `cat /var/ipfire/fireinfo/public_id`;
+open(FILE, "/var/ipfire/fireinfo/public_id");
+my $profile_id = <FILE>;
+close(FILE);
chomp($profile_id);
&Header::openbox('100%', 'left', $Lang::tr{'fireinfo settings'});
</tr>
<tr>
<td colspan='2'>
- <textarea rows="25" cols="75" readonly="readonly">$profile</textarea>
+ <textarea rows="25" cols="75" readonly="readonly">@profile</textarea>
</td>
</tr>
</table>
require "${General::swroot}/location-functions.pl";
require "/usr/lib/firewall/firewall-lib.pl";
-unless (-d "${General::swroot}/firewall") { system("mkdir ${General::swroot}/firewall"); }
-unless (-e "${General::swroot}/firewall/settings") { system("touch ${General::swroot}/firewall/settings"); }
-unless (-e "${General::swroot}/firewall/config") { system("touch ${General::swroot}/firewall/config"); }
-unless (-e "${General::swroot}/firewall/input") { system("touch ${General::swroot}/firewall/input"); }
-unless (-e "${General::swroot}/firewall/outgoing") { system("touch ${General::swroot}/firewall/outgoing"); }
+unless (-d "${General::swroot}/firewall") { &General::system("mkdir", "${General::swroot}/firewall"); }
+unless (-e "${General::swroot}/firewall/settings") { &General::system("touch", "${General::swroot}/firewall/settings"); }
+unless (-e "${General::swroot}/firewall/config") { &General::system("touch", "${General::swroot}/firewall/config"); }
+unless (-e "${General::swroot}/firewall/input") { &General::system("touch", "${General::swroot}/firewall/input"); }
+unless (-e "${General::swroot}/firewall/outgoing") { &General::system("touch", "${General::swroot}/firewall/outgoing"); }
my %fwdfwsettings=();
my %selected=() ;
my $configovpn = "${General::swroot}/ovpn/settings";
my $configipsecrw = "${General::swroot}/vpn/settings";
-unless (-e $confignet) { system("touch $confignet"); }
-unless (-e $confighost) { system("touch $confighost"); }
-unless (-e $configgrp) { system("touch $configgrp"); }
-unless (-e $configsrv) { system("touch $configsrv"); }
-unless (-e $configsrvgrp) { system("touch $configsrvgrp"); }
-unless (-e $configlocationgrp) { system("touch $configlocationgrp"); }
+unless (-e $confignet) { &General::system("touch", "$confignet"); }
+unless (-e $confighost) { &General::system("touch", "$confighost"); }
+unless (-e $configgrp) { &General::system("touch", "$configgrp"); }
+unless (-e $configsrv) { &General::system("touch", "$configsrv"); }
+unless (-e $configsrvgrp) { &General::system("touch", "$configsrvgrp"); }
+unless (-e $configlocationgrp) { &General::system("touch $configlocationgrp"); }
&General::readhash("${General::swroot}/main/settings", \%mainsettings);
&General::readhash("/srv/web/ipfire/html/themes/ipfire/include/colors.txt", \%color);
;
if ( -e "/usr/share/doc/licenses/GPLv3" ) {
print '<textarea rows=\'25\' cols=\'75\' readonly=\'readonly\'>';
- print `cat /usr/share/doc/licenses/GPLv3`;
+
+ # Open and read-in GPL file content.
+ open(FILE, "/usr/share/doc/licenses/GPLv3");
+
+ # Grab license.
+ my @license = <FILE>;
+
+ # Close filehandle.
+ close(FILE);
+
+ # Print license to textarea.
+ print "@license";
+
print '</textarea>';
}
else {
my $ignoredfile = "${General::swroot}/guardian/ignored";
# Create empty settings and ignoredfile if they do not exist yet.
-unless (-e "$settingsfile") { system("touch $settingsfile"); }
-unless (-e "$ignoredfile") { system("touch $ignoredfile"); }
+unless (-e "$settingsfile") { &General::system("touch", "$settingsfile"); }
+unless (-e "$ignoredfile") { &General::system("touch", "$ignoredfile"); }
our %settings = ();
our %ignored = ();
my $configfile = "${General::swroot}/guardian/guardian.conf";
# Create the configfile if none exists yet.
- unless (-e "$configfile") { system("touch $configfile"); }
+ unless (-e "$configfile") { &General::system("touch", "$configfile"); }
# Open configfile for writing.
open(FILE, ">$configfile");
&Guardian::Socket::Client("reload");
} else {
# Launch guardian.
- system("/usr/local/bin/addonctrl guardian start &>/dev/null");
+ &General::system("/usr/local/bin/addonctrl", "guardian", "start");
}
} else {
# Stop the daemon.
- system("/usr/local/bin/addonctrl guardian stop &>/dev/null");
+ &General::system("/usr/local/bin/addonctrl", "guardian", "stop");
}
}
&General::readhasharray($ignoredfile, \%ignored);
# Create the guardian.ignore file if not exist yet.
- unless (-e "$ignorefile") { system("touch $ignorefile"); }
+ unless (-e "$ignorefile") { &General::system("touch", "$ignorefile"); }
# Open ignorefile for writing.
open(FILE, ">$ignorefile");
# Set flag if index page is to refresh whilst ppp is up.
# Default is NO refresh.
if ($cgiparams{'REFRESHINDEX'} ne 'off') {
- system ('/usr/bin/touch', "${General::swroot}/main/refreshindex");
+ &General::system('/usr/bin/touch', "${General::swroot}/main/refreshindex");
} else {
unlink "${General::swroot}/main/refreshindex";
}
# Beep on ip-up or ip-down. Default is ON.
if ($cgiparams{'PPPUPDOWNBEEP'} ne 'on') {
$cgiparams{'PPPUPDOWNBEEP'} = 'off';
- system ('/usr/bin/touch', "${General::swroot}/red/nobeeps");
+ &General::system('/usr/bin/touch', "${General::swroot}/red/nobeeps");
} else {
unlink "${General::swroot}/red/nobeeps";
}
my %sensorsettings = ();
my @sensorsgraphs = ();
-my @sensorsdir = `ls -dA $mainsettings{'RRDLOG'}/collectd/localhost/sensors-*/`;
-foreach (@sensorsdir){
- chomp($_);chop($_);
- foreach (`ls $_/*`){
- chomp($_);
- push(@sensorsgraphs,$_);
+
+# Main directory where rrdlog puts the sensor data.
+my $sensorsdir = "$mainsettings{'RRDLOG'}/collectd/localhost";
+
+# Open sensors directory.
+opendir(SENSORS, "$sensorsdir") or die "Could not opendir $sensorsdir: $!\n";
+
+# Read-in all sensors.
+my @sensor_dirs = readdir(SENSORS);
+
+# Close directory handle.
+closedir(SENSORS);
+
+# Loop through the grabbed sensors.
+foreach my $sensor_dir (@sensor_dirs) {
+ # Skip everything which does not start with "sensors-".
+ next unless $sensor_dir =~ /^sensors-/;
+
+ # Check if the omitet element is a directory.
+ next unless (-d "$sensorsdir/$sensor_dir");
+
+ # Open sensor directory and lookup for sensors.
+ opendir(SENSOR_DIR, "$sensorsdir/$sensor_dir") or die "Could not opendir $sensorsdir/$sensor_dir: $!\n";
+
+ # Grab single sensors from the directory.
+ my @sensors = readdir(SENSOR_DIR);
+
+ # Close directory handle.
+ closedir(SENSOR_DIR);
+
+ # Loop through the omited sensors.
+ foreach my $sensor (@sensors) {
+ # Skip everything which is not a regular file.
+ next unless (-f "$sensorsdir/$sensor_dir/$sensor");
+
+ # Add sensor to the array of sensorsgrapghs.
+ push(@sensorsgraphs, "$sensorsdir/$sensor_dir/$sensor");
+ }
+}
+
+# Look for ACPI Thermal Zone sensors.
+my @thermal_zone_sensors = grep(/thermal-thermal_zone/, @sensor_dirs);
+
+# If a thermal zone sensor has been found add it to the sensorsgraphs array.
+if (@thermal_zone_sensors) {
+ # Loop through the array of thermal zone sensors.
+ foreach my $thermal_zone_sensor (@thermal_zone_sensors) {
+ # Add the sensor to the array.
+ push(@sensorsgraphs, "$sensorsdir/$thermal_zone_sensor");
}
}
&General::writehash("${General::swroot}/sensors/settings", \%sensorsettings);
}
- my @disks = `ls -1 /sys/block | grep -E '^sd|^nvme' | sort | uniq`;
+ # This should be save, because no user given content will be processed.
+ #my @disks = `ls -1 /sys/block | grep -E '^sd|^nvme' | sort | uniq`;
+ my @disks = &get_disks();
foreach (@disks){
my $disk = $_;
&Header::closebox();
}
- if ( `ls $mainsettings{'RRDLOG'}/collectd/localhost/thermal-thermal_zone* 2>/dev/null` ) {
+ if ( grep(/thermal-thermal_zone/, @sensorsgraphs) ) {
&Header::openbox('100%', 'center', "ACPI Thermal-Zone Temp $Lang::tr{'graph'}");
&Graphs::makegraphbox("hardwaregraphs.cgi","thermaltemp","day");
&Header::closebox();
}
- if ( `ls $mainsettings{'RRDLOG'}/collectd/localhost/sensors-*/temperature-* 2>/dev/null` ) {
+ if ( grep(/temperature-/, @sensorsgraphs) ) {
&Header::openbox('100%', 'center', "hwtemp $Lang::tr{'graph'}");
&Graphs::makegraphbox("hardwaregraphs.cgi","hwtemp","day");
Header::closebox();
}
- if ( `ls $mainsettings{'RRDLOG'}/collectd/localhost/sensors-*/fanspeed-* 2>/dev/null` ) {
+ if ( grep(/fanspeed-/, @sensorsgraphs) ) {
&Header::openbox('100%', 'center', "hwfan $Lang::tr{'graph'}");
&Graphs::makegraphbox("hardwaregraphs.cgi","hwfan","day");
&Header::closebox();
}
- if ( `ls $mainsettings{'RRDLOG'}/collectd/localhost/sensors-*/voltage-* 2>/dev/null` ) {
+ if ( grep(/voltage-/, @sensorsgraphs) ) {
&Header::openbox('100%', 'center', "hwvolt $Lang::tr{'graph'}");
&Graphs::makegraphbox("hardwaregraphs.cgi","hwvolt","day");
&Header::closebox();
}
- if ( `ls $mainsettings{'RRDLOG'}/collectd/localhost/sensors-* 2>/dev/null` ) {
+ if ( @sensorsgraphs ) {
sensorsbox();
}
&Header::closebigbox();
;
&Header::closebox();
}
+
+sub get_disks () {
+ my @disks;
+
+ # Open virtal sys FS and grab block devices.
+ opendir(SYS, "/sys/block") or die "Could not opendir /sys/block/: $!\n";
+
+ # Grab all available block devices.
+ my @blockdevs = readdir(SYS);
+
+ # Close directory handle.
+ closedir(SYS);
+
+ # Loop through the array of blockdevs.
+ foreach my $dev (@blockdevs) {
+ # Skip all devices which does not start with "sd" or "nvme".
+ next unless (( $dev =~ /^sd/) || ($dev =~ /^nvme/));
+
+ # Add the device to the array of disks.
+ push(@disks, $dev);
+ }
+
+ # Remove duplicates.
+ my @disks = &uniq(@disks);
+
+ # Sort the array.
+ my @disks = sort(@disks);
+
+ # Return the array.
+ return @disks;
+}
+
+# Tiny code snipped to get a uniq() like function.
+sub uniq {
+ my %seen;
+ return grep { !$seen{$_}++ } @_;
+}
# Build the configuration file
#
sub BuildConfiguration {
- system '/usr/local/bin/rebuildhosts';
- system '/usr/local/bin/unboundctrl reload &>/dev/null';
+ &General::system('/usr/local/bin/rebuildhosts');
+ &General::system('/usr/local/bin/unboundctrl', 'reload');
}
}
if ($cgiparams{'ACTION'} eq $Lang::tr{'dial'}) {
- system('/usr/local/bin/redctrl start > /dev/null') == 0
+ &General::system('/usr/local/bin/redctrl', 'start') == 0
or &General::log("Dial failed: $?"); sleep 1;
}elsif ($cgiparams{'ACTION'} eq $Lang::tr{'hangup'}) {
- system('/usr/local/bin/redctrl stop > /dev/null') == 0
+ &General::system('/usr/local/bin/redctrl', 'stop') == 0
or &General::log("Hangup failed: $?"); sleep 1;
}
}
}
if ($macsettings{'ACTION'} eq $Lang::tr{'reconnect'}) {
- system("/usr/local/bin/redctrl restart >/dev/null 2>&1 &");
+ &General::system_background("/usr/local/bin/redctrl", "restart");
&Header::openbox('100%', 'left', $Lang::tr{'mac address recon'} );
print "<font class='base'>$Lang::tr{'mac address done'}</font>\n";
&Header::closebox();
}
if ($macsettings{'ACTION'} eq $Lang::tr{'reboot'}) {
&General::log($Lang::tr{'rebooting ipfire'});
- system("/usr/local/bin/ipfirereboot boot");
+ &General::system("/usr/local/bin/ipfirereboot", "boot");
&Header::openbox('100%', 'left', $Lang::tr{'rebooting ipfire'} );
print " <img src='/images/indicator.gif' /><br /><br />";
print "<meta http-equiv='refresh' content='120;'>";
&Header::openbox('100%', 'left',"MD Raid State");
print '<textarea rows="25" cols="80" readonly="readonly">';
-print `cat "/proc/mdstat"`;
+
+# Grab mdstat status.
+open(MDSTAT, "/proc/mdstat");
+my @mdstat = <MDSTAT>;
+close(MDSTAT);
+print "@mdstat";
+
print '</textarea>';
&Header::closebox();
&Graphs::makegraphbox("memory.cgi","memory","day");
&Header::closebox();
- if ( `ls $mainsettings{'RRDLOG'}/collectd/localhost/swap 2>/dev/null` ) {
+ if (-f "$mainsettings{'RRDLOG'}/collectd/localhost/swap") {
&Header::openbox('100%', 'center', "Swap $Lang::tr{'graph'}");
&Graphs::makegraphbox("memory.cgi","swap","day");
&Header::closebox();
&Header::openbox('100%', 'center', $Lang::tr{'memory'});
print "<table width='95%' cellspacing='5'>";
- my $ram=0;
my $size=0;
my $used=0;
my $free=0;
my $shared=0;
my $buffers=0;
my $cached=0;
+ my $available=0;
- open(FREE,'/usr/bin/free |');
- while(<FREE>){
- if ($_ =~ m/^\s+total\s+used\s+free\s+shared\s+buffers\s+cached$/ ){
+ # output format: kibibytes, wide mode (buffers and cache in two columns)
+ open(my $cmd_fh, "-|", '/usr/bin/free -k -w') or die $!;
+ while(<$cmd_fh>){
+ if ($_ =~ m/^\s+total\s+used\s+free\s+shared\s+buffers\s+cache\s+available$/ ){
print <<END
<tr>
<td align='center'> </td>
END
;
}else{
- if ($_ =~ m/^Mem:\s+(\d+)\s+(\d+)\s+(\d+)\s+(\d+)\s+(\d+)\s+(\d+)$/){
- ($ram,$size,$used,$free,$shared,$buffers,$cached) = ($1,$1,$2,$3,$4,$5,$6);
+ if ($_ =~ m/^Mem:\s+(\d+)\s+(\d+)\s+(\d+)\s+(\d+)\s+(\d+)\s+(\d+)\s+(\d+)$/){
+ ($size,$used,$free,$shared,$buffers,$cached,$available) = ($1,$2,$3,$4,$5,$6,$7);
($percent = ($used/$size)*100) =~ s/^(\d+)(\.\d+)?$/$1%/;
print <<END
<tr>
<td class='boldbase'><b>$Lang::tr{'ram'}</b></td>
-<td align='center'>$size KB</td>
END
;
}elsif($_ =~ m/^Swap:\s+(\d+)\s+(\d+)\s+(\d+)$/){
print <<END
<tr>
<td class='boldbase'><b>$Lang::tr{'swap'}</b></td>
-<td align='center'>$size KB</td>
END
;
- }elsif($ram and $_ =~ m/^-\/\+ buffers\/cache:\s+(\d+)\s+(\d+)$/ ){
- ($used,$free) = ($1,$2);
- ($percent = ($used/$ram)*100) =~ s/^(\d+)(\.\d+)?$/$1%/;
- print "<tr><td colspan='2' class='boldbase'><b>$Lang::tr{'excluding buffers and cache'}</b></td>";
}
print <<END
-<td align='center'>$used KB</td>
-<td align='center'>$free KB</td>
+<td align='center'>$size KiB</td>
+<td align='center'>$used KiB</td>
+<td align='center'>$free KiB</td>
<td>
END
;
;
}
}
- close FREE;
+ close($cmd_fh);
print <<END
-<tr><td class='boldbase' colspan='2'><br /></td></tr>
-<tr><td class='boldbase'><b>$Lang::tr{'shared'}</b></td><td align='center'>$shared KB</td></tr>
-<tr><td class='boldbase'><b>$Lang::tr{'buffers'}</b></td><td align='center'>$buffers KB</td></tr>
-<tr><td class='boldbase'><b>$Lang::tr{'cached'}</b></td><td align='center'>$cached KB</td></tr>
+<tr><td colspan='6'><br /></td></tr>
+<tr><td class='boldbase'><b>$Lang::tr{'shared'}</b></td><td align='center'>$shared KiB</td></tr>
+<tr><td class='boldbase'><b>$Lang::tr{'buffers'}</b></td><td align='center'>$buffers KiB</td></tr>
+<tr><td class='boldbase'><b>$Lang::tr{'cached'}</b></td><td align='center'>$cached KiB</td></tr>
+<tr><td class='boldbase'><b>$Lang::tr{'available'}</b></td><td align='center'>$available KiB</td></tr>
</table>
END
;
if ($modemsettings{'ACTION'} eq $Lang::tr{'restore defaults'})
{
- system('/bin/cp', "${General::swroot}/modem/defaults", "${General::swroot}/modem/settings", '-f');
+ &General::system("cp", "-f", "${General::swroot}/modem/defaults", "${General::swroot}/modem/settings");
}
&General::readhash("${General::swroot}/modem/settings", \%modemsettings);
$mpd->updatedb();
refreshpage();
}elsif ( $mpfiresettings{'ACTION'} eq "playweb" ){
- $message=system("/usr/local/bin/mpfirectrl","playweb","\"$mpfiresettings{'FILE'}\"","2>/dev/null");
+ $message= &General::system_output("/usr/local/bin/mpfirectrl","playweb","\"$mpfiresettings{'FILE'}\"");
}elsif ( $mpfiresettings{'ACTION'} eq "playlist" ){
$mpd->play();
}elsif ( $mpfiresettings{'ACTION'} eq "emptyplaylist" ){
&General::readhash("${General::swroot}/dhcpc/dhcpcd-$netsettings{'RED_DEV'}.info", \%dhcpinfo);
- my $DNS1=`echo $dhcpinfo{'domain_name_servers'} | cut -f 1 -d " "`;
- my $DNS2=`echo $dhcpinfo{'domain_name_servers'} | cut -f 2 -d " "`;
+ my ($DNS1, $DNS2) = split(/ /, $dhcpinfo{'domain_name_servers'});
my $lsetme=0;
my $leasetime="";
if ($settings{'defpol'} ne '1'){
$errormessage .= $Lang::tr{'new optionsfw later'};
&General::writehash($filename, \%settings); # Save good settings
- system("/usr/local/bin/firewallctrl");
+ &General::system("/usr/local/bin/firewallctrl");
}else{
if ($settings{'POLICY'} ne ''){
$fwdfwsettings{'POLICY'} = $settings{'POLICY'};
$fwdfwsettings{'POLICY1'} = "$MODE1";
&General::writehash("${General::swroot}/firewall/settings", \%fwdfwsettings);
&General::readhash("${General::swroot}/firewall/settings", \%fwdfwsettings);
- system("/usr/local/bin/firewallctrl");
+ &General::system("/usr/local/bin/firewallctrl");
}
&General::readhash($filename, \%settings); # Load good settings
}
close FILE;
}
if (! -s ">${General::swroot}/ovpn/certs/index.txt") {
- system ("touch ${General::swroot}/ovpn/certs/index.txt");
+ &General::system("touch", "${General::swroot}/ovpn/certs/index.txt");
}
if (! -s ">${General::swroot}/ovpn/certs/index.txt.attr") {
- system ("touch ${General::swroot}/ovpn/certs/index.txt.attr");
+ &General::system("touch", "${General::swroot}/ovpn/certs/index.txt.attr");
}
unlink ("${General::swroot}/ovpn/certs/index.txt.old");
unlink ("${General::swroot}/ovpn/certs/index.txt.attr.old");
{
# Warning if DH parameter is 1024 bit
if (-f "${General::swroot}/ovpn/ca/$cgiparams{'DH_NAME'}") {
- my $dhparameter = `/usr/bin/openssl dhparam -text -in ${General::swroot}/ovpn/ca/$cgiparams{'DH_NAME'}`;
- my @dhbit = ($dhparameter =~ /(\d+)/);
- if ($1 < 2048) {
- $cryptoerror = "$Lang::tr{'ovpn error dh'}";
- goto CRYPTO_ERROR;
+ my @dhparameter = &General::system_output("/usr/bin/openssl", "dhparam", "-text", "-in", "${General::swroot}/ovpn/ca/$cgiparams{'DH_NAME'}");
+
+ foreach my $line (@dhparameter) {
+ my @dhbit = ($line =~ /(\d+)/);
+ if ($1 < 2048) {
+ $cryptoerror = "$Lang::tr{'ovpn error dh'}";
+ goto CRYPTO_ERROR;
+ }
}
}
# Warning if md5 is in usage
if (-f "${General::swroot}/ovpn/certs/servercert.pem") {
- my $signature = `/usr/bin/openssl x509 -noout -text -in ${General::swroot}/ovpn/certs/servercert.pem`;
- if ($signature =~ /md5WithRSAEncryption/) {
+ my @signature = &General::system_output("/usr/bin/openssl", "x509", "-noout", "-text", "-in", "${General::swroot}/ovpn/certs/servercert.pem");
+ if (grep(/md5WithRSAEncryption/, @signature) ) {
$cryptoerror = "$Lang::tr{'ovpn error md5'}";
goto CRYPTO_ERROR;
}
# Warning if certificate is not compliant to RFC3280 TLS rules
if (-f "${General::swroot}/ovpn/certs/servercert.pem") {
- my $extendkeyusage = `/usr/bin/openssl x509 -noout -text -in ${General::swroot}/ovpn/certs/servercert.pem`;
- if ($extendkeyusage !~ /TLS Web Server Authentication/) {
+ my @extendkeyusage = &General::system_output("/usr/bin/openssl", "x509", "-noout", "-text", "-in", "${General::swroot}/ovpn/certs/servercert.pem");
+ if ( ! grep(/TLS Web Server Authentication/, @extendkeyusage)) {
$cryptowarning = "$Lang::tr{'ovpn warning rfc3280'}";
goto CRYPTO_WARNING;
}
close(COLLECTDVPN);
# Reload collectd afterwards
- system("/usr/local/bin/collectdctrl restart &>/dev/null");
+ &General::system("/usr/local/bin/collectdctrl", "restart");
}
#hier die refresh page
#start openvpn server
if ($cgiparams{'ACTION'} eq $Lang::tr{'start ovpn server'}){
&emptyserverlog();
- system('/usr/local/bin/openvpnctrl', '-s');
+ &General::system("/usr/local/bin/openvpnctrl", "-s");
}
#stop openvpn server
if ($cgiparams{'ACTION'} eq $Lang::tr{'stop ovpn server'}){
- system('/usr/local/bin/openvpnctrl', '-k');
+ &General::system("/usr/local/bin/openvpnctrl", "-k");
&emptyserverlog();
}
# #restart openvpn server
# Check host certificate if X509 is RFC3280 compliant.
# If not, old --ns-cert-type directive will be used.
# If appropriate key usage extension exists, new --remote-cert-tls directive will be used.
- my $hostcert = `/usr/bin/openssl x509 -text -in ${General::swroot}/ovpn/certs/servercert.pem`;
- if ($hostcert !~ /TLS Web Server Authentication/) {
+ my @hostcert = &General::system_output("/usr/bin/openssl", "x509", "-text", "-in", "${General::swroot}/ovpn/certs/servercert.pem");
+ if ( ! grep(/TLS Web Server Authentication/, @hostcert)) {
print CLIENTCONF "ns-cert-type server\n";
} else {
print CLIENTCONF "remote-cert-tls server\n";
# Create ta.key for tls-auth if not presant
if ($cgiparams{'TLSAUTH'} eq 'on') {
if ( ! -e "${General::swroot}/ovpn/certs/ta.key") {
- system('/usr/sbin/openvpn', '--genkey', '--secret', "${General::swroot}/ovpn/certs/ta.key");
+ # This system call is safe, because all arguements are passed as an array.
+ system("/usr/sbin/openvpn", "--genkey", "--secret", "${General::swroot}/ovpn/certs/ta.key");
if ($?) {
$errormessage = "$Lang::tr{'openssl produced an error'}: $?";
goto SETTINGS_ERROR;
$vpnsettings{'TLSAUTH'} = $cgiparams{'TLSAUTH'};
#wrtie enable
- if ( $vpnsettings{'ENABLED_BLUE'} eq 'on' ) {system("touch ${General::swroot}/ovpn/enable_blue 2>/dev/null");}else{system("unlink ${General::swroot}/ovpn/enable_blue 2>/dev/null");}
- if ( $vpnsettings{'ENABLED_ORANGE'} eq 'on' ) {system("touch ${General::swroot}/ovpn/enable_orange 2>/dev/null");}else{system("unlink ${General::swroot}/ovpn/enable_orange 2>/dev/null");}
- if ( $vpnsettings{'ENABLED'} eq 'on' ) {system("touch ${General::swroot}/ovpn/enable 2>/dev/null");}else{system("unlink ${General::swroot}/ovpn/enable 2>/dev/null");}
+ if ( $vpnsettings{'ENABLED_BLUE'} eq 'on' ) {
+ &General::system("touch", "${General::swroot}/ovpn/enable_blue");
+ } else {
+ unlink(${General::swroot}/ovpn/enable_blue);
+ }
+
+ if ( $vpnsettings{'ENABLED_ORANGE'} eq 'on' ) {
+ &General::system("touch", "${General::swroot}/ovpn/enable_orange");
+ } else {
+ unlink("${General::swroot}/ovpn/enable_orange");
+ }
+
+ if ( $vpnsettings{'ENABLED'} eq 'on' ) {
+ &General::system("touch", "${General::swroot}/ovpn/enable");
+ } else {
+ unlink("${General::swroot}/ovpn/enable");
+ }
+
#new settings for daemon
&General::writehash("${General::swroot}/ovpn/settings", \%vpnsettings);
&writeserverconf();#hier ok
&General::readhasharray("${General::swroot}/ovpn/ovpnconfig", \%confighash);
# Kill all N2N connections
- system("/usr/local/bin/openvpnctrl -kn2n &>/dev/null");
+ &General::system("/usr/local/bin/openvpnctrl", "-kn2n");
foreach my $key (keys %confighash) {
my $name = $confighash{$cgiparams{'$key'}}[1];
delete $confighash{$cgiparams{'$key'}};
}
- system ("/usr/local/bin/openvpnctrl -drrd $name &>/dev/null");
+ &General::system("/usr/local/bin/openvpnctrl", "-drrd", "$name");
}
while ($file = glob("${General::swroot}/ovpn/ca/*")) {
unlink $file;
close FILE;
}
while ($file = glob("${General::swroot}/ovpn/n2nconf/*")) {
- system ("rm -rf $file");
+ unlink($file);
}
# Remove everything from the collectd configuration
unlink "${General::swroot}/ovpn/ca/$cgiparams{'DH_NAME'}";
}
# Create Diffie Hellmann Parameter
- system('/usr/bin/openssl', 'dhparam', '-out', "${General::swroot}/ovpn/ca/dh1024.pem", "$cgiparams{'DHLENGHT'}");
+ # The system call is safe, because all arguments are passed as an array.
+ system("/usr/bin/openssl", "dhparam", "-out", "${General::swroot}/ovpn/ca/dh1024.pem", "$cgiparams{'DHLENGHT'}");
if ($?) {
$errormessage = "$Lang::tr{'openssl produced an error'}: $?";
unlink ("${General::swroot}/ovpn/ca/dh1024.pem");
$errormessage = $!;
goto UPLOADCA_ERROR;
}
- my $temp = `/usr/bin/openssl dhparam -text -in $filename`;
- if ($temp !~ /DH Parameters: \((2048|3072|4096) bit\)/) {
+ my @temp = &General::system_output("/usr/bin/openssl", "dhparam", "-text", "-in", "$filename");
+ if ( ! grep(/DH Parameters: \((2048|3072|4096) bit\)/, @temp)) {
$errormessage = $Lang::tr{'not a valid dh key'};
unlink ($filename);
goto UPLOADCA_ERROR;
$errormessage = $!;
goto UPLOADCA_ERROR;
}
- my $temp = `/usr/bin/openssl x509 -text -in $filename`;
- if ($temp !~ /CA:TRUE/i) {
+ my @temp = &General::system_output("/usr/bin/openssl", "x509", "-text", "-in", "$filename");
+ if ( ! grep(/CA:TRUE/i, @temp )) {
$errormessage = $Lang::tr{'not a valid ca certificate'};
unlink ($filename);
goto UPLOADCA_ERROR;
}
}
- my $casubject = `/usr/bin/openssl x509 -text -in ${General::swroot}/ovpn/ca/$cgiparams{'CA_NAME'}cert.pem`;
- $casubject =~ /Subject: (.*)[\n]/;
- $casubject = $1;
- $casubject =~ s+/Email+, E+;
- $casubject =~ s/ ST=/ S=/;
+ @casubject = &General::system_output("/usr/bin/openssl", "x509", "-text", "-in", "${General::swroot}/ovpn/ca/$cgiparams{'CA_NAME'}cert.pem");
+ my $casubject;
+
+ foreach my $line (@casubject) {
+ if ($line =~ /Subject: (.*)[\n]/) {
+ $casubject = $1;
+ $casubject =~ s+/Email+, E+;
+ $casubject =~ s/ ST=/ S=/;
+
+ last;
+ }
+ }
+
$casubject = &Header::cleanhtml($casubject);
my $key = &General::findhasharraykey (\%cahash);
&Header::openpage($Lang::tr{'ovpn'}, 1, '');
&Header::openbigbox('100%', 'LEFT', '', $errormessage);
&Header::openbox('100%', 'LEFT', "$Lang::tr{'ca certificate'}:");
- my $output = `/usr/bin/openssl x509 -text -in ${General::swroot}/ovpn/ca/$cahash{$cgiparams{'KEY'}}[0]cert.pem`;
- $output = &Header::cleanhtml($output,"y");
- print "<pre>$output</pre>\n";
+ my @output = &General::system_output("/usr/bin/openssl", "x509", "-text", "-in", "${General::swroot}/ovpn/ca/$cahash{$cgiparams{'KEY'}}[0]cert.pem");
+ @output = &Header::cleanhtml(@output,"y");
+ print "<pre>@output</pre>\n";
&Header::closebox();
print "<div align='center'><a href='/cgi-bin/ovpnmain.cgi'>$Lang::tr{'back'}</a></div>";
&Header::closebigbox();
if ( -f "${General::swroot}/ovpn/ca/$cahash{$cgiparams{'KEY'}}[0]cert.pem" ) {
print "Content-Type: application/octet-stream\r\n";
print "Content-Disposition: filename=$cahash{$cgiparams{'KEY'}}[0]cert.pem\r\n\r\n";
- print `/usr/bin/openssl x509 -in ${General::swroot}/ovpn/ca/$cahash{$cgiparams{'KEY'}}[0]cert.pem`;
+
+ my @tmp = &General::system_output("/usr/bin/openssl", "x509", "-in", "${General::swroot}/ovpn/ca/$cahash{$cgiparams{'KEY'}}[0]cert.pem");
+ print "@tmp";
+
exit(0);
} else {
$errormessage = $Lang::tr{'invalid key'};
if ( -f "${General::swroot}/ovpn/ca/$cahash{$cgiparams{'KEY'}}[0]cert.pem" ) {
foreach my $key (keys %confighash) {
- my $test = `/usr/bin/openssl verify -CAfile ${General::swroot}/ovpn/ca/$cahash{$cgiparams{'KEY'}}[0]cert.pem ${General::swroot}/ovpn/certs/$confighash{$key}[1]cert.pem`;
- if ($test =~ /: OK/) {
+ my @test = &General::system_output("/usr/bin/openssl", "verify", "-CAfile", "${General::swroot}/ovpn/ca/$cahash{$cgiparams{'KEY'}}[0]cert.pem", "${General::swroot}/ovpn/certs/$confighash{$key}[1]cert.pem");
+ if (grep(/: OK/, @test)) {
# Delete connection
# if ($vpnsettings{'ENABLED'} eq 'on' ||
# $vpnsettings{'ENABLED_BLUE'} eq 'on') {
my $assignedcerts = 0;
if ( -f "${General::swroot}/ovpn/ca/$cahash{$cgiparams{'KEY'}}[0]cert.pem" ) {
foreach my $key (keys %confighash) {
- my $test = `/usr/bin/openssl verify -CAfile ${General::swroot}/ovpn/ca/$cahash{$cgiparams{'KEY'}}[0]cert.pem ${General::swroot}/ovpn/certs/$confighash{$key}[1]cert.pem`;
- if ($test =~ /: OK/) {
+ my @test = &General::system_output("/usr/bin/openssl", "verify", "-CAfile", "${General::swroot}/ovpn/ca/$cahash{$cgiparams{'KEY'}}[0]cert.pem", "${General::swroot}/ovpn/certs/$confighash{$key}[1]cert.pem");
+ if (grep(/: OK/, @test)) {
$assignedcerts++;
}
}
###
}elsif ($cgiparams{'ACTION'} eq $Lang::tr{'show root certificate'} ||
$cgiparams{'ACTION'} eq $Lang::tr{'show host certificate'}) {
- my $output;
+ my @output;
&Header::showhttpheaders();
&Header::openpage($Lang::tr{'ovpn'}, 1, '');
&Header::openbigbox('100%', 'LEFT', '', '');
if ($cgiparams{'ACTION'} eq $Lang::tr{'show root certificate'}) {
&Header::openbox('100%', 'LEFT', "$Lang::tr{'root certificate'}:");
- $output = `/usr/bin/openssl x509 -text -in ${General::swroot}/ovpn/ca/cacert.pem`;
+ @output = &General::system_output("/usr/bin/openssl", "x509", "-text", "-in", "${General::swroot}/ovpn/ca/cacert.pem");
} else {
&Header::openbox('100%', 'LEFT', "$Lang::tr{'host certificate'}:");
- $output = `/usr/bin/openssl x509 -text -in ${General::swroot}/ovpn/certs/servercert.pem`;
+ @output = &General::system_output("/usr/bin/openssl", "x509", "-text", "-in", "${General::swroot}/ovpn/certs/servercert.pem");
}
- $output = &Header::cleanhtml($output,"y");
- print "<pre>$output</pre>\n";
+ @output = &Header::cleanhtml(@output,"y");
+ print "<pre>@output</pre>\n";
&Header::closebox();
print "<div align='center'><a href='/cgi-bin/ovpnmain.cgi'>$Lang::tr{'back'}</a></div>";
&Header::closebigbox();
if ( -f "${General::swroot}/ovpn/ca/cacert.pem" ) {
print "Content-Type: application/octet-stream\r\n";
print "Content-Disposition: filename=cacert.pem\r\n\r\n";
- print `/usr/bin/openssl x509 -in ${General::swroot}/ovpn/ca/cacert.pem`;
+
+ my @tmp = &General::system_output("/usr/bin/openssl", "x509", "-in", "${General::swroot}/ovpn/ca/cacert.pem");
+ print "@tmp";
+
exit(0);
}
if ( -f "${General::swroot}/ovpn/certs/servercert.pem" ) {
print "Content-Type: application/octet-stream\r\n";
print "Content-Disposition: filename=servercert.pem\r\n\r\n";
- print `/usr/bin/openssl x509 -in ${General::swroot}/ovpn/certs/servercert.pem`;
+
+ my @tmp = &General::system_output("/usr/bin/openssl", "x509", "-in", "${General::swroot}/ovpn/certs/servercert.pem");
+ print "@tmp";
+
exit(0);
}
if ( -f "${General::swroot}/ovpn/certs/ta.key" ) {
print "Content-Type: application/octet-stream\r\n";
print "Content-Disposition: filename=ta.key\r\n\r\n";
- print `/bin/cat ${General::swroot}/ovpn/certs/ta.key`;
+
+ open(FILE, "${General::swroot}/ovpn/certs/ta.key");
+ my @tmp = <FILE>;
+ close(FILE);
+
+ print "@tmp";
+
exit(0);
}
}
# Sign the host certificate request
+ # This system call is safe, because all argeuments are passed as an array.
system('/usr/bin/openssl', 'ca', '-days', '999999',
'-batch', '-notext',
'-in', "${General::swroot}/ovpn/certs/serverreq.pem",
}
# Create an empty CRL
+ # System call is safe, because all arguments are passed as array.
system('/usr/bin/openssl', 'ca', '-gencrl',
'-out', "${General::swroot}/ovpn/crls/cacrl.pem",
'-config', "${General::swroot}/ovpn/openssl/ovpn.cnf" );
# &cleanssldatabase();
}
# Create ta.key for tls-auth
+ # This system call is safe, because all arguments are passed as an array.
system('/usr/sbin/openvpn', '--genkey', '--secret', "${General::swroot}/ovpn/certs/ta.key");
if ($?) {
$errormessage = "$Lang::tr{'openssl produced an error'}: $?";
goto ROOTCERT_ERROR;
}
# Create Diffie Hellmann Parameter
+ # The system call is safe, because all arguments are passed as an array.
system('/usr/bin/openssl', 'dhparam', '-out', "${General::swroot}/ovpn/ca/dh1024.pem", "$cgiparams{'DHLENGHT'}");
if ($?) {
$errormessage = "$Lang::tr{'openssl produced an error'}: $?";
}
ROOTCERT_SUCCESS:
- system ("chmod 600 ${General::swroot}/ovpn/certs/serverkey.pem");
+ &General::system("chmod", "600", "${General::swroot}/ovpn/certs/serverkey.pem");
# if ($vpnsettings{'ENABLED'} eq 'on' ||
# $vpnsettings{'ENABLE_BLUE'} eq 'on') {
# system('/usr/local/bin/ipsecctrl', 'S');
&General::readhash("${General::swroot}/ovpn/settings", \%vpnsettings);
&General::readhasharray("${General::swroot}/ovpn/ovpnconfig", \%confighash);
-# my $n2nactive = '';
- my $n2nactive = `/bin/ps ax|grep $confighash{$cgiparams{'KEY'}}[1]|grep -v grep|awk \'{print \$1}\'`;
+ my $n2nactive = '';
+ my @ps = &General::system_output("/bin/ps", "ax");
+
+ if(grep(/$confighash{$cgiparams{'KEY'}}[1]/, @ps)) {
+ $n2nactive = "1";
+ }
if ($confighash{$cgiparams{'KEY'}}) {
if ($confighash{$cgiparams{'KEY'}}[0] eq 'off') {
&General::writehasharray("${General::swroot}/ovpn/ovpnconfig", \%confighash);
if ($confighash{$cgiparams{'KEY'}}[3] eq 'net'){
- system('/usr/local/bin/openvpnctrl', '-sn2n', $confighash{$cgiparams{'KEY'}}[1]);
+ &General::system("/usr/local/bin/openvpnctrl", "-sn2n", "$confighash{$cgiparams{'KEY'}}[1]");
&writecollectdconf();
}
} else {
if ($confighash{$cgiparams{'KEY'}}[3] eq 'net'){
if ($n2nactive ne '') {
- system('/usr/local/bin/openvpnctrl', '-kn2n', $confighash{$cgiparams{'KEY'}}[1]);
+ &General::system("/usr/local/bin/openvpnctrl", "-kn2n", "$confighash{$cgiparams{'KEY'}}[1]");
&writecollectdconf();
}
# Check host certificate if X509 is RFC3280 compliant.
# If not, old --ns-cert-type directive will be used.
# If appropriate key usage extension exists, new --remote-cert-tls directive will be used.
- my $hostcert = `/usr/bin/openssl x509 -text -in ${General::swroot}/ovpn/certs/servercert.pem`;
- if ($hostcert !~ /TLS Web Server Authentication/) {
+ my @hostcert = &General::system_output("/usr/bin/openssl", "x509", "-text", "-in", "${General::swroot}/ovpn/certs/servercert.pem");
+ if (! grep(/TLS Web Server Authentication/, @hostcert)) {
print CLIENTCONF "ns-cert-type server\n";
} else {
print CLIENTCONF "remote-cert-tls server\n";
$zip->addFile("${General::swroot}/ovpn/ca/cacert.pem", "cacert.pem") or die "Can't add file cacert.pem\n";
# Extract the certificate
+ # This system call is safe, because all arguments are passed as an array.
system('/usr/bin/openssl', 'pkcs12', '-in', "${General::swroot}/ovpn/certs/$confighash{$cgiparams{'KEY'}}[1].p12",
'-clcerts', '-nokeys', '-nodes', '-out', "$file_crt" , '-passin', 'pass:');
if ($?) {
print CLIENTCONF ";cert $confighash{$cgiparams{'KEY'}}[1].pem\r\n";
# Extract the key
+ # This system call is safe, because all arguments are passed as an array.
system('/usr/bin/openssl', 'pkcs12', '-in', "${General::swroot}/ovpn/certs/$confighash{$cgiparams{'KEY'}}[1].p12",
'-nocerts', '-nodes', '-out', "$file_key", '-passin', 'pass:');
if ($?) {
# Check host certificate if X509 is RFC3280 compliant.
# If not, old --ns-cert-type directive will be used.
# If appropriate key usage extension exists, new --remote-cert-tls directive will be used.
- my $hostcert = `/usr/bin/openssl x509 -text -in ${General::swroot}/ovpn/certs/servercert.pem`;
- if ($hostcert !~ /TLS Web Server Authentication/) {
+ my @hostcert = &General::system_output("/usr/bin/openssl", "x509", "-text", "-in", "${General::swroot}/ovpn/certs/servercert.pem");
+ if (! grep(/TLS Web Server Authentication/, @hostcert)) {
print CLIENTCONF "ns-cert-type server\r\n";
} else {
print CLIENTCONF "remote-cert-tls server\r\n";
if ($confighash{$cgiparams{'KEY'}}) {
# Revoke certificate if certificate was deleted and rewrite the CRL
- my $temp = `/usr/bin/openssl ca -revoke ${General::swroot}/ovpn/certs/$confighash{$cgiparams{'KEY'}}[1]cert.pem -config ${General::swroot}/ovpn/openssl/ovpn.cnf`;
- my $tempA = `/usr/bin/openssl ca -gencrl -out ${General::swroot}/ovpn/crls/cacrl.pem -config ${General::swroot}/ovpn/openssl/ovpn.cnf`;
+ &General::system("/usr/bin/openssl", "ca", "-revoke", "${General::swroot}/ovpn/certs/$confighash{$cgiparams{'KEY'}}[1]cert.pem", "-config", "${General::swroot}/ovpn/openssl/ovpn.cnf)";
+ &General::system("/usr/bin/openssl", "ca", "-gencrl", "-out", "${General::swroot}/ovpn/crls/cacrl.pem", "-config", "${General::swroot}/ovpn/openssl/ovpn.cnf");
###
# m.a.d net2net
if ($confighash{$cgiparams{'KEY'}}[3] eq 'net') {
# Stop the N2N connection before it is removed
- system('/usr/local/bin/openvpnctrl', '-kn2n', $confighash{$cgiparams{'KEY'}}[1]);
+ &General::system("/usr/local/bin/openvpnctrl", "-kn2n", "$confighash{$cgiparams{'KEY'}}[1]");
my $conffile = glob("${General::swroot}/ovpn/n2nconf/$confighash{$cgiparams{'KEY'}}[1]/$confighash{$cgiparams{'KEY'}}[1].conf");
my $certfile = glob("${General::swroot}/ovpn/certs/$confighash{$cgiparams{'KEY'}}[1].p12");
# CCD end
# Update collectd configuration and delete all RRD files of the removed connection
&writecollectdconf();
- system ('/usr/local/bin/openvpnctrl', '-drrd', $confighash{$cgiparams{'KEY'}}[1]);
+ &General::system("/usr/local/bin/openvpnctrl", "-drrd", "$confighash{$cgiparams{'KEY'}}[1]");
delete $confighash{$cgiparams{'KEY'}};
- my $temp2 = `/usr/bin/openssl ca -gencrl -out ${General::swroot}/ovpn/crls/cacrl.pem -config ${General::swroot}/ovpn/openssl/ovpn.cnf`;
+ &General::system("/usr/bin/openssl", "ca", "-gencrl", "-out", "${General::swroot}/ovpn/crls/cacrl.pem", "-config", "${General::swroot}/ovpn/openssl/ovpn.cnf");
&General::writehasharray("${General::swroot}/ovpn/ovpnconfig", \%confighash);
} else {
print "Content-Disposition: filename=" . $confighash{$cgiparams{'KEY'}}[1] . ".p12\r\n";
print "Content-Type: application/octet-stream\r\n\r\n";
- print `/bin/cat ${General::swroot}/ovpn/certs/$confighash{$cgiparams{'KEY'}}[1].p12`;
+
+ open(FILE, "${General::swroot}/ovpn/certs/$confighash{$cgiparams{'KEY'}}[1].p12");
+ my @tmp = <FILE>;
+ close(FILE);
+
+ print "@tmp";
exit (0);
###
&Header::openpage($Lang::tr{'ovpn'}, 1, '');
&Header::openbigbox('100%', 'LEFT', '', '');
&Header::openbox('100%', 'LEFT', "$Lang::tr{'certificate'}:");
- my $output = `/usr/bin/openssl x509 -text -in ${General::swroot}/ovpn/certs/$confighash{$cgiparams{'KEY'}}[1]cert.pem`;
- $output = &Header::cleanhtml($output,"y");
- print "<pre>$output</pre>\n";
+ my @output = &General::system_output("/usr/bin/openssl", "x509", "-text", "-in", "${General::swroot}/ovpn/certs/$confighash{$cgiparams{'KEY'}}[1]cert.pem");
+ @output = &Header::cleanhtml(@output,"y");
+ print "<pre>@output</pre>\n";
&Header::closebox();
print "<div align='center'><a href='/cgi-bin/ovpnmain.cgi'>$Lang::tr{'back'}</a></div>";
&Header::closebigbox();
&Header::openpage($Lang::tr{'ovpn'}, 1, '');
&Header::openbigbox('100%', 'LEFT', '', '');
&Header::openbox('100%', 'LEFT', "$Lang::tr{'dh'}:");
- my $output = `/usr/bin/openssl dhparam -text -in ${General::swroot}/ovpn/ca/dh1024.pem`;
- $output = &Header::cleanhtml($output,"y");
- print "<pre>$output</pre>\n";
+ my @output = &General::system_output("/usr/bin/openssl", "dhparam", "-text", "-in", "${General::swroot}/ovpn/ca/dh1024.pem");
+ @output = &Header::cleanhtml(@output,"y");
+ print "<pre>@output</pre>\n";
&Header::closebox();
print "<div align='center'><a href='/cgi-bin/ovpnmain.cgi'>$Lang::tr{'back'}</a></div>";
&Header::closebigbox();
&Header::openpage($Lang::tr{'ovpn'}, 1, '');
&Header::openbigbox('100%', 'LEFT', '', '');
&Header::openbox('100%', 'LEFT', "$Lang::tr{'ta key'}:");
- my $output = `/bin/cat ${General::swroot}/ovpn/certs/ta.key`;
- $output = &Header::cleanhtml($output,"y");
- print "<pre>$output</pre>\n";
+
+ open(FILE, "${General::swroot}/ovpn/certs/ta.key");
+ my @output = <FILE>;
+ close(FILE);
+
+ @output = &Header::cleanhtml(@output,"y");
+ print "<pre>@output</pre>\n";
&Header::closebox();
print "<div align='center'><a href='/cgi-bin/ovpnmain.cgi'>$Lang::tr{'back'}</a></div>";
&Header::closebigbox();
&Header::openpage($Lang::tr{'ovpn'}, 1, '');
&Header::openbigbox('100%', 'LEFT', '', '');
&Header::openbox('100%', 'LEFT', "$Lang::tr{'crl'}:");
- my $output = `/usr/bin/openssl crl -text -noout -in ${General::swroot}/ovpn/crls/cacrl.pem`;
- $output = &Header::cleanhtml($output,"y");
- print "<pre>$output</pre>\n";
+ my @output = &General::system_output("/usr/bin/openssl", "crl", "-text", "-noout", "-in", "${General::swroot}/ovpn/crls/cacrl.pem");
+ @output = &Header::cleanhtml(@output,"y");
+ print "<pre>@output</pre>\n";
&Header::closebox();
print "<div align='center'><a href='/cgi-bin/ovpnmain.cgi'>$Lang::tr{'back'}</a></div>";
&Header::closebigbox();
if ( -f "${General::swroot}/ovpn/certs/$confighash{$cgiparams{'KEY'}}[1]cert.pem") {
print "Content-Disposition: filename=" . $confighash{$cgiparams{'KEY'}}[1] . "cert.pem\r\n";
print "Content-Type: application/octet-stream\r\n\r\n";
- print `/bin/cat ${General::swroot}/ovpn/certs/$confighash{$cgiparams{'KEY'}}[1]cert.pem`;
+
+ open(FILE, "${General::swroot}/ovpn/certs/$confighash{$cgiparams{'KEY'}}[1]cert.pem");
+ my @tmp = <FILE>;
+ close(FILE);
+
+ print "@tmp";
exit (0);
}
# Sign the certificate request and move it
# Sign the host certificate request
+ # The system call is safe, because all arguments are passed as an array.
system('/usr/bin/openssl', 'ca', '-days', "$cgiparams{'DAYS_VALID'}",
'-batch', '-notext',
'-in', $filename,
&deletebackupcert();
}
- my $temp = `/usr/bin/openssl x509 -text -in ${General::swroot}/ovpn/certs/$cgiparams{'NAME'}cert.pem`;
- $temp =~ /Subject:.*CN\s?=\s?(.*)[\n]/;
- $temp = $1;
- $temp =~ s+/Email+, E+;
- $temp =~ s/ ST=/ S=/;
+ my @temp = &General::system_output("/usr/bin/openssl", "x509", "-text", "-in", "${General::swroot}/ovpn/certs/$cgiparams{'NAME'}cert.pem");
+ my $temp;
+
+ foreach my $line (@temp) {
+ if ($line =~ /Subject:.*CN\s?=\s?(.*)[\n]/) {
+ $temp = $1;
+ $temp =~ s+/Email+, E+;
+ $temp =~ s/ ST=/ S=/;
+
+ last;
+ }
+ }
+
$cgiparams{'CERT_NAME'} = $temp;
$cgiparams{'CERT_NAME'} =~ s/,//g;
$cgiparams{'CERT_NAME'} =~ s/\'//g;
# Verify the certificate has a valid CA and move it
my $validca = 0;
- my $test = `/usr/bin/openssl verify -CAfile ${General::swroot}/ovpn/ca/cacert.pem $filename`;
- if ($test =~ /: OK/) {
+ my @test = &General::system_output("/usr/bin/openssl", "verify", "-CAfile", "${General::swroot}/ovpn/ca/cacert.pem", "$filename");
+ if (grep(/: OK/, @test)) {
$validca = 1;
} else {
foreach my $key (keys %cahash) {
- $test = `/usr/bin/openssl verify -CAfile ${General::swroot}/ovpn/ca/$cahash{$key}[0]cert.pem $filename`;
- if ($test =~ /: OK/) {
+ @test = &General::system_output("/usr/bin/openssl", "verify", "-CAfile", "${General::swroot}/ovpn/ca/$cahash{$key}[0]cert.pem", "$filename");
+ if (grep(/: OK/, @test)) {
$validca = 1;
}
}
}
}
- my $temp = `/usr/bin/openssl x509 -text -in ${General::swroot}/ovpn/certs/$cgiparams{'NAME'}cert.pem`;
- $temp =~ /Subject:.*CN\s?=\s?(.*)[\n]/;
- $temp = $1;
- $temp =~ s+/Email+, E+;
- $temp =~ s/ ST=/ S=/;
+ my @temp = &General::system_output("/usr/bin/openssl", "x509", "-text", "-in", "${General::swroot}/ovpn/certs/$cgiparams{'NAME'}cert.pem");
+ my $temp;
+
+ foreach my $line (@temp) {
+ if ($line =~ /Subject:.*CN\s?=\s?(.*)[\n]/) {
+ $temp = $1;
+ $temp =~ s+/Email+, E+;
+ $temp =~ s/ ST=/ S=/;
+
+ last;
+ }
+ }
+
$cgiparams{'CERT_NAME'} = $temp;
$cgiparams{'CERT_NAME'} =~ s/,//g;
$cgiparams{'CERT_NAME'} =~ s/\'//g;
}
# Sign the host certificate request
+ # The system call is safe, because all arguments are passed as an array.
system('/usr/bin/openssl', 'ca', '-days', "$cgiparams{'DAYS_VALID'}",
'-batch', '-notext',
'-in', "${General::swroot}/ovpn/certs/$cgiparams{'NAME'}req.pem",
}
# Create the pkcs12 file
+ # The system call is safe, because all arguments are passed as an array.
system('/usr/bin/openssl', 'pkcs12', '-export',
'-inkey', "${General::swroot}/ovpn/certs/$cgiparams{'NAME'}key.pem",
'-in', "${General::swroot}/ovpn/certs/$cgiparams{'NAME'}cert.pem",
if ($cgiparams{'TYPE'} eq 'net') {
- if (-e "/var/run/$confighash{$key}[1]n2n.pid") {
- system('/usr/local/bin/openvpnctrl', '-kn2n', $confighash{$cgiparams{'KEY'}}[1]);
+ if (-e "/var/run/$confighash{$key}[1]n2n.pid") {
+ &General::system("/usr/local/bin/openvpnctrl", "-kn2n", "$confighash{$cgiparams{'KEY'}}[1]");
- &General::readhasharray("${General::swroot}/ovpn/ovpnconfig", \%confighash);
- my $key = $cgiparams{'KEY'};
- if (! $key) {
- $key = &General::findhasharraykey (\%confighash);
- foreach my $i (0 .. 31) { $confighash{$key}[$i] = "";}
- }
- $confighash{$key}[0] = 'on';
- &General::writehasharray("${General::swroot}/ovpn/ovpnconfig", \%confighash);
+ &General::readhasharray("${General::swroot}/ovpn/ovpnconfig", \%confighash);
+ my $key = $cgiparams{'KEY'};
+ if (! $key) {
+ $key = &General::findhasharraykey (\%confighash);
+ foreach my $i (0 .. 31) {
+ $confighash{$key}[$i] = "";
+ }
+ }
+
+ $confighash{$key}[0] = 'on';
+ &General::writehasharray("${General::swroot}/ovpn/ovpnconfig", \%confighash);
- system('/usr/local/bin/openvpnctrl', '-sn2n', $confighash{$cgiparams{'KEY'}}[1]);
- }
- }
+ &General::system("/usr/local/bin/openvpnctrl", "-sn2n", "$confighash{$cgiparams{'KEY'}}[1]");
+ }
+ }
###
# m.a.d n2n end
&General::readhasharray("${General::swroot}/ovpn/caconfig", \%cahash);
&General::readhasharray("${General::swroot}/ovpn/ovpnconfig", \%confighash);
- my @status = `/bin/cat /var/run/ovpnserver.log`;
+ open(FILE, "/var/run/ovpnserver.log");
+ my @status = <FILE>;
+ close(FILE);
if ($cgiparams{'VPN_IP'} eq '' && -e "${General::swroot}/red/active") {
if (open(IPADDR, "${General::swroot}/red/local-ipaddress")) {
#} else {
#print "<td align='left'> </td>";
#}
- my $cavalid = `/usr/bin/openssl x509 -text -in ${General::swroot}/ovpn/certs/$confighash{$key}[1]cert.pem`;
- $cavalid =~ /Not After : (.*)[\n]/;
- $cavalid = $1;
+ my @cavalid = &General::system_output("/usr/bin/openssl", "x509", "-text", "-in", "${General::swroot}/ovpn/certs/$confighash{$key}[1]cert.pem");
+ my $cavalid;
+
+ foreach my $line (@cavalid) {
+ if ($line =~ /Not After : (.*)[\n]/) {
+ $cavalid = $1;
+
+ last;
+ }
+ }
+
print "<td align='center' $col>$confighash{$key}[25]</td>";
$col1="bgcolor='${Header::colourred}'";
my $active = "<b><font color='#FFFFFF'>$Lang::tr{'capsclosed'}</font></b>";
my $col4="bgcolor='$color{'color20'}'";
if (-f "${General::swroot}/ovpn/ca/cacert.pem") {
- my $casubject = `/usr/bin/openssl x509 -text -in ${General::swroot}/ovpn/ca/cacert.pem`;
- $casubject =~ /Subject: (.*)[\n]/;
- $casubject = $1;
- $casubject =~ s+/Email+, E+;
- $casubject =~ s/ ST=/ S=/;
+ my @casubject = &General::system_output("/usr/bin/openssl", "x509", "-text", "-in", "${General::swroot}/ovpn/ca/cacert.pem");
+ my $casubject;
+
+ foreach my $line (@casubject) {
+ if ($line =~ /Subject: (.*)[\n]/) {
+ $casubject = $1;
+ $casubject =~ s+/Email+, E+;
+ $casubject =~ s/ ST=/ S=/;
+
+ last;
+ }
+ }
+
print <<END;
<tr>
<td class='base' $col1>$Lang::tr{'root certificate'}</td>
}
if (-f "${General::swroot}/ovpn/certs/servercert.pem") {
- my $hostsubject = `/usr/bin/openssl x509 -text -in ${General::swroot}/ovpn/certs/servercert.pem`;
- $hostsubject =~ /Subject: (.*)[\n]/;
- $hostsubject = $1;
- $hostsubject =~ s+/Email+, E+;
- $hostsubject =~ s/ ST=/ S=/;
+ my @hostsubject = &General::system_output("/usr/bin/openssl", "x509", "-text", "-in", "${General::swroot}/ovpn/certs/servercert.pem");
+ my $hostsubject;
+
+ foreach my $line (@hostsubject) {
+ if ($line =~ /Subject: (.*)[\n]/) {
+ $hostsubject = $1;
+ $hostsubject =~ s+/Email+, E+;
+ $hostsubject =~ s/ ST=/ S=/;
+
+ last;
+ }
+ }
print <<END;
<tr>
# Adding DH parameter to chart
if (-f "${General::swroot}/ovpn/ca/dh1024.pem") {
- my $dhsubject = `/usr/bin/openssl dhparam -text -in ${General::swroot}/ovpn/ca/dh1024.pem`;
- $dhsubject =~ / (.*)[\n]/;
- $dhsubject = $1;
+ my @dhsubject = &System_output("/usr/bin/openssl", "dhparam", "-text", "-in", "${General::swroot}/ovpn/ca/dh1024.pem");
+ my $dhsubject;
+ foreach my $line (@dhsubject) {
+ if ($line =~ / (.*)[\n]/) {
+ $dhsubject = $1;
+
+ last;
+ }
+ }
print <<END;
<tr>
# Adding ta.key to chart
if (-f "${General::swroot}/ovpn/certs/ta.key") {
- my $tasubject = `/bin/cat ${General::swroot}/ovpn/certs/ta.key`;
- $tasubject =~ /# (.*)[\n]/;
- $tasubject = $1;
+ open(FILE, "${General::swroot}/ovpn/certs/ta.key");
+ my @tasubject = <FILE>;
+ close(FILE);
+
+ my $tasubject;
+ foreach my $line (@tasubject) {
+ if($line =~ /# (.*)[\n]/) {
+ $tasubject = $1;
+
+ last;
+ }
+ }
+
print <<END;
<tr>
&Header::openpage($Lang::tr{'pakfire configuration'}, 1);
&Header::openbigbox('100%', 'left', '', $errormessage);
-if ($cgiparams{'ACTION'} eq 'install'){
+if (($cgiparams{'ACTION'} eq 'install') && (! -e $Pakfire::lockfile)) {
$cgiparams{'INSPAKS'} =~ s/\|/\ /g;
if ("$cgiparams{'FORCE'}" eq "on") {
- my $command = "/usr/local/bin/pakfire install --non-interactive --no-colors $cgiparams{'INSPAKS'} &>/dev/null &";
- system("$command");
- system("/bin/sleep 1");
+ &General::system_background("/usr/local/bin/pakfire", "install", "--non-interactive", "--no-colors", $cgiparams{'INSPAKS'});
} else {
&Header::openbox("100%", "center", $Lang::tr{'request'});
- my @output = `/usr/local/bin/pakfire resolvedeps --no-colors $cgiparams{'INSPAKS'}`;
+ my @output = &General::system_output("/usr/local/bin/pakfire", "resolvedeps", "--no-colors", $cgiparams{'INSPAKS'});
print <<END;
<table><tr><td colspan='2'>$Lang::tr{'pakfire install package'}.$cgiparams{'INSPAKS'}.$Lang::tr{'pakfire possible dependency'}
<pre>
&Header::closepage();
exit;
}
-} elsif ($cgiparams{'ACTION'} eq 'remove') {
+} elsif (($cgiparams{'ACTION'} eq 'remove') && (! -e $Pakfire::lockfile)) {
$cgiparams{'DELPAKS'} =~ s/\|/\ /g;
if ("$cgiparams{'FORCE'}" eq "on") {
- my $command = "/usr/local/bin/pakfire remove --non-interactive --no-colors $cgiparams{'DELPAKS'} &>/dev/null &";
- system("$command");
- system("/bin/sleep 1");
+ &General::system_background("/usr/local/bin/pakfire", "remove", "--non-interactive", "--no-colors", $cgiparams{'DELPAKS'});
} else {
&Header::openbox("100%", "center", $Lang::tr{'request'});
- my @output = `/usr/local/bin/pakfire resolvedeps --no-colors $cgiparams{'DELPAKS'}`;
+ my @output = &General::system_output("/usr/local/bin/pakfire", "resolvedeps", "--no-colors", $cgiparams{'DELPAKS'});
print <<END;
<table><tr><td colspan='2'>$Lang::tr{'pakfire uninstall package'}.$cgiparams{'DELPAKS'}.$Lang::tr{'pakfire possible dependency'}
<pre>
exit;
}
-} elsif ($cgiparams{'ACTION'} eq 'update') {
-
- system("/usr/local/bin/pakfire update --force --no-colors &>/dev/null &");
- system("/bin/sleep 1");
-} elsif ($cgiparams{'ACTION'} eq 'upgrade') {
- my $command = "/usr/local/bin/pakfire upgrade -y --no-colors &>/dev/null &";
- system("$command");
- system("/bin/sleep 1");
+} elsif (($cgiparams{'ACTION'} eq 'update') && (! -e $Pakfire::lockfile)) {
+ &General::system_background("/usr/local/bin/pakfire", "update", "--force", "--no-colors");
+} elsif (($cgiparams{'ACTION'} eq 'upgrade') && (!-e $Pakfire::lockfile)) {
+ &General::system_background("/usr/local/bin/pakfire", "upgrade", "-y", "--no-colors");
} elsif ($cgiparams{'ACTION'} eq "$Lang::tr{'save'}") {
$pakfiresettings{"TREE"} = $cgiparams{"TREE"};
&General::writehash("${General::swroot}/pakfire/settings", \%pakfiresettings);
# Update lists
- system("/usr/local/bin/pakfire update --force --no-colors &>/dev/null &");
+ &General::system_background("/usr/local/bin/pakfire", "update", "--force", "--no-colors");
}
}
&Header::closebox();
}
-my $return = `pidof pakfire`;
-chomp($return);
-if ($return) {
+if (-e $Pakfire::lockfile) {
&Header::openbox( 'Waiting', 1, "<meta http-equiv='refresh' content='10;'>" );
print <<END;
<table>
my @profilenames=();
my $errormessage = '';
my $maxprofiles = 5;
+
+# This call is safe, because no user input will be processed.
my $kernel=`/bin/uname -r | /usr/bin/tr -d '\012'`;
my %color = ();
$errormessage = $Lang::tr{'invalid input'};
goto ERROR; }
- if( $pppsettings{'RECONNECTION'} eq 'dialondemand' && `/bin/cat ${General::swroot}/ddns/config` =~ /,on$/m ) {
+ # Read-in ddns config file, to check if at least one provider is enabled.
+ open(FILE, "${General::swroot}/ddns/config)";
+ my @ddns_config = <FILE>
+ close(FILE);
+
+ if( $pppsettings{'RECONNECTION'} eq 'dialondemand' && grep(/on/, @ddns_config) ) {
$errormessage = $Lang::tr{'dod not compatible with ddns'};
goto ERROR; }
END
;
-my $atmdev=`cat /proc/net/atm/devices 2>/dev/null | grep 0`;
+# Read-in atm devices from proc.
+open(PROC, "/proc/net/atm/devices");
+my @patm_devices = <PROC>;
+close(PROC);
+
+my $atmdev = grep(/0/, @atm_devices);
chomp ($atmdev);
if ($atmdev ne '') {
print <<END
unlink("${General::swroot}/ppp/settings");
link("${General::swroot}/ppp/settings-$pppsettings{'PROFILE'}",
"${General::swroot}/ppp/settings");
- system ("/usr/bin/touch", "${General::swroot}/ppp/updatesettings");
+
+ # Write updatesettings file.
+ open(FILE, ">/${General::swroot}/ppp/updatesettings");
+ close(FILE);
}
sub writesecrets
###############################################################################
# #
# IPFire.org - A linux based firewall #
-# Copyright (C) 2007-2020 IPFire Team <info@ipfire.org> #
+# Copyright (C) 2007-2021 IPFire Team <info@ipfire.org> #
# #
# This program is free software: you can redistribute it and/or modify #
# it under the terms of the GNU General Public License as published by #
require "${General::swroot}/ids-functions.pl";
-my @squidversion = `/usr/sbin/squid -v`;
+my @squidversion = &General::system_output("/usr/sbin/squid", "-v");
my $http_port='81';
my $https_port='444';
unless (-d "$identdir") { mkdir("$identdir"); }
unless (-d "$credir") { mkdir("$credir"); }
-unless (-e $cre_groups) { system("touch $cre_groups"); }
-unless (-e $cre_svhosts) { system("touch $cre_svhosts"); }
-
-unless (-e $userdb) { system("touch $userdb"); }
-unless (-e $stdgrp) { system("touch $stdgrp"); }
-unless (-e $extgrp) { system("touch $extgrp"); }
-unless (-e $disgrp) { system("touch $disgrp"); }
-
-unless (-e $acl_src_subnets) { system("touch $acl_src_subnets"); }
-unless (-e $acl_src_banned_ip) { system("touch $acl_src_banned_ip"); }
-unless (-e $acl_src_banned_mac) { system("touch $acl_src_banned_mac"); }
-unless (-e $acl_src_unrestricted_ip) { system("touch $acl_src_unrestricted_ip"); }
-unless (-e $acl_src_unrestricted_mac) { system("touch $acl_src_unrestricted_mac"); }
-unless (-e $acl_src_noaccess_ip) { system("touch $acl_src_noaccess_ip"); }
-unless (-e $acl_src_noaccess_mac) { system("touch $acl_src_noaccess_mac"); }
-unless (-e $acl_dst_noauth) { system("touch $acl_dst_noauth"); }
-unless (-e $acl_dst_noauth_dom) { system("touch $acl_dst_noauth_dom"); }
-unless (-e $acl_dst_noauth_net) { system("touch $acl_dst_noauth_net"); }
-unless (-e $acl_dst_noauth_url) { system("touch $acl_dst_noauth_url"); }
-unless (-e $acl_dst_nocache) { system("touch $acl_dst_nocache"); }
-unless (-e $acl_dst_nocache_dom) { system("touch $acl_dst_nocache_dom"); }
-unless (-e $acl_dst_nocache_net) { system("touch $acl_dst_nocache_net"); }
-unless (-e $acl_dst_nocache_url) { system("touch $acl_dst_nocache_url"); }
-unless (-e $acl_dst_throttle) { system("touch $acl_dst_throttle"); }
-unless (-e $acl_ports_safe) { system("touch $acl_ports_safe"); }
-unless (-e $acl_ports_ssl) { system("touch $acl_ports_ssl"); }
-unless (-e $acl_include) { system("touch $acl_include"); }
-
-unless (-e $mimetypes) { system("touch $mimetypes"); }
+unless (-e $cre_groups) { &General::system("touch", "$cre_groups"); }
+unless (-e $cre_svhosts) { &General::system("touch $cre_svhosts"); }
+
+unless (-e $userdb) { &General::system("touch", "$userdb"); }
+unless (-e $stdgrp) { &General::system("touch", "$stdgrp"); }
+unless (-e $extgrp) { &General::system("touch", "$extgrp"); }
+unless (-e $disgrp) { &General::system("touch", "$disgrp"); }
+
+unless (-e $acl_src_subnets) { &General::system("touch", "$acl_src_subnets"); }
+unless (-e $acl_src_banned_ip) { &General::system("touch", "$acl_src_banned_ip"); }
+unless (-e $acl_src_banned_mac) { &General::system("touch", "$acl_src_banned_mac"); }
+unless (-e $acl_src_unrestricted_ip) { &General::system("touch", "$acl_src_unrestricted_ip"); }
+unless (-e $acl_src_unrestricted_mac) { &General::system("touch", "$acl_src_unrestricted_mac"); }
+unless (-e $acl_src_noaccess_ip) { &General::system("touch", "$acl_src_noaccess_ip"); }
+unless (-e $acl_src_noaccess_mac) { &General::system("touch", "$acl_src_noaccess_mac"); }
+unless (-e $acl_dst_noauth) { &General::system("touch", "$acl_dst_noauth"); }
+unless (-e $acl_dst_noauth_dom) { &General::system("touch", "$acl_dst_noauth_dom"); }
+unless (-e $acl_dst_noauth_net) { &General::system("touch", "$acl_dst_noauth_net"); }
+unless (-e $acl_dst_noauth_url) { &General::system("touch", "$acl_dst_noauth_url"); }
+unless (-e $acl_dst_nocache) { &General::system("touch", "$acl_dst_nocache"); }
+unless (-e $acl_dst_nocache_dom) { &General::system("touch", "$acl_dst_nocache_dom"); }
+unless (-e $acl_dst_nocache_net) { &General::system("touch", "$acl_dst_nocache_net"); }
+unless (-e $acl_dst_nocache_url) { &General::system("touch", "$acl_dst_nocache_url"); }
+unless (-e $acl_dst_throttle) { &General::system("touch", "$acl_dst_throttle"); }
+unless (-e $acl_ports_safe) { &General::system("touch", "$acl_ports_safe"); }
+unless (-e $acl_ports_ssl) { &General::system("touch", "$acl_ports_ssl"); }
+unless (-e $acl_include) { &General::system("touch", "$acl_include"); }
+
+unless (-e $mimetypes) { &General::system("touch", "$mimetypes"); }
my $HAVE_NTLM_AUTH = (-e "/usr/bin/ntlm_auth");
$proxysettings{'ADMIN_PASSWORD'} = '';
$proxysettings{'ERR_LANGUAGE'} = 'en';
$proxysettings{'ERR_DESIGN'} = 'ipfire';
-$proxysettings{'SUPPRESS_VERSION'} = 'off';
+$proxysettings{'SUPPRESS_VERSION'} = 'on';
$proxysettings{'FORWARD_VIA'} = 'off';
$proxysettings{'FORWARD_IPADDRESS'} = 'off';
$proxysettings{'FORWARD_USERNAME'} = 'off';
$proxysettings{'THROTTLING_BLUE_TOTAL'} = 'unlimited';
$proxysettings{'THROTTLING_BLUE_HOST'} = 'unlimited';
$proxysettings{'ENABLE_MIME_FILTER'} = 'off';
-$proxysettings{'FAKE_USERAGENT'} = '';
-$proxysettings{'FAKE_REFERER'} = '';
$proxysettings{'AUTH_METHOD'} = 'none';
$proxysettings{'AUTH_REALM'} = '';
$proxysettings{'AUTH_MAX_USERIP'} = '';
$errormessage = $Lang::tr{'advproxy errmsg mem cache size'};
goto ERROR;
}
- my @free = `/usr/bin/free`;
+ my @free = &General::system_output("/usr/bin/free");
$free[1] =~ m/(\d+)/;
$cachemem = int $1 / 2048;
if ($proxysettings{'CACHE_MEM'} > $cachemem) {
if ($proxysettings{'CACHEMGR'} eq 'on'){&writecachemgr;}
- system ('/usr/local/bin/squidctrl', 'disable');
+ &General::system ('/usr/local/bin/squidctrl', 'disable');
unlink "${General::swroot}/proxy/enable";
unlink "${General::swroot}/proxy/transparent";
unlink "${General::swroot}/proxy/enable_blue";
unlink "${General::swroot}/proxy/transparent_blue";
if ($proxysettings{'ENABLE'} eq 'on') {
- system ('/usr/bin/touch', "${General::swroot}/proxy/enable");
- system ('/usr/local/bin/squidctrl', 'enable'); }
+ &General::system('/usr/bin/touch', "${General::swroot}/proxy/enable");
+ &General::system('/usr/local/bin/squidctrl', 'enable'); }
if ($proxysettings{'TRANSPARENT'} eq 'on' && $proxysettings{'ENABLE'} eq 'on') {
- system ('/usr/bin/touch', "${General::swroot}/proxy/transparent"); }
+ &General::system('/usr/bin/touch', "${General::swroot}/proxy/transparent"); }
if ($proxysettings{'ENABLE_BLUE'} eq 'on') {
- system ('/usr/bin/touch', "${General::swroot}/proxy/enable_blue");
- system ('/usr/local/bin/squidctrl', 'enable'); }
+ &General::system('/usr/bin/touch', "${General::swroot}/proxy/enable_blue");
+ &General::system('/usr/local/bin/squidctrl', 'enable'); }
if ($proxysettings{'TRANSPARENT_BLUE'} eq 'on' && $proxysettings{'ENABLE_BLUE'} eq 'on') {
- system ('/usr/bin/touch', "${General::swroot}/proxy/transparent_blue"); }
+ &General::system('/usr/bin/touch', "${General::swroot}/proxy/transparent_blue"); }
- if ($proxysettings{'ACTION'} eq $Lang::tr{'advproxy save and restart'}) { system('/usr/local/bin/squidctrl restart >/dev/null 2>&1'); }
- if ($proxysettings{'ACTION'} eq $Lang::tr{'proxy reconfigure'}) { system('/usr/local/bin/squidctrl reconfigure >/dev/null 2>&1'); }
+ if ($proxysettings{'ACTION'} eq $Lang::tr{'advproxy save and restart'}) { &General::system('/usr/local/bin/squidctrl', 'restart'); }
+ if ($proxysettings{'ACTION'} eq $Lang::tr{'proxy reconfigure'}) { &General::system('/usr/local/bin/squidctrl', 'reconfigure'); }
# Check if the suricata_proxy_ports_changed flag has been set.
if ($suricata_proxy_ports_changed) {
if ($proxysettings{'ACTION'} eq $Lang::tr{'advproxy clear cache'})
{
- system('/usr/local/bin/squidctrl flush >/dev/null 2>&1');
+ &General::system('/usr/local/bin/squidctrl', 'flush');
}
if (!$errormessage)
print <<END
</table>
-<hr size='1'>
-
-<table width='100%'>
-<tr>
- <td><b>$Lang::tr{'advproxy privacy'}</b></td>
-</tr>
-<tr>
- <td class='base'>$Lang::tr{'advproxy fake useragent'}:</td>
- <td class='base'>$Lang::tr{'advproxy fake referer'}:</td>
-</tr>
-<tr>
- <td><input type='text' name='FAKE_USERAGENT' value='$proxysettings{'FAKE_USERAGENT'}' size='40%' /></td>
- <td><input type='text' name='FAKE_REFERER' value='$proxysettings{'FAKE_REFERER'}' size='40%' /></td>
-</tr>
-</table>
<hr size='1'>
END
;
print FILE "http_access deny all\n\n";
- if (($proxysettings{'FORWARD_IPADDRESS'} eq 'off') || ($proxysettings{'FORWARD_VIA'} eq 'off') ||
- (!($proxysettings{'FAKE_USERAGENT'} eq '')) || (!($proxysettings{'FAKE_REFERER'} eq '')))
+ if (($proxysettings{'FORWARD_IPADDRESS'} eq 'off') || ($proxysettings{'FORWARD_VIA'} eq 'off'))
{
print FILE "#Strip HTTP Header\n";
print FILE "request_header_access Via deny all\n";
print FILE "reply_header_access Via deny all\n";
}
- if (!($proxysettings{'FAKE_USERAGENT'} eq ''))
- {
- print FILE "request_header_access User-Agent deny all\n";
- print FILE "reply_header_access User-Agent deny all\n";
- }
- if (!($proxysettings{'FAKE_REFERER'} eq ''))
- {
- print FILE "request_header_access Referer deny all\n";
- print FILE "reply_header_access Referer deny all\n";
- }
print FILE "\n";
- if ((!($proxysettings{'FAKE_USERAGENT'} eq '')) || (!($proxysettings{'FAKE_REFERER'} eq '')))
- {
- if (!($proxysettings{'FAKE_USERAGENT'} eq ''))
- {
- print FILE "header_replace User-Agent $proxysettings{'FAKE_USERAGENT'}\n";
- }
- if (!($proxysettings{'FAKE_REFERER'} eq ''))
- {
- print FILE "header_replace Referer $proxysettings{'FAKE_REFERER'}\n";
- }
- print FILE "\n";
- }
}
if ($proxysettings{'SUPPRESS_VERSION'} eq 'on') { print FILE "httpd_suppress_version_string on\n\n" }
&General::readhash("${General::swroot}/qos/settings", \%qossettings);
&Header::getcgihash(\%qossettings);
-$qossettings{'RED_DEV'} = `cat /var/ipfire/red/iface`;
+$qossettings{'RED_DEV'} = &General::get_red_interface();
my %color = ();
my %mainsettings = ();
open( FILE, "< $level7file" ) or die "Unable to read $level7file";
@l7rules = <FILE>;
close FILE;
- system("rm $level7file");
+ &General::system("rm", "$level7file");
foreach $l7ruleentry (sort @l7rules)
{
@l7ruleline = split( /\;/, $l7ruleentry );
close FILE;
}
}
- open( FILE, "< $level7file" ) or system("touch $level7file");close FILE;
+ open( FILE, "< $level7file" ) or &General::system("touch", "$level7file");close FILE;
} elsif ($qossettings{'DOLEVEL7'} eq $Lang::tr{'edit'})
{
open( FILE, "< $level7file" ) or die "Unable to read $level7file";
@l7rules = <FILE>;
close FILE;
- system("rm $level7file");
+ &General::system("rm", "$level7file");
foreach $l7ruleentry (sort @l7rules)
{
@l7ruleline = split( /\;/, $l7ruleentry );
}
}
&level7rule;
- open( FILE, "< $level7file" ) or system("touch $level7file");close FILE;
+ open( FILE, "< $level7file" ) or &General::system("touch", "$level7file");close FILE;
}
############################################################################################################################
open( FILE, "< $portfile" ) or die "Unable to read $portfile";
@portrules = <FILE>;
close FILE;
- system("rm $portfile");
+ &General::system("rm", "$portfile");
foreach $portruleentry (sort @portrules)
{
@portruleline = split( /\;/, $portruleentry );
}
}
&portrule;
- open( FILE, "< $portfile" ) or system("touch $portfile");close FILE;
+ open( FILE, "< $portfile" ) or &General::system("touch", "$portfile");close FILE;
}
############################################################################################################################
{
$qossettings{'ENABLED'} = 'on';
&General::writehash("${General::swroot}/qos/settings", \%qossettings);
- system("/usr/local/bin/qosctrl generate >/dev/null 2>&1");
- system("/usr/local/bin/qosctrl start >/dev/null 2>&1");
- system("logger -t ipfire 'QoS started'");
+ &General::system("/usr/local/bin/qosctrl", "generate");
+ &General::system("/usr/local/bin/qosctrl", "start");
+ &General::system("logger", "-t", "ipfire", "QoS started");
}
elsif ($qossettings{'ACTION'} eq $Lang::tr{'stop'})
{
$qossettings{'ENABLED'} = 'off';
&General::writehash("${General::swroot}/qos/settings", \%qossettings);
- system("/usr/local/bin/qosctrl stop >/dev/null 2>&1");
- system("/usr/local/bin/qosctrl generate >/dev/null 2>&1");
- system("logger -t ipfire 'QoS stopped'");
+ &General::system("/usr/local/bin/qosctrl", "stop");
+ &General::system("/usr/local/bin/qosctrl", "generate");
+ &General::system("logger", "-t", "ipfire", "QoS stopped");
}
elsif ($qossettings{'ACTION'} eq $Lang::tr{'restart'})
{
if ($qossettings{'ENABLED'} eq 'on'){
- system("/usr/local/bin/qosctrl stop >/dev/null 2>&1");
- system("/usr/local/bin/qosctrl generate >/dev/null 2>&1");
- system("/usr/local/bin/qosctrl start >/dev/null 2>&1");
- system("logger -t ipfire 'QoS restarted'");
+ &General::system("/usr/local/bin/qosctrl", "stop");
+ &General::system("/usr/local/bin/qosctrl", "generate");
+ &General::system("/usr/local/bin/qosctrl", "start");
+ &General::system("logger", "-t", "ipfire", "QoS restarted");
}
}
elsif ($qossettings{'ACTION'} eq $Lang::tr{'save'})
$qossettings{'ACK'} ="101";
$qossettings{'ENABLED'} = 'on';
&General::writehash("${General::swroot}/qos/settings", \%qossettings);
- system("/usr/local/bin/qosctrl generate >/dev/null 2>&1");
- system("/usr/local/bin/qosctrl start >/dev/null 2>&1");
- system("logger -t ipfire 'QoS started'");
+ &General::system("/usr/local/bin/qosctrl", "generate");
+ &General::system("/usr/local/bin/qosctrl", "start");
+ &General::system("logger", "-t", "ipfire", "QoS started");
} else {
$message = $Lang::tr{'qos enter bandwidths'};
}
&Header::openbox('100%', 'left', 'QoS Status');
if ($qossettings{'ENABLED'} eq 'on'){
my $output = "";
- $output = `/usr/local/bin/qosctrl status`;
- $output = &Header::cleanhtml($output,"y");
+ my @output = &General::system_output("/usr/local/bin/qosctrl", "status");
+ $output = &Header::cleanhtml(@output[0],"y");
print "<pre>$output</pre>\n";
} else { print "$Lang::tr{'QoS not enabled'}"; }
&Header::closebox();
{
$errormessage = $Lang::tr{'ssh no auth'};
}
- system ('/usr/bin/touch', "${General::swroot}/remote/enablessh");
+ &General::system('/usr/bin/touch', "${General::swroot}/remote/enablessh");
}
else
{
if ( $remotesettings{'ACTION'} eq $Lang::tr{'ssh tempstart15'} || $remotesettings{'ACTION'} eq $Lang::tr{'ssh tempstart30'} ){
if ($remotesettings{'ENABLE_SSH'} eq 'off')
{
- system ('/usr/bin/touch', "${General::swroot}/remote/enablessh");
- system('/usr/local/bin/sshctrl');
+ &General::system('/usr/bin/touch', "${General::swroot}/remote/enablessh");
+ &General::system('/usr/local/bin/sshctrl');
}
if ( $remotesettings{'ACTION'} eq $Lang::tr{'ssh tempstart15'} ) { $counter = 900;}
elsif ( $remotesettings{'ACTION'} eq $Lang::tr{'ssh tempstart30'} ) { $counter = 1800;}
if ( -e $key )
{
- my @temp = split(/ /,`/usr/bin/ssh-keygen -l -f $key`);
+ # Use safe system_output function to call ssh-keygen and get the output from the tool.
+ my @ssh_keygen = &General::system_output("/usr/bin/ssh-keygen", "-l", "-f", "$key");
+
+ my @temp = split(/ /, $ssh_keygen[0]);
my $keysize = &Header::cleanhtml($temp[0],"y");
my $fingerprint = &Header::cleanhtml($temp[1],"y");
print "<tr><td><code>$key</code></td><td align='center'>$name</td><td><code>$fingerprint</code></td><td align='center'>$keysize</td></tr>\n";
sub printactivelogins()
{
# print active SSH logins (grep outpout of "who -s")
- my $command = "who -s";
- my @output = `$command`;
+ my @output = &General::system_output("who", "-s");
chomp(@output);
my $id = 0;
# Build the configuration file
#
sub BuildConfiguration {
- system '/usr/local/bin/rebuildroutes';
+ &General::system('/usr/local/bin/rebuildroutes');
}
############################################################################################################################
############################################# Samba Rootskript aufrufe fr SU-Actions #######################################
-if ($sambasettings{'ACTION'} eq 'smbuserdisable'){system("/usr/local/bin/sambactrl smbuserdisable $sambasettings{'NAME'}");}
-if ($sambasettings{'ACTION'} eq 'smbuserenable'){system("/usr/local/bin/sambactrl smbuserenable $sambasettings{'NAME'}");}
-if ($sambasettings{'ACTION'} eq 'smbuseradd'){system("/usr/local/bin/sambactrl smbuseradd $sambasettings{'USERNAME'} $sambasettings{'PASSWORD'}");}
-if ($sambasettings{'ACTION'} eq 'smbchangepw'){system("/usr/local/bin/sambactrl smbchangepw $sambasettings{'USERNAME'} $sambasettings{'PASSWORD'}");}
-if ($sambasettings{'ACTION'} eq 'smbrestart'){system("/usr/local/bin/sambactrl smbrestart");}
-if ($sambasettings{'ACTION'} eq 'smbstart'){system("/usr/local/bin/sambactrl smbstart");}
-if ($sambasettings{'ACTION'} eq 'smbstop'){system("/usr/local/bin/sambactrl smbstop");}
-if ($sambasettings{'ACTION'} eq 'smbreload'){system("/usr/local/bin/sambactrl smbreload");}
+if ($sambasettings{'ACTION'} eq 'smbuserdisable'){&General::system("/usr/local/bin/sambactrl", "smbuserdisable", "$sambasettings{'NAME'}");}
+if ($sambasettings{'ACTION'} eq 'smbuserenable'){&General::system("/usr/local/bin/sambactrl", "smbuserenable", "$sambasettings{'NAME'}");}
+if ($sambasettings{'ACTION'} eq 'smbuseradd'){&General::system("/usr/local/bin/sambactrl", "smbuseradd", "$sambasettings{'USERNAME'}", "$sambasettings{'PASSWORD'}");}
+if ($sambasettings{'ACTION'} eq 'smbchangepw'){&General::system("/usr/local/bin/sambactrl", "smbchangepw", "$sambasettings{'USERNAME'}", "$sambasettings{'PASSWORD'}");}
+if ($sambasettings{'ACTION'} eq 'smbrestart'){&General::system("/usr/local/bin/sambactrl", "smbrestart");}
+if ($sambasettings{'ACTION'} eq 'smbstart'){&General::system("/usr/local/bin/sambactrl", "smbstart");}
+if ($sambasettings{'ACTION'} eq 'smbstop'){&General::system("/usr/local/bin/sambactrl", "smbstop");}
+if ($sambasettings{'ACTION'} eq 'smbreload'){&General::system("/usr/local/bin/sambactrl", "smbreload");}
if ($sambasettings{'ACTION'} eq 'join') {
$message .= &joindomain($sambasettings{'USERNAME'}, $sambasettings{'PASSWORD'});
}
############################################################################################################################
########################################### Samba Benutzer oder PC l�chen #################################################
-if ($sambasettings{'ACTION'} eq 'userdelete'){system("/usr/local/bin/sambactrl smbuserdelete $sambasettings{'NAME'}");}
+if ($sambasettings{'ACTION'} eq 'userdelete'){&General::system("/usr/local/bin/sambactrl", "smbuserdelete", "$sambasettings{'NAME'}");}
############################################################################################################################
##################################### Umsetzen der Werte von Checkboxen und Dropdowns ######################################
# Write configuration to file
&writeconfiguration();
- system("/usr/local/bin/sambactrl smbreload");
+ &General::system("/usr/local/bin/sambactrl", "smbreload");
}
&General::readhash("${General::swroot}/samba/settings", \%sambasettings);
</tr>
END
- system('/usr/local/bin/sambactrl readsmbpasswd');
+ &General::system("/usr/local/bin/sambactrl", "readsmbpasswd");
open(FILE, "<${General::swroot}/samba/private/smbpasswd") or die "Can't read user file: $!";
my @users = <FILE>;
close(FILE);
- system('/usr/local/bin/sambactrl locksmbpasswd');
+ &General::system("/usr/local/bin/sambactrl", "locksmbpasswd");
my $lines = 0;
foreach $userentry (sort @users) {
close FILE;
-system("/usr/local/bin/sambactrl smbsafeconf");
-system("/usr/local/bin/sambactrl smbreload");
+&General::system("/usr/local/bin/sambactrl", "smbsafeconf");
+&General::system("/usr/local/bin/sambactrl", "smbreload");
}
sub isrunning
END
close FILE;
- system("/usr/local/bin/sambactrl smbsafeconf");
+ &General::system("/usr/local/bin/sambactrl", "smbsafeconf");
}
sub joindomain {
###############################################################################
# #
# IPFire.org - A linux based firewall #
-# Copyright (C) 2005-2010 IPFire Team #
+# Copyright (C) 2005-2021 IPFire Team #
# #
# This program is free software: you can redistribute it and/or modify #
# it under the terms of the GNU General Public License as published by #
my $paramstr=$ENV{QUERY_STRING};
my @param=split(/!/, $paramstr);
if ($param[1] ne ''){
- system("/usr/local/bin/addonctrl @param[0] @param[1] > /dev/null 2>&1");
+ &General::system("/usr/local/bin/addonctrl", "$param[0]", "$param[1]");
}
print <<END
# Generate list of installed addon pak's
opendir (DIR, "/opt/pakfire/db/installed") || die "Cannot opendir /opt/pakfire/db/installed/: $!";
my @pak = sort readdir DIR;
+ closedir(DIR);
+
foreach (@pak){
chomp($_);
next unless (m/^meta-/);
print "<tr>";
$col="bgcolor='$color{'color20'}'";
}
+
print "<td align='left' $col width='31%'>$_</td> ";
my $status = isautorun($_,$col);
print "$status ";
&Header::closepage();
}
-sub isautorun{
- my $cmd = $_[0];
- my $col = $_[1];
+sub isautorun (@) {
+ my ($cmd, $col) = @_;
+
+ # Init directory.
+ my $initdir = "/etc/rc.d/rc3.d/";
+
my $status = "<td align='center' $col></td>";
- my $init = `find /etc/rc.d/rc3.d/S??${cmd} 2>/dev/null`;
- chomp ($init);
- if ($init ne ''){
+
+ # Check if autorun for the given cmd is enabled.
+ if ( &find_init("$cmd", "$initdir") ) {
+ # Adjust status.
$status = "<td align='center' $col><a href='services.cgi?$_!disable'><img alt='$Lang::tr{'deactivate'}' title='$Lang::tr{'deactivate'}' src='/images/on.gif' border='0' width='16' height='16' /></a></td>";
- }
- $init = `find /etc/rc.d/rc3.d/off/S??${cmd} 2>/dev/null`;
- chomp ($init);
- if ($init ne ''){
+ } else {
+ # Adjust status.
$status = "<td align='center' $col><a href='services.cgi?$_!enable'><img alt='$Lang::tr{'activate'}' title='$Lang::tr{'activate'}' src='/images/off.gif' border='0' width='16' height='16' /></a></td>";
}
+ # Return the status.
return $status;
}
-sub isrunning{
- my $cmd = $_[0];
- my $col = $_[1];
+sub find_init (@) {
+ my ($cmd, $dir) = @_;
+
+ # Open given init directory.
+ opendir (INITDIR, "$dir") || die "Cannot opendir $dir: $!";
+
+ # Read-in init files from directory.
+ my @inits = readdir(INITDIR);
+
+ # Close directory handle.
+ closedir(INITDIR);
+
+ # Loop through the directory.
+ foreach my $init (@inits) {
+ # Check if the current processed file belongs to the given command.
+ if ($init =~ /S\d+\d+$cmd\z/) {
+ # Found, return "1" - True.
+ return "1";
+ }
+ }
+
+ # Nothing found, return nothing.
+ return;
+}
+
+sub isrunning (@) {
+ my ($cmd, $col) = @_;
my $status = "<td align='center' bgcolor='${Header::colourred}'><font color='white'><b>$Lang::tr{'stopped'}</b></font></td><td colspan='2' $col></td>";
my $pid = '';
my $testcmd = '';
return $status;
}
-sub isrunningaddon{
- my $cmd = $_[0];
- my $col = $_[1];
+sub isrunningaddon (@) {
+ my ($cmd, $col) = @_;
+
my $status = "<td align='center' bgcolor='${Header::colourred}'><font color='white'><b>$Lang::tr{'stopped'}</b></font></td><td colspan='2' $col></td>";
my $pid = '';
my $testcmd = '';
my $exename;
my @memory;
- my $testcmd = `/usr/local/bin/addonctrl $_ status 2>/dev/null`;
+ my @testcmd = &General::system_output("/usr/local/bin/addonctrl", "$cmd", "status");
+ my $testcmd = @testcmd[0];
if ( $testcmd =~ /is\ running/ && $testcmd !~ /is\ not\ running/){
$status = "<td align='center' bgcolor='${Header::colourgreen}'><font color='white'><b>$Lang::tr{'running'}</b></font></td>";
if ($cgiparams{'ACTION'} eq $Lang::tr{'shutdown'}) {
$death = 1;
&General::log($Lang::tr{'shutting down ipfire'});
- system '/usr/local/bin/ipfirereboot down';
+ &General::system('/usr/local/bin/ipfirereboot', 'down');
} elsif ($cgiparams{'ACTION'} eq $Lang::tr{'reboot'}) {
$rebirth = 1;
&General::log($Lang::tr{'rebooting ipfire'});
- system '/usr/local/bin/ipfirereboot boot';
+ &General::system('/usr/local/bin/ipfirereboot', 'boot');
}
if ($death == 0 && $rebirth == 0) {
# #
###############################################################################
+require '/var/ipfire/general-functions.pl';
+
my $data_last = $ENV{'QUERY_STRING'};
my $rxb_last = 0;
my $txb_last = 0;
}
}
-my $interface = `cat /var/ipfire/red/iface 2>/dev/null`;
-my @data_now = `ip -s link show $interface 2>/dev/null`;
+my $interface = &General::get_red_interface();
+my @data_now = &General::system_output("ip", "-s", "link", "show", "$interface");
my $lastline;
my $rxb_now = 0;
###############################################################################
use strict;
+use POSIX qw(strftime);
# enable only the following on debugging purpose
#use warnings;
if ($timesettings{'ENABLENTP'} eq 'on' && $timesettings{'VALID'} eq 'yes')
{
- system ('/usr/bin/touch', "${General::swroot}/time/enable");
- system ('/usr/local/bin/timectrl enable >/dev/null 2>&1');
+ &General::system('/usr/bin/touch', "${General::swroot}/time/enable");
+ &General::system('/usr/local/bin/timectrl', 'enable');
&General::log($Lang::tr{'ntp syncro enabled'});
unlink "/var/lock/time/counter";
if ($timesettings{'UPDATE_METHOD'} eq 'periodically')
}
if ($timesettings{'ENABLECLNTP'} eq 'on') # DPC added to 1.3.1
{
- system ('/usr/bin/touch', "${General::swroot}/time/allowclients"); # DPC added to 1.3.1
+ &General::system('/usr/bin/touch', "${General::swroot}/time/allowclients"); # DPC added to 1.3.1
&General::log($Lang::tr{'ntpd restarted'}); # DPC added to 1.3.1
} else {
unlink "${General::swroot}/time/allowclients";
unlink "${General::swroot}/time/enable";
unlink "/var/lock/time/settimenow";
unlink "${General::swroot}/time/allowclients"; # DPC added to 1.3.1
- system ('/usr/local/bin/timectrl disable >/dev/null 2>&1');
+ &General::system('/usr/local/bin/timectrl', 'disable');
&General::log($Lang::tr{'ntp syncro disabled'})
}
if (! $errormessage) {
- system ('/usr/local/bin/timectrl restart >/dev/null 2>&1'); # DPC added to 1.3.1
+ &General::system('/usr/local/bin/timectrl', 'restart'); # DPC added to 1.3.1
}
}
$timesettings{'ACTION'} = &Header::cleanhtml ($timesettings{'ACTION'});
if ($timesettings{'ACTION'} eq $Lang::tr{'set time now'} && $timesettings{'ENABLENTP'} eq 'on')
{
- system ('/usr/bin/touch', "/var/lock/time/settimenow");
+ &General::system('/usr/bin/touch', "/var/lock/time/settimenow");
}
&General::readhash("${General::swroot}/time/settings", \%timesettings);
}
unless ($errormessage) {
- $timesettings{'SETMONTH'} = `date +'%m %e %Y %H %M'|cut -c 1-2`;
- $timesettings{'SETDAY'} = `date +'%m %e %Y %H %M'|cut -c 4-5`;
- $timesettings{'SETYEAR'} = `date +'%m %e %Y %H %M'|cut -c 7-10`;
- $timesettings{'SETHOUR'} = `date +'%m %e %Y %H %M'|cut -c 12-13`;
- $timesettings{'SETMINUTES'} = `date +'%m %e %Y %H %M'|cut -c 15-16`;
+ # Get date and time.
+ my $date = strftime("%m %e %Y %H %M", localtime);
+
+ # Split date string into single values.
+ my ($month, $day, $year, $hour, $minute) = split(/ /, $date);
+
+ # Assign values to the hash.
+ $timesettings{'SETMONTH'} = $month;
+ $timesettings{'SETDAY'} = $day;
+ $timesettings{'SETYEAR'} = $year;
+ $timesettings{'SETHOUR'} = $hour;
+ $timesettings{'SETMINUTES'} = $minute;
$_=$timesettings{'SETDAY'};
$timesettings{'SETDAY'}=~ tr/ /0/;
}
# Restart the service.
if (($settings{'TOR_ENABLED'} eq 'on') || ($settings{'TOR_RELAY_ENABLED'} eq 'on')) {
- system("/usr/local/bin/torctrl restart &>/dev/null");
+ &General::system("/usr/local/bin/torctrl", "restart");
} else {
- system("/usr/local/bin/torctrl stop &>/dev/null");
+ &General::system("/usr/local/bin/torctrl", "stop");
}
# Update pid and memory
daemonstats();
if ( $testdata =~ 'enough') {
print"No data for $device !<br>";
} else {
- system("/usr/bin/vnstati -c 1 -s -i $device -o /srv/web/ipfire/html/graphs/vnstat-s-$device.png");
+ # Summary
+ &General::system("/usr/bin/vnstati", "-c", "1", "-s", "-i", "$device", "-o", "/srv/web/ipfire/html/graphs/vnstat-s-$device.png");
+ # 5-minute graphs
+ &General::system("/usr/bin/vnstati", "-c", "1", "-5", "-i", "$device", "-o", "/srv/web/ipfire/html/graphs/vnstat-5-$device.png");
# Hour graph
- system("/usr/bin/vnstati -c 1 -h -i $device -o /srv/web/ipfire/html/graphs/vnstat-h-$device.png");
+ &General::system("/usr/bin/vnstati", "-c", "1", "-h", "-i", "$device", "-o", "/srv/web/ipfire/html/graphs/vnstat-h-$device.png");
# Day graph
- system("/usr/bin/vnstati -c 1 -d -i $device -o /srv/web/ipfire/html/graphs/vnstat-d-$device.png");
+ &General::system("/usr/bin/vnstati", "-c", "1", "-d", "-i", "$device", "-o", "/srv/web/ipfire/html/graphs/vnstat-d-$device.png");
# Month graph
- system("/usr/bin/vnstati -c 1 -m -i $device -o /srv/web/ipfire/html/graphs/vnstat-m-$device.png");
+ &General::system("/usr/bin/vnstati", "-c", "1", "-m", "-i", "$device", "-o", "/srv/web/ipfire/html/graphs/vnstat-m-$device.png");
# Top10 graph
- system("/usr/bin/vnstati -c 1 -t -i $device -o /srv/web/ipfire/html/graphs/vnstat-t-$device.png");
+ &General::system("/usr/bin/vnstati", "-c", "1", "-t", "-i", "$device", "-o", "/srv/web/ipfire/html/graphs/vnstat-t-$device.png");
# Generate HTML-Table with the graphs
print <<END
<table>
<tr><td><img src="/graphs/vnstat-s-$device.png"></td></tr>
+<tr><td><img src="/graphs/vnstat-5-$device.png"></td></tr>
<tr><td><img src="/graphs/vnstat-h-$device.png"></td></tr>
<tr><td><img src="/graphs/vnstat-d-$device.png"></td></tr>
<tr><td><img src="/graphs/vnstat-m-$device.png"></td></tr>
if (($xlratorsettings{'REMOVE_NOSOURCE'} eq 'on') && ($status == $sfNoSource))
{
- if (-e "$repository/$vendorid/$uuid/$updatefile") { system("rm -r $repository/$vendorid/$uuid"); }
+ if (-e "$repository/$vendorid/$uuid/$updatefile") { &General::system("rm", "-r", "$repository/$vendorid/$uuid"); }
}
if (($xlratorsettings{'REMOVE_OUTDATED'} eq 'on') && ($status == $sfOutdated))
{
- if (-e "$repository/$vendorid/$uuid/$updatefile") { system("rm -r $repository/$vendorid/$uuid"); }
+ if (-e "$repository/$vendorid/$uuid/$updatefile") { &General::system("rm", "-r", "$repository/$vendorid/$uuid"); }
}
if ($xlratorsettings{'REMOVE_OBSOLETE'} eq 'on')
{
if (($xlratorsettings{'NOT_ACCESSED_LAST'} eq 'week') && ($lastaccess < (time - 604800)))
{
- if (-e "$repository/$vendorid/$uuid/$updatefile") { system("rm -r $repository/$vendorid/$uuid"); }
+ if (-e "$repository/$vendorid/$uuid/$updatefile") { &General::system("rm", "-r", "$repository/$vendorid/$uuid"); }
}
if (($xlratorsettings{'NOT_ACCESSED_LAST'} eq 'month1') && ($lastaccess < (time - 2505600)))
{
- if (-e "$repository/$vendorid/$uuid/$updatefile") { system("rm -r $repository/$vendorid/$uuid"); }
+ if (-e "$repository/$vendorid/$uuid/$updatefile") { &General::system("rm", "-r", "$repository/$vendorid/$uuid"); }
}
if (($xlratorsettings{'NOT_ACCESSED_LAST'} eq 'month3') && ($lastaccess < (time - 7516800)))
{
- if (-e "$repository/$vendorid/$uuid/$updatefile") { system("rm -r $repository/$vendorid/$uuid"); }
+ if (-e "$repository/$vendorid/$uuid/$updatefile") { &General::system("rm", "-r", "$repository/$vendorid/$uuid"); }
}
if (($xlratorsettings{'NOT_ACCESSED_LAST'} eq 'month6') && ($lastaccess < (time - 15033600)))
{
- if (-e "$repository/$vendorid/$uuid/$updatefile") { system("rm -r $repository/$vendorid/$uuid"); }
+ if (-e "$repository/$vendorid/$uuid/$updatefile") { &General::system("rm", "-r", "$repository/$vendorid/$uuid"); }
}
if (($xlratorsettings{'NOT_ACCESSED_LAST'} eq 'year') && ($lastaccess < (time - 31536000)))
{
- if (-e "$repository/$vendorid/$uuid/$updatefile") { system("rm -r $repository/$vendorid/$uuid"); }
+ if (-e "$repository/$vendorid/$uuid/$updatefile") { &General::system("rm", "-r", "$repository/$vendorid/$uuid"); }
}
}
}
&savesettings;
- system('/usr/local/bin/squidctrl restart >/dev/null 2>&1');
+ &General::system('/usr/local/bin/squidctrl', 'restart');
}
if ($xlratorsettings{'ACTION'} eq $Lang::tr{'updxlrtr remove file'})
unless ($updatefile =~ /^download\//)
{
($vendorid,$uuid,$updatefile) = split('/',$updatefile);
- if (-e "$repository/$vendorid/$uuid/$updatefile") { system("rm -r $repository/$vendorid/$uuid"); }
+ if (-e "$repository/$vendorid/$uuid/$updatefile") { &General::system("rm", "-r", "$repository/$vendorid/$uuid"); }
}
}
&General::readhash("$repository/download/$vendorid/$updatefile.info", \%dlinfo);
$id = &getPID("\\s${General::swroot}/updatexlrator/bin/download\\s.*\\s".quotemeta($dlinfo{'SRCURL'})."\\s\\d\\s\\d\$");
- if ($id) { system("/bin/kill -9 $id"); }
+ if ($id) { &General::system("/bin/kill", "-9", "$id"); }
$id = &getPID("\\s/usr/bin/wget\\s.*\\s".quotemeta($dlinfo{'SRCURL'})."\$");
- if ($id) { system("/bin/kill -9 $id"); }
+ if ($id) { &General::system("/bin/kill", "-9", "$id"); }
- system("rm $repository/download/$vendorid/$updatefile.info");
+ &General::system("rm", "$repository/download/$vendorid/$updatefile.info");
}
if (-e "$repository/download/$vendorid/$updatefile")
{
- system("rm $repository/download/$vendorid/$updatefile");
+ &General::system("rm", "$repository/download/$vendorid/$updatefile");
}
}
if (($xlratorsettings{'ENABLE_AUTOCHECK'} eq 'on') && ($xlratorsettings{'AUTOCHECK_SCHEDULE'} eq 'daily'))
{
- system('/usr/local/bin/updxlratorctrl cron daily >/dev/null 2>&1');
+ &General::system('/usr/local/bin/updxlratorctrl', 'cron', 'daily');
}
if (($xlratorsettings{'ENABLE_AUTOCHECK'} eq 'on') && ($xlratorsettings{'AUTOCHECK_SCHEDULE'} eq 'weekly'))
{
- system('/usr/local/bin/updxlratorctrl cron weekly >/dev/null 2>&1');
+ &General::system('/usr/local/bin/updxlratorctrl', 'cron', 'weekly');
}
if (($xlratorsettings{'ENABLE_AUTOCHECK'} eq 'on') && ($xlratorsettings{'AUTOCHECK_SCHEDULE'} eq 'monthly'))
{
- system('/usr/local/bin/updxlratorctrl cron monthly >/dev/null 2>&1');
+ &General::system('/usr/local/bin/updxlratorctrl', 'cron', 'monthly');
}
# don't save those variable to the settings file,
my $gdesc='';
if (! -d $dbdir) { mkdir("$dbdir"); }
-if (! -e $tcfile) { system("touch $tcfile"); }
-if (! -e $uqfile) { system("touch $uqfile"); }
-if (! -e $sourceurlfile) { system("touch $sourceurlfile"); }
+if (! -e $tcfile) { &General::system("touch", "$tcfile"); }
+if (! -e $uqfile) { &General::system("touch", "$uqfile"); }
+if (! -e $sourceurlfile) { &General::system("touch", "$sourceurlfile"); }
&General::readhash("${General::swroot}/ethernet/settings", \%netsettings);
&General::readhash("${General::swroot}/main/settings", \%mainsettings);
if (!(-d "${General::swroot}/urlfilter/update")) { mkdir("${General::swroot}/urlfilter/update"); }
- my $exitcode = system("/bin/tar --no-same-owner -xzf ${General::swroot}/urlfilter/blacklists.tar.gz -C ${General::swroot}/urlfilter/update");
+ my $exitcode = &General::system("/bin/tar", "--no-same-owner", "-xzf", "${General::swroot}/urlfilter/blacklists.tar.gz", "-C", "${General::swroot}/urlfilter/update");
if ($exitcode > 0)
{
if (-d "${General::swroot}/urlfilter/update/BL")
{
- system("mv ${General::swroot}/urlfilter/update/BL ${General::swroot}/urlfilter/update/blacklists");
+ &General::system("mv", "${General::swroot}/urlfilter/update/BL", "${General::swroot}/urlfilter/update/blacklists");
}
if (-d "${General::swroot}/urlfilter/update/category")
{
- system("mv ${General::swroot}/urlfilter/update/category ${General::swroot}/urlfilter/update/blacklists");
+ &General::system("mv", "${General::swroot}/urlfilter/update/category", "${General::swroot}/urlfilter/update/blacklists");
}
if (!(-d "${General::swroot}/urlfilter/update/blacklists"))
{
$errormessage = $Lang::tr{'urlfilter invalid content'};
} else {
+ # XXX Uses globbing
system("cp -r ${General::swroot}/urlfilter/update/blacklists/* $dbdir");
&readblockcategories;
&writeconfigfile;
$updatemessage = $Lang::tr{'urlfilter upload success'};
- system("${General::swroot}/urlfilter/bin/prebuild.pl &");
- system("logger -t installpackage[urlfilter] \"URL filter blacklist - Blacklist update from local source completed\"");
+ &General::system_background("${General::swroot}/urlfilter/bin/prebuild.pl");
+ &General::system("logger", "-t", "installpackage[urlfilter]", "URL filter blacklist - Blacklist update from local source completed");
}
}
- if (-d "${General::swroot}/urlfilter/update") { system("rm -rf ${General::swroot}/urlfilter/update"); }
+ if (-d "${General::swroot}/urlfilter/update") { &General::system("rm", "-rf", "${General::swroot}/urlfilter/update"); }
if (-e "${General::swroot}/urlfilter/blacklists.tar.gz") { unlink("${General::swroot}/urlfilter/blacklists.tar.gz"); }
if ($errormessage) { goto ERROR; }
}
if ($filtersettings{'ACTION'} eq $Lang::tr{'urlfilter backup'})
{
$blistbackup = ($filtersettings{'ENABLE_FULLBACKUP'} eq 'on') ? "blacklists" : "blacklists/custom";
- if (system("/bin/tar -C ${General::swroot}/urlfilter -czf ${General::swroot}/urlfilter/backup.tar.gz settings timeconst userquota autoupdate $blistbackup"))
+ if (&General::system("/bin/tar", "-C", "${General::swroot}/urlfilter", "-czf", "${General::swroot}/urlfilter/backup.tar.gz", "settings", "timeconst", "userquota", "autoupdate", "$blistbackup"))
{
$errormessage = $Lang::tr{'urlfilter backup error'};
goto ERROR;
$errormessage = $!;
}
- my $exitcode = system("/bin/tar --no-same-owner --preserve-permissions -xzf ${General::swroot}/urlfilter/backup.tar.gz -C ${General::swroot}/urlfilter/restore");
+ my $exitcode = &General::system("/bin/tar", "--no-same-owner", "--preserve-permissions", "-xzf", "${General::swroot}/urlfilter/backup.tar.gz", "-C", "${General::swroot}/urlfilter/restore");
if ($exitcode > 0)
{
$errormessage = $Lang::tr{'urlfilter tar error'};
{
$errormessage = $Lang::tr{'urlfilter invalid restore file'};
} else {
+ # XXX uses globbing
system("cp -rp ${General::swroot}/urlfilter/restore/* ${General::swroot}/urlfilter/");
&readblockcategories;
&readcustomlists;
}
if (-e "${General::swroot}/urlfilter/backup.tar.gz") { unlink("${General::swroot}/urlfilter/backup.tar.gz"); }
- if (-d "${General::swroot}/urlfilter/restore") { system("rm -rf ${General::swroot}/urlfilter/restore"); }
+ if (-d "${General::swroot}/urlfilter/restore") { &General::system("rm", "-rf", "${General::swroot}/urlfilter/restore"); }
if ($errormessage) { goto ERROR; }
}
$filtersettings{'VALID'} = 'yes';
&savesettings;
- system('/usr/local/bin/squidctrl restart >/dev/null 2>&1');
+ &General::system('/usr/local/bin/squidctrl', 'restart');
}
}
$errormessage = $Lang::tr{'urlfilter web proxy service required'};
}
- if (!$errormessage) { system('/usr/local/bin/squidctrl restart >/dev/null 2>&1'); }
+ if (!$errormessage) { &General::system('/usr/local/bin/squidctrl', 'restart'); }
$tcsettings{'TCMODE'}='on';
}
$errormessage = $Lang::tr{'urlfilter web proxy service required'};
}
- if (!$errormessage) { system('/usr/local/bin/squidctrl restart >/dev/null 2>&1'); }
+ if (!$errormessage) { &General::system('/usr/local/bin/squidctrl', 'restart'); }
$uqsettings{'UQMODE'}='on';
}
$errormessage = $!;
} else {
- my $exitcode = system("/bin/tar --no-same-owner --preserve-permissions -xzf $editdir/blacklist.tar.gz -C $editdir");
+ my $exitcode = &General::system("/bin/tar", "--no-same-owner", "--preserve-permissions", "-xzf", "$editdir/blacklist.tar.gz", "-C", "$editdir");
if ($exitcode > 0)
{
$errormessage = $Lang::tr{'urlfilter tar error'};
}
}
- if (-d $editdir) { system("rm -rf $editdir"); }
+ if (-d $editdir) { &General::system("rm", "-rf", "$editdir"); }
}
}
print FILE "$besettings{'BE_EXPRESSIONS'}\n";
close FILE;
- if (system("/bin/tar -C $editdir -czf $editdir/$besettings{'BE_NAME'}.tar.gz blacklists"))
+ if (&General::system("/bin/tar", "-C", "$editdir", "-czf", "$editdir/$besettings{'BE_NAME'}.tar.gz", "blacklists"))
{
$errormessage = $Lang::tr{'urlfilter export error'};
}
while (<FILE>) { print; }
close (FILE);
- if (-d $editdir) { system("rm -rf $editdir"); }
+ if (-d $editdir) { &General::system("rm", "-rf", "$editdir"); }
exit;
}
} else {
print FILE "}\n";
close FILE;
+ # XXX uses globbing
system("rm -f $dbdir/$besettings{'BE_NAME'}/*.db");
- system("/usr/bin/squidGuard -c $editdir/install.conf -C all");
+ &General::system("/usr/bin/squidGuard", "-c", "$editdir/install.conf", "-C", "all");
+ # XXX uses globbing
system("chmod a+w $dbdir/$besettings{'BE_NAME'}/*.db");
&readblockcategories;
&writeconfigfile;
- system('/usr/local/bin/squidctrl restart >/dev/null 2>&1') unless ($besettings{'NORESTART'} eq 'on');
+ &General::system('/usr/local/bin/squidctrl', 'restart') unless ($besettings{'NORESTART'} eq 'on');
- if (-d $editdir) { system("rm -rf $editdir"); }
+ if (-d $editdir) { &General::system("rm", "-rf", "$editdir"); }
} else {
$errormessage = $Lang::tr{'urlfilter category data error'};
}
if (($filtersettings{'ENABLE_AUTOUPDATE'} eq 'on') && ($filtersettings{'UPDATE_SCHEDULE'} eq 'daily'))
{
- system('/usr/local/bin/urlfilterctrl cron daily >/dev/null 2>&1');
+ &General::system('/usr/local/bin/urlfilterctrl', 'cron', 'daily');
}
if (($filtersettings{'ENABLE_AUTOUPDATE'} eq 'on') && ($filtersettings{'UPDATE_SCHEDULE'} eq 'weekly'))
{
- system('/usr/local/bin/urlfilterctrl cron weekly >/dev/null 2>&1');
+ &General::system('/usr/local/bin/urlfilterctrl', 'cron', 'weekly');
}
if (($filtersettings{'ENABLE_AUTOUPDATE'} eq 'on') && ($filtersettings{'UPDATE_SCHEDULE'} eq 'monthly'))
{
- system('/usr/local/bin/urlfilterctrl cron monthly >/dev/null 2>&1');
+ &General::system('/usr/local/bin/urlfilterctrl', 'cron', 'monthly');
}
}
}
{
$errormessage = $Lang::tr{'urlfilter custom url required'};
} else {
- system("${General::swroot}/urlfilter/bin/autoupdate.pl $filtersettings{'CUSTOM_UPDATE_URL'} &");
+ &General::system_background("${General::swroot}/urlfilter/bin/autoupdate.pl", "$filtersettings{'CUSTOM_UPDATE_URL'}");
}
} else {
- system("${General::swroot}/urlfilter/bin/autoupdate.pl $filtersettings{'UPDATE_SOURCE'} &");
+ &General::system_background("${General::swroot}/urlfilter/bin/autoupdate.pl", "$filtersettings{'UPDATE_SOURCE'}");
}
}
delete $filtersettings{'BACKGROUND'};
delete $filtersettings{'UPDATEFILE'};
- system("chown -R nobody.nobody $dbdir");
- system('/usr/bin/squidGuard -C custom/allowed/domains >/dev/null 2>&1');
- system('/usr/bin/squidGuard -C custom/allowed/urls >/dev/null 2>&1');
- system('/usr/bin/squidGuard -C custom/blocked/domains >/dev/null 2>&1');
- system('/usr/bin/squidGuard -C custom/blocked/urls >/dev/null 2>&1 ');
+ &General::system("chown", "-R", "nobody.nobody", "$dbdir");
+ &General::system('/usr/bin/squidGuard', '-C', 'custom/allowed/domains');
+ &General::system('/usr/bin/squidGuard', '-C', 'custom/allowed/urls');
+ &General::system('/usr/bin/squidGuard', '-C', 'custom/blocked/domains');
+ &General::system('/usr/bin/squidGuard', '-C', 'custom/blocked/urls');
&setpermissions ($dbdir);
&General::writehash("${General::swroot}/urlfilter/settings", \%filtersettings);
foreach $category (<$bldir/*>)
{
if (-d $category){
- system("chmod 755 $category &> /dev/null");
+ &General::system("chmod", "755", "$category");
foreach $blacklist (<$category/*>)
{
- if (-f $blacklist) { system("chmod 644 $blacklist &> /dev/null"); }
- if (-d $blacklist) { system("chmod 755 $blacklist &> /dev/null"); }
+ if (-f $blacklist) { &General::system("chmod", "644", "$blacklist"); }
+ if (-d $blacklist) { &General::system("chmod", "755", "$blacklist"); }
}
+ # XXX uses globbing
system("chmod 666 $category/*.db &> /dev/null");
&setpermissions ($category);
}
# #
###############################################################################
+use Data::UUID;
+use MIME::Base64;
use Net::DNS;
use File::Copy;
use File::Temp qw/ tempfile tempdir /;
use strict;
use Sort::Naturally;
+use Sys::Hostname;
# enable only the following on debugging purpose
#use warnings;
#use CGI::Carp 'fatalsToBrowser';
$cgiparams{'ROOTCERT_OU'} = '';
$cgiparams{'ROOTCERT_CITY'} = '';
$cgiparams{'ROOTCERT_STATE'} = '';
+$cgiparams{'RW_ENDPOINT'} = '';
$cgiparams{'RW_NET'} = '';
$cgiparams{'DPD_DELAY'} = '30';
$cgiparams{'DPD_TIMEOUT'} = '120';
$cgiparams{'INTERFACE_MODE'} = "";
$cgiparams{'INTERFACE_ADDRESS'} = "";
$cgiparams{'INTERFACE_MTU'} = 1500;
+$cgiparams{'DNS_SERVERS'} = "";
&Header::getcgihash(\%cgiparams, {'wantfile' => 1, 'filevar' => 'FH'});
+my %APPLE_CIPHERS = (
+ "aes256gcm128" => "AES-256-GCM",
+ "aes128gcm128" => "AES-128-GCM",
+ "aes256" => "AES-256",
+ "aes128" => "AES-128",
+ "3des" => "3DES",
+);
+
+my %APPLE_INTEGRITIES = (
+ "sha2_512" => "SHA2-512",
+ "sha2_384" => "SHA2-384",
+ "sha2_256" => "SHA2-256",
+ "sha1" => "SHA1-160",
+);
+
+my %APPLE_DH_GROUPS = (
+ "768" => 1,
+ "1024" => 2,
+ "1536" => 5,
+ "2048" => 14,
+ "3072" => 15,
+ "4096" => 16,
+ "6144" => 17,
+ "8192" => 18,
+ "e256" => 19,
+ "e384" => 20,
+ "e521" => 21,
+);
+
###
### Useful functions
###
close FILE;
}
if (! -s ">${General::swroot}/certs/index.txt") {
- system ("touch ${General::swroot}/certs/index.txt");
+ open(FILE, ">${General::swroot}/certs/index.txt");
+ close(FILE);
}
if (! -s ">${General::swroot}/certs/index.txt.attr") {
- system ("touch ${General::swroot}/certs/index.txt.attr");
+ open(FILE, ">${General::swroot}/certs/index.txt.attr");
+ close(FILE);
}
unlink ("${General::swroot}/certs/index.txt.old");
unlink ("${General::swroot}/certs/index.txt.attr.old");
###
sub callssl ($) {
my $opt = shift;
- my $retssl = `/usr/bin/openssl $opt 2>&1`; #redirect stderr
+
+ # Split the given argument string into single pieces and assign them to an array.
+ my @opts = split(/ /, $opt);
+
+ my @retssl = &General::system_output("/usr/bin/openssl", @opts); #redirect stderr
my $ret = '';
- foreach my $line (split (/\n/, $retssl)) {
+ foreach my $line (split (/\n/, @retssl)) {
&General::log("ipsec", "$line") if (0); # 1 for verbose logging
$ret .= '<br>'.$line if ( $line =~ /error|unknown/ );
}
###
sub getCNfromcert ($) {
#&General::log("ipsec", "Extracting name from $_[0]...");
- my $temp = `/usr/bin/openssl x509 -text -in $_[0]`;
- $temp =~ /Subject:.*CN = (.*)[\n]/;
- $temp = $1;
- $temp =~ s+/Email+, E+;
- $temp =~ s/ ST = / S = /;
- $temp =~ s/,//g;
- $temp =~ s/\'//g;
+ my @temp = &General::system_output("/usr/bin/openssl", "x509", "-text", "-in", "$_[0]");
+ my $temp;
+
+ foreach my $line (@temp) {
+ if ($line =~ /Subject:.*CN = (.*)[\n]/) {
+ $temp = $1;
+ $temp =~ s+/Email+, E+;
+ $temp =~ s/ ST = / S = /;
+ $temp =~ s/,//g;
+ $temp =~ s/\'//g;
+
+ last;
+ }
+ }
+
return $temp;
}
###
###
sub getsubjectfromcert ($) {
#&General::log("ipsec", "Extracting subject from $_[0]...");
- my $temp = `/usr/bin/openssl x509 -text -in $_[0]`;
- $temp =~ /Subject: (.*)[\n]/;
- $temp = $1;
- $temp =~ s+/Email+, E+;
- $temp =~ s/ ST = / S = /;
+ my @temp = &General::system_output("/usr/bin/openssl", "x509", "-text", "-in", "$_[0]");
+ my $temp;
+
+ foreach my $line (@temp) {
+ if($line =~ /Subject: (.*)[\n]/) {
+ $temp = $1;
+ $temp =~ s+/Email+, E+;
+ $temp =~ s/ ST = / S = /;
+
+ last;
+ }
+ }
+
return $temp;
}
###
print CONF "\tleftfirewall=yes\n";
print CONF "\tlefthostaccess=yes\n";
+
+ # Always send the host certificate
+ if ($lconfighash{$key}[3] eq 'host') {
+ print CONF "\tleftsendcert=always\n";
+ }
+
print CONF "\tright=$lconfighash{$key}[10]\n";
if ($lconfighash{$key}[3] eq 'net') {
# Fragmentation
print CONF "\tfragmentation=yes\n";
+ # DNS Servers for RW
+ if ($lconfighash{$key}[3] eq 'host') {
+ my @servers = split(/\|/, $lconfighash{$key}[39]);
+
+ print CONF "\trightdns=" . join(",", @servers) . "\n";
+ }
+
print CONF "\n";
} #foreach key
if ($cgiparams{'ACTION'} eq $Lang::tr{'save'} && $cgiparams{'TYPE'} eq '' && $cgiparams{'KEY'} eq '') {
&General::readhash("${General::swroot}/vpn/settings", \%vpnsettings);
+ if ($cgiparams{'RW_ENDPOINT'} ne '' && !&General::validip($cgiparams{'RW_ENDPOINT'}) && !&General::validfqdn($cgiparams{'RW_ENDPOINT'})) {
+ $errormessage = $Lang::tr{'ipsec invalid ip address or fqdn for rw endpoint'};
+ goto SAVE_ERROR;
+ }
+
if ( $cgiparams{'RW_NET'} ne '' and !&General::validipandmask($cgiparams{'RW_NET'}) ) {
$errormessage = $Lang::tr{'urlfilter invalid ip or mask error'};
goto SAVE_ERROR;
}
$vpnsettings{'ENABLED'} = $cgiparams{'ENABLED'};
+ $vpnsettings{'RW_ENDPOINT'} = $cgiparams{'RW_ENDPOINT'};
$vpnsettings{'RW_NET'} = $cgiparams{'RW_NET'};
&General::writehash("${General::swroot}/vpn/settings", \%vpnsettings);
&writeipsecfiles();
if (&vpnenabled) {
- system('/usr/local/bin/ipsecctrl', 'S');
+ &General::system('/usr/local/bin/ipsecctrl', 'S');
} else {
- system('/usr/local/bin/ipsecctrl', 'D');
+ &General::system('/usr/local/bin/ipsecctrl', 'D');
}
sleep $sleepDelay;
SAVE_ERROR:
}
&General::writehasharray("${General::swroot}/vpn/config", \%confighash);
&writeipsecfiles();
- system('/usr/local/bin/ipsecctrl', 'R');
+ &General::system('/usr/local/bin/ipsecctrl', 'R');
sleep $sleepDelay;
###
$errormessage = $!;
goto UPLOADCA_ERROR;
}
- my $temp = `/usr/bin/openssl x509 -text -in $filename`;
- if ($temp !~ /CA:TRUE/i) {
+ my @temp = &General::system_output("/usr/bin/openssl", "x509", "-text", "-in", "$filename");
+ if (! grep(/CA:TRUE/, @temp)) {
$errormessage = $Lang::tr{'not a valid ca certificate'};
unlink ($filename);
goto UPLOADCA_ERROR;
$cahash{$key}[1] = &Header::cleanhtml(getsubjectfromcert ("${General::swroot}/ca/$cgiparams{'CA_NAME'}cert.pem"));
&General::writehasharray("${General::swroot}/vpn/caconfig", \%cahash);
- system('/usr/local/bin/ipsecctrl', 'R');
+ &General::system('/usr/local/bin/ipsecctrl', 'R');
sleep $sleepDelay;
UPLOADCA_ERROR:
&Header::openpage($Lang::tr{'ipsec'}, 1, '');
&Header::openbigbox('100%', 'left', '', '');
&Header::openbox('100%', 'left', "$Lang::tr{'ca certificate'}:");
- my $output = `/usr/bin/openssl x509 -text -in ${General::swroot}/ca/$cahash{$cgiparams{'KEY'}}[0]cert.pem`;
- $output = &Header::cleanhtml($output,"y");
- print "<pre>$output</pre>\n";
+ my @output = &General::system_output("/usr/bin/openssl", "x509", "-text", "-in", "${General::swroot}/ca/$cahash{$cgiparams{'KEY'}}[0]cert.pem");
+ @output = &Header::cleanhtml(@output,"y");
+ print "<pre>@output</pre>\n";
&Header::closebox();
print "<div align='center'><a href='/cgi-bin/vpnmain.cgi'>$Lang::tr{'back'}</a></div>";
&Header::closebigbox();
print "Content-Type: application/force-download\n";
print "Content-Type: application/octet-stream\r\n";
print "Content-Disposition: attachment; filename=$cahash{$cgiparams{'KEY'}}[0]cert.pem\r\n\r\n";
- print `/usr/bin/openssl x509 -in ${General::swroot}/ca/$cahash{$cgiparams{'KEY'}}[0]cert.pem`;
+
+ my @cert = &General::system_output("/usr/bin/openssl", "x509", "-in", "${General::swroot}/ca/$cahash{$cgiparams{'KEY'}}[0]cert.pem");
+ print "@cert";
exit(0);
} else {
$errormessage = $Lang::tr{'invalid key'};
if ( -f "${General::swroot}/ca/$cahash{$cgiparams{'KEY'}}[0]cert.pem" ) {
foreach my $key (keys %confighash) {
- my $test = `/usr/bin/openssl verify -CAfile ${General::swroot}/ca/$cahash{$cgiparams{'KEY'}}[0]cert.pem ${General::swroot}/certs/$confighash{$key}[1]cert.pem`;
- if ($test =~ /: OK/) {
+ my @test = &General::system_output("/usr/bin/openssl", "verify", "-CAfile", "${General::swroot}/ca/$cahash{$cgiparams{'KEY'}}[0]cert.pem", "${General::swroot}/certs/$confighash{$key}[1]cert.pem");
+ if (grep(/: OK/, @test)) {
# Delete connection
unlink ("${General::swroot}/certs/$confighash{$key}[1]cert.pem");
unlink ("${General::swroot}/certs/$confighash{$key}[1].p12");
delete $confighash{$key};
&General::writehasharray("${General::swroot}/vpn/config", \%confighash);
&writeipsecfiles();
- system('/usr/local/bin/ipsecctrl', 'D', $key) if (&vpnenabled);
+ &General::system('/usr/local/bin/ipsecctrl', 'D', $key) if (&vpnenabled);
}
}
unlink ("${General::swroot}/ca/$cahash{$cgiparams{'KEY'}}[0]cert.pem");
delete $cahash{$cgiparams{'KEY'}};
&General::writehasharray("${General::swroot}/vpn/caconfig", \%cahash);
- system('/usr/local/bin/ipsecctrl', 'R');
+ &General::system('/usr/local/bin/ipsecctrl', 'R');
sleep $sleepDelay;
} else {
$errormessage = $Lang::tr{'invalid key'};
my $assignedcerts = 0;
if ( -f "${General::swroot}/ca/$cahash{$cgiparams{'KEY'}}[0]cert.pem" ) {
foreach my $key (keys %confighash) {
- my $test = `/usr/bin/openssl verify -CAfile ${General::swroot}/ca/$cahash{$cgiparams{'KEY'}}[0]cert.pem ${General::swroot}/certs/$confighash{$key}[1]cert.pem`;
- if ($test =~ /: OK/) {
+ my @test = &General::system_output("/usr/bin/openssl", "verify", "-CAfile", "${General::swroot}/ca/$cahash{$cgiparams{'KEY'}}[0]cert.pem", "${General::swroot}/certs/$confighash{$key}[1]cert.pem");
+ if (grep(/: OK/, @test)) {
$assignedcerts++;
}
}
unlink ("${General::swroot}/ca/$cahash{$cgiparams{'KEY'}}[0]cert.pem");
delete $cahash{$cgiparams{'KEY'}};
&General::writehasharray("${General::swroot}/vpn/caconfig", \%cahash);
- system('/usr/local/bin/ipsecctrl', 'R');
+ &General::system('/usr/local/bin/ipsecctrl', 'R');
sleep $sleepDelay;
}
} else {
###
} elsif ($cgiparams{'ACTION'} eq $Lang::tr{'show root certificate'} ||
$cgiparams{'ACTION'} eq $Lang::tr{'show host certificate'}) {
- my $output;
+ my @output;
&Header::showhttpheaders();
&Header::openpage($Lang::tr{'ipsec'}, 1, '');
&Header::openbigbox('100%', 'left', '', '');
if ($cgiparams{'ACTION'} eq $Lang::tr{'show root certificate'}) {
&Header::openbox('100%', 'left', "$Lang::tr{'root certificate'}:");
- $output = `/usr/bin/openssl x509 -text -in ${General::swroot}/ca/cacert.pem`;
+ @output = &General::system_output("/usr/bin/openssl", "x509", "-text", "-in", "${General::swroot}/ca/cacert.pem");
} else {
&Header::openbox('100%', 'left', "$Lang::tr{'host certificate'}:");
- $output = `/usr/bin/openssl x509 -text -in ${General::swroot}/certs/hostcert.pem`;
+ @output = &General::system_output("/usr/bin/openssl", "x509", "-text", "-in", "${General::swroot}/certs/hostcert.pem");
}
- $output = &Header::cleanhtml($output,"y");
- print "<pre>$output</pre>\n";
+ @output = &Header::cleanhtml(@output,"y");
+ print "<pre>@output</pre>\n";
&Header::closebox();
print "<div align='center'><a href='/cgi-bin/vpnmain.cgi'>$Lang::tr{'back'}</a></div>";
&Header::closebigbox();
if ( -f "${General::swroot}/ca/cacert.pem" ) {
print "Content-Type: application/force-download\n";
print "Content-Disposition: attachment; filename=cacert.pem\r\n\r\n";
- print `/usr/bin/openssl x509 -in ${General::swroot}/ca/cacert.pem`;
+
+ my @cert = &General::system_output("/usr/bin/openssl", "x509", "-in", "${General::swroot}/ca/cacert.pem");
+ print "@cert";
exit(0);
}
###
if ( -f "${General::swroot}/certs/hostcert.pem" ) {
print "Content-Type: application/force-download\n";
print "Content-Disposition: attachment; filename=hostcert.pem\r\n\r\n";
- print `/usr/bin/openssl x509 -in ${General::swroot}/certs/hostcert.pem`;
+
+ my @cert = &General::system_output("/usr/bin/openssl", "x509", "-in", "${General::swroot}/certs/hostcert.pem");
+ print "@cert";
exit(0);
}
###
&General::log("ipsec", "Creating cacert...");
if (open(STDIN, "-|")) {
my $opt = " req -x509 -sha256 -nodes";
- $opt .= " -days 999999";
+ $opt .= " -days 3650";
$opt .= " -newkey rsa:4096";
$opt .= " -keyout ${General::swroot}/private/cakey.pem";
$opt .= " -out ${General::swroot}/ca/cacert.pem";
print $fh "subjectAltName=$cgiparams{'SUBJECTALTNAME'}" if ($cgiparams{'SUBJECTALTNAME'});
close ($fh);
- my $opt = " ca -md sha256 -days 999999";
+ my $opt = " ca -md sha256 -days 825";
$opt .= " -batch -notext";
$opt .= " -in ${General::swroot}/certs/hostreq.pem";
$opt .= " -out ${General::swroot}/certs/hostcert.pem";
ROOTCERT_SUCCESS:
if (&vpnenabled) {
- system('/usr/local/bin/ipsecctrl', 'S');
+ &General::system('/usr/local/bin/ipsecctrl', 'S');
sleep $sleepDelay;
}
ROOTCERT_SKIP:
print "Content-Type: application/force-download\n";
print "Content-Disposition: attachment; filename=" . $confighash{$cgiparams{'KEY'}}[1] . ".p12\r\n";
print "Content-Type: application/octet-stream\r\n\r\n";
- print `/bin/cat ${General::swroot}/certs/$confighash{$cgiparams{'KEY'}}[1].p12`;
+
+ open(FILE, "${General::swroot}/certs/$confighash{$cgiparams{'KEY'}}[1].p12");
+ my @p12 = <FILE>;
+ close(FILE);
+ print "@file";
+
exit (0);
+# Export Apple profile to browser
+} elsif ($cgiparams{'ACTION'} eq $Lang::tr{'download apple profile'}) {
+ # Read global configuration
+ &General::readhash("${General::swroot}/vpn/settings", \%vpnsettings);
+
+ # Read connections
+ &General::readhasharray("${General::swroot}/vpn/config", \%confighash);
+ my $key = $cgiparams{'KEY'};
+
+ # Create a UUID generator
+ my $uuid = Data::UUID->new();
+
+ my $uuid1 = $uuid->create_str();
+ my $uuid2 = $uuid->create_str();
+
+ my $ca = "";
+ my $ca_uuid = $uuid->create_str();
+
+ my $cert = "";
+ my $cert_uuid = $uuid->create_str();
+
+ # Read and encode the CA & certificate
+ if ($confighash{$key}[4] eq "cert") {
+ my $ca_path = "${General::swroot}/ca/cacert.pem";
+ my $cert_path = "${General::swroot}/certs/$confighash{$key}[1].p12";
+
+ # Read the CA and encode it into Base64
+ open(CA, "<${ca_path}");
+ local($/) = undef; # slurp
+ $ca = MIME::Base64::encode_base64(<CA>);
+ close(CA);
+
+ # Read certificate and encode it into Base64
+ open(CERT, "<${cert_path}");
+ local($/) = undef; # slurp
+ $cert = MIME::Base64::encode_base64(<CERT>);
+ close(CERT);
+ }
+
+ print "Content-Type: application/octet-stream\n";
+ print "Content-Disposition: attachment; filename=" . $confighash{$key}[1] . ".mobileconfig\n";
+ print "\n"; # end headers
+
+ # Use our own FQDN if nothing else is configured
+ my $endpoint = ($vpnsettings{'RW_ENDPOINT'} ne "") ? $vpnsettings{'RW_ENDPOINT'} : &hostname();
+
+ print "<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n";
+ print "<plist version=\"1.0\">\n";
+ print " <dict>\n";
+ print " <key>PayloadDisplayName</key>\n";
+ print " <string>$confighash{$key}[1]</string>\n";
+ print " <key>PayloadIdentifier</key>\n";
+ print " <string>$confighash{$key}[1]</string>\n";
+ print " <key>PayloadUUID</key>\n";
+ print " <string>${uuid1}</string>\n";
+ print " <key>PayloadType</key>\n";
+ print " <string>Configuration</string>\n";
+ print " <key>PayloadVersion</key>\n";
+ print " <integer>1</integer>\n";
+ print " <key>PayloadContent</key>\n";
+ print " <array>\n";
+ print " <dict>\n";
+ print " <key>PayloadIdentifier</key>\n";
+ print " <string>org.example.vpn1.conf1</string>\n";
+ print " <key>PayloadUUID</key>\n";
+ print " <string>${uuid2}</string>\n";
+ print " <key>PayloadType</key>\n";
+ print " <string>com.apple.vpn.managed</string>\n";
+ print " <key>PayloadVersion</key>\n";
+ print " <integer>1</integer>\n";
+ print " <key>UserDefinedName</key>\n";
+ print " <string>$confighash{$key}[1]</string>\n";
+ print " <key>VPNType</key>\n";
+ print " <string>IKEv2</string>\n";
+ print " <key>IKEv2</key>\n";
+ print " <dict>\n";
+ print " <key>RemoteAddress</key>\n";
+ print " <string>$endpoint</string>\n";
+
+ # PFS
+ my $pfs = $confighash{$key}[28];
+ if ($pfs eq "on") {
+ print " <key>EnablePFS</key>\n";
+ print " <true/>\n";
+ }
+
+ # IKE Cipher Suite
+ print " <key>IKESecurityAssociationParameters</key>\n";
+ print " <dict>\n";
+
+ # Encryption
+ foreach my $cipher (split(/\|/,$confighash{$key}[18])) {
+ # Skip all unsupported ciphers
+ next unless (exists $APPLE_CIPHERS{$cipher});
+
+ print " <key>EncryptionAlgorithm</key>\n";
+ print " <string>$APPLE_CIPHERS{$cipher}</string>\n";
+ last;
+ }
+
+ # Integrity
+ foreach my $integrity (split(/\|/,$confighash{$key}[19])) {
+ # Skip all unsupported algorithms
+ next unless (exists $APPLE_INTEGRITIES{$integrity});
+
+ print " <key>IntegrityAlgorithm</key>\n";
+ print " <string>$APPLE_INTEGRITIES{$integrity}</string>\n";
+ last;
+ }
+
+ # Diffie Hellman Groups
+ foreach my $group (split(/\|/,$confighash{$key}[20])) {
+ # Skip all unsupported algorithms
+ next unless (exists $APPLE_DH_GROUPS{$group});
+
+ print " <key>DiffieHellmanGroup</key>\n";
+ print " <string>$APPLE_DH_GROUPS{$group}</string>\n";
+ last;
+ }
+
+ # Lifetime
+ my $lifetime = $confighash{$key}[16] * 60;
+ print " <key>LifeTimeInMinutes</key>\n";
+ print " <integer>$lifetime</integer>\n";
+ print " </dict>\n";
+
+ # ESP Cipher Suite
+ print " <key>ChildSecurityAssociationParameters</key>\n";
+ print " <dict>\n";
+
+ # Encryption
+ foreach my $cipher (split(/\|/,$confighash{$key}[21])) {
+ # Skip all unsupported ciphers
+ next unless (exists $APPLE_CIPHERS{$cipher});
+
+ print " <key>EncryptionAlgorithm</key>\n";
+ print " <string>$APPLE_CIPHERS{$cipher}</string>\n";
+ last;
+ }
+
+ # Integrity
+ foreach my $integrity (split(/\|/,$confighash{$key}[22])) {
+ # Skip all unsupported algorithms
+ next unless (exists $APPLE_INTEGRITIES{$integrity});
+
+ print " <key>IntegrityAlgorithm</key>\n";
+ print " <string>$APPLE_INTEGRITIES{$integrity}</string>\n";
+ last;
+ }
+
+ # Diffie Hellman Groups
+ foreach my $group (split(/\|/,$confighash{$key}[23])) {
+ # Skip all unsupported algorithms
+ next unless (exists $APPLE_DH_GROUPS{$group});
+
+ print " <key>DiffieHellmanGroup</key>\n";
+ print " <string>$APPLE_DH_GROUPS{$group}</string>\n";
+ last;
+ }
+
+ # Lifetime
+ my $lifetime = $confighash{$key}[17] * 60;
+ print " <key>LifeTimeInMinutes</key>\n";
+ print " <integer>$lifetime</integer>\n";
+ print " </dict>\n";
+
+
+ # Left ID
+ if ($confighash{$key}[9]) {
+ my $leftid = $confighash{$key}[9];
+
+ # Strip leading @ from FQDNs
+ if ($leftid =~ m/^@(.*)$/) {
+ $leftid = $1;
+ }
+
+ print " <key>LocalIdentifier</key>\n";
+ print " <string>$leftid</string>\n";
+ }
+
+ # Right ID
+ if ($confighash{$key}[7]) {
+ my $rightid = $confighash{$key}[7];
+
+ # Strip leading @ from FQDNs
+ if ($rightid =~ m/^@(.*)$/) {
+ $rightid = $1;
+ }
+
+ print " <key>RemoteIdentifier</key>\n";
+ print " <string>$rightid</string>\n";
+ }
+
+ if ($confighash{$key}[4] eq "cert") {
+ print " <key>AuthenticationMethod</key>\n";
+ print " <string>Certificate</string>\n";
+
+ print " <key>PayloadCertificateUUID</key>\n";
+ print " <string>${cert_uuid}</string>\n";
+ } else {
+ print " <key>AuthenticationMethod</key>\n";
+ print " <string>SharedSecret</string>\n";
+ print " <key>SharedSecret</key>\n";
+ print " <string>$confighash{$key}[5]</string>\n";
+ }
+
+ print " <key>ExtendedAuthEnabled</key>\n";
+ print " <integer>0</integer>\n";
+
+ # These are not needed, but we provide some default to stop iPhone asking for credentials
+ print " <key>AuthName</key>\n";
+ print " <string>$confighash{$key}[1]</string>\n";
+ print " <key>AuthPassword</key>\n";
+ print " <string></string>\n";
+ print " </dict>\n";
+ print " </dict>\n";
+
+ if ($confighash{$key}[4] eq "cert") {
+ print " <dict>\n";
+ print " <key>PayloadIdentifier</key>\n";
+ print " <string>org.example.vpn1.client</string>\n";
+ print " <key>PayloadDisplayName</key>\n";
+ print " <string>$confighash{$key}[1]</string>\n";
+ print " <key>PayloadUUID</key>\n";
+ print " <string>${cert_uuid}</string>\n";
+ print " <key>PayloadType</key>\n";
+ print " <string>com.apple.security.pkcs12</string>\n";
+ print " <key>PayloadVersion</key>\n";
+ print " <integer>1</integer>\n";
+ print " <key>PayloadContent</key>\n";
+ print " <data>\n";
+
+ foreach (split /\n/,${cert}) {
+ print " $_\n";
+ }
+
+ print " </data>\n";
+ print " </dict>\n";
+
+ print " <dict>\n";
+ print " <key>PayloadIdentifier</key>\n";
+ print " <string>org.example.ca</string>\n";
+ print " <key>PayloadUUID</key>\n";
+ print " <string>${ca_uuid}</string>\n";
+ print " <key>PayloadType</key>\n";
+ print " <string>com.apple.security.root</string>\n";
+ print " <key>PayloadVersion</key>\n";
+ print " <integer>1</integer>\n";
+ print " <key>PayloadContent</key>\n";
+ print " <data>\n";
+
+ foreach (split /\n/,${ca}) {
+ print " $_\n";
+ }
+
+ print " </data>\n";
+ print " </dict>\n";
+ }
+
+ print " </array>\n";
+ print " </dict>\n";
+ print "</plist>\n";
+
+ # Done
+ exit(0);
###
### Display certificate
###
&Header::openpage($Lang::tr{'ipsec'}, 1, '');
&Header::openbigbox('100%', 'left', '', '');
&Header::openbox('100%', 'left', "$Lang::tr{'cert'}:");
- my $output = `/usr/bin/openssl x509 -text -in ${General::swroot}/certs/$confighash{$cgiparams{'KEY'}}[1]cert.pem`;
- $output = &Header::cleanhtml($output,"y");
- print "<pre>$output</pre>\n";
+ my @output = &General::system_output("/usr/bin/openssl", "x509", "-text", "-in", "${General::swroot}/certs/$confighash{$cgiparams{'KEY'}}[1]cert.pem");
+ @output = &Header::cleanhtml(@output,"y");
+ print "<pre>@output</pre>\n";
&Header::closebox();
print "<div align='center'><a href='/cgi-bin/vpnmain.cgi'>$Lang::tr{'back'}</a></div>";
&Header::closebigbox();
if ( -f "${General::swroot}/certs/$confighash{$cgiparams{'KEY'}}[1]cert.pem") {
print "Content-Type: application/force-download\n";
print "Content-Disposition: attachment; filename=" . $confighash{$cgiparams{'KEY'}}[1] . "cert.pem\n\n";
- print `/bin/cat ${General::swroot}/certs/$confighash{$cgiparams{'KEY'}}[1]cert.pem`;
+
+ open(FILE, "${General::swroot}/certs/$confighash{$cgiparams{'KEY'}}[1]cert.pem");
+ my @pem = <FILE>;
+ close(FILE);
+ print "@pem";
+
exit (0);
}
$confighash{$cgiparams{'KEY'}}[0] = 'on';
&General::writehasharray("${General::swroot}/vpn/config", \%confighash);
&writeipsecfiles();
- system('/usr/local/bin/ipsecctrl', 'S', $cgiparams{'KEY'}) if (&vpnenabled);
+ &General::system('/usr/local/bin/ipsecctrl', 'S', $cgiparams{'KEY'}) if (&vpnenabled);
} else {
$confighash{$cgiparams{'KEY'}}[0] = 'off';
&General::writehasharray("${General::swroot}/vpn/config", \%confighash);
&writeipsecfiles();
- system('/usr/local/bin/ipsecctrl', 'D', $cgiparams{'KEY'}) if (&vpnenabled);
+ &General::system('/usr/local/bin/ipsecctrl', 'D', $cgiparams{'KEY'}) if (&vpnenabled);
}
sleep $sleepDelay;
} else {
if ($confighash{$cgiparams{'KEY'}}) {
if (&vpnenabled) {
- system('/usr/local/bin/ipsecctrl', 'S', $cgiparams{'KEY'});
+ &General::system('/usr/local/bin/ipsecctrl', 'S', $cgiparams{'KEY'});
sleep $sleepDelay;
}
} else {
delete $confighash{$cgiparams{'KEY'}};
&General::writehasharray("${General::swroot}/vpn/config", \%confighash);
&writeipsecfiles();
- system('/usr/local/bin/ipsecctrl', 'D', $cgiparams{'KEY'}) if (&vpnenabled);
+ &General::system('/usr/local/bin/ipsecctrl', 'D', $cgiparams{'KEY'}) if (&vpnenabled);
} else {
$errormessage = $Lang::tr{'invalid key'};
}
$cgiparams{'INTERFACE_MODE'} = $confighash{$cgiparams{'KEY'}}[36];
$cgiparams{'INTERFACE_ADDRESS'} = $confighash{$cgiparams{'KEY'}}[37];
$cgiparams{'INTERFACE_MTU'} = $confighash{$cgiparams{'KEY'}}[38];
+ $cgiparams{'DNS_SERVERS'} = $confighash{$cgiparams{'KEY'}}[39];
if (!$cgiparams{'DPD_DELAY'}) {
$cgiparams{'DPD_DELAY'} = 30;
}
}
+ if ($cgiparams{'TYPE'} eq 'host') {
+ my @servers = split(",", $cgiparams{'DNS_SERVERS'});
+ foreach my $server (@servers) {
+ unless (&Network::check_ip_address($server)) {
+ $errormessage = $Lang::tr{'ipsec dns server address is invalid'};
+ goto VPNCONF_ERROR;
+ }
+ }
+ }
+
if ($cgiparams{'ENABLED'} !~ /^(on|off)$/) {
$errormessage = $Lang::tr{'invalid input'};
goto VPNCONF_ERROR;
# Sign the certificate request
&General::log("ipsec", "Signing your cert $cgiparams{'NAME'}...");
- my $opt = " ca -md sha256 -days 999999";
+ my $opt = " ca -md sha256 -days 825";
$opt .= " -batch -notext";
$opt .= " -in $filename";
$opt .= " -out ${General::swroot}/certs/$cgiparams{'NAME'}cert.pem";
unshift (@names,$cahash{$x}[0]);
}
if ($casubject) { # a new one!
- my $temp = `/usr/bin/openssl x509 -text -in /tmp/newcacert`;
- if ($temp !~ /CA:TRUE/i) {
+ my @temp = &General::system_output("/usr/bin/openssl", "x509", "-text", "-in", "/tmp/newcacert");
+ if (! grep(/CA:TRUE/, @temp)) {
$errormessage = $Lang::tr{'not a valid ca certificate'};
} else {
#compute a name for it
$cahash{$key}[0] = $cgiparams{'CA_NAME'};
$cahash{$key}[1] = $casubject;
&General::writehasharray("${General::swroot}/vpn/caconfig", \%cahash);
- system('/usr/local/bin/ipsecctrl', 'R');
+ &General::system('/usr/local/bin/ipsecctrl', 'R');
}
}
}
# Verify the certificate has a valid CA and move it
&General::log("ipsec", "Validating imported cert against our known CA...");
my $validca = 1; #assume ok
- my $test = `/usr/bin/openssl verify -CAfile ${General::swroot}/ca/cacert.pem $filename`;
- if ($test !~ /: OK/) {
+ my @test = &General::system_output("/usr/bin/openssl", "verify", "-CAfile", "${General::swroot}/ca/cacert.pem", "$filename");
+ if (! grep(/: OK/, @test)) {
my $validca = 0;
foreach my $key (keys %cahash) {
- $test = `/usr/bin/openssl verify -CAfile ${General::swroot}/ca/$cahash{$key}[0]cert.pem $filename`;
- if ($test =~ /: OK/) {
+ @test = &General::system_output("/usr/bin/openssl", "verify", "-CAfile", "${General::swroot}/ca/$cahash{$key}[0]cert.pem", "$filename");
+ if (grep(/: OK/, @test)) {
$validca = 1;
last;
}
print $fh "subjectAltName=$cgiparams{'SUBJECTALTNAME'}" if ($cgiparams{'SUBJECTALTNAME'});
close ($fh);
- my $opt = " ca -md sha256 -days 999999 -batch -notext";
+ my $opt = " ca -md sha256 -days 825 -batch -notext";
$opt .= " -in ${General::swroot}/certs/$cgiparams{'NAME'}req.pem";
$opt .= " -out ${General::swroot}/certs/$cgiparams{'NAME'}cert.pem";
$opt .= " -extfile $v3extname";
my $key = $cgiparams{'KEY'};
if (! $key) {
$key = &General::findhasharraykey (\%confighash);
- foreach my $i (0 .. 38) { $confighash{$key}[$i] = "";}
+ foreach my $i (0 .. 39) { $confighash{$key}[$i] = "";}
}
$confighash{$key}[0] = $cgiparams{'ENABLED'};
$confighash{$key}[1] = $cgiparams{'NAME'};
$confighash{$key}[36] = $cgiparams{'INTERFACE_MODE'};
$confighash{$key}[37] = $cgiparams{'INTERFACE_ADDRESS'};
$confighash{$key}[38] = $cgiparams{'INTERFACE_MTU'};
+ $confighash{$key}[39] = join("|", split(",", $cgiparams{'DNS_SERVERS'}));
# free unused fields!
$confighash{$key}[15] = 'off';
&General::writehasharray("${General::swroot}/vpn/config", \%confighash);
&writeipsecfiles();
if (&vpnenabled) {
- system('/usr/local/bin/ipsecctrl', 'S', $key);
+ &General::system('/usr/local/bin/ipsecctrl', 'S', $key);
sleep $sleepDelay;
}
if ($cgiparams{'EDIT_ADVANCED'} eq 'on') {
#use default advanced value
$cgiparams{'IKE_ENCRYPTION'} = 'chacha20poly1305|aes256gcm128|aes256gcm96|aes256gcm64|aes256|aes192gcm128|aes192gcm96|aes192gcm64|aes192|aes128gcm128|aes128gcm96|aes128gcm64|aes128'; #[18];
$cgiparams{'IKE_INTEGRITY'} = 'sha2_512|sha2_256'; #[19];
- $cgiparams{'IKE_GROUPTYPE'} = 'curve25519|curve448|4096|3072|2048'; #[20];
+ $cgiparams{'IKE_GROUPTYPE'} = 'curve448|curve25519|4096|3072|2048'; #[20];
$cgiparams{'IKE_LIFETIME'} = '3'; #[16];
$cgiparams{'ESP_ENCRYPTION'} = 'chacha20poly1305|aes256gcm128|aes256gcm96|aes256gcm64|aes256|aes192gcm128|aes192gcm96|aes192gcm64|aes192|aes128gcm128|aes128gcm96|aes128gcm64|aes128'; #[21];
$cgiparams{'ESP_INTEGRITY'} = 'sha2_512|sha2_256'; #[22];
- $cgiparams{'ESP_GROUPTYPE'} = 'curve25519|curve448|4096|3072|2048'; #[23];
+ $cgiparams{'ESP_GROUPTYPE'} = 'curve448|curve25519|4096|3072|2048'; #[23];
$cgiparams{'ESP_KEYLIFE'} = '1'; #[17];
$cgiparams{'COMPRESSION'} = 'off'; #[13];
$cgiparams{'ONLY_PROPOSED'} = 'on'; #[24];
$cgiparams{'INTERFACE_MODE'} = "";
$cgiparams{'INTERFACE_ADDRESS'} = "";
$cgiparams{'INTERFACE_MTU'} = 1500;
+ $cgiparams{'DNS_SERVERS'} = "";
}
VPNCONF_ERROR:
EOF
}
- my $disabled;
- my $blob;
- if ($cgiparams{'TYPE'} eq 'host') {
- $disabled = "disabled='disabled'";
- } elsif ($cgiparams{'TYPE'} eq 'net') {
+ my $blob = "";
+ if ($cgiparams{'TYPE'} eq 'net') {
$blob = "<img src='/blob.gif' alt='*' />";
};
my @remote_subnets = split(/\|/, $cgiparams{'REMOTE_SUBNET'});
my $remote_subnets = join(",", @remote_subnets);
+ my @dns_servers = split(/\|/, $cgiparams{'DNS_SERVERS'});
+ my $dns_servers = join(",", @dns_servers);
+
print <<END;
<tr>
<td width='20%'>$Lang::tr{'enabled'}</td>
<td width='30%'>
<input type='text' name='LOCAL_SUBNET' value='$local_subnets' size="25" />
</td>
- <td class='boldbase' nowrap='nowrap' width='20%'>$Lang::tr{'remote subnet'} $blob</td>
+END
+
+ if ($cgiparams{'TYPE'} eq "net") {
+ print <<END;
+ <td class='boldbase' nowrap='nowrap' width='20%'>$Lang::tr{'remote subnet'} <img src='/blob.gif' alt='*' /></td>
<td width='30%'>
- <input $disabled type='text' name='REMOTE_SUBNET' value='$remote_subnets' size="25" />
+ <input type='text' name='REMOTE_SUBNET' value='$remote_subnets' size="25" />
</td>
+END
+
+ } elsif ($cgiparams{'TYPE'} eq "host") {
+ print <<END;
+ <td class='boldbase' nowrap='nowrap' width='20%'>$Lang::tr{'dns servers'}:</td>
+ <td width='30%'>
+ <input type='text' name='DNS_SERVERS' value='$dns_servers' size="25" />
+ </td>
+END
+ }
+
+ print <<END;
</tr>
<tr>
<td class='boldbase' width='20%'>$Lang::tr{'vpn local id'}:</td>
goto ADVANCED_ERROR;
}
foreach my $val (@temp) {
- if ($val !~ /^(curve25519|curve448|e521|e384|e256|e224|e192|e512bp|e384bp|e256bp|e224bp|768|1024|1536|2048|3072|4096|6144|8192)$/) {
+ if ($val !~ /^(curve448|curve25519|e521|e384|e256|e224|e192|e512bp|e384bp|e256bp|e224bp|768|1024|1536|2048|3072|4096|6144|8192)$/) {
$errormessage = $Lang::tr{'invalid input'};
goto ADVANCED_ERROR;
}
goto ADVANCED_ERROR;
}
foreach my $val (@temp) {
- if ($val !~ /^(curve25519|curve448|e521|e384|e256|e224|e192|e512bp|e384bp|e256bp|e224bp|768|1024|1536|2048|3072|4096|6144|8192|none)$/) {
+ if ($val !~ /^(curve448|curve25519|e521|e384|e256|e224|e192|e512bp|e384bp|e256bp|e224bp|768|1024|1536|2048|3072|4096|6144|8192|none)$/) {
$errormessage = $Lang::tr{'invalid input'};
goto ADVANCED_ERROR;
}
&General::writehasharray("${General::swroot}/vpn/config", \%confighash);
&writeipsecfiles();
if (&vpnenabled) {
- system('/usr/local/bin/ipsecctrl', 'S', $cgiparams{'KEY'});
+ &General::system('/usr/local/bin/ipsecctrl', 'S', $cgiparams{'KEY'});
sleep $sleepDelay;
}
goto ADVANCED_END;
$cgiparams{'INTERFACE_MODE'} = $confighash{$cgiparams{'KEY'}}[36];
$cgiparams{'INTERFACE_ADDRESS'} = $confighash{$cgiparams{'KEY'}}[37];
$cgiparams{'INTERFACE_MTU'} = $confighash{$cgiparams{'KEY'}}[38];
+ $cgiparams{'DNS_SERVERS'} = $confighash{$cgiparams{'KEY'}}[39];
if (!$cgiparams{'DPD_DELAY'}) {
$cgiparams{'DPD_DELAY'} = 30;
$checked{'IKE_INTEGRITY'}{'aesxcbc'} = '';
@temp = split('\|', $cgiparams{'IKE_INTEGRITY'});
foreach my $key (@temp) {$checked{'IKE_INTEGRITY'}{$key} = "selected='selected'"; }
- $checked{'IKE_GROUPTYPE'}{'curve25519'} = '';
$checked{'IKE_GROUPTYPE'}{'curve448'} = '';
+ $checked{'IKE_GROUPTYPE'}{'curve25519'} = '';
$checked{'IKE_GROUPTYPE'}{'768'} = '';
$checked{'IKE_GROUPTYPE'}{'1024'} = '';
$checked{'IKE_GROUPTYPE'}{'1536'} = '';
$checked{'ESP_INTEGRITY'}{'aesxcbc'} = '';
@temp = split('\|', $cgiparams{'ESP_INTEGRITY'});
foreach my $key (@temp) {$checked{'ESP_INTEGRITY'}{$key} = "selected='selected'"; }
- $checked{'ESP_GROUPTYPE'}{'curve25519'} = '';
$checked{'ESP_GROUPTYPE'}{'curve448'} = '';
+ $checked{'ESP_GROUPTYPE'}{'curve25519'} = '';
$checked{'ESP_GROUPTYPE'}{'768'} = '';
$checked{'ESP_GROUPTYPE'}{'1024'} = '';
$checked{'ESP_GROUPTYPE'}{'1536'} = '';
<td class='boldbase' width="15%">$Lang::tr{'grouptype'}</td>
<td class='boldbase'>
<select name='IKE_GROUPTYPE' multiple='multiple' size='6' style='width: 100%'>
- <option value='curve25519' $checked{'IKE_GROUPTYPE'}{'curve25519'}>Curve 25519 (256 bit)</option>
<option value='curve448' $checked{'IKE_GROUPTYPE'}{'curve448'}>Curve 448 (224 bit)</option>
+ <option value='curve25519' $checked{'IKE_GROUPTYPE'}{'curve25519'}>Curve 25519 (128 bit)</option>
<option value='e521' $checked{'IKE_GROUPTYPE'}{'e521'}>ECP-521 (NIST)</option>
<option value='e512bp' $checked{'IKE_GROUPTYPE'}{'e512bp'}>ECP-512 (Brainpool)</option>
<option value='e384' $checked{'IKE_GROUPTYPE'}{'e384'}>ECP-384 (NIST)</option>
</td>
<td class='boldbase'>
<select name='ESP_GROUPTYPE' multiple='multiple' size='6' style='width: 100%'>
- <option value='curve25519' $checked{'ESP_GROUPTYPE'}{'curve25519'}>Curve 25519 (256 bit)</option>
<option value='curve448' $checked{'ESP_GROUPTYPE'}{'curve448'}>Curve 448 (224 bit)</option>
+ <option value='curve25519' $checked{'ESP_GROUPTYPE'}{'curve25519'}>Curve 25519 (128 bit)</option>
<option value='e521' $checked{'ESP_GROUPTYPE'}{'e521'}>ECP-521 (NIST)</option>
<option value='e512bp' $checked{'ESP_GROUPTYPE'}{'e512bp'}>ECP-512 (Brainpool)</option>
<option value='e384' $checked{'ESP_GROUPTYPE'}{'e384'}>ECP-384 (NIST)</option>
&General::readhasharray("${General::swroot}/vpn/config", \%confighash);
$cgiparams{'CA_NAME'} = '';
- my @status = `/usr/local/bin/ipsecctrl I 2>/dev/null`;
+ my @status = &General::system_output("/usr/local/bin/ipsecctrl", "I");
$checked{'ENABLED'} = $cgiparams{'ENABLED'} eq 'on' ? "checked='checked'" : '';
<input type='checkbox' name='ENABLED' $checked{'ENABLED'} />
</td>
</tr>
+ <tr>
+ <td class='base' nowrap='nowrap' width="60%">$Lang::tr{'ipsec roadwarrior endpoint'}:</td>
+ <td width="40%"><input type='text' name='RW_ENDPOINT' value='$cgiparams{'RW_ENDPOINT'}' /></td>
+ </tr>
<tr>
<td class='base' nowrap='nowrap' width="60%">$Lang::tr{'host to net vpn'}:</td>
<td width="40%"><input type='text' name='RW_NET' value='$cgiparams{'RW_NET'}' /></td>
<th width='23%' class='boldbase' align='center'><b>$Lang::tr{'common name'}</b></th>
<th width='30%' class='boldbase' align='center'><b>$Lang::tr{'remark'}</b></th>
<th width='10%' class='boldbase' align='center'><b>$Lang::tr{'status'}</b></th>
- <th class='boldbase' align='center' colspan='6'><b>$Lang::tr{'action'}</b></th>
+ <th class='boldbase' align='center' colspan='7'><b>$Lang::tr{'action'}</b></th>
</tr>
END
;
} else {
print "<td width='2%' $col> </td>";
}
+
+ # Apple Profile
+ if ($confighash{$key}[3] eq 'host') {
+ print <<END;
+ <td align='center' $col>
+ <form method='post' action='$ENV{'SCRIPT_NAME'}'>
+ <input type='image' name='$Lang::tr{'download apple profile'}' src='/images/apple.png' alt='$Lang::tr{'download apple profile'}' title='$Lang::tr{'download apple profile'}' />
+ <input type='hidden' name='ACTION' value='$Lang::tr{'download apple profile'}' />
+ <input type='hidden' name='KEY' value='$key' />
+ </form>
+ </td>
+END
+ } else {
+ print "<td width='2%' $col> </td>";
+ }
+
print <<END
<td align='center' $col>
<form method='post' action='$ENV{'SCRIPT_NAME'}'>
if ($grp =~ m/^e(.*)$/) {
push(@algo, "ecp$1");
- } elsif ($grp =~ m/curve(25519|448)/) {
+ } elsif ($grp =~ m/curve(448|25519)/) {
push(@algo, "$grp");
} else {
push(@algo, "modp$grp");
# noop
} elsif ($grp =~ m/^e(.*)$/) {
push(@algo, "ecp$1");
- } elsif ($grp =~ m/curve(25519|448)/) {
+ } elsif ($grp =~ m/curve(448|25519)/) {
push(@algo, "$grp");
} else {
push(@algo, "modp$grp");
undef %cgiparams;
- system("/usr/sbin/etherwake -i $iface $mac");
+ &General::system("/usr/sbin/etherwake", "-i", "$iface", "$mac");
# make a box with info, 'refresh' to normal screen after 5 seconds
if ( $refresh eq 'yes' )
((defined($proxysettings{'SUPERVISOR_PASSWORD'})) && ($proxysettings{'SUPERVISOR_PASSWORD'} eq '')))
{
&write_acl;
- system("/usr/local/bin/squidctrl restart >/dev/null 2>&1");
+ &General::system("/usr/local/bin/squidctrl", "restart");
}
}
close(FILE);
undef %cgiparams;
&General::log($Lang::tr{'wireless config added'});
- system('/usr/local/bin/wirelessctrl');
+ &General::system('/usr/local/bin/wirelessctrl');
}
ADDEXIT:
}
}
}
&General::log($Lang::tr{'wireless config changed'});
- system('/usr/local/bin/wirelessctrl');
+ &General::system('/usr/local/bin/wirelessctrl');
}
if ($cgiparams{'ACTION'} eq 'remove' || $cgiparams{'ACTION'} eq 'toggle')
}
close(FILE);
&General::log($Lang::tr{'wireless config changed'});
- system('/usr/local/bin/wirelessctrl');
+ &General::system('/usr/local/bin/wirelessctrl');
}
close (HOSTFILE);
my $connstate = &Header::connectionstatus();
-my @arp = `/sbin/arp -n`;
+my @arp = &General::system_output("/sbin/arp", "-n");
shift @arp;
foreach my $line (@current)
}
sub BuildConfiguration() {
- system("/usr/local/bin/wirelessclient restart");
+ &General::system("/usr/local/bin/wirelessclient", "restart");
}
sub NextID() {
&General::writehash("/var/ipfire/wlanap/settings", \%wlanapsettings);
&WriteConfig_hostapd();
- system("/usr/local/bin/wlanapctrl restart >/dev/null 2>&1");
+ &General::system("/usr/local/bin/wlanapctrl", "restart");
pid();
}
}elsif ( $wlanapsettings{'ACTION'} eq "$Lang::tr{'wlanap interface'}" ){
&General::writehash("/var/ipfire/wlanap/settings", \%wlanapsettings);
}elsif ( ($wlanapsettings{'ACTION'} eq "$Lang::tr{'start'}") && ($memory == 0) ){
- system("/usr/local/bin/wlanapctrl start >/dev/null 2>&1");
+ &General::system("/usr/local/bin/wlanapctrl", "start");
pid();
}elsif ( $wlanapsettings{'ACTION'} eq "$Lang::tr{'stop'}" ){
- system("/usr/local/bin/wlanapctrl stop >/dev/null 2>&1");
+ &General::system("/usr/local/bin/wlanapctrl", "stop");
$memory=0;
}
'advproxy errmsg wpad invalid ip or mask' => 'WPAD: Ungültige IP oder Subnetz für ausgenommenes IP-Subnetz',
'advproxy error design' => 'Design der Fehlermeldungen',
'advproxy error language' => 'Sprache der Fehlermeldungen',
-'advproxy fake referer' => 'Gefälschter Referer für externe Webseiten',
-'advproxy fake useragent' => 'Gefälschter User-Agent für externe Webseiten',
'advproxy friday' => 'Fr',
'advproxy from' => 'Von',
'advproxy group access control' => 'Gruppenbasierte Zugriffskontrolle',
'advproxy off' => 'Proxy aus',
'advproxy offline mode' => 'Aktiviere Offline-Modus',
'advproxy on' => 'Proxy ein',
-'advproxy privacy' => 'Datenschutz',
'advproxy proxy port' => 'Proxyport',
'advproxy proxy port transparent' => 'Transparenter Port',
'advproxy ram cache size' => 'Cachegröße im Arbeitsspeicher (MB)',
'alt vpn' => 'VPNs',
'and' => 'Und',
'apcupsd' => 'APC-UPS Status',
-'application layer gateways' => 'Application-Layer-Gateways',
'apply' => 'Jetzt anwenden',
'april' => 'April',
'archive not exist' => 'Konfigurationsarchiv existiert nicht',
'authentication' => 'Authentifizierung:',
'automatic' => 'Automatisch',
'autonomous system' => 'Autonomes System',
+'available' => 'verfügbar',
'available updates' => 'Verfügbare Updates',
'average' => 'Durchschnitt',
'avoid dod' => 'Benutzen Sie diese Option nicht mit Dial on Demand! Wird hauptsächlich verwendet, wenn Ihr IPFire sich hinter einem Router befindet. Ihre ROTE IP muss sich innerhalb eines der drei reservierten Netzwerkbereiche befinden z.B. 10/8, 172.16/12, 192.168/16.',
'every' => 'Alle',
'exampel' => 'Beispiel',
'exclude logfiles' => 'ohne Protokolldateien',
-'excluding buffers and cache' => '-/+ Puffer/Zwischenspeicher',
'expected' => 'Erwartet',
'expertoptions' => 'Expertenoptionen',
'expires' => 'Ablaufdatum',
'advproxy errmsg wpad invalid ip or mask' => 'WPAD: Invalid IP or subnet for excluded IP subnet',
'advproxy error design' => 'Error messages design',
'advproxy error language' => 'Error messages language',
-'advproxy fake referer' => 'Fake referer submitted to external sites',
-'advproxy fake useragent' => 'Fake useragent submitted to external sites',
'advproxy friday' => 'Fri',
'advproxy from' => 'From',
'advproxy group access control' => 'Group based access control',
'advproxy off' => 'Proxy off',
'advproxy offline mode' => 'Enable offline mode',
'advproxy on' => 'Proxy on',
-'advproxy privacy' => 'Privacy',
'advproxy proxy port' => 'Proxy port',
'advproxy proxy port transparent' => 'Transparent port',
'advproxy ram cache size' => 'Memory cache size (MB)',
'and' => 'And',
'ansi t1.483' => 'TO BE REMOVED',
'apcupsd' => 'APC-UPS status',
-'application layer gateways' => 'Application Layer Gateways',
'apply' => 'Apply now',
'april' => 'April',
'archive not exist' => 'Configuration archive does not exist',
'authentication' => 'Authentication:',
'automatic' => 'Automatic',
'autonomous system' => 'Autonomous System',
+'available' => 'available',
'available updates' => 'Available updates',
'average' => 'Average',
'avoid dod' => 'Do not use this option with Dial on Demand! Mainly used if your IPFire is behind a router. Your RED IP must be inside one of the three reserved network numbers e.g. 10/8, 172.16/12, 192.168/16',
'downlink speed' => 'Downlink speed (kbit/sec)',
'downlink std class' => 'downlink standard class',
'download' => 'download',
+'download apple profile' => 'Download Apple Configuration Profile',
'download ca certificate' => 'Download CA certificate',
'download certificate' => 'Download file',
'download dh parameter' => 'Download Diffie-Hellman parameters',
'every' => 'Every',
'exampel' => 'example',
'exclude logfiles' => 'Exclude logfiles',
-'excluding buffers and cache' => '-/+ buffers/cache',
'expected' => 'Expected',
'expertoptions' => 'Expert options',
'expires' => 'Expires',
'ipinfo' => 'IP info',
'ipsec' => 'IPsec',
'ipsec connection' => 'IPsec Connection',
+'ipsec dns server address is invalid' => 'Invalid DNS server IP address(es)',
'ipsec interface mode gre' => 'GRE',
'ipsec interface mode none' => '- None (Default) -',
'ipsec interface mode vti' => 'VTI',
+'ipsec invalid ip address or fqdn for rw endpoint' => 'Invalid IP address or FQDN for Host-to-Net Endpoint',
'ipsec mode transport' => 'Transport',
'ipsec mode tunnel' => 'Tunnel',
'ipsec network' => 'IPsec network',
'ipsec no connections' => 'No active IPsec connections',
+'ipsec roadwarrior endpoint' => 'Host-to-Net Endpoint',
'ipsec routing table entries' => 'IPsec Routing Table Entries',
'ipsec settings' => 'IPsec Settings',
'iptable rules' => 'IPTable rules',
'advproxy errmsg time restriction' => 'Restricción de tiempo no válida',
'advproxy error design' => 'Diseño de mensajes de error',
'advproxy error language' => 'Idioma de Mensajes de error',
-'advproxy fake referer' => 'Referer falso enviado a sitios externos',
-'advproxy fake useragent' => 'Useragent falso enviado a sitios externos',
'advproxy friday' => 'Vie',
'advproxy from' => 'De',
'advproxy hdd cache size' => 'Tamaño del caché en disco duro (MB)',
'advproxy off' => 'Proxy Apagado',
'advproxy offline mode' => 'Activar modo fuera de línea',
'advproxy on' => 'Proxy Encendido',
-'advproxy privacy' => 'Privacidad',
'advproxy proxy port' => 'Puerto del proxy',
'advproxy ram cache size' => 'Tamaño de memoria caché',
'advproxy redirector children' => 'Número de procesos filtrados',
'every' => 'Cada',
'exampel' => 'ejemplo',
'exclude logfiles' => 'Excluir archivos de registro',
-'excluding buffers and cache' => '-/+ buffers/cache',
'expected' => 'Esperado',
'expertoptions' => 'Opciones expertas',
'expires' => 'Expira',
'advproxy errmsg wpad invalid ip or mask' => 'WPAD : IP ou sous-réseau invalide pour le sous-réseau IP exclu',
'advproxy error design' => 'Construction messages erronés ',
'advproxy error language' => 'Langage des messages erronés ',
-'advproxy fake referer' => 'Fausses références soumises aux sites externes ',
-'advproxy fake useragent' => 'Faux useragent soumis aux sites externes ',
'advproxy friday' => 'Ven',
'advproxy from' => 'De',
'advproxy group access control' => 'Contrôle d\'accès basé sur le groupe',
'advproxy off' => 'Proxy inactif',
'advproxy offline mode' => 'Autoriser le mode hors connexion ',
'advproxy on' => 'Proxy actif',
-'advproxy privacy' => 'Privé',
'advproxy proxy port' => 'Port proxy ',
'advproxy proxy port transparent' => 'Port transparent ',
'advproxy ram cache size' => 'Taille cache mémoire (Mo) ',
'alt vpn' => 'VPNs',
'and' => 'Et',
'apcupsd' => 'Statut UPS-APC',
-'application layer gateways' => 'Passerelles de couche d\'application',
'apply' => 'Appliquer maintenant',
'april' => 'Avril',
'archive not exist' => 'L\'archive de configuration n\'existe pas',
'every' => 'Chaque',
'exampel' => 'exemple',
'exclude logfiles' => 'Exclure les fichiers journaux',
-'excluding buffers and cache' => '-/+ buffers/tampon',
'expected' => 'Attendu',
'expertoptions' => 'Réglages avancés',
'expires' => 'Expire',
'advproxy errmsg time restriction' => 'Invalid time restriction',
'advproxy error design' => 'Design dei messaggi di errore',
'advproxy error language' => 'Lingua dei messaggi di errore',
-'advproxy fake referer' => 'Fake referer submitted to external sites',
-'advproxy fake useragent' => 'Fake useragent submitted to external sites',
'advproxy friday' => 'Ven',
'advproxy from' => 'Da',
'advproxy hdd cache size' => 'Harddisk cache size (MB)',
'advproxy off' => 'Proxy off',
'advproxy offline mode' => 'Attiva modalità offline',
'advproxy on' => 'Proxy Acceso',
-'advproxy privacy' => 'Privacy',
'advproxy proxy port' => 'Porta Proxy',
'advproxy proxy port transparent' => 'Porta Transparente',
'advproxy ram cache size' => 'Dimensione della Memoria di cache (MB)',
'every' => 'Ogni',
'exampel' => 'esempio',
'exclude logfiles' => 'Escludi File di log',
-'excluding buffers and cache' => '-/+ buffers/cache',
'expected' => 'Expected',
'expertoptions' => 'Expert options',
'expires' => 'Scade',
'advproxy errmsg time restriction' => 'Ongeldige tijdsbeperking',
'advproxy error design' => 'Opmaak foutmeldingen',
'advproxy error language' => 'Taal foutmeldingen',
-'advproxy fake referer' => 'Nepverwijzing die wordt gestuurd naar externe sites',
-'advproxy fake useragent' => 'Nep useragent die wordt gestuurd naar externe sites',
'advproxy friday' => 'Vri',
'advproxy from' => 'Van',
'advproxy hdd cache size' => 'Harddisk cache-grootte (MB)',
'advproxy off' => 'Proxy uit',
'advproxy offline mode' => 'Schakel offline modus in',
'advproxy on' => 'Proxy aan',
-'advproxy privacy' => 'Privacy',
'advproxy proxy port' => 'Proxy poort',
'advproxy proxy port transparent' => 'Transparante poort',
'advproxy ram cache size' => 'Geheugen cache-grootte (MB)',
'every' => 'Iedere',
'exampel' => 'voorbeeld',
'exclude logfiles' => 'Exclusief logbestanden',
-'excluding buffers and cache' => '-/+ buffers/cache',
'expected' => 'Verwacht',
'expertoptions' => 'Expertopties',
'expires' => 'Verloopt',
'advproxy errmsg time restriction' => 'Niepoprawne ograniczenia czase',
'advproxy error design' => 'Styl komunikatów o błędach',
'advproxy error language' => 'Język komunikatów o błędach',
-'advproxy fake referer' => 'Fake referer submitted to external sites',
-'advproxy fake useragent' => 'Fake useragent submitted to external sites',
'advproxy friday' => 'Pią',
'advproxy from' => 'Od',
'advproxy hdd cache size' => 'Rozmiar cache na dysku (MB)',
'advproxy off' => 'Proxy wyłączone',
'advproxy offline mode' => 'Włącz tryb offline',
'advproxy on' => 'Proxy wł',
-'advproxy privacy' => 'Prywatność',
'advproxy proxy port' => 'Port proxy',
'advproxy ram cache size' => 'Rozmiar RAM cache (MB)',
'advproxy redirector children' => 'Liczba procesów filtrujących',
'every' => 'Każdy',
'exampel' => 'przykład',
'exclude logfiles' => 'Wyklucz pliki z logami',
-'excluding buffers and cache' => '-/+ buffers/cache',
'expected' => 'Oczekiwano',
'expertoptions' => 'Opcje zaawans.',
'expires' => 'Wygasa',
'advproxy errmsg time restriction' => 'Неверное ограничение по времени',
'advproxy error design' => 'Оформление ошибок',
'advproxy error language' => 'Язык, на котором отображаются ошибки',
-'advproxy fake referer' => 'Липовый referer Для внешних сайтов',
-'advproxy fake useragent' => 'Липовый useragent для внешних сайтов',
'advproxy friday' => 'Пт',
'advproxy from' => 'C',
'advproxy hdd cache size' => 'Размер кэша жёсткого диска (MB)',
'advproxy off' => 'Proxy выкл',
'advproxy offline mode' => 'Включить автономный режим',
'advproxy on' => 'Proxy вкл',
-'advproxy privacy' => 'Приватность',
'advproxy proxy port' => 'Порт Proxy',
'advproxy ram cache size' => 'Размер памяти кэша (MB)',
'advproxy redirector children' => 'Количество фильтруемых процессов',
'every' => 'Каждый',
'exampel' => 'пример',
'exclude logfiles' => 'Исключить файлы логов',
-'excluding buffers and cache' => '-/+ buffers/cache',
'expected' => 'Ожидается',
'expertoptions' => 'Экспортировать настройки',
'expires' => 'Истекает',
'advproxy errmsg time restriction' => 'Geçersiz zaman kısıtlaması',
'advproxy error design' => 'Hata mesajları tasarımı',
'advproxy error language' => 'Hata mesajları dili',
-'advproxy fake referer' => 'Sahte referansı harici sitelere gönder',
-'advproxy fake useragent' => 'Sahte yönlendiriciyi harici sitelere gönder',
'advproxy friday' => 'Cum',
'advproxy from' => 'Başlangıç',
'advproxy group access control' => 'Grup tabanlı erişim kontrolü',
'advproxy off' => 'Vekil sunucu kapalı',
'advproxy offline mode' => 'Çevrimdışı yöntemi aktifleştir',
'advproxy on' => 'Vekil sunucu',
-'advproxy privacy' => 'Gizlilik',
'advproxy proxy port' => 'Vekil sunucu bağlantı noktası',
'advproxy proxy port transparent' => 'Şeffaf bağlantı noktası',
'advproxy ram cache size' => 'Bellek önbellek boyutu (MB)',
'and' => 've',
'ansi t1.483' => 'KALDIRILACAK',
'apcupsd' => 'APC-UPS durumu',
-'application layer gateways' => 'Uygulama Katmanı Ağ Geçitleri',
'apply' => 'Şimdi uygula',
'april' => 'Nisan',
'archive not exist' => 'Yapılandırma arşivi yok',
'every' => 'Her',
'exampel' => 'örnek',
'exclude logfiles' => 'Günlük dosyaları hariç',
-'excluding buffers and cache' => '-/+ arabellek/önbellek',
'expected' => 'Beklenen',
'expertoptions' => 'Uzman seçenekleri',
'expires' => 'Bitiş tarihi',
include Config
-VER = 2.34
+VER = 2.46
THISAPP = XML-Parser-$(VER)
DL_FILE = $(THISAPP).tar.gz
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = 84d9e0001fe01c14867256c3fe115899
+$(DL_FILE)_MD5 = 80bb18a8e6240fcf7ec2f7b57601c170
install : $(TARGET)
###############################################################################
# #
# IPFire.org - A linux based firewall #
-# Copyright (C) 2007-2020 IPFire Team <info@ipfire.org> #
+# Copyright (C) 2007-2021 IPFire Team <info@ipfire.org> #
# #
# This program is free software: you can redistribute it and/or modify #
# it under the terms of the GNU General Public License as published by #
include Config
-VER = 2.4.46
+VER = 2.4.48
THISAPP = httpd-$(VER)
DL_FILE = $(THISAPP).tar.bz2
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = 7d661ea5e736dac5e2761d9f49fe8361
+$(DL_FILE)_MD5 = a7088cec171b0d00bf43394ce64d3909
install : $(TARGET)
+++ /dev/null
-###############################################################################
-# #
-# IPFire.org - A linux based firewall #
-# Copyright (C) 2007-2018 IPFire Team <info@ipfire.org> #
-# #
-# This program is free software: you can redistribute it and/or modify #
-# it under the terms of the GNU General Public License as published by #
-# the Free Software Foundation, either version 3 of the License, or #
-# (at your option) any later version. #
-# #
-# This program is distributed in the hope that it will be useful, #
-# but WITHOUT ANY WARRANTY; without even the implied warranty of #
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the #
-# GNU General Public License for more details. #
-# #
-# You should have received a copy of the GNU General Public License #
-# along with this program. If not, see <http://www.gnu.org/licenses/>. #
-# #
-###############################################################################
-
-include Config
-
-VER = 13.18.5
-
-THISAPP = asterisk-$(VER)
-DL_FILE = $(THISAPP).tar.gz
-DL_FROM = $(URL_IPFIRE)
-DIR_APP = $(DIR_SRC)/$(THISAPP)
-TARGET = $(DIR_INFO)/$(THISAPP)
-PROG = asterisk
-PAK_VER = 26
-
-DEPS = libsrtp opus
-
-###############################################################################
-# Top-level Rules
-###############################################################################
-
-objects = $(DL_FILE) \
- asterisk-1.4-de-prompts.tar.gz \
- asterisk-extra-sounds-en-gsm-1.5.1.tar.gz \
- asterisk-moh-opsound-gsm-2.03.tar.gz
-
-$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-asterisk-extra-sounds-en-gsm-1.5.1.tar.gz = $(URL_IPFIRE)/asterisk-extra-sounds-en-gsm-1.5.1.tar.gz
-asterisk-moh-opsound-gsm-2.03.tar.gz = $(URL_IPFIRE)/asterisk-moh-opsound-gsm-2.03.tar.gz
-asterisk-1.4-de-prompts.tar.gz = $(URL_IPFIRE)/asterisk-1.4-de-prompts.tar.gz
-
-$(DL_FILE)_MD5 = 4ad2a5ab1dd12cba5f37fca52961aa2a
-asterisk-extra-sounds-en-gsm-1.5.1.tar.gz_MD5 = aa1003ed984239f18e123decc39c2178
-asterisk-moh-opsound-gsm-2.03.tar.gz_MD5 = 09066f55f1358f298bc1a6e4678a3ddf
-asterisk-1.4-de-prompts.tar.gz_MD5 = 626a2b95071a5505851e43874dfbfd5c
-
-install : $(TARGET)
-
-check : $(patsubst %,$(DIR_CHK)/%,$(objects))
-
-download :$(patsubst %,$(DIR_DL)/%,$(objects))
-
-md5 : $(subst %,%_MD5,$(objects))
-
-dist:
- $(PAK)
-
-###############################################################################
-# Downloading, checking, md5sum
-###############################################################################
-
-$(patsubst %,$(DIR_CHK)/%,$(objects)) :
- @$(CHECK)
-
-$(patsubst %,$(DIR_DL)/%,$(objects)) :
- @$(LOAD)
-
-$(subst %,%_MD5,$(objects)) :
- @$(MD5)
-
-###############################################################################
-# Installation Details
-###############################################################################
-
-$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
- @$(PREBUILD)
- @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
- $(UPDATE_AUTOMAKE)
-
- # configure asterisk
- cd $(DIR_APP) && ./configure --prefix=/usr --sysconfdir=/var/ipfire \
- --without-oss \
- --without-sdl \
- --without-SDL_image \
- --without-netsnmp \
- --without-avcodec \
- --without-vorbis \
- --without-ogg \
- --disable-xmldoc
-
- # enable additional features (include following sound-tars)
- cd $(DIR_APP) && make menuselect.makeopts && menuselect/menuselect \
- --enable res_srtp \
- --enable EXTRA-SOUNDS-EN-GSM \
- --enable MOH-OPSOUND-GSM \
- --disable BUILD_NATIVE \
- menuselect.makeopts
-
- # add additional sounds
- cd $(DIR_APP) && cp -fv $(DIR_DL)/asterisk-extra-sounds-en-gsm-1.5.1.tar.gz $(DIR_APP)/sounds/
- cd $(DIR_APP) && cp -fv $(DIR_DL)/asterisk-moh-opsound-gsm-2.03.tar.gz $(DIR_APP)/sounds/
-
- # Fix wrong cpu optimization (march=armv5tel)
- cd $(DIR_APP) && sed -i -e "s|^PROC=armv5te.*|PROC=armv5te|g" makeopts
-
- # Add armv5te to gsm codecs
- cd $(DIR_APP) && sed -i -e "s|armv5b |*armv5te |g" codecs/gsm/Makefile
-
- # compile and install
- cd $(DIR_APP) && make $(MAKETUNING) all
- cd $(DIR_APP) && make install
- cd $(DIR_APP) && make samples
-
- # add german sounds and remove README.txt
- tar xfz $(DIR_DL)/asterisk-1.4-de-prompts.tar.gz -C /var/lib/asterisk/sounds/
- -rm -f /var/lib/asterisk/sounds/README.txt
-
- # remove build directories
- @rm -rf $(DIR_APP) $(DIR_SRC)/asterisk-*
-
- # copy additional ipfire scripts for asterisk
- -mkdir -p /var/ipfire/asterisk
- cp -vrf $(DIR_SRC)/config/asterisk/* /var/ipfire/asterisk/
- chmod o+w /var/ipfire/asterisk
- chown nobody:nobody -R /var/ipfire/asterisk
- chown nobody:nobody -R /var/lib/asterisk
-
- # remember backup-location
- install -v -m 644 $(DIR_SRC)/config/backup/includes/asterisk /var/ipfire/backup/addons/includes/asterisk
-
- # Logrotate
- mkdir -pv /etc/logrotate.d
- install -v -m 644 $(DIR_SRC)/config/asterisk/asterisk.logrotate /etc/logrotate.d/asterisk
-
- # generate softlink (or asterisk will not work properly)
- ln -sf /var/ipfire/asterisk /etc/asterisk
-
- #install initscripts
- $(call INSTALL_INITSCRIPT,asterisk)
-
- # make asterisk start with reboot
- ln -sf /etc/rc.d/init.d/asterisk /etc/rc.d/rc0.d/K30asterisk
- ln -sf /etc/rc.d/init.d/asterisk /etc/rc.d/rc6.d/K30asterisk
- ln -sf /etc/rc.d/init.d/asterisk /etc/rc.d/rc3.d/S30asterisk
-
- @rm -rf $(DIR_APP)
- @$(POSTBUILD)
--disable-qt5 \
--disable-gtk \
--disable-gtk3 \
- --disable-pygtk \
--disable-python \
--disable-pygobject \
--disable-python-dbus \
###############################################################################
# #
# IPFire.org - A linux based firewall #
-# Copyright (C) 2007-2020 IPFire Team <info@ipfire.org> #
+# Copyright (C) 2007-2021 IPFire Team <info@ipfire.org> #
# #
# This program is free software: you can redistribute it and/or modify #
# it under the terms of the GNU General Public License as published by #
cd $(DIR_APP) && patch -Np0 < $(DIR_SRC)/src/patches/bash/bash51-$$(printf "%03d" "$${i}") || exit 1; \
done
- cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/bash-4.0-paths-1.patch
- cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/bash-4.0-profile-1.patch
- cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/bash-3.2-ssh_source_bash.patch
+ cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/bash/bash-4.0-paths-1.patch
+ cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/bash/bash-4.0-profile-1.patch
+ cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/bash/bash-3.2-ssh_source_bash.patch
cd $(DIR_APP) && ./configure --prefix=$(PREFIX) $(CONFIGURE_OPTIONS)
cd $(DIR_APP) && make $(MAKETUNING)
include Config
-VER = 9.11.29
+VER = 9.11.32
THISAPP = bind-$(VER)
DL_FILE = $(THISAPP).tar.gz
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = 439d5491dfea08be032a1f9ca5a54faa
+$(DL_FILE)_MD5 = 0d029dd06ca60c6739c3189c999ef757
install : $(TARGET)
###############################################################################
# #
# IPFire.org - A linux based firewall #
-# Copyright (C) 2007-2020 IPFire Team <info@ipfire.org> #
+# Copyright (C) 2007-2021 IPFire Team <info@ipfire.org> #
# #
# This program is free software: you can redistribute it and/or modify #
# it under the terms of the GNU General Public License as published by #
include Config
-VER = 20201221
+VER = 20210611
THISAPP = ca-certificates
DIR_APP = $(DIR_SRC)/$(THISAPP)
include Config
-VER = 3.20.2
+VER = 3.20.4
THISAPP = cmake-$(VER)
DL_FILE = $(THISAPP).tar.gz
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = cd0e7735f1e51f30ee3b0844390a464a
+$(DL_FILE)_MD5 = 99e849c6910f1df027cc0365027fa19b
install : $(TARGET)
###############################################################################
# #
# IPFire.org - A linux based firewall #
-# Copyright (C) 2007-2018 IPFire Team <info@ipfire.org> #
+# Copyright (C) 2007-2021 IPFire Team <info@ipfire.org> #
# #
# This program is free software: you can redistribute it and/or modify #
# it under the terms of the GNU General Public License as published by #
menu.d modem optionsfw \
ovpn patches pakfire portfw ppp private proxy/advanced/cre \
proxy/calamaris/bin qos/bin red remote sensors suricata time \
- updatexlrator/bin updatexlrator/autocheck urlfilter/autoupdate urlfilter/bin upnp vpn \
+ updatexlrator/bin updatexlrator/autocheck urlfilter/autoupdate urlfilter/bin vpn \
wakeonlan wireless ; do \
mkdir -p $(CONFIG_ROOT)/$$i; \
done
isdn/settings mac/settings main/hosts main/routing main/security main/settings optionsfw/settings \
ovpn/ccd.conf ovpn/ccdroute ovpn/ccdroute2 pakfire/settings portfw/config ppp/settings-1 ppp/settings-2 ppp/settings-3 ppp/settings-4 \
ppp/settings-5 ppp/settings proxy/settings proxy/squid.conf proxy/advanced/settings proxy/advanced/cre/enable remote/settings qos/settings qos/classes qos/subclasses qos/level7config qos/portconfig \
- qos/tosconfig suricata/settings upnp/settings vpn/config vpn/settings vpn/ipsec.conf \
+ qos/tosconfig suricata/settings vpn/config vpn/settings vpn/ipsec.conf \
vpn/ipsec.secrets vpn/caconfig wakeonlan/clients.conf wireless/config wireless/settings; do \
touch $(CONFIG_ROOT)/$$i; \
done
cp $(DIR_SRC)/config/suricata/convert-snort /usr/sbin/convert-snort
cp $(DIR_SRC)/config/suricata/convert-ids-modifysids-file /usr/sbin/convert-ids-modifysids-file
- # Add conntrack helper default settings
- for proto in AMANDA FTP H323 IRC PPTP SIP TFTP; do \
- echo "CONNTRACK_$${proto}=off" >> $(CONFIG_ROOT)/optionsfw/settings; \
- done
-
# set converters executable
chmod 755 /usr/sbin/convert-*
# Configroot permissions
chown -R nobody:nobody $(CONFIG_ROOT)
chown root:root $(CONFIG_ROOT)
- for i in backup/ header.pl general-functions.pl graphs.pl lang.pl addon-lang/ langs/ ; do \
+ for i in backup/ *.pl addon-lang/ langs/ ; do \
chown -R root:root $(CONFIG_ROOT)/$$i; \
done
chown -Rv root:root $(CONFIG_ROOT)/*/bin
###############################################################################
# #
# IPFire.org - A linux based firewall #
-# Copyright (C) 2007-2020 IPFire Team <info@ipfire.org> #
+# Copyright (C) 2007-2021 IPFire Team <info@ipfire.org> #
# #
# This program is free software: you can redistribute it and/or modify #
# it under the terms of the GNU General Public License as published by #
$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
@$(PREBUILD)
@rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar axf $(DIR_DL)/$(DL_FILE)
- cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/coreutils-8.27-uname-1.patch
- cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/coreutils-8.32-i18n-1.patch
+ cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/coreutils/coreutils-8.27-uname-1.patch
+ cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/coreutils/coreutils-8.32-i18n-1.patch
# this is upstream and also fix the aarch64 build
cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/coreutils/ls-restore-8.31-behavior-on-removed-directories.patch
cd $(DIR_APP) && FORCE_UNSAFE_CONFIGURE=1 && ./configure $(CONFIGURE_OPTIONS)
include Config
-VER = 1.28.8
+VER = 1.28.9
THISAPP = cups-filters-$(VER)
DL_FILE = $(THISAPP).tar.xz
DIR_APP = $(DIR_SRC)/$(THISAPP)
TARGET = $(DIR_INFO)/$(THISAPP)
PROG = cups-filters
-PAK_VER = 5
+PAK_VER = 6
DEPS = cups ghostscript
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = 914fb53d31ff8500dc25d2e2c68ca5c1
+$(DL_FILE)_MD5 = 1ea8d0311463d4026f0f631a4843dec2
install : $(TARGET)
--sysconfdir=/etc \
--localstatedir=/var \
--with-pdftops=hybrid \
- --disable-ijs \
--disable-mutool \
--disable-avahi
cd $(DIR_APP) && make $(MAKETUNING) $(EXTRA_MAKE)
include Config
-VER = 7.76.1
+VER = 7.77.0
THISAPP = curl-$(VER)
DL_FILE = $(THISAPP).tar.xz
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = 5296108646ca7f318b468a7a9d4a0eb2
+$(DL_FILE)_MD5 = 3cf78c539cae019cf96ba38571706e06
install : $(TARGET)
--disable-ipv6 \
--disable-static \
--enable-threaded-resolver \
- --with-ca-bundle=/etc/ssl/certs/ca-bundle.crt
+ --with-ca-bundle=/etc/ssl/certs/ca-bundle.crt \
+ --with-openssl
cd $(DIR_APP) && make $(MAKETUNING)
cd $(DIR_APP) && make install
@rm -rf $(DIR_APP)
###############################################################################
# #
# IPFire.org - A linux based firewall #
-# Copyright (C) 2007-2018 IPFire Team <info@ipfire.org> #
+# Copyright (C) 2007-2021 IPFire Team <info@ipfire.org> #
# #
# This program is free software: you can redistribute it and/or modify #
# it under the terms of the GNU General Public License as published by #
include Config
-VER = 3.1
+VER = 3.3
THISAPP = dmidecode-$(VER)
-DL_FILE = $(THISAPP).tar.gz
+DL_FILE = $(THISAPP).tar.xz
DL_FROM = $(URL_IPFIRE)
DIR_APP = $(DIR_SRC)/$(THISAPP)
TARGET = $(DIR_INFO)/$(THISAPP)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = 7798f68a02b82358c44af913da3b6b42
+$(DL_FILE)_MD5 = afca949fd71a23dd39c4a3c9cd946dc0
install : $(TARGET)
check : $(patsubst %,$(DIR_CHK)/%,$(objects))
$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
@$(PREBUILD)
- @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+ @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar axf $(DIR_DL)/$(DL_FILE)
cd $(DIR_APP) && patch -Np1 -i $(DIR_SRC)/src/patches/dmidecode/0005-nothing-should-go-into-usr-local.patch
- cd $(DIR_APP) && patch -Np1 -i $(DIR_SRC)/src/patches/dmidecode/add_support_for_structure_type_43_tpm_device.patch
+ cd $(DIR_APP) && patch -Np1 -i $(DIR_SRC)/src/patches/dmidecode/dmidecode-3.3-fix_the_condition_error_in_ascii_filter.patch
+ cd $(DIR_APP) && patch -Np1 -i $(DIR_SRC)/src/patches/dmidecode/dmidecode-3.3-fix_crash_with_u_option.patch
cd $(DIR_APP) && make $(MAKETUNING) $(EXTRA_MAKE)
cd $(DIR_APP) && make install
@rm -rf $(DIR_APP)
TARGET = $(DIR_INFO)/$(THISAPP)
SUP_ARCH = x86_64
PROG = dnsdist
-PAK_VER = 8
+PAK_VER = 9
DEPS =
+++ /dev/null
-###############################################################################
-# #
-# IPFire.org - A linux based firewall #
-# Copyright (C) 2007-2018 IPFire Team <info@ipfire.org> #
-# #
-# This program is free software: you can redistribute it and/or modify #
-# it under the terms of the GNU General Public License as published by #
-# the Free Software Foundation, either version 3 of the License, or #
-# (at your option) any later version. #
-# #
-# This program is distributed in the hope that it will be useful, #
-# but WITHOUT ANY WARRANTY; without even the implied warranty of #
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the #
-# GNU General Public License for more details. #
-# #
-# You should have received a copy of the GNU General Public License #
-# along with this program. If not, see <http://www.gnu.org/licenses/>. #
-# #
-###############################################################################
-
-###############################################################################
-# Definitions
-###############################################################################
-
-include Config
-
-VER = 0.12devel
-APP = dpf
-THISAPP = dpfhack-$(VER)
-DL_FILE = $(THISAPP).tgz
-DL_FROM = $(URL_IPFIRE)
-DIR_APP = $(DIR_SRC)/$(APP)
-TARGET = $(DIR_INFO)/$(THISAPP)
-PROG = dpfhack
-PAK_VER = 1
-
-DEPS =
-
-###############################################################################
-# Top-level Rules
-###############################################################################
-
-objects = $(DL_FILE)
-
-$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-
-$(DL_FILE)_MD5 = 00473bb01d8da7c5967ecb19ca251ac2
-
-install : $(TARGET)
-
-check : $(patsubst %,$(DIR_CHK)/%,$(objects))
-
-download :$(patsubst %,$(DIR_DL)/%,$(objects))
-
-md5 : $(subst %,%_MD5,$(objects))
-
-dist:
- $(PAK)
-
-###############################################################################
-# Downloading, checking, md5sum
-###############################################################################
-
-$(patsubst %,$(DIR_CHK)/%,$(objects)) :
- @$(CHECK)
-
-$(patsubst %,$(DIR_DL)/%,$(objects)) :
- @$(LOAD)
-
-$(subst %,%_MD5,$(objects)) :
- @$(MD5)
-
-###############################################################################
-# Installation Details
-###############################################################################
-
-$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
- @$(PREBUILD)
- @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
- cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/$(PROG).patch
- cd $(DIR_APP) && make
- cd $(DIR_APP) && cp Debug/libdpf.so /usr/lib && cp dpflib/dpf.h include/usbuser.h /usr/include
- @rm -rf $(DIR_APP)
- @$(POSTBUILD)
include Config
-VER = 0.184
+VER = 0.185
THISAPP = elfutils-$(VER)
DL_FILE = $(THISAPP).tar.bz2
DIR_APP = $(DIR_SRC)/$(THISAPP)
TARGET = $(DIR_INFO)/$(THISAPP)
PROG = elfutils
-PAK_VER = 5
+PAK_VER = 6
DEPS =
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = 9e5af45255ff7dc413de073da2ceff04
+$(DL_FILE)_MD5 = 2b6e94c2eebc1f2194173e31bca9396e
install : $(TARGET)
DIR_APP = $(DIR_SRC)/$(THISAPP)
TARGET = $(DIR_INFO)/$(THISAPP)
PROG = elinks
+PAK_VER = 2
DEPS =
md5 : $(subst %,%_MD5,$(objects))
-
###############################################################################
# Downloading, checking, md5sum
###############################################################################
include Config
-VER = 3.16
+VER = 5.12
THISAPP = ethtool-$(VER)
DL_FILE = $(THISAPP).tar.xz
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = 7eee202accb86104adc8463a36a1a468
+$(DL_FILE)_MD5 = 11fcf0d0287c899fbcbdb48897fe2bab
install : $(TARGET)
include Config
-VER = 2.3.0
+VER = 2.4.1
THISAPP = expat-$(VER)
DL_FILE = $(THISAPP).tar.bz2
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = 54ea624caca3f9003cebcab4f0a75c8f
+$(DL_FILE)_MD5 = 476cdf4b5e40280316fff36b2086a390
install : $(TARGET)
include Config
-VER = 2.1.12
+VER = 2.2.0
THISAPP = fireinfo-v$(VER)
DL_FILE = $(THISAPP).tar.gz
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = 40ada8f4eceeb69661d09e43308e5a6a
+$(DL_FILE)_MD5 = 34cd6041bf9b9882c2a356a47ad1e000
install : $(TARGET)
$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
@$(PREBUILD)
@rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
-
- cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/fireinfo-Don-t-crash-when-proc-cpuinfo-doesn-t-have-any-infor.patch
- cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/fireinfo-Ignore-any-systems-with-ID-Default-string.patch
- cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/fireinfo-support-upstream-proxy-with-authentication.patch
-
+ cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/fireinfo-2.2.0-python-3.8.patch
cd $(DIR_APP) && [ -x "configure" ] || sh ./autogen.sh
cd $(DIR_APP) && ./configure --prefix=/usr
cd $(DIR_APP) && make $(MAKETUNING)
cd $(DIR_APP) && make install
-
@rm -rf $(DIR_APP)
@$(POSTBUILD)
include Config
-VER = 1.3.2
+VER = 1.3.3
THISAPP = flac-$(VER)
DL_FILE = $(THISAPP).tar.xz
DIR_APP = $(DIR_SRC)/$(THISAPP)
TARGET = $(DIR_INFO)/$(THISAPP)
PROG = flac
-PAK_VER = 2
+PAK_VER = 3
DEPS = libogg
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = 454f1bfa3f93cc708098d7890d0499bd
+$(DL_FILE)_MD5 = 26703ed2858c1fc9ffc05136d13daa69
install : $(TARGET)
endif
# /boot: 128MB - OFFSET
-# / : 1400 MB
+# / : 1600 MB
S_BOOT := $(shell echo $$(( 262144 - $(S_OFFSET) )))
-S_ROOT := 2934784
+S_ROOT := 3354038
ifeq "$(EFI)" "1"
S_EFI = 65536 # 32 MB
include Config
-VER = 3.10.3
+VER = 3.10.4
THISAPP = fuse-$(VER)
DL_FILE = $(THISAPP).tar.xz
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = 75546f9070323b8ce69c2ed8ffff20c4
+$(DL_FILE)_MD5 = 55b87e9ed691c2fa698e491241985b4a
install : $(TARGET)
include Config
-VER = 2.68.1
+VER = 2.68.3
THISAPP = glib-$(VER)
DL_FILE = $(THISAPP).tar.xz
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = bc9f2250be1f773bb17747d3b2e6a3ae
+$(DL_FILE)_MD5 = a3968c7510447f055fd2204ba947f80f
install : $(TARGET)
include Config
-VER = 3.6.14
+VER = 3.6.16
THISAPP = gnutls-$(VER)
DL_FILE = $(THISAPP).tar.xz
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = bf70632d420e421baff482247f01dbfe
+$(DL_FILE)_MD5 = 5db1678931fa6bbd40beed235c6a0a37
install : $(TARGET)
###############################################################################
# #
# IPFire.org - A linux based firewall #
-# Copyright (C) 2007-2020 IPFire Team <info@ipfire.org> #
+# Copyright (C) 2007-2021 IPFire Team <info@ipfire.org> #
# #
# This program is free software: you can redistribute it and/or modify #
# it under the terms of the GNU General Public License as published by #
@rm -rf $(DIR_APP) $(DIR_APP_EFI) && cd $(DIR_SRC) && tar axf $(DIR_DL)/$(DL_FILE)
cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/grub/grub-2.04-BootHole.patch
- cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/grub-2.02_disable_vga_fallback.patch
+ cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/grub/grub-2.02_disable_vga_fallback.patch
cd $(DIR_APP) && autoreconf -vfi
# Install unifont
TARGET = $(DIR_INFO)/$(THISAPP)
PROG = guardian
-PAK_VER = 23
+PAK_VER = 24
DEPS = perl-inotify2 perl-Net-IP
###############################################################################
# #
# IPFire.org - A linux based firewall #
-# Copyright (C) 2007-2018 IPFire Team <info@ipfire.org> #
+# Copyright (C) 2007-2021 IPFire Team <info@ipfire.org> #
# #
# This program is free software: you can redistribute it and/or modify #
# it under the terms of the GNU General Public License as published by #
include Config
-VER = 1.9
+VER = 1.10
THISAPP = gzip-$(VER)
DL_FILE = $(THISAPP).tar.xz
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = 9492c6ccb2239ff679a5475a7bb543ed
+$(DL_FILE)_MD5 = 691b1221694c3394f1c537df4eee39d3
install : $(TARGET)
$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
@$(PREBUILD)
@rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar axf $(DIR_DL)/$(DL_FILE)
- cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/gzip-1.9-gnulib.patch
cd $(DIR_APP) && ./configure $(EXTRA_CONFIG)
cd $(DIR_APP) && make $(MAKETUNING)
cd $(DIR_APP) && make install
DIR_APP = $(DIR_SRC)/hostap-$(VER)
TARGET = $(DIR_INFO)/$(THISAPP)
PROG = hostapd
-PAK_VER = 55
+PAK_VER = 56
DEPS =
###############################################################################
# #
# IPFire.org - A linux based firewall #
-# Copyright (C) 2007-2020 IPFire Team <info@ipfire.org> #
+# Copyright (C) 2007-2021 IPFire Team <info@ipfire.org> #
# #
# This program is free software: you can redistribute it and/or modify #
# it under the terms of the GNU General Public License as published by #
include Config
-VER = 20201118
+VER = 20210608
THISAPP = Intel-Linux-Processor-Microcode-Data-Files-microcode-$(VER)
DL_FILE = $(THISAPP).tar.gz
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = 6248f95036923c5982800e3f97e08bb8
+$(DL_FILE)_MD5 = 769cab71e957b83121a1f4a07f1c4409
install : $(TARGET)
include Config
-VER = s20160308
+VER = 20210202
THISAPP = iputils-$(VER)
DL_FILE = $(THISAPP).tar.gz
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = a3ff521e21a383f562c2f06472c5bca0
+$(DL_FILE)_MD5 = ba8f64ba70ac4717a1ae6746d452b3da
install : $(TARGET)
$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
@$(PREBUILD)
@rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar axf $(DIR_DL)/$(DL_FILE)
- cd $(DIR_APP) && make ping tracepath
- cd $(DIR_APP) && install -m 0755 ping /usr/bin
- cd $(DIR_APP) && install -m 0755 tracepath /usr/bin
+ cd $(DIR_APP) && meson builddir -Dprefix=/usr
+ cd $(DIR_APP) && make $(MAKETUNING)
+ cd $(DIR_APP) && make install
# Allow execution of /usr/bin/ping by other users than "root"
setcap cap_net_raw+ep /usr/bin/ping
###############################################################################
# #
# IPFire.org - A linux based firewall #
-# Copyright (C) 2007-2020 IPFire Team <info@ipfire.org> #
+# Copyright (C) 2007-2021 IPFire Team <info@ipfire.org> #
# #
# This program is free software: you can redistribute it and/or modify #
# it under the terms of the GNU General Public License as published by #
include Config
-VER = 3.0.4
+VER = 3.0.7
THISAPP = knot-$(VER)
DL_FILE = $(THISAPP).tar.xz
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = c0a546927ff50db153893de43758cb37
+$(DL_FILE)_MD5 = a7ac9e92989184437a45578d0e23990a
install : $(TARGET)
+++ /dev/null
-###############################################################################
-# #
-# IPFire.org - A linux based firewall #
-# Copyright (C) 2007-2018 IPFire Team <info@ipfire.org> #
-# #
-# This program is free software: you can redistribute it and/or modify #
-# it under the terms of the GNU General Public License as published by #
-# the Free Software Foundation, either version 3 of the License, or #
-# (at your option) any later version. #
-# #
-# This program is distributed in the hope that it will be useful, #
-# but WITHOUT ANY WARRANTY; without even the implied warranty of #
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the #
-# GNU General Public License for more details. #
-# #
-# You should have received a copy of the GNU General Public License #
-# along with this program. If not, see <http://www.gnu.org/licenses/>. #
-# #
-###############################################################################
-
-###############################################################################
-# Definitions
-###############################################################################
-
-include Config
-
-VER = 0.11.0-svn1200-dpf
-
-THISAPP = lcd4linux-$(VER)
-DL_FILE = $(THISAPP).tar.gz
-DL_FROM = $(URL_IPFIRE)
-DIR_APP = $(DIR_SRC)/lcd4linux
-TARGET = $(DIR_INFO)/$(THISAPP)
-PROG = lcd4linux
-PAK_VER = 7
-
-DEPS = dpfhack libmpdclient
-
-###############################################################################
-# Top-level Rules
-###############################################################################
-
-objects = $(DL_FILE)
-
-$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-
-$(DL_FILE)_MD5 = 5b76a26879849dbd52a5bcfda4107ea4
-
-install : $(TARGET)
-
-check : $(patsubst %,$(DIR_CHK)/%,$(objects))
-
-download :$(patsubst %,$(DIR_DL)/%,$(objects))
-
-md5 : $(subst %,%_MD5,$(objects))
-
-dist:
- $(PAK)
-
-###############################################################################
-# Downloading, checking, md5sum
-###############################################################################
-
-$(patsubst %,$(DIR_CHK)/%,$(objects)) :
- @$(CHECK)
-
-$(patsubst %,$(DIR_DL)/%,$(objects)) :
- @$(LOAD)
-
-$(subst %,%_MD5,$(objects)) :
- @$(MD5)
-
-###############################################################################
-# Installation Details
-###############################################################################
-
-$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
- @$(PREBUILD)
- @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar axf $(DIR_DL)/$(DL_FILE)
- $(UPDATE_AUTOMAKE)
- cd $(DIR_APP) && autoreconf -v -i
- cd $(DIR_APP) && autoupdate -v configure.in
- cd $(DIR_APP) && ./configure --with-plugins=all,!qnaplog,!dbus --prefix=/usr
- cd $(DIR_APP) && make $(MAKETUNING)
- cd $(DIR_APP) && make install
-
- #install initscripts
- $(call INSTALL_INITSCRIPT,lcd4linux)
-
- install -v -m 644 $(DIR_SRC)/config/backup/includes/lcd4linux /var/ipfire/backup/addons/includes/lcd4linux
- @rm -rf $(DIR_APP)
- @$(POSTBUILD)
include Config
-VER = 2.49
+VER = 2.50
THISAPP = libcap-$(VER)
DL_FILE = $(THISAPP).tar.xz
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = b43ae3690fe4d2cb32e4d25c0983ecd3
+$(DL_FILE)_MD5 = 66a561afa81666236ff973544ff4e864
install : $(TARGET)
$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
@$(PREBUILD)
@rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar axf $(DIR_DL)/$(DL_FILE)
+ cd $(DIR_APP) && patch -Np1 -i $(DIR_SRC)/src/patches/libcap-2.50-install_capsh_again.patch
# Prevent a static library from being installed
cd $(DIR_APP) && sed -i '/install.*STALIBNAME/d' libcap/Makefile
cd $(DIR_APP) && make GOLANG=no
cd $(DIR_APP) && make install GOLANG=no
rm -vf /lib/libcap.so
- ln -svf /lib/libcap.so.2.49 /usr/lib/libcap.so
+ ln -svf /lib/libcap.so.2.50 /usr/lib/libcap.so
chmod +x /lib/libcap.so.*
@rm -rf $(DIR_APP)
@$(POSTBUILD)
include Config
-VER = 20210419-3.1
+VER = 20210522-3.1
THISAPP = libedit-$(VER)
DL_FILE = $(THISAPP).tar.gz
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = e288b8fe53bf0d096fb13847d4e0f640
+$(DL_FILE)_MD5 = 6ad9e9208daf031adf1ebc64441769e0
install : $(TARGET)
# Add patch for i586 to disable strong stack protector.
ifeq "$(BUILD_ARCH)" "i586"
- cd $(DIR_APP) && patch -Np1 -i $(DIR_SRC)/src/patches/libloc-0.9.3-perl-i586-regular-stack-protector.patch
+ cd $(DIR_APP) && patch -Np1 -i $(DIR_SRC)/src/patches/libloc/libloc-0.9.3-perl-i586-regular-stack-protector.patch
endif
cd $(DIR_APP) && ./autogen.sh
+++ /dev/null
-###############################################################################
-# #
-# IPFire.org - A linux based firewall #
-# Copyright (C) 2007-2020 IPFire Team <info@ipfire.org> #
-# #
-# This program is free software: you can redistribute it and/or modify #
-# it under the terms of the GNU General Public License as published by #
-# the Free Software Foundation, either version 3 of the License, or #
-# (at your option) any later version. #
-# #
-# This program is distributed in the hope that it will be useful, #
-# but WITHOUT ANY WARRANTY; without even the implied warranty of #
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the #
-# GNU General Public License for more details. #
-# #
-# You should have received a copy of the GNU General Public License #
-# along with this program. If not, see <http://www.gnu.org/licenses/>. #
-# #
-###############################################################################
-
-###############################################################################
-# Definitions
-###############################################################################
-
-include Config
-
-VER = 0.9.73
-
-THISAPP = libmicrohttpd-$(VER)
-DL_FILE = $(THISAPP).tar.gz
-DL_FROM = $(URL_IPFIRE)
-DIR_APP = $(DIR_SRC)/$(THISAPP)
-TARGET = $(DIR_INFO)/$(THISAPP)
-PROG = libmicrohttpd
-PAK_VER = 3
-
-DEPS =
-
-###############################################################################
-# Top-level Rules
-###############################################################################
-
-objects = $(DL_FILE)
-
-$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-
-$(DL_FILE)_MD5 = 2b15949b1633e4fa487e08cdcc97f0e3
-
-install : $(TARGET)
-
-check : $(patsubst %,$(DIR_CHK)/%,$(objects))
-
-download :$(patsubst %,$(DIR_DL)/%,$(objects))
-
-md5 : $(subst %,%_MD5,$(objects))
-
-dist:
- @$(PAK)
-
-###############################################################################
-# Downloading, checking, md5sum
-###############################################################################
-
-$(patsubst %,$(DIR_CHK)/%,$(objects)) :
- @$(CHECK)
-
-$(patsubst %,$(DIR_DL)/%,$(objects)) :
- @$(LOAD)
-
-$(subst %,%_MD5,$(objects)) :
- @$(MD5)
-
-###############################################################################
-# Installation Details
-###############################################################################
-
-$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
- @$(PREBUILD)
- @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar axf $(DIR_DL)/$(DL_FILE)
-
- cd $(DIR_APP) && ./configure \
- --prefix=/usr \
- --libexecdir=/usr/lib/lighthttpd \
- --enable-static=no \
- --disable-nls \
- --enable-gcc-hardening \
- --enable-linker-hardening \
- --disable-doc \
- --disable-examples \
- --disable-sendfile \
- --enable-https
-
- cd $(DIR_APP) && make $(MAKETUNING)
- cd $(DIR_APP) && make install
- @rm -rf $(DIR_APP)
- @$(POSTBUILD)
include Config
-VER = 3.2.25
+VER = 3.5.0
THISAPP = libnl-$(VER)
DL_FILE = $(THISAPP).tar.gz
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = 03f74d0cd5037cadc8cdfa313bbd195c
+$(DL_FILE)_MD5 = 74ba57b1b1d6f9f92268aa8141d8e8e4
install : $(TARGET)
@$(PREBUILD)
@rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
$(UPDATE_AUTOMAKE)
- cd $(DIR_APP) && ./configure --prefix=/usr --sysconfdir=/etc
+ cd $(DIR_APP) && ./configure \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --bindir=/usr/sbin \
+ --disable-static
cd $(DIR_APP) && make $(MAKETUNING)
cd $(DIR_APP) && make install
@rm -rf $(DIR_APP)
include Config
-VER = 1.3.4
+VER = 1.3.5
THISAPP = libogg-$(VER)
DL_FILE = $(THISAPP).tar.xz
DIR_APP = $(DIR_SRC)/$(THISAPP)
TARGET = $(DIR_INFO)/$(THISAPP)
PROG = libogg
-PAK_VER = 4
+PAK_VER = 5
DEPS =
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = eadef24aad6e3e8379ba0d14971fd64a
+$(DL_FILE)_MD5 = 3178c98341559657a15b185bf5d700a5
install : $(TARGET)
include Config
-VER = 1.10.0
+VER = 1.10.1
THISAPP = libpcap-$(VER)
DL_FILE = $(THISAPP).tar.gz
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = 8c12dc19dd7e0d02d2bb6596eb5a71c7
+$(DL_FILE)_MD5 = 28e17495004036567c2cc884b51eba45
install : $(TARGET)
+++ /dev/null
-###############################################################################
-# #
-# IPFire.org - A linux based firewall #
-# Copyright (C) 2007-2018 IPFire Team <info@ipfire.org> #
-# #
-# This program is free software: you can redistribute it and/or modify #
-# it under the terms of the GNU General Public License as published by #
-# the Free Software Foundation, either version 3 of the License, or #
-# (at your option) any later version. #
-# #
-# This program is distributed in the hope that it will be useful, #
-# but WITHOUT ANY WARRANTY; without even the implied warranty of #
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the #
-# GNU General Public License for more details. #
-# #
-# You should have received a copy of the GNU General Public License #
-# along with this program. If not, see <http://www.gnu.org/licenses/>. #
-# #
-###############################################################################
-
-###############################################################################
-# Definitions
-###############################################################################
-
-include Config
-
-VER = 1.5.4
-THISAPP = libsrtp-$(VER)
-DL_FILE = $(THISAPP).tar.gz
-DL_FROM = $(URL_IPFIRE)
-DIR_APP = $(DIR_SRC)/$(THISAPP)
-TARGET = $(DIR_INFO)/$(THISAPP)
-PROG = libsrtp
-PAK_VER = 3
-
-DEPS =
-
-###############################################################################
-# Top-level Rules
-###############################################################################
-
-objects = $(DL_FILE)
-
-$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-
-$(DL_FILE)_MD5 = 64a9580f86a9c3e1c4986e944e6a5a84
-
-install : $(TARGET)
-
-check : $(patsubst %,$(DIR_CHK)/%,$(objects))
-
-download :$(patsubst %,$(DIR_DL)/%,$(objects))
-
-md5 : $(subst %,%_MD5,$(objects))
-
-dist:
- @$(PAK)
-
-###############################################################################
-# Downloading, checking, md5sum
-###############################################################################
-
-$(patsubst %,$(DIR_CHK)/%,$(objects)) :
- @$(CHECK)
-
-$(patsubst %,$(DIR_DL)/%,$(objects)) :
- @$(LOAD)
-
-$(subst %,%_MD5,$(objects)) :
- @$(MD5)
-
-###############################################################################
-# Installation Details
-###############################################################################
-
-$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
- @$(PREBUILD)
- @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar axf $(DIR_DL)/$(DL_FILE)
- $(UPDATE_AUTOMAKE)
- cd $(DIR_APP) && ./configure --prefix=/usr
- cd $(DIR_APP) && make uninstall && make $(MAKETUNING) shared_library
- cd $(DIR_APP) && make install
- @rm -rf $(DIR_APP)
- @$(POSTBUILD)
###############################################################################
# #
# IPFire.org - A linux based firewall #
-# Copyright (C) 2007-2020 IPFire Team <info@ipfire.org> #
+# Copyright (C) 2007-2021 IPFire Team <info@ipfire.org> #
# #
# This program is free software: you can redistribute it and/or modify #
# it under the terms of the GNU General Public License as published by #
include Config
-VER = 1.0.23
+VER = 1.0.24
THISAPP = libusb-$(VER)
DL_FILE = $(THISAPP).tar.bz2
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = 1e29700f6a134766d32b36b8d1d61a95
+$(DL_FILE)_MD5 = 5bc27df16155302f308d409e73589872
install : $(TARGET)
include Config
-VER = 4.4.20
+VER = 4.4.22
THISAPP = libxcrypt-$(VER)
DL_FILE = $(THISAPP).tar.gz
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = 3b87214308d9a48991fcf2b0aee5649e
+$(DL_FILE)_MD5 = 6e4f363d86f99562d012c47e7f024618
install : $(TARGET)
include Config
-VER = 20200519
+VER = 20210511
THISAPP = linux-firmware-$(VER)
DL_FILE = $(THISAPP).tar.xz
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = 7ea1c59732569a01ec8b0e6a412a314c
+$(DL_FILE)_MD5 = 3c024cca702aa71fe24fc374c53581fa
install : $(TARGET)
@rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar axf $(DIR_DL)/$(DL_FILE)
mkdir -p /lib/firmware
cd $(DIR_APP) && make install
- # Remove Space from Filenames
- mv "/lib/firmware/brcm/brcmfmac43430a0-sdio.ONDA-V80 PLUS.txt" \
- "/lib/firmware/brcm/brcmfmac43430a0-sdio.ONDA-V80_PLUS.txt"
- mv "/lib/firmware/brcm/brcmfmac43455-sdio.MINIX-NEO Z83-4.txt" \
- "/lib/firmware/brcm/brcmfmac43455-sdio.MINIX-NEO_Z83-4.txt"
+
+ # Remove any spaces in filenames
+ while read -r file; do \
+ mv "$${file}" "$${file// /_}" || exit 1; \
+ done < <(find /lib/firmware -name "* *")
+
@rm -rf $(DIR_APP)
@$(POSTBUILD)
+++ /dev/null
-###############################################################################
-# #
-# IPFire.org - A linux based firewall #
-# Copyright (C) 2007-2018 IPFire Team <info@ipfire.org> #
-# #
-# This program is free software: you can redistribute it and/or modify #
-# it under the terms of the GNU General Public License as published by #
-# the Free Software Foundation, either version 3 of the License, or #
-# (at your option) any later version. #
-# #
-# This program is distributed in the hope that it will be useful, #
-# but WITHOUT ANY WARRANTY; without even the implied warranty of #
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the #
-# GNU General Public License for more details. #
-# #
-# You should have received a copy of the GNU General Public License #
-# along with this program. If not, see <http://www.gnu.org/licenses/>. #
-# #
-###############################################################################
-
-###############################################################################
-# Definitions
-###############################################################################
-
-include Config
-
-VER = 1.9
-
-THISAPP = miniupnpd-$(VER)
-DL_FILE = $(THISAPP).tar.gz
-DL_FROM = $(URL_IPFIRE)
-DIR_APP = $(DIR_SRC)/$(THISAPP)
-TARGET = $(DIR_INFO)/$(THISAPP)
-PROG = miniupnpd
-PAK_VER = 3
-
-###############################################################################
-# Top-level Rules
-###############################################################################
-
-objects = $(DL_FILE)
-
-$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-
-$(DL_FILE)_MD5 = 9151502f84f130b0ef1245ac938c33f9
-
-install : $(TARGET)
-
-check : $(patsubst %,$(DIR_CHK)/%,$(objects))
-
-download :$(patsubst %,$(DIR_DL)/%,$(objects))
-
-md5 : $(subst %,%_MD5,$(objects))
-
-dist:
- @$(PAK)
-
-###############################################################################
-# Downloading, checking, md5sum
-###############################################################################
-
-$(patsubst %,$(DIR_CHK)/%,$(objects)) :
- @$(CHECK)
-
-$(patsubst %,$(DIR_DL)/%,$(objects)) :
- @$(LOAD)
-
-$(subst %,%_MD5,$(objects)) :
- @$(MD5)
-
-###############################################################################
-# Installation Details
-###############################################################################
-
-$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
- @$(PREBUILD)
- @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
- cd $(DIR_APP) && make -f Makefile.linux \
- CFLAGS="$(CFLAGS) -DIPTABLES_143" LIBS="-lip4tc -lnfnetlink"
- cd $(DIR_APP) && install -m 755 miniupnpd /usr/sbin
- -mkdir -pv /etc/miniupnpd
- cp -vf $(DIR_SRC)/config/miniupnpd/miniupnpd.conf /etc/miniupnpd/miniupnpd.conf
-
- #install initscripts
- $(call INSTALL_INITSCRIPT,miniupnpd)
-
- @rm -rf $(DIR_APP)
- @$(POSTBUILD)
+++ /dev/null
-###############################################################################
-# #
-# IPFire.org - A linux based firewall #
-# Copyright (C) 2007-2020 IPFire Team <info@ipfire.org> #
-# #
-# This program is free software: you can redistribute it and/or modify #
-# it under the terms of the GNU General Public License as published by #
-# the Free Software Foundation, either version 3 of the License, or #
-# (at your option) any later version. #
-# #
-# This program is distributed in the hope that it will be useful, #
-# but WITHOUT ANY WARRANTY; without even the implied warranty of #
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the #
-# GNU General Public License for more details. #
-# #
-# You should have received a copy of the GNU General Public License #
-# along with this program. If not, see <http://www.gnu.org/licenses/>. #
-# #
-###############################################################################
-
-###############################################################################
-# Definitions
-###############################################################################
-
-include Config
-
-VER = 4.3.0
-
-THISAPP = motion-Release-$(VER)
-DL_FILE = $(THISAPP).tar.gz
-DL_FROM = $(URL_IPFIRE)
-DIR_APP = $(DIR_SRC)/$(THISAPP)
-TARGET = $(DIR_INFO)/$(THISAPP)
-
-PROG = motion
-PAK_VER = 3
-DEPS = ffmpeg libmicrohttpd
-
-CFLAGS += -fcommon
-
-###############################################################################
-# Top-level Rules
-###############################################################################
-
-objects = $(DL_FILE)
-
-$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-
-$(DL_FILE)_MD5 = 297aab6ec3de74ce1a0d2b1711ac9062
-
-install : $(TARGET)
-
-check : $(patsubst %,$(DIR_CHK)/%,$(objects))
-
-download :$(patsubst %,$(DIR_DL)/%,$(objects))
-
-md5 : $(subst %,%_MD5,$(objects))
-
-###############################################################################
-# Downloading, checking, md5sum
-###############################################################################
-
-$(patsubst %,$(DIR_CHK)/%,$(objects)) :
- @$(CHECK)
-
-$(patsubst %,$(DIR_DL)/%,$(objects)) :
- @$(LOAD)
-
-$(subst %,%_MD5,$(objects)) :
- @$(MD5)
-
-dist:
- @$(PAK)
-
-###############################################################################
-# Installation Details
-###############################################################################
-
-$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
- @$(PREBUILD)
- @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
-
- #Install obsolete V4L1 videodev.h
- cp $(DIR_SRC)/config/include/obsolete_videodev.h /usr/include/linux/videodev.h
-
- cd $(DIR_APP) && autoreconf -fiv
-
- cd $(DIR_APP) && ./configure --prefix=/usr --sysconfdir=/etc
- cd $(DIR_APP) && make $(MAKETUNING)
- cd $(DIR_APP) && make install
- cp -vf $(DIR_SRC)/config/motion/motion.conf /etc
- install -v -m 644 $(DIR_SRC)/config/backup/includes/motion \
- /var/ipfire/backup/addons/includes/motion
-
- #Remove obsolete V4L1 videodev.h
- rm -f /usr/include/linux/videodev.h
-
- #install initscripts
- $(call INSTALL_INITSCRIPT,motion)
-
- @rm -rf $(DIR_APP)
- @$(POSTBUILD)
DIR_APP = $(DIR_SRC)/${THISAPP}
TARGET = $(DIR_INFO)/$(THISAPP)
PROG = mpd
-PAK_VER = 21
+PAK_VER = 22
SUP_ARCH = aarch64 x86_64 i586
DEPS = alsa avahi faad2 ffmpeg flac lame libmad libshout libogg libid3tag libvorbis opus soxr
-D ffmpeg=enabled \
-D flac=enabled \
-D lame=enabled \
- -D upnp=enabled \
+ -D upnp=disabled \
-D icu=disabled \
builddir/
cd $(DIR_APP) && ninja -C builddir/
DIR_APP = $(DIR_SRC)/$(THISAPP)
TARGET = $(DIR_INFO)/$(THISAPP)
PROG = mpfire
-PAK_VER = 13
+PAK_VER = 14
DEPS = mpd mpc
###############################################################################
# #
# IPFire.org - A linux based firewall #
-# Copyright (C) 2007-2020 IPFire Team <info@ipfire.org> #
+# Copyright (C) 2007-2021 IPFire Team <info@ipfire.org> #
# #
# This program is free software: you can redistribute it and/or modify #
# it under the terms of the GNU General Public License as published by #
include Config
-VER = 5.7
+VER = 5.8
THISAPP = nano-$(VER)
DL_FILE = $(THISAPP).tar.xz
DIR_APP = $(DIR_SRC)/$(THISAPP)
TARGET = $(DIR_INFO)/$(THISAPP)
PROG = nano
-PAK_VER = 37
+PAK_VER = 38
DEPS = ""
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = c2d6540a33248edc31a5830861b4b4ea
+$(DL_FILE)_MD5 = d2249e3dd108c830df00efd7c1b79d86
install : $(TARGET)
include Config
-VER = 5.8
+VER = 5.9.1
THISAPP = net-snmp-$(VER)
DL_FILE = $(THISAPP).tar.gz
DIR_APP = $(DIR_SRC)/$(THISAPP)
TARGET = $(DIR_INFO)/$(THISAPP)
PROG = netsnmpd
-PAK_VER = 11
+PAK_VER = 12
DEPS =
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = 63bfc65fbb86cdb616598df1aff6458a
+$(DL_FILE)_MD5 = e5ee202dfb15000342354d64f1837d19
install : $(TARGET)
include Config
-VER = 3.7.2
+VER = 3.7.3
THISAPP = nettle-$(VER)
DL_FILE = $(THISAPP).tar.gz
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = 22849db27ed563ebbc829273f0c97e35
+$(DL_FILE)_MD5 = a60273d0fab9c808646fcf5e9edc2e8f
install : $(TARGET)
cd $(DIR_APP) && make install
# install custom OpenSSH server configuration
- install -v -m 644 $(DIR_SRC)/config/ssh/sshd_config \
+ install -v -m 600 $(DIR_SRC)/config/ssh/sshd_config \
/etc/ssh/sshd_config
# install custom OpenSSH client configuration
--without-pam \
--without-gtk2 \
--without-gtkmm \
- --without-procps \
--without-icu \
--without-x \
--with-linuxdir=/usr/src/linux \
cd $(DIR_APP) && ./configure --libdir=/usr/lib \
--sbindir=/lib/security \
--enable-securedir=/lib/security \
- --enable-docdir=/usr/share/doc/Linux-PAM-$(VER) \
--enable-read-both-confs \
--disable-nls
include Config
-VER = 10.36
+VER = 10.37
THISAPP = pcre2-$(VER)
DL_FILE = $(THISAPP).tar.gz
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = a5d9aa7d18b61b0226696510e60c9582
+$(DL_FILE)_MD5 = a0b59d89828f62d2e1caac04f7c51e0b
install : $(TARGET)
include Config
-VER = 4.44
+VER = 4.53
THISAPP = CGI-$(VER)
DL_FILE = $(THISAPP).tar.gz
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = 2cbe560fdadbb8b9237744e39bbfc3eb
+$(DL_FILE)_MD5 = a0fe86a038de743ac45a0933daa2804f
install : $(TARGET)
include Config
-VER = 2.1
+VER = 1.224
-THISAPP = fbset-$(VER)
+THISAPP = Data-UUID-$(VER)
DL_FILE = $(THISAPP).tar.gz
DL_FROM = $(URL_IPFIRE)
DIR_APP = $(DIR_SRC)/$(THISAPP)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = e547cfcbb8c1a4f2a6b8ba4acb8b7164
+$(DL_FILE)_MD5 = 71510bbcce760c394591fca83a9b5e6d
install : $(TARGET)
md5 : $(subst %,%_MD5,$(objects))
-dist:
- @$(PAK)
-
###############################################################################
# Downloading, checking, md5sum
###############################################################################
$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
@$(PREBUILD)
@rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+ cd $(DIR_APP) && perl Makefile.PL
+ cd $(DIR_APP) && make $(MAKETUNING)
cd $(DIR_APP) && make install
- cp -f $(DIR_SRC)/config/fbset/fb.modes /etc/fb.modes
@rm -rf $(DIR_APP)
@$(POSTBUILD)
# Definitions
###############################################################################
include Config
-VER = 1.20
+VER = 2.33
THISAPP = TimeDate-$(VER)
DL_FILE = ${THISAPP}.tar.gz
TARGET = $(DIR_INFO)/$(THISAPP)
PROG = perl-TimeDate
DEPS =
-PAK_VER = 5
+PAK_VER = 6
###############################################################################
# Top-level Rules
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = 7da7452bce4c684e4238e6d09b390200
+$(DL_FILE)_MD5 = 5e5afe22c8d417417283d1f7f4572a57
install : $(TARGET)
include Config
-VER = 3.5.9
+VER = 3.6.1
THISAPP = postfix-$(VER)
DL_FILE = $(THISAPP).tar.gz
DIR_APP = $(DIR_SRC)/$(THISAPP)
TARGET = $(DIR_INFO)/$(THISAPP)
PROG = postfix
-PAK_VER = 29
+PAK_VER = 31
DEPS =
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = a4d1b2df03a500cf8f9759d5fca1c1f6
+$(DL_FILE)_MD5 = 85d1c2b06a469ba6cc61946c7042e40e
install : $(TARGET)
include Config
-VER = 2.2.0
+VER = 2.4.7
THISAPP = pyparsing-$(VER)
DL_FILE = $(THISAPP).tar.gz
DL_FROM = $(URL_IPFIRE)
DIR_APP = $(DIR_SRC)/$(THISAPP)
TARGET = $(DIR_INFO)/$(THISAPP)
-PROG = python-pyparsing
-PAK_VER = 2
+PROG = python3-pyparsing
+PAK_VER = 3
DEPS =
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = 0214e42d63af850256962b6744c948d9
+$(DL_FILE)_MD5 = f0953e47a0112f7a65aec2305ffdf7b4
install : $(TARGET)
$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
@$(PREBUILD)
@rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
- cd $(DIR_APP) && python setup.py install
+ cd $(DIR_APP) && python3 setup.py install
@rm -rf $(DIR_APP)
@$(POSTBUILD)
include Config
-VER = 1.14.6
+VER = 56.2.0
-THISAPP = libupnp-$(VER)
-DL_FILE = $(THISAPP).tar.bz2
+THISAPP = setuptools-$(VER)
+DL_FILE = $(THISAPP).tar.gz
DL_FROM = $(URL_IPFIRE)
DIR_APP = $(DIR_SRC)/$(THISAPP)
TARGET = $(DIR_INFO)/$(THISAPP)
+PROG = python3-setuptools
+PAK_VER = 3
+
+DEPS =
###############################################################################
# Top-level Rules
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = 05c2393eee4fbf81c9e1b116b9554039
+$(DL_FILE)_MD5 = e8caf0f129f585a887bb3cbb528149d1
install : $(TARGET)
md5 : $(subst %,%_MD5,$(objects))
+dist:
+ @$(PAK)
+
###############################################################################
# Downloading, checking, md5sum
###############################################################################
$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
@$(PREBUILD)
- @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar jxf $(DIR_DL)/$(DL_FILE)
- $(UPDATE_AUTOMAKE)
- cd $(DIR_APP) && ./configure --prefix=/usr
- cd $(DIR_APP) && make $(MAKETUNING)
- cd $(DIR_APP) && make install
+ @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+ cd $(DIR_APP) && python3 setup.py install
@rm -rf $(DIR_APP)
@$(POSTBUILD)
include Config
-VER = 10.3.0
+VER = 10.3.2
THISAPP = qpdf-$(VER)
DL_FILE = $(THISAPP).tar.gz
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = 0e9918cfb9bb13c96b7cd0cffd401b3d
+$(DL_FILE)_MD5 = 29aaaf03e0f83b3527d1470f8391c876
install : $(TARGET)
###############################################################################
# #
# IPFire.org - A linux based firewall #
-# Copyright (C) 2007-2018 IPFire Team <info@ipfire.org> #
+# Copyright (C) 2007-2021 IPFire Team <info@ipfire.org> #
# #
# This program is free software: you can redistribute it and/or modify #
# it under the terms of the GNU General Public License as published by #
include Config
-VER = 6.4
+VER = 6.12
THISAPP = rng-tools-$(VER)
DL_FILE = $(THISAPP).tar.gz
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = 52a8243858503f94eecd4ae0983a9818
+$(DL_FILE)_MD5 = 17f2815263b6ce6a353625b1fe615346
install : $(TARGET)
@rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar axf $(DIR_DL)/$(DL_FILE)
cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/rng-tools-6-Enable-RDRAND-for-i586-too.patch
cd $(DIR_APP) && ./autogen.sh
- cd $(DIR_APP) && ./configure --prefix=/usr
+ cd $(DIR_APP) && ./configure --prefix=/usr --without-pkcs11
cd $(DIR_APP) && make $(MAKETUNING) $(EXTRA_MAKE)
cd $(DIR_APP) && make $(EXTRA_INSTALL) install
@rm -rf $(DIR_APP)
DIR_APP = $(DIR_SRC)/$(THISAPP)
TARGET = $(DIR_INFO)/$(THISAPP)
PROG = samba
-PAK_VER = 79
+PAK_VER = 80
DEPS = avahi cups libtirpc krb5 perl-Parse-Yapp
+++ /dev/null
-###############################################################################
-# #
-# IPFire.org - A linux based firewall #
-# Copyright (C) 2007-2018 IPFire Team <info@ipfire.org> #
-# #
-# This program is free software: you can redistribute it and/or modify #
-# it under the terms of the GNU General Public License as published by #
-# the Free Software Foundation, either version 3 of the License, or #
-# (at your option) any later version. #
-# #
-# This program is distributed in the hope that it will be useful, #
-# but WITHOUT ANY WARRANTY; without even the implied warranty of #
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the #
-# GNU General Public License for more details. #
-# #
-# You should have received a copy of the GNU General Public License #
-# along with this program. If not, see <http://www.gnu.org/licenses/>. #
-# #
-###############################################################################
-
-###############################################################################
-# Definitions
-###############################################################################
-
-include Config
-
-VER = 1.0.28
-
-THISAPP = sane-$(VER)
-DL_FILE = sane-backends-$(VER).tar.gz
-DL_FROM = $(URL_IPFIRE)
-DIR_APP = $(DIR_SRC)/sane-backends-$(VER)
-TARGET = $(DIR_INFO)/$(THISAPP)
-
-PROG = sane
-PAK_VER = 6
-
-DEPS = avahi cups libtiff
-
-###############################################################################
-# Top-level Rules
-###############################################################################
-
-objects = $(DL_FILE)
-
-$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-
-$(DL_FILE)_MD5 = 02493493072769a1d4ad904d30f04e6b
-
-install : $(TARGET)
-
-check : $(patsubst %,$(DIR_CHK)/%,$(objects))
-
-download :$(patsubst %,$(DIR_DL)/%,$(objects))
-
-md5 : $(subst %,%_MD5,$(objects))
-
-dist:
- $(PAK)
-
-###############################################################################
-# Downloading, checking, md5sum
-###############################################################################
-
-$(patsubst %,$(DIR_CHK)/%,$(objects)) :
- @$(CHECK)
-
-$(patsubst %,$(DIR_DL)/%,$(objects)) :
- @$(LOAD)
-
-$(subst %,%_MD5,$(objects)) :
- @$(MD5)
-
-###############################################################################
-# Installation Details
-###############################################################################
-
-$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
- @$(PREBUILD)
- @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
- cd $(DIR_APP) && ./configure --prefix=/usr --sysconfdir=/etc \
- --disable-ipv6 \
- --enable-parport-directio \
- --enable-avahi
- cd $(DIR_APP) && make $(MAKETUNING)
- cd $(DIR_APP) && make install
-
- # Install configuration
- cp -vf $(DIR_SRC)/config/sane/saned.conf /etc/sane.d/
-
- #install initscripts
- $(call INSTALL_INITSCRIPT,sane)
-
- ln -sf ../init.d/sane /etc/rc.d/rc3.d/S95sane
- ln -sf ../init.d/sane /etc/rc.d/rc0.d/K10sane
- ln -sf ../init.d/sane /etc/rc.d/rc6.d/K10sane
- install -v -m 644 $(DIR_SRC)/config/backup/includes/sane \
- /var/ipfire/backup/addons/includes/sane
- @rm -rf $(DIR_APP)
- @$(POSTBUILD)
include Config
-VER = 2.3.11
+VER = 2.4.0
THISAPP = sarg-$(VER)
DL_FILE = $(THISAPP).tar.gz
DIR_APP = $(DIR_SRC)/$(THISAPP)
TARGET = $(DIR_INFO)/$(THISAPP)
PROG = sarg
-PAK_VER = 4
+PAK_VER = 5
DEPS =
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = 8e30d86b16597aec89ad401c72c761bc
+$(DL_FILE)_MD5 = 1b84509c1a0d55d46148bd957744870f
install : $(TARGET)
@rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar axf $(DIR_DL)/$(DL_FILE)
$(UPDATE_AUTOMAKE)
- cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/sarg/sarg-2.3.11-format.patch
- cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/sarg/sarg-2.3.11-configure.patch
+ cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/sarg/sarg-2.4.0-format.patch
+ cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/sarg/sarg-2.4.0-configure.patch
cd $(DIR_APP) && autoreconf -vfi
- # Update gettext Makefile
- cd $(DIR_APP) && cp -vf /usr/share/gettext/po/Makefile.in.in po/Makefile.in.in
-
cd $(DIR_APP) && ./configure \
--prefix=/usr \
--sysconfdir=/etc/sarg
+++ /dev/null
-###############################################################################
-# IPFire.org - An Open Source Firewall Solution #
-# Copyright (C) 2007-2018 IPFire Team <info@ipfire.org> #
-###############################################################################
-
-###############################################################################
-# Definitions
-###############################################################################
-
-include Config
-
-VER = 1.56
-
-THISAPP = sendEmail-v$(VER)
-DL_FILE = $(THISAPP).tar.gz
-DL_FROM = $(URL_IPFIRE)
-DIR_APP = $(DIR_SRC)/$(THISAPP)
-TARGET = $(DIR_INFO)/$(THISAPP)
-PROG = sendEmail
-PAK_VER = 2
-
-DEPS =
-
-###############################################################################
-# Top-level Rules
-###############################################################################
-
-objects = $(DL_FILE)
-
-$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-
-$(DL_FILE)_MD5 = 5b7bec4373268fa6446fa59416bb99fb
-
-install : $(TARGET)
-
-check : $(patsubst %,$(DIR_CHK)/%,$(objects))
-
-download :$(patsubst %,$(DIR_DL)/%,$(objects))
-
-md5 : $(subst %,%_MD5,$(objects))
-
-dist:
- @$(PAK)
-
-###############################################################################
-# Downloading, checking, md5sum
-###############################################################################
-
-$(patsubst %,$(DIR_CHK)/%,$(objects)) :
- @$(CHECK)
-
-$(patsubst %,$(DIR_DL)/%,$(objects)) :
- @$(LOAD)
-
-$(subst %,%_MD5,$(objects)) :
- @$(MD5)
-
-###############################################################################
-# Installation Details
-###############################################################################
-
-$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
- @$(PREBUILD)
- @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
- cd $(DIR_APP) && cp -pvf sendEmail /usr/local/bin
- chown root.root /usr/local/bin/sendEmail
- chmod 755 /usr/local/bin/sendEmail
- @rm -rf $(DIR_APP)
- @$(POSTBUILD)
-
###############################################################################
# #
# IPFire.org - A linux based firewall #
-# Copyright (C) 2007-2020 IPFire Team <info@ipfire.org> #
+# Copyright (C) 2007-2021 IPFire Team <info@ipfire.org> #
# #
# This program is free software: you can redistribute it and/or modify #
# it under the terms of the GNU General Public License as published by #
include Config
-VER = 7.1
+VER = 7.2
THISAPP = smartmontools-$(VER)
DL_FILE = $(THISAPP).tar.gz
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = 430cd5f64caa4524018b536e5ecd9c29
+$(DL_FILE)_MD5 = e8d134c69ae4959a05cb56b31172ffb1
install : $(TARGET)
@$(PREBUILD)
@rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar jxf $(DIR_DL)/$(DL_FILE)
$(UPDATE_AUTOMAKE)
- cd $(DIR_APP) && ./configure --prefix=/usr --disable-alsa-dsp --disable-oss-dsp \
- --disable-sun-audio --disable-mad
+ cd $(DIR_APP) && ./configure --prefix=/usr
cd $(DIR_APP) && make $(EXTRA_MAKE)
cd $(DIR_APP) && make install
@rm -rf $(DIR_APP)
include Config
-VER = 1.9.7
+VER = 1.9.7p1
THISAPP = sudo-$(VER)
DL_FILE = $(THISAPP).tar.gz
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = 1ed8b73ba56c9b05ed22681b7b92d1b2
+$(DL_FILE)_MD5 = 0ea3649ef66df80e6ecd04d45ea0f762
install : $(TARGET)
include Config
-VER = 4.99.0
+VER = 4.99.1
THISAPP = tcpdump-$(VER)
DL_FILE = $(THISAPP).tar.gz
DIR_APP = $(DIR_SRC)/$(THISAPP)
TARGET = $(DIR_INFO)/$(THISAPP)
PROG = tcpdump
-PAK_VER = 12
+PAK_VER = 13
DEPS =
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = b10aa2f497def7283bc060f626879ce5
+$(DL_FILE)_MD5 = 929a255c71a9933608bd7c31927760f7
install : $(TARGET)
###############################################################################
# #
# IPFire.org - A linux based firewall #
-# Copyright (C) 2007-2020 IPFire Team <info@ipfire.org> #
+# Copyright (C) 2007-2021 IPFire Team <info@ipfire.org> #
# #
# This program is free software: you can redistribute it and/or modify #
# it under the terms of the GNU General Public License as published by #
include Config
-VER = 3.1
+VER = 3.2a
THISAPP = tmux-$(VER)
DL_FILE = $(THISAPP).tar.gz
DIR_APP = $(DIR_SRC)/$(THISAPP)
TARGET = $(DIR_INFO)/$(THISAPP)
PROG = tmux
-PAK_VER = 8
+PAK_VER = 9
DEPS =
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = 76c3ef9d40d2c1ade7a6cd7993b549ac
+$(DL_FILE)_MD5 = 61fba141303aeaf8d9a6931d247f2f4a
install : $(TARGET)
include Config
-VER = 0.4.5.8
+VER = 0.4.6.5
THISAPP = tor-$(VER)
DL_FILE = $(THISAPP).tar.gz
DIR_APP = $(DIR_SRC)/$(THISAPP)
TARGET = $(DIR_INFO)/$(THISAPP)
PROG = tor
-PAK_VER = 60
+PAK_VER = 62
DEPS = libseccomp
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = a39d9b930a19936b57f097051c0ad509
+$(DL_FILE)_MD5 = 5a678a32c5a8b4bf97c9cb541df22b71
install : $(TARGET)
###############################################################################
# #
# IPFire.org - A linux based firewall #
-# Copyright (C) 2007-2020 IPFire Team <info@ipfire.org> #
+# Copyright (C) 2007-2021 IPFire Team <info@ipfire.org> #
# #
# This program is free software: you can redistribute it and/or modify #
# it under the terms of the GNU General Public License as published by #
include Config
-VER = 2.6
+VER = 2.7
THISAPP = vnstat-$(VER)
DL_FILE = $(THISAPP).tar.gz
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = fe2928a81243cc8a532a357f97221736
+$(DL_FILE)_MD5 = fcf28cf5fdfbaab522f37b6431f327e1
install : $(TARGET)
DIR_APP = $(DIR_SRC)/$(THISAPP)
TARGET = $(DIR_INFO)/$(THISAPP)
PROG = wio
-PAK_VER = 12
+PAK_VER = 13
###############################################################################
# Top-level Rules
include Config
-VER = 5.11.0
+VER = 5.12.0
THISAPP = xfsprogs-$(VER)
DL_FILE = $(THISAPP).tar.xz
DIR_APP = $(DIR_SRC)/$(THISAPP)
TARGET = $(DIR_INFO)/$(THISAPP)
-CONFIGURE_OPTIONS = \
- --enable-readline=yes
-
ifeq "$(BUILD_ARCH)" "armv5tel"
CONFIGURE_OPTIONS += \
--enable-lto=no
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = 803bcddd983803b339acfb76064dfd84
+$(DL_FILE)_MD5 = b401d76ccd66e4fdf3d123193e5e1b91
install : $(TARGET)
include Config
-VER = 1.4
+VER = 1.5
THISAPP = zd1211-firmware-$(VER)
DL_FILE = $(THISAPP).tar.bz2
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = 19f28781d76569af8551c9d11294c870
+$(DL_FILE)_MD5 = 3c182ceb9b2fc1d8442cd81c1280d83f
install : $(TARGET)
include Config
-VER = 1.0.1
+VER = 1.1.1
THISAPP = zerofree-$(VER)
-DL_FILE = $(THISAPP).tar.gz
+DL_FILE = $(THISAPP).tgz
DL_FROM = $(URL_IPFIRE)
DIR_APP = $(DIR_SRC)/$(THISAPP)
TARGET = $(DIR_INFO)/$(THISAPP)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = a8c772fdd134448f25ab4e7e12004595
+$(DL_FILE)_MD5 = 4f2d6bdba4212e54eb7dd22a8fbb6d29
install : $(TARGET)
include Config
-VER = 1.4.9
+VER = 1.5.0
THISAPP = zstd-$(VER)
DL_FILE = $(THISAPP).tar.gz
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = eb718b8aae0302cabe20f968e500534d
+$(DL_FILE)_MD5 = a6eb7fb1f2c21fa80030a47993853e92
install : $(TARGET)
SNAME="ipfire" # Short name
# If you update the version don't forget to update backupiso and add it to core update
VERSION="2.25" # Version number
-CORE="157" # Core Level (Filename)
+CORE="158" # Core Level (Filename)
SLOGAN="www.ipfire.org" # Software slogan
CONFIG_ROOT=/var/ipfire # Configuration rootdir
MAX_RETRIES=1 # prefetch/check loop
lfsmake2 perl-Device-Modem
lfsmake2 perl-Apache-Htpasswd
lfsmake2 perl-Parse-Yapp
+ lfsmake2 perl-Data-UUID
lfsmake2 gnupg
lfsmake2 hdparm
lfsmake2 sdparm
lfsmake2 whatmask
lfsmake2 libtirpc
lfsmake2 conntrack-tools
- lfsmake2 libupnp
lfsmake2 ipaddr
lfsmake2 iputils
lfsmake2 l7-protocols
lfsmake2 Crypt-PasswdMD5
lfsmake2 Net-Telnet
lfsmake2 python-setuptools
+ lfsmake2 python3-setuptools
lfsmake2 python3-inotify
lfsmake2 python3-docutils
lfsmake2 python3-daemon
lfsmake2 collectd
lfsmake2 elinks
lfsmake2 igmpproxy
- lfsmake2 fbset
lfsmake2 opus
- lfsmake2 python-pyparsing
+ lfsmake2 python3-pyparsing
lfsmake2 spice-protocol
lfsmake2 spice
lfsmake2 sdl
lfsmake2 libusbredir
lfsmake2 libseccomp
lfsmake2 qemu
- lfsmake2 sane
lfsmake2 netpbm
lfsmake2 netsnmpd
lfsmake2 nagios_nrpe
lfsmake2 perl-DBD-SQLite
lfsmake2 perl-File-ReadBackwards
lfsmake2 openvmtools
- lfsmake2 libmicrohttpd
- lfsmake2 motion
lfsmake2 joe
lfsmake2 monit
lfsmake2 nut
lfsmake2 watchdog
lfsmake2 libpri
- lfsmake2 libsrtp
- lfsmake2 asterisk
lfsmake2 usb_modeswitch
lfsmake2 usb_modeswitch_data
lfsmake2 zerofree
lfsmake2 minicom
lfsmake2 ddrescue
- lfsmake2 miniupnpd
lfsmake2 client175
lfsmake2 powertop
lfsmake2 parted
lfsmake2 python3-msgpack
lfsmake2 aws-cli
lfsmake2 transmission
- lfsmake2 dpfhack
- lfsmake2 lcd4linux
lfsmake2 mtr
lfsmake2 minidlna
lfsmake2 acpid
lfsmake2 libstatgrab
lfsmake2 sarg
lfsmake2 nginx
- lfsmake2 sendEmail
lfsmake2 sysbench
lfsmake2 strace
lfsmake2 ltrace
#
# List of PCI ID's
#
-# Version: 2020.10.25
-# Date: 2020-10-25 03:15:01
+# Version: 2021.05.16
+# Date: 2021-05-16 03:15:02
#
# Maintained by Albert Pool, Martin Mares, and other volunteers from
# the PCI ID Project at https://pci-ids.ucw.cz/.
018a LevelOne
0106 FPC-0106TX misprogrammed [RTL81xx]
01de Oxide Computer Company
+# probably misprogrammed Intel Atom C2338 on Dell 0K8Y0N board
+0200 Dell (wrong ID)
# 021b is not Compaq but there is a board misprogrammed
021b Compaq Computer Corporation
8139 HNE-300 (RealTek RTL8139c) [iPaq Networking]
1000 3040 9210-8i
1000 3080 9200-8e [LSI SAS 6Gb/s SAS/SATA PCIe x8 External HBA]
1000 30b0 9200-8e [LSI SAS 6Gb/s SAS/SATA PCIe x8 External HBA]
+ 1014 03ca IBM 6Gb SAS HBA [9212-4i4e]
1028 1f1c 6Gbps SAS HBA Adapter
1028 1f1d PERC H200 Adapter
1028 1f1e PERC H200 Integrated
1d49 0200 ThinkSystem 430-8i SAS/SATA 12Gb HBA
1d49 0202 ThinkSystem 430-8e SAS/SATA 12Gb HBA
1d49 0204 ThinkSystem 430-8i SAS/SATA 12Gb Dense HBA
-# PCIe switch SES management endpoint
- 00b2 PEX880xx PCIe Gen 4 Switch SES management endpoint
+ 00b2 PCIe Switch management endpoint
+ 1d49 0003 ThinkSystem 1611-8P PCIe Gen4 NVMe Switch Adapter
00be SAS3504 Fusion-MPT Tri-Mode RAID On Chip (ROC)
00bf SAS3404 Fusion-MPT Tri-Mode I/O Controller Chip (IOC)
00c0 SAS3324 PCI-Express Fusion-MPT SAS-3
1d49 060e ThinkSystem RAID 940-32i 8GB Flash PCIe Gen4 12Gb Adapter
1d49 060f ThinkSystem RAID 940-8e 4GB Flash PCIe Gen4 12Gb Adapter
10e2 MegaRAID 12GSAS/PCIe Secure SAS39xx
+# 9560 16 internal port RAID controller
+ 1000 4000 MegaRAID 9560-16i
+# 9560 8 internal port RAID controller
+ 1000 4010 MegaRAID 9560-8i
+# 9580 8 internal & 8 external port RAID controller
+ 1000 4020 MegaRAID 9580-8i8e
+# MegaRAID 9562-16i 9562 16 internal port RAID controller
+ 1000 40b0 MegaRAID 9562-16i
1028 1ae0 PERC H755 Adapter
1028 1ae1 PERC H755 Front
1028 1ae2 PERC H755N Front
8086 0523 MegaRAID RAID Controller SRCS16
3050 SAS2008 PCI-Express Fusion-MPT SAS-2
6001 DX1 Multiformat Broadcast HD/SD Encoder/Decoder
+ c010 PEX88048 50 lane, 50 port, PCI Express Gen 4.0 ExpressFabric Platform
+ c012 PEX880xx PCIe Gen 4 Switch
+ 1d49 0003 ThinkSystem 1611-8P PCIe Gen4 NVMe Switch Adapter
1001 Kolter Electronic
0010 PCI 1616 Measurement card with 32 digital I/O lines
0011 OPTO-PCI Opto-Isolated digital I/O board
1478 Navi 10 XL Upstream Port of PCI Express Switch
1479 Navi 10 XL Downstream Port of PCI Express Switch
154c Kryptos [Radeon RX 350]
+ 1462 7c28 MS-7C28 Motherboard
154e Garfield
1551 Arlene
1552 Pooky
1561 Anubis
15d8 Picasso
103c 8615 Pavilion Laptop 15-cw1xxx
+ 17aa 3181 ThinkCentre M75n IoT
17aa 5124 ThinkPad E595
+ ea50 cc10 RXi2-BP
15dd Raven Ridge [Radeon Vega Series / Radeon Vega Mobile Series]
103c 83c6 Radeon Vega 8 Mobile
+ 1043 876b PRIME Motherboard
1458 d000 Radeon RX Vega 11
+ ea50 cc10 RXi2-BP
15de Raven/Raven2/Fenghuang HDMI/DP Audio Controller
103c 8615 Pavilion Laptop 15-cw1xxx
+ 1043 876b PRIME B450M-A Motherboard
17aa 5124 ThinkPad E595
+ ea50 cc10 RXi2-BP
15df Raven/Raven2/Fenghuang/Renoir Cryptographic Coprocessor
103c 8615 Pavilion Laptop 15-cw1xxx
+ ea50 ce19 mCOM10-L1900
15ff Fenghuang [Zhongshan Subor Z+]
1607 Arden
1636 Renoir
+ 1638 Cezanne
+ 163f VanGogh
+ 164c Lucienne
+ 164d Rembrandt
1714 BeaverCreek HDMI Audio [Radeon HD 6500D and 6400G-6600G series]
103c 168b ProBook 4535s
3150 RV380/M24 [Mobility Radeon X600]
1179 ff50 Satellite P305D-S8995E
1458 a022 GA-MA770-DS3rev2.0 Motherboard
1458 a102 GA-880GMA-USB3
+ 1462 7596 760GM-E51(MS-7596) Motherboard
17f2 5000 KI690-AM2 Motherboard
4384 SBx00 PCI to PCI Bridge
4385 SBx00 SMBus Controller
1179 ff50 Satellite P305D-S8995E
1458 4385 GA-MA770-DS3rev2.0 Motherboard
1462 7368 K9AG Neo2
+ 1462 7596 760GM-E51(MS-7596) Motherboard
15d9 a811 H8DGU
174b 1001 PURE Fusion Mini
17f2 5000 KI690-AM2 Motherboard
1043 8389 M4A785TD Motherboard
105b 0e13 N15235/A74MX mainboard / AMD SB700
1458 b002 GA-MA770-DS3rev2.0 Motherboard
+ 1462 7596 760GM-E51(MS-7596) Motherboard
1849 4390 Motherboard (one of many)
4391 SB7x0/SB8x0/SB9x0 SATA Controller [AHCI mode]
103c 1609 ProLiant MicroServer N36L
1043 8443 M5A88-V EVO
105b 0e13 N15235/A74MX mainboard / AMD SB700
1458 5004 GA-880GMA-USB3
+ 1462 7596 760GM-E51(MS-7596) Motherboard
15d9 a811 H8DGU
174b 1001 PURE Fusion Mini
4397 SB7x0/SB8x0/SB9x0 USB OHCI0 Controller
1043 8443 M5A88-V EVO
105b 0e13 N15235/A74MX mainboard / AMD SB700
1458 5004 GA-880GMA-USB3
+ 1462 7596 760GM-E51(MS-7596) Motherboard
15d9 a811 H8DGU
174b 1001 PURE Fusion Mini
4398 SB7x0 USB OHCI1 Controller
1019 2120 A785GM-M
1043 82ef M3A78-EH Motherboard
105b 0e13 N15235/A74MX mainboard / AMD SB700
+ 1462 7596 760GM-E51(MS-7596) Motherboard
15d9 a811 H8DGU
4399 SB7x0/SB8x0/SB9x0 USB OHCI2 Controller
1019 2120 A785GM-M
1043 8443 M5A88-V EVO
105b 0e13 N15235/A74MX mainboard / AMD SB700
1458 5004 GA-880GMA-USB3
+ 1462 7596 760GM-E51(MS-7596) Motherboard
174b 1001 PURE Fusion Mini
439c SB7x0/SB8x0/SB9x0 IDE Controller
1002 4392 MSI MS-7713 motherboard
103c 1609 ProLiant MicroServer N36L
1043 82ef M3A78-EH Motherboard
105b 0e13 N15235/A74MX mainboard / AMD SB700
+ 1462 7596 760GM-E51(MS-7596) Motherboard
439d SB7x0/SB8x0/SB9x0 LPC host controller
1019 2120 A785GM-M
103c 1609 ProLiant MicroServer N36L
1043 82ef M3A78-EH Motherboard
1043 8443 M5A88-V EVO
105b 0e13 N15235/A74MX mainboard / AMD SB700
+ 1462 7596 760GM-E51(MS-7596) Motherboard
174b 1001 PURE Fusion Mini
43a0 SB700/SB800/SB900 PCI to PCI bridge (PCIE port 0)
43a1 SB700/SB800/SB900 PCI to PCI bridge (PCIE port 1)
5964 RV280 [Radeon 9200 SE]
1002 5964 Radeon 9200 SE, 64-bit 128MB DDR, 200/166MHz
1043 c006 Radeon 9200 SE / TD / 128M
- 1458 4018 Radeon 9200 SE
+ 1458 4018 R92S128T (Radeon 9200 SE 128MB)
1458 4032 Radeon 9200 SE 128MB
147b 6191 R9200SE-DT
148c 2073 CN-AG92E
1002 5c63 Apple iBook G4 2004
144d c00c P30 notebook
5d44 RV280 [Radeon 9200 SE] (Secondary)
- 1458 4019 Radeon 9200 SE (Secondary)
+ 1458 4019 R92S128T (Radeon 9200 SE 128MB Secondary)
1458 4032 Radeon 9200 SE 128MB
147b 6190 R9200SE-DT (Secondary)
174b 7c12 Radeon 9200 SE (Secondary)
5e6d RV410 [Radeon X700] (Secondary)
148c 2117 Bravo X700 (Secondary)
5f57 R423 [Radeon X800 XT]
- 6600 Mars [Radeon HD 8670A/8670M/8750M]
+ 6600 Mars [Radeon HD 8670A/8670M/8750M / R7 M370]
103c 1952 ProBook 455 G1
6601 Mars [Radeon HD 8730M]
103c 2100 FirePro M4100
6607 Mars LE [Radeon HD 8530M / R5 M240]
6608 Oland GL [FirePro W2100]
13cc 3d28 MXRT-2600
- 6610 Oland XT [Radeon HD 8670 / R7 250/350]
+ 6609 Oland GL [FirePro W2100 / Barco MXRT 2600]
+ 6610 Oland XT [Radeon HD 8670 / R5 340X OEM / R7 250/350/350X OEM]
1019 0030 Radeon HD 8670
+ 1028 0081 Radeon R7 350X OEM
+ 1028 0083 Radeon R5 340X OEM
1028 2120 Radeon R7 250
1028 2322 Radeon R7 250
1462 2910 Radeon HD 8670
1642 3c91 Radeon HD 8670
1642 3f09 Radeon R7 350
6611 Oland [Radeon HD 8570 / R5 430 OEM / R7 240/340 / Radeon 520 OEM]
+ 1028 1001 Radeon R5 430 OEM (1024 MByte)
+ 1028 1002 Radeon R5 430 OEM (2048 MByte)
+# The 'AMD Radeon R5 430' instead of 240/340 is NOT a typo! It's actually correct.
+ 1028 1711 R5 430 OEM (2048 MByte)
1028 210b Radeon R5 240 OEM
+# OEM-card for Dell; verified through AMD's own drivers (*.inf) and a TPU BIOS in database
+ 1028 2121 Radeon HD 8570 OEM
+# OEM-card from Fujitsu; verified through AMD's own drivers (*.inf)
+ 10cf 1889 Radeon HD 8570 OEM
1642 1869 Radeon 520 OEM
174b 4248 Radeon R7 240 OEM
174b a240 Radeon R7 240 OEM
6667 Jet ULT [Radeon R5 M230]
666f Sun LE [Radeon HD 8550M / R5 M230]
66a0 Vega 20 [Radeon Instinct]
- 66a1 Vega 20
+ 66a1 Vega 20 WKS GL-XE [Radeon Pro VII]
66a2 Vega 20
- 66a3 Vega 20
+ 66a3 Vega 20 [Radeon Pro Vega II/Radeon Pro Vega II Duo]
66a7 Vega 20 [Radeon Pro Vega 20]
66af Vega 20 [Radeon VII]
6704 Cayman PRO GL [FirePro V7900]
8086 2111 Radeon HD 6625M
6743 Whistler [Radeon E6760]
6749 Turks GL [FirePro V4900]
- 15c3 2b06 MED-X4900
+ 15c3 2b06 MED-X4900 (EIZO)
674a Turks GL [FirePro V3900]
13cc 3d22 MXRT-2500
15c3 0106 MED-X3900
174b 7670 Radeon HD 7670
174b e181 Radeon HD 6670
1787 2309 Radeon HD 6670
- 6759 Turks PRO [Radeon HD 6570/7570/8550]
+ 6759 Turks PRO [Radeon HD 6570/7570/8550 / R5 230]
103c 3130 Radeon HD 6570
1043 0403 Radeon HD 6570
1462 2500 Radeon HD 6570
1642 3a67 Radeon HD 6570
1682 3280 Radeon HD 7570
1682 3530 Radeon HD 8550
+ 1682 5230 Radeon R5 230 series
+ 1682 6450 Radeon HD 6450 series
174b 7570 Radeon HD 7570
+ 174b 8550 Radeon HD8550 OEM
+ 174b 8570 Radeon HD8550 OEM
174b e142 Radeon HD 6570
174b e181 Radeon HD 6570
+ 1787 a230 Radeon R5 230 series
+ 1787 a450 Radeon HD 6450 series
1b0a 908f Radeon HD 6570
1b0a 9090 Radeon HD 6570
1b0a 9091 Radeon HD 6570
1043 04dd STRIX R9 390
148c 2358 Radeon R9 390
174b e324 Sapphire Nitro R9 390
+ 67b8 Hawaii XT [Radeon R9 290X Engineering Sample]
67b9 Vesuvius [Radeon R9 295X2]
67be Hawaii LE
67c0 Ellesmere [Radeon Pro WX 7100 Mobile]
1462 3418 Radeon RX 580 Armor 4G OC
1462 341b Radeon RX 570 Armor 8G OC
1462 341e Radeon RX 570 Armor 4G OC
+ 1462 809e Radeon RX 480 4GB
1462 8a92 Radeon RX 580
148c 2372 Radeon RX 480 [Red Dragon]
148c 2373 Radeon RX 470
# https://www.techpowerup.com/vgabios/?manufacturer=Powercolor&model=RX+580
148c 2378 Radeon RX 580
148c 2379 Radeon RX 570 4G [Red Dragon]
+ 148c 2391 Radeon RX 590 [Red Devil]
1682 9470 Radeon RX 470
1682 9480 Radeon RX 480
+ 1682 9587 Radeon RX 590 FATBOY 8GB
1682 9588 Radeon RX 580 XTR
1682 c570 Radeon RX 570
1682 c580 Radeon RX 580
17aa 3643 Radeon R9 A375
17aa 3801 Radeon R9 M275
17aa 3824 Radeon R9 M375
+ 1da2 e26a Radeon R7 250
6821 Venus XT [Radeon HD 8870M / R9 M270X/M370X]
1002 031e FirePro SX4000
1028 05cc FirePro M5100
6864 Vega 10 [Radeon Pro V340]
6867 Vega 10 XL [Radeon Pro Vega 56]
6868 Vega 10 [Radeon PRO WX 8100/8200]
+ 6869 Vega 10 XGA [Radeon Pro Vega 48]
+ 686a Vega 10 LEA
+ 686b Vega 10 XTXA [Radeon Pro Vega 64X]
686c Vega 10 [Radeon Instinct MI25 MxGPU]
+ 686d Vega 10 GLXTA
+ 686e Vega 10 GLXLA
687f Vega 10 XL/XT [Radeon RX Vega 56/64]
1002 0b36 RX Vega64
1002 6b76 RX Vega64
1458 230c Radeon RX VEGA 56 GAMING OC 8G
+ 1da2 e376 Radeon RX VEGA 56 Pulse 8GB OC HBM2
6880 Lexington [Radeon HD 6550M]
103c 163c Pavilion dv6 Radeon HD 6550M
6888 Cypress XT [FirePro V8800]
17af 3000 Radeon HD 6510
17af 3010 Radeon HD 5630
68da Redwood LE [Radeon HD 5550/5570/5630/6390/6490/7570]
+ 1462 8071 VR5550-MD1G (Radeon HD 5550)
148c 3000 Radeon HD 6390
148c 3001 Radeon HD 6490
1545 7570 Radeon HD 7570
148c 9380 Radeon R9 380
# Make naming scheme consistent
174b e308 Radeon R9 380 Nitro 4G D5
+ 174b e315 Radeon R9 285
693b Tonga PRO GL [FirePro W7100 / Barco MXRT-7600]
694c Polaris 22 XT [Radeon RX Vega M GH]
694e Polaris 22 XL [Radeon RX Vega M GL]
6985 Lexa XT [Radeon PRO WX 3100]
6986 Polaris12
6987 Lexa [Radeon 540X/550X/630 / RX 640 / E9171 MCM]
+ 698f Lexa XT [Radeon PRO WX 3100 / Barco MXRT 4700]
6995 Lexa XT [Radeon PRO WX 2100]
699f Lexa PRO [Radeon 540/540X/550/550X / RX 540X/550/550X]
1028 1720 Radeon RX 550X
174b e329 Radeon R9 FURY
7310 Navi 10 [Radeon Pro W5700X]
7312 Navi 10 [Radeon Pro W5700]
+ 7314 Navi 10 USB
731f Navi 10 [Radeon RX 5600 OEM/5600 XT / 5700/5700 XT]
1458 2313 Radeon RX 5700 XT Gaming OC
+ 1682 5701 RX 5700 XT RAW II
+ 1849 5120 Radeon RX 5600 XT
1da2 e411 Radeon RX 5600 XT
7340 Navi 14 [Radeon RX 5500/5500M / Pro 5500M]
7341 Navi 14 [Radeon Pro W5500]
7347 Navi 14 [Radeon Pro W5500M]
734f Navi 14 [Radeon Pro W5300M]
- 7360 Navi 12 [Radeon Pro 5600M]
- 73bf Navi 21 [Radeon RX 6900 Series]
- 73c3 Navi 23
- 73df Navi 22
+ 7360 Navi 12 [Radeon Pro 5600M / V520]
+ 7362 Navi 12 [Radeon Pro V520]
+ 7388 Arcturus GL-XL
+ 738c Arcturus GL-XL [AMD Instinct MI100]
+ 738e Arcturus GL-XL
+ 73a3 Navi 21 [Radeon PRO W6800]
+ 73a4 Navi 21 USB
+ 73af Navi 21 [Radeon RX 6900 XT]
+ 73bf Navi 21 [Radeon RX 6800/6800 XT / 6900 XT]
+ 1eae 6701 XFX Speedster MERC 319 AMD Radeon RX 6800 XT Black
+ 73c3 Navi 22
+ 73c4 Navi 22 USB
+ 73df Navi 22 [Radeon RX 6700/6700 XT / 6800M]
+ 73e0 Navi 23
+ 73e1 Navi 23
+ 73e4 Navi 23 USB
+ 73ff Navi 23 [Radeon RX 6600/6600 XT/6600M]
+ 7408 Aldebaran
+ 740c Aldebaran
+ 740f Aldebaran
7833 RS350 Host Bridge
7834 RS350 [Radeon 9100 PRO/XT IGP]
7835 RS350M [Mobility Radeon 9000 IGP]
95cd RV620 GL [FirePro 2450]
95cf RV620 GL [FirePro 2260]
960f RS780 HDMI Audio [Radeon 3000/3100 / HD 3200/3300]
+ 1462 7596 760GM-E51(MS-7596) Motherboard
9610 RS780 [Radeon HD 3200]
1458 d000 GA-MA78GM-S2H Motherboard
9611 RS780C [Radeon 3100]
9614 RS780D [Radeon HD 3300]
9615 RS780E [Radeon HD 3200]
9616 RS780L [Radeon 3000]
+# ID is probably a copy-paste error by a MSI developer from another mainboard, since all other ID numbers on this mainboard including the sub-device of this device has used subsystem ID 1462:7596
+ 1462 7501 760GM-E51(MS-7596) Motherboard
9640 Sumo [Radeon HD 6550D]
9641 Sumo [Radeon HD 6620G]
9642 SuperSumo [Radeon HD 6370D]
9809 Wrestler [Radeon HD 7310]
980a Wrestler [Radeon HD 7290]
9830 Kabini [Radeon HD 8400 / R3 Series]
+ 1043 8623 AM1I-A Motherboard
9831 Kabini [Radeon HD 8400E]
9832 Kabini [Radeon HD 8330]
1849 9832 QC5000-ITX/PH
9839 Kabini [Radeon HD 8180]
983d Temash [Radeon HD 8250/8280G]
9840 Kabini HDMI/DP Audio
+ 1043 8623 AM1I-A Motherboard
1849 9840 QC5000-ITX/PH
9850 Mullins [Radeon R3 Graphics]
9851 Mullins [Radeon R4/R5 Graphics]
ab10 Lexa HDMI Audio
ab18 Vega 12 HDMI Audio
ab20 Vega 20 HDMI Audio [Radeon VII]
+ ab28 Navi 21 HDMI Audio [Radeon RX 6800/6800 XT / 6900 XT]
ab38 Navi 10 HDMI Audio
ac00 Theater 506 World-Wide Analog Decoder
ac01 Theater 506 World-Wide Analog Decoder
2646 0001 KNE100TX Fast Ethernet
000a 21230 Video Codec
000d PBXGB [TGA2]
- 000f DEFPA FDDI PCI-to-PDQ Interface Chip [PFI]
- 1011 def1 FDDI controller (DEFPA)
- 103c def1 FDDI controller (3X-DEFPA)
+ 000f PCI-to-PDQ Interface Chip [PFI] FDDI (DEFPA)
+ 1011 def1 FDDIcontroller/PCI (DEFPA)
+ 103c def1 FDDIcontroller/PCI (3X-DEFPA)
0014 DECchip 21041 [Tulip Pass 3]
1186 0100 DE-530+
- 0016 DGLPB [OPPO]
+ 0016 ATMworks 350 Adapter [OPPO] (DGLPB)
0017 PV-PCI Graphics Controller (ZLXp-L)
0018 Memory Channel interface
0019 DECchip 21142/43
1450 Family 17h (Models 00h-0fh) Root Complex
1451 Family 17h (Models 00h-0fh) I/O Memory Management Unit
1452 Family 17h (Models 00h-1fh) PCIe Dummy Host Bridge
+ ea50 ce19 mCOM10-L1900
1453 Family 17h (Models 00h-0fh) PCIe GPP Bridge
1454 Family 17h (Models 00h-0fh) Internal PCIe GPP Bridge 0 to Bus B
1455 Zeppelin/Renoir PCIe Dummy Function
149b Starship Reserved SSP
149c Matisse USB 3.0 Host Controller
1462 7c37 X570-A PRO motherboard
+ 149d Vangogh CVIP
1510 Family 14h Processor Root Complex
174b 1001 PURE Fusion Mini
1512 Family 14h Processor Root Port
1534 Family 16h Processor Function 4
1535 Family 16h Processor Function 5
1536 Family 16h Processor Root Complex
+ 1043 8623 AM1I-A Motherboard
1849 1536 QC5000-ITX/PH
1537 Kabini/Mullins PSP-Platform Security Processor
1538 Family 16h Processor Function 0
15be Stoney Audio Processor
15d0 Raven/Raven2 Root Complex
103c 8615 Pavilion Laptop 15-cw1xxx
+ 1043 876b PRIME B450M-A Motherboard
15d1 Raven/Raven2 IOMMU
103c 8615 Pavilion Laptop 15-cw1xxx
+ 1043 876b PRIME B450M-A Motherboard
+ ea50 ce19 mCOM10-L1900
15d2 Raven/Raven2 PCIe Dummy Host Bridge
15d3 Raven/Raven2 PCIe GPP Bridge [6:0]
15d4 FireFlight USB 3.1
15d5 FireFlight USB 3.1
15da Raven/Raven2 PCIe Dummy Host Bridge
15db Raven/Raven2 Internal PCIe GPP Bridge 0 to Bus A
+ ea50 ce19 mCOM10-L1900
15dc Raven/Raven2 Internal PCIe GPP Bridge 0 to Bus B
+ ea50 ce19 mCOM10-L1900
15de Raven/Raven2/FireFlight HD Audio Controller
15df Family 17h (Models 10h-1fh) Platform Security Processor
+ 1043 876b PRIME Motherboard
17aa 5124 ThinkPad E595
+ ea50 ce19 mCOM10-L1900
15e0 Raven USB 3.1
103c 8615 Pavilion Laptop 15-cw1xxx
+ 1043 876b PRIME Motherboard
17aa 5124 ThinkPad E595
+ ea50 ce19 mCOM10-L1900
15e1 Raven USB 3.1
103c 8615 Pavilion Laptop 15-cw1xxx
+ 1043 876b PRIME Motherboard
17aa 5124 ThinkPad E595
+ ea50 ce19 mCOM10-L1900
15e2 Raven/Raven2/FireFlight/Renoir Audio Processor
17aa 5124 ThinkPad E595
15e3 Family 17h (Models 10h-1fh) HD Audio Controller
103c 8615 Pavilion Laptop 15-cw1xxx
+ 1043 86c7 PRIME B450M-A Motherboard
17aa 5124 ThinkPad E595
15e4 Raven/Raven2/Renoir Sensor Fusion Hub
15e5 Raven2 USB 3.1
1642 Renoir WLAN
1643 Renoir BT
1644 Renoir I2S
+ 1648 VanGogh Root Complex
+ 1649 VanGogh PSP/CCP
1700 Family 12h/14h Processor Function 0
1701 Family 12h/14h Processor Function 1
1702 Family 12h/14h Processor Function 2
4c53 1030 PC5 mainboard
4c53 1040 CL7 mainboard
4c53 1060 PC7 mainboard
- 2001 79c978 [HomePNA]
+# Via AMD's own technical reference on their Am79C978 NICs; https://www.amd.com/system/files/TechDocs/22206.pdf
+ 2001 Am79C978 PCnet Home (HomePNA) 1/10 PCI Ethernet Adapter [Am79C971 PHY]
1092 0a78 Multimedia Home Network Adapter
1668 0299 ActionLink Home Network Adapter
2003 Am 1771 MBW [Alchemy]
2096 CS5536 [Geode companion] UDC
2097 CS5536 [Geode companion] UOC
209a CS5536 [Geode companion] IDE
+ 2625 Am79C973 [Lance/PCI PCNet/32]
+ 2627 Am79C975 [Lance/PCI PCNet/32]
3000 ELanSC520 Microcontroller
43a0 Hudson PCI to PCI bridge (PCIE port 0)
43a1 Hudson PCI to PCI bridge (PCIE port 1)
7801 FCH SATA Controller [AHCI mode]
103c 168b ProBook 4535s Notebook
103c 194e ProBook 455 G1 Notebook
+ 1043 8623 AM1I-A Motherboard
17aa 3988 Z50-75
1849 7801 QC5000-ITX/PH
7802 FCH SATA Controller [RAID mode]
7807 FCH USB OHCI Controller
103c 194e ProBook 455 G1 Notebook
103c 1985 Pavilion 17-e163sg Notebook PC
+ 1043 8623 AM1I-A Motherboard
17aa 3988 Z50-75
1849 7807 QC5000-ITX/PH
7808 FCH USB EHCI Controller
103c 194e ProBook 455 G1 Notebook
103c 1985 Pavilion 17-e163sg Notebook PC
+ 1043 8623 AM1I-A Motherboard
17aa 3988 Z50-75
1849 7808 QC5000-ITX/PH
7809 FCH USB OHCI Controller
780b FCH SMBus Controller
103c 194e ProBook 455 G1 Notebook
103c 1985 Pavilion 17-e163sg Notebook PC
+ 1043 8623 AM1I-A Motherboard
17aa 3988 Z50-75
1849 780b QC5000-ITX/PH
780c FCH IDE Controller
103c 194e ProBook 455 G1 Notebook
103c 1985 Pavilion 17-e163sg Notebook PC
1043 8444 F2A85-M Series
+ 1043 8576 AM1I-A Motherboard
17aa 3988 Z50-75
1849 8892 QC5000-ITX/PH
780e FCH LPC Bridge
103c 194e ProBook 455 G1 Notebook
103c 1985 Pavilion 17-e163sg Notebook PC
+ 1043 8623 AM1I-A Motherboard
17aa 3988 Z50-75
1849 780e QC5000-ITX/PH
780f FCH PCI Bridge
7814 FCH USB XHCI Controller
103c 194e ProBook 455 G1 Notebook
103c 1985 Pavilion 17-e163sg Notebook PC
+ 1043 8623 AM1I-A Motherboard
17aa 3988 Z50-75
1849 7814 QC5000-ITX/PH
7900 FCH SATA Controller [IDE mode]
7901 FCH SATA Controller [AHCI mode]
103c 8615 Pavilion Laptop 15-cw1xxx
+ 1043 876b PRIME Motherboard
1462 7c37 X570-A PRO motherboard
+ ea50 ce19 mCOM10-L1900
7902 FCH SATA Controller [RAID mode]
7903 FCH SATA Controller [RAID mode]
7904 FCH SATA Controller [AHCI mode]
7908 FCH USB EHCI Controller
790b FCH SMBus Controller
103c 8615 Pavilion Laptop 15-cw1xxx
+ 1043 876b PRIME Motherboard
1462 7c37 X570-A PRO motherboard
17aa 5124 ThinkPad E595
+ ea50 ce19 mCOM10-L1900
790e FCH LPC Bridge
103c 8615 Pavilion Laptop 15-cw1xxx
+ 1043 876b PRIME B450M-A Motherboard
1462 7c37 X570-A PRO motherboard
17aa 5124 ThinkPad E595
+ ea50 ce19 mCOM10-L1900
790f FCH PCI Bridge
7914 FCH USB XHCI Controller
9600 RS780 Host Bridge
1931 000a GlobeTrotter Fusion Quad Lite (PPP data)
1931 000b GlobeTrotter Fusion Quad Lite (GSM data)
807d 0035 PCI-USB2 (OHCI subsystem)
+ 8086 4d44 D850EMV2 motherboard
003b PCI to C-bus Bridge
003e NAPCCARD Cardbus Controller
0046 PowerVR PCX2 [midas]
14c2 0205 PTI-205N USB 2.0 Host Controller
1799 0002 Root Hub
807d 1043 PCI-USB2 (EHCI subsystem)
+ 8086 4d44 D850EMV2 motherboard
00e7 uPD72873 [Firewarden] IEEE1394a OHCI 1.1 Link/2-port PHY Controller
00f2 uPD72874 [Firewarden] IEEE1394a OHCI 1.1 Link/3-port PHY Controller
00f3 uPD6113x Multimedia Decoder/Processor [EMMA2]
0003 Control Video
0004 PlanB Video-In
0007 O'Hare I/O
+ 000b Apple Camera
000c DOS on Mac
000e Hydra Mac I/O
0010 Heathrow Mac I/O
103c 17e8 SN1000Q 16Gb Dual Port Fibre Channel Adapter
103c 1939 QMH2672 16Gb Dual Port Fibre Channel Adapter
103c 8002 3830C 16G Fibre Channel Host Bus Adapter
+ 1077 0241 QLE2670 16Gb Single Port Fibre Channel Adapter
2071 ISP2714-based 16/32Gb Fibre Channel to PCIe Adapter
1077 0283 QLE2764 Quad Port 32Gb Fibre Channel to PCIe Adapter
1077 029e QLE2694 Quad Port 16Gb Fibre Channel to PCIe Adapter
2081 ISP2814-based 64/32G Fibre Channel to PCIe Controller
1077 02e1 QLE2874 Quad Port 64GFC PCIe Gen4 x16 Adapter
1077 02e3 QLE2774 Quad Port 32GFC PCIe Gen4 x16 Adapter
+ 2089 ISP2854-based 64/32G Fibre Channel to PCIe Controller with StorCryption
+ 1077 02e8 QLE2884 Quad Port 64GFC PCIe Gen4 x16 Adapter with StorCryption
+ 1077 02ea QLE2784 Quad Port 32GFC PCIe Gen4 x16 Adapter with StorCryption
2100 QLA2100 64-bit Fibre Channel Adapter
1077 0001 QLA2100 64-bit Fibre Channel Adapter
2200 QLA2200 64-bit Fibre Channel Adapter
1590 0203 StoreFabric SN1600Q 32Gb Single Port Fibre Channel Host Bus Adapter
1590 0204 StoreFabric SN1600Q 32Gb Dual Port Fibre Channel Host Bus Adapter
1590 022d 5830C 32Gb Dual Port Fibre Channel Adapter
+ 193d 100d NIC-FC680i-Mb-2x16G
2281 ISP2812-based 64/32G Fibre Channel to PCIe Controller
1077 02e2 QLE2872 Dual Port 64GFC PCIe Gen4 x8 Adapter
1077 02e4 QLE2772 Dual Port 32GFC PCIe Gen4 x8 Adapter
1077 02f3 QLogic 2x32Gb QLE2772 FC HBA
1590 02d3 SN1610Q - 1P Enhanced 32GFC Single Port Fibre Channel Host Bus Adapter
1590 02d4 SN1610Q – 2P Enhanced 32GFC Dual Port Fibre Channel Host Bus Adapter
+ 2289 ISP2852-based 64/32G Fibre Channel to PCIe Controller with StorCryption
+ 1077 02e9 QLE2882 Dual Port 64GFC PCIe Gen4 x8 Adapter with StorCryption
+ 1077 02eb QLE2782 Dual Port 32GFC PCIe Gen4 x8 Adapter with StorCryption
+ 1077 02ef QLE2880 Single Port 64GFC PCIe Gen4 x8 Adapter with StorCryption
+ 1077 02f1 QLE2780 Single Port 32GFC PCIe Gen4 x8 Adapter with StorCryption
2300 QLA2300 64-bit Fibre Channel Adapter
2312 ISP2312-based 2Gb Fibre Channel to PCI-X HBA
103c 0131 2Gb Fibre Channel - Single port [A7538A]
103c 12dd 4Gb Fibre Channel [AB429A]
2432 ISP2432-based 4Gb Fibre Channel to PCI Express HBA
103c 7040 FC1142SR 4Gb 1-port PCIe Fibre Channel Host Bus Adapter [HPAE311A]
- 1077 0137 QLE2460 4 GB PCI-X Host-Bus-Adapter
+ 1077 0137 QLE2460 Single-Port 4Gbps FC-to-PCI-X/PCIe Host Bus Adapter
+ 1077 0138 QLE2462 Dual-Port 4Gbps FC-to-PCI-X/PCIe Host Bus Adapter
2532 ISP2532-based 8Gb Fibre Channel to PCI Express HBA
1014 041e FC EN0Y/EN12 PCIe2 LP 8 Gb 4-port Fibre Channel Adapter for POWER
103c 3262 StorageWorks 81Q
1590 021f 10/25GbE 2P QL41262HMCU-HP Adapter
1590 0220 10/25GbE 2P QL41122HLRJ-HP Adapter
1590 02bd 10Gb 2P 524SFP+ NIC
+ 193d 1030 NIC-ETH681i-Mb-2x25G
+ 193d 1032 NIC-ETH682i-Mb-2x25G
8080 FastLinQ QL41000 Series 10/25/40/50GbE Controller (FCoE)
1077 0001 10GE 2P QL41162HxRJ-DE Adapter
1077 0002 10GE 2P QL41112HxCU-DE Adapter
10b5 2905 Alpermann+Velte PCI TS: Time Synchronisation Board
10b5 3196 Goramo PLX200SYN sync serial card
10b5 9050 PCI-I04 PCI Passive PC/CAN Interface
+ 12fe 0001 CAN-PCI/331 CAN bus controller
1369 8901 PCX11+ PCI
1369 8f01 VX222
1369 9401 PCX924
1682 211c GeForce 6600 256MB DDR DUAL DVI TV
00f3 NV43 [GeForce 6200]
00f4 NV43 [GeForce 6600 LE]
- 00f5 G71 [GeForce 7800 GS AGP]
+ 00f5 G70/G71 [GeForce 7800 GS AGP]
00f6 NV43 [GeForce 6800 GS/XT]
1682 217e XFX GeForce 6800 XTreme 256MB DDR3 AGP
00f8 NV45GL [Quadro FX 3400/4400]
0331 NV35 [GeForce FX 5900]
1043 8145 V9950GE
0332 NV35 [GeForce FX 5900XT]
- 0333 NV38 [GeForce FX 5950 Ultra]
+ 0333 NV38 [GeForce FX 5950 Ultra / PCX 5950]
0334 NV35 [GeForce FX 5900ZT]
1462 9373 FX5900ZT-VTD128 (MS-8937)
0338 NV35GL [Quadro FX 3000]
0a21 GT216M [GeForce GT 330M]
0a22 GT216 [GeForce 315]
0a23 GT216 [GeForce 210]
+ 0a24 GT216 [GeForce 405]
0a26 GT216 [GeForce 405]
0a27 GT216 [GeForce 405]
0a28 GT216M [GeForce GT 230M]
1184 GK104 [GeForce GTX 770]
1185 GK104 [GeForce GTX 660 OEM]
10de 106f GK104 [GeForce GTX 760 OEM]
+ 1186 GK104 [GeForce GTX 660 Ti]
1187 GK104 [GeForce GTX 760]
1188 GK104 [GeForce GTX 690]
1189 GK104 [GeForce GTX 670]
128a GK208B
128b GK208B [GeForce GT 710]
1043 85f7 GT710-SL-1GD5
+ 1043 8770 GT710-4H-SL-2GD5
128c GK208B
1290 GK208M [GeForce GT 730M]
103c 2afa GeForce GT 730A
1aeb TU116 High Definition Audio Controller
1aec TU116 USB 3.1 Host Controller
1aed TU116 USB Type-C UCSI Controller
+ 1aef GA102 High Definition Audio Controller
1b00 GP102 [TITAN X]
1b01 GP102 [GeForce GTX 1080 Ti 10GB]
1b02 GP102 [TITAN Xp]
1b07 GP102 [P102-100]
1b30 GP102GL [Quadro P6000]
1b38 GP102GL [Tesla P40]
+ 1b39 GP102GL [Tesla P10]
1b70 GP102GL
1b78 GP102GL
1b80 GP104 [GeForce GTX 1080]
1c2d GP106M
1c30 GP106GL [Quadro P2000]
1c31 GP106GL [Quadro P2200]
- 1c35 GP106
- 1c36 GP106
+ 1c35 GP106M [Quadro P2000 Mobile]
+ 1c36 GP106 [P106M]
1c60 GP106BM [GeForce GTX 1060 Mobile 6GB]
103c 8390 GeForce GTX 1060 Max-Q 6GB
1c61 GP106BM [GeForce GTX 1050 Ti Mobile]
1e04 TU102 [GeForce RTX 2080 Ti]
1e07 TU102 [GeForce RTX 2080 Ti Rev. A]
1462 3715 RTX 2080 Ti GAMING X TRIO
+ 1e09 TU102 [CMP 50HX]
1e2d TU102 [GeForce RTX 2080 Ti Engineering Sample]
1e2e TU102 [GeForce RTX 2080 Ti 12GB Engineering Sample]
1e30 TU102GL [Quadro RTX 6000/8000]
1f08 TU106 [GeForce RTX 2060 Rev. A]
1f09 TU106 [GeForce GTX 1660 SUPER]
1f0a TU106 [GeForce GTX 1650]
+ 1f0b TU106 [CMP 40HX]
1f10 TU106M [GeForce RTX 2070 Mobile]
1f11 TU106M [GeForce RTX 2060 Mobile]
1f12 TU106M [GeForce RTX 2060 Max-Q]
1f98 TU117M [GeForce MX450]
1f99 TU117M
1f9c TU117M [GeForce MX450]
+ 1f9d TU117M [GeForce GTX 1650 Mobile / Max-Q]
1fae TU117GL
+ 1fb0 TU117GLM [Quadro T1000 Mobile]
+ 1fb1 TU117GLM [Quadro T600 Mobile]
+ 1fb2 TU117GLM [Quadro T400 Mobile]
1fb8 TU117GLM [Quadro T2000 Mobile / Max-Q]
1fb9 TU117GLM [Quadro T1000 Mobile]
+ 1fbb TU117GLM [Quadro T500 Mobile]
1fbf TU117GL
1fd9 TU117BM [GeForce GTX 1650 Mobile Refresh]
+ 1fdd TU117BM [GeForce GTX 1650 Mobile Refresh]
1ff9 TU117GLM [Quadro T1000 Mobile]
20b0 GA100 [A100 SXM4 40GB]
20b1 GA100 [A100 PCIe 40GB]
+ 20b2 GA100 [A100 SXM4 80GB]
+ 20b6 GA100GL [PG506-232]
+ 20b7 GA100GL [A30 PCIe]
20be GA100 [GRID A100A]
20bf GA100 [GRID A100B]
20f1 GA100 [A100 PCIe 40GB]
2184 TU116 [GeForce GTX 1660]
2187 TU116 [GeForce GTX 1650 SUPER]
2188 TU116 [GeForce GTX 1650]
+ 2189 TU116 [CMP 30HX]
2191 TU116M [GeForce GTX 1660 Ti Mobile]
2192 TU116M [GeForce GTX 1650 Ti Mobile]
21ae TU116GL
21bf TU116GL
+ 21c2 TU116
21c4 TU116 [GeForce GTX 1660 SUPER]
21d1 TU116BM [GeForce GTX 1660 Ti Mobile]
+ 2200 GA102
2204 GA102 [GeForce RTX 3090]
- 2206 GA102 [GeForce RTX 3080 10GB / 20GB]
+ 2205 GA102 [GeForce RTX 3080 20GB]
+ 2206 GA102 [GeForce RTX 3080]
+ 10de 1467 GA102 [GeForce RTX 3080]
10de 146d GA102 [GeForce RTX 3080 20GB]
1462 3892 RTX 3080 10GB GAMING X TRIO
+ 2208 GA102 [GeForce RTX 3080 Ti]
+ 220d GA102 [GeForce RTX 3080 Lite Hash Rate]
222b GA102 [GeForce RTX 3090 Engineering Sample]
222f GA102 [GeForce RTX 3080 11GB / 12GB Engineering Sample]
2230 GA102GL [RTX A6000]
+ 2231 GA102GL [RTX A5000]
+ 2235 GA102GL [A40]
+ 2236 GA102GL [A10]
+ 2237 GA102GL [A10G]
223f GA102GL
+ 228b GA104 High Definition Audio Controller
+ 2302 GA103
+ 2321 GA103
2482 GA104 [GeForce RTX 3070 Ti]
- 2484 GA104 [GeForce RTX 3070 8GB / 16GB]
+ 2483 GA104
+ 2484 GA104 [GeForce RTX 3070]
10de 146b GA104 [GeForce RTX 3070]
10de 14ae GA104 [GeForce RTX 3070 16GB]
2486 GA104 [GeForce RTX 3060 Ti]
- 249c GA104M [GeForce RTX 3070 Mobile / Max-Q]
+ 249c GA104M [GeForce RTX 3080 Mobile / Max-Q 8GB/16GB]
249d GA104M [GeForce RTX 3070 Mobile / Max-Q]
+ 249f GA104M
24ac GA104 [GeForce RTX 30x0 Engineering Sample]
24ad GA104 [GeForce RTX 3060 Engineering Sample]
24af GA104 [GeForce RTX 3070 Engineering Sample]
+ 24b0 GA104GL [RTX A4000]
+ 24b6 GA104GLM [RTX A5000 Mobile]
+ 24b7 GA104GLM [RTX A4000 Mobile]
+ 24b8 GA104GLM [RTX A3000 Mobile]
24bf GA104 [GeForce RTX 3070 Engineering Sample]
- 24dc GA104 [GeForce RTX 3070 16GB Engineering Sample]
+ 24dc GA104M [GeForce RTX 3080 Mobile / Max-Q 8GB/16GB]
+ 24dd GA104M [GeForce RTX 3070 Mobile / Max-Q]
+ 2501 GA106 [GeForce RTX 3060]
+ 2503 GA106 [GeForce RTX 3060]
+ 2504 GA106 [GeForce RTX 3060 Lite Hash Rate]
+ 2505 GA106
+ 2520 GA106M [GeForce RTX 3060 Mobile / Max-Q]
+ 2523 GA106M [GeForce RTX 3050 Ti Mobile / Max-Q]
252f GA106 [GeForce RTX 3060 Engineering Sample]
+ 2560 GA106M [GeForce RTX 3060 Mobile / Max-Q]
+ 2563 GA106M [GeForce RTX 3050 Ti Mobile / Max-Q]
+ 2583 GA107 [GeForce RTX 3050]
+ 25a0 GA107M [GeForce RTX 3050 Ti Mobile]
+ 25a2 GA107M [GeForce RTX 3050 Mobile]
+ 25a4 GA107
+ 25a5 GA107M [GeForce RTX 3050 Mobile]
25af GA107 [GeForce RTX 3050 Engineering Sample]
+ 25b5 GA107GLM [RTX A4 Mobile]
+ 25b8 GA107GLM [RTX A2000 Mobile]
+ 25e0 GA107BM [GeForce RTX 3050 Ti Mobile]
+ 25e2 GA107BM [GeForce RTX 3050 Mobile]
+ 25e5 GA107BM [GeForce RTX 3050 Mobile]
10df Emulex Corporation
0720 OneConnect NIC (Skyhawk)
103c 1934 FlexFabric 20Gb 2-port 650M Adapter
1590 0213 StoreFabric SN1200E 1-Port 16Gb Fibre Channel Adapter
1590 0214 StoreFabric SN1200E 2-Port 16Gb Fibre Channel Adapter
1590 022e Synergy 5330C 2-Port 32Gb Fibre Channel Mezz Card
+ 193d 1060 NIC-FC730i-Mb-2P
f011 Saturn: LightPulse Fibre Channel Host Adapter
f015 Saturn: LightPulse Fibre Channel Host Adapter
f085 LP850 Fibre Channel Host Adapter
10df f419 LPe35002-M2-L 2-Port 32Gb PCIe Fibre Channel Adapter
1590 02d5 StoreFabric SN1610E 1-Port 32Gb Fibre Channel Adapter
1590 02d6 StoreFabric SN1610E 2-Port 32Gb Fibre Channel Adapter
+ f500 LPe37000/LPe38000 Series 32Gb/64Gb Fibre Channel Adapter
f700 LP7000 Fibre Channel Host Adapter
f701 LP7000 Fibre Channel Host Adapter Alternate ID (JX1:2-3, JX2:1-2)
f800 LP8000 Fibre Channel Host Adapter
8111 Twist3 Frame Grabber
10ec Realtek Semiconductor Co., Ltd.
0139 RTL-8139/8139C/8139C+ Ethernet Controller
+ 3000 Killer E3000 2.5GbE Controller
5208 RTS5208 PCI Express Card Reader
5209 RTS5209 PCI Express Card Reader
5227 RTS5227 PCI Express Card Reader
1028 06d6 Latitude 7275 tablet
1028 06dc Latitude E7470
1028 06e4 XPS 15 9550
+ 1028 06e6 Latitude 11 5175 2-in-1
17aa 224f ThinkPad X1 Carbon 5th Gen
5260 RTS5260 PCI Express Card Reader
5286 RTS5286 PCI Express Card Reader
5288 RTS5288 PCI Express Card Reader
5289 RTL8411 PCI Express Card Reader
1043 1457 K55A Laptop
+ 5762 RTS5763DL NVMe SSD Controller
8029 RTL-8029(AS)
10b8 2011 EZ-Card (SMC1208)
10ec 8029 RTL-8029(AS)
8e2e 7000 KF-230TX
8e2e 7100 KF-230TX/2
a0a0 0007 ALN-325C
+ 8161 RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller
+ 10ec 8168 TP-Link TG-3468 v4.0 Gigabit PCI Express Network Adapter
8167 RTL-8110SC/8169SC Gigabit Ethernet
105b 0e10 RTL-8110SC-GR on a N15235/A74MX mainboard
1458 e000 GA-MA69G-S3H Motherboard
1028 0283 Vostro 220
1028 04b2 Vostro 3350
1028 04da Vostro 3750
+ 1028 05d7 Alienware X51 R2
1028 06f2 Latitude 3470
1028 06f3 Latitude 3570
1028 0869 Vostro 3470
1043 83a3 M4A785/P7P55 Motherboard
1043 8432 P8P67 and other motherboards
1043 8505 P8 series motherboard
+ 1043 8554 H81M-C Motherboard
+ 1043 859e AM1I-A Motherboard
+ 1043 8677 PRIME B450M-A Motherboard
105b 0d7c D270S/D250S Motherboard
10ec 8168 RTL8111/8168 PCI Express Gigabit Ethernet controller
144d c652 RTL8168 on a NP300E5C series laptop
1462 7522 X58 Pro-E
1462 7c37 X570-A PRO motherboard
1775 11cc CC11/CL11
+ 17aa 3098 ThinkCentre E73
17aa 3814 Z50-75
17aa 3823 Lenovo V130-15IGM Laptop - Type 81HL
17aa 5124 ThinkPad E595
7470 3468 TG-3468 Gigabit PCI Express Network Adapter
8086 2055 NUC Kit DN2820FYKH
8086 d615 Desktop Board D510MO/D525MW
+ ea50 ce19 mCOM10-L1900
8169 RTL8169 PCI Gigabit Ethernet Controller
1025 0079 Aspire 5024WLMi
10bd 3202 EP-320G-TX1 32-bit PCI Gigabit Ethernet Adapter
16ec 011f USR997903
1734 1091 D2030-A1
a0a0 0449 AK86-L motherboard
+ 816a RTL8111xP UART #1
+ ea50 ce19 mCOM10-L1900
+ 816b RTL8111xP UART #2
+ ea50 ce19 mCOM10-L1900
+ 816c RTL8111xP IPMI interface
+ ea50 ce19 mCOM10-L1900
+ 816d RTL811x EHCI host controller
+ ea50 ce19 mCOM10-L1900
8171 RTL8191SEvA Wireless LAN Controller
8172 RTL8191SEvB Wireless LAN Controller
8173 RTL8192SE Wireless LAN Controller
5005 Alveo U250
7038 FPGA Card XC7VX690T
17aa 402f FPGA XC7VX690T-3FFG1157E
+ 8019 Memory controller
8380 Ellips ProfiXpress Profibus Master
8381 Ellips Santos Frame Grabber
d154 Copley Controls CAN card (PCI-CAN-02)
3220 RocketRAID 3220
3320 RocketRAID 3320
4310 RocketRaid 4310
+ 7505 SSD7505 PCIe Gen4 x16 4-Port M.2 NVMe RAID Controller
1104 RasterOps Corp.
1105 Sigma Designs, Inc.
1105 REALmagic Xcard MPEG 1/2/3/4 DVD Decoder
0336 K8M890CE Host Bridge
0340 PT900 Host Bridge
0351 K8T890CF Host Bridge
- 0353 VX800 Host Bridge
+ 0353 VX800/820-Series Chipset Host-Bridge Controller
0364 CN896/VN896/P4M900 Host Bridge
1043 81ce P5VD2-VM mothervoard
0391 VT8371 [KX133]
0409 VX855/VX875 Host Bridge: Host Control
- 0410 VX900 Host Bridge: Host Control
+ 0410 VX900 Series Host Bridge: Host Control
0415 VT6415 PATA IDE Host Controller
1043 838f Motherboard
0501 VT8501 [Apollo MVP4]
# probably all K7VT2/4*/6
1849 0571 K7VT series Motherboards
0576 VT82C576 3V [Apollo Master]
- 0581 CX700/VX700 RAID Controller
+ 0581 CX700/VX700/VX800/820-Series Serial ATA RAID-Controller
# Upgrade bios to get correct ID: 5324 instead of 0581
1106 0581 Wrong IDE ID
0585 VT82C585VP [Apollo VP1/VPX]
1296 P4M800 Host Bridge
1308 PT894 Host Bridge
1314 CN700/VN800/P4M800CE/Pro Host Bridge
- 1324 CX700/VX700 Host Bridge
+ 1324 CX700/VX700-Series Error Reporting
1327 P4M890 Host Bridge
1336 K8M890CE Host Bridge
1340 PT900 Host Bridge
1353 VX800/VX820 Error Reporting
1364 CN896/VN896/P4M900 Host Bridge
1409 VX855/VX875 Error Reporting
- 1410 VX900 Error Reporting
+ 1410 VX900 Series Error Reporting
1571 VT82C576M/VT82C586
1595 VT82C595/97 [Apollo VP2/97]
1732 VT1732 [Envy24 II] PCI Multi-Channel Audio Controller
2296 P4M800 Host Bridge
2308 PT894 Host Bridge
2314 CN700/VN800/P4M800CE/Pro Host Bridge
- 2324 CX700/VX700 Host Bridge
+ 2324 CX700/VX700-Series Host Interface Control
2327 P4M890 Host Bridge
2336 K8M890CE Host Bridge
2340 PT900 Host Bridge
2353 VX800/VX820 Host Bus Control
2364 CN896/VN896/P4M900 Host Bridge
2409 VX855/VX875 Host Bus Control
- 2410 VX900 CPU Bus Controller
+ 2410 VX900 Series CPU Bus Controller
287a VT8251 PCI to PCI Bridge
287b VT8251 Host Bridge
287c VT8251 PCIE Root Port
287d VT8251 PCIE Root Port
287e VT8237/8251 Ultra VLINK Controller
3022 CLE266
- 3038 VT82xx/62xx UHCI USB 1.1 Controller
+ 3038 VT82xx/62xx/VX700/8x0/900 UHCI USB 1.1 Controller
0925 1234 onboard UHCI USB 1.1 Controller
1019 0985 P6VXA Motherboard
1019 0a81 L7VTA v1.0 Motherboard (KT400-8235)
1043 8080 A7V333 motherboard
- 1043 808c VT6202 USB2.0 4 port controller
+ 1043 808c VT62xx USB1.1 4 port controller
1043 80a1 A7V8X-X motherboard
1043 80ed A7V600/K8V-X/A8V Deluxe motherboard
1179 0001 Magnia Z310
+ 1234 0925 MVP3 USB Controller
1458 5004 GA-7VAX Mainboard
1462 5901 KT6 Delta-FIS2R (MS-6590)
1462 7020 K8T NEO 2 motherboard
3101 VT8653 Host Bridge
3102 VT8662 Host Bridge
3103 VT8615 Host Bridge
- 3104 USB 2.0
+ 3104 USB 2.0 EHCI-Compliant Host-Controller
0925 1234 onboard EHCI USB 2.0 Controller
1019 0a81 L7VTA v1.0 Motherboard (KT400-8235)
1043 808c A7V8X motherboard
3269 KT880 Host Bridge
3282 K8T800Pro Host Bridge
3287 VT8251 PCI to ISA Bridge
- 3288 VT8237A/VT8251 HDA Controller
+ 3288 VX900/VT8xxx High Definition Audio Controller
19da a179 ZBOX VD01
3290 K8M890 Host Bridge
3296 P4M800 Host Bridge
- 3324 CX700/VX700 Host Bridge
+ 3324 CX700/VX700-Series DRAM Bus Control
3327 P4M890 Host Bridge
3336 K8M890CE Host Bridge
3337 VT8237A PCI to ISA Bridge
3344 CN700/P4M800 Pro/P4M800 CE/VN800 Graphics [S3 UniChrome Pro]
3349 VT8251 AHCI/SATA 4-Port Controller
3351 VT3351 Host Bridge
- 3353 VX800 PCI to PCI Bridge
+ 3353 VX800/820 PCI to PCI Bridge
3364 CN896/VN896/P4M900 Host Bridge
+ 3365 VT630x IEEE 1394 Host Controller [Fire II/M]
3371 CN896/VN896/P4M900 [Chrome 9 HC]
3372 VT8237S PCI to ISA Bridge
337a VT8237A PCI to PCI Bridge
1043 8374 M5A88-V EVO
1043 8384 P8P67 Deluxe Motherboard
3409 VX855/VX875 DRAM Bus Control
- 3410 VX900 DRAM Bus Control
+ 3410 VX900 Series DRAM Bus Control
19da a179 ZBOX nano VD01
- 3432 VL80x xHCI USB 3.0 Controller
+ 3432 VL800/801 xHCI USB 3.0 Controller
3456 VX11 Standard Host Bridge
345b VX11 Miscellaneous Bus
- 3483 VL805 USB 3.0 Host Controller
+ 3483 VL805/806 xHCI USB 3.0 Controller
3a01 VX11 Graphics [Chrome 645/640]
4149 VIA VT6420 (ATA133) Controller
4204 K8M800 Host Bridge
4296 P4M800 Host Bridge
4308 PT894 Host Bridge
4314 CN700/VN800/P4M800CE/Pro Host Bridge
- 4324 CX700/VX700 Host Bridge
+ 4324 CX700/VX700-Series Power Management and Testing Control
4327 P4M890 Host Bridge
4336 K8M890CE Host Bridge
4340 PT900 Host Bridge
4353 VX800/VX820 Power Management Control
4364 CN896/VN896/P4M900 Host Bridge
4409 VX855/VX875 Power Management Control
- 4410 VX900 Power Management and Chip Testing Control
+ 4410 VX900 Series Power Management and Chip Testing Control
19da a179 ZBOX nano VD01
5030 VT82C596 ACPI [Apollo PRO]
5122 VX855/VX875 Chrome 9 HCM Integrated Graphics
5287 VT8251 Serial ATA Controller
5290 K8M890 I/O APIC Interrupt Controller
5308 PT894 I/O APIC Interrupt Controller
- 5324 VX800 Serial ATA and EIDE Controller
+ 5324 CX700M2/VX700/VX800/820-Series Serial ATA & EIDE-Controller
5327 P4M890 I/O APIC Interrupt Controller
5336 K8M890CE I/O APIC Interrupt Controller
5340 PT900 I/O APIC Interrupt Controller
5364 CN896/VN896/P4M900 I/O APIC Interrupt Controller
5372 VT8237/8251 Serial ATA Controller
5409 VX855/VX875 APIC and Central Traffic Control
- 5410 VX900 APIC and Central Traffic Control
+ 5410 VX900 Series APIC and Central Traffic Control
6100 VT85C100A [Rhine II]
6287 SATA RAID Controller
6290 K8M890CE Host Bridge
6353 VX800/VX820 Scratch Registers
6364 CN896/VN896/P4M900 Security Device
6409 VX855/VX875 Scratch Registers
- 6410 VX900 Scratch Registers
+ 6410 VX900 Series Scratch Registers
19da a179 ZBOX nano VD01
7122 VX900 Graphics [Chrome9 HD]
7204 K8M800 Host Bridge
7296 P4M800 Host Bridge
7308 PT894 Host Bridge
7314 CN700/VN800/P4M800CE/Pro Host Bridge
- 7324 CX700/VX700 Host Bridge
+ 7324 CX700/VX700-Series North-South Module Interface Control
7327 P4M890 Host Bridge
7336 K8M890CE Host Bridge
7340 PT900 Host Bridge
7353 VX800/VX820 North-South Module Interface Control
7364 CN896/VN896/P4M900 Host Bridge
7409 VX855/VX875 North-South Module Interface Control
- 7410 VX900 North-South Module Interface Control
+ 7410 VX900 Series North-South Module Interface Control
19da a179 ZBOX nano VD01
8231 VT8231 [PCI-to-ISA Bridge]
8235 VT8235 ACPI
8305 VT8363/8365 [KT133/KM133 AGP]
- 8324 CX700/VX700 PCI to ISA Bridge
+ 8324 CX700/VX700-Series Bus Control and Power Management
8353 VX800/VX820 Bus Control and Power Management
8391 VT8371 [KX133 AGP]
8400 MVP4
8409 VX855/VX875 Bus Control and Power Management
- 8410 VX900 Bus Control and Power Management
+ 8410 VX900 Series Bus Control and Power Management
19da a179 ZBOX VD01
8500 KLE133/PLE133/PLE133T
8501 VT8501 [Apollo MVP4 AGP]
8a26 KL133/KL133A/KM133/KM133A [S3 ProSavage]
8d01 PN133/PN133T [S3 Twister]
8d04 KM266/P4M266/P4M266A/P4N266 [S3 ProSavageDDR]
- 9001 VX900 Serial ATA Controller
+ 9001 VX900 Series Serial-ATA Controller
9082 Standard AHCI 1.0 SATA Controller
9140 HDMI Audio Device
9201 USB3.0 Controller
- 9530 Secure Digital Memory Card Controller
- 95d0 SDIO Host Controller
+ 9530 VX800/820/900 Series Secure Digital Memory Card Controller
+ 95d0 VX800/820/900 Series SDIO Host Controller
a208 PT890 PCI to PCI Bridge Controller
a238 K8T890 PCI to PCI Bridge Controller
a327 P4M890 PCI to PCI Bridge Controller
- a353 VX8xx South-North Module Interface Control
+ a353 VX8xx/900 Series South-North Module Interface Control
a364 CN896/VN896/P4M900 PCI to PCI Bridge Controller
- a409 VX855/VX875 USB Device Controller
- a410 VX900 PCI Express Root Port 0
+ a409 VX855/VX875/VX900 Series USB Device Controller
+ a410 VX900 Series PCI Express Root Port 0
b091 VT8633 [Apollo Pro266 AGP]
b099 VT8366/A/7 [Apollo KT266/A/333 AGP]
b101 VT8653 AGP Bridge
b168 VT8235 PCI Bridge
b188 VT8237/8251 PCI bridge [K8M890/K8T800/K8T890 South]
147b 1407 KV8-MAX3 motherboard
- b198 VT8237/VX700 PCI Bridge
+ b198 VT8237/CX700/VX700-Series PCI to PCI Bridge
b213 VPX/VPX2 I/O APIC Interrupt Controller
b353 VX855/VX875/VX900 PCI to PCI Bridge
- b410 VX900 PCI Express Root Port 1
+ b410 VX900 Series PCI Express Root Port 1
b999 [K8T890 North / VT8237 South] PCI Bridge
c208 PT890 PCI to PCI Bridge Controller
c238 K8T890 PCI to PCI Bridge Controller
c327 P4M890 PCI to PCI Bridge Controller
c340 PT900 PCI to PCI Bridge Controller
- c353 VX800/VX820 PCI Express Root Port
+ c353 VX800/820-Series PCI-Express Root (PCI-to-PCI Virtual Bridge)
c364 CN896/VN896/P4M900 PCI to PCI Bridge Controller
c409 VX855/VX875 EIDE Controller
- c410 VX900 PCI Express Root Port 2
+ c410 VX900 Series PCI Express Root Port 2
d104 VT8237R USB UDCI Controller
d208 PT890 PCI to PCI Bridge Controller
d213 VPX/VPX2 PCI to PCI Bridge Controller
d238 K8T890 PCI to PCI Bridge Controller
d340 PT900 PCI to PCI Bridge Controller
- d410 VX900 PCI Express Root Port 3
+ d410 VX900 Series PCI Express Root Port 3
e208 PT890 PCI to PCI Bridge Controller
e238 K8T890 PCI to PCI Bridge Controller
e340 PT900 PCI to PCI Bridge Controller
- e353 VX800/VX820 PCI Express Root Port
- e410 VX900 PCI Express Physical Layer Electrical Sub-block
+ e353 VX800/820-Series PCI-Express Root Port 0
+ e410 VX900 Series PCI Express Physical Layer Electrical Sub-block
f208 PT890 PCI to PCI Bridge Controller
f238 K8T890 PCI to PCI Bridge Controller
f340 PT900 PCI to PCI Bridge Controller
- f353 VX800/VX820 PCI Express Root Port
+ f353 VX800/820-Series PCI-Express Root Port 1
+ f410 VX900 Series PCI UART Port 0-3
1107 Stratus Computers
0576 VIA VT82C570MV [Apollo] (Wrong vendor ID!)
1108 Proteon, Inc.
0002 Dual PCI to RapidIO Bridge
000b POET Serial RapidIO Bridge
000d POET PSDMS Device
-1135 Fuji Xerox Co Ltd
+1135 FUJIFILM Business Innovation Corp.
0001 Printer controller
1136 Momentum Data Systems
0002 PCI-JTAG
1172 Altera Corporation
00a7 Stratix V
0530 Stratix IV
+ 646c KT-500/KT-521 board
1173 Adobe Systems, Inc
1174 Bridgeport Machines
1175 Mitron Computer Inc.
1179 Toshiba Corporation
0102 Extended IDE Controller
0103 EX-IDE Type-B
+ 010e PXP04 NVMe SSD
010f NVMe Controller
0110 NVMe SSD Controller Cx5
1028 1ffb Express Flash NVMe 960G (RI) U.2 (CD5)
1d49 4039 Thinksystem U.2 CM5 NVMe SSD
1d49 403a Thinksystem AIC CM5 NVMe SSD
0113 BG3 NVMe SSD Controller
+ 1179 0001 Toshiba KBG30ZMS128G 128GB NVMe SSD
0115 XG4 NVMe SSD Controller
+ 011a XG6 NVMe SSD Controller
0404 DVD Decoder card
0406 Tecra Video Capture device
0407 DVD Decoder card (Version 2)
11aa Actel
# Nee Galileo Technology, Inc.
11ab Marvell Technology Group Ltd.
+ 0100 88F3700 [Armada 3700 Family] ARM SoC
0146 GT-64010/64010A System Controller
0f53 88E6318 Link Street network controller
11ab MV88SE614x SATA II PCI-E controller
6480 MV64460/64461/64462 System Controller
1775 c200 C2K CompactPCI single board computer
6485 MV64460/64461/64462 System Controller, Revision B
+ 6820 88F6820 [Armada 385] ARM SoC
+ 6828 88F6828 [Armada 388] ARM SoC
7042 88SX7042 PCI-e 4-port SATA-II
16b8 434b Tempo SATA E4P
7810 MV78100 [Discovery Innovation] ARM SoC
11ad 0003 LNE100TX
11ad f003 LNE100TX
11ad ffff LNE100TX
- 1385 f004 FA310TX
+ 1385 f004 FA310/TX LAN 10/100 PCI Ethernet Adapter
2646 f002 KNE110TX EtheRx Fast Ethernet
c115 LNE100TX [Linksys EtherFast 10/100]
11ad c001 LNE100TX [ver 2.0]
8073 PM8073 Tachyon SPCve 12G 16-port SAS/SATA controller
8531 PM8531 PFX 24xG3 Fanout PCIe Switches
8546 PM8546 B-FEIP PSX 96xG3 PCIe Storage Switch
+ 8562 PM8562 Switchtec PFX-L 32xG3 Fanout-Lite PCIe Gen3 Switch
11f9 I-Cube Inc
11fa Kasan Electronics Company, Ltd.
11fb Datel Inc
a000 2000 Parallel Port
a000 6000 SPI
a000 7000 Local Bus
+ ea50 1c10 RXi2-BP
125c Aurora Technologies, Inc.
0101 Saturn 4520P
0640 Aries 16000P
0820 SM820 Lynx3D
0910 SM910
2262 SM2262/SM2262EN SSD Controller
+ 2263 SM2263EN/SM2263XT SSD Controller
1270 Olympus Optical Co., Ltd.
1271 GW Instruments
1272 Telematics International
1281 Yokogawa Electric Corporation
1282 Davicom Semiconductor, Inc.
6585 DM562P V90 Modem
- 9009 Ethernet 100/10 MBit
+ 9009 DM9009 Ethernet Controller
9100 21x4x DEC-Tulip compatible 10/100 Ethernet
- 9102 21x4x DEC-Tulip compatible 10/100 Ethernet
+ 9102 DM9102 Fast Ethernet Controller
# Subsystem ID is main ID reveresed.
0291 8212 DM9102A (DM9102AE, SM9102AF) Ethernet 100/10 MBit
9132 Ethernet 100/10 MBit
8888 IT8888F/G PCI to ISA Bridge with SMB [Golden Gate]
8889 IT8889F PCI to ISA Bridge
8892 IT8892E PCIe to PCI Bridge
+ 8086 200d DH61CR motherboard
8893 IT8893E PCIe to PCI Bridge
e886 IT8330G
1284 Sahara Networks, Inc.
2304 PI7C9X2G304 EL/SL PCIe2 3-Port/4-Lane Packet Switch
2404 PI7C9X2G404 EL/SL PCIe2 4-Port/4-Lane Packet Switch
2608 PI7C9X2G608GP PCIe2 6-Port/8-Lane Packet Switch
+ ea50 cc10 RXi2-BP
400a PI7C9X442SL PCI Express Bridge Port
400e PI7C9X442SL USB OHCI Controller
400f PI7C9X442SL USB EHCI Controller
8150 PCI to PCI Bridge
8152 PI7C8152A/PI7C8152B/PI7C8152BI PCI-to-PCI Bridge
8154 PI7C8154A/PI7C8154B/PI7C8154BI PCI-to-PCI Bridge
+ 8619 PI7C9X2G1616PR PCIe2 16-Port/16-Lane Packet Switch
e110 PI7C9X110 PCI Express to PCI bridge
1775 11cc CC11/CL11 CompactPCI Bridge
e111 PI7C9X111SL PCIe-to-PCI Reversible Bridge
12ea Zuken
12eb Aureal Semiconductor
0001 Vortex 1
+ 0000 0300 Terasound A3D PCI
104d 8036 AU8820 Vortex Digital Audio Processor
1092 2000 Sonic Impact A3D
1092 2100 Sonic Impact A3D
1092 2110 Sonic Impact A3D
1092 2200 Sonic Impact A3D
- 122d 1002 AU8820 Vortex Digital Audio Processor
+ 122d 1002 SC 338-A3D
12eb 0001 AU8820 Vortex Digital Audio Processor
5053 3355 Montego
50b2 1111 XLerate
134f Algo System Co Ltd
1350 Systec Co. Ltd
1351 Sonix Inc
-# nee Thales Idatys
-1353 Vierling Communication SAS
+# nee Vierling Communication SAS, nee Thales Idatys
+1353 dbeeSet Technology
0002 Proserver
0003 PCI-FUT
0004 PCI-S0
0005 PCI-FUT-S0
+ 0006 OTDU-1U (FPGA Zynq-7000)
+ 0007 OTDU-EX
1354 Dwave System Inc
1355 Kratos Analytical Ltd
1356 The Logical Co
1414 Microsoft Corporation
0001 MN-120 (ADMtek Centaur-C based)
0002 MN-130 (ADMtek Centaur-P based)
+# Virtual Video Card Device for Windows Remote Desktop (RDP)
+ 008c Basic Render Driver
5353 Hyper-V virtual VGA
5801 XMA Decoder (Xenon)
5802 SATA Controller - CdRom (Xenon)
9513 OX16PCI954 (Quad 16950 UART) function 1 (parallel port)
9521 OX16PCI952 (Dual 16950 UART)
9523 OX16PCI952 Integrated Parallel Port
- c158 OXPCIe952 Dual 16C950 UART
+# The OXPCIe952 PCI Express Bridge to Dual Serial & Parallel Port chip is a multifunction device that encodes five reset straps and 1:0 function bits in bits 6:0 of the device ID. Hence it consumes a whole 128-entry block, which is however sparsely populated as obviously disabled functions do not appear in the configuration space.
+ c100 OXPCIe952 Parallel Port
+ c101 OXPCIe952 Legacy 950 UART
+ c104 OXPCIe952 Parallel Port
+ c105 OXPCIe952 Legacy 950 UART
+ c106 OXPCIe952 GPIO
+ c108 OXPCIe952 Parallel Port
+ c109 OXPCIe952 Legacy 950 UART
+ c10c OXPCIe952 Parallel Port
+ c10d OXPCIe952 Legacy 950 UART
+ c10e OXPCIe952 GPIO
+ c110 OXPCIe952 Parallel Port
+ c114 OXPCIe952 Parallel Port
+ c118 OXPCIe952 Parallel Port
+ c11b OXPCIe952 Native 950 UART
+ c11c OXPCIe952 Parallel Port
+ c11e OXPCIe952 GPIO
+ c11f OXPCIe952 Native 950 UART
+ c120 OXPCIe952 Legacy 950 UART
+ c124 OXPCIe952 Legacy 950 UART
+ c126 OXPCIe952 GPIO
+ c128 OXPCIe952 Legacy 950 UART
+ c12c OXPCIe952 Legacy 950 UART
+ c12e OXPCIe952 GPIO
+ c134 OXPCIe952 GPIO
+ c138 OXPCIe952 Native 950 UART
+ c13c OXPCIe952 GPIO
+ c13d OXPCIe952 Native 950 UART
+ c140 OXPCIe952 Legacy 950 UART #1
+ c141 OXPCIe952 Legacy 950 UART #2
+ c144 OXPCIe952 Legacy 950 UART #1
+ c145 OXPCIe952 Legacy 950 UART #2
+ c146 OXPCIe952 GPIO
+ c148 OXPCIe952 Legacy 950 UART #1
+ c149 OXPCIe952 Legacy 950 UART #2
+ c14c OXPCIe952 Legacy 950 UART #1
+ c14d OXPCIe952 Legacy 950 UART #2
+ c14e OXPCIe952 GPIO
+ c154 OXPCIe952 GPIO
+ c158 OXPCIe952 Dual Native 950 UART
e4bf c504 CP4-SCAT Wireless Technologies Carrier Board
e4bf d551 DU1-MUSTANG Dual-Port RS-485 Interface
+ c15c OXPCIe952 GPIO
+ c15d OXPCIe952 Dual Native 950 UART
c308 EX-44016 16-port serial
1416 Multiwave Innovation pte Ltd
1417 Convergenet Technologies Inc
a544 Exynos 8890 PCIe Root Complex
a800 XP941 PCIe SSD
a802 NVMe SSD Controller SM951/PM951
- a804 NVMe SSD Controller SM961/PM961
+ 144d a801 PM963 2.5" NVMe PCIe SSD
+ a804 NVMe SSD Controller SM961/PM961/SM963
+ 144d a801 SM963 2.5" NVMe PCIe SSD
a808 NVMe SSD Controller SM981/PM981/PM983
1d49 403b Thinksystem U.2 PM983 NVMe SSD
+ a80a NVMe SSD Controller PM9A1/PM9A3/980PRO
a820 NVMe SSD Controller 171X
1028 1f95 Express Flash NVMe XS1715 SSD 400GB
1028 1f96 Express Flash NVMe XS1715 SSD 800GB
1028 2097 EMC PowerEdge Express Flash Ent NVMe AGN SED RI U.2 Gen4 1.92TB
1028 2098 EMC PowerEdge Express Flash Ent NVMe AGN SED RI U.2 Gen4 3.84TB
1028 2099 EMC PowerEdge Express Flash Ent NVMe AGN SED RI U.2 Gen4 7.68TB
+ 1028 2118 Ent NVMe v2 AGN FIPS MU U.2 1.6TB
+ 1028 2119 Ent NVMe v2 AGN MU U.2 1.6TB
+ 1028 2120 Ent NVMe v2 AGN FIPS MU U.2 3.2T
+ 1028 2121 Ent NVMe v2 AGN MU U.2 3.2TB
+ 1028 2122 Ent NVMe v2 AGN FIPS MU U.2 6.4TB
+ 1028 2123 Ent NVMe v2 AGN MU U.2 6.4TB
+ 1028 2124 Ent NVMe v2 AGN FIPS MU U.2 6.4TB
+ 1028 2125 Ent NVMe v2 AGN MU U.2 12.8TB
+ 1028 2126 Ent NVMe v2 AGN FIPS RI U.2 1.92TB
+ 1028 2127 Ent NVMe v2 AGN RI U.2 1.92TB
+ 1028 2128 Ent NVMe v2 AGN FIPS RI U.2 3.84TB
+ 1028 2129 Ent NVMe v2 AGN RI U.2 3.84TB
+ 1028 2130 Ent NVMe v2 AGN FIPS RI U.2 7.68TB
+ 1028 2131 Ent NVMe v2 AGN RI U.2 7.68TB
+ 1028 2132 Ent NVMe v2 AGN FIPS RI U.2 15.36TB
+ 1028 2133 Ent NVMe v2 AGN RI U.2 15.36TB
ecec Exynos 8895 PCIe Root Complex
144e OLITEC
144f Askey Computer Corp.
1456 Advanced Hardware Architectures
1457 Nuera Communications Inc
1458 Gigabyte Technology Co., Ltd
+ 3483 USB 3.0 Controller (VIA VL80x-based xHCI Controller)
1459 DOOIN Electronics
145a Escalate Networks Inc
145b PRAIM SRL
e836 M115S Hybrid Analog/DVB PAL/SECAM/NTSC Tuner
f436 AVerTV Hybrid+FM
1462 Micro-Star International Co., Ltd. [MSI]
+# VIA Driver-inf
+ 3483 MSI USB 3.0 (VIA VL80x-based xHCI USB Controller)
aaf0 Radeon RX 580 Gaming X 8G
1463 Fast Corporation
1464 Interactive Circuits & Systems Ltd
148a OPTO
148b INNOMEDIALOGIC Inc.
148c Tul Corporation / PowerColor
+ 2391 Radeon RX 590 [Red Devil]
148d DIGICOM Systems, Inc.
1003 HCF 56k Data/Fax Modem
148e OSI Plus Corporation
103c 1240 Myrinet M2L-PCI64/2-3.0 LANai 7.4 (HP OEM)
14c2 DTK Computer
14c3 MEDIATEK Corp.
+ 7612 MT7612E 802.11acbgn PCI Express Wireless Network Adapter
7630 MT7630e 802.11bgn Wireless Network Adapter
# MT7612E too?
7662 MT7662E 802.11ac PCI Express Wireless Network Adapter
+ 7915 MT7915E 802.11ax PCI Express Wireless Network Adapter
14c4 IWASAKI Information Systems Co Ltd
14c5 Automation Products AB
14c6 Data Race Inc
103c 0890 NC6000 laptop
103c 099c NX6110/NC6120
10cf 1279 LifeBook E8010D
- 165f NetXtreme BCM5720 2-port Gigabit Ethernet PCIe
+ 165f NetXtreme BCM5720 Gigabit Ethernet PCIe
1028 04f7 PowerEdge R320 server
1028 08fd PowerEdge R6515/R7515 LOM
1028 08ff PowerEdge Rx5xx LOM Board
1028 0900 PowerEdge C6525 LOM
+# Dell 5720 LOM
+ 1028 0917 PowerEdge C6520 LOM
103c 1786 NC332T Adapter
103c 193d NC332i Adapter
103c 2133 NC332i Adapter
103c 339d Ethernet 10Gb 2-port 530SFP+ Adapter
193d 1003 530F-B
193d 1006 530F-L
+ 193d 100f NIC-ETH522i-Mb-2x10G
1690 NetXtreme BCM57760 Gigabit Ethernet PCIe
1691 NetLink BCM57788 Gigabit Ethernet PCIe
1028 04aa XPS 8300
16a0 NetLink BCM5785 Fast Ethernet
16a1 BCM57840 NetXtreme II 10 Gigabit Ethernet
1043 866e PEB-10G/57840-2T 10GBase-T Network Adapter
+ 193d 100b NIC-ETH521i-Mb-4x10G
16a2 BCM57840 NetXtreme II 10/20-Gigabit Ethernet
103c 1916 FlexFabric 20Gb 2-port 630FLB Adapter
103c 1917 FlexFabric 20Gb 2-port 630M Adapter
16d4 BCM57402 NetXtreme-E Ethernet Partition
16d5 BCM57407 NetXtreme-E 10GBase-T Ethernet Controller
16d6 BCM57412 NetXtreme-E 10Gb RDMA Ethernet Controller
+ 14e4 1202 BCM957412M4122C OCP 1x25G Type1 wRoCE
14e4 4120 NetXtreme E-Series Advanced Dual-port 10Gb SFP+ Ethernet Network Daughter Card
14e4 4126 NetXtreme-E Dual-port 10G SFP+ Ethernet OCP 3.0 Adapter (BCM957412N4120C)
152d 8b20 BCM57412 NetXtreme-E 10Gb RDMA Ethernet Controller
152d 8b22 BCM57412 NetXtreme-E 25Gb RDMA Ethernet Controller
16d7 BCM57414 NetXtreme-E 10Gb/25Gb RDMA Ethernet Controller
- 14e4 1202 BCM957412M4122C OCP 1x25G Type1 wRoCE
14e4 1402 BCM957414A4142CC 10Gb/25Gb Ethernet PCIe
14e4 1404 BCM957414M4142C OCP 2x25G Type1 wRoCE
14e4 4140 NetXtreme E-Series Advanced Dual-port 25Gb SFP28 Network Daughter Card
1750 BCM57508 NetXtreme-E 10Gb/25Gb/40Gb/50Gb/100Gb/200Gb Ethernet
14e4 2100 NetXtreme-E Dual-port 100G QSFP56 Ethernet PCIe4.0 x16 Adapter (BCM957508-P2100G)
14e4 5208 NetXtreme-E Dual-port 100G QSFP56 Ethernet OCP 3.0 Adapter (BCM957508-N2100G)
+ 14e4 d124 NetXtreme-E P2100D BCM57508 2x100G QSFP PCIE
+ 14e4 df24 BCM57508 NetXtreme-E NGM2100D 2x100G KR Mezz Ethernet
1751 BCM57504 NetXtreme-E 10Gb/25Gb/40Gb/50Gb/100Gb/200Gb Ethernet
+ 14e4 5045 NetXtreme-E BCM57504 4x25G OCP3.0
+ 14e4 5250 NetXtreme-E BCM57504 4x25G KR Mezz
+ 14e4 d142 NetXtreme-E P425D BCM57504 4x25G SFP28 PCIE
1752 BCM57502 NetXtreme-E 10Gb/25Gb/40Gb/50Gb Ethernet
1800 BCM57502 NetXtreme-E Ethernet Partition
1801 BCM57504 NetXtreme-E Ethernet Partition
1802 BCM57508 NetXtreme-E Ethernet Partition
+ 14e4 df24 BCM57508 NetXtreme-E NGM2100D 2x100G KR Mezz Ethernet Partition
1803 BCM57502 NetXtreme-E RDMA Partition
1804 BCM57504 NetXtreme-E RDMA Partition
- 1805 BCM57508 NetXtreme-E RDMA Partition
+ 1805 BCM57508 NetXtreme-E NGM2100D 2x100G KR Mezz RDMA Partition
+ 14e4 df24 NetXtreme-E NGM2100D BCM57508 2x100G KR Mezz RDMA Partition
1806 BCM5750X NetXtreme-E Ethernet Virtual Function
+ 14e4 df24 BCM57508 NetXtreme-E NGM2100D 2x100G KR Mezz Ethernet Virtual Function
1807 BCM5750X NetXtreme-E RDMA Virtual Function
+ 14e4 df24 BCM57508 NetXtreme-E NGM2100D 2x100G KR Mezz RDMA Virtual Function
+ 1808 BCM5750X NetXtreme-E Ethernet Virtual Function
+ 14e4 df24 BCM57508 NetXtreme-E NGM2100D 2x100G KR Mezz Ethernet Virtual Function
+ 1809 BCM5750X NetXtreme-E RDMA Virtual Function
+ 14e4 df24 BCM57508 NetXtreme-E NGM2100D 2x100G KR Mezz RDMA Virtual Function
+ 2711 BCM2711 PCIe Bridge
3352 BCM3352
3360 BCM3360
4210 BCM4210 iLine10 HomePNA 2.0
4410 BCM4413 iLine32 HomePNA 2.0
4411 BCM4413 V.90 56k modem
4412 BCM4412 10/100BaseT
+ 4415 BCM4359 802.11ac Dual-Band Wireless Network Controller
441f BCM4361 802.11ac Dual-Band Wireless Network Controller
4420 BCM4361 802.11ac 2.4 GHz Wireless Network Controller
4421 BCM4361 802.11ac 5 GHz Wireless Network Controller
0070 6902 WinTV HVR-4000-HD
0070 7801 WinTV HVR-1800 MCE
0070 9001 Nova-T DVB-T
+ 0070 9002 Nova-T DVB-T Model 909
0070 9200 Nova-SE2 DVB-S
0070 9202 Nova-S-Plus DVB-S
0070 9402 WinTV-HVR1100 DVB-T/Hybrid
9260 RCIM-II Real-Time Clock & Interrupt Module
9271 RCIM-III Real-Time Clock & Interrupt Module (PCIe)
9272 Pulse Width Modulator Card
+ 9273 RCIM-IV Real-Time Clock & Interrupt Module (PCIe)
9277 5 Volt Delta Sigma Converter Card
9278 10 Volt Delta Sigma Converter Card
9287 Analog Output Card
15b3 0021 MCX4421A-ACQN ConnectX-4 Lx EN OCP,2x25G
15b3 0025 ConnectX-4 Lx 25 GbE Dual Port SFP28 rNDC
193d 100a 620F-B
+# NIC-ETH540F-LP-2P SFP+ Ethernet Card
+ 193d 1023 NIC-ETH540F-LP-2P
+ 193d 1031 NIC-ETH640i-Mb-2x25G
+# NIC-ETH640F-3S-2P OCP3.0 Card
+ 193d 1083 NIC-ETH640F-3S-2P
+# NIC-ETH540F-3S-2P OCP3.0 2x10G Card
+ 193d 1084 NIC-ETH540F-3S-2P
1016 MT27710 Family [ConnectX-4 Lx Virtual Function]
1017 MT27800 Family [ConnectX-5]
15b3 0006 ConnectX®-5 EN network interface card, 100GbE single-port QSFP28, PCIe3.0 x16, tall bracket; MCX515A-CCAT
15b3 0007 Mellanox ConnectX®-5 MCX516A-CCAT
15b3 0020 ConnectX®-5 EN network interface card, 10/25GbE dual-port SFP28, PCIe3.0 x8, tall bracket ; MCX512A-ACAT
15b3 0068 ConnectX®-5 EN network interface card for OCP2.0, Type 1, with host management, 25GbE dual-port SFP28, PCIe3.0 x8, no bracket Halogen free ; MCX542B-ACAN
+ 193d 1051 NIC-IB1040i-Mb-2P
1018 MT27800 Family [ConnectX-5 Virtual Function]
1019 MT28800 Family [ConnectX-5 Ex]
15b3 0008 ConnectX-5 Ex EN network interface card, 100GbE dual-port QSFP28, PCIe4.0 x16, tall bracket; MCX516A-CDAT
1979 MT2910 Family [ConnectX-7 PCIe Bridge]
197a MT43162 Family [BlueField-3 Lx SoC PCIe Bridge]
197b MT43244 Family [BlueField-3 SoC PCIe Bridge]
+ 2020 MT2892 Family [ConnectX-6 Dx Emulated PCIe Bridge]
+ 2021 MT42822 Family [BlueField-2 SoC Emulated PCIe Bridge]
+ 2023 MT2910 Family [ConnectX-7 Emulated PCIe Bridge]
+ 2024 MT43244 Family [BlueField-3 SoC Emulated PCIe Bridge]
4117 MT27712A0-FDCF-AE
1bd4 0039 SN10XMP2P25
1bd4 003a 25G SFP28 SP EO251FM9 Adapter
15b7 Sandisk Corp
2001 Skyhawk Series NVME SSD
5001 WD Black NVMe SSD
- 5002 WD Black 2018 / PC SN720 NVMe SSD
- 5003 WD Black 2018 / PC SN520 NVMe SSD
- 5006 WD Black 2019/PC SN750 NVMe SSD
+ 5002 WD Black 2018/SN750 / PC SN720 NVMe SSD
+ 5003 WD Blue SN500 / PC SN520 NVMe SSD
+ 5004 PC SN520 NVMe SSD
+ 5005 PC SN520 NVMe SSD
+ 5006 WD Black SN750 / PC SN730 NVMe SSD
5009 WD Blue SN550 NVMe SSD
15b7 5009 WD Blue SN550 NVMe SSD
+ 500b PC SN530 NVMe SSD
+ 1414 500b Xbox Series X
+ 500d WD Ultrastar DC SN340 NVMe SSD
+ 5011 WD Black SN850
15b8 ADDI-DATA GmbH
1001 APCI1516 SP controller (16 digi outputs)
1003 APCI1032 SP controller (32 digi inputs w/ opto coupler)
2086 CryptoServer Se-Series Hardware Security Module
c040 CryptoServer CSe-Series Hardware Security Module
c051 CryptoServer Se-Series Gen2 Hardware Security Module
+ c070 u.trust Anchor Hardware Security Module cs7.2 Series
+ c071 u.trust Anchor Hardware Security Module cs7.3 Series
+ c072 u.trust Anchor Hardware Security Module cs7.3 Series Virtual Function
# nee Atheros Communications, Inc.
168c Qualcomm Atheros
0007 AR5210 Wireless Network Adapter [AR5000 802.11a]
ab08 21x4x DEC-Tulip compatible 10/100 Ethernet
ab09 21x4x DEC-Tulip compatible 10/100 Ethernet
173b Altima (nee Broadcom)
+ 0001 AC1002 PCI Gigabit Ethernet controller
03e8 AC1000 Gigabit Ethernet
03e9 AC1001 Gigabit Ethernet
03ea AC9100 Gigabit Ethernet
0245 PCA7428CE_F1 - Analog Inputs isolated
0303 PCD-7006C Digital Input & Output PCI Card
0800 PCD8006 - PCIe digital Inputs/Outputs
+ 0840 PCA-8428 General-purpose multifunctional PCIe card with 8 analog inputs and 2 analog outputs
+ 0841 PCA-8429 General-purpose multifunctional PCIe card with 8 analog inputs
+ 0842 PCA-8438 General-purpose multifunctional PCIe card with 16 analog inputs and 2 analog outputs
+ 0843 PCA-8439 General-purpose multifunctional PCIe card with 16 analog inputs
ff00 CTU CAN FD PCIe Card
1761 Pickering Interfaces Ltd
1771 InnoVISION Multimedia Ltd.
0004 Octeon (and older) FIPS
0005 Octeon CN38XX Network Processor Pass 3.x
0006 RoHS
- 0010 Nitrox XL NPX
+ 0010 CN15XX/CN16XX [Nitrox PX]
+ 0011 CNN35XX [Nitrox III]
+ 0012 CNN55XX [Nitrox V]
0020 Octeon CN31XX Network Processor
0030 Octeon CN30XX Network Processor
0040 Octeon CN58XX Network Processor
8083 GL880 USB 1.1 UHCI controller
8084 GL880 USB 2.0 EHCI controller
9750 GL9750 SD Host Controller
+ 9755 GL9755 SD Host Controller
e763 GL9763E eMMC Controller
17aa Lenovo
+ 3181 ThinkCentre M75n IoT
402b Intel 82599ES 10Gb 2-port Server Adapter X520-2
17ab Phillips Components
17af Hightech Information System Ltd.
1385 6d00 WPNT511 RangeMax 240 Mbps Wireless CardBus Adapter
1737 0054 WPC54GX4 v1 802.11g Wireless-G Notebook Adapter with SRX400
0105 MSM8998 PCIe Root Complex
- 0108 SM8150/SA8195P PCIe Root Complex
- 0300 MDM9x35 LTE Modem
- 0301 MDM9640 PCIe Root Complex
- 0302 MDM9x55 LTE Modem [Snapdragon X12]
+ 0108 SM8150 PCIe Root Complex
+ 0109 SA8195P PCIe Root Complex
+ 0300 MDM9x35 LTE Modem [Snapdragon X7]
+ 0301 MDM9x45 LTE Modem [Snapdragon X12]
+ 0302 MDM9x55 LTE Modem [Snapdragon X16]
0400 Datacenter Technologies QDF2432 PCI Express Root Port
0401 Datacenter Technologies QDF2400 PCI Express Root Port
1000 QCS405 PCIe Root Complex
+ 1101 QCA6390 Wireless Network Adapter [AX500-DBS (2x2)]
17cc NetChip Technology, Inc
2280 USB 2.0
17cd Cadence Design Systems, Inc.
0185 NT40A01 Network Adapter
01a5 NT200A01 Network Adapter
01c5 NT200A02 Network Adapter
+ 01d5 NT50B01 Network Adapter
+ 01e5 NT100A01 Network Adapter
18f6 NextIO
1000 [Nexsis] Switch Virtual P2P PCIe Bridge
1001 [Texsis] Switch Virtual P2P PCIe Bridge
0250 JMC250 PCI Express Gigabit Ethernet Controller
0260 JMC260 PCI Express Fast Ethernet Controller
0368 JMB368 IDE controller
+ 0585 JMB58x AHCI SATA controller
2360 JMB360 AHCI Controller
2361 JMB361 AHCI/IDE
1462 7235 P965 Neo MS-7235 mainboard
19e5 d303 Hi1822 SP522 (2*8G FC)
19e5 d306 Hi1822 SP523 (2*8G FC)
1710 iBMA Virtual Network Adapter
- 1711 Hi1710 [iBMC Intelligent Management system chip w/VGA support]
+ 1711 Hi171x Series [iBMC Intelligent Management system chip w/VGA support]
1822 Hi1822 Family (4*25GE)
19e5 d129 Hi1822 SP570 (4*25GE)
19e5 d136 Hi1822 SP580 (4*25GE)
19e5 d141 Hi1822 SP583 (4*25GE)
19e5 d146 Hi1822 SP585 (4*25GE)
+ 3714 ES3000 V5 NVMe PCIe SSD
+ 19e5 5312 NVMe SSD ES3500P V5 2000GB 2.5" U.2
371e Hi1822 Family Virtual Bridge
+ 3754 ES3000 V6 NVMe PCIe SSD
+ 19e5 6122 NVMe SSD ES3600P V6 1600GB 2.5" U.2
+ 19e5 6123 NVMe SSD ES3600P V6 3200GB 2.5" U.2
+ 19e5 6124 NVMe SSD ES3600P V6 6400GB 2.5" U.2
+ 19e5 6141 NVMe SSD ES3800P V6 800GB 2.5" U.2
+ 19e5 6142 NVMe SSD ES3800P V6 1600GB 2.5" U.2
+ 19e5 6212 NVMe SSD ES3500P V6 1920GB 2.5" U.2
+ 19e5 6213 NVMe SSD ES3500P V6 3840GB 2.5" U.2
+ 19e5 6214 NVMe SSD ES3500P V6 7680GB 2.5" U.2
+ 19e5 6215 NVMe SSD ES3500P V6 15360GB 2.5" U.2
375e Hi1822 Family Virtual Function
379e Hi1822 Family Virtual Function
a120 HiSilicon PCIe Root Port with Gen4
1a4a SLAC National Accelerator Lab TID-AIR
1000 MCOR Power Supply Controller
1010 AMC EVR - Stockholm Timing Board
- 1020 Cluster On Board (COB) Ethernet Switch
+ 1020 PGPCard - Gen3 Cameralink Interface
+ 1030 PGPCard - Gen3 GIGe Interface
2000 PGPCard - 4 Lane
2001 PGPCard - 8 Lane Plus EVR
2010 PCI-Express EVR
-# PC-260-101-03
- 2020 PGP-GEN3 PCIe
+ 2011 PCI-Express EVR - TPR Version
+ 2020 PGP-GEN3 PCIe - 8 Lane Plus EVR
2030 AXI Stream DAQ PCIe card
+ 2040 EXO PCIe TEM
+ 3000 COB DTM V1
+ 3001 COB DTM V2
1a51 Hectronic AB
1a55 Rohde & Schwarz DVS GmbH
0010 SDStationOEM
1052 Virtio input
# virtio 1.0
1053 Virtio socket
+ 105a Virtio file system
1110 Inter-VM shared memory
1af4 1100 QEMU Virtual Machine
1af5 Netezza Corp.
1b13 Jaton Corp
1b1a K&F Computing Research Co.
0e70 GRAPE
+1b1c Corsair
1b21 ASMedia Technology Inc.
0611 ASM1061 SATA IDE Controller
0612 ASM1062 Serial ATA Controller
1849 0612 Motherboard
+ 1040 ASM1040 XHCI Controller
1042 ASM1042 SuperSpeed USB Host Controller
1043 1059 K53SM motherboard
1043 8488 P8B WS Motherboard
1080 ASM1083/1085 PCIe to PCI Bridge
1849 1080 Motherboard
1142 ASM1042A USB 3.0 Host Controller
- 1184 ASM1184e PCIe Switch Port
- 1849 1184 ASM1184e PCIe Switch
+ 1182 ASM1182e 2-Port PCIe x1 Gen2 Packet Switch
+ 1b21 118f ASM1182e 2-Port PCIe x1 Gen2 Packet Switch
+ 1184 ASM1184e 4-Port PCIe x1 Gen2 Packet Switch
+ 1849 1184 ASM1184e 4-Port PCIe x1 Gen2 Packet Switch
1242 ASM1142 USB 3.1 Host Controller
1343 ASM1143 USB 3.1 Host Controller
2142 ASM2142 USB 3.1 Host Controller
+ 1462 7a72 H270 PC MATE
3242 ASM3242 USB 3.2 Host Controller
1b26 Netcope Technologies, a.s.
c132 COMBO-LXT155
000b QEMU PCIe Expander bridge
000c QEMU PCIe Root port
000d QEMU XHCI Host Controller
+ 0010 QEMU NVM Express Controller
0100 QXL paravirtual graphic card
1af4 1100 QEMU Virtual Machine
1b37 Signal Processing Devices Sweden AB
0601 NumaChip N601
0602 NumaChip N602
1b4b Marvell Technology Group Ltd.
+# device 1b4b:0100 reports incorrect vendor id due to hw erratum (correct is 11ab)
+ 0100 88F3700 [Armada 3700 Family] ARM SoC
0640 88SE9128 SATA III 6Gb/s RAID Controller
2241 88NR2241 Non-Volatile memory controller
+ 1028 2112 BOSS-N1 Monolithic
+ 1028 2113 BOSS-N1 Modular
1d49 0306 ThinkSystem M.2 NVMe 2-Bay RAID Enablement Kit
1d49 0307 ThinkSystem 7mm NVMe 2-Bay Rear RAID Enablement Kit
9120 88SE9120 SATA 6Gb/s Controller
9172 88SE9172 SATA 6Gb/s Controller
9178 88SE9170 PCIe SATA 6Gb/s Controller
917a 88SE9172 SATA III 6Gb/s RAID Controller
+ 9182 88SE9182 PCIe 2.0 x2 2-port SATA 6 Gb/s Controller
9183 88SS9183 PCIe SSD Controller
9192 88SE9172 SATA III 6Gb/s RAID Controller
91a0 88SE912x SATA 6Gb/s Controller [IDE mode]
91a4 88SE912x IDE Controller
+ 9215 88SE9215 PCIe 2.0 x1 4-port SATA 6 Gb/s Controller
9220 88SE9220 PCIe 2.0 x2 2-port SATA 6 Gb/s RAID Controller
- 9230 88SE9230 PCIe SATA 6Gb/s Controller
+ 9230 88SE9230 PCIe 2.0 x2 4-port SATA 6 Gb/s RAID Controller
1028 1fd6 BOSS-S1 Adapter
1028 1fdf BOSS-S1 Modular
1028 1fe2 BOSS-S1 Adapter
1b94 Signatec / Dynamic Signals Corp
e400 PX14400 Dual Xilinx Virtex5 based Digitizer
1b96 Western Digital
+ 2200 Ultrastar DC SN630 NVMe SSD
+ 2201 Ultrastar DC SN630 NVMe SSD
+ 2300 Ultrastar DC SN840 NVMe SSD
+ 2400 Ultrastar DC SN640 NVMe SSD
+ 2401 Ultrastar DC SN640 NVMe SSD
+ 2402 Ultrastar DC SN640 NVMe SSD
+ 2404 Ultrastar DC SN640 NVMe SSD
+ 2500 Ultrastar DC SN840 NVMe SSD
+ 2600 Ultrastar DC ZN540 ZNS NVMe SSD
+ 3714 PC SN730 NVMe SSD
+ 3734 PC SN730 NVMe SSD
1b9a XAVi Technologies Corp.
1baa QNAP Systems, Inc.
1bad ReFLEX CES
# Kersey 2.5" TCG
1bb1 0152 Nytro 5520 TCG
1bb1 01a1 Nytro XP7102
+ 5012 FireCuda 510 SSD
+ 5016 FireCuda 520 SSD
1bb3 Bluecherry
4304 BC-04120A MPEG4 4 port video encoder / decoder
4309 BC-08240A MPEG4 4 port video encoder / decoder
1bbf Maxeler Technologies Ltd.
0003 MAX3
0004 MAX4
+1bc0 Innodisk Corporation
+ 1001 PCIe 3TG6-P Controller
+ 1002 PCIe 3TE6 Controller
+ 1160 PCIe 3TE2 Controller
+ 1321 PCIe 4TG-P Controller
+ 1322 PCIe 4TE Controller
+ 2262 PCIe 3TG3-P Controller
+ 5208 PCIe 3TE7 Controller
+ 5216 PCIe 3TE8 Controller
+ 5236 PCIe 4TG2-P Controller
1bcf NEC Corporation
001c Vector Engine 1.0
1bd0 Astronics Corporation
1002 PM1553-5 (PC/104+ MIL-STD-1553 Interface Card)
1004 AB3000 Series Rugged Computer
1005 PE1000 (Multi-Protocol PCIe/104 Interface Card)
+ 1006 webCS Wireless Aircraft Communications Server
+ 1007 AB3000 Series Rugged Computer (Series N)
+ 1008 ME1000 mPCIe Avionics Interface Card
+ 100a NG1 Series Avionics Converter
1101 OmniBus II PCIe Multi-Protocol Interface Card
1102 OmniBusBox II Multi-Protocol Interface Core
1103 OmniBus II cPCIe/PXIe Multi-Protocol Interface Card
+ 1200 NG3 Series Mil-Std-1553 Interface
+ 1201 NG3 Series ARINC 429 Interface
+ 1202 NG3 Series Avionics Discrete & Serial Interface
+ 1203 NG3 Series Avionics Discrete Interface
1bd4 Inspur Electronic Information Industry Co., Ltd.
0911 Arria10_PCIe_F10A1150
1bee IXXAT Automation GmbH
001b FD720
001c FD922
001d Vega
+ 001f FD940
1c28 Lite-On IT Corp. / Plextor
0122 M6e PCI Express SSD [Marvell 88SS9183]
# previously Fiberblaze
00e1 PacketMover 2x100Gb [Tivoli]
00e3 PacketMover 2x10Gb [Tivoli]
00e5 PacketMover 2x10Gb [Corfu]
+ 1000 SmartNIC N5010 4x100Gb
+ 1001 SmartNIC N5011 w/2xE810 4x100Gb
a000 FBC2CGG3 Capture 2x40Gb [Mango_02]
a001 FBC2CGG3 Capture 2x100Gb [Mango_02]
a003 FBC2CGG3 Capture 16x10Gb [Mango]
1284 PC300 NVMe Solid State Drive 512GB
1285 PC300 NVMe Solid State Drive 1TB
1327 BC501 NVMe Solid State Drive 512GB
+ 1339 BC511
1504 SC300 512GB M.2 2280 SATA Solid State Drive
+ 1527 PC401 NVMe Solid State Drive 256GB
243b PE6110 NVMe Solid State Drive
1c5c 0100 PE6110 NVMe Solid State Drive
2839 PE8000 Series NVMe Solid State Drive
1c5c 0100 PE8000 Series NVMe Solid State Drive
1c5f Beijing Memblaze Technology Co. Ltd.
- 000d PBlaze5 520/526 AIC
- 003d PBlaze5 920/926 AIC
- 010d PBlaze5 520/526 U.2
- 013d PBlaze5 920/926 U.2
+ 000d PBlaze5 520/526
+ 003d PBlaze5 920/926
+ 003e PBlaze6 6920
+ 1c5f 0a31 NVMe SSD PBlaze6 6920 3840GB 2.5" U.2
+ 1c5f 0a41 NVMe SSD PBlaze6 6920 7680GB 2.5" U.2
+ 1c5f 4a31 NVMe SSD PBlaze6 6920 3200GB 2.5" U.2
+ 1c5f 4a41 NVMe SSD PBlaze6 6920 6400GB 2.5" U.2
0540 PBlaze4 NVMe SSD
0550 PBlaze5 700/900
0555 PBlaze5 510/516
0001 Hunter PCI Express
1c8c Mobiveil, Inc.
1cb0 Shannon Systems
+ 8266 Andalusia Series SSD
+ 1cb0 2021 Andalusia Series OCS U.2 SSD
+ 1cb0 2121 Andalusia Series ZNS U.2 SSD
+ 1cb0 2f21 Andalusia Series NVMe U.2 SSD
d000 Venice NVMe SSD
1cb0 2010 Venice-E Series OCS U.2
1cb0 2011 Venice Series OCS U.2
0305 Simulyzer-RT CompactPCI Serial CAN-1 card
# supports 8x CAN (-FD) interfaces
0306 Simulyzer-RT CompactPCI Serial CAN-2 card (CAN-FD)
+ 0307 Simulyzer-RT CompactPCI Serial DIO-2 card [Xilinx Zynq UltraScale+]
1cd7 Nanjing Magewell Electronics Co., Ltd.
0010 Pro Capture Endpoint
0014 PRO CAPTURE AIO 4K PLUS
0009 ExaNIC X25
000a ExaNIC X100
000b ExaNIC V9P
+ 000c ExaNIC V9P-3
0100 ExaDISK FX1
1cf0 Akitio
1cf7 Subspace Dynamics
1d00 Pure Storage
1d05 Tongfang Hongkong Limited
1d0f Amazon.com, Inc.
+ 8061 NVMe EBS Controller
cd01 NVMe SSD Controller
ec20 Elastic Network Adapter (ENA)
efa0 Elastic Fabric Adapter (EFA)
1014 AR-MAN-U280 [Manitou Class Accelerator for U280]
1015 AR-ARK-BBDEV-FX0 [Arkville 32B DPDK Baseband Device]
1016 AR-ARK-BBDEV-FX1 [Arkville 64B DPDK Baseband Device]
+ 1017 AR-ARK-FX1 [Arkville 64B Multi-Homed Primary Endpoint]
+ 1018 AR-ARK-FX1 [Arkville 64B Multi-Homed Secondary Endpoint]
+ 1019 AR-ARK-FX1 [Arkville 64B Multi-Homed Tertiary Endpoint]
+ 101a AR-ARK-SRIOV-FX0 [Arkville 32B Primary Physical Function]
+ 101b AR-ARK-SRIOV-FX1 [Arkville 64B Primary Physical Function]
+ 101c AR-ARK-SRIOV-VF [Arkville Virtual Function]
4200 A5PL-E1-10GETI [10 GbE Ethernet Traffic Instrument]
1d72 Xiaomi
1d78 DERA Storage
1d78 3105 D5457 U.2 3.2TB NVMe SSD
1d78 3107 D5457 U.2 6.4TB NVMe SSD
1d7c Aerotech, Inc.
+# Fiber-optic HyperWire motion control bus from Aerotech.
+ 0001 HyperWire Adapter
1d82 NETINT Technologies Inc.
0101 Codensity D400 SSD
0102 Codensity D408 PCIe Gen4 NVMe SSD
0202 Codensity T408 Video Encoding-Decoding Accelerator
-1d87 Fuzhou Rockchip Electronics Co., Ltd
+# nee Fuzhou Rockchip Electronics Co., Ltd
+1d87 Rockchip Electronics Co., Ltd
0100 RK3399 PCI Express Root Port
1808 RK1808 Neural Network Processor Card
+ 3566 RK3568 Remote Signal Processor
1d8f Enyx
-1d93 YADRO (KNS Group)
+1d93 YADRO
1d94 Chengdu Haiguang IC Design Co., Ltd.
1450 Root Complex
1451 I/O Memory Management Unit
0001 Colossus GC2 [C2]
0002 Colossus GC1 [S1]
1d97 Shenzhen Longsys Electronics Co., Ltd.
+ 2263 SM2263EN/SM2263XT-based OEM SSD
1d9b Facebook, Inc.
0010 Networking DOM Engine
0011 IO Bridge
1da1 Teko Telecom S.r.l.
1da2 Sapphire Technology Limited
+ e26a Radeon R7 250
1da3 Habana Labs Ltd.
0001 HL-1000 AI Inference Accelerator [Goya]
# PCIe accelerator card for Deep Learning training tasks
1000 HL-2000 AI Training Accelerator [Gaudi]
+# PCIe accelerator card for Deep Learning training tasks with secured firmware
+ 1010 HL-2000 AI Training Accelerator [Gaudi secured]
1db2 ATP ELECTRONICS INC
1dbb NGD Systems, Inc.
1dbf Guizhou Huaxintong Semiconductor Technology Co., Ltd
1dd8 4000 Naples 100Gb 2-port QSFP28 x16 8GB
1dd8 4001 Naples 100Gb 2-port QSFP28 x16 4GB
1dd8 4002 Naples 25Gb 2-port SFP28 x8 4GB
- 1dd8 4007 DSP DSC-25 10/25G 2p OCP Card
- 1dd8 4008 DSC-25 10/25G 2-port SFP28 x8 4GB RAM 8GB eMMC
+ 1dd8 4007 DSP DSC-25 Ent 10/25G OCP3 Card
+ 1dd8 4008 DSP DSC-25 10/25G 2p SFP28 Card
1dd8 400a DSC-100 40/100G 2-port 8G RAM 16G eMMC G1 Services Card
1dd8 400c DSC-25 10/25G 2-port 4G RAM 8G eMMC G1 Services Card
- 1dd8 400d DSP DSC-100 100G 2p QSFP28 Card
+ 1dd8 400d DSP DSC-100 Ent 100Gb Card
+ 1dd8 400e DSC-25 10/25G 2-port 4G RAM 8G eMMC G1 Services Card
1001 DSC Virtual Downstream Port
1dd8 4000 Naples 100Gb 2-port QSFP28 x16 8GB
1dd8 4001 Naples 100Gb 2-port QSFP28 x16 4GB
1dd8 4002 Naples 25Gb 2-port SFP28 x8 4GB
- 1dd8 4007 DSP DSC-25 10/25G 2p OCP Card
- 1dd8 4008 DSC-25 10/25G 2-port SFP28 x8 4GB RAM 8GB eMMC
+ 1dd8 4007 DSP DSC-25 Ent 10/25G OCP3 Card
+ 1dd8 4008 DSP DSC-25 10/25G 2p SFP28 Card
1dd8 400a DSC-100 40/100G 2-port 8G RAM 16G eMMC G1 Services Card
1dd8 400c DSC-25 10/25G 2-port 4G RAM 8G eMMC G1 Services Card
- 1dd8 400d DSP DSC-100 100G 2p QSFP28 Card
+ 1dd8 400d DSP DSC-100 Ent 100Gb Card
+ 1dd8 400e DSC-25 10/25G 2-port 4G RAM 8G eMMC G1 Services Card
1002 DSC Ethernet Controller
1dd8 4000 Naples 100Gb 2-port QSFP28 x16 8GB
1dd8 4001 Naples 100Gb 2-port QSFP28 x16 4GB
1dd8 4002 Naples 25Gb 2-port SFP28 x8 4GB
- 1dd8 4007 DSP DSC-25 10/25G 2p OCP Card
- 1dd8 4008 DSC-25 10/25G 2-port SFP28 x8 4GB RAM 8GB eMMC
+ 1dd8 4007 DSP DSC-25 Ent 10/25G OCP3 Card
+ 1dd8 4008 DSP DSC-25 10/25G 2p SFP28 Card
1dd8 400a DSC-100 40/100G 2-port 8G RAM 16G eMMC G1 Services Card
1dd8 400c DSC-25 10/25G 2-port 4G RAM 8G eMMC G1 Services Card
- 1dd8 400d DSP DSC-100 100G 2p QSFP28 Card
+ 1dd8 400d DSP DSC-100 Ent 100Gb Card
+ 1dd8 400e DSC-25 10/25G 2-port 4G RAM 8G eMMC G1 Services Card
1003 DSC Ethernet Controller VF
1dd8 4000 Naples 100Gb 2-port QSFP28 x16 8GB
1dd8 4001 Naples 100Gb 2-port QSFP28 x16 4GB
1dd8 4002 Naples 25Gb 2-port SFP28 x8 4GB
- 1dd8 4007 DSP DSC-25 10/25G 2p OCP Card
- 1dd8 4008 DSC-25 10/25G 2-port SFP28 x8 4GB RAM 8GB eMMC
+ 1dd8 4007 DSP DSC-25 Ent 10/25G OCP3 Card
+ 1dd8 4008 DSP DSC-25 10/25G 2p SFP28 Card
1dd8 400a DSC-100 40/100G 2-port 8G RAM 16G eMMC G1 Services Card
1dd8 400c DSC-25 10/25G 2-port 4G RAM 8G eMMC G1 Services Card
- 1dd8 400d DSP DSC-100 100G 2p QSFP28 Card
+ 1dd8 400d DSP DSC-100 Ent 100Gb Card
+ 1dd8 400e DSC-25 10/25G 2-port 4G RAM 8G eMMC G1 Services Card
1004 DSC Management Controller
1dd8 4000 Naples 100Gb 2-port QSFP28 x16 8GB
1dd8 4001 Naples 100Gb 2-port QSFP28 x16 4GB
1dd8 4002 Naples 25Gb 2-port SFP28 x8 4GB
- 1dd8 4007 DSP DSC-25 10/25G 2p OCP Card
- 1dd8 4008 DSC-25 10/25G 2-port SFP28 x8 4GB RAM 8GB eMMC
+ 1dd8 4007 DSP DSC-25 Ent 10/25G OCP3 Card
+ 1dd8 4008 DSP DSC-25 10/25G 2p SFP28 Card
1dd8 400a DSC-100 40/100G 2-port 8G RAM 16G eMMC G1 Services Card
1dd8 400c DSC-25 10/25G 2-port 4G RAM 8G eMMC G1 Services Card
- 1dd8 400d DSP DSC-100 100G 2p QSFP28 Card
+ 1dd8 400d DSP DSC-100 Ent 100Gb Card
+ 1dd8 400e DSC-25 10/25G 2-port 4G RAM 8G eMMC G1 Services Card
1007 DSC Storage Accelerator
1dd8 4000 Naples 100Gb 2-port QSFP28 x16 8GB
1dd8 4001 Naples 100Gb 2-port QSFP28 x16 4GB
1dd8 4002 Naples 25Gb 2-port SFP28 x8 4GB
- 1dd8 4007 DSP DSC-25 10/25G 2p OCP Card
- 1dd8 4008 DSC-25 10/25G 2-port SFP28 x8 4GB RAM 8GB eMMC
+ 1dd8 4007 DSP DSC-25 Ent 10/25G OCP3 Card
+ 1dd8 4008 DSP DSC-25 10/25G 2p SFP28 Card
1dd8 400a DSC-100 40/100G 2-port 8G RAM 16G eMMC G1 Services Card
1dd8 400c DSC-25 10/25G 2-port 4G RAM 8G eMMC G1 Services Card
- 1dd8 400d DSP DSC-100 100G 2p QSFP28 Card
+ 1dd8 400d DSP DSC-100 Ent 100Gb Card
+ 1dd8 400e DSC-25 10/25G 2-port 4G RAM 8G eMMC G1 Services Card
1de0 Groq
- 0000 Q100 Tensor Streaming Processor
+# rename due to conflict with a term in use by another company for an entirely different product.
+ 0000 TSP100 Tensor Streaming Processor
1de1 Tekram Technology Co.,Ltd.
0391 TRM-S1040 [DC-315 / DC-395 series]
- 2020 DC-390
+ 2020 DC-390 Series SCSI Adapter [AMD Am53C974]
690c 690c
dc29 DC290
1de5 Eideticom, Inc
e00a eMAG PCI Express Root Port 5
e00b eMAG PCI Express Root Port 6
e00c eMAG PCI Express Root Port 7
+# Root Complex A (RCA)
+ e100 Altra PCI Express Root Complex A
+# RCA port 0
+ e101 Altra PCI Express Root Port a0
+# RCA port 1
+ e102 Altra PCI Express Root Port a1
+# RCA port 2
+ e103 Altra PCI Express Root Port a2
+# RAC port 3
+ e104 Altra PCI Express Root Port a3
+# RCA port 4
+ e105 Altra PCI Express Root Port a4
+# RCA port 5
+ e106 Altra PCI Express Root Port a5
+# RCA port 6
+ e107 Altra PCI Express Root Port a6
+# RCA port 7
+ e108 Altra PCI Express Root Port a7
+# Root Complex B (RCB)
+ e110 Altra PCI Express Root Complex B
+# RCB port 0
+ e111 Altra PCI Express Root Port b0
+# RCB port 1
+ e112 Altra PCI Express Root Port b1
+# RCB port 2
+ e113 Altra PCI Express Root Port b2
+# RCB port 3
+ e114 Altra PCI Express Root Port b3
+# RCB port 4
+ e115 Altra PCI Express Root Port b4
+# RCB port 5
+ e116 Altra PCI Express Root Port b5
+# RCB port 6
+ e117 Altra PCI Express Root Port b6
+# RCB port 7
+ e118 Altra PCI Express Root Port b7
1df3 Ethernity Networks
0201 ACE-NIC40 Programmable Network Accelerator
1df3 0001 ENA1040
0206 ACE-NIC200 Programmable Network Accelerator
1df3 0000 Maintenance Mode
1df3 0001 ENA2200F
+ 0207 ACE-NIC50RN Programmable Network Accelerator
+ 1df3 0000 Maintenance Mode
+ 1df3 0001 ENA2050RN
+ 0208 ACE-NIC100RN Programmable Network Accelerator
+ 1df3 0000 Maintenance Mode
+ 1df3 0001 ENA2100RN
1df7 opencpi.org
0001 ml605
0002 alst4
1028 210f Dell Ent NVMe FIPS CM6 MU 3.2TB
1028 2110 Dell Ent NVMe FIPS CM6 MU 6.4TB
1e0f 0001 Generic NVMe CM6 RI 3.84TB
+ 0009 NVMe SSD
+ 1e0f 0001 Toshiba RC500 NVMe SSD 500GB
1e17 Arnold & Richter Cine Technik GmbH & Co. Betriebs KG
1e24 Squirrels Research Labs
0101 Acorn CLE-101
1e26 Fujitsu Client Computing Limited
1e36 Shanghai Enflame Technology Co. Ltd
0001 T10 [CloudBlazer]
+ 0002 T11 [CloudBlazer]
+ 0003 T10(QSFP-DD) [CloudBlazer]
+ 8011 I10 [CloudBlazer]
+ 8012 I10L [CloudBlazer]
# nee Thinci, Inc
1e38 Blaize, Inc
0102 Xplorer X1600
+1e3b Shenzhen DAPU Microelectronics Co., Ltd
+ 1098 Haishen NVMe SSD
+ 1e3b 0001 Enterprise NVMe SSD U.2 0.8TB (H2100)
+ 1e3b 0002 Enterprise NVMe SSD U.2 0.96TB (H2200)
+ 1e3b 0004 Enterprise NVMe SSD U.2 1.6TB (H2100)
+ 1e3b 0005 Enterprise NVMe SSD U.2 1.92TB (H2200)
+ 1e3b 0009 Enterprise NVMe SSD U.2 0.8TB (H3100)
+ 1e3b 000a Enterprise NVMe SSD U.2 0.96TB (H3200)
+ 1e3b 000c Enterprise NVMe SSD U.2 1.6TB (H3100)
+ 1e3b 000d Enterprise NVMe SSD U.2 1.92TB (H3200)
+ 1e3b 0014 Enterprise NVMe SSD U.2 3.2TB (H3100)
+ 1e3b 0015 Enterprise NVMe SSD U.2 3.84TB (H3200)
+ 1e3b 0021 Enterprise NVMe SSD U.2 6.4TB (H3100)
+ 1e3b 0022 Enterprise NVMe SSD U.2 7.68TB (H3200)
+ 1e3b 0061 Enterprise NVMe SSD HHHL 0.8TB (H2100)
+ 1e3b 0062 Enterprise NVMe SSD HHHL 0.96TB (H2200)
+ 1e3b 0064 Enterprise NVMe SSD HHHL 1.6TB (H2100)
+ 1e3b 0065 Enterprise NVMe SSD HHHL 1.92TB (H2200)
+ 1e3b 006c Enterprise NVMe SSD HHHL 0.8TB (H3100)
+ 1e3b 006d Enterprise NVMe SSD HHHL 0.96TB (H3200)
+ 1e3b 006f Enterprise NVMe SSD HHHL 1.6TB (H3100)
+ 1e3b 0070 Enterprise NVMe SSD HHHL 1.92TB (H3200)
+ 1e3b 007c Enterprise NVMe SSD HHHL 3.2TB (H3100)
+ 1e3b 007d Enterprise NVMe SSD HHHL 3.84TB (H3200)
+ 1e3b 007f Enterprise NVMe SSD HHHL 6.4TB (H3100)
+ 1e3b 0080 Enterprise NVMe SSD HHHL 7.68TB (H3200)
1e3d Burlywood, Inc
1e49 Yangtze Memory Technologies Co.,Ltd
1e4b MAXIO Technology (Hangzhou) Ltd.
1601 NVMe SSD Controller MAP1601
1e4c GSI Technology
# Associative Processing Unit (APU)
- 0010 APU [Leda-G]
+ 0010 APU [Leda]
1e4c 0120 SE120
1e57 Beijing Panyi Technology Co., Ltd
0100 The device has already been deleted.
0000 0100 PY8800 64GB Accelerator
+1e60 Hailo Technologies Ltd.
+ 2864 Hailo-8 AI Processor
1e6b Axiado Corp.
1e7b Dataland
1e7c Brainchip Inc
# aka SED Systems
1e94 Calian SED
1e95 Solid State Storage Technology Corporation
+1ea0 Tencent Technology (Shenzhen) Company Limited
+ 2a16 Cloud Intelligent Inference Controller
+1eab Hefei DATANG Storage Technology Co.,LTD.
+ 300a NVMe SSD Controller 300A
+ 300b NVMe SSD Controller 300B
1eae XFX Limited
1eb1 VeriSilicon Inc
1001 Video Accelerator
+1ebd EMERGETECH Company Ltd.
+ 0101 Seirios 2063 Video Codec
+1ed3 Yeston
+1ed8 Digiteq Automotive
+ 0101 FG4 PCIe Frame Grabber
+1ed9 Myrtle.ai
+1ee9 SUSE LLC
# nee Tumsan Oy
1fc0 Ascom (Finland) Oy
0300 E2200 Dual E1/Rawpipe Card
2348 Racore
2010 8142 100VG/AnyLAN
2646 Kingston Technology Company, Inc.
- 2263 A2000, M.2, 500GB
+ 0010 HyperX Predator PCIe AHCI SSD
+ 2262 KC2000 NVMe SSD
+ 2263 A2000 NVMe SSD
+ 5008 U-SNS8154P3 NVMe SSD
+ 500d OM3PDP3 NVMe SSD
270b Xantel Corporation
270f Chaintech Computer Co. Ltd
2711 AVID Technology Inc.
7053 CH353 PCI Dual Serial and Parallel Ports Controller
7073 CH356 PCI Quad Serial and Parallel Ports Controller
7173 CH355 PCI Quad Serial Port Controller
-434e CAST Navigation LLC
+434e Cornelis Networks
+43bc Tiger Lake-H PCIe Root Port #5
4444 Internext Compression Inc
0016 iTVC16 (CX23416) Video Decoder
0070 0003 WinTV PVR 250
0100 2nd Generation Core Processor Family DRAM Controller
1028 04aa XPS 8300
1043 844d P8P67/P8H67 Series Motherboard
+ 8086 200d DH61CR motherboard
0101 Xeon E3-1200/2nd Generation Core Processor Family PCI Express Root Port
1028 04b2 Vostro 3350
106b 00dc MacBookPro8,2 [Core i7, 15", 2011]
1043 844d P8B WS Motherboard
0172 Xeon E3-1200 v2/3rd Gen Core processor Graphics Controller
0176 3rd Gen Core processor Graphics Controller
+ 0201 Arctic Sound
0284 Comet Lake PCH-LP LPC Premium Controller/eSPI Controller
02a3 Comet Lake PCH-LP SMBus Host Controller
02a4 Comet Lake SPI (flash) Controller
02a6 Comet Lake North Peak
+ 02b0 Comet Lake PCI Express Root Port #9
+ 02b1 Comet Lake PCI Express Root Port #10
+ 02b3 Comet Lake PCI Express Root Port #12
+ 02b4 Comet Lake PCI Express Root Port #13
+ 02b8 Comet Lake PCI Express Root Port #1
+ 02bc Comet Lake PCI Express Root Port #5
+ 02c5 Comet Lake Serial IO I2C Host Controller
02c8 Comet Lake PCH-LP cAVS
02d3 Comet Lake SATA AHCI Controller
02e0 Comet Lake Management Engine Interface
02e8 Serial IO I2C Host Controller
02e9 Comet Lake Serial IO I2C Host Controller
+ 02ea Comet Lake PCH-LP LPSS: I2C Controller #2
02ed Comet Lake PCH-LP USB 3.1 xHCI Host Controller
02ef Comet Lake PCH-LP Shared SRAM
02f0 Comet Lake PCH-LP CNVi WiFi
8086 0034 Wireless-AC 9560 160MHz
8086 0070 Wi-Fi 6 AX201 160MHz
8086 0074 Wi-Fi 6 AX201 160MHz
+ 8086 4070 Wireless-AC 9462 80MHz
02f5 Comet Lake PCH-LP SCS3
02f9 Comet Lake Thermal Subsytem
02fc Comet Lake Integrated Sensor Solution
0406 Haswell Integrated Graphics Controller
040a Xeon E3-1200 v3 Processor Integrated Graphics Controller
0412 Xeon E3-1200 v3/4th Gen Core Processor Integrated Graphics Controller
+ 1028 05d7 Alienware X51 R2
103c 1998 EliteDesk 800 G1
+ 17aa 3098 ThinkCentre E73
17aa 309f ThinkCentre M83
0416 4th Gen Core Processor Integrated Graphics Controller
17aa 220e ThinkPad T440p
06ab Comet Lake PCH Serial IO SPI Controller #1
06ac Comet Lake PCI Express Root Port #21
06b0 Comet Lake PCI Express Root Port #9
+ 06bd Comet Lake PCIe Port #6
06c0 Comet Lake PCI Express Root Port #17
06c8 Comet Lake PCH cAVS
+ 06d2 Comet Lake SATA AHCI Controller
06e0 Comet Lake HECI Controller
+ 06e3 Comet Lake Keyboard and Text (KT) Redirection
06e8 Comet Lake PCH Serial IO I2C Controller #0
06e9 Comet Lake PCH Serial IO I2C Controller #1
06ea Comet Lake PCH Serial IO I2C Controller #2
1028 1fe7 Express Flash NVMe 3.2TB 2.5" U.2 (P4600)
1028 1fe8 Express Flash NVMe 2.0TB HHHL AIC (P4600)
1028 1fe9 Express Flash NVMe 4.0TB HHHL AIC (P4600)
- 0b60 NVMe DC SSD [3DNAND, Beta Rock Controller]
+ 0b26 Thunderbolt 4 Bridge [Goshen Ridge 2020]
+ 0b27 Thunderbolt 4 USB Controller [Goshen Ridge 2020]
+ 0b60 NVMe DC SSD [3DNAND, Sentinel Rock Controller]
1028 2060 NVMe SED MU U.2 1.6TB (P5600)
1028 2061 NVMe SED MU U.2 3.2TB (P5600)
1028 2062 NVMe SED MU U.2 6.4TB (P5600)
1028 2102 NVMe RI U.2 1.92TB (P5500)
1028 2103 NVMe RI U.2 3.84TB (P5500)
1028 2104 NVMe RI U.2 7.68TB (P5500)
+ 8086 8008 NVMe Datacenter SSD [3DNAND] SE 2.5" U.2 (P5510)
+ 8086 8d08 NVMe Datacenter SSD [3DNAND] VE 2.5" U.2 (P5316)
+ 8086 8d1d NVMe Datacenter SSD [3DNAND] VE E1.L 9.5/18mm (P5316)
+ 0bd0 Ponte Vecchio 2T
0be0 Atom Processor D2xxx/N2xxx Integrated Graphics Controller
0be1 Atom Processor D2xxx/N2xxx Integrated Graphics Controller
105b 0d7c D270S/D250S Motherboard
0bf6 Atom Processor D2xxx/N2xxx DRAM Controller
0bf7 Atom Processor D2xxx/N2xxx DRAM Controller
0c00 4th Gen Core Processor DRAM Controller
+ 1028 05d7 Alienware X51 R2
103c 1998 EliteDesk 800 G1
+ 17aa 3098 ThinkCentre E73
17aa 309f ThinkCentre M83
0c01 Xeon E3-1200 v3/4th Gen Core Processor PCI Express x16 Controller
0c04 Xeon E3-1200 v3/4th Gen Core Processor DRAM Controller
103c 2159 Ethernet 10Gb 2-port 562i Adapter
108e 7b11 Ethernet Server Adapter X520-2
1170 004c 82599 DP 10G Mezzanine Adapter
- 15d9 0611 AOC-STGN-I2S [REV 1.01]
+ 15d9 0611 AOC-STGN-i2S
1734 11a9 10 Gigabit Dual Port Network Connection
17aa 1071 ThinkServer X520-2 AnyFabric
17aa 4007 82599ES 10-Gigabit SFI/SFP+ Network Connection
8086 4532 Desktop Board D815EEA2/D815EFV
8086 4541 D815EEA Motherboard
8086 4557 D815EGEW Mainboard
+ 1136 Thunderbolt 4 Bridge [Maple Ridge 4C 2020]
+ 1137 Thunderbolt 4 NHI [Maple Ridge 4C 2020]
+ 1138 Thunderbolt 4 USB Controller [Maple Ridge 4C 2020]
1161 82806AA PCI64 Hub Advanced Programmable Interrupt Controller
8086 1161 82806AA PCI64 Hub APIC
1162 Xscale 80200 Big Endian Companion Chip
123f 82466GX Integrated Hot-Plug Controller (IHPC)
1240 82752 (752) AGP Graphics Accelerator
124b 82380FB (MPCI2) Mobile Docking Controller
+ 124c Ethernet Connection E823-L for backplane
+ 124d Ethernet Connection E823-L for SFP
+ 124e Ethernet Connection E823-L/X557-AT 10GBASE-T
+ 124f Ethernet Connection E823-L 1GbE
1250 430HX - 82439HX TXC [Triton II]
1360 82806AA PCI64 Hub PCI Bridge
1361 82806AA PCI64 Hub Controller (HRes)
1503 82579V Gigabit Network Connection
1043 849c P8P67 Deluxe Motherboard
10cf 161c LIFEBOOK E752
+ 8086 200d DH61CR motherboard
1507 Ethernet Express Module X520-P2
1508 82598EB Gigabit BX Network Connection
1509 82580 Gigabit Network Connection
151b CVL2510 Thunderbolt Controller [Light Peak 2C 2010]
151c 82599 10 Gigabit TN Network Connection
108e 7b13 Dual 10GBASE-T LP
+ 151d Ethernet Connection E823-L for QSFP
1520 I350 Ethernet Controller Virtual Function
1521 I350 Gigabit Network Connection
1028 0602 Gigabit 2P I350-t LOM
1093 775b PCIe-8237 Ethernet Adapter
10a9 802a UV2-BaseIO dual-port GbE
1137 023e 1GigE I350 LOM
+ 15d9 0000 AOC-SGP-i4
15d9 0652 Dual Port i350 GbE MicroLP [AOC-CGP-i2]
17aa 1074 ThinkServer I350-T4 AnyFabric
17aa 4005 I350 Gigabit Network Connection
18d4 0c07 I350 1Gb 2-port RJ45 OCP Mezz Card MOP41-I-1GT2
193d 1005 360T-B
193d 1007 360T-L
+# NIC-ETH360T-3S-4P OCP3.0 4x1G Base-T Card
+ 193d 1080 NIC-ETH360T-3S-4P
1bd4 001d 1G base-T QP EP014Ti1 Adapter
1bd4 0035 1G base-T QP EP014Ti1 Adapter
8086 0001 Ethernet Server Adapter I350-T4
156f Ethernet Connection I219-LM
1028 06dc Latitude E7470
103c 8079 EliteBook 840 G3
+ 17aa 2247 ThinkPad T570
1570 Ethernet Connection I219-V
1571 Ethernet Virtual Function 700 Series
1572 Ethernet Controller X710 for 10GbE SFP+
17aa 0000 ThinkServer X710 AnyFabric for 10GbE SFP+
17aa 4001 ThinkServer X710-4 AnyFabric for 10GbE SFP+
17aa 4002 ThinkServer X710-2 AnyFabric for 10GbE SFP+
+ 193d 1020 NIC-ETH561F-sL-4x10G
+ 193d 1021 NIC-ETH561F-sL-2x10G
+# NIC-ETH561F-3S-2P OCP3.0 2x10G SFP+ Card
+ 193d 1081 NIC-ETH561F-3S-2P
19e5 d11c Ethernet 2-port X710 10Gb SFP+ Adapter SP330
+ 1bd4 0042 10G SFP+ DP EP102Fi4 Adapter
1bd4 0056 Ethernet Network Adapter X710-BM2 for OCP NIC 3.0
8086 0000 Ethernet Converged Network Adapter X710
8086 0001 Ethernet Converged Network Adapter X710-4
1577 DSL6540 Thunderbolt 3 NHI [Alpine Ridge 4C 2015]
1578 DSL6540 Thunderbolt 3 Bridge [Alpine Ridge 4C 2015]
157b I210 Gigabit Network Connection
+ ea50 cc10 RXi2-BP
157c I210 Gigabit Backplane Connection
157d DSL5110 Thunderbolt 2 NHI (Low Power) [Win Ridge 2C 2014]
157e DSL5110 Thunderbolt 2 Bridge (Low Power) [Win Ridge 2C 2014]
1059 0170 RD-01213 10GbE interface
1590 0000 Ethernet 2-port 563i Adapter
1590 00f8 Ethernet 2-port 563i Adapter
+ 193d 100e NIC-ETH561i-Mb-4x10G
8086 0000 Ethernet Converged Network Adapter XL710-Q2
1583 Ethernet Controller XL710 for 40GbE QSFP+
1028 0000 Ethernet 40G 2P XL710 QSFP+ rNDC
1591 Ethernet Controller E810-C for backplane
1592 Ethernet Controller E810-C for QSFP
1137 02bf E810CQDA2 2x100 GbE QSFP28 PCIe NIC
+ 193d 1050 NIC-ETH1060F-LP-2P 2x100GbE Ethernet PCIe Card
+ 8086 0001 Ethernet Network Adapter E810-C-Q1
8086 0002 Ethernet Network Adapter E810-C-Q2
8086 0004 Ethernet Network Adapter E810-C-Q2
8086 0005 Ethernet Network Adapter E810-C-Q1 for OCP3.0
8086 000a Ethernet Network Adapter E810-C-Q1 for OCP
8086 000b Ethernet 100G 2P E810-C Adapter
8086 000c Ethernet 100G 2P E810-C OCP
+ 8086 000d Ethernet Network Adapter E810-L-Q2 for OCP 3.0
+ 8086 000e Ethernet Network Adapter E810-2C-Q2
1593 Ethernet Controller E810-C for SFP
1137 02c3 E810XXVDA4 4x25/10 GbE SFP28 PCIe NIC
8086 0002 Ethernet Network Adapter E810-L-2
15b6 DSL6540 USB 3.1 Controller [Alpine Ridge]
15b7 Ethernet Connection (2) I219-LM
15b8 Ethernet Connection (2) I219-V
+ 1462 7a72 H270 PC MATE
15b9 Ethernet Connection (3) I219-LM
15bb Ethernet Connection (7) I219-LM
15bc Ethernet Connection (7) I219-V
1137 0000 X710TLG GbE RJ45 PCIe NIC
1137 02c1 X710T2LG 2x10 GbE RJ45 PCIe NIC
1137 02c2 X710T4LG 4x10 GbE RJ45 PCIe NIC
+ 1137 02d9 Ethernet Network Adapter X710-T2L OCP 3.0
+ 1137 02da Ethernet Network Adapter X710-T4L OCP 3.0
+# NIC-ETH565T-3S-2P OCP3.0 2x10G Base-T Card
+ 193d 1082 NIC-ETH565T-3S-2P
8086 0000 Ethernet Network Adapter X710-TL
8086 0001 Ethernet Network Adapter X710-T4L
8086 0002 Ethernet Network Adapter X710-T4L
18a0 C4xxx Series QAT
18a1 C4XXX Series QAT Virtual Function
1900 Xeon E3-1200 v5/E3-1500 v5/6th Gen Core Processor Host Bridge/DRAM Registers
- 1901 6th-9th Gen Core Processor PCIe Controller (x16)
+ 1901 6th-10th Gen Core Processor PCIe Controller (x16)
1902 HD Graphics 510
1903 Xeon E3-1200 v5/E3-1500 v5/6th Gen Core Processor Thermal Subsystem
1028 06d6 Latitude 7275 tablet
1028 06dc Latitude E7470
1028 06e4 XPS 15 9550
+ 1028 06e6 Latitude 11 5175 2-in-1
103c 825b OMEN-17-w001nv
17aa 225d ThinkPad T480
1904 Xeon E3-1200 v5/E3-1500 v5/6th Gen Core Processor Host Bridge/DRAM Registers
1028 06dc Latitude E7470
1028 06f3 Latitude 3570
103c 8079 EliteBook 840 G3
+ 17aa 2247 ThinkPad T570
17aa 382a B51-80 Laptop
1905 Xeon E3-1200 v5/E3-1500 v5/6th Gen Core Processor PCIe Controller (x8)
1906 HD Graphics 510
1909 Xeon E3-1200 v5/E3-1500 v5/6th Gen Core Processor PCIe Controller (x4)
190c Xeon E3-1200 v5/E3-1500 v5/6th Gen Core Processor Host Bridge/DRAM Registers
1028 06d6 Latitude 7275 tablet
+ 1028 06e6 Latitude 11 5175 2-in-1
190f Xeon E3-1200 v5/E3-1500 v5/6th Gen Core Processor Host Bridge/DRAM Registers
1910 Xeon E3-1200 v5/E3-1500 v5/6th Gen Core Processor Host Bridge/DRAM Registers
1028 06e4 XPS 15 9550
103c 825b OMEN-17-w001nv
1911 Xeon E3-1200 v5/v6 / E3-1500 v5 / 6th/7th/8th Gen Core Processor Gaussian Mixture Model
1028 0869 Vostro 3470
+ 1462 7a72 H270 PC MATE
17aa 2247 ThinkPad T570
17aa 224f ThinkPad X1 Carbon 5th Gen
17aa 225d ThinkPad T480
1028 06dc Latitude E7470
1028 06f3 Latitude 3570
103c 8079 EliteBook 840 G3
+ 17aa 2247 ThinkPad T570
1918 Xeon E3-1200 v5/E3-1500 v5/6th Gen Core Processor Host Bridge/DRAM Registers
1919 Xeon E3-1200 v5/E3-1500 v5/6th Gen Core Processor Imaging Unit
1028 06d6 Latitude 7275 tablet
+ 1028 06e6 Latitude 11 5175 2-in-1
191b HD Graphics 530
1028 06e4 XPS 15 9550
103c 825b OMEN-17-w001nv
191d HD Graphics P530
191e HD Graphics 515
1028 06d6 Latitude 7275 tablet
+ 1028 06e6 Latitude 11 5175 2-in-1
191f Xeon E3-1200 v5/E3-1500 v5/6th Gen Core Processor Host Bridge/DRAM Registers
1921 HD Graphics 520
1926 Iris Graphics 540
1c02 6 Series/C200 Series Chipset Family 6 port Desktop SATA AHCI Controller
1028 04aa XPS 8300
1043 844d P8 series motherboard
+ 8086 200d DH61CR motherboard
8086 7270 Server Board S1200BT Family
1c03 6 Series/C200 Series Chipset Family 6 port Mobile SATA AHCI Controller
1028 04a3 Precision M4600
17aa 21cf ThinkPad T520
# Realtek ALC888 audio codec
8086 2008 DQ67SW board
+ 8086 200d DH61CR motherboard
8086 7270 Apple MacBookPro8,2 [Core i7, 15", 2011]
1c22 6 Series/C200 Series Chipset Family SMBus Controller
1028 04a3 Precision M4600
1028 04da Vostro 3750
1043 844d P8 series motherboard
17aa 21cf ThinkPad T520
+ 8086 200d DH61CR motherboard
8086 7270 Server Board S1200BT Family / Apple MacBook Pro 8,1/8,2
1c24 6 Series/C200 Series Chipset Family Thermal Management Controller
1c25 6 Series/C200 Series Chipset Family DMI to PCI Bridge
1028 04da Vostro 3750
1043 844d P8 series motherboard
17aa 21cf ThinkPad T520
+ 8086 200d DH61CR motherboard
8086 7270 Server Board S1200BT Family / Apple MacBook Pro 8,1/8,2
1c27 6 Series/C200 Series Chipset Family USB Universal Host Controller #1
8086 7270 Apple MacBookPro8,2 [Core i7, 15", 2011]
1028 04da Vostro 3750
1043 844d P8 series motherboard
17aa 21cf ThinkPad T520
+ 8086 200d DH61CR motherboard
8086 7270 Server Board S1200BT Family / Apple MacBook Pro 8,1/8,2
1c33 6 Series/C200 Series Chipset Family LAN Controller
1c35 6 Series/C200 Series Chipset Family VECI Controller
1028 04da Vostro 3750
1043 844d P8 series motherboard
17aa 21cf ThinkPad T520
+ 8086 200d DH61CR motherboard
8086 7270 Apple MacBookPro8,2 [Core i7, 15", 2011]
1c3b 6 Series/C200 Series Chipset Family MEI Controller #2
1c3c 6 Series/C200 Series Chipset Family IDE-r Controller
1c5a Upgraded Q67 Express Chipset LPC Controller
1c5b 6 Series/C200 Series Chipset Family LPC Controller
1c5c H61 Express Chipset LPC Controller
+ 8086 200d DH61CR motherboard
1c5d 6 Series/C200 Series Chipset Family LPC Controller
1c5e 6 Series/C200 Series Chipset Family LPC Controller
1c5f 6 Series/C200 Series Chipset Family LPC Controller
15d9 066b X9SRL-F
1d2d C600/X79 series chipset USB2 Enhanced Host Controller #2
1028 04f7 C602J on PowerEdge R320 server
+ 103c 18a9 HP DL360e G8
15d9 066b X9SRL-F
1d33 C600/X79 series chipset LAN Controller
1d35 C600/X79 series chipset VECI Controller
1f26 Atom processor C2000 RAID SATA2 Controller
1f27 Atom processor C2000 RAID SATA2 Controller
1f2c Atom processor C2000 USB Enhanced Host Controller
+ 0200 1028 Atom C2338 on Dell 0K8Y0N motherboard
1f2e Atom processor C2000 RAID SATA2 Controller
1f2f Atom processor C2000 RAID SATA2 Controller
1f30 Atom processor C2000 2-Port IDE SATA3 Controller
147b 0507 TH7II-RAID
8086 4532 Desktop Board D815EEA2/D815EFV
8086 4557 D815EGEW Mainboard
+ 8086 4d44 D850EMV2 motherboard
8086 5744 S845WD1-E mainboard
2443 82801BA/BAM SMBus Controller
1014 01c6 Netvista A40/A40p
147b 0507 TH7II-RAID
8086 4557 D815EGEW Mainboard
8086 4656 Desktop Board D815EFV
+ 8086 4d44 D850EMV2 motherboard
2446 82801BA/BAM AC'97 Modem Controller
1025 1016 Travelmate 612 TX
104d 80df Vaio PCG-FX403
15d9 3280 Supermicro P4SBE Mainboard
8086 4532 Desktop Board D815EEA2/D815EFV
8086 4557 D815EGEW Mainboard
+ 8086 4d44 D850EMV2 motherboard
8086 5744 S845WD1-E mainboard
244c 82801BAM ISA Bridge (LPC)
244e 82801 PCI Bridge
1cb8 0002 Omni-Path HFI Adapter 100 Series, 1 Port, PCIe x16, TC6600 Fixed Port
1cb8 0003 Omni-Path HFI Adapter 100 Series, 2 Port, 2 PCIe x16, Earth Simulation QSFP28
1cb8 0004 Omni-Path HFI Adapter 100 Series, 1 Port, PCIe x16, TC4600E QSFP28
+ 434e 0001 Omni-Path HFI 100 Series, 1 Port, OCP 3.0 Adapter
8086 2628 Omni-Path HFI Adapter 100 Series, 1 Port, PCIe x16
8086 2629 Omni-Path HFI Adapter 100 Series, 1 Port, PCIe x8
8086 262a Omni-Path HFI Adapter 100 Series, 2 Ports, Split PCIe x16
250f 82820 820 (Camino) Chipset AGP Bridge
2520 82805AA MTH Memory Translator Hub
2521 82804AA MRH-S Memory Repeater Hub for SDRAM
+ 2522 NVMe Optane Memory Series
+ 8086 3806 Optane Memory 16GB
+ 8086 3810 Optane Memory M10 16GB
2526 Wireless-AC 9260
2530 82850 850 (Tehama) Chipset Host Bridge (MCH)
1028 00c7 Dimension 8100
103c 0934 Compaq nw8240/nx8220
103c 0944 Compaq nc6220 Notebook PC
103c 099c NX6110/NC6120
+ 1043 82d9 Asus Eee PC 900
104d 81b7 Vaio VGN-S3XP
a304 81b7 Vaio VGN-S3XP
e4bf 0ccd CCD-CALYPSO
8086 3904 NVMe Datacenter SSD [Optane] x4 AIC (P4800X)
8086 3905 NVMe Datacenter SSD [Optane] 15mm 2.5" U.2 (P4800X)
2723 Wi-Fi 6 AX200
- 8086 2723 Wireless AX200
+ 1a56 1654 Killer™ Wi-Fi 6 AX1650x (AX200NGW)
+ 8086 0084 Wi-Fi 6 AX200NGW
+ 2725 Wi-Fi 6 AX210/AX211/AX411 160MHz
+ 8086 0020 Wi-Fi 6 AX210 160MHz
+ 8086 0024 Wi-Fi 6 AX210 160MHz
+ 8086 0090 Wi-Fi 6 AX211 160MHz
+ 8086 00b0 Wi-Fi 6 AX411 160MHz
+ 8086 0310 Wi-Fi 6 AX210 160MHz
+ 8086 0510 Wi-Fi 6 AX210 160MHz
+ 8086 0a10 Wi-Fi 6 AX210 160MHz
+ 8086 2020 Wi-Fi 6 AX210 160MHz
+ 8086 4020 Wi-Fi 6 AX210 160MHz
+ 8086 6020 Wi-Fi 6 AX210 160MHz
+ 8086 6024 Wi-Fi 6 AX210 160MHz
+ 8086 e020 Wi-Fi 6 AX210 160MHz
+ 8086 e024 Wi-Fi 6 AX210 160MHz
2770 82945G/GZ/P/PL Memory Controller Hub
1028 01ad OptiPlex GX620
103c 2a3b Pavilion A1512X
277c 82975X Memory Controller Hub
1043 8178 P5WDG2 WS Professional motherboard
277d 82975X PCI Express Root Port
+ 2780 82915G/GV/GL/910GL [Grantsdale] Graphics Device
2782 82915G Integrated Graphics Controller
1043 2582 P5GD1-VW Mainboard
1734 105b Scenic W620
1028 022f Inspiron 1525
103c 30c0 Compaq 6710b
103c 30c1 Compaq 6910p
+ 103c 30c5 Compaq 8510p
103c 30cc Pavilion dv6700
103c 30d9 Presario C700
1043 1017 X58LE
2a41 Mobile 4 Series Chipset PCI Express Graphics Port
e4bf cc4d CCM-BOOGIE
2a42 Mobile 4 Series Chipset Integrated Graphics Controller
+ 1028 02aa Dell Inspiron 1545
17aa 2112 ThinkPad T400
e4bf cc4d CCM-BOOGIE
2a43 Mobile 4 Series Chipset Integrated Graphics Controller
8086 4210 Dual Band Wireless AC 3165
3166 Dual Band Wireless-AC 3165 Plus Bluetooth
8086 4210 Dual Band Wireless-AC 3165
- 3184 UHD Graphics 605
- 3185 UHD Graphics 605
+ 3184 GeminiLake [UHD Graphics 605]
+ 3185 GeminiLake [UHD Graphics 600]
318c Celeron/Pentium Silver Processor Dynamic Platform and Thermal Framework Processor Participant
318e Celeron/Pentium Silver Processor NorthPeak
3190 Celeron/Pentium Silver Processor Gaussian Mixture Model
17aa 380b V130-15IGM Laptop (Lenovo) - Type 81HL
319a Celeron/Pentium Silver Processor Trusted Execution Engine Interface
31a2 Celeron/Pentium Silver Processor Integrated Sensor Solution
+ 31a8 Celeron/Pentium Silver Processor USB 3.0 xHCI Controller
+ 1849 31a8 Celeron/Pentium Silver Processor USB 3.0 xHCI Controller
31ac Celeron/Pentium Silver Processor Serial IO I2C Host Controller
31ae Celeron/Pentium Silver Processor Serial IO I2C Host Controller
31bc Celeron/Pentium Silver Processor Serial IO UART Host Controller
31d9 Gemini Lake PCI Express Root Port
31da Gemini Lake PCI Express Root Port
31db Gemini Lake PCI Express Root Port
- 31dc AC 1550i Wireless
+ 31dc Gemini Lake PCH CNVi WiFi
+ 1a56 1552 Killer(R) Wireless-AC 1550i Wireless Network Adapter (9560NGW)
+ 8086 0034 Wireless-AC 9560
+ 31e3 Celeron/Pentium Silver Processor SATA Controller
+ 31e8 Celeron/Pentium Silver Processor LPC Controller
31ee Celeron/Pentium Silver Processor Serial IO UART Host Controller
31f0 Gemini Lake Host Bridge
3200 GD31244 PCI-X SATA HBA
34aa Ice Lake-LP Serial IO SPI Controller #0
34ab Ice Lake-LP Serial IO SPI Controller #1
34b0 Ice Lake-LP PCI Express Root Port #9
+ 34b7 Ice Lake-LP PCI Express Root Port #16
34bc Ice Lake-LP PCI Express Root Port #5
34c5 Ice Lake-LP Serial IO I2c Controller #4
34c6 Ice Lake-LP Serial IO I2c Controller #5
- 34c8 Smart Sound Technology Audio Controller
+ 34c8 Ice Lake-LP Smart Sound Technology Audio Controller
34d3 Ice Lake-LP SATA Controller [AHCI mode]
- 34e0 Management Engine Interface
+ 34e0 Ice Lake-LP Management Engine
34e8 Ice Lake-LP Serial IO I2C Controller #0
34e9 Ice Lake-LP Serial IO I2C Controller #1
34ea Ice Lake-LP Serial IO I2C Controller #2
34eb Ice Lake-LP Serial IO I2C Controller #3
34ed Ice Lake-LP USB 3.1 xHCI Host Controller
- 34f0 Killer Wi-Fi 6 AX1650i 160MHz Wireless Network Adapter (201NGW)
+ 34ef Ice Lake-LP DRAM Controller
+ 34f0 Ice Lake-LP PCH CNVi WiFi
+ 1a56 1552 Killer(R) Wireless-AC 1550i Wireless Network Adapter (9560NGW)
+ 8086 0074 Wi-Fi 6 AX201
+ 8086 0264 Wireless-AC 9461
34f8 Ice Lake-LP SD Controller
+ 34fc Ice Lake-LP Integrated Sensor Solution
3500 6311ESB/6321ESB PCI Express Upstream Port
103c 31fe ProLiant DL140 G3
15d9 9680 X7DBN Motherboard
3e81 8th Gen Core Processor PCIe Controller (x16)
3e85 8th Gen Core Processor PCIe Controller (x8)
3e89 8th Gen Core Processor PCIe Controller (x4)
- 3e91 8th Gen Core Processor Gaussian Mixture Model
- 3e92 UHD Graphics 630 (Desktop)
+ 3e90 CoffeeLake-S GT1 [UHD Graphics 610]
+ 3e91 CoffeeLake-S GT2 [UHD Graphics 630]
+ 3e92 CometLake-S GT2 [UHD Graphics 630]
1028 0869 Vostro 3470
- 3e93 UHD Graphics 610
- 3e96 HD Graphics P630
- 3e98 UHD Graphics 630 (Desktop 9 Series)
- 3e9b UHD Graphics 630 (Mobile)
- 3ea0 UHD Graphics 620 (Whiskey Lake)
+ 3e93 CoffeeLake-S GT1 [UHD Graphics 610]
+ 3e96 CoffeeLake-S GT2 [UHD Graphics P630]
+ 3e98 CoffeeLake-S GT2 [UHD Graphics 630]
+ 3e9b CoffeeLake-H GT2 [UHD Graphics 630]
+ 3ea0 WhiskeyLake-U GT2 [UHD Graphics 620]
1028 089e Inspiron 5482
- 3ea5 Iris Plus Graphics 655
+ 3ea5 CoffeeLake-U GT3e [Iris Plus Graphics 655]
3ec2 8th Gen Core Processor Host Bridge/DRAM Registers
1028 0869 Vostro 3470
1043 8694 PRIME H310M-D
4032 5400 Chipset IOxAPIC
4035 5400 Chipset FBD Registers
4036 5400 Chipset FBD Registers
+ 4041 NVMe Datacenter SSD [Optane]
4100 Moorestown Graphics and Video
4108 Atom Processor E6xx Integrated Graphics Controller
4109 Atom Processor E6xx Integrated Graphics Controller
4115 Atom Processor E6xx PCI Host Bridge #2
4116 Atom Processor E6xx PCI Host Bridge #3
4117 Atom Processor E6xx PCI Host Bridge #4
+ 4140 NVMe Datacenter SSD [Optane]
+ 1028 2134 NVMe Datacenter SSD [Optane] SED 400GB 2.5" U.2 (P5800X)
+ 1028 2135 NVMe Datacenter SSD [Optane] SED 800GB 2.5" U.2 (P5800X)
+ 1028 2136 NVMe Datacenter SSD [Optane] SED 1.6TB 2.5" U.2 (P5800X)
+ 1028 2137 NVMe Datacenter SSD [Optane] 400GB 2.5" U.2 (P5800X)
+ 1028 2138 NVMe Datacenter SSD [Optane] 800GB 2.5" U.2 (P5800X)
+ 1028 2139 NVMe Datacenter SSD [Optane] 1.6TB 2.5" U.2 (P5800X)
4220 PRO/Wireless 2200BG [Calexico2] Network Connection
103c 0934 Compaq nw8240/nx8220
103c 12f6 nc6120/nc6220/nw8240/nx8220
8086 1216 WiMAX/WiFi Link 5150 ABG
8086 1311 WiMAX/WiFi Link 5150 AGN
8086 1316 WiMAX/WiFi Link 5150 ABG
+ 438b Tiger Lake-H LPC/eSPI Controller
+ 43a3 Tiger Lake-H SMBus Controller
+ 43a4 Tiger Lake-H SPI Controller
+ 43b0 Tiger Lake-H PCI Express Root Port #9
+ 43bc Tiger Lake-H PCI Express Root Port #5
+ 43c8 Tiger Lake-H HD Audio Controller
+ 43e0 Tiger Lake-H Management Engine Interface
+ 43e8 Tiger Lake-H Serial IO I2C Controller #0
+ 43ed Tiger Lake-H USB 3.2 Gen 2x1 xHCI Host Controller
+ 43ef Tiger Lake-H Shared SRAM
+ 43f0 Tiger Lake PCH CNVi WiFi
+ 8086 0034 Wireless-AC 9560
+ 8086 0074 Wi-Fi 6 AX201 160MHz
+ 8086 0264 Wireless-AC 9461
+ 8086 02a4 Wireless-AC 9462
444e Turbo Memory Controller
467f Volume Management Device NVMe RAID Controller
+ 4680 AlderLake-S GT1
+ 46a0 AlderLake-P GT2
+ 46c0 AlderLake-M GT1
+ 4905 DG1 [Iris Xe MAX Graphics]
+ 4906 DG1 [Iris Xe Pod]
+ 4907 SG1 [Server GPU SG-18M]
+ 4908 DG1 [Iris Xe Graphics]
4c3d Volume Management Device NVMe RAID Controller
+ 4c8a RocketLake-S GT1 [UHD Graphics 750]
+ 4c8b RocketLake-S GT1 [UHD Graphics 730]
+ 4c90 RocketLake-S GT1 [UHD Graphics P750]
+ 4c9a RocketLake-S [UHD Graphics]
+ 4da3 JaserLake SMBus
+ 4da4 JaserLake SPI (flash) Controller
+ 4de0 Management Engine Interface
+ 4de8 Serial IO I2C Host Controller
+ 4de9 Serial IO I2C Host Controller
+ 4df0 Wi-Fi 6 AX201 160MHz
+ 4e03 Dynamic Tuning service
+ 4e19 JasperLake IPU
+ 4e55 JasperLake [UHD Graphics]
+ 4e61 JasperLake [UHD Graphics]
+ 4e71 JasperLake [UHD Graphics]
+ 4f80 DG2
+ 4f81 DG2
+ 4f82 DG2
5001 LE80578
5002 LE80578 Graphics Processor Unit
5009 LE80578 Video Display Controller
8086 0001 EtherExpress PRO/100 Server Ethernet Adapter
530d 80310 (IOP) IO Processor
5502 Ethernet Controller (2) I225-LMvP
+ 5504 Ethernet Controller I226-K
5845 QEMU NVM Express Controller
1af4 1100 QEMU Virtual Machine
5900 Xeon E3-1200 v6/7th Gen Core Processor Host Bridge/DRAM Registers
590c Xeon E3-1200 v6/7th Gen Core Processor Host Bridge/DRAM Registers
590f Xeon E3-1200 v6/7th Gen Core Processor Host Bridge/DRAM Registers
1462 7a68 B250 KRAIT GAMING (MS-7A68)
+ 1462 7a72 H270 PC MATE
5910 Xeon E3-1200 v6/7th Gen Core Processor Host Bridge/DRAM Registers
5911 Xeon E3-1200 v6/7th Gen Core Processor Gaussian Mixture Model
5912 HD Graphics 630
+ 1462 7a72 H270 PC MATE
5914 Xeon E3-1200 v6/7th Gen Core Processor Host Bridge/DRAM Registers
17aa 225d ThinkPad T480
5916 HD Graphics 620
1993 0ded mGuard-PCI AV#2
1993 0dee mGuard-PCI AV#1
1993 0def mGuard-PCI AV#0
+ 8603 Ice Lake-LP Dynamic Tuning Processor Participant
87c0 UHD Graphics 617
8800 Platform Controller Hub EG20T PCI Express Port
8801 Platform Controller Hub EG20T Packet Hub
8818 Platform Controller Hub EG20T Controller Area Network (CAN) Controller
8819 Platform Controller Hub EG20T IEEE 1588 Hardware Assist
8a0d Ice Lake Thunderbolt 3 NHI #1
+ 8a12 Ice Lake-LP Processor Host Bridge/DRAM Registers
8a13 Ice Lake Thunderbolt 3 USB Controller
8a17 Ice Lake Thunderbolt 3 NHI #0
+ 8a19 Image Signal Processor
8a1d Ice Lake Thunderbolt 3 PCI Express Root Port #0
8a1f Ice Lake Thunderbolt 3 PCI Express Root Port #1
8a21 Ice Lake Thunderbolt 3 PCI Express Root Port #2
8c00 8 Series/C220 Series Chipset Family 4-port SATA Controller 1 [IDE mode]
8c01 8 Series Chipset Family 4-port SATA Controller 1 [IDE mode] - Mobile
8c02 8 Series/C220 Series Chipset Family 6-port SATA Controller 1 [AHCI mode]
+ 1028 05d7 Alienware X51 R2
103c 1998 EliteDesk 800 G1
+ 17aa 3098 ThinkCentre E73
17aa 309f ThinkCentre M83
8c03 8 Series/C220 Series Chipset Family 6-port SATA Controller 1 [AHCI mode]
103c 1909 ZBook 15
103c 1998 EliteDesk 800 G1
1043 8534 ASUS H81I-PLUS
17aa 220e ThinkPad T440p
+ 17aa 3098 ThinkCentre E73
8c11 8 Series/C220 Series Chipset Family PCI Express Root Port #1
8c12 8 Series/C220 Series Chipset Family PCI Express Root Port #2
103c 1998 EliteDesk 800 G1
8c18 8 Series/C220 Series Chipset Family PCI Express Root Port #5
8c19 8 Series/C220 Series Chipset Family PCI Express Root Port #5
8c1a 8 Series/C220 Series Chipset Family PCI Express Root Port #6
+ 17aa 3098 ThinkCentre E73
8c1b 8 Series/C220 Series Chipset Family PCI Express Root Port #6
8c1c 8 Series/C220 Series Chipset Family PCI Express Root Port #7
8c1d 8 Series/C220 Series Chipset Family PCI Express Root Port #7
8c1e 8 Series/C220 Series Chipset Family PCI Express Root Port #8
8c1f 8 Series/C220 Series Chipset Family PCI Express Root Port #8
8c20 8 Series/C220 Series Chipset High Definition Audio Controller
+ 1028 05d7 Alienware X51 R2
103c 1909 ZBook 15
103c 1998 EliteDesk 800 G1
17aa 220e ThinkPad T440p
17aa 309f ThinkCentre M83
8c21 8 Series/C220 Series Chipset High Definition Audio Controller
8c22 8 Series/C220 Series Chipset Family SMBus Controller
+ 1028 05d7 Alienware X51 R2
103c 1909 ZBook 15
103c 1998 EliteDesk 800 G1
17aa 220e ThinkPad T440p
+ 17aa 3098 ThinkCentre E73
17aa 309f ThinkCentre M83
8c23 8 Series Chipset Family CHAP Counters
8c24 8 Series Chipset Family Thermal Management Controller
8c26 8 Series/C220 Series Chipset Family USB EHCI #1
+ 1028 05d7 Alienware X51 R2
103c 1909 ZBook 15
103c 1998 EliteDesk 800 G1
17aa 220e ThinkPad T440p
17aa 2210 ThinkPad T540p
+ 17aa 3098 ThinkCentre E73
17aa 309f ThinkCentre M83
2210 17aa ThinkPad T540p
8c2d 8 Series/C220 Series Chipset Family USB EHCI #2
+ 1028 05d7 Alienware X51 R2
103c 1909 ZBook 15
103c 1998 EliteDesk 800 G1
17aa 220e ThinkPad T440p
+ 17aa 3098 ThinkCentre E73
17aa 309f ThinkCentre M83
8c31 8 Series/C220 Series Chipset Family USB xHCI
+ 1028 05d7 Alienware X51 R2
103c 1909 ZBook 15
103c 1998 EliteDesk 800 G1
17aa 220e ThinkPad T440p
+ 17aa 3098 ThinkCentre E73
17aa 309f ThinkCentre M83
8c33 8 Series/C220 Series Chipset Family LAN Controller
8c34 8 Series/C220 Series Chipset Family NAND Controller
8c3a 8 Series/C220 Series Chipset Family MEI Controller #1
+ 1028 05d7 Alienware X51 R2
103c 1909 ZBook 15
103c 1998 EliteDesk 800 G1
17aa 220e ThinkPad T440p
+ 17aa 3098 ThinkCentre E73
17aa 309f ThinkCentre M83
8c3b 8 Series/C220 Series Chipset Family MEI Controller #2
8c3c 8 Series/C220 Series Chipset Family IDE-r Controller
8c48 8 Series/C220 Series Chipset Family LPC Controller
8c49 HM86 Express LPC Controller
8c4a H87 Express LPC Controller
+ 1028 05d7 Alienware X51 R2
8c4b HM87 Express LPC Controller
8c4c Q85 Express LPC Controller
17aa 309f ThinkCentre M83
8c5a 8 Series/C220 Series Chipset Family LPC Controller
8c5b 8 Series/C220 Series Chipset Family LPC Controller
8c5c H81 Express LPC Controller
+ 17aa 3098 ThinkCentre E73
8c5d 8 Series/C220 Series Chipset Family LPC Controller
8c5e 8 Series/C220 Series Chipset Family LPC Controller
8c5f 8 Series/C220 Series Chipset Family LPC Controller
9622 Integrated RAID
9641 Integrated RAID
96a1 Integrated RAID
+ 9a01 11th Gen Core Processor PCIe Controller #1
+ 9a03 TigerLake-LP Dynamic Tuning Processor Participant
9a09 11th Gen Core Processor PCIe Controller
9a0b Volume Management Device NVMe RAID Controller
- 9a13 Tiger Lake-LP Thunderbolt USB Controller
+ 9a0d Tigerlake Telemetry Aggregator Driver
+ 9a0f 11th Gen Core Processor PCIe Controller #0
+ 9a11 GNA Scoring Accelerator module
+ 9a13 Tiger Lake-LP Thunderbolt 4 USB Controller
9a14 11th Gen Core Processor Host Bridge/DRAM Registers
- 9a1b Tiger Lake-LP Thunderbolt NHI #0
- 9a1d Tiger Lake-LP Thunderbolt NHI #1
- 9a23 Tiger Lake-LP Thunderbolt PCI Express Root Port #0
- 9a25 Tiger Lake-LP Thunderbolt PCI Express Root Port #1
- 9a27 Tiger Lake-LP Thunderbolt PCI Express Root Port #2
- 9a29 Tiger Lake-LP Thunderbolt PCI Express Root Port #3
+ 9a17 Tiger Lake-H Thunderbolt 4 USB Controller
+ 9a1b Tiger Lake-LP Thunderbolt 4 NHI #0
+ 9a1d Tiger Lake-LP Thunderbolt 4 NHI #1
+ 9a1f Tiger Lake-H Thunderbolt 4 NHI #0
+ 9a21 Tiger Lake-H Thunderbolt 4 NHI #1
+ 9a23 Tiger Lake-LP Thunderbolt 4 PCI Express Root Port #0
+ 9a25 Tiger Lake-LP Thunderbolt 4 PCI Express Root Port #1
+ 9a26 11th Gen Core Processor Host Bridge/DRAM Registers
+ 9a27 Tiger Lake-LP Thunderbolt 4 PCI Express Root Port #2
+ 9a29 Tiger Lake-LP Thunderbolt 4 PCI Express Root Port #3
+ 9a2b Tiger Lake-H Thunderbolt 4 PCI Express Root Port #0
+ 9a2d Tiger Lake-H Thunderbolt 4 PCI Express Root Port #1
+ 9a2f Tiger Lake-H Thunderbolt 4 PCI Express Root Port #2
+ 9a31 Tiger Lake-H Thunderbolt 4 PCI Express Root Port #3
9a33 Tiger Lake Trace Hub
- 9a49 UHD Graphics
- 9b41 UHD Graphics
+ 9a36 11th Gen Core Processor Host Bridge/DRAM Registers
+ 9a49 TigerLake-LP GT2 [Iris Xe Graphics]
+ 9a60 TigerLake-H GT1 [UHD Graphics]
+ 9a68 TigerLake-H GT1 [UHD Graphics]
+ 9b41 CometLake-U GT2 [UHD Graphics]
+ 1028 09bd Latitude 7310
9b44 10th Gen Core Processor Host Bridge/DRAM Registers
+ 9b53 Comet Lake-S 6c Host Bridge/DRAM Controller
9b54 10th Gen Core Processor Host Bridge/DRAM Registers
9b61 Comet Lake-U v1 4c Host Bridge/DRAM Controller
+ 9b63 10th Gen Core Processor Host Bridge/DRAM Registers
9b64 10th Gen Core Processor Host Bridge/DRAM Registers
- 9bc4 UHD Graphics
- 9bc8 UHD Graphics 630
+ 9bc4 CometLake-H GT2 [UHD Graphics]
+ 9bc5 CometLake-S GT2 [UHD Graphics 630]
+ 9bc8 CometLake-S GT2 [UHD Graphics 630]
+ 9bca Comet Lake UHD Graphics
9c00 8 Series SATA Controller 1 [IDE mode]
9c01 8 Series SATA Controller 1 [IDE mode]
9c02 8 Series SATA Controller 1 [AHCI mode]
9d03 Sunrise Point-LP SATA Controller [AHCI mode]
1025 115f Acer Aspire E5-575G
1028 06dc Latitude E7470
+ 1028 06e6 Latitude 11 5175 2-in-1
1028 06f3 Latitude 3570
103c 8079 EliteBook 840 G3
17aa 225d ThinkPad T480
9d16 Sunrise Point-LP PCI Express Root Port #7
9d17 Sunrise Point-LP PCI Express Root Port #8
9d18 Sunrise Point-LP PCI Express Root Port #9
+ 17aa 2247 ThinkPad T570
17aa 382a B51-80 Laptop
9d19 Sunrise Point-LP PCI Express Root Port #10
9d1a Sunrise Point-LP PCI Express Root Port #11
1025 115f Acer Aspire E5-575G
1028 06d6 Latitude 7275 tablet
1028 06dc Latitude E7470
+ 1028 06e6 Latitude 11 5175 2-in-1
1028 06f3 Latitude 3570
103c 8079 EliteBook 840 G3
+ 17aa 2247 ThinkPad T570
17aa 224f ThinkPad X1 Carbon 5th Gen
17aa 225d ThinkPad T480
17aa 382a B51-80 Laptop
1025 115f Acer Aspire E5-575G
1028 06d6 Latitude 7275 tablet
1028 06dc Latitude E7470
+ 1028 06e6 Latitude 11 5175 2-in-1
1028 06f3 Latitude 3570
103c 8079 EliteBook 840 G3
17aa 2247 ThinkPad T570
1025 115f Acer Aspire E5-575G
1028 06d6 Latitude 7275 tablet
1028 06dc Latitude E7470
+ 1028 06e6 Latitude 11 5175 2-in-1
1028 06f3 Latitude 3570
103c 8079 EliteBook 840 G3
17aa 2247 ThinkPad T570
1025 115f Acer Aspire E5-575G
1028 06d6 Latitude 7275 tablet
1028 06dc Latitude E7470
+ 1028 06e6 Latitude 11 5175 2-in-1
1028 06f3 Latitude 3570
103c 8079 EliteBook 840 G3
17aa 2247 ThinkPad T570
17aa 382a B51-80 Laptop
9d32 CSI-2 Host Controller
1028 06d6 Latitude 7275 tablet
+ 1028 06e6 Latitude 11 5175 2-in-1
9d35 Sunrise Point-LP Integrated Sensor Hub
1028 06d6 Latitude 7275 tablet
+ 1028 06e6 Latitude 11 5175 2-in-1
9d3a Sunrise Point-LP CSME HECI #1
1025 115f Acer Aspire E5-575G
1028 06d6 Latitude 7275 tablet
1028 06dc Latitude E7470
+ 1028 06e6 Latitude 11 5175 2-in-1
1028 06f3 Latitude 3570
103c 8079 EliteBook 840 G3
17aa 2247 ThinkPad T570
17aa 382a B51-80 Laptop
9d3d Sunrise Point-LP Active Management Technology - SOL
103c 8079 EliteBook 840 G3
+ 17aa 2247 ThinkPad T570
9d43 Sunrise Point-LP LPC Controller
17aa 382a B51-80 Laptop
9d46 LPC/eSPI Controller
1028 06d6 Latitude 7275 tablet
+ 1028 06e6 Latitude 11 5175 2-in-1
9d48 Sunrise Point-LP LPC Controller
1028 06dc Latitude E7470
1028 06f3 Latitude 3570
103c 8079 EliteBook 840 G3
+ 17aa 2247 ThinkPad T570
9d4e Sunrise Point LPC Controller/eSPI Controller
17aa 225d ThinkPad T480
9d50 Sunrise Point LPC Controller
9d60 Sunrise Point-LP Serial IO I2C Controller #0
1025 115f Acer Aspire E5-575G
1028 06d6 Latitude 7275 tablet
+ 1028 06e6 Latitude 11 5175 2-in-1
1028 06f3 Latitude 3570
103c 8079 EliteBook 840 G3
17aa 225d ThinkPad T480
8086 9d60 100 Series PCH/Sunrise Point PCH I2C0 [Skylake/Kaby Lake LPSS I2C]
9d61 Sunrise Point-LP Serial IO I2C Controller #1
1028 06d6 Latitude 7275 tablet
+ 1028 06e6 Latitude 11 5175 2-in-1
9d62 Sunrise Point-LP Serial IO I2C Controller #2
1028 06d6 Latitude 7275 tablet
+ 1028 06e6 Latitude 11 5175 2-in-1
9d63 Sunrise Point-LP Serial IO I2C Controller #3
9d64 Sunrise Point-LP Serial IO I2C Controller #4
9d65 Sunrise Point-LP Serial IO I2C Controller #5
9d70 Sunrise Point-LP HD Audio
1028 06d6 Latitude 7275 tablet
1028 06dc Latitude E7470
+ 1028 06e6 Latitude 11 5175 2-in-1
1028 06f3 Latitude 3570
103c 8079 EliteBook 840 G3
+ 17aa 2247 ThinkPad T570
17aa 382a B51-80 Laptop
9d71 Sunrise Point-LP HD Audio
1025 1094 Acer Aspire E5-575G
a0a9 Tiger Lake-LP Serial IO UART Controller #1
a0ab Tiger Lake-LP Serial IO SPI Controller #1
a0b0 Tiger Lake-LP PCI Express Root Port #9
+ a0bd Tigerlake PCH-LP PCI Express Root Port #6
a0bf Tiger Lake-LP PCI Express Root Port #8
a0c5 Tiger Lake-LP Serial IO I2C Controller #4
a0c6 Tiger Lake-LP Serial IO I2C Controller #5
a252 Lewisburg SSATA Controller [AHCI mode]
a256 Lewisburg SSATA Controller [RAID mode]
a282 200 Series PCH SATA controller [AHCI mode]
+ 1462 7a72 H270 PC MATE
a286 200 Series PCH SATA controller [RAID mode]
a290 200 Series PCH PCI Express Root Port #1
a291 200 Series PCH PCI Express Root Port #2
a292 200 Series PCH PCI Express Root Port #3
a293 200 Series PCH PCI Express Root Port #4
a294 200 Series PCH PCI Express Root Port #5
+ 1462 7a72 H270 PC MATE
a295 200 Series PCH PCI Express Root Port #6
a296 200 Series PCH PCI Express Root Port #7
+ 1462 7a72 H270 PC MATE
a297 200 Series PCH PCI Express Root Port #8
a298 200 Series PCH PCI Express Root Port #9
+ 1462 7a72 H270 PC MATE
a299 200 Series PCH PCI Express Root Port #10
a29a 200 Series PCH PCI Express Root Port #11
a29b 200 Series PCH PCI Express Root Port #12
a29f 200 Series PCH PCI Express Root Port #16
a2a0 200 Series/Z370 Chipset Family P2SB
a2a1 200 Series/Z370 Chipset Family Power Management Controller
+ 1462 7a72 H270 PC MATE
a2a3 200 Series/Z370 Chipset Family SMBus Controller
+ 1462 7a72 H270 PC MATE
a2a4 200 Series/Z370 Chipset Family SPI Controller
a2a5 200 Series/Z370 Chipset Family Gigabit Ethernet Controller
a2a6 200 Series/Z370 Chipset Family Trace Hub
a2a9 200 Series/Z370 Chipset Family Serial IO SPI Controller #0
a2aa 200 Series/Z370 Chipset Family Serial IO SPI Controller #1
a2af 200 Series/Z370 Chipset Family USB 3.0 xHCI Controller
+ 1462 7a72 H270 PC MATE
a2b1 200 Series PCH Thermal Subsystem
+ 1462 7a72 H270 PC MATE
a2ba 200 Series PCH CSME HECI #1
+ 1462 7a72 H270 PC MATE
a2bb 200 Series PCH CSME HECI #2
a2c4 200 Series PCH LPC Controller (H270)
+ 1462 7a72 H270 PC MATE
a2c5 200 Series PCH LPC Controller (Z270)
a2c6 200 Series PCH LPC Controller (Q270)
a2c7 200 Series PCH LPC Controller (Q250)
a2ed 200 Series PCH PCI Express Root Port #23
a2ee 200 Series PCH PCI Express Root Port #24
a2f0 200 Series PCH HD Audio
+ 1462 7a72 H270 PC MATE
+ 1462 fa72 H270 PC MATE
a304 H370 Chipset LPC/eSPI Controller
1028 0869 Vostro 3470
a305 Z390 Chipset LPC/eSPI Controller
a324 Cannon Lake PCH SPI Controller
1028 0869 Vostro 3470
a328 Cannon Lake PCH Serial IO UART Host Controller
+ a32b Cannon Lake PCH SPI Host Controller
a32c Cannon Lake PCH PCI Express Root Port #21
a32d Cannon Lake PCH PCI Express Root Port #22
a32e Cannon Lake PCH PCI Express Root Port #23
a36d Cannon Lake PCH USB 3.1 xHCI Host Controller
1028 0869 Vostro 3470
a36f Cannon Lake PCH Shared SRAM
- a370 Wireless-AC 9560 [Jefferson Peak]
+ a370 Cannon Lake PCH CNVi WiFi
1a56 1552 Killer(R) Wireless-AC 1550i Wireless Network Adapter (9560NGW)
+ 8086 0034 Wireless-AC 9560
a379 Cannon Lake PCH Thermal Controller
1028 0869 Vostro 3470
a382 400 Series Chipset Family SATA AHCI Controller
+ a3a1 Memory controller
a3a3 Comet Lake PCH-V SMBus Host Controller
+ a3af Comet Lake PCH-V USB Controller
a3b1 Comet Lake PCH-V Thermal Subsystem
a620 6400/6402 Advanced Memory Buffer (AMB)
abc0 Omni-Path Fabric Switch Silicon 100 Series
d157 Core Processor System Control and Status Registers
d158 Core Processor Miscellaneous Registers
f1a5 SSD 600P Series
+# M.2 22 x 80mm, NVMe
+ 8086 390a SSDPEKKW256G7 256GB
f1a6 SSD Pro 7600p/760p/E 6100p Series
8086 390b SSD Pro 7600p/760p/E 6100p Series [NVM Express]
f1a8 SSD 660P Series
8088 Beijing Wangxun Technology Co., Ltd.
0101 WX1860A2 Gigabit Ethernet Controller
8088 0201 Dual-Port Ethernet Network Adaptor SF200T
+ 8088 4201 Dual-Port Ethernet Network Adaptor SF200T (WOL)
+ 8088 8201 Dual-Port Ethernet Network Adaptor SF200T (NCSI)
+ 8088 c201 Dual-Port Ethernet Network Adaptor SF200T (WOL, NCSI)
0102 WX1860A2S Gigabit Ethernet Controller
8088 0210 Dual-Port Ethernet Network Adaptor SF200T-S
0103 WX1860A4 Gigabit Ethernet Controller
8088 0401 Qual-Port Ethernet Network Adaptor SF400T
8088 0440 Qual-Port Ethernet Network Adaptor SF400-OCP
+ 8088 4103 Quad-Port Ethernet Network Adaptor SF400T (WOL)
+ 8088 8103 Quad-Port Ethernet Network Adaptor SF400T (NCSI)
+ 8088 c103 Quad-Port Ethernet Network Adaptor SF400T (WOL, NCSI)
0104 WX1860A4S Gigabit Ethernet Controller
8088 0410 Qual-Port Ethernet Network Adaptor SF400T-S
0105 WX1860AL2 Gigabit Ethernet Controller
8088 0202 Dual-Port Ethernet Network Adaptor SF200HT
+ 8088 4202 Dual-Port Ethernet Network Adaptor SF200HT (WOL)
+ 8088 8202 Dual-Port Ethernet Network Adaptor SF200HT (NCSI)
+ 8088 c202 Dual-Port Ethernet Network Adaptor SF200HT (WOL, NCSI)
0106 WX1860AL2S Gigabit Ethernet Controller
8088 0220 Dual-Port Ethernet Network Adaptor SF200HT-S
0107 WX1860AL4 Gigabit Ethernet Controller
8088 0402 Qual-Port Ethernet Network Adaptor SF400HT
+ 8088 4402 Quad-Port Ethernet Network Adaptor SF400HT (WOL)
+ 8088 8402 Quad-Port Ethernet Network Adaptor SF400HT (NCSI)
+ 8088 c402 Quad-Port Ethernet Network Adaptor SF400HT (WOL, NCSI)
0108 WX1860AL4S Gigabit Ethernet Controller
8088 0420 Qual-Port Ethernet Network Adaptor SF400HT-S
+ 0109 WX1860-LC Gigabit Ethernet Controller
+ 010a WX1860A1 Gigabit Ethernet Controller
+# add new device ID
+ 010b WX1860AL1 Gigabit Ethernet Controller
+ 8088 0102 Single-Port Ethernet Network Adaptor SF100HT
+ 8088 4102 Single-Port Ethernet Network Adaptor SF100HT (WOL)
+ 8088 8102 Single-Port Ethernet Network Adaptor SF100HT (NCSI)
+ 8088 c102 Single-Port Ethernet Network Adaptor SF100HT (WOL, NCSI)
+ 0111 WX1860A2 Ethernet Controller Virtual Function
+ 0113 WX1860A4 Ethernet Controller Virtual Function
+ 0115 WX1860AL2 Ethernet Controller Virtual Function
+ 0117 WX1860AL4 Ethernet Controller Virtual Function
+ 0119 WX1860-LC Gigabit Ethernet Controller Virtual Function
+ 011a WX1860A1 Gigabit Ethernet Controller Virtual Function
+ 011b WX1860AL1 Gigabit Ethernet Controller Virtual Function
+ 1000 Ethernet Controller RP1000 Virtual Function for 10GbE SFP+
1001 Ethernet Controller RP1000 for 10GbE SFP+
8088 0000 Ethernet Network Adaptor RP1000 for 10GbE SFP+
+ 2000 Ethernet Controller RP2000 Virtual Function for 10GbE SFP+
2001 Ethernet Controller RP2000 for 10GbE SFP+
8088 2000 Ethernet Network Adaptor RP2000 for 10GbE SFP+
80ee InnoTek Systemberatung GmbH
1011 vSMP Foundation MEX/FLX controller [vSMP CTL]
8800 Trigem Computer Inc.
2008 Video assistant component
+8820 Stryker Corporation
+ 2724 Mako Front Side Motor Controller [cPCI]
8866 T-Square Design Inc.
8888 Silicon Magic
8912 TRX
0001 SG2010 PCI over Starfabric Bridge
0002 SG2010 PCI to Starfabric Gateway
0003 SG1010 Starfabric Switch and PCI Bridge
+9a11 Tiger Lake-H Gaussian & Neural Accelerator
9d32 Beijing Starblaze Technology Co. Ltd.
0000 STAR1000 PCIe NVMe SSD Controller
1001 STAR1000P PCIe NVMe SSD Controller
c001 TSI Telsys
c0a9 Micron/Crucial Technology
2263 P1 NVMe PCIe SSD
+ 540a P2 NVMe PCIe SSD
c0de Motorola
c0fe Motion Engineering, Inc.
ca3b Cambrionix Ltd.
4021 MT camera
e000 Winbond
e000 W89C940
-e159 Tiger Jet Network Inc.
+e159 Tiger Jet Network Inc. / ICP DAS
0001 Tiger3XX Modem/ISDN interface
0059 0001 128k ISDN-S/T Adapter
0059 0003 128k ISDN-U Adapter
0046 PCI-766 Analog Output Card
0052 PCI-703 Analog I/O Card
0800 PCI-800 Digital I/O Card
+ea50 Emerson Automation Solutions
# The main chip of all these devices is by Xilinx -> It could also be a Xilinx ID.
ea60 RME
9896 Digi32
eb23 Kona 1
eb24 Kona HDMI
eb25 Corvid 44 12g
+ eb26 T-Tap Pro
efac Xena SD-MM/SD-22-MM
facd Xena HD-MM
f5f5 F5 Networks, Inc.
05 SD Host controller
06 IOMMU
80 System peripheral
+ 99 Timing Card
+# PTP Grandmaster Source Clock
+ 01 TAP Timing Card
C 09 Input device controller
00 Keyboard controller
01 Digitizer Pen
# The latest version can be obtained from
# http://www.linux-usb.org/usb.ids
#
-# Version: 2020.08.26
-# Date: 2020-08-26 20:34:09
+# Version: 2021.06.06
+# Date: 2021-06-06 20:34:10
#
# Vendors, devices and interfaces. Please keep sorted.
6217 Color LaserJet 4700
6302 PhotoSmart 318/612
6317 Color LaserJet 4730mfp
+ 632a LaserJet M203-M206
6402 PhotoSmart 715 (ptp)
6411 PhotoSmart C8100 series
6417 LaserJet 5200
5642 Storage Device
5661 M5661 MP3 player
5667 M5667 MP3 player
+ 8841 Newmine Camera
9665 Gateway Webcam
0403 Future Technology Devices International, Ltd
0000 H4SMK 7 Port Hub / Bricked Counterfeit FT232 Serial (UART) IC
6014 FT232H Single HS USB-UART/FIFO IC
6015 Bridge(I2C/SPI/UART/FIFO)
601f Myriad-RF LimeSDR-Mini
+ 6ee0 EZO Carrier Board
6f70 HB-RF-USB
8028 Dev board JTAG (FT232H based)
8040 4 Port Hub
9090 SNAP Stick 200
9132 LCD and Temperature Interface
9133 CallerID
+ 9134 Virtual keyboard
9135 Rotary Pub alarm
9136 Pulsecounter
+ 9137 Ledbutton interface
9e90 Marvell OpenRD Base/Client
9f08 CIB-1894 Conclusion SmartLink Box:
9f80 Ewert Energy Systems CANdapter
f7c0 ZeitControl Cardsystems TagTracer MIFARE
f850 USB-UIRT (Universal Infrared Receiver+Transmitter)
f918 Ant8 Logic Probe
+ f9d9 Wetterempfanger 147.3kHz
fa00 Matrix Orbital USB Serial
fa01 Matrix Orbital MX2 or MX3
fa02 Matrix Orbital MX4 or MX5
00c0 Wireless Remocon
00f7 Smart Display PK-SD10
011d e228 Mobile Phone
+ 0193 RVT-R Writer
0203 HID Audio Controls
021d Aterm WL54SU2 802.11g Wireless Adapter [Atheros AR5523]
0248 Aterm PA-WL54GU
3220 Sound Blaster Tactic(3D) Sigma sound card
3232 Sound Blaster Premium HD [SBX]
3237 SB X-Fi Surround 5.1 Pro
+ 3241 Sound Blaster JAM
3263 SB X-Fi Surround 5.1 Pro
3f00 E-Mu Xboard 25 MIDI Controller
3f02 E-Mu 0202
4088 Live! Cam Chat HD [VF0700]
4095 Live! Cam Sync HD [VF0770]
4097 Live! Cam Chat HD [VF0700]
+ 4099 Creative VF0800 [RealSense Camera SR300]
4100 Nomad Jukebox 2
4101 Nomad Jukebox 3
4102 NOMAD MuVo^2
0155 5800 XpressMusic (Multimedia mode)
0156 5800 XpressMusic (Storage mode)
0157 5800 XpressMusic (Imaging mode)
+ 0189 N810 Internet Tablet WiMAX
0199 6700 Classic (msc)
019a 6700 Classic (PC Suite)
019b 6700 Classic (mtp)
01b1 6303 classic Phone (Mass storage mode)
01b2 6303 classic Phone (Printing and media mode)
01c7 N900 (Storage Mode)
- 01c8 N900 (PC-Suite Mode)
+ 01c8 N900/N950 (PC-Suite Mode)
0228 5530 XpressMusic
023a 6730 Classic
026a N97 (mass storage)
03c1 C7-00 (Media transfer mode)
03c2 Sim
03cd C7-00 (Nokia Suite mode)
- 03d1 N950
+ 03d1 N950 (Storage Mode)
+ 03d2 N950 (PC Suite mode)
0400 7600 Phone Parent
0401 6650 GSM Phone
0402 6255 Phone Parent
0423 6682 Phone Parent
0428 6230i Modem
0429 6230i MultiMedia Card
- 0431 770 Internet Tablet
+ 0431 770/N800 Internet Tablet
0432 N90 Phone Parent
0435 E70 (IP Passthrough/RNDIS mode)
0436 E60 (IP Passthrough/RNDIS mode)
04f9 6300 (PC Suite mode)
0508 E65 (PC Suite mode)
0509 E65 (Storage mode)
- 0518 N9 Phone
+ 0518 N9 (Storage mode)
+ 0519 N9 (RNDIS/Ethernet mode)
+ 051a N9 (PC Suite mode)
054d C2-01
0600 Digital Pen SU-1B
0610 CS-15 (Internet Stick 3G modem)
b651 Ferrari GT Rumble Force Wheel
b653 RGT Force Feedback Clutch Racing Wheel
b654 Ferrari GT Force Feedback Wheel
+ b677 T150 Racing Wheel
b678 T.Flight Rudder Pedals
b679 T-Rudder
b687 TWCS Throttle
09a0 RTL8153B GigE [Surface Ethernet Adapter]
09c0 Surface Type Cover
0a00 Lumia 950 Dual SIM (RM-1118)
+ 0b12 Xbox Wireless Controller (model 1914)
930a ISOUSB.SYS Intel 82930 Isochronous IO Test Board
ffca Catalina
fff8 Keyboard
0837 BCC950 ConferenceCam
0840 QuickCam Express
0843 Webcam C930e
+ 0845 ConferenceCam CC3000e Camera
+ 0846 ConferenceCam CC3000e Speakerphone
+ 084b ConferenceCam Connect Video
0850 QuickCam Web
+ 0857 Logi Group Speakerphone
085c C922 Pro Stream Webcam
+ 085e BRIO Ultra HD Webcam
0870 QuickCam Express
+ 0882 Logi Group Speakerphone
0890 QuickCam Traveler
- 0892 OrbiCam
+ 0892 C920 HD Pro Webcam
+ 0893 StreamCam
0894 CrystalCam
0895 QuickCam for Dell Notebooks
0896 OrbiCam
0a5b G933 Wireless Headset Dongle
0a5d G933 Headset Battery Charger
0a66 [G533 Wireless Headset Dongle]
+ 0a8f H390 headset with microphone
0b02 C-UV35 [Bluetooth Mini-Receiver] (HID proxy mode)
8801 Video Camera
b014 Bluetooth Mouse M336/M337/M535
c083 G403 Prodigy Gaming Mouse
c084 G203 Gaming Mouse
c08b G502 SE HERO Gaming Mouse
+ c092 G203 LIGHTSYNC Gaming Mouse
c101 UltraX Media Remote
c110 Harmony 785/880/885 Remote
c111 Harmony 525 Remote
c24e G500s Laser Gaming Mouse
c24f G29 Driving Force Racing Wheel [PS3]
c260 G29 Driving Force Racing Wheel [PS4]
+ c262 G920 Driving Force Racing Wheel
c281 WingMan Force
c283 WingMan Force 3D
c285 WingMan Strike Force 3D
c332 G502 Proteus Spectrum Optical Mouse
c335 G910 Orion Spectrum Mechanical Keyboard
c33a G413 Gaming Keyboard
+ c33f G815 Mechanical Keyboard
c401 TrackMan Marble Wheel
c402 Marble Mouse (2-button)
c403 Turbo TrackMan Marble FX
c534 Unifying Receiver
c537 Cordless Mouse Receiver
c53a PowerPlay Wireless Charging System
+ c53d G631 Keyboard
c603 3Dconnexion Spacemouse Plus XT
c605 3Dconnexion CADman
c606 3Dconnexion Spacemouse Classic
5001 Cabo I Camera
5002 VideoCam CABO II
5003 VideoCam
+ 8018 Expert Wireless Trackball Mouse (K72359WW)
+ 8068 Pro Fit Ergo Vertical Wireless Trackball
047e Agere Systems, Inc. (Lucent)
0300 ORiNOCO Card
1001 USS720 Parallel Port
c008 Audio 655 DSP
c00e Blackwire C310 headset
c03b HD1
+ ca01 Calisto 800 Series
da60 DA60
0480 Toshiba America Inc
0001 InTouch Module
0408 FS-1320D Printer
0640 ECOSYS M6026cdn
069b ECOSYS M2635dn
+ 06b4 ECOSYS M5526cdw
0483 STMicroelectronics
0137 BeWAN ADSL USB ST (blue or green)
0138 Unicorn II (ST70138B + MTC-20174TQ chipset)
04ac Xerox Travel Scanner 100
04bb strobe 400 scanner
04cd Xerox Travel Scanner 150
+ 04ee Duplex Combo Scanner
04a8 Multivideo Labs, Inc.
0101 Hub
0303 Peripheral Switch
190d CanoScan 9000F Mark II
190e CanoScan LiDE 120
190f CanoScan LiDE 220
+ 1913 CanoScan LiDE 300
2200 CanoScan LiDE 25
2201 CanoScan FB320U
2202 CanoScan FB620U
32b4 EOS Rebel T6
32bb EOS M5
32bf PowerShot SX420 IS
+ 32c0 PowerShot ELPH 190IS
32c1 PowerShot ELPH 180 / IXUS 175
32c2 PowerShot SX720 HS
32c5 EOS M6
040e DSC D70s (ptp)
040f D200 (mass storage mode)
0410 D200 (ptp)
+ 0411 D80 (mass storage mode)
+ 0412 D80 (MTP/PTP mode)
0413 D40 (mass storage mode)
041e D60 digital camera (mass storage mode)
0422 D700 (ptp)
04b4 Cypress Semiconductor Corp.
0001 Mouse
0002 CY7C63x0x Thermometer
+ 0008 CDC ACM serial port
0033 Mouse
0060 Wireless optical mouse
00f3 FX3 micro-controller (DFU mode)
0130 MyIRC Remote Receiver
0306 Telephone Receiver
0407 Optical Skype Mouse
+ 0818 AE-SMKD92-* [Thumb Keyboard]
0bad MetaGeek Wi-Spy
1002 CY7C63001 R100 FM Radio
1006 Human Interface Device
0e03 Thermal Receipt Printer [TM-T20]
1114 XP-440 [Expression Home Small-in-One Printer]
1129 ET-4750 [WorkForce ET-4750 EcoTank All-in-One]
+ 1168 Workforce WF-7820/7840 Series
04b9 Rainbow Technologies, Inc.
0300 SafeNet USB SuperPro/UltraPro
1000 iKey 1000 Token
11f3 fi-6130Z
125a PalmSecure Sensor Device - MP
132e fi-7160
+ 159f ScanSnap iX1500
200f Sigma DP2 (Mass Storage)
2010 Sigma DP2 (PictBridge)
201d SATA 3.0 6Gbit/s Adaptor [GROOVY]
01d3 FinePix A920 (PTP)
01d4 FinePix F50fd (PTP)
01d5 FinePix F47 (PTP)
+ 01e7 Fujifilm A850 Digital Camera
01f7 FinePix J250 (PTP)
01fd A160
023e FinePix AX300
0241 FinePix S3200 Digital Camera
0278 FinePix JV300
02c5 FinePix S9900W Digital Camera (PTP)
+ 02e0 X-T200 Digital Camera
5006 ASK-300
04cc ST-Ericsson
1122 Hub
0006 Wired Keyboard (78/79 key) [RPI Wired Keyboard 5]
0022 Portable Keyboard
0348 Keyboard
+ 0407 Keyboard [TEX Shinobi]
048e Optical Mouse
0499 Optical Mouse
1135 Mouse [MGK-15BU/MLK-15BU]
a09f E-Signal LUOM G10 Mechanical Gaming Mouse
a100 Mouse [HV-MS735]
a11b Mouse [MX-3200]
+ a153 Optical Gaming Mouse
a29f Microarray fingerprint reader
b534 LGT8F328P Microprocessor
e002 MCU
+ fc2a Gaming Mouse [Redragon M709]
+ fc30 Gaming Mouse [Redragon M711]
+ fc38 Gaming Mouse [Redragon M602-RGB]
+ fc4d Gaming Mouse [Redragon M908]
+ fc55 Venus MMO Gaming Mouse
04da Panasonic (Matsushita)
0901 LS-120 Camera
0912 SDR-S10
b1ac HP Laptop Integrated Webcam [2 MP Fixed]
b1b4 Lenovo Integrated Camera
b1b9 Asus Integrated Webcam
+ b1bb 2.0M UVC WebCam
b1cf Lenovo Integrated Camera
b1d6 CNF9055 Toshiba Webcam
b1d8 1.3M Webcam
b444 Lenovo Integrated Webcam
b49f Bluetooth (RTL8723BE)
b563 Integrated Camera
+ b5ab Integrated Camera
+ b5ac Integrated IR Camera
b5ce Integrated Camera
b5cf Integrated IR Camera
b5db HP Webcam
02f4 2.4G Cordless Mouse
0381 Touchscreen
04a0 Dream Cheeky Stress/Panic Button
+ 0c28 fingerprint sensor [FeinTech FPS00200]
2234 Touchscreen
04f4 Harting Elektronik, Inc.
04f5 Fujitsu-ICL Systems, Inc.
002b HL-5250DN Printer
002c Printer
002d Printer
+ 0037 HL-3040CN series
+ 0038 HL-3070CW series
0039 HL-5340 series
0041 HL-2250DN Laser Printer
0042 HL-2270DW Laser Printer
01eb MFC-7320
01ec MFC-9640CW
01f4 MFC-5890CN
+ 0204 DCP-165C
020a MFC-8670DN
020c DCP-9042CDN
020d MFC-9450CDN
03bc MFC-L2700DN
03bd DCP-J762N
03fd ADS-2700W
+ 043f MFC-L3770CDW
+ 0440 MFC-9350CDW
+ 0441 MFC-L3750CDW
+ 0442 MFC-L3745CDW
+ 0443 MFC-L3735CDN
+ 0444 MFC-9150CDN
+ 0445 MFC-L3730CDN
+ 0446 MFC-L3710CW
+ 0447 DCP-9030CDN
+ 0448 DCP-L3550CDW
+ 044a HL-L3290CDW
+ 044b DCP-L3510CDW
+ 044c DCP-L3551CDW
1000 Printer
1002 Printer
2002 PTUSB Printing
204d QL-720NW Label Printer (mass storage mode)
2061 PT-P700 P-touch Label Printer
2064 PT-P700 P-touch Label Printer RemovableDisk
+ 2074 PT-D600 P-touch Label Printer
209b QL-800 Label Printer
209c QL-810W Label Printer
209d QL-820NWB Label Printer
a4a2 Linux-USB Ethernet/RNDIS Gadget
a4a3 Linux-USB user-mode isochronous source/sink
a4a4 Linux-USB user-mode bulk source/sink
- a4a5 Pocketbook Pro 903 / Mobius 2 Action Cam / xDuoo X3 / PocketBook Pro 602
+ a4a5 Linux-USB File-backed Storage Gadget
a4a6 Linux-USB Serial Gadget
a4a7 Linux-USB Serial Gadget (CDC ACM mode)
a4a8 Linux-USB Printer Gadget
a4a9 Linux-USB OBEX Gadget
a4aa Linux-USB CDC Composite Gadge (Ethernet and ACM)
+ a4ab Linux-USB Multifunction Composite Gadget
+ a4ac Linux-USB HID Gadget
0526 Temic MHS S.A.
0527 ALTRA
0528 ATI Technologies, Inc.
0689 Walkman NWZ-B173F
06bb WALKMAN NWZ-F805
06c3 RC-S380
+ 07c3 ILCE-6000 (aka Alpha-6000) in Mass Storage mode
07c4 ILCE-6000 (aka Alpha-6000) in Mass Storage mode
082f Walkman NWZW Series
0847 WG-C10 Portable Wireless Server
+ 0877 UP-D898/X898 series
0884 MDR-ZX770BN [Wireless Noise Canceling Stereo Headset]
088c Portable Headphone Amplifier
08b7 ILCE-6000 (aka Alpha-6000) in MTP mode
0c02 ILCE-7M3 [A7III] in Mass Storage mode
0c03 ILCE-7M3 [A7III] in MTP mode
0c34 ILCE-7M3 [A7III] in PC Remote mode
+ 0c7f WH-CH700N [Wireless Noise-Canceling Headphones]
0cd3 WH-1000XM3 [Wireless Noise-Canceling Headphones]
0cda PlayStation Classic controller
+ 0ce0 WF-1000XM3 [Wireless Noise-Canceling Headphones]
+ 0cf0 MRW-G1
+ 0d58 WH-1000XM4 [Wireless Noise-Canceling Headphones]
1000 Wireless Buzz! Receiver
054d Try Corp.
054e Proside Corp.
2213 CS682 2-Port USB 2.0 DVI KVM Switch
2221 Winbond Hermon
2404 4-port switch
+ 2419 Virtual mouse/keyboard device
2600 IDE Bridge
2701 CE700A KVM Extender
4000 DSB-650 10Mbps Ethernet [klsi]
0001 Monitor
0002 HID Monitor Controls
0003 Device Bay Controller
+ 4000 FlexScan EV3237
4001 Monitor
+ 4002 USB HID Monitor
+ 4014 FlexScan EV2750
+ 4026 FlexScan EV2451
+ 4027 FlexScan EV2456
+ 4036 FlexScan EV2785
+ 4037 FlexScan EV3285
+ 4044 FlexScan EV2457
+ 4059 FlexScan EV2760
+ 405b FlexScan EV2460
+ 405f FlexScan EV2795
+ 4065 FlexScan EV3895
056e Elecom Co., Ltd
0002 29UO Mouse
0057 Micro Grast Pop M-PGDL
9230 Camera
9320 Camera
9331 Camera
+ 9332 Camera - 1080p
9422 Camera
9520 Camera
05a4 Ortek Technology, Inc.
8204 Built-in Bluetooth 2.0+EDR HCI
8205 Bluetooth HCI
8206 Bluetooth HCI
+ 8207 Built-in Bluetooth
820a Bluetooth HID Keyboard
820b Bluetooth HID Mouse
820f Bluetooth HCI
8218 Bluetooth Host Controller
821a Bluetooth Host Controller
821f Built-in Bluetooth 2.0+EDR HCI
+ 8233 iBridge
8240 Built-in IR Receiver
8241 Built-in IR Receiver
8242 Built-in IR Receiver
f102 VX7012 TV Box
f103 VX7012 TV Box
f104 VX7012 TV Box
+ f12a Digital Microscope
fd21 3M TL20 Temperature Logger
fe00 Razer Mouse
05e4 Red Wing Corp.
05fc Harman
0001 Soundcraft Si Multi Digital Card
0010 Soundcraft Si MADI combo card
+ 0021 Soundcraft Signature 12 MTK
7849 Harman/Kardon SoundSticks
05fd InterAct, Inc.
0239 SV-239 HammerHead Digital
0002 Sino Wealth keyboard/mouse 2.4 GHz receiver
00f1 Keyboard (Labtec Ultra Flat Keyboard)
00f2 Keyboard (Labtec Ultra Flat Keyboard)
+ 1002 Mobius actioncam (webcam mode)
6871 Mouse
8611 NTK96550 based camera
0604 Jean Co., Ltd
00f7 OKI B4600 Mono Printer
015e OKIPOS 411/412 POS Printer
01c9 OKI B430 Mono Printer
+ 01db MC860 Multifunction Printer
+ 01dc MC860 Multifunction Printer
+ 01dd MC860 Multifunction Printer
+ 01de MC860 Multifunction Printer
+ 01df CX2633 Multifunction Printer
+ 01e0 ES8460 Multifunction Printer
020b OKI ES4140 Mono Printer
02bb OKI PT390 POS Printer
0383 MC563 Multifunction Printer
1101 Generic Display Device (Mass storage mode)
c101 Generic Display Device
1de6 MICRORISC s.r.o.
+1df7 SDRplay
+ 2500 RSP1
+ 3000 RSP1a
+ 3010 RSP2/RSP2pro
+ 3020 RSPduo
+ 3030 RSPdx
1e0e Qualcomm / Option
f000 iCON 210 UMTS Surfstick
1e10 Point Grey Research, Inc.
32b3 TEXA
d1a6 TXT Multihub
d1a7 TXT Multihub
+3310 MUDITA Sp. z o.o.
+ 0100 Pure
+ 0101 Pure tethering
3333 InLine
3333 2 port KVM switch model 60652K
3334 AEI
ffff Mio DigiWalker Sync
3344 Leaguer Microelectronics (LME)
3744 OEM PC Remote
+3384 System76
+ 0000 Thelio Io (thelio-io)
+ 0001 Launch Configurable Keyboard (launch_1)
348f ISY
2322 Wireless Presenter
3504 Micro Star
+++ /dev/null
-#!/bin/bash
-
-[ -x /etc/init.d/miniupnpd ] && \
- /etc/init.d/miniupnpd stop &>/dev/null
-
-exit 0
+++ /dev/null
-#!/bin/bash
-
-[ -x /etc/init.d/miniupnpd ] && \
- /etc/init.d/miniupnpd start &>/dev/null
-
-exit 0
+++ /dev/null
-#!/bin/sh
-########################################################################
-# Begin $rc_base/init.d/asterisk
-#
-# Description : Asterisk Script
-#
-# Authors : Michael Tremer (mitch@ipfire.org)
-#
-# Version : 01.00
-#
-# Notes :
-#
-########################################################################
-
-. /etc/sysconfig/rc
-. ${rc_functions}
-
-case "${1}" in
- start)
- boot_mesg "Starting Asterisk PBX..."
- loadproc /usr/sbin/asterisk -p
- ;;
-
- stop)
- boot_mesg "Stopping Asterisk PBX..."
- asterisk -rx "core stop gracefully" >/dev/null 2>&1
- evaluate_retval
- ;;
-
- reload)
- boot_mesg "Reloading Asterisk PBX..."
- asterisk -rx "reload" >/dev/null 2>&1
- evaluate_retval
- ;;
-
- restart)
- ${0} stop
- sleep 1
- ${0} start
- ;;
-
- status)
- statusproc /usr/sbin/asterisk > /tmp/ast 2>&1
- STAT=$(cat /tmp/ast)
- rm -f /tmp/ast
- echo $STAT
- EX_Z=$(echo $STAT | grep "not" | wc -l)
- exit $EX_Z
- ;;
-
- remod)
- case "${2}" in
- sip)asterisk -rx "sip reload" >/dev/null 2>&1 ;;
- iax)asterisk -rx "iax2 reload" >/dev/null 2>&1 ;;
- ext)asterisk -rx "dialplan reload" >/dev/null 2>&1 ;;
- *) echo "Usage: ${0} remod {sip|iax|ext}"; exit 1 ;;
- esac
- ;;
-
- test) touch /tmp/test$$
- ;;
-
- *)
- echo "Usage: ${0} {start|stop|reload|restart|status|remod}"
- exit 1
- ;;
-esac
-
-# End $rc_base/init.d/asterisk
+++ /dev/null
-#!/bin/sh
-# Begin $rc_base/init.d/bluetooth
-
-# Based on sysklogd script from LFS-3.1 and earlier.
-# Rewritten by Gerard Beekmans - gerard@linuxfromscratch.org
-
-. /etc/sysconfig/rc
-. $rc_functions
-
-eval $(/usr/local/bin/readhash /var/ipfire/bluetooth/settings)
-
-case "$1" in
- start)
- boot_mesg "Starting Bluetooth daemon..."
- loadproc /usr/sbin/hcid
- sleep 1
-
- if [ "$PASSKEY_AGENT" == "on" ]; then
- boot_mesg "Starting Bluetooth passkey-agent..."
- loadproc /usr/bin/passkey-agent --default $PWD &
- fi
-
- if [ "$RFCOMM0_BIND" == "on" ]; then
- boot_mesg "Bind rfcomm0 to cellphone/modem ${RFCOMM0_DEVICE//-/:}/$RFCOMM0_CHANNEL ..."
- rfcomm bind /dev/rfcomm0 ${RFCOMM0_DEVICE//-/:} $RFCOMM0_CHANNEL
- evaluate_retval
- fi
- if [ "$RFCOMM1_BIND" == "on" ]; then
- boot_mesg "Bind rfcomm1 to cellphone/modem ${RFCOMM1_DEVICE//-/:}/${RFCOMM1_CHANNEL} ..."
- rfcomm bind /dev/rfcomm1 ${RFCOMM1_DEVICE//-/:} $RFCOMM1_CHANNEL
- evaluate_retval
- fi
- exit 0;
-
- ;;
-
- stop)
- if [ -e /dev/rfcomm0 ]; then
- boot_mesg "Release rfcomm0..."
- rfcomm release rfcomm0
- fi
- if [ -e /dev/rfcomm1 ]; then
- boot_mesg "Release rfcomm1..."
- rfcomm release rfcomm1
- fi
- boot_mesg "Stopping Bluetooth daemon..."
- killproc /usr/sbin/hcid
- exit 0;
- ;;
-
- restart)
- $0 stop
- sleep 1
- $0 start
- ;;
-
- status)
- statusproc /usr/sbin/hcid
- statusproc /usr/bin/passkey-agent
- ;;
-
- *)
- echo "Usage: $0 {start|stop|restart|status}"
- exit 1
- ;;
-esac
-
-# End $rc_base/init.d/bluetooth
[ -r "/etc/sysconfig/dnsdist" ] && . /etc/sysconfig/dnsdist
+check_config() {
+ if ! /usr/bin/dnsdist --check-config >/dev/null; then
+ boot_mesg "dnsdist configuration file contains errors" "${FAILURE}"
+ echo_failure
+ return 1
+ fi
+
+ return 0
+}
+
case "${1}" in
start)
+ if ! check_config; then
+ exit 1
+ fi
+
boot_mesg "Starting dnsdist..."
# Increasing maximum number of open files
;;
reload)
+ if ! check_config; then
+ exit 1
+ fi
+
boot_mesg "Reloading dnsdist..."
reloadproc /usr/bin/dnsdist
;;
restart)
+ if ! check_config; then
+ exit 1
+ fi
+
${0} stop
sleep 1
${0} start
+++ /dev/null
-#!/bin/sh
-# Begin $rc_base/init.d/lcd4linux
-
-
-. /etc/sysconfig/rc
-. $rc_functions
-
-case "$1" in
- start)
- boot_mesg "Starting lcd4linux..."
- if [ ! -f /etc/lcd4linux.conf ]; then
- boot_mesg "No configuration file found, not starting."
- exit 1
- fi
-
- loadproc /usr/bin/lcd4linux
- ;;
-
- stop)
- boot_mesg "Stopping lcd4linux..."
- killproc /usr/bin/lcd4linux
- ;;
-
- reload)
- boot_mesg "Reloading lcd4linux..."
- reloadproc /usr/bin/lcd4linux
- ;;
-
- restart)
- $0 stop
- sleep 3
- $0 start
- ;;
-
- status)
- statusproc /usr/bin/lcd4linux
- ;;
-
- *)
- echo "Usage: $0 {start|stop|reload|restart|status}"
- exit 1
- ;;
-esac
-
-
-# End $rc_base/init.d/lcd4linux
+++ /dev/null
-#!/bin/sh
-########################################################################
-# Begin $rc_base/init.d/miniupnpd
-#
-# Description : Miniupnp daemon
-#
-# Authors : Michael Tremer <michael.tremer@ipfire.org>
-#
-########################################################################
-
-. /etc/sysconfig/rc
-. ${rc_functions}
-
-if [ ! -e /etc/miniupnpd/id ]; then
- uuidgen > /etc/miniupnpd/id
-fi
-
-UUID=$(cat /etc/miniupnpd/id)
-
-EXT_DEV=$(cat /var/ipfire/red/iface)
-EXT_IP4=$(cat /var/ipfire/red/local-ipaddress)
-
-. /var/ipfire/ethernet/settings
-
-for i in GREEN_ADDRESS BLUE_ADDRESS; do
- [ -n "${!i}" ] && LISTEN_IP="${LISTEN_IP} -a ${!i}"
-done
-
-function flush_iptables() {
- # Flush iptables to remove all entries that were left
- iptables -F UPNPFW
- iptables -t nat -F UPNPFW
-}
-
-case "${1}" in
- start)
- boot_mesg "Starting miniupnpd..."
-
- flush_iptables
-
- loadproc miniupnpd -f /etc/miniupnpd/miniupnpd.conf \
- -i ${EXT_DEV} -o ${EXT_IP4} ${LISTEN_IP} \
- -u ${UUID}
- ;;
-
- stop)
- boot_mesg "Stopping miniupnpd..."
- killproc miniupnpd
-
- flush_iptables
- ;;
-
- restart)
- ${0} stop
- sleep 1
- ${0} start
- ;;
-
- status)
- statusproc miniupnpd
- ;;
-
- *)
- echo "Usage: ${0} {start|stop|restart|status}"
- exit 1
- ;;
-esac
-
-# End $rc_base/init.d/miniupnpd
+++ /dev/null
-#!/bin/sh
-
-. /etc/sysconfig/rc
-. $rc_functions
-
-case "$1" in
- start)
- boot_mesg "Starting motion webcam server..."
- if [ ! -e /dev/video0 ]; then
- boot_mesg "Error! No video input device found."
- echo_failure
- #No 3 min wait
- exit 0;
- fi
- chown :video /dev/video*
- mkdir -p /var/motion/cam1
- chown -R video: /var/motion/cam1
- loadproc sudo -u video /usr/bin/motion
- ;;
-
- stop)
- boot_mesg "Stopping motion webcam server..."
- killproc /usr/bin/motion
- ;;
-
- restart)
- $0 stop
- sleep 1
- $0 start
- ;;
-
- status)
- statusproc /usr/bin/motion
- ;;
-
- *)
- echo "Usage: $0 {start|stop|restart|status}"
- exit 1
- ;;
-esac
-
-# End $rc_base/init.d/motion
+++ /dev/null
-#!/bin/sh
-########################################################################
-# Begin $rc_base/init.d/sane
-#
-# Description : Sane Network deamon
-#
-# Authors : Arne Fitzenreiter (arne_f@ipfire.org)
-#
-# Version : 01.00
-#
-########################################################################
-
-. /etc/sysconfig/rc
-. ${rc_functions}
-
-case "${1}" in
- start)
- boot_mesg "Starting saned - network scanner deamon..."
- loadproc /usr/sbin/saned -lD
- evaluate_retval
- ;;
-
- stop)
- boot_mesg "Stopping saned - network scanner deamon..."
- killproc /usr/sbin/saned
- ;;
-
- restart)
- ${0} stop
- sleep 1
- ${0} start
- ;;
-
- status)
- statusproc /usr/sbin/saned
- ;;
-
- *)
- echo "Usage: ${0} {start|stop|restart|status}"
- exit 1
- ;;
-esac
-
-# End $rc_base/init.d/sane
iptables -t raw -N CONNTRACK
iptables -t raw -A PREROUTING -j CONNTRACK
- # Conntrack helpers (https://home.regit.org/netfilter-en/secure-use-of-helpers/)
+ # Conntrack helper (https://home.regit.org/netfilter-en/secure-use-of-helpers/)
# GRE (always enabled)
modprobe nf_conntrack_proto_gre
- # SIP
- if [ "${CONNTRACK_SIP}" = "on" ]; then
- modprobe nf_nat_sip
- iptables -A CONNTRACK -m conntrack --ctstate RELATED \
- -m helper --helper sip -j ACCEPT
- for proto in udp tcp; do
- iptables -t raw -A CONNTRACK -p "${proto}" --dport 5060 -j CT --helper sip
- done
- fi
-
- # H.323
- if [ "${CONNTRACK_H323}" = "on" ]; then
- modprobe nf_nat_h323
- iptables -A CONNTRACK -m conntrack --ctstate RELATED \
- -m helper --helper h323 -j ACCEPT
-
- # Gatekeeper RAS
- iptables -t raw -A CONNTRACK -p udp --dport 1719 -j CT --helper RAS
-
- # Q.931
- iptables -t raw -A CONNTRACK -p tcp --dport 1720 -j CT --helper Q.931
- fi
-
- # FTP
- if [ "${CONNTRACK_FTP}" = "on" ]; then
- modprobe nf_nat_ftp
- iptables -A CONNTRACK -m conntrack --ctstate RELATED \
- -m helper --helper ftp -p tcp --dport 1024: -j ACCEPT
- iptables -t raw -A CONNTRACK -p tcp --dport 21 -j CT --helper ftp
- fi
-
- # PPTP
- if [ "${CONNTRACK_PPTP}" = "on" ]; then
- modprobe nf_nat_pptp
- iptables -A CONNTRACK -m conntrack --ctstate RELATED \
- -m helper --helper pptp -j ACCEPT
- iptables -t raw -A CONNTRACK -p tcp --dport 1723 -j CT --helper pptp
- fi
-
- # TFTP
- if [ "${CONNTRACK_TFTP}" = "on" ]; then
- modprobe nf_nat_tftp
- iptables -A CONNTRACK -m conntrack --ctstate RELATED \
- -m helper --helper tftp -j ACCEPT
- iptables -t raw -A CONNTRACK -p udp --dport 69 -j CT --helper tftp
- fi
-
- # IRC
- if [ "${CONNTRACK_IRC}" = "on" ]; then
- modprobe nf_nat_irc
- iptables -A CONNTRACK -m conntrack --ctstate RELATED \
- -m helper --helper irc -j ACCEPT
- iptables -t raw -A CONNTRACK -p tcp --dport 6667 -j CT --helper irc
- fi
-
- # Amanda
- if [ "${CONNTRACK_AMANDA}" = "on" ]; then
- modprobe nf_nat_amanda
- iptables -A CONNTRACK -m conntrack --ctstate RELATED \
- -m helper --helper amanda -j ACCEPT
- iptables -t raw -A CONNTRACK -p tcp -j CT --helper amanda
- fi
-
# Fix for braindead ISPs
iptables -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
-m mark --mark 3 -j SNAT --to-source "${ORANGE_ADDRESS}"
fi
- # upnp chain for our upnp daemon
- iptables -t nat -N UPNPFW
- iptables -t nat -A PREROUTING -j UPNPFW
- iptables -N UPNPFW
- iptables -A FORWARD -m conntrack --ctstate NEW -j UPNPFW
-
# RED chain, used for the red interface
iptables -N REDINPUT
iptables -A INPUT -j REDINPUT
+++ /dev/null
-#!/bin/sh
-########################################################################
-# Begin $rc_base/init.d/
-#
-# Description : UPnP Starter
-#
-# Authors : Michael Tremer
-#
-# Version : 01.00
-#
-# Notes : for www.ipfire.org - GPLv2
-#
-########################################################################
-
-. /etc/sysconfig/rc
-. ${rc_functions}
-
-# defaults
-ALLOW_MULTICAST=no
-
-# configuration
-eval $(/usr/local/bin/readhash /var/ipfire/upnp/settings)
-
-case "$1" in
- start)
- boot_mesg "Starting Universal Plug'n'Play daemon..."
- loadproc /usr/sbin/upnpd $EXTIFACE $INTIFACE
- evaluate_retval
- [ "$ALLOW_MULTICAST" != "no" ] && route add -net 239.0.0.0 netmask 255.0.0.0 $INTIFACE
- ;;
-
- stop)
- boot_mesg "Stopping Universal Plug'n'Play daemon..."
- killproc /usr/sbin/upnpd
- evaluate_retval
- [ "$ALLOW_MULTICAST" != "no" ] && route del -net 239.0.0.0 netmask 255.0.0.0 $INTIFACE
- ;;
-
- restart)
- ${0} stop
- sleep 1
- ${0} start
-
- ;;
- status)
- statusproc
- ;;
-
- *)
- echo "Usage: ${0} {start|stop|reload|restart|status}"
- exit 1
- ;;
-esac
-
-# End $rc_base/init.d/
# Make version
$Conf::version = &make_version();
+# Pakfire lock file.
+our $lockfile = "/tmp/pakfire_lock";
+
sub message {
my $message = shift;
###############################################################################
# #
# IPFire.org - A linux based firewall #
-# Copyright (C) 2007-2015 IPFire Team <info@ipfire.org> #
+# Copyright (C) 2007-2021 IPFire Team <info@ipfire.org> #
# #
# This program is free software: you can redistribute it and/or modify #
# it under the terms of the GNU General Public License as published by #
my $interactive = 1;
my $force = "noforce";
+ my $locked;
&Pakfire::logger("PAKFIRE INFO: IPFire Pakfire $Conf::version started!");
&Pakfire::message("PAKFIRE ERROR: You need to be online to run pakfire!");
exit 2;
}
+
+ # Check if a lockfile already exists.
+ if (-e "$Pakfire::lockfile") {
+ &Pakfire::message("PAKFIRE ERROR: Another instance of pakfire is already running!");
+ exit 1;
+ }
+
+ # Write lockfile.
+ open(LOCK, ">$Pakfire::lockfile");
+
+ # Pakfire has locked in this session set locket to "1".
+ $locked = "1";
+
+ # Close filehandle.
+ close(LOCK);
### Check if we are started by another name
#
&Pakfire::logger("PAKFIRE INFO: Pakfire has finished. Closing.");
+ END {
+ # Check if pakfire has been locked in this session.
+ if ($locked) {
+ # Remove lockfile.
+ unlink($Pakfire::lockfile);
+ }
+ }
+
exit 0;
+++ /dev/null
-#!/bin/bash
-############################################################################
-# #
-# This file is part of the IPFire Firewall. #
-# #
-# IPFire is free software; you can redistribute it and/or modify #
-# it under the terms of the GNU General Public License as published by #
-# the Free Software Foundation; either version 2 of the License, or #
-# (at your option) any later version. #
-# #
-# IPFire is distributed in the hope that it will be useful, #
-# but WITHOUT ANY WARRANTY; without even the implied warranty of #
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the #
-# GNU General Public License for more details. #
-# #
-# You should have received a copy of the GNU General Public License #
-# along with IPFire; if not, write to the Free Software #
-# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA #
-# #
-# Copyright (C) 2007 IPFire-Team <info@ipfire.org>. #
-# #
-############################################################################
-#
-. /opt/pakfire/lib/functions.sh
-extract_files
-restore_backup ${NAME}
-start_service ${NAME}
+++ /dev/null
-#!/bin/bash
-############################################################################
-# #
-# This file is part of the IPFire Firewall. #
-# #
-# IPFire is free software; you can redistribute it and/or modify #
-# it under the terms of the GNU General Public License as published by #
-# the Free Software Foundation; either version 2 of the License, or #
-# (at your option) any later version. #
-# #
-# IPFire is distributed in the hope that it will be useful, #
-# but WITHOUT ANY WARRANTY; without even the implied warranty of #
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the #
-# GNU General Public License for more details. #
-# #
-# You should have received a copy of the GNU General Public License #
-# along with IPFire; if not, write to the Free Software #
-# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA #
-# #
-# Copyright (C) 2007 IPFire-Team <info@ipfire.org>. #
-# #
-############################################################################
-#
-. /opt/pakfire/lib/functions.sh
-echo "/var/ipfire/asterisk/" >> /var/ipfire/backup/addons/includes/asterisk
-echo "/var/log/asterisk/cdr-csv/" >> /var/ipfire/backup/addons/includes/asterisk
-stop_service ${NAME}
-make_backup ${NAME}
-remove_files
+++ /dev/null
-#!/bin/bash
-############################################################################
-# #
-# This file is part of the IPFire Firewall. #
-# #
-# IPFire is free software; you can redistribute it and/or modify #
-# it under the terms of the GNU General Public License as published by #
-# the Free Software Foundation; either version 2 of the License, or #
-# (at your option) any later version. #
-# #
-# IPFire is distributed in the hope that it will be useful, #
-# but WITHOUT ANY WARRANTY; without even the implied warranty of #
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the #
-# GNU General Public License for more details. #
-# #
-# You should have received a copy of the GNU General Public License #
-# along with IPFire; if not, write to the Free Software #
-# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA #
-# #
-# Copyright (C) 2007-2020 IPFire-Team <info@ipfire.org>. #
-# #
-############################################################################
-#
-. /opt/pakfire/lib/functions.sh
-extract_backup_includes
-./uninstall.sh
-./install.sh
+++ /dev/null
-#!/bin/bash
-############################################################################
-# #
-# This file is part of the IPFire Firewall. #
-# #
-# IPFire is free software; you can redistribute it and/or modify #
-# it under the terms of the GNU General Public License as published by #
-# the Free Software Foundation; either version 2 of the License, or #
-# (at your option) any later version. #
-# #
-# IPFire is distributed in the hope that it will be useful, #
-# but WITHOUT ANY WARRANTY; without even the implied warranty of #
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the #
-# GNU General Public License for more details. #
-# #
-# You should have received a copy of the GNU General Public License #
-# along with IPFire; if not, write to the Free Software #
-# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA #
-# #
-# Copyright (C) 2007 IPFire-Team <info@ipfire.org>. #
-# #
-############################################################################
-#
-. /opt/pakfire/lib/functions.sh
-make_backup ${NAME}
-remove_files
+++ /dev/null
-#!/bin/bash
-############################################################################
-# #
-# This file is part of the IPFire Firewall. #
-# #
-# IPFire is free software; you can redistribute it and/or modify #
-# it under the terms of the GNU General Public License as published by #
-# the Free Software Foundation; either version 2 of the License, or #
-# (at your option) any later version. #
-# #
-# IPFire is distributed in the hope that it will be useful, #
-# but WITHOUT ANY WARRANTY; without even the implied warranty of #
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the #
-# GNU General Public License for more details. #
-# #
-# You should have received a copy of the GNU General Public License #
-# along with IPFire; if not, write to the Free Software #
-# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA #
-# #
-# Copyright (C) 2007-2020 IPFire-Team <info@ipfire.org>. #
-# #
-############################################################################
-#
-. /opt/pakfire/lib/functions.sh
-extract_backup_includes
-./uninstall.sh
-./install.sh
+++ /dev/null
-diff -Naur Python-2.7-org/setup.py Python-2.7/setup.py
---- Python-2.7-org/setup.py 2010-06-27 14:36:16.000000000 +0200
-+++ Python-2.7/setup.py 2010-07-13 22:23:04.000000000 +0200
-@@ -1125,7 +1125,7 @@
- 'ndbm'):
- ndbm_libs = ['ndbm']
- else:
-- ndbm_libs = []
-+ ndbm_libs = ['gdbm', 'gdbm_compat' ]
- print "building dbm using ndbm"
- dbmext = Extension('dbm', ['dbmmodule.c'],
- define_macros=[
-@@ -1140,7 +1140,7 @@
- if self.compiler.find_library_file(lib_dirs,
- 'gdbm_compat'):
- gdbm_libs.append('gdbm_compat')
-- if find_file("gdbm/ndbm.h", inc_dirs, []) is not None:
-+ if find_file("ndbm.h", inc_dirs, []) is not None:
- print "building dbm using gdbm"
- dbmext = Extension(
- 'dbm', ['dbmmodule.c'],
+++ /dev/null
-diff -Naur Python-2.7-org/setup.py Python-2.7/setup.py
---- Python-2.7-org/setup.py 2010-06-27 14:36:16.000000000 +0200
-+++ Python-2.7/setup.py 2010-07-13 22:23:04.000000000 +0200
-@@ -1125,7 +1125,7 @@
- 'ndbm'):
- ndbm_libs = ['ndbm']
- else:
-- ndbm_libs = []
-+ ndbm_libs = ['gdbm', 'gdbm_compat' ]
- print "building dbm using ndbm"
- dbmext = Extension('dbm', ['dbmmodule.c'],
- define_macros=[
-@@ -1140,7 +1140,7 @@
- if self.compiler.find_library_file(lib_dirs,
- 'gdbm_compat'):
- gdbm_libs.append('gdbm_compat')
-- if find_file("gdbm/ndbm.h", inc_dirs, []) is not None:
-+ if find_file("ndbm.h", inc_dirs, []) is not None:
- print "building dbm using gdbm"
- dbmext = Extension(
- 'dbm', ['dbmmodule.c'],
+++ /dev/null
-diff -Nur arm.vanilla/src/util/hostnames.py arm/src/util/hostnames.py
---- arm.vanilla/src/util/hostnames.py 2012-04-29 05:59:24.000000000 +0200
-+++ arm/src/util/hostnames.py 2013-07-31 17:59:19.245591564 +0200
-@@ -30,7 +30,6 @@
- import threading
- import itertools
- import Queue
--import distutils.sysconfig
-
- from util import log, sysTools
-
-@@ -264,7 +263,7 @@
- # 'socket.gethostbyaddr'. The following checks if the system has the
- # gethostbyname_r function, which determines if python resolutions can be
- # done in parallel or not. If so, this is preferable.
-- isSocketResolutionParallel = distutils.sysconfig.get_config_var("HAVE_GETHOSTBYNAME_R")
-+ isSocketResolutionParallel = True #distutils.sysconfig.get_config_var("HAVE_GETHOSTBYNAME_R")
- self.useSocketResolution = CONFIG["queries.hostnames.useSocketModule"] and isSocketResolutionParallel
-
- for _ in range(CONFIG["queries.hostnames.poolSize"]):
+++ /dev/null
-diff -Naur linux-3.14.76.org/arch/arm/mach-omap2/cclock3xxx_data.c linux-3.14.76/arch/arm/mach-omap2/cclock3xxx_data.c
---- linux-3.14.76.org/arch/arm/mach-omap2/cclock3xxx_data.c 2016-08-18 06:26:02.000000000 +0200
-+++ linux-3.14.76/arch/arm/mach-omap2/cclock3xxx_data.c 2016-08-18 06:37:51.442186995 +0200
-@@ -250,7 +250,7 @@
-
- static struct clk dpll1_ck;
-
--static struct clk_ops dpll1_ck_ops;
-+static clk_ops_no_const dpll1_ck_ops;
-
- static struct clk_ops dpll1_ck_ops_34xx __initdata = {
- .init = &omap2_init_clk_clkdm,
-diff -Naur linux-3.14.76.org/net/ipv6/addrconf.c linux-3.14.76/net/ipv6/addrconf.c
---- linux-3.14.76.org/net/ipv6/addrconf.c 2016-08-18 06:25:51.000000000 +0200
-+++ linux-3.14.76/net/ipv6/addrconf.c 2016-08-18 06:31:51.802186824 +0200
-@@ -4818,7 +4818,7 @@
- {
- struct inet6_dev *idev = ctl->extra1;
- int min_mtu = IPV6_MIN_MTU;
-- struct ctl_table lctl;
-+ ctl_table_no_const lctl;
-
- lctl = *ctl;
- lctl.extra1 = &min_mtu;
+++ /dev/null
---- build/usr/src/asterisk-11.9.0/res/Makefile.orig 2014-04-28 20:30:50.500877461 +0200
-+++ build/usr/src/asterisk-11.9.0/res/Makefile 2014-04-28 20:31:39.357034757 +0200
-@@ -75,7 +75,7 @@
- rm -f pjproject/build.mak
-
- pjproject/build.mak: pjproject/aconfigure
-- (cd pjproject && CFLAGS="-fPIC" ./configure --build=$(BUILD_PLATFORM) --host=$(HOST_PLATFORM) --disable-floating-point --disable-sound --disable-oss --disable-speex-aec --disable-l16-codec --disable-gsm-codec --disable-g722-codec --disable-g7221-codec --disable-speex-codec --disable-ilbc-codec --disable-g711-codec)
-+ (cd pjproject && CFLAGS="-fPIC" ./configure --build=$(BUILD_PLATFORM) --host=$(HOST_PLATFORM) --disable-floating-point --disable-sound --disable-oss --disable-speex-aec --disable-l16-codec --disable-gsm-codec --disable-g722-codec --disable-g7221-codec --disable-speex-codec --disable-ilbc-codec --disable-g711-codec --disable-opencore-amrnb --disable-video --disable-sdl --disable-ffmpeg --disable-v4l2)
-
- ifneq ($(findstring $(MAKECMDGOALS),all),)
- -include pjproject/build.mak
+++ /dev/null
-Upstream issue 18345
-Link: https://issues.asterisk.org/jira/browse/ASTERISK-18345
-Patch-By: Filip Jenicek
-
-Submitted upstream: 2012-05-31 09:12
-For Asterisk version: 1.8.4
-
-The HOOK_T ssl_read function should behave the same way as the system read function
-by blocking and waiting for (more) data from the SSL subsystem. Failure to do this
-will drop data on the floor and ultimately disconnect SSL clients.
-
---- asterisk/main/tcptls.c
-+++ asterisk/main/tcptls.c
-@@ -55,6 +55,14 @@
- static HOOK_T ssl_read(void *cookie, char *buf, LEN_T len)
- {
- int i = SSL_read(cookie, buf, len-1);
-+
-+ /* ssl_read should block and wait for the SSL layer to provide all data */
-+ while (i < 0 && SSL_get_error(cookie, i) == SSL_ERROR_WANT_READ) {
-+ ast_debug(1, "SSL_read - data not ready.\n");
-+ if (ast_wait_for_input(SSL_get_fd(cookie), 5000) <= 0) return 0;
-+ i = SSL_read(cookie, buf, len-1);
-+ }
-+
- #if 0
- if (i >= 0)
- buf[i] = '\0';
+++ /dev/null
-diff -Naur compat-drivers-3.8.3-2-snpu.org/drivers/net/wireless/ath/regd.c compat-drivers-3.8.3-2-snpu/drivers/net/wireless/ath/regd.c
---- compat-drivers-3.8.3-2-snpu.org/drivers/net/wireless/ath/regd.c 2013-03-15 22:55:09.000000000 +0100
-+++ compat-drivers-3.8.3-2-snpu/drivers/net/wireless/ath/regd.c 2013-08-22 11:51:36.793297656 +0200
-@@ -200,6 +200,8 @@
- u32 bandwidth = 0;
- int r;
-
-+ return;
-+
- for (band = 0; band < IEEE80211_NUM_BANDS; band++) {
-
- if (!wiphy->bands[band])
-@@ -259,6 +261,8 @@
- u32 bandwidth = 0;
- int r;
-
-+ return;
-+
- sband = wiphy->bands[IEEE80211_BAND_2GHZ];
- if (!sband)
- return;
-@@ -308,6 +312,8 @@
- struct ieee80211_channel *ch;
- unsigned int i;
-
-+ return;
-+
- if (!wiphy->bands[IEEE80211_BAND_5GHZ])
- return;
-
-@@ -514,6 +520,8 @@
- {
- const struct ieee80211_regdomain *regd;
-
-+ return 0;
-+
- wiphy->reg_notifier = reg_notifier;
- wiphy->flags |= WIPHY_FLAG_STRICT_REGULATORY;
-
+++ /dev/null
-diff -up cups-1.7.5/cgi-bin/ipp-var.c.str4609 cups-1.7.5/cgi-bin/ipp-var.c
---- cups-1.7.5/cgi-bin/ipp-var.c.str4609 2014-05-22 15:59:21.000000000 +0200
-+++ cups-1.7.5/cgi-bin/ipp-var.c 2015-06-10 10:31:45.297965345 +0200
-@@ -1206,21 +1206,7 @@ cgiSetIPPObjectVars(
- * Rewrite URIs...
- */
-
-- if (!strcmp(name, "member_uris"))
-- {
-- char url[1024]; /* URL for class member... */
--
--
-- cgiRewriteURL(attr->values[i].string.text, url,
-- sizeof(url), NULL);
--
-- snprintf(valptr, sizeof(value) - (valptr - value),
-- "<A HREF=\"%s\">%s</A>", url,
-- strrchr(attr->values[i].string.text, '/') + 1);
-- }
-- else
-- cgiRewriteURL(attr->values[i].string.text, valptr,
-- sizeof(value) - (valptr - value), NULL);
-+ cgiRewriteURL(attr->values[i].string.text, valptr, sizeof(value) - (valptr - value), NULL);
- break;
- }
-
-diff -up cups-1.7.5/cgi-bin/template.c.str4609 cups-1.7.5/cgi-bin/template.c
---- cups-1.7.5/cgi-bin/template.c.str4609 2014-03-05 22:11:32.000000000 +0100
-+++ cups-1.7.5/cgi-bin/template.c 2015-06-10 10:31:45.297965345 +0200
-@@ -659,39 +659,7 @@ cgi_puts(const char *s, /* I - String
- while (*s)
- {
- if (*s == '<')
-- {
-- /*
-- * Pass <A HREF="url"> and </A>, otherwise quote it...
-- */
--
-- if (!_cups_strncasecmp(s, "<A HREF=\"", 9))
-- {
-- fputs("<A HREF=\"", out);
-- s += 9;
--
-- while (*s && *s != '\"')
-- {
-- if (*s == '&')
-- fputs("&", out);
-- else
-- putc(*s, out);
--
-- s ++;
-- }
--
-- if (*s)
-- s ++;
--
-- fputs("\">", out);
-- }
-- else if (!_cups_strncasecmp(s, "</A>", 4))
-- {
-- fputs("</A>", out);
-- s += 3;
-- }
-- else
-- fputs("<", out);
-- }
-+ fputs("<", out);
- else if (*s == '>')
- fputs(">", out);
- else if (*s == '\"')
-diff -up cups-1.7.5/scheduler/client.c.str4609 cups-1.7.5/scheduler/client.c
---- cups-1.7.5/scheduler/client.c.str4609 2015-06-10 10:31:45.280965399 +0200
-+++ cups-1.7.5/scheduler/client.c 2015-06-10 10:31:45.300965335 +0200
-@@ -598,7 +598,12 @@ cupsdCloseClient(cupsd_client_t *con) /*
- httpClearCookie(HTTP(con));
- httpClearFields(HTTP(con));
-
-- cupsdClearString(&con->filename);
-+ if (con->filename)
-+ {
-+ unlink(con->filename);
-+ cupsdClearString(&con->filename);
-+ }
-+
- cupsdClearString(&con->command);
- cupsdClearString(&con->options);
- cupsdClearString(&con->query_string);
-diff -up cups-1.7.5/scheduler/env.c.str4609 cups-1.7.5/scheduler/env.c
---- cups-1.7.5/scheduler/env.c.str4609 2015-06-10 10:31:45.208965629 +0200
-+++ cups-1.7.5/scheduler/env.c 2015-06-10 10:31:45.300965335 +0200
-@@ -131,6 +131,13 @@ cupsdSetEnv(const char *name, /* I - Na
- return;
-
- /*
-+ * Do not allow dynamic linker variables when running as root...
-+ */
-+
-+ if (!RunUser && (!strncmp(name, "DYLD_", 5) || !strncmp(name, "LD_", 3)))
-+ return;
-+
-+ /*
- * See if this variable has already been defined...
- */
-
-diff -up cups-1.7.5/scheduler/ipp.c.str4609 cups-1.7.5/scheduler/ipp.c
---- cups-1.7.5/scheduler/ipp.c.str4609 2015-06-10 10:31:45.287965377 +0200
-+++ cups-1.7.5/scheduler/ipp.c 2015-06-10 10:31:45.299965339 +0200
-@@ -412,8 +412,7 @@ cupsdProcessIPPRequest(
- * Remote unauthenticated user masquerading as local root...
- */
-
-- _cupsStrFree(username->values[0].string.text);
-- username->values[0].string.text = _cupsStrAlloc(RemoteRoot);
-+ ippSetString(con->request, &username, 0, RemoteRoot);
- }
- }
-
-@@ -1576,7 +1575,7 @@ add_job(cupsd_client_t *con, /* I - Cl
- cupsdSetString(&job->username, con->username);
-
- if (attr)
-- cupsdSetString(&attr->values[0].string.text, con->username);
-+ ippSetString(job->attrs, &attr, 0, con->username);
- }
- else if (attr)
- {
-@@ -1594,9 +1593,8 @@ add_job(cupsd_client_t *con, /* I - Cl
- "job-originating-user-name", NULL, job->username);
- else
- {
-- attr->group_tag = IPP_TAG_JOB;
-- _cupsStrFree(attr->name);
-- attr->name = _cupsStrAlloc("job-originating-user-name");
-+ ippSetGroupTag(job->attrs, &attr, IPP_TAG_JOB);
-+ ippSetName(job->attrs, &attr, "job-originating-user-name");
- }
-
- if (con->username[0] || auth_info)
-@@ -1630,48 +1628,11 @@ add_job(cupsd_client_t *con, /* I - Cl
- * Also, we can only have 1 value and it must be a name value.
- */
-
-- switch (attr->value_tag)
-- {
-- case IPP_TAG_STRING :
-- case IPP_TAG_TEXTLANG :
-- case IPP_TAG_NAMELANG :
-- case IPP_TAG_TEXT :
-- case IPP_TAG_NAME :
-- case IPP_TAG_KEYWORD :
-- case IPP_TAG_URI :
-- case IPP_TAG_URISCHEME :
-- case IPP_TAG_CHARSET :
-- case IPP_TAG_LANGUAGE :
-- case IPP_TAG_MIMETYPE :
-- /*
-- * Free old strings...
-- */
--
-- for (i = 0; i < attr->num_values; i ++)
-- {
-- _cupsStrFree(attr->values[i].string.text);
-- attr->values[i].string.text = NULL;
-- if (attr->values[i].string.language)
-- {
-- _cupsStrFree(attr->values[i].string.language);
-- attr->values[i].string.language = NULL;
-- }
-- }
--
-- default :
-- break;
-- }
--
-- /*
-- * Use the default connection hostname instead...
-- */
--
-- attr->value_tag = IPP_TAG_NAME;
-- attr->num_values = 1;
-- attr->values[0].string.text = _cupsStrAlloc(con->http.hostname);
-+ ippDeleteAttribute(job->attrs, attr);
-+ ippAddString(job->attrs, IPP_TAG_JOB, IPP_TAG_NAME, "job-originating-host-name", NULL, con->http.hostname);
- }
--
-- attr->group_tag = IPP_TAG_JOB;
-+ else
-+ ippSetGroupTag(job->attrs, &attr, IPP_TAG_JOB);
- }
- else
- {
-@@ -1767,8 +1728,8 @@ add_job(cupsd_client_t *con, /* I - Cl
-
- attr = ippAddStrings(job->attrs, IPP_TAG_JOB, IPP_TAG_NAME, "job-sheets",
- 2, NULL, NULL);
-- attr->values[0].string.text = _cupsStrRetain(printer->job_sheets[0]);
-- attr->values[1].string.text = _cupsStrRetain(printer->job_sheets[1]);
-+ ippSetString(job->attrs, &attr, 0, printer->job_sheets[0]);
-+ ippSetString(job->attrs, &attr, 1, printer->job_sheets[1]);
- }
-
- job->job_sheets = attr;
-@@ -1794,7 +1755,7 @@ add_job(cupsd_client_t *con, /* I - Cl
- * Force the leading banner to have the classification on it...
- */
-
-- cupsdSetString(&attr->values[0].string.text, Classification);
-+ ippSetString(job->attrs, &attr, 0, Classification);
-
- cupsdLogJob(job, CUPSD_LOG_NOTICE, "CLASSIFICATION FORCED "
- "job-sheets=\"%s,none\", "
-@@ -1811,7 +1772,7 @@ add_job(cupsd_client_t *con, /* I - Cl
- * Can't put two different security markings on the same document!
- */
-
-- cupsdSetString(&attr->values[1].string.text, attr->values[0].string.text);
-+ ippSetString(job->attrs, &attr, 1, attr->values[0].string.text);
-
- cupsdLogJob(job, CUPSD_LOG_NOTICE, "CLASSIFICATION FORCED "
- "job-sheets=\"%s,%s\", "
-@@ -1851,18 +1812,18 @@ add_job(cupsd_client_t *con, /* I - Cl
- if (attr->num_values > 1 &&
- !strcmp(attr->values[0].string.text, attr->values[1].string.text))
- {
-- cupsdSetString(&(attr->values[0].string.text), Classification);
-- cupsdSetString(&(attr->values[1].string.text), Classification);
-+ ippSetString(job->attrs, &attr, 0, Classification);
-+ ippSetString(job->attrs, &attr, 1, Classification);
- }
- else
- {
- if (attr->num_values == 1 ||
- strcmp(attr->values[0].string.text, "none"))
-- cupsdSetString(&(attr->values[0].string.text), Classification);
-+ ippSetString(job->attrs, &attr, 0, Classification);
-
- if (attr->num_values > 1 &&
- strcmp(attr->values[1].string.text, "none"))
-- cupsdSetString(&(attr->values[1].string.text), Classification);
-+ ippSetString(job->attrs, &attr, 1, Classification);
- }
-
- if (attr->num_values > 1)
-@@ -3098,8 +3059,8 @@ authenticate_job(cupsd_client_t *con, /
-
- if (attr)
- {
-- attr->value_tag = IPP_TAG_KEYWORD;
-- cupsdSetString(&(attr->values[0].string.text), "no-hold");
-+ ippSetValueTag(job->attrs, &attr, IPP_TAG_KEYWORD);
-+ ippSetString(job->attrs, &attr, 0, "no-hold");
- }
-
- /*
-@@ -8224,11 +8185,7 @@ print_job(cupsd_client_t *con, /* I -
- filetype->type);
-
- if (format)
-- {
-- _cupsStrFree(format->values[0].string.text);
--
-- format->values[0].string.text = _cupsStrAlloc(mimetype);
-- }
-+ ippSetString(con->request, &format, 0, mimetype);
- else
- ippAddString(con->request, IPP_TAG_JOB, IPP_TAG_MIMETYPE,
- "document-format", NULL, mimetype);
-@@ -8765,10 +8722,8 @@ release_job(cupsd_client_t *con, /* I -
-
- if (attr)
- {
-- _cupsStrFree(attr->values[0].string.text);
--
-- attr->value_tag = IPP_TAG_KEYWORD;
-- attr->values[0].string.text = _cupsStrAlloc("no-hold");
-+ ippSetValueTag(job->attrs, &attr, IPP_TAG_KEYWORD);
-+ ippSetString(job->attrs, &attr, 0, "no-hold");
-
- cupsdAddEvent(CUPSD_EVENT_JOB_CONFIG_CHANGED, cupsdFindDest(job->dest), job,
- "Job job-hold-until value changed by user.");
-@@ -9461,11 +9416,7 @@ send_document(cupsd_client_t *con, /* I
-
- if ((jformat = ippFindAttribute(job->attrs, "document-format",
- IPP_TAG_MIMETYPE)) != NULL)
-- {
-- _cupsStrFree(jformat->values[0].string.text);
--
-- jformat->values[0].string.text = _cupsStrAlloc(mimetype);
-- }
-+ ippSetString(job->attrs, &jformat, 0, mimetype);
- else
- ippAddString(job->attrs, IPP_TAG_JOB, IPP_TAG_MIMETYPE,
- "document-format", NULL, mimetype);
-diff -up cups-1.7.5/scheduler/job.c.str4609 cups-1.7.5/scheduler/job.c
---- cups-1.7.5/scheduler/job.c.str4609 2015-06-10 10:31:45.288965374 +0200
-+++ cups-1.7.5/scheduler/job.c 2015-06-10 10:31:45.299965339 +0200
-@@ -375,7 +375,7 @@ cupsdCheckJobs(void)
-
- if ((attr = ippFindAttribute(job->attrs, "job-actual-printer-uri",
- IPP_TAG_URI)) != NULL)
-- cupsdSetString(&attr->values[0].string.text, printer->uri);
-+ ippSetString(job->attrs, &attr, 0, printer->uri);
- else
- ippAddString(job->attrs, IPP_TAG_JOB, IPP_TAG_URI,
- "job-actual-printer-uri", NULL, printer->uri);
-@@ -2109,7 +2109,7 @@ cupsdMoveJob(cupsd_job_t *job, /* I
-
- if ((attr = ippFindAttribute(job->attrs, "job-printer-uri",
- IPP_TAG_URI)) != NULL)
-- cupsdSetString(&(attr->values[0].string.text), p->uri);
-+ ippSetString(job->attrs, &attr, 0, p->uri);
-
- cupsdAddEvent(CUPSD_EVENT_JOB_STOPPED, p, job,
- "Job #%d moved from %s to %s.", job->id, olddest,
-@@ -2306,7 +2306,7 @@ cupsdSetJobHoldUntil(cupsd_job_t *job, /
- attr = ippFindAttribute(job->attrs, "job-hold-until", IPP_TAG_NAME);
-
- if (attr)
-- cupsdSetString(&(attr->values[0].string.text), when);
-+ ippSetString(job->attrs, &attr, 0, when);
- else
- attr = ippAddString(job->attrs, IPP_TAG_JOB, IPP_TAG_KEYWORD,
- "job-hold-until", NULL, when);
-@@ -2560,8 +2560,8 @@ cupsdSetJobState(
-
- if (attr)
- {
-- attr->value_tag = IPP_TAG_KEYWORD;
-- cupsdSetString(&(attr->values[0].string.text), "no-hold");
-+ ippSetValueTag(job->attrs, &attr, IPP_TAG_KEYWORD);
-+ ippSetString(job->attrs, &attr, 0, "no-hold");
- }
-
- default :
-@@ -4598,7 +4598,7 @@ start_job(cupsd_job_t *job, /* I -
- "job-printer-state-message",
- IPP_TAG_TEXT);
- if (job->printer_message)
-- cupsdSetString(&(job->printer_message->values[0].string.text), "");
-+ ippSetString(job->attrs, &job->printer_message, 0, "");
-
- ippSetString(job->attrs, &job->reasons, 0, "job-printing");
- cupsdSetJobState(job, IPP_JOB_PROCESSING, CUPSD_JOB_DEFAULT, NULL);
-@@ -5216,15 +5216,14 @@ update_job_attrs(cupsd_job_t *job, /* I
- if (job->state_value != IPP_JOB_PROCESSING &&
- job->status_level == CUPSD_LOG_INFO)
- {
-- cupsdSetString(&(job->printer_message->values[0].string.text), "");
-+ ippSetString(job->attrs, &job->printer_message, 0, "");
-
- job->dirty = 1;
- cupsdMarkDirty(CUPSD_DIRTY_JOBS);
- }
- else if (job->printer->state_message[0] && do_message)
- {
-- cupsdSetString(&(job->printer_message->values[0].string.text),
-- job->printer->state_message);
-+ ippSetString(job->attrs, &job->printer_message, 0, job->printer->state_message);
-
- job->dirty = 1;
- cupsdMarkDirty(CUPSD_DIRTY_JOBS);
-diff -up cups-1.7.5/scheduler/main.c.str4609 cups-1.7.5/scheduler/main.c
---- cups-1.7.5/scheduler/main.c.str4609 2015-06-10 10:31:45.265965447 +0200
-+++ cups-1.7.5/scheduler/main.c 2015-06-10 10:31:45.300965335 +0200
-@@ -1205,8 +1205,8 @@ cupsdAddString(cups_array_t **a, /* IO -
- if (!*a)
- *a = cupsArrayNew3((cups_array_func_t)strcmp, NULL,
- (cups_ahash_func_t)NULL, 0,
-- (cups_acopy_func_t)_cupsStrAlloc,
-- (cups_afree_func_t)_cupsStrFree);
-+ (cups_acopy_func_t)strdup,
-+ (cups_afree_func_t)free);
-
- return (cupsArrayAdd(*a, (char *)s));
- }
-@@ -1236,7 +1236,7 @@ cupsdClearString(char **s) /* O - Strin
- {
- if (s && *s)
- {
-- _cupsStrFree(*s);
-+ free(*s);
- *s = NULL;
- }
- }
-@@ -1317,10 +1317,10 @@ cupsdSetString(char **s, /* O - N
- return;
-
- if (*s)
-- _cupsStrFree(*s);
-+ free(*s);
-
- if (v)
-- *s = _cupsStrAlloc(v);
-+ *s = strdup(v);
- else
- *s = NULL;
- }
-@@ -1351,13 +1351,13 @@ cupsdSetStringf(char **s, /* O -
- vsnprintf(v, sizeof(v), f, ap);
- va_end(ap);
-
-- *s = _cupsStrAlloc(v);
-+ *s = strdup(v);
- }
- else
- *s = NULL;
-
- if (olds)
-- _cupsStrFree(olds);
-+ free(olds);
- }
-
-
-@@ -1804,8 +1804,7 @@ process_children(void)
- }
-
- if (job->printer_message)
-- cupsdSetString(&(job->printer_message->values[0].string.text),
-- message);
-+ ippSetString(job->attrs, &job->printer_message, 0, message);
- }
- }
-
+++ /dev/null
-Submitted By: Dan Nicholson <dnicholson AT linuxfromscratch DOT org>
-Date: 2006-09-02
-Initial Package Version: 4.4.20
-Origin: Upstream - http://www.sleepycat.com/update/4.4.20/patch.4.4.20.html
-Description: Bug fixes provided by the developer. Contains patches 1-4.
-
-diff -pNur db-4.4.20.orig/db/db_cam.c db-4.4.20/db/db_cam.c
---- db-4.4.20.orig/db/db_cam.c 2006-01-10 16:19:21.000000000 +0000
-+++ db-4.4.20/db/db_cam.c 2006-08-03 14:31:20.220319610 +0000
-@@ -579,11 +579,12 @@ __db_c_get(dbc_arg, key, data, flags)
- flags == DB_NEXT || flags == DB_NEXT_DUP || flags == DB_PREV)) {
- if (tmp_rmw && (ret = dbc_arg->c_am_writelock(dbc_arg)) != 0)
- return (ret);
-- if ((ret = __db_c_idup(cp->opd, &opd, DB_POSITION)) != 0)
-+ if (F_ISSET(dbc_arg, DBC_TRANSIENT))
-+ opd = cp->opd;
-+ else if ((ret = __db_c_idup(cp->opd, &opd, DB_POSITION)) != 0)
- return (ret);
-
-- switch (ret =
-- opd->c_am_get(opd, key, data, flags, NULL)) {
-+ switch (ret = opd->c_am_get(opd, key, data, flags, NULL)) {
- case 0:
- goto done;
- case DB_NOTFOUND:
-@@ -596,12 +597,18 @@ __db_c_get(dbc_arg, key, data, flags)
- if ((ret = __db_c_close(opd)) != 0)
- goto err;
- opd = NULL;
-+ if (F_ISSET(dbc_arg, DBC_TRANSIENT))
-+ cp->opd = NULL;
- break;
- }
- goto err;
- default:
- goto err;
- }
-+ } else if (cp->opd != NULL && F_ISSET(dbc_arg, DBC_TRANSIENT)) {
-+ if ((ret = __db_c_close(cp->opd)) != 0)
-+ goto err;
-+ cp->opd = NULL;
- }
-
- /*
-diff -pNur db-4.4.20.orig/mp/mp_fget.c db-4.4.20/mp/mp_fget.c
---- db-4.4.20.orig/mp/mp_fget.c 2005-10-12 17:53:36.000000000 +0000
-+++ db-4.4.20/mp/mp_fget.c 2006-08-03 14:31:20.223318410 +0000
-@@ -587,8 +587,11 @@ alloc: /*
- */
- if (state != SECOND_MISS && bhp->ref == 1) {
- bhp->priority = UINT32_MAX;
-- SH_TAILQ_REMOVE(&hp->hash_bucket, bhp, hq, __bh);
-- SH_TAILQ_INSERT_TAIL(&hp->hash_bucket, bhp, hq);
-+ if (SH_TAILQ_FIRST(&hp->hash_bucket, __bh) !=
-+ SH_TAILQ_LAST(&hp->hash_bucket, hq, __bh)) {
-+ SH_TAILQ_REMOVE(&hp->hash_bucket, bhp, hq, __bh);
-+ SH_TAILQ_INSERT_TAIL(&hp->hash_bucket, bhp, hq);
-+ }
- hp->hash_priority =
- SH_TAILQ_FIRSTP(&hp->hash_bucket, __bh)->priority;
- }
-diff -pNur db-4.4.20.orig/qam/qam_files.c db-4.4.20/qam/qam_files.c
---- db-4.4.20.orig/qam/qam_files.c 2005-10-20 18:57:12.000000000 +0000
-+++ db-4.4.20/qam/qam_files.c 2006-08-03 14:31:20.211323209 +0000
-@@ -411,6 +411,12 @@ __qam_fremove(dbp, pgnoaddr)
- DB_APP_DATA, buf, 0, NULL, &real_name)) != 0)
- goto err;
- #endif
-+
-+ mpf = array->mpfarray[offset].mpf;
-+ /* This extent my already be marked for delete and closed. */
-+ if (mpf == NULL)
-+ goto err;
-+
- /*
- * The log must be flushed before the file is deleted. We depend on
- * the log record of the last delete to recreate the file if we crash.
-@@ -418,7 +424,6 @@ __qam_fremove(dbp, pgnoaddr)
- if (LOGGING_ON(dbenv) && (ret = __log_flush(dbenv, NULL)) != 0)
- goto err;
-
-- mpf = array->mpfarray[offset].mpf;
- (void)__memp_set_flags(mpf, DB_MPOOL_UNLINK, 1);
- /* Someone could be real slow, let them close it down. */
- if (array->mpfarray[offset].pinref != 0)
-diff -pNur db-4.4.20.orig/txn/txn.c db-4.4.20/txn/txn.c
---- db-4.4.20.orig/txn/txn.c 2005-11-01 14:50:03.000000000 +0000
-+++ db-4.4.20/txn/txn.c 2006-08-03 14:31:20.215321609 +0000
-@@ -1049,12 +1049,14 @@ __txn_set_name(txn, name)
- return (ret);
- memcpy(txn->name, name, len);
-
-+ TXN_SYSTEM_LOCK(dbenv);
- if (td->name != INVALID_ROFF) {
- __db_shalloc_free(
- &mgr->reginfo, R_ADDR(&mgr->reginfo, td->name));
- td->name = INVALID_ROFF;
- }
- if ((ret = __db_shalloc(&mgr->reginfo, len, 0, &p)) != 0) {
-+ TXN_SYSTEM_UNLOCK(dbenv);
- __db_err(dbenv,
- "Unable to allocate memory for transaction name");
-
-@@ -1063,6 +1065,7 @@ __txn_set_name(txn, name)
-
- return (ret);
- }
-+ TXN_SYSTEM_UNLOCK(dbenv);
- td->name = R_OFFSET(&mgr->reginfo, p);
- memcpy(p, name, len);
-
+++ /dev/null
-Submitted by: Alexander E. Patrakov
-Date: 2005-08-13
-Initial Package Version: 2.8.1
-Upstream Status: Unknown, but required for LSB >= 2.0 certification
-Origin: RedHat
-Description: Fixes treatment of whitespace in multibyte locales.
-
---- diffutils-2.8.4/src/diff.c.i18n 2002-06-17 01:55:42.000000000 -0400
-+++ diffutils-2.8.4/src/diff.c 2002-11-16 18:41:37.000000000 -0500
-@@ -275,6 +275,13 @@
- re_set_syntax (RE_SYNTAX_GREP | RE_NO_POSIX_BACKTRACKING);
- excluded = new_exclude ();
-
-+#ifdef HANDLE_MULTIBYTE
-+ if (MB_CUR_MAX > 1)
-+ lines_differ = lines_differ_multibyte;
-+ else
-+#endif
-+ lines_differ = lines_differ_singlebyte;
-+
- /* Decode the options. */
-
- while ((c = getopt_long (argc, argv, shortopts, longopts, 0)) != -1)
---- diffutils-2.8.4/src/diff.h.i18n 2002-11-16 18:31:32.000000000 -0500
-+++ diffutils-2.8.4/src/diff.h 2002-11-16 18:48:58.000000000 -0500
-@@ -23,6 +23,19 @@
- #include "system.h"
- #include <stdio.h>
-
-+/* For platform which support the ISO C amendement 1 functionality we
-+ support user defined character classes. */
-+#if defined HAVE_WCTYPE_H && defined HAVE_WCHAR_H
-+/* Solaris 2.5 has a bug: <wchar.h> must be included before <wctype.h>. */
-+# include <wchar.h>
-+# include <wctype.h>
-+# if defined (HAVE_MBRTOWC)
-+# define HANDLE_MULTIBYTE 1
-+# endif
-+#endif
-+
-+#define TAB_WIDTH 8
-+
- /* What kind of changes a hunk contains. */
- enum changes
- {
-@@ -350,7 +363,13 @@
- extern char const pr_program[];
- char *concat (char const *, char const *, char const *);
- char *dir_file_pathname (char const *, char const *);
--bool lines_differ (char const *, char const *);
-+
-+bool (*lines_differ) (char const *, char const *);
-+bool lines_differ_singlebyte (char const *, char const *);
-+#ifdef HANDLE_MULTIBYTE
-+bool lines_differ_multibyte (char const *, char const *);
-+#endif
-+
- lin translate_line_number (struct file_data const *, lin);
- struct change *find_change (struct change *);
- struct change *find_reverse_change (struct change *);
---- diffutils-2.8.4/src/io.c.i18n 2002-06-11 02:06:32.000000000 -0400
-+++ diffutils-2.8.4/src/io.c 2002-11-16 18:57:30.000000000 -0500
-@@ -26,6 +26,7 @@
- #include <regex.h>
- #include <setmode.h>
- #include <xalloc.h>
-+#include <assert.h>
-
- /* Rotate an unsigned value to the left. */
- #define ROL(v, n) ((v) << (n) | (v) >> (sizeof (v) * CHAR_BIT - (n)))
-@@ -213,6 +214,28 @@
- \f
- /* Split the file into lines, simultaneously computing the equivalence
- class for each line. */
-+#ifdef HANDLE_MULTIBYTE
-+# define MBC2WC(P, END, MBLENGTH, WC, STATE, CONVFAIL) \
-+do \
-+{ \
-+ mbstate_t state_bak = STATE; \
-+ \
-+ CONVFAIL = 0; \
-+ MBLENGTH = mbrtowc (&WC, P, END - (char const *)P, &STATE); \
-+ \
-+ switch (MBLENGTH) \
-+ { \
-+ case (size_t)-2: \
-+ case (size_t)-1: \
-+ STATE = state_bak; \
-+ ++CONVFAIL; \
-+ /* Fall through. */ \
-+ case 0: \
-+ MBLENGTH = 1; \
-+ } \
-+} \
-+while (0)
-+#endif
-
- static void
- find_and_hash_each_line (struct file_data *current)
-@@ -239,12 +262,280 @@
- bool same_length_diff_contents_compare_anyway =
- diff_length_compare_anyway | ignore_case;
-
-+#ifdef HANDLE_MULTIBYTE
-+ wchar_t wc;
-+ size_t mblength;
-+ mbstate_t state;
-+ int convfail;
-+
-+ memset (&state, '\0', sizeof (mbstate_t));
-+#endif
-+
- while ((char const *) p < suffix_begin)
- {
- char const *ip = (char const *) p;
-
- h = 0;
-+#ifdef HANDLE_MULTIBYTE
-+ if (MB_CUR_MAX > 1)
-+ {
-+ wchar_t lo_wc;
-+ char mbc[MB_LEN_MAX];
-+ mbstate_t state_wc;
-+
-+ /* Hash this line until we find a newline. */
-+ switch (ignore_white_space)
-+ {
-+ case IGNORE_ALL_SPACE:
-+ while (1)
-+ {
-+ if (*p == '\n')
-+ {
-+ ++p;
-+ break;
-+ }
-+
-+ MBC2WC (p, suffix_begin, mblength, wc, state, convfail);
-+
-+ if (convfail)
-+ mbc[0] = *p++;
-+ else if (!iswspace (wc))
-+ {
-+ bool flag = 0;
-+
-+ if (ignore_case)
-+ {
-+ lo_wc = towlower (wc);
-+ if (lo_wc != wc)
-+ {
-+ flag = 1;
-+
-+ p += mblength;
-+ memset (&state_wc, '\0', sizeof(mbstate_t));
-+ mblength = wcrtomb (mbc, lo_wc, &state_wc);
-+
-+ assert (mblength != (size_t)-1 &&
-+ mblength != (size_t)-2);
-+
-+ mblength = (mblength < 1) ? 1 : mblength;
-+ }
-+ }
-+
-+ if (!flag)
-+ {
-+ for (i = 0; i < mblength; i++)
-+ mbc[i] = *p++;
-+ }
-+ }
-+ else
-+ {
-+ p += mblength;
-+ continue;
-+ }
-+
-+ for (i = 0; i < mblength; i++)
-+ h = HASH (h, mbc[i]);
-+ }
-+ break;
-+
-+ case IGNORE_SPACE_CHANGE:
-+ while (1)
-+ {
-+ if (*p == '\n')
-+ {
-+ ++p;
-+ break;
-+ }
-
-+ MBC2WC (p, suffix_begin, mblength, wc, state, convfail);
-+
-+ if (!convfail && iswspace (wc))
-+ {
-+ while (1)
-+ {
-+ if (*p == '\n')
-+ {
-+ ++p;
-+ goto hashing_done;
-+ }
-+
-+ p += mblength;
-+ MBC2WC (p, suffix_begin, mblength, wc, state, convfail);
-+ if (convfail || (!convfail && !iswspace (wc)))
-+ break;
-+ }
-+ h = HASH (h, ' ');
-+ }
-+
-+ /* WC is now the first non-space. */
-+ if (convfail)
-+ mbc[0] = *p++;
-+ else
-+ {
-+ bool flag = 0;
-+
-+ if (ignore_case)
-+ {
-+ lo_wc = towlower (wc);
-+ if (lo_wc != wc)
-+ {
-+ flag = 1;
-+
-+ p += mblength;
-+ memset (&state_wc, '\0', sizeof(mbstate_t));
-+ mblength = wcrtomb (mbc, lo_wc, &state_wc);
-+
-+ assert (mblength != (size_t)-1 &&
-+ mblength != (size_t)-2);
-+
-+ mblength = (mblength < 1) ? 1 : mblength;
-+ }
-+ }
-+
-+ if (!flag)
-+ {
-+ for (i = 0; i < mblength; i++)
-+ mbc[i] = *p++;
-+ }
-+ }
-+
-+ for (i = 0; i < mblength; i++)
-+ h = HASH (h, mbc[i]);
-+ }
-+ break;
-+
-+ case IGNORE_TAB_EXPANSION:
-+ {
-+ size_t column = 0;
-+
-+ while (1)
-+ {
-+ if (*p == '\n')
-+ {
-+ ++p;
-+ break;
-+ }
-+
-+ MBC2WC (p, suffix_begin, mblength, wc, state, convfail);
-+
-+ if (convfail)
-+ {
-+ h = HASH (h, *p++);
-+ ++column;
-+ }
-+ else
-+ {
-+ bool flag;
-+
-+ switch (wc)
-+ {
-+ case L'\b':
-+ column -= 0 < column;
-+ h = HASH (h, '\b');
-+ ++p;
-+ break;
-+
-+ case L'\t':
-+ {
-+ int repetitions;
-+
-+ repetitions = TAB_WIDTH - column % TAB_WIDTH;
-+ column += repetitions;
-+ do
-+ h = HASH (h, ' ');
-+ while (--repetitions != 0);
-+ ++p;
-+ }
-+ break;
-+
-+ case L'\r':
-+ column = 0;
-+ h = HASH (h, '\r');
-+ ++p;
-+ break;
-+
-+ default:
-+ flag = 0;
-+ column += wcwidth (wc);
-+ if (ignore_case)
-+ {
-+ lo_wc = towlower (wc);
-+ if (lo_wc != wc)
-+ {
-+ flag = 1;
-+ p += mblength;
-+ memset (&state_wc, '\0', sizeof(mbstate_t));
-+ mblength = wcrtomb (mbc, lo_wc, &state_wc);
-+
-+ assert (mblength != (size_t)-1 &&
-+ mblength != (size_t)-2);
-+
-+ mblength = (mblength < 1) ? 1 : mblength;
-+ }
-+ }
-+
-+ if (!flag)
-+ {
-+ for (i = 0; i < mblength; i++)
-+ mbc[i] = *p++;
-+ }
-+
-+ for (i = 0; i < mblength; i++)
-+ h = HASH (h, mbc[i]);
-+ }
-+ }
-+ }
-+ }
-+ break;
-+
-+ default:
-+ while (1)
-+ {
-+ if (*p == '\n')
-+ {
-+ ++p;
-+ break;
-+ }
-+
-+ MBC2WC (p, suffix_begin, mblength, wc, state, convfail);
-+
-+ if (convfail)
-+ mbc[0] = *p++;
-+ else
-+ {
-+ int flag = 0;
-+
-+ if (ignore_case)
-+ {
-+ lo_wc = towlower (wc);
-+ if (lo_wc != wc)
-+ {
-+ flag = 1;
-+ p += mblength;
-+ memset (&state_wc, '\0', sizeof(mbstate_t));
-+ mblength = wcrtomb (mbc, lo_wc, &state_wc);
-+
-+ assert (mblength != (size_t)-1 &&
-+ mblength != (size_t)-2);
-+
-+ mblength = (mblength < 1) ? 1 : mblength;
-+ }
-+ }
-+
-+ if (!flag)
-+ {
-+ for (i = 0; i < mblength; i++)
-+ mbc[i] = *p++;
-+ }
-+ }
-+
-+ for (i = 0; i < mblength; i++)
-+ h = HASH (h, mbc[i]);
-+ }
-+ }
-+ }
-+ else
-+#endif
- /* Hash this line until we find a newline. */
- if (ignore_case)
- switch (ignore_white_space)
---- diffutils-2.8.4/src/side.c.i18n 2002-06-11 02:06:32.000000000 -0400
-+++ diffutils-2.8.4/src/side.c 2002-11-16 18:41:37.000000000 -0500
-@@ -73,11 +73,72 @@
- register size_t out_position = 0;
- register char const *text_pointer = line[0];
- register char const *text_limit = line[1];
-+#if defined HAVE_WCHAR_H && defined HAVE_WCTYPE_H
-+ unsigned char mbc[MB_LEN_MAX];
-+ wchar_t wc;
-+ mbstate_t state, state_bak;
-+ size_t mbc_pos, mblength;
-+ int mbc_loading_flag = 0;
-+ int wc_width;
-+
-+ memset (&state, '\0', sizeof (mbstate_t));
-+#endif
-
- while (text_pointer < text_limit)
- {
- register unsigned char c = *text_pointer++;
-
-+#if defined HAVE_WCHAR_H && defined HAVE_WCTYPE_H
-+ if (MB_CUR_MAX > 1 && mbc_loading_flag)
-+ {
-+ mbc_loading_flag = 0;
-+ state_bak = state;
-+ mbc[mbc_pos++] = c;
-+
-+process_mbc:
-+ mblength = mbrtowc (&wc, mbc, mbc_pos, &state);
-+
-+ switch (mblength)
-+ {
-+ case (size_t)-2: /* Incomplete multibyte character. */
-+ mbc_loading_flag = 1;
-+ state = state_bak;
-+ break;
-+
-+ case (size_t)-1: /* Invalid as a multibyte character. */
-+ if (in_position++ < out_bound)
-+ {
-+ out_position = in_position;
-+ putc (mbc[0], out);
-+ }
-+ memmove (mbc, mbc + 1, --mbc_pos);
-+ if (mbc_pos > 0)
-+ {
-+ mbc[mbc_pos] = '\0';
-+ goto process_mbc;
-+ }
-+ break;
-+
-+ default:
-+ wc_width = wcwidth (wc);
-+ if (wc_width < 1) /* Unprintable multibyte character. */
-+ {
-+ if (in_position <= out_bound)
-+ fprintf (out, "%lc", (wint_t)wc);
-+ }
-+ else /* Printable multibyte character. */
-+ {
-+ in_position += wc_width;
-+ if (in_position <= out_bound)
-+ {
-+ out_position = in_position;
-+ fprintf (out, "%lc", (wint_t)wc);
-+ }
-+ }
-+ }
-+ continue;
-+ }
-+#endif
- switch (c)
- {
- case '\t':
-@@ -135,8 +196,39 @@
- break;
-
- default:
-- if (! ISPRINT (c))
-- goto control_char;
-+#if defined HAVE_WCHAR_H && defined HAVE_WCTYPE_H
-+ if (MB_CUR_MAX > 1)
-+ {
-+ memset (mbc, '\0', MB_LEN_MAX);
-+ mbc_pos = 0;
-+ mbc[mbc_pos++] = c;
-+ state_bak = state;
-+
-+ mblength = mbrtowc (&wc, mbc, mbc_pos, &state);
-+
-+ /* The value of mblength is always less than 2 here. */
-+ switch (mblength)
-+ {
-+ case (size_t)-2: /* Incomplete multibyte character. */
-+ state = state_bak;
-+ mbc_loading_flag = 1;
-+ continue;
-+
-+ case (size_t)-1: /* Invalid as a multibyte character. */
-+ state = state_bak;
-+ break;
-+
-+ default:
-+ if (! iswprint (wc))
-+ goto control_char;
-+ }
-+ }
-+ else
-+#endif
-+ {
-+ if (! ISPRINT (c))
-+ goto control_char;
-+ }
- /* falls through */
- case ' ':
- if (in_position++ < out_bound)
---- diffutils-2.8.4/src/util.c.i18n 2002-06-11 02:06:32.000000000 -0400
-+++ diffutils-2.8.4/src/util.c 2002-11-16 18:41:37.000000000 -0500
-@@ -321,7 +321,7 @@
- Return nonzero if the lines differ. */
-
- bool
--lines_differ (char const *s1, char const *s2)
-+lines_differ_singlebyte (char const *s1, char const *s2)
- {
- register unsigned char const *t1 = (unsigned char const *) s1;
- register unsigned char const *t2 = (unsigned char const *) s2;
-@@ -450,6 +450,293 @@
-
- return 1;
- }
-+
-+#ifdef HANDLE_MULTIBYTE
-+# define MBC2WC(T, END, MBLENGTH, WC, STATE, CONVFAIL) \
-+do \
-+{ \
-+ mbstate_t bak = STATE; \
-+ \
-+ CONVFAIL = 0; \
-+ MBLENGTH = mbrtowc (&WC, T, END - T, &STATE); \
-+ \
-+ switch (MBLENGTH) \
-+ { \
-+ case (size_t)-2: \
-+ case (size_t)-1: \
-+ STATE = bak; \
-+ ++CONVFAIL; \
-+ /* Fall through. */ \
-+ case 0: \
-+ MBLENGTH = 1; \
-+ } \
-+} \
-+while (0)
-+
-+bool
-+lines_differ_multibyte (char const *s1, char const *s2)
-+{
-+ unsigned char const *end1, *end2;
-+ unsigned char c1, c2;
-+ wchar_t wc1, wc2, wc1_bak, wc2_bak;
-+ size_t mblen1, mblen2;
-+ mbstate_t state1, state2, state1_bak, state2_bak;
-+ int convfail1, convfail2, convfail1_bak, convfail2_bak;
-+
-+ unsigned char const *t1 = (unsigned char const *) s1;
-+ unsigned char const *t2 = (unsigned char const *) s2;
-+ unsigned char const *t1_bak, *t2_bak;
-+ size_t column = 0;
-+
-+ if (ignore_white_space == IGNORE_NO_WHITE_SPACE && !ignore_case)
-+ {
-+ while (*t1 != '\n')
-+ if (*t1++ != * t2++)
-+ return 1;
-+ return 0;
-+ }
-+
-+ memset (&state1, '\0', sizeof (mbstate_t));
-+ memset (&state2, '\0', sizeof (mbstate_t));
-+
-+ end1 = s1 + strlen (s1);
-+ end2 = s2 + strlen (s2);
-+
-+ while (1)
-+ {
-+ c1 = *t1;
-+ c2 = *t2;
-+ MBC2WC (t1, end1, mblen1, wc1, state1, convfail1);
-+ MBC2WC (t2, end2, mblen2, wc2, state2, convfail2);
-+
-+ /* Test for exact char equality first, since it's a common case. */
-+ if (convfail1 ^ convfail2)
-+ break;
-+ else if (convfail1 && convfail2 && c1 != c2)
-+ break;
-+ else if (!convfail1 && !convfail2 && wc1 != wc2)
-+ {
-+ switch (ignore_white_space)
-+ {
-+ case IGNORE_ALL_SPACE:
-+ /* For -w, just skip past any white space. */
-+ while (1)
-+ {
-+ if (convfail1)
-+ break;
-+ else if (wc1 == L'\n' || !iswspace (wc1))
-+ break;
-+
-+ t1 += mblen1;
-+ c1 = *t1;
-+ MBC2WC (t1, end1, mblen1, wc1, state1, convfail1);
-+ }
-+
-+ while (1)
-+ {
-+ if (convfail2)
-+ break;
-+ else if (wc2 == L'\n' || !iswspace (wc2))
-+ break;
-+
-+ t2 += mblen2;
-+ c2 = *t2;
-+ MBC2WC (t2, end2, mblen2, wc2, state2, convfail2);
-+ }
-+ t1 += mblen1;
-+ t2 += mblen2;
-+ break;
-+
-+ case IGNORE_SPACE_CHANGE:
-+ /* For -b, advance past any sequence of white space in
-+ line 1 and consider it just one space, or nothing at
-+ all if it is at the end of the line. */
-+ if (wc1 != L'\n' && iswspace (wc1))
-+ {
-+ size_t mblen_bak;
-+ mbstate_t state_bak;
-+
-+ do
-+ {
-+ t1 += mblen1;
-+ mblen_bak = mblen1;
-+ state_bak = state1;
-+ MBC2WC (t1, end1, mblen1, wc1, state1, convfail1);
-+ }
-+ while (!convfail1 && (wc1 != L'\n' && iswspace (wc1)));
-+
-+ state1 = state_bak;
-+ mblen1 = mblen_bak;
-+ t1 -= mblen1;
-+ convfail1 = 0;
-+ wc1 = L' ';
-+ }
-+
-+ /* Likewise for line 2. */
-+ if (wc2 != L'\n' && iswspace (wc2))
-+ {
-+ size_t mblen_bak;
-+ mbstate_t state_bak;
-+
-+ do
-+ {
-+ t2 += mblen2;
-+ mblen_bak = mblen2;
-+ state_bak = state2;
-+ MBC2WC (t2, end2, mblen2, wc2, state2, convfail2);
-+ }
-+ while (!convfail2 && (wc2 != L'\n' && iswspace (wc2)));
-+
-+ state2 = state_bak;
-+ mblen2 = mblen_bak;
-+ t2 -= mblen2;
-+ convfail2 = 0;
-+ wc2 = L' ';
-+ }
-+
-+ if (wc1 != wc2)
-+ {
-+ if (wc2 == L' ' && wc1 != L'\n' &&
-+ t1 > (unsigned char const *)s1 &&
-+ !convfail1_bak && iswspace (wc1_bak))
-+ {
-+ t1 = t1_bak;
-+ wc1 = wc1_bak;
-+ state1 = state1_bak;
-+ convfail1 = convfail1_bak;
-+ continue;
-+ }
-+ if (wc1 == L' ' && wc2 != L'\n'
-+ && t2 > (unsigned char const *)s2
-+ && !convfail2_bak && iswspace (wc2_bak))
-+ {
-+ t2 = t2_bak;
-+ wc2 = wc2_bak;
-+ state2 = state2_bak;
-+ convfail2 = convfail2_bak;
-+ continue;
-+ }
-+ }
-+
-+ t1_bak = t1; t2_bak = t2;
-+ wc1_bak = wc1; wc2_bak = wc2;
-+ state1_bak = state1; state2_bak = state2;
-+ convfail1_bak = convfail1; convfail2_bak = convfail2;
-+
-+ if (wc1 == L'\n')
-+ wc1 = L' ';
-+ else
-+ t1 += mblen1;
-+
-+ if (wc2 == L'\n')
-+ wc2 = L' ';
-+ else
-+ t2 += mblen2;
-+
-+ break;
-+
-+ case IGNORE_TAB_EXPANSION:
-+ if ((wc1 == L' ' && wc2 == L'\t')
-+ || (wc1 == L'\t' && wc2 == L' '))
-+ {
-+ size_t column2 = column;
-+
-+ while (1)
-+ {
-+ if (convfail1)
-+ {
-+ ++t1;
-+ break;
-+ }
-+ else if (wc1 == L' ')
-+ column++;
-+ else if (wc1 == L'\t')
-+ column += TAB_WIDTH - column % TAB_WIDTH;
-+ else
-+ {
-+ t1 += mblen1;
-+ break;
-+ }
-+
-+ t1 += mblen1;
-+ c1 = *t1;
-+ MBC2WC (t1, end1, mblen1, wc1, state1, convfail1);
-+ }
-+
-+ while (1)
-+ {
-+ if (convfail2)
-+ {
-+ ++t2;
-+ break;
-+ }
-+ else if (wc2 == L' ')
-+ column2++;
-+ else if (wc2 == L'\t')
-+ column2 += TAB_WIDTH - column2 % TAB_WIDTH;
-+ else
-+ {
-+ t2 += mblen2;
-+ break;
-+ }
-+
-+ t2 += mblen2;
-+ c2 = *t2;
-+ MBC2WC (t2, end2, mblen2, wc2, state2, convfail2);
-+ }
-+
-+ if (column != column2)
-+ return 1;
-+ }
-+ else
-+ {
-+ t1 += mblen1;
-+ t2 += mblen2;
-+ }
-+ break;
-+
-+ case IGNORE_NO_WHITE_SPACE:
-+ t1 += mblen1;
-+ t2 += mblen2;
-+ break;
-+ }
-+
-+ /* Lowercase all letters if -i is specified. */
-+ if (ignore_case)
-+ {
-+ if (!convfail1)
-+ wc1 = towlower (wc1);
-+ if (!convfail2)
-+ wc2 = towlower (wc2);
-+ }
-+
-+ if (convfail1 ^ convfail2)
-+ break;
-+ else if (convfail1 && convfail2 && c1 != c2)
-+ break;
-+ else if (!convfail1 && !convfail2 && wc1 != wc2)
-+ break;
-+ }
-+ else
-+ {
-+ t1_bak = t1; t2_bak = t2;
-+ wc1_bak = wc1; wc2_bak = wc2;
-+ state1_bak = state1; state2_bak = state2;
-+ convfail1_bak = convfail1; convfail2_bak = convfail2;
-+
-+ t1 += mblen1; t2 += mblen2;
-+ }
-+
-+ if (!convfail1 && wc1 == L'\n')
-+ return 0;
-+
-+ column += convfail1 ? 1 :
-+ (wc1 == L'\t') ? TAB_WIDTH - column % TAB_WIDTH : wcwidth (wc1);
-+ }
-+
-+ return 1;
-+}
-+#endif
- \f
- /* Find the consecutive changes at the start of the script START.
- Return the last link before the first gap. */
+++ /dev/null
-From 174387405e98cd94c627832ae23abcb9be7e5623 Mon Sep 17 00:00:00 2001
-From: Jean Delvare <jdelvare@suse.de>
-Date: Wed, 31 Jan 2018 18:52:47 +0100
-Subject: dmidecode: Fix firmware version of TPM device
-
-Both the operator (detected by clang, reported by Xorg) and the mask
-for the minor firmware version field of TPM devices were wrong.
-
-Signed-off-by: Jean Delvare <jdelvare@suse.de>
-Fixes: 48a8132058a0 ("dmidecode: Add support for structure type 43 (TPM Device)")
----
- dmidecode.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/dmidecode.c b/dmidecode.c
-index 87faaa9..a593170 100644
---- a/dmidecode.c
-+++ b/dmidecode.c
-@@ -4511,7 +4511,7 @@ static void dmi_decode(const struct dmi_header *h, u16 ver)
- case 0x02:
- printf("\tFirmware Revision: %u.%u\n",
- DWORD(data + 0x0A) >> 16,
-- DWORD(data + 0x0A) && 0xFF);
-+ DWORD(data + 0x0A) & 0xFFFF);
- /*
- * We skip the next 4 bytes, as their
- * format is not standardized and their
---
-cgit v1.0-41-gc330
-
--- /dev/null
+From 11e134e54d15e67a64c39a623f492a28df922517 Mon Sep 17 00:00:00 2001
+From: Jean Delvare <jdelvare@suse.de>
+Date: Tue, 19 Jan 2021 16:26:01 +0100
+Subject: dmidecode: Fix crash with -u option
+
+A segmentation fault was reported with option -u. Turns out to be a
+stupid thinko where the buffer offset was reset at the wrong loop
+depth.
+
+Reported-by: Jerry Hoemann <jerry.hoemann@hpe.com>
+Fixes: da06888d08b9 ("dmidecode: Use the print helpers in dump mode too")
+Signed-off-by: Jean Delvare <jdelvare@suse.de>
+---
+ dmidecode.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/dmidecode.c b/dmidecode.c
+index 572cb1a..69ea0e8 100644
+--- a/dmidecode.c
++++ b/dmidecode.c
+@@ -248,9 +248,9 @@ static void dmi_dump(const struct dmi_header *h)
+ {
+ int j, l = strlen(s) + 1;
+
+- off = 0;
+ for (row = 0; row < ((l - 1) >> 4) + 1; row++)
+ {
++ off = 0;
+ for (j = 0; j < 16 && j < l - (row << 4); j++)
+ off += sprintf(raw_data + off,
+ j ? " %02X" : "%02X",
+--
+cgit v1.2.1
+
--- /dev/null
+From 1117390ccd9cea139638db6f460bb6de70e28f94 Mon Sep 17 00:00:00 2001
+From: Tianjia Zhang <tianjia.zhang@linux.alibaba.com>
+Date: Tue, 5 Jan 2021 10:36:29 +0100
+Subject: dmidecode: Fix the condition error in ascii_filter
+
+The normal printable ASCII range is 32 to 127 (not included),
+so fix the error in this if condition.
+
+Signed-off-by: Tianjia Zhang <tianjia.zhang@linux.alibaba.com>
+Signed-off-by: Jean Delvare <jdelvare@suse.de>
+---
+ dmidecode.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/dmidecode.c b/dmidecode.c
+index 27d5494..864a193 100644
+--- a/dmidecode.c
++++ b/dmidecode.c
+@@ -116,7 +116,7 @@ static void ascii_filter(char *bp, size_t len)
+ size_t i;
+
+ for (i = 0; i < len; i++)
+- if (bp[i] < 32 || bp[i] == 127)
++ if (bp[i] < 32 || bp[i] >= 127)
+ bp[i] = '.';
+ }
+
+--
+cgit v1.2.1
+
+++ /dev/null
-diff -Naur dpf_alt/python/Makefile dpf/python/Makefile
---- dpf_alt/python/Makefile 2011-04-18 17:14:12.000000000 +0200
-+++ dpf/python/Makefile 2011-08-14 13:22:46.129748815 +0200
-@@ -32,7 +32,7 @@
- endif
-
- ifeq (Linux, $(PLATFORM))
-- PYTHON=$(shell pyversions -d)
-+ PYTHON=python2.7
- include $(DEVLIB)/unixdll.mk
- DLLDEPS = $(CLIENTLIB) -l$(PYTHON)
- PYTHONINCLUDES = -I/usr/include/$(PYTHON)
--- /dev/null
+From 1d70d3cbf7e1fe1e1f0760e9a79e520e416519fe Mon Sep 17 00:00:00 2001
+From: Michael Tremer <michael.tremer@ipfire.org>
+Date: Tue, 18 May 2021 13:40:51 +0000
+Subject: [PATCH] python: Fix linking against Python 3.8
+
+Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
+---
+ configure.ac | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/configure.ac b/configure.ac
+index ede2cb6..6efe73c 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -91,7 +91,7 @@ AC_SUBST([OUR_LDFLAGS], $with_ldflags)
+
+ # Python
+ AM_PATH_PYTHON([3.7])
+-PKG_CHECK_MODULES([PYTHON_DEVEL], [python-${PYTHON_VERSION}])
++PKG_CHECK_MODULES([PYTHON_DEVEL], [python-${PYTHON_VERSION}-embed python-${PYTHON_VERSION}])
+
+ AC_CONFIG_FILES([
+ Makefile
+--
+2.20.1
+
+++ /dev/null
-From e2b6025dea547bf8de4bd2b8056f2a8227c635f5 Mon Sep 17 00:00:00 2001
-From: Michael Tremer <michael.tremer@ipfire.org>
-Date: Wed, 13 Jun 2018 20:56:41 +0200
-Subject: [PATCH 1/2] Don't crash when /proc/cpuinfo doesn't have any
- information
-
-Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
----
- src/fireinfo/cpu.py | 9 +++++----
- 1 file changed, 5 insertions(+), 4 deletions(-)
-
-diff --git a/src/fireinfo/cpu.py b/src/fireinfo/cpu.py
-index 541575a..dc76caf 100644
---- a/src/fireinfo/cpu.py
-+++ b/src/fireinfo/cpu.py
-@@ -108,10 +108,11 @@ class CPU(object):
- """
- Return the model string of this CPU.
- """
-- try:
-- return self.__cpuinfo["model_name"]
-- except KeyError:
-- return self.__cpuinfo["Processor"]
-+ for key in ("model_name", "Processor"):
-+ try:
-+ return self.__cpuinfo[key]
-+ except KeyError:
-+ pass
-
- @property
- def vendor(self):
---
-2.12.2
-
+++ /dev/null
-From d1f6789178e141664895332af79dbe7aa9e5ab68 Mon Sep 17 00:00:00 2001
-From: Michael Tremer <michael.tremer@ipfire.org>
-Date: Wed, 13 Jun 2018 20:58:42 +0200
-Subject: [PATCH 2/2] Ignore any systems with ID "Default string"
-
-Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
----
- src/fireinfo/system.py | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/src/fireinfo/system.py b/src/fireinfo/system.py
-index e3295af..73c3882 100644
---- a/src/fireinfo/system.py
-+++ b/src/fireinfo/system.py
-@@ -42,6 +42,7 @@ INVALID_ID_STRINGS = (
- "N/A", "n/a",
- "12345", "54321", "202020",
- "Chassis", "chassis",
-+ "Default string",
- "EVAL",
- "Not Applicable",
- "None", "empty",
---
-2.12.2
-
+++ /dev/null
-From 74c5e2adc61548900e256c3e58a0a63f5b3c2a4f Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Peter=20M=C3=BCller?= <peter.mueller@link38.eu>
-Date: Tue, 4 Dec 2018 18:13:15 +0100
-Subject: [PATCH] fireinfo: support upstream proxy with authentication
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-Fireinfo could not send its profile to https://fireinfo.ipfire.org/
-if the machine is behind an upstream proxy which requires username
-and password. This is fixed by tweaking urllib2's opening handler.
-
-To apply this on existing installations, the fireinfo package
-needs to be shipped during an update.
-
-The third version of this patch fixes bogus indention, assembles
-proxy authentication string more readable and preserves HTTP
-proxy handler.
-
-Fixes #11905
-
-Signed-off-by: Peter Müller <peter.mueller@link38.eu>
-Cc: Michael Tremer <michael.tremer@ipfire.org>
-Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
----
- src/sendprofile | 14 ++++++++++++--
- 1 file changed, 12 insertions(+), 2 deletions(-)
- mode change 100644 => 100755 src/sendprofile
-
-diff --git a/src/sendprofile b/src/sendprofile
-old mode 100644
-new mode 100755
-index b836567..3ce68b9
---- a/src/sendprofile
-+++ b/src/sendprofile
-@@ -73,10 +73,20 @@ def send_profile(profile):
- request.add_header("User-Agent", "fireinfo/%s" % fireinfo.__version__)
-
- # Set upstream proxy if we have one.
-- # XXX this cannot handle authentication
- proxy = get_upstream_proxy()
-+
- if proxy["host"]:
-- request.set_proxy(proxy["host"], "http")
-+ # handling upstream proxies with authentication is more tricky...
-+ if proxy["user"] and proxy["pass"]:
-+ prx_auth_string = "http://%s:%s@%s/" % (proxy["user"], proxy["pass"], proxy["host"])
-+
-+ proxy_handler = urllib2.ProxyHandler({'http': prx_auth_string, 'https': prx_auth_string})
-+ auth = urllib2.HTTPBasicAuthHandler()
-+ opener = urllib2.build_opener(proxy_handler, auth, urllib2.HTTPHandler)
-+ urllib2.install_opener(opener)
-+ else:
-+ request.set_proxy(proxy["host"], "http")
-+ request.set_proxy(proxy["host"], "https")
-
- try:
- urllib2.urlopen(request, timeout=60)
---
-2.6.3
-
+++ /dev/null
-From 1831628c0630ae96a43586b2a25ca51cbdba3e53 Mon Sep 17 00:00:00 2001
-From: Paul Eggert <address@hidden>
-Date: Mon, 5 Mar 2018 10:56:29 -0800
-Subject: [PATCH] fflush: adjust to glibc 2.28 libio.h removal
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-Problem reported by Daniel P. Berrangé in:
-https://lists.gnu.org/r/bug-gnulib/2018-03/msg00000.html
-* lib/fbufmode.c (fbufmode):
-* lib/fflush.c (clear_ungetc_buffer_preserving_position)
-(disable_seek_optimization, rpl_fflush):
-* lib/fpending.c (__fpending):
-* lib/fpurge.c (fpurge):
-* lib/freadable.c (freadable):
-* lib/freadahead.c (freadahead):
-* lib/freading.c (freading):
-* lib/freadptr.c (freadptr):
-* lib/freadseek.c (freadptrinc):
-* lib/fseeko.c (fseeko):
-* lib/fseterr.c (fseterr):
-* lib/fwritable.c (fwritable):
-* lib/fwriting.c (fwriting):
-Check _IO_EOF_SEEN instead of _IO_ftrylockfile.
-* lib/stdio-impl.h (_IO_IN_BACKUP) [_IO_EOF_SEEN]:
-Define if not already defined.
----
- ChangeLog | 23 +++++++++++++++++++++++
- lib/fbufmode.c | 2 +-
- lib/fflush.c | 6 +++---
- lib/fpending.c | 2 +-
- lib/fpurge.c | 2 +-
- lib/freadable.c | 2 +-
- lib/freadahead.c | 2 +-
- lib/freading.c | 2 +-
- lib/freadptr.c | 2 +-
- lib/freadseek.c | 2 +-
- lib/fseeko.c | 4 ++--
- lib/fseterr.c | 2 +-
- lib/fwritable.c | 2 +-
- lib/fwriting.c | 2 +-
- lib/stdio-impl.h | 6 ++++++
- 15 files changed, 45 insertions(+), 16 deletions(-)
-
-diff --git a/ChangeLog b/ChangeLog
-index 667f91663..beb835670 100644
---- a/ChangeLog
-+++ b/ChangeLog
-@@ -1,3 +1,26 @@
-+2018-03-05 Paul Eggert <address@hidden>
-+
-+ fflush: adjust to glibc 2.28 libio.h removal
-+ Problem reported by Daniel P. Berrangé in:
-+ https://lists.gnu.org/r/bug-gnulib/2018-03/msg00000.html
-+ * lib/fbufmode.c (fbufmode):
-+ * lib/fflush.c (clear_ungetc_buffer_preserving_position)
-+ (disable_seek_optimization, rpl_fflush):
-+ * lib/fpending.c (__fpending):
-+ * lib/fpurge.c (fpurge):
-+ * lib/freadable.c (freadable):
-+ * lib/freadahead.c (freadahead):
-+ * lib/freading.c (freading):
-+ * lib/freadptr.c (freadptr):
-+ * lib/freadseek.c (freadptrinc):
-+ * lib/fseeko.c (fseeko):
-+ * lib/fseterr.c (fseterr):
-+ * lib/fwritable.c (fwritable):
-+ * lib/fwriting.c (fwriting):
-+ Check _IO_EOF_SEEN instead of _IO_ftrylockfile.
-+ * lib/stdio-impl.h (_IO_IN_BACKUP) [_IO_EOF_SEEN]:
-+ Define if not already defined.
-+
- 2018-01-07 Jim Meyering <meyering@fb.com>
-
- version 1.9
- * NEWS: Record release date.
-diff --git a/lib/fflush.c b/lib/fflush.c
-index 983ade0ff..a6edfa105 100644
---- a/lib/fflush.c
-+++ b/lib/fflush.c
-@@ -33,7 +33,7 @@
- #undef fflush
-
-
--#if defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
-+#if defined _IO_EOF_SEEN || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
-
- /* Clear the stream's ungetc buffer, preserving the value of ftello (fp). */
- static void
-@@ -72,7 +72,7 @@ clear_ungetc_buffer (FILE *fp)
-
- #endif
-
--#if ! (defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */)
-+#if ! (defined _IO_EOF_SEEN || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */)
-
- # if (defined __sferror || defined __DragonFly__ || defined __ANDROID__) && defined __SNPT
- /* FreeBSD, NetBSD, OpenBSD, DragonFly, Mac OS X, Cygwin, Minix 3, Android */
-@@ -148,7 +148,7 @@ rpl_fflush (FILE *stream)
- if (stream == NULL || ! freading (stream))
- return fflush (stream);
-
--#if defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
-+#if defined _IO_EOF_SEEN || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
-
- clear_ungetc_buffer_preserving_position (stream);
-
-diff --git a/lib/fpurge.c b/lib/fpurge.c
-index b1d417c7a..3aedcc373 100644
---- a/lib/fpurge.c
-+++ b/lib/fpurge.c
-@@ -62,7 +62,7 @@ fpurge (FILE *fp)
- /* Most systems provide FILE as a struct and the necessary bitmask in
- <stdio.h>, because they need it for implementing getc() and putc() as
- fast macros. */
--# if defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
-+# if defined _IO_EOF_SEEN || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
- fp->_IO_read_end = fp->_IO_read_ptr;
- fp->_IO_write_ptr = fp->_IO_write_base;
- /* Avoid memory leak when there is an active ungetc buffer. */
-diff --git a/lib/freading.c b/lib/freading.c
-index 73c28acdd..c24d0c88a 100644
---- a/lib/freading.c
-+++ b/lib/freading.c
-@@ -31,7 +31,7 @@ freading (FILE *fp)
- /* Most systems provide FILE as a struct and the necessary bitmask in
- <stdio.h>, because they need it for implementing getc() and putc() as
- fast macros. */
--# if defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
-+# if defined _IO_EOF_SEEN || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
- return ((fp->_flags & _IO_NO_WRITES) != 0
- || ((fp->_flags & (_IO_NO_READS | _IO_CURRENTLY_PUTTING)) == 0
- && fp->_IO_read_base != NULL));
-diff --git a/lib/fseeko.c b/lib/fseeko.c
-index 0101ab55f..193f4e8ce 100644
---- a/lib/fseeko.c
-+++ b/lib/fseeko.c
-@@ -47,7 +47,7 @@ fseeko (FILE *fp, off_t offset, int whence)
- #endif
-
- /* These tests are based on fpurge.c. */
--#if defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
-+#if defined _IO_EOF_SEEN || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
- if (fp->_IO_read_end == fp->_IO_read_ptr
- && fp->_IO_write_ptr == fp->_IO_write_base
- && fp->_IO_save_base == NULL)
-@@ -123,7 +123,7 @@ fseeko (FILE *fp, off_t offset, int whence)
- return -1;
- }
-
--#if defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
-+#if defined _IO_EOF_SEEN || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
- fp->_flags &= ~_IO_EOF_SEEN;
- fp->_offset = pos;
- #elif defined __sferror || defined __DragonFly__ || defined __ANDROID__
-diff --git a/lib/fseterr.c b/lib/fseterr.c
-index 82649c3ac..adb637256 100644
---- a/lib/fseterr.c
-+++ b/lib/fseterr.c
-@@ -29,7 +29,7 @@ fseterr (FILE *fp)
- /* Most systems provide FILE as a struct and the necessary bitmask in
- <stdio.h>, because they need it for implementing getc() and putc() as
- fast macros. */
--#if defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
-+#if defined _IO_EOF_SEEN || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
- fp->_flags |= _IO_ERR_SEEN;
- #elif defined __sferror || defined __DragonFly__ || defined __ANDROID__
- /* FreeBSD, NetBSD, OpenBSD, DragonFly, Mac OS X, Cygwin, Minix 3, Android */
-diff --git a/lib/stdio-impl.h b/lib/stdio-impl.h
-index 78d896e9f..05c5752a2 100644
---- a/lib/stdio-impl.h
-+++ b/lib/stdio-impl.h
-@@ -18,6 +18,12 @@
- the same implementation of stdio extension API, except that some fields
- have different naming conventions, or their access requires some casts. */
-
-+/* Glibc 2.28 made _IO_IN_BACKUP private. For now, work around this
-+ problem by defining it ourselves. FIXME: Do not rely on glibc
-+ internals. */
-+#if !defined _IO_IN_BACKUP && defined _IO_EOF_SEEN
-+# define _IO_IN_BACKUP 0x100
-+#endif
-
- /* BSD stdio derived implementations. */
-
---
-2.14.3
-
+++ /dev/null
-Don't read phy_idle_errors at dev_get_stats() because this can
-hung the userspace.
-
-https://sourceforge.net/p/e1000/bugs/500/
-Why this is set to wont-fix?
-
-I think it is better when phy errors are not reportet in the stats
-than a random hanging of the whole sytem.
-
-diff -Naur igb-5.3.4.4.org/src/igb_main.c igb-5.3.4.4/src/igb_main.c
---- igb-5.3.4.4.org/src/igb_main.c 2016-02-26 01:48:39.000000000 +0100
-+++ igb-5.3.4.4/src/igb_main.c 2016-03-31 09:22:10.671794282 +0200
-@@ -6032,14 +6032,14 @@
-
- /* Tx Dropped needs to be maintained elsewhere */
-
-- /* Phy Stats */
-- if (hw->phy.media_type == e1000_media_type_copper) {
-- if ((adapter->link_speed == SPEED_1000) &&
-- (!e1000_read_phy_reg(hw, PHY_1000T_STATUS, &phy_tmp))) {
-- phy_tmp &= PHY_IDLE_ERROR_COUNT_MASK;
-- adapter->phy_stats.idle_errors += phy_tmp;
-- }
-- }
-+// /* Phy Stats */
-+// if (hw->phy.media_type == e1000_media_type_copper) {
-+// if ((adapter->link_speed == SPEED_1000) &&
-+// (!e1000_read_phy_reg(hw, PHY_1000T_STATUS, &phy_tmp))) {
-+// phy_tmp &= PHY_IDLE_ERROR_COUNT_MASK;
-+// adapter->phy_stats.idle_errors += phy_tmp;
-+// }
-+// }
-
- /* Management Stats */
- adapter->stats.mgptc += E1000_READ_REG(hw, E1000_MGTPTC);
+++ /dev/null
-diff -Naur iptables-1.4.6.org/extensions/.ipp2p-test iptables-1.4.6/extensions/.ipp2p-test
---- iptables-1.4.6.org/extensions/.ipp2p-test 1970-01-01 01:00:00.000000000 +0100
-+++ iptables-1.4.6/extensions/.ipp2p-test 2010-02-13 20:02:52.000000000 +0100
-@@ -0,0 +1,2 @@
-+#! /bin/sh
-+[ -f $KERNEL_DIR/include/linux/netfilter_ipv4/ipt_ipp2p.h ] && echo ipp2p
-diff -Naur iptables-1.4.6.org/extensions/libipt_ipp2p.c iptables-1.4.6/extensions/libipt_ipp2p.c
---- iptables-1.4.6.org/extensions/libipt_ipp2p.c 1970-01-01 01:00:00.000000000 +0100
-+++ iptables-1.4.6/extensions/libipt_ipp2p.c 2010-02-13 20:02:52.000000000 +0100
-@@ -0,0 +1,424 @@
-+#include <stdio.h>
-+#include <netdb.h>
-+#include <string.h>
-+#include <stdlib.h>
-+#include <getopt.h>
-+#include <ctype.h>
-+
-+#include <iptables.h>
-+
-+#include <linux/netfilter_ipv4/ipt_ipp2p.h>
-+
-+#ifndef XTABLES_VERSION
-+#define XTABLES_VERSION IPTABLES_VERSION
-+#endif
-+
-+#ifdef IPT_LIB_DIR
-+#define xtables_target iptables_target
-+#define xtables_register_target register_target
-+#endif
-+
-+static void
-+help(void)
-+{
-+ printf(
-+ "IPP2P v%s options:\n"
-+ " --ipp2p Grab all known p2p packets\n"
-+ " --edk [TCP&UDP] All known eDonkey/eMule/Overnet packets\n"
-+ " --dc [TCP] All known Direct Connect packets\n"
-+ " --kazaa [TCP&UDP] All known KaZaA packets\n"
-+ " --gnu [TCP&UDP] All known Gnutella packets\n"
-+ " --bit [TCP&UDP] All known BitTorrent packets\n"
-+ " --apple [TCP] All known AppleJuice packets\n"
-+ " --winmx [TCP] All known WinMX\n"
-+ " --soul [TCP] All known SoulSeek\n"
-+ " --ares [TCP] All known Ares\n\n"
-+ " EXPERIMENTAL protocols (please send feedback to: ipp2p@ipp2p.org) :\n"
-+ " --mute [TCP] All known Mute packets\n"
-+ " --waste [TCP] All known Waste packets\n"
-+ " --xdcc [TCP] All known XDCC packets (only xdcc login)\n\n"
-+ " DEBUG SUPPPORT, use only if you know why\n"
-+ " --debug Generate kernel debug output, THIS WILL SLOW DOWN THE FILTER\n"
-+ "\nNote that the follwing options will have the same meaning:\n"
-+ " '--ipp2p' is equal to '--edk --dc --kazaa --gnu --bit --apple --winmx --soul --ares'\n"
-+ "\nIPP2P was intended for TCP only. Due to increasing usage of UDP we needed to change this.\n"
-+ "You can now use -p udp to search UDP packets only or without -p switch to search UDP and TCP packets.\n"
-+ "\nSee README included with this package for more details or visit http://www.ipp2p.org\n"
-+ "\nExamples:\n"
-+ " iptables -A FORWARD -m ipp2p --ipp2p -j MARK --set-mark 0x01\n"
-+ " iptables -A FORWARD -p udp -m ipp2p --kazaa --bit -j DROP\n"
-+ " iptables -A FORWARD -p tcp -m ipp2p --edk --soul -j DROP\n\n"
-+ , IPP2P_VERSION);
-+}
-+
-+static struct option opts[] = {
-+ { "ipp2p", 0, 0, '1' },
-+ { "edk", 0, 0, '2' },
-+ { "dc", 0, 0, '7' },
-+ { "gnu", 0, 0, '9' },
-+ { "kazaa", 0, 0, 'a' },
-+ { "bit", 0, 0, 'b' },
-+ { "apple", 0, 0, 'c' },
-+ { "soul", 0, 0, 'd' },
-+ { "winmx", 0, 0, 'e' },
-+ { "ares", 0, 0, 'f' },
-+ { "mute", 0, 0, 'g' },
-+ { "waste", 0, 0, 'h' },
-+ { "xdcc", 0, 0, 'i' },
-+ { "debug", 0, 0, 'j' },
-+ {0}
-+};
-+
-+
-+static void
-+#ifdef _XTABLES_H
-+init(struct xt_entry_match *m)
-+#else
-+init(struct ipt_entry_match *t, unsigned int *nfcache)
-+#endif
-+{
-+ struct ipt_p2p_info *info = (struct ipt_p2p_info *)m->data;
-+
-+#ifndef _XTABLES_H
-+ *nfcache |= NFC_UNKNOWN;
-+#endif
-+
-+ /*init the module with default values*/
-+ info->cmd = 0;
-+ info->debug = 0;
-+
-+}
-+
-+
-+static int
-+parse(int c, char **argv, int invert, unsigned int *flags,
-+#ifdef _XTABLES_H
-+ const void *entry, struct xt_entry_match **match)
-+#else
-+ const struct ipt_entry *entry, unsigned int *nfcache, struct ipt_entry_match **match)
-+#endif
-+{
-+ struct ipt_p2p_info *info = (struct ipt_p2p_info *)(*match)->data;
-+
-+ switch (c) {
-+ case '1': /*cmd: ipp2p*/
-+ if ((*flags & SHORT_HAND_IPP2P) == SHORT_HAND_IPP2P)
-+ xtables_error(PARAMETER_PROBLEM,
-+ "ipp2p: `--ipp2p' may only be "
-+ "specified once!");
-+
-+/* if ((*flags & SHORT_HAND_DATA) == SHORT_HAND_DATA)
-+ xtables_error(PARAMETER_PROBLEM,
-+ "ipp2p: `--ipp2p-data' may only be "
-+ "specified alone!");
-+*/
-+
-+ if ((*flags) != 0)
-+ xtables_error(PARAMETER_PROBLEM,
-+ "ipp2p: `--ipp2p' may only be "
-+ "specified alone!");
-+ if (invert) xtables_error(PARAMETER_PROBLEM, "ipp2p: invert [!] is not allowed!");
-+ *flags += SHORT_HAND_IPP2P;
-+ info->cmd = *flags;
-+ break;
-+
-+ case '2': /*cmd: edk*/
-+ if ((*flags & IPP2P_EDK) == IPP2P_EDK)
-+ xtables_error(PARAMETER_PROBLEM,
-+ "ipp2p: `--edk' may only be "
-+ "specified once");
-+ if ((*flags & SHORT_HAND_IPP2P) == SHORT_HAND_IPP2P)
-+ xtables_error(PARAMETER_PROBLEM,
-+ "ipp2p: `--ipp2p' may only be "
-+ "specified alone!");
-+/* if ((*flags & SHORT_HAND_DATA) == SHORT_HAND_DATA)
-+ xtables_error(PARAMETER_PROBLEM,
-+ "ipp2p: `--ipp2p-data' may only be "
-+ "specified alone!");*/
-+ if ((*flags & IPP2P_DATA_EDK) == IPP2P_DATA_EDK)
-+ xtables_error(PARAMETER_PROBLEM,
-+ "ipp2p: use `--edk' OR `--edk-data' but not both of them!");
-+ if (invert) xtables_error(PARAMETER_PROBLEM, "ipp2p: invert [!] is not allowed!");
-+ *flags += IPP2P_EDK;
-+ info->cmd = *flags;
-+ break;
-+
-+
-+ case '7': /*cmd: dc*/
-+ if ((*flags & IPP2P_DC) == IPP2P_DC)
-+ xtables_error(PARAMETER_PROBLEM,
-+ "ipp2p: `--dc' may only be "
-+ "specified once!");
-+ if ((*flags & SHORT_HAND_IPP2P) == SHORT_HAND_IPP2P)
-+ xtables_error(PARAMETER_PROBLEM,
-+ "ipp2p: `--ipp2p' may only be "
-+ "specified alone!");
-+/* if ((*flags & SHORT_HAND_DATA) == SHORT_HAND_DATA)
-+ xtables_error(PARAMETER_PROBLEM,
-+ "ipp2p: `--ipp2p-data' may only be "
-+ "specified alone!");*/
-+ if ((*flags & IPP2P_DATA_DC) == IPP2P_DATA_DC)
-+ xtables_error(PARAMETER_PROBLEM,
-+ "ipp2p: use `--dc' OR `--dc-data' but not both of them!");
-+ if (invert) xtables_error(PARAMETER_PROBLEM, "ipp2p: invert [!] is not allowed!");
-+ *flags += IPP2P_DC;
-+ info->cmd = *flags;
-+ break;
-+
-+
-+ case '9': /*cmd: gnu*/
-+ if ((*flags & IPP2P_GNU) == IPP2P_GNU)
-+ xtables_error(PARAMETER_PROBLEM,
-+ "ipp2p: `--gnu' may only be "
-+ "specified once!");
-+/* if ((*flags & SHORT_HAND_DATA) == SHORT_HAND_DATA)
-+ xtables_error(PARAMETER_PROBLEM,
-+ "ipp2p: `--ipp2p-data' may only be "
-+ "specified alone!");*/
-+ if ((*flags & SHORT_HAND_IPP2P) == SHORT_HAND_IPP2P)
-+ xtables_error(PARAMETER_PROBLEM,
-+ "ipp2p: `--ipp2p' may only be "
-+ "specified alone!");
-+ if ((*flags & IPP2P_DATA_GNU) == IPP2P_DATA_GNU)
-+ xtables_error(PARAMETER_PROBLEM,
-+ "ipp2p: use `--gnu' OR `--gnu-data' but not both of them!");
-+ if (invert) xtables_error(PARAMETER_PROBLEM, "ipp2p: invert [!] is not allowed!");
-+ *flags += IPP2P_GNU;
-+ info->cmd = *flags;
-+ break;
-+
-+ case 'a': /*cmd: kazaa*/
-+ if ((*flags & IPP2P_KAZAA) == IPP2P_KAZAA)
-+ xtables_error(PARAMETER_PROBLEM,
-+ "ipp2p: `--kazaa' may only be "
-+ "specified once!");
-+/* if ((*flags & SHORT_HAND_DATA) == SHORT_HAND_DATA)
-+ xtables_error(PARAMETER_PROBLEM,
-+ "ipp2p: `--ipp2p-data' may only be "
-+ "specified alone!");*/
-+ if ((*flags & SHORT_HAND_IPP2P) == SHORT_HAND_IPP2P)
-+ xtables_error(PARAMETER_PROBLEM,
-+ "ipp2p: `--ipp2p' may only be "
-+ "specified alone!");
-+ if ((*flags & IPP2P_DATA_KAZAA) == IPP2P_DATA_KAZAA)
-+ xtables_error(PARAMETER_PROBLEM,
-+ "ipp2p: use `--kazaa' OR `--kazaa-data' but not both of them!");
-+ if (invert) xtables_error(PARAMETER_PROBLEM, "ipp2p: invert [!] is not allowed!");
-+ *flags += IPP2P_KAZAA;
-+ info->cmd = *flags;
-+ break;
-+
-+ case 'b': /*cmd: bit*/
-+ if ((*flags & IPP2P_BIT) == IPP2P_BIT)
-+ xtables_error(PARAMETER_PROBLEM,
-+ "ipp2p: `--bit' may only be "
-+ "specified once!");
-+ if ((*flags & SHORT_HAND_IPP2P) == SHORT_HAND_IPP2P)
-+ xtables_error(PARAMETER_PROBLEM,
-+ "ipp2p: `--ipp2p' may only be "
-+ "specified alone!");
-+ if (invert) xtables_error(PARAMETER_PROBLEM, "ipp2p: invert [!] is not allowed!");
-+ *flags += IPP2P_BIT;
-+ info->cmd = *flags;
-+ break;
-+
-+ case 'c': /*cmd: apple*/
-+ if ((*flags & IPP2P_APPLE) == IPP2P_APPLE)
-+ xtables_error(PARAMETER_PROBLEM,
-+ "ipp2p: `--apple' may only be "
-+ "specified once!");
-+ if ((*flags & SHORT_HAND_IPP2P) == SHORT_HAND_IPP2P)
-+ xtables_error(PARAMETER_PROBLEM,
-+ "ipp2p: `--ipp2p' may only be "
-+ "specified alone!");
-+ if (invert) xtables_error(PARAMETER_PROBLEM, "ipp2p: invert [!] is not allowed!");
-+ *flags += IPP2P_APPLE;
-+ info->cmd = *flags;
-+ break;
-+
-+
-+ case 'd': /*cmd: soul*/
-+ if ((*flags & IPP2P_SOUL) == IPP2P_SOUL)
-+ xtables_error(PARAMETER_PROBLEM,
-+ "ipp2p: `--soul' may only be "
-+ "specified once!");
-+ if ((*flags & SHORT_HAND_IPP2P) == SHORT_HAND_IPP2P)
-+ xtables_error(PARAMETER_PROBLEM,
-+ "ipp2p: `--ipp2p' may only be "
-+ "specified alone!");
-+ if (invert) xtables_error(PARAMETER_PROBLEM, "ipp2p: invert [!] is not allowed!");
-+ *flags += IPP2P_SOUL;
-+ info->cmd = *flags;
-+ break;
-+
-+
-+ case 'e': /*cmd: winmx*/
-+ if ((*flags & IPP2P_WINMX) == IPP2P_WINMX)
-+ xtables_error(PARAMETER_PROBLEM,
-+ "ipp2p: `--winmx' may only be "
-+ "specified once!");
-+ if ((*flags & SHORT_HAND_IPP2P) == SHORT_HAND_IPP2P)
-+ xtables_error(PARAMETER_PROBLEM,
-+ "ipp2p: `--ipp2p' may only be "
-+ "specified alone!");
-+ if (invert) xtables_error(PARAMETER_PROBLEM, "ipp2p: invert [!] is not allowed!");
-+ *flags += IPP2P_WINMX;
-+ info->cmd = *flags;
-+ break;
-+
-+ case 'f': /*cmd: ares*/
-+ if ((*flags & IPP2P_ARES) == IPP2P_ARES)
-+ xtables_error(PARAMETER_PROBLEM,
-+ "ipp2p: `--ares' may only be "
-+ "specified once!");
-+ if ((*flags & SHORT_HAND_IPP2P) == SHORT_HAND_IPP2P)
-+ xtables_error(PARAMETER_PROBLEM,
-+ "ipp2p: `--ipp2p' may only be "
-+ "specified alone!");
-+ if (invert) xtables_error(PARAMETER_PROBLEM, "ipp2p: invert [!] is not allowed!");
-+ *flags += IPP2P_ARES;
-+ info->cmd = *flags;
-+ break;
-+
-+ case 'g': /*cmd: mute*/
-+ if ((*flags & IPP2P_MUTE) == IPP2P_MUTE)
-+ xtables_error(PARAMETER_PROBLEM,
-+ "ipp2p: `--mute' may only be "
-+ "specified once!");
-+ if (invert) xtables_error(PARAMETER_PROBLEM, "ipp2p: invert [!] is not allowed!");
-+ *flags += IPP2P_MUTE;
-+ info->cmd = *flags;
-+ break;
-+ case 'h': /*cmd: waste*/
-+ if ((*flags & IPP2P_WASTE) == IPP2P_WASTE)
-+ xtables_error(PARAMETER_PROBLEM,
-+ "ipp2p: `--waste' may only be "
-+ "specified once!");
-+ if (invert) xtables_error(PARAMETER_PROBLEM, "ipp2p: invert [!] is not allowed!");
-+ *flags += IPP2P_WASTE;
-+ info->cmd = *flags;
-+ break;
-+ case 'i': /*cmd: xdcc*/
-+ if ((*flags & IPP2P_XDCC) == IPP2P_XDCC)
-+ xtables_error(PARAMETER_PROBLEM,
-+ "ipp2p: `--ares' may only be "
-+ "specified once!");
-+ if (invert) xtables_error(PARAMETER_PROBLEM, "ipp2p: invert [!] is not allowed!");
-+ *flags += IPP2P_XDCC;
-+ info->cmd = *flags;
-+ break;
-+
-+ case 'j': /*cmd: debug*/
-+ if (invert) xtables_error(PARAMETER_PROBLEM, "ipp2p: invert [!] is not allowed!");
-+ info->debug = 1;
-+ break;
-+
-+ default:
-+// xtables_error(PARAMETER_PROBLEM,
-+// "\nipp2p-parameter problem: for ipp2p usage type: iptables -m ipp2p --help\n");
-+ return 0;
-+ }
-+ return 1;
-+}
-+
-+
-+static void
-+final_check(unsigned int flags)
-+{
-+ if (!flags)
-+ xtables_error(PARAMETER_PROBLEM,
-+ "\nipp2p-parameter problem: for ipp2p usage type: iptables -m ipp2p --help\n");
-+}
-+
-+static void
-+#ifdef _XTABLES_H
-+print(const void *ip,
-+ const struct xt_entry_match *match,
-+#else
-+print(const struct ipt_ip *ip,
-+ const struct ipt_entry_match *match,
-+#endif
-+ int numeric)
-+{
-+ struct ipt_p2p_info *info = (struct ipt_p2p_info *)match->data;
-+
-+ printf("ipp2p v%s", IPP2P_VERSION);
-+ if ((info->cmd & SHORT_HAND_IPP2P) == SHORT_HAND_IPP2P) printf(" --ipp2p");
-+// if ((info->cmd & SHORT_HAND_DATA) == SHORT_HAND_DATA) printf(" --ipp2p-data");
-+ if ((info->cmd & IPP2P_KAZAA) == IPP2P_KAZAA) printf(" --kazaa");
-+// if ((info->cmd & IPP2P_DATA_KAZAA) == IPP2P_DATA_KAZAA) printf(" --kazaa-data");
-+// if ((info->cmd & IPP2P_DATA_GNU) == IPP2P_DATA_GNU) printf(" --gnu-data");
-+ if ((info->cmd & IPP2P_GNU) == IPP2P_GNU) printf(" --gnu");
-+ if ((info->cmd & IPP2P_EDK) == IPP2P_EDK) printf(" --edk");
-+// if ((info->cmd & IPP2P_DATA_EDK) == IPP2P_DATA_EDK) printf(" --edk-data");
-+// if ((info->cmd & IPP2P_DATA_DC) == IPP2P_DATA_DC) printf(" --dc-data");
-+ if ((info->cmd & IPP2P_DC) == IPP2P_DC) printf(" --dc");
-+ if ((info->cmd & IPP2P_BIT) == IPP2P_BIT) printf(" --bit");
-+ if ((info->cmd & IPP2P_APPLE) == IPP2P_APPLE) printf(" --apple");
-+ if ((info->cmd & IPP2P_SOUL) == IPP2P_SOUL) printf(" --soul");
-+ if ((info->cmd & IPP2P_WINMX) == IPP2P_WINMX) printf(" --winmx");
-+ if ((info->cmd & IPP2P_ARES) == IPP2P_ARES) printf(" --ares");
-+ if ((info->cmd & IPP2P_MUTE) == IPP2P_MUTE) printf(" --mute");
-+ if ((info->cmd & IPP2P_WASTE) == IPP2P_WASTE) printf(" --waste");
-+ if ((info->cmd & IPP2P_XDCC) == IPP2P_XDCC) printf(" --xdcc");
-+ if (info->debug != 0) printf(" --debug");
-+ printf(" ");
-+}
-+
-+static void
-+#ifdef _XTABLES_H
-+save(const void *ip,
-+ const struct xt_entry_match *match)
-+#else
-+save(const struct ipt_ip *ip,
-+ const struct ipt_entry_match *match)
-+#endif
-+{
-+ struct ipt_p2p_info *info = (struct ipt_p2p_info *)match->data;
-+
-+ if ((info->cmd & SHORT_HAND_IPP2P) == SHORT_HAND_IPP2P) printf("--ipp2p ");
-+// if ((info->cmd & SHORT_HAND_DATA) == SHORT_HAND_DATA) printf("--ipp2p-data ");
-+ if ((info->cmd & IPP2P_KAZAA) == IPP2P_KAZAA) printf("--kazaa ");
-+// if ((info->cmd & IPP2P_DATA_KAZAA) == IPP2P_DATA_KAZAA) printf("--kazaa-data ");
-+// if ((info->cmd & IPP2P_DATA_GNU) == IPP2P_DATA_GNU) printf("--gnu-data ");
-+ if ((info->cmd & IPP2P_GNU) == IPP2P_GNU) printf("--gnu ");
-+ if ((info->cmd & IPP2P_EDK) == IPP2P_EDK) printf("--edk ");
-+// if ((info->cmd & IPP2P_DATA_EDK) == IPP2P_DATA_EDK) printf("--edk-data ");
-+// if ((info->cmd & IPP2P_DATA_DC) == IPP2P_DATA_DC) printf("--dc-data ");
-+ if ((info->cmd & IPP2P_DC) == IPP2P_DC) printf("--dc ");
-+ if ((info->cmd & IPP2P_BIT) == IPP2P_BIT) printf("--bit ");
-+ if ((info->cmd & IPP2P_APPLE) == IPP2P_APPLE) printf("--apple ");
-+ if ((info->cmd & IPP2P_SOUL) == IPP2P_SOUL) printf("--soul ");
-+ if ((info->cmd & IPP2P_WINMX) == IPP2P_WINMX) printf("--winmx ");
-+ if ((info->cmd & IPP2P_ARES) == IPP2P_ARES) printf("--ares ");
-+ if ((info->cmd & IPP2P_MUTE) == IPP2P_MUTE) printf(" --mute");
-+ if ((info->cmd & IPP2P_WASTE) == IPP2P_WASTE) printf(" --waste");
-+ if ((info->cmd & IPP2P_XDCC) == IPP2P_XDCC) printf(" --xdcc");
-+ if (info->debug != 0) printf("--debug ");
-+}
-+
-+
-+static
-+struct xtables_match ipp2p=
-+{
-+ .next = NULL,
-+ .name = "ipp2p",
-+ .version = XTABLES_VERSION,
-+ .size = XT_ALIGN(sizeof(struct ipt_p2p_info)),
-+ .userspacesize = XT_ALIGN(sizeof(struct ipt_p2p_info)),
-+ .help = &help,
-+ .init = &init,
-+ .parse = &parse,
-+ .final_check = &final_check,
-+ .print = &print,
-+ .save = &save,
-+ .extra_opts = opts
-+};
-+
-+
-+
-+void _init(void)
-+{
-+ xtables_register_match(&ipp2p);
-+}
-+
-diff -Naur iptables-1.4.6.org/extensions/libipt_ipp2p.man iptables-1.4.6/extensions/libipt_ipp2p.man
---- iptables-1.4.6.org/extensions/libipt_ipp2p.man 1970-01-01 01:00:00.000000000 +0100
-+++ iptables-1.4.6/extensions/libipt_ipp2p.man 2010-02-13 20:02:52.000000000 +0100
-@@ -0,0 +1,43 @@
-+This module matches certain packets in P2P flows. It is not
-+designed to match all packets belonging to a P2P connection -
-+use IPP2P together with CONNMARK for this purpose. Also visit
-+http://www.ipp2p.org for detailed information.
-+
-+Use it together with -p tcp or -p udp to search these protocols
-+only or without -p switch to search packets of both protocols.
-+
-+IPP2P provides the following options:
-+.TP
-+.B "--edk "
-+Matches as many eDonkey/eMule packets as possible.
-+.TP
-+.B "--kazaa "
-+Matches as many KaZaA packets as possible.
-+.TP
-+.B "--gnu "
-+Matches as many Gnutella packets as possible.
-+.TP
-+.B "--dc "
-+Matches as many Direct Connect packets as possible.
-+.TP
-+.B "--bit "
-+Matches BitTorrent packets.
-+.TP
-+.B "--apple "
-+Matches AppleJuice packets.
-+.TP
-+.B "--soul "
-+Matches some SoulSeek packets. Considered as beta, use careful!
-+.TP
-+.B "--winmx "
-+Matches some WinMX packets. Considered as beta, use careful!
-+.TP
-+.B "--ares "
-+Matches Ares and AresLite packets. Use together with -j DROP only.
-+.TP
-+.B "--ipp2p "
-+Short hand for: --edk --kazaa --gnu --dc
-+.TP
-+.B "--debug "
-+Prints some information about each hit into kernel logfile. May
-+produce huge logfiles so beware!
+++ /dev/null
-diff -urN iputils/clockdiff.c iputils.new/clockdiff.c
---- iputils/clockdiff.c 2002-02-22 19:10:59.000000000 -0500
-+++ iputils.new/clockdiff.c 2003-09-10 09:20:28.000000000 -0400
-@@ -2,6 +2,7 @@
- #include <sys/types.h>
- #include <sys/param.h>
- #include <stdio.h>
-+#include <linux/types.h>
- #include <unistd.h>
- #include <stdlib.h>
- #include <math.h>
-diff -urN iputils/ping6.c iputils.new/ping6.c
---- iputils/ping6.c 2003-09-10 17:27:48.000000000 -0400
-+++ iputils.new/ping6.c 2003-09-10 17:22:43.000000000 -0400
-@@ -68,8 +68,44 @@
- */
- #include "ping_common.h"
-
--#include <linux/in6.h>
--#include <linux/ipv6.h>
-+struct ipv6_rt_hdr {
-+ __u8 nexthdr;
-+ __u8 hdrlen;
-+ __u8 type;
-+ __u8 segments_left;
-+
-+ /*
-+ * type specific data
-+ * variable length field
-+ */
-+};
-+
-+struct rt0_hdr {
-+ struct ipv6_rt_hdr rt_hdr;
-+ __u32 bitmap; /* strict/loose bit map */
-+ struct in6_addr addr[0];
-+
-+#define rt0_type rt_hdr.type;
-+};
-+#define IPV6_SRCRT_TYPE_0 0 /* IPv6 type 0 Routing Header */
-+struct ipv6hdr {
-+#if defined(__LITTLE_ENDIAN)
-+ __u8 priority:4,
-+ version:4;
-+#elif defined(__BIG_ENDIAN)
-+ __u8 version:4,
-+ priority:4;
-+#endif
-+ __u8 flow_lbl[3];
-+
-+ __u16 payload_len;
-+ __u8 nexthdr;
-+ __u8 hop_limit;
-+
-+ struct in6_addr saddr;
-+ struct in6_addr daddr;
-+};
-+
- #include <linux/icmpv6.h>
-
- #define BIT_CLEAR(nr, addr) do { ((__u32 *)(addr))[(nr) >> 5] &= ~(1U << ((nr) & 31)); } while(0)
-diff -urN iputils/ping.c iputils.new/ping.c
---- iputils/ping.c 2003-09-10 17:27:48.000000000 -0400
-+++ iputils.new/ping.c 2003-09-10 17:18:16.000000000 -0400
-@@ -60,8 +60,8 @@
-
- #include "ping_common.h"
-
-+#include <linux/icmp.h>
- #include <netinet/ip.h>
--#include <netinet/ip_icmp.h>
-
-
- #define MAXIPLEN 60
-diff -urN iputils/ping_common.h iputils.new/ping_common.h
---- iputils/ping_common.h 2002-09-20 11:08:11.000000000 -0400
-+++ iputils.new/ping_common.h 2003-09-10 17:16:16.000000000 -0400
-@@ -19,6 +19,7 @@
-
- #include <netinet/in.h>
- #include <arpa/inet.h>
-+#include <linux/types.h>
- #include <linux/errqueue.h>
-
- #include "SNAPSHOT.h"
-diff -urN iputils/tftpd.c iputils.new/tftpd.c
---- iputils/tftpd.c 2002-01-23 19:31:41.000000000 -0500
-+++ iputils.new/tftpd.c 2003-09-10 09:39:45.000000000 -0400
-@@ -57,7 +57,6 @@
-
- #include <sys/socket.h>
- #include <netinet/in.h>
--#include <linux/in6.h>
- #include <netdb.h>
-
- #include <setjmp.h>
-diff -urN iputils/tracepath6.c iputils.new/tracepath6.c
---- iputils/tracepath6.c 2001-09-01 22:03:46.000000000 -0400
-+++ iputils.new/tracepath6.c 2003-09-10 09:40:18.000000000 -0400
-@@ -14,8 +14,7 @@
- #include <unistd.h>
- #include <sys/socket.h>
- #include <netinet/in.h>
--
--#include <linux/in6.h>
-+#include <linux/types.h>
- #include <linux/errqueue.h>
- #include <errno.h>
- #include <string.h>
-diff -urN iputils/tracepath.c iputils.new/tracepath.c
---- iputils/tracepath.c 2002-02-22 19:10:59.000000000 -0500
-+++ iputils.new/tracepath.c 2003-09-10 06:14:35.000000000 -0400
-@@ -13,6 +13,7 @@
- #include <stdlib.h>
- #include <unistd.h>
- #include <sys/socket.h>
-+#include <linux/types.h>
- #include <linux/errqueue.h>
- #include <errno.h>
- #include <string.h>
-diff -urN iputils/traceroute6.c iputils.new/traceroute6.c
---- iputils/traceroute6.c 2002-09-20 11:44:22.000000000 -0400
-+++ iputils.new/traceroute6.c 2003-09-10 10:12:47.000000000 -0400
-@@ -246,9 +246,24 @@
- #include <netinet/ip_icmp.h>
- #include <netinet/udp.h>
-
--#include <linux/ipv6.h>
--#include <linux/in6.h>
-+#include <linux/types.h>
-+struct ipv6hdr {
-+#if defined(__LITTLE_ENDIAN)
-+ __u8 priority:4,
-+ version:4;
-+#elif defined(__BIG_ENDIAN)
-+ __u8 version:4,
-+ priority:4;
-+#endif
-+ __u8 flow_lbl[3];
-+
-+ __u16 payload_len;
-+ __u8 nexthdr;
-+ __u8 hop_limit;
-
-+ struct in6_addr saddr;
-+ struct in6_addr daddr;
-+};
- #include <linux/icmpv6.h>
-
- #include <arpa/inet.h>
+++ /dev/null
---- iputils/doc/Makefile.rh7 2002-02-23 01:17:57.000000000 +0100
-+++ iputils/doc/Makefile 2004-05-12 14:55:16.724448173 +0200
-@@ -2,7 +2,7 @@
- HTMLFILES=$(subst .sgml,.html,$(SGMLFILES)) index.html
- MANFILES=$(subst .sgml,.8,$(SGMLFILES))
-
--all: html
-+all:
-
- html: $(HTMLFILES) iputils.html
-
---- iputils/Makefile.rh7 2002-09-20 20:23:55.000000000 +0200
-+++ iputils/Makefile 2004-05-12 15:08:25.638310270 +0200
-@@ -24,14 +24,14 @@
- CC=gcc
- # What a pity, all new gccs are buggy and -Werror does not work. Sigh.
- #CCOPT=-D_GNU_SOURCE -O2 -Wstrict-prototypes -Wall -g -Werror
--CCOPT=-D_GNU_SOURCE -O2 -Wstrict-prototypes -Wall -g
--CFLAGS=$(CCOPT) $(GLIBCFIX) -I$(KERNEL_INCLUDE) -I../include $(DEFINES)
-+#CCOPT=-D_GNU_SOURCE -O2 -Wstrict-prototypes -Wall -g
-+#CFLAGS=$(CCOPT) $(DEFINES)
-
- IPV4_TARGETS=tracepath ping clockdiff rdisc arping tftpd rarpd
- IPV6_TARGETS=tracepath6 traceroute6 ping6
- TARGETS=$(IPV4_TARGETS) $(IPV6_TARGETS)
-
--all: check-kernel $(TARGETS)
-+all: $(TARGETS)
-
-
- tftpd: tftpd.o tftpsubs.o
+++ /dev/null
-diff -ru iputils/include-glibc/netinet/in.h iputils-clean/include-glibc/netinet/in.h
---- iputils/include-glibc/netinet/in.h 2000-06-18 14:57:25.000000000 -0400
-+++ iputils-clean/include-glibc/netinet/in.h 2003-09-03 11:21:55.000000000 -0400
-@@ -8,4 +8,45 @@
-
- #define SOL_IP 0
-
--#endif /* netinet/in.h */
-+/* Functions to convert between host and network byte order.
-+
-+ Please note that these functions normally take `unsigned long int' or
-+ `unsigned short int' values as arguments and also return them. But
-+ this was a short-sighted decision since on different systems the types
-+ may have different representations but the values are always the same. */
-+
-+extern u_int32_t ntohl (u_int32_t __netlong) __THROW __attribute__ ((__const__));
-+extern u_int16_t ntohs (u_int16_t __netshort)
-+ __THROW __attribute__ ((__const__));
-+extern u_int32_t htonl (u_int32_t __hostlong)
-+ __THROW __attribute__ ((__const__));
-+extern u_int16_t htons (u_int16_t __hostshort)
-+ __THROW __attribute__ ((__const__));
-+
-+#include <endian.h>
-+
-+/* Get machine dependent optimized versions of byte swapping functions. */
-+#include <bits/byteswap.h>
-+
-+#ifdef __OPTIMIZE__
-+/* We can optimize calls to the conversion functions. Either nothing has
-+ to be done or we are using directly the byte-swapping functions which
-+ often can be inlined. */
-+# if __BYTE_ORDER == __BIG_ENDIAN
-+/* The host byte order is the same as network byte order,
-+ so these functions are all just identity. */
-+# define ntohl(x) (x)
-+# define ntohs(x) (x)
-+# define htonl(x) (x)
-+# define htons(x) (x)
-+# else
-+# if __BYTE_ORDER == __LITTLE_ENDIAN
-+# define ntohl(x) __bswap_32 (x)
-+# define ntohs(x) __bswap_16 (x)
-+# define htonl(x) __bswap_32 (x)
-+# define htons(x) __bswap_16 (x)
-+# endif
-+# endif
-+#endif
-+
-+#endif /* netinet/in.h */
-diff -ru iputils/ping6.c iputils-clean/ping6.c
---- iputils/ping6.c 2003-09-03 11:22:46.000000000 -0400
-+++ iputils-clean/ping6.c 2003-09-03 11:15:42.000000000 -0400
-@@ -879,7 +879,7 @@
- once = 1;
-
- /* Patch bpflet for current identifier. */
-- insns[1] = (struct sock_filter)BPF_JUMP(BPF_JMP|BPF_JEQ|BPF_K, __constant_htons(ident), 0, 1);
-+ insns[1] = (struct sock_filter)BPF_JUMP(BPF_JMP|BPF_JEQ|BPF_K, htons(ident), 0, 1);
-
- if (setsockopt(icmp_sock, SOL_SOCKET, SO_ATTACH_FILTER, &filter, sizeof(filter)))
- perror("WARNING: failed to install socket filter\n");
-diff -ru iputils/ping.c iputils-clean/ping.c
---- iputils/ping.c 2003-09-03 11:22:46.000000000 -0400
-+++ iputils-clean/ping.c 2003-09-03 11:15:26.000000000 -0400
-@@ -1196,7 +1196,7 @@
- once = 1;
-
- /* Patch bpflet for current identifier. */
-- insns[2] = (struct sock_filter)BPF_JUMP(BPF_JMP|BPF_JEQ|BPF_K, __constant_htons(ident), 0, 1);
-+ insns[2] = (struct sock_filter)BPF_JUMP(BPF_JMP|BPF_JEQ|BPF_K, htons(ident), 0, 1);
-
- if (setsockopt(icmp_sock, SOL_SOCKET, SO_ATTACH_FILTER, &filter, sizeof(filter)))
- perror("WARNING: failed to install socket filter\n");
+++ /dev/null
-Submitted By: Alexander E. Patrakov
-Date: 2005-05-16
-Initial Package Version: 1.12
-Upstream Status: Not submitted, possibly incomplete
-Description: Makes Backspace and Delete keys consistent in all i386 keymaps.
-Obsoletes the /etc/kbd/bs-sends-del file for i386.
-
-diff -urN kbd-1.12.orig/data/keymaps/i386/dvorak/dvorak-l.map kbd-1.12/data/keymaps/i386/dvorak/dvorak-l.map
---- kbd-1.12.orig/data/keymaps/i386/dvorak/dvorak-l.map 2002-10-11 17:08:51.000000000 +0600
-+++ kbd-1.12/data/keymaps/i386/dvorak/dvorak-l.map 2005-05-16 19:54:48.000000000 +0600
-@@ -43,7 +43,7 @@
- keycode 11 = three numbersign
- keycode 12 = two at
- keycode 13 = one exclam
-- keycode 14 = BackSpace Delete
-+ keycode 14 = Delete Delete
- ! --------------------------------------------------------------------------
- ! Row 3
- ! --------------------------------------------------------------------------
-diff -urN kbd-1.12.orig/data/keymaps/i386/dvorak/dvorak-r.map kbd-1.12/data/keymaps/i386/dvorak/dvorak-r.map
---- kbd-1.12.orig/data/keymaps/i386/dvorak/dvorak-r.map 2002-10-11 17:08:51.000000000 +0600
-+++ kbd-1.12/data/keymaps/i386/dvorak/dvorak-r.map 2005-05-16 19:54:48.000000000 +0600
-@@ -43,7 +43,7 @@
- keycode 11 = slash question
- keycode 12 = bracketleft braceleft
- keycode 13 = bracketright braceright
-- keycode 14 = BackSpace Delete
-+ keycode 14 = Delete Delete
- ! --------------------------------------------------------------------------
- ! Row 3
- ! --------------------------------------------------------------------------
-diff -urN kbd-1.12.orig/data/keymaps/i386/fgGIod/tr_f-latin5.map kbd-1.12/data/keymaps/i386/fgGIod/tr_f-latin5.map
---- kbd-1.12.orig/data/keymaps/i386/fgGIod/tr_f-latin5.map 2002-10-13 06:21:12.000000000 +0600
-+++ kbd-1.12/data/keymaps/i386/fgGIod/tr_f-latin5.map 2005-05-16 19:54:48.000000000 +0600
-@@ -51,7 +51,7 @@
- alt keycode 12 = Meta_minus
- keycode 13 = minus underscore
- alt keycode 13 = Meta_equal
--keycode 14 = BackSpace Delete
-+keycode 14 = Delete Delete
- alt keycode 14 = Meta_Delete
- keycode 15 = Tab Tab
- alt keycode 15 = Meta_Tab
-diff -urN kbd-1.12.orig/data/keymaps/i386/qwerty/lt.l4.map kbd-1.12/data/keymaps/i386/qwerty/lt.l4.map
---- kbd-1.12.orig/data/keymaps/i386/qwerty/lt.l4.map 2002-10-13 05:59:51.000000000 +0600
-+++ kbd-1.12/data/keymaps/i386/qwerty/lt.l4.map 2005-05-16 19:54:48.000000000 +0600
-@@ -205,7 +205,7 @@
- # edit this if you want the key above <Enter> to delete symbols above
- # cursor, not before.
- keycode 14 = \
-- BackSpace BackSpace BackSpace BackSpace \
-+ Delete Delete Delete Delete \
- Delete Delete Delete Delete \
- Meta_BackSpace Meta_BackSpace Meta_BackSpace Meta_BackSpace \
- Meta_Delete Meta_Delete Meta_Delete Meta_Delete
-@@ -506,7 +506,7 @@
-
- # Edit this if you want strict VT100 emulation.
- string F111 = "\033[3$"
--keycode 111 = Delete F111 Delete F111 \
-+keycode 111 = Remove F111 Remove F111 \
- Remove Remove Remove Remove \
- Meta_Delete Meta_Delete Meta_Delete Meta_Delete \
- Boot Boot Boot Boot
-diff -urN kbd-1.12.orig/data/keymaps/i386/qwerty/lt.map kbd-1.12/data/keymaps/i386/qwerty/lt.map
---- kbd-1.12.orig/data/keymaps/i386/qwerty/lt.map 2002-10-13 06:00:25.000000000 +0600
-+++ kbd-1.12/data/keymaps/i386/qwerty/lt.map 2005-05-16 19:54:48.000000000 +0600
-@@ -204,7 +204,7 @@
- # edit this if you want the key above <Enter> to delete symbols above
- # cursor, not before.
- keycode 14 = \
-- BackSpace BackSpace BackSpace BackSpace \
-+ Delete Delete Delete Delete \
- Delete Delete Delete Delete \
- Meta_BackSpace Meta_BackSpace Meta_BackSpace Meta_BackSpace \
- Meta_Delete Meta_Delete Meta_Delete Meta_Delete
-@@ -505,7 +505,7 @@
-
- # Edit this if you want strict VT100 emulation.
- string F111 = "\033[3$"
--keycode 111 = Delete F111 Delete F111 \
-+keycode 111 = Remove F111 Remove F111 \
- Remove Remove Remove Remove \
- Meta_Delete Meta_Delete Meta_Delete Meta_Delete \
- Boot Boot Boot Boot
-diff -urN kbd-1.12.orig/data/keymaps/i386/qwerty/no-latin1.map kbd-1.12/data/keymaps/i386/qwerty/no-latin1.map
---- kbd-1.12.orig/data/keymaps/i386/qwerty/no-latin1.map 2002-10-11 17:08:49.000000000 +0600
-+++ kbd-1.12/data/keymaps/i386/qwerty/no-latin1.map 2005-05-16 19:54:48.000000000 +0600
-@@ -3,7 +3,7 @@
- # Send comments to Kjetil T. Homme <kjetilho@ifi.uio.no>
- include "linux-with-alt-and-altgr"
- plain keycode 83 = KP_Comma
-- plain keycode 111 = Delete # "Remove" originally, weird...
-+ plain keycode 111 = Remove
- strings as usual
-
- keycode 1 = Escape
-diff -urN kbd-1.12.orig/data/keymaps/i386/qwerty/ru-ms.map kbd-1.12/data/keymaps/i386/qwerty/ru-ms.map
---- kbd-1.12.orig/data/keymaps/i386/qwerty/ru-ms.map 2002-10-13 06:07:05.000000000 +0600
-+++ kbd-1.12/data/keymaps/i386/qwerty/ru-ms.map 2005-05-16 19:54:48.000000000 +0600
-@@ -89,8 +89,8 @@
- altgr alt keycode 13 = Meta_equal
- shift alt keycode 13 = Meta_plus
- altgr shift alt keycode 13 = Meta_plus
-- keycode 14 = BackSpace BackSpace BackSpace BackSpace
--# keycode 14 = Delete Delete Delete Delete
-+# keycode 14 = BackSpace BackSpace BackSpace BackSpace
-+ keycode 14 = Delete Delete Delete Delete
- alt keycode 14 = Meta_Delete
- altgr alt keycode 14 = Meta_Delete
- keycode 15 = Tab Tab Tab Tab
-diff -urN kbd-1.12.orig/data/keymaps/i386/qwerty/ru.map kbd-1.12/data/keymaps/i386/qwerty/ru.map
---- kbd-1.12.orig/data/keymaps/i386/qwerty/ru.map 2002-10-13 06:02:19.000000000 +0600
-+++ kbd-1.12/data/keymaps/i386/qwerty/ru.map 2005-05-16 19:56:08.000000000 +0600
-@@ -37,7 +37,7 @@
- alt keycode 12 = Meta_minus
- keycode 13 = equal plus equal plus
- alt keycode 13 = Meta_equal
-- keycode 14 = BackSpace BackSpace BackSpace BackSpace
-+ keycode 14 = Delete Delete Delete Delete
- alt keycode 14 = Meta_Delete
- keycode 15 = Tab Tab Tab Tab
- alt keycode 15 = Meta_Tab
-diff -urN kbd-1.12.orig/data/keymaps/i386/qwerty/ru1.map kbd-1.12/data/keymaps/i386/qwerty/ru1.map
---- kbd-1.12.orig/data/keymaps/i386/qwerty/ru1.map 2002-10-13 06:02:30.000000000 +0600
-+++ kbd-1.12/data/keymaps/i386/qwerty/ru1.map 2005-05-16 19:55:32.000000000 +0600
-@@ -143,8 +143,8 @@
-
- # The keycode "0xFF" is too dangerous for many programs (including emacs).
- # So let it be bracket instead of Hard Sign.
--# altgr keycode 27 = +0xDF
--# altgr shift keycode 27 = +0xFF
-+altgr keycode 27 = +0xDF
-+altgr shift keycode 27 = +0xFF
- control keycode 27 = Control_bracketright
- altgr control keycode 27 = Control_bracketright
- alt keycode 27 = Meta_bracketright
-diff -urN kbd-1.12.orig/data/keymaps/i386/qwerty/ru2.map kbd-1.12/data/keymaps/i386/qwerty/ru2.map
---- kbd-1.12.orig/data/keymaps/i386/qwerty/ru2.map 2002-10-13 06:05:47.000000000 +0600
-+++ kbd-1.12/data/keymaps/i386/qwerty/ru2.map 2005-05-16 19:56:52.000000000 +0600
-@@ -46,7 +46,7 @@
- alt keycode 12 = Meta_minus
- keycode 13 = equal plus equal plus
- alt keycode 13 = Meta_equal
-- keycode 14 = BackSpace BackSpace BackSpace BackSpace
-+ keycode 14 = Delete Delete Delete Delete
- alt keycode 14 = Meta_Delete
- keycode 15 = Tab Tab Tab Tab
- alt keycode 15 = Meta_Tab
-diff -urN kbd-1.12.orig/data/keymaps/i386/qwerty/se-ir209.map kbd-1.12/data/keymaps/i386/qwerty/se-ir209.map
---- kbd-1.12.orig/data/keymaps/i386/qwerty/se-ir209.map 2002-10-13 06:12:48.000000000 +0600
-+++ kbd-1.12/data/keymaps/i386/qwerty/se-ir209.map 2005-05-16 19:54:48.000000000 +0600
-@@ -345,7 +345,7 @@
- keycode 109 = Next Scroll_Forward
- keycode 110 = Insert
-
-- keycode 111 = Delete # "Remove" originally, weird...
-+ keycode 111 = Remove
- control alt keycode 111 = Boot
- control altgr keycode 111 = Boot
-
-diff -urN kbd-1.12.orig/data/keymaps/i386/qwerty/se-lat6.map kbd-1.12/data/keymaps/i386/qwerty/se-lat6.map
---- kbd-1.12.orig/data/keymaps/i386/qwerty/se-lat6.map 2002-10-13 06:13:01.000000000 +0600
-+++ kbd-1.12/data/keymaps/i386/qwerty/se-lat6.map 2005-05-16 19:54:48.000000000 +0600
-@@ -374,6 +374,6 @@
- keycode 109 = Next Scroll_Forward
- keycode 110 = Insert
-
-- keycode 111 = Delete # "Remove" originally, weird...
-+ keycode 111 = Remove
- control alt keycode 111 = Boot
- control altgr keycode 111 = Boot
-diff -urN kbd-1.12.orig/data/keymaps/i386/qwerty/tr_q-latin5.map kbd-1.12/data/keymaps/i386/qwerty/tr_q-latin5.map
---- kbd-1.12.orig/data/keymaps/i386/qwerty/tr_q-latin5.map 2002-10-11 17:08:49.000000000 +0600
-+++ kbd-1.12/data/keymaps/i386/qwerty/tr_q-latin5.map 2005-05-16 19:54:48.000000000 +0600
-@@ -49,7 +49,7 @@
- alt keycode 12 = Meta_minus
- keycode 13 = minus underscore
- alt keycode 13 = Meta_equal
--keycode 14 = BackSpace Delete
-+keycode 14 = Delete Delete
- alt keycode 14 = Meta_Delete
- keycode 15 = Tab Tab
- alt keycode 15 = Meta_Tab
-diff -urN kbd-1.12.orig/data/keymaps/i386/qwerty/ua-utf-ws.map kbd-1.12/data/keymaps/i386/qwerty/ua-utf-ws.map
---- kbd-1.12.orig/data/keymaps/i386/qwerty/ua-utf-ws.map 2002-10-13 06:07:56.000000000 +0600
-+++ kbd-1.12/data/keymaps/i386/qwerty/ua-utf-ws.map 2005-05-16 19:54:48.000000000 +0600
-@@ -260,7 +260,7 @@
- shift ctrll ctrlr keycode 13 = plus
- alt ctrll ctrlr keycode 13 = Meta_equal
- shift alt ctrll ctrlr keycode 13 = Meta_plus
--keycode 14 = BackSpace Delete
-+keycode 14 = Delete Delete
- control keycode 14 = BackSpace
- alt keycode 14 = Meta_Delete
- ctrlr keycode 14 = BackSpace
-diff -urN kbd-1.12.orig/data/keymaps/i386/qwerty/ua-utf.map kbd-1.12/data/keymaps/i386/qwerty/ua-utf.map
---- kbd-1.12.orig/data/keymaps/i386/qwerty/ua-utf.map 2002-10-13 06:08:07.000000000 +0600
-+++ kbd-1.12/data/keymaps/i386/qwerty/ua-utf.map 2005-05-16 19:54:48.000000000 +0600
-@@ -250,7 +250,7 @@
- shift ctrll ctrlr keycode 13 = plus
- alt ctrll ctrlr keycode 13 = Meta_equal
- shift alt ctrll ctrlr keycode 13 = Meta_plus
--keycode 14 = BackSpace Delete
-+keycode 14 = Delete Delete
- control keycode 14 = BackSpace
- alt keycode 14 = Meta_Delete
- ctrlr keycode 14 = BackSpace
-diff -urN kbd-1.12.orig/data/keymaps/i386/qwerty/ua-ws.map kbd-1.12/data/keymaps/i386/qwerty/ua-ws.map
---- kbd-1.12.orig/data/keymaps/i386/qwerty/ua-ws.map 2002-10-13 06:08:19.000000000 +0600
-+++ kbd-1.12/data/keymaps/i386/qwerty/ua-ws.map 2005-05-16 19:54:48.000000000 +0600
-@@ -260,7 +260,7 @@
- shift ctrll ctrlr keycode 13 = plus
- alt ctrll ctrlr keycode 13 = Meta_equal
- shift alt ctrll ctrlr keycode 13 = Meta_plus
--keycode 14 = BackSpace Delete
-+keycode 14 = Delete Delete
- control keycode 14 = BackSpace
- alt keycode 14 = Meta_Delete
- ctrlr keycode 14 = BackSpace
-diff -urN kbd-1.12.orig/data/keymaps/i386/qwerty/ua.map kbd-1.12/data/keymaps/i386/qwerty/ua.map
---- kbd-1.12.orig/data/keymaps/i386/qwerty/ua.map 2002-10-13 06:08:31.000000000 +0600
-+++ kbd-1.12/data/keymaps/i386/qwerty/ua.map 2005-05-16 19:54:48.000000000 +0600
-@@ -249,7 +249,7 @@
- shift ctrll ctrlr keycode 13 = plus
- alt ctrll ctrlr keycode 13 = Meta_equal
- shift alt ctrll ctrlr keycode 13 = Meta_plus
--keycode 14 = BackSpace Delete
-+keycode 14 = Delete Delete
- control keycode 14 = BackSpace
- alt keycode 14 = Meta_Delete
- ctrlr keycode 14 = BackSpace
+++ /dev/null
-Submitted By: Matthew Burgess <matthew@linuxfromscratch.org>
-Date: 2005-07-28
-Initial Package Version: 1.12
-Upstream Status: Unknown
-Origin: http://cvs.fedora.redhat.com/viewcvs/devel/kbd/kbd-1.12-alias.patch?rev=1.2&view=markup
-Description: Fix violations of C aliasing rules, triggered by gcc4.
-
-diff -Naur kbd-1.12.orig/src/psffontop.c kbd-1.12/src/psffontop.c
---- kbd-1.12.orig/src/psffontop.c 2004-01-16 19:45:31.000000000 +0000
-+++ kbd-1.12/src/psffontop.c 2005-07-28 20:33:57.946088984 +0000
-@@ -59,7 +59,6 @@
-
- static unsigned int
- assemble_ucs2(char **inptr, int cnt) {
-- unsigned char **in = (unsigned char **) inptr;
- unsigned int u1, u2;
-
- if (cnt < 2) {
-@@ -68,8 +67,8 @@
- exit(EX_DATAERR);
- }
-
-- u1 = *(*in)++;
-- u2 = *(*in)++;
-+ u1 = (unsigned char)*(*inptr)++;
-+ u2 = (unsigned char)*(*inptr)++;
- return (u1 | (u2 << 8));
- }
-
-@@ -110,7 +109,6 @@
- */
- static void
- get_uni_entry(char **inptr, char **endptr, struct unicode_list *up, int utf8) {
-- unsigned char **in = (unsigned char **) inptr;
- unsigned char uc;
- unicode unichar;
- int inseq = 0;
-@@ -126,14 +124,14 @@
- exit(EX_DATAERR);
- }
- if (utf8) {
-- uc = *(*in)++;
-+ uc = *(*inptr)++;
- if (uc == PSF2_SEPARATOR)
- break;
- if (uc == PSF2_STARTSEQ) {
- inseq = 1;
- continue;
- }
-- --(*in);
-+ --(*inptr);
- unichar = assemble_utf8(inptr, *endptr - *inptr);
- } else {
- unichar = assemble_ucs2(inptr, *endptr - *inptr);
+++ /dev/null
-Submitted By: Greg Schafer <greg at linuxfromscratch dot org>
-Date: 2004-01-07
-Initial Package Version: 1.10
-Origin: LFS Book and Anderson Lizardo <lizardo at linuxfromscratch dot org>
- (based on kbd-1.08-more-programs.patch)
-Description: Install additional programs included in kbd package,
- including their manpages. Note: setlogcons does not have
- a manpage.
-
-diff -Naur kbd-1.10.orig/man/Makefile kbd-1.10/man/Makefile
---- kbd-1.10.orig/man/Makefile 2002-10-11 22:12:53.000000000 +0000
-+++ kbd-1.10/man/Makefile 2004-01-07 02:36:13.471404128 +0000
-@@ -7,6 +7,9 @@
- install -d -m 755 $(MANDIR)/$$i; \
- install -m 644 $$i/*.[0-9] $(MANDIR)/$$i; \
- done
-+ install -d -m 755 $(MANDIR)/man8
-+ install -m 644 man8misc/setvesablank.8 $(MANDIR)/man8
-+ install -m 644 man8misc/getunimap.8 $(MANDIR)/man8
- rm -f $(MANDIR)/man5/keytables.5
-
- clean:
-diff -Naur kbd-1.10.orig/src/Makefile.in kbd-1.10/src/Makefile.in
---- kbd-1.10.orig/src/Makefile.in 2004-01-03 17:53:06.000000000 +0000
-+++ kbd-1.10/src/Makefile.in 2004-01-07 02:36:44.706655648 +0000
-@@ -46,8 +46,9 @@
- OLDPROGS= mapscrn loadunimap
-
- # Not installed by default
--MISC = screendump setlogcons setvesablank spawn_console spawn_login \
-- getunimap clrunimap outpsfheader setpalette
-+#MISC = screendump setlogcons setvesablank spawn_console spawn_login \
-+# getunimap clrunimap outpsfheader setpalette
-+MISC = setlogcons setvesablank getunimap
-
- # Installed by default
- SHCMDS = unicode_start unicode_stop
-@@ -73,7 +74,7 @@
- install: all
- install -d -m 0755 $(BINDIR) $(LOADKEYS_BINDIR)
- install -s -m 0755 $(setowner) $(PROGS) $(OLDPROGS) $(BINDIR)
--# install -s -m 0755 $(setowner) $(MISC) $(BINDIR)
-+ install -s -m 0755 $(setowner) $(MISC) $(BINDIR)
- install -c -m 0755 $(setowner) $(SHCMDS) $(BINDIR)
- for i in psfaddtable psfgettable psfstriptable; do \
- rm -f $(BINDIR)/$$i; ln -s psfxtable $(BINDIR)/$$i; \
--- /dev/null
+From 1f8d32942be54850a3a89c7b58ba5613b5525c58 Mon Sep 17 00:00:00 2001
+From: "Andrew G. Morgan" <morgan@kernel.org>
+Date: Fri, 28 May 2021 13:41:17 -0700
+Subject: [PATCH] Make capsh an installed binary again
+
+Bug report from Jan Palus:
+
+ https://bugzilla.kernel.org/show_bug.cgi?id=213261
+
+Signed-off-by: Andrew G. Morgan <morgan@kernel.org>
+---
+ progs/Makefile | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/progs/Makefile b/progs/Makefile
+index 313dc4d..3c3dc97 100644
+--- a/progs/Makefile
++++ b/progs/Makefile
+@@ -32,14 +32,14 @@ $(BUILD): %: %.o $(DEPS)
+
+ install: all
+ mkdir -p -m 0755 $(FAKEROOT)$(SBINDIR)
+- for p in $(PROGS) ; do \
++ for p in $(PROGS) capsh ; do \
+ install -m 0755 $$p $(FAKEROOT)$(SBINDIR) ; \
+ done
+ ifeq ($(RAISE_SETFCAP),yes)
+ $(FAKEROOT)$(SBINDIR)/setcap cap_setfcap=i $(FAKEROOT)$(SBINDIR)/setcap
+ endif
+
+-test: $(PROGS)
++test: $(PROGS) capsh
+
+ capshdoc.h.cf: capshdoc.h ./mkcapshdoc.sh
+ ./mkcapshdoc.sh > $@
+--
+2.32.0.rc2
+
+++ /dev/null
-diff -Naur linux-3.10.10/drivers/net/usb/smsc95xx.c linux-c1af7c6db316763b9dce7137495cb9ada8fa17b4/drivers/net/usb/smsc95xx.c
---- linux-3.10.10/drivers/net/usb/smsc95xx.c 2013-08-29 18:47:51.000000000 +0200
-+++ linux-c1af7c6db316763b9dce7137495cb9ada8fa17b4/drivers/net/usb/smsc95xx.c 2013-08-30 20:12:54.000000000 +0200
-@@ -61,6 +61,7 @@
- #define SUSPEND_SUSPEND3 (0x08)
- #define SUSPEND_ALLMODES (SUSPEND_SUSPEND0 | SUSPEND_SUSPEND1 | \
- SUSPEND_SUSPEND2 | SUSPEND_SUSPEND3)
-+#define MAC_ADDR_LEN (6)
-
- struct smsc95xx_priv {
- u32 mac_cr;
-@@ -76,6 +77,10 @@
- module_param(turbo_mode, bool, 0644);
- MODULE_PARM_DESC(turbo_mode, "Enable multiple frames per Rx transaction");
-
-+static char *macaddr = ":";
-+module_param(macaddr, charp, 0);
-+MODULE_PARM_DESC(macaddr, "MAC address");
-+
- static int __must_check __smsc95xx_read_reg(struct usbnet *dev, u32 index,
- u32 *data, int in_pm)
- {
-@@ -765,8 +770,59 @@
- return generic_mii_ioctl(&dev->mii, if_mii(rq), cmd, NULL);
- }
-
-+/* Check the macaddr module parameter for a MAC address */
-+static int smsc95xx_is_macaddr_param(struct usbnet *dev, u8 *dev_mac)
-+{
-+ int i, j, got_num, num;
-+ u8 mtbl[MAC_ADDR_LEN];
-+
-+ if (macaddr[0] == ':')
-+ return 0;
-+
-+ i = 0;
-+ j = 0;
-+ num = 0;
-+ got_num = 0;
-+ while (j < MAC_ADDR_LEN) {
-+ if (macaddr[i] && macaddr[i] != ':') {
-+ got_num++;
-+ if ('0' <= macaddr[i] && macaddr[i] <= '9')
-+ num = num * 16 + macaddr[i] - '0';
-+ else if ('A' <= macaddr[i] && macaddr[i] <= 'F')
-+ num = num * 16 + 10 + macaddr[i] - 'A';
-+ else if ('a' <= macaddr[i] && macaddr[i] <= 'f')
-+ num = num * 16 + 10 + macaddr[i] - 'a';
-+ else
-+ break;
-+ i++;
-+ } else if (got_num == 2) {
-+ mtbl[j++] = (u8) num;
-+ num = 0;
-+ got_num = 0;
-+ i++;
-+ } else {
-+ break;
-+ }
-+ }
-+
-+ if (j == MAC_ADDR_LEN) {
-+ netif_dbg(dev, ifup, dev->net, "Overriding MAC address with: "
-+ "%02x:%02x:%02x:%02x:%02x:%02x\n", mtbl[0], mtbl[1], mtbl[2],
-+ mtbl[3], mtbl[4], mtbl[5]);
-+ for (i = 0; i < MAC_ADDR_LEN; i++)
-+ dev_mac[i] = mtbl[i];
-+ return 1;
-+ } else {
-+ return 0;
-+ }
-+}
-+
- static void smsc95xx_init_mac_address(struct usbnet *dev)
- {
-+ /* Check module parameters */
-+ if (smsc95xx_is_macaddr_param(dev, dev->net->dev_addr))
-+ return;
-+
- /* try reading mac address from EEPROM */
- if (smsc95xx_read_eeprom(dev, EEPROM_MAC_OFFSET, ETH_ALEN,
- dev->net->dev_addr) == 0) {
+++ /dev/null
-diff -Naur linux-3.10.10.org/drivers/crypto/mv_cesa.c linux-3.10.10/drivers/crypto/mv_cesa.c
---- linux-3.10.10.org/drivers/crypto/mv_cesa.c 2013-08-29 18:47:51.000000000 +0200
-+++ linux-3.10.10/drivers/crypto/mv_cesa.c 2013-09-04 13:06:35.000000000 +0200
-@@ -1120,6 +1120,7 @@
- else
- printk(KERN_WARNING MV_CESA "Could not register sha1 driver\n");
-
-+/*
- ret = crypto_register_ahash(&mv_hmac_sha1_alg);
- if (ret == 0) {
- cpg->has_hmac_sha1 = 1;
-@@ -1127,6 +1128,7 @@
- printk(KERN_WARNING MV_CESA
- "Could not register hmac-sha1 driver\n");
- }
-+*/
-
- return 0;
- err_unreg_ecb:
+++ /dev/null
-diff --git a/drivers/net/wireless/Kconfig b/drivers/net/wireless/Kconfig
-index f8f0156..42a0702 100644
---- a/drivers/net/wireless/Kconfig
-+++ b/drivers/net/wireless/Kconfig
-@@ -51,6 +51,14 @@ config LIBERTAS_THINFIRM_USB
- ---help---
- A driver for Marvell Libertas 8388 USB devices using thinfirm.
-
-+config LIBERTAS_UAP
-+ tristate "Marvell 8xxx Libertas UAP"
-+ depends on MAC80211
-+ depends on MMC
-+ select FW_LOADER
-+ ---help---
-+ Driver for Marvell Libertas 8xxx micro AP.
-+
- config AIRO
- tristate "Cisco/Aironet 34X/35X/4500/4800 ISA and PCI cards"
- depends on ISA_DMA_API && (PCI || BROKEN)
-diff --git a/drivers/net/wireless/Makefile b/drivers/net/wireless/Makefile
-index 67156ef..475a1b3 100644
---- a/drivers/net/wireless/Makefile
-+++ b/drivers/net/wireless/Makefile
-@@ -37,6 +37,8 @@ obj-$(CONFIG_LIBERTAS) += libertas/
-
- obj-$(CONFIG_LIBERTAS_THINFIRM) += libertas_tf/
-
-+obj-$(CONFIG_LIBERTAS_UAP) += libertas_uap/
-+
- obj-$(CONFIG_ADM8211) += adm8211.o
-
- obj-$(CONFIG_MWL8K) += mwl8k.o
-diff --git a/drivers/net/wireless/libertas_uap/Makefile b/drivers/net/wireless/libertas_uap/Makefile
-new file mode 100644
-index 0000000..821f2a4
---- /dev/null
-+++ b/drivers/net/wireless/libertas_uap/Makefile
-@@ -0,0 +1,6 @@
-+obj-$(CONFIG_LIBERTAS_UAP) += uap8xxx.o
-+
-+uap8xxx-y += uap_main.o uap_sdio_mmc.o
-+uap8xxx-$(CONFIG_PROC_FS) += uap_proc.o uap_debug.o
-+
-+EXTRA_CFLAGS += -DFPNUM='"52"' -DPXA3XX_DMA_ALIGN -DDEBUG_LEVEL1
-diff --git a/drivers/net/wireless/libertas_uap/uap_debug.c b/drivers/net/wireless/libertas_uap/uap_debug.c
-new file mode 100644
-index 0000000..a2f6dc9
---- /dev/null
-+++ b/drivers/net/wireless/libertas_uap/uap_debug.c
-@@ -0,0 +1,260 @@
-+/** @file uap_debug.c
-+ * @brief This file contains functions for debug proc file.
-+ *
-+ * Copyright (C) 2008-2009, Marvell International Ltd.
-+ *
-+ * This software file (the "File") is distributed by Marvell International
-+ * Ltd. under the terms of the GNU General Public License Version 2, June 1991
-+ * (the "License"). You may use, redistribute and/or modify this File in
-+ * accordance with the terms and conditions of the License, a copy of which
-+ * is available along with the File in the gpl.txt file or by writing to
-+ * the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-+ * 02111-1307 or on the worldwide web at http://www.gnu.org/licenses/gpl.txt.
-+ *
-+ * THE FILE IS DISTRIBUTED AS-IS, WITHOUT WARRANTY OF ANY KIND, AND THE
-+ * IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE
-+ * ARE EXPRESSLY DISCLAIMED. The License provides additional details about
-+ * this warranty disclaimer.
-+ *
-+ */
-+#ifdef CONFIG_PROC_FS
-+#include "uap_headers.h"
-+
-+/********************************************************
-+ Local Variables
-+********************************************************/
-+
-+#define item_size(n) (sizeof ((uap_adapter *)0)->n)
-+#define item_addr(n) ((u32) &((uap_adapter *)0)->n)
-+
-+#define item_dbg_size(n) (sizeof (((uap_adapter *)0)->dbg.n))
-+#define item_dbg_addr(n) ((u32) &(((uap_adapter *)0)->dbg.n))
-+
-+#define item_dev_size(n) (sizeof ((uap_dev_t *)0)->n)
-+#define item_dev_addr(n) ((u32) &((uap_dev_t *)0)->n)
-+
-+/** MicroAp device offset */
-+#define OFFSET_UAP_DEV 0x01
-+/** Bluetooth adapter offset */
-+#define OFFSET_UAP_ADAPTER 0x02
-+
-+struct debug_data
-+{
-+ /** Name */
-+ char name[32];
-+ /** Size */
-+ u32 size;
-+ /** Address */
-+ u32 addr;
-+ /** Offset */
-+ u32 offset;
-+ /** Flag */
-+ u32 flag;
-+};
-+
-+/* To debug any member of uap_adapter, simply add one line here.
-+ */
-+static struct debug_data items[] = {
-+ {"cmd_sent", item_dev_size(cmd_sent), 0, item_dev_addr(cmd_sent),
-+ OFFSET_UAP_DEV},
-+ {"data_sent", item_dev_size(data_sent), 0, item_dev_addr(data_sent),
-+ OFFSET_UAP_DEV},
-+ {"IntCounter", item_size(IntCounter), 0, item_addr(IntCounter),
-+ OFFSET_UAP_ADAPTER},
-+ {"cmd_pending", item_size(cmd_pending), 0, item_addr(cmd_pending),
-+ OFFSET_UAP_ADAPTER},
-+ {"num_cmd_h2c_fail", item_dbg_size(num_cmd_host_to_card_failure), 0,
-+ item_dbg_addr(num_cmd_host_to_card_failure), OFFSET_UAP_ADAPTER},
-+ {"num_tx_h2c_fail", item_dbg_size(num_tx_host_to_card_failure), 0,
-+ item_dbg_addr(num_tx_host_to_card_failure), OFFSET_UAP_ADAPTER},
-+ {"psmode", item_size(psmode), 0, item_addr(psmode), OFFSET_UAP_ADAPTER},
-+ {"ps_state", item_size(ps_state), 0, item_addr(ps_state),
-+ OFFSET_UAP_ADAPTER},
-+#ifdef DEBUG_LEVEL1
-+ {"drvdbg", sizeof(drvdbg), (u32) & drvdbg, 0, 0}
-+#endif
-+};
-+
-+static int num_of_items = sizeof(items) / sizeof(items[0]);
-+
-+/********************************************************
-+ Global Variables
-+********************************************************/
-+
-+/********************************************************
-+ Local Functions
-+********************************************************/
-+/**
-+ * @brief proc read function
-+ *
-+ * @param page pointer to buffer
-+ * @param s read data starting position
-+ * @param off offset
-+ * @param cnt counter
-+ * @param eof end of file flag
-+ * @param data data to output
-+ * @return number of output data
-+ */
-+static int uap_debug_proc_show(struct seq_file *s, void *data) {
-+ int val = 0;
-+ int i;
-+
-+ struct debug_data *d = (struct debug_data *)s->private;
-+
-+ if (MODULE_GET == 0)
-+ return UAP_STATUS_FAILURE;
-+
-+ for (i = 0; i < num_of_items; i++) {
-+ if (d[i].size == 1)
-+ val = *((u8 *) d[i].addr);
-+ else if (d[i].size == 2)
-+ val = *((u16 *) d[i].addr);
-+ else if (d[i].size == 4)
-+ val = *((u32 *) d[i].addr);
-+
-+ seq_printf(s, "%s=%d\n", d[i].name, val);
-+ }
-+ MODULE_PUT;
-+ return 0;
-+}
-+
-+static int uap_debug_proc_open(struct inode* inode, struct file* file) {
-+ return single_open(file, uap_debug_proc_show, PDE_DATA(inode));
-+}
-+
-+/**
-+ * @brief proc write function
-+ *
-+ * @param f file pointer
-+ * @param buf pointer to data buffer
-+ * @param cnt data number to write
-+ * @param data data to write
-+ * @return number of data
-+ */
-+static ssize_t uap_debug_proc_write(struct file *f, const char __user *buf, size_t cnt, loff_t *data) {
-+ int r, i;
-+ char *pdata;
-+ char *p;
-+ char *p0;
-+ char *p1;
-+ char *p2;
-+ struct debug_data *d = (struct debug_data *)PDE_DATA(file_inode(f));
-+
-+ if (MODULE_GET == 0)
-+ return UAP_STATUS_FAILURE;
-+
-+ pdata = (char *) kmalloc(cnt, GFP_KERNEL);
-+ if (pdata == NULL) {
-+ MODULE_PUT;
-+ return 0;
-+ }
-+
-+ if (copy_from_user(pdata, buf, cnt)) {
-+ PRINTM(INFO, "Copy from user failed\n");
-+ kfree(pdata);
-+ MODULE_PUT;
-+ return 0;
-+ }
-+
-+ p0 = pdata;
-+ for (i = 0; i < num_of_items; i++) {
-+ do {
-+ p = strstr(p0, d[i].name);
-+ if (p == NULL)
-+ break;
-+ p1 = strchr(p, '\n');
-+ if (p1 == NULL)
-+ break;
-+ p0 = p1++;
-+ p2 = strchr(p, '=');
-+ if (!p2)
-+ break;
-+ p2++;
-+ r = string_to_number(p2);
-+ if (d[i].size == 1)
-+ *((u8 *) d[i].addr) = (u8) r;
-+ else if (d[i].size == 2)
-+ *((u16 *) d[i].addr) = (u16) r;
-+ else if (d[i].size == 4)
-+ *((u32 *) d[i].addr) = (u32) r;
-+ break;
-+ } while (TRUE);
-+ }
-+ kfree(pdata);
-+#ifdef DEBUG_LEVEL1
-+ printk(KERN_ALERT "drvdbg = 0x%x\n", drvdbg);
-+ printk(KERN_ALERT "INFO (%08lx) %s\n", DBG_INFO,
-+ (drvdbg & DBG_INFO) ? "X" : "");
-+ printk(KERN_ALERT "WARN (%08lx) %s\n", DBG_WARN,
-+ (drvdbg & DBG_WARN) ? "X" : "");
-+ printk(KERN_ALERT "ENTRY (%08lx) %s\n", DBG_ENTRY,
-+ (drvdbg & DBG_ENTRY) ? "X" : "");
-+ printk(KERN_ALERT "CMD_D (%08lx) %s\n", DBG_CMD_D,
-+ (drvdbg & DBG_CMD_D) ? "X" : "");
-+ printk(KERN_ALERT "DAT_D (%08lx) %s\n", DBG_DAT_D,
-+ (drvdbg & DBG_DAT_D) ? "X" : "");
-+ printk(KERN_ALERT "CMND (%08lx) %s\n", DBG_CMND,
-+ (drvdbg & DBG_CMND) ? "X" : "");
-+ printk(KERN_ALERT "DATA (%08lx) %s\n", DBG_DATA,
-+ (drvdbg & DBG_DATA) ? "X" : "");
-+ printk(KERN_ALERT "ERROR (%08lx) %s\n", DBG_ERROR,
-+ (drvdbg & DBG_ERROR) ? "X" : "");
-+ printk(KERN_ALERT "FATAL (%08lx) %s\n", DBG_FATAL,
-+ (drvdbg & DBG_FATAL) ? "X" : "");
-+ printk(KERN_ALERT "MSG (%08lx) %s\n", DBG_MSG,
-+ (drvdbg & DBG_MSG) ? "X" : "");
-+#endif
-+ MODULE_PUT;
-+ return cnt;
-+}
-+
-+static const struct file_operations uap_debug_proc_fops = {
-+ .owner = THIS_MODULE,
-+ .open = uap_debug_proc_open,
-+ .read = seq_read,
-+ .llseek = seq_lseek,
-+ .release = single_release,
-+ .write = uap_debug_proc_write,
-+};
-+
-+/********************************************************
-+ Global Functions
-+********************************************************/
-+/**
-+ * @brief create debug proc file
-+ *
-+ * @param priv pointer uap_private
-+ * @param dev pointer net_device
-+ * @return N/A
-+ */
-+void
-+uap_debug_entry(uap_private * priv, struct net_device *dev)
-+{
-+ int i;
-+
-+ if (priv->proc_entry == NULL)
-+ return;
-+
-+ for (i = 0; i < num_of_items; i++) {
-+ if (items[i].flag & OFFSET_UAP_ADAPTER)
-+ items[i].addr = items[i].offset + (u32) priv->adapter;
-+ if (items[i].flag & OFFSET_UAP_DEV)
-+ items[i].addr = items[i].offset + (u32) & priv->uap_dev;
-+ }
-+ proc_create_data("debug", 0644, priv->proc_entry, &uap_debug_proc_fops,
-+ &items[0]);
-+}
-+
-+/**
-+ * @brief remove proc file
-+ *
-+ * @param priv pointer uap_private
-+ * @return N/A
-+ */
-+void
-+uap_debug_remove(uap_private * priv)
-+{
-+ remove_proc_entry("debug", priv->proc_entry);
-+}
-+
-+#endif
-diff --git a/drivers/net/wireless/libertas_uap/uap_drv.h b/drivers/net/wireless/libertas_uap/uap_drv.h
-new file mode 100644
-index 0000000..5aa009f
---- /dev/null
-+++ b/drivers/net/wireless/libertas_uap/uap_drv.h
-@@ -0,0 +1,667 @@
-+/** @file uap_drv.h
-+ * @brief This file contains Linux OS related definitions and
-+ * declarations, uAP driver
-+ *
-+ * Copyright (C) 2008-2009, Marvell International Ltd.
-+ *
-+ * This software file (the "File") is distributed by Marvell International
-+ * Ltd. under the terms of the GNU General Public License Version 2, June 1991
-+ * (the "License"). You may use, redistribute and/or modify this File in
-+ * accordance with the terms and conditions of the License, a copy of which
-+ * is available along with the File in the gpl.txt file or by writing to
-+ * the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-+ * 02111-1307 or on the worldwide web at http://www.gnu.org/licenses/gpl.txt.
-+ *
-+ * THE FILE IS DISTRIBUTED AS-IS, WITHOUT WARRANTY OF ANY KIND, AND THE
-+ * IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE
-+ * ARE EXPRESSLY DISCLAIMED. The License provides additional details about
-+ * this warranty disclaimer.
-+ *
-+ */
-+
-+#ifndef _UAP_DRV_H
-+#define _UAP_DRV_H
-+
-+/** Driver release version */
-+#define DRIVER_VERSION "26146"
-+
-+/** True */
-+#ifndef TRUE
-+#define TRUE 1
-+#endif
-+/** False */
-+#ifndef FALSE
-+#define FALSE 0
-+#endif
-+
-+/** Bit definitions */
-+#ifndef BIT
-+#define BIT(x) (1UL << (x))
-+#endif
-+
-+/** Dma addresses are 32-bits wide. */
-+#ifndef __ATTRIB_ALIGN__
-+#define __ATTRIB_ALIGN__ __attribute__((aligned(4)))
-+#endif
-+
-+/** attribute pack */
-+#ifndef __ATTRIB_PACK__
-+#define __ATTRIB_PACK__ __attribute__ ((packed))
-+#endif
-+
-+/** Debug Macro definition*/
-+#ifdef DEBUG_LEVEL1
-+
-+extern u32 drvdbg;
-+
-+/** Debug message control bit definition for drvdbg */
-+/** Debug message */
-+#define DBG_MSG BIT(0)
-+/** Debug fatal message */
-+#define DBG_FATAL BIT(1)
-+/** Debug error message */
-+#define DBG_ERROR BIT(2)
-+/** Debug data message */
-+#define DBG_DATA BIT(3)
-+/** Debug command message */
-+#define DBG_CMND BIT(4)
-+
-+/** Debug data */
-+#define DBG_DAT_D BIT(16)
-+/** Debug command */
-+#define DBG_CMD_D BIT(17)
-+
-+/** Debug entry */
-+#define DBG_ENTRY BIT(28)
-+/** Debug warning */
-+#define DBG_WARN BIT(29)
-+/** Debug info */
-+#define DBG_INFO BIT(30)
-+
-+/** Print info */
-+#define PRINTM_INFO(msg...) {if (drvdbg & DBG_INFO) printk(KERN_DEBUG msg);}
-+/** Print warn message */
-+#define PRINTM_WARN(msg...) {if (drvdbg & DBG_WARN) printk(KERN_DEBUG msg);}
-+/** Print entry */
-+#define PRINTM_ENTRY(msg...) {if (drvdbg & DBG_ENTRY) printk(KERN_DEBUG msg);}
-+/** Print cmd_d */
-+#define PRINTM_CMD_D(msg...) {if (drvdbg & DBG_CMD_D) printk(KERN_DEBUG msg);}
-+/** Print data_d */
-+#define PRINTM_DAT_D(msg...) {if (drvdbg & DBG_DAT_D) printk(KERN_DEBUG msg);}
-+/** Print command */
-+#define PRINTM_CMND(msg...) {if (drvdbg & DBG_CMND) printk(KERN_DEBUG msg);}
-+/** Print data */
-+#define PRINTM_DATA(msg...) {if (drvdbg & DBG_DATA) printk(KERN_DEBUG msg);}
-+/** Print error message */
-+#define PRINTM_ERROR(msg...) {if (drvdbg & DBG_ERROR) printk(KERN_DEBUG msg);}
-+/** Print fatal message */
-+#define PRINTM_FATAL(msg...) {if (drvdbg & DBG_FATAL) printk(KERN_DEBUG msg);}
-+/** Print message */
-+#define PRINTM_MSG(msg...) {if (drvdbg & DBG_MSG) printk(KERN_ALERT msg);}
-+/** Print level */
-+#define PRINTM(level,msg...) PRINTM_##level(msg)
-+
-+#else
-+
-+#define PRINTM(level,msg...) do {} while (0)
-+
-+#endif /* DEBUG_LEVEL1 */
-+
-+/** Wait until a condition becomes true */
-+#define ASSERT(cond) \
-+do { \
-+ if (!(cond)) \
-+ PRINTM(INFO, "ASSERT: %s, %s:%i\n", \
-+ __FUNCTION__, __FILE__, __LINE__); \
-+} while(0)
-+
-+/** Log enrty point for debugging */
-+#define ENTER() PRINTM(ENTRY, "Enter: %s, %s:%i\n", __FUNCTION__, \
-+ __FILE__, __LINE__)
-+/** Log exit point for debugging */
-+#define LEAVE() PRINTM(ENTRY, "Leave: %s, %s:%i\n", __FUNCTION__, \
-+ __FILE__, __LINE__)
-+
-+#ifdef DEBUG_LEVEL1
-+/** Dump buffer length */
-+#define DBG_DUMP_BUF_LEN 64
-+/** Maximum dump per line */
-+#define MAX_DUMP_PER_LINE 16
-+/** Data dump length */
-+#define DATA_DUMP_LEN 32
-+
-+static inline void
-+hexdump(char *prompt, u8 * buf, int len)
-+{
-+ int i;
-+ char dbgdumpbuf[DBG_DUMP_BUF_LEN];
-+ char *ptr = dbgdumpbuf;
-+
-+ printk(KERN_DEBUG "%s:\n", prompt);
-+ for (i = 1; i <= len; i++) {
-+ ptr += sprintf(ptr, "%02x ", *buf);
-+ buf++;
-+ if (i % MAX_DUMP_PER_LINE == 0) {
-+ *ptr = 0;
-+ printk(KERN_DEBUG "%s\n", dbgdumpbuf);
-+ ptr = dbgdumpbuf;
-+ }
-+ }
-+ if (len % MAX_DUMP_PER_LINE) {
-+ *ptr = 0;
-+ printk(KERN_DEBUG "%s\n", dbgdumpbuf);
-+ }
-+}
-+
-+/** Debug command */
-+#define DBG_HEXDUMP_CMD_D(x,y,z) {if (drvdbg & DBG_CMD_D) hexdump(x,y,z);}
-+/** Debug data */
-+#define DBG_HEXDUMP_DAT_D(x,y,z) {if (drvdbg & DBG_DAT_D) hexdump(x,y,z);}
-+/** Debug hexdump */
-+#define DBG_HEXDUMP(level,x,y,z) DBG_HEXDUMP_##level(x,y,z)
-+/** hexdump */
-+#define HEXDUMP(x,y,z) {if (drvdbg & DBG_INFO) hexdump(x,y,z);}
-+#else
-+/** Do nothing since debugging is not turned on */
-+#define DBG_HEXDUMP(level,x,y,z) do {} while (0)
-+/** Do nothing since debugging is not turned on */
-+#define HEXDUMP(x,y,z) do {} while (0)
-+#endif
-+
-+/**
-+ * Typedefs
-+ */
-+/** Unsigned char */
-+typedef u8 BOOLEAN;
-+
-+/*
-+ * OS macro definitions
-+ */
-+/** OS macro to get time */
-+#define os_time_get() jiffies
-+
-+/** OS macro to update transfer start time */
-+#define UpdateTransStart(dev) { \
-+ dev->trans_start = jiffies; \
-+}
-+
-+/** Try to get a reference to the module */
-+#define MODULE_GET try_module_get(THIS_MODULE)
-+/** Decrease module reference count */
-+#define MODULE_PUT module_put(THIS_MODULE)
-+
-+/** OS macro to initialize semaphore */
-+#define OS_INIT_SEMAPHORE(x) sema_init(x,1)
-+/** OS macro to acquire blocking semaphore */
-+#define OS_ACQ_SEMAPHORE_BLOCK(x) down_interruptible(x)
-+/** OS macro to acquire non-blocking semaphore */
-+#define OS_ACQ_SEMAPHORE_NOBLOCK(x) down_trylock(x)
-+/** OS macro to release semaphore */
-+#define OS_REL_SEMAPHORE(x) up(x)
-+
-+static inline void
-+os_sched_timeout(u32 millisec)
-+{
-+ set_current_state(TASK_INTERRUPTIBLE);
-+ schedule_timeout((millisec * HZ) / 1000);
-+}
-+
-+/** Maximum size of ethernet packet */
-+#define MRVDRV_MAXIMUM_ETH_PACKET_SIZE 1514
-+
-+/** Maximum size of multicast list */
-+#define MRVDRV_MAX_MULTICAST_LIST_SIZE 32
-+
-+/** Find minimum */
-+#ifndef MIN
-+#define MIN(a,b) ((a) < (b) ? (a) : (b))
-+#endif
-+
-+/** Find maximum */
-+#ifndef MAX
-+#define MAX(a,b) ((a) > (b) ? (a) : (b))
-+#endif
-+
-+/** Find number of elements */
-+#ifndef NELEMENTS
-+#define NELEMENTS(x) (sizeof(x)/sizeof(x[0]))
-+#endif
-+
-+/** Buffer Constants */
-+
-+/** Size of command buffer */
-+#define MRVDRV_SIZE_OF_CMD_BUFFER (2 * 1024)
-+
-+/** Length of device length */
-+#define DEV_NAME_LEN 32
-+
-+/** Length of ethernet address */
-+#ifndef ETH_ALEN
-+#define ETH_ALEN 6
-+#endif
-+
-+/** Default watchdog timeout */
-+#define MRVDRV_DEFAULT_WATCHDOG_TIMEOUT (2 * HZ)
-+
-+/** Success */
-+#define UAP_STATUS_SUCCESS (0)
-+/** Failure */
-+#define UAP_STATUS_FAILURE (-1)
-+/** Not accepted */
-+#define UAP_STATUS_NOT_ACCEPTED (-2)
-+
-+/** Max loop count (* 100ms) for waiting device ready at init time */
-+#define MAX_WAIT_DEVICE_READY_COUNT 50
-+
-+/** Tx high watermark. Stop Tx queue after this is crossed */
-+#define TX_HIGH_WATERMARK 4
-+/** Tx low watermark. Restart Tx queue after this is crossed */
-+#define TX_LOW_WATERMARK 2
-+
-+/** Netlink protocol number */
-+#define NETLINK_MARVELL (MAX_LINKS - 1)
-+/** Netlink maximum payload size */
-+#define NL_MAX_PAYLOAD 1024
-+/** Netlink multicast group number */
-+#define NL_MULTICAST_GROUP 1
-+
-+/** 20 seconds */
-+#define MRVDRV_TIMER_20S 20000
-+
-+/** Host Command option for wait till Send */
-+#define HostCmd_OPTION_WAITFORSEND 0x0001
-+/** Host Command option for wait for RSP */
-+#define HostCmd_OPTION_WAITFORRSP 0x0002
-+/** Host Command option for wait for RSP or Timeout */
-+#define HostCmd_OPTION_WAITFORRSP_TIMEOUT 0x0003
-+/** Host Command option for wait for RSP of sleep confirm */
-+#define HostCmd_OPTION_WAITFORRSP_SLEEPCONFIRM 0x0004
-+
-+/** Sleep until a condition gets true or a timeout elapses */
-+#define os_wait_interruptible_timeout(waitq, cond, timeout) \
-+ wait_event_interruptible_timeout(waitq, cond, ((timeout) * HZ / 1000))
-+
-+/** Private command ID to Host command */
-+#define UAPHOSTCMD (SIOCDEVPRIVATE + 1)
-+
-+/** Private command ID to Power Mode */
-+#define UAP_POWER_MODE (SIOCDEVPRIVATE + 3)
-+/** sleep_param */
-+typedef struct _ps_sleep_param
-+{
-+ /** control bitmap */
-+ u32 ctrl_bitmap;
-+ /** minimum sleep period (micro second) */
-+ u32 min_sleep;
-+ /** maximum sleep period (micro second) */
-+ u32 max_sleep;
-+} ps_sleep_param;
-+
-+/** inactivity sleep_param */
-+typedef struct _inact_sleep_param
-+{
-+ /** inactivity timeout (micro second) */
-+ u32 inactivity_to;
-+ /** miniumu awake period (micro second) */
-+ u32 min_awake;
-+ /** maximum awake period (micro second) */
-+ u32 max_awake;
-+} inact_sleep_param;
-+
-+/** flag for ps mode */
-+#define PS_FLAG_PS_MODE 1
-+/** flag for sleep param */
-+#define PS_FLAG_SLEEP_PARAM 2
-+/** flag for inactivity sleep param */
-+#define PS_FLAG_INACT_SLEEP_PARAM 4
-+
-+/** Disable power mode */
-+#define PS_MODE_DISABLE 0
-+/** Enable periodic dtim ps */
-+#define PS_MODE_PERIODIC_DTIM 1
-+/** Enable inactivity ps */
-+#define PS_MODE_INACTIVITY 2
-+
-+/** sleep parameter */
-+#define SLEEP_PARAMETER 1
-+/** inactivity sleep parameter */
-+#define INACTIVITY_SLEEP_PARAMETER 2
-+/** ps_mgmt */
-+typedef struct _ps_mgmt
-+{
-+ /** flags for valid field */
-+ u16 flags;
-+ /** power mode */
-+ u16 ps_mode;
-+ /** sleep param */
-+ ps_sleep_param sleep_param;
-+ /** inactivity sleep param */
-+ inact_sleep_param inact_param;
-+} ps_mgmt;
-+
-+/** Semaphore structure */
-+typedef struct semaphore SEMAPHORE;
-+
-+/** Global Varibale Declaration */
-+/** Private data structure of the device */
-+typedef struct _uap_private uap_private;
-+/** Adapter data structure of the device */
-+typedef struct _uap_adapter uap_adapter;
-+/** private structure */
-+extern uap_private *uappriv;
-+
-+/** ENUM definition*/
-+
-+/** Hardware status codes */
-+typedef enum _HARDWARE_STATUS
-+{
-+ HWReady,
-+ HWInitializing,
-+ HWReset,
-+ HWClosing,
-+ HWNotReady
-+} HARDWARE_STATUS;
-+
-+/** info for debug purpose */
-+typedef struct _uap_dbg
-+{
-+ /** Number of host to card command failures */
-+ u32 num_cmd_host_to_card_failure;
-+ /** Number of host to card Tx failures */
-+ u32 num_tx_host_to_card_failure;
-+} uap_dbg;
-+
-+/** Set thread state */
-+#define OS_SET_THREAD_STATE(x) set_current_state(x)
-+
-+typedef struct
-+{
-+ /** Task */
-+ struct task_struct *task;
-+ /** Queue */
-+ wait_queue_head_t waitQ;
-+ /** PID */
-+ pid_t pid;
-+ /** Private structure */
-+ void *priv;
-+} uap_thread;
-+
-+static inline void
-+uap_activate_thread(uap_thread * thr)
-+{
-+ /** Record the thread pid */
-+ thr->pid = current->pid;
-+
-+ /** Initialize the wait queue */
-+ init_waitqueue_head(&thr->waitQ);
-+}
-+
-+static inline void
-+uap_deactivate_thread(uap_thread * thr)
-+{
-+ thr->pid = 0;
-+ return;
-+}
-+
-+static inline void
-+uap_create_thread(int (*uapfunc) (void *), uap_thread * thr, char *name)
-+{
-+ thr->task = kthread_run(uapfunc, thr, "%s", name);
-+}
-+
-+static inline int
-+uap_terminate_thread(uap_thread * thr)
-+{
-+ /* Check if the thread is active or not */
-+ if (!thr->pid)
-+ return -1;
-+ kthread_stop(thr->task);
-+ return 0;
-+}
-+
-+/** Data structure for the Marvell uAP device */
-+typedef struct _uap_dev
-+{
-+ /** device name */
-+ char name[DEV_NAME_LEN];
-+ /** card pointer */
-+ void *card;
-+ /** IO port */
-+ u32 ioport;
-+ /** Rx unit */
-+ u8 rx_unit;
-+ /** Data sent:
-+ TRUE - Data is sent to fw, no Tx Done received
-+ FALSE - Tx done received for previous Tx */
-+ BOOLEAN data_sent;
-+ /** CMD sent:
-+ TRUE - CMD is sent to fw, no CMD Done received
-+ FALSE - CMD done received for previous CMD */
-+ BOOLEAN cmd_sent;
-+ /** netdev pointer */
-+ struct net_device *netdev;
-+} uap_dev_t, *puap_dev_t;
-+
-+/** Private structure for the MV device */
-+struct _uap_private
-+{
-+ /** Device open */
-+ int open;
-+
-+ /** Device adapter structure */
-+ uap_adapter *adapter;
-+ /** Device structure */
-+ uap_dev_t uap_dev;
-+
-+ /** Net device statistics structure */
-+ struct net_device_stats stats;
-+
-+ /** Number of Tx timeouts */
-+ u32 num_tx_timeout;
-+
-+ /** Media connection status */
-+ BOOLEAN MediaConnected;
-+
-+#ifdef CONFIG_PROC_FS
-+ struct proc_dir_entry *proc_uap;
-+ struct proc_dir_entry *proc_entry;
-+#endif /* CONFIG_PROC_FS */
-+
-+ /** Firmware helper */
-+ const struct firmware *fw_helper;
-+ /** Firmware */
-+ const struct firmware *firmware;
-+ /** Hotplug device */
-+ struct device *hotplug_device;
-+ /** thread to service interrupts */
-+ uap_thread MainThread;
-+ /** Driver lock */
-+ spinlock_t driver_lock;
-+ /** Driver lock flags */
-+ ulong driver_flags;
-+
-+};
-+
-+/** PS_CMD_ConfirmSleep */
-+typedef struct _PS_CMD_ConfirmSleep
-+{
-+ /** SDIO Length */
-+ u16 SDLen;
-+ /** SDIO Type */
-+ u16 SDType;
-+ /** Command */
-+ u16 Command;
-+ /** Size */
-+ u16 Size;
-+ /** Sequence number */
-+ u16 SeqNum;
-+ /** Result */
-+ u16 Result;
-+} __ATTRIB_PACK__ PS_CMD_ConfirmSleep, *PPS_CMD_ConfirmSleep;
-+
-+/** Wlan Adapter data structure*/
-+struct _uap_adapter
-+{
-+ /** Power save confirm sleep command */
-+ PS_CMD_ConfirmSleep PSConfirmSleep;
-+ /** Device status */
-+ HARDWARE_STATUS HardwareStatus;
-+ /** Interrupt counter */
-+ u32 IntCounter;
-+ /** Tx packet queue */
-+ struct sk_buff_head tx_queue;
-+ /** Cmd packet queue */
-+ struct sk_buff_head cmd_queue;
-+ /** Command sequence number */
-+ u16 SeqNum;
-+ /** Command buffer */
-+ u8 *CmdBuf;
-+ /** cmd pending flag */
-+ u8 cmd_pending;
-+ /** cmd wait option */
-+ u8 cmd_wait_option;
-+ /** Command buffer length */
-+ u32 CmdSize;
-+ /** Command wait queue */
-+ wait_queue_head_t cmdwait_q __ATTRIB_ALIGN__;
-+ /** Command wait queue state flag */
-+ u8 CmdWaitQWoken;
-+ /** PnP support */
-+ BOOLEAN SurpriseRemoved;
-+ /** Debug */
-+ uap_dbg dbg;
-+ /** Netlink kernel socket */
-+ struct sock *nl_sk;
-+ /** Semaphore for CMD */
-+ SEMAPHORE CmdSem;
-+ /** Power Save mode */
-+ u8 psmode;
-+ /** Power Save state */
-+ u8 ps_state;
-+ /** Number of wakeup tries */
-+ u32 WakeupTries;
-+};
-+
-+static inline int
-+os_upload_rx_packet(uap_private * priv, struct sk_buff *skb)
-+{
-+ skb->dev = priv->uap_dev.netdev;
-+ skb->protocol = eth_type_trans(skb, priv->uap_dev.netdev);
-+ skb->ip_summed = CHECKSUM_UNNECESSARY;
-+ if (in_interrupt())
-+ netif_rx(skb);
-+ else
-+ netif_rx_ni(skb);
-+ return 0;
-+}
-+
-+/*
-+ * netif carrier_on/off and start(wake)/stop_queue handling
-+ */
-+static inline void
-+os_carrier_on(uap_private * priv)
-+{
-+ if (!netif_carrier_ok(priv->uap_dev.netdev) &&
-+ (priv->MediaConnected == TRUE)) {
-+ netif_carrier_on(priv->uap_dev.netdev);
-+ }
-+}
-+
-+static inline void
-+os_carrier_off(uap_private * priv)
-+{
-+ if (netif_carrier_ok(priv->uap_dev.netdev)) {
-+ netif_carrier_off(priv->uap_dev.netdev);
-+ }
-+}
-+
-+static inline void
-+os_start_queue(uap_private * priv)
-+{
-+ if (netif_queue_stopped(priv->uap_dev.netdev) &&
-+ (priv->MediaConnected == TRUE)) {
-+ netif_wake_queue(priv->uap_dev.netdev);
-+ }
-+}
-+
-+static inline void
-+os_stop_queue(uap_private * priv)
-+{
-+ if (!netif_queue_stopped(priv->uap_dev.netdev)) {
-+ netif_stop_queue(priv->uap_dev.netdev);
-+ }
-+}
-+
-+/** Interface specific header */
-+#define INTF_HEADER_LEN 4
-+
-+/** headroom alignment for tx packet */
-+#define HEADER_ALIGNMENT 8
-+
-+/** The number of times to try when polling for status bits */
-+#define MAX_POLL_TRIES 100
-+
-+/** Length of SNAP header */
-+#define MRVDRV_SNAP_HEADER_LEN 8
-+
-+/** Extra length of Tx packet buffer */
-+#define EXTRA_LEN 36
-+
-+/** Buffer size for ethernet Tx packets */
-+#define MRVDRV_ETH_TX_PACKET_BUFFER_SIZE \
-+ (ETH_FRAME_LEN + sizeof(TxPD) + EXTRA_LEN)
-+
-+/** Buffer size for ethernet Rx packets */
-+#define MRVDRV_ETH_RX_PACKET_BUFFER_SIZE \
-+ (ETH_FRAME_LEN + sizeof(RxPD) \
-+ + MRVDRV_SNAP_HEADER_LEN + EXTRA_LEN)
-+
-+/** Packet type: data, command & event */
-+typedef enum _mv_type
-+{
-+ MV_TYPE_DAT = 0,
-+ MV_TYPE_CMD = 1,
-+ MV_TYPE_EVENT = 3
-+} mv_type;
-+
-+/** Disable interrupt */
-+#define OS_INT_DISABLE spin_lock_irqsave(&priv->driver_lock, priv->driver_flags)
-+/** Enable interrupt */
-+#define OS_INT_RESTORE spin_unlock_irqrestore(&priv->driver_lock, priv->driver_flags)
-+
-+int uap_process_rx_packet(uap_private * priv, struct sk_buff *skb);
-+void uap_interrupt(uap_private * priv);
-+uap_private *uap_add_card(void *card);
-+int uap_remove_card(void *card);
-+int uap_process_event(uap_private * priv, u8 * payload, uint len);
-+int uap_soft_reset(uap_private * priv);
-+int uap_process_sleep_confirm_resp(uap_private * priv, u8 * resp, int resp_len);
-+
-+#ifdef CONFIG_PROC_FS
-+/** The proc fs interface */
-+void uap_proc_entry(uap_private * priv, struct net_device *dev);
-+void uap_proc_remove(uap_private * priv);
-+int string_to_number(char *s);
-+void uap_debug_entry(uap_private * priv, struct net_device *dev);
-+void uap_debug_remove(uap_private * priv);
-+#endif /* CONFIG_PROC_FS */
-+
-+int sbi_register(void);
-+
-+void sbi_unregister(void);
-+int sbi_register_dev(uap_private * priv);
-+int sbi_unregister_dev(uap_private * priv);
-+int sbi_prog_fw_w_helper(uap_private *);
-+
-+int sbi_host_to_card(uap_private * priv, u8 * payload, u16 nb);
-+int sbi_enable_host_int(uap_private * priv);
-+int sbi_disable_host_int(uap_private * priv);
-+
-+int sbi_get_int_status(uap_private * priv, u8 * ireg);
-+/** Check firmware status */
-+int sbi_check_fw_status(uap_private *, int);
-+int sbi_prog_helper(uap_private *);
-+
-+int sbi_wakeup_firmware(uap_private * priv);
-+
-+#endif /* _UAP_DRV_H */
-diff --git a/drivers/net/wireless/libertas_uap/uap_fw.h b/drivers/net/wireless/libertas_uap/uap_fw.h
-new file mode 100644
-index 0000000..23a40d6
---- /dev/null
-+++ b/drivers/net/wireless/libertas_uap/uap_fw.h
-@@ -0,0 +1,359 @@
-+/** @file uap_fw.h
-+ *
-+ * @brief This file contains firmware specific defines.
-+ *
-+ * Copyright (C) 2008-2009, Marvell International Ltd.
-+ *
-+ * This software file (the "File") is distributed by Marvell International
-+ * Ltd. under the terms of the GNU General Public License Version 2, June 1991
-+ * (the "License"). You may use, redistribute and/or modify this File in
-+ * accordance with the terms and conditions of the License, a copy of which
-+ * is available along with the File in the gpl.txt file or by writing to
-+ * the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-+ * 02111-1307 or on the worldwide web at http://www.gnu.org/licenses/gpl.txt.
-+ *
-+ * THE FILE IS DISTRIBUTED AS-IS, WITHOUT WARRANTY OF ANY KIND, AND THE
-+ * IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE
-+ * ARE EXPRESSLY DISCLAIMED. The License provides additional details about
-+ * this warranty disclaimer.
-+ *
-+ */
-+/********************************************************
-+Change log:
-+ 02/26/08: Initial creation
-+********************************************************/
-+
-+#ifndef _UAP_FW_H
-+#define _UAP_FW_H
-+
-+/** uap upload size */
-+#define UAP_UPLD_SIZE 2312
-+/** Packet type Micro AP */
-+#define PKT_TYPE_MICROAP 1
-+/** Packet type client */
-+#define PKT_TYPE_CLIENT 0
-+
-+/** TxPD descriptor */
-+typedef struct _TxPD
-+{
-+ /** Bss Type */
-+ u8 BssType;
-+ /** Bss num */
-+ u8 BssNum;
-+ /** Tx packet length */
-+ u16 TxPktLength;
-+ /** Tx packet offset */
-+ u16 TxPktOffset;
-+ /** Tx packet type */
-+ u16 TxPktType;
-+ /** Tx Control */
-+ u32 TxControl;
-+ /** reserved */
-+ u32 reserved[2];
-+} __ATTRIB_PACK__ TxPD, *PTxPD;
-+
-+/** RxPD Descriptor */
-+typedef struct _RxPD
-+{
-+ /** Bss Type */
-+ u8 BssType;
-+ /** Bss Num */
-+ u8 BssNum;
-+ /** Tx packet length */
-+ u16 RxPktLength;
-+ /** Tx packet offset */
-+ u16 RxPktOffset;
-+} __ATTRIB_PACK__ RxPD, *PRxPD;
-+
-+#ifdef BIG_ENDIAN
-+/** Convert from 16 bit little endian format to CPU format */
-+#define uap_le16_to_cpu(x) le16_to_cpu(x)
-+/** Convert from 32 bit little endian format to CPU format */
-+#define uap_le32_to_cpu(x) le32_to_cpu(x)
-+/** Convert from 64 bit little endian format to CPU format */
-+#define uap_le64_to_cpu(x) le64_to_cpu(x)
-+/** Convert to 16 bit little endian format from CPU format */
-+#define uap_cpu_to_le16(x) cpu_to_le16(x)
-+/** Convert to 32 bit little endian format from CPU format */
-+#define uap_cpu_to_le32(x) cpu_to_le32(x)
-+/** Convert to 64 bit little endian format from CPU format */
-+#define uap_cpu_to_le64(x) cpu_to_le64(x)
-+
-+/** Convert TxPD to little endian format from CPU format */
-+#define endian_convert_TxPD(x); \
-+ { \
-+ (x)->TxPktLength = uap_cpu_to_le16((x)->TxPktLength); \
-+ (x)->TxPktOffset = uap_cpu_to_le32((x)->TxPktOffset); \
-+ (x)->TxControl = uap_cpu_to_le32((x)->TxControl); \
-+ (x)->TxPktType = uap_cpu_to_le32((x)->TxPktType); \
-+ }
-+
-+/** Convert RxPD from little endian format to CPU format */
-+#define endian_convert_RxPD(x); \
-+ { \
-+ (x)->RxPktLength = uap_le16_to_cpu((x)->RxPktLength); \
-+ (x)->RxPktOffset = uap_le32_to_cpu((x)->RxPktOffset); \
-+ }
-+#else /* BIG_ENDIAN */
-+/** Do nothing */
-+#define uap_le16_to_cpu(x) x
-+/** Do nothing */
-+#define uap_le32_to_cpu(x) x
-+/** Do nothing */
-+#define uap_le64_to_cpu(x) x
-+/** Do nothing */
-+#define uap_cpu_to_le16(x) x
-+/** Do nothing */
-+#define uap_cpu_to_le32(x) x
-+/** Do nothing */
-+#define uap_cpu_to_le64(x) x
-+
-+/** Do nothing */
-+#define endian_convert_TxPD(x)
-+/** Do nothing */
-+#define endian_convert_RxPD(x)
-+#endif /* BIG_ENDIAN */
-+
-+/** Host Command ID : Function initialization */
-+#define HostCmd_CMD_FUNC_INIT 0x00a9
-+/** Host Command ID : Function shutdown */
-+#define HostCmd_CMD_FUNC_SHUTDOWN 0x00aa
-+
-+/** Host Command id: SYS_INFO */
-+#define HOST_CMD_APCMD_SYS_INFO 0x00ae
-+/** Host Command id: SYS_RESET */
-+#define HOST_CMD_APCMD_SYS_RESET 0x00af
-+/** Host Command id: SYS_CONFIGURE */
-+#define HOST_CMD_APCMD_SYS_CONFIGURE 0x00b0
-+/** Host Command id: BSS_START */
-+#define HOST_CMD_APCMD_BSS_START 0x00b1
-+/** Host Command id: SYS_STOP */
-+#define HOST_CMD_APCMD_BSS_STOP 0x00b2
-+/** Host Command id: STA_LIST */
-+#define HOST_CMD_APCMD_STA_LIST 0x00b3
-+/** Host Command id: STA_FILTER_TABLE */
-+#define HOST_CMD_APCMD_STA_FILTER_TABLE 0x00b4
-+/** Host Command id: STA_DEAUTH */
-+#define HOST_CMD_APCMD_STA_DEAUTH 0x00b5
-+/** Host Command id: SOFT_RESET */
-+#define HOST_CMD_APCMD_SOFT_RESET 0x00d5
-+/** Host Command id: POWER_MGMT_EXT */
-+#define HOST_CMD_POWER_MGMT_EXT 0x00ef
-+/** Host Command id: SLEEP_CONFIRM*/
-+#define HOST_CMD_SLEEP_CONFIRM 0x00d8
-+
-+/** TLV type : SSID */
-+#define TLV_TYPE_SSID 0x0000
-+/** TLV type : Rates */
-+#define TLV_TYPE_RATES 0x0001
-+/** TLV type : PHY DS */
-+#define TLV_TYPE_PHY_DS 0x0003
-+
-+/** TLV Id : Base id */
-+#define PROPRIETARY_TLV_BASE_ID 0x0100
-+/** TLV Id : AP_MAC_ADDRESS */
-+#define MRVL_AP_MAC_ADDRESS_TLV_ID (PROPRIETARY_TLV_BASE_ID + 43)
-+/** TLV Id : Beacon period */
-+#define MRVL_BEACON_PERIOD_TLV_ID (PROPRIETARY_TLV_BASE_ID + 44)
-+/** TLV Id : Dtim period */
-+#define MRVL_DTIM_PERIOD_TLV_ID (PROPRIETARY_TLV_BASE_ID + 45)
-+/** TLV Id : Basic rates */
-+#define MRVL_BASIC_RATES_TLV_ID (PROPRIETARY_TLV_BASE_ID + 46)
-+/** TLV Id : Tx Power */
-+#define MRVL_TX_POWER_TLV_ID (PROPRIETARY_TLV_BASE_ID + 47)
-+/** TLV Id : Broadcast SSID control */
-+#define MRVL_BCAST_SSID_CTL_TLV_ID (PROPRIETARY_TLV_BASE_ID + 48)
-+/** TLV Id : Preamble control */
-+#define MRVL_PREAMBLE_CTL_TLV_ID (PROPRIETARY_TLV_BASE_ID + 49)
-+/** TLV Id : Antenna control */
-+#define MRVL_ANTENNA_CTL_TLV_ID (PROPRIETARY_TLV_BASE_ID + 50)
-+/** TLV Id : RTS threshold */
-+#define MRVL_RTS_THRESHOLD_TLV_ID (PROPRIETARY_TLV_BASE_ID + 51)
-+/** TLV Id : Radio control */
-+#define MRVL_RADIO_CTL_TLV_ID (PROPRIETARY_TLV_BASE_ID + 52)
-+/** TLV Id : TX data rate */
-+#define MRVL_TX_DATA_RATE_TLV_ID (PROPRIETARY_TLV_BASE_ID + 53)
-+/** TLV Id : Packet forward control */
-+#define MRVL_PKT_FWD_CTL_TLV_ID (PROPRIETARY_TLV_BASE_ID + 54)
-+/** TLV Id : STA info */
-+#define MRVL_STA_INFO_TLV_ID (PROPRIETARY_TLV_BASE_ID + 55)
-+/** TLV Id : STA MAC address filter */
-+#define MRVL_STA_MAC_ADDR_FILTER_TLV_ID (PROPRIETARY_TLV_BASE_ID + 56)
-+/** TLV Id : STA ageout timer */
-+#define MRVL_STA_AGEOUT_TIMER_TLV_ID (PROPRIETARY_TLV_BASE_ID + 57)
-+/** TLV Id : Security config */
-+#define MRVL_SECURITY_CFG_TLV_ID (PROPRIETARY_TLV_BASE_ID + 58)
-+/** TLV Id : WEP KEY */
-+#define MRVL_WEP_KEY_TLV_ID (PROPRIETARY_TLV_BASE_ID + 59)
-+/** TLV Id : WPA Passphrase */
-+#define MRVL_WPA_PASSPHRASE_TLV_ID (PROPRIETARY_TLV_BASE_ID + 60)
-+
-+/** Action get */
-+#define ACTION_GET 0
-+/** Action set */
-+#define ACTION_SET 1
-+/** Length of ethernet address */
-+#ifndef ETH_ALEN
-+#define ETH_ALEN 6
-+#endif
-+
-+/** HostCmd_DS_GEN */
-+typedef struct
-+{
-+ /** Command */
-+ u16 Command;
-+ /** Size */
-+ u16 Size;
-+ /** Sequence number */
-+ u16 SeqNum;
-+ /** Result */
-+ u16 Result;
-+} __ATTRIB_PACK__ HostCmd_DS_GEN;
-+
-+/** Size of HostCmd_DS_GEN */
-+#define S_DS_GEN sizeof(HostCmd_DS_GEN)
-+
-+/** _HostCmd_HEADER*/
-+typedef struct
-+{
-+ /** Command Header : Command */
-+ u16 Command;
-+ /** Command Header : Size */
-+ u16 Size;
-+} __ATTRIB_PACK__ HostCmd_HEADER;
-+
-+/** HostCmd_SYS_CONFIG */
-+typedef struct _HostCmd_SYS_CONFIG
-+{
-+ /** CMD Action GET/SET*/
-+ u16 Action;
-+ /** Tlv buffer */
-+ u8 TlvBuffer[0];
-+} __ATTRIB_PACK__ HostCmd_SYS_CONFIG;
-+
-+/** HostCmd_DS_POWER_MGMT_EXT */
-+typedef struct _HostCmd_DS_POWER_MGMT_EXT
-+{
-+ /** CMD Action Get/Set*/
-+ u16 action;
-+ /** power mode */
-+ u16 power_mode;
-+} __ATTRIB_PACK__ HostCmd_DS_POWER_MGMT_EXT;
-+
-+/** _HostCmd_DS_COMMAND*/
-+typedef struct _HostCmd_DS_COMMAND
-+{
-+
-+ /** Command Header : Command */
-+ u16 Command;
-+ /** Command Header : Size */
-+ u16 Size;
-+ /** Command Header : Sequence number */
-+ u16 SeqNum;
-+ /** Command Header : Result */
-+ u16 Result;
-+ /** Command Body */
-+ union
-+ {
-+ HostCmd_SYS_CONFIG sys_config;
-+ HostCmd_DS_POWER_MGMT_EXT pm_cfg;
-+
-+ } params;
-+} __ATTRIB_PACK__ HostCmd_DS_COMMAND;
-+
-+/** MrvlIEtypesHeader_*/
-+typedef struct _MrvlIEtypesHeader
-+{
-+ /** Header type */
-+ u16 Type;
-+ /** Header length */
-+ u16 Len;
-+} __ATTRIB_PACK__ MrvlIEtypesHeader_t;
-+
-+/** MrvlIEtypes_Data_t */
-+typedef struct _MrvlIEtypes_Data_t
-+{
-+ /** Header */
-+ MrvlIEtypesHeader_t Header;
-+ /** Data */
-+ u8 Data[1];
-+} __ATTRIB_PACK__ MrvlIEtypes_Data_t;
-+
-+/** MrvlIEtypes_ChanListParamSet_t */
-+typedef struct _MrvlIEtypes_MacAddr_t
-+{
-+ /** Header */
-+ MrvlIEtypesHeader_t Header;
-+ /** AP MAC address */
-+ u8 ApMacAddr[ETH_ALEN];
-+} __ATTRIB_PACK__ MrvlIEtypes_MacAddr_t;
-+
-+/** Event ID: BSS started */
-+#define MICRO_AP_EV_ID_BSS_START 46
-+
-+/** Event ID: BSS idle event */
-+#define MICRO_AP_EV_BSS_IDLE 67
-+
-+/** Event ID: BSS active event */
-+#define MICRO_AP_EV_BSS_ACTIVE 68
-+
-+/** Event ID: PS_AWAKE */
-+#define EVENT_PS_AWAKE 0x0a
-+
-+/** Event ID: PS_SLEEP */
-+#define EVENT_PS_SLEEP 0x0b
-+
-+/** PS_STATE */
-+typedef enum _PS_STATE
-+{
-+ PS_STATE_AWAKE,
-+ PS_STATE_PRE_SLEEP,
-+ PS_STATE_SLEEP
-+} PS_STATE;
-+
-+/** TLV type: AP Sleep param */
-+#define TLV_TYPE_AP_SLEEP_PARAM (PROPRIETARY_TLV_BASE_ID + 106)
-+/** TLV type: AP Inactivity Sleep param */
-+#define TLV_TYPE_AP_INACT_SLEEP_PARAM (PROPRIETARY_TLV_BASE_ID + 107)
-+
-+/** MrvlIEtypes_sleep_param_t */
-+typedef struct _MrvlIEtypes_sleep_param_t
-+{
-+ /** Header */
-+ MrvlIEtypesHeader_t header;
-+ /** control bitmap */
-+ u32 ctrl_bitmap;
-+ /** min_sleep */
-+ u32 min_sleep;
-+ /** max_sleep */
-+ u32 max_sleep;
-+} __ATTRIB_PACK__ MrvlIEtypes_sleep_param_t;
-+
-+/** MrvlIEtypes_inact_sleep_param_t */
-+typedef struct _MrvlIEtypes_inact_sleep_param_t
-+{
-+ /** Header */
-+ MrvlIEtypesHeader_t header;
-+ /** inactivity timeout */
-+ u32 inactivity_to;
-+ /** min_awake */
-+ u32 min_awake;
-+ /** max_awake */
-+ u32 max_awake;
-+} __ATTRIB_PACK__ MrvlIEtypes_inact_sleep_param_t;
-+
-+/** AP_Event */
-+typedef struct _AP_Event
-+{
-+ /** Event ID */
-+ u32 EventId;
-+ /*
-+ * Reserved for STA_ASSOCIATED event and contains
-+ * status information for the MIC_COUNTERMEASURES event.
-+ */
-+ /** Reserved/status */
-+ u16 status;
-+ /** AP MAC address */
-+ u8 MacAddr[ETH_ALEN];
-+} __ATTRIB_PACK__ AP_Event;
-+#endif /* _UAP_FW_H */
-diff --git a/drivers/net/wireless/libertas_uap/uap_headers.h b/drivers/net/wireless/libertas_uap/uap_headers.h
-new file mode 100644
-index 0000000..fa09af4
---- /dev/null
-+++ b/drivers/net/wireless/libertas_uap/uap_headers.h
-@@ -0,0 +1,64 @@
-+/** @file uap_headers.h
-+ *
-+ * @brief This file contains all the necessary include file.
-+ *
-+ * Copyright (C) 2008-2009, Marvell International Ltd.
-+ *
-+ * This software file (the "File") is distributed by Marvell International
-+ * Ltd. under the terms of the GNU General Public License Version 2, June 1991
-+ * (the "License"). You may use, redistribute and/or modify this File in
-+ * accordance with the terms and conditions of the License, a copy of which
-+ * is available along with the File in the gpl.txt file or by writing to
-+ * the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-+ * 02111-1307 or on the worldwide web at http://www.gnu.org/licenses/gpl.txt.
-+ *
-+ * THE FILE IS DISTRIBUTED AS-IS, WITHOUT WARRANTY OF ANY KIND, AND THE
-+ * IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE
-+ * ARE EXPRESSLY DISCLAIMED. The License provides additional details about
-+ * this warranty disclaimer.
-+ *
-+ */
-+#ifndef _UAP_HEADERS_H
-+#define _UAP_HEADERS_H
-+
-+/* Linux header files */
-+#include <linux/kernel.h>
-+#include <linux/module.h>
-+#include <linux/init.h>
-+#include <linux/version.h>
-+#include <linux/param.h>
-+#include <linux/types.h>
-+#include <linux/interrupt.h>
-+#include <linux/proc_fs.h>
-+#include <linux/kthread.h>
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,27)
-+#include <linux/semaphore.h>
-+#else
-+#include <asm/semaphore.h>
-+#endif
-+
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,18)
-+#include <linux/config.h>
-+#endif
-+
-+/* Net header files */
-+#include <linux/netdevice.h>
-+#include <linux/net.h>
-+#include <linux/skbuff.h>
-+#include <linux/if_ether.h>
-+#include <linux/etherdevice.h>
-+#include <net/sock.h>
-+#include <linux/netlink.h>
-+#include <linux/firmware.h>
-+#include <linux/delay.h>
-+
-+#include "uap_drv.h"
-+#include "uap_fw.h"
-+
-+#include <linux/mmc/sdio.h>
-+#include <linux/mmc/sdio_ids.h>
-+#include <linux/mmc/sdio_func.h>
-+#include <linux/mmc/card.h>
-+#include "uap_sdio_mmc.h"
-+
-+#endif /* _UAP_HEADERS_H */
-diff --git a/drivers/net/wireless/libertas_uap/uap_main.c b/drivers/net/wireless/libertas_uap/uap_main.c
-new file mode 100644
-index 0000000..6ad8403
---- /dev/null
-+++ b/drivers/net/wireless/libertas_uap/uap_main.c
-@@ -0,0 +1,1817 @@
-+/** @file uap_main.c
-+ * @brief This file contains the major functions in uAP
-+ * driver. It includes init, exit etc..
-+ * This file also contains the initialization for SW,
-+ * FW and HW
-+ *
-+ * Copyright (C) 2008-2009, Marvell International Ltd.
-+ *
-+ * This software file (the "File") is distributed by Marvell International
-+ * Ltd. under the terms of the GNU General Public License Version 2, June 1991
-+ * (the "License"). You may use, redistribute and/or modify this File in
-+ * accordance with the terms and conditions of the License, a copy of which
-+ * is available along with the File in the gpl.txt file or by writing to
-+ * the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-+ * 02111-1307 or on the worldwide web at http://www.gnu.org/licenses/gpl.txt.
-+ *
-+ * THE FILE IS DISTRIBUTED AS-IS, WITHOUT WARRANTY OF ANY KIND, AND THE
-+ * IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE
-+ * ARE EXPRESSLY DISCLAIMED. The License provides additional details about
-+ * this warranty disclaimer.
-+ *
-+ */
-+/**
-+ * @mainpage uAP Linux Driver
-+ *
-+ * @section overview_sec Overview
-+ *
-+ * This is Linux reference driver for Marvell uAP.
-+ *
-+ * @section copyright_sec Copyright
-+ *
-+ * Copyright (C) 2008, Marvell International Ltd.
-+ *
-+ */
-+
-+#include "uap_headers.h"
-+
-+/**
-+ * the global variable of a pointer to uap_private
-+ * structure variable
-+ */
-+uap_private *uappriv = NULL;
-+#ifdef DEBUG_LEVEL1
-+#define DEFAULT_DEBUG_MASK (DBG_MSG | DBG_FATAL | DBG_ERROR)
-+u32 drvdbg = DEFAULT_DEBUG_MASK;
-+#endif
-+/** Helper name */
-+char *helper_name = NULL;
-+/** Firmware name */
-+char *fw_name = NULL;
-+
-+/** Semaphore for add/remove card */
-+SEMAPHORE AddRemoveCardSem;
-+
-+/********************************************************
-+ Local Functions
-+********************************************************/
-+/**
-+ * @brief This function send sleep confirm command to firmware
-+ *
-+ * @param priv A pointer to uap_private structure
-+ * @return UAP_STATUS_SUCCESS for success otherwise UAP_STATUS_FAILURE
-+ */
-+static int
-+uap_dnld_sleep_confirm_cmd(uap_private * priv)
-+{
-+ uap_adapter *Adapter = priv->adapter;
-+ int ret = UAP_STATUS_SUCCESS;
-+ ENTER();
-+ PRINTM(CMND, "Sleep confirm\n");
-+ Adapter->cmd_pending = TRUE;
-+ Adapter->cmd_wait_option = HostCmd_OPTION_WAITFORRSP_SLEEPCONFIRM;
-+ ret =
-+ sbi_host_to_card(priv, (u8 *) & Adapter->PSConfirmSleep,
-+ sizeof(PS_CMD_ConfirmSleep));
-+ if (ret != UAP_STATUS_SUCCESS) {
-+ Adapter->ps_state = PS_STATE_AWAKE;
-+ Adapter->cmd_pending = FALSE;
-+ Adapter->cmd_wait_option = FALSE;
-+ }
-+ LEAVE();
-+ return ret;
-+}
-+
-+/**
-+ * @brief This function process sleep confirm resp from firmware
-+ *
-+ * @param priv A pointer to uap_private structure
-+ * @param resp A pointer to resp buf
-+ * @param resp_len resp buf len
-+ * @return UAP_STATUS_SUCCESS for success otherwise UAP_STATUS_FAILURE
-+ */
-+int
-+uap_process_sleep_confirm_resp(uap_private * priv, u8 * resp, int resp_len)
-+{
-+ int ret = UAP_STATUS_SUCCESS;
-+ HostCmd_DS_COMMAND *cmd;
-+ uap_adapter *Adapter = priv->adapter;
-+ ENTER();
-+ PRINTM(CMND, "Sleep confirm resp\n");
-+ if (!resp_len) {
-+ PRINTM(ERROR, "Cmd Size is 0\n");
-+ ret = -EFAULT;
-+ goto done;
-+ }
-+ cmd = (HostCmd_DS_COMMAND *) resp;
-+ cmd->Result = uap_le16_to_cpu(cmd->Result);
-+ if (cmd->Result != UAP_STATUS_SUCCESS) {
-+ PRINTM(ERROR, "HOST_CMD_APCMD_PS_SLEEP_CONFIRM fail=%x\n", cmd->Result);
-+ ret = -EFAULT;
-+ }
-+ done:
-+ if (ret == UAP_STATUS_SUCCESS)
-+ Adapter->ps_state = PS_STATE_SLEEP;
-+ else
-+ Adapter->ps_state = PS_STATE_AWAKE;
-+ LEAVE();
-+ return ret;
-+}
-+
-+/**
-+ * @brief This function checks condition and prepares to
-+ * send sleep confirm command to firmware if OK.
-+ *
-+ * @param priv A pointer to uap_private structure
-+ * @return n/a
-+ */
-+static void
-+uap_ps_cond_check(uap_private * priv)
-+{
-+ uap_adapter *Adapter = priv->adapter;
-+
-+ ENTER();
-+ if (!priv->uap_dev.cmd_sent &&
-+ !Adapter->cmd_pending && !Adapter->IntCounter) {
-+ uap_dnld_sleep_confirm_cmd(priv);
-+ } else {
-+ PRINTM(INFO, "Delay Sleep Confirm (%s%s%s)\n",
-+ (priv->uap_dev.cmd_sent) ? "D" : "",
-+ (Adapter->cmd_pending) ? "C" : "",
-+ (Adapter->IntCounter) ? "I" : "");
-+ }
-+ LEAVE();
-+}
-+
-+/**
-+ * @brief This function add cmd to cmdQ and waiting for response
-+ *
-+ * @param priv A pointer to uap_private structure
-+ * @param skb A pointer to the skb for process
-+ * @param wait_option Wait option
-+ * @return UAP_STATUS_SUCCESS for success otherwise UAP_STATUS_FAILURE
-+ */
-+static int
-+uap_process_cmd(uap_private * priv, struct sk_buff *skb, u8 wait_option)
-+{
-+ uap_adapter *Adapter = priv->adapter;
-+ int ret = UAP_STATUS_SUCCESS;
-+ HostCmd_DS_COMMAND *cmd;
-+ u8 *headptr;
-+ ENTER();
-+ if (Adapter->HardwareStatus != HWReady) {
-+ PRINTM(ERROR, "Hw not ready, uap_process_cmd\n");
-+ kfree(skb);
-+ LEAVE();
-+ return -EFAULT;
-+ }
-+ skb->cb[0] = wait_option;
-+ headptr = skb->data;
-+ *(u16 *) & headptr[0] = uap_cpu_to_le16(skb->len);
-+ *(u16 *) & headptr[2] = uap_cpu_to_le16(MV_TYPE_CMD);
-+ cmd = (HostCmd_DS_COMMAND *) (skb->data + INTF_HEADER_LEN);
-+ Adapter->SeqNum++;
-+ cmd->SeqNum = uap_cpu_to_le16(Adapter->SeqNum);
-+ PRINTM(CMND, "process_cmd: %x\n", cmd->Command);
-+ DBG_HEXDUMP(CMD_D, "process_cmd", (u8 *) cmd, cmd->Size);
-+ if (!wait_option) {
-+ skb_queue_tail(&priv->adapter->cmd_queue, skb);
-+ wake_up_interruptible(&priv->MainThread.waitQ);
-+ LEAVE();
-+ return ret;
-+ }
-+ if (OS_ACQ_SEMAPHORE_BLOCK(&Adapter->CmdSem)) {
-+ PRINTM(ERROR, "Acquire semaphore error, uap_prepare_cmd\n");
-+ kfree(skb);
-+ LEAVE();
-+ return -EBUSY;
-+ }
-+ skb_queue_tail(&priv->adapter->cmd_queue, skb);
-+ Adapter->CmdWaitQWoken = FALSE;
-+ wake_up_interruptible(&priv->MainThread.waitQ);
-+ /* Sleep until response is generated by FW */
-+ if (wait_option == HostCmd_OPTION_WAITFORRSP_TIMEOUT) {
-+ if (!os_wait_interruptible_timeout
-+ (Adapter->cmdwait_q, Adapter->CmdWaitQWoken, MRVDRV_TIMER_20S)) {
-+ PRINTM(ERROR, "Cmd timeout\n");
-+ Adapter->cmd_pending = FALSE;
-+ ret = -EFAULT;
-+ }
-+ } else
-+ wait_event_interruptible(Adapter->cmdwait_q, Adapter->CmdWaitQWoken);
-+ OS_REL_SEMAPHORE(&Adapter->CmdSem);
-+ LEAVE();
-+ return ret;
-+}
-+
-+/**
-+ * @brief Inspect the response buffer for pointers to expected TLVs
-+ *
-+ *
-+ * @param pTlv Pointer to the start of the TLV buffer to parse
-+ * @param tlvBufSize Size of the TLV buffer
-+ * @param reqTlvType request tlv's tlvtype
-+ * @param ppTlv Output parameter: Pointer to the request TLV if found
-+ *
-+ * @return void
-+ */
-+static void
-+uap_get_tlv_ptrs(MrvlIEtypes_Data_t * pTlv, int tlvBufSize,
-+ u16 reqTlvType, MrvlIEtypes_Data_t ** ppTlv)
-+{
-+ MrvlIEtypes_Data_t *pCurrentTlv;
-+ int tlvBufLeft;
-+ u16 tlvType;
-+ u16 tlvLen;
-+
-+ ENTER();
-+ pCurrentTlv = pTlv;
-+ tlvBufLeft = tlvBufSize;
-+ *ppTlv = NULL;
-+ PRINTM(INFO, "uap_get_tlv: tlvBufSize = %d, reqTlvType=%x\n", tlvBufSize,
-+ reqTlvType);
-+ while (tlvBufLeft >= sizeof(MrvlIEtypesHeader_t)) {
-+ tlvType = uap_le16_to_cpu(pCurrentTlv->Header.Type);
-+ tlvLen = uap_le16_to_cpu(pCurrentTlv->Header.Len);
-+ if (reqTlvType == tlvType)
-+ *ppTlv = (MrvlIEtypes_Data_t *) pCurrentTlv;
-+ if (*ppTlv) {
-+ HEXDUMP("TLV Buf", (u8 *) * ppTlv, tlvLen);
-+ break;
-+ }
-+ tlvBufLeft -= (sizeof(pTlv->Header) + tlvLen);
-+ pCurrentTlv = (MrvlIEtypes_Data_t *) (pCurrentTlv->Data + tlvLen);
-+ } /* while */
-+ LEAVE();
-+}
-+
-+/**
-+ * @brief This function get mac
-+ *
-+ * @param priv A pointer to uap_private structure
-+ * @return UAP_STATUS_SUCCESS on success, otherwise failure code
-+ */
-+static int
-+uap_get_mac_address(uap_private * priv)
-+{
-+ int ret = UAP_STATUS_SUCCESS;
-+ u32 CmdSize;
-+ HostCmd_DS_COMMAND *cmd;
-+ uap_adapter *Adapter = priv->adapter;
-+ struct sk_buff *skb;
-+ MrvlIEtypes_MacAddr_t *pMacAddrTlv;
-+ MrvlIEtypes_Data_t *pTlv;
-+ u16 tlvBufSize;
-+ ENTER();
-+ skb = dev_alloc_skb(MRVDRV_SIZE_OF_CMD_BUFFER);
-+ if (!skb) {
-+ PRINTM(ERROR, "No free skb\n");
-+ ret = -ENOMEM;
-+ goto done;
-+ }
-+ CmdSize =
-+ S_DS_GEN + sizeof(HostCmd_SYS_CONFIG) + sizeof(MrvlIEtypes_MacAddr_t);
-+ cmd = (HostCmd_DS_COMMAND *) (skb->data + INTF_HEADER_LEN);
-+ cmd->Command = uap_cpu_to_le16(HOST_CMD_APCMD_SYS_CONFIGURE);
-+ cmd->Size = uap_cpu_to_le16(CmdSize);
-+ cmd->params.sys_config.Action = uap_cpu_to_le16(ACTION_GET);
-+ pMacAddrTlv =
-+ (MrvlIEtypes_MacAddr_t *) (skb->data + INTF_HEADER_LEN + S_DS_GEN +
-+ sizeof(HostCmd_SYS_CONFIG));
-+ pMacAddrTlv->Header.Type = uap_cpu_to_le16(MRVL_AP_MAC_ADDRESS_TLV_ID);
-+ pMacAddrTlv->Header.Len = uap_cpu_to_le16(ETH_ALEN);
-+ skb_put(skb, CmdSize + INTF_HEADER_LEN);
-+ if (UAP_STATUS_SUCCESS !=
-+ uap_process_cmd(priv, skb, HostCmd_OPTION_WAITFORRSP_TIMEOUT)) {
-+ PRINTM(ERROR, "Fail to process cmd SYS_CONFIGURE Query\n");
-+ ret = -EFAULT;
-+ goto done;
-+ }
-+ if (!Adapter->CmdSize) {
-+ PRINTM(ERROR, "Cmd Size is 0\n");
-+ ret = -EFAULT;
-+ goto done;
-+ }
-+ cmd = (HostCmd_DS_COMMAND *) Adapter->CmdBuf;
-+ cmd->Result = uap_le16_to_cpu(cmd->Result);
-+ if (cmd->Result != UAP_STATUS_SUCCESS) {
-+ PRINTM(ERROR, "uap_get_mac_address fail=%x\n", cmd->Result);
-+ ret = -EFAULT;
-+ goto done;
-+ }
-+ pTlv =
-+ (MrvlIEtypes_Data_t *) (Adapter->CmdBuf + S_DS_GEN +
-+ sizeof(HostCmd_SYS_CONFIG));
-+ tlvBufSize = Adapter->CmdSize - S_DS_GEN - sizeof(HostCmd_SYS_CONFIG);
-+ uap_get_tlv_ptrs(pTlv, tlvBufSize, MRVL_AP_MAC_ADDRESS_TLV_ID,
-+ (MrvlIEtypes_Data_t **) & pMacAddrTlv);
-+ if (pMacAddrTlv) {
-+ memcpy(priv->uap_dev.netdev->dev_addr, pMacAddrTlv->ApMacAddr,
-+ ETH_ALEN);
-+ HEXDUMP("Original MAC addr", priv->uap_dev.netdev->dev_addr, ETH_ALEN);
-+ }
-+ done:
-+ LEAVE();
-+ return ret;
-+}
-+
-+/**
-+ * @brief This function checks the conditions and sends packet to device
-+ *
-+ * @param priv A pointer to uap_private structure
-+ * @param skb A pointer to the skb for process
-+ * @return UAP_STATUS_SUCCESS or UAP_STATUS_FAILURE
-+ */
-+static int
-+uap_process_tx(uap_private * priv, struct sk_buff *skb)
-+{
-+ uap_adapter *Adapter = priv->adapter;
-+ int ret = UAP_STATUS_SUCCESS;
-+ TxPD *pLocalTxPD;
-+ u8 *headptr;
-+ struct sk_buff *newskb;
-+ int newheadlen;
-+ ENTER();
-+ ASSERT(skb);
-+ if (!skb) {
-+ LEAVE();
-+ return UAP_STATUS_FAILURE;
-+ }
-+ if (skb_headroom(skb) < (sizeof(TxPD) + INTF_HEADER_LEN + HEADER_ALIGNMENT)) {
-+ newheadlen = sizeof(TxPD) + INTF_HEADER_LEN + HEADER_ALIGNMENT;
-+ PRINTM(WARN, "Tx: Insufficient skb headroom %d\n", skb_headroom(skb));
-+ /* Insufficient skb headroom - allocate a new skb */
-+ newskb = skb_realloc_headroom(skb, newheadlen);
-+ if (unlikely(newskb == NULL)) {
-+ PRINTM(ERROR, "Tx: Cannot allocate skb\n");
-+ ret = UAP_STATUS_FAILURE;
-+ goto done;
-+ }
-+ kfree_skb(skb);
-+ skb = newskb;
-+ PRINTM(INFO, "new skb headroom %d\n", skb_headroom(skb));
-+ }
-+ /* headptr should be aligned */
-+ headptr = skb->data - sizeof(TxPD) - INTF_HEADER_LEN;
-+ headptr = (u8 *) ((u32) headptr & ~((u32) (HEADER_ALIGNMENT - 1)));
-+
-+ pLocalTxPD = (TxPD *) (headptr + INTF_HEADER_LEN);
-+ memset(pLocalTxPD, 0, sizeof(TxPD));
-+ pLocalTxPD->BssType = PKT_TYPE_MICROAP;
-+ pLocalTxPD->TxPktLength = skb->len;
-+ /* offset of actual data */
-+ pLocalTxPD->TxPktOffset = (long) skb->data - (long) pLocalTxPD;
-+ endian_convert_TxPD(pLocalTxPD);
-+ *(u16 *) & headptr[0] =
-+ uap_cpu_to_le16(skb->len + ((long) skb->data - (long) headptr));
-+ *(u16 *) & headptr[2] = uap_cpu_to_le16(MV_TYPE_DAT);
-+ ret =
-+ sbi_host_to_card(priv, headptr,
-+ skb->len + ((long) skb->data - (long) headptr));
-+ if (ret) {
-+ PRINTM(ERROR, "uap_process_tx Error: sbi_host_to_card failed: 0x%X\n",
-+ ret);
-+ Adapter->dbg.num_tx_host_to_card_failure++;
-+ goto done;
-+ }
-+ PRINTM(DATA, "Data => FW\n");
-+ DBG_HEXDUMP(DAT_D, "Tx", headptr,
-+ MIN(skb->len + sizeof(TxPD), DATA_DUMP_LEN));
-+ done:
-+ /* Freed skb */
-+ kfree_skb(skb);
-+ LEAVE();
-+ return ret;
-+}
-+
-+static struct netlink_kernel_cfg cfg = {
-+ .groups = NL_MULTICAST_GROUP,
-+};
-+
-+/**
-+ * @brief This function initializes the adapter structure
-+ * and set default value to the member of adapter.
-+ *
-+ * @param priv A pointer to uap_private structure
-+ * @return UAP_STATUS_SUCCESS or UAP_STATUS_FAILURE
-+ */
-+static int
-+uap_init_sw(uap_private * priv)
-+{
-+ uap_adapter *Adapter = priv->adapter;
-+
-+ ENTER();
-+
-+ if (!(Adapter->CmdBuf = kmalloc(MRVDRV_SIZE_OF_CMD_BUFFER, GFP_KERNEL))) {
-+ PRINTM(INFO, "Failed to allocate command buffer!\n");
-+ LEAVE();
-+ return UAP_STATUS_FAILURE;
-+ }
-+
-+ Adapter->cmd_pending = FALSE;
-+ Adapter->CmdWaitQWoken = FALSE;
-+ Adapter->ps_state = PS_STATE_AWAKE;
-+ Adapter->WakeupTries = 0;
-+
-+ memset(&Adapter->PSConfirmSleep, 0, sizeof(PS_CMD_ConfirmSleep));
-+ /** SDIO header */
-+ Adapter->PSConfirmSleep.SDLen =
-+ uap_cpu_to_le16(sizeof(PS_CMD_ConfirmSleep));
-+ Adapter->PSConfirmSleep.SDType = uap_cpu_to_le16(MV_TYPE_CMD);
-+ Adapter->PSConfirmSleep.SeqNum = 0;
-+ Adapter->PSConfirmSleep.Command = uap_cpu_to_le16(HOST_CMD_SLEEP_CONFIRM);
-+ Adapter->PSConfirmSleep.Size = uap_cpu_to_le16(sizeof(HostCmd_DS_GEN));
-+ Adapter->PSConfirmSleep.Result = 0;
-+
-+ init_waitqueue_head(&Adapter->cmdwait_q);
-+ OS_INIT_SEMAPHORE(&Adapter->CmdSem);
-+
-+ skb_queue_head_init(&Adapter->tx_queue);
-+ skb_queue_head_init(&Adapter->cmd_queue);
-+
-+ /* Status variable */
-+ Adapter->HardwareStatus = HWInitializing;
-+
-+ /* PnP support */
-+ Adapter->SurpriseRemoved = FALSE;
-+
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,22)
-+ Adapter->nl_sk = netlink_kernel_create(NETLINK_MARVELL,
-+ NL_MULTICAST_GROUP, NULL,
-+ THIS_MODULE);
-+#else
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,24)
-+ Adapter->nl_sk = netlink_kernel_create(NETLINK_MARVELL,
-+ NL_MULTICAST_GROUP, NULL, NULL,
-+ THIS_MODULE);
-+#else
-+ Adapter->nl_sk = netlink_kernel_create(&init_net, NETLINK_MARVELL, &cfg);
-+#endif
-+#endif
-+ if (!Adapter->nl_sk) {
-+ PRINTM(ERROR,
-+ "Could not initialize netlink event passing mechanism!\n");
-+ }
-+ LEAVE();
-+ return UAP_STATUS_SUCCESS;
-+}
-+
-+/**
-+ * @brief This function sends FUNC_INIT command to firmware
-+ *
-+ * @param priv A pointer to uap_private structure
-+ * @return UAP_STATUS_SUCCESS on success, otherwise failure code
-+ */
-+static int
-+uap_func_init(uap_private * priv)
-+{
-+ int ret = UAP_STATUS_SUCCESS;
-+ u32 CmdSize;
-+ HostCmd_DS_GEN *cmd;
-+ uap_adapter *Adapter = priv->adapter;
-+ struct sk_buff *skb;
-+ ENTER();
-+ if (Adapter->HardwareStatus != HWReady) {
-+ PRINTM(ERROR, "uap_func_init:Hardware is not ready!\n");
-+ ret = -EFAULT;
-+ goto done;
-+ }
-+ skb = dev_alloc_skb(MRVDRV_SIZE_OF_CMD_BUFFER);
-+ if (!skb) {
-+ PRINTM(ERROR, "No free skb\n");
-+ ret = -ENOMEM;
-+ goto done;
-+ }
-+ CmdSize = sizeof(HostCmd_DS_GEN);
-+ cmd = (HostCmd_DS_GEN *) (skb->data + INTF_HEADER_LEN);
-+ cmd->Command = uap_cpu_to_le16(HostCmd_CMD_FUNC_INIT);
-+ cmd->Size = uap_cpu_to_le16(CmdSize);
-+ skb_put(skb, CmdSize + INTF_HEADER_LEN);
-+ PRINTM(CMND, "HostCmd_CMD_FUNC_INIT\n");
-+ if (UAP_STATUS_SUCCESS !=
-+ uap_process_cmd(priv, skb, HostCmd_OPTION_WAITFORRSP_TIMEOUT)) {
-+ PRINTM(ERROR, "Fail to process cmd HostCmd_CMD_FUNC_INIT\n");
-+ ret = -EFAULT;
-+ goto done;
-+ }
-+ done:
-+ LEAVE();
-+ return ret;
-+}
-+
-+/**
-+ * @brief This function sends FUNC_SHUTDOWN command to firmware
-+ *
-+ * @param priv A pointer to uap_private structure
-+ * @return UAP_STATUS_SUCCESS on success, otherwise failure code
-+ */
-+static int __exit
-+uap_func_shutdown(uap_private * priv)
-+{
-+ int ret = UAP_STATUS_SUCCESS;
-+ u32 CmdSize;
-+ HostCmd_DS_GEN *cmd;
-+ uap_adapter *Adapter = priv->adapter;
-+ struct sk_buff *skb;
-+ ENTER();
-+ if (Adapter->HardwareStatus != HWReady) {
-+ PRINTM(ERROR, "uap_func_shutdown:Hardware is not ready!\n");
-+ ret = -EFAULT;
-+ goto done;
-+ }
-+ skb = dev_alloc_skb(MRVDRV_SIZE_OF_CMD_BUFFER);
-+ if (!skb) {
-+ PRINTM(ERROR, "No free skb\n");
-+ ret = -ENOMEM;
-+ goto done;
-+ }
-+ CmdSize = sizeof(HostCmd_DS_GEN);
-+ cmd = (HostCmd_DS_GEN *) (skb->data + INTF_HEADER_LEN);
-+ cmd->Command = uap_cpu_to_le16(HostCmd_CMD_FUNC_SHUTDOWN);
-+ cmd->Size = uap_cpu_to_le16(CmdSize);
-+ skb_put(skb, CmdSize + INTF_HEADER_LEN);
-+ PRINTM(CMND, "HostCmd_CMD_FUNC_SHUTDOWN\n");
-+ if (UAP_STATUS_SUCCESS !=
-+ uap_process_cmd(priv, skb, HostCmd_OPTION_WAITFORRSP_TIMEOUT)) {
-+ PRINTM(ERROR, "Fail to process cmd HostCmd_CMD_FUNC_SHUTDOWN\n");
-+ ret = -EFAULT;
-+ goto done;
-+ }
-+ done:
-+ LEAVE();
-+ return ret;
-+}
-+
-+/**
-+ * @brief This function initializes firmware
-+ *
-+ * @param priv A pointer to uap_private structure
-+ * @return UAP_STATUS_SUCCESS or UAP_STATUS_FAILURE
-+ */
-+static int
-+uap_init_fw(uap_private * priv)
-+{
-+ int ret = UAP_STATUS_SUCCESS;
-+ ENTER();
-+ sbi_disable_host_int(priv);
-+ /* Check if firmware is already running */
-+ if (sbi_check_fw_status(priv, 1) == UAP_STATUS_SUCCESS) {
-+ PRINTM(MSG, "UAP FW already running! Skip FW download\n");
-+ } else {
-+ if ((ret = request_firmware(&priv->fw_helper, helper_name,
-+ priv->hotplug_device)) < 0) {
-+ PRINTM(FATAL,
-+ "request_firmware() failed (helper), error code = %#x\n",
-+ ret);
-+ goto done;
-+ }
-+
-+ /* Download the helper */
-+ ret = sbi_prog_helper(priv);
-+
-+ if (ret) {
-+ PRINTM(FATAL,
-+ "Bootloader in invalid state! Helper download failed!\n");
-+ ret = UAP_STATUS_FAILURE;
-+ goto done;
-+ }
-+ if ((ret = request_firmware(&priv->firmware, fw_name,
-+ priv->hotplug_device)) < 0) {
-+ PRINTM(FATAL, "request_firmware() failed, error code = %#x\n", ret);
-+ goto done;
-+ }
-+
-+ /* Download the main firmware via the helper firmware */
-+ if (sbi_prog_fw_w_helper(priv)) {
-+ PRINTM(FATAL, "UAP FW download failed!\n");
-+ ret = UAP_STATUS_FAILURE;
-+ goto done;
-+ }
-+ /* Check if the firmware is downloaded successfully or not */
-+ if (sbi_check_fw_status(priv, MAX_FIRMWARE_POLL_TRIES) ==
-+ UAP_STATUS_FAILURE) {
-+ PRINTM(FATAL, "FW failed to be active in time!\n");
-+ ret = UAP_STATUS_FAILURE;
-+ goto done;
-+ }
-+ PRINTM(MSG, "UAP FW is active\n");
-+ }
-+ sbi_enable_host_int(priv);
-+ priv->adapter->HardwareStatus = HWReady;
-+ if (uap_func_init(priv) != UAP_STATUS_SUCCESS) {
-+ ret = UAP_STATUS_FAILURE;
-+ goto done;
-+ }
-+ done:
-+ if (priv->fw_helper)
-+ release_firmware(priv->fw_helper);
-+ if (priv->firmware)
-+ release_firmware(priv->firmware);
-+ LEAVE();
-+ return ret;
-+
-+}
-+
-+/**
-+ * @brief This function frees the structure of adapter
-+ *
-+ * @param priv A pointer to uap_private structure
-+ * @return n/a
-+ */
-+static void
-+uap_free_adapter(uap_private * priv)
-+{
-+ uap_adapter *Adapter = priv->adapter;
-+
-+ ENTER();
-+
-+ if (Adapter) {
-+ if ((Adapter->nl_sk) && ((Adapter->nl_sk)->sk_socket)) {
-+ sock_release((Adapter->nl_sk)->sk_socket);
-+ Adapter->nl_sk = NULL;
-+ }
-+ if (Adapter->CmdBuf)
-+ kfree(Adapter->CmdBuf);
-+ skb_queue_purge(&priv->adapter->tx_queue);
-+ skb_queue_purge(&priv->adapter->cmd_queue);
-+ /* Free the adapter object itself */
-+ kfree(Adapter);
-+ priv->adapter = NULL;
-+ }
-+
-+ LEAVE();
-+}
-+
-+/**
-+ * @brief This function handles the major job in uap driver.
-+ * it handles the event generated by firmware, rx data received
-+ * from firmware and tx data sent from kernel.
-+ *
-+ * @param data A pointer to uap_thread structure
-+ * @return BT_STATUS_SUCCESS
-+ */
-+static int
-+uap_service_main_thread(void *data)
-+{
-+ uap_thread *thread = data;
-+ uap_private *priv = thread->priv;
-+ uap_adapter *Adapter = priv->adapter;
-+ wait_queue_t wait;
-+ u8 ireg = 0;
-+ struct sk_buff *skb;
-+ ENTER();
-+ uap_activate_thread(thread);
-+ init_waitqueue_entry(&wait, current);
-+ current->flags |= PF_NOFREEZE;
-+
-+ for (;;) {
-+ add_wait_queue(&thread->waitQ, &wait);
-+ OS_SET_THREAD_STATE(TASK_INTERRUPTIBLE);
-+ if ((Adapter->WakeupTries) ||
-+ (!Adapter->IntCounter && Adapter->ps_state == PS_STATE_PRE_SLEEP) ||
-+ (!priv->adapter->IntCounter
-+ && (priv->uap_dev.data_sent ||
-+ skb_queue_empty(&priv->adapter->tx_queue))
-+ && (priv->uap_dev.cmd_sent || Adapter->cmd_pending ||
-+ skb_queue_empty(&priv->adapter->cmd_queue))
-+ )) {
-+ PRINTM(INFO, "Main: Thread sleeping...\n");
-+ schedule();
-+ }
-+ OS_SET_THREAD_STATE(TASK_RUNNING);
-+ remove_wait_queue(&thread->waitQ, &wait);
-+ if (kthread_should_stop() || Adapter->SurpriseRemoved) {
-+ PRINTM(INFO, "main-thread: break from main thread: "
-+ "SurpriseRemoved=0x%x\n", Adapter->SurpriseRemoved);
-+ /* Cancel pending command */
-+ if (Adapter->cmd_pending == TRUE) {
-+ /* Wake up cmd Q */
-+ Adapter->CmdWaitQWoken = TRUE;
-+ wake_up_interruptible(&Adapter->cmdwait_q);
-+ }
-+ break;
-+ }
-+
-+ PRINTM(INFO, "Main: Thread waking up...\n");
-+ if (priv->adapter->IntCounter) {
-+ OS_INT_DISABLE;
-+ Adapter->IntCounter = 0;
-+ OS_INT_RESTORE;
-+ sbi_get_int_status(priv, &ireg);
-+ } else if ((priv->adapter->ps_state == PS_STATE_SLEEP) &&
-+ (!skb_queue_empty(&priv->adapter->cmd_queue) ||
-+ !skb_queue_empty(&priv->adapter->tx_queue))) {
-+ priv->adapter->WakeupTries++;
-+ PRINTM(CMND, "%lu : Wakeup device...\n", os_time_get());
-+ sbi_wakeup_firmware(priv);
-+ continue;
-+ }
-+ if (Adapter->ps_state == PS_STATE_PRE_SLEEP)
-+ uap_ps_cond_check(priv);
-+
-+ /* The PS state is changed during processing of Sleep Request event
-+ above */
-+ if ((Adapter->ps_state == PS_STATE_SLEEP) ||
-+ (Adapter->ps_state == PS_STATE_PRE_SLEEP))
-+ continue;
-+ /* Execute the next command */
-+ if (!priv->uap_dev.cmd_sent && !Adapter->cmd_pending &&
-+ (Adapter->HardwareStatus == HWReady)) {
-+ if (!skb_queue_empty(&priv->adapter->cmd_queue)) {
-+ skb = skb_dequeue(&priv->adapter->cmd_queue);
-+ if (skb) {
-+ Adapter->CmdSize = 0;
-+ Adapter->cmd_pending = TRUE;
-+ Adapter->cmd_wait_option = skb->cb[0];
-+ if (sbi_host_to_card(priv, skb->data, skb->len)) {
-+ PRINTM(ERROR, "Cmd:sbi_host_to_card failed!\n");
-+ Adapter->cmd_pending = FALSE;
-+ Adapter->dbg.num_cmd_host_to_card_failure++;
-+ /* Wake up cmd Q */
-+ Adapter->CmdWaitQWoken = TRUE;
-+ wake_up_interruptible(&Adapter->cmdwait_q);
-+ } else {
-+ if (Adapter->cmd_wait_option ==
-+ HostCmd_OPTION_WAITFORSEND) {
-+ /* Wake up cmd Q */
-+ Adapter->CmdWaitQWoken = TRUE;
-+ wake_up_interruptible(&Adapter->cmdwait_q);
-+ Adapter->cmd_wait_option = FALSE;
-+ }
-+ }
-+ kfree_skb(skb);
-+ }
-+ }
-+ }
-+ if (!priv->uap_dev.data_sent && (Adapter->HardwareStatus == HWReady)) {
-+ if (!skb_queue_empty(&priv->adapter->tx_queue)) {
-+ skb = skb_dequeue(&priv->adapter->tx_queue);
-+ if (skb) {
-+ if (uap_process_tx(priv, skb)) {
-+ priv->stats.tx_dropped++;
-+ priv->stats.tx_errors++;
-+ os_start_queue(priv);
-+ } else {
-+ priv->stats.tx_packets++;
-+ priv->stats.tx_bytes += skb->len;
-+ }
-+
-+ }
-+ }
-+ }
-+ }
-+ uap_deactivate_thread(thread);
-+ LEAVE();
-+ return UAP_STATUS_SUCCESS;
-+}
-+
-+/**
-+ * @brief uap hostcmd ioctl handler
-+ *
-+ * @param dev A pointer to net_device structure
-+ * @param req A pointer to ifreq structure
-+ * @return UAP_STATUS_SUCCESS --success, otherwise fail
-+ */
-+/********* format of ifr_data *************/
-+/* buf_len + Hostcmd_body */
-+/* buf_len: 4 bytes */
-+/* the length of the buf which */
-+/* can be used to return data */
-+/* to application */
-+/* Hostcmd_body */
-+/*******************************************/
-+static int
-+uap_hostcmd_ioctl(struct net_device *dev, struct ifreq *req)
-+{
-+ u32 buf_len;
-+ HostCmd_HEADER head;
-+ uap_private *priv = (uap_private *) netdev_priv(dev);
-+ uap_adapter *Adapter = priv->adapter;
-+ int ret = UAP_STATUS_SUCCESS;
-+ struct sk_buff *skb;
-+
-+ ENTER();
-+
-+ /* Sanity check */
-+ if (req->ifr_data == NULL) {
-+ PRINTM(ERROR, "uap_hostcmd_ioctl() corrupt data\n");
-+ LEAVE();
-+ return -EFAULT;
-+ }
-+ if (copy_from_user(&buf_len, req->ifr_data, sizeof(buf_len))) {
-+ PRINTM(ERROR, "Copy from user failed\n");
-+ LEAVE();
-+ return -EFAULT;
-+ }
-+ memset(&head, 0, sizeof(HostCmd_HEADER));
-+ /* Get the command size from user space */
-+ if (copy_from_user
-+ (&head, req->ifr_data + sizeof(buf_len), sizeof(HostCmd_HEADER))) {
-+ PRINTM(ERROR, "Copy from user failed\n");
-+ LEAVE();
-+ return -EFAULT;
-+ }
-+ head.Size = uap_le16_to_cpu(head.Size);
-+ if (head.Size > MRVDRV_SIZE_OF_CMD_BUFFER) {
-+ PRINTM(ERROR, "CmdSize too big=%d\n", head.Size);
-+ LEAVE();
-+ return -EFAULT;
-+ }
-+ PRINTM(CMND, "ioctl: hostcmd=%x, size=%d,buf_len=%d\n", head.Command,
-+ head.Size, buf_len);
-+ skb = dev_alloc_skb(head.Size + INTF_HEADER_LEN);
-+ if (!skb) {
-+ PRINTM(ERROR, "No free skb\n");
-+ LEAVE();
-+ return -ENOMEM;
-+ }
-+
-+ /* Get the command from user space */
-+ if (copy_from_user
-+ (skb->data + INTF_HEADER_LEN, req->ifr_data + sizeof(buf_len),
-+ head.Size)) {
-+ PRINTM(ERROR, "Copy from user failed\n");
-+ LEAVE();
-+ return -EFAULT;
-+ }
-+ skb_put(skb, head.Size + INTF_HEADER_LEN);
-+ if (UAP_STATUS_SUCCESS !=
-+ uap_process_cmd(priv, skb, HostCmd_OPTION_WAITFORRSP)) {
-+ PRINTM(ERROR, "Fail to process cmd\n");
-+ LEAVE();
-+ return -EFAULT;
-+ }
-+ if (!Adapter->CmdSize) {
-+ PRINTM(ERROR, "Cmd Size is 0\n");
-+ LEAVE();
-+ return -EFAULT;
-+ }
-+ if (Adapter->CmdSize > buf_len) {
-+ PRINTM(ERROR, "buf_len is too small\n");
-+ LEAVE();
-+ return -EFAULT;
-+ }
-+ /* Copy to user */
-+ if (copy_to_user
-+ (req->ifr_data + sizeof(buf_len), Adapter->CmdBuf, Adapter->CmdSize)) {
-+ PRINTM(ERROR, "Copy to user failed!\n");
-+ LEAVE();
-+ return -EFAULT;
-+ }
-+ LEAVE();
-+ return ret;
-+}
-+
-+/**
-+ * @brief uap power mode ioctl handler
-+ *
-+ * @param dev A pointer to net_device structure
-+ * @param req A pointer to ifreq structure
-+ * @return UAP_STATUS_SUCCESS --success, otherwise fail
-+ */
-+static int
-+uap_power_mode_ioctl(struct net_device *dev, struct ifreq *req)
-+{
-+ ps_mgmt pm_cfg;
-+ int ret = UAP_STATUS_SUCCESS;
-+ uap_private *priv = (uap_private *) netdev_priv(dev);
-+ uap_adapter *Adapter = priv->adapter;
-+ struct sk_buff *skb = NULL;
-+ HostCmd_DS_COMMAND *cmd;
-+ u32 CmdSize;
-+ u8 *tlv = NULL;
-+ MrvlIEtypes_sleep_param_t *sleep_tlv = NULL;
-+ MrvlIEtypes_inact_sleep_param_t *inact_tlv = NULL;
-+ u16 tlv_buf_left = 0;
-+ MrvlIEtypesHeader_t *tlvbuf = NULL;
-+ u16 tlv_type = 0;
-+ u16 tlv_len = 0;
-+
-+ ENTER();
-+
-+ /* Sanity check */
-+ if (req->ifr_data == NULL) {
-+ PRINTM(ERROR, "uap_power_mode_ioctl() corrupt data\n");
-+ LEAVE();
-+ return -EFAULT;
-+ }
-+
-+ memset(&pm_cfg, 0, sizeof(ps_mgmt));
-+ if (copy_from_user(&pm_cfg, req->ifr_data, sizeof(ps_mgmt))) {
-+ PRINTM(ERROR, "Copy from user failed\n");
-+ LEAVE();
-+ return -EFAULT;
-+ }
-+ PRINTM(CMND,
-+ "ioctl power: flag=0x%x ps_mode=%d ctrl_bitmap=%d min_sleep=%d max_sleep=%d "
-+ "inact_to=%d min_awake=%d max_awake=%d\n", pm_cfg.flags,
-+ (int) pm_cfg.ps_mode, (int) pm_cfg.sleep_param.ctrl_bitmap,
-+ (int) pm_cfg.sleep_param.min_sleep,
-+ (int) pm_cfg.sleep_param.max_sleep,
-+ (int) pm_cfg.inact_param.inactivity_to,
-+ (int) pm_cfg.inact_param.min_awake,
-+ (int) pm_cfg.inact_param.max_awake);
-+
-+ if (pm_cfg.
-+ flags & ~(PS_FLAG_PS_MODE | PS_FLAG_SLEEP_PARAM |
-+ PS_FLAG_INACT_SLEEP_PARAM)) {
-+ PRINTM(ERROR, "Invalid parameter: flags = 0x%x\n", pm_cfg.flags);
-+ ret = -EINVAL;
-+ goto done;
-+ }
-+ if (pm_cfg.ps_mode > PS_MODE_INACTIVITY) {
-+ PRINTM(ERROR, "Invalid parameter: ps_mode = %d\n", (int) pm_cfg.flags);
-+ ret = -EINVAL;
-+ goto done;
-+ }
-+
-+ skb = dev_alloc_skb(MRVDRV_SIZE_OF_CMD_BUFFER);
-+ if (!skb) {
-+ PRINTM(INFO, "No free skb\n");
-+ ret = -ENOMEM;
-+ goto done;
-+ }
-+
-+ CmdSize = S_DS_GEN + sizeof(HostCmd_DS_POWER_MGMT_EXT);
-+
-+ cmd = (HostCmd_DS_COMMAND *) (skb->data + INTF_HEADER_LEN);
-+ cmd->Command = uap_cpu_to_le16(HOST_CMD_POWER_MGMT_EXT);
-+ if (!pm_cfg.flags) {
-+ cmd->params.pm_cfg.action = uap_cpu_to_le16(ACTION_GET);
-+ } else {
-+ cmd->params.pm_cfg.action = uap_cpu_to_le16(ACTION_SET);
-+ cmd->params.pm_cfg.power_mode = uap_cpu_to_le16(pm_cfg.ps_mode);
-+ tlv = (u8 *) & cmd->params.pm_cfg + sizeof(HostCmd_DS_POWER_MGMT_EXT);
-+
-+ if ((pm_cfg.ps_mode) && (pm_cfg.flags & PS_FLAG_SLEEP_PARAM)) {
-+ sleep_tlv = (MrvlIEtypes_sleep_param_t *) tlv;
-+ sleep_tlv->header.Type = uap_cpu_to_le16(TLV_TYPE_AP_SLEEP_PARAM);
-+ sleep_tlv->header.Len =
-+ uap_cpu_to_le16(sizeof(MrvlIEtypes_sleep_param_t) -
-+ sizeof(MrvlIEtypesHeader_t));
-+ sleep_tlv->ctrl_bitmap =
-+ uap_cpu_to_le32(pm_cfg.sleep_param.ctrl_bitmap);
-+ sleep_tlv->min_sleep =
-+ uap_cpu_to_le32(pm_cfg.sleep_param.min_sleep);
-+ sleep_tlv->max_sleep =
-+ uap_cpu_to_le32(pm_cfg.sleep_param.max_sleep);
-+ CmdSize += sizeof(MrvlIEtypes_sleep_param_t);
-+ tlv += sizeof(MrvlIEtypes_sleep_param_t);
-+ }
-+ if ((pm_cfg.ps_mode == PS_MODE_INACTIVITY) &&
-+ (pm_cfg.flags & PS_FLAG_INACT_SLEEP_PARAM)) {
-+ inact_tlv = (MrvlIEtypes_inact_sleep_param_t *) tlv;
-+ inact_tlv->header.Type =
-+ uap_cpu_to_le16(TLV_TYPE_AP_INACT_SLEEP_PARAM);
-+ inact_tlv->header.Len =
-+ uap_cpu_to_le16(sizeof(MrvlIEtypes_inact_sleep_param_t) -
-+ sizeof(MrvlIEtypesHeader_t));
-+ inact_tlv->inactivity_to =
-+ uap_cpu_to_le32(pm_cfg.inact_param.inactivity_to);
-+ inact_tlv->min_awake =
-+ uap_cpu_to_le32(pm_cfg.inact_param.min_awake);
-+ inact_tlv->max_awake =
-+ uap_cpu_to_le32(pm_cfg.inact_param.max_awake);
-+ CmdSize += sizeof(MrvlIEtypes_inact_sleep_param_t);
-+ tlv += sizeof(MrvlIEtypes_inact_sleep_param_t);
-+ }
-+ }
-+ cmd->Size = uap_cpu_to_le16(CmdSize);
-+ skb_put(skb, CmdSize + INTF_HEADER_LEN);
-+ if (UAP_STATUS_SUCCESS !=
-+ uap_process_cmd(priv, skb, HostCmd_OPTION_WAITFORRSP)) {
-+ PRINTM(ERROR, "Fail to process cmd POWER_MODE\n");
-+ ret = -EFAULT;
-+ goto done;
-+ }
-+ if (!Adapter->CmdSize) {
-+ PRINTM(ERROR, "Cmd Size is 0\n");
-+ ret = -EFAULT;
-+ goto done;
-+ }
-+ cmd = (HostCmd_DS_COMMAND *) Adapter->CmdBuf;
-+ cmd->Result = uap_le16_to_cpu(cmd->Result);
-+ if (cmd->Result != UAP_STATUS_SUCCESS) {
-+ PRINTM(ERROR, "HOST_CMD_APCMD_POWER_MODE fail=%x\n", cmd->Result);
-+ ret = -EFAULT;
-+ goto done;
-+ }
-+ if (pm_cfg.flags) {
-+ Adapter->psmode = uap_le16_to_cpu(cmd->params.pm_cfg.power_mode);
-+ } else {
-+ pm_cfg.flags = PS_FLAG_PS_MODE;
-+ pm_cfg.ps_mode = uap_le16_to_cpu(cmd->params.pm_cfg.power_mode);
-+ tlv_buf_left =
-+ cmd->Size - (sizeof(HostCmd_DS_POWER_MGMT_EXT) + S_DS_GEN);
-+ tlvbuf =
-+ (MrvlIEtypesHeader_t *) ((u8 *) & cmd->params.pm_cfg +
-+ sizeof(HostCmd_DS_POWER_MGMT_EXT));
-+ while (tlv_buf_left >= sizeof(MrvlIEtypesHeader_t)) {
-+ tlv_type = uap_le16_to_cpu(tlvbuf->Type);
-+ tlv_len = uap_le16_to_cpu(tlvbuf->Len);
-+ switch (tlv_type) {
-+ case TLV_TYPE_AP_SLEEP_PARAM:
-+ sleep_tlv = (MrvlIEtypes_sleep_param_t *) tlvbuf;
-+ pm_cfg.flags |= PS_FLAG_SLEEP_PARAM;
-+ pm_cfg.sleep_param.ctrl_bitmap =
-+ uap_le32_to_cpu(sleep_tlv->ctrl_bitmap);
-+ pm_cfg.sleep_param.min_sleep =
-+ uap_le32_to_cpu(sleep_tlv->min_sleep);
-+ pm_cfg.sleep_param.max_sleep =
-+ uap_le32_to_cpu(sleep_tlv->max_sleep);
-+ break;
-+ case TLV_TYPE_AP_INACT_SLEEP_PARAM:
-+ inact_tlv = (MrvlIEtypes_inact_sleep_param_t *) tlvbuf;
-+ pm_cfg.flags |= PS_FLAG_INACT_SLEEP_PARAM;
-+ pm_cfg.inact_param.inactivity_to =
-+ uap_le32_to_cpu(inact_tlv->inactivity_to);
-+ pm_cfg.inact_param.min_awake =
-+ uap_le32_to_cpu(inact_tlv->min_awake);
-+ pm_cfg.inact_param.max_awake =
-+ uap_le32_to_cpu(inact_tlv->max_awake);
-+ break;
-+ }
-+ tlv_buf_left -= tlv_len + sizeof(MrvlIEtypesHeader_t);
-+ tlvbuf =
-+ (MrvlIEtypesHeader_t *) ((u8 *) tlvbuf + tlv_len +
-+ sizeof(MrvlIEtypesHeader_t));
-+ }
-+ /* Copy to user */
-+ if (copy_to_user(req->ifr_data, &pm_cfg, sizeof(ps_mgmt))) {
-+ PRINTM(ERROR, "Copy to user failed!\n");
-+ LEAVE();
-+ return -EFAULT;
-+ }
-+ }
-+ done:
-+ LEAVE();
-+ return ret;
-+}
-+
-+/**
-+ * @brief This function send bss_stop command to firmware
-+ *
-+ * @param priv A pointer to uap_private structure
-+ * @return UAP_STATUS_SUCCESS on success, otherwise failure code
-+ */
-+static int
-+uap_bss_stop(uap_private * priv)
-+{
-+ int ret = UAP_STATUS_SUCCESS;
-+ u32 CmdSize;
-+ HostCmd_DS_GEN *cmd;
-+ uap_adapter *Adapter = priv->adapter;
-+ struct sk_buff *skb;
-+ ENTER();
-+ if (Adapter->HardwareStatus != HWReady) {
-+ PRINTM(ERROR, "uap_bss_stop:Hardware is not ready!\n");
-+ ret = -EFAULT;
-+ goto done;
-+ }
-+ skb = dev_alloc_skb(MRVDRV_SIZE_OF_CMD_BUFFER);
-+ if (!skb) {
-+ PRINTM(ERROR, "No free skb\n");
-+ ret = -ENOMEM;
-+ goto done;
-+ }
-+ CmdSize = sizeof(HostCmd_DS_GEN);
-+ cmd = (HostCmd_DS_GEN *) (skb->data + INTF_HEADER_LEN);
-+ cmd->Command = uap_cpu_to_le16(HOST_CMD_APCMD_BSS_STOP);
-+ cmd->Size = uap_cpu_to_le16(CmdSize);
-+ skb_put(skb, CmdSize + INTF_HEADER_LEN);
-+ PRINTM(CMND, "APCMD_BSS_STOP\n");
-+ if (UAP_STATUS_SUCCESS !=
-+ uap_process_cmd(priv, skb, HostCmd_OPTION_WAITFORRSP_TIMEOUT)) {
-+ PRINTM(ERROR, "Fail to process cmd BSS_STOP\n");
-+ ret = -EFAULT;
-+ goto done;
-+ }
-+ done:
-+ LEAVE();
-+ return ret;
-+}
-+
-+/********************************************************
-+ Global Functions
-+********************************************************/
-+/**
-+ * @brief This function send soft_reset command to firmware
-+ *
-+ * @param priv A pointer to uap_private structure
-+ * @return UAP_STATUS_SUCCESS on success, otherwise failure code
-+ */
-+int
-+uap_soft_reset(uap_private * priv)
-+{
-+ int ret = UAP_STATUS_SUCCESS;
-+ u32 CmdSize;
-+ HostCmd_DS_GEN *cmd;
-+ uap_adapter *Adapter = priv->adapter;
-+ struct sk_buff *skb;
-+ ENTER();
-+ ret = uap_bss_stop(priv);
-+ if (ret != UAP_STATUS_SUCCESS)
-+ goto done;
-+ skb = dev_alloc_skb(MRVDRV_SIZE_OF_CMD_BUFFER);
-+ if (!skb) {
-+ PRINTM(ERROR, "No free skb\n");
-+ ret = -ENOMEM;
-+ goto done;
-+ }
-+ CmdSize = sizeof(HostCmd_DS_GEN);
-+ cmd = (HostCmd_DS_GEN *) (skb->data + INTF_HEADER_LEN);
-+ cmd->Command = uap_cpu_to_le16(HOST_CMD_APCMD_SOFT_RESET);
-+ cmd->Size = uap_cpu_to_le16(CmdSize);
-+ skb_put(skb, CmdSize + INTF_HEADER_LEN);
-+ PRINTM(CMND, "APCMD_SOFT_RESET\n");
-+ if (UAP_STATUS_SUCCESS !=
-+ uap_process_cmd(priv, skb, HostCmd_OPTION_WAITFORSEND)) {
-+ PRINTM(ERROR, "Fail to process cmd SOFT_RESET\n");
-+ ret = -EFAULT;
-+ goto done;
-+ }
-+ Adapter->SurpriseRemoved = TRUE;
-+ /* delay to allow hardware complete reset */
-+ os_sched_timeout(5);
-+ if (priv->MediaConnected == TRUE) {
-+ os_stop_queue(priv);
-+ os_carrier_off(priv);
-+ priv->MediaConnected = FALSE;
-+ }
-+ Adapter->CmdSize = 0;
-+ Adapter->CmdWaitQWoken = TRUE;
-+ wake_up_interruptible(&Adapter->cmdwait_q);
-+ skb_queue_purge(&priv->adapter->tx_queue);
-+ skb_queue_purge(&priv->adapter->cmd_queue);
-+ done:
-+ LEAVE();
-+ return ret;
-+}
-+
-+/**
-+ * @brief This function processes received packet and forwards it
-+ * to kernel/upper layer
-+ *
-+ * @param priv A pointer to uap_private
-+ * @param skb A pointer to skb which includes the received packet
-+ * @return UAP_STATUS_SUCCESS or UAP_STATUS_FAILURE
-+ */
-+int
-+uap_process_rx_packet(uap_private * priv, struct sk_buff *skb)
-+{
-+ int ret = UAP_STATUS_SUCCESS;
-+ RxPD *pRxPD;
-+ ENTER();
-+ priv->adapter->ps_state = PS_STATE_AWAKE;
-+ pRxPD = (RxPD *) skb->data;
-+ endian_convert_RxPD(pRxPD);
-+ DBG_HEXDUMP(DAT_D, "Rx", skb->data, MIN(skb->len, DATA_DUMP_LEN));
-+ skb_pull(skb, pRxPD->RxPktOffset);
-+ priv->stats.rx_packets++;
-+ priv->stats.rx_bytes += skb->len;
-+ os_upload_rx_packet(priv, skb);
-+ LEAVE();
-+ return ret;
-+}
-+
-+/**
-+ * @brief This function opens the network device
-+ *
-+ * @param dev A pointer to net_device structure
-+ * @return UAP_STATUS_SUCCESS
-+ */
-+static int
-+uap_open(struct net_device *dev)
-+{
-+ uap_private *priv = (uap_private *) (uap_private *) netdev_priv(dev);
-+ uap_adapter *Adapter = priv->adapter;
-+ int i = 0;
-+
-+ ENTER();
-+
-+ /* On some systems the device open handler will be called before HW ready. */
-+ /* Use the following flag check and wait function to work around the issue. */
-+ while ((Adapter->HardwareStatus != HWReady) &&
-+ (i < MAX_WAIT_DEVICE_READY_COUNT)) {
-+ i++;
-+ os_sched_timeout(100);
-+ }
-+ if (i >= MAX_WAIT_DEVICE_READY_COUNT) {
-+ PRINTM(FATAL, "HW not ready, uap_open() return failure\n");
-+ LEAVE();
-+ return UAP_STATUS_FAILURE;
-+ }
-+
-+ if (MODULE_GET == 0)
-+ return UAP_STATUS_FAILURE;
-+
-+ priv->open = TRUE;
-+ if (priv->MediaConnected == TRUE) {
-+ os_carrier_on(priv);
-+ os_start_queue(priv);
-+ } else {
-+ os_stop_queue(priv);
-+ os_carrier_off(priv);
-+ }
-+ LEAVE();
-+ return UAP_STATUS_SUCCESS;
-+}
-+
-+/**
-+ * @brief This function closes the network device
-+ *
-+ * @param dev A pointer to net_device structure
-+ * @return UAP_STATUS_SUCCESS
-+ */
-+static int
-+uap_close(struct net_device *dev)
-+{
-+ uap_private *priv = (uap_private *) netdev_priv(dev);
-+
-+ ENTER();
-+ skb_queue_purge(&priv->adapter->tx_queue);
-+ os_stop_queue(priv);
-+ os_carrier_off(priv);
-+
-+ MODULE_PUT;
-+ priv->open = FALSE;
-+ LEAVE();
-+ return UAP_STATUS_SUCCESS;
-+}
-+
-+/**
-+ * @brief This function returns the network statistics
-+ *
-+ * @param dev A pointer to uap_private structure
-+ * @return A pointer to net_device_stats structure
-+ */
-+static struct net_device_stats *
-+uap_get_stats(struct net_device *dev)
-+{
-+ uap_private *priv = (uap_private *) netdev_priv(dev);
-+
-+ return &priv->stats;
-+}
-+
-+/**
-+ * @brief This function sets the MAC address to firmware.
-+ *
-+ * @param dev A pointer to uap_private structure
-+ * @param addr MAC address to set
-+ * @return UAP_STATUS_SUCCESS or UAP_STATUS_FAILURE
-+ */
-+static int
-+uap_set_mac_address(struct net_device *dev, void *addr)
-+{
-+ int ret = UAP_STATUS_SUCCESS;
-+ uap_private *priv = (uap_private *) netdev_priv(dev);
-+ struct sockaddr *pHwAddr = (struct sockaddr *) addr;
-+ u32 CmdSize;
-+ HostCmd_DS_COMMAND *cmd;
-+ MrvlIEtypes_MacAddr_t *pMacAddrTlv;
-+ uap_adapter *Adapter = priv->adapter;
-+ struct sk_buff *skb;
-+
-+ ENTER();
-+
-+ /* Dump MAC address */
-+ DBG_HEXDUMP(CMD_D, "Original MAC addr", dev->dev_addr, ETH_ALEN);
-+ DBG_HEXDUMP(CMD_D, "New MAC addr", pHwAddr->sa_data, ETH_ALEN);
-+ if (priv->open && (priv->MediaConnected == TRUE)) {
-+ os_carrier_on(priv);
-+ os_start_queue(priv);
-+ }
-+ skb = dev_alloc_skb(MRVDRV_SIZE_OF_CMD_BUFFER);
-+ if (!skb) {
-+ PRINTM(ERROR, "No free skb\n");
-+ LEAVE();
-+ return -ENOMEM;
-+ }
-+ CmdSize =
-+ S_DS_GEN + sizeof(HostCmd_SYS_CONFIG) + sizeof(MrvlIEtypes_MacAddr_t);
-+ cmd = (HostCmd_DS_COMMAND *) (skb->data + INTF_HEADER_LEN);
-+ cmd->Command = uap_cpu_to_le16(HOST_CMD_APCMD_SYS_CONFIGURE);
-+ cmd->Size = uap_cpu_to_le16(CmdSize);
-+ cmd->params.sys_config.Action = uap_cpu_to_le16(ACTION_SET);
-+ pMacAddrTlv =
-+ (MrvlIEtypes_MacAddr_t *) ((u8 *) cmd + S_DS_GEN +
-+ sizeof(HostCmd_SYS_CONFIG));
-+ pMacAddrTlv->Header.Type = uap_cpu_to_le16(MRVL_AP_MAC_ADDRESS_TLV_ID);
-+ pMacAddrTlv->Header.Len = uap_cpu_to_le16(ETH_ALEN);
-+ memcpy(pMacAddrTlv->ApMacAddr, pHwAddr->sa_data, ETH_ALEN);
-+ skb_put(skb, CmdSize + INTF_HEADER_LEN);
-+ PRINTM(CMND, "set_mac_address\n");
-+ if (UAP_STATUS_SUCCESS !=
-+ uap_process_cmd(priv, skb, HostCmd_OPTION_WAITFORRSP_TIMEOUT)) {
-+ PRINTM(ERROR, "Fail to set mac address\n");
-+ LEAVE();
-+ return -EFAULT;
-+ }
-+ if (!Adapter->CmdSize) {
-+ PRINTM(ERROR, "Cmd Size is 0\n");
-+ LEAVE();
-+ return -EFAULT;
-+ }
-+ cmd = (HostCmd_DS_COMMAND *) Adapter->CmdBuf;
-+ cmd->Result = uap_cpu_to_le16(cmd->Result);
-+ if (cmd->Result != UAP_STATUS_SUCCESS) {
-+ PRINTM(ERROR, "set mac addrress fail,cmd result=%x\n", cmd->Result);
-+ ret = -EFAULT;
-+ } else
-+ memcpy(dev->dev_addr, pHwAddr->sa_data, ETH_ALEN);
-+ LEAVE();
-+ return ret;
-+}
-+
-+/**
-+ * @brief This function handles the timeout of packet
-+ * transmission
-+ *
-+ * @param dev A pointer to net_device structure
-+ * @return n/a
-+ */
-+static void
-+uap_tx_timeout(struct net_device *dev)
-+{
-+ uap_private *priv = (uap_private *) netdev_priv(dev);
-+
-+ ENTER();
-+
-+ PRINTM(DATA, "Tx timeout\n");
-+ UpdateTransStart(dev);
-+ priv->num_tx_timeout++;
-+ priv->adapter->IntCounter++;
-+ wake_up_interruptible(&priv->MainThread.waitQ);
-+
-+ LEAVE();
-+}
-+
-+/**
-+ * @brief This function handles packet transmission
-+ *
-+ * @param skb A pointer to sk_buff structure
-+ * @param dev A pointer to net_device structure
-+ * @return UAP_STATUS_SUCCESS or UAP_STATUS_FAILURE
-+ */
-+static int
-+uap_hard_start_xmit(struct sk_buff *skb, struct net_device *dev)
-+{
-+ uap_private *priv = (uap_private *) netdev_priv(dev);
-+ int ret = UAP_STATUS_SUCCESS;
-+
-+ ENTER();
-+ PRINTM(DATA, "Data <= kernel\n");
-+ DBG_HEXDUMP(DAT_D, "Tx", skb->data, MIN(skb->len, DATA_DUMP_LEN));
-+ /* skb sanity check */
-+ if (!skb->len || (skb->len > MRVDRV_MAXIMUM_ETH_PACKET_SIZE)) {
-+ PRINTM(ERROR, "Tx Error: Bad skb length %d : %d\n", skb->len,
-+ MRVDRV_MAXIMUM_ETH_PACKET_SIZE);
-+ priv->stats.tx_dropped++;
-+ kfree(skb);
-+ goto done;
-+ }
-+ skb_queue_tail(&priv->adapter->tx_queue, skb);
-+ wake_up_interruptible(&priv->MainThread.waitQ);
-+ if (skb_queue_len(&priv->adapter->tx_queue) > TX_HIGH_WATERMARK) {
-+ UpdateTransStart(dev);
-+ os_stop_queue(priv);
-+ }
-+ done:
-+ LEAVE();
-+ return ret;
-+}
-+
-+/**
-+ * @brief ioctl function - entry point
-+ *
-+ * @param dev A pointer to net_device structure
-+ * @param req A pointer to ifreq structure
-+ * @param cmd command
-+ * @return UAP_STATUS_SUCCESS--success, otherwise fail
-+ */
-+static int
-+uap_do_ioctl(struct net_device *dev, struct ifreq *req, int cmd)
-+{
-+ int ret = UAP_STATUS_SUCCESS;
-+
-+ ENTER();
-+
-+ PRINTM(CMND, "uap_do_ioctl: ioctl cmd = 0x%x\n", cmd);
-+
-+ switch (cmd) {
-+ case UAPHOSTCMD:
-+ ret = uap_hostcmd_ioctl(dev, req);
-+ break;
-+ case UAP_POWER_MODE:
-+ ret = uap_power_mode_ioctl(dev, req);
-+ break;
-+ default:
-+ ret = -EINVAL;
-+ break;
-+ }
-+
-+ LEAVE();
-+ return ret;
-+}
-+
-+/**
-+ * @brief This function handles events generated by firmware
-+ *
-+ * @param priv A pointer to uap_private structure
-+ * @param payload A pointer to payload buffer
-+ * @param len Length of the payload
-+ * @return UAP_STATUS_SUCCESS or UAP_STATUS_FAILURE
-+ */
-+int
-+uap_process_event(uap_private * priv, u8 * payload, uint len)
-+{
-+ int ret = UAP_STATUS_SUCCESS;
-+ uap_adapter *Adapter = priv->adapter;
-+ struct sk_buff *skb = NULL;
-+ struct nlmsghdr *nlh = NULL;
-+ struct sock *sk = Adapter->nl_sk;
-+ AP_Event *pEvent;
-+
-+ ENTER();
-+ Adapter->ps_state = PS_STATE_AWAKE;
-+ if (len > NL_MAX_PAYLOAD) {
-+ PRINTM(ERROR, "event size is too big!!! len=%d\n", len);
-+ ret = UAP_STATUS_FAILURE;
-+ goto done;
-+ }
-+ pEvent = (AP_Event *) payload;
-+ PRINTM(CMND, "Event: %d\n", pEvent->EventId);
-+ switch (pEvent->EventId) {
-+ case MICRO_AP_EV_ID_BSS_START:
-+ memcpy(priv->uap_dev.netdev->dev_addr, pEvent->MacAddr, ETH_ALEN);
-+ DBG_HEXDUMP(CMD_D, "BSS MAC addr", priv->uap_dev.netdev->dev_addr,
-+ ETH_ALEN);
-+ break;
-+ case MICRO_AP_EV_BSS_ACTIVE:
-+ // carrier on
-+ priv->MediaConnected = TRUE;
-+ os_carrier_on(priv);
-+ os_start_queue(priv);
-+ break;
-+ case MICRO_AP_EV_BSS_IDLE:
-+ os_stop_queue(priv);
-+ os_carrier_off(priv);
-+ priv->MediaConnected = FALSE;
-+ break;
-+ case EVENT_PS_AWAKE:
-+ PRINTM(CMND, "UAP: PS_AWAKE\n");
-+ Adapter->ps_state = PS_STATE_AWAKE;
-+ Adapter->WakeupTries = 0;
-+ break;
-+ case EVENT_PS_SLEEP:
-+ PRINTM(CMND, "UAP: PS_SLEEP\n");
-+ Adapter->ps_state = PS_STATE_PRE_SLEEP;
-+ break;
-+ default:
-+ break;
-+ }
-+ if ((pEvent->EventId == EVENT_PS_AWAKE) ||
-+ (pEvent->EventId == EVENT_PS_SLEEP))
-+ goto done;
-+ if (sk) {
-+ /* Allocate skb */
-+ if (!(skb = alloc_skb(NLMSG_SPACE(NL_MAX_PAYLOAD), GFP_ATOMIC))) {
-+ PRINTM(ERROR, "Could not allocate skb for netlink.\n");
-+ ret = UAP_STATUS_FAILURE;
-+ goto done;
-+ }
-+ nlh = (struct nlmsghdr *) skb->data;
-+ nlh->nlmsg_len = NLMSG_SPACE(len);
-+
-+ /* From kernel */
-+ nlh->nlmsg_pid = 0;
-+ nlh->nlmsg_flags = 0;
-+
-+ /* Data */
-+ skb_put(skb, nlh->nlmsg_len);
-+ memcpy(NLMSG_DATA(nlh), payload, len);
-+
-+ /* From Kernel */
-+ NETLINK_CB(skb).portid = 0;
-+
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,20)
-+ /* Multicast message */
-+ NETLINK_CB(skb).dst_pid = 0;
-+#endif
-+
-+ /* Multicast group number */
-+ NETLINK_CB(skb).dst_group = NL_MULTICAST_GROUP;
-+
-+ /* Send message */
-+ netlink_broadcast(sk, skb, 0, NL_MULTICAST_GROUP, GFP_KERNEL);
-+
-+ ret = UAP_STATUS_SUCCESS;
-+ } else {
-+ PRINTM(ERROR, "Could not send event through NETLINK. Link down.\n");
-+ ret = UAP_STATUS_FAILURE;
-+ }
-+ done:
-+ LEAVE();
-+ return ret;
-+}
-+
-+/**
-+ * @brief This function handles the interrupt. it will change PS
-+ * state if applicable. it will wake up main_thread to handle
-+ * the interrupt event as well.
-+ *
-+ * @param priv A pointer to uap_private structure
-+ * @return n/a
-+ */
-+void
-+uap_interrupt(uap_private * priv)
-+{
-+ ENTER();
-+ priv->adapter->IntCounter++;
-+ priv->adapter->WakeupTries = 0;
-+ PRINTM(INFO, "*\n");
-+ wake_up_interruptible(&priv->MainThread.waitQ);
-+
-+ LEAVE();
-+
-+}
-+
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,29)
-+/** Network device handlers */
-+static const struct net_device_ops uap_netdev_ops = {
-+ .ndo_open = uap_open,
-+ .ndo_start_xmit = uap_hard_start_xmit,
-+ .ndo_stop = uap_close,
-+ .ndo_do_ioctl = uap_do_ioctl,
-+ .ndo_set_mac_address = uap_set_mac_address,
-+ .ndo_tx_timeout = uap_tx_timeout,
-+ .ndo_get_stats = uap_get_stats,
-+};
-+#endif
-+
-+/**
-+ * @brief This function adds the card. it will probe the
-+ * card, allocate the uap_priv and initialize the device.
-+ *
-+ * @param card A pointer to card
-+ * @return A pointer to uap_private structure
-+ */
-+uap_private *
-+uap_add_card(void *card)
-+{
-+ struct net_device *dev = NULL;
-+ uap_private *priv = NULL;
-+
-+ ENTER();
-+
-+ if (OS_ACQ_SEMAPHORE_BLOCK(&AddRemoveCardSem))
-+ goto exit_sem_err;
-+
-+ /* Allocate an Ethernet device */
-+ if (!(dev = alloc_etherdev(sizeof(uap_private)))) {
-+ PRINTM(FATAL, "Init ethernet device failed!\n");
-+ goto error;
-+ }
-+ priv = (uap_private *) netdev_priv(dev);
-+
-+ /* Allocate name */
-+ if (dev_alloc_name(dev, "uap%d") < 0) {
-+ PRINTM(ERROR, "Could not allocate device name!\n");
-+ goto error;
-+ }
-+
-+ /* Allocate buffer for uap_adapter */
-+ if (!(priv->adapter = kmalloc(sizeof(uap_adapter), GFP_KERNEL))) {
-+ PRINTM(FATAL, "Allocate buffer for uap_adapter failed!\n");
-+ goto error;
-+ }
-+ memset(priv->adapter, 0, sizeof(uap_adapter));
-+
-+ priv->uap_dev.netdev = dev;
-+ priv->uap_dev.card = card;
-+ priv->MediaConnected = FALSE;
-+ uappriv = priv;
-+ ((struct sdio_mmc_card *) card)->priv = priv;
-+
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,24)
-+ SET_MODULE_OWNER(dev);
-+#endif
-+
-+ /* Setup the OS Interface to our functions */
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,29)
-+ dev->open = uap_open;
-+ dev->stop = uap_close;
-+ dev->hard_start_xmit = uap_hard_start_xmit;
-+ dev->tx_timeout = uap_tx_timeout;
-+ dev->get_stats = uap_get_stats;
-+ dev->do_ioctl = uap_do_ioctl;
-+ dev->set_mac_address = uap_set_mac_address;
-+ dev->set_multicast_list = uap_set_multicast_list;
-+#else
-+ dev->netdev_ops = &uap_netdev_ops;
-+#endif
-+ dev->watchdog_timeo = MRVDRV_DEFAULT_WATCHDOG_TIMEOUT;
-+ dev->hard_header_len += sizeof(TxPD) + INTF_HEADER_LEN;
-+ dev->hard_header_len += HEADER_ALIGNMENT;
-+#define NETIF_F_DYNALLOC 16
-+ dev->features |= NETIF_F_DYNALLOC;
-+ dev->flags |= IFF_BROADCAST | IFF_MULTICAST;
-+
-+ /* Init SW */
-+ if (uap_init_sw(priv)) {
-+ PRINTM(FATAL, "Software Init Failed\n");
-+ goto error;
-+ }
-+
-+ PRINTM(INFO, "Starting kthread...\n");
-+ priv->MainThread.priv = priv;
-+ spin_lock_init(&priv->driver_lock);
-+ uap_create_thread(uap_service_main_thread, &priv->MainThread,
-+ "uap_main_service");
-+ while (priv->MainThread.pid == 0) {
-+ os_sched_timeout(2);
-+ }
-+
-+ /* Register the device */
-+ if (sbi_register_dev(priv) < 0) {
-+ PRINTM(FATAL, "Failed to register uap device!\n");
-+ goto err_registerdev;
-+ }
-+#ifdef FW_DNLD_NEEDED
-+ SET_NETDEV_DEV(dev, priv->hotplug_device);
-+#endif
-+
-+ /* Init FW and HW */
-+ if (uap_init_fw(priv)) {
-+ PRINTM(FATAL, "Firmware Init Failed\n");
-+ goto err_init_fw;
-+ }
-+
-+ priv->uap_dev.cmd_sent = FALSE;
-+ priv->uap_dev.data_sent = FALSE;
-+
-+ /* Get mac address from firmware */
-+ if (uap_get_mac_address(priv)) {
-+ PRINTM(FATAL, "Fail to get mac address\n");
-+ goto err_init_fw;
-+ }
-+ /* Register network device */
-+ if (register_netdev(dev)) {
-+ printk(KERN_ERR "Cannot register network device!\n");
-+ goto err_init_fw;
-+ }
-+#ifdef CONFIG_PROC_FS
-+ uap_proc_entry(priv, dev);
-+ uap_debug_entry(priv, dev);
-+#endif /* CPNFIG_PROC_FS */
-+ OS_REL_SEMAPHORE(&AddRemoveCardSem);
-+
-+ LEAVE();
-+ return priv;
-+ err_init_fw:
-+ sbi_unregister_dev(priv);
-+ err_registerdev:
-+ ((struct sdio_mmc_card *) card)->priv = NULL;
-+ /* Stop the thread servicing the interrupts */
-+ priv->adapter->SurpriseRemoved = TRUE;
-+ wake_up_interruptible(&priv->MainThread.waitQ);
-+ while (priv->MainThread.pid) {
-+ os_sched_timeout(1);
-+ }
-+ error:
-+ if (dev) {
-+ if (dev->reg_state == NETREG_REGISTERED)
-+ unregister_netdev(dev);
-+ if (priv->adapter)
-+ uap_free_adapter(priv);
-+ free_netdev(dev);
-+ uappriv = NULL;
-+ }
-+ OS_REL_SEMAPHORE(&AddRemoveCardSem);
-+ exit_sem_err:
-+ LEAVE();
-+ return NULL;
-+}
-+
-+/**
-+ * @brief This function removes the card.
-+ *
-+ * @param card A pointer to card
-+ * @return UAP_STATUS_SUCCESS
-+ */
-+int
-+uap_remove_card(void *card)
-+{
-+ uap_private *priv = uappriv;
-+ uap_adapter *Adapter;
-+ struct net_device *dev;
-+
-+ ENTER();
-+
-+ if (OS_ACQ_SEMAPHORE_BLOCK(&AddRemoveCardSem))
-+ goto exit_sem_err;
-+
-+ if (!priv || !(Adapter = priv->adapter)) {
-+ goto exit_remove;
-+ }
-+ Adapter->SurpriseRemoved = TRUE;
-+ if (Adapter->cmd_pending == TRUE) {
-+ /* Wake up cmd Q */
-+ Adapter->CmdWaitQWoken = TRUE;
-+ wake_up_interruptible(&Adapter->cmdwait_q);
-+ }
-+ dev = priv->uap_dev.netdev;
-+ if (priv->MediaConnected == TRUE) {
-+ os_stop_queue(priv);
-+ os_carrier_off(priv);
-+ priv->MediaConnected = FALSE;
-+ }
-+ Adapter->CmdSize = 0;
-+ Adapter->CmdWaitQWoken = TRUE;
-+ wake_up_interruptible(&Adapter->cmdwait_q);
-+ skb_queue_purge(&priv->adapter->tx_queue);
-+ skb_queue_purge(&priv->adapter->cmd_queue);
-+
-+ /* Disable interrupts on the card */
-+ sbi_disable_host_int(priv);
-+ PRINTM(INFO, "netdev_finish_unregister: %s%s.\n", dev->name,
-+ (dev->features & NETIF_F_DYNALLOC) ? "" : ", old style");
-+ unregister_netdev(dev);
-+ PRINTM(INFO, "Unregister finish\n");
-+ wake_up_interruptible(&priv->MainThread.waitQ);
-+ while (priv->MainThread.pid) {
-+ os_sched_timeout(1);
-+ }
-+
-+ if ((Adapter->nl_sk) && ((Adapter->nl_sk)->sk_socket)) {
-+ sock_release((Adapter->nl_sk)->sk_socket);
-+ Adapter->nl_sk = NULL;
-+ }
-+#ifdef CONFIG_PROC_FS
-+ uap_debug_remove(priv);
-+ uap_proc_remove(priv);
-+#endif
-+ sbi_unregister_dev(priv);
-+ PRINTM(INFO, "Free Adapter\n");
-+ uap_free_adapter(priv);
-+ priv->uap_dev.netdev = NULL;
-+ free_netdev(dev);
-+ uappriv = NULL;
-+
-+ exit_remove:
-+ OS_REL_SEMAPHORE(&AddRemoveCardSem);
-+ exit_sem_err:
-+ LEAVE();
-+ return UAP_STATUS_SUCCESS;
-+}
-+
-+/**
-+ * @brief This function initializes module.
-+ *
-+ * @return UAP_STATUS_SUCCESS or UAP_STATUS_FAILURE
-+ */
-+static int __init
-+uap_init_module(void)
-+{
-+ int ret = UAP_STATUS_SUCCESS;
-+ ENTER();
-+
-+ OS_INIT_SEMAPHORE(&AddRemoveCardSem);
-+ ret = sbi_register();
-+ LEAVE();
-+ return ret;
-+}
-+
-+/**
-+ * @brief This function cleans module
-+ *
-+ * @return n/a
-+ */
-+static void __exit
-+uap_cleanup_module(void)
-+{
-+ ENTER();
-+
-+ if (OS_ACQ_SEMAPHORE_BLOCK(&AddRemoveCardSem))
-+ goto exit_sem_err;
-+
-+ if ((uappriv) && (uappriv->adapter)) {
-+ uap_func_shutdown(uappriv);
-+ }
-+ OS_REL_SEMAPHORE(&AddRemoveCardSem);
-+ exit_sem_err:
-+ sbi_unregister();
-+ LEAVE();
-+}
-+
-+module_init(uap_init_module);
-+module_exit(uap_cleanup_module);
-+module_param(helper_name, charp, 0);
-+MODULE_PARM_DESC(helper_name, "Helper name");
-+module_param(fw_name, charp, 0);
-+MODULE_PARM_DESC(fw_name, "Firmware name");
-+
-+MODULE_DESCRIPTION("M-UAP Driver");
-+MODULE_AUTHOR("Marvell International Ltd.");
-+MODULE_VERSION(DRIVER_VERSION);
-+MODULE_LICENSE("GPL");
-diff --git a/drivers/net/wireless/libertas_uap/uap_proc.c b/drivers/net/wireless/libertas_uap/uap_proc.c
-new file mode 100644
-index 0000000..d673f56
---- /dev/null
-+++ b/drivers/net/wireless/libertas_uap/uap_proc.c
-@@ -0,0 +1,258 @@
-+/** @file uap_proc.c
-+ * @brief This file contains functions for proc file.
-+ *
-+ * Copyright (C) 2008-2009, Marvell International Ltd.
-+ *
-+ * This software file (the "File") is distributed by Marvell International
-+ * Ltd. under the terms of the GNU General Public License Version 2, June 1991
-+ * (the "License"). You may use, redistribute and/or modify this File in
-+ * accordance with the terms and conditions of the License, a copy of which
-+ * is available along with the File in the gpl.txt file or by writing to
-+ * the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-+ * 02111-1307 or on the worldwide web at http://www.gnu.org/licenses/gpl.txt.
-+ *
-+ * THE FILE IS DISTRIBUTED AS-IS, WITHOUT WARRANTY OF ANY KIND, AND THE
-+ * IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE
-+ * ARE EXPRESSLY DISCLAIMED. The License provides additional details about
-+ * this warranty disclaimer.
-+ *
-+ */
-+#ifdef CONFIG_PROC_FS
-+#include <linux/proc_fs.h>
-+#include <linux/seq_file.h>
-+#include "uap_headers.h"
-+
-+/** /proc directory root */
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,26)
-+#define PROC_DIR NULL
-+#elif LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,24)
-+#define PROC_DIR &proc_root
-+#else
-+#define PROC_DIR proc_net
-+#endif
-+
-+/********************************************************
-+ Local Variables
-+********************************************************/
-+
-+/********************************************************
-+ Global Variables
-+********************************************************/
-+
-+/********************************************************
-+ Local Functions
-+********************************************************/
-+
-+static int uap_info_proc_show(struct seq_file *s, void *data) {
-+ int i;
-+ struct net_device *netdev = (struct net_device*)s->private;
-+ struct netdev_hw_addr *ha;
-+ uap_private *priv = (uap_private *) netdev_priv(netdev);
-+
-+ seq_printf(s, "driver_name = " "\"uap\"\n");
-+ seq_printf(s, "driver_version = %s-(FP%s)", DRIVER_VERSION, FPNUM);
-+ seq_printf(s, "\nInterfaceName=\"%s\"\n", netdev->name);
-+
-+ seq_printf(s, "State=\"%s\"\n",
-+ ((priv->MediaConnected ==
-+ FALSE) ? "Disconnected" : "Connected"));
-+ seq_printf(s, "MACAddress=\"%02x:%02x:%02x:%02x:%02x:%02x\"\n",
-+ netdev->dev_addr[0], netdev->dev_addr[1], netdev->dev_addr[2],
-+ netdev->dev_addr[3], netdev->dev_addr[4], netdev->dev_addr[5]);
-+ i = 0;
-+ netdev_for_each_mc_addr(ha, netdev) {
-+ ++i;
-+ }
-+ seq_printf(s, "MCCount=\"%d\"\n", i);
-+
-+ /*
-+ * Put out the multicast list
-+ */
-+ i = 0;
-+ netdev_for_each_mc_addr(ha, netdev) {
-+ seq_printf(s,
-+ "MCAddr[%d]=\"%02x:%02x:%02x:%02x:%02x:%02x\"\n",
-+ i++,
-+ ha->addr[0], ha->addr[1],
-+ ha->addr[2], ha->addr[3],
-+ ha->addr[4], ha->addr[5]);
-+ }
-+
-+ seq_printf(s, "num_tx_bytes = %lu\n", priv->stats.tx_bytes);
-+ seq_printf(s, "num_rx_bytes = %lu\n", priv->stats.rx_bytes);
-+ seq_printf(s, "num_tx_pkts = %lu\n", priv->stats.tx_packets);
-+ seq_printf(s, "num_rx_pkts = %lu\n", priv->stats.rx_packets);
-+ seq_printf(s, "num_tx_pkts_dropped = %lu\n", priv->stats.tx_dropped);
-+ seq_printf(s, "num_rx_pkts_dropped = %lu\n", priv->stats.rx_dropped);
-+ seq_printf(s, "num_tx_pkts_err = %lu\n", priv->stats.tx_errors);
-+ seq_printf(s, "num_rx_pkts_err = %lu\n", priv->stats.rx_errors);
-+ seq_printf(s, "num_tx_timeout = %u\n", priv->num_tx_timeout);
-+ seq_printf(s, "carrier %s\n",
-+ ((netif_carrier_ok(priv->uap_dev.netdev)) ? "on" : "off"));
-+ seq_printf(s, "tx queue %s\n",
-+ ((netif_queue_stopped(priv->uap_dev.netdev)) ? "stopped" :
-+ "started"));
-+
-+ return 0;
-+}
-+
-+static int uap_info_proc_open(struct inode *inode, struct file *file) {
-+ return single_open(file, uap_info_proc_show, PDE_DATA(inode));
-+}
-+
-+static int uap_hwstatus_proc_show(struct seq_file *s, void *data) {
-+ struct net_device *netdev = (struct net_device*)s->private;
-+ uap_private *priv = (uap_private *) netdev_priv(netdev);
-+
-+ MODULE_GET;
-+ seq_printf(s, "%d\n", priv->adapter->HardwareStatus);
-+ MODULE_PUT;
-+
-+ return 0;
-+}
-+
-+static int uap_hwstatus_proc_open(struct inode *inode, struct file *file) {
-+ return single_open(file, uap_hwstatus_proc_show, PDE_DATA(inode));
-+}
-+
-+static ssize_t uap_hwstatus_proc_write(struct file *file, const char __user *buffer, size_t count, loff_t *data) {
-+ struct net_device *netdev = (struct net_device *)PDE_DATA(file_inode(file));
-+ uap_private *priv = (uap_private *) netdev_priv(netdev);
-+
-+ int hwstatus;
-+ char value[10];
-+
-+ if (count > sizeof(value))
-+ return count;
-+
-+ if (copy_from_user(&value, buffer, count))
-+ return -EFAULT;
-+
-+ hwstatus = string_to_number(value);
-+ switch (hwstatus) {
-+ case HWReset:
-+ PRINTM(MSG, "reset hw\n");
-+ uap_soft_reset(priv);
-+ priv->adapter->HardwareStatus = HWReset;
-+ break;
-+ default:
-+ break;
-+ }
-+
-+ MODULE_PUT;
-+ return count;
-+}
-+
-+static const struct file_operations uap_info_proc_fops = {
-+ .owner = THIS_MODULE,
-+ .open = uap_info_proc_open,
-+ .read = seq_read,
-+ .llseek = seq_lseek,
-+ .release = single_release,
-+};
-+
-+static const struct file_operations uap_hwstatus_proc_fops = {
-+ .owner = THIS_MODULE,
-+ .open = uap_hwstatus_proc_open,
-+ .read = seq_read,
-+ .llseek = seq_lseek,
-+ .release = single_release,
-+ .write = uap_hwstatus_proc_write,
-+};
-+
-+/********************************************************
-+ Global Functions
-+********************************************************/
-+/**
-+ * @brief create uap proc file
-+ *
-+ * @param priv pointer uap_private
-+ * @param dev pointer net_device
-+ * @return N/A
-+ */
-+void
-+uap_proc_entry(uap_private * priv, struct net_device *dev)
-+{
-+ PRINTM(INFO, "Creating Proc Interface\n");
-+ /* Check if uap directory already exists */
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,26)
-+ struct proc_dir_entry *r = PROC_DIR;
-+
-+ for (r = r->subdir; r; r = r->next) {
-+ if (r->namelen && !strcmp("uap", r->name)) {
-+ /* Directory exists */
-+ PRINTM(WARN, "proc directory already exists!\n");
-+ priv->proc_uap = r;
-+ break;
-+ }
-+ }
-+#endif
-+ if (!priv->proc_uap) {
-+ priv->proc_uap = proc_mkdir("uap", PROC_DIR);
-+ if (!priv->proc_uap)
-+ return;
-+ }
-+ priv->proc_entry = proc_mkdir(dev->name, priv->proc_uap);
-+
-+ if (priv->proc_entry) {
-+ proc_create_data("info", 0644, priv->proc_entry, &uap_info_proc_fops, dev);
-+ proc_create_data("hwinfo", 0644, priv->proc_entry, &uap_hwstatus_proc_fops, dev);
-+ }
-+}
-+
-+/**
-+ * @brief remove proc file
-+ *
-+ * @param priv pointer uap_private
-+ * @return N/A
-+ */
-+void
-+uap_proc_remove(uap_private * priv)
-+{
-+ if (priv->proc_uap) {
-+ if (priv->proc_entry) {
-+ remove_proc_entry("info", priv->proc_entry);
-+ remove_proc_entry("hwstatus", priv->proc_entry);
-+ }
-+ remove_proc_entry(priv->uap_dev.netdev->name, priv->proc_uap);
-+ }
-+}
-+
-+/**
-+ * @brief convert string to number
-+ *
-+ * @param s pointer to numbered string
-+ * @return converted number from string s
-+ */
-+int
-+string_to_number(char *s)
-+{
-+ int r = 0;
-+ int base = 0;
-+ int pn = 1;
-+
-+ if (strncmp(s, "-", 1) == 0) {
-+ pn = -1;
-+ s++;
-+ }
-+ if ((strncmp(s, "0x", 2) == 0) || (strncmp(s, "0X", 2) == 0)) {
-+ base = 16;
-+ s += 2;
-+ } else
-+ base = 10;
-+
-+ for (s = s; *s != 0; s++) {
-+ if ((*s >= '0') && (*s <= '9'))
-+ r = (r * base) + (*s - '0');
-+ else if ((*s >= 'A') && (*s <= 'F'))
-+ r = (r * base) + (*s - 'A' + 10);
-+ else if ((*s >= 'a') && (*s <= 'f'))
-+ r = (r * base) + (*s - 'a' + 10);
-+ else
-+ break;
-+ }
-+
-+ return (r * pn);
-+}
-+
-+#endif
-diff --git a/drivers/net/wireless/libertas_uap/uap_sdio_mmc.c b/drivers/net/wireless/libertas_uap/uap_sdio_mmc.c
-new file mode 100644
-index 0000000..86f55b5
---- /dev/null
-+++ b/drivers/net/wireless/libertas_uap/uap_sdio_mmc.c
-@@ -0,0 +1,1428 @@
-+/** @file uap_sdio_mmc.c
-+ * @brief This file contains SDIO IF (interface) module
-+ * related functions.
-+ *
-+ * Copyright (C) 2007-2009, Marvell International Ltd.
-+ *
-+ * This software file (the "File") is distributed by Marvell International
-+ * Ltd. under the terms of the GNU General Public License Version 2, June 1991
-+ * (the "License"). You may use, redistribute and/or modify this File in
-+ * accordance with the terms and conditions of the License, a copy of which
-+ * is available along with the File in the gpl.txt file or by writing to
-+ * the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-+ * 02111-1307 or on the worldwide web at http://www.gnu.org/licenses/gpl.txt.
-+ *
-+ * THE FILE IS DISTRIBUTED AS-IS, WITHOUT WARRANTY OF ANY KIND, AND THE
-+ * IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE
-+ * ARE EXPRESSLY DISCLAIMED. The License provides additional details about
-+ * this warranty disclaimer.
-+ *
-+ */
-+/****************************************************
-+Change log:
-+****************************************************/
-+
-+#include "uap_sdio_mmc.h"
-+
-+#include <linux/firmware.h>
-+
-+/** define SDIO block size */
-+/* We support up to 480-byte block size due to FW buffer limitation. */
-+#define SD_BLOCK_SIZE 256
-+
-+/** define allocated buffer size */
-+#define ALLOC_BUF_SIZE (((MAX(MRVDRV_ETH_RX_PACKET_BUFFER_SIZE, \
-+ MRVDRV_SIZE_OF_CMD_BUFFER) + INTF_HEADER_LEN \
-+ + SD_BLOCK_SIZE - 1) / SD_BLOCK_SIZE) * SD_BLOCK_SIZE)
-+
-+/** Max retry number of CMD53 write */
-+#define MAX_WRITE_IOMEM_RETRY 2
-+
-+/********************************************************
-+ Local Variables
-+********************************************************/
-+
-+/** SDIO Rx unit */
-+static u8 sdio_rx_unit = 0;
-+
-+/**Interrupt status */
-+static u8 sd_ireg = 0;
-+/********************************************************
-+ Global Variables
-+********************************************************/
-+extern u8 *helper_name;
-+extern u8 *fw_name;
-+/** Default helper name */
-+#define DEFAULT_HELPER_NAME "mrvl/helper_sd.bin"
-+/** Default firmware name */
-+#define DEFAULT_FW_NAME "mrvl/sd8688_ap.bin"
-+
-+/********************************************************
-+ Local Functions
-+********************************************************/
-+/**
-+ * @brief This function reads the IO register.
-+ *
-+ * @param priv A pointer to uap_private structure
-+ * @param reg register to be read
-+ * @param dat A pointer to variable that keeps returned value
-+ * @return UAP_STATUS_SUCCESS or UAP_STATUS_FAILURE
-+ */
-+static int
-+sbi_read_ioreg(uap_private * priv, u32 reg, u8 * dat)
-+{
-+ struct sdio_mmc_card *card;
-+ int ret = UAP_STATUS_FAILURE;
-+
-+ ENTER();
-+
-+ card = priv->uap_dev.card;
-+ if (!card || !card->func) {
-+ PRINTM(ERROR, "sbi_read_ioreg(): card or function is NULL!\n");
-+ goto done;
-+ }
-+
-+ *dat = sdio_readb(card->func, reg, &ret);
-+ if (ret) {
-+ PRINTM(ERROR, "sbi_read_ioreg(): sdio_readb failed! ret=%d\n", ret);
-+ goto done;
-+ }
-+
-+ PRINTM(INFO, "sbi_read_ioreg() priv=%p func=%d reg=%#x dat=%#x\n", priv,
-+ card->func->num, reg, *dat);
-+
-+ done:
-+ LEAVE();
-+ return ret;
-+}
-+
-+/**
-+ * @brief This function writes the IO register.
-+ *
-+ * @param priv A pointer to uap_private structure
-+ * @param reg register to be written
-+ * @param dat the value to be written
-+ * @return UAP_STATUS_SUCCESS or UAP_STATUS_FAILURE
-+ */
-+static int
-+sbi_write_ioreg(uap_private * priv, u32 reg, u8 dat)
-+{
-+ struct sdio_mmc_card *card;
-+ int ret = UAP_STATUS_FAILURE;
-+
-+ ENTER();
-+
-+ card = priv->uap_dev.card;
-+ if (!card || !card->func) {
-+ PRINTM(ERROR, "sbi_write_ioreg(): card or function is NULL!\n");
-+ goto done;
-+ }
-+
-+ PRINTM(INFO, "sbi_write_ioreg() priv=%p func=%d reg=%#x dat=%#x\n", priv,
-+ card->func->num, reg, dat);
-+
-+ sdio_writeb(card->func, dat, reg, &ret);
-+ if (ret) {
-+ PRINTM(ERROR, "sbi_write_ioreg(): sdio_readb failed! ret=%d\n", ret);
-+ goto done;
-+ }
-+
-+ done:
-+ LEAVE();
-+ return ret;
-+}
-+
-+/**
-+ * @brief This function get rx_unit value
-+ *
-+ * @param priv A pointer to uap_private structure
-+ * @return UAP_STATUS_SUCCESS or UAP_STATUS_FAILURE
-+ */
-+static int
-+sd_get_rx_unit(uap_private * priv)
-+{
-+ int ret = UAP_STATUS_SUCCESS;
-+ u8 reg;
-+
-+ ENTER();
-+
-+ ret = sbi_read_ioreg(priv, CARD_RX_UNIT_REG, ®);
-+ if (ret == UAP_STATUS_SUCCESS)
-+ sdio_rx_unit = reg;
-+
-+ LEAVE();
-+ return ret;
-+}
-+
-+/**
-+ * @brief This function reads rx length
-+ *
-+ * @param priv A pointer to uap_private structure
-+ * @param dat A pointer to keep returned data
-+ * @return UAP_STATUS_SUCCESS or UAP_STATUS_FAILURE
-+ */
-+static int
-+sd_read_rx_len(uap_private * priv, u16 * dat)
-+{
-+ int ret = UAP_STATUS_SUCCESS;
-+ u8 reg;
-+
-+ ENTER();
-+
-+ ret = sbi_read_ioreg(priv, CARD_RX_LEN_REG, ®);
-+ if (ret == UAP_STATUS_SUCCESS)
-+ *dat = (u16) reg << sdio_rx_unit;
-+
-+ LEAVE();
-+ return ret;
-+}
-+
-+/**
-+ * @brief This function reads fw status registers
-+ *
-+ * @param priv A pointer to uap_private structure
-+ * @param dat A pointer to keep returned data
-+ * @return UAP_STATUS_SUCCESS or UAP_STATUS_FAILURE
-+ */
-+static int
-+sd_read_firmware_status(uap_private * priv, u16 * dat)
-+{
-+ int ret = UAP_STATUS_SUCCESS;
-+ u8 fws0;
-+ u8 fws1;
-+
-+ ENTER();
-+
-+ ret = sbi_read_ioreg(priv, CARD_FW_STATUS0_REG, &fws0);
-+ if (ret < 0) {
-+ LEAVE();
-+ return UAP_STATUS_FAILURE;
-+ }
-+
-+ ret = sbi_read_ioreg(priv, CARD_FW_STATUS1_REG, &fws1);
-+ if (ret < 0) {
-+ LEAVE();
-+ return UAP_STATUS_FAILURE;
-+ }
-+
-+ *dat = (((u16) fws1) << 8) | fws0;
-+
-+ LEAVE();
-+ return UAP_STATUS_SUCCESS;
-+}
-+
-+/**
-+ * @brief This function polls the card status register.
-+ *
-+ * @param priv A pointer to uap_private structure
-+ * @param bits the bit mask
-+ * @return UAP_STATUS_SUCCESS or UAP_STATUS_FAILURE
-+ */
-+static int
-+mv_sdio_poll_card_status(uap_private * priv, u8 bits)
-+{
-+ int tries;
-+ u8 cs;
-+
-+ ENTER();
-+
-+ for (tries = 0; tries < MAX_POLL_TRIES; tries++) {
-+ if (sbi_read_ioreg(priv, CARD_STATUS_REG, &cs) < 0)
-+ break;
-+ else if ((cs & bits) == bits) {
-+ LEAVE();
-+ return UAP_STATUS_SUCCESS;
-+ }
-+ udelay(10);
-+ }
-+
-+ PRINTM(WARN, "mv_sdio_poll_card_status failed, tries = %d\n", tries);
-+
-+ LEAVE();
-+ return UAP_STATUS_FAILURE;
-+}
-+
-+/**
-+ * @brief This function set the sdio bus width.
-+ *
-+ * @param priv A pointer to uap_private structure
-+ * @param mode 1--1 bit mode, 4--4 bit mode
-+ * @return UAP_STATUS_SUCCESS or UAP_STATUS_FAILURE
-+ */
-+#if 0
-+static int
-+sdio_set_bus_width(uap_private * priv, u8 mode)
-+{
-+ ENTER();
-+ LEAVE();
-+ return UAP_STATUS_SUCCESS;
-+}
-+#endif
-+
-+/**
-+ * @brief This function reads data from the card.
-+ *
-+ * @param priv A pointer to uap_private structure
-+ * @return UAP_STATUS_SUCCESS or UAP_STATUS_FAILURE
-+ */
-+static int
-+sd_card_to_host(uap_private * priv)
-+{
-+ int ret = UAP_STATUS_SUCCESS;
-+ u16 buf_len = 0;
-+ int buf_block_len;
-+ int blksz;
-+ struct sk_buff *skb = NULL;
-+ u16 type;
-+ u8 *payload = NULL;
-+ struct sdio_mmc_card *card = priv->uap_dev.card;
-+
-+ ENTER();
-+
-+ if (!card || !card->func) {
-+ PRINTM(ERROR, "card or function is NULL!\n");
-+ ret = UAP_STATUS_FAILURE;
-+ goto exit;
-+ }
-+
-+ /* Read the length of data to be transferred */
-+ ret = sd_read_rx_len(priv, &buf_len);
-+ if (ret < 0) {
-+ PRINTM(ERROR, "card_to_host, read scratch reg failed\n");
-+ ret = UAP_STATUS_FAILURE;
-+ goto exit;
-+ }
-+
-+ /* Allocate buffer */
-+ blksz = SD_BLOCK_SIZE;
-+ buf_block_len = (buf_len + blksz - 1) / blksz;
-+ if (buf_len <= INTF_HEADER_LEN || (buf_block_len * blksz) > ALLOC_BUF_SIZE) {
-+ PRINTM(ERROR, "card_to_host, invalid packet length: %d\n", buf_len);
-+ ret = UAP_STATUS_FAILURE;
-+ goto exit;
-+ }
-+#ifdef PXA3XX_DMA_ALIGN
-+ skb = dev_alloc_skb(buf_block_len * blksz + PXA3XX_DMA_ALIGNMENT);
-+#else
-+ skb = dev_alloc_skb(buf_block_len * blksz);
-+#endif
-+ if (skb == NULL) {
-+ PRINTM(WARN, "No free skb\n");
-+ goto exit;
-+ }
-+#ifdef PXA3XX_DMA_ALIGN
-+ if ((u32) skb->data & (PXA3XX_DMA_ALIGNMENT - 1)) {
-+ skb_put(skb, (u32) skb->data & (PXA3XX_DMA_ALIGNMENT - 1));
-+ skb_pull(skb, (u32) skb->data & (PXA3XX_DMA_ALIGNMENT - 1));
-+ }
-+#endif /* PXA3XX_DMA_ALIGN */
-+
-+ payload = skb->tail;
-+ ret = sdio_readsb(card->func, payload, priv->uap_dev.ioport,
-+ buf_block_len * blksz);
-+ if (ret < 0) {
-+ PRINTM(ERROR, "card_to_host, read iomem failed: %d\n", ret);
-+ ret = UAP_STATUS_FAILURE;
-+ goto exit;
-+ }
-+ HEXDUMP("SDIO Blk Rd", payload, blksz * buf_block_len);
-+ /*
-+ * This is SDIO specific header
-+ * u16 length,
-+ * u16 type (MV_TYPE_DAT = 0, MV_TYPE_CMD = 1, MV_TYPE_EVENT = 3)
-+ */
-+ buf_len = uap_le16_to_cpu(*(u16 *) & payload[0]);
-+ type = uap_le16_to_cpu(*(u16 *) & payload[2]);
-+ switch (type) {
-+ case MV_TYPE_EVENT:
-+ skb_put(skb, buf_len);
-+ skb_pull(skb, INTF_HEADER_LEN);
-+ uap_process_event(priv, skb->data, skb->len);
-+ kfree_skb(skb);
-+ skb = NULL;
-+ break;
-+ case MV_TYPE_CMD:
-+ skb_put(skb, buf_len);
-+ skb_pull(skb, INTF_HEADER_LEN);
-+ priv->adapter->cmd_pending = FALSE;
-+ if (priv->adapter->cmd_wait_option ==
-+ HostCmd_OPTION_WAITFORRSP_SLEEPCONFIRM) {
-+ priv->adapter->cmd_wait_option = FALSE;
-+ uap_process_sleep_confirm_resp(priv, skb->data, skb->len);
-+ } else if (priv->adapter->cmd_wait_option) {
-+ memcpy(priv->adapter->CmdBuf, skb->data, skb->len);
-+ priv->adapter->CmdSize = skb->len;
-+ priv->adapter->cmd_wait_option = FALSE;
-+ priv->adapter->CmdWaitQWoken = TRUE;
-+ wake_up_interruptible(&priv->adapter->cmdwait_q);
-+ }
-+ kfree_skb(skb);
-+ skb = NULL;
-+ break;
-+ case MV_TYPE_DAT:
-+ skb_put(skb, buf_len);
-+ skb_pull(skb, INTF_HEADER_LEN);
-+ uap_process_rx_packet(priv, skb);
-+ break;
-+ default:
-+ priv->stats.rx_errors++;
-+ priv->stats.rx_dropped++;
-+ /* Driver specified event and command resp should be handle here */
-+ PRINTM(INFO, "Unknown PKT type:%d\n", type);
-+ kfree_skb(skb);
-+ skb = NULL;
-+ break;
-+ }
-+ exit:
-+ if (ret) {
-+ if (skb)
-+ kfree_skb(skb);
-+ }
-+
-+ LEAVE();
-+ return ret;
-+}
-+
-+/**
-+ * @brief This function enables the host interrupts mask
-+ *
-+ * @param priv A pointer to uap_private structure
-+ * @param mask the interrupt mask
-+ * @return UAP_STATUS_SUCCESS
-+ */
-+static int
-+enable_host_int_mask(uap_private * priv, u8 mask)
-+{
-+ int ret = UAP_STATUS_SUCCESS;
-+
-+ ENTER();
-+
-+ /* Simply write the mask to the register */
-+ ret = sbi_write_ioreg(priv, HOST_INT_MASK_REG, mask);
-+
-+ if (ret) {
-+ PRINTM(WARN, "Unable to enable the host interrupt!\n");
-+ ret = UAP_STATUS_FAILURE;
-+ }
-+
-+ LEAVE();
-+ return ret;
-+}
-+
-+/** @brief This function disables the host interrupts mask.
-+ *
-+ * @param priv A pointer to uap_private structure
-+ * @param mask the interrupt mask
-+ * @return UAP_STATUS_SUCCESS or UAP_STATUS_FAILURE
-+ */
-+static int
-+disable_host_int_mask(uap_private * priv, u8 mask)
-+{
-+ int ret = UAP_STATUS_SUCCESS;
-+ u8 host_int_mask;
-+
-+ ENTER();
-+
-+ /* Read back the host_int_mask register */
-+ ret = sbi_read_ioreg(priv, HOST_INT_MASK_REG, &host_int_mask);
-+ if (ret) {
-+ ret = UAP_STATUS_FAILURE;
-+ goto done;
-+ }
-+
-+ /* Update with the mask and write back to the register */
-+ host_int_mask &= ~mask;
-+ ret = sbi_write_ioreg(priv, HOST_INT_MASK_REG, host_int_mask);
-+ if (ret < 0) {
-+ PRINTM(WARN, "Unable to diable the host interrupt!\n");
-+ ret = UAP_STATUS_FAILURE;
-+ goto done;
-+ }
-+
-+ done:
-+ LEAVE();
-+ return ret;
-+}
-+
-+/********************************************************
-+ Global Functions
-+********************************************************/
-+
-+/**
-+ * @brief This function handles the interrupt.
-+ *
-+ * @param func A pointer to sdio_func structure.
-+ * @return n/a
-+ */
-+static void
-+sbi_interrupt(struct sdio_func *func)
-+{
-+ struct sdio_mmc_card *card;
-+ uap_private *priv;
-+ u8 ireg = 0;
-+ int ret = UAP_STATUS_SUCCESS;
-+
-+ ENTER();
-+
-+ card = sdio_get_drvdata(func);
-+ if (!card || !card->priv) {
-+ PRINTM(MSG, "%s: sbi_interrupt(%p) card or priv is NULL, card=%p\n",
-+ __FUNCTION__, func, card);
-+ LEAVE();
-+ return;
-+ }
-+ priv = card->priv;
-+#ifdef FW_WAKEUP_TIME
-+ if ((priv->adapter->wt_pwrup_sending != 0L) &&
-+ (priv->adapter->wt_int == 0L))
-+ priv->adapter->wt_int = get_utimeofday();
-+#endif
-+
-+ ireg = sdio_readb(card->func, HOST_INTSTATUS_REG, &ret);
-+ if (ret) {
-+ PRINTM(WARN, "sdio_read_ioreg: read int status register failed\n");
-+ goto done;
-+ }
-+ if (ireg != 0) {
-+ /*
-+ * DN_LD_HOST_INT_STATUS and/or UP_LD_HOST_INT_STATUS
-+ * Clear the interrupt status register and re-enable the interrupt
-+ */
-+ PRINTM(INFO, "sdio_ireg = 0x%x\n", ireg);
-+ sdio_writeb(card->func,
-+ ~(ireg) & (DN_LD_HOST_INT_STATUS | UP_LD_HOST_INT_STATUS),
-+ HOST_INTSTATUS_REG, &ret);
-+ if (ret) {
-+ PRINTM(WARN,
-+ "sdio_write_ioreg: clear int status register failed\n");
-+ goto done;
-+ }
-+ }
-+ OS_INT_DISABLE;
-+ sd_ireg |= ireg;
-+ OS_INT_RESTORE;
-+
-+ uap_interrupt(priv);
-+ done:
-+ LEAVE();
-+}
-+
-+/**
-+ * @brief This function probe the card
-+ *
-+ * @param func A pointer to sdio_func structure
-+ * @param id A pointer to structure sd_device_id
-+ * @return UAP_STATUS_SUCCESS or UAP_STATUS_FAILURE
-+ */
-+static int
-+uap_probe(struct sdio_func *func, const struct sdio_device_id *id)
-+{
-+ int ret = UAP_STATUS_FAILURE;
-+ struct sdio_mmc_card *card = NULL;
-+
-+ ENTER();
-+
-+ PRINTM(MSG, "%s: vendor=0x%4.04X device=0x%4.04X class=%d function=%d\n",
-+ __FUNCTION__, func->vendor, func->device, func->class, func->num);
-+
-+ card = kzalloc(sizeof(struct sdio_mmc_card), GFP_KERNEL);
-+ if (!card) {
-+ ret = -ENOMEM;
-+ goto done;
-+ }
-+
-+ card->func = func;
-+
-+ if (!uap_add_card(card)) {
-+ PRINTM(ERROR, "%s: uap_add_callback failed\n", __FUNCTION__);
-+ kfree(card);
-+ ret = UAP_STATUS_FAILURE;
-+ goto done;
-+ }
-+
-+ ret = UAP_STATUS_SUCCESS;
-+
-+ done:
-+ LEAVE();
-+ return ret;
-+}
-+
-+/**
-+ * @brief This function removes the card
-+ *
-+ * @param func A pointer to sdio_func structure
-+ * @return N/A
-+ */
-+static void
-+uap_remove(struct sdio_func *func)
-+{
-+ struct sdio_mmc_card *card;
-+
-+ ENTER();
-+
-+ if (func) {
-+ card = sdio_get_drvdata(func);
-+ if (card) {
-+ uap_remove_card(card);
-+ kfree(card);
-+ }
-+ }
-+
-+ LEAVE();
-+}
-+
-+#ifdef CONFIG_PM
-+/**
-+ * @brief This function handles client driver suspend
-+ *
-+ * @param func A pointer to sdio_func structure
-+ * @return UAP_STATUS_SUCCESS or UAP_STATUS_FAILURE
-+ */
-+int
-+uap_suspend(struct sdio_func *func)
-+{
-+ ENTER();
-+ LEAVE();
-+ return 0;
-+}
-+
-+/**
-+ * @brief This function handles client driver resume
-+ *
-+ * @param func A pointer to sdio_func structure
-+ * @return UAP_STATUS_SUCCESS or UAP_STATUS_FAILURE
-+ */
-+int
-+uap_resume(struct sdio_func *func)
-+{
-+ ENTER();
-+ LEAVE();
-+ return 0;
-+}
-+#endif
-+
-+/** Device ID for SD8688 */
-+#define SD_DEVICE_ID_8688_UAP 0x9104
-+/** UAP IDs */
-+static const struct sdio_device_id uap_ids[] = {
-+ {SDIO_DEVICE(SDIO_VENDOR_ID_MARVELL, SD_DEVICE_ID_8688_UAP)},
-+ {},
-+};
-+
-+MODULE_DEVICE_TABLE(sdio, uap_ids);
-+
-+static struct sdio_driver uap_sdio = {
-+ .name = "uap_sdio",
-+ .id_table = uap_ids,
-+ .probe = uap_probe,
-+ .remove = uap_remove,
-+#ifdef CONFIG_PM
-+/* .suspend = uap_suspend, */
-+/* .resume = uap_resume, */
-+#endif
-+
-+};
-+
-+/**
-+ * @brief This function registers the IF module in bus driver.
-+ *
-+ * @return UAP_STATUS_SUCCESS or UAP_STATUS_FAILURE
-+ */
-+int __init
-+sbi_register()
-+{
-+ int ret = UAP_STATUS_SUCCESS;
-+
-+ ENTER();
-+
-+ /* SDIO Driver Registration */
-+ if (sdio_register_driver(&uap_sdio) != 0) {
-+ PRINTM(FATAL, "SDIO Driver Registration Failed \n");
-+ ret = UAP_STATUS_FAILURE;
-+ }
-+
-+ LEAVE();
-+ return ret;
-+}
-+
-+/**
-+ * @brief This function de-registers the IF module in bus driver.
-+ *
-+ * @return n/a
-+ */
-+void __exit
-+sbi_unregister(void)
-+{
-+ ENTER();
-+
-+ /* SDIO Driver Unregistration */
-+ sdio_unregister_driver(&uap_sdio);
-+
-+ LEAVE();
-+}
-+
-+/**
-+ * @brief This function checks the interrupt status and handle it accordingly.
-+ *
-+ * @param priv A pointer to uap_private structure
-+ * @param ireg A pointer to variable that keeps returned value
-+ * @return UAP_STATUS_SUCCESS or UAP_STATUS_FAILURE
-+ */
-+int
-+sbi_get_int_status(uap_private * priv, u8 * ireg)
-+{
-+ int ret = UAP_STATUS_SUCCESS;
-+ u8 sdio_ireg = 0;
-+ struct sdio_mmc_card *card = priv->uap_dev.card;
-+
-+ ENTER();
-+
-+ *ireg = 0;
-+ OS_INT_DISABLE;
-+ sdio_ireg = sd_ireg;
-+ sd_ireg = 0;
-+ OS_INT_RESTORE;
-+
-+ sdio_claim_host(card->func);
-+
-+ if (sdio_ireg & DN_LD_HOST_INT_STATUS) { /* tx_done INT */
-+ if (!priv->uap_dev.cmd_sent) { /* tx_done already received */
-+ PRINTM(INFO,
-+ "warning: tx_done already received: tx_dnld_rdy=0x%x int status=0x%x\n",
-+ priv->uap_dev.cmd_sent, sdio_ireg);
-+ } else {
-+ priv->uap_dev.cmd_sent = FALSE;
-+ priv->uap_dev.data_sent = FALSE;
-+ if ( (priv->uap_dev.netdev->reg_state == NETREG_REGISTERED) && (skb_queue_len(&priv->adapter->tx_queue) < TX_LOW_WATERMARK)) {
-+ os_start_queue(priv);
-+ }
-+ }
-+ }
-+ if (sdio_ireg & UP_LD_HOST_INT_STATUS) {
-+ sd_card_to_host(priv);
-+ }
-+
-+ *ireg = sdio_ireg;
-+ ret = UAP_STATUS_SUCCESS;
-+ sdio_release_host(card->func);
-+
-+ LEAVE();
-+ return ret;
-+}
-+
-+/**
-+ * @brief This function disables the host interrupts.
-+ *
-+ * @param priv A pointer to uap_private structure
-+ * @return UAP_STATUS_SUCCESS or UAP_STATUS_FAILURE
-+ */
-+int
-+sbi_disable_host_int(uap_private * priv)
-+{
-+ struct sdio_mmc_card *card = priv->uap_dev.card;
-+ int ret;
-+
-+ ENTER();
-+
-+ sdio_claim_host(card->func);
-+ ret = disable_host_int_mask(priv, HIM_DISABLE);
-+ sdio_release_host(card->func);
-+
-+ LEAVE();
-+ return ret;
-+}
-+
-+/**
-+ * @brief This function enables the host interrupts.
-+ *
-+ * @param priv A pointer to uap_private structure
-+ * @return UAP_STATUS_SUCCESS
-+ */
-+int
-+sbi_enable_host_int(uap_private * priv)
-+{
-+ struct sdio_mmc_card *card = priv->uap_dev.card;
-+ int ret;
-+
-+ ENTER();
-+
-+ sdio_claim_host(card->func);
-+ ret = enable_host_int_mask(priv, HIM_ENABLE);
-+ sdio_release_host(card->func);
-+
-+ LEAVE();
-+ return ret;
-+}
-+
-+/**
-+ * @brief This function de-registers the device.
-+ *
-+ * @param priv A pointer to uap_private structure
-+ * @return UAP_STATUS_SUCCESS
-+ */
-+int
-+sbi_unregister_dev(uap_private * priv)
-+{
-+ struct sdio_mmc_card *card = priv->uap_dev.card;
-+
-+ ENTER();
-+
-+ if (!card || !card->func) {
-+ PRINTM(ERROR, "Error: card or function is NULL!\n");
-+ goto done;
-+ }
-+
-+ sdio_claim_host(card->func);
-+ sdio_release_irq(card->func);
-+ sdio_disable_func(card->func);
-+ sdio_release_host(card->func);
-+
-+ sdio_set_drvdata(card->func, NULL);
-+
-+ done:
-+ LEAVE();
-+ return UAP_STATUS_SUCCESS;
-+}
-+
-+/**
-+ * @brief This function registers the device.
-+ *
-+ * @param priv A pointer to uap_private structure
-+ * @return UAP_STATUS_SUCCESS or UAP_STATUS_FAILURE
-+ */
-+int
-+sbi_register_dev(uap_private * priv)
-+{
-+ int ret = UAP_STATUS_FAILURE;
-+ u8 reg;
-+ struct sdio_mmc_card *card = priv->uap_dev.card;
-+ struct sdio_func *func;
-+
-+ ENTER();
-+
-+ if (!card || !card->func) {
-+ PRINTM(ERROR, "Error: card or function is NULL!\n");
-+ goto done;
-+ }
-+
-+ func = card->func;
-+
-+ /* Initialize the private structure */
-+ priv->uap_dev.ioport = 0;
-+
-+ sdio_claim_host(func);
-+
-+ ret = sdio_enable_func(func);
-+ if (ret) {
-+ PRINTM(FATAL, "sdio_enable_func() failed: ret=%d\n", ret);
-+ goto release_host;
-+ }
-+
-+ ret = sdio_claim_irq(func, sbi_interrupt);
-+ if (ret) {
-+ PRINTM(FATAL, "sdio_claim_irq failed: ret=%d\n", ret);
-+ goto disable_func;
-+ }
-+
-+ /* Read the IO port */
-+ ret = sbi_read_ioreg(priv, IO_PORT_0_REG, ®);
-+ if (ret)
-+ goto release_irq;
-+ else
-+ priv->uap_dev.ioport |= reg;
-+
-+ ret = sbi_read_ioreg(priv, IO_PORT_1_REG, ®);
-+ if (ret)
-+ goto release_irq;
-+ else
-+ priv->uap_dev.ioport |= (reg << 8);
-+
-+ ret = sbi_read_ioreg(priv, IO_PORT_2_REG, ®);
-+ if (ret)
-+ goto release_irq;
-+ else
-+ priv->uap_dev.ioport |= (reg << 16);
-+
-+ PRINTM(INFO, "SDIO FUNC #%d IO port: 0x%x\n", func->num,
-+ priv->uap_dev.ioport);
-+
-+ ret = sdio_set_block_size(card->func, SD_BLOCK_SIZE);
-+ if (ret) {
-+ PRINTM(ERROR, "%s: cannot set SDIO block size\n", __FUNCTION__);
-+ ret = UAP_STATUS_FAILURE;
-+ goto release_irq;
-+ }
-+ priv->hotplug_device = &func->dev;
-+
-+ if (helper_name == NULL) {
-+ helper_name = DEFAULT_HELPER_NAME;
-+ }
-+ if (fw_name == NULL) {
-+ fw_name = DEFAULT_FW_NAME;
-+ }
-+ sdio_release_host(func);
-+
-+ sdio_set_drvdata(func, card);
-+
-+ ret = UAP_STATUS_SUCCESS;
-+ goto done;
-+
-+ release_irq:
-+ sdio_release_irq(func);
-+ disable_func:
-+ sdio_disable_func(func);
-+ release_host:
-+ sdio_release_host(func);
-+
-+ done:
-+ LEAVE();
-+ return ret;
-+}
-+
-+/**
-+ * @brief This function sends data to the card.
-+ *
-+ * @param priv A pointer to uap_private structure
-+ * @param payload A pointer to the data/cmd buffer
-+ * @param nb the length of data/cmd
-+ * @return UAP_STATUS_SUCCESS or UAP_STATUS_FAILURE
-+ */
-+int
-+sbi_host_to_card(uap_private * priv, u8 * payload, u16 nb)
-+{
-+ struct sdio_mmc_card *card = priv->uap_dev.card;
-+ int ret = UAP_STATUS_SUCCESS;
-+ int buf_block_len;
-+ int blksz;
-+ int i = 0;
-+ u8 *buf = NULL;
-+#ifdef PXA3XX_DMA_ALIGN
-+ void *tmpbuf = NULL;
-+ int tmpbufsz;
-+#endif
-+
-+ ENTER();
-+
-+ if (!card || !card->func) {
-+ PRINTM(ERROR, "card or function is NULL!\n");
-+ LEAVE();
-+ return UAP_STATUS_FAILURE;
-+ }
-+ buf = payload;
-+#ifdef PXA3XX_DMA_ALIGN
-+ if ((u32) payload & (PXA3XX_DMA_ALIGNMENT - 1)) {
-+ tmpbufsz = ALIGN_SZ(nb, PXA3XX_DMA_ALIGNMENT);
-+ tmpbuf = kmalloc(tmpbufsz, GFP_KERNEL);
-+ memset(tmpbuf, 0, tmpbufsz);
-+ /* Ensure 8-byte aligned CMD buffer */
-+ buf = (u8 *) ALIGN_ADDR(tmpbuf, PXA3XX_DMA_ALIGNMENT);
-+ memcpy(buf, payload, nb);
-+ }
-+#endif
-+ /* Allocate buffer and copy payload */
-+ blksz = SD_BLOCK_SIZE;
-+ buf_block_len = (nb + blksz - 1) / blksz;
-+ sdio_claim_host(card->func);
-+#define MAX_WRITE_IOMEM_RETRY 2
-+ priv->uap_dev.cmd_sent = TRUE;
-+ priv->uap_dev.data_sent = TRUE;
-+ do {
-+ /* Transfer data to card */
-+ ret = sdio_writesb(card->func, priv->uap_dev.ioport, buf,
-+ buf_block_len * blksz);
-+ if (ret < 0) {
-+ i++;
-+ PRINTM(ERROR, "host_to_card, write iomem (%d) failed: %d\n", i,
-+ ret);
-+ ret = UAP_STATUS_FAILURE;
-+ if (i > MAX_WRITE_IOMEM_RETRY)
-+ goto exit;
-+ } else {
-+ HEXDUMP("SDIO Blk Wr", payload, nb);
-+ }
-+ } while (ret == UAP_STATUS_FAILURE);
-+ exit:
-+ sdio_release_host(card->func);
-+#ifdef PXA3XX_DMA_ALIGN
-+ if (tmpbuf)
-+ kfree(tmpbuf);
-+#endif
-+ if (ret == UAP_STATUS_FAILURE) {
-+ priv->uap_dev.cmd_sent = FALSE;
-+ priv->uap_dev.data_sent = FALSE;
-+ }
-+ LEAVE();
-+ return ret;
-+}
-+
-+/**
-+ * @brief This function reads CIS information.
-+ *
-+ * @param priv A pointer to uap_private structure
-+ * @param cisinfo A pointer to CIS information output buffer
-+ * @param cislen A pointer to length of CIS info output buffer
-+ * @return UAP_STATUS_SUCCESS or UAP_STATUS_FAILURE
-+ */
-+#if 0
-+static int
-+sbi_get_cis_info(uap_private * priv, void *cisinfo, int *cislen)
-+{
-+#define CIS_PTR (0x8000)
-+ struct sdio_mmc_card *card = priv->uap_dev.card;
-+ unsigned int i, cis_ptr = CIS_PTR;
-+ int ret = UAP_STATUS_FAILURE;
-+
-+ ENTER();
-+
-+ if (!card || !card->func) {
-+ PRINTM(ERROR, "sbi_get_cis_info(): card or function is NULL!\n");
-+ goto exit;
-+ }
-+#define MAX_SDIO_CIS_INFO_LEN (256)
-+ if (!cisinfo || (*cislen < MAX_SDIO_CIS_INFO_LEN)) {
-+ PRINTM(WARN, "ERROR! get_cis_info: insufficient buffer passed\n");
-+ goto exit;
-+ }
-+
-+ *cislen = MAX_SDIO_CIS_INFO_LEN;
-+
-+ sdio_claim_host(card->func);
-+
-+ PRINTM(INFO, "cis_ptr=%#x\n", cis_ptr);
-+
-+ /* Read the Tuple Data */
-+ for (i = 0; i < *cislen; i++) {
-+ ((unsigned char *) cisinfo)[i] =
-+ sdio_readb(card->func, cis_ptr + i, &ret);
-+ if (ret) {
-+ PRINTM(WARN, "get_cis_info error: ret=%d\n", ret);
-+ ret = UAP_STATUS_FAILURE;
-+ goto done;
-+ }
-+ PRINTM(INFO, "cisinfo[%d]=%#x\n", i, ((unsigned char *) cisinfo)[i]);
-+ }
-+
-+ done:
-+ sdio_release_host(card->func);
-+ exit:
-+ LEAVE();
-+ return ret;
-+}
-+#endif
-+/**
-+ * @brief This function downloads helper image to the card.
-+ *
-+ * @param priv A pointer to uap_private structure
-+ * @return UAP_STATUS_SUCCESS or UAP_STATUS_FAILURE
-+ */
-+int
-+sbi_prog_helper(uap_private * priv)
-+{
-+ struct sdio_mmc_card *card = priv->uap_dev.card;
-+ u8 *helper = NULL;
-+ int helperlen;
-+ int ret = UAP_STATUS_SUCCESS;
-+ void *tmphlprbuf = NULL;
-+ int tmphlprbufsz;
-+ u8 *hlprbuf;
-+ int hlprblknow;
-+ u32 tx_len;
-+#ifdef FW_DOWNLOAD_SPEED
-+ u32 tv1, tv2;
-+#endif
-+
-+ ENTER();
-+
-+ if (!card || !card->func) {
-+ PRINTM(ERROR, "sbi_prog_helper(): card or function is NULL!\n");
-+ goto done;
-+ }
-+
-+ if (priv->fw_helper) {
-+ helper = (u8 *) priv->fw_helper->data;
-+ helperlen = priv->fw_helper->size;
-+ } else {
-+ PRINTM(MSG, "No helper image found! Terminating download.\n");
-+ LEAVE();
-+ return UAP_STATUS_FAILURE;
-+ }
-+
-+ PRINTM(INFO, "Downloading helper image (%d bytes), block size %d bytes\n",
-+ helperlen, SD_BLOCK_SIZE);
-+
-+#ifdef FW_DOWNLOAD_SPEED
-+ tv1 = get_utimeofday();
-+#endif
-+
-+#ifdef PXA3XX_DMA_ALIGN
-+ tmphlprbufsz = ALIGN_SZ(UAP_UPLD_SIZE, PXA3XX_DMA_ALIGNMENT);
-+#else /* !PXA3XX_DMA_ALIGN */
-+ tmphlprbufsz = UAP_UPLD_SIZE;
-+#endif /* !PXA3XX_DMA_ALIGN */
-+ tmphlprbuf = kmalloc(tmphlprbufsz, GFP_KERNEL);
-+ if (!tmphlprbuf) {
-+ PRINTM(ERROR,
-+ "Unable to allocate buffer for helper. Terminating download\n");
-+ ret = UAP_STATUS_FAILURE;
-+ goto done;
-+ }
-+ memset(tmphlprbuf, 0, tmphlprbufsz);
-+#ifdef PXA3XX_DMA_ALIGN
-+ hlprbuf = (u8 *) ALIGN_ADDR(tmphlprbuf, PXA3XX_DMA_ALIGNMENT);
-+#else /* !PXA3XX_DMA_ALIGN */
-+ hlprbuf = (u8 *) tmphlprbuf;
-+#endif /* !PXA3XX_DMA_ALIGN */
-+
-+ sdio_claim_host(card->func);
-+
-+ /* Perform helper data transfer */
-+ tx_len = (FIRMWARE_TRANSFER_NBLOCK * SD_BLOCK_SIZE) - INTF_HEADER_LEN;
-+ hlprblknow = 0;
-+ do {
-+ /* The host polls for the DN_LD_CARD_RDY and CARD_IO_READY bits */
-+ ret = mv_sdio_poll_card_status(priv, CARD_IO_READY | DN_LD_CARD_RDY);
-+ if (ret < 0) {
-+ PRINTM(FATAL, "Helper download poll status timeout @ %d\n",
-+ hlprblknow);
-+ goto done;
-+ }
-+
-+ /* More data? */
-+ if (hlprblknow >= helperlen)
-+ break;
-+
-+ /* Set blocksize to transfer - checking for last block */
-+ if (helperlen - hlprblknow < tx_len)
-+ tx_len = helperlen - hlprblknow;
-+
-+ /* Set length to the 4-byte header */
-+ *(u32 *) hlprbuf = uap_cpu_to_le32(tx_len);
-+
-+ /* Copy payload to buffer */
-+ memcpy(&hlprbuf[INTF_HEADER_LEN], &helper[hlprblknow], tx_len);
-+
-+ PRINTM(INFO, ".");
-+
-+ /* Send data */
-+ ret = sdio_writesb(card->func, priv->uap_dev.ioport,
-+ hlprbuf, FIRMWARE_TRANSFER_NBLOCK * SD_BLOCK_SIZE);
-+
-+ if (ret < 0) {
-+ PRINTM(FATAL, "IO error during helper download @ %d\n", hlprblknow);
-+ goto done;
-+ }
-+
-+ hlprblknow += tx_len;
-+ } while (TRUE);
-+
-+#ifdef FW_DOWNLOAD_SPEED
-+ tv2 = get_utimeofday();
-+ PRINTM(INFO, "helper: %ld.%03ld.%03ld ", tv1 / 1000000,
-+ (tv1 % 1000000) / 1000, tv1 % 1000);
-+ PRINTM(INFO, " -> %ld.%03ld.%03ld ", tv2 / 1000000, (tv2 % 1000000) / 1000,
-+ tv2 % 1000);
-+ tv2 -= tv1;
-+ PRINTM(INFO, " == %ld.%03ld.%03ld\n", tv2 / 1000000, (tv2 % 1000000) / 1000,
-+ tv2 % 1000);
-+#endif
-+
-+ /* Write last EOF data */
-+ PRINTM(INFO, "\nTransferring helper image EOF block\n");
-+ memset(hlprbuf, 0x0, SD_BLOCK_SIZE);
-+ ret = sdio_writesb(card->func, priv->uap_dev.ioport,
-+ hlprbuf, SD_BLOCK_SIZE);
-+
-+ if (ret < 0) {
-+ PRINTM(FATAL, "IO error in writing helper image EOF block\n");
-+ goto done;
-+ }
-+
-+ ret = UAP_STATUS_SUCCESS;
-+
-+ done:
-+ sdio_release_host(card->func);
-+ if (tmphlprbuf)
-+ kfree(tmphlprbuf);
-+
-+ LEAVE();
-+ return ret;
-+}
-+
-+/**
-+ * @brief This function downloads firmware image to the card.
-+ *
-+ * @param priv A pointer to uap_private structure
-+ * @return UAP_STATUS_SUCCESS or UAP_STATUS_FAILURE
-+ */
-+int
-+sbi_prog_fw_w_helper(uap_private * priv)
-+{
-+ struct sdio_mmc_card *card = priv->uap_dev.card;
-+ u8 *firmware = NULL;
-+ int firmwarelen;
-+ u8 base0;
-+ u8 base1;
-+ int ret = UAP_STATUS_SUCCESS;
-+ int offset;
-+ void *tmpfwbuf = NULL;
-+ int tmpfwbufsz;
-+ u8 *fwbuf;
-+ u16 len;
-+ int txlen = 0;
-+ int tx_blocks = 0;
-+ int i = 0;
-+ int tries = 0;
-+#ifdef FW_DOWNLOAD_SPEED
-+ u32 tv1, tv2;
-+#endif
-+
-+ ENTER();
-+
-+ if (!card || !card->func) {
-+ PRINTM(ERROR, "sbi_prog_fw_w_helper(): card or function is NULL!\n");
-+ goto done;
-+ }
-+
-+ if (priv->firmware) {
-+ firmware = (u8 *) priv->firmware->data;
-+ firmwarelen = priv->firmware->size;
-+ } else {
-+ PRINTM(MSG, "No firmware image found! Terminating download.\n");
-+ LEAVE();
-+ return UAP_STATUS_FAILURE;
-+ }
-+
-+ PRINTM(INFO, "Downloading FW image (%d bytes)\n", firmwarelen);
-+
-+#ifdef FW_DOWNLOAD_SPEED
-+ tv1 = get_utimeofday();
-+#endif
-+
-+#ifdef PXA3XX_DMA_ALIGN
-+ tmpfwbufsz = ALIGN_SZ(UAP_UPLD_SIZE, PXA3XX_DMA_ALIGNMENT);
-+#else /* PXA3XX_DMA_ALIGN */
-+ tmpfwbufsz = UAP_UPLD_SIZE;
-+#endif /* PXA3XX_DMA_ALIGN */
-+ tmpfwbuf = kmalloc(tmpfwbufsz, GFP_KERNEL);
-+ if (!tmpfwbuf) {
-+ PRINTM(ERROR,
-+ "Unable to allocate buffer for firmware. Terminating download.\n");
-+ ret = UAP_STATUS_FAILURE;
-+ goto done;
-+ }
-+ memset(tmpfwbuf, 0, tmpfwbufsz);
-+#ifdef PXA3XX_DMA_ALIGN
-+ /* Ensure 8-byte aligned firmware buffer */
-+ fwbuf = (u8 *) ALIGN_ADDR(tmpfwbuf, PXA3XX_DMA_ALIGNMENT);
-+#else /* PXA3XX_DMA_ALIGN */
-+ fwbuf = (u8 *) tmpfwbuf;
-+#endif /* PXA3XX_DMA_ALIGN */
-+
-+ sdio_claim_host(card->func);
-+
-+ /* Perform firmware data transfer */
-+ offset = 0;
-+ do {
-+ /* The host polls for the DN_LD_CARD_RDY and CARD_IO_READY bits */
-+ ret = mv_sdio_poll_card_status(priv, CARD_IO_READY | DN_LD_CARD_RDY);
-+ if (ret < 0) {
-+ PRINTM(FATAL, "FW download with helper poll status timeout @ %d\n",
-+ offset);
-+ goto done;
-+ }
-+
-+ /* More data? */
-+ if (offset >= firmwarelen)
-+ break;
-+
-+ for (tries = 0; tries < MAX_POLL_TRIES; tries++) {
-+ if ((ret = sbi_read_ioreg(priv, HOST_F1_RD_BASE_0, &base0)) < 0) {
-+ PRINTM(WARN, "Dev BASE0 register read failed:"
-+ " base0=0x%04X(%d). Terminating download.\n", base0,
-+ base0);
-+ ret = UAP_STATUS_FAILURE;
-+ goto done;
-+ }
-+ if ((ret = sbi_read_ioreg(priv, HOST_F1_RD_BASE_1, &base1)) < 0) {
-+ PRINTM(WARN, "Dev BASE1 register read failed:"
-+ " base1=0x%04X(%d). Terminating download.\n", base1,
-+ base1);
-+ ret = UAP_STATUS_FAILURE;
-+ goto done;
-+ }
-+ len = (((u16) base1) << 8) | base0;
-+
-+ /* For SD8688 wait until the length is not 0, 1 or 2 before
-+ downloading the first FW block, since BOOT code writes the
-+ register to indicate the helper/FW download winner, the value
-+ could be 1 or 2 (Func1 or Func2). */
-+ if ((len && offset) || (len > 2))
-+ break;
-+ udelay(10);
-+ }
-+
-+ if (len == 0)
-+ break;
-+ else if (len > UAP_UPLD_SIZE) {
-+ PRINTM(FATAL, "FW download failure @ %d, invalid length %d\n",
-+ offset, len);
-+ ret = UAP_STATUS_FAILURE;
-+ goto done;
-+ }
-+
-+ txlen = len;
-+
-+ if (len & BIT(0)) {
-+ i++;
-+ if (i > MAX_WRITE_IOMEM_RETRY) {
-+ PRINTM(FATAL,
-+ "FW download failure @ %d, over max retry count\n",
-+ offset);
-+ ret = UAP_STATUS_FAILURE;
-+ goto done;
-+ }
-+ PRINTM(ERROR, "FW CRC error indicated by the helper:"
-+ " len = 0x%04X, txlen = %d\n", len, txlen);
-+ len &= ~BIT(0);
-+ /* Setting this to 0 to resend from same offset */
-+ txlen = 0;
-+ } else {
-+ i = 0;
-+
-+ /* Set blocksize to transfer - checking for last block */
-+ if (firmwarelen - offset < txlen) {
-+ txlen = firmwarelen - offset;
-+ }
-+ PRINTM(INFO, ".");
-+
-+ tx_blocks = (txlen + SD_BLOCK_SIZE - 1) / SD_BLOCK_SIZE;
-+
-+ /* Copy payload to buffer */
-+ memcpy(fwbuf, &firmware[offset], txlen);
-+ }
-+
-+ /* Send data */
-+ ret = sdio_writesb(card->func, priv->uap_dev.ioport,
-+ fwbuf, tx_blocks * SD_BLOCK_SIZE);
-+
-+ if (ret < 0) {
-+ PRINTM(ERROR, "FW download, write iomem (%d) failed @ %d\n", i,
-+ offset);
-+ if (sbi_write_ioreg(priv, CONFIGURATION_REG, 0x04) < 0) {
-+ PRINTM(ERROR, "write ioreg failed (CFG)\n");
-+ }
-+ }
-+
-+ offset += txlen;
-+ } while (TRUE);
-+
-+ PRINTM(INFO, "\nFW download over, size %d bytes\n", offset);
-+
-+ ret = UAP_STATUS_SUCCESS;
-+ done:
-+#ifdef FW_DOWNLOAD_SPEED
-+ tv2 = get_utimeofday();
-+ PRINTM(INFO, "FW: %ld.%03ld.%03ld ", tv1 / 1000000,
-+ (tv1 % 1000000) / 1000, tv1 % 1000);
-+ PRINTM(INFO, " -> %ld.%03ld.%03ld ", tv2 / 1000000,
-+ (tv2 % 1000000) / 1000, tv2 % 1000);
-+ tv2 -= tv1;
-+ PRINTM(INFO, " == %ld.%03ld.%03ld\n", tv2 / 1000000,
-+ (tv2 % 1000000) / 1000, tv2 % 1000);
-+#endif
-+ sdio_release_host(card->func);
-+ if (tmpfwbuf)
-+ kfree(tmpfwbuf);
-+
-+ LEAVE();
-+ return ret;
-+}
-+
-+/**
-+ * @brief This function checks if the firmware is ready to accept
-+ * command or not.
-+ *
-+ * @param priv A pointer to uap_private structure
-+ * @param pollnum Poll number
-+ * @return UAP_STATUS_SUCCESS or UAP_STATUS_FAILURE
-+ */
-+int
-+sbi_check_fw_status(uap_private * priv, int pollnum)
-+{
-+ struct sdio_mmc_card *card = priv->uap_dev.card;
-+ int ret = UAP_STATUS_SUCCESS;
-+ u16 firmwarestat;
-+ int tries;
-+
-+ ENTER();
-+
-+ sdio_claim_host(card->func);
-+
-+ /* Wait for firmware initialization event */
-+ for (tries = 0; tries < pollnum; tries++) {
-+ if ((ret = sd_read_firmware_status(priv, &firmwarestat)) < 0)
-+ continue;
-+ if (firmwarestat == FIRMWARE_READY) {
-+ ret = UAP_STATUS_SUCCESS;
-+ break;
-+ } else {
-+ mdelay(10);
-+ ret = UAP_STATUS_FAILURE;
-+ }
-+ }
-+
-+ if (ret < 0)
-+ goto done;
-+
-+ ret = UAP_STATUS_SUCCESS;
-+ sd_get_rx_unit(priv);
-+
-+ done:
-+ sdio_release_host(card->func);
-+
-+ LEAVE();
-+ return ret;
-+}
-+
-+/**
-+ * @brief This function set bus clock on/off
-+ *
-+ * @param priv A pointer to uap_private structure
-+ * @param option TRUE--on , FALSE--off
-+ * @return UAP_STATUS_SUCCESS
-+ */
-+#if 0
-+static int
-+sbi_set_bus_clock(uap_private * priv, u8 option)
-+{
-+ ENTER();
-+ LEAVE();
-+ return UAP_STATUS_SUCCESS;
-+}
-+#endif
-+
-+/**
-+ * @brief This function wakeup firmware
-+ *
-+ * @param priv A pointer to uap_private structure
-+ * @return UAP_STATUS_SUCCESS or UAP_STATUS_FAILURE
-+ */
-+int
-+sbi_wakeup_firmware(uap_private * priv)
-+{
-+ struct sdio_mmc_card *card = priv->uap_dev.card;
-+ int ret = UAP_STATUS_SUCCESS;
-+
-+ ENTER();
-+
-+ if (!card || !card->func) {
-+ PRINTM(ERROR, "card or function is NULL!\n");
-+ LEAVE();
-+ return UAP_STATUS_FAILURE;
-+ }
-+ sdio_claim_host(card->func);
-+ sdio_writeb(card->func, HOST_POWER_UP, CONFIGURATION_REG, &ret);
-+ sdio_release_host(card->func);
-+ LEAVE();
-+ return ret;
-+}
-diff --git a/drivers/net/wireless/libertas_uap/uap_sdio_mmc.h b/drivers/net/wireless/libertas_uap/uap_sdio_mmc.h
-new file mode 100644
-index 0000000..191c67f
---- /dev/null
-+++ b/drivers/net/wireless/libertas_uap/uap_sdio_mmc.h
-@@ -0,0 +1,136 @@
-+/** @file uap_sdio_mmc.h
-+ * @brief This file contains SDIO IF (interface) module
-+ * related macros, enum, and structure.
-+ *
-+ * Copyright (C) 2007-2009, Marvell International Ltd.
-+ *
-+ * This software file (the "File") is distributed by Marvell International
-+ * Ltd. under the terms of the GNU General Public License Version 2, June 1991
-+ * (the "License"). You may use, redistribute and/or modify this File in
-+ * accordance with the terms and conditions of the License, a copy of which
-+ * is available along with the File in the gpl.txt file or by writing to
-+ * the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-+ * 02111-1307 or on the worldwide web at http://www.gnu.org/licenses/gpl.txt.
-+ *
-+ * THE FILE IS DISTRIBUTED AS-IS, WITHOUT WARRANTY OF ANY KIND, AND THE
-+ * IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE
-+ * ARE EXPRESSLY DISCLAIMED. The License provides additional details about
-+ * this warranty disclaimer.
-+ *
-+ */
-+/****************************************************
-+Change log:
-+ 10/10/07: initial version
-+****************************************************/
-+
-+#ifndef _UAP_SDIO_MMC_H
-+#define _UAP_SDIO_MMC_H
-+
-+#include <linux/mmc/sdio.h>
-+#include <linux/mmc/sdio_ids.h>
-+#include <linux/mmc/sdio_func.h>
-+#include <linux/mmc/card.h>
-+
-+#include "uap_headers.h"
-+
-+/** The number of times to try when waiting for downloaded firmware to
-+ become active. (polling the scratch register). */
-+#define MAX_FIRMWARE_POLL_TRIES 100
-+
-+/** Firmware ready */
-+#define FIRMWARE_READY 0xfedc
-+
-+/** Number of firmware blocks to transfer */
-+#define FIRMWARE_TRANSFER_NBLOCK 2
-+
-+/* Host Control Registers */
-+/** Host Control Registers : I/O port 0 */
-+#define IO_PORT_0_REG 0x00
-+/** Host Control Registers : I/O port 1 */
-+#define IO_PORT_1_REG 0x01
-+/** Host Control Registers : I/O port 2 */
-+#define IO_PORT_2_REG 0x02
-+
-+/** Host Control Registers : Configuration */
-+#define CONFIGURATION_REG 0x03
-+/** Host Control Registers : Host without Command 53 finish host */
-+#define HOST_WO_CMD53_FINISH_HOST (0x1U << 2)
-+/** Host Control Registers : Host power up */
-+#define HOST_POWER_UP (0x1U << 1)
-+/** Host Control Registers : Host power down */
-+#define HOST_POWER_DOWN (0x1U << 0)
-+
-+/** Host Control Registers : Host interrupt mask */
-+#define HOST_INT_MASK_REG 0x04
-+/** Host Control Registers : Upload host interrupt mask */
-+#define UP_LD_HOST_INT_MASK (0x1U)
-+/** Host Control Registers : Download host interrupt mask */
-+#define DN_LD_HOST_INT_MASK (0x2U)
-+/** Enable Host interrupt mask */
-+#define HIM_ENABLE (UP_LD_HOST_INT_MASK | DN_LD_HOST_INT_MASK)
-+/** Disable Host interrupt mask */
-+#define HIM_DISABLE 0xff
-+
-+/** Host Control Registers : Host interrupt status */
-+#define HOST_INTSTATUS_REG 0x05
-+/** Host Control Registers : Upload host interrupt status */
-+#define UP_LD_HOST_INT_STATUS (0x1U)
-+/** Host Control Registers : Download host interrupt status */
-+#define DN_LD_HOST_INT_STATUS (0x2U)
-+
-+/** Host F1 read base 0 */
-+#define HOST_F1_RD_BASE_0 0x10
-+/** Host F1 read base 1 */
-+#define HOST_F1_RD_BASE_1 0x11
-+
-+/** Card Control Registers : Card status register */
-+#define CARD_STATUS_REG 0x20
-+/** Card Control Registers : Card I/O ready */
-+#define CARD_IO_READY (0x1U << 3)
-+/** Card Control Registers : CIS card ready */
-+#define CIS_CARD_RDY (0x1U << 2)
-+/** Card Control Registers : Upload card ready */
-+#define UP_LD_CARD_RDY (0x1U << 1)
-+/** Card Control Registers : Download card ready */
-+#define DN_LD_CARD_RDY (0x1U << 0)
-+
-+/** Card Control Registers : Card OCR 0 register */
-+#define CARD_OCR_0_REG 0x34
-+/** Card Control Registers : Card OCR 1 register */
-+#define CARD_OCR_1_REG 0x35
-+
-+/** Firmware status 0 register */
-+#define CARD_FW_STATUS0_REG 0x40
-+/** Firmware status 1 register */
-+#define CARD_FW_STATUS1_REG 0x41
-+/** Rx length register */
-+#define CARD_RX_LEN_REG 0x42
-+/** Rx unit register */
-+#define CARD_RX_UNIT_REG 0x43
-+
-+/** Chip Id Register 0 */
-+#define CARD_CHIP_ID_0_REG 0x801c
-+/** Chip Id Register 1 */
-+#define CARD_CHIP_ID_1_REG 0x801d
-+
-+#ifdef PXA3XX_DMA_ALIGN
-+/** DMA alignment value for PXA3XX platforms */
-+#define PXA3XX_DMA_ALIGNMENT 8
-+/** Macros for Data Alignment : size */
-+#define ALIGN_SZ(p, a) \
-+ (((p) + ((a) - 1)) & ~((a) - 1))
-+
-+/** Macros for Data Alignment : address */
-+#define ALIGN_ADDR(p, a) \
-+ ((((u32)(p)) + (((u32)(a)) - 1)) & ~(((u32)(a)) - 1))
-+#endif /* PXA3XX_DMA_ALIGN */
-+
-+struct sdio_mmc_card
-+{
-+ /** sdio_func structure pointer */
-+ struct sdio_func *func;
-+ /** uap_private structure pointer */
-+ uap_private *priv;
-+};
-+
-+#endif /* _UAP_SDIO_MMC_H */
+++ /dev/null
-diff -Naur linux-3.14.79.ORG/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_arm.c linux-3.14.79/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_arm.c
---- linux-3.14.79.ORG/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_arm.c 2017-06-16 19:58:56.000000000 +0200
-+++ linux-3.14.79/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_arm.c 2017-06-17 09:32:51.645096482 +0200
-@@ -1776,7 +1776,7 @@
- ** VC_RESUME_FAILED - Currently unused - no mechanism to fail resume exists.
- */
-
--inline void
-+void
- set_suspend_state(VCHIQ_ARM_STATE_T *arm_state,
- enum vc_suspend_status new_state)
- {
+++ /dev/null
-From a44147a09baf8c46cc0b02332df3a4656e0659d5 Mon Sep 17 00:00:00 2001
-From: Arne Fitzenreiter <arne_f@ipfire.org>
-Date: Mon, 10 Dec 2018 13:12:00 +0100
-Subject: [PATCH] Revert "usb: dwc2: Fix DMA alignment to start at allocated
- boundary"
-
-This reverts commit 68fc92a0f3913d539d1ac68a861f895e34099e46.
----
- drivers/usb/dwc2/hcd.c | 44 +++++++++++++++++++++-----------------------
- 1 file changed, 21 insertions(+), 23 deletions(-)
-
-diff --git a/drivers/usb/dwc2/hcd.c b/drivers/usb/dwc2/hcd.c
-index fa20ec4..4b81d08 100644
---- a/drivers/usb/dwc2/hcd.c
-+++ b/drivers/usb/dwc2/hcd.c
-@@ -2644,29 +2644,34 @@ static int dwc2_alloc_split_dma_aligned_buf(struct dwc2_hsotg *hsotg,
-
- #define DWC2_USB_DMA_ALIGN 4
-
-+struct dma_aligned_buffer {
-+ void *kmalloc_ptr;
-+ void *old_xfer_buffer;
-+ u8 data[0];
-+};
-+
- static void dwc2_free_dma_aligned_buffer(struct urb *urb)
- {
-- void *stored_xfer_buffer;
-+ struct dma_aligned_buffer *temp;
-
- if (!(urb->transfer_flags & URB_ALIGNED_TEMP_BUFFER))
- return;
-
-- /* Restore urb->transfer_buffer from the end of the allocated area */
-- memcpy(&stored_xfer_buffer, urb->transfer_buffer +
-- urb->transfer_buffer_length, sizeof(urb->transfer_buffer));
-+ temp = container_of(urb->transfer_buffer,
-+ struct dma_aligned_buffer, data);
-
- if (usb_urb_dir_in(urb))
-- memcpy(stored_xfer_buffer, urb->transfer_buffer,
-+ memcpy(temp->old_xfer_buffer, temp->data,
- urb->transfer_buffer_length);
-- kfree(urb->transfer_buffer);
-- urb->transfer_buffer = stored_xfer_buffer;
-+ urb->transfer_buffer = temp->old_xfer_buffer;
-+ kfree(temp->kmalloc_ptr);
-
- urb->transfer_flags &= ~URB_ALIGNED_TEMP_BUFFER;
- }
-
- static int dwc2_alloc_dma_aligned_buffer(struct urb *urb, gfp_t mem_flags)
- {
-- void *kmalloc_ptr;
-+ struct dma_aligned_buffer *temp, *kmalloc_ptr;
- size_t kmalloc_size;
-
- if (urb->num_sgs || urb->sg ||
-@@ -2674,29 +2679,22 @@ static int dwc2_alloc_dma_aligned_buffer(struct urb *urb, gfp_t mem_flags)
- !((uintptr_t)urb->transfer_buffer & (DWC2_USB_DMA_ALIGN - 1)))
- return 0;
-
-- /*
-- * Allocate a buffer with enough padding for original transfer_buffer
-- * pointer. This allocation is guaranteed to be aligned properly for
-- * DMA
-- */
-+ /* Allocate a buffer with enough padding for alignment */
- kmalloc_size = urb->transfer_buffer_length +
-- sizeof(urb->transfer_buffer);
-+ sizeof(struct dma_aligned_buffer) + DWC2_USB_DMA_ALIGN - 1;
-
- kmalloc_ptr = kmalloc(kmalloc_size, mem_flags);
- if (!kmalloc_ptr)
- return -ENOMEM;
-
-- /*
-- * Position value of original urb->transfer_buffer pointer to the end
-- * of allocation for later referencing
-- */
-- memcpy(kmalloc_ptr + urb->transfer_buffer_length,
-- &urb->transfer_buffer, sizeof(urb->transfer_buffer));
--
-+ /* Position our struct dma_aligned_buffer such that data is aligned */
-+ temp = PTR_ALIGN(kmalloc_ptr + 1, DWC2_USB_DMA_ALIGN) - 1;
-+ temp->kmalloc_ptr = kmalloc_ptr;
-+ temp->old_xfer_buffer = urb->transfer_buffer;
- if (usb_urb_dir_out(urb))
-- memcpy(kmalloc_ptr, urb->transfer_buffer,
-+ memcpy(temp->data, urb->transfer_buffer,
- urb->transfer_buffer_length);
-- urb->transfer_buffer = kmalloc_ptr;
-+ urb->transfer_buffer = temp->data;
-
- urb->transfer_flags |= URB_ALIGNED_TEMP_BUFFER;
-
---
-2.7.4
-
+++ /dev/null
-diff -Naur linux-4.9.8.org/drivers/net/wireless/ralink/rt2x00/rt2800usb.c linux-4.9.8/drivers/net/wireless/ralink/rt2x00/rt2800usb.c
---- linux-4.9.8.org/drivers/net/wireless/ralink/rt2x00/rt2800usb.c 2017-02-04 09:47:29.000000000 +0100
-+++ linux-4.9.8/drivers/net/wireless/ralink/rt2x00/rt2800usb.c 2017-02-11 10:50:04.909859370 +0100
-@@ -448,7 +448,7 @@
-
- rt2x00usb_register_read(rt2x00dev, TXRXQ_PCNT, ®);
- if (rt2x00_get_field32(reg, TXRXQ_PCNT_TX0Q)) {
-- rt2x00_warn(rt2x00dev, "TX HW queue 0 timed out, invoke forced kick\n");
-+ rt2x00_dbg(rt2x00dev, "TX HW queue 0 timed out, invoke forced kick\n");
-
- rt2x00usb_register_write(rt2x00dev, PBF_CFG, 0xf40012);
-
-@@ -463,7 +463,7 @@
-
- rt2x00usb_register_read(rt2x00dev, TXRXQ_PCNT, ®);
- if (rt2x00_get_field32(reg, TXRXQ_PCNT_TX1Q)) {
-- rt2x00_warn(rt2x00dev, "TX HW queue 1 timed out, invoke forced kick\n");
-+ rt2x00_dbg(rt2x00dev, "TX HW queue 1 timed out, invoke forced kick\n");
-
- rt2x00usb_register_write(rt2x00dev, PBF_CFG, 0xf4000a);
-
-@@ -613,7 +613,7 @@
-
- if (unlikely(test_bit(ENTRY_OWNER_DEVICE_DATA, &entry->flags) ||
- !test_bit(ENTRY_DATA_STATUS_PENDING, &entry->flags))) {
-- rt2x00_warn(rt2x00dev, "Data pending for entry %u in queue %u\n",
-+ rt2x00_dbg(rt2x00dev, "Data pending for entry %u in queue %u\n",
- entry->entry_idx, qid);
- break;
- }
-diff -Naur linux-4.9.8.org/drivers/net/wireless/ralink/rt2x00/rt2x00usb.c linux-4.9.8/drivers/net/wireless/ralink/rt2x00/rt2x00usb.c
---- linux-4.9.8.org/drivers/net/wireless/ralink/rt2x00/rt2x00usb.c 2017-02-04 09:47:29.000000000 +0100
-+++ linux-4.9.8/drivers/net/wireless/ralink/rt2x00/rt2x00usb.c 2017-02-11 10:50:04.909859370 +0100
-@@ -524,7 +524,7 @@
-
- static void rt2x00usb_watchdog_tx_dma(struct data_queue *queue)
- {
-- rt2x00_warn(queue->rt2x00dev, "TX queue %d DMA timed out, invoke forced forced reset\n",
-+ rt2x00_dbg(queue->rt2x00dev, "TX queue %d DMA timed out, invoke forced reset\n",
- queue->qid);
-
- rt2x00queue_stop_queue(queue);
+++ /dev/null
-diff --git a/minilzo/minilzo.c b/minilzo/minilzo.c
-index 34ce0f0..ecfdf66 100644
---- a/minilzo/minilzo.c
-+++ b/minilzo/minilzo.c
-@@ -3547,6 +3547,8 @@ DO_COMPRESS ( const lzo_bytep in , lzo_uint in_len,
- #undef TEST_LBO
- #undef NEED_IP
- #undef NEED_OP
-+#undef TEST_IV
-+#undef TEST_OV
- #undef HAVE_TEST_IP
- #undef HAVE_TEST_OP
- #undef HAVE_NEED_IP
-@@ -3561,6 +3563,7 @@ DO_COMPRESS ( const lzo_bytep in , lzo_uint in_len,
- # if (LZO_TEST_OVERRUN_INPUT >= 2)
- # define NEED_IP(x) \
- if ((lzo_uint)(ip_end - ip) < (lzo_uint)(x)) goto input_overrun
-+# define TEST_IV(x) if ((x) > (lzo_uint)0 - (511)) goto input_overrun
- # endif
- #endif
-
-@@ -3572,6 +3575,7 @@ DO_COMPRESS ( const lzo_bytep in , lzo_uint in_len,
- # undef TEST_OP
- # define NEED_OP(x) \
- if ((lzo_uint)(op_end - op) < (lzo_uint)(x)) goto output_overrun
-+# define TEST_OV(x) if ((x) > (lzo_uint)0 - (511)) goto output_overrun
- # endif
- #endif
-
-@@ -3602,11 +3606,13 @@ DO_COMPRESS ( const lzo_bytep in , lzo_uint in_len,
- # define HAVE_NEED_IP 1
- #else
- # define NEED_IP(x) ((void) 0)
-+# define TEST_IV(x) ((void) 0)
- #endif
- #if defined(NEED_OP)
- # define HAVE_NEED_OP 1
- #else
- # define NEED_OP(x) ((void) 0)
-+# define TEST_OV(x) ((void) 0)
- #endif
-
- #if defined(HAVE_TEST_IP) || defined(HAVE_NEED_IP)
-@@ -3687,6 +3693,7 @@ DO_DECOMPRESS ( const lzo_bytep in , lzo_uint in_len,
- {
- t += 255;
- ip++;
-+ TEST_IV(t);
- NEED_IP(1);
- }
- t += 15 + *ip++;
-@@ -3835,6 +3842,7 @@ match:
- {
- t += 255;
- ip++;
-+ TEST_OV(t);
- NEED_IP(1);
- }
- t += 31 + *ip++;
-@@ -3879,6 +3887,7 @@ match:
- {
- t += 255;
- ip++;
-+ TEST_OV(t);
- NEED_IP(1);
- }
- t += 7 + *ip++;
-@@ -4073,6 +4082,8 @@ lookbehind_overrun:
- #undef TEST_LBO
- #undef NEED_IP
- #undef NEED_OP
-+#undef TEST_IV
-+#undef TEST_OV
- #undef HAVE_TEST_IP
- #undef HAVE_TEST_OP
- #undef HAVE_NEED_IP
-@@ -4087,6 +4098,7 @@ lookbehind_overrun:
- # if (LZO_TEST_OVERRUN_INPUT >= 2)
- # define NEED_IP(x) \
- if ((lzo_uint)(ip_end - ip) < (lzo_uint)(x)) goto input_overrun
-+# define TEST_IV(x) if ((x) > (lzo_uint)0 - (511)) goto input_overrun
- # endif
- #endif
-
-@@ -4098,6 +4110,7 @@ lookbehind_overrun:
- # undef TEST_OP
- # define NEED_OP(x) \
- if ((lzo_uint)(op_end - op) < (lzo_uint)(x)) goto output_overrun
-+# define TEST_OV(x) if ((x) > (lzo_uint)0 - (511)) goto output_overrun
- # endif
- #endif
-
-@@ -4128,11 +4141,13 @@ lookbehind_overrun:
- # define HAVE_NEED_IP 1
- #else
- # define NEED_IP(x) ((void) 0)
-+# define TEST_IV(x) ((void) 0)
- #endif
- #if defined(NEED_OP)
- # define HAVE_NEED_OP 1
- #else
- # define NEED_OP(x) ((void) 0)
-+# define TEST_OV(x) ((void) 0)
- #endif
-
- #if defined(HAVE_TEST_IP) || defined(HAVE_NEED_IP)
-@@ -4213,6 +4228,7 @@ DO_DECOMPRESS ( const lzo_bytep in , lzo_uint in_len,
- {
- t += 255;
- ip++;
-+ TEST_IV(t);
- NEED_IP(1);
- }
- t += 15 + *ip++;
-@@ -4361,6 +4377,7 @@ match:
- {
- t += 255;
- ip++;
-+ TEST_OV(t);
- NEED_IP(1);
- }
- t += 31 + *ip++;
-@@ -4405,6 +4422,7 @@ match:
- {
- t += 255;
- ip++;
-+ TEST_OV(t);
- NEED_IP(1);
- }
- t += 7 + *ip++;
-diff --git a/src/lzo1_d.ch b/src/lzo1_d.ch
-index 40a5bfd..c442d9c 100644
---- a/src/lzo1_d.ch
-+++ b/src/lzo1_d.ch
-@@ -76,6 +76,8 @@
- #undef TEST_LBO
- #undef NEED_IP
- #undef NEED_OP
-+#undef TEST_IV
-+#undef TEST_OV
- #undef HAVE_TEST_IP
- #undef HAVE_TEST_OP
- #undef HAVE_NEED_IP
-@@ -91,6 +93,7 @@
- # if (LZO_TEST_OVERRUN_INPUT >= 2)
- # define NEED_IP(x) \
- if ((lzo_uint)(ip_end - ip) < (lzo_uint)(x)) goto input_overrun
-+# define TEST_IV(x) if ((x) > (lzo_uint)0 - (511)) goto input_overrun
- # endif
- #endif
-
-@@ -102,6 +105,7 @@
- # undef TEST_OP /* don't need both of the tests here */
- # define NEED_OP(x) \
- if ((lzo_uint)(op_end - op) < (lzo_uint)(x)) goto output_overrun
-+# define TEST_OV(x) if ((x) > (lzo_uint)0 - (511)) goto output_overrun
- # endif
- #endif
-
-@@ -135,11 +139,13 @@
- # define HAVE_NEED_IP 1
- #else
- # define NEED_IP(x) ((void) 0)
-+# define TEST_IV(x) ((void) 0)
- #endif
- #if defined(NEED_OP)
- # define HAVE_NEED_OP 1
- #else
- # define NEED_OP(x) ((void) 0)
-+# define TEST_OV(x) ((void) 0)
- #endif
-
-
-diff --git a/src/lzo1b_d.ch b/src/lzo1b_d.ch
-index fe5f361..36b4b6b 100644
---- a/src/lzo1b_d.ch
-+++ b/src/lzo1b_d.ch
-@@ -187,6 +187,7 @@ match:
- {
- t += 255;
- ip++;
-+ TEST_OV(t);
- NEED_IP(1);
- }
- t += (M4_MIN_LEN - M3_MIN_LEN) + *ip++;
-diff --git a/src/lzo1f_d.ch b/src/lzo1f_d.ch
-index 9e942f5..0c2199e 100644
---- a/src/lzo1f_d.ch
-+++ b/src/lzo1f_d.ch
-@@ -84,6 +84,7 @@ DO_DECOMPRESS ( const lzo_bytep in , lzo_uint in_len,
- {
- t += 255;
- ip++;
-+ TEST_IV(t);
- NEED_IP(1);
- }
- t += 31 + *ip++;
-@@ -138,6 +139,7 @@ match:
- {
- t += 255;
- ip++;
-+ TEST_OV(t);
- NEED_IP(1);
- }
- t += 31 + *ip++;
-diff --git a/src/lzo1x_d.ch b/src/lzo1x_d.ch
-index 49cf326..c804cc7 100644
---- a/src/lzo1x_d.ch
-+++ b/src/lzo1x_d.ch
-@@ -120,6 +120,7 @@ DO_DECOMPRESS ( const lzo_bytep in , lzo_uint in_len,
- {
- t += 255;
- ip++;
-+ TEST_IV(t);
- NEED_IP(1);
- }
- t += 15 + *ip++;
-@@ -273,6 +274,7 @@ match:
- {
- t += 255;
- ip++;
-+ TEST_OV(t);
- NEED_IP(1);
- }
- t += 31 + *ip++;
-@@ -317,6 +319,7 @@ match:
- {
- t += 255;
- ip++;
-+ TEST_OV(t);
- NEED_IP(1);
- }
- t += 7 + *ip++;
-diff --git a/src/lzo2a_d.ch b/src/lzo2a_d.ch
-index 48e51ca..954f07e 100644
---- a/src/lzo2a_d.ch
-+++ b/src/lzo2a_d.ch
-@@ -131,6 +131,7 @@ DO_DECOMPRESS ( const lzo_bytep in , lzo_uint in_len,
- {
- t += 255;
- ip++;
-+ TEST_OV(t);
- NEED_IP(1);
- }
- t += *ip++;
+++ /dev/null
-The getline function used in a couple of places in netpbm-free is also
-defined by POSIX:2008, and so netpbm-free fails to build with newer
-versions of (e)glibc. Here's a patch to rename it.
-
- * Rename getline functions to get_line to avoid conflict with POSIX:2008.
-
---- netpbm-free-10.0.orig/ppm/xvminitoppm.c
-+++ netpbm-free-10.0/ppm/xvminitoppm.c
-@@ -14,7 +14,7 @@
- #include "ppm.h"
- #define BUFSIZE 256
-
--static void getline ARGS((FILE *fp, char *buf));
-+static void get_line ARGS((FILE *fp, char *buf));
-
- int
- main(argc, argv)
-@@ -48,18 +48,18 @@
- i++;
- }
-
-- getline(ifp, buf);
-+ get_line(ifp, buf);
- if( strncmp(buf, "P7 332", 6) != 0 )
- pm_error("bad magic number - not a XV thumbnail picture");
-
- while(1) {
-- getline(ifp, buf);
-+ get_line(ifp, buf);
- if( strncmp(buf, "#END_OF_COMMENTS", 16)==0 )
- break;
- if( strncmp(buf, "#BUILTIN", 8)==0 )
- pm_error("cannot convert builtin XV thumbnail pictures");
- }
-- getline(ifp, buf);
-+ get_line(ifp, buf);
- if( sscanf(buf, "%d %d %d", &cols, &rows, &maxval) != 3 )
- pm_error("error parsing dimension info");
- if( maxval != 255 )
-@@ -85,7 +85,7 @@
-
-
- static void
--getline(fp, buf)
-+get_line(fp, buf)
- FILE *fp;
- char *buf;
- {
---- netpbm-free-10.0.orig/ppm/xpmtoppm.c
-+++ netpbm-free-10.0/ppm/xpmtoppm.c
-@@ -114,7 +114,7 @@
-
-
- static void
--getline(char * const line, int const size, FILE * const stream) {
-+get_line(char * const line, int const size, FILE * const stream) {
- /*----------------------------------------------------------------------------
- Read the next line from the input file 'stream', through the one-line
- buffer lastInputLine[].
-@@ -130,7 +130,7 @@
- Exit program if the line doesn't fit in the buffer.
- -----------------------------------------------------------------------------*/
- if (size > MAX_LINE+1)
-- pm_error("INTERNAL ERROR: getline() received 'size' parameter "
-+ pm_error("INTERNAL ERROR: get_line() received 'size' parameter "
- "which is out of bounds");
-
- if (backup) {
-@@ -346,7 +346,7 @@
- int * const transparentP) {
- /*----------------------------------------------------------------------------
- Read the header of the XPM file on stream 'stream'. Assume the
-- getline() stream is presently positioned to the beginning of the
-+ get_line() stream is presently positioned to the beginning of the
- file and it is a Version 3 XPM file. Leave the stream positioned
- after the header.
-
-@@ -377,25 +377,25 @@
- *widthP = *heightP = *ncolorsP = *chars_per_pixelP = -1;
-
- /* Read the XPM signature comment */
-- getline(line, sizeof(line), stream);
-+ get_line(line, sizeof(line), stream);
- if (strncmp(line, xpm3_signature, strlen(xpm3_signature)) != 0)
- pm_error("Apparent XPM 3 file does not start with '/* XPM */'. "
- "First line is '%s'", xpm3_signature);
-
- /* Read the assignment line */
-- getline(line, sizeof(line), stream);
-+ get_line(line, sizeof(line), stream);
- if (strncmp(line, "static char", 11) != 0)
- pm_error("Cannot find data structure declaration. Expected a "
- "line starting with 'static char', but found the line "
- "'%s'.", line);
-
- /* Read the hints line */
-- getline(line, sizeof(line), stream);
-+ get_line(line, sizeof(line), stream);
- /* skip the comment line if any */
- if (!strncmp(line, "/*", 2)) {
- while (!strstr(line, "*/"))
-- getline(line, sizeof(line), stream);
-- getline(line, sizeof(line), stream);
-+ get_line(line, sizeof(line), stream);
-+ get_line(line, sizeof(line), stream);
- }
- if (sscanf(line, "\"%d %d %d %d\",", widthP, heightP,
- ncolorsP, chars_per_pixelP) != 4)
-@@ -427,10 +427,10 @@
- *transparentP = -1; /* initial value */
-
- for (seqNum = 0; seqNum < *ncolorsP; seqNum++) {
-- getline(line, sizeof(line), stream);
-+ get_line(line, sizeof(line), stream);
- /* skip the comment line if any */
- if (!strncmp(line, "/*", 2))
-- getline(line, sizeof(line), stream);
-+ get_line(line, sizeof(line), stream);
-
- interpretXpm3ColorTableLine(line, seqNum, *chars_per_pixelP,
- *colorsP, *ptabP, transparentP);
-@@ -445,7 +445,7 @@
- pixel ** const colorsP, int ** const ptabP) {
- /*----------------------------------------------------------------------------
- Read the header of the XPM file on stream 'stream'. Assume the
-- getline() stream is presently positioned to the beginning of the
-+ get_line() stream is presently positioned to the beginning of the
- file and it is a Version 1 XPM file. Leave the stream positioned
- after the header.
-
-@@ -464,7 +464,7 @@
- /* Read the initial defines. */
- processedStaticChar = FALSE;
- while (!processedStaticChar) {
-- getline(line, sizeof(line), stream);
-+ get_line(line, sizeof(line), stream);
-
- if (sscanf(line, "#define %s %d", str1, &v) == 2) {
- char *t1;
-@@ -512,7 +512,7 @@
- /* If there's a monochrome color table, skip it. */
- if (!strncmp(t1, "mono", 4)) {
- for (;;) {
-- getline(line, sizeof(line), stream);
-+ get_line(line, sizeof(line), stream);
- if (!strncmp(line, "static char", 11))
- break;
- }
-@@ -533,7 +533,7 @@
-
- /* Read color table. */
- for (i = 0; i < *ncolorsP; ++i) {
-- getline(line, sizeof(line), stream);
-+ get_line(line, sizeof(line), stream);
-
- if ((t1 = strchr(line, '"')) == NULL)
- pm_error("D error scanning color table");
-@@ -569,7 +569,7 @@
- "static char ...").
- */
- for (;;) {
-- getline(line, sizeof(line), stream);
-+ get_line(line, sizeof(line), stream);
- if (strncmp(line, "static char", 11) == 0)
- break;
- }
-@@ -660,7 +660,7 @@
- backup = FALSE;
-
- /* Read the header line */
-- getline(line, sizeof(line), stream);
-+ get_line(line, sizeof(line), stream);
- backup = TRUE; /* back up so next read reads this line again */
-
- rc = sscanf(line, "/* %s */", str1);
-@@ -681,7 +681,7 @@
- pm_error("Could not get %d bytes of memory for image", totalpixels);
- cursor = *dataP;
- maxcursor = *dataP + totalpixels - 1;
-- getline(line, sizeof(line), stream);
-+ get_line(line, sizeof(line), stream);
- /* read next line (first line may not always start with comment) */
- while (cursor <= maxcursor) {
- if (strncmp(line, "/*", 2) == 0) {
-@@ -691,7 +691,7 @@
- ncolors, ptab, &cursor, maxcursor);
- }
- if (cursor <= maxcursor)
-- getline(line, sizeof(line), stream);
-+ get_line(line, sizeof(line), stream);
- }
- if (ptab) free(ptab);
- }
-
-Thanks,
-
---
-Colin Watson [cjwatson@ubuntu.com]
-
-
-
-
+++ /dev/null
-diff -up openssl-1.0.0-beta5/Configure.enginesdir openssl-1.0.0-beta5/Configure
---- openssl-1.0.0-beta5/Configure.enginesdir 2010-01-20 18:07:05.000000000 +0100
-+++ openssl-1.0.0-beta5/Configure 2010-01-20 18:10:48.000000000 +0100
-@@ -622,6 +622,7 @@ my $idx_multilib = $idx++;
- my $prefix="";
- my $libdir="";
- my $openssldir="";
-+my $enginesdir="";
- my $exe_ext="";
- my $install_prefix= "$ENV{'INSTALL_PREFIX'}";
- my $cross_compile_prefix="";
-@@ -833,6 +834,10 @@ PROCESS_ARGS:
- {
- $openssldir=$1;
- }
-+ elsif (/^--enginesdir=(.*)$/)
-+ {
-+ $enginesdir=$1;
-+ }
- elsif (/^--install.prefix=(.*)$/)
- {
- $install_prefix=$1;
-@@ -1053,7 +1058,7 @@ chop $prefix if $prefix =~ /.\/$/;
-
- $openssldir=$prefix . "/ssl" if $openssldir eq "";
- $openssldir=$prefix . "/" . $openssldir if $openssldir !~ /(^\/|^[a-zA-Z]:[\\\/])/;
--
-+$enginesdir="$prefix/lib/engines" if $enginesdir eq "";
-
- print "IsMK1MF=$IsMK1MF\n";
-
-@@ -1673,7 +1678,7 @@ while (<IN>)
- }
- elsif (/^#define\s+ENGINESDIR/)
- {
-- my $foo = "$prefix/$libdir/engines";
-+ my $foo = "$enginesdir";
- $foo =~ s/\\/\\\\/g;
- print OUT "#define ENGINESDIR \"$foo\"\n";
- }
-diff -up openssl-1.0.0-beta5/engines/Makefile.enginesdir openssl-1.0.0-beta5/engines/Makefile
---- openssl-1.0.0-beta5/engines/Makefile.enginesdir 2010-01-16 21:06:09.000000000 +0100
-+++ openssl-1.0.0-beta5/engines/Makefile 2010-01-20 18:07:05.000000000 +0100
-@@ -124,7 +124,7 @@ install:
- sfx=".so"; \
- cp cyg$$l.dll $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/engines/$$pfx$$l$$sfx.new; \
- fi; \
-- chmod 555 $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/engines/$$pfx$$l$$sfx.new; \
-+ chmod 755 $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/engines/$$pfx$$l$$sfx.new; \
- mv -f $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/engines/$$pfx$$l$$sfx.new $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/engines/$$pfx$$l$$sfx ); \
- done; \
- fi
+++ /dev/null
-diff -up openssl-1.0.2e/Configure.rpmbuild openssl-1.0.2e/Configure
---- openssl-1.0.2e/Configure.rpmbuild 2015-12-03 15:04:23.000000000 +0100
-+++ openssl-1.0.2e/Configure 2015-12-04 13:20:22.996835604 +0100
-@@ -365,8 +365,8 @@ my %table=(
- ####
- # *-generic* is endian-neutral target, but ./config is free to
- # throw in -D[BL]_ENDIAN, whichever appropriate...
--"linux-generic32","gcc:-O3 -fomit-frame-pointer -Wall::-D_REENTRANT::-ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL BF_PTR:${no_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
--"linux-ppc", "gcc:-DB_ENDIAN -O3 -Wall::-D_REENTRANT::-ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_RISC1 DES_UNROLL:${ppc32_asm}:linux32:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
-+"linux-generic32","gcc:-Wall \$(RPM_OPT_FLAGS)::-D_REENTRANT::-Wl,-z,relro -ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL BF_PTR:${no_asm}:dlfcn:linux-shared:-fPIC:\$(RPM_OPT_FLAGS):.so.\$(SHLIB_SONAMEVER)",
-+"linux-ppc", "gcc:-DB_ENDIAN -Wall \$(RPM_OPT_FLAGS)::-D_REENTRANT::-Wl,-z,relro -ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_RISC1 DES_UNROLL:${ppc32_asm}:linux32:dlfcn:linux-shared:-fPIC:\$(RPM_OPT_FLAGS):.so.\$(SHLIB_SONAMEVER)",
-
- #######################################################################
- # Note that -march is not among compiler options in below linux-armv4
-@@ -395,31 +395,31 @@ my %table=(
- #
- # ./Configure linux-armv4 -march=armv6 -D__ARM_MAX_ARCH__=8
- #
--"linux-armv4", "gcc: -O3 -Wall::-D_REENTRANT::-ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL BF_PTR:${armv4_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
--"linux-aarch64","gcc: -O3 -Wall::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL BF_PTR:${aarch64_asm}:linux64:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
-+"linux-armv4", "gcc:-Wall \$(RPM_OPT_FLAGS)::-D_REENTRANT::-Wl,-z,relro -ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL BF_PTR:${armv4_asm}:dlfcn:linux-shared:-fPIC:\$(RPM_OPT_FLAGS):.so.\$(SHLIB_SONAMEVER)",
-+"linux-aarch64","gcc:-DL_ENDIAN -Wall \$(RPM_OPT_FLAGS)::-D_REENTRANT::-Wl,-z,relro -ldl:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL BF_PTR:${aarch64_asm}:linux64:dlfcn:linux-shared:-fPIC:\$(RPM_OPT_FLAGS):.so.\$(SHLIB_SONAMEVER):::64",
- # Configure script adds minimally required -march for assembly support,
- # if no -march was specified at command line. mips32 and mips64 below
- # refer to contemporary MIPS Architecture specifications, MIPS32 and
- # MIPS64, rather than to kernel bitness.
--"linux-mips32", "gcc:-mabi=32 -O3 -Wall -DBN_DIV3W::-D_REENTRANT::-ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL BF_PTR:${mips32_asm}:o32:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
--"linux-mips64", "gcc:-mabi=n32 -O3 -Wall -DBN_DIV3W::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL BF_PTR:${mips64_asm}:n32:dlfcn:linux-shared:-fPIC:-mabi=n32:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR):::32",
--"linux64-mips64", "gcc:-mabi=64 -O3 -Wall -DBN_DIV3W::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL BF_PTR:${mips64_asm}:64:dlfcn:linux-shared:-fPIC:-mabi=64:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR):::64",
-+"linux-mips32", "gcc:-mabi=32 -Wall \$(RPM_OPT_FLAGS) -DBN_DIV3W::-D_REENTRANT::-Wl,-z,relro -ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL BF_PTR:${mips32_asm}:o32:dlfcn:linux-shared:-fPIC:\$(RPM_OPT_FLAGS):.so.\$(SHLIB_SONAMEVER)",
-+"linux-mips64", "gcc:-mabi=n32 -Wall \$(RPM_OPT_FLAGS) -DBN_DIV3W::-D_REENTRANT::-Wl,-z,relro -ldl:SIXTY_FOUR_BIT RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL BF_PTR:${mips64_asm}:n32:dlfcn:linux-shared:-fPIC:-mabi=n32 \$(RPM_OPT_FLAGS):.so.\$(SHLIB_SONAMEVER):::32",
-+"linux64-mips64", "gcc:-mabi=64 -Wall \$(RPM_OPT_FLAGS) -DBN_DIV3W::-D_REENTRANT::-Wl,-z,relro -ldl:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL BF_PTR:${mips64_asm}:64:dlfcn:linux-shared:-fPIC:-mabi=64 \$(RPM_OPT_FLAGS):.so.\$(SHLIB_SONAMEVER):::64",
- #### IA-32 targets...
- "linux-ia32-icc", "icc:-DL_ENDIAN -O2::-D_REENTRANT::-ldl -no_cpprt:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:linux-shared:-KPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
--"linux-elf", "gcc:-DL_ENDIAN -O3 -fomit-frame-pointer -Wall::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
-+"linux-elf", "gcc:-DL_ENDIAN -Wall \$(RPM_OPT_FLAGS)::-D_REENTRANT::-Wl,-z,relro -ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:linux-shared:-fPIC:\$(RPM_OPT_FLAGS):.so.\$(SHLIB_SONAMEVER)",
- "linux-aout", "gcc:-DL_ENDIAN -O3 -fomit-frame-pointer -march=i486 -Wall::(unknown):::BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_asm}:a.out",
- ####
--"linux-generic64","gcc:-O3 -Wall::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL BF_PTR:${no_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
--"linux-ppc64", "gcc:-m64 -DB_ENDIAN -O3 -Wall::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_RISC1 DES_UNROLL:${ppc64_asm}:linux64:dlfcn:linux-shared:-fPIC:-m64:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR):::64",
--"linux-ppc64le","gcc:-m64 -DL_ENDIAN -O3 -Wall::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_RISC1 DES_UNROLL:$ppc64_asm:linux64le:dlfcn:linux-shared:-fPIC:-m64:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR):::",
--"linux-ia64", "gcc:-DL_ENDIAN -DTERMIO -O3 -Wall::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_UNROLL DES_INT:${ia64_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
-+"linux-generic64","gcc:-Wall \$(RPM_OPT_FLAGS)::-D_REENTRANT::-Wl,-z,relro -ldl:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL BF_PTR:${no_asm}:dlfcn:linux-shared:-fPIC:\$(RPM_OPT_FLAGS):.so.\$(SHLIB_SONAMEVER):::64",
-+"linux-ppc64", "gcc:-m64 -DB_ENDIAN -Wall \$(RPM_OPT_FLAGS)::-D_REENTRANT::-Wl,-z,relro -ldl:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_RISC1 DES_UNROLL:${ppc64_asm}:linux64:dlfcn:linux-shared:-fPIC:-m64 \$(RPM_OPT_FLAGS):.so.\$(SHLIB_SONAMEVER):::64",
-+"linux-ppc64le","gcc:-m64 -DL_ENDIAN -Wall \$(RPM_OPT_FLAGS)::-D_REENTRANT::-Wl,-z,relro -ldl:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_RISC1 DES_UNROLL:$ppc64_asm:linux64le:dlfcn:linux-shared:-fPIC:-m64 \$(RPM_OPT_FLAGS):.so.\$(SHLIB_SONAMEVER):::64",
-+"linux-ia64", "gcc:-DL_ENDIAN -Wall \$(RPM_OPT_FLAGS)::-D_REENTRANT::-Wl,-z,relro -ldl:SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_UNROLL DES_INT:${ia64_asm}:dlfcn:linux-shared:-fPIC:\$(RPM_OPT_FLAGS):.so.\$(SHLIB_SONAMEVER)",
- "linux-ia64-icc","icc:-DL_ENDIAN -O2 -Wall::-D_REENTRANT::-ldl -no_cpprt:SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_RISC1 DES_INT:${ia64_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
--"linux-x86_64", "gcc:-m64 -DL_ENDIAN -O3 -Wall::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_INT DES_UNROLL:${x86_64_asm}:elf:dlfcn:linux-shared:-fPIC:-m64:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR):::64",
-+"linux-x86_64", "gcc:-m64 -DL_ENDIAN -Wall \$(RPM_OPT_FLAGS)::-D_REENTRANT::-Wl,-z,relro -ldl:SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_INT DES_UNROLL:${x86_64_asm}:elf:dlfcn:linux-shared:-fPIC:-m64 \$(RPM_OPT_FLAGS):.so.\$(SHLIB_SONAMEVER):::64",
- "linux-x86_64-clang", "clang: -m64 -DL_ENDIAN -O3 -Wall -Wextra $clang_disabled_warnings -Qunused-arguments::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_INT DES_UNROLL:${x86_64_asm}:elf:dlfcn:linux-shared:-fPIC:-m64:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR):::64",
- "debug-linux-x86_64-clang", "clang: -DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DCRYPTO_MDEBUG -m64 -DL_ENDIAN -g -Wall -Wextra $clang_disabled_warnings -Qunused-arguments::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_INT DES_UNROLL:${x86_64_asm}:elf:dlfcn:linux-shared:-fPIC:-m64:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR):::64",
- "linux-x86_64-icc", "icc:-DL_ENDIAN -O2::-D_REENTRANT::-ldl -no_cpprt:SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_INT DES_UNROLL:${x86_64_asm}:elf:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR):::64",
- "linux-x32", "gcc:-mx32 -DL_ENDIAN -O3 -Wall::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT RC4_CHUNK_LL DES_INT DES_UNROLL:${x86_64_asm}:elf:dlfcn:linux-shared:-fPIC:-mx32:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR):::x32",
--"linux64-s390x", "gcc:-m64 -DB_ENDIAN -O3 -Wall::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL:${s390x_asm}:64:dlfcn:linux-shared:-fPIC:-m64:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR):::64",
-+"linux64-s390x", "gcc:-m64 -DB_ENDIAN -Wall \$(RPM_OPT_FLAGS)::-D_REENTRANT::-Wl,-z,relro -ldl:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL:${s390x_asm}:64:dlfcn:linux-shared:-fPIC:-m64 \$(RPM_OPT_FLAGS):.so.\$(SHLIB_SONAMEVER):::64",
- #### So called "highgprs" target for z/Architecture CPUs
- # "Highgprs" is kernel feature first implemented in Linux 2.6.32, see
- # /proc/cpuinfo. The idea is to preserve most significant bits of
-@@ -437,12 +437,12 @@ my %table=(
- #### SPARC Linux setups
- # Ray Miller <ray.miller@computing-services.oxford.ac.uk> has patiently
- # assisted with debugging of following two configs.
--"linux-sparcv8","gcc:-mcpu=v8 -DB_ENDIAN -O3 -fomit-frame-pointer -Wall -DBN_DIV2W::-D_REENTRANT::-ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR:${sparcv8_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
-+"linux-sparcv8","gcc:-mcpu=v8 -DB_ENDIAN -Wall \$(RPM_OPT_FLAGS) -DBN_DIV2W::-D_REENTRANT::-Wl,-z,relro -ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR:${sparcv8_asm}:dlfcn:linux-shared:-fPIC:\$(RPM_OPT_FLAGS):.so.\$(SHLIB_SONAMEVER)",
- # it's a real mess with -mcpu=ultrasparc option under Linux, but
- # -Wa,-Av8plus should do the trick no matter what.
--"linux-sparcv9","gcc:-m32 -mcpu=ultrasparc -DB_ENDIAN -O3 -fomit-frame-pointer -Wall -Wa,-Av8plus -DBN_DIV2W::-D_REENTRANT:ULTRASPARC:-ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR:${sparcv9_asm}:dlfcn:linux-shared:-fPIC:-m32:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
-+"linux-sparcv9","gcc:-m32 -mcpu=ultrasparc -DB_ENDIAN -Wall \$(RPM_OPT_FLAGS) -Wa,-Av8plus -DBN_DIV2W::-D_REENTRANT:ULTRASPARC:-Wl,-z,relro -ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR:${sparcv9_asm}:dlfcn:linux-shared:-fPIC:-m32 \$(RPM_OPT_FLAGS):.so.\$(SHLIB_SONAMEVER)",
- # GCC 3.1 is a requirement
--"linux64-sparcv9","gcc:-m64 -mcpu=ultrasparc -DB_ENDIAN -O3 -fomit-frame-pointer -Wall::-D_REENTRANT:ULTRASPARC:-ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_INT DES_PTR DES_RISC1 DES_UNROLL BF_PTR:${sparcv9_asm}:dlfcn:linux-shared:-fPIC:-m64:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR):::64",
-+"linux64-sparcv9","gcc:-m64 -mcpu=ultrasparc -DB_ENDIAN -Wall \$(RPM_OPT_FLAGS)::-D_REENTRANT:ULTRASPARC:-Wl,-z,relro -ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_INT DES_PTR DES_RISC1 DES_UNROLL BF_PTR:${sparcv9_asm}:dlfcn:linux-shared:-fPIC:-m64 \$(RPM_OPT_FLAGS):.so.\$(SHLIB_SONAMEVER):::64",
- #### Alpha Linux with GNU C and Compaq C setups
- # Special notes:
- # - linux-alpha+bwx-gcc is ment to be used from ./config only. If you
-@@ -1767,7 +1767,7 @@ while (<IN>)
- elsif ($shared_extension ne "" && $shared_extension =~ /^\.s([ol])\.[^\.]*\.[^\.]*$/)
- {
- my $sotmp = $1;
-- s/^SHARED_LIBS_LINK_EXTS=.*/SHARED_LIBS_LINK_EXTS=.s$sotmp.\$(SHLIB_MAJOR) .s$sotmp/;
-+ s/^SHARED_LIBS_LINK_EXTS=.*/SHARED_LIBS_LINK_EXTS=.s$sotmp.\$(SHLIB_SONAMEVER) .s$sotmp/;
- }
- elsif ($shared_extension ne "" && $shared_extension =~ /^\.[^\.]*\.[^\.]*\.dylib$/)
- {
-diff -up openssl-1.0.2e/Makefile.org.rpmbuild openssl-1.0.2e/Makefile.org
---- openssl-1.0.2e/Makefile.org.rpmbuild 2015-12-03 15:04:23.000000000 +0100
-+++ openssl-1.0.2e/Makefile.org 2015-12-04 13:18:44.913538616 +0100
-@@ -10,6 +10,7 @@ SHLIB_VERSION_HISTORY=
- SHLIB_MAJOR=
- SHLIB_MINOR=
- SHLIB_EXT=
-+SHLIB_SONAMEVER=10
- PLATFORM=dist
- OPTIONS=
- CONFIGURE_ARGS=
-@@ -341,10 +342,9 @@ clean-shared:
- link-shared:
- @ set -e; for i in $(SHLIBDIRS); do \
- $(MAKE) -f $(HERE)/Makefile.shared -e $(BUILDENV) \
-- LIBNAME=$$i LIBVERSION=$(SHLIB_MAJOR).$(SHLIB_MINOR) \
-+ LIBNAME=$$i LIBVERSION=$(SHLIB_SONAMEVER) \
- LIBCOMPATVERSIONS=";$(SHLIB_VERSION_HISTORY)" \
- symlink.$(SHLIB_TARGET); \
-- libs="$$libs -l$$i"; \
- done
-
- build-shared: do_$(SHLIB_TARGET) link-shared
-@@ -355,7 +355,7 @@ do_$(SHLIB_TARGET):
- libs="$(LIBKRB5) $$libs"; \
- fi; \
- $(CLEARENV) && $(MAKE) -f Makefile.shared -e $(BUILDENV) \
-- LIBNAME=$$i LIBVERSION=$(SHLIB_MAJOR).$(SHLIB_MINOR) \
-+ LIBNAME=$$i LIBVERSION=$(SHLIB_SONAMEVER) \
- LIBCOMPATVERSIONS=";$(SHLIB_VERSION_HISTORY)" \
- LIBDEPS="$$libs $(EX_LIBS)" \
- link_a.$(SHLIB_TARGET); \
+++ /dev/null
-diff -Naur openssl-1.0.2a.org/crypto/x86cpuid.pl openssl-1.0.2a/crypto/x86cpuid.pl
---- openssl-1.0.2a.org/crypto/x86cpuid.pl 2015-03-19 14:30:36.000000000 +0100
-+++ openssl-1.0.2a/crypto/x86cpuid.pl 2015-04-28 13:47:57.853521020 +0200
-@@ -71,6 +71,7 @@
- &mov ("eax",1);
- &xor ("ecx","ecx");
- &cpuid ();
-+ &and ("ecx",0xfffffdff); # clear SSSE3 because it is incredible slow on AMD's
- &bt ("edx",28);
- &jnc (&label("generic"));
- &shr ("ebx",16);
+++ /dev/null
-diff -up openssl-1.0.2g/ssl/ssl_lib.c.v2v3 openssl-1.0.2g/ssl/ssl_lib.c
---- openssl-1.0.2g/ssl/ssl_lib.c.v2v3 2016-03-01 16:38:26.879142021 +0100
-+++ openssl-1.0.2g/ssl/ssl_lib.c 2016-03-01 16:41:32.977353769 +0100
-@@ -2055,11 +2055,11 @@ SSL_CTX *SSL_CTX_new(const SSL_METHOD *m
- ret->options |= SSL_OP_LEGACY_SERVER_CONNECT;
-
- /*
-- * Disable SSLv2 by default, callers that want to enable SSLv2 will have to
-- * explicitly clear this option via either of SSL_CTX_clear_options() or
-+ * Disable SSLv2 and SSLv3 by default, callers that want to enable these will have to
-+ * explicitly clear these options via either of SSL_CTX_clear_options() or
- * SSL_clear_options().
- */
-- ret->options |= SSL_OP_NO_SSLv2;
-+ ret->options |= SSL_OP_NO_SSLv2 | SSL_OP_NO_SSLv3;
-
- return (ret);
- err:
+++ /dev/null
-From 8e508f23bf5ed727649c99bbd540f7b1c2c2bd35 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Stevan=20Baji=C4=87?= <stevan@bajic.ch>
-Date: Mon, 9 Jul 2012 09:43:11 +0200
-Subject: [PATCH] RLIMIT_* variables are no longer defined unless you
- explicitly include sys/resource.h.
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-Signed-off-by: Diego Elio Pettenò <flameeyes@flameeyes.eu>
-
-modules/pam_unix/pam_unix_acct.c: Include sys/resource.h.
----
- modules/pam_unix/pam_unix_acct.c | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/modules/pam_unix/pam_unix_acct.c b/modules/pam_unix/pam_unix_acct.c
-index 8e90cc9..4a362f8 100644
---- a/modules/pam_unix/pam_unix_acct.c
-+++ b/modules/pam_unix/pam_unix_acct.c
-@@ -41,6 +41,7 @@
- #include <string.h>
- #include <unistd.h>
- #include <sys/types.h>
-+#include <sys/resource.h>
- #include <syslog.h>
- #include <pwd.h>
- #include <shadow.h>
+++ /dev/null
-Submitted By: Ken Moffat <ken at linuxfromscratch dot org>
-Date: 2016-03-16
-Initial Package Version: 8.38
-Upstream Status: Applied
-Origin: Upstream, backported to 8.38 by Petr Písař at redhat
-Description: Various fixes, including for CVE-2016-1263 and many other
-bugs which have been fixed upstream. Many of these bugs were found by
-fuzzing, upstream is trying to persuade its users to move to pcre2 and
-giving low priority to further pcre1 maintenance releases.
-
-From 3c80e02cd464ea049e117b423fd48fab294c51a9 Mon Sep 17 00:00:00 2001
-From: ph10 <ph10@2f5784b3-3f2a-0410-8824-cb99058d5e15>
-Date: Thu, 26 Nov 2015 20:29:13 +0000
-Subject: [PATCH] Fix auto-callout (?# comment bug.
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-git-svn-id: svn://vcs.exim.org/pcre/code/trunk@1611 2f5784b3-3f2a-0410-8824-cb99058d5e15
-
-Petr Pisar: Ported to 8.38.
-
-diff --git a/pcre_compile.c b/pcre_compile.c
-index 4d3b313..3360a8b 100644
---- a/pcre_compile.c
-+++ b/pcre_compile.c
-@@ -4699,6 +4699,23 @@ for (;; ptr++)
- }
- }
-
-+ /* Skip over (?# comments. We need to do this here because we want to know if
-+ the next thing is a quantifier, and these comments may come between an item
-+ and its quantifier. */
-+
-+ if (c == CHAR_LEFT_PARENTHESIS && ptr[1] == CHAR_QUESTION_MARK &&
-+ ptr[2] == CHAR_NUMBER_SIGN)
-+ {
-+ ptr += 3;
-+ while (*ptr != CHAR_NULL && *ptr != CHAR_RIGHT_PARENTHESIS) ptr++;
-+ if (*ptr == CHAR_NULL)
-+ {
-+ *errorcodeptr = ERR18;
-+ goto FAILED;
-+ }
-+ continue;
-+ }
-+
- /* See if the next thing is a quantifier. */
-
- is_quantifier =
-@@ -6529,21 +6546,6 @@ for (;; ptr++)
- case CHAR_LEFT_PARENTHESIS:
- ptr++;
-
-- /* First deal with comments. Putting this code right at the start ensures
-- that comments have no bad side effects. */
--
-- if (ptr[0] == CHAR_QUESTION_MARK && ptr[1] == CHAR_NUMBER_SIGN)
-- {
-- ptr += 2;
-- while (*ptr != CHAR_NULL && *ptr != CHAR_RIGHT_PARENTHESIS) ptr++;
-- if (*ptr == CHAR_NULL)
-- {
-- *errorcodeptr = ERR18;
-- goto FAILED;
-- }
-- continue;
-- }
--
- /* Now deal with various "verbs" that can be introduced by '*'. */
-
- if (ptr[0] == CHAR_ASTERISK && (ptr[1] == ':'
-diff --git a/testdata/testinput2 b/testdata/testinput2
-index e2e520f..92e3359 100644
---- a/testdata/testinput2
-+++ b/testdata/testinput2
-@@ -4217,4 +4217,12 @@ backtracking verbs. --/
-
- /a[[:punct:]b]/BZ
-
-+/L(?#(|++<!(2)?/BZ
-+
-+/L(?#(|++<!(2)?/BOZ
-+
-+/L(?#(|++<!(2)?/BCZ
-+
-+/L(?#(|++<!(2)?/BCOZ
-+
- /-- End of testinput2 --/
-diff --git a/testdata/testinput7 b/testdata/testinput7
-index e411a4b..00b9738 100644
---- a/testdata/testinput7
-+++ b/testdata/testinput7
-@@ -853,4 +853,8 @@ of case for anything other than the ASCII letters. --/
-
- /a[b[:punct:]]/8WBZ
-
-+/L(?#(|++<!(2)?/B8COZ
-+
-+/L(?#(|++<!(2)?/B8WCZ
-+
- /-- End of testinput7 --/
-diff --git a/testdata/testoutput2 b/testdata/testoutput2
-index 85c565d..2cf7a90 100644
---- a/testdata/testoutput2
-+++ b/testdata/testoutput2
-@@ -14574,4 +14574,40 @@ No match
- End
- ------------------------------------------------------------------
-
-+/L(?#(|++<!(2)?/BZ
-+------------------------------------------------------------------
-+ Bra
-+ L?+
-+ Ket
-+ End
-+------------------------------------------------------------------
-+
-+/L(?#(|++<!(2)?/BOZ
-+------------------------------------------------------------------
-+ Bra
-+ L?
-+ Ket
-+ End
-+------------------------------------------------------------------
-+
-+/L(?#(|++<!(2)?/BCZ
-+------------------------------------------------------------------
-+ Bra
-+ Callout 255 0 14
-+ L?+
-+ Callout 255 14 0
-+ Ket
-+ End
-+------------------------------------------------------------------
-+
-+/L(?#(|++<!(2)?/BCOZ
-+------------------------------------------------------------------
-+ Bra
-+ Callout 255 0 14
-+ L?
-+ Callout 255 14 0
-+ Ket
-+ End
-+------------------------------------------------------------------
-+
- /-- End of testinput2 --/
-diff --git a/testdata/testoutput7 b/testdata/testoutput7
-index cc9ebdd..fdfff64 100644
---- a/testdata/testoutput7
-+++ b/testdata/testoutput7
-@@ -2348,4 +2348,24 @@ No match
- End
- ------------------------------------------------------------------
-
-+/L(?#(|++<!(2)?/B8COZ
-+------------------------------------------------------------------
-+ Bra
-+ Callout 255 0 14
-+ L?
-+ Callout 255 14 0
-+ Ket
-+ End
-+------------------------------------------------------------------
-+
-+/L(?#(|++<!(2)?/B8WCZ
-+------------------------------------------------------------------
-+ Bra
-+ Callout 255 0 14
-+ L?+
-+ Callout 255 14 0
-+ Ket
-+ End
-+------------------------------------------------------------------
-+
- /-- End of testinput7 --/
---
-2.4.3
-
-From ef6b10fcde41a2687f38d4a9ff2886b037948a1b Mon Sep 17 00:00:00 2001
-From: ph10 <ph10@2f5784b3-3f2a-0410-8824-cb99058d5e15>
-Date: Fri, 27 Nov 2015 17:13:13 +0000
-Subject: [PATCH 1/5] Fix negated POSIX class within negated overall class UCP
- bug.
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-git-svn-id: svn://vcs.exim.org/pcre/code/trunk@1612 2f5784b3-3f2a-0410-8824-cb99058d5e15
-
-Petr Písař: Ported to 8.38.
-diff --git a/pcre_compile.c b/pcre_compile.c
-index 3360a8b..3670f1e 100644
---- a/pcre_compile.c
-+++ b/pcre_compile.c
-@@ -5063,20 +5063,22 @@ for (;; ptr++)
- ptr = tempptr + 1;
- continue;
-
-- /* For the other POSIX classes (ascii, xdigit) we are going to fall
-- through to the non-UCP case and build a bit map for characters with
-- code points less than 256. If we are in a negated POSIX class
-- within a non-negated overall class, characters with code points
-- greater than 255 must all match. In the special case where we have
-- not yet generated any xclass data, and this is the final item in
-- the overall class, we need do nothing: later on, the opcode
-+ /* For the other POSIX classes (ascii, cntrl, xdigit) we are going
-+ to fall through to the non-UCP case and build a bit map for
-+ characters with code points less than 256. If we are in a negated
-+ POSIX class, characters with code points greater than 255 must
-+ either all match or all not match. In the special case where we
-+ have not yet generated any xclass data, and this is the final item
-+ in the overall class, we need do nothing: later on, the opcode
- OP_NCLASS will be used to indicate that characters greater than 255
- are acceptable. If we have already seen an xclass item or one may
- follow (we have to assume that it might if this is not the end of
-- the class), explicitly match all wide codepoints. */
-+ the class), explicitly list all wide codepoints, which will then
-+ either not match or match, depending on whether the class is or is
-+ not negated. */
-
- default:
-- if (!negate_class && local_negate &&
-+ if (local_negate &&
- (xclass || tempptr[2] != CHAR_RIGHT_SQUARE_BRACKET))
- {
- *class_uchardata++ = XCL_RANGE;
-diff --git a/testdata/testinput6 b/testdata/testinput6
-index aeb62a0..a178d3d 100644
---- a/testdata/testinput6
-+++ b/testdata/testinput6
-@@ -1553,4 +1553,13 @@
- \x{200}
- \x{37e}
-
-+/[^[:^ascii:]\d]/8W
-+ a
-+ ~
-+ 0
-+ \a
-+ \x{7f}
-+ \x{389}
-+ \x{20ac}
-+
- /-- End of testinput6 --/
-diff --git a/testdata/testoutput6 b/testdata/testoutput6
-index beb85aa..b64dc0d 100644
---- a/testdata/testoutput6
-+++ b/testdata/testoutput6
-@@ -2557,4 +2557,20 @@ No match
- \x{37e}
- 0: \x{37e}
-
-+/[^[:^ascii:]\d]/8W
-+ a
-+ 0: a
-+ ~
-+ 0: ~
-+ 0
-+No match
-+ \a
-+ 0: \x{07}
-+ \x{7f}
-+ 0: \x{7f}
-+ \x{389}
-+No match
-+ \x{20ac}
-+No match
-+
- /-- End of testinput6 --/
---
-2.4.3
-
-From bfc1dfa660c24dc7a75108d934290e50d7db2719 Mon Sep 17 00:00:00 2001
-From: ph10 <ph10@2f5784b3-3f2a-0410-8824-cb99058d5e15>
-Date: Fri, 27 Nov 2015 17:41:04 +0000
-Subject: [PATCH 2/5] Fix bug for isolated \E between an item and its qualifier
- when auto callout is set.
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-git-svn-id: svn://vcs.exim.org/pcre/code/trunk@1613 2f5784b3-3f2a-0410-8824-cb99058d5e15
-
-Petr Písař: Ported to 8.38.
-
-diff --git a/pcre_compile.c b/pcre_compile.c
-index 3670f1e..5786cd3 100644
---- a/pcre_compile.c
-+++ b/pcre_compile.c
-@@ -4645,9 +4645,10 @@ for (;; ptr++)
- goto FAILED;
- }
-
-- /* If in \Q...\E, check for the end; if not, we have a literal */
-+ /* If in \Q...\E, check for the end; if not, we have a literal. Otherwise an
-+ isolated \E is ignored. */
-
-- if (inescq && c != CHAR_NULL)
-+ if (c != CHAR_NULL)
- {
- if (c == CHAR_BACKSLASH && ptr[1] == CHAR_E)
- {
-@@ -4655,7 +4656,7 @@ for (;; ptr++)
- ptr++;
- continue;
- }
-- else
-+ else if (inescq)
- {
- if (previous_callout != NULL)
- {
-@@ -4670,7 +4671,6 @@ for (;; ptr++)
- }
- goto NORMAL_CHAR;
- }
-- /* Control does not reach here. */
- }
-
- /* In extended mode, skip white space and comments. We need a loop in order
-diff --git a/testdata/testinput2 b/testdata/testinput2
-index 92e3359..e8ca4fe 100644
---- a/testdata/testinput2
-+++ b/testdata/testinput2
-@@ -4225,4 +4225,6 @@ backtracking verbs. --/
-
- /L(?#(|++<!(2)?/BCOZ
-
-+/(A*)\E+/CBZ
-+
- /-- End of testinput2 --/
-diff --git a/testdata/testoutput2 b/testdata/testoutput2
-index 2cf7a90..09756b8 100644
---- a/testdata/testoutput2
-+++ b/testdata/testoutput2
-@@ -14610,4 +14610,18 @@ No match
- End
- ------------------------------------------------------------------
-
-+/(A*)\E+/CBZ
-+------------------------------------------------------------------
-+ Bra
-+ Callout 255 0 7
-+ SCBra 1
-+ Callout 255 1 2
-+ A*
-+ Callout 255 3 0
-+ KetRmax
-+ Callout 255 7 0
-+ Ket
-+ End
-+------------------------------------------------------------------
-+
- /-- End of testinput2 --/
---
-2.4.3
-
-From 108377b836fc29a84f5286287629d96549b1c777 Mon Sep 17 00:00:00 2001
-From: ph10 <ph10@2f5784b3-3f2a-0410-8824-cb99058d5e15>
-Date: Sun, 29 Nov 2015 17:38:25 +0000
-Subject: [PATCH 3/5] Give error for regexec with pmatch=NULL and REG_STARTEND
- set.
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-git-svn-id: svn://vcs.exim.org/pcre/code/trunk@1614 2f5784b3-3f2a-0410-8824-cb99058d5e15
-
-Petr Písař: Ported to 8.38.
-
-diff --git a/pcreposix.c b/pcreposix.c
-index f024423..dcc13ef 100644
---- a/pcreposix.c
-+++ b/pcreposix.c
-@@ -364,6 +364,7 @@ start location rather than being passed as a PCRE "starting offset". */
-
- if ((eflags & REG_STARTEND) != 0)
- {
-+ if (pmatch == NULL) return REG_INVARG;
- so = pmatch[0].rm_so;
- eo = pmatch[0].rm_eo;
- }
---
-2.4.3
-
-From e347b40d5bb12f7ef1e632aa649571a107be7d8a Mon Sep 17 00:00:00 2001
-From: ph10 <ph10@2f5784b3-3f2a-0410-8824-cb99058d5e15>
-Date: Sun, 29 Nov 2015 17:46:23 +0000
-Subject: [PATCH 4/5] Allow for up to 32-bit numbers in the ordin() function in
- pcregrep.
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-git-svn-id: svn://vcs.exim.org/pcre/code/trunk@1615 2f5784b3-3f2a-0410-8824-cb99058d5e15
-
-Petr Písař: Ported to 8.38.
-
-diff --git a/pcregrep.c b/pcregrep.c
-index 64986b0..cd53c64 100644
---- a/pcregrep.c
-+++ b/pcregrep.c
-@@ -2437,7 +2437,7 @@ return options;
- static char *
- ordin(int n)
- {
--static char buffer[8];
-+static char buffer[14];
- char *p = buffer;
- sprintf(p, "%d", n);
- while (*p != 0) p++;
---
-2.4.3
-
-From e78ad4264b16988b826bd2939a1781c1165a92d9 Mon Sep 17 00:00:00 2001
-From: ph10 <ph10@2f5784b3-3f2a-0410-8824-cb99058d5e15>
-Date: Mon, 30 Nov 2015 17:44:45 +0000
-Subject: [PATCH 5/5] Fix \Q\E before qualifier bug when auto callouts are
- enabled.
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-git-svn-id: svn://vcs.exim.org/pcre/code/trunk@1616 2f5784b3-3f2a-0410-8824-cb99058d5e15
-
-Petr Písař: Ported to 8.38.
-
-diff --git a/pcre_compile.c b/pcre_compile.c
-index 5786cd3..beed46b 100644
---- a/pcre_compile.c
-+++ b/pcre_compile.c
-@@ -4671,17 +4671,27 @@ for (;; ptr++)
- }
- goto NORMAL_CHAR;
- }
-+
-+ /* Check for the start of a \Q...\E sequence. We must do this here rather
-+ than later in case it is immediately followed by \E, which turns it into a
-+ "do nothing" sequence. */
-+
-+ if (c == CHAR_BACKSLASH && ptr[1] == CHAR_Q)
-+ {
-+ inescq = TRUE;
-+ ptr++;
-+ continue;
-+ }
- }
-
-- /* In extended mode, skip white space and comments. We need a loop in order
-- to check for more white space and more comments after a comment. */
-+ /* In extended mode, skip white space and comments. */
-
- if ((options & PCRE_EXTENDED) != 0)
- {
-- for (;;)
-+ const pcre_uchar *wscptr = ptr;
-+ while (MAX_255(c) && (cd->ctypes[c] & ctype_space) != 0) c = *(++ptr);
-+ if (c == CHAR_NUMBER_SIGN)
- {
-- while (MAX_255(c) && (cd->ctypes[c] & ctype_space) != 0) c = *(++ptr);
-- if (c != CHAR_NUMBER_SIGN) break;
- ptr++;
- while (*ptr != CHAR_NULL)
- {
-@@ -4695,7 +4705,15 @@ for (;; ptr++)
- if (utf) FORWARDCHAR(ptr);
- #endif
- }
-- c = *ptr; /* Either NULL or the char after a newline */
-+ }
-+
-+ /* If we skipped any characters, restart the loop. Otherwise, we didn't see
-+ a comment. */
-+
-+ if (ptr > wscptr)
-+ {
-+ ptr--;
-+ continue;
- }
- }
-
-@@ -7900,16 +7918,6 @@ for (;; ptr++)
- c = ec;
- else
- {
-- if (escape == ESC_Q) /* Handle start of quoted string */
-- {
-- if (ptr[1] == CHAR_BACKSLASH && ptr[2] == CHAR_E)
-- ptr += 2; /* avoid empty string */
-- else inescq = TRUE;
-- continue;
-- }
--
-- if (escape == ESC_E) continue; /* Perl ignores an orphan \E */
--
- /* For metasequences that actually match a character, we disable the
- setting of a first character if it hasn't already been set. */
-
-diff --git a/testdata/testinput2 b/testdata/testinput2
-index e8ca4fe..3a1134f 100644
---- a/testdata/testinput2
-+++ b/testdata/testinput2
-@@ -4227,4 +4227,6 @@ backtracking verbs. --/
-
- /(A*)\E+/CBZ
-
-+/()\Q\E*]/BCZ
-+
- /-- End of testinput2 --/
-diff --git a/testdata/testoutput2 b/testdata/testoutput2
-index 09756b8..ac33cc4 100644
---- a/testdata/testoutput2
-+++ b/testdata/testoutput2
-@@ -14624,4 +14624,19 @@ No match
- End
- ------------------------------------------------------------------
-
-+/()\Q\E*]/BCZ
-+------------------------------------------------------------------
-+ Bra
-+ Callout 255 0 7
-+ Brazero
-+ SCBra 1
-+ Callout 255 1 0
-+ KetRmax
-+ Callout 255 7 1
-+ ]
-+ Callout 255 8 0
-+ Ket
-+ End
-+------------------------------------------------------------------
-+
- /-- End of testinput2 --/
---
-2.4.3
-
-From 46ed1a703b067e5b679eacf6500a54dae35f8130 Mon Sep 17 00:00:00 2001
-From: ph10 <ph10@2f5784b3-3f2a-0410-8824-cb99058d5e15>
-Date: Thu, 3 Dec 2015 17:05:40 +0000
-Subject: [PATCH] Fix /x bug when pattern starts with white space and (?-x)
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-git-svn-id: svn://vcs.exim.org/pcre/code/trunk@1617 2f5784b3-3f2a-0410-8824-cb99058d5e15
-
-Petr Písař: Ported to 8.38.
-
-diff --git a/pcre_compile.c b/pcre_compile.c
-index beed46b..57719b9 100644
---- a/pcre_compile.c
-+++ b/pcre_compile.c
-@@ -7607,39 +7607,15 @@ for (;; ptr++)
- newoptions = (options | set) & (~unset);
-
- /* If the options ended with ')' this is not the start of a nested
-- group with option changes, so the options change at this level. If this
-- item is right at the start of the pattern, the options can be
-- abstracted and made external in the pre-compile phase, and ignored in
-- the compile phase. This can be helpful when matching -- for instance in
-- caseless checking of required bytes.
--
-- If the code pointer is not (cd->start_code + 1 + LINK_SIZE), we are
-- definitely *not* at the start of the pattern because something has been
-- compiled. In the pre-compile phase, however, the code pointer can have
-- that value after the start, because it gets reset as code is discarded
-- during the pre-compile. However, this can happen only at top level - if
-- we are within parentheses, the starting BRA will still be present. At
-- any parenthesis level, the length value can be used to test if anything
-- has been compiled at that level. Thus, a test for both these conditions
-- is necessary to ensure we correctly detect the start of the pattern in
-- both phases.
--
-+ group with option changes, so the options change at this level.
- If we are not at the pattern start, reset the greedy defaults and the
- case value for firstchar and reqchar. */
-
- if (*ptr == CHAR_RIGHT_PARENTHESIS)
- {
-- if (code == cd->start_code + 1 + LINK_SIZE &&
-- (lengthptr == NULL || *lengthptr == 2 + 2*LINK_SIZE))
-- {
-- cd->external_options = newoptions;
-- }
-- else
-- {
-- greedy_default = ((newoptions & PCRE_UNGREEDY) != 0);
-- greedy_non_default = greedy_default ^ 1;
-- req_caseopt = ((newoptions & PCRE_CASELESS) != 0)? REQ_CASELESS:0;
-- }
-+ greedy_default = ((newoptions & PCRE_UNGREEDY) != 0);
-+ greedy_non_default = greedy_default ^ 1;
-+ req_caseopt = ((newoptions & PCRE_CASELESS) != 0)? REQ_CASELESS:0;
-
- /* Change options at this level, and pass them back for use
- in subsequent branches. */
-diff --git a/testdata/testoutput2 b/testdata/testoutput2
-index ac33cc4..6c42897 100644
---- a/testdata/testoutput2
-+++ b/testdata/testoutput2
-@@ -419,7 +419,7 @@ Need char = '>'
-
- /(?U)<.*>/I
- Capturing subpattern count = 0
--Options: ungreedy
-+No options
- First char = '<'
- Need char = '>'
- abc<def>ghi<klm>nop
-@@ -443,7 +443,7 @@ Need char = '='
-
- /(?U)={3,}?/I
- Capturing subpattern count = 0
--Options: ungreedy
-+No options
- First char = '='
- Need char = '='
- abc========def
-@@ -477,7 +477,7 @@ Failed: lookbehind assertion is not fixed length at offset 12
-
- /(?i)abc/I
- Capturing subpattern count = 0
--Options: caseless
-+No options
- First char = 'a' (caseless)
- Need char = 'c' (caseless)
-
-@@ -489,7 +489,7 @@ No need char
-
- /(?i)^1234/I
- Capturing subpattern count = 0
--Options: anchored caseless
-+Options: anchored
- No first char
- No need char
-
-@@ -502,7 +502,7 @@ No need char
- /(?s).*/I
- Capturing subpattern count = 0
- May match empty string
--Options: anchored dotall
-+Options: anchored
- No first char
- No need char
-
-@@ -516,7 +516,7 @@ Starting chars: a b c d
-
- /(?i)[abcd]/IS
- Capturing subpattern count = 0
--Options: caseless
-+No options
- No first char
- No need char
- Subject length lower bound = 1
-@@ -524,7 +524,7 @@ Starting chars: A B C D a b c d
-
- /(?m)[xy]|(b|c)/IS
- Capturing subpattern count = 1
--Options: multiline
-+No options
- No first char
- No need char
- Subject length lower bound = 1
-@@ -538,7 +538,7 @@ No need char
-
- /(?i)(^a|^b)/Im
- Capturing subpattern count = 1
--Options: caseless multiline
-+Options: multiline
- First char at start or follows newline
- No need char
-
-@@ -1179,7 +1179,7 @@ No need char
- End
- ------------------------------------------------------------------
- Capturing subpattern count = 1
--Options: anchored dotall
-+Options: anchored
- No first char
- No need char
-
-@@ -2735,7 +2735,7 @@ No match
- End
- ------------------------------------------------------------------
- Capturing subpattern count = 0
--Options: caseless extended
-+Options: extended
- First char = 'a' (caseless)
- Need char = 'c' (caseless)
-
-@@ -2748,7 +2748,7 @@ Need char = 'c' (caseless)
- End
- ------------------------------------------------------------------
- Capturing subpattern count = 0
--Options: caseless extended
-+Options: extended
- First char = 'a' (caseless)
- Need char = 'c' (caseless)
-
-@@ -3095,7 +3095,7 @@ Need char = 'b'
- End
- ------------------------------------------------------------------
- Capturing subpattern count = 0
--Options: ungreedy
-+No options
- First char = 'x'
- Need char = 'b'
- xaaaab
-@@ -3497,7 +3497,7 @@ Need char = 'c'
-
- /(?i)[ab]/IS
- Capturing subpattern count = 0
--Options: caseless
-+No options
- No first char
- No need char
- Subject length lower bound = 1
-@@ -6299,7 +6299,7 @@ Capturing subpattern count = 3
- Named capturing subpatterns:
- A 2
- A 3
--Options: anchored dupnames
-+Options: anchored
- Duplicate name status changes
- No first char
- No need char
---
-2.4.3
-
-From db1fb68feddc9afe6f8822d099fa9ff25e3ea8e7 Mon Sep 17 00:00:00 2001
-From: ph10 <ph10@2f5784b3-3f2a-0410-8824-cb99058d5e15>
-Date: Sat, 5 Dec 2015 16:30:14 +0000
-Subject: [PATCH] Fix copy named substring bug.
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-git-svn-id: svn://vcs.exim.org/pcre/code/trunk@1618 2f5784b3-3f2a-0410-8824-cb99058d5e15
-
-Petr Písař: Ported to 8.38.
-diff --git a/pcre_get.c b/pcre_get.c
-index 8094b34..41eda9c 100644
---- a/pcre_get.c
-+++ b/pcre_get.c
-@@ -250,6 +250,7 @@ Arguments:
- code the compiled regex
- stringname the name of the capturing substring
- ovector the vector of matched substrings
-+ stringcount number of captured substrings
-
- Returns: the number of the first that is set,
- or the number of the last one if none are set,
-@@ -258,13 +259,16 @@ Returns: the number of the first that is set,
-
- #if defined COMPILE_PCRE8
- static int
--get_first_set(const pcre *code, const char *stringname, int *ovector)
-+get_first_set(const pcre *code, const char *stringname, int *ovector,
-+ int stringcount)
- #elif defined COMPILE_PCRE16
- static int
--get_first_set(const pcre16 *code, PCRE_SPTR16 stringname, int *ovector)
-+get_first_set(const pcre16 *code, PCRE_SPTR16 stringname, int *ovector,
-+ int stringcount)
- #elif defined COMPILE_PCRE32
- static int
--get_first_set(const pcre32 *code, PCRE_SPTR32 stringname, int *ovector)
-+get_first_set(const pcre32 *code, PCRE_SPTR32 stringname, int *ovector,
-+ int stringcount)
- #endif
- {
- const REAL_PCRE *re = (const REAL_PCRE *)code;
-@@ -295,7 +299,7 @@ if (entrysize <= 0) return entrysize;
- for (entry = (pcre_uchar *)first; entry <= (pcre_uchar *)last; entry += entrysize)
- {
- int n = GET2(entry, 0);
-- if (ovector[n*2] >= 0) return n;
-+ if (n < stringcount && ovector[n*2] >= 0) return n;
- }
- return GET2(entry, 0);
- }
-@@ -402,7 +406,7 @@ pcre32_copy_named_substring(const pcre32 *code, PCRE_SPTR32 subject,
- PCRE_UCHAR32 *buffer, int size)
- #endif
- {
--int n = get_first_set(code, stringname, ovector);
-+int n = get_first_set(code, stringname, ovector, stringcount);
- if (n <= 0) return n;
- #if defined COMPILE_PCRE8
- return pcre_copy_substring(subject, ovector, stringcount, n, buffer, size);
-@@ -619,7 +623,7 @@ pcre32_get_named_substring(const pcre32 *code, PCRE_SPTR32 subject,
- PCRE_SPTR32 *stringptr)
- #endif
- {
--int n = get_first_set(code, stringname, ovector);
-+int n = get_first_set(code, stringname, ovector, stringcount);
- if (n <= 0) return n;
- #if defined COMPILE_PCRE8
- return pcre_get_substring(subject, ovector, stringcount, n, stringptr);
-diff --git a/testdata/testinput2 b/testdata/testinput2
-index 3a1134f..00ffe32 100644
---- a/testdata/testinput2
-+++ b/testdata/testinput2
-@@ -4229,4 +4229,7 @@ backtracking verbs. --/
-
- /()\Q\E*]/BCZ
-
-+/(?<A>)(?J:(?<B>)(?<B>))(?<C>)/
-+ \O\CC
-+
- /-- End of testinput2 --/
-diff --git a/testdata/testoutput2 b/testdata/testoutput2
-index 6c42897..ffb4466 100644
---- a/testdata/testoutput2
-+++ b/testdata/testoutput2
-@@ -14639,4 +14639,9 @@ No match
- End
- ------------------------------------------------------------------
-
-+/(?<A>)(?J:(?<B>)(?<B>))(?<C>)/
-+ \O\CC
-+Matched, but too many substrings
-+copy substring C failed -7
-+
- /-- End of testinput2 --/
---
-2.4.3
-
-From 40363ebc19baeab160abaaa55dc84322a89ac35a Mon Sep 17 00:00:00 2001
-From: ph10 <ph10@2f5784b3-3f2a-0410-8824-cb99058d5e15>
-Date: Sat, 5 Dec 2015 16:58:46 +0000
-Subject: [PATCH] Fix (by hacking) another length computation issue.
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-git-svn-id: svn://vcs.exim.org/pcre/code/trunk@1619 2f5784b3-3f2a-0410-8824-cb99058d5e15
-
-Petr Písař: Ported to 8.38.
-
-diff --git a/pcre_compile.c b/pcre_compile.c
-index 57719b9..087bf2a 100644
---- a/pcre_compile.c
-+++ b/pcre_compile.c
-@@ -7280,7 +7280,7 @@ for (;; ptr++)
- issue is fixed "properly" in PCRE2. As PCRE1 is now in maintenance
- only mode, we finesse the bug by allowing more memory always. */
-
-- *lengthptr += 2 + 2*LINK_SIZE;
-+ *lengthptr += 4 + 4*LINK_SIZE;
-
- /* It is even worse than that. The current reference may be to an
- existing named group with a different number (so apparently not
-diff --git a/testdata/testoutput11-16 b/testdata/testoutput11-16
-index 9a0a12d..280692e 100644
---- a/testdata/testoutput11-16
-+++ b/testdata/testoutput11-16
-@@ -231,7 +231,7 @@ Memory allocation (code space): 73
- ------------------------------------------------------------------
-
- /(?P<a>a)...(?P=a)bbb(?P>a)d/BM
--Memory allocation (code space): 77
-+Memory allocation (code space): 93
- ------------------------------------------------------------------
- 0 24 Bra
- 2 5 CBra 1
-diff --git a/testdata/testoutput11-32 b/testdata/testoutput11-32
-index 57e5da0..cdbda74 100644
---- a/testdata/testoutput11-32
-+++ b/testdata/testoutput11-32
-@@ -231,7 +231,7 @@ Memory allocation (code space): 155
- ------------------------------------------------------------------
-
- /(?P<a>a)...(?P=a)bbb(?P>a)d/BM
--Memory allocation (code space): 157
-+Memory allocation (code space): 189
- ------------------------------------------------------------------
- 0 24 Bra
- 2 5 CBra 1
-diff --git a/testdata/testoutput11-8 b/testdata/testoutput11-8
-index 748548a..cb37896 100644
---- a/testdata/testoutput11-8
-+++ b/testdata/testoutput11-8
-@@ -231,7 +231,7 @@ Memory allocation (code space): 45
- ------------------------------------------------------------------
-
- /(?P<a>a)...(?P=a)bbb(?P>a)d/BM
--Memory allocation (code space): 50
-+Memory allocation (code space): 62
- ------------------------------------------------------------------
- 0 30 Bra
- 3 7 CBra 1
---
-2.4.3
-
-From 4f47274a2eb10131d88145ad7fd0eed4027a0c51 Mon Sep 17 00:00:00 2001
-From: ph10 <ph10@2f5784b3-3f2a-0410-8824-cb99058d5e15>
-Date: Tue, 8 Dec 2015 11:06:40 +0000
-Subject: [PATCH] Fix get_substring_list() bug when \K is used in an assertion.
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-git-svn-id: svn://vcs.exim.org/pcre/code/trunk@1620 2f5784b3-3f2a-0410-8824-cb99058d5e15
-
-Petr Písař: ported to 8.38.
-
-diff --git a/pcre_get.c b/pcre_get.c
-index 41eda9c..cdd2abc 100644
---- a/pcre_get.c
-+++ b/pcre_get.c
-@@ -461,7 +461,10 @@ pcre_uchar **stringlist;
- pcre_uchar *p;
-
- for (i = 0; i < double_count; i += 2)
-- size += sizeof(pcre_uchar *) + IN_UCHARS(ovector[i+1] - ovector[i] + 1);
-+ {
-+ size += sizeof(pcre_uchar *) + IN_UCHARS(1);
-+ if (ovector[i+1] > ovector[i]) size += IN_UCHARS(ovector[i+1] - ovector[i]);
-+ }
-
- stringlist = (pcre_uchar **)(PUBL(malloc))(size);
- if (stringlist == NULL) return PCRE_ERROR_NOMEMORY;
-@@ -477,7 +480,7 @@ p = (pcre_uchar *)(stringlist + stringcount + 1);
-
- for (i = 0; i < double_count; i += 2)
- {
-- int len = ovector[i+1] - ovector[i];
-+ int len = (ovector[i+1] > ovector[i])? (ovector[i+1] - ovector[i]) : 0;
- memcpy(p, subject + ovector[i], IN_UCHARS(len));
- *stringlist++ = p;
- p += len;
-diff --git a/testdata/testinput2 b/testdata/testinput2
-index 00ffe32..967a241 100644
---- a/testdata/testinput2
-+++ b/testdata/testinput2
-@@ -4232,4 +4232,7 @@ backtracking verbs. --/
- /(?<A>)(?J:(?<B>)(?<B>))(?<C>)/
- \O\CC
-
-+/(?=a\K)/
-+ ring bpattingbobnd $ 1,oern cou \rb\L
-+
- /-- End of testinput2 --/
-diff --git a/testdata/testoutput2 b/testdata/testoutput2
-index ffb4466..5fb28d5 100644
---- a/testdata/testoutput2
-+++ b/testdata/testoutput2
-@@ -14644,4 +14644,10 @@ No match
- Matched, but too many substrings
- copy substring C failed -7
-
-+/(?=a\K)/
-+ ring bpattingbobnd $ 1,oern cou \rb\L
-+Start of matched string is beyond its end - displaying from end to start.
-+ 0: a
-+ 0L
-+
- /-- End of testinput2 --/
---
-2.5.0
-
-From 3da5528b47b88c32224cf9d14d8a4e80cd7a0815 Mon Sep 17 00:00:00 2001
-From: ph10 <ph10@2f5784b3-3f2a-0410-8824-cb99058d5e15>
-Date: Sat, 6 Feb 2016 16:54:14 +0000
-Subject: [PATCH] Fix pcretest bad behaviour for callout in lookbehind.
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-git-svn-id: svn://vcs.exim.org/pcre/code/trunk@1625 2f5784b3-3f2a-0410-8824-cb99058d5e15
-
-Petr Písař: Ported to 8.38.
-
-diff --git a/pcretest.c b/pcretest.c
-index 488e419..63869fd 100644
---- a/pcretest.c
-+++ b/pcretest.c
-@@ -2250,7 +2250,7 @@ data is not zero. */
- static int callout(pcre_callout_block *cb)
- {
- FILE *f = (first_callout | callout_extra)? outfile : NULL;
--int i, pre_start, post_start, subject_length;
-+int i, current_position, pre_start, post_start, subject_length;
-
- if (callout_extra)
- {
-@@ -2280,14 +2280,19 @@ printed lengths of the substrings. */
-
- if (f != NULL) fprintf(f, "--->");
-
-+/* If a lookbehind is involved, the current position may be earlier than the
-+match start. If so, use the match start instead. */
-+
-+current_position = (cb->current_position >= cb->start_match)?
-+ cb->current_position : cb->start_match;
-+
- PCHARS(pre_start, cb->subject, 0, cb->start_match, f);
- PCHARS(post_start, cb->subject, cb->start_match,
-- cb->current_position - cb->start_match, f);
-+ current_position - cb->start_match, f);
-
- PCHARS(subject_length, cb->subject, 0, cb->subject_length, NULL);
-
--PCHARSV(cb->subject, cb->current_position,
-- cb->subject_length - cb->current_position, f);
-+PCHARSV(cb->subject, current_position, cb->subject_length - current_position, f);
-
- if (f != NULL) fprintf(f, "\n");
-
-@@ -5740,3 +5745,4 @@ return yield;
- }
-
- /* End of pcretest.c */
-+
-diff --git a/testdata/testinput2 b/testdata/testinput2
-index 967a241..086e0f4 100644
---- a/testdata/testinput2
-+++ b/testdata/testinput2
-@@ -4235,4 +4235,8 @@ backtracking verbs. --/
- /(?=a\K)/
- ring bpattingbobnd $ 1,oern cou \rb\L
-
-+/(?<=((?C)0))/
-+ 9010
-+ abcd
-+
- /-- End of testinput2 --/
-diff --git a/testdata/testoutput2 b/testdata/testoutput2
-index 5fb28d5..d414a72 100644
---- a/testdata/testoutput2
-+++ b/testdata/testoutput2
-@@ -14650,4 +14650,19 @@ Start of matched string is beyond its end - displaying from end to start.
- 0: a
- 0L
-
-+/(?<=((?C)0))/
-+ 9010
-+--->9010
-+ 0 ^ 0
-+ 0 ^ 0
-+ 0:
-+ 1: 0
-+ abcd
-+--->abcd
-+ 0 ^ 0
-+ 0 ^ 0
-+ 0 ^ 0
-+ 0 ^ 0
-+No match
-+
- /-- End of testinput2 --/
---
-2.5.0
-
-From 943a5105b9fe2842851003f692c7077a6cdbeefe Mon Sep 17 00:00:00 2001
-From: ph10 <ph10@2f5784b3-3f2a-0410-8824-cb99058d5e15>
-Date: Wed, 10 Feb 2016 19:13:17 +0000
-Subject: [PATCH] Fix workspace overflow for (*ACCEPT) with deeply nested
- parentheses.
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-git-svn-id: svn://vcs.exim.org/pcre/code/trunk@1631 2f5784b3-3f2a-0410-8824-cb99058d5e15
-
-Petr Písař: Ported to 8.38.
-
-diff --git a/pcre_compile.c b/pcre_compile.c
-index b9a239e..5019854 100644
---- a/pcre_compile.c
-+++ b/pcre_compile.c
-@@ -6,7 +6,7 @@
- and semantics are as close as possible to those of the Perl 5 language.
-
- Written by Philip Hazel
-- Copyright (c) 1997-2014 University of Cambridge
-+ Copyright (c) 1997-2016 University of Cambridge
-
- -----------------------------------------------------------------------------
- Redistribution and use in source and binary forms, with or without
-@@ -560,6 +560,7 @@ static const char error_texts[] =
- /* 85 */
- "parentheses are too deeply nested (stack check)\0"
- "digits missing in \\x{} or \\o{}\0"
-+ "regular expression is too complicated\0"
- ;
-
- /* Table to identify digits and hex digits. This is used when compiling
-@@ -4591,7 +4592,8 @@ for (;; ptr++)
- if (code > cd->start_workspace + cd->workspace_size -
- WORK_SIZE_SAFETY_MARGIN) /* Check for overrun */
- {
-- *errorcodeptr = ERR52;
-+ *errorcodeptr = (code >= cd->start_workspace + cd->workspace_size)?
-+ ERR52 : ERR87;
- goto FAILED;
- }
-
-@@ -6626,8 +6628,21 @@ for (;; ptr++)
- cd->had_accept = TRUE;
- for (oc = cd->open_caps; oc != NULL; oc = oc->next)
- {
-- *code++ = OP_CLOSE;
-- PUT2INC(code, 0, oc->number);
-+ if (lengthptr != NULL)
-+ {
-+#ifdef COMPILE_PCRE8
-+ *lengthptr += 1 + IMM2_SIZE;
-+#elif defined COMPILE_PCRE16
-+ *lengthptr += 2 + IMM2_SIZE;
-+#elif defined COMPILE_PCRE32
-+ *lengthptr += 4 + IMM2_SIZE;
-+#endif
-+ }
-+ else
-+ {
-+ *code++ = OP_CLOSE;
-+ PUT2INC(code, 0, oc->number);
-+ }
- }
- setverb = *code++ =
- (cd->assert_depth > 0)? OP_ASSERT_ACCEPT : OP_ACCEPT;
-diff --git a/pcre_internal.h b/pcre_internal.h
-index f7a5ee7..dbfe80e 100644
---- a/pcre_internal.h
-+++ b/pcre_internal.h
-@@ -7,7 +7,7 @@
- and semantics are as close as possible to those of the Perl 5 language.
-
- Written by Philip Hazel
-- Copyright (c) 1997-2014 University of Cambridge
-+ Copyright (c) 1997-2016 University of Cambridge
-
- -----------------------------------------------------------------------------
- Redistribution and use in source and binary forms, with or without
-@@ -2289,7 +2289,7 @@ enum { ERR0, ERR1, ERR2, ERR3, ERR4, ERR5, ERR6, ERR7, ERR8, ERR9,
- ERR50, ERR51, ERR52, ERR53, ERR54, ERR55, ERR56, ERR57, ERR58, ERR59,
- ERR60, ERR61, ERR62, ERR63, ERR64, ERR65, ERR66, ERR67, ERR68, ERR69,
- ERR70, ERR71, ERR72, ERR73, ERR74, ERR75, ERR76, ERR77, ERR78, ERR79,
-- ERR80, ERR81, ERR82, ERR83, ERR84, ERR85, ERR86, ERRCOUNT };
-+ ERR80, ERR81, ERR82, ERR83, ERR84, ERR85, ERR86, ERR87, ERRCOUNT };
-
- /* JIT compiling modes. The function list is indexed by them. */
-
-diff --git a/pcreposix.c b/pcreposix.c
-index dcc13ef..55b6ddc 100644
---- a/pcreposix.c
-+++ b/pcreposix.c
-@@ -6,7 +6,7 @@
- and semantics are as close as possible to those of the Perl 5 language.
-
- Written by Philip Hazel
-- Copyright (c) 1997-2014 University of Cambridge
-+ Copyright (c) 1997-2016 University of Cambridge
-
- -----------------------------------------------------------------------------
- Redistribution and use in source and binary forms, with or without
-@@ -173,7 +173,8 @@ static const int eint[] = {
- REG_BADPAT, /* group name must start with a non-digit */
- /* 85 */
- REG_BADPAT, /* parentheses too deeply nested (stack check) */
-- REG_BADPAT /* missing digits in \x{} or \o{} */
-+ REG_BADPAT, /* missing digits in \x{} or \o{} */
-+ REG_BADPAT /* pattern too complicated */
- };
-
- /* Table of texts corresponding to POSIX error codes */
-diff --git a/testdata/testinput11 b/testdata/testinput11
-index ac9d228..6f0989a 100644
---- a/testdata/testinput11
-+++ b/testdata/testinput11
-@@ -138,4 +138,6 @@ is required for these tests. --/
-
- /.((?2)(?R)\1)()/B
-
-+/([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00](*ACCEPT)/
-+
- /-- End of testinput11 --/
-diff --git a/testdata/testoutput11-16 b/testdata/testoutput11-16
-index 280692e..3c485da 100644
---- a/testdata/testoutput11-16
-+++ b/testdata/testoutput11-16
-@@ -765,4 +765,7 @@ Memory allocation (code space): 14
- 25 End
- ------------------------------------------------------------------
-
-+/([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00](*ACCEPT)/
-+Failed: regular expression is too complicated at offset 490
-+
- /-- End of testinput11 --/
-diff --git a/testdata/testoutput11-32 b/testdata/testoutput11-32
-index cdbda74..e19518d 100644
---- a/testdata/testoutput11-32
-+++ b/testdata/testoutput11-32
-@@ -765,4 +765,7 @@ Memory allocation (code space): 28
- 25 End
- ------------------------------------------------------------------
-
-+/([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00](*ACCEPT)/
-+Failed: missing ) at offset 509
-+
- /-- End of testinput11 --/
-diff --git a/testdata/testoutput11-8 b/testdata/testoutput11-8
-index cb37896..5a4fbb2 100644
---- a/testdata/testoutput11-8
-+++ b/testdata/testoutput11-8
-@@ -765,4 +765,7 @@ Memory allocation (code space): 10
- 38 End
- ------------------------------------------------------------------
-
-+/([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00](*ACCEPT)/
-+Failed: missing ) at offset 509
-+
- /-- End of testinput11 --/
---
-2.5.0
-
-From b7537308b7c758f33c347cb0bec62754c43c271f Mon Sep 17 00:00:00 2001
-From: ph10 <ph10@2f5784b3-3f2a-0410-8824-cb99058d5e15>
-Date: Sat, 27 Feb 2016 17:38:11 +0000
-Subject: [PATCH] Yet another duplicate name bugfix by overestimating the
- memory needed (i.e. another hack - PCRE2 has this "properly" fixed).
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-git-svn-id: svn://vcs.exim.org/pcre/code/trunk@1636 2f5784b3-3f2a-0410-8824-cb99058d5e15
-
-Petr Písař: Ported to 8.38.
-
-diff --git a/pcre_compile.c b/pcre_compile.c
-index 5019854..4ffea0c 100644
---- a/pcre_compile.c
-+++ b/pcre_compile.c
-@@ -7311,7 +7311,12 @@ for (;; ptr++)
- so far in order to get the number. If the name is not found, leave
- the value of recno as 0 for a forward reference. */
-
-- else
-+ /* This patch (removing "else") fixes a problem when a reference is
-+ to multiple identically named nested groups from within the nest.
-+ Once again, it is not the "proper" fix, and it results in an
-+ over-allocation of memory. */
-+
-+ /* else */
- {
- ng = cd->named_groups;
- for (i = 0; i < cd->names_found; i++, ng++)
-diff --git a/testdata/testinput2 b/testdata/testinput2
-index 086e0f4..c805f5f 100644
---- a/testdata/testinput2
-+++ b/testdata/testinput2
-@@ -4239,4 +4239,6 @@ backtracking verbs. --/
- 9010
- abcd
-
-+/((?J)(?'R'(?'R'(?'R'(?'R'(?'R'(?|(\k'R'))))))))/
-+
- /-- End of testinput2 --/
-diff --git a/testdata/testoutput2 b/testdata/testoutput2
-index d414a72..800a72f 100644
---- a/testdata/testoutput2
-+++ b/testdata/testoutput2
-@@ -14665,4 +14665,6 @@ Start of matched string is beyond its end - displaying from end to start.
- 0 ^ 0
- No match
-
-+/((?J)(?'R'(?'R'(?'R'(?'R'(?'R'(?|(\k'R'))))))))/
-+
- /-- End of testinput2 --/
---
-2.5.0
-
-From 0fc2edb79b3815c6511fd75c36a57893e4acaee6 Mon Sep 17 00:00:00 2001
-From: ph10 <ph10@2f5784b3-3f2a-0410-8824-cb99058d5e15>
-Date: Sat, 27 Feb 2016 17:55:24 +0000
-Subject: [PATCH] Fix pcretest loop for global matching with an ovector size
- less than 2.
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-git-svn-id: svn://vcs.exim.org/pcre/code/trunk@1637 2f5784b3-3f2a-0410-8824-cb99058d5e15
-
-Petr Písař: Ported to 8.38.
-
-diff --git a/pcretest.c b/pcretest.c
-index 63869fd..78ef517 100644
---- a/pcretest.c
-+++ b/pcretest.c
-@@ -5617,6 +5617,12 @@ while (!done)
- break;
- }
-
-+ if (use_size_offsets < 2)
-+ {
-+ fprintf(outfile, "Cannot do global matching with an ovector size < 2\n");
-+ break;
-+ }
-+
- /* If we have matched an empty string, first check to see if we are at
- the end of the subject. If so, the /g loop is over. Otherwise, mimic what
- Perl's /g options does. This turns out to be rather cunning. First we set
---
-2.5.0
-
-From b3db1b7de5cfaa026ec2bc4a393129461a0f5c57 Mon Sep 17 00:00:00 2001
-From: ph10 <ph10@2f5784b3-3f2a-0410-8824-cb99058d5e15>
-Date: Sat, 27 Feb 2016 18:44:41 +0000
-Subject: [PATCH] Fix non-diagnosis of missing assertion after (?(?C).
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-git-svn-id: svn://vcs.exim.org/pcre/code/trunk@1638 2f5784b3-3f2a-0410-8824-cb99058d5e15
-
-Petr Písař: Ported to 8.38.
-
-diff --git a/pcre_compile.c b/pcre_compile.c
-index 4ffea0c..254c629 100644
---- a/pcre_compile.c
-+++ b/pcre_compile.c
-@@ -485,7 +485,7 @@ static const char error_texts[] =
- "lookbehind assertion is not fixed length\0"
- "malformed number or name after (?(\0"
- "conditional group contains more than two branches\0"
-- "assertion expected after (?(\0"
-+ "assertion expected after (?( or (?(?C)\0"
- "(?R or (?[+-]digits must be followed by )\0"
- /* 30 */
- "unknown POSIX class name\0"
-@@ -6771,6 +6771,15 @@ for (;; ptr++)
- for (i = 3;; i++) if (!IS_DIGIT(ptr[i])) break;
- if (ptr[i] == CHAR_RIGHT_PARENTHESIS)
- tempptr += i + 1;
-+
-+ /* tempptr should now be pointing to the opening parenthesis of the
-+ assertion condition. */
-+
-+ if (*tempptr != CHAR_LEFT_PARENTHESIS)
-+ {
-+ *errorcodeptr = ERR28;
-+ goto FAILED;
-+ }
- }
-
- /* For conditions that are assertions, check the syntax, and then exit
-diff --git a/testdata/testinput2 b/testdata/testinput2
-index c805f5f..75e402e 100644
---- a/testdata/testinput2
-+++ b/testdata/testinput2
-@@ -4241,4 +4241,6 @@ backtracking verbs. --/
-
- /((?J)(?'R'(?'R'(?'R'(?'R'(?'R'(?|(\k'R'))))))))/
-
-+/\N(?(?C)0?!.)*/
-+
- /-- End of testinput2 --/
-diff --git a/testdata/testoutput2 b/testdata/testoutput2
-index 800a72f..5e88d1a 100644
---- a/testdata/testoutput2
-+++ b/testdata/testoutput2
-@@ -555,13 +555,13 @@ Failed: malformed number or name after (?( at offset 4
- Failed: malformed number or name after (?( at offset 4
-
- /(?(?i))/
--Failed: assertion expected after (?( at offset 3
-+Failed: assertion expected after (?( or (?(?C) at offset 3
-
- /(?(abc))/
- Failed: reference to non-existent subpattern at offset 7
-
- /(?(?<ab))/
--Failed: assertion expected after (?( at offset 3
-+Failed: assertion expected after (?( or (?(?C) at offset 3
-
- /((?s)blah)\s+\1/I
- Capturing subpattern count = 1
-@@ -7870,7 +7870,7 @@ No match
- Failed: malformed number or name after (?( at offset 6
-
- /(?(''))/
--Failed: assertion expected after (?( at offset 4
-+Failed: assertion expected after (?( or (?(?C) at offset 4
-
- /(?('R')stuff)/
- Failed: reference to non-existent subpattern at offset 7
-@@ -14346,7 +14346,7 @@ No match
- "((?2)+)((?1))"
-
- "(?(?<E>.*!.*)?)"
--Failed: assertion expected after (?( at offset 3
-+Failed: assertion expected after (?( or (?(?C) at offset 3
-
- "X((?2)()*+){2}+"BZ
- ------------------------------------------------------------------
-@@ -14667,4 +14667,7 @@ No match
-
- /((?J)(?'R'(?'R'(?'R'(?'R'(?'R'(?|(\k'R'))))))))/
-
-+/\N(?(?C)0?!.)*/
-+Failed: assertion expected after (?( or (?(?C) at offset 4
-+
- /-- End of testinput2 --/
---
-2.5.0
-
+++ /dev/null
---- setup.py~ 2008-04-22 17:00:45.000000000 +0300
-+++ setup.py 2008-07-03 21:53:36.000000000 +0300
-@@ -97,8 +97,7 @@
- else:
- extra_compile_args.append(e)
- libs = split_quoted(
-- os.popen("'%s' --libs" % CURL_CONFIG).read()+\
-- os.popen("'%s' --static-libs" % CURL_CONFIG).read())
-+ os.popen("'%s' --libs" % CURL_CONFIG).read())
- for e in libs:
- if e[:2] == "-l":
- libraries.append(e[2:])
+++ /dev/null
-diff -wbBur sarg-2.3.11/index.c sarg-2.3.11.my/index.c
---- sarg-2.3.11/index.c 2018-01-14 21:00:22.000000000 +0300
-+++ sarg-2.3.11.my/index.c 2018-02-19 12:20:15.896203347 +0300
-@@ -208,7 +208,7 @@
- m1=month / 16;
- if(month % 16 != 0) {
- m2=month % 16;
-- sprintf(monthnum,"%02d-%02d",m1,m2);
-+ sprintf(monthnum,"%02u-%02u",(unsigned int)m1,(unsigned int)m2);
- sprintf(monthname1,"%02d",m1);
- sprintf(monthname2,"%02d",m2);
- name_month(monthname1,sizeof(monthname1));
-@@ -269,7 +269,7 @@
- d1=day / 32;
- if(day % 32 != 0) {
- d2=day % 32;
-- sprintf(daynum,"%02d-%02d",d1,d2);
-+ sprintf(daynum,"%02u-%02u",(unsigned int)d1,(unsigned int)d2);
- } else {
- sprintf(daynum,"%02d",d1);
- }
-diff -wbBur sarg-2.3.11/report.c sarg-2.3.11.my/report.c
---- sarg-2.3.11/report.c 2018-01-14 21:00:23.000000000 +0300
-+++ sarg-2.3.11.my/report.c 2018-02-19 12:18:45.151207192 +0300
-@@ -54,7 +54,7 @@
- char accsmart[MAXLEN];
- char crc2[MAXLEN/2 -1];
- char siteind[MAX_TRUNCATED_URL];
-- char arqtt[256];
-+ char arqtt[267];
- char *oldurltt=NULL;
- char oldaccdiatt[11],oldacchoratt[9];
- char tmp3[MAXLEN];
-diff -wbBur sarg-2.3.11/userinfo.c sarg-2.3.11.my/userinfo.c
---- sarg-2.3.11/userinfo.c 2013-06-01 22:02:04.000000000 +0400
-+++ sarg-2.3.11.my/userinfo.c 2018-02-19 12:21:16.103200796 +0300
-@@ -67,7 +67,7 @@
- int skip;
- int flen;
- int count, clen;
-- char cstr[9];
-+ char cstr[11];
-
- last=NULL;
- for (group=first_user_group ; group ; group=group->next) {
---- sarg-2.3.11/configure.ac~ 2019-04-26 22:34:33.499022406 +0000
-+++ sarg-2.3.11/configure.ac 2019-04-26 22:35:11.886556020 +0000
-@@ -29,35 +29,6 @@
+--- sarg-2.4.0/configure.ac.orig 2020-01-16 12:24:11.000000000 +0100
++++ sarg-2.4.0/configure.ac 2021-04-24 14:16:03.677756214 +0200
+@@ -38,31 +38,6 @@
# Report more warnings to improve code quality.
- CFLAGS="${CFLAGS} -Wall -Wno-sign-compare"
+ CFLAGS="${CFLAGS} -Wall"
-dnl Check for supported compiler options
-
-CFLAGS="${CFLAGS} -Wextra -Wno-unused-parameter"
-AC_COMPILE_IFELSE([AC_LANG_SOURCE([])],[have_extra_warnings="yes"],[have_extra_warnings="no"])
-AC_MSG_RESULT($have_extra_warnings)
--if test "$have_extra_warnings" = "no" ; then
-- CFLAGS="${saved_CFLAGS}"
--fi
+-AS_IF([test "$have_extra_warnings" = "no"],[CFLAGS="${saved_CFLAGS}"])
+-
+-# Don't compare signs as it is a mess
+-CFLAGS="${CFLAGS} -Wno-sign-compare"
-
-AC_MSG_CHECKING([for implicit-function-declaration error flag in $CC])
-saved_CFLAGS="${CFLAGS}"
-CFLAGS="${CFLAGS} -Werror=implicit-function-declaration"
-AC_COMPILE_IFELSE([AC_LANG_SOURCE([])],[have_implicit_function_declaration="yes"],[have_implicit_function_declaration="no"])
-AC_MSG_RESULT($have_implicit_function_declaration)
--if test "$have_implicit_function_declaration" = "no" ; then
-- CFLAGS="${saved_CFLAGS}"
--fi
+-AS_IF([test "$have_implicit_function_declaration" = "no"],[CFLAGS="${saved_CFLAGS}"])
-
-AC_MSG_CHECKING([for format error flag in $CC])
-saved_CFLAGS="${CFLAGS}"
-CFLAGS="${CFLAGS} -Werror=format"
-AC_COMPILE_IFELSE([AC_LANG_SOURCE([])],[have_error_format="yes"],[have_error_format="no"])
-AC_MSG_RESULT($have_error_format)
--if test "$have_error_format" = "no" ; then
-- CFLAGS="${saved_CFLAGS}"
--fi
--
+-AS_IF([test "$have_error_format" = "no"],[CFLAGS="${saved_CFLAGS}"])
+
case "$host" in
*-solaris*)
- LDFLAGS="${LDFLAGS} -lsocket -lnsl"
--- /dev/null
+diff -Naur sarg-2.4.0.orig/index.c sarg-2.4.0/index.c
+--- sarg-2.4.0.orig/index.c 2019-12-24 12:04:00.000000000 +0100
++++ sarg-2.4.0/index.c 2021-04-24 14:09:57.779097194 +0200
+@@ -325,7 +325,7 @@
+ d1=(day >> 5) & 0x1F;
+ if ((day & 0x1F) != 0) {
+ d2=day & 0x1F;
+- snprintf(daynum,sizeof(daynum),"%02d-%02d",d1,d2);
++ snprintf(daynum,sizeof(daynum),"%02u-%02u",(unsigned int)d1,(unsigned int)d2);
+ } else {
+ snprintf(daynum,sizeof(daynum),"%02d",d1);
+ }
+@@ -485,7 +485,7 @@
+ m1=(month >> 4) & 0x0F;
+ if ((month & 0x0F) != 0) {
+ m2=month & 0x0F;
+- snprintf(monthnum,sizeof(monthnum),"%02d-%02d",m1,m2);
++ snprintf(monthnum,sizeof(monthnum),"%02u-%02u",(unsigned int)m1,(unsigned int)m2);
+ name_month(m1,monthname1,sizeof(monthname1));
+ name_month(m2,monthname2,sizeof(monthname2));
+ snprintf(nmonth,sizeof(nmonth),"%s-%s",monthname1,monthname2);
+diff -Naur sarg-2.4.0.orig/userinfo.c sarg-2.4.0/userinfo.c
+--- sarg-2.4.0.orig/userinfo.c 2019-12-24 12:04:00.000000000 +0100
++++ sarg-2.4.0/userinfo.c 2021-04-24 14:11:31.965734470 +0200
+@@ -78,7 +78,7 @@
+ int skip;
+ int flen;
+ int count, clen;
+- char cstr[9];
++ char cstr[11];
+ char filename[MAX_USER_FNAME_LEN];
+
+ if (!UserStrings) {
+++ /dev/null
-Submitted By: Tushar Teredesai <tushar@linuxfromscratch.org>
-Date: 2003-10-04
-Initial Package Version: 7.6
-Origin: http://archives.linuxfromscratch.org/mail-archives/blfs-dev/2003-January/001960.html
-Description: The patch was created from the tcp_wrappers modified package by Mark Heerdink.
-This patch provides the following improvements:
- * Install libwrap.so along with libwrap.a.
- * Create an install target for tcp_wrappers.
- * Compilation and security fixes.
- * Documentation fixes.
-diff -Naur tcp_wrappers_7.6/Makefile tcp_wrappers_7.6.gimli/Makefile
---- tcp_wrappers_7.6/Makefile 1997-03-21 12:27:21.000000000 -0600
-+++ tcp_wrappers_7.6.gimli/Makefile 2002-07-15 16:07:21.000000000 -0500
-@@ -1,5 +1,10 @@
-+GLIBC=$(shell grep -s -c __GLIBC__ /usr/include/features.h)
-+
- # @(#) Makefile 1.23 97/03/21 19:27:20
-
-+# unset the HOSTNAME environment variable
-+HOSTNAME =
-+
- what:
- @echo
- @echo "Usage: edit the REAL_DAEMON_DIR definition in the Makefile then:"
-@@ -19,7 +24,7 @@
- @echo " generic (most bsd-ish systems with sys5 compatibility)"
- @echo " 386bsd aix alpha apollo bsdos convex-ultranet dell-gcc dgux dgux543"
- @echo " dynix epix esix freebsd hpux irix4 irix5 irix6 isc iunix"
-- @echo " linux machten mips(untested) ncrsvr4 netbsd next osf power_unix_211"
-+ @echo " linux gnu machten mips(untested) ncrsvr4 netbsd next osf power_unix_211"
- @echo " ptx-2.x ptx-generic pyramid sco sco-nis sco-od2 sco-os5 sinix sunos4"
- @echo " sunos40 sunos5 sysv4 tandem ultrix unicos7 unicos8 unixware1 unixware2"
- @echo " uts215 uxp"
-@@ -43,8 +48,8 @@
- # Ultrix 4.x SunOS 4.x ConvexOS 10.x Dynix/ptx
- #REAL_DAEMON_DIR=/usr/etc
- #
--# SysV.4 Solaris 2.x OSF AIX
--#REAL_DAEMON_DIR=/usr/sbin
-+# SysV.4 Solaris 2.x OSF AIX Linux
-+REAL_DAEMON_DIR=/usr/sbin
- #
- # BSD 4.4
- #REAL_DAEMON_DIR=/usr/libexec
-@@ -141,10 +146,21 @@
- LIBS= RANLIB=ranlib ARFLAGS=rv AUX_OBJ= NETGROUP= TLI= \
- EXTRA_CFLAGS=-DSYS_ERRLIST_DEFINED VSYSLOG= all
-
-+ifneq ($(GLIBC),0)
-+MYLIB=-lnsl
-+endif
-+
- linux:
- @make REAL_DAEMON_DIR=$(REAL_DAEMON_DIR) STYLE=$(STYLE) \
-- LIBS= RANLIB=ranlib ARFLAGS=rv AUX_OBJ=setenv.o \
-- NETGROUP= TLI= EXTRA_CFLAGS="-DBROKEN_SO_LINGER" all
-+ LIBS=$(MYLIB) RANLIB=ranlib ARFLAGS=rv AUX_OBJ=weak_symbols.o \
-+ NETGROUP=-DNETGROUP TLI= VSYSLOG= BUGS= all \
-+ EXTRA_CFLAGS="-DSYS_ERRLIST_DEFINED -DHAVE_WEAKSYMS -D_REENTRANT"
-+
-+gnu:
-+ @make REAL_DAEMON_DIR=$(REAL_DAEMON_DIR) STYLE=$(STYLE) \
-+ LIBS=$(MYLIB) RANLIB=ranlib ARFLAGS=rv AUX_OBJ=weak_symbols.o \
-+ NETGROUP=-DNETGROUP TLI= VSYSLOG= BUGS= all \
-+ EXTRA_CFLAGS="-DHAVE_STRERROR -DHAVE_WEAKSYMS -D_REENTRANT"
-
- # This is good for many SYSV+BSD hybrids with NIS, probably also for HP-UX 7.x.
- hpux hpux8 hpux9 hpux10:
-@@ -391,7 +407,7 @@
- # the ones provided with this source distribution. The environ.c module
- # implements setenv(), getenv(), and putenv().
-
--AUX_OBJ= setenv.o
-+#AUX_OBJ= setenv.o
- #AUX_OBJ= environ.o
- #AUX_OBJ= environ.o strcasecmp.o
-
-@@ -454,7 +470,8 @@
- # host name aliases. Compile with -DSOLARIS_24_GETHOSTBYNAME_BUG to work
- # around this. The workaround does no harm on other Solaris versions.
-
--BUGS = -DGETPEERNAME_BUG -DBROKEN_FGETS -DLIBC_CALLS_STRTOK
-+BUGS =
-+#BUGS = -DGETPEERNAME_BUG -DBROKEN_FGETS -DLIBC_CALLS_STRTOK
- #BUGS = -DGETPEERNAME_BUG -DBROKEN_FGETS -DINET_ADDR_BUG
- #BUGS = -DGETPEERNAME_BUG -DBROKEN_FGETS -DSOLARIS_24_GETHOSTBYNAME_BUG
-
-@@ -464,7 +481,7 @@
- # If your system supports NIS or YP-style netgroups, enable the following
- # macro definition. Netgroups are used only for host access control.
- #
--#NETGROUP= -DNETGROUP
-+NETGROUP= -DNETGROUP
-
- ###############################################################
- # System dependencies: whether or not your system has vsyslog()
-@@ -491,7 +508,7 @@
- # Uncomment the next definition to turn on the language extensions
- # (examples: allow, deny, banners, twist and spawn).
- #
--#STYLE = -DPROCESS_OPTIONS # Enable language extensions.
-+STYLE = -DPROCESS_OPTIONS # Enable language extensions.
-
- ################################################################
- # Optional: Changing the default disposition of logfile records
-@@ -514,7 +531,7 @@
- #
- # The LOG_XXX names below are taken from the /usr/include/syslog.h file.
-
--FACILITY= LOG_MAIL # LOG_MAIL is what most sendmail daemons use
-+FACILITY= LOG_DAEMON # LOG_MAIL is what most sendmail daemons use
-
- # The syslog priority at which successful connections are logged.
-
-@@ -610,7 +627,7 @@
- # Paranoid mode implies hostname lookup. In order to disable hostname
- # lookups altogether, see the next section.
-
--PARANOID= -DPARANOID
-+#PARANOID= -DPARANOID
-
- ########################################
- # Optional: turning off hostname lookups
-@@ -623,7 +640,7 @@
- # In order to perform selective hostname lookups, disable paranoid
- # mode (see previous section) and comment out the following definition.
-
--HOSTNAME= -DALWAYS_HOSTNAME
-+#HOSTNAME= -DALWAYS_HOSTNAME
-
- #############################################
- # Optional: Turning on host ADDRESS checking
-@@ -649,28 +666,46 @@
- # source-routed traffic in the kernel. Examples: 4.4BSD derivatives,
- # Solaris 2.x, and Linux. See your system documentation for details.
- #
--# KILL_OPT= -DKILL_IP_OPTIONS
-+KILL_OPT= -DKILL_IP_OPTIONS
-
- ## End configuration options
- ############################
-
- # Protection against weird shells or weird make programs.
-
-+CC = gcc
- SHELL = /bin/sh
--.c.o:; $(CC) $(CFLAGS) -c $*.c
-+.c.o:; $(CC) $(CFLAGS) -o $*.o -c $*.c
-+
-+SOMAJOR = 0
-+SOMINOR = 7.6
-+
-+LIB = libwrap.a
-+SHLIB = shared/libwrap.so.$(SOMAJOR).$(SOMINOR)
-+SHLIBSOMAJ= shared/libwrap.so.$(SOMAJOR)
-+SHLIBSO = shared/libwrap.so
-+SHLIBFLAGS = -Lshared -lwrap
-
--CFLAGS = -O -DFACILITY=$(FACILITY) $(ACCESS) $(PARANOID) $(NETGROUP) \
-+shared/%.o: %.c
-+ $(CC) $(CFLAGS) $(SHCFLAGS) -c $< -o $@
-+
-+CFLAGS = -O2 -DFACILITY=$(FACILITY) $(ACCESS) $(PARANOID) $(NETGROUP) \
- $(BUGS) $(SYSTYPE) $(AUTH) $(UMASK) \
- -DREAL_DAEMON_DIR=\"$(REAL_DAEMON_DIR)\" $(STYLE) $(KILL_OPT) \
- -DSEVERITY=$(SEVERITY) -DRFC931_TIMEOUT=$(RFC931_TIMEOUT) \
- $(UCHAR) $(TABLES) $(STRINGS) $(TLI) $(EXTRA_CFLAGS) $(DOT) \
- $(VSYSLOG) $(HOSTNAME)
-
-+SHLINKFLAGS = -shared -Xlinker -soname -Xlinker libwrap.so.$(SOMAJOR) -lc $(LIBS)
-+SHCFLAGS = -fPIC -shared -D_REENTRANT
-+
- LIB_OBJ= hosts_access.o options.o shell_cmd.o rfc931.o eval.o \
- hosts_ctl.o refuse.o percent_x.o clean_exit.o $(AUX_OBJ) \
- $(FROM_OBJ) fix_options.o socket.o tli.o workarounds.o \
- update.o misc.o diag.o percent_m.o myvsyslog.o
-
-+SHLIB_OBJ= $(addprefix shared/, $(LIB_OBJ));
-+
- FROM_OBJ= fromhost.o
-
- KIT = README miscd.c tcpd.c fromhost.c hosts_access.c shell_cmd.c \
-@@ -684,46 +719,80 @@
- refuse.c tcpdchk.8 setenv.c inetcf.c inetcf.h scaffold.c \
- scaffold.h tcpdmatch.8 README.NIS
-
--LIB = libwrap.a
--
--all other: config-check tcpd tcpdmatch try-from safe_finger tcpdchk
-+all other: config-check tcpd tcpdmatch try-from safe_finger tcpdchk $(LIB)
-
- # Invalidate all object files when the compiler options (CFLAGS) have changed.
-
- config-check:
- @set +e; test -n "$(REAL_DAEMON_DIR)" || { make; exit 1; }
-- @set +e; echo $(CFLAGS) >/tmp/cflags.$$$$ ; \
-- if cmp cflags /tmp/cflags.$$$$ ; \
-- then rm /tmp/cflags.$$$$ ; \
-- else mv /tmp/cflags.$$$$ cflags ; \
-+ @set +e; echo $(CFLAGS) >cflags.new ; \
-+ if cmp cflags cflags.new ; \
-+ then rm cflags.new ; \
-+ else mv cflags.new cflags ; \
- fi >/dev/null 2>/dev/null
-+ @if [ ! -d shared ]; then mkdir shared; fi
-
- $(LIB): $(LIB_OBJ)
- rm -f $(LIB)
- $(AR) $(ARFLAGS) $(LIB) $(LIB_OBJ)
- -$(RANLIB) $(LIB)
-
--tcpd: tcpd.o $(LIB)
-- $(CC) $(CFLAGS) -o $@ tcpd.o $(LIB) $(LIBS)
-+$(SHLIB): $(SHLIB_OBJ)
-+ rm -f $(SHLIB)
-+ $(CC) -o $(SHLIB) $(SHLINKFLAGS) $(SHLIB_OBJ)
-+ ln -s $(notdir $(SHLIB)) $(SHLIBSOMAJ)
-+ ln -s $(notdir $(SHLIBSOMAJ)) $(SHLIBSO)
-+
-+tcpd: tcpd.o $(SHLIB)
-+ $(CC) $(CFLAGS) -o $@ tcpd.o $(SHLIBFLAGS)
-
--miscd: miscd.o $(LIB)
-- $(CC) $(CFLAGS) -o $@ miscd.o $(LIB) $(LIBS)
-+miscd: miscd.o $(SHLIB)
-+ $(CC) $(CFLAGS) -o $@ miscd.o $(SHLIBFLAGS)
-
--safe_finger: safe_finger.o $(LIB)
-- $(CC) $(CFLAGS) -o $@ safe_finger.o $(LIB) $(LIBS)
-+safe_finger: safe_finger.o $(SHLIB)
-+ $(CC) $(CFLAGS) -o $@ safe_finger.o $(SHLIBFLAGS)
-
- TCPDMATCH_OBJ = tcpdmatch.o fakelog.o inetcf.o scaffold.o
-
--tcpdmatch: $(TCPDMATCH_OBJ) $(LIB)
-- $(CC) $(CFLAGS) -o $@ $(TCPDMATCH_OBJ) $(LIB) $(LIBS)
-+tcpdmatch: $(TCPDMATCH_OBJ) $(SHLIB)
-+ $(CC) $(CFLAGS) -o $@ $(TCPDMATCH_OBJ) $(SHLIBFLAGS)
-
--try-from: try-from.o fakelog.o $(LIB)
-- $(CC) $(CFLAGS) -o $@ try-from.o fakelog.o $(LIB) $(LIBS)
-+try-from: try-from.o fakelog.o $(SHLIB)
-+ $(CC) $(CFLAGS) -o $@ try-from.o fakelog.o $(SHLIBFLAGS)
-
- TCPDCHK_OBJ = tcpdchk.o fakelog.o inetcf.o scaffold.o
-
--tcpdchk: $(TCPDCHK_OBJ) $(LIB)
-- $(CC) $(CFLAGS) -o $@ $(TCPDCHK_OBJ) $(LIB) $(LIBS)
-+tcpdchk: $(TCPDCHK_OBJ) $(SHLIB)
-+ $(CC) $(CFLAGS) -o $@ $(TCPDCHK_OBJ) $(SHLIBFLAGS)
-+
-+install: install-lib install-bin install-dev
-+
-+install-lib:
-+ install -o root -g root -m 0755 $(SHLIB) ${DESTDIR}/usr/lib/
-+ ln -sf $(notdir $(SHLIB)) ${DESTDIR}/usr/lib/$(notdir $(SHLIBSOMAJ))
-+ ln -sf $(notdir $(SHLIBSOMAJ)) ${DESTDIR}/usr/lib/$(notdir $(SHLIBSO))
-+
-+install-bin:
-+ install -o root -g root -m 0755 tcpd ${DESTDIR}/usr/sbin/
-+ install -o root -g root -m 0755 tcpdchk ${DESTDIR}/usr/sbin/
-+ install -o root -g root -m 0755 tcpdmatch ${DESTDIR}/usr/sbin/
-+ install -o root -g root -m 0755 try-from ${DESTDIR}/usr/sbin/
-+ install -o root -g root -m 0755 safe_finger ${DESTDIR}/usr/sbin/
-+ install -o root -g root -m 0644 tcpd.8 ${DESTDIR}/usr/share/man/man8/
-+ install -o root -g root -m 0644 tcpdchk.8 ${DESTDIR}/usr/share/man/man8/
-+ install -o root -g root -m 0644 try-from.8 ${DESTDIR}/usr/share/man/man8/
-+ install -o root -g root -m 0644 tcpdmatch.8 ${DESTDIR}/usr/share/man/man8/
-+ install -o root -g root -m 0644 safe_finger.8 ${DESTDIR}/usr/share/man/man8/
-+ install -o root -g root -m 0644 hosts_access.5 ${DESTDIR}/usr/share/man/man5/
-+ install -o root -g root -m 0644 hosts_options.5 ${DESTDIR}/usr/share/man/man5/
-+
-+install-dev:
-+ install -o root -g root -m 0644 hosts_access.3 ${DESTDIR}/usr/share/man/man3/
-+ install -o root -g root -m 0644 tcpd.h ${DESTDIR}/usr/include/
-+ install -o root -g root -m 0644 $(LIB) ${DESTDIR}/usr/lib/
-+ ln -sf hosts_access.3 ${DESTDIR}/usr/share/man/man3/hosts_ctl.3
-+ ln -sf hosts_access.3 ${DESTDIR}/usr/share/man/man3/request_init.3
-+ ln -sf hosts_access.3 ${DESTDIR}/usr/share/man/man3/request_set.3
-
- shar: $(KIT)
- @shar $(KIT)
-@@ -739,7 +808,8 @@
-
- clean:
- rm -f tcpd miscd safe_finger tcpdmatch tcpdchk try-from *.[oa] core \
-- cflags
-+ cflags libwrap*.so*
-+ rm -rf shared
-
- tidy: clean
- chmod -R a+r .
-@@ -885,5 +955,6 @@
- update.o: mystdarg.h
- update.o: tcpd.h
- vfprintf.o: cflags
-+weak_symbols.o: tcpd.h
- workarounds.o: cflags
- workarounds.o: tcpd.h
-diff -Naur tcp_wrappers_7.6/fix_options.c tcp_wrappers_7.6.gimli/fix_options.c
---- tcp_wrappers_7.6/fix_options.c 1997-04-07 19:29:19.000000000 -0500
-+++ tcp_wrappers_7.6.gimli/fix_options.c 2002-01-07 08:50:19.000000000 -0600
-@@ -35,7 +35,12 @@
- #ifdef IP_OPTIONS
- unsigned char optbuf[BUFFER_SIZE / 3], *cp;
- char lbuf[BUFFER_SIZE], *lp;
-+#if !defined(__GLIBC__)
- int optsize = sizeof(optbuf), ipproto;
-+#else /* __GLIBC__ */
-+ size_t optsize = sizeof(optbuf);
-+ int ipproto;
-+#endif /* __GLIBC__ */
- struct protoent *ip;
- int fd = request->fd;
- unsigned int opt;
-diff -Naur tcp_wrappers_7.6/hosts_access.3 tcp_wrappers_7.6.gimli/hosts_access.3
---- tcp_wrappers_7.6/hosts_access.3 1996-02-11 10:01:27.000000000 -0600
-+++ tcp_wrappers_7.6.gimli/hosts_access.3 2002-01-07 08:50:19.000000000 -0600
-@@ -3,7 +3,7 @@
- hosts_access, hosts_ctl, request_init, request_set \- access control library
- .SH SYNOPSIS
- .nf
--#include "tcpd.h"
-+#include <tcpd.h>
-
- extern int allow_severity;
- extern int deny_severity;
-diff -Naur tcp_wrappers_7.6/hosts_access.5 tcp_wrappers_7.6.gimli/hosts_access.5
---- tcp_wrappers_7.6/hosts_access.5 1995-01-30 12:51:47.000000000 -0600
-+++ tcp_wrappers_7.6.gimli/hosts_access.5 2002-01-07 08:50:19.000000000 -0600
-@@ -8,9 +8,9 @@
- impatient reader is encouraged to skip to the EXAMPLES section for a
- quick introduction.
- .PP
--An extended version of the access control language is described in the
--\fIhosts_options\fR(5) document. The extensions are turned on at
--program build time by building with -DPROCESS_OPTIONS.
-+The extended version of the access control language is described in the
-+\fIhosts_options\fR(5) document. \fBNote that this language supersedes
-+the meaning of \fIshell_command\fB as documented below.\fR
- .PP
- In the following text, \fIdaemon\fR is the the process name of a
- network daemon process, and \fIclient\fR is the name and/or address of
-@@ -40,7 +40,7 @@
- character. This permits you to break up long lines so that they are
- easier to edit.
- .IP \(bu
--Blank lines or lines that begin with a `#\' character are ignored.
-+Blank lines or lines that begin with a `#' character are ignored.
- This permits you to insert comments and whitespace so that the tables
- are easier to read.
- .IP \(bu
-@@ -69,26 +69,33 @@
- .SH PATTERNS
- The access control language implements the following patterns:
- .IP \(bu
--A string that begins with a `.\' character. A host name is matched if
-+A string that begins with a `.' character. A host name is matched if
- the last components of its name match the specified pattern. For
--example, the pattern `.tue.nl\' matches the host name
--`wzv.win.tue.nl\'.
-+example, the pattern `.tue.nl' matches the host name
-+`wzv.win.tue.nl'.
- .IP \(bu
--A string that ends with a `.\' character. A host address is matched if
-+A string that ends with a `.' character. A host address is matched if
- its first numeric fields match the given string. For example, the
--pattern `131.155.\' matches the address of (almost) every host on the
-+pattern `131.155.' matches the address of (almost) every host on the
- Eind\%hoven University network (131.155.x.x).
- .IP \(bu
--A string that begins with an `@\' character is treated as an NIS
-+A string that begins with an `@' character is treated as an NIS
- (formerly YP) netgroup name. A host name is matched if it is a host
- member of the specified netgroup. Netgroup matches are not supported
- for daemon process names or for client user names.
- .IP \(bu
--An expression of the form `n.n.n.n/m.m.m.m\' is interpreted as a
--`net/mask\' pair. A host address is matched if `net\' is equal to the
--bitwise AND of the address and the `mask\'. For example, the net/mask
--pattern `131.155.72.0/255.255.254.0\' matches every address in the
--range `131.155.72.0\' through `131.155.73.255\'.
-+An expression of the form `n.n.n.n/m.m.m.m' is interpreted as a
-+`net/mask' pair. A host address is matched if `net' is equal to the
-+bitwise AND of the address and the `mask'. For example, the net/mask
-+pattern `131.155.72.0/255.255.254.0' matches every address in the
-+range `131.155.72.0' through `131.155.73.255'.
-+.IP \(bu
-+A string that begins with a `/' character is treated as a file
-+name. A host name or address is matched if it matches any host name
-+or address pattern listed in the named file. The file format is
-+zero or more lines with zero or more host name or address patterns
-+separated by whitespace. A file name pattern can be used anywhere
-+a host name or address pattern can be used.
- .SH WILDCARDS
- The access control language supports explicit wildcards:
- .IP ALL
-@@ -115,19 +122,19 @@
- .ne 6
- .SH OPERATORS
- .IP EXCEPT
--Intended use is of the form: `list_1 EXCEPT list_2\'; this construct
-+Intended use is of the form: `list_1 EXCEPT list_2'; this construct
- matches anything that matches \fIlist_1\fR unless it matches
- \fIlist_2\fR. The EXCEPT operator can be used in daemon_lists and in
- client_lists. The EXCEPT operator can be nested: if the control
--language would permit the use of parentheses, `a EXCEPT b EXCEPT c\'
--would parse as `(a EXCEPT (b EXCEPT c))\'.
-+language would permit the use of parentheses, `a EXCEPT b EXCEPT c'
-+would parse as `(a EXCEPT (b EXCEPT c))'.
- .br
- .ne 6
- .SH SHELL COMMANDS
- If the first-matched access control rule contains a shell command, that
- command is subjected to %<letter> substitutions (see next section).
- The result is executed by a \fI/bin/sh\fR child process with standard
--input, output and error connected to \fI/dev/null\fR. Specify an `&\'
-+input, output and error connected to \fI/dev/null\fR. Specify an `&'
- at the end of the command if you do not want to wait until it has
- completed.
- .PP
-@@ -159,7 +166,7 @@
- .IP %u
- The client user name (or "unknown").
- .IP %%
--Expands to a single `%\' character.
-+Expands to a single `%' character.
- .PP
- Characters in % expansions that may confuse the shell are replaced by
- underscores.
-@@ -243,9 +250,9 @@
- less trustworthy. It is possible for an intruder to spoof both the
- client connection and the IDENT lookup, although doing so is much
- harder than spoofing just a client connection. It may also be that
--the client\'s IDENT server is lying.
-+the client's IDENT server is lying.
- .PP
--Note: IDENT lookups don\'t work with UDP services.
-+Note: IDENT lookups don't work with UDP services.
- .SH EXAMPLES
- The language is flexible enough that different types of access control
- policy can be expressed with a minimum of fuss. Although the language
-@@ -285,7 +292,7 @@
- .br
- ALL: .foobar.edu EXCEPT terminalserver.foobar.edu
- .PP
--The first rule permits access from hosts in the local domain (no `.\'
-+The first rule permits access from hosts in the local domain (no `.'
- in the host name) and from members of the \fIsome_netgroup\fP
- netgroup. The second rule permits access from all hosts in the
- \fIfoobar.edu\fP domain (notice the leading dot), with the exception of
-@@ -322,8 +329,8 @@
- /etc/hosts.deny:
- .in +3
- .nf
--in.tftpd: ALL: (/some/where/safe_finger -l @%h | \\
-- /usr/ucb/mail -s %d-%h root) &
-+in.tftpd: ALL: (/usr/sbin/safe_finger -l @%h | \\
-+ /usr/bin/mail -s %d-%h root) &
- .fi
- .PP
- The safe_finger command comes with the tcpd wrapper and should be
-@@ -349,7 +356,7 @@
- capacity of an internal buffer; when an access control rule is not
- terminated by a newline character; when the result of %<letter>
- expansion would overflow an internal buffer; when a system call fails
--that shouldn\'t. All problems are reported via the syslog daemon.
-+that shouldn't. All problems are reported via the syslog daemon.
- .SH FILES
- .na
- .nf
-diff -Naur tcp_wrappers_7.6/hosts_access.c tcp_wrappers_7.6.gimli/hosts_access.c
---- tcp_wrappers_7.6/hosts_access.c 1997-02-11 19:13:23.000000000 -0600
-+++ tcp_wrappers_7.6.gimli/hosts_access.c 2002-01-07 08:50:19.000000000 -0600
-@@ -240,6 +240,26 @@
- }
- }
-
-+/* hostfile_match - look up host patterns from file */
-+
-+static int hostfile_match(path, host)
-+char *path;
-+struct hosts_info *host;
-+{
-+ char tok[BUFSIZ];
-+ int match = NO;
-+ FILE *fp;
-+
-+ if ((fp = fopen(path, "r")) != 0) {
-+ while (fscanf(fp, "%s", tok) == 1 && !(match = host_match(tok, host)))
-+ /* void */ ;
-+ fclose(fp);
-+ } else if (errno != ENOENT) {
-+ tcpd_warn("open %s: %m", path);
-+ }
-+ return (match);
-+}
-+
- /* host_match - match host name and/or address against pattern */
-
- static int host_match(tok, host)
-@@ -267,6 +287,8 @@
- tcpd_warn("netgroup support is disabled"); /* not tcpd_jump() */
- return (NO);
- #endif
-+ } else if (tok[0] == '/') { /* /file hack */
-+ return (hostfile_match(tok, host));
- } else if (STR_EQ(tok, "KNOWN")) { /* check address and name */
- char *name = eval_hostname(host);
- return (STR_NE(eval_hostaddr(host), unknown) && HOSTNAME_KNOWN(name));
-diff -Naur tcp_wrappers_7.6/hosts_options.5 tcp_wrappers_7.6.gimli/hosts_options.5
---- tcp_wrappers_7.6/hosts_options.5 1994-12-28 10:42:29.000000000 -0600
-+++ tcp_wrappers_7.6.gimli/hosts_options.5 2002-01-07 08:50:19.000000000 -0600
-@@ -58,12 +58,12 @@
- Execute, in a child process, the specified shell command, after
- performing the %<letter> expansions described in the hosts_access(5)
- manual page. The command is executed with stdin, stdout and stderr
--connected to the null device, so that it won\'t mess up the
-+connected to the null device, so that it won't mess up the
- conversation with the client host. Example:
- .sp
- .nf
- .ti +3
--spawn (/some/where/safe_finger -l @%h | /usr/ucb/mail root) &
-+spawn (/usr/sbin/safe_finger -l @%h | /usr/bin/mail root) &
- .fi
- .sp
- executes, in a background child process, the shell command "safe_finger
-diff -Naur tcp_wrappers_7.6/options.c tcp_wrappers_7.6.gimli/options.c
---- tcp_wrappers_7.6/options.c 1996-02-11 10:01:32.000000000 -0600
-+++ tcp_wrappers_7.6.gimli/options.c 2002-01-07 08:50:19.000000000 -0600
-@@ -473,6 +473,9 @@
- #ifdef LOG_CRON
- "cron", LOG_CRON,
- #endif
-+#ifdef LOG_FTP
-+ "ftp", LOG_FTP,
-+#endif
- #ifdef LOG_LOCAL0
- "local0", LOG_LOCAL0,
- #endif
-diff -Naur tcp_wrappers_7.6/percent_m.c tcp_wrappers_7.6.gimli/percent_m.c
---- tcp_wrappers_7.6/percent_m.c 1994-12-28 10:42:37.000000000 -0600
-+++ tcp_wrappers_7.6.gimli/percent_m.c 2002-01-07 08:50:19.000000000 -0600
-@@ -13,7 +13,7 @@
- #include <string.h>
-
- extern int errno;
--#ifndef SYS_ERRLIST_DEFINED
-+#if !defined(SYS_ERRLIST_DEFINED) && !defined(HAVE_STRERROR)
- extern char *sys_errlist[];
- extern int sys_nerr;
- #endif
-@@ -29,11 +29,15 @@
-
- while (*bp = *cp)
- if (*cp == '%' && cp[1] == 'm') {
-+#ifdef HAVE_STRERROR
-+ strcpy(bp, strerror(errno));
-+#else
- if (errno < sys_nerr && errno > 0) {
- strcpy(bp, sys_errlist[errno]);
- } else {
- sprintf(bp, "Unknown error %d", errno);
- }
-+#endif
- bp += strlen(bp);
- cp += 2;
- } else {
-diff -Naur tcp_wrappers_7.6/rfc931.c tcp_wrappers_7.6.gimli/rfc931.c
---- tcp_wrappers_7.6/rfc931.c 1995-01-02 09:11:34.000000000 -0600
-+++ tcp_wrappers_7.6.gimli/rfc931.c 2002-01-07 08:50:19.000000000 -0600
-@@ -33,7 +33,7 @@
-
- int rfc931_timeout = RFC931_TIMEOUT;/* Global so it can be changed */
-
--static jmp_buf timebuf;
-+static sigjmp_buf timebuf;
-
- /* fsocket - open stdio stream on top of socket */
-
-@@ -62,7 +62,7 @@
- static void timeout(sig)
- int sig;
- {
-- longjmp(timebuf, sig);
-+ siglongjmp(timebuf, sig);
- }
-
- /* rfc931 - return remote user name, given socket structures */
-@@ -99,7 +99,7 @@
- * Set up a timer so we won't get stuck while waiting for the server.
- */
-
-- if (setjmp(timebuf) == 0) {
-+ if (sigsetjmp(timebuf,1) == 0) {
- signal(SIGALRM, timeout);
- alarm(rfc931_timeout);
-
-diff -Naur tcp_wrappers_7.6/safe_finger.8 tcp_wrappers_7.6.gimli/safe_finger.8
---- tcp_wrappers_7.6/safe_finger.8 1969-12-31 18:00:00.000000000 -0600
-+++ tcp_wrappers_7.6.gimli/safe_finger.8 2002-01-07 08:50:19.000000000 -0600
-@@ -0,0 +1,34 @@
-+.TH SAFE_FINGER 8 "21th June 1997" Linux "Linux Programmer's Manual"
-+.SH NAME
-+safe_finger \- finger client wrapper that protects against nasty stuff
-+from finger servers
-+.SH SYNOPSIS
-+.B safe_finger [finger_options]
-+.SH DESCRIPTION
-+The
-+.B safe_finger
-+command protects against nasty stuff from finger servers. Use this
-+program for automatic reverse finger probes from the
-+.B tcp_wrapper
-+.B (tcpd)
-+, not the raw finger command. The
-+.B safe_finger
-+command makes sure that the finger client is not run with root
-+privileges. It also runs the finger client with a defined PATH
-+environment.
-+.B safe_finger
-+will also protect you from problems caused by the output of some
-+finger servers. The problem: some programs may react to stuff in
-+the first column. Other programs may get upset by thrash anywhere
-+on a line. File systems may fill up as the finger server keeps
-+sending data. Text editors may bomb out on extremely long lines.
-+The finger server may take forever because it is somehow wedged.
-+.B safe_finger
-+takes care of all this badness.
-+.SH SEE ALSO
-+.BR hosts_access (5),
-+.BR hosts_options (5),
-+.BR tcpd (8)
-+.SH AUTHOR
-+Wietse Venema, Eindhoven University of Technology, The Netherlands.
-+
-diff -Naur tcp_wrappers_7.6/safe_finger.c tcp_wrappers_7.6.gimli/safe_finger.c
---- tcp_wrappers_7.6/safe_finger.c 1994-12-28 10:42:42.000000000 -0600
-+++ tcp_wrappers_7.6.gimli/safe_finger.c 2002-01-07 08:50:19.000000000 -0600
-@@ -26,21 +26,24 @@
- #include <stdio.h>
- #include <ctype.h>
- #include <pwd.h>
-+#include <syslog.h>
-
- extern void exit();
-
- /* Local stuff */
-
--char path[] = "PATH=/bin:/usr/bin:/usr/ucb:/usr/bsd:/etc:/usr/etc:/usr/sbin";
-+char path[] = "PATH=/bin:/usr/bin:/sbin:/usr/sbin";
-
- #define TIME_LIMIT 60 /* Do not keep listinging forever */
- #define INPUT_LENGTH 100000 /* Do not keep listinging forever */
- #define LINE_LENGTH 128 /* Editors can choke on long lines */
- #define FINGER_PROGRAM "finger" /* Most, if not all, UNIX systems */
- #define UNPRIV_NAME "nobody" /* Preferred privilege level */
--#define UNPRIV_UGID 32767 /* Default uid and gid */
-+#define UNPRIV_UGID 65534 /* Default uid and gid */
-
- int finger_pid;
-+int allow_severity = SEVERITY;
-+int deny_severity = LOG_WARNING;
-
- void cleanup(sig)
- int sig;
-diff -Naur tcp_wrappers_7.6/scaffold.c tcp_wrappers_7.6.gimli/scaffold.c
---- tcp_wrappers_7.6/scaffold.c 1997-03-21 12:27:24.000000000 -0600
-+++ tcp_wrappers_7.6.gimli/scaffold.c 2002-01-07 08:50:19.000000000 -0600
-@@ -180,10 +180,12 @@
-
- /* ARGSUSED */
-
--void rfc931(request)
--struct request_info *request;
-+void rfc931(rmt_sin, our_sin, dest)
-+struct sockaddr_in *rmt_sin;
-+struct sockaddr_in *our_sin;
-+char *dest;
- {
-- strcpy(request->user, unknown);
-+ strcpy(dest, unknown);
- }
-
- /* check_path - examine accessibility */
-diff -Naur tcp_wrappers_7.6/socket.c tcp_wrappers_7.6.gimli/socket.c
---- tcp_wrappers_7.6/socket.c 1997-03-21 12:27:25.000000000 -0600
-+++ tcp_wrappers_7.6.gimli/socket.c 2002-01-07 08:50:19.000000000 -0600
-@@ -76,7 +76,11 @@
- {
- static struct sockaddr_in client;
- static struct sockaddr_in server;
-+#if !defined (__GLIBC__)
- int len;
-+#else /* __GLIBC__ */
-+ size_t len;
-+#endif /* __GLIBC__ */
- char buf[BUFSIZ];
- int fd = request->fd;
-
-@@ -224,7 +228,11 @@
- {
- char buf[BUFSIZ];
- struct sockaddr_in sin;
-+#if !defined(__GLIBC__)
- int size = sizeof(sin);
-+#else /* __GLIBC__ */
-+ size_t size = sizeof(sin);
-+#endif /* __GLIBC__ */
-
- /*
- * Eat up the not-yet received datagram. Some systems insist on a
-diff -Naur tcp_wrappers_7.6/tcpd.8 tcp_wrappers_7.6.gimli/tcpd.8
---- tcp_wrappers_7.6/tcpd.8 1996-02-21 09:39:16.000000000 -0600
-+++ tcp_wrappers_7.6.gimli/tcpd.8 2002-01-07 08:50:19.000000000 -0600
-@@ -94,7 +94,7 @@
- .PP
- The example assumes that the network daemons live in /usr/etc. On some
- systems, network daemons live in /usr/sbin or in /usr/libexec, or have
--no `in.\' prefix to their name.
-+no `in.' prefix to their name.
- .SH EXAMPLE 2
- This example applies when \fItcpd\fR expects that the network daemons
- are left in their original place.
-@@ -110,26 +110,26 @@
- becomes:
- .sp
- .ti +5
--finger stream tcp nowait nobody /some/where/tcpd in.fingerd
-+finger stream tcp nowait nobody /usr/sbin/tcpd in.fingerd
- .sp
- .fi
- .PP
- The example assumes that the network daemons live in /usr/etc. On some
- systems, network daemons live in /usr/sbin or in /usr/libexec, the
--daemons have no `in.\' prefix to their name, or there is no userid
-+daemons have no `in.' prefix to their name, or there is no userid
- field in the inetd configuration file.
- .PP
- Similar changes will be needed for the other services that are to be
--covered by \fItcpd\fR. Send a `kill -HUP\' to the \fIinetd\fR(8)
-+covered by \fItcpd\fR. Send a `kill -HUP' to the \fIinetd\fR(8)
- process to make the changes effective. AIX users may also have to
--execute the `inetimp\' command.
-+execute the `inetimp' command.
- .SH EXAMPLE 3
- In the case of daemons that do not live in a common directory ("secret"
- or otherwise), edit the \fIinetd\fR configuration file so that it
- specifies an absolute path name for the process name field. For example:
- .nf
- .sp
-- ntalk dgram udp wait root /some/where/tcpd /usr/local/lib/ntalkd
-+ ntalk dgram udp wait root /usr/sbin/tcpd /usr/sbin/in.ntalkd
- .sp
- .fi
- .PP
-diff -Naur tcp_wrappers_7.6/tcpd.h tcp_wrappers_7.6.gimli/tcpd.h
---- tcp_wrappers_7.6/tcpd.h 1996-03-19 09:22:25.000000000 -0600
-+++ tcp_wrappers_7.6.gimli/tcpd.h 2002-01-07 08:50:19.000000000 -0600
-@@ -4,6 +4,25 @@
- * Author: Wietse Venema, Eindhoven University of Technology, The Netherlands.
- */
-
-+#ifndef _TCPWRAPPERS_TCPD_H
-+#define _TCPWRAPPERS_TCPD_H
-+
-+/* someone else may have defined this */
-+#undef __P
-+
-+/* use prototypes if we have an ANSI C compiler or are using C++ */
-+#if defined(__STDC__) || defined(__cplusplus)
-+#define __P(args) args
-+#else
-+#define __P(args) ()
-+#endif
-+
-+/* Need definitions of struct sockaddr_in and FILE. */
-+#include <netinet/in.h>
-+#include <stdio.h>
-+
-+__BEGIN_DECLS
-+
- /* Structure to describe one communications endpoint. */
-
- #define STRING_LENGTH 128 /* hosts, users, processes */
-@@ -25,10 +44,10 @@
- char pid[10]; /* access via eval_pid(request) */
- struct host_info client[1]; /* client endpoint info */
- struct host_info server[1]; /* server endpoint info */
-- void (*sink) (); /* datagram sink function or 0 */
-- void (*hostname) (); /* address to printable hostname */
-- void (*hostaddr) (); /* address to printable address */
-- void (*cleanup) (); /* cleanup function or 0 */
-+ void (*sink) __P((int)); /* datagram sink function or 0 */
-+ void (*hostname) __P((struct host_info *)); /* address to printable hostname */
-+ void (*hostaddr) __P((struct host_info *)); /* address to printable address */
-+ void (*cleanup) __P((struct request_info *)); /* cleanup function or 0 */
- struct netconfig *config; /* netdir handle */
- };
-
-@@ -61,25 +80,30 @@
- /* Global functions. */
-
- #if defined(TLI) || defined(PTX) || defined(TLI_SEQUENT)
--extern void fromhost(); /* get/validate client host info */
-+extern void fromhost __P((struct request_info *)); /* get/validate client host info */
- #else
- #define fromhost sock_host /* no TLI support needed */
- #endif
-
--extern int hosts_access(); /* access control */
--extern void shell_cmd(); /* execute shell command */
--extern char *percent_x(); /* do %<char> expansion */
--extern void rfc931(); /* client name from RFC 931 daemon */
--extern void clean_exit(); /* clean up and exit */
--extern void refuse(); /* clean up and exit */
--extern char *xgets(); /* fgets() on steroids */
--extern char *split_at(); /* strchr() and split */
--extern unsigned long dot_quad_addr(); /* restricted inet_addr() */
-+extern void shell_cmd __P((char *)); /* execute shell command */
-+extern char *percent_x __P((char *, int, char *, struct request_info *)); /* do %<char> expansion */
-+extern void rfc931 __P((struct sockaddr_in *, struct sockaddr_in *, char *)); /* client name from RFC 931 daemon */
-+extern void clean_exit __P((struct request_info *)); /* clean up and exit */
-+extern void refuse __P((struct request_info *)); /* clean up and exit */
-+extern char *xgets __P((char *, int, FILE *)); /* fgets() on steroids */
-+extern char *split_at __P((char *, int)); /* strchr() and split */
-+extern unsigned long dot_quad_addr __P((char *)); /* restricted inet_addr() */
-
- /* Global variables. */
-
-+#ifdef HAVE_WEAKSYMS
-+extern int allow_severity __attribute__ ((weak)); /* for connection logging */
-+extern int deny_severity __attribute__ ((weak)); /* for connection logging */
-+#else
- extern int allow_severity; /* for connection logging */
- extern int deny_severity; /* for connection logging */
-+#endif
-+
- extern char *hosts_allow_table; /* for verification mode redirection */
- extern char *hosts_deny_table; /* for verification mode redirection */
- extern int hosts_access_verbose; /* for verbose matching mode */
-@@ -92,9 +116,14 @@
- */
-
- #ifdef __STDC__
-+extern int hosts_access(struct request_info *request);
-+extern int hosts_ctl(char *daemon, char *client_name, char *client_addr,
-+ char *client_user);
- extern struct request_info *request_init(struct request_info *,...);
- extern struct request_info *request_set(struct request_info *,...);
- #else
-+extern int hosts_access();
-+extern int hosts_ctl();
- extern struct request_info *request_init(); /* initialize request */
- extern struct request_info *request_set(); /* update request structure */
- #endif
-@@ -117,27 +146,31 @@
- * host_info structures serve as caches for the lookup results.
- */
-
--extern char *eval_user(); /* client user */
--extern char *eval_hostname(); /* printable hostname */
--extern char *eval_hostaddr(); /* printable host address */
--extern char *eval_hostinfo(); /* host name or address */
--extern char *eval_client(); /* whatever is available */
--extern char *eval_server(); /* whatever is available */
-+extern char *eval_user __P((struct request_info *)); /* client user */
-+extern char *eval_hostname __P((struct host_info *)); /* printable hostname */
-+extern char *eval_hostaddr __P((struct host_info *)); /* printable host address */
-+extern char *eval_hostinfo __P((struct host_info *)); /* host name or address */
-+extern char *eval_client __P((struct request_info *)); /* whatever is available */
-+extern char *eval_server __P((struct request_info *)); /* whatever is available */
- #define eval_daemon(r) ((r)->daemon) /* daemon process name */
- #define eval_pid(r) ((r)->pid) /* process id */
-
- /* Socket-specific methods, including DNS hostname lookups. */
-
--extern void sock_host(); /* look up endpoint addresses */
--extern void sock_hostname(); /* translate address to hostname */
--extern void sock_hostaddr(); /* address to printable address */
-+/* look up endpoint addresses */
-+extern void sock_host __P((struct request_info *));
-+/* translate address to hostname */
-+extern void sock_hostname __P((struct host_info *));
-+/* address to printable address */
-+extern void sock_hostaddr __P((struct host_info *));
-+
- #define sock_methods(r) \
- { (r)->hostname = sock_hostname; (r)->hostaddr = sock_hostaddr; }
-
- /* The System V Transport-Level Interface (TLI) interface. */
-
- #if defined(TLI) || defined(PTX) || defined(TLI_SEQUENT)
--extern void tli_host(); /* look up endpoint addresses etc. */
-+extern void tli_host __P((struct request_info *)); /* look up endpoint addresses etc. */
- #endif
-
- /*
-@@ -178,7 +211,7 @@
- * behavior.
- */
-
--extern void process_options(); /* execute options */
-+extern void process_options __P((char *, struct request_info *)); /* execute options */
- extern int dry_run; /* verification flag */
-
- /* Bug workarounds. */
-@@ -217,3 +250,7 @@
- #define strtok my_strtok
- extern char *my_strtok();
- #endif
-+
-+__END_DECLS
-+
-+#endif /* tcpd.h */
-diff -Naur tcp_wrappers_7.6/tcpdchk.c tcp_wrappers_7.6.gimli/tcpdchk.c
---- tcp_wrappers_7.6/tcpdchk.c 1997-02-11 19:13:25.000000000 -0600
-+++ tcp_wrappers_7.6.gimli/tcpdchk.c 2002-01-07 08:50:19.000000000 -0600
-@@ -350,6 +350,8 @@
- {
- if (pat[0] == '@') {
- tcpd_warn("%s: daemon name begins with \"@\"", pat);
-+ } else if (pat[0] == '/') {
-+ tcpd_warn("%s: daemon name begins with \"/\"", pat);
- } else if (pat[0] == '.') {
- tcpd_warn("%s: daemon name begins with dot", pat);
- } else if (pat[strlen(pat) - 1] == '.') {
-@@ -382,6 +384,8 @@
- {
- if (pat[0] == '@') { /* @netgroup */
- tcpd_warn("%s: user name begins with \"@\"", pat);
-+ } else if (pat[0] == '/') {
-+ tcpd_warn("%s: user name begins with \"/\"", pat);
- } else if (pat[0] == '.') {
- tcpd_warn("%s: user name begins with dot", pat);
- } else if (pat[strlen(pat) - 1] == '.') {
-@@ -402,8 +406,13 @@
- static int check_host(pat)
- char *pat;
- {
-+ char buf[BUFSIZ];
- char *mask;
- int addr_count = 1;
-+ FILE *fp;
-+ struct tcpd_context saved_context;
-+ char *cp;
-+ char *wsp = " \t\r\n";
-
- if (pat[0] == '@') { /* @netgroup */
- #ifdef NO_NETGRENT
-@@ -422,6 +431,21 @@
- tcpd_warn("netgroup support disabled");
- #endif
- #endif
-+ } else if (pat[0] == '/') { /* /path/name */
-+ if ((fp = fopen(pat, "r")) != 0) {
-+ saved_context = tcpd_context;
-+ tcpd_context.file = pat;
-+ tcpd_context.line = 0;
-+ while (fgets(buf, sizeof(buf), fp)) {
-+ tcpd_context.line++;
-+ for (cp = strtok(buf, wsp); cp; cp = strtok((char *) 0, wsp))
-+ check_host(cp);
-+ }
-+ tcpd_context = saved_context;
-+ fclose(fp);
-+ } else if (errno != ENOENT) {
-+ tcpd_warn("open %s: %m", pat);
-+ }
- } else if (mask = split_at(pat, '/')) { /* network/netmask */
- if (dot_quad_addr(pat) == INADDR_NONE
- || dot_quad_addr(mask) == INADDR_NONE)
-diff -Naur tcp_wrappers_7.6/try-from.8 tcp_wrappers_7.6.gimli/try-from.8
---- tcp_wrappers_7.6/try-from.8 1969-12-31 18:00:00.000000000 -0600
-+++ tcp_wrappers_7.6.gimli/try-from.8 2002-01-07 08:50:19.000000000 -0600
-@@ -0,0 +1,28 @@
-+.TH TRY-FROM 8 "21th June 1997" Linux "Linux Programmer's Manual"
-+.SH NAME
-+try-from \- test program for the tcp_wrapper
-+.SH SYNOPSIS
-+.B try-from
-+.SH DESCRIPTION
-+The
-+.B try-from
-+command can be called via a remote shell command to find out
-+if the hostname and address are properly recognized
-+by the
-+.B tcp_wrapper
-+library, if username lookup works, and (SysV only) if the TLI
-+on top of IP heuristics work. Diagnostics are reported through
-+.BR syslog (3)
-+and redirected to stderr.
-+
-+Example:
-+
-+rsh host /some/where/try-from
-+
-+.SH SEE ALSO
-+.BR hosts_access (5),
-+.BR hosts_options (5),
-+.BR tcpd (8)
-+.SH AUTHOR
-+Wietse Venema, Eindhoven University of Technology, The Netherlands.
-+
-diff -Naur tcp_wrappers_7.6/weak_symbols.c tcp_wrappers_7.6.gimli/weak_symbols.c
---- tcp_wrappers_7.6/weak_symbols.c 1969-12-31 18:00:00.000000000 -0600
-+++ tcp_wrappers_7.6.gimli/weak_symbols.c 2002-01-07 08:50:19.000000000 -0600
-@@ -0,0 +1,11 @@
-+ /*
-+ * @(#) weak_symbols.h 1.5 99/12/29 23:50
-+ *
-+ * Author: Anthony Towns <ajt@debian.org>
-+ */
-+
-+#ifdef HAVE_WEAKSYMS
-+#include <syslog.h>
-+int deny_severity = LOG_WARNING;
-+int allow_severity = SEVERITY;
-+#endif
-diff -Naur tcp_wrappers_7.6/workarounds.c tcp_wrappers_7.6.gimli/workarounds.c
---- tcp_wrappers_7.6/workarounds.c 1996-03-19 09:22:26.000000000 -0600
-+++ tcp_wrappers_7.6.gimli/workarounds.c 2002-01-07 08:50:19.000000000 -0600
-@@ -163,7 +163,11 @@
- int fix_getpeername(sock, sa, len)
- int sock;
- struct sockaddr *sa;
-+#if !defined(__GLIBC__)
- int *len;
-+#else /* __GLIBC__ */
-+size_t *len;
-+#endif /* __GLIBC__ */
- {
- int ret;
- struct sockaddr_in *sin = (struct sockaddr_in *) sa;
+++ /dev/null
-diff -Naur systemd-208.org/src/udev/mtd_probe/mtd_probe.h systemd-208/src/udev/mtd_probe/mtd_probe.h
---- systemd-208.org/src/udev/mtd_probe/mtd_probe.h 2013-08-13 22:02:47.000000000 +0200
-+++ systemd-208/src/udev/mtd_probe/mtd_probe.h 2017-02-07 18:08:33.492985563 +0100
-@@ -18,6 +18,7 @@
- */
-
- #include <mtd/mtd-user.h>
-+#include <stdint.h>
-
- /* Full oob structure as written on the flash */
- struct sm_oob {
+++ /dev/null
-diff -Naur systemd-208.org/src/libudev/libudev-util.c systemd-208/src/libudev/libudev-util.c
---- systemd-208.org/src/libudev/libudev-util.c 2013-09-23 21:31:55.000000000 +0200
-+++ systemd-208/src/libudev/libudev-util.c 2013-11-19 23:18:10.326350131 +0100
-@@ -481,7 +481,7 @@
- if (fd < 0)
- return -errno;
-
-- len = snprintf(text, sizeof(text), "<30>systemd-udevd[%u]: ", getpid());
-+ len = snprintf(text, sizeof(text), "udevd[%u]: ", getpid());
-
- va_start(ap, fmt);
- len += vsnprintf(text + len, sizeof(text) - len, fmt, ap);