Better MacPorts release flow.
This commit is contained in:
@@ -43,3 +43,37 @@ R="v1.$(date +%Y%m%d)"
|
|||||||
git tag "$R"
|
git tag "$R"
|
||||||
git push origin tag "$R"
|
git push origin tag "$R"
|
||||||
```
|
```
|
||||||
|
|
||||||
|
# Updating MacPorts
|
||||||
|
|
||||||
|
Step 1: Generate the Port file
|
||||||
|
|
||||||
|
tools/mk_portfile.sh tools/Portfile.template Portfile 1.20150222
|
||||||
|
|
||||||
|
Step 2: Test it locally
|
||||||
|
|
||||||
|
sudo vi /opt/local/etc/macports/sources.conf
|
||||||
|
Add this line early in the file:
|
||||||
|
file:///var/tmp/ports
|
||||||
|
rm -rf /var/tmp/ports
|
||||||
|
mkdir -p /var/tmp/ports/security/vcs_blackbox
|
||||||
|
cp Portfile /var/tmp/ports/security/vcs_blackbox
|
||||||
|
cd /var/tmp/ports && portindex
|
||||||
|
sudo port clean --all vcs_blackbox
|
||||||
|
sudo port uninstall vcs_blackbox
|
||||||
|
sudo port install vcs_blackbox
|
||||||
|
|
||||||
|
Step 3: File a request for an update
|
||||||
|
|
||||||
|
* https://trac.macports.org/newticket
|
||||||
|
* Summary: `vcs_blackbox @1.20150222 Update to latest upstream`
|
||||||
|
* Description: ```
|
||||||
|
New upstream of vcs_blackbox.
|
||||||
|
github.setup and checksums updated.```
|
||||||
|
* Type: `update`
|
||||||
|
* Component: `ports`
|
||||||
|
* Port: `vcs_blackbox`
|
||||||
|
|
||||||
|
Attach the `Portfile` generated in Step 1.
|
||||||
|
|
||||||
|
Step 4: Wait for the devs to pick up the change.
|
||||||
31
tools/Portfile.template
Normal file
31
tools/Portfile.template
Normal file
@@ -0,0 +1,31 @@
|
|||||||
|
# -*- coding: utf-8; mode: tcl; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- vim:fenc=utf-8:ft=tcl:et:sw=4:ts=4:sts=4
|
||||||
|
# $Id: Portfile 132962 2015-02-16 10:33:02Z ryandesign@macports.org $
|
||||||
|
|
||||||
|
PortSystem 1.0
|
||||||
|
PortGroup github 1.0
|
||||||
|
|
||||||
|
github.setup StackExchange blackbox @@VERSION@@ v
|
||||||
|
name vcs_blackbox
|
||||||
|
categories security
|
||||||
|
platforms darwin
|
||||||
|
maintainers whatexit.org:tal openmaintainer
|
||||||
|
license BSD
|
||||||
|
supported_archs noarch
|
||||||
|
|
||||||
|
description Safely store secrets in git/hg/svn repos using GPG encryption
|
||||||
|
|
||||||
|
long_description Storing secrets such as passwords, certificates and private keys \
|
||||||
|
in Git/Mercurial/SubVersion is dangerous. Blackbox makes it easy \
|
||||||
|
to store secrets safely using GPG encryption. They can be easily \
|
||||||
|
decrypted for editing or use in production.
|
||||||
|
|
||||||
|
checksums rmd160 @@RMD160@@ \
|
||||||
|
sha256 @@SHA256@@
|
||||||
|
|
||||||
|
use_configure no
|
||||||
|
|
||||||
|
build {}
|
||||||
|
|
||||||
|
# This project's Makefile uses DESTDIR incorrectly.
|
||||||
|
destroot.destdir DESTDIR=${destroot}${prefix}
|
||||||
|
destroot.target packages-macports
|
||||||
29
tools/macports_update.sh
Executable file
29
tools/macports_update.sh
Executable file
@@ -0,0 +1,29 @@
|
|||||||
|
#! /usr/bin/env bash
|
||||||
|
|
||||||
|
# Generate the Macports Portfile and test it.
|
||||||
|
|
||||||
|
PORTVERSION=${1?"Arg 1 must be a version number like 1.20150222 (with no v)"} ; shift
|
||||||
|
|
||||||
|
tools/mk_portfile.sh tools/Portfile.template Portfile "$PORTVERSION"
|
||||||
|
|
||||||
|
echo
|
||||||
|
echo 'Adding file:///var/tmp/ports to the start of /opt/local/etc/macports/sources.conf'
|
||||||
|
echo
|
||||||
|
fgrep >/dev/null -x 'file:///var/tmp/ports' /opt/local/etc/macports/sources.conf || sudo sed -i -e '1s@^@file:///var/tmp/ports\'$'\n@' /opt/local/etc/macports/sources.conf
|
||||||
|
|
||||||
|
echo
|
||||||
|
echo 'Installing port using local repo.'
|
||||||
|
echo
|
||||||
|
sudo port uninstall vcs_blackbox
|
||||||
|
rm -rf /var/tmp/ports
|
||||||
|
mkdir -p /var/tmp/ports/security/vcs_blackbox
|
||||||
|
cp Portfile /var/tmp/ports/security/vcs_blackbox
|
||||||
|
cd /var/tmp/ports && portindex
|
||||||
|
sudo port clean --all vcs_blackbox
|
||||||
|
sudo port install vcs_blackbox
|
||||||
|
|
||||||
|
#echo
|
||||||
|
#echo 'Removing file:///var/tmp/ports from /opt/local/etc/macports/sources.conf'
|
||||||
|
#echo
|
||||||
|
#sudo sed -i -e '\@^file:///var/tmp/ports@d' /opt/local/etc/macports/sources.conf
|
||||||
|
echo 'You may wish to: sudo vi /opt/local/etc/macports/sources.conf'
|
||||||
26
tools/mk_portfile.sh
Executable file
26
tools/mk_portfile.sh
Executable file
@@ -0,0 +1,26 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
# Turn the Portfile.template into a Portfile.
|
||||||
|
# Usage:
|
||||||
|
# mk_portfile.sh TEMPLATE OUTPUTFILE VERSION
|
||||||
|
|
||||||
|
# FIXME(tal): This code may be broken. URL may be incorrect.
|
||||||
|
|
||||||
|
set -e
|
||||||
|
blackbox_home=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )
|
||||||
|
source ${blackbox_home}/../bin/_stack_lib.sh
|
||||||
|
|
||||||
|
TEMPLATEFILE=${1?"Arg 1 must be the template."} ; shift
|
||||||
|
OUTPUTFILE=${1?"Arg 2 must be the outputfile."} ; shift
|
||||||
|
PORTVERSION=${1?"Arg 3 must be a version number like 1.20150222 (with no v)"} ; shift
|
||||||
|
|
||||||
|
make_self_deleting_tempfile bbtar
|
||||||
|
echo URL="https://github.com/StackExchange/blackbox/archive/v${PORTVERSION}.tar.gz"
|
||||||
|
curl -L "https://github.com/StackExchange/blackbox/archive/v${PORTVERSION}.tar.gz" -o ${bbtar}
|
||||||
|
RMD160=$(openssl dgst -rmd160 ${bbtar} | awk '{ print $NF }')
|
||||||
|
SHA256=$(openssl dgst -sha256 ${bbtar} | awk '{ print $NF }')
|
||||||
|
echo PORTVERSION=$PORTVERSION
|
||||||
|
echo RMD160=$RMD160
|
||||||
|
echo SHA256=$SHA256
|
||||||
|
|
||||||
|
sed <"$TEMPLATEFILE" >"$OUTPUTFILE" -e 's/@@VERSION@@/'"$PORTVERSION"'/g' -e 's/@@RMD160@@/'"$RMD160"'/g' -e 's/@@SHA256@@/'"$SHA256"'/g'
|
||||||
Reference in New Issue
Block a user