diff --git a/.rpm/protomask.spec b/.rpm/protomask.spec
new file mode 100644
index 0000000..7894933
--- /dev/null
+++ b/.rpm/protomask.spec
@@ -0,0 +1,32 @@
+%define __spec_install_post %{nil}
+%define __os_install_post %{_dbpath}/brp-compress
+%define debug_package %{nil}
+
+Name: protomask
+Summary: A user space NAT64 implementation
+Version: @@VERSION@@
+Release: @@RELEASE@@%{?dist}
+License: GPL-3.0
+Group: Applications/System
+Source0: %{name}-%{version}.tar.gz
+URL: https://github.com/ewpratten/protomask
+
+BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root
+
+%description
+%{summary}
+
+%prep
+%setup -q
+
+%install
+rm -rf %{buildroot}
+mkdir -p %{buildroot}
+cp -a * %{buildroot}
+
+%clean
+rm -rf %{buildroot}
+
+%files
+%defattr(-,root,root,-)
+%{_bindir}/*
diff --git a/Cargo.toml b/Cargo.toml
index 40ebe61..46d0c17 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -5,7 +5,7 @@ authors = ["Evan Pratten <ewpratten@gmail.com>"]
 edition = "2021"
 description = "A user space NAT64 implementation"
 readme = "README.md"
-homepage = "https://protomask.ewpratten.com"
+homepage = "https://github.com/ewpratten/protomask"
 documentation = "https://docs.rs/protomask"
 repository = "https://github.com/ewpratten/protomask"
 license = "GPL-3.0"
@@ -33,3 +33,12 @@ futures = "0.3.28"
 [[bin]]
 name = "protomask"
 path = "src/main.rs"
+
+[package.metadata.rpm]
+package = "protomask"
+
+[package.metadata.rpm.cargo]
+buildflags = ["--release"]
+
+[package.metadata.rpm.targets]
+protomask = { path = "/usr/bin/protomask" }
diff --git a/debug.sh b/debug.sh
deleted file mode 100644
index 3f94b3f..0000000
--- a/debug.sh
+++ /dev/null
@@ -1,24 +0,0 @@
-#! /bin/bash
-# A little script to isolate and run protomask for testing
-set -ex
-
-# Set up network namespace
-ip netns del protomask || true
-ip netns add protomask
-ip netns exec protomask ip link set lo up
-ip netns exec protomask ip link add test1 type dummy
-ip netns exec protomask ip link set test1 up
-ip netns exec protomask ip addr add 2001:db8:1::2 dev test1
-ip netns exec protomask ip link add test2 type dummy
-ip netns exec protomask ip link set test2 up
-ip netns exec protomask ip addr add 172.16.10.2 dev test2
-
-# Turn off the firewall for the test interfaces
-ip netns exec protomask firewall-cmd --zone=trusted --add-interface=nat64i0
-ip netns exec protomask firewall-cmd --zone=trusted --add-interface=test1
-ip netns exec protomask firewall-cmd --zone=trusted --add-interface=test2
-
-# Run protomask
-ip netns exec protomask ./target/x86_64-unknown-linux-musl/debug/protomask protomask.toml -v
-
-
diff --git a/src/nat/interface.rs b/src/nat/interface.rs
index 8bbfbe3..da569c9 100644
--- a/src/nat/interface.rs
+++ b/src/nat/interface.rs
@@ -93,11 +93,13 @@ impl Nat64Interface {
     }
 
     /// Get the interface mode
+    #[allow(dead_code)]
     pub fn mode(&self) -> Mode {
         self.interface.mode()
     }
 
-    /// Get the interface name
+    /// Get the interface nam
+    #[allow(dead_code)]
     pub fn name(&self) -> &str {
         self.interface.name()
     }
diff --git a/src/nat/packet.rs b/src/nat/packet.rs
index 69c348b..d69934f 100644
--- a/src/nat/packet.rs
+++ b/src/nat/packet.rs
@@ -53,6 +53,7 @@ impl IpPacket<'_> {
     }
 
     /// Returns the packet header
+    #[allow(dead_code)]
     pub fn get_header(&self) -> &[u8] {
         match self {
             IpPacket::V4(packet) => packet.packet()[..20].as_ref(),
@@ -61,6 +62,7 @@ impl IpPacket<'_> {
     }
 
     /// Returns the packet payload
+    #[allow(dead_code)]
     pub fn get_payload(&self) -> &[u8] {
         match self {
             IpPacket::V4(packet) => packet.payload(),
@@ -77,6 +79,7 @@ impl IpPacket<'_> {
     }
 
     /// Returns the packet length
+    #[allow(dead_code)]
     pub fn len(&self) -> usize {
         match self {
             IpPacket::V4(packet) => packet.packet().len(),
@@ -93,6 +96,7 @@ impl IpPacket<'_> {
     }
 
     /// Get the TTL
+    #[allow(dead_code)]
     pub fn get_ttl(&self) -> u8 {
         match self {
             IpPacket::V4(packet) => packet.get_ttl(),