Często ważne jest śledzenie zmian w pakietach. RPM oferuje w tym celu changelogi wbudowane w każdy z pakietów. Taki changelog powinien opisywać zmiany w samym pakiecie (a nie w programie który jest pakietowany, tzn. nie powinien być kopią changelogu kodu źródłowego). ChangeLog pakietu może zawierać np. informacje o usunięciu literówek z opisu pakietu, zmianie domyślnych praw dostępu do pliku, rozlokowania plików, nałożenia dodatkowych, dystrybucyjnych patchy itp. Jak powiedziałem, changelog ten jest trzymany bezpośrednio w pakiecie RPM (a dokładniej w jego pliku .spec) i przy instalacji pakietu jest również zapisywany w bazie danych o pakietach.
Sam ChangeLog wprowadza się do pliku .spec za pomocą sekcji %changelog. Taka sekcja jest zwykle umieszczana na samym końcu pliku, ale jest to tylko zwyczaj, nie wymóg. Za to jeśli idzie o formę to istnieją już konkretne wymogi, rpmbuild może odmówić stworzenia pakietu jeśli changelog będzie "błędnie" zbudowany. Ogólnie w światku dystrybucji używających RPM najszerzej przyjął się taki standard:
%changelog * Mon Dec 18 2000 Yukihiro Nakai <ynakai@redhat.com> - Add Japanese patches. * Mon Dec 11 2000 Bernhard Rosenkraenzer <bero@redhat.com> - Requires(preun,post) fileutils * Fri Oct 20 2000 Bernhard Rosenkraenzer <bero@redhat.com> - Fix yet another security problem (MANSECT overrun), Bug #19351 * Fri Oct 13 2000 Bernhard Rosenkraenzer <bero@redhat.com> - Fix trailing garbage when a man page doesn't end with a newline (Bug #9026) - Look for files in other man directories if the first match isn't accessible (Bug #10254)
Każda "sesja" w changelogu zaczyna się od gwiazdki, następnie przychodzi spacja i data dodania wpisu. Data jest specyficznie sformatowana i należy tego przestrzegać - najpierw skrócona nazwa dnia tygodnia, potem skrócona nazwa miesiąca, dzień miesiąca i rok. Zapis daty anglojęzyczny (niedozwolone są wpisy "zlokalizowane" - zresztą nie są potrzebne, bo potem przy odczytywaniu danych RPM automatycznie przetłumaczy je na lokale użytkownika (zgodnie z $LC_TIME)).
Potem kolejna spacja, imię i nazwisko osoby która wprowadziła zmiany i na końcu jej adres e-mail. RPM potrafi być bardzo irytujący jeśli odstąpi się od tego wzorca.
Po takim wpisie rozpoczynającym tradycyjnie wprowadza się jeden pusty wiersz, a następnie wymienia pokrótce wszystkie wprowadzone zmiany - podbicie numerku wersji, dodanie nowego patcha, zmiana zależności pakietu... Każdą zmianę oznacza się znakiem myślnika, w jednym wpisie (pochodzącym z jednej daty, od jednej osoby) takich zmian można wymienić wiele. Aha, językiem w którym wprowadza się tutaj wpisy jest język angielski, nawet w dystrybucji PLD :)
Tyle odnośnie najczęściej używanego formatu. Spotyka się też inne wariacje, ale po obejrzeniu różnych pakietów z różnych dystrybucji stwierdzam, że ten powyżej przedstawiony jest najpopularniejszy. Więc chyba warto się do niego dostosować. Linia rozpoczynająca wpis (ta z gwiazdką na początku) wydaje się być przekombinowana, ale wystarczy sobie zdefiniować w swoim ulubionym edytorze tekstu makro które wstawia odpowiedni wpis z aktualną datą i problem z głowy.
To wszystko! Ten rozdział był króciutki, no bo co jeszcze można powiedzieć o ChangeLogach?