1*c2e0c6b5SAndroid Build Coastguard Worker#!/usr/bin/perl 2*c2e0c6b5SAndroid Build Coastguard Worker# A simple script for making releases of the pciutils 3*c2e0c6b5SAndroid Build Coastguard Worker# (c) 2003--2012 Martin Mares <[email protected]> 4*c2e0c6b5SAndroid Build Coastguard Worker 5*c2e0c6b5SAndroid Build Coastguard Workeruse strict; 6*c2e0c6b5SAndroid Build Coastguard Workeruse warnings; 7*c2e0c6b5SAndroid Build Coastguard Workerrequire "./maint/release.pm"; 8*c2e0c6b5SAndroid Build Coastguard Worker 9*c2e0c6b5SAndroid Build Coastguard Worker# Check API version 10*c2e0c6b5SAndroid Build Coastguard Workermy $apiver = "???"; 11*c2e0c6b5SAndroid Build Coastguard Workeropen X, "lib/pci.h" or die; 12*c2e0c6b5SAndroid Build Coastguard Workerwhile (<X>) { 13*c2e0c6b5SAndroid Build Coastguard Worker /^#define PCI_LIB_VERSION 0x(.{6})$/ and $apiver = $1; 14*c2e0c6b5SAndroid Build Coastguard Worker} 15*c2e0c6b5SAndroid Build Coastguard Workerprint "API version is $apiver ... <confirm> "; <STDIN>; 16*c2e0c6b5SAndroid Build Coastguard Worker 17*c2e0c6b5SAndroid Build Coastguard Worker#print "Updating public GIT tree\n"; 18*c2e0c6b5SAndroid Build Coastguard Worker#`git push --tags public`; die if $?; 19*c2e0c6b5SAndroid Build Coastguard Worker 20*c2e0c6b5SAndroid Build Coastguard Workermy $r = new UCW::Release("pciutils"); 21*c2e0c6b5SAndroid Build Coastguard Workermy $ver = $r->GetVersionFromFile("Makefile", "VERSION=(.*)"); 22*c2e0c6b5SAndroid Build Coastguard Worker$r->GetVersionsFromChangelog("ChangeLog", "Released as (.*)\."); 23*c2e0c6b5SAndroid Build Coastguard Workerpush @{$r->{"rules"}}, '^win32/config.h' => 's'; 24*c2e0c6b5SAndroid Build Coastguard Workerif ($ver =~ /-/) { 25*c2e0c6b5SAndroid Build Coastguard Worker $r->{"ALPHADIR"} = "alpha/"; 26*c2e0c6b5SAndroid Build Coastguard Worker $r->{"conditions"}->{"ALPHA_VERSION"} = 1; 27*c2e0c6b5SAndroid Build Coastguard Worker} else { 28*c2e0c6b5SAndroid Build Coastguard Worker $r->{"ALPHADIR"} = ""; 29*c2e0c6b5SAndroid Build Coastguard Worker $r->{"conditions"}->{"ALPHA_VERSION"} = -1; 30*c2e0c6b5SAndroid Build Coastguard Worker} 31*c2e0c6b5SAndroid Build Coastguard Workerpush @{$r->{"uploads"}}, { 32*c2e0c6b5SAndroid Build Coastguard Worker "url" => "scp://jabberwock.ucw.cz/home/ftp/pub/mj/linux/pci/" . $r->{"ALPHADIR"} 33*c2e0c6b5SAndroid Build Coastguard Worker## },{ 34*c2e0c6b5SAndroid Build Coastguard Worker## "url" => "scp://master.kernel.org/pub/software/utils/pciutils/" . $r->{"ALPHADIR"} 35*c2e0c6b5SAndroid Build Coastguard Worker }; 36*c2e0c6b5SAndroid Build Coastguard Worker$r->ParseOptions; 37*c2e0c6b5SAndroid Build Coastguard Worker$r->InitDist("maint/dist"); 38*c2e0c6b5SAndroid Build Coastguard Workermy $reldir = $r->GenPackage; 39*c2e0c6b5SAndroid Build Coastguard Worker$r->GenFile("README"); 40*c2e0c6b5SAndroid Build Coastguard Worker$r->GenFile("pciutils.lsm"); 41*c2e0c6b5SAndroid Build Coastguard Worker$r->Dispatch; 42*c2e0c6b5SAndroid Build Coastguard Workerif ($r->{"do_upload"}) { 43*c2e0c6b5SAndroid Build Coastguard Worker print "Uploading pci.ids to Jabberwock\n"; 44*c2e0c6b5SAndroid Build Coastguard Worker `scp -C pci.ids pciids\@jabberwock.ucw.cz:05-pciutils.new`; die if $?; 45*c2e0c6b5SAndroid Build Coastguard Worker `ssh pciids\@jabberwock.ucw.cz mv 05-pciutils.new origs/05-pciutils`; die if $?; 46*c2e0c6b5SAndroid Build Coastguard Worker} 47*c2e0c6b5SAndroid Build Coastguard Worker 48*c2e0c6b5SAndroid Build Coastguard Worker# Hacks for kernel.org 49*c2e0c6b5SAndroid Build Coastguard Workerprint "Preparing kernel.org package\n"; 50*c2e0c6b5SAndroid Build Coastguard Workermy $dd = $r->{"DISTDIR"}; 51*c2e0c6b5SAndroid Build Coastguard Workermy $pkg = $r->{"PKG"}; 52*c2e0c6b5SAndroid Build Coastguard Worker`gzip -d <$dd/$pkg.tar.gz >$dd/$pkg.tar`; die if $?; 53*c2e0c6b5SAndroid Build Coastguard Workersystem "gpg", "--armor", "--detach-sig", "-o", "$dd/$pkg.tar.sig", "$dd/$pkg.tar"; die if $?; 54*c2e0c6b5SAndroid Build Coastguard Workerif ($r->{"do_upload"}) { 55*c2e0c6b5SAndroid Build Coastguard Worker print "Uploading to kernel.org\n"; 56*c2e0c6b5SAndroid Build Coastguard Worker print "<confirm> "; <STDIN>; 57*c2e0c6b5SAndroid Build Coastguard Worker system '/home/mj/tree/kup/kup', 'put', "$dd/$pkg.tar", "$dd/$pkg.tar.sig", "/pub/software/utils/pciutils/$pkg.tar.gz"; die if $?; 58*c2e0c6b5SAndroid Build Coastguard Worker} 59*c2e0c6b5SAndroid Build Coastguard Worker 60*c2e0c6b5SAndroid Build Coastguard Worker# GitHub releases 61*c2e0c6b5SAndroid Build Coastguard Workerprint "Creating a GitHub release\n"; 62*c2e0c6b5SAndroid Build Coastguard Workermy $ghrel = "v$ver"; 63*c2e0c6b5SAndroid Build Coastguard Worker`gh release create $ghrel --verify-tag --latest --notes "Automatically generated. Please see the ChangeLog for details."`; 64*c2e0c6b5SAndroid Build Coastguard Workerdie if $?; 65*c2e0c6b5SAndroid Build Coastguard Worker`gh release upload $ghrel $dd/$pkg.tar.gz $dd/pkg.tar.gz.sign"; 66*c2e0c6b5SAndroid Build Coastguard Workerdie if $? 67