httpie-cli/docs/packaging/linux-gentoo
2021-10-25 16:16:26 +02:00
..
httpie-2.6.0.ebuild Update downstream files for HTTPie 2.6.0 (#1186) 2021-10-19 10:18:35 +02:00
Manifest Update downstream files for HTTPie 2.6.0 (#1186) 2021-10-19 10:18:35 +02:00
metadata.xml Update Gentoo metadata 2021-10-25 16:16:26 +02:00
README.md Fix Gentoo example link 2021-10-25 16:15:27 +02:00

HTTPie on Gentoo

Welcome to the documentation about packaging HTTPie for Gentoo.

  • If you do not know HTTPie, have a look here.
  • If you are looking for HTTPie installation or upgrade instructions on Gentoo, then you can find them on that page.
  • 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

Open a pull request to create httpie-XXX.ebuild and update Manifest (example).

  • Here is how to calculate the size and checksum (replace 2.5.0 with the correct version):

    # 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:

docker pull gentoo/stage3
docker run -it --rm gentoo/stage3

From inside the container:

# 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