Previous: Shell Conventions, Up: Conventions
Repository conventions are important in order to ensure every package resemble themselves. Here are the things to keep in mind:
Prefer tarballs over git packages unless there is a sensible reason. Here are some:
Prefer sources without a dependency to automake
. There are usually
distribution tarballs that are autoconf
’ed. Don’t submit tarballs
with an automake dependency unless you are sure there is no
alternative.
Avoid these packages:
dbus
Usually can be disabled by --disable-dbus
gettext
Usually can be disabled by --disable-nls
All build files on the repository should be a POSIX shell script, and must start
with #!/bin/sh -e
.
The next section is about package templates that should be used in order to ensure stylistic consistency. Note that the option configurations shouldn’t be taken literally, they are meant as examples.
[2210] Make
#!/bin/sh -e make make DESTDIR="$1" PREFIX=/usr install
[2211] Configure/Make
#!/bin/sh -e ./configure \ --prefix=/usr \ --disable-option \ --enable-option make make DESTDIR="$1" install
[2212] Autoconf/Automake
See 2020
#!/bin/sh -e autoreconf -fi ./configure \ --prefix=/usr \ --disable-option \ --enable-option make make DESTDIR="$1" install
[2220] Meson
#!/bin/sh -e export DESTDIR=$1 meson \ --prefix=/usr \ -Doption=false \ -Doption2=true \ . output ninja -C output ninja -C output install
[2230] Cmake
#!/bin/sh -e export DESTDIR=$1 cmake -B build \ -DCMAKE_INSTALL_PREFIX=/usr \ -DCMAKE_BUILD_TYPE=Release \ -DOPTION=ON cmake --build build cmake --install build
[2240] Go
#!/bin/sh -e export GOPATH=$PWD/gopath trap "go clean -modcache" EXIT INT go mod vendor go build install -Dm755 program "$1/usr/bin/program"
[2241] Python
#!/bin/sh -e python setup.py build python setup.py install --prefix=/usr --root="$1"
Previous: Shell Conventions, Up: Conventions