Próbuję wysłać raport o błędzie dla pliku aplikacji / usr / bin / file
Ale skonsultowanie się z mężczyzną i wysłanie e-maila
BŁĘDY Proszę zgłaszać błędy i wysyłać łaty do narzędzia do śledzenia błędów pod adresem http://bugs.gw.com/ lub na listę mailingową pod adresem ⟨[email protected]⟩ (odwiedź stronę http://mx.gw.com/mailman/ listinfo / plik, który najpierw zasubskrybuje).
Sprawiło, że dowiedziałem się, że adres e-mail nie istnieje.
Czy istnieje inny sposób komunikowania się ze społecznością? Mam nadzieję, że to pytanie jest już częścią tego :)
Oto mój e-mail:
możliwa awaria funkcji:
--extension
opcja nie wydaje niczego$ file --extension "ab.gif" ab.gif: ???
Przydałaby się możliwość łatwego wykorzystania danych wyjściowych do zmiany nazwy pliku na jego prawidłowe rozszerzenie.
coś takiego jak plik
--likely_extension
wyświetliłoby prawdopodobne wykrycie rozszerzenia lub błąd, jeśli wykrycie było zbyt niskiejak w ten sposób:
$ file --likely_extension "ab.gif" gif
lepsza byłaby jednak
--correct_extension
opcja:$ file --correct_extension "ab.jpg" $ ls ab.gif
Tyvm dla tej aplikacji :)
źródło
file --extension
czyni pracę dla niektórych typów plików (jak .jpg). Może to nie „działa” na .gif, ponieważ nie ma innych prawidłowych rozszerzeń plików.file --extension calf.jpg flower.gif
output:calf.jpg: jpeg/jpg/jpe/jfif
iflower.gif:
pokazując możliwe inne rozszerzenia dla tych plików (brak w przypadku pliku GIF). Zauważ, żefile
zgaduje tylko typ pliku - używa do tego zestawu heurystyk. Nie wykrywa rozszerzenia z nazwy. Jeśli zmienić nazwęcalf.jpg
, abycalf.txt
to jeszcze plików JPEG ifile
mówi mi, że gdy uruchamiamfile calf.txt
go też mówi mi, że ewentualne rozszerzenia sąjpeg/jpg/jpe/jfif
podczas uruchamianiafile --extension calf.txt
.Odpowiedzi:
Postępujesz zgodnie z prawidłową procedurą, aby zgłosić problem lub prośbę o ulepszenie: jeśli w dokumentacji programu jest mowa o tym, jak to zrobić, postępuj zgodnie z tymi instrukcjami.
Niestety często zdarza się, że projekty giną lub instrukcje w wersji, którą posiadasz, nie są już dokładne. W takich przypadkach sprawy stają się trochę trudniejsze. Jednym z możliwych ogólnych podejść jest zgłoszenie błędu do twojej dystrybucji; sukces może być raczej trafiony lub nieudany ... (Powinienem wspomnieć, że zwykle lepiej jest zgłosić błąd do dystrybucji, z której otrzymałeś pakiet, jeśli używasz pakietu; jest to szczególnie prawdziwe, jeśli pakiet jest zapakowany wersja jest starsza niż bieżąca wersja „nadrzędna”, a jeśli nie sprawdziłeś, czy problem nadal tam występuje).
W
file
szczególności oficjalna dokumentacja została zaktualizowana, aby wspomnieć, że moduł śledzenia błędów i lista mailingowa są wyłączone, a także zapewnia bezpośredni adres e-mail dla bieżącego opiekuna, za pomocą którego można się z nim skontaktować.źródło
Oprócz odpowiedzi Stephena Kitta możesz rozważyć (zwłaszcza jeśli sam jesteś programistą i jeśli program -
file
w twoim przypadku - kod źródłowy nie jest zbyt trudny do zrozumienia) pobranie kodu źródłowego tego programu (być może z twojego dystrybucja) - ponieważ jest to wolne oprogramowanie - i łatanie go, a także wysyłanie łatki.Jeśli poświęcisz trochę czasu na przestudiowanie kodu źródłowego , prawdopodobnie zrobisz lepszy raport o błędzie.
Jeśli poświęcisz więcej czasu na zaproponowanie poprawki , prawdopodobnie będziesz traktowany poważniej (i IMHO działasz bardziej w duchu wolnego oprogramowania).
Wykorzystaj więc swobodę zapewnianą przez wolne oprogramowanie : przestudiuj jego kod źródłowy (wolność nr 1) i popraw go (wolność nr 3).
Dzisiaj bardzo łatwo opublikować (np. Na github ) swoją ulepszoną wersję i udostępnić ją (wolność nr 2).
Pamiętaj, aby mieć najnowszą wersję
file
programu. Wiele dystrybucji tego nie używa (i być może błąd w twojej dystrybucji został już naprawiony).Nie jestem pewien, czy twoje
--correct_extension
zachowanie należy dofile
(który jest programem do sprawdzania , a nie zmiany twoich danych). Ale jeśli tak, to prawdopodobnie powinien być napisany--correct-extension
lub--rename-extension
... A kiedy spróbujesz to zaimplementować, możesz odkryć, że istnieją dziwne przypadki narożne (co z plikiem tar spakowanym gzipem lub skompresowanym plikiem źródłowym C lub czymś, co może potrzebujesz kilku rozszerzeń plików).Zauważ, że (w przeciwieństwie do Windows) w systemach Linux i Unix plik jest w rzeczywistości i- węzłem (patrz i- węzeł (7) ) i może mieć kilka nazw (lub żadnych) i może być otwierany przez kilka procesów jednocześnie (czytaj o deskryptorach plików ) - lub żaden, nawet jeśli większość plików ma tylko jedną nazwę (ale patrz link (2) i stat (2) ). Ponieważ ten sam plik można nazwać
foo.txt
ibar.gz
przywiązywanie wagi do rozszerzeń plików nie ma większego sensu. Zobacz także path_resolution (7) .Tak więc, jeśli spróbujesz wdrożyć swój
correct-extension
pomysł, przekonasz się, że nie jest to takie proste do wdrożenia (a nawet do określenia) i że nie ma w tym oczywistego prostego zachowania.Prawdopodobnie twój pomysł nie jest zbyt dobry i nie można go łatwo wdrożyć w systemach Linux i POSIX (przynajmniej nie we wszystkich przypadkach).
Dlatego zalecam unikanie przesyłania prośby o funkcję (w jej początkowej formie jest to strata czasu dla ciebie i dla programistów
file
). Albo dużo, popracuj nad tym, popraw jego specyfikacje i prześlij łatkę ... Oczywiście poświęcisz na to dużo pracy (i naprawdę nie sądzę, żeby było warto).Być może przeczytaj także książkę o programowaniu w Uniksie (jak stary ALP lub coś nowszego; a także intro (2) i syscalls (2) ) oraz Systemy operacyjne: trzy łatwe kawałki .
źródło
file
dostarcza informacji i niczego nie zmienia. Ponadto pojęcie, że „rozszerzenie” pliku w jakikolwiek sposób wskazuje, które aplikacje należy otworzyć, jest bardzo zorientowane na system Windows. Linux zawsze stosował podejście „magicznej liczby”, polegające na umieszczeniu wyróżniającej sygnatury w pierwszych kilku bajtach pliku, a następnie dopuszczeniu, by nazwa była dowolna. Przez analogię byłem plikiem w systemie Windows, musiałbym być „Monty Harder.human”, aby cokolwiek wiedzieć, kim jestem, ale Linux postrzega to jako część mojej zawartości, a nazwa to niewymuszony.file
zmagic
pliku, więc nie wiem jak „retro-wyposażone” jest. Podejście MacOS umieściło jawny typ pliku w metadanych pliku („rozwidleniu zasobów”), które są przechowywane w pliku, ale w osobnym pojemniku.Ty pytasz:
i aby na nie odpowiedzieć, ważne jest, aby wiedzieć, że nie ma czegoś takiego jak „GNU Linux” jako taki. Projekt GNU to wspólny wysiłek na rzecz rozwoju wolnego oprogramowania. Część tego wolnego oprogramowania - wraz z dużą ilością innego wolnego i otwartego oprogramowania - jest gromadzona przez inne projekty: albo wspólne, otwarte projekty, takie jak Fedora * lub Debian, lub wysiłki korporacyjne o różnym stopniu otwartości, a nawet osoby. Te kolekcje nazywane są „Dystrybucjami Linuksa” lub „Dystrybucjami GNU / Linux” (jest tam debata polityczna, do której nie wejdę).
Ogólnie rzecz biorąc, jeśli jesteś zainteresowany ulepszeniem funkcji , najlepszą rzeczą do zrobienia jest współpraca z programistą, który napisał oprogramowanie - dystrybucje mają dużo pracy, aby po prostu zebrać różne programy i sprawić, by działały razem, i zwykle wolałby, żeby te zmiany miały miejsce „w górę”.
Więc zrobiłeś tutaj właściwą rzecz - znalazłeś udokumentowane źródło źródłowe i próbowałeś tam zgłosić.
Wydaje się jednak, że udokumentowane metody komunikacji dla interesującego Cię oprogramowania nie działają. W takim przypadku masz kilka opcji:
file
polecenie napisane pierwotnie przez Iana Darwina i nominalnie umieszczone na stronie http://www.darwinsys.com/file/ , z podanymi przez ciebie listami adresowymi. Ale podobnie jak te listy mailingowe, główna strona wydaje się nie działać. W dzisiejszych czasach sprawdzanie GitHub jest dobrym drugim krokiem i znalazłem https://github.com/file/file - który mówi, że lustro tylko do odczytu repozytorium CVS pliku, aktualizowane co pół godziny. UWAGA: nie wysyłaj tutaj żądań ściągania, nie komentuj żadnych zatwierdzeń, przesyłaj je w zwykły sposób do trackera błędów lub na listę mailingową. Nie jest to natychmiast pomocne, ale zauważam, że takzmiany w tym repozytorium w ostatnim tygodniu. Tak więc jednym możliwym ruchem jest sprawdzenie, kto popełnił te zmiany i skontaktowanie się z nimi.file
Fedorze zobacz tę stronę . Ponieważ regularnie pracują z oprogramowaniem, mogą mieć inne sposoby skontaktowania się z poprzednią wersją oprogramowania. W zależności od dystrybucji najlepiej jest to zrobić, zgłaszając błąd lub kontaktując się bezpośrednio - potrzebujesz znajomości kultury. (W Fedorze sugerowałbym listę mailingową devel .)* Pracuję na Fedorze. Jestem zatrudniony przez Red Hat.
źródło
To jest błąd w twojej dystrybucji. Jeśli dystrybucja wysyła nieaktualne strony podręcznika, powinieneś zgłosić błąd dotyczący dostarczonego pakietu. Jeśli używasz Debiana, możesz użyć narzędzia takiego jak reportbug, aby uprościć to.
źródło
[0] oznacza pierwszą klatkę, co może pomóc, jeśli przypadkowo użyjesz jej na filmie, ponieważ w przeciwnym razie korzysta z bibliotek ffmpeg, aby utworzyć tymczasową kopię każdej klatki.
Działa to tylko w przypadku obrazów. Nie wiem jak to zrobić dla plików ogólnych.
ffmpeg zwraca „avc1” dla losowego pliku mp4 (inne pliki mp4 mogą zwracać różne ciągi, a ty nadal musisz je parsować), i nie widzę sposobu, aby przejść z tego do „mp4”. „avc1” nie ma nigdzie w / usr / share / mime.ffmpeg, lub równoważnie ffprobe, wymienia niektóre formaty plików, których demuxer używa na początku danych wyjściowych. W przypadku pliku MP4 jest to napisane
za png mówi
źródło