Hello everybody,
Just to let you know, I've just added HTTP/WebDAV access for our
read-only Git mirror as requested by a developer.
This means that you can also clone from
http://git.reactos.org/reactos.git now if you sit behind a firewall
blocking the Git protocol.
Of course, the previous URL git://git.reactos.org/reactos.git will
continue to work.
Best regards,
Colin
HI,
recently I had to alter some inf-files for fixing a bug. At present we have
for each platform (i386, arm, amd64) separate files, which are hard to
maintain because of some identical, that aren't platform dependent. Therefore
I suggest the following change and I will write an example and the necessary
tool:
- combine all platforms to one file and work with special block markers
- block markers work like filters, empty markers means all platforms otherwise
the platforms limited to are given in comma separated lists
- we have to maintain only one single file and the alteration is minimal,
because the marker is a simple (syntactically comment) line
like ";#platform_a,platform_b#" or ";##"
- the needed file is extracted at build time, always up-to-date and shipped in
the same way as present
General remark: we have to make some efforts to bring (or at least to keep)
the project in understandable and maintanable state. We have to use and
introduce tools to reduce needless efforts resulted by managing multiple
similar files which could be better generated without failures (that people
tends to do). This and only this is my intention for this suggestion.
Request for comments - other ways or changes with same goal are welcome
Matthias
--
Matthias Kupfer phone +49 371 236 46 52
Wilhelm-Firl-Straße 21 mobile +49 160 859 43 54
09122 Chemnitz, Germany
Hi guys/devs/testers/translators/followers !
I have just received this information from the OSWC organization:
"Nos complace comunicarle que su propuesta presentada al Call for Paper ha sido
aprobada de forma preliminar por el Comité de Ponencias de la Conferencia
Internacional de Software Libre para su comunicación pública.
Actualmente el programa de la Conferencia se encuentra en una fase temprana de
elaboración, por ello solicitamos de usted nos comunique antes del próximo día
28 de septiembre de 2010, su disponibilidad para estar en Málaga tanto el día
27 de octubre, el 28 o ambos.
Agradecemos su dedicación e interés y esperamos disfrutar de su compañía en
Málaga
Atentamente "
You can use Google translator. Or summing up: "We are IN"
Thanks to anyone who has voted and wish me good luck :)
If anyone is interested about coming, please contact me before 28 September (there is one day just for professionals and closed to the general public) :)
Victor Martinez
"
> From: gedmurphy(a)gmail.com
> To: ros-dev(a)reactos.org
> Date: Thu, 23 Sep 2010 08:09:57 +0100
> Subject: Re: [ros-dev] 0.3.12 milestones status
>
> victor Martinez wrote:
>
> > In the same way, and imho, I think it is much better
> > to avoid sending critical code one month before the release.
>
> This isn't how you release.
> The whole point in branching for a release is so you can stabalise the
> branch whilst trunk continues to be 'bleeding edge'
> What's the point in branching otherwise? We may as well just tag trunk and
> do away with branching.
I am not agree :) As far as i see we have tried to (more or less)stabilize trunk before branching at least in the 2 latest releases. An i.e is the 0.3.12 release, if we are following the "bleeding edge" concept then we should have branched several months ago and just pulled the regression fixes from trunk to the branch. Our approach was different: Stabilizing trunk fixing the known regressions (which,btw,were marked as Milestones) and then branching.
There is not an incompatibility with the "stabilizing trunk" and "branching" concepts. First because exists the "Hack-releases" (fixes just applied for the release) and that just can be done in a branch. Second because a (more or less) stabilized trunk doesn't mean a regression-free trunk (but it could be).
The first main advantage (about avoid sending critical code in the month we are going to release) is that we will have a whole month to check if the critical changes has waken up underlying bugs (or if the critical changes has introduced Eisenbugs).If we are following the "bleeding edge" approach we can just pray to find those Eisenbugs in the Release Candidate ISO tests and, since there aren't a lot of testers checking the RC ISO, it is quite unprovable.
The second main advantage is that we reduce the Release Engineers amount of work. It is not the same bugging them to create just one RC ISO than bugging them to create 2 or 3 because playing with the "bleeding edge" concept.
> > I am not agree :) As far as i see we have tried to (more or less)
> > stabilize trunk before branching at least in the 2 latest releases.
> This is because trunk has been in a mess for the past few releases.
> Due to its instability it wasn't worth branching it as it was so far from
> being releasable.
> In the past we had (strived for) a 2 month release cycle.
> We branched every 2 months no matter what and then worked on getting that
> release out.
> This is how linux and most other serious open source projects work. It's all
> about discipline.
"About discipline" and about having a lot of developers which can cover all the needs a project has. ;)
And let me not talk about some "serious open source pojects" with tons developers/users which has introduced and released with critical regressions.
> > There is not an incompatibility with the "stabilizing trunk" and
> > "branching" concepts. First because exists the "Hack-releases" (fixes
> > just applied for the release) and that just can be done in a branch.
> > Second because a (more or less) stabilized trunk doesn't mean a
> > regression-free trunk (but it could be).
> This is exactly what it's for. Branch, fix bugs or hack bugs away.
> Merge real bug fixes back into trunk, tag and release.
Sure, I was just answering to your "What's the point in branching otherwise?" which seemed to be a question about an incompatibility with "avoiding critical commits" and "stabilizing trunk" before branching.
> > The first main advantage (about avoid sending critical code in the
> > month we are going to release) is that we will have a whole month to check
> > if the critical changes has waken up underlying bugs
>
> This is the ongoing job of the testers to do both in trunk and more
> importantly, in release branch.
> If any serious bugs are found late in the process, drop the branch, fix in
> trunk and rebranch.
Just 2 words: Im-possible. :) You need a testing time frame.
There is something called "Probability" of finding a regression(even more finding an eisenbug). If you branch right after a critical commit and that critical commit has introduced a regression you have much less "Probability" to find it that if the last critical commit was made 1 month ago.
Even more, Release Candidates are mainly just tested by the Testers. So finding the regression depends mainly on "Probability Testers find a regression in one week"
But during that Quarantine month other commits (non critical ones) can be sent and developers can feel/find regressions too. So finding the regressions would depend mainly on "Probability Testers and Devs find a regression in one month". Notice that the testing group is wider and so the time.
We don't have Testing manpower to find a regression the next day/week it was commited.
> > The second main advantage is that we reduce the Release Engineers amount of work.
> But you hamper development. Locking down trunk for a month before every
> release is a sure way to drive away all of your developers.
> I would refuse to work on a project which worked in this way, as would most
> other devs I assume.
Who talked about freezing trunk? I should define 1-month Quarantine better: "Avoid commiting to critical areas. The trunk is open for those non-critical ones. You can send meanwhile your critical patches to a branch and after the release pushing them to trunk.". You have a ReactOS branch if needed.
> If you're finding when release time comes that no devs work on fixing the
> release branch and instead continue adding new code to trunk, then you have
> a developer discipline issue not a release process issue.
If we pay our developers we can ask for discipline meanwhile we can just accept their patches or refuse them.
Will you refuse a Patch? Or maybe revoke a Dev commit access to create discipline? Any useful ideas?
> Locking trunk is just a way to work around your developer discipline problem
> instead of tackling the real problem, your devs can't be bothered to fix
> existing code and continue to ignore their duties and add new code instead.
Noone talked about Locking Trunk, and there are no duties. IIRC you were the first person that explained me why there are no dutie$ in this project.
> Ged.
Vic
Hello,
0.3.12 was branched today, so I removed the lock from trunk. However,
I want to really ask everyone not to jump into modern fancy features
but pay more attention to fixing core parts of the system.
Victor is doing the change log draft, and if Colin has time I would
like to ask him to apply our usual release stuff.
WBR,
Aleksey Bragin.
You have done a pretty cool work.
0.3.12 Changelog is opened, I have added a "Regression", "General Bugs" section where i reflect the Bugs fixed from 0.3.11 to 0.3.12. This is a little bit more user-friendly.
You can find it here: http://www.reactos.org/wiki/ChangeLog-0.3.12#General
The Bugzilla stats shows the next:
- There were 259 General Bugs fixed (Regressions fixed are not counted here)
- There were 20 Translations sent in 11 different Languages.
- And you fixed 61 Regressions
So more than 320 bugs has been fixed in less than 300 days.
(Without counting Bugfixes in branch)
You have killed more than 10 bugs older than 3 years old. And the eldest one is "#969 Minimized windows are shown on desktop" which is 5 years old.
Congratz :)
[CC] dll/win32/kernel32/file/file.c
cc1: warnings being treated as errors
dll/win32/kernel32/file/dir.c:21: error: 'gDebugChannel' defined but not used
make: *** [/mnt/ramdisk/buildbot/release/obj/dll/win32/kernel32/file/dir_kernel32.o]
Error 1
make: *** Waiting for unfinished jobs....
Hello,
After the switch in 48124 to PE FreeLDR, I am unable to boot FreeLDR any longer.
I have tried official, as well as various unofficial freeldr.sys, none worked.
47892 version works fine, 48124 does not.
On a 512MB IDE disk, I got the "_" VGA cursor scrolling endlessly/randomly on the screen, before even seeing "Loading FreeLDR..."
With a 1GB SCSI disk, tested also with a 6GB IDE disk, it remains stuck at "Loading FreeLDR...".
This seems strange: "Now booting from fat partitions (looks like that's what sysreg does) works again. It's safe under the condition that the cluster size is at least 4352 bytes, which is true for harddisks of sizes bigger than 272MB. Booting from smaller fat disks, like floppy breaks when freeldr.sys gets fragmented, which should rarely happen."
Please advise.
-r
Hello all,
I have noticed, that pxefixup does not set IMAGE_SCN_MEM_NOT_PAGED flag
for read-only data section ".rdata". May it be, that it is problem
for my own build of tools
586-mingw32-gcc (GCC) 4.4.2 and
GNU ld (GNU Binutils) 2.20.51.20100608
I have fixed the problem by preparing modified LD script version
which collect object files .rdata section into .text section
for my driver build.
But .rdata is legitimate section and it is automatically
generated by GCC. I have not found information in Wiki
or list archives, that there is some way/patch to deal
with this situation. But if it is allowed, that WDM
driver binaries contains readonly section then data paging
could lead to horrible consequences. Possible fix
diff --git a/reactos/tools/pefixup.c b/reactos/tools/pefixup.c
index f908a9a..d6ec1f4 100644
--- a/reactos/tools/pefixup.c
+++ b/reactos/tools/pefixup.c
@@ -381,6 +381,7 @@ int main(int argc, char **argv)
if (!strcmp((char*)section_header->Name, ".text") ||
!strcmp((char*)section_header->Name, ".data") ||
!strcmp((char*)section_header->Name, ".idata") ||
+ !strcmp((char*)section_header->Name, ".rdata") ||
!strcmp((char*)section_header->Name, ".bss"))
{
section_header->Characteristics |= htodl(IMAGE_SCN_MEM_NOT_PAGED);
If .rdata are not allowed or should be used only for pseudo_reloc,
then the ldscript for kernel code should be provided.
Missing flag for .rdata section in objdump ouput
$ i586-mingw32-objdump --headers ul_wdm.sys
BFD: ul_wdm.sys: Warning: Ignoring section flag IMAGE_SCN_MEM_NOT_PAGED in section .text
BFD: ul_wdm.sys: Warning: Ignoring section flag IMAGE_SCN_MEM_NOT_PAGED in section .data
BFD: ul_wdm.sys: Warning: Ignoring section flag IMAGE_SCN_MEM_NOT_PAGED in section .bss
BFD: ul_wdm.sys: Warning: Ignoring section flag IMAGE_SCN_MEM_NOT_PAGED in section .idata
ul_wdm.sys: file format pei-i386
Sections:
Idx Name Size VMA LMA File off Algn
0 .text 0000cabc 00011000 00011000 00001000 2**2
CONTENTS, ALLOC, LOAD, READONLY, CODE
1 .data 000000e8 0001e000 0001e000 0000e000 2**2
CONTENTS, ALLOC, LOAD, DATA
2 .rdata 00003c20 0001f000 0001f000 0000f000 2**2
CONTENTS, ALLOC, LOAD, READONLY, DATA
3 .bss 00000050 00023000 00023000 00000000 2**2
ALLOC
4 .edata 00000033 00024000 00024000 00013000 2**2
CONTENTS, ALLOC, LOAD, READONLY, DATA
5 .idata 000008c4 00025000 00025000 00014000 2**2
CONTENTS, ALLOC, LOAD, DATA
6 .rsrc 0000035c 00026000 00026000 00015000 2**2
CONTENTS, ALLOC, LOAD, DATA
7 .reloc 00000cd4 00027000 00027000 00016000 2**2
CONTENTS, ALLOC, LOAD, READONLY, DATA
8 .rossym 0001576d 00028000 00028000 00017000 2**2
CONTENTS, READONLY, NEVER_LOAD, EXCLUDE
Hi folks,
did anyone already do some research on whether ReactOS could
run in lguest ?
Maybe this could be a nice for development/debugging and
attracting more people ;-)
cu
--
----------------------------------------------------------------------
Enrico Weigelt, metux IT service -- http://www.metux.de/
phone: +49 36207 519931 email: weigelt(a)metux.de
mobile: +49 151 27565287 icq: 210169427 skype: nekrad666
----------------------------------------------------------------------
Embedded-Linux / Portierung / Opensource-QM / Verteilte Systeme
----------------------------------------------------------------------
As we progress into regression fixing, we are now in the good moment to
decide upon upcoming release. It would be great if we could manage with the
0.3.12 for the October Chemnitz event, where we are invited again to
participate, not to mention that its the time for such release.
Right now, in my opinion we should decide without futher delay on the
following:
- reviewing the REGRESSION list, this is - to confirm entries with 0.3.12
milestone already set, as well as doublecheck the rest, to see if any should
be promoted to said milestone. This is the action of most utter importance,
as there is no way to know how much time will be spent on futher research,
testing and fixing them;
- decide upon bugs originated with last ole/comctl sync - are we haxing them
locally, risking another winesync or perhaps reverting?
- reviewing patches stored at http://www.reactos.org/wiki/Bug_Filters as
well as deciding if any should be adapted for current release.
Those actions, first of them especially, should be performed as swift as
possible, else we might risk considerable delay and nervous finish before
the Chemnitz.
hello,
this is to sir_richard, mostly,
i got this crash (assert) when shutting down ReactOS with the VirtualBox
Guest Additions installed.
i think the video driver is guilty for some reason i cannot understand...
probably you know :)
http://www.reactos.org/paste/index.php/7731/
Hello to all ReactOS developers,
thanks for great work. I introduce our case first.
--------------------------------------------------------------------
We have developed, maintain and use uLan RS-485 multi-master protocol
for years - sources traced to 1992 year. The protocol is used by
multiple companies and individuals for broad range of applications
from laboratory instruments control, home automation to agriculture
feeding and milking systems. We started by Linux support. But due
to customers demand, we have added Windows KDM and later WDM
support as well. I remember, that pointer to our driver has been
mentioned as one of little fully open-source drivers available
for Windows on ReactOS list many many years ago.
The uLan project homepage
http://ulan.sourceforge.net/
The uLan driver code can be compiled for Linux, Windows NT KDM,
Win98/2k/Vista WDM, plain DOS, system-less ARM and other devices.
The old legacy UART, PCI addon cards and USB converters
are supported for Linux and WDM version. All builds form same
sources with unification layer of macros which unifies systems
to something more close to Linux driver model. The code is
not so elegant and readable, the portability layers are quite
complex and sometimes hairy tasks. The traces of old age of
project can be seen there as well.
But it works and may it be, it could be some example
and source of helpers functions for porting of Linux
USB drivers to WDM model.
The ReactOS has got to the stage where it is able to run one
of our user applications utilizing our control protocol link.
Because I believe in open technologies, I would be very
happy if the project is usable even on RectOS - even that
I do not expect that our users could and want to switch
anytime soon or ever.
The Open Chromatography Station - CHROMuLAN
http://sourceforge.net/projects/chromulan/
If you think that it worth, it can be added to the
list of applications working with ReactOS 0.4-git/svn.
--------------------------------------------------------------------
As for the uLan driver. I have maneged it build for WDF with PCI
and UART support only to run on ReactOS and whole CHROMuLAN
setup seems to be functional.
I have even interrest to build driver code with ReactOS to test it more,
find incompatibilities and continue with 64-bit testing in future.
The effort seems to be not so far form success. The driver builds
with RectOS build under Linux when USB support is disabled.
The build with USB seems to be near as well.
There are two main problems:
1) We need to include usbdlib.h in the driver build, but DECLSPEC_EXPORT
in this header is not declared/maintained. We use this file
for next types declaration
USBD_INTERFACE_LIST_ENTRY
PUSBD_INTERFACE_LIST_ENTRY
struct _USBD_INTERFACE_LIST_ENTRY'
May it be, we should use different include headers, but next setup
works for years with Microsoft WDF
#include "wdm.h"
#include "usbdi.h"
#include "usbdlib.h"
2) If we overcome by some hack problem 1) the link fails on undefined
references to
__imp__USBD_ParseConfigurationDescriptorEx@28
__imp__USBD_CreateConfigurationRequestEx@8
There seems to be traces of implementation of these functions
in ReactOS old/disabled USB code. The functions are even included
in usbd.sys, usbd.exp and drivers/usb/usbd . But import library seems
to be missing. Am I right? Is there way to use them or plan to solve
that.
Thanks for reply in advance. Even that we do not much expect to use
ReactOS build in production environment the option has value for us.
It allows to test Windows builds in Linux environment without
need to start Wine for WDF. ReactOS build even helped us to find
some real bugs in our code because rectos runtime is more strict
in some checks then Windows systems.
Please, keep my email addres in reply, I do not expect (have ability)
to follow ReactOS development closely between my other duties.
It is unfortunate a little, that only way to contact developers
on the list is to subscribe.
Best wishes,
Pavel
--
Pavel Pisa
e-mail: pisa(a)cmp.felk.cvut.cz
www: http://cmp.felk.cvut.cz/~pisa
university: http://dce.fel.cvut.cz/
company: http://www.pikron.com/
Hello devs,
Few users at spanish ReactOS blog ( http://reactos.wordpress.com ) are
asking about having both Windows and ReactOS installed in different
partitions at the same time...
And i wanted you to answer, rather than me... :P
What would you say? Is it currently possible?
Hi,
while working on GPT handling for ReactOS, one thing appeared: Microsoft (at least in Windows 2003 SP1) is using hardcoded partition entry size, ie it assumes that every partition entry in GPT will be 128 bytes big. Even if that assertion is largely right, it might exist cases where it's wrong. That's even why there's a field in GPT header that contains such size. Furthermore, reading Apple technical note(1) about GPT precise one more thing: "Do not hardwire the current size of the partition entry (128 bytes).".
As we have no commercial issues with Apple, perhaps could we drop a bit compatibility with Windows 2003 and fix something obvious? In most cases, users won't see any difference. Only difference would be that ReactOS could properly handle GPT with exotic partition entry size when Windows can't.
Any opinion on that subject?
Best regards,
P. Schweitzer
(1): http://developer.apple.com/library/mac/#technotes/tn2006/tn2166.html
Hello,
eVb checked in one of his final patches yesterday from his development machine in China, where we worked on a final pass on the driver. Unfortunately, my last two (unrelated) check ins were done from his machine (as most of you know, I was in China for the past month), and he was not used to SVN caching the credentials of the last user. Revision 48748 was a checkin from eVb, and his "goodbye" was in reference to my departure. Since it used my cached credentials from the same machine, it must've caused a lot of confusion.
Many apologies and thanks for understanding.
-r
fireball(a)svn.reactos.org wrote:
> Author: fireball
> Date: Sat Sep 11 09:20:26 2010
> New Revision: 48745
>
...
> /* Save EFlags */
> + Esp -= 4;
> + *(PULONG)(Esp - 2) = V86EFlags;
>
This looks wrong to me. The (Esp - 2) I mean.
> + if (KiVdmGetPrefixFlags(Flags) & PFX_FLAG_OPER32)
> + {
> + /* Read EFlags */
> + EFlags = *(PULONG)Esp;
> + Esp += 4;
> + }
> + else
> + {
> + /* Read EFlags */
> + EFlags = *(PUSHORT)Esp;
> + Esp += 2;
> /* Read correct flags and use correct stack address */
> - Esp -= 2;
> EFlags &= 0xFFFF;
>
Here the comment got broken a bit.
> /* Set new ESP */
> - TrapFrame->HardwareEsp = Esp;
> + TrapFrame->HardwareEsp = (USHORT)Esp;
>
This is not correct. We earlier calculated the flat Esp from Ss and Sp.
Example:
HardwareSegSs = 0x10, HardwareEsp = 0x10 -> flat Esp = 0x110, then you
substract 4, and get 0x10C. But this is not the value of the new
HardwareEsp. TrapFrame->HardwareEsp needs to be either modified in
parallel to the flat Esp or calculated like (USHORT)(Esp -
(TrapFrame->HardwareSegSs << 4)).
Regards,
Timo
Hi!
I just found a severe bug in hardware detection code of Freeldr. It uses
two configuration nodes in the hardware tree to pass information about
detected hard-disks to ntoskrnl.exe and disk.sys.
First, hard-disk information is passed as a DiskPeripheral node attached
to a DiskController node.
Second, hard-disk information is passed as an array of
CM_INT13_DRIVE_PARAMETER entries in a special system configuration node,
if the disks were detected by the BIOS.
As part of the boot process, the special system configuration node is
used by disk.sys to determine the disk geometry used by the BIOS.
Unfortunately, this configuration node did not use the extended disk
geometry (LBA geometry) but the old CHS geometry even if the LBA
geometry was available.
I already fixed this bug in my local source tree and suddenly Freeldr,
disk.sys and usetup.exe report exactly the same disk geometry as gparted
(http://gparted.sourceforge.net/download.php). Unfortunately, using this
patch breaks the 2nd stage setup.
I will provide a patch that fixes the Freeldr issue as soon as I have
cleaned up the source tree.
Please help me find the remaining bug or workaround that keeps ReactOS
from booting into 2nd stage setup! I guess it is either part of usetup
or somewhere in the partition management routines.
Regards,
Eric