2021-10-06 16:45:44 +02:00
|
|
|
# HTTPie on Gentoo
|
|
|
|
|
|
|
|
Welcome to the documentation about **packaging HTTPie for Gentoo**.
|
|
|
|
|
|
|
|
- If you do not know HTTPie, have a look [here](https://httpie.io/cli).
|
|
|
|
- If you are looking for HTTPie installation or upgrade instructions on Gentoo, then you can find them on [that page](https://httpie.io/docs#gentoo).
|
|
|
|
- If you are looking for technical information about the HTTPie packaging on Gentoo, then you are in a good place.
|
|
|
|
|
|
|
|
## About
|
|
|
|
|
|
|
|
This document contains technical details, where we describe how to create a patch for the latest HTTPie version for Gentoo.
|
|
|
|
We will discuss setting up the environment, installing development tools, installing and testing changes before submitting a patch downstream.
|
|
|
|
|
|
|
|
## Overall process
|
|
|
|
|
2021-10-19 10:18:35 +02:00
|
|
|
Open a pull request to create `httpie-XXX.ebuild` and update `Manifest` ([example](https://github.com/macports/macports-ports/pull/12583)).
|
2021-10-06 16:45:44 +02:00
|
|
|
|
|
|
|
- Here is how to calculate the size and checksum (replace `2.5.0` with the correct version):
|
|
|
|
|
|
|
|
```bash
|
|
|
|
# Download
|
|
|
|
$ wget https://github.com/httpie/httpie/archive/2.5.0.tar.gz
|
|
|
|
|
|
|
|
# Size
|
|
|
|
$ stat --printf="%s\n" 2.5.0.tar.gz
|
|
|
|
1105177
|
|
|
|
|
|
|
|
# Checksum
|
|
|
|
$ openssl dgst -blake2b512 2.5.0.tar.gz
|
|
|
|
BLAKE2b512(2.5.0.tar.gz)= 6e16868c81522d4e6d2fc0a4e093c190f18ced720b35217930865ae3f8e168193cc33dfecc13c5d310f52647d6e79d17b247f56e56e8586d633a2d9502be66a7
|
|
|
|
```
|
|
|
|
|
|
|
|
- The commit message must be `net-misc/httpie: version bump to XXX`.
|
|
|
|
- The commit must be signed-off (`git commit -s`).
|
|
|
|
|
|
|
|
## Hacking
|
|
|
|
|
|
|
|
Launch the docker image:
|
|
|
|
|
|
|
|
```bash
|
|
|
|
docker pull gentoo/stage3
|
|
|
|
docker run -it --rm gentoo/stage3
|
|
|
|
```
|
|
|
|
|
|
|
|
From inside the container:
|
|
|
|
|
|
|
|
```bash
|
|
|
|
# Install tools
|
|
|
|
emerge --sync
|
|
|
|
emerge pkgcheck repoman
|
|
|
|
|
|
|
|
# Go to the package location
|
|
|
|
cd /var/db/repos/gentoo/net-misc/httpie
|
|
|
|
|
|
|
|
# Retrieve the patch of the latest HTTPie version
|
|
|
|
# (only files that were modified since the previous release)
|
|
|
|
curl https://raw.githubusercontent.com/httpie/httpie/master/docs/packaging/linux-gentoo/httpie-XXX.ebuild \
|
|
|
|
-o httpie-XXX.ebuild
|
|
|
|
curl https://raw.githubusercontent.com/httpie/httpie/master/docs/packaging/linux-gentoo/Manifest \
|
|
|
|
-o Manifest
|
|
|
|
curl https://raw.githubusercontent.com/httpie/httpie/master/docs/packaging/linux-gentoo/metadata.xml \
|
|
|
|
-o metadata.xml
|
|
|
|
|
|
|
|
# Basic checks
|
|
|
|
repoman manifest
|
|
|
|
repoman full -d -x
|
|
|
|
pkgcheck scan
|
|
|
|
|
|
|
|
# Build and install the package
|
|
|
|
emerge --with-test-deps httpie-XXX.ebuild
|
|
|
|
|
|
|
|
# Run the tests suite
|
|
|
|
ebuild httpie-XXX.ebuild clean test
|
|
|
|
|
|
|
|
# And test it!
|
|
|
|
http --version
|
|
|
|
https --version
|
|
|
|
```
|