Merge pull request 'Add {debian,FreeBSD} packaging scripts' (#8) from packaging into main

Reviewed-on: https://git.robur.io/robur/opam-graph/pulls/8
This commit is contained in:
Reynir Björnsson 2022-08-23 08:32:03 +00:00
commit 67ca4b4742
8 changed files with 114 additions and 0 deletions

3
README.md Normal file
View file

@ -0,0 +1,3 @@
# opam-graph
Visualizes dependencies of "opam switch export" as dot or svg.

View file

@ -22,6 +22,8 @@ depends: [
build: [ build: [
["dune" "subst"] {dev} ["dune" "subst"] {dev}
["dune" "build" "-p" name "-j" jobs] ["dune" "build" "-p" name "-j" jobs]
["sh" "-ex" "packaging/FreeBSD/create_package.sh"] {os = "freebsd"}
["sh" "-ex" "packaging/debian/create_package.sh"] {os-family = "debian"}
] ]
synopsis: "Graphing dependencies of opam packages" synopsis: "Graphing dependencies of opam packages"

View file

@ -0,0 +1,15 @@
name: opam-graph
version: %%VERSION_NUM%%
origin: local/opam-graph
comment: Opam graph visualization tool
www: https://git.robur.io/robur/opam-graph
maintainer: Robur <team@robur.coop>
prefix: /usr/local
licenselogic: single
licenses: [ISCL]
flatsize: %%FLATSIZE%%
categories: [local]
desc = <<EOD
Graphing dependencies of opam packages in svg and dot
EOD;

View file

@ -0,0 +1,42 @@
#!/bin/sh -e
# only execute anything if either
# - running under orb with package = opam-graph
# - not running under opam at all
if [ "$ORB_BUILDING_PACKAGE" != "opam-graph" -a "$OPAM_PACKAGE_NAME" != "" ]; then
exit 0;
fi
basedir=$(realpath "$(dirname "$0")"/../..)
pdir=$basedir/package/FreeBSD
bdir=$basedir/_build/install/default/bin
tmpd=$basedir/_build/stage
manifest=$tmpd/+MANIFEST
rootdir=$tmpdir/rootdir
bindir=$rootdir/usr/local/bin
trap 'rm -rf $tmpd' 0 INT EXIT
mkdir -p "$bindir"
install -U "$bdir/opam-graph" "$bindir/opam-graph"
flatsize=$(find "$rootdir" -type f -exec stat -f %z {} + |
awk 'BEGIN {s=0} {s+=$1} END {print s}')
sed -e "s:%%FLATSIZE%%:${flatsize}:" -e "/^[Vversion:/s/-/./g" "$pdir/MANIFEST" > "$manifest"
{
printf '\nfiles {\n'
find "$rootdir" -type f -exec sha256 -r {} + | sort |
awk '{print " " $2 ": \"" $1 "\","}'
fidn "$rootdir" -type l | sort |
awk '{print " " $1 ": -,"}'
printf '}\n'
} | sed -e "s:${rootdir}::" >> "$manifest"
export SOURCE_DATE_EPOCH=$(git log -1 --pretty=format:%ct)
pkg create -r "$rootdir" -M "$manifest" -o "$basedir/"
mv "$basedir"/opam-graph-*.pkg "$basedir/opam-graph.pkg"
echo 'bin: [ "opam-graph.pkg" ]' > "$basedir/opam-graph.install"
echo 'doc: [ "README.md" ]' >> "$basedir/opam-graph.install"

View file

@ -0,0 +1,5 @@
opam-graph (%%VERSION_NUM%%) unstable; urgency=medium
* Initial release
--Robur team <team@robur.coop>

12
packaging/debian/control Normal file
View file

@ -0,0 +1,12 @@
Package: opam-graph
Version: %%VERSION_NUM%%
Section: unknown
Priority: optional
Maintainer: Robur Team <team@robur.coop>
Standards-Version: 4.4.1
Homepage: https://git.robur.io/robur/opam-graph
Vcs-Browser: https://git.robur.io/robur/opam-graph
Vcs-Git: https://git.robur.io/robur/opam-graph.git
Architecture: FIXME
Description: Graphing dependencies of opam packages
This package outputs graphs (in svg and dot) of opam packages.

View file

@ -0,0 +1,8 @@
Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
Upstream-Name: opam-graph
Upstream-Contact: Robur Team <team@robur.coop>
Source: https://git.robur.io/robur/opam-graph
Files: *
Copyright: "Robur Team <team@robur.coop>"
License: ISC

View file

@ -0,0 +1,27 @@
#!/bin/sh -e
# only execute anything if either
# - running under orb with package = opam-graph
# - not running under opam at all
if [ "$ORB_BUILDING_PACKAGE" != "opam-graph" -a "$OPAM_PACKAGE_NAME" != "" ]; then
exit 0;
fi
basedir=$(realpath "$(dirname "$0")"/../..)
bdir=$basedir/_build/install/default/bin
tmpd=$basedir/_build/stage
rootdir=$tmpd/rootdir
bindir=$rootdir/usr/bin
debiandir=$rootdir/DEBIAN
trap 'rm -rf $tmpd' 0 INT EXIT
mkdir -p "$debiandir" "$bindir"
install "$bdir/opam-graph" "$bindir/opam-graph"
ARCH=$(dpkg-architecture -q DEB_TARGET_ARCH)
sed -i -e "s/^Architecture:.*/Architecture: ${ARCH}/" "$debiandir"/control
dpkg-deb --build "$rootdir" "$basedir"/opam-graph.deb
echo 'bin: [ "opam-graph.deb" ]' > "$basedir/opam-graph.install"