JHBuild is a tool designed to ease building collections of source packages, called “modules”.

Overview

JHBuild README

JHBuild is a tool designed to ease building collections of source packages, called “modules”.

JHBuild was originally written for building GNOME, but has since been extended to be usable with other projects.

JHBuild requires Python >= 3.5

Installing JHBuild

Refer to the 'Getting Started' section of the JHBuild manual:

https://gnome.pages.gitlab.gnome.org/jhbuild/getting-started.html

Or refer to the online JHBuild manual at:

https://gnome.pages.gitlab.gnome.org/jhbuild/index.html
An introduction to JHBuild is also available on the GNOME Wiki:
https://wiki.gnome.org/Projects/Jhbuild/Introduction

Using JHBuild

JHBuild uses a command line syntax similar to tools like CVS:

jhbuild [global-options] command [command-arguments]

The global JHBuild options are:

-f, --file config
  Use an alternative configuration file instead of the default ~/.config/jhbuildrc.
-m, --moduleset moduleset
  Use a module set other than the module set listed in the configuration file. This option can be a relative path if the module set is located in the JHBuild moduleset folder, or an absolute path if located elsewhere.
--no-interact Do not prompt the user for any input. This option is useful if leaving a build unattended, in order to ensure the build is not interrupted.

Refer to the JHBuild manual for a complete list of JHBuild commands and options. The common ones are:

jhbuild bootstrap

The bootstrap command installs a set of build utilities. The build utilities include autoconf , automake and similar utilities. The recommended method to install the build utilities is via your distribution's package management system. The bootstrap should only be used if the build utilites are not provided by your distribution's package management system, for example on Mac OS.

jhbuild build [--autogen] [--clean] [--dist] [--distcheck] [--ignore-suggests] [--no-network] [--skip=module...] [--start-at=module] [--tags=tags] [-D date] [--no-xvfb] [--try-checkout] [--no-poison] [--force] [--build-optional-modules] [--min-age=time] [module...]

The build command builds one or more packages, including their dependencies.

If no module names are provided on the command line, the modules list from the configuration file will be used.

-a, --autogen Always run autogen.sh before building modules. By default, autogen.sh will only be called if the top-level makefile is missing. Otherwise, JHBuild relies on the package's makefiles to detect if configure needs to be rebuilt or rerun.
-c, --clean Run make clean before building modules.
-d, --dist Run make dist after building modules.
--distcheck Run make distcheck after building modules.
--ignore-suggests
  Do not build soft dependencies.
-n, --no-network
  Do not access the network when building modules. This will skip download or update stages in a build. If a module can't be built without network access, the module build will fail.
-s, --skip=
  Do not build the listed modules. Used to skip the building of specified dependencies.
--tags=
  Ignore modules that do not match tag. Modules are automatically attributed a tag matching the name of the module's module set.
-t, --start-at=module
  Start at the named module rather than at the beginning of the list. This option is useful if the build was interrupted.
-D date If supported by the underlying version control system, update the source tree to the specified date before building. An ISO date format is required, e.g. "2009-09-18 02:32Z".
-x, --no-xvfb Run graphical tests on the actual X server rather than in a simulated Xvfb.
-C, --try-checkout
  If the build fails, and if supported by the version control system, force a checkout and run autogen.sh before retrying the build.
-N, --no-poison
  If one or more of a module's dependencies failed, this option forces JHBuild to try to build the module anyway.
-f, --force Build the modules even if policy states it is not required.
--build-optional-modules
  Modules listed as optional dependencies, may not be required to build the module. This option forces JHBuild to build optional dependencies.
--min-age=time Skip modules installed more recently than the specified relative time. The time string format is a number followed by a unit. The following units are supported: seconds (s), minutes (m), hours (h) and days (d). For example, --min-age=2h will skip modules built less than two hours ago.

jhbuild buildone [--autogen] [--clean] [--distcheck] [--no-network] [-D date] [--no-xvfb] [--force] [--min-age=time] module...

The buildone command is similar to build, but it does not build the dependent modules. It is useful for rebuilding one or more modules.

jhbuild sanitycheck

The sanitycheck command performs a number of checks to verify the build environment is okay.

For details of all jbhuild's command line options:

jhbuild --help

Reporting Bugs

If you find any bugs in JHBuild, or have feature requests (or implementations :), please file them at:

https://gitlab.gnome.org/GNOME/jhbuild/issues/new

This will ensure your request is not lost.

You might also like...
Reload all Blender add-on modules
Reload all Blender add-on modules

Reload-Addon This add-on creates a list of the modules that the add-on selected in the drop-down menu contains and reloads them with the keyboard shor

Import modules and files straight from URLs.

Import Python code from modules straight from the internet.

Python communism - A module for initiating the communist revolution in each of our python modules

Python communist revolution A man once said to abolish the classes or something

This repository holds those infrastructure-level modules, that every application requires that follows the core 12-factor principles.

py-12f-common About This repository holds those infrastructure-level modules, that every application requires that follows the core 12-factor principl

Odoo modules related to website/webshop
Odoo modules related to website/webshop

Website Apps related to Odoo it's website/webshop features: webshop_public_prices: allow configuring to hide or show product prices and add to cart bu

Packages of Example Data for The Effect

causaldata This repository will contain R, Stata, and Python packages, all called causaldata, which contain data sets that can be used to implement th

This is a method to build your own qgis configuration packages using osgeo4W.

This is a method to build your own qgis configuration packages using osgeo4W. Then you can automate deployment in your organization with a controled and trusted environnement.

An AI-powered device to stop people from stealing my packages.

Package Theft Prevention Device An AI-powered device to stop people from stealing my packages. Installation To install on a raspberry pi, clone the re

Automatically give thanks to Pypi packages you use in your project!

Automatically give thanks to Pypi packages you use in your project!

Comments
  • made jhbuild more cross-platform

    made jhbuild more cross-platform

    Replaced some direct os environment variable querying with their equivalent cross-platform solutions.

    Added a dependency on appdirs to take care of finding the right caching folder, in a cross-platform way.

    Removed some legacy code from the monkeypatch (might need more work).

    As a bonus, in the files I worked in, I tried to improved pep8 compliance by cleaning up some simple whitespace issues.

    opened by jojolian753 2
  • added initial .travis.yml

    added initial .travis.yml

    The script for the Travis CI service (free of cost for FLOSS projects) which should help to detect deficies in the default moduleset (build errors and insufficient feedback on build and configure errors) (already found one, so this should be useful).

    opened by krichter722 1
  • added initial .travis.yml

    added initial .travis.yml

    This helps to reveal some build issues including sysdeps which can't be resolved properly, missing dependencies which cause failure at runtime (of jhbuild) as well as compilation errors. Travis CI is free, but only as in free beer, so you might use it or not according to your project's policies. It's extremely handy.

    opened by krichter722 1
  • added --allow-root option

    added --allow-root option

    This option allows to prevent jhbuild from terminating if it is invoked as user root which is useful when using subcommands like sysdeps in a headless environment which otherwise would require the root password to be entered with expect or a similar mechanism.

    opened by krichter722 1
Owner
GNOME Github Mirror
Contributions sent to this organization will be forwarded automatically to https://gitlab.gnome.org
GNOME Github Mirror
A frontend to ease the use of pulseaudio's routing capabilities, mimicking voicemeeter's workflow

Pulsemeeter A frontend to ease the use of pulseaudio's routing capabilities, mimicking voicemeeter's workflow Features Create virtual inputs and outpu

Gabriel Carneiro 164 Jan 4, 2023
Framework To Ease Operating with Quantum Computers

QType Framework To Ease Operating with Quantum Computers Concept # define an array of 15 cubits:

Antonio Párraga Navarro 2 Jun 6, 2022
A framework that let's you compose websites in Python with ease!

Perry Perry <= A framework that let's you compose websites in Python with ease! Perry works similar to Qt and Flutter, allowing you to create componen

Linkus 13 Oct 9, 2022
Let's pretend you want to create a AWS Lambda project called "sns-processor".

Usage Let's pretend you want to create a AWS Lambda project called "sns-processor". Rather than using lambda and then editing the results to include y

null 1 Dec 31, 2021
Open source book about making Python packages.

Python packages Tomas Beuzen & Tiffany Timbers Python packages are a core element of the Python programming language and are how you create organized,

Python Packages 169 Jan 6, 2023
Collections of python projects

nppy, mostly contains projects written in Python. Some projects are very simple while some are a bit lenghty and difficult(for beginners) Requirements

ghanteyyy 75 Dec 20, 2022
Functional collections extension functions for Python

pyfuncol pyfuncol Installation Usage API Documentation Compatibility Contributing License A Python functional collections library. It extends collecti

Andrea Veneziano 32 Nov 16, 2022
Canim1 - Simple python tool to search for packages without m1 wheels in poetry lockfiles

canim1 Usage Clone the repo. Run poetry install. Then you can use the tool: ❯ po

Korijn van Golen 1 Jan 25, 2022
BlackIP-Rep is a tool designed to gather the reputation and information of Bulk IP's.

BlackIP-Rep is a tool designed to gather the reputation and information of Bulk IP's. Focused on increasing the workflow of Security Operations(SOC) team during investigation.

0LiVEr 6 Dec 12, 2022
A weekly dive into commonly used modules in the Rust ecosystem, with story flavor!

The goal of this project is to bring the same concept as PyMOTW to the Rust world. PyMOTW was an invaluable resource for me when I was learning Python years ago, and I hope that I can help someone in a similar way. Each week we'll dive into a module and explore some of the functionality that we can find there while following along the adventures of some colourful characters.

Scott Lyons 20 Aug 26, 2022