The module architecture was incorrectly constructed as: linux-x86_64-0.27 But Enlightenment expects: linux-gnu-x86_64-0.27.1 Changes: - Detect system ABI (gnu/musl) via features.h header check - Use full Enlightenment version instead of just major.minor - Correct architecture format: <system>-<abi>-<cpu>-<version> This ensures the module installs to the correct directory that Enlightenment will find when loading modules. Also updated Gentoo ebuild to set S variable for correct source directory extraction (git archives extract to 'eiwd' not 'eiwd-0.1.0'). |
||
|---|---|---|
| .. | ||
| arch | ||
| gentoo | ||
| profiles | ||
| create-release.sh | ||
| README.md | ||
eiwd Packaging
Distribution-specific packaging files for eiwd.
Directory Structure
packaging/
├── arch/
│ └── PKGBUILD # Arch Linux package
├── gentoo/
│ └── eiwd-0.1.0.ebuild # Gentoo ebuild
├── create-release.sh # Release tarball generator
└── README.md # This file
Creating a Release Tarball
# From project root
./packaging/create-release.sh 0.1.0
# This creates:
# - eiwd-0.1.0.tar.gz
# - eiwd-0.1.0.tar.gz.sha256
# - eiwd-0.1.0.tar.gz.md5
The tarball includes:
- Source code (src/, data/, po/)
- Build system (meson.build, meson_options.txt)
- Documentation (README.md, INSTALL.md, etc.)
- License file (if present)
Arch Linux Package
Building Locally
cd packaging/arch/
# Download/create source tarball
# Update sha256sums in PKGBUILD
# Build package
makepkg -si
# Or just build without installing
makepkg
Publishing to AUR
- Create AUR account: https://aur.archlinux.org/register
- Set up SSH key: https://wiki.archlinux.org/title/AUR_submission_guidelines
- Clone AUR repository:
git clone ssh://aur@aur.archlinux.org/eiwd.git cd eiwd - Copy PKGBUILD and update:
- Set correct
sourceURL - Update
sha256sumswith actual checksum - Add .SRCINFO:
makepkg --printsrcinfo > .SRCINFO
- Set correct
- Commit and push:
git add PKGBUILD .SRCINFO git commit -m "Initial import of eiwd 0.1.0" git push
Testing Installation
# Install from local PKGBUILD
cd packaging/arch/
makepkg -si
# Verify installation
pacman -Ql eiwd
ls -R /usr/lib/enlightenment/modules/iwd/
# Test module
enlightenment_remote -module-load iwd
Gentoo Package
Adding to Local Overlay
# Create overlay if needed
mkdir -p /usr/local/portage/x11-plugins/eiwd
# Copy ebuild
cp packaging/gentoo/eiwd-0.1.0.ebuild \
/usr/local/portage/x11-plugins/eiwd/
# Generate manifest
cd /usr/local/portage/x11-plugins/eiwd
ebuild eiwd-0.1.0.ebuild manifest
# Install
emerge -av eiwd
Testing Installation
# Build and install
emerge eiwd
# Verify files
equery files eiwd
# Test module
enlightenment_remote -module-load iwd
Submitting to Gentoo Repository
- Create bug report: https://bugs.gentoo.org/
- Attach ebuild and provide:
- Package description
- Upstream URL
- License verification
- Testing information (architecture, E version)
- Monitor for maintainer feedback
- Address any requested changes
Debian/Ubuntu Package
To create a .deb package:
# Install packaging tools
sudo apt install devscripts build-essential debhelper
# Create debian/ directory structure
mkdir -p debian/source
# Create required files:
# - debian/control (package metadata)
# - debian/rules (build instructions)
# - debian/changelog (version history)
# - debian/copyright (license info)
# - debian/source/format (package format)
# Build package
debuild -us -uc
# Install
sudo dpkg -i ../eiwd_0.1.0-1_amd64.deb
Example debian/control:
Source: eiwd
Section: x11
Priority: optional
Maintainer: Your Name <your.email@example.com>
Build-Depends: debhelper (>= 13), meson, ninja-build, libefl-all-dev, enlightenment-dev
Standards-Version: 4.6.0
Homepage: https://github.com/yourusername/eiwd
Package: eiwd
Architecture: any
Depends: ${shlibs:Depends}, ${misc:Depends}, enlightenment (>= 0.25), iwd (>= 1.0)
Recommends: polkit
Description: Enlightenment Wi-Fi module using iwd backend
eiwd provides native Wi-Fi management for the Enlightenment desktop
environment using Intel Wireless Daemon (iwd) as the backend.
.
Features fast scanning, secure authentication, and seamless
integration with Enlightenment's module system.
Fedora/RPM Package
# Install packaging tools
sudo dnf install rpmdevtools rpmbuild
# Set up RPM build tree
rpmdev-setuptree
# Create spec file in ~/rpmbuild/SPECS/eiwd.spec
# Copy tarball to ~/rpmbuild/SOURCES/
# Build RPM
rpmbuild -ba ~/rpmbuild/SPECS/eiwd.spec
# Install
sudo rpm -i ~/rpmbuild/RPMS/x86_64/eiwd-0.1.0-1.fc39.x86_64.rpm
Example spec file excerpt:
Name: eiwd
Version: 0.1.0
Release: 1%{?dist}
Summary: Enlightenment Wi-Fi module using iwd backend
License: BSD
URL: https://github.com/yourusername/eiwd
Source0: %{name}-%{version}.tar.gz
BuildRequires: meson ninja-build gcc
BuildRequires: enlightenment-devel efl-devel
Requires: enlightenment >= 0.25
Requires: efl >= 1.26
Requires: iwd >= 1.0
%description
eiwd provides native Wi-Fi management for Enlightenment using iwd.
%prep
%autosetup
%build
%meson
%meson_build
%install
%meson_install
%files
%license LICENSE
%doc README.md INSTALL.md
%{_libdir}/enlightenment/modules/iwd/
Generic Installation from Tarball
For distributions without packages:
# Extract tarball
tar -xzf eiwd-0.1.0.tar.gz
cd eiwd-0.1.0
# Build and install
meson setup build --prefix=/usr/local
ninja -C build
sudo ninja -C build install
# Module will be installed to:
# /usr/local/lib64/enlightenment/modules/iwd/
Packaging Checklist
Before releasing a package:
-
Version number updated in:
meson.build(project version)- PKGBUILD (pkgver)
- ebuild (filename and PV)
- debian/changelog
- spec file
-
Source tarball created and tested:
- Extracts cleanly
- Builds successfully
- All files included
- Checksums generated
-
Documentation up to date:
- README.md reflects current features
- INSTALL.md has correct paths
- CONTRIBUTING.md guidelines current
-
Package metadata correct:
- Dependencies accurate
- License specified
- Homepage/URL set
- Description clear
-
Installation tested:
- Module loads in Enlightenment
- Files installed to correct paths
- No missing dependencies
- Uninstall works cleanly
-
Distribution-specific:
- Arch: .SRCINFO generated
- Gentoo: Manifest created
- Debian: Lintian clean
- Fedora: rpmlint passes
Version Numbering
Follow semantic versioning (semver):
- 0.1.0 - Initial release
- 0.1.1 - Bug fix release
- 0.2.0 - New features (backward compatible)
- 1.0.0 - First stable release
- 1.1.0 - New features post-1.0
- 2.0.0 - Breaking changes
Distribution Maintainer Notes
System Integration
Packages should:
- Install to standard library paths (
/usr/lib64or/usr/lib) - Include documentation in
/usr/share/doc/eiwd/ - Not conflict with other Wi-Fi managers
- Recommend but not require polkit
Dependencies
Build-time:
- meson >= 0.56
- ninja
- gcc/clang
- pkg-config
- edje_cc (part of EFL)
Runtime:
- enlightenment >= 0.25
- efl >= 1.26 (elementary, eldbus, ecore, evas, edje, eina)
- iwd >= 1.0
- dbus
Optional:
- polkit (for non-root Wi-Fi management)
- gettext (for translations)
Post-Install
Inform users to:
- Enable iwd service
- Configure polkit rules (provide example)
- Load module in Enlightenment
- Add gadget to shelf
Known Issues
- Conflicts with wpa_supplicant (both should not run simultaneously)
- Requires D-Bus system bus access
- May need additional polkit configuration on some distributions
Support
For packaging questions:
- Open an issue on GitHub
- Check distribution-specific guidelines
- Refer to INSTALL.md for detailed setup