49 lines
2 KiB
Org Mode
49 lines
2 KiB
Org Mode
* 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 [[https://www.cor.za.net/code/ebuild-autogen][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 subtree 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.
|
|
|
|
** example
|
|
#+begin_src scheme file: 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)
|
|
'()))
|
|
#+end_src
|
|
- 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.
|