Commit Graph
100 Commits
Author SHA1 Message Date
Ingo Weinhold 78f4c163d4 Beginnings of support for building a bootstrap Haiku image
Copy:
* packages: Haiku -> HaikuBootstrap
* images: HaikuImage -> HaikuImageBootstrap
... and remove some unncessary content.

Setting the jam variable HAIKU_BOOTSTRAP_BUILD enables using the
bootstrap files.
2013-07-07 13:45:38 +02:00
Ingo Weinhold 7aa46ed97d Move common image building code to HaikuImageCommon 2013-07-07 13:21:26 +02:00
Ingo Weinhold db11a1104c Move common image building code to HaikuImageCommon 2013-07-07 12:32:45 +02:00
Ingo Weinhold 7418499c4a Remove more optional package related left-overs 2013-07-07 11:14:28 +02:00
Ingo Weinhold 2bab2851aa Remove OptionLibPackages 2013-07-07 10:49:20 +02:00
Ingo Weinhold e8c5236a9c Move image definition jamfiles to build/jam/images 2013-07-07 10:44:43 +02:00
Ingo Weinhold 056e9bb620 Add some more packages to the HaikuPorts repository 2013-07-06 18:06:22 +02:00
Ingo Weinhold 014eed80e2 Change repository directory layout
* Under the base URL there are supposed to be the repository files and a
  subdirectory "packages".
* Fix the repository URL related confusion introduced earlier. The URL
in
  the repository info (and thus in the repository file) is supposed to
  be the base URL for the repository. It is not a (potentially)
  different base URL for the package files. Package and repository
  files were supposed to live in the same directory. Now, by requiring
  the package files to live in a subdirectory -- which can also be a
  symlink -- we gain some flexibility.
  The URL in the repository config is usually the same as the in the
  repository info, unless it refers to a mirror site. This allows for
  mirrors to copy the original repository verbatim.
* Remove the PackageURL rule and introduce a DownloadPackage rule
  instead. The URL for a package file cannot be computed in the jam
  parsing phase anymore, as it contains the hash value of the package
  list.
* BRepositoryConfig: Add PackagesURL() for convenience.
2013-07-06 18:06:02 +02:00
Ingo Weinhold 600620e790 package_daemon: create the administrative dir when mounted 2013-07-06 17:48:03 +02:00
Ingo Weinhold 3942ca0d5e configure: fix sha256sum/sha256 checks 2013-07-06 12:19:46 +02:00
Ingo Weinhold 2afaeda8b7 Copy repository config files to the image
... to common/settings/package-repositories. This way the used
repositories are already known to pkgman.
2013-07-06 02:31:31 +02:00
Ingo Weinhold d72ce06673 Adjust to changed HaikuPorts repository layout
The package kit actually requires the files "repo", "repo.info",
"repo.sha256" to be located under the repository base URL, so the
approach to name the repository file "repo-<hash>" doesn't work.
Now there's a directory "<hash>" which contains the files.

This commit moves the computation of the hash and downloading the
repository file from the build_haiku_image script to the jam build
system. The repo.info is also downloaded and a repository config file
is generated.
2013-07-06 02:29:51 +02:00
Ingo Weinhold f4e265d53c Add build tool create_repository_config
Given a repository base URL and a repository info, it creates a
repository config file.
2013-07-06 02:21:47 +02:00
Ingo Weinhold 531a3d42bc Add rule ChecksumFileSHA256 2013-07-06 02:19:51 +02:00
Ingo Weinhold 46686fe6c0 Download*File rules: add optional source target
If specified the path to the source target can be used in the URL via
"$source".
2013-07-06 02:19:38 +02:00
Ingo Weinhold 2a5d0aafa6 configure: set new variable HOST_SHA256
sha256sum and sha256 are detected.
2013-07-06 02:17:15 +02:00
Ingo Weinhold bbd644b00b libsolv_build: add support for building on FreeBSD
Also fail immediately when an unsupported platform is encountered.
2013-07-06 02:15:39 +02:00
Ingo Weinhold ee64a0a6db BRepositoryConfig::SetTo(): fix use after deallocation
The strings retrieved from the driver settings were used after
unload_driver_settings(). Use BDriverSettings which also simplifies
things quite a bit.
2013-07-06 02:13:54 +02:00
Ingo Weinhold 30cdb26b5f Add BDriverSettings to libbe_build 2013-07-06 02:11:18 +02:00
Ingo Weinhold 3758560637 BuildSetup: remove obsolete dir variables 2013-07-06 02:10:10 +02:00
Ingo Weinhold a28a0ac6b2 BPackageInfo::_ExtractUsers(): fix no group case 2013-07-06 02:09:08 +02:00
Ingo Weinhold 4174191272 BPackageInfo: fix range check in c'tor 2013-07-06 02:08:29 +02:00
Ingo Weinhold 627626afd4 GeneratedRepositoryPackageList: defeat localization
Set LC_ALL=C, so "sort" produces useful results.
2013-07-05 14:28:09 +02:00
Ingo Weinhold 458b56a68c Also install the be_book package in system 2013-07-05 14:09:09 +02:00
Ingo Weinhold f0273200d4 devel packages for mandatory packages must be in system as well 2013-07-05 14:09:09 +02:00
Ingo Weinhold 4dd0ed48e3 BSolver: fix for gcc 2
Missed one #if, so sCreateSolver was never initialized.
2013-07-05 13:53:25 +02:00
Ingo Weinhold fdf111aa57 libsolvext requires libz 2013-07-05 13:45:25 +02:00
Ingo Weinhold 1faf74732d Update packages binutils, gcc, add missing bepdf source package 2013-07-05 13:26:12 +02:00
Ingo Weinhold a65099bbe4 libsolv_build: fix build on gcc 2 Haiku
* Fix the "UseHeaders" invocation for libsolvext to use the correct
  directory.
* Reorder things slightly, merely for aesthetical reasons.
2013-07-05 13:23:48 +02:00
Ingo Weinhold bd915d9f53 BSolver: fix build host build for gcc 2
gcc 2 doesn't support the weakref attribute. Rather use the regular
(target) method to initialize sCreateSolver instead (pthread once,
dlopen()). Since we know that we're on Haiku, that doesn't add any
dependencies that aren't available anyway.
2013-07-05 13:16:08 +02:00
Ingo Weinhold 812baf3925 libsolv_build: declare missing dependency 2013-07-05 12:14:59 +02:00
Ingo Weinhold 98c6dfa41e Switch build system from optional package to repositories
* Build libsolv and the dependency solver part of the package kit for
  the build platform.
* Add build tool get_package_dependencies. Given a list of package files
  and a list of repository files it determines the additional packages
  that need to be retrieved from the repositories and prints their URLs.
* Add rules to work with external repositories in the build system
  (build/jam/RepositoryRules):
  - PackageRepository declares an external repository with all its
    packages. The URL of the repository file isn't specified. It is
    computed from a given base URL and the SHA256 hash of the list of
    package files.
  - GeneratedRepositoryPackageList generates a file containing the file
    names of all packages in a repository.
  - IsPackageAvailable returns whether a package is available in any
    repository.
  - PackageURL returns the URL for a package.
* Declare the HaikuPorts repository for x86_gcc2
  (build/jam/repositories/HaikuPorts/x86_gcc2).
* Add rule AddHaikuImagePackages to add a package to the image and rule
  IsHaikuImagePackageAdded to determine whether a package has been
  added.
* OptionalPackages: Remove all entries that just downloaded and
  installed an external package. AddHaikuImagePackages can be used
  instead and is used in the remaining entries. Also move the remaining
  optional package dependency declarations from
  OptionalPackageDependencies here.
* ExtractBuildFeatureArchives: Instead of the URL parameter a package
  name must be specified now. This allows to simplify BuildFeatures
  significantly, since there's no dealing with URLs anymore. "if" out
  the entries that aren't supported yet.
* build_haiku_image: For the packages installed in system and common
  resolve their dependencies and download and install them as well.
2013-07-05 10:51:42 +02:00
Ingo Weinhold 43d96d8f7a haiku package-info: fix some provides/requires 2013-07-05 10:09:38 +02:00
Ingo Weinhold 001e9064e0 LibsolvSolver: missing include 2013-07-05 09:59:34 +02:00
Ingo Weinhold bf5b4b25c8 package_repo list: add missing cases
It probably would be better to share code with package's list, since it
is very similar.
2013-07-05 09:58:37 +02:00
Ingo Weinhold e85334022e Repository file format: group attributes of a package
* Introduce new package attribute B_HPKG_ATTRIBUTE_ID_PACKAGE (valid
  only in a repository file) to group the attributes belonging to a
  package.
* BRepositoryContentHandler:
  - No longer derive from BPackageContentHandler.
  - Add hooks HandlePackage() and HandlePackageDone() that bracket the
    attributes for a package. This is more explicit and robust than
    handlers having to guess when one package ended and the next began.
* BRepositoryCache: Make use of BPackageInfoContentHandler. No need to
  duplicate the code for reading a package info from package info
  attributes.
2013-07-04 19:20:14 +02:00
Ingo Weinhold 17d00ecd27 pkgman: RepositoryBuilder: add BRepositoryCache c'tor 2013-07-04 19:06:57 +02:00
Ingo Weinhold 383cd08d72 BSolverRepository: add SetTo(const BRepositoryCache&) 2013-07-04 19:06:42 +02:00
Ingo Weinhold 6a7e3406be BSolverRepository: fix gcc 4 build 2013-07-04 19:03:03 +02:00
Ingo Weinhold c8928835c5 BRepositoryCache: use BStandardErrorOutput 2013-07-04 19:02:10 +02:00
Ingo Weinhold 69f67e6de6 BRepositoryInfo: make sure fInitStatus is always set correctly 2013-07-04 19:00:39 +02:00
Ingo Weinhold 695a1b248a repository writer: fix use of incorrect header size
The header size of the package file header was used, which resulted in
broken repository files.
2013-07-04 16:37:24 +02:00
Ingo Weinhold 32086850f7 Add HPKG to Expander's supported types 2013-07-04 12:51:26 +02:00
Ingo Weinhold 3c3dd841a7 RepositoryWriterImpl::_AddPackage(): more info in error messages 2013-07-04 12:36:55 +02:00
Ingo Weinhold fd28164da0 Also allow source packages in a repository for any architecture 2013-07-04 12:13:21 +02:00
Ingo Weinhold 2f5551ec2a libroot_build: make path normalization more robust
In case we don't have read permission for an ancestor directory, we try
to guess the path from the CWD.
2013-07-04 10:16:15 +02:00
Ingo Weinhold 2ebcd86dfe Add configure option --host-only
When specified, the build will be configured for building build host
tools only.
2013-07-03 23:19:00 +02:00
Ingo Weinhold 87e22aa865 Make package_repo buildable for the build host 2013-07-03 23:14:31 +02:00
Ingo Weinhold a85e46496d package_repo: fix printf() format strings 2013-07-03 23:13:09 +02:00
Ingo Weinhold c09ec54a59 Fix MIME type creation error
DatabaseLocation::OpenOrCreateType(): BNode::WriteAttr() returns the
number of bytes written, not just an error code., so we erroneously
reported an error on success.

Fixes the first part of #9845.
2013-07-01 14:17:51 +02:00
Ingo Weinhold 4f82f6fa72 Add Expander rule for Haiku package 2013-07-01 13:55:16 +02:00
Ingo Weinhold 8d5ae262dc Add MIME type for Haiku packages
Doesn't have an icon yet (hint, hint! :-)).
2013-07-01 13:54:56 +02:00
Ingo Weinhold 178d2f9fb9 Expander: create settings directory, if necessary
Fixes #9846.
2013-07-01 13:26:29 +02:00
Ingo Weinhold 5a7d7bc5dd Remove *Kit pseudo targets from root Jamfile 2013-06-30 19:01:37 +02:00
Ingo Weinhold ff2e520912 Remove the old "CVS" package rules
... and all their invocations.
2013-06-30 18:59:11 +02:00
Ingo Weinhold 207389a060 BResources::SetTo(): try opening read-only on error
Fixes #9843.
2013-06-30 14:06:29 +02:00
Ingo Weinhold 4c851c295d Clock: fix crash when resources could not be loaded 2013-06-30 13:51:49 +02:00
Ingo Weinhold 2a24174d9b Clock: TOffscreenView: small cleanup 2013-06-30 13:46:56 +02:00
Ingo Weinhold 301f4b463a Expander: also read rules from data directories
* ExpanderSettings: Use a settings directory "expander" and rename
  settings file to "settings".
* ExpanderRules: Read expander rules from "rules" files in the settings
  directory, then from files in expander/rules subdirectories of the
  installation location data directories, and finally add the built-in
  rules. This allows packages to provide expander rules (as already
  done by the p7zip package).
* OptionalPackages: Remove AddExpanderRuleToHaikuImage invocations.
* ImageRules: Remove Expander rule file related rules.
2013-06-30 13:29:48 +02:00
Ingo Weinhold 2cf916cbe2 ExpanderRules: Coding style update
Also makes the ExpanderRule getters const. No other functional change.
2013-06-30 13:15:35 +02:00
Ingo Weinhold 94307089f9 Update packages ffmpeg, openssh, p7zip 2013-06-30 11:49:40 +02:00
Ingo Weinhold 26ea70667a Deskbar: use a virtual directory for the user-configurable menu
* Deskbar now uses ~/config/settings/deskbar/menu_entries for its menu,
  falling back to /system/data/deskbar/menu_entries, when the former
  doesn't exist. The latter always exists and is a virtual directory
  merging the deskbar/menu subdirectories of ~/config/settings/ and
  <any installation location>/data/. So, if a package provides a
  deskbar menu symlink, it is added automatically when the package is
  activated. The user can add own menu items by putting stuff into
  ~/config/settings/deskbar/menu/, only use their own organization by
  symlinking it to menu_entries, or do fun stuff by making menu_entries
  a customized virtual directory.
* HaikuImage: No longer create any deskbar menu symlinks in the user's
  settings directory. Instead add them to the Haiku package.
* OptionalPackages: At least for the optional packages that do have
  hpkgs, no longer create deskbar menu symlinks in the user's settings
  directory.
* Move all Deskbar settings files to ~/config/settings/deskbar/ and
  drop the "Deskbar_" prefix.
2013-06-29 14:58:52 +02:00
Ingo Weinhold dbd97804ea SetType rule: add optional type parameter
If not specified the executable MIME type is used as before.
2013-06-29 14:58:52 +02:00
Ingo Weinhold 1c29b26e7c Add virtual directory feature to Tracker
Similar to stored queries, files of the virtual directory type behave
like directories -- i.e. they open in a list-mode Tracker window and
show up as an item with submenu in navigation menus. The file itself is
a plain text file in driver settings format. It can have an arbitrary
number of "directory" entries, which specify the paths of (actual)
directories for which the virtual directory provides a merged view. The
view will not show duplicate entries. For non-directory entries the
first one encountered (according to the order the directory paths are
specified in the file) will be shown. A subdirectory entry will again
behave like a virtual directory.

The support in Tracker isn't perfect yet. I'm afraid major refactoring
would be necessary to get it there.

The virtual directory file type uses a differently colored version of
the folder icon. Alternatives welcome.
2013-06-29 14:58:51 +02:00
Ingo Weinhold de85051c81 BPoseView::AttributeChanged(): additional check in icon case
Model::AttrChanged() requires the model to be open and so does
IconCache::IconChanged(), so add the check. Not sure if the block is
ever executed now (or ever worked before). This does at least prevent
asserts being triggered when compiled with debugging enabled.
2013-06-29 13:58:10 +02:00
Ingo Weinhold e19f9091cd BPathMonitor: add "from path" to B_ENTRY_MOVED notifications 2013-06-29 13:44:08 +02:00
Ingo Weinhold b5b9388a28 Add C++ API for driver settings
Copied from the userlandfs utility classes, adjusted coding style, did
some renaming and small interface changes.
2013-06-29 13:42:00 +02:00
Ingo Weinhold c143884fdf Use incorrect use of BPathMonitor in input/midi/net server
The B_ENTRY_* constants aren't valid watch flags.
2013-06-27 21:57:44 +02:00
Ingo Weinhold 04382d496e BPathMonitor: rewrite
This resolves all issues the test suite uncovered. It should also deal
with hard links correctly, though that hasn't been tested. Still
unsupported are:
* changes due to mounting/unmounting a volume,
* tracking of symlinks in the path components.
2013-06-27 21:57:44 +02:00
Ingo Weinhold cc4d194aeb Add test suite for BPathMonitor
749 / 1504 tests fail
2013-06-27 21:57:43 +02:00
Ingo Weinhold 8c974aa800 node monitor: add TODO regarding the syscalls 2013-06-27 21:57:43 +02:00
Ingo Weinhold 0d603ac65c Fix node monitoring slot accounting for stop_watching()
NodeMonitorService::RemoveUserListeners() didn't decrement
io_context::num_monitors when removing a listener, so limit checks
would be off afterwards.
2013-06-27 21:57:43 +02:00
Ingo Weinhold 1eda8517f1 BOpenHashTable: Add IsEmpty() 2013-06-27 21:57:43 +02:00
Ingo Weinhold 3e8daeb7bc Add BMessenger::HashValue() 2013-06-27 21:57:42 +02:00
Ingo Weinhold cb4a05cfdf Missed B_WATCH_FOLDERS_ONLY occurrence 2013-06-27 21:57:42 +02:00
Ingo Weinhold 38afe232de BPathMonitor: pass BMessenger by reference 2013-06-27 21:57:42 +02:00
Ingo Weinhold 7b198d812e B_WATCH_FOLDERS_ONLY -> B_WATCH_DIRECTORIES_ONLY
Stick to the nomenclature generally used in the public API.
2013-06-27 21:57:42 +02:00
Ingo Weinhold 8d572c9264 Add class NotOwningEntryRef
A entry_ref subclass that avoids cloning the entry name.
2013-06-27 21:57:41 +02:00
Ingo Weinhold 3209bc40c5 BPathMonitor: PathHandler::_NotifyTarget(): simplify
* Add optional entry_ref return parameter to _HasFile().
* Simplify _NotifyTarget() by using _HasDirectory() and _HasFile().
2013-06-27 21:57:41 +02:00
Ingo Weinhold ddd775f5ac BPoseView::FSNotification(): fix issue in debug build 2013-06-27 21:57:41 +02:00
Ingo Weinhold 77ca66cdb7 BPathMonitor: make the node watching mechanism configurable
Add inner class BWatchingInterface and method SetWatchingInterface().
This abstracts the calls to watch_node() and stop_watching(), thus
making it possible to use the path monitor in Tracker.
2013-06-27 21:57:41 +02:00
Ingo Weinhold ad1875fd70 BPathMonitor: use pthread_once for initialization 2013-06-27 21:57:40 +02:00
Ingo Weinhold 6ca95bd813 PathMonitor.cpp: some style cleanup 2013-06-27 21:57:40 +02:00
Ingo Weinhold 62b0b64124 BStringList::Add(): fix ref counting problem
Handle the case that the private data of the given string is not
shareable.
2013-06-27 21:57:40 +02:00
Ingo Weinhold 5fa3519dec BString::Private: Add IsShareable() 2013-06-27 21:57:40 +02:00
Ingo Weinhold 2752612bc6 BMergedDirectory::GetNextDirents(): fix end-of-list return value 2013-06-27 21:57:40 +02:00
Ingo Weinhold 535207ae9a BPoseView::AddPosesTask(): fix count checks
In case GetNextDirents() returned an error, the wrong blocks were
executed.
2013-06-27 21:57:39 +02:00
Ingo Weinhold 105511275e Move PUuid from shared to support 2013-06-27 21:57:39 +02:00
Ingo Weinhold 2551c12bec Update wonderbrush package 2013-06-19 05:07:27 +02:00
Ingo Weinhold b6163fd2ae Update openssh package 2013-06-18 11:57:29 +02:00
Ingo Weinhold 01293f6a5d OptionalPackages: fix syntax errors 2013-06-18 11:40:12 +02:00
Ingo Weinhold 56c3ef1d73 Disable xz-utils optional package for gcc 2 2013-06-18 11:32:23 +02:00
Ingo Weinhold 7f453e3b5f Update packages vision, wpa_supplicant, wqy_microhei, yasm 2013-06-18 11:29:00 +02:00
Ingo Weinhold e31d588184 Update several packages
* neon
* openssh
* p7zip
* pe
* subversion
* tar
* timgmsoundfont
* wonderbrush
2013-06-18 05:06:54 +02:00
Ingo Weinhold 676cc5aafe Update packages mercurial, mkdepend 2013-06-17 21:22:28 +02:00
Ingo Weinhold 98c399b8c8 Update packages keymapswitcher, libedit, libxml2, libpcre 2013-06-17 21:06:31 +02:00
Ingo Weinhold 0ac19e7d42 Update several packages
* bzip2
* ca_root_certificates
* cdrtools
* cmake
* ctags
* curl
* cvs
* doxygen
* freetype
* git
* groff
* libsolv
* man
* nano
* readline
* sqlite
* python
2013-06-17 19:18:05 +02:00
Ingo Weinhold 8d1a9545a9 Update apr[_util], be_book, bepdf, jam packages 2013-06-16 03:54:50 +02:00
Ingo Weinhold 46792e5997 Update basic development packages 2013-06-15 23:03:59 +02:00
Ingo Weinhold 12629b106e Update expat package 2013-06-14 00:48:13 +02:00