Hi all!
As the first flight to the Hackfest has been booked today, I have
clarified the dates on https://reactos.org/wiki/ReactOS_Hackfest_2017
I will book the loft also for the night from Sunday to Monday (August 13
to 14), so you have the option to arrive earlier and the Hackfest can
definitely begin on Monday.
Please check your travelling options to see whether Sunday or Monday is
the better option for you, and update
https://reactos.org/wiki/ReactOS_Hackfest_2017/Lists
Cheers,
Colin
I'd say that we should show:
- Run or install ReactOS
- Boot from hard disk
- Advanced options
Nothing more should be needed and the first option should be clear that can either lead to a live environment or a setup.
David Quintana (gigaherz) <gigaherz(a)gmail.com> wrote on Tue, July 4th, 2017, 10:45 PM:
> I feel like the boot menu is going to be far too busy for the end user. I'd
> go with something closer to
>
> blah blah:
>
> - Install Now
> - Try without installing
> - Show advanced options...
>
> where:
>
> - Install now -- boots into the graphical installer (no desktop unless
> you cancel or something)
> - Try without installing -- boots into livecd desktop (backed by RAM, I
> guess)
> - Show advanced options... -- opens a second-level menu with
> - Text-mode installer
> - Live boot without Ramdisk
> - etc.
>
>
>
> On 4 July 2017 at 21:45, Hermès BÉLUSCA-MAÏTO <hermes.belusca(a)sfr.fr> wrote:
>
> > Hello everyone,
> >
> >
> >
> > One of the long-term plan for ReactOS was to have a graphical user-mode
> > interface for the 1st-stage setup, similar to e.g. what may be found in
> > newer versions of Windows (Vista+), as an alternative to our current 1st-stage
> > setup in text-mode
> >
> > (note that I say “alternative”, not “replacement”, because both of them
> > can live together without fundamental changes to either ReactOS or our ISO
> > images, both of them can share core functionality, and finally because some
> > people may prefer the text-mode either for unattended installations or for
> > low-memory conditions).
> >
> >
> >
> > You can find some information about the 1st-stage GUI setup here:
> > https://reactos.org/wiki/First_Stage_GUI_Setup . In our source code, it
> > can be found in base/setup/reactos/ . Currently only most of the screens
> > have been implemented, while the core functionality is not present. However
> > this functionality can somehow be taken by reusing the source code of
> > USETUP (see my branch https://svn.reactos.org/svn/reactos/branches/setup_
> > improvements/base/setup/ ).
> >
> >
> >
> >
> >
> > Abstract (aka. TL;DR): I explain below the needed changes introduced
> > experimentally in the “setup-improvements” branch, revision 75273, to
> > generate an all-in-one ReactOS bootcd, that includes both the 1st-stage
> > text-mode setup + 1st-stage GUI setup alternative + live-demo
> > functionality. This is meant to replace our currently separated “bootcd” /
> > “livecd” ISOs, where the latter currently do not offer the possibility to
> > install ReactOS. Some currently known potential problems are evoked.
> >
> >
> >
> > Images: Proposed BootCD contents : http://i.imgur.com/EBA6JHd.png ;
> > Proposed Boot Menu : http://i.imgur.com/14n5Ryi.png .
> >
> >
> >
> >
> >
> > Having a 1st-stage GUI setup also means that it’ll also use the
> > already-existing functionality that we offer in our “Live-CD” ISOs.
> > Currently, the “Live-CD” ISOs we provide only allow for demonstration
> > purposes, while the ReactOS installation proper is found in our so-called
> > “Boot-CD” ISOs (which currently only contain text-mode setup). Thus, the 1
> > st-stage GUI setup, as an alternative to the 1st-stage setup in
> > text-mode, means that both ISOs can be merged all in one, and we won’t have
> > to make a distinction between both: they will be able to offer both the 1
> > st-stage in text mode AND a graphical mode (à la “Live-CD”) where it is
> > possible to choose whether to test ReactOS in demo mode, or to install it
> > via the GUI setup.
> >
> > Such an all-in-one ISO capability was already present in the trunk under
> > the name “hybridcd”, but was used only when we built ISO images for the
> > public events where ReactOS participated (FOSDEM, CLT, …). But now, having
> > the setup process both in text mode and in graphics mode, in addition to
> > the Live-CD demonstration capability, really suggests just using the
> > all-in-one ISO and stop doing the “Boot-CD” (aka. only setup) vs. “Live-CD”
> > (aka. only demo) separation. We would just generate only one type of ISO
> > that contains everything.
> >
> >
> >
> > With that in mind, I have committed in my branch “setup_improvements”, in
> > revision 75273 : https://svn.reactos.org/svn/reactos?view=revision&
> > revision=75273 such changes to be able to only build an ISO that contains
> > everything. These changes are minimal, in the sense that I haven’t
> > purposelessly changed the names of the build targets just to be fancy. Such
> > changes may be done later, but not now.
> >
> >
> >
> > The needed changes are the following: First, the build target that will
> > generate the all-in-one CD is called “bootcd”, because this also was the
> > main build target for ISOs before the change. Second, I completely remove
> > the “hybridcd” build target, because its functionality are now absorbed by
> > “bootcd”. Third, the build target “livecd” is reduced to its strict
> > minimum. For the sake of building a RAMDISK boot drive (see comments
> > after), I continue to generate an ISO for “livecd”. But I’ve changed the
> > generated name to “liveimage.iso”, to emphasize the point that it has to be
> > understood as a (virtual) disk image for RAMDISK purposes, not just as a
> > ISO image. Note that I haven’t renamed the build target “livecd” to, say,
> > “liveimage” to reduce my commit changes (such a renaming may be done
> > later). The “livecd” target builds a list of files that need to be present
> > in the image. The generated liveimage.iso is no-more a bootable ISO, I’ve
> > removed inclusion of freeloader + El-Torito boot-sector + the
> > USB-ISO-Hybrid functionality for it.
> >
> > The “bootcd” target has been slightly changed in order to include the
> > liveimage.iso as a file (for RAMDISK), and to also add the contents of this
> > image in a flattened tree within the bootcd iso: the two directories
> > “Profiles” and “reactos”.
> >
> > The 1st-stage text-mode setup is kept, as said before, but its
> > corresponding files + the installation CAB source + the 1st-stage GUI
> > setup application proper goes into a (renamed) directory called “i386”,
> > corresponding to installation files for an i386 installation (technically,
> > 1 per architecture when we’ll have a ReactOS ported to other archs). These
> > files cannot be present in the same “reactos” directory as the ones from
> > the flattened LiveImage, because some of the files are different (smss.exe,
> > registry, etc…) Our FreeLdr knows from where to boot the 1st-stage
> > text-mode (from i386), as well as the Live-demo in graphics mode (from
> > reactos).
> >
> > I need to adjust the code of few setup components for them to stop relying
> > on hardcoded “reactos/” path, and instead use a more “dynamic” (determined
> > at runtime) path.
> >
> >
> >
> > NOTE FOR DEVS/SYSADMINS: The “bootcdregtest” build target, generating the
> > special ISO that is fed to our test bots, remains exactly the same, and the
> > files contained in the generated ISO have not changed.
> >
> >
> >
> > NOTE about the RAMDISK feature: I enabled it so that a user can remove the
> > demo media (CD, …) and reuse the drive for other purposes, while still
> > being able to use ReactOS. Of course this requires a large amount of RAM
> > available. And that’s also why I include the flattened liveimage files so
> > that one can use the demo without the RAMDISK (when few memory is
> > available).
> >
> > As is currently implemented, this makes the ReactOS all-in-one bootcd
> > large (it gains a good 100 MB) due to duplicated space (the flattened
> > files, plus the same inside “liveimage.iso”). I cannot do better (unless
> > ditching either the RAMDISK, or keeping it but not include the flattened
> > files) because ReactOS currently doesn’t have a way to boot from disk
> > images **that are not meant to be a RAMDISK**. The day when this
> > difficulty is removed, a single disk image could be used either as the
> > RAMDISK or the (non-removable) installation.
> >
> > A second remark is that I don’t plan to have the 1st-stage GUI setup
> > available when booting ReactOS in RAMDISK mode because, as a consequence of
> > its current implementation, I would otherwise need to duplicate the
> > installation CAB source in the RAMDISK image too, making it again larger.
> >
> >
> >
> > NOTE about the FreeLdr Boot Menu: Since ReactOS is not that stable
> > currently, we like to boot it in debug mode, and redirect the output to a
> > serial port (usually COM1). However some people don’t have serial ports on
> > real hardware, so we propose to boot with debug output redirected to
> > screen. However this may slow ReactOS down, so we also like to boot ReactOS
> > with debug mode disabled. That’s why I proposed the declination of these
> > boot modes for each ReactOS installation contained in the BootCD
> > (Live+Setup, with or without RAMDISK, and with debug enabled or not). The
> > problem is that it clutters a lot the boot menu. A remedy would be to
> > implement in FreeLdr the functionality of editing **existing** boot
> > entries to change their associated boot options, so that one could add by
> > hand the options to enable (or disable) debugging. This is currently
> > unimplemented. The only implemented feature is to set up a new boot entry
> > on the fly to boot ReactOS afterwards.
> >
> >
> >
> > NOTE for regress-testers: Possible remark that I may hear: “I only care
> > about installing ReactOS (perhaps just in unattended mode) and I don’t care
> > at all about the GUI setup nor about the Live-demo thingie, and your new
> > BootCD is too large. I want to be able to download & use the good-old
> > bootcd for regress-testing.” . So what to do? Since we currently build and
> > store the “bootcdregtest” ISOs, but are not publicly available through our
> > www.reactos.org/getbuilds interface, I would suggest here to make them
> > available to people, so that those who want to quickly DL and/or
> > install/regress-test ReactOS could use these ISOs instead (which are really
> > just the good old BootCDs, but with unattended installation enabled **and**
> > with our test-suite included). They are not that much large, just a bit
> > more than the old regular bootcd.
> >
> >
> >
> > Please let me know whether you have other remarks/comments/questions/suggestions/etc…
> > to make the new BootCDs better.
> >
> >
> >
> >
> >
> > Best,
> >
> >
> >
> > Hermès
> >
> > _______________________________________________
> > Ros-dev mailing list
> > Ros-dev(a)reactos.org
> > http://www.reactos.org/mailman/listinfo/ros-dev
> >
Hello everyone,
One of the long-term plan for ReactOS was to have a graphical user-mode
interface for the 1st-stage setup, similar to e.g. what may be found in
newer versions of Windows (Vista+), as an alternative to our current
1st-stage setup in text-mode
(note that I say alternative, not replacement, because both of them can
live together without fundamental changes to either ReactOS or our ISO
images, both of them can share core functionality, and finally because some
people may prefer the text-mode either for unattended installations or for
low-memory conditions).
You can find some information about the 1st-stage GUI setup here:
https://reactos.org/wiki/First_Stage_GUI_Setup . In our source code, it can
be found in base/setup/reactos/ . Currently only most of the screens have
been implemented, while the core functionality is not present. However this
functionality can somehow be taken by reusing the source code of USETUP (see
my branch
https://svn.reactos.org/svn/reactos/branches/setup_improvements/base/setup/
).
Abstract (aka. TL;DR): I explain below the needed changes introduced
experimentally in the setup-improvements branch, revision 75273, to
generate an all-in-one ReactOS bootcd, that includes both the 1st-stage
text-mode setup + 1st-stage GUI setup alternative + live-demo functionality.
This is meant to replace our currently separated bootcd / livecd ISOs,
where the latter currently do not offer the possibility to install ReactOS.
Some currently known potential problems are evoked.
Images: Proposed BootCD contents : http://i.imgur.com/EBA6JHd.png ; Proposed
Boot Menu : http://i.imgur.com/14n5Ryi.png .
Having a 1st-stage GUI setup also means that itll also use the
already-existing functionality that we offer in our Live-CD ISOs.
Currently, the Live-CD ISOs we provide only allow for demonstration
purposes, while the ReactOS installation proper is found in our so-called
Boot-CD ISOs (which currently only contain text-mode setup). Thus, the
1st-stage GUI setup, as an alternative to the 1st-stage setup in text-mode,
means that both ISOs can be merged all in one, and we wont have to make a
distinction between both: they will be able to offer both the 1st-stage in
text mode AND a graphical mode (à la Live-CD) where it is possible to
choose whether to test ReactOS in demo mode, or to install it via the GUI
setup.
Such an all-in-one ISO capability was already present in the trunk under the
name hybridcd, but was used only when we built ISO images for the public
events where ReactOS participated (FOSDEM, CLT, ). But now, having the
setup process both in text mode and in graphics mode, in addition to the
Live-CD demonstration capability, really suggests just using the all-in-one
ISO and stop doing the Boot-CD (aka. only setup) vs. Live-CD (aka. only
demo) separation. We would just generate only one type of ISO that contains
everything.
With that in mind, I have committed in my branch setup_improvements, in
revision 75273 : https://svn.reactos.org/svn/reactos?view=revision
<https://svn.reactos.org/svn/reactos?view=revision&revision=75273>
&revision=75273 such changes to be able to only build an ISO that contains
everything. These changes are minimal, in the sense that I havent
purposelessly changed the names of the build targets just to be fancy. Such
changes may be done later, but not now.
The needed changes are the following: First, the build target that will
generate the all-in-one CD is called bootcd, because this also was the
main build target for ISOs before the change. Second, I completely remove
the hybridcd build target, because its functionality are now absorbed by
bootcd. Third, the build target livecd is reduced to its strict minimum.
For the sake of building a RAMDISK boot drive (see comments after), I
continue to generate an ISO for livecd. But Ive changed the generated
name to liveimage.iso, to emphasize the point that it has to be understood
as a (virtual) disk image for RAMDISK purposes, not just as a ISO image.
Note that I havent renamed the build target livecd to, say, liveimage
to reduce my commit changes (such a renaming may be done later). The
livecd target builds a list of files that need to be present in the image.
The generated liveimage.iso is no-more a bootable ISO, Ive removed
inclusion of freeloader + El-Torito boot-sector + the USB-ISO-Hybrid
functionality for it.
The bootcd target has been slightly changed in order to include the
liveimage.iso as a file (for RAMDISK), and to also add the contents of this
image in a flattened tree within the bootcd iso: the two directories
Profiles and reactos.
The 1st-stage text-mode setup is kept, as said before, but its corresponding
files + the installation CAB source + the 1st-stage GUI setup application
proper goes into a (renamed) directory called i386, corresponding to
installation files for an i386 installation (technically, 1 per architecture
when well have a ReactOS ported to other archs). These files cannot be
present in the same reactos directory as the ones from the flattened
LiveImage, because some of the files are different (smss.exe, registry,
etc ) Our FreeLdr knows from where to boot the 1st-stage text-mode (from
i386), as well as the Live-demo in graphics mode (from reactos).
I need to adjust the code of few setup components for them to stop relying
on hardcoded reactos/ path, and instead use a more dynamic (determined
at runtime) path.
NOTE FOR DEVS/SYSADMINS: The bootcdregtest build target, generating the
special ISO that is fed to our test bots, remains exactly the same, and the
files contained in the generated ISO have not changed.
NOTE about the RAMDISK feature: I enabled it so that a user can remove the
demo media (CD, ) and reuse the drive for other purposes, while still being
able to use ReactOS. Of course this requires a large amount of RAM
available. And thats also why I include the flattened liveimage files so
that one can use the demo without the RAMDISK (when few memory is
available).
As is currently implemented, this makes the ReactOS all-in-one bootcd large
(it gains a good 100 MB) due to duplicated space (the flattened files, plus
the same inside liveimage.iso). I cannot do better (unless ditching either
the RAMDISK, or keeping it but not include the flattened files) because
ReactOS currently doesnt have a way to boot from disk images *that are not
meant to be a RAMDISK*. The day when this difficulty is removed, a single
disk image could be used either as the RAMDISK or the (non-removable)
installation.
A second remark is that I dont plan to have the 1st-stage GUI setup
available when booting ReactOS in RAMDISK mode because, as a consequence of
its current implementation, I would otherwise need to duplicate the
installation CAB source in the RAMDISK image too, making it again larger.
NOTE about the FreeLdr Boot Menu: Since ReactOS is not that stable
currently, we like to boot it in debug mode, and redirect the output to a
serial port (usually COM1). However some people dont have serial ports on
real hardware, so we propose to boot with debug output redirected to screen.
However this may slow ReactOS down, so we also like to boot ReactOS with
debug mode disabled. Thats why I proposed the declination of these boot
modes for each ReactOS installation contained in the BootCD (Live+Setup,
with or without RAMDISK, and with debug enabled or not). The problem is that
it clutters a lot the boot menu. A remedy would be to implement in FreeLdr
the functionality of editing *existing* boot entries to change their
associated boot options, so that one could add by hand the options to enable
(or disable) debugging. This is currently unimplemented. The only
implemented feature is to set up a new boot entry on the fly to boot ReactOS
afterwards.
NOTE for regress-testers: Possible remark that I may hear: I only care
about installing ReactOS (perhaps just in unattended mode) and I dont care
at all about the GUI setup nor about the Live-demo thingie, and your new
BootCD is too large. I want to be able to download & use the good-old bootcd
for regress-testing. . So what to do? Since we currently build and store
the bootcdregtest ISOs, but are not publicly available through our
www.reactos.org/getbuilds interface, I would suggest here to make them
available to people, so that those who want to quickly DL and/or
install/regress-test ReactOS could use these ISOs instead (which are really
just the good old BootCDs, but with unattended installation enabled *and*
with our test-suite included). They are not that much large, just a bit more
than the old regular bootcd.
Please let me know whether you have other
remarks/comments/questions/suggestions/etc to make the new BootCDs better.
Best,
Hermès
Hello,
Let me invite you to the monthly status meeting taking place 29th of
June, 19:00 UTC.
We do it either in #reactos-meeting on Freenode, or on a very own
standalone IRC server. In that case your participation passwords and
server address will be emailed to you shortly before the meeting starts,
and they are going to be different once again as they are not stored in
any database. And everyone is fine with that.
Please send agenda proposals to me before the meeting so we don't waste
time trying to setup the agenda directly during the meeting.
Regards,
Aleksey Bragin
Hello all,
Today I noticed that our buildbots couldnt connect to SVN to upload the
commit changes, and therefore failed to build. Also I noticed that the usual
SVN ViewVC address (which was previously https://svn.reactos.org/svn/reactos
, for example) changed to https://svn.reactos.org/viewcvs/reactos/ (granted,
there appear to be an automatic redirection to this new address).
Is it an intentional change, or an unintentional one? We didnt seem to be
warned prior to this on the mailing list!
Cheers,
Hermès
According to The Register, Windows 10 source has been leaked. But reading
that codes is still illegal for ReactOS development, so we might fire you
if you read in the case.
---- Please don't read the leaked source.
Thanks,
Katayama Hirofumi MZ
片山博文MZ
Hi all!
I'm currently planning the ReactOS Hackfest 2017 in the Cologne/Bonn
area in Germany. Currently, the plan is to book a meeting room from
Monday, August 14 to Friday, August 18. We can then use the weekend
before to get to Cologne and explore the city a bit. After the Hackfest,
everybody interested can join us at FrOSCon in Bonn the weekend after.
As booking a room there involves significant costs, I'd like to know who
of you can definitely make it for the Hackfest and who of you is
definitely out.
Please reply now to prevent me from bugging you on IRC all the time! ;)
Cheers,
Colin
hbelusca(a)svn.reactos.org wrote:
> [SECUR32_APITEST]: Add the beginnings of an apitest for secur32, based
> on code by Samuel Serapion & MSDN. What needs to be fixed here, is the
> client/server code to communicate the results back to the main test
> app being running. Work in progress.
I have implemented short and simple WineTest-compatible client/server
code in localspl_apitest. The server is the application that is tested
through rosautotest. For every test, it starts the client, sends the
test name over a pipe and outputs the received testing output. The
client simply has stdout redirected to a pipe and can then use usual
WineTest ok() functions for testing.
Check out rostests/apitests/localspl (server) and
rostests/apitests/localspl/dll (client). Hope that helps!
- Colin
On Sun, Jun 18, 2017 at 1:34 AM, <hbelusca(a)svn.reactos.org> wrote:
> - if (!(CmpProfileLoaded) && !(CmpWasSetupBoot))
> + if (!CmpProfileLoaded && !CmpWasSetupBoot)
>
Why do you keep re-formatting other people's code in unrelated patches?
You've been repeatedly asked to stop doing this.
Best regards,
Alex Ionescu
On 2017-06-19 18:29, hbelusca(a)svn.reactos.org wrote:
> + /*
> + * Free it from the pool.
> + *
> + * We cannot use here ExFreePoolWithTag(..., OB_NAME_TAG); , because
> + * the object name may have been massaged during operation by different
> + * object parse routines. If the latter ones have to resolve a symbolic
> + * link (e.g. as is done by CmpParseKey() and CmpGetSymbolicLink()),
> + * the original object name is freed and re-allocated from the pool,
> + * possibly with a different pool tag. At the end of the day, the new
> + * object name can be reallocated and completely different, but we
> + * should still be able to free it!
> + */
> + ExFreePool(Buffer);
I feel like
ExFreePoolWithTag(Buffer, 0)
conveys that same message without needing a huge comment?
Hi all!
A picture says more than a thousand words:
http://fs5.directupload.net/images/170613/u4d8a59a.png
As promised in the last meeting, I have brought to life a machine for
testing GPU drivers with real GPUs under ReactOS. It combines a QEMU
virtual machine with PCIe GPU Passthrough together with a KVM-over-IP
card for feeding the real video signal back to a window.
What you see in the screenshot is a real NVIDIA GeForce 9300 GPU
attached to a ReactOS VM. We can now test the NVIDIA driver installation
while enjoying the easy debuggability of a VM.
My first report is already out: https://jira.reactos.org/browse/CORE-13423
Every developer interested in working on this can drop me a line and I
will send you credentials for the server.
Soon I will also add an AMD Graphics Card along with another KVM-over-IP
card to let us debug the other big driver package.
Thanks go out to Mr. Kromdijk for the generous server donation,
Christoph for the KVM-over-IP card, and Hervé for the QEMU hints!
Let's all get some flashy 3D acceleration into ReactOS!! :)
Cheers,
Colin
On 2017-06-02 19:52, phater(a)svn.reactos.org wrote:
> + aDstNextStr = (char*)((DWORD)aDstNextStr + (DWORD)bItmLen);
DWORD cannot always fit a pointer. You want DWORD_PTR for this kind of
math (or simply use char *).
On 2017-06-02 02:44, hbelusca(a)svn.reactos.org wrote:
> @@ -341,7 +341,7 @@
> }
>
> InitializeObjectAttributes(&ObjectAttributes, &ServicesU, OBJ_CASE_INSENSITIVE, NULL, NULL);
> - Status = NtCreateKey(&hServices, 0, &ObjectAttributes, 0, NULL, 0, NULL);
> + Status = NtCreateKey(&hServices, KEY_ALL_ACCESS, &ObjectAttributes, 0, NULL, 0, NULL);
> if (!NT_SUCCESS(Status))
> {
> DPRINT1("NtCreateKey('%wZ') failed with status 0x%08lx\n", &ServicesU, Status);
>
>
It doesn't really need full access, does it? Could have gone for
something closer to the original, like READ_CONTROL.
I understand not making the change to how 1st stage deals with the
registry in trunk.
Why not the tool change though? Can't you have the new mkhive do the
exact same thing it does now, and do it in trunk? The smaller your
branch merge commit the easier it will be to avoid/pinpoint/fix
regressions.
On 2017-06-02 02:34, hbelusca(a)svn.reactos.org wrote:
> Author: hbelusca
> Date: Fri Jun 2 00:34:10 2017
> New Revision: 74741
>
> URL: http://svn.reactos.org/svn/reactos?rev=74741&view=rev
> Log:
> [MKHIVE][CMAKE]: Make mkhive a bit more flexible, so that it can generate only specific hives on-demand (and not all of them always at once). I need this for building a single bootcd registry hive.
> I commit these changes in my branch because it's too much über-advanced code for our trunk, yet... (and it will uncover deep "setup" hacks in NTOS' iomgr & pnpmgr as soon as I'll enable 1-st stage setup to have a proper registry present as done on windows).
> CORE-13347 #comment Committed in r74741 but just in the setup_improvements branch for the moment.
On 2017-06-01 20:27, hbelusca(a)svn.reactos.org wrote:
> /* EISA */
> case EisaAdapter:
> -
> + {
> /* Fixup information */
> Interface = Eisa;
> Bus = CmpTypeCount[EisaAdapter]++;
> break;
> + }
This is a completely unnecessary change to somebody else's code that has
no basis in our documented coding style. Uh... don't do that?
On 2017-06-02 02:00, hbelusca(a)svn.reactos.org wrote:
> [MKHIVE]: Formatting changes only + sync back the names of the reg-inf functions with the ones where they are coming from (aka. Wine's setupapi/install.c).
Those two goals clearly conflict with either other. Either keep Wine's
function names AND formatting to keep things comparable/sync-able, or
make the code follow our style.
On 2017-06-01 20:37, hbelusca(a)svn.reactos.org wrote:
> + if (!NT_SUCCESS(Status))
> + {
> + /* We failed, close all the opened handles and return */
> + // NtClose(KeyHandle);
Please don't add commented-out code.
What is that supposed to even mean? "I was too lazy to test this"? "All
the other code depends on this leak"? "I think it would look prettier
here"?
Hello,
I propose to reschedule our monthly meeting to Thursday next week (1st
of June), as tomorrow is a holiday in some countries, and also I have
tight meetings schedule this week.
Regards,
Aleksey Bragin
Hey guys,
An idea has just come to my mind,
mplayer is an application that already exists for Linux:
https://www.mplayerhq.hu/design7/news.html
maybe we should change ReactOS´ player name so that we avoid possible
future demands?
what do u think?
hbelusca(a)svn.reactos.org wrote:
> -/*
> - * ReactOS kernel
> - * Copyright (C) 2002 ReactOS Team
> - *
> - * This program is free software; you can redistribute it and/or modify
> - * it under the terms of the GNU General Public License as published by
> - * the Free Software Foundation; either version 2 of the License, or
> - * (at your option) any later version.
> - *
> - * This program is distributed in the hope that it will be useful,
> - * but WITHOUT ANY WARRANTY; without even the implied warranty of
> - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
> - * GNU General Public License for more details.
> - *
> - * You should have received a copy of the GNU General Public License
along
> - * with this program; if not, write to the Free Software Foundation,
Inc.,
> - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
> - */
> /*
> * COPYRIGHT: See COPYING in the top level directory
> * PROJECT: ReactOS text-mode setup
You're taking away the information that this file is licensed under
GPLv2 or any later version (as opposed to GPLv2-only, what some
developers prefer).
Also the entire license information is lost when this file is used as
part of a different source tree.
I have visited a seminar by our friend Nuno Brito last week, who has
founded a company that deals with such topics (www.triplecheck.tech).
There are some simple best practices we can apply here to get consistent
and useful headers once and for all.
The first would be using the established SPDX license identifiers from
https://spdx.org/licenses (here: "GPL-2.0+"). This would also make our
source files easily scannable by tools to get an overview of all
licenses involved in our code and imported third-party components.
If you or someone else is interested in working on this, let's draft a
universal header for our files that is compatible with SPDX.
Otherwise, I will have a look when there's more time..
Cheers,
Colin
On 2017-05-22 03:09, hbelusca(a)svn.reactos.org wrote:
> --- branches/setup_improvements/base/setup/lib/arcname.c (added)
> +++ branches/setup_improvements/base/setup/lib/arcname.c [iso-8859-1] Mon May 22 01:09:35 2017
> +PCSTR
> +ArcGetNextTokenA(
> + IN PCSTR ArcPath,
> + OUT PANSI_STRING TokenSpecifier,
> + OUT PULONG Key)
> +{
> + HRESULT hr;
> + PCSTR p = ArcPath;
> + ULONG SpecifierLength;
> + ULONG KeyValue;
> +
> + /*
> + * We must have a valid "specifier(key)" string, where 'specifier'
> + * cannot be the empty string, and is followed by '('.
> + */
> + p = strchr(p, '(');
> + if (p == NULL)
> + return NULL; /* No '(' found */
> + if (p == ArcPath)
> + return NULL; /* Path starts with '(' and is thus invalid */
> +
> + SpecifierLength = (p - ArcPath) * sizeof(CHAR);
> +
> + /*
> + * The strtoul function skips any leading whitespace.
> + *
> + * Note that if the token is "specifier()" then strtoul won't perform
> + * any conversion and return 0, therefore effectively making the token
> + * equivalent to "specifier(0)", as it should be.
> + */
> + // KeyValue = atoi(p);
> + KeyValue = strtoul(p, (PSTR*)&p, 10);
> +
> + /* Skip any trailing whitespace */
> + while (*p && isspace(*p)) ++p;
isspace(0) is false so you don't need the *p check.
> +PCWSTR
> +ArcGetNextTokenU(
> + IN PCWSTR ArcPath,
> + OUT PUNICODE_STRING TokenSpecifier,
> + OUT PULONG Key)
> +{
> + HRESULT hr;
> + PCWSTR p = ArcPath;
> + ULONG SpecifierLength;
> + ULONG KeyValue;
> +
> + /*
> + * We must have a valid "specifier(key)" string, where 'specifier'
> + * cannot be the empty string, and is followed by '('.
> + */
> + p = wcschr(p, L'(');
> + if (p == NULL)
> + return NULL; /* No '(' found */
> + if (p == ArcPath)
> + return NULL; /* Path starts with '(' and is thus invalid */
> +
> + SpecifierLength = (p - ArcPath) * sizeof(WCHAR);
> +
> + ++p;
> +
> + /*
> + * The strtoul function skips any leading whitespace.
> + *
> + * Note that if the token is "specifier()" then strtoul won't perform
> + * any conversion and return 0, therefore effectively making the token
> + * equivalent to "specifier(0)", as it should be.
> + */
> + // KeyValue = _wtoi(p);
> + KeyValue = wcstoul(p, (PWSTR*)&p, 10);
> + ASSERT(p);
This assert seems superfluous, you just dereferenced the pointer. Also,
you incremented it just above and also (rightly) assumed it was larger
than ArcPath.
> +static NTSTATUS
> +ResolveArcNameManually(
> + OUT PUNICODE_STRING NtName,
> + IN OUT PCWSTR* ArcNamePath,
> + IN PPARTLIST PartList OPTIONAL)
> +{
> [...]
> +Quit:
> + if (FAILED(hr))
> + {
> + /*
> + * We can directly cast the HRESULTs into NTSTATUS since the error codes
> + * returned by StringCbPrintfW:
> + * STRSAFE_E_INVALID_PARAMETER == 0x80070057,
> + * STRSAFE_E_INSUFFICIENT_BUFFER == 0x8007007a,
> + * do not have assigned values in the NTSTATUS space.
> + */
> + return (NTSTATUS)hr;
To me that sounds like an argument of why you _can't_ do that.
(You know the Rtl versions of these functions give you an NTSTATUS btw,
right?)
> --- branches/setup_improvements/base/setup/lib/arcname_tests.c (added)
> +++ branches/setup_improvements/base/setup/lib/arcname_tests.c [iso-8859-1] Mon May 22 01:09:35 2017
> @@ -0,0 +1,142 @@
> +/*
> + * Tests for the arcname.c functions:
> + * - ArcPathNormalize(),
> + * - ArcPathToNtPath().
> + *
> + * You should certainly fix the included headers before being able
> + * to compile this file (as I didn't bother to have it compilable
> + * under our (P/N)DK, but just under VS).
> + */
Wine's test framework works okay for unit tests. You can make this an
apitest by just #include'ing the C source file, then it can run on
Testbot.