mirror of
https://github.com/0x5t4l1n/NexTOR_IP_CHANGER.git
synced 2026-05-26 11:51:55 +00:00
Add Debian packaging for Kali Linux submission
This commit is contained in:
@@ -0,0 +1,519 @@
|
||||
# Complete Build Instructions for NexTOR IP Changer Debian Package
|
||||
|
||||
## Quick Start
|
||||
|
||||
```bash
|
||||
# Install dependencies
|
||||
sudo apt-get update
|
||||
sudo apt-get install -y build-essential debhelper dh-python python3-setuptools devscripts
|
||||
|
||||
# Build the package
|
||||
debuild -us -uc
|
||||
|
||||
# Test the package
|
||||
lintian -i ../nextor_1.1-1_all.deb
|
||||
|
||||
# Install it
|
||||
sudo dpkg -i ../nextor_1.1-1_all.deb
|
||||
sudo apt-get install -f
|
||||
```
|
||||
|
||||
## Detailed Build Process
|
||||
|
||||
### Phase 1: Environment Setup
|
||||
|
||||
#### 1.1 Install Build Tools
|
||||
|
||||
```bash
|
||||
# Update package lists
|
||||
sudo apt-get update
|
||||
|
||||
# Install essential build tools
|
||||
sudo apt-get install -y \
|
||||
build-essential \
|
||||
debhelper \
|
||||
dh-python \
|
||||
devscripts \
|
||||
python3-setuptools \
|
||||
python3-all \
|
||||
lintian \
|
||||
fakeroot
|
||||
|
||||
# Optional: for signing and advanced operations
|
||||
sudo apt-get install -y \
|
||||
git-buildpackage \
|
||||
pristine-tar \
|
||||
gnupg \
|
||||
gpg-agent
|
||||
```
|
||||
|
||||
#### 1.2 Configure Git (for commit signing)
|
||||
|
||||
```bash
|
||||
# Set up Git identity
|
||||
git config --global user.name "Your Name"
|
||||
git config --global user.email "your@email.com"
|
||||
|
||||
# If you want to sign releases (recommended)
|
||||
# First, generate a GPG key if you don't have one
|
||||
gpg --gen-key
|
||||
|
||||
# List your keys
|
||||
gpg --list-keys
|
||||
|
||||
# Configure Git to use your signing key
|
||||
git config --global user.signingkey <YOUR_KEY_ID>
|
||||
git config --global commit.gpgsign true
|
||||
```
|
||||
|
||||
#### 1.3 Verify Installation
|
||||
|
||||
```bash
|
||||
# Check debhelper version
|
||||
dh --version
|
||||
|
||||
# Check python tools
|
||||
python3 --version
|
||||
python3 -m pip --version
|
||||
|
||||
# Check dpkg-buildpackage
|
||||
dpkg-buildpackage --version
|
||||
```
|
||||
|
||||
### Phase 2: Source Preparation
|
||||
|
||||
#### 2.1 Navigate to Project Directory
|
||||
|
||||
```bash
|
||||
cd /path/to/NexTOR_IP_CHANGER
|
||||
```
|
||||
|
||||
#### 2.2 Verify Project Structure
|
||||
|
||||
```bash
|
||||
# Expected structure:
|
||||
find . -maxdepth 2 -type f | grep -E "(debian/|setup.py|pyproject.toml)" | sort
|
||||
```
|
||||
|
||||
Should output:
|
||||
```
|
||||
./debian/control
|
||||
./debian/changelog
|
||||
./debian/copyright
|
||||
./debian/rules
|
||||
./debian/install
|
||||
./debian/nextor.1
|
||||
./debian/compat
|
||||
./debian/source/format
|
||||
./setup.py
|
||||
./pyproject.toml
|
||||
```
|
||||
|
||||
#### 2.3 Clean Previous Builds
|
||||
|
||||
```bash
|
||||
# Remove old build artifacts
|
||||
debclean
|
||||
|
||||
# Or manually remove
|
||||
rm -rf build/ dist/ *.egg-info/
|
||||
rm -f debian/nextor/
|
||||
rm -f ../nextor_*
|
||||
```
|
||||
|
||||
### Phase 3: Building the Package
|
||||
|
||||
#### 3.1 Build with debuild (Recommended Method)
|
||||
|
||||
```bash
|
||||
# Navigate to project root
|
||||
cd /path/to/NexTOR_IP_CHANGER
|
||||
|
||||
# Build binary package only (unsigned)
|
||||
debuild -us -uc -b
|
||||
|
||||
# Or build source and binary (for full release)
|
||||
debuild -us -uc
|
||||
|
||||
# With detailed output
|
||||
debuild -v -us -uc
|
||||
```
|
||||
|
||||
**Build Output:** (in parent directory)
|
||||
```
|
||||
../nextor_1.1-1_all.deb # Binary package
|
||||
../nextor_1.1-1_amd64.changes # Changes file
|
||||
../nextor_1.1-1.dsc # Source description (if building -S)
|
||||
../nextor_1.1-1.tar.gz # Source tarball (if building -S)
|
||||
../nextor_1.1-1.tar.xz # Source tarball XZ (if building -S)
|
||||
```
|
||||
|
||||
#### 3.2 Alternative: Build with dpkg-buildpackage
|
||||
|
||||
```bash
|
||||
# Install build dependencies first
|
||||
sudo apt-get build-dep .
|
||||
|
||||
# Build binary package
|
||||
dpkg-buildpackage -us -uc -b
|
||||
|
||||
# Build everything (with signing)
|
||||
dpkg-buildpackage -k<KEY_ID>
|
||||
```
|
||||
|
||||
#### 3.3 Verify Build Success
|
||||
|
||||
```bash
|
||||
# Check package was created
|
||||
ls -lh ../nextor_*.deb
|
||||
|
||||
# Examine package details
|
||||
file ../nextor_1.1-1_all.deb
|
||||
|
||||
# Show package info
|
||||
dpkg-deb -I ../nextor_1.1-1_all.deb
|
||||
```
|
||||
|
||||
### Phase 4: Quality Assurance Testing
|
||||
|
||||
#### 4.1 Lintian Analysis
|
||||
|
||||
```bash
|
||||
# Basic lintian check
|
||||
lintian ../nextor_1.1-1_all.deb
|
||||
|
||||
# Detailed (with explanations)
|
||||
lintian -i ../nextor_1.1-1_all.deb
|
||||
|
||||
# Show all severity levels
|
||||
lintian --display-info ../nextor_1.1-1_all.deb
|
||||
|
||||
# Check for specific category
|
||||
lintian -t debian_policy ../nextor_1.1-1_all.deb
|
||||
```
|
||||
|
||||
**Expected Output:** Clean or only informational messages
|
||||
|
||||
#### 4.2 Manual Package Inspection
|
||||
|
||||
```bash
|
||||
# Extract package to temporary location
|
||||
mkdir /tmp/nextor-inspect
|
||||
dpkg-deb -x ../nextor_1.1-1_all.deb /tmp/nextor-inspect
|
||||
|
||||
# Browse extracted files
|
||||
tree /tmp/nextor-inspect
|
||||
cd /tmp/nextor-inspect && find . -type f | sort
|
||||
|
||||
# Check key files exist
|
||||
ls -la /tmp/nextor-inspect/usr/bin/nextor
|
||||
ls -la /tmp/nextor-inspect/usr/share/man/man1/nextor.1*
|
||||
```
|
||||
|
||||
#### 4.3 Dependency Verification
|
||||
|
||||
```bash
|
||||
# Extract and analyze dependencies
|
||||
dpkg-deb -f ../nextor_1.1-1_all.deb Depends
|
||||
|
||||
# Verify each dependency is installable
|
||||
apt-cache search python3-stem
|
||||
apt-cache search python3-requests
|
||||
apt-cache search tor
|
||||
|
||||
# Check package provides
|
||||
dpkg-deb -f ../nextor_1.1-1_all.deb Provides
|
||||
```
|
||||
|
||||
### Phase 5: Installation and Functional Testing
|
||||
|
||||
#### 5.1 Test Installation
|
||||
|
||||
```bash
|
||||
# Install the package
|
||||
sudo dpkg -i ../nextor_1.1-1_all.deb
|
||||
|
||||
# If dependency issues, use apt to fix
|
||||
sudo apt-get install -f
|
||||
|
||||
# Verify installation
|
||||
dpkg -l | grep nextor
|
||||
which nextor
|
||||
```
|
||||
|
||||
#### 5.2 Functional Testing
|
||||
|
||||
```bash
|
||||
# Test command availability
|
||||
nextor --help 2>&1 || echo "Command executed"
|
||||
|
||||
# View man page
|
||||
man nextor
|
||||
|
||||
# Check file permissions
|
||||
ls -la /usr/bin/nextor
|
||||
ls -la /usr/share/doc/nextor/
|
||||
|
||||
# Test Python imports
|
||||
python3 -c "from Nex_Tor_IP_changer import NexTOR; print('✓ Import successful')"
|
||||
|
||||
# Verify dependencies are accessible
|
||||
python3 -c "import requests; print('✓ requests available')"
|
||||
python3 -c "import stem; print('✓ stem available')"
|
||||
```
|
||||
|
||||
#### 5.3 Uninstallation Testing
|
||||
|
||||
```bash
|
||||
# Remove package
|
||||
sudo apt-get remove nextor
|
||||
|
||||
# Verify clean removal of package files
|
||||
dpkg -L nextor 2>&1 | head -5
|
||||
|
||||
# Completely remove (purge config files)
|
||||
sudo apt-get purge nextor
|
||||
|
||||
# Verify complete removal
|
||||
which nextor || echo "✓ nextor fully removed"
|
||||
```
|
||||
|
||||
### Phase 6: Build Artifact Management
|
||||
|
||||
#### 6.1 Archive Build Products
|
||||
|
||||
```bash
|
||||
# Create build artifacts directory
|
||||
mkdir -p ~/nextor-builds/v1.1-1
|
||||
|
||||
# Copy build artifacts
|
||||
cp ../nextor_1.1-1_all.deb ~/nextor-builds/v1.1-1/
|
||||
cp ../nextor_1.1-1_amd64.changes ~/nextor-builds/v1.1-1/
|
||||
cp ../nextor_1.1-1.dsc ~/nextor-builds/v1.1-1/ # if available
|
||||
cp ../nextor_1.1-1.tar.* ~/nextor-builds/v1.1-1/ # source archives
|
||||
|
||||
# List archived artifacts
|
||||
ls -lh ~/nextor-builds/v1.1-1/
|
||||
```
|
||||
|
||||
#### 6.2 Create Build Summary
|
||||
|
||||
```bash
|
||||
# Generate build info
|
||||
cat > ~/nextor-builds/v1.1-1/BUILD_INFO.txt << 'EOF'
|
||||
NexTOR IP Changer Debian Package Build
|
||||
======================================
|
||||
|
||||
Build Date: $(date)
|
||||
Package Version: 1.1-1
|
||||
Architecture: all
|
||||
Distribution: Debian/Kali Linux
|
||||
|
||||
Build System Information
|
||||
------------------------
|
||||
Debian/Ubuntu Version: $(lsb_release -ds)
|
||||
Kernel: $(uname -r)
|
||||
Python: $(python3 --version)
|
||||
Build Tools: debhelper $(dh --version), dpkg-buildpackage
|
||||
|
||||
Build Command Used
|
||||
------------------
|
||||
debuild -us -uc
|
||||
|
||||
Quality Assurance
|
||||
-----------------
|
||||
Lintian Status: PASSED
|
||||
Installation Test: PASSED
|
||||
Functional Test: PASSED
|
||||
|
||||
Artifacts Included
|
||||
------------------
|
||||
- nextor_1.1-1_all.deb (Binary package)
|
||||
- nextor_1.1-1_amd64.changes (Changes file)
|
||||
- nextor_1.1-1.dsc (Source description) [if available]
|
||||
- nextor_1.1-1.tar.* (Source archives) [if available]
|
||||
|
||||
Installation Instructions
|
||||
--------------------------
|
||||
sudo dpkg -i nextor_1.1-1_all.deb
|
||||
sudo apt-get install -f
|
||||
EOF
|
||||
|
||||
cat ~/nextor-builds/v1.1-1/BUILD_INFO.txt
|
||||
```
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
### Build Failures
|
||||
|
||||
#### Error: "Build-depends not satisfied"
|
||||
|
||||
```bash
|
||||
# Install missing build dependencies
|
||||
sudo apt-get build-dep .
|
||||
|
||||
# Or manually install from control file
|
||||
sudo apt-get install debhelper-compat dh-python python3-setuptools
|
||||
```
|
||||
|
||||
#### Error: "debuild command not found"
|
||||
|
||||
```bash
|
||||
# Install devscripts package
|
||||
sudo apt-get install devscripts
|
||||
|
||||
# Verify installation
|
||||
devscripts --version
|
||||
```
|
||||
|
||||
#### Error: "Permission denied" on debian/rules
|
||||
|
||||
```bash
|
||||
# Make rules executable
|
||||
chmod +x debian/rules
|
||||
|
||||
# Or during first build
|
||||
debuild -us -uc
|
||||
```
|
||||
|
||||
#### Error: "Package has no source"
|
||||
|
||||
```bash
|
||||
# Ensure you're in the correct directory
|
||||
pwd
|
||||
ls -la debian/control
|
||||
|
||||
# Ensure debian/ directory exists
|
||||
[ -d debian ] && echo "debian/ exists" || echo "Missing debian/"
|
||||
```
|
||||
|
||||
### Package Installation Failures
|
||||
|
||||
#### Error: "dependency issues / unmet dependencies"
|
||||
|
||||
```bash
|
||||
# Preview dependencies before installing
|
||||
dpkg -I ../nextor_1.1-1_all.deb | grep Depends
|
||||
|
||||
# Install with dependency resolution
|
||||
sudo apt-get install -y tor python3-stem python3-requests
|
||||
sudo dpkg -i ../nextor_1.1-1_all.deb
|
||||
sudo apt-get install -f
|
||||
```
|
||||
|
||||
#### Error: "Package conflicts with installed version"
|
||||
|
||||
```bash
|
||||
# Remove conflicting package first
|
||||
sudo apt-get remove nextor-ip-changer
|
||||
|
||||
# Or purge to remove config files
|
||||
sudo apt-get purge nextor-ip-changer
|
||||
|
||||
# Then install new package
|
||||
sudo dpkg -i ../nextor_1.1-1_all.deb
|
||||
```
|
||||
|
||||
### Runtime Failures
|
||||
|
||||
#### Error: "nextor: command not found"
|
||||
|
||||
```bash
|
||||
# Verify installation
|
||||
dpkg -l | grep nextor
|
||||
|
||||
# Check binary exists and is executable
|
||||
ls -la /usr/bin/nextor
|
||||
|
||||
# Verify PATH includes /usr/bin
|
||||
echo $PATH | grep /usr/bin
|
||||
|
||||
# Reinstall if necessary
|
||||
sudo dpkg --configure nextor
|
||||
```
|
||||
|
||||
#### Error: "Python import failed"
|
||||
|
||||
```bash
|
||||
# Verify Python package installed correctly
|
||||
dpkg -L nextor | grep -E '\.py$'
|
||||
|
||||
# Check package contents
|
||||
dpkg -c ../nextor_1.1-1_all.deb | grep -E '\.py$'
|
||||
|
||||
# Verify Python path
|
||||
python3 -c "import sys; print(sys.path)"
|
||||
|
||||
# Test imports manually
|
||||
python3 -c "from Nex_Tor_IP_changer.NexTOR import main"
|
||||
```
|
||||
|
||||
## Additional Commands
|
||||
|
||||
### Size Analysis
|
||||
|
||||
```bash
|
||||
# Binary package size
|
||||
du -h ../nextor_1.1-1_all.deb
|
||||
|
||||
# Uncompressed size
|
||||
dpkg-deb -I ../nextor_1.1-1_all.deb | grep Installed-Size
|
||||
|
||||
# Breakdown by directory
|
||||
dpkg-deb -x ../nextor_1.1-1_all.deb /tmp/analyze
|
||||
du -sh /tmp/analyze/*/
|
||||
```
|
||||
|
||||
### Compatibility Testing
|
||||
|
||||
```bash
|
||||
# Test on different distributions
|
||||
# Simulate Debian Bookworm
|
||||
debootstrap bookworm /tmp/bookworm
|
||||
chroot /tmp/bookworm /bin/bash
|
||||
dpkg -i /nextor_1.1-1_all.deb
|
||||
|
||||
# Or use Docker for isolation
|
||||
docker run -it debian:bookworm bash
|
||||
apt-get update
|
||||
dpkg -i /nextor_1.1-1_all.deb
|
||||
```
|
||||
|
||||
### Security Checks
|
||||
|
||||
```bash
|
||||
# Scan for vulnerabilities in dependencies
|
||||
apt-cache depends --recurse nextor
|
||||
|
||||
# Verify GPG signature (if signed)
|
||||
dpkg-sig --verify ../nextor_1.1-1_all.deb
|
||||
|
||||
# Check for suspicious permissions
|
||||
dpkg-deb -x ../nextor_1.1-1_all.deb /tmp/sec
|
||||
find /tmp/sec -type f -perm /006
|
||||
```
|
||||
|
||||
## Final Checklist
|
||||
|
||||
Before submitting to Kali Linux:
|
||||
|
||||
- [ ] `debuild -us -uc` completes without errors
|
||||
- [ ] Package file exists: `../nextor_1.1-1_all.deb`
|
||||
- [ ] `lintian -i` shows no errors (only warnings/info)
|
||||
- [ ] `sudo dpkg -i` installs successfully
|
||||
- [ ] `nextor` command is executable
|
||||
- [ ] `man nextor` displays properly
|
||||
- [ ] `python3 -c "from Nex_Tor_IP_changer import NexTOR"` works
|
||||
- [ ] Dependencies listed in `debian/control` are all required and available
|
||||
- [ ] No Debian Policy violations
|
||||
- [ ] Copyright file is complete and accurate
|
||||
- [ ] Package builds on target distributions (Debian/Kali)
|
||||
- [ ] All Python files have shebang header if executable
|
||||
|
||||
---
|
||||
|
||||
**For more information:**
|
||||
- [DEBIAN_PACKAGING.md](DEBIAN_PACKAGING.md) - Detailed Debian packaging guide
|
||||
- [KALI_SUBMISSION.md](KALI_SUBMISSION.md) - Kali Linux submission process
|
||||
- [Debian Policy Manual](https://www.debian.org/doc/debian-policy/)
|
||||
- [debhelper Documentation](https://manpages.debian.org/debhelper)
|
||||
Reference in New Issue
Block a user