History log of /haiku/src/apps/installer/CopyEngine.cpp
Revision Date Author Comments
# dfb36b35 08-Aug-2020 Niels Sascha Reedijk <niels.reedijk@gmail.com>

Installer: fix 'clean install' over existing installation.

Whenever the target of an installation is a partition that is not empty, the
Installer prompts the user whether they would like to continue with a 'clean
installation', i.e. an installation that clears out the system folder,
excluding the settings, and cleanly installs the assets in the source's
system folder. At all other locations the source data is merged, meaning that
the source version is copied in place.

The logic that clears out the existing /system/ directory stopped working. This
change moves that logic from the copying process, to where it is run before any
file is copied. The added advantage is that the system folder is now properly
cleaned up, also stray files under the system folder will be removed.

This change does not change the logic of what constitutes a 'clean install'.
There are arguments to be made that it should potentially also drop the
settings files, as well as clean out the user's home folder for stray
add-ons, but that really is different functionality, and at this points I
think the requirements for that are not yet fleshed out.

The change was manually tested.

Fixes #16092

Change-Id: Ia6781c8d2330ba336b3921f9a980b5e31c48a2ec
Reviewed-on: https://review.haiku-os.org/c/haiku/+/3140
Reviewed-by: Andrew Lindesay <apl@lindesay.co.nz>


# 3f7f9896 08-Aug-2020 Niels Sascha Reedijk <niels.reedijk@gmail.com>

Installer: Remove `level` parameter from CopyEngine

The level parameter in the CopyEngine::CollectCopyInfo() and
CopyEngine::Copy() methods was introduced in hrev30395 to allow the CopyEngine
to decide which directories should be copied. Since then, this
class has been rewritten and it is no longer necessary for that purpose.

This change refactors the CopyEngine and removes the
level parameter from the class interface. Furthermore, it was broken to begin
with; it was passed as reference to the internal recursive _Copy() and
_CollectCopyInfo() methods, meaning they acted like a global counter. The
global counter was increased at the beginning and decreased at the end of those
methods. Execution could terminate early though, leaving the level counter out
of sync with the recursion level.

There is one use of the level parameter, namely in the
WorkerThread::EntryFilter::ShouldClobberFolder() method, but the use of the
parameter was wrong (it would have been at level 3 at the point of the check,
not level 2) and the logic is functional without the level check.
Change-Id: Id92ef89b015e9b1185bde061273f61e492664bce
Reviewed-on: https://review.haiku-os.org/c/haiku/+/3139
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>
Reviewed-by: Axel Dörfler <axeld@pinc-software.de>


# 0cc9a12a 07-May-2020 Niels Sascha Reedijk <niels.reedijk@gmail.com>

Installer: fix an issue where file attributes were not copied

The issue was introduced when the original CopyFile() and CopyFolder() methods
were integrated into a single recursive Copy() method in
bf551d3889bfdce1e2250df307d505d88fe6c4e1

The installer originally followed the principle that attributes are not copied
for target directories that already exist. Unfortunately the new logic to
filter out that case disables attribute copying in recursive calls of this
method, thus breaking things like bookmarks and tracker templates.

Fixes #15913

Change-Id: I0dfe5ce30fdc78cfd4e3695b4b4e8c23b4848100
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2600
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>
Reviewed-by: leorize <leorize+oss@disroot.org>


# d7e2195b 29-Mar-2020 Leorize <leorize+oss@disroot.org>

installer/CopyEngine: don't return values via class states

_CollectCopyInfo uses fBytesToCopy and fItemsToCopy for the sole purpose
of returning the scan results. This variable in turn was used to add to
the amount of files to copy in the progress bar, causing it to grow
exponentially with every CollectTargets calls.

With the current use case, the variable would have to be reset to 0
everytime CollectTargets is invoked, making it rather useless as a class
state.

This commit turns those variables into _CollectCopyInfo return values,
and also fix the exponential growth of the progress bar target.

Fixes #15826

Change-Id: Ib734febfdd8aaaa12fdfac61be124adb61b28f6c
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2445
Reviewed-by: waddlesplash <waddlesplash@gmail.com>


# bf551d38 21-Mar-2020 Leorize <leorize+oss@disroot.org>

installer/CopyEngine: now only exposes a Copy() method

Previously this class exposes two methods:
- CopyFile(): only copy the file data, nothing else.
- CopyFolder(): copy files & directories between two folders, while
preserving the attributes as well as symlinks.

With this commit, everything is unified into one method: Copy(). This
method can handle files, directories, symlinks and optionally also copy
attributes. Since most of the logic was just moved around, we can be
rather certain that this won't disrupt CopyEngine behaviors by much.

In the future we should look into using BCopyEngine to replace the
copying part of CopyEngine, as they seems to be compatible.

This change allows the Installer to make use of CopyEngine as a
general-purpose copier, in preparation for optional .hpkg installation
support.

Change-Id: Iad5ba2ebc9f34b7822e550b415308fd2b43eed47
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2399
Reviewed-by: waddlesplash <waddlesplash@gmail.com>


# fd09d551 21-Mar-2020 Leorize <leorize+oss@disroot.org>

installer/CopyEngine: _CollectCopyInfo now works with all file types

CollectCopyInfo was designed to process directories only. This commit
makes it more versatile and works with everything instead.

Change-Id: Ifa74db3815411f7348e3bcc230842710058b1111
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2398
Reviewed-by: waddlesplash <waddlesplash@gmail.com>


# 99fe9c42 27-Jan-2019 Rob Gill <rrobgill@protonmail.com>

apps/install Fix PVS381

* Use explicit type cast

Change-Id: I2d75eaeafcb6d46fbc79489394f0f6eb3af6f8d9
Reviewed-on: https://review.haiku-os.org/c/957
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>


# 6990ae7b 03-Jan-2019 Michael Lotz <mmlr@mlotz.ch>

Installer: Fix use-after-free of target directory name.

When CopyEngine::_CopyFolder() would recursively call itself, the
fCurrentTargetFolder would be set to the entry name of that directory.
When this returned, this was never reset to the parent directory name
and would eventually use a freed string when the BEntry was reused
for the next entry.


# 5061f35c 14-Sep-2014 Axel Dörfler <axeld@pinc-software.de>

Installer: don't replace system/settings.

* Instead of removing "system" in the target completely, only
replace all of its subfolders.
* The downside of the current solution is that extra files, and
directories in "system" will not be removed. Improvements
welcome.


# 70b978fd 05-Dec-2013 Murai Takashi <tmurai01@gmail.com>

Fix the build with GCC4.8

Signed-off-by: Jérôme Duval <jerome.duval@gmail.com>


# ba6f7c8c 02-Jun-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

Installer: CopyEngine: Pass relative path to EntryFilter

... instead of the file name.


# c2be967e 02-Jun-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

Installer: CopyEngine: Externalize decision making

* Add interface EntryFilter, an instance of which can be passed to the
CopyEngine. The object is asked whether to copy entries/clobber
directories.
* Move the _ShouldCopyEntry()/_ShouldClobberFolder() code to new
WorkerThread::EntryFilter.


# a601eaa9 02-Jun-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

Installer: Remove "/boot/var" directory check

The PM Haiku Installer doesn't need support installing ancient Haiku
versions.


# fb5f0bb1 02-Jun-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

Installer: Move path string constants to new InstallerDefs.h/cpp


# 28fd71c5 01-Jun-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

Installer: CopyEngine: Remove some debug/uncommented code


# a83d8d14 29-Apr-2013 Jérôme Duval <jerome.duval@gmail.com>

Installer: fixed two warnings.

* warnings about comparison between signed and unsigned integer expressions.
* also use std::min() instead of min_c()


# 4020aec1 31-Jan-2012 Philippe Saint-Pierre <stpere@gmail.com>

Installer: minor memory leak fix. CID 1713.


# e6c49e10 19-Mar-2011 Stephan Aßmus <superstippi@gmx.de>

Don't ignore the entire var directory, but rather only
the swap file specifically. There is already a TODO in
the code for replacing this mechanism with something
cleaner and more flexible. Resolves ticket #7367.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@41026 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 99d65cbc 28-Apr-2010 Matt Madia <mattmadia@gmail.com>

Removed the incorrect _sources_ conditional from ResetTargets.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36518 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 4a71fc35 28-Apr-2010 Matt Madia <mattmadia@gmail.com>

InstallSourceArchive now copies source archives to _sources_/, which in turn
is ignored by Installer. Automatic whitespace cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36517 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 7f78035b 25-Apr-2010 Jérôme Duval <korli@users.berlios.de>

Should fix #5806. CollectTargets() is also called for packages, the fVarDirectory init is moved to ResetTargets().


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36475 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 51f50b12 19-Jan-2010 Stephan Aßmus <superstippi@gmx.de>

Installer cannot use find_directory(), since it needs to support source volumes
other than /boot. That's why it worked like it did in the first place. Some
folders like "trash" can be volume specific, but most others are not and the
volume passed to find_directory() is ignored (which makes sense).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35175 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 6ff00ae7 19-Jan-2010 Stephan Aßmus <superstippi@gmx.de>

Make the Installer ignore /var at it's new location. The old location is also
still checked, in case one uses the Installer to copy an old installation.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35173 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 72586154 06-Sep-2009 Stephan Aßmus <superstippi@gmx.de>

* Finished ProgressReporter
* Integrated ProgressReporter into CopyEngine and UnzipEngine.
* Integrated unzipping to main installer engine. Since there are currently no
.zip files in the _packages_ folder (and not even a _packages_ folder
itself), this is completely invisible, but it works.

TODO: Adjust the build system to optionally copy packages into _packages_
instead of extracting them. Like for the CD build profile mode.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32967 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 2d304daf 03-Sep-2009 Stephan Aßmus <superstippi@gmx.de>

Ignore some more entries from the bootable CD. Should fix ticket #4403, test
pending.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32918 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 8e3916f8 02-Sep-2009 Stephan Aßmus <superstippi@gmx.de>

Extracted SemaphoreLocker into it's own file.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32904 a95241bf-73f2-0310-859d-f6bbb57e9c96


# da268834 31-Aug-2009 Stephan Aßmus <superstippi@gmx.de>

Update the progress bar more often during file copies (every 2 MB instead of
every 10, which was not smooth enough).

+alphabranch


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32847 a95241bf-73f2-0310-859d-f6bbb57e9c96


# d7737cc8 29-Jul-2009 Stephan Aßmus <superstippi@gmx.de>

Changed the somewhat bold BLocker usage to a more straight forward semaphore
based mechanism to pause and eventually cancel the WorkerThread. This also works
now when the CopyEngine is still collecting file informartion (ticket #4153).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31912 a95241bf-73f2-0310-859d-f6bbb57e9c96


# c43e377c 13-Jun-2009 Stephan Aßmus <superstippi@gmx.de>

Increase the file handle limit.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31046 a95241bf-73f2-0310-859d-f6bbb57e9c96


# f76e944e 14-Jun-2009 Stephan Aßmus <superstippi@gmx.de>

* Fixed problems when installing onto non-empty target volumes. The
'system' folder will be a clean copy of the source volume. Other
folders will be merged (as before), but in case a folder is in the
way of a link or file from the source volume, it will now be purged.
* Clarified the alert for non-empty target volumes, so it is very clear
what happens. (Maybe there ought to the be option to only copy the system
folder, though.)
* Fixed a problem with copying attributes in certain cases.
* Fixed the main GUI not resetting state properly after encountering an
error during the copy process.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31042 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 84e31974 02-May-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

Build fix.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30604 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 92cd10f4 03-May-2009 Stephan Aßmus <superstippi@gmx.de>

* Refactored the way targets are collected before copy process begins, this
way, the optional packages (if there would be any) can be collected as well
before the actual process starts and the progress bar will reflect them
correctly. Before this change, the progress bar would have reset itself for
every optional package.
* In one of my previous commits, I added the error, if there was any, to the
reset message. Now the Installer window looks for the error and tells the
user about it.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30602 a95241bf-73f2-0310-859d-f6bbb57e9c96


# f827b016 03-May-2009 Stephan Aßmus <superstippi@gmx.de>

Cleanup round 2:
Renamed CopyEngine2 back to CopyEngine.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30601 a95241bf-73f2-0310-859d-f6bbb57e9c96


# b4afa663 03-May-2009 Stephan Aßmus <superstippi@gmx.de>

First round of cleanup:
* Renamed CopyEngine to WorkerThread, since it's used for other things than
just copying.
* Removed the code borrowed from Tracker.
* Removed the InstallerCopyLoopControl, since the CopyEngine handles
notifications and cancelling by itself now.
* Renamed a few message constants.
* Since we only support BFS partitions as install targets, I removed the
FS type from the target menu item label. However, I am going to solve this
differently. I guess all partitions should be seen in the target list, just
disabled if they are not a valid target, and with a reason given too.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30600 a95241bf-73f2-0310-859d-f6bbb57e9c96


# fd8ddbc2 26-Apr-2009 Stephan Aßmus <superstippi@gmx.de>

* Fixed GCC 4 build and warnings.
* Used std::vector in BlockingQueue instead of Ingo's Vector until I can figure out the GCC4 problems.
This is untested, but I will test this on another machine in a minute.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30423 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 7b293a3e 25-Apr-2009 Stephan Aßmus <superstippi@gmx.de>

* Prevent to copy the "var" and "_packages_" folders from the source volume
root folder as before switching the CopyEngine.
* Add a button "Write Boot Sector" that makes the selected target volume
bootable without performing an installation. Adjusted the status message
after installation to be more descriptive.
* Small improvements in the CopyEngine, collecting the source size should be
even a bit faster now since we can use the file size from the already
performed stat().


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30395 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 803d0234 25-Apr-2009 Stephan Aßmus <superstippi@gmx.de>

Sorry, this is a bit of a mess yet and needs more refactoring...
* I've implemented my own copy engine which runs a separate writer thread.
Especially when installing from one hard drive to another, it should speed
things up. When installing from CD, the entire harddisk write time should
at least disappear in the CD read time. When installing from/to the same
drive, the new routine is as fast as the Tracker code that was used before.
* When stopping/canceling the copy process, the copy engine will now actually
block, instead of happily going on while the alert is showing. I've
still implemented that to not leave incomplete files around, like before.
* There is now a progress bar, based on data bytes in files to copy. Reason
being that it's quite fast to collect this info versus also scanning all
attributes.
* The copy engine itself was used in another project before and was tested
with SHA256 hashes of the original files and the copied files, so I think
it can be trusted.
* There is now a lot of code that can be removed or should be cleaned up.
What was the "CopyEngine" should become the "WorkerThread" or something.
* I still had a mental TODO about skipping the swap file (there is none on
CDs, but when copying a harddisk installation there may be one), I just
remembered this when typing this commit message... will fix that next.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30394 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 3bbb00b4 24-Apr-2009 Stephan Aßmus <superstippi@gmx.de>

* Only except BFS partitions as target volumes. Installer does not initialize
partitions by itself. When it does, this check can be removed again... for
now DriveSetup is to be used and so there is no code duplication.
* Check if the target volume is non-empty and present an appropriate warning.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30382 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 35c3b2d2 24-Apr-2009 Stephan Aßmus <superstippi@gmx.de>

* Do not try to prevent read-only partitions, we will/should initialize it
with BFS anyways.
* Use the partition path, not the parent path. This also makes displaying IDs
really superfluous.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30375 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 3861c65e 22-Apr-2009 Stephan Aßmus <superstippi@gmx.de>

* Make the source selection not accidentally reject the boot partition because
it isn't BFS... (like perhaps ISO9660 with write-overlay ;-)
* Reject a lot more situations as valid targets. (No more devices when they
already have child partitions, no more extended partitions themselves, also
use a minimum size.)
* Remove the partition ID from the menu item name. I don't know why the user
would be interested in this.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30335 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 1e855c37 12-Apr-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

* Patch by Fredrik Ekdahl: gcc 4 build fixes (missing headers).
* Added missing header for mountvolume.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30135 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 934e233b 25-Mar-2009 Jérôme Duval <korli@users.berlios.de>

* don't copy /var (bug #3584)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29707 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 5d6a2a65 18-Aug-2008 Jérôme Duval <korli@users.berlios.de>

* improved error and cancellation handling
* only enable Begin button when a menu item has been chosen


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27051 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 87905063 02-Jun-2008 Jérôme Duval <korli@users.berlios.de>

better handles error and cancellation when copying


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25772 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 739dbdfa 12-May-2008 Jérôme Duval <korli@users.berlios.de>

* Patch from Christian Fasshauer: provides a cancel button
* fixed a few things: one couldn't restart the install process when cancelled, use B_QUIT_REQUESTED instead of QuitRequested().


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25466 a95241bf-73f2-0310-859d-f6bbb57e9c96


# ed7081f7 28-Oct-2007 Stephan Aßmus <superstippi@gmx.de>

* 'PNG ' -> B_PNG_FORMAT
* reformat long lines so that they don't exceed 80 chars


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22751 a95241bf-73f2-0310-859d-f6bbb57e9c96


# c4650bba 06-Sep-2007 Stephan Aßmus <superstippi@gmx.de>

* CopyEngine::Start() didn't return something at the end of the function
* CopyEngine::CopyFolder() forgot to GetName(name) before using "name" in
strcmp()
* "delete" already checks for NULL


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22196 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 7d2cc6a1 21-May-2007 Jérôme Duval <korli@users.berlios.de>

Now handles files at the root of the source volume. Fixes bug #1227


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21192 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 7677e50f 12-May-2007 Jérôme Duval <korli@users.berlios.de>

trace was enabled


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21114 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 9f3d8cb6 12-May-2007 Jérôme Duval <korli@users.berlios.de>

code style update
now mount the target partition before copying


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21113 a95241bf-73f2-0310-859d-f6bbb57e9c96


# a5fa64b5 01-Feb-2006 Jérôme Duval <korli@users.berlios.de>

some changes : alert if free space isn't enough, set status when mouse is over packages (doesn't work for some reason ...)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16192 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 7f40667c 30-Jan-2006 Jérôme Duval <korli@users.berlios.de>

Installer scripts are not executable, we launch them with sh


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16151 a95241bf-73f2-0310-859d-f6bbb57e9c96


# bc1301d3 24-Jan-2006 Jérôme Duval <korli@users.berlios.de>

* added checks for installing on source volume, or boot volume
* added alert for file error: lots of errors happening when updating a volume:
* it seems BEntry::IsDirectory() returns false whereas it should return true for some directories
this is to be checked with a test app
* boot volume is now marked automatically as the source volume (a rule is yet to be found for the target volume)



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16066 a95241bf-73f2-0310-859d-f6bbb57e9c96


# dcea76f0 24-Jan-2006 Jérôme Duval <korli@users.berlios.de>

also checks for media read only as it seems CD-ROM are reported read only this way


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16056 a95241bf-73f2-0310-859d-f6bbb57e9c96


# cbdfe279 23-Jan-2006 Jérôme Duval <korli@users.berlios.de>

reworked a bit to install packages


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16048 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 0bd6170f 22-Jan-2006 Jérôme Duval <korli@users.berlios.de>

CopyEngine is a BLooper: let it delete itself ...
copy everything in source directory instead of just 'beos'


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16040 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 46065378 20-Jan-2006 Jérôme Duval <korli@users.berlios.de>

actually uses the copyengine looper to handle the copy process


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16011 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 5226491c 19-Jan-2006 Jérôme Duval <korli@users.berlios.de>

basic copy


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16008 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 5543f135 08-Jan-2006 Jérôme Duval <korli@users.berlios.de>

our elf resolver has a problem with previous way of linking with FSUtils


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15875 a95241bf-73f2-0310-859d-f6bbb57e9c96


# ebc8a403 04-Jan-2006 Jérôme Duval <korli@users.berlios.de>

Installer makes use of FSCopyFolder in libtracker.so


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15839 a95241bf-73f2-0310-859d-f6bbb57e9c96


# baf595a0 27-Oct-2005 Jérôme Duval <korli@users.berlios.de>

we now use off_t for the sizes (sorry Ingo for bugging :) )


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14538 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 1eedf230 26-Oct-2005 Jérôme Duval <korli@users.berlios.de>

now populates menus
improved size to string formating for GB and TB


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14531 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 6a4b16f0 26-Oct-2005 Jérôme Duval <korli@users.berlios.de>

now uses real partitions for menus
annoyingly app_server crashes now at every launch


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14529 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 1a8f53bb 19-Oct-2005 Jérôme Duval <korli@users.berlios.de>

added a SourceVisitor and a TargetVisitor to go through BDiskDevice and BPartition objects


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14424 a95241bf-73f2-0310-859d-f6bbb57e9c96


# b461fb1d 18-Oct-2005 Jérôme Duval <korli@users.berlios.de>

added a haiku logo from stippi, thanks!
enlarged the window
improves widget placement


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14419 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 633dee06 30-Sep-2005 Jérôme Duval <korli@users.berlios.de>

fix packages view, added a copy engine class


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14283 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 5061f35c3f88149f20dca59fbec262a25658ffea 14-Sep-2014 Axel Dörfler <axeld@pinc-software.de>

Installer: don't replace system/settings.

* Instead of removing "system" in the target completely, only
replace all of its subfolders.
* The downside of the current solution is that extra files, and
directories in "system" will not be removed. Improvements
welcome.


# 70b978fd9fc574e72a9f91f58beb36c521ec57c4 05-Dec-2013 Murai Takashi <tmurai01@gmail.com>

Fix the build with GCC4.8

Signed-off-by: Jérôme Duval <jerome.duval@gmail.com>


# ba6f7c8c42038755c9017ae014859d016b072580 02-Jun-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

Installer: CopyEngine: Pass relative path to EntryFilter

... instead of the file name.


# c2be967eb9044dd6a57f8ce0f0fde28c3e2e8ab9 02-Jun-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

Installer: CopyEngine: Externalize decision making

* Add interface EntryFilter, an instance of which can be passed to the
CopyEngine. The object is asked whether to copy entries/clobber
directories.
* Move the _ShouldCopyEntry()/_ShouldClobberFolder() code to new
WorkerThread::EntryFilter.


# a601eaa9e12f36ea05aeea5f2997c76bb591e2ad 02-Jun-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

Installer: Remove "/boot/var" directory check

The PM Haiku Installer doesn't need support installing ancient Haiku
versions.


# fb5f0bb1c75c2a7a41f8936d028ebaa7eb7e84d0 02-Jun-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

Installer: Move path string constants to new InstallerDefs.h/cpp


# 28fd71c58667bdf69bfd211dfaabb0fca945eb71 01-Jun-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

Installer: CopyEngine: Remove some debug/uncommented code


# a83d8d14b53bb6b5a83c710201e95d34cd9eaeba 29-Apr-2013 Jérôme Duval <jerome.duval@gmail.com>

Installer: fixed two warnings.

* warnings about comparison between signed and unsigned integer expressions.
* also use std::min() instead of min_c()


# 4020aec13e0e44c5b395e8a4186269951a4c10b0 31-Jan-2012 Philippe Saint-Pierre <stpere@gmail.com>

Installer: minor memory leak fix. CID 1713.


# e6c49e10f99c49c67971071d288c992ad3948d9d 19-Mar-2011 Stephan Aßmus <superstippi@gmx.de>

Don't ignore the entire var directory, but rather only
the swap file specifically. There is already a TODO in
the code for replacing this mechanism with something
cleaner and more flexible. Resolves ticket #7367.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@41026 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 99d65cbc814977f9f18655d4a048e6ab0ec91337 28-Apr-2010 Matt Madia <mattmadia@gmail.com>

Removed the incorrect _sources_ conditional from ResetTargets.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36518 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 4a71fc35b646eda7fc351ba6b0a8d7ee1daea540 28-Apr-2010 Matt Madia <mattmadia@gmail.com>

InstallSourceArchive now copies source archives to _sources_/, which in turn
is ignored by Installer. Automatic whitespace cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36517 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 7f78035b8b9c9c43bfa0aa34b48c5ff4bd23bc3b 25-Apr-2010 Jérôme Duval <korli@users.berlios.de>

Should fix #5806. CollectTargets() is also called for packages, the fVarDirectory init is moved to ResetTargets().


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36475 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 51f50b12745c64a195c33857985f65de23a40249 19-Jan-2010 Stephan Aßmus <superstippi@gmx.de>

Installer cannot use find_directory(), since it needs to support source volumes
other than /boot. That's why it worked like it did in the first place. Some
folders like "trash" can be volume specific, but most others are not and the
volume passed to find_directory() is ignored (which makes sense).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35175 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 6ff00ae7e516314cdbde75d708c17ed786e24445 19-Jan-2010 Stephan Aßmus <superstippi@gmx.de>

Make the Installer ignore /var at it's new location. The old location is also
still checked, in case one uses the Installer to copy an old installation.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35173 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 72586154d7f505bd5f15377db729b515d40dee40 06-Sep-2009 Stephan Aßmus <superstippi@gmx.de>

* Finished ProgressReporter
* Integrated ProgressReporter into CopyEngine and UnzipEngine.
* Integrated unzipping to main installer engine. Since there are currently no
.zip files in the _packages_ folder (and not even a _packages_ folder
itself), this is completely invisible, but it works.

TODO: Adjust the build system to optionally copy packages into _packages_
instead of extracting them. Like for the CD build profile mode.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32967 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 2d304daf774fa0ad3382f39e413e65996ebc0458 03-Sep-2009 Stephan Aßmus <superstippi@gmx.de>

Ignore some more entries from the bootable CD. Should fix ticket #4403, test
pending.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32918 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 8e3916f8ef7f29c7fc15250c8d3f5ac510988116 02-Sep-2009 Stephan Aßmus <superstippi@gmx.de>

Extracted SemaphoreLocker into it's own file.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32904 a95241bf-73f2-0310-859d-f6bbb57e9c96


# da268834aba1485f7a60b22985b1509adb495efc 31-Aug-2009 Stephan Aßmus <superstippi@gmx.de>

Update the progress bar more often during file copies (every 2 MB instead of
every 10, which was not smooth enough).

+alphabranch


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32847 a95241bf-73f2-0310-859d-f6bbb57e9c96


# d7737cc84f8e442fac5d246b1d4ec063312ea259 29-Jul-2009 Stephan Aßmus <superstippi@gmx.de>

Changed the somewhat bold BLocker usage to a more straight forward semaphore
based mechanism to pause and eventually cancel the WorkerThread. This also works
now when the CopyEngine is still collecting file informartion (ticket #4153).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31912 a95241bf-73f2-0310-859d-f6bbb57e9c96


# c43e377cff19013c4f40783be35e690ebefb5147 13-Jun-2009 Stephan Aßmus <superstippi@gmx.de>

Increase the file handle limit.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31046 a95241bf-73f2-0310-859d-f6bbb57e9c96


# f76e944e24b1686fc3c45c30a47de543c025f11c 14-Jun-2009 Stephan Aßmus <superstippi@gmx.de>

* Fixed problems when installing onto non-empty target volumes. The
'system' folder will be a clean copy of the source volume. Other
folders will be merged (as before), but in case a folder is in the
way of a link or file from the source volume, it will now be purged.
* Clarified the alert for non-empty target volumes, so it is very clear
what happens. (Maybe there ought to the be option to only copy the system
folder, though.)
* Fixed a problem with copying attributes in certain cases.
* Fixed the main GUI not resetting state properly after encountering an
error during the copy process.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31042 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 84e3197428beba3c70f0a866585ed442c163de02 02-May-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

Build fix.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30604 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 92cd10f4db338d2aa15f215025a61f8808d4f7ba 03-May-2009 Stephan Aßmus <superstippi@gmx.de>

* Refactored the way targets are collected before copy process begins, this
way, the optional packages (if there would be any) can be collected as well
before the actual process starts and the progress bar will reflect them
correctly. Before this change, the progress bar would have reset itself for
every optional package.
* In one of my previous commits, I added the error, if there was any, to the
reset message. Now the Installer window looks for the error and tells the
user about it.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30602 a95241bf-73f2-0310-859d-f6bbb57e9c96


# f827b0168a3712e37c0d31d783a26baa92c05411 03-May-2009 Stephan Aßmus <superstippi@gmx.de>

Cleanup round 2:
Renamed CopyEngine2 back to CopyEngine.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30601 a95241bf-73f2-0310-859d-f6bbb57e9c96


# b4afa66367d65eb54c52b4aeec4724af691ef11b 03-May-2009 Stephan Aßmus <superstippi@gmx.de>

First round of cleanup:
* Renamed CopyEngine to WorkerThread, since it's used for other things than
just copying.
* Removed the code borrowed from Tracker.
* Removed the InstallerCopyLoopControl, since the CopyEngine handles
notifications and cancelling by itself now.
* Renamed a few message constants.
* Since we only support BFS partitions as install targets, I removed the
FS type from the target menu item label. However, I am going to solve this
differently. I guess all partitions should be seen in the target list, just
disabled if they are not a valid target, and with a reason given too.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30600 a95241bf-73f2-0310-859d-f6bbb57e9c96


# fd8ddbc230e9cede6a071920da1338282fc8cd91 26-Apr-2009 Stephan Aßmus <superstippi@gmx.de>

* Fixed GCC 4 build and warnings.
* Used std::vector in BlockingQueue instead of Ingo's Vector until I can figure out the GCC4 problems.
This is untested, but I will test this on another machine in a minute.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30423 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 7b293a3e9352708b1d067a4f4cd4c7a19ab7e64f 25-Apr-2009 Stephan Aßmus <superstippi@gmx.de>

* Prevent to copy the "var" and "_packages_" folders from the source volume
root folder as before switching the CopyEngine.
* Add a button "Write Boot Sector" that makes the selected target volume
bootable without performing an installation. Adjusted the status message
after installation to be more descriptive.
* Small improvements in the CopyEngine, collecting the source size should be
even a bit faster now since we can use the file size from the already
performed stat().


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30395 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 803d0234c19a3499f0191cc018c0b523c7f1520d 25-Apr-2009 Stephan Aßmus <superstippi@gmx.de>

Sorry, this is a bit of a mess yet and needs more refactoring...
* I've implemented my own copy engine which runs a separate writer thread.
Especially when installing from one hard drive to another, it should speed
things up. When installing from CD, the entire harddisk write time should
at least disappear in the CD read time. When installing from/to the same
drive, the new routine is as fast as the Tracker code that was used before.
* When stopping/canceling the copy process, the copy engine will now actually
block, instead of happily going on while the alert is showing. I've
still implemented that to not leave incomplete files around, like before.
* There is now a progress bar, based on data bytes in files to copy. Reason
being that it's quite fast to collect this info versus also scanning all
attributes.
* The copy engine itself was used in another project before and was tested
with SHA256 hashes of the original files and the copied files, so I think
it can be trusted.
* There is now a lot of code that can be removed or should be cleaned up.
What was the "CopyEngine" should become the "WorkerThread" or something.
* I still had a mental TODO about skipping the swap file (there is none on
CDs, but when copying a harddisk installation there may be one), I just
remembered this when typing this commit message... will fix that next.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30394 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 3bbb00b48dd6e55f9700f86110ca04b756ebe021 24-Apr-2009 Stephan Aßmus <superstippi@gmx.de>

* Only except BFS partitions as target volumes. Installer does not initialize
partitions by itself. When it does, this check can be removed again... for
now DriveSetup is to be used and so there is no code duplication.
* Check if the target volume is non-empty and present an appropriate warning.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30382 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 35c3b2d2a1706e112d41d27120edbcf828465e73 24-Apr-2009 Stephan Aßmus <superstippi@gmx.de>

* Do not try to prevent read-only partitions, we will/should initialize it
with BFS anyways.
* Use the partition path, not the parent path. This also makes displaying IDs
really superfluous.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30375 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 3861c65e8962ae8531c52052b0b440d27df90787 22-Apr-2009 Stephan Aßmus <superstippi@gmx.de>

* Make the source selection not accidentally reject the boot partition because
it isn't BFS... (like perhaps ISO9660 with write-overlay ;-)
* Reject a lot more situations as valid targets. (No more devices when they
already have child partitions, no more extended partitions themselves, also
use a minimum size.)
* Remove the partition ID from the menu item name. I don't know why the user
would be interested in this.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30335 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 1e855c376c4f785f926c0c4d4d08c827c05da643 12-Apr-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

* Patch by Fredrik Ekdahl: gcc 4 build fixes (missing headers).
* Added missing header for mountvolume.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30135 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 934e233b60a5b1b7ec181852ce43db30e2721151 25-Mar-2009 Jérôme Duval <korli@users.berlios.de>

* don't copy /var (bug #3584)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29707 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 5d6a2a65da2c05fbccfafde34dc81fee46905265 18-Aug-2008 Jérôme Duval <korli@users.berlios.de>

* improved error and cancellation handling
* only enable Begin button when a menu item has been chosen


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27051 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 87905063c3507da17f019b07f4b370cfe1fb319f 02-Jun-2008 Jérôme Duval <korli@users.berlios.de>

better handles error and cancellation when copying


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25772 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 739dbdfae4dca5237d84062a640c569d2ed28ca4 12-May-2008 Jérôme Duval <korli@users.berlios.de>

* Patch from Christian Fasshauer: provides a cancel button
* fixed a few things: one couldn't restart the install process when cancelled, use B_QUIT_REQUESTED instead of QuitRequested().


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25466 a95241bf-73f2-0310-859d-f6bbb57e9c96


# ed7081f728648b52ef179dd0397d3bc4aa1e7cfb 28-Oct-2007 Stephan Aßmus <superstippi@gmx.de>

* 'PNG ' -> B_PNG_FORMAT
* reformat long lines so that they don't exceed 80 chars


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22751 a95241bf-73f2-0310-859d-f6bbb57e9c96


# c4650bba52bf7d7e68f5cc9839f93ae83c667954 06-Sep-2007 Stephan Aßmus <superstippi@gmx.de>

* CopyEngine::Start() didn't return something at the end of the function
* CopyEngine::CopyFolder() forgot to GetName(name) before using "name" in
strcmp()
* "delete" already checks for NULL


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22196 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 7d2cc6a102b2394c67bf3da3c19b0eabdce60576 21-May-2007 Jérôme Duval <korli@users.berlios.de>

Now handles files at the root of the source volume. Fixes bug #1227


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21192 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 7677e50fffbf459d884156ae76b04e61a45547da 12-May-2007 Jérôme Duval <korli@users.berlios.de>

trace was enabled


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21114 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 9f3d8cb64fdbfd9b5ceff4e63669fdbb8dac0fc0 12-May-2007 Jérôme Duval <korli@users.berlios.de>

code style update
now mount the target partition before copying


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21113 a95241bf-73f2-0310-859d-f6bbb57e9c96


# a5fa64b505d5c014027f2198476c806a337e068f 01-Feb-2006 Jérôme Duval <korli@users.berlios.de>

some changes : alert if free space isn't enough, set status when mouse is over packages (doesn't work for some reason ...)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16192 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 7f40667cbc48b93fe0dba2a33676e4d658d751b4 30-Jan-2006 Jérôme Duval <korli@users.berlios.de>

Installer scripts are not executable, we launch them with sh


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16151 a95241bf-73f2-0310-859d-f6bbb57e9c96


# bc1301d3368d4296806735be1918f7c7d390fa49 24-Jan-2006 Jérôme Duval <korli@users.berlios.de>

* added checks for installing on source volume, or boot volume
* added alert for file error: lots of errors happening when updating a volume:
* it seems BEntry::IsDirectory() returns false whereas it should return true for some directories
this is to be checked with a test app
* boot volume is now marked automatically as the source volume (a rule is yet to be found for the target volume)



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16066 a95241bf-73f2-0310-859d-f6bbb57e9c96


# dcea76f0abdfe055fda04e5415cd77a3f8ef727a 24-Jan-2006 Jérôme Duval <korli@users.berlios.de>

also checks for media read only as it seems CD-ROM are reported read only this way


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16056 a95241bf-73f2-0310-859d-f6bbb57e9c96


# cbdfe279477d8a54af8cc2459c95129cc279f660 23-Jan-2006 Jérôme Duval <korli@users.berlios.de>

reworked a bit to install packages


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16048 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 0bd6170f798073badc62c3b399e2c10f6e781c42 22-Jan-2006 Jérôme Duval <korli@users.berlios.de>

CopyEngine is a BLooper: let it delete itself ...
copy everything in source directory instead of just 'beos'


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16040 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 46065378112a4b12be63fcbd5ea3da02f73c9077 20-Jan-2006 Jérôme Duval <korli@users.berlios.de>

actually uses the copyengine looper to handle the copy process


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16011 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 5226491c720a51b95d1246c9abc10df1344b016b 19-Jan-2006 Jérôme Duval <korli@users.berlios.de>

basic copy


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16008 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 5543f13539dffce340ac1be29b4744b5d1cbf822 08-Jan-2006 Jérôme Duval <korli@users.berlios.de>

our elf resolver has a problem with previous way of linking with FSUtils


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15875 a95241bf-73f2-0310-859d-f6bbb57e9c96


# ebc8a403e56695c94de08e50957e9ceb218e0976 04-Jan-2006 Jérôme Duval <korli@users.berlios.de>

Installer makes use of FSCopyFolder in libtracker.so


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15839 a95241bf-73f2-0310-859d-f6bbb57e9c96


# baf595a0374020b30531c1ec75f0245ed148a8b0 27-Oct-2005 Jérôme Duval <korli@users.berlios.de>

we now use off_t for the sizes (sorry Ingo for bugging :) )


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14538 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 1eedf230816a2618554a059f2d235dbdd53befb4 26-Oct-2005 Jérôme Duval <korli@users.berlios.de>

now populates menus
improved size to string formating for GB and TB


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14531 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 6a4b16f094e2a0f7d330462de4c1e1e3ff6ac5cd 26-Oct-2005 Jérôme Duval <korli@users.berlios.de>

now uses real partitions for menus
annoyingly app_server crashes now at every launch


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14529 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 1a8f53bbf7c3604617ef0c2164fd4157289e4c4a 19-Oct-2005 Jérôme Duval <korli@users.berlios.de>

added a SourceVisitor and a TargetVisitor to go through BDiskDevice and BPartition objects


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14424 a95241bf-73f2-0310-859d-f6bbb57e9c96


# b461fb1d4b16336f284c500d47e246c66b1d659a 18-Oct-2005 Jérôme Duval <korli@users.berlios.de>

added a haiku logo from stippi, thanks!
enlarged the window
improves widget placement


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14419 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 633dee064e847e9bd9857193f7ae861e10ab21ab 30-Sep-2005 Jérôme Duval <korli@users.berlios.de>

fix packages view, added a copy engine class


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14283 a95241bf-73f2-0310-859d-f6bbb57e9c96