Application to fetch the newest releases of packages and generate gentoo ebuilds for them from scheme based definitions and templates.
Find a file
2025-08-19 06:37:01 +02:00
doc Initial commit. 2025-07-25 17:22:19 +02:00
ebuild Fix pypi name handling. 2025-08-19 06:37:01 +02:00
po Initial commit. 2025-07-25 17:22:19 +02:00
.dir-locals.el Initial commit. 2025-07-25 17:22:19 +02:00
.gitignore Initial commit. 2025-07-25 17:22:19 +02:00
configure.ac Fix pypi no version found error. 2025-08-18 14:50:57 +02:00
COPYING Initial commit. 2025-07-25 17:22:19 +02:00
Makefile.am Initial commit. 2025-07-25 17:22:19 +02:00
NEWS Initial commit. 2025-07-25 17:22:19 +02:00
README.org Initial commit. 2025-07-25 17:22:19 +02:00

ebuild-autogen

An application to fetch the latest releases of packages and auto-generate ebuilds for them according to the autogen.scm definition and the <pkg-name>.tmpl template in a git based portage overlay repository.

License

You can redistribute and/or modify ebuild-autogen under the terms of the GNU Affero General Public License as published by the Free Software Foundation, version 3 of the License. Please see COPYING file for the terms of GNU Affero General Public License.

Repository structure

  • /autogen/ the submodule with the autogen sources for the repo.
  • /autogen/<category>/<pkg>/autogen.scm The definition for the pkg.
  • /autogen/<category>/<pkg>/<pkg>.tmpl The template for the pkg.
  • /autogen/repo-local/settings.scm The parameters for the repo.

Repository initial setup

init

First initialize or clone the git repo you want to use for the overlay then:

git submodule add <src_repo_url> autogen

update source subtree

To update the source repo:

git submodule update

example autogen.scm

;; Copyright (C) <year> <author>, distributed under the
;; terms of the GNU Affero General Public License version 3.
(define-module (<category> <pkg-name> autogen))

(define-public setup-package
  (lambda (parms)
    '()))

(define-public get-releases
  (lambda (parms)
    '()))

(define-public generate-ebuilds
  (lambda (parms releases)
    '()))
  • If autogen.scm does not exist or setup-packages is not defined in it, the setup-pkg function in the module (ebuild repo) will be called to setup the package folder and symbolic links.
  • If get-releases exist in autogen.scm it will be called and should return the list with all the releases otherwise an empty list will be used.
  • If generate-ebuilds exist in autogen.scm it will be called to generate the ebuild's, if not ebuild-gen will be called from (ebuild gen) to generate the ebuilds.

execution

The executable is called ebuild-autogen and will update the ebuilds for all the packages below the current working directory, so running it within the root of the repository will update all the packages in the repository. ebuild-autogen --help should list all the options.