Compare commits

..

53 Commits

Author SHA1 Message Date
James Carter
28722623e2 Merge branch 'update-changelog' into 'master'
Updated changelog

See merge request !4
2017-05-10 15:28:52 +01:00
Patrick J Cherry
1afe488c81 Updated changelog 2017-05-10 15:25:51 +01:00
James Carter
424f700fb8 Merge branch '3-packaging-change-triggers-falling-back-to-gcc-to-determine-sizeof-size_t-warnings' into 'master'
Packaging change triggers `Falling back to gcc to determine sizeof size_t` warnings

Closes #3

See merge request !3
2017-05-10 13:30:48 +01:00
Patrick J Cherry
bbcbb10e75 Use #bytesize instead of #size when measuring the length of our packed integer. 2017-05-10 12:17:51 +01:00
Patrick J Cherry
6e75dc4e17 Re-instate this as an arch-independent package, and remove gcc call
We're now assuming that the size of size_t is a long unsigned integer.
In the kernel there's a comment:

/*
 * Most 32 bit architectures use "unsigned int" size_t,
 * and all 64 bit architectures use "unsigned long" size_t.
 */

On 32 bit architectures, an unsigned int is the same size as an unsigned
long anyway, so I think this assumption is OK.
2017-05-10 11:38:10 +01:00
Patrick J Cherry
a539a87132 Revert "Revert "This is really an arch-independent package""
This reverts commit c7d9554d63.
2017-05-10 11:38:02 +01:00
Patrick J Cherry
c7d9554d63 Revert "This is really an arch-independent package"
This reverts commit 2614fdd90d.
2017-05-10 10:11:14 +01:00
Ian Chilton
e2543fb32b Merge branch 'package-gem' into 'master'
Added gem packaging job

See merge request !2
2017-03-07 16:52:00 +00:00
Patrick J Cherry
e7ba3b40c2 Added gem packaging job 2017-03-07 16:25:15 +00:00
Steve Kemp
f591cd8dcb Merge branch '2-package-and-publish-in-gitlab-ci-retire-maker2-job' into 'master'
Build in gitlab-ci

Closes #2

See merge request !1
2017-03-01 08:38:06 +00:00
Patrick J Cherry
b25a4b8744 Updated changelog 2017-02-28 16:44:50 +00:00
Patrick J Cherry
a389edbf27 Set correct image for publishing 2017-02-28 16:39:58 +00:00
Patrick J Cherry
8c21f7c28f Use docker images to build 2017-02-28 16:34:13 +00:00
Patrick J Cherry
2614fdd90d This is really an arch-independent package 2017-02-28 16:33:28 +00:00
Patrick J Cherry
230c5f8641 Added quilt as a build-dep 2017-02-28 16:28:56 +00:00
Patrick J Cherry
17cf206279 Added correct debbuildopt 2017-02-28 16:25:05 +00:00
Patrick J Cherry
15a303cb97 Use quilt to build 2017-02-28 16:21:31 +00:00
Patrick J Cherry
7488920028 Update sautobuild just do do a binary build; also save artifacts 2017-02-28 16:20:27 +00:00
Patrick J Cherry
ae655dde0e added wheezy 2017-02-28 16:17:10 +00:00
Patrick J Cherry
4c7488d928 gitlab-ci: Checkout master before trying to do stuff 2017-02-22 13:06:20 +00:00
Patrick J Cherry
1aff2698f7 gitlab-ci: Updated some more 2017-02-22 13:05:19 +00:00
Patrick J Cherry
c3a79718fa Use sautobuild to do the building 2017-02-22 12:09:19 +00:00
Patrick J Cherry
27e9ba595b Add more git-buildpackage flags 2017-01-24 16:54:15 +00:00
Patrick J Cherry
ad1fbc788d Checkout the branch, don't create it 2017-01-24 16:52:05 +00:00
Patrick J Cherry
1f2b994c45 First pass at gitlab-ci 2017-01-24 16:51:07 +00:00
Patrick J Cherry
885990c5b3 Updated changelog 2016-10-17 13:11:17 +01:00
Patrick J Cherry
da46b0ec2a Merge branch 'master' into debian/jessie 2016-10-17 13:10:35 +01:00
Patrick J Cherry
9e6ce9d913 Merged in another test fix 2015-04-02 11:53:48 +01:00
Patrick J Cherry
a97bbe0d7c Merged in new tests 2015-04-02 11:47:17 +01:00
Patrick J Cherry
d771a2be9c New tests 2015-04-01 23:12:30 +01:00
Patrick J Cherry
118903d9d5 Added tag 0.17-1+jessie1 for changeset 149ff4e2efb4 2015-04-01 22:52:30 +01:00
Patrick J Cherry
0ed037fc9d New jessie release 2015-04-01 22:52:10 +01:00
Patrick J Cherry
4b17ea4714 new branch 2015-04-01 17:40:19 +01:00
Patrick J Cherry
05e54f22e8 Added tag 0.16-1+wheezy1 for changeset c0eb6a0f135a 2014-08-26 16:34:27 +01:00
Patrick J Cherry
f2f99ce8e4 New upstream release. 2014-08-26 16:34:20 +01:00
Patrick J Cherry
8d47c623c4 Added tag 0.15-1+wheezy1 for changeset 73cc3d95f810 2014-01-21 10:01:59 +00:00
Patrick J Cherry
827ca74740 New upstream release 2014-01-21 10:01:42 +00:00
Patrick J Cherry
75a6eaca70 Added tag 0.14-1+wheezy1 for changeset babbc25e15f5 2013-11-14 13:38:35 +00:00
Patrick J Cherry
427fa40ef4 New upstream release 2013-11-14 13:37:57 +00:00
Patrick J Cherry
7ad9816fc3 Added tag 0.13-1+wheezy1 for changeset 6681f37480ff 2013-11-13 16:17:36 +00:00
Patrick J Cherry
4e4d0e02b6 New upstream release 2013-11-13 16:16:57 +00:00
Patrick J Cherry
a4afa867a1 Added tag 0.12-1+wheezy1 for changeset 5a2086dbce00 2013-09-12 14:27:19 +01:00
Patrick J Cherry
72ce94ef59 Merge, new upstream release 2013-09-12 14:27:08 +01:00
Patrick J Cherry
ee38239429 merge 2013-07-16 16:50:24 +01:00
Patrick J Cherry
33fe733d3f merge 2013-07-16 16:47:11 +01:00
Patrick J Cherry
181d3cd30a Foo 2013-07-16 16:28:40 +01:00
Patrick J Cherry
4ed52c07dd Added tag 0.11-1+wheezy2 for changeset 123ea9ee6130 2013-07-05 14:25:40 +01:00
Patrick J Cherry
ffe52106cd merged heads 2013-07-05 14:25:08 +01:00
Patrick J Cherry
10f11d9bc1 Updated package name to match ruby-packaging standards.
Added patch to remove rubygems requirements.
2013-07-05 14:23:49 +01:00
Patrick J Cherry
4cba09d819 Added patches to remove rubygems requirements. 2013-07-05 14:17:24 +01:00
Patrick J Cherry
9e1b28a8b1 Added tag 0.11-1+wheezy1 for changeset 5db0aa45b5e2 2013-07-05 13:58:14 +01:00
Patrick J Cherry
08050fbec7 Updated packaging for wheezy. 2013-07-05 13:58:07 +01:00
Patrick J Cherry
7eb0b073ec Added wheezy branch 2013-07-05 13:54:39 +01:00
12 changed files with 277 additions and 15 deletions

43
.gitlab-ci.yml Normal file
View File

@@ -0,0 +1,43 @@
stages:
- package
- publish
package:jessie:gem:
image: $CI_REGISTRY/docker-images/layers:$DISTRO-ruby
stage: package
variables:
DISTRO: jessie
GEMFILE: netlinkrb.gemspec
script:
- package
artifacts:
paths:
- pkg/
package:jessie: &package
image: $CI_REGISTRY/docker-images/layers:$DISTRO-deb
stage: package
variables:
DISTRO: jessie
script:
- package
artifacts:
paths:
- pkg/
package:stretch:
<<: *package
variables:
DISTRO: stretch
package:wheezy:
<<: *package
variables:
DISTRO: wheezy
publish:
image: $CI_REGISTRY/docker-images/layers:jessie-publish
stage: publish
script:
- publish

View File

@@ -1,3 +1,7 @@
^debian/ruby-linux-netlink$
~$
^.config-liblinux-netlink-ruby
^debian/$
^.pc/
^debian/files$
^debian/.*\.substvars$
^debian/.*\.debhelper.log$

117
debian/changelog vendored Normal file
View File

@@ -0,0 +1,117 @@
ruby-linux-netlink (0.19-1) stable; urgency=medium
* The size of size_t is now calculated from the size of an unsigned long
int, instead of calling gcc.
-- Patrick J Cherry <patrick@bytemark.co.uk> Wed, 10 May 2017 15:24:42 +0100
ruby-linux-netlink (0.18-2) stable; urgency=medium
* This package is now architecture independent.
* The source format has been removed in favour of using dh --with quilt.
-- Patrick J Cherry <patrick@bytemark.co.uk> Tue, 28 Feb 2017 16:43:43 +0000
ruby-linux-netlink (0.18-1+jessie1) stable; urgency=medium
* Fixed new massive IP test thing to work with ruby1.8 and also non-root users
* Make sure link exists before proceeding with test
* Scaled back the massive allocation of IPs from 11 /24s to 4.
* Updated linux header constants
* Updated to 0.18
-- Patrick J Cherry <patrick@bytemark.co.uk> Mon, 17 Oct 2016 13:09:35 +0100
ruby-linux-netlink (0.17-1+jessie1) testing; urgency=medium
* New upstream release
-- Patrick J Cherry <patrick@bytemark.co.uk> Wed, 01 Apr 2015 22:51:34 +0100
ruby-linux-netlink (0.16-1+jessie1) testing; urgency=medium
* Repackaged for jessie
-- Patrick J Cherry <patrick@bytemark.co.uk> Wed, 01 Apr 2015 17:39:44 +0100
ruby-linux-netlink (0.16-1+wheezy1) stable; urgency=medium
* New upstream release.
-- Patrick J Cherry <patch@dynamo> Tue, 26 Aug 2014 16:33:48 +0100
ruby-linux-netlink (0.15-1+wheezy1) stable; urgency=low
* New upstream release.
-- Patrick J Cherry <patrick@bytemark.co.uk> Tue, 21 Jan 2014 10:01:20 +0000
ruby-linux-netlink (0.14-1+wheezy1) stable; urgency=low
* New upstream release.
-- Patrick J Cherry <patrick@bytemark.co.uk> Thu, 14 Nov 2013 13:37:28 +0000
ruby-linux-netlink (0.13-1+wheezy1) stable; urgency=low
* New upstream release.
-- Patrick J Cherry <patrick@bytemark.co.uk> Wed, 13 Nov 2013 16:16:36 +0000
ruby-linux-netlink (0.12-1+wheezy1) stable; urgency=low
* New upstream release.
-- Patrick J Cherry <patrick@bytemark.co.uk> Thu, 12 Sep 2013 14:26:41 +0100
ruby-linux-netlink (0.11-1+wheezy2) stable; urgency=low
* Switch to dpkg-source 3.0 (quilt) format.
* Added patch to remove rubygems requires.
* Renamed source package to fit in with the new guidelines.
-- Patrick J Cherry <patrick@bytemark.co.uk> Fri, 05 Jul 2013 14:16:30 +0100
linux-netlink-ruby (0.11-1+wheezy1) stable; urgency=low
* New upstream version, repackaged for wheezy.
-- Patrick J Cherry <patrick@bytemark.co.uk> Fri, 05 Jul 2013 14:16:05 +0100
linux-netlink-ruby (0.10-6) stable; urgency=low
* Add ip rule support
-- Nick Thomas <nick@bytemark.co.uk> Thu, 5 Jul 2012 15:19:42 +0100
linux-netlink-ruby (0.10-5) stable; urgency=low
* Updated rattr constants to work with linux 3.2.
* Updated link handler to have new rattrs.
-- Patrick J Cherry <patrick@bytemark.co.uk> Mon, 11 Jun 2012 10:53:37 +0100
linux-netlink-ruby (0.10-4) unstable; urgency=low
* Removed dependency on gcc, in favour of having arch-dependent packages
which rely on build-time ascertation of sizeof size_t.
-- Patrick J Cherry <patrick@bytemark.co.uk> Tue, 24 Jan 2012 15:56:46 +0000
linux-netlink-ruby (0.10-3) unstable; urgency=low
* Updated version number to cover the previous changes.
-- Steve Kemp <steve@bytemark.co.uk> Thu, 12 Jan 2012 12:00:21 +0000
linux-netlink-ruby (0.10-2) unstable; urgency=low
* Added NlSocket.open and scope handling.
-- Matthew Bloch <matthew@bytemark.co.uk> Wed, 18 May 2011 15:27:00 +0100
linux-netlink-ruby (0.10-1) unstable; urgency=low
* Initial release.
-- Patrick J Cherry <patrick@bytemark.co.uk> Thu, 12 May 2011 17:17:45 +0100

1
debian/compat vendored Normal file
View File

@@ -0,0 +1 @@
7

18
debian/control vendored Normal file
View File

@@ -0,0 +1,18 @@
Source: ruby-linux-netlink
Maintainer: Matthew Bloch <matthew@bytemark.co.uk>
Uploaders: Patrick J Cherry <patrick@bytemark.co.uk>
Section: ruby
Priority: optional
Build-Depends: debhelper (>= 7), gem2deb, rake, ruby-ffi, quilt
Standards-Version: 3.8.0
XS-Ruby-Versions: all
Package: ruby-linux-netlink
Architecture: all
Depends: ruby | ruby-interpreter, ruby-ffi, ${misc:Depends}
Provides: liblinux-netlink-ruby1.8, liblinux-netlink-ruby1.9.1
XB-Ruby-Versions: ${ruby:Versions}
Description: Netlink socket library for Ruby
This library provides an API for using a Linux Netlink socket, for doing
things like manipulating IP interfaces and routes programmatically, and
capturing packets from ULOG.

20
debian/copyright vendored Normal file
View File

@@ -0,0 +1,20 @@
Ruby Netlink
============
Copyright (c) 2011 Bytemark Computer Consulting Ltd
Licence:
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
On Debian GNU/Linux systems, the complete text of the GNU General Public
License can be found in /usr/share/common-licenses/GPL or in the dpkg
source as the file COPYING

View File

@@ -0,0 +1,32 @@
Removed "require rubygems" from everywhere.
--- a/lib/linux/iptables.rb
+++ b/lib/linux/iptables.rb
@@ -1,11 +1,6 @@
require 'socket'
require 'linux/constants'
-
-begin
- require 'ffi'
-rescue LoadError
- require('rubygems') ? retry : raise
-end
+require 'ffi'
# Good things about FFI::Struct:
--- a/lib/linux/sendmsg.rb
+++ b/lib/linux/sendmsg.rb
@@ -1,12 +1,7 @@
# Patchup to add Socket#sendmsg and Socket#recvmsg for ruby 1.8
if BasicSocket.instance_methods.grep(/^sendmsg$/).empty?
- begin
- require 'ffi'
- rescue LoadError
- require('rubygems') ? retry : raise
- end
-
+ require 'ffi'
class BasicSocket
module FFIExt

1
debian/patches/series vendored Normal file
View File

@@ -0,0 +1 @@
remove-rubygems-requirements

1
debian/ruby-linux-netlink.examples vendored Normal file
View File

@@ -0,0 +1 @@
examples/*

2
debian/ruby-test-files.yaml vendored Normal file
View File

@@ -0,0 +1,2 @@
---
- test/t_route.rb

23
debian/rules vendored Executable file
View File

@@ -0,0 +1,23 @@
#!/usr/bin/make -f
#
# export DH_VERBOSE=1
#
# Uncomment to ignore all test failures (but the tests will run anyway)
# export DH_RUBY_IGNORE_TESTS=all
#
# Uncomment to ignore some test failures (but the tests will run anyway).
# Valid values:
# export DH_RUBY_IGNORE_TESTS=ruby1.8 ruby1.9.1 require-rubygems
#
# If you need to specify the .gemspec (eg there is more than one)
# export DH_RUBY_GEMSPEC=gem.gemspec
%:
dh $@ --buildsystem=ruby --with ruby --with quilt
override_dh_auto_build-arch:
rake lib/linux/c_struct_sizeof_size_t.rb
override_dh_auto_clean:
rake clean

View File

@@ -32,12 +32,12 @@ class CStruct
EMPTY_ARRAY = [].freeze #:nodoc:
TYPE_INFO = {} #:nodoc
# The size of the structure (in bytes)
def self.bytesize
@bytesize
end
# Define a new type for use with 'field'. You supply the
# symbolic name for the type, and a set of options.
# :pattern => "str" # format string for Array#pack / String#unpack
@@ -51,7 +51,7 @@ class CStruct
def self.define_type(name, opt)
TYPE_INFO[name] = opt
end
# Return a type info hash given a type id. Raises IndexError if not found.
def self.find_type(type)
case type
@@ -61,7 +61,7 @@ class CStruct
TYPE_INFO.fetch(type)
end
end
define_type :uchar, :pattern => "C"
define_type :uint16, :pattern => "S", :align => true
define_type :uint32, :pattern => "L", :align => true
@@ -78,12 +78,12 @@ class CStruct
define_type :long, :pattern => "l_", :align => true
define_type :ns, :pattern => "n", :align => true
define_type :nl, :pattern => "N", :align => true
begin
require 'linux/c_struct_sizeof_size_t.rb'
rescue LoadError
warn "Falling back to gcc to determine sizeof size_t." if $VERBOSE
SIZEOF_SIZE_T = Integer(`echo __SIZEOF_SIZE_T__ | gcc -E -P -`) rescue 1.size
warn "netlinkrb: Assuming size_t is a long unsigned int." if $DEBUG
SIZEOF_SIZE_T = [0].pack("L_").bytesize
end
define_type :size_t,
@@ -108,20 +108,20 @@ class CStruct
h.each { |k,v| self[k] = v } if h
end
end
# This hook is called after unpacking from binary, and can be used
# for fixing up the data
def after_parse
end
def to_hash
@attrs
end
def each(&blk)
@attrs.each(&blk)
end
# Set a field by name. Currently can use either symbol or string as key.
def []=(k,v)
send "#{k}=", v
@@ -131,7 +131,7 @@ class CStruct
def [](k)
@attrs[k]
end
def self.inherited(subclass) #:nodoc:
subclass.const_set(:FIELDS, [])
subclass.const_set(:FORMAT, "")
@@ -175,7 +175,7 @@ class CStruct
@bytesize += count
end
end
# Returns the packed binary representation of this structure
def to_str
self.class::FIELDS.map { |key| self[key] || self.class::DEFAULTS[key] }.pack(self.class::FORMAT)
@@ -184,7 +184,7 @@ class CStruct
def inspect
"#<#{self.class} #{@attrs.inspect}>"
end
# Convert a binary representation of this structure into an object instance.
# If a block is given, the object is yielded to that block. Finally the
# after_parse hook is called.