| Natrio |
|
|
Темы:
47
Сообщения:
4763
Участник с: 08 января 2011
|
Столкнулся с неожиданной проблемой. Требуется: свои файлы настроек для fontconfig, то есть полностью заменить /etc/fonts/* Проблема: пакет fontconfig при обновлении пытается заменять файлы конфигурации и добавлять новые, что неприемлемо. Попытка решения: NoExtract = etc/fonts/* NoUpgrade = etc/fonts/* Полумеры: замена пакета fontconfig на самосборный fontconfig-noconf, без конфигов. В PKGBUILD: conflicts=('fontconfig')
provides=('fontconfig=2.8.0')Может быть, всё же существует более правильный способ запретить определённому пакету прикасаться к конфигам? |
| mechanical |
|
|
Темы:
16
Сообщения:
663
Участник с: 11 октября 2008
|
такие вещи делают в ~/.fonts.conf или ~/.fonts.conf.d/ ну или на крайняк сделать переопределения правил где-нибудь в /etc/fonts/conf.d/99-my_rules.conf |
| Natrio |
|
|
Темы:
47
Сообщения:
4763
Участник с: 08 января 2011
|
Спасибо, я в курсе. Но увы, не подходит. Пользовательские конфиги очень любят переписывать всякие ушлые *DE, поэтому именно их приходится нейтрализовывать в первую очередь. Допустим, я для этого удаляю симлинк 50-user.conf из conf.d/ . А при обновлении пакета его скрипт заботливо все “недостающие” ссылочки восстановит: configs=('20-fix-globaladvance.conf'
'20-unhint-small-vera.conf'
'29-replace-bitmap-fonts.conf'
'30-metric-aliases.conf'
'30-urw-aliases.conf'
'40-nonlatin.conf'
'45-latin.conf'
'49-sansserif.conf'
'50-user.conf'
'51-local.conf'
'60-latin.conf'
'65-fonts-persian.conf'
'65-nonlatin.conf'
'69-unifont.conf'
'80-delicious.conf'
'90-synthetic.conf')
post_install() {
echo -n "updating font cache... "
/sbin/ldconfig -r .
pushd /etc/fonts/conf.d > /dev/null
for config in "${configs[@]}"; do
ln -sf ../conf.avail/${config} .
done
popd > /dev/null
/usr/bin/fc-cache -f
echo "done."
}Так что если действовать по предложенным правилам, то своих конфигов у меня не будет. А они есть, и мне совсем неинтересно, когда их ломают. |
| mechanical |
|
|
Темы:
16
Сообщения:
663
Участник с: 11 октября 2008
|
1) какой DE переписывает ~/fonts.conf ? гном точно не переписывает … кде тоже не должен 2) трогать файлы поставленные пакетом - это неправильно 3) если хочешь переопределить правила шрифтов то: а) либо делаешь это локально для пользователя в ~/fonts.conf б) либо добавляешь глобальное переопределение правил, например в файле /etc/fonts/conf.d/99-my_rules.conf … при обновлении этот файл не будет ни удаляться, ни изменяться, потому что его в пакете нет. что именно ты хочешь изменить в шрифтах? уверен, всё это решаемо через ~/fonts.conf, и никакие танцы тут не нужны |
| Natrio |
|
|
Темы:
47
Сообщения:
4763
Участник с: 08 января 2011
|
КДЕ переписывал, пока я не стал удалять 50-user.conf Xfce сейчас пока не переписывает. Другие не проверял, но если у них есть в настройки шрифтов, их сглаживания и т.д., то могут очень даже, а если сейчас не пытаются, но потом что-то в них сломают и опять начнётся. Но не о том речь. У меня СВОИ конфиги, где подробно расписано, как какие шрифты будут выглядеть при каком размере. И я так или иначе делаю их недоступными для изменений любыми роботами, будь то пакетные скрипты или непрошенные ГУИ-“помошники”. Папка conf.d/ содержит симлинки специально для того, чтобы их можно было оттуда удалять или добавлять туда. Но авторы пакета почему-то считают своим долгом конфигурировать его сами. Неправильно изменять файлы пакета, но делать пакеты с “зашитыми” конфигами тоже неправильно. Поэтому, если я не могу запретить этому неправильному пакету выполнять его неправильные скрипты, я не буду неправильно менять его файлы, гораздо правильнее выкинуть весь пакет и сделать свой. :) У меня уже набралось почти два десятка самосборных пакетов, но там либо меня не устраивала версия, либо требовался патч, либо просто не было в репозиториях. Теперь просто одним больше, но это первый пакет, который пришлось заменить исключительно из-за конфигов. |
| vadik |
|
|
Темы:
55
Сообщения:
5395
Участник с: 17 августа 2009
|
А делать chattr +i имя_файла не пробовали? |
| mechanical |
|
|
Темы:
16
Сообщения:
663
Участник с: 11 октября 2008
|
Natrio в третий раз уже пишу добавляешь глобальное переопределение правил, например в файл /etc/fonts/conf.d/99-my_rules.confу тебя же есть свой конфиг … ну так и добавь его туда, чтоб он последним применялся и переписывал настройки, которые идут из пакета ты пробовал? зачем обязательно изменять существующие файлы, если можно переопределить их в отдельном файле? |
| mechanical |
|
|
Темы:
16
Сообщения:
663
Участник с: 11 октября 2008
|
я сейчас специально проверил, думал может чего-то недопонимаю скопировал свой ~/.fonts.conf в /etc/fonts/conf.d/ назвал его 99-fonts.conf удалил ~/.fonts.conf проверил … все собственные настройки шрифтов нормально применились обновил fontconfig …. /etc/fonts/conf.d/99-fonts.conf на месте … никто его не трогал в чем проблема? |
| mechanical |
|
|
Темы:
16
Сообщения:
663
Участник с: 11 октября 2008
|
кстати, если какой-то DE якобы переписывает твой ~/.fonts.conf … то как ты ни меняй глобальные настройки в /etc/fonts, конфиги из ~/.fonts.conf всё равно применяются последними … |
| Natrio |
|
|
Темы:
47
Сообщения:
4763
Участник с: 08 января 2011
|
vadikЭто с ~/.fonts.conf ? Пробовал когда-то делать ему chmod 444, chown root:root, но права пользователя позволяли КДЕ удалять его и создавать заново, что он и делал. Вот chattr +i не пробовал, только что посмотрел, что это такое. Вроде работает, спасибо! :) Надо будет взять этот метод на вооружение. Против пакетов, правда, не поможет, они под рутом, хотя… если вынести на ФС только для чтения… Нет, тогда пакет выдаст ошибку, а это ещё хуже. А вот против лихих ГУИ или шаловливых юзеров – сработает. Век живи… mechanical, я вас понял с первого раза, спасибо и вам за участие! Вы всё правильно пишете, все настройки можно переопределить в конце, но для этого надо знать, что там в начале, и предусматривать в своём конфиге специальные секции только для отмены вышестоящих. А если там добавят ещё какие-то новшества, то учитывать ещё и их… Уж лучше всё же “с чистого листа”. А вот с “конфиги из ~/.fonts.conf всё равно применяются последними” ошибочка вышла. Как я уже писал выше, ~/.fonts.conf работает не само по себе, а только потому, что в /etc/fonts/conf.d/50-user.conf -> ../conf.avail/50-user.conf написано: <?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
<!-- Load per-user customization file -->
<include ignore_missing="yes">~/.fonts.conf.d</include>
<include ignore_missing="yes">~/.fonts.conf</include>
</fontconfig> |