Известная проблема:
При удалении/обновлении lazarus если установить много дополнений, то время на удаление/обновление lazarus будет долгим, потому что каждое удаляемое дополнение будет перекомпилировать lazarus, и лишь потом lazarus удалится/обновится. Хотя по логике в этом случае его не надо перекомпилировать.
Как в спеках предусмотреть, что происходит именно удаление/обновление самого lazarus тем самым изменив поведение для этого случая?
Стандартно - никак. Можно попробовать добавить %preun-сценарий в пакет lazarus, который будет создавать некий временный файл, а в %postun добавить удаление этого временного файла. Тогда в %postun-сценарии пакетов дополнений можно добавить проверку наличия этого файла и запускать/не запускать сборку lazarus в зависимости от его наличия/отсутствия. Но я не уверен, что %preun-сценарий пакета lazarus будет выполняться до удаления всех зависящих от lazarus пакетов, так что этот метод запросто может и не сработать.