The previous package was broken (would often segfault, prevented
building Haiku cross-tools under x86_64), so update to the latest
version in HaikuPorts.
Signed-off-by: Alex Smith <alex@alex-smith.me.uk>
* I rebuilt all packages that depend directly on python: I hope I
didn't miss anything.
* SVN upgraded to 1.8.10 because I couldn't get 1.6.18 to build. This
required uodating expat, apr and apr_util, and adding serf which
replaces neon for SVN http support.
* Everything seems to be running fine so far.
Many bugfixes, most importantly a bug was fixed which makes network
downloads go much faster (without waiting for you to wave the mouse over
the window).
- Revert the change to BuildFeature since the latest version of the zlib
sources package indeed uses the correct "sources" directory.
- Make the fake zlib package for ARM use the same revision number as the
current zlib version (4) so it can use the current version of the source
package instead of some older one.
The packages are the bootstrap ones, modified with the "unbootstrap"
script. Not recommended for real use, but this should make playing with
the ARM build a bit simpler.
The libsolv package somehow got lost in the process when I converted
those. Anyone with a copy of the libsolv_bootstrap packages in their
arm generated folder is welcome to "unbootstrap" and upload it.
* From now on, the gcc-specific system libraries (libgcc, libsupc++ and
libstdc++) are provided by separate packages built along with gcc:
- gcc_syslibs contains the shared libraries (libgcc_s.so, libsupc++.so and
libstdc++.so)
- gcc_syslibs_devel contains the static libraries and both c++ and gcc
headers
The shared libraries now make proper use of symbol versioning and there
are version-specific symlinks
* The buildsystem has been adjusted to no longer use the libraries and
headers from the cross-compiler, but use the ones provided by the
above-mentioned packages. The only exception is that the 32-bit libraries
required for the bootloader of the x86_64 architecture are still taken
from the cross-compiler.
provided in the gcc_syslibs_devel build feature for building Haiku.
* Simplify declaration of c++ and gcc headers for the legacy compiler -
in the end we always use the ones living by our source tree anyway.
* Fix a couple of missing local declarations for jam variables, which
were necessary to avoid a build problem with strace. There are
probably more bugs like these hiding in our build system files, but
I'm saving the fix for those to the next commit.
* Add new gcc packages to the HaikuPorts (x86*-)repositories.
Stop-gap solution to make smpeg installable until the separate libstdc++
package is available. Then it will hopefully have a reliable "compat"
version we can depend on.
* Remove unneeded path mashup in curl to find the ca_root_certificates
and use the file in .self/data/ssl. This makes it possible to rename the
package providing ca_root_certificates without everything exploding.
* Use a certificate file in the format cURL expects, not Mozilla source
file in NSS format.
Tested against wget, curl, and git, which all were still able
to verify certificates and download from HTTPS sites.
Signed-off-by: Oliver Tappe <zooey@hirschkaefer.de>
- acr (needed by mpd)
- dos2unix
- getconf (used by valgrind)
(also used by autoconf to determine ARG_MAX faster than try-and-error)
- getopt (needed by acr)
- html_parser (used by netsurf for its git manifest)
- readline_x86
- srm
It seems curl doesn't like the new ca_root_certificates package.
This breaks git clone and probably other things.
Maybe it has to do with the version string.
Since I can't seem to build a replacement curl, I'm reverting to the previous
ca_root_certificates so at least next nightly still works.
* To avoid problems caused by the varying python versions used by the
different architectures, switch those packages from 'any' to explicit
architecture.
* data files are still in the source tree.
* gutenprint headers contain a image.h header file which collides
with ours. This is solved by forcing include search first on
os/kernel directory.
* This solves the issue where libreadline wasn't actually linked to libncurses
* x86_64 update will follow later, as the build maxed out my x86_64 build VM
This reverts commit 4a4e2dae77.
It broke the build with:
Resolving package dependencies ...
Encountered problems:
problem 1: nothing provides cmd:as>=2.23.2_2013_04_09 needed by
gcc-4.8.2_2014_01_28-2
solution 1:
- allow deinstallation of gcc-4.8.2_2014_01_28-2
Instead, the fixed binutils package should be used. Reverting this now
as otherwise it's not even possible to build a system to build a fixed
package.
The new version breaks git, but only once it's in the repository.
Installing it manually alongside the old one works. Rebuilding git and
uploading a new package does not work, as for the package management,
the new version is exactly equal to the old, as the port revision isn't
newer. We need to come up with a proper way to handle this.
Also removes zsh, as that requires the new libpcre.
* Resolves problem with secondary arch builds
not picking up secondary os kit headers
* Still need to build x86 gcc packages
* No binary changes, shouldn't need a bootstrap
Older versions will not work anymore because of the API changes in
network kit (removal of nonstandard B_PROT_* status codes). x86 and
x86_64 packages have to be updated again.
* Also update dependencies cmake and libxml2
* Bonus package: Milkytracker
This is for gcc2hybrids only. gcc4 and x86_64 users are welcome to
contribute an haikuwebkit package for their architectures using the
haikuporter recipe.
* Fix issue where mesa_devel attempted to lay
a symlink over a directory causing instability
installing mesa_devel
* Add mesa_swpipe to repos (LLVM enabled Gallium softpipe)
Somehow gcc doesn't detect the linker is GNU ld when run in Haikuporter.
We now force this in the recipe. This allows gcc to invoke the linker
with response files, avoiding "command line too long" errors, for
example when building WebKit.
* perl and python now support vendor-folders for modules and use correct
(i.e. writable) site-folders
* git, mercurial and scons have been adjusted to put their perl/python
modules into respective vendor-modules folders
* only the source package are actually relevant, as the source paths
within older versions of those source packages no longer match the
expectations of the build system
Almost complete. bepdf is still missing, since it doesn't build with gcc
4 and a few source packages are missing as well (binutils and gcc
because haikuporter doesn't build them correctly ATM, mesa due to an
oversight).
* Add configure option --bootstrap which allows specifying the
haikuporter and HaikuPorts repository paths.
* Add rules for supporting a second repository type. The
PackageRepository rule is now private and RemotePackageRepository is
used for remote repositories. The new BootstrapPackageRepository rule
is for defining a bootstrap repository (there will probably be only
the HaikuPorts cross repository) whose packages can be built as needed
via haikuporter.
* Rename DownloadPackage to FetchPackage.
* Define repository HaikuPortsCross.
* HaikuCrossDevel package(s): There are now two sets of packages: A
"stage1" set with the same content as before and a final set
additionally containing the libraries libbe, libnetwork, libpackage.
Those are needed for building the libsolv bootstrap package while for
building them we need other bootstrap packages (ICU, libz).
This is basically all that's required to build a bootstrap Haiku
completely from sources, with a few caveats:
* There's no ICU bootstrap recipe yet (so one has to cheat and use the
prebuilt package ATM).
* Probably doesn't work on Haiku yet (tested on Linux only).
* A 32 bit environment must be used (otherwise building the gcc 2
bootstrap package fails).
* Building with multiple jobs doesn't work yet, since haikuporter uses
common directories for building different packages and there's no
explicit serialization yet.
* Haven't tested the resulting image save for booting it. So it probably
needs a bit more work before it can actually build the final
HaikuPorts packages.
* 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.
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.
* 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.