����JFIF���������
__ __ __ __ _____ _ _ _____ _ _ _ | \/ | \ \ / / | __ \ (_) | | / ____| | | | | | \ / |_ __\ V / | |__) | __ ___ ____ _| |_ ___ | (___ | |__ ___| | | | |\/| | '__|> < | ___/ '__| \ \ / / _` | __/ _ \ \___ \| '_ \ / _ \ | | | | | | |_ / . \ | | | | | |\ V / (_| | || __/ ____) | | | | __/ | | |_| |_|_(_)_/ \_\ |_| |_| |_| \_/ \__,_|\__\___| |_____/|_| |_|\___V 2.1 if you need WebShell for Seo everyday contact me on Telegram Telegram Address : @jackleetFor_More_Tools:
#!/usr/bin/perl
# SPDX-License-Identifier: GPL-2.0
#
# Treewide grep for references to files under Documentation, and report
# non-existing files in stderr.
use warnings;
use strict;
use Getopt::Long qw(:config no_auto_abbrev);
# NOTE: only add things here when the file was gone, but the text wants
# to mention a past documentation file, for example, to give credits for
# the original work.
my %false_positives = (
"Documentation/scsi/scsi_mid_low_api.rst" => "Documentation/Configure.help",
"drivers/vhost/vhost.c" => "Documentation/virtual/lguest/lguest.c",
);
my $scriptname = $0;
$scriptname =~ s,.*/([^/]+/),$1,;
# Parse arguments
my $help = 0;
my $fix = 0;
my $warn = 0;
if (! -e ".git") {
printf "Warning: can't check if file exists, as this is not a git tree\n";
exit 0;
}
GetOptions(
'fix' => \$fix,
'warn' => \$warn,
'h|help|usage' => \$help,
);
if ($help != 0) {
print "$scriptname [--help] [--fix]\n";
exit -1;
}
# Step 1: find broken references
print "Finding broken references. This may take a while... " if ($fix);
my %broken_ref;
my $doc_fix = 0;
open IN, "git grep ':doc:\`' Documentation/|"
or die "Failed to run git grep";
while (<IN>) {
next if (!m,^([^:]+):.*\:doc\:\`([^\`]+)\`,);
next if (m,sphinx/,);
my $file = $1;
my $d = $1;
my $doc_ref = $2;
my $f = $doc_ref;
$d =~ s,(.*/).*,$1,;
$f =~ s,.*\<([^\>]+)\>,$1,;
if ($f =~ m,^/,) {
$f = "$f.rst";
$f =~ s,^/,Documentation/,;
} else {
$f = "$d$f.rst";
}
next if (grep -e, glob("$f"));
if ($fix && !$doc_fix) {
print STDERR "\nWARNING: Currently, can't fix broken :doc:`` fields\n";
}
$doc_fix++;
print STDERR "$file: :doc:`$doc_ref`\n";
}
close IN;
open IN, "git grep 'Documentation/'|"
or die "Failed to run git grep";
while (<IN>) {
next if (!m/^([^:]+):(.*)/);
my $f = $1;
my $ln = $2;
# On linux-next, discard the Next/ directory
next if ($f =~ m,^Next/,);
# Makefiles and scripts contain nasty expressions to parse docs
next if ($f =~ m/Makefile/ || $f =~ m/\.sh$/);
# Skip this script
next if ($f eq $scriptname);
# Ignore the dir where documentation will be built
next if ($ln =~ m,\b(\S*)Documentation/output,);
if ($ln =~ m,\b(\S*)(Documentation/[A-Za-z0-9\_\.\,\~/\*\[\]\?+-]*)(.*),) {
my $prefix = $1;
my $ref = $2;
my $base = $2;
my $extra = $3;
# some file references are like:
# /usr/src/linux/Documentation/DMA-{API,mapping}.txt
# For now, ignore them
next if ($extra =~ m/^{/);
# Remove footnotes at the end like:
# Documentation/devicetree/dt-object-internal.txt[1]
$ref =~ s/(txt|rst)\[\d+]$/$1/;
# Remove ending ']' without any '['
$ref =~ s/\].*// if (!($ref =~ m/\[/));
# Remove puntuation marks at the end
$ref =~ s/[\,\.]+$//;
my $fulref = "$prefix$ref";
$fulref =~ s/^(\<file|ref)://;
$fulref =~ s/^[\'\`]+//;
$fulref =~ s,^\$\(.*\)/,,;
$base =~ s,.*/,,;
# Remove URL false-positives
next if ($fulref =~ m/^http/);
# Remove sched-pelt false-positive
next if ($fulref =~ m,^Documentation/scheduler/sched-pelt$,);
# Discard some build examples from Documentation/target/tcm_mod_builder.rst
next if ($fulref =~ m,mnt/sdb/lio-core-2.6.git/Documentation/target,);
# Check if exists, evaluating wildcards
next if (grep -e, glob("$ref $fulref"));
# Accept relative Documentation patches for tools/
if ($f =~ m/tools/) {
my $path = $f;
$path =~ s,(.*)/.*,$1,;
$path =~ s,testing/selftests/bpf,bpf/bpftool,;
next if (grep -e, glob("$path/$ref $path/../$ref $path/$fulref"));
}
# Discard known false-positives
if (defined($false_positives{$f})) {
next if ($false_positives{$f} eq $fulref);
}
if ($fix) {
if (!($ref =~ m/(scripts|Kconfig|Kbuild)/)) {
$broken_ref{$ref}++;
}
} elsif ($warn) {
print STDERR "Warning: $f references a file that doesn't exist: $fulref\n";
} else {
print STDERR "$f: $fulref\n";
}
}
}
close IN;
exit 0 if (!$fix);
# Step 2: Seek for file name alternatives
print "Auto-fixing broken references. Please double-check the results\n";
foreach my $ref (keys %broken_ref) {
my $new =$ref;
my $basedir = ".";
# On translations, only seek inside the translations directory
$basedir = $1 if ($ref =~ m,(Documentation/translations/[^/]+),);
# get just the basename
$new =~ s,.*/,,;
my $f="";
# usual reason for breakage: DT file moved around
if ($ref =~ /devicetree/) {
# usual reason for breakage: DT file renamed to .yaml
if (!$f) {
my $new_ref = $ref;
$new_ref =~ s/\.txt$/.yaml/;
$f=$new_ref if (-f $new_ref);
}
if (!$f) {
my $search = $new;
$search =~ s,^.*/,,;
$f = qx(find Documentation/devicetree/ -iname "*$search*") if ($search);
if (!$f) {
# Manufacturer name may have changed
$search =~ s/^.*,//;
$f = qx(find Documentation/devicetree/ -iname "*$search*") if ($search);
}
}
}
# usual reason for breakage: file renamed to .rst
if (!$f) {
$new =~ s/\.txt$/.rst/;
$f=qx(find $basedir -iname $new) if ($new);
}
# usual reason for breakage: use dash or underline
if (!$f) {
$new =~ s/[-_]/[-_]/g;
$f=qx(find $basedir -iname $new) if ($new);
}
# Wild guess: seek for the same name on another place
if (!$f) {
$f = qx(find $basedir -iname $new) if ($new);
}
my @find = split /\s+/, $f;
if (!$f) {
print STDERR "ERROR: Didn't find a replacement for $ref\n";
} elsif (scalar(@find) > 1) {
print STDERR "WARNING: Won't auto-replace, as found multiple files close to $ref:\n";
foreach my $j (@find) {
$j =~ s,^./,,;
print STDERR " $j\n";
}
} else {
$f = $find[0];
$f =~ s,^./,,;
print "INFO: Replacing $ref to $f\n";
foreach my $j (qx(git grep -l $ref)) {
qx(sed "s\@$ref\@$f\@g" -i $j);
}
}
}
| Name | Type | Size | Permission | Actions |
|---|---|---|---|---|
| atomic | Folder | 0755 |
|
|
| basic | Folder | 0755 |
|
|
| clang-tools | Folder | 0755 |
|
|
| coccinelle | Folder | 0755 |
|
|
| dtc | Folder | 0755 |
|
|
| dummy-tools | Folder | 0755 |
|
|
| gcc-plugins | Folder | 0755 |
|
|
| gdb | Folder | 0755 |
|
|
| genksyms | Folder | 0755 |
|
|
| include | Folder | 0755 |
|
|
| kconfig | Folder | 0755 |
|
|
| ksymoops | Folder | 0755 |
|
|
| mod | Folder | 0755 |
|
|
| package | Folder | 0755 |
|
|
| selinux | Folder | 0755 |
|
|
| Kbuild.include | File | 10.24 KB | 0644 |
|
| Kconfig.include | File | 2.56 KB | 0644 |
|
| Lindent | File | 506 B | 0755 |
|
| Makefile | File | 1.74 KB | 0644 |
|
| Makefile.asm-generic | File | 1.82 KB | 0644 |
|
| Makefile.btf | File | 1.07 KB | 0644 |
|
| Makefile.build | File | 17.1 KB | 0644 |
|
| Makefile.clean | File | 2.02 KB | 0644 |
|
| Makefile.compiler | File | 2.79 KB | 0644 |
|
| Makefile.dtbinst | File | 998 B | 0644 |
|
| Makefile.extrawarn | File | 3.25 KB | 0644 |
|
| Makefile.gcc-plugins | File | 2.57 KB | 0644 |
|
| Makefile.headersinst | File | 2.88 KB | 0644 |
|
| Makefile.host | File | 4.63 KB | 0644 |
|
| Makefile.kasan | File | 2.45 KB | 0644 |
|
| Makefile.kcov | File | 333 B | 0644 |
|
| Makefile.kcsan | File | 1004 B | 0644 |
|
| Makefile.kmsan | File | 208 B | 0644 |
|
| Makefile.lib | File | 21.16 KB | 0644 |
|
| Makefile.modfinal | File | 2.74 KB | 0644 |
|
| Makefile.modinst | File | 2.39 KB | 0644 |
|
| Makefile.modpost | File | 4.16 KB | 0644 |
|
| Makefile.package | File | 6.61 KB | 0644 |
|
| Makefile.randstruct | File | 410 B | 0644 |
|
| Makefile.ubsan | File | 837 B | 0644 |
|
| Makefile.userprogs | File | 1.57 KB | 0644 |
|
| Makefile.vmlinux | File | 890 B | 0644 |
|
| Makefile.vmlinux_o | File | 2.54 KB | 0644 |
|
| adjust_autoksyms.sh | File | 2.11 KB | 0755 |
|
| as-version.sh | File | 2.05 KB | 0755 |
|
| asn1_compiler | File | 30.13 KB | 0755 |
|
| asn1_compiler.c | File | 35.32 KB | 0644 |
|
| bin2c.c | File | 743 B | 0644 |
|
| bloat-o-meter | File | 3.36 KB | 0755 |
|
| bootgraph.pl | File | 5.64 KB | 0755 |
|
| bpf_doc.py | File | 31.73 KB | 0755 |
|
| cc-can-link.sh | File | 170 B | 0755 |
|
| cc-version.sh | File | 1.35 KB | 0755 |
|
| check-sysctl-docs | File | 4.37 KB | 0755 |
|
| check_extable.sh | File | 4.93 KB | 0755 |
|
| checkdeclares.pl | File | 1.1 KB | 0644 |
|
| checkincludes.pl | File | 1.94 KB | 0755 |
|
| checkkconfigsymbols.py | File | 15.88 KB | 0755 |
|
| checkpatch.pl | File | 224.16 KB | 0755 |
|
| checkstack.pl | File | 5.9 KB | 0755 |
|
| checksyscalls.sh | File | 7.34 KB | 0755 |
|
| checkversion.pl | File | 2.15 KB | 0755 |
|
| cleanfile | File | 3.46 KB | 0755 |
|
| cleanpatch | File | 5.06 KB | 0755 |
|
| coccicheck | File | 7.89 KB | 0755 |
|
| config | File | 4.67 KB | 0755 |
|
| const_structs.checkpatch | File | 1009 B | 0644 |
|
| decode_stacktrace.sh | File | 6.56 KB | 0755 |
|
| decodecode | File | 2.89 KB | 0755 |
|
| depmod.sh | File | 1.41 KB | 0755 |
|
| dev-needs.sh | File | 6.08 KB | 0755 |
|
| diffconfig | File | 4.12 KB | 0755 |
|
| documentation-file-ref-check | File | 5.6 KB | 0755 |
|
| export_report.pl | File | 4.49 KB | 0755 |
|
| extract-cert | File | 14.12 KB | 0755 |
|
| extract-cert.c | File | 3.63 KB | 0644 |
|
| extract-ikconfig | File | 1.7 KB | 0755 |
|
| extract-module-sig.pl | File | 3.65 KB | 0755 |
|
| extract-sys-certs.pl | File | 3.74 KB | 0755 |
|
| extract-vmlinux | File | 1.66 KB | 0755 |
|
| extract_xc3028.pl | File | 44.61 KB | 0755 |
|
| faddr2line | File | 6.16 KB | 0755 |
|
| file-size.sh | File | 90 B | 0755 |
|
| find-unused-docs.sh | File | 1.28 KB | 0755 |
|
| gcc-ld | File | 715 B | 0755 |
|
| gcc-x86_32-has-stack-protector.sh | File | 412 B | 0755 |
|
| gcc-x86_64-has-stack-protector.sh | File | 202 B | 0755 |
|
| gen_autoksyms.sh | File | 1.4 KB | 0755 |
|
| gen_ksymdeps.sh | File | 403 B | 0755 |
|
| gen_packed_field_checks.c | File | 1.19 KB | 0644 |
|
| generate_initcall_order.pl | File | 5.94 KB | 0755 |
|
| generate_rust_target.rs | File | 5.26 KB | 0644 |
|
| get_abi.pl | File | 15.09 KB | 0755 |
|
| get_dvb_firmware | File | 24.54 KB | 0755 |
|
| get_feat.pl | File | 14.34 KB | 0755 |
|
| get_maintainer.pl | File | 67.13 KB | 0755 |
|
| gfp-translate | File | 1.71 KB | 0755 |
|
| headerdep.pl | File | 3.5 KB | 0755 |
|
| headers_check.pl | File | 3.73 KB | 0755 |
|
| headers_install.sh | File | 3.17 KB | 0755 |
|
| insert-sys-cert.c | File | 8.87 KB | 0644 |
|
| install.sh | File | 990 B | 0755 |
|
| jobserver-exec | File | 2.16 KB | 0755 |
|
| kallsyms | File | 18.23 KB | 0755 |
|
| kallsyms.c | File | 20.38 KB | 0644 |
|
| kernel-doc | File | 66.32 KB | 0755 |
|
| ld-version.sh | File | 1.67 KB | 0755 |
|
| leaking_addresses.pl | File | 12.8 KB | 0755 |
|
| link-vmlinux.sh | File | 8.88 KB | 0755 |
|
| makelst | File | 812 B | 0755 |
|
| markup_oops.pl | File | 7.92 KB | 0755 |
|
| min-tool-version.sh | File | 473 B | 0755 |
|
| mkcompile_h | File | 2.59 KB | 0755 |
|
| mksysmap | File | 1.33 KB | 0755 |
|
| mkuboot.sh | File | 418 B | 0755 |
|
| module.lds | File | 432 B | 0644 |
|
| module.lds.S | File | 1.49 KB | 0644 |
|
| modules-check.sh | File | 431 B | 0755 |
|
| nsdeps | File | 1.63 KB | 0644 |
|
| objdiff | File | 2.83 KB | 0755 |
|
| objdump-func | File | 715 B | 0755 |
|
| pahole-version.sh | File | 273 B | 0755 |
|
| parse-maintainers.pl | File | 4.54 KB | 0755 |
|
| patch-kernel | File | 9.95 KB | 0755 |
|
| profile2linkerlist.pl | File | 410 B | 0755 |
|
| prune-kernel | File | 712 B | 0755 |
|
| recordmcount.c | File | 16.69 KB | 0644 |
|
| recordmcount.h | File | 19.37 KB | 0644 |
|
| recordmcount.pl | File | 17.61 KB | 0755 |
|
| remove-stale-files | File | 1.35 KB | 0755 |
|
| setlocalversion | File | 3.59 KB | 0755 |
|
| show_delta | File | 3.01 KB | 0755 |
|
| sign-file | File | 22.16 KB | 0755 |
|
| sign-file.c | File | 9.93 KB | 0644 |
|
| sorttable | File | 22.12 KB | 0755 |
|
| sorttable.c | File | 7.62 KB | 0644 |
|
| sorttable.h | File | 12.85 KB | 0644 |
|
| spdxcheck-test.sh | File | 323 B | 0644 |
|
| spelling.txt | File | 31.92 KB | 0644 |
|
| sphinx-pre-install | File | 24.29 KB | 0755 |
|
| split-man.pl | File | 600 B | 0755 |
|
| stackdelta | File | 1.84 KB | 0755 |
|
| stackusage | File | 798 B | 0755 |
|
| subarch.include | File | 641 B | 0644 |
|
| syscallhdr.sh | File | 1.89 KB | 0755 |
|
| syscallnr.sh | File | 1.45 KB | 0644 |
|
| syscalltbl.sh | File | 1.46 KB | 0755 |
|
| tags.sh | File | 9.66 KB | 0755 |
|
| test_fortify.sh | File | 2.23 KB | 0644 |
|
| tools-support-relr.sh | File | 550 B | 0755 |
|
| unifdef | File | 34.12 KB | 0755 |
|
| unifdef.c | File | 34.8 KB | 0644 |
|
| ver_linux | File | 2.59 KB | 0755 |
|
| xen-hypercalls.sh | File | 386 B | 0644 |
|
| xz_wrap.sh | File | 567 B | 0755 |
|