pashazz 18.03.2010 21:24

Qt SoftwareWineGame - программа для подготовки Wine и установки в него приложений

WineGame - это программа (написана на Qt4.6/C++) для легкой установки игр и приложений в Wine.


1. Чем должно быть
Это должна быть программа, которая делает большинство манипуляций с Wine за пользователя.
Например при вставке диска должно появляться предложение об установке Windows-программы:

=screen

Также должны быть варианты ручной установки (по выбору).

2. Что сделано сейчас
- Установка программы и подготовка Wine по скриптам
- GUI
- Диалог простой установки приложения при вставке диска (и определение игровых дисков) (см. выше).
- Интеграция с утилитой Winetricks
-Управление установленными приложениями.

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

3. Возможности скриптования.
О формате пакета WineGame вы можете прочесть в Wiki на сайте проекта.
Я расскажу, что вообще сейчас возможно.
1) можно задать скрипты preinst и postinst, к-рые будут запускаться до и после запуска EXE
2) можно задать путь к файлу setup.exe из корня диска, чтобы оно запускалось автоматически, если WineGame распознает диск.
3) можно указать в файле .cdrom (в пакете WineGame) имена файлов и папок корневой ФС диска, чтобы WineGame распознал диск.
4) есть интерфейс управления префиксом (виртуальной "windows")
5) можно указать путь для скачивания дистрибутива Wine, оптимизированного под игру.
6)есть интеграция с winetricks. Для того чтобы ее задействовать, нужно лишь в control-файле пакета указать через пробел пакеты Winetricks. Их ОЧЕНЬ много, это и установка определенных ключей реестра, и установка шрифтов, DirectX, .NET, IE 6, IE7, это и установка версий Windows, и много чего еще.

4. Что нужно сделать

* нотификации через D-Bus
* правку .desktop-файлов, создаваемых Wine (к сожалению Wine не может определить, c помощью какого бинарника этого самого wine`а была установлена программа, поэтому по desktop-файлу запускается системная версия Wine, а не "кастомного".
* загрузку необходимых файлов не через wget, как сейчас (это замораживает GUI), а системными средствами Qt.
* Скрипты, скрипты, скрипты!!!!

Спасибо за помощь.
Официальный сайт.


Тэги: qt4 wine
+ 3 -
Похожие Поделиться

pashazz 18.03.2010 21:25 #
Сразу скажу, мой предыдуший проект SaneSetup я заменил на убунтуреп с пакетами sane из Git и фирмварем.
digiwhite 18.03.2010 21:31 #
А почему собственно использование wget замораживает GUI? Как раз наоборот ИМХО лучше иметь возможность выбирать утилиту загрузки.

И что за такие "Скрипты, скрипты, скрипты!!!"?
pashazz 18.03.2010 21:45 #
> wget замораживает GUI?

Я не могу запустить wget в отдельном потоке, т.к. тогда все "побежит вперед" (я пробовал, да.)
А смысла запускать в отдельном потоке wget нету, я не могу взять данные от wget (я не осилил парсер его вывода)

> Скрипты, скрипты, скрипты!!!
Требуется много скриптов для поддержки игр, да.
pashazz 18.03.2010 21:47 #
и не надо меня называть неосилятором QThread, там его использование просто не оправдано.
digiwhite 18.03.2010 21:51 #

Я не могу запустить wget в отдельном потоке, т.к. тогда все "побежит вперед" (я пробовал, да.)
А смысла запускать в отдельном потоке wget нету, я не могу взять данные от wget (я не осилил парсер его вывода)

Да ну, что за ерунда. Все можно взять, все можно получить и использование QThread абсолютно оправдано.
pashazz 18.03.2010 21:59 #
ладно, попробую завтра поэкспериментировать.
pashazz 20.03.2010 18:40 #
Будьте добры, покажите мне рабочий пример чтения выхлопов wget в Qt. У меня не получилось (использовал функции QProcess. Сигнал readyRead не вызывается вообще, ф-ция readAll возвращает пустую строчку.
wiz 18.03.2010 21:37 #
А в чём профит C++ в таком мидлварном проекте? Скорости не требуется, в памяти оно не висит... Не понимаю.
digiwhite 18.03.2010 21:39 #
Личное желание автора; поднятие уровня знаний Qt и т.п.

Restless 18.03.2010 23:11 #
знания Qt можно поднимать и на скриптовых языках, честно не понимаю, зачем "париться" в данном случае с плюсами, лично мне было бы жалко своего времени.
digiwhite 18.03.2010 23:28 #
Без обид, но подобные вам уже утомили подобной хренью. Надо обязательно попиздеть сказать, что зачем, надо вот так и т.п. Тут все просто - не пользуйтесь, если не устраивает.
Restless 18.03.2010 23:31 #
извините, где вы увидели, чтобы я кому-то что-то указывал? или высказывание мнения вы приравниваете к пиздежу принуждению?
exelens 18.03.2010 23:32 #
Прошу прекратить...
exelens 18.03.2010 23:32 #
Прошу прекратить...
Goury 18.03.2010 21:39 #
а почему у варкрафта иконка скайпа О_о ?
pashazz 18.03.2010 21:46 #
1) я не могу читать иконки с диска (формат ico не поддерживается Qt)
А так я подставил первую попавшуюся иконку в скрипт варкрафта...
Shtsh 18.03.2010 23:23 #
Qt не поддерживает bmp?
ico = bmp
или я ошибаюсь?
Goury 18.03.2010 23:41 #
не совсем бмп, но довольно близко
хотя вот факт - если переименовать бмп в ико, то винды в некоторых случаях цепляют его как иконку. но не всегда
но вот далеко не всегда иконка бывает в ико или ещё чём-нибудь подобном - очень часто иконка в екзешник воткнута

кстати, была статья на убунтуфоруме русском про иконку из екзешника в лычку вайна - думается это то самое, что надо тут

ну и полюбому лучше флажок винды, чем пузырь скайпа - хотябы в тему
pashazz 19.03.2010 14:15 #
хаха, и все-таки у меня получилось получать ico файлы с диска. Это хорошо.
Goury 19.03.2010 23:23 #
я тебя очень категорически поздравляю с этим достижением
а получать иконку из вендобинарника ?
pashazz 20.03.2010 16:32 #
Незачем.
digiwhite 18.03.2010 23:24 #
Щито простите?
digiwhite 20.03.2010 09:59 #
Всем минусовавшим - http://www.welinux.ru/post/2546/#cmnt45909
Restless 18.03.2010 23:14 #
playonlinux, q4wine. зачем еще одна программа?
если интересен этот вопрос, то лучше помогите уже существующим проектам.
pashazz 19.03.2010 10:38 #
Я решил сделать программу, в к-рой разберется даже ребенок, а q4wine очень сложен. PlayOnLinux - да, что-то похожее, но он тоже интерфейсом не блещет.

P.S. C++ я выбрал для поднятия знаний.
Restless 19.03.2010 13:18 #
Не знаю, чем вам не понравился PlayOnLinux, вполне приемлемый на мой взгляд интерфейс. Но это дело ваше, как и выбор языка.
Goury 20.03.2010 17:12 #
под спойлером кусочек оффтопика:
а я вот когда-то давно думал, как же сделать так игру, чтобы её можно было играть не только в винде (это ещё в конце 90-х было)
в начале 2000-х я сделал игру под дос, которая прекрасно запускается хоть в винде, хоть в вайне, хоть в доскоробке
а недавно я нашел способ лучше - просто сделал игру нативно для линукси
получилось даже лучше, ня!


фтопик:
было бы приятно увидеть ченжлог
хотябы в будущем
ченжлог это вообще очень приятная вещъ
по одному взгляду на ченжлог можно сразу понять, что девелопер занимается не *****, а риально пашет. пашуших девелоперов видеть очень приятно.
ня
pashazz 21.03.2010 01:23 #
1) добавил changelog (оч. подробный, смотрите Git)
2) не увидел примеров (не от вас вроде), перешел с wget на технологии Qt
digiwhite 21.03.2010 21:04 #
Надеюсь не захардкодили это дело?
pashazz 22.03.2010 17:47 #
QNetworkAcessManager метод я захардкордил. Но если вам это не нравится, пришлите метод с использованием wget (только чтобы GUI не зависал, и был индикатор прогресса).
Старый wget-метод есть в коде, он закомментирован
digiwhite 24.03.2010 11:22 #
В выходные попробую глянуть.
l1feh4ck3r 22.03.2010 06:35 #
А список коммитов вас не вдохновляет?
Goury 22.03.2010 08:14 #
не так сильно, как ченжлог