Re: WineHQ on CMS/Framework

2012-09-23 Thread Aleksey Bragin
We had same question in the ReactOS web site. We have our own in-house 
developed CMS called RosCMS now, however there is a strong desire to 
change it to something maintained by 3rd party, so Drupal and Typo3 were 
considered.


Two prototype websites were made, one using Drupal7 and another one 
(more recent and more complete) using Typo3. What's important is that we 
have a substantial set of interconnected services too:

* JIRA (formerly Bugzilla, integrated authentication with the main website)
* Mailing lists (no need for integration)
* FishEye as a source code browser (integrated)
* GIT mirror with source code browser (no need for integration)
* Doxygen source code browser (no need for integration)
* MediaWiki (fully integrated, single sign-on)
* Forums (fully integrated, single sign-on)
* Compatibility database (integrated with RosCMS, single sign-on, 
however it's ported neither to D7 nor T3)

* Test manager (http://www.reactos.org/testman )
* Paste service (fully integrated to prevent spam, single sign-on)
* Trunk builds download manager (http://www.reactos.org/getbuilds/ )

If any help is needed, let me know, would be glad to share.

Best regards,
Aleksey Bragin.

On 22.09.2012 7:32, Kyle Auble wrote:

After working on the wiki for a while, I finally wanted to ask about
possibly moving WineHQ to a CMS or web framework.

First off, while there are a couple of mentions on the wiki and mailing
lists, is there still much interest in doing this? If there is, I think
the second question is which kind of system do we want to use?

While http://wiki.winehq.org/WinehqDesign mentions Drupal, which has a
lot of plugins and features for easy editing, I've read that a CMS can
become a hassle if your website needs to do more complex things than
serving regular chunks of content. WineHQ provides a bug-tracker, a
forum, a wiki, mailing lists, source-code browsers, and other tools
besides static content, with lots of interconnections between them. If
we did go with a web framework, we could still probably run a CMS on top
of it for the AppDB and static pages.







Re: user32: Implement support for getting class data GCLP_HBRBACKGROUND on other process window

2010-09-17 Thread Aleksey Bragin
Some comments regarding this patch. It's a beginning of a series of  
patches aimed to improve the desktop mode of Wine, including support  
for a real Explorer-alike environment (which is Martin Fuchs'  
explorer at the moment).


So this patch implements required GetClassLong functionality of  
getting background brush handle of another process window's class. I  
think other apps also require this (e.g. I saw a similar bug in  
Wine's Bugzilla regarding Microsoft Project 2000), but it is not so  
critical as in Martin's explorer.



WBR,
Aleksey Bragin.

On Sep 17, 2010, at 10:13 PM, Aleksey Bragin wrote:


<0001-user32-Implement-support-for-getting-class-data-GCL.patch>







Re: Wine on cygwin now compiles!

2010-06-27 Thread Aleksey Bragin

Is there any real, practical interest in Wine on Windows?
I've been making some progress in this direction recently (though I  
think my approach would be to have a ported, NT-version of  
wineserver.exe which just uses native functions of the OS instead of  
emulating them over cygwin, which emulates those features using its  
own code once again; discussable anyway).


WBR,
Aleksey Bragin.

On Jun 17, 2010, at 12:19 AM, Steven Edwards wrote:


On Wed, Jun 16, 2010 at 4:04 PM, Roderick Colenbrander
 wrote:

I don't expect Wine itself to ever work on cygwin. Last year I asked
AJ about it and there are some special file handle features which are
needed. This stuff is supported in SUA but at least in the Vista
version this was broken. They MIGHT have fixed it for Win7, so if  
Wine

can work on Windows it would need Win7 but still you would need a
version which supports SUA (which are Ultimate and perhaps some
business version).


If anyone is sufficiently interested in the sendrecv message sockets
over file descriptor stuff (I know I am not anymore) there may be an
archived email with a regression test I found showing the problem.
Even though it was now listed as a supported operation, it kinda sorta
worked in limited cases under Server 2003 and hung in others which
Wine stress. I don't even recall all of the details at this point but
it culminated in me presenting my findings to the SUA team developers
and them saying 'that's nice, call our support to file a bug report'.
Since I could not actually file the bug report myself online and
calling Microsoft support is like a $200 (even if they do issue a
refund or not charge your CC if it's a new real bug), I decided to
waste no more time with it.

--
Steven Edwards

"There is one thing stronger than all the armies in the world, and
that is an idea whose time has come." - Victor Hugo








Re: Graphics Driver Interface Standardization

2010-04-21 Thread Aleksey Bragin
I'm doing my own (non-X11 and not a Quartz one) version of a graphics/ 
user driver, and the interface is quite stable. Only a few minor  
changes were done over the period of ~6 months.


Also, if I don't mistake, the specific winex11 calls from explorer  
are not needed anymore.



WBR,
Aleksey Bragin.

On Apr 21, 2010, at 12:40 AM, Charles Davis wrote:


Hi,

I'm getting ready to implement the Quartz Driver. For those of you who
don't know, this is a special graphics driver that only works on  
Mac OS

X, and uses its native Core Graphics (aka, Quartz) system to draw.

But before I can do this, there are two things that need to be done:

1. Wine currently assumes that the current graphics driver is the X11
driver. It directly GetModuleHandle()'s winex11.drv in order to call
driver functions. This needs to be fixed.
2. The driver interface needs to be standardized.

I can fix the first problem by adding a Wine-specific export to GDI32,
then updating all the winex11 clients to call this function, but the
second problem will make writing a non-X11 driver problematic. The GDI
and USER interfaces are already somewhat standardized, but the reason
many clients call winex11.drv directly is to call the "Thread-Safe  
X11"
locking routines. Also, Explorer calls winex11 to create the  
desktop and

notification area ("systray") windows.

Therefore, I propose this interface. It's largely based off of  
winex11,

but with some small modifications. It's attached to this mail. What do
you think of this?

And don't tell me that we need a DIB engine before I get started on
winequartz. I intend to use Mac OS X native APIs (like Core Image) to
accelerate DIBs, in much the same way winex11 uses Xrender.

Chip








Arwinss

2010-01-18 Thread Aleksey Bragin

Hello,
I would like to present my project here too, because I think this  
information will be interesting for Wine developers. At least, I have  
not seen anyone gone that far using Wine code.


I came up with an idea to create an alternative Win32 subsystem,  
which would be targeted to NT-alike OSes: Windows NT family and of  
course ReactOS, based on Wine as much as possible. Detailed  
presentation with explanations is attached, along with links to some  
more information.


Briefly, what I did:
gdi32.dll - source code is nearly unmodified from Wine, but compiled  
in ReactOS tree, into a real PE DLL.
user32.dll - source code is nearly unmodified from Wine, but compiled  
in ReactOS tree, into a real PE DLL.
What about Wineserver, you would ask? SERVER_START_REQ and related  
macros are rewritten to perform a syscall to win32k.sys (more about  
win32k.sys below). Server protocol is the same, but of course many  
requests aren't need.
winex11.drv - this is the one if you want X Server to be your  
interface. This is unchanged Wine source code, again compiled inside  
a ReactOS source tree into a PE DLL
winent.drv - an alternative user/gdi driver, which mostly forwards  
all calls into a kernel mode graphics engine located in win32k.sys  
(which is compatible with Windows video drivers, so all acceleration  
could be used).
win32k.sys - kernelmode counterpart of the new Win32 subsystem,  
contains graphics engine, user server which is based on a small part  
of platform-independent Wineserver source code adapted to kernelmode,  
and a simple window manager which calculates visible regions for  
windows and manages window showing/hiding.


All other parts are used from the host OS (be it Windows, or ReactOS).

The most funny thing is that this subsystem actually started to work!  
(I attached a few screenshots in the presentation). There are still  
some bugs making Arwinss not really usable at the moment, but I'm  
inviting all developers to participate and help me bring it to a  
fully usable condition, so that it supports at least all apps which  
Wine supports plus those which Wine doesn't support due to problems  
in other parts.


The presentation: (links to source code and further information are  
in the presentation)

http://www.reactos.org/media/docs/2010/arwinss.pdf

With the best regards,
Aleksey Bragin.




Re: comctl32: Fix bitmap size calculation

2009-03-27 Thread Aleksey Bragin


On Mar 27, 2009, at 6:47 PM, Vitaliy Margolen wrote:
Anyway, e.g. Sib Icon Edit required ~ 30 Mb (something like 27  
images *
13440 width * 24 height * sizeof(each pixel)) of memory for every  
instance

to run (due to this bug). Now it requires only about 300kb


Fixing one app doesn't mean it's correct. Yes, there is an obvious  
error in

the image list, but you are not just fixing it. You also removing some
functionality that tool bar depends on.


I'm not fixing an app (not one, but every which uses this codepath,  
might be not many but in Wine you would not notice this due to  
different memory model than in a real OS), I'm fixing a wrong  
behavior when width of whole bitmap was confused with width of one  
item in the image list!
Simple formula: NewTotalWidth = NewItemCount * WidthOfOneItem  
(correct one), and now in Wine: NewTotalWidth = NewItemCount *  
TotalWidth.


Then, after fixing, cx parameter becomes unused and thus gets  
deleted. There was no way of changing individual image list item's  
width with that cx parameter. The only possibility of its usage might  
have been checking if image list is going to be reduced instead of  
expanded, but that check is there, and is performed without using cx.


Am I wrong?




Re: comctl32: Fix bitmap size calculation

2009-03-27 Thread Aleksey Bragin

On Mar 27, 2009, at 3:39 AM, Vitaliy Margolen wrote:


Aleksey Bragin wrote:

Fix bitmap size calculation in IMAGELIST_InternalExpandBitmaps and
remove unneded parameter. Memory requirements are greatly reduced  
after

this fix.

The bug was an ambiguous meaning of a cx parameter, which was  
supposed

to be a width of an individual image inside the list, but width of a
whole bitmap was passed in thus making memory requirements huge  
(number

of images * width of whole bitmap = required bitmap size).
Furthermore, cx parameter is redundant because all checks are already
there (that the image list can't be reduced), and besides of that  
there

is no use for it anymore. Thus it's been removed.


That bug was introduced while attempting to change the size of the  
bitmaps
for the toolbar. Looking at the code it's rely iffy if image list  
really
should be able to do that at all. Or that toolbar should handle the  
resize

itself (most likely).

The commit I'm talking about is:
commit 19cef6ca1059140d00ac8b445ab3f9eb0491f239
Author: Gerard Patel 
Date:   Sat Jul 8 12:48:37 2000 +

Allow the size of bitmaps to be changed after toolbar buttons have
been added.


With your patch you "disable" this ability (which I don't think is  
working
anyway). So some tests are in order. At least a test program  
demonstrating

what's the correct behavior.

Vitaliy


Yes exactly, however I didn't provide any testcase, because I just  
removed non-used parameter and fixed existing code. If someone wants  
to implement image list having variable width of each image - he's  
free to proof that Windows does this (which I very much doubt).


Anyway, e.g. Sib Icon Edit required ~ 30 Mb (something like 27 images  
* 13440 width * 24 height * sizeof(each pixel)) of memory for every  
instance to run (due to this bug). Now it requires only about 300kb :-).