LINUX.ORG.RU

Избранные сообщения Sferg

Починил шрифты в Firefox'е (выпилил helvR08-ISO8859-1.pcf.gz)

Форум — Desktop

Собственно, сабж. Рецепт must have для юзеров ALT Linux'а, но судя по Гуглу проблема встречается и в других дистрибутивах, включая Arch и Debian. Исправление уже нашло своё отражение в https://github.com/saahriktu/setgoodxfontz .

Итак. Если выполнение команды

fc-match Helvetica
выводит
helvR08-ISO8859-1.pcf.gz: "Helvetica" "Regular"
, то этот рецепт как раз для Вас. Да, свежие Firefox'ы ищут через fontconfig именно шрифты семейства Helvetica, с которыми в GNU/Linux'ах беда и огорчение. Поэтому маинтейнеры дистрибутивов по-хорошему просто форсят подмену этого семейства шрифтов в настройках fontconfig'а на другие. В openSUSE, например, форсится подмена на шрифт Arimo. Что и можно провернуть добавив в ~/.config/fontconfig/fonts.conf
        <match target="pattern">
                <test qual="any" name="family">
                        <string>Helvetica</string>
                </test>
                <edit name="family" mode="assign" binding="same">
                        <string>Arimo</string>
                </edit>
        </match>
И Firefox сразу же перестайт подставлять helvR08-ISO8859-1.pcf.gz везде, где страницы требуют шрифт Helvetica. А это в т.ч. присутствует и на github'е, да.

Enjoy!

 , починил,

saahriktu
()

[решено]Настройка дополнения кода пробелами Qt Creator 3.3.2

Форум — Development

Доброго времени суток!

Подскажите пожалуйста, как настроить Qt Creator, чтобы он автоматически вставлял пробелы в такого рода код. Чтобы когда я печатаю

if(a<b)

он, после моего перехода на следующую строку заменял это автоматически на

if(a < b)

Как такое сделать?

ну и пример с cout'ом это

cout<<a<<b;

он должен превратить в

cout << a << b;

Язык C++, если что.

 , ,

zamazan4ik
()

Проброс портов наружу для VMWare. Как реализовать?

Форум — Admin

Здравствуйте, уважаемые знатоки. Знаю, что данный вопрос уже давно избитый, но я что-то запутался.

В общем, имеется следующее:
1. PC-роутер (192.168.0.1) с внешним белым IP (12.34.56.78, который привязывается к доменному имени с помощью freedns.afraid.org);
2. ПК с ОС Windows 7 (192.168.0.103);
3. Виртуальная машина VMWare Workstation с установленным на ней Debian (192.168.0.32), которая запущена на ПК с ОС Windows 7 (192.168.0.103).

На PC-роутере имеются следующие сетевые интерфейсы:
1. eth0 - смотрит в Интернет;
2. eth1 - смотрит в локальную сеть;
3. wlan0 - беспроводная точка доступа с доступом к локальной сети и к Интернет при помощи сетевого моста;
4. br0 - сетевой мост, для обеспечения доступа к Интернет из локальной сети.

Подскажите, пожалуйста, какие правила нужно прописать с помощью iptables на PC-роутере, чтобы был доступ снаружи к виртуальной машине, которая запущена на ПК?

P.S. На PC-роутере для INPUT и FORWARD по умолчанию установлена политика DROP. PC-роутер, ПК и виртуальная машина по локальным адресам между собой исправно пингуются.

 , , , ,

Sferg
()

Скрипт сборки freetype с патчами bohoomil

Форум — Desktop

С выходом новой версии патчей от bohoomil у меня уходит достаточно много сил на сборку пакета. В процессе нужно вспомнить все варварские приёмы с помощью которых я заталкиваю freetype в пакет. Решил я это дело автоматизировать, не столько для автоматизации, а в качестве памятки. Перед запуском нужно удовлетворить зависимости:

apt-get build-dep freetype
apt-get install devscripts

Функция buildi386 нужна только для сборки multiarch пакетов. Например для wine на amd64 нужен libfreetype6:i386. Чтобы увидеть эффект нужно поместить файл infinality-settings.sh туда, где он будет запускаться при запуске иксов. Например в /etc/profile.d/

#!/bin/bash

GITURL='https://codeload.github.com/bohoomil/fontconfig-ultimate/zip/pkgbuild'
FREETYPEURL='http://download.savannah.gnu.org/releases/freetype'
BOHOOMILDIR='fontconfig-ultimate-pkgbuild/01_freetype2-iu'

# apt-get build-dep freetype
# apt-get install devscripts

revision=''

die()
{
	echo
	echo "FAIL: $@"
	exit 1
}

downloadsrc()
{
	for i in freetype freetype-doc ft2demos
	do
		wget "$FREETYPEURL/$i-$revision.tar.gz" ||
			die "wget $FREETYPEURL/$i-$revision.tar.gz"
	done
}

prepare()
{
	rm -rf freetype
	mkdir freetype
	cd freetype || exit 1

	wget --output-document=bohoomil.zip "$GITURL" || die "wget $GITURL"
	unzip bohoomil.zip || die 'unzip bohoomil.zip'

	revision=`grep -m1 '^pkgver\=' "$BOHOOMILDIR/PKGBUILD"`
	[[ $revision =~ ^pkgver=(.+)$ ]]
	revision=${BASH_REMATCH[1]}

	if [ -z "$revision" ]
	then
		die "can't get freetype revision from $BOHOOMILDIR/PKGBUILD"
	fi

	echo "Found freetype revision: $revision"

	apt-get source freetype || die "apt-get source freetype"
	rm *

	cd freetype-* || die "can't cd to freetype-X/debian"
	rm *

	debrev="$revision"
	if [[ ! $revision =~ ^.+\-.+$ ]]
	then
		debrev="$revision-0.1"
	fi

	debchange --newversion "$debrev" 'bohoomil patches added' ||
		die "debchange failed"

	cd ..
	cd "freetype-$revision" || die "can't cd to freetype-$revision"

	downloadsrc

	# build error fix
	echo 'usr/share/man' >> debian/libfreetype6-dev.install

	# replace debian patches in freetype
	rm debian/patches-freetype/*

	cp "../$BOHOOMILDIR/"*.patch debian/patches-freetype/
	ls debian/patches-freetype/*.patch | xargs -n 1 basename |
		sed 's|$| \-p1|' > debian/patches-freetype/series

	# remove patches from freetype2-demos
	rm debian/patches-ft2demos/*
	echo '01-empty.patch' > debian/patches-ft2demos/series
	touch debian/patches-ft2demos/01-empty.patch
}

build()
{
	export CFLAGS="-Wno-error"

	echo "y" | debuild -uc -us
	# now build fails, update symbols file, and run again
	cp debian/libfreetype6/DEBIAN/symbols debian/libfreetype6.symbols
	echo "y" | debuild -uc -us -nc
}

buildi386()
{
	export CFLAGS="-Wno-error -m32"
	export LDFLAGS="-Wl,-melf_i386"
	export DEB_BUILD_ARCH="i386"
	export DEB_HOST_MULTIARCH="i386-linux-gnu"

	echo "y" | debuild -uc -us -ai386

	cd ..
	echo "### fix debs i386 ###"

	# fix depends libc6-i386 to libc6
	for i in *_i386.*deb
	do
		dpkg -x "$i" "/tmp/$i"
		dpkg -e "$i" "/tmp/$i/DEBIAN"
		sed '/Depends\: / s|\-i386||g' -i "/tmp/$i/DEBIAN/control"
		dpkg -b "/tmp/$i/" "$i"
		rm -r "/tmp/$i"
	done
}

if (( $EUID < 1000 ))
then
	echo 'Moron!?'
	exit 1
fi

prepare
build

# uncomment if you want to build i386 packages on amd64 arch.
#buildi386

 , ,

PoMbl4
()