Skip to content

Commit

Permalink
Add scripts for building .deb and .rpm packages.
Browse files Browse the repository at this point in the history
  • Loading branch information
richardxia authored and mikeyangsiv committed Jun 24, 2019
1 parent c53ea10 commit 11ab713
Show file tree
Hide file tree
Showing 6 changed files with 127 additions and 0 deletions.
22 changes: 22 additions & 0 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
services:
- docker

before_install:
- docker build -f Dockerfile.ubuntu -t verilator-ubuntu .
- docker build -f Dockerfile.centos -t verilator-centos .

script:
- docker run --rm -e PACKAGE_VERSION=${TRAVIS_TAG:-0.0-UNTAGGED} -v $PWD:/usr/src/app verilator-ubuntu ./build-deb.sh
- docker run --rm -e PACKAGE_VERSION=${TRAVIS_TAG:-0.0-UNTAGGED} -v $PWD:/usr/src/app verilator-centos ./build-rpm.sh

deploy:
provider: releases
api_key:
secure: "jr4NxwYNXdG7GfPbTwoIXUeY7NxPFbKfo29CW8tt67dBI+clIN/EhNJKQ05qtS5gvmGamVQxhD5rZ0g2Fb7crJSk3oI6196WcYLTNDvp2pl+IanYyPYRucQdAxwd7L0/uyaz9E74IGfr3tlzzDqvlUhOWEZC6cGiIHL0t2Fi6YRpMzes7o/E4T2TvzRvSs/mqYP4sWpeUjK7NjXjqlbHhOPEGxfTwgY+lglPRmNo4A1nYJK7Kv7uGQJ675ye6aF643uX15W/uwetdEUoa08ObF7GiIsLdiv7NXAZgohoqBXeqoRuax+Xc0af4xn+lD0ix4sFxTqOR/XXawjEeVCpQtFI4knTkMIwyDr78EabLu7efxvBaeIwT3ZPET0ayOLMfFUf0SG7pPMIkrmY8T4TVR2mwzodncn4Ym/rKg1HClI3Pf58B1/+fgnAmqbHfW4KFNrVzBd2/2F4Xz0GCZAB9OoeBmQb044Ixy7ccX/zVgcypLkrY/4mWjx7IMBHC4P8Xpepz7jheWZfBr+HS/aD3U6ErjOkELK/EbECKtO/NBEEQj2KanPsmHU4HhdexhIu1KYyjoq+1p8oczZb5uD4BgwprRZhVNJXlV71G5Rrz5DFT6U0MHkLWJe5QiZtZE+WPRAMrtJWTXFjjDSmEGyNlI10R/qvFiB09LTXDmtPH1Q="
file:
- verilator_${TRAVIS_TAG}_amd64.deb
- verilator-${TRAVIS_TAG}.x86_64.rpm
skip_cleanup: true
on:
repo: sifive/verilator
tags: true
11 changes: 11 additions & 0 deletions Dockerfile.centos
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
FROM centos:7
RUN yum update -y && yum install -y \
autoconf \
bison \
flex \
gcc-c++ \
git \
rsync \
rpm-build \
make
WORKDIR /usr/src/app
8 changes: 8 additions & 0 deletions Dockerfile.ubuntu
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
FROM ubuntu:16.04
RUN apt-get update && apt-get install -y \
autoconf \
bison \
flex \
g++ \
make
WORKDIR /usr/src/app
15 changes: 15 additions & 0 deletions README.pod
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,21 @@

=pod

=head1 FORK NOTES

This is a fork of the Verilator project which adds some steps for automatically
creating .deb and .rpm packages from a release tag. Travis is configured to
run a build and upload a release to GitHub whenever a tag is created. You can
simply cherry-pick the latest commit on top of a real Verilator release and
create a tag from that.

git remote add veripool http://git.veripool.org/git/verilator
git fetch veripool
git checkout verilator_4_014
git cherry-pick origin/master
git tag 4.014-0sifive1
git push origin 4.014-0sifive1

=head1 NAME

Welcome to Verilator. This is the Verilator package's README file.
Expand Down
25 changes: 25 additions & 0 deletions build-deb.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
#!/bin/bash

set -eux

pkg_arch=amd64
pkg_dir=$(realpath ./verilator_${PACKAGE_VERSION}_${pkg_arch})

autoconf
./configure
make clean
make
make test
make install DESTDIR=$pkg_dir

mkdir $pkg_dir/DEBIAN
cat << EOF > $pkg_dir/DEBIAN/control
Package: verilator
Version: ${PACKAGE_VERSION}
Architecture: ${pkg_arch}
Maintainer: Richard Xia <rxia@sifive.com>
Depends: perl (>= 5.22.1)
Description: fast free Verilog simulator
EOF

dpkg-deb --build $pkg_dir
46 changes: 46 additions & 0 deletions build-rpm.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
#!/bin/bash

set -eux

pkg_arch=x86_64
pkg_distro=centos
pkg_dir=$(realpath ./verilator_${PACKAGE_VERSION}_${pkg_arch}_${pkg_distro})

pkg_version=$(echo ${PACKAGE_VERSION} | cut -d- -f1)
pkg_release=$(echo ${PACKAGE_VERSION} | cut -d- -f2)

autoconf
./configure
make clean
make
make test
make install DESTDIR=$pkg_dir

cat << EOF > verilator.spec
Name: verilator
Version: ${pkg_version}
Release: ${pkg_release}
Requires: perl >= 5.2.11
Summary: Verilog HDL simulator
License: Perl Artistic License and GNU Lesser General Public License
%description
Verilog HDL simulator
%prep
%build
%install
rsync -a ${pkg_dir}/ %buildroot/
%files
%defattr(0644, root,root)
%attr(0755, root,root) /usr/local/bin/verilator*
/usr/local/share/man/man1/verilator*
/usr/local/share/pkgconfig/verilator.pc
/usr/local/share/verilator/*
EOF

rpmbuild -bb verilator.spec
cp /root/rpmbuild/RPMS/${pkg_arch}/verilator-${PACKAGE_VERSION}.${pkg_arch}.rpm ./

0 comments on commit 11ab713

Please sign in to comment.