I need help creating a new Fedora derivative distribution

I have started work on a new derivative distribution, should be similar to Whonix except based on I2P & Fedora instead of Tor. Problem is there are a few key points where I am struggling.

  • Packaging specific softwares, I have already successfully built and packaged some of what I need, mainly i2p itself, java-service-wrapper, and kloak. However I can’t get monero-gui or tor’s base browser(tor browser has a “base browser“ which acts as a base for tbb and mullvad) to compile in mock. I also have plans to possibly include veracrypt, as well as a couple other softwares, but I should be able to handle those on my own. I need all software to be able to build with the rpmfusion-free template over F43(F42 is fine too, specs shouldn’t need too many modifications between the two).
  • nftables rules for both client and gateway virtual machines, I will not be using firewalld or relying on legacy iptables. Here is some documentation about i2p’s ports: Ports Used by I2P - I2P . The goal is to get the client vm to forward packets to the gateway using systemd-socket-proxyd. I can setup systemd-socket-proxyd to forward the correct ports, but I’m not sure how to label the correct ports with systemd_socket_proxyd_port_t by default.
  • I believe it may also be necessary to setup automated tests for IP leakage or other issues that may arise.
  • Building an iso file installer, I’m not sure where to start. I know my way around a kickstart file, but I’ve never built an iso before. I’m also not sure if it’s necessary to do things such as deleting /usr/lib/systemd/systemd-random-seed, either on the generated iso itself or in the system that the iso would be installing in order to avoid everyone having the same random seed. I’m planning on basing my first testing releases on F43, so the new anaconda would need to be accounted for rather than the old one.
  • I would also like to have an automated system for setting up i2p, without user interaction. Setting defaults is simple enough however there’s no way to set sensible defaults for everyone for something like allocated bandwidth or ram. Worst case scenario, Lynx can be installed by default on the gateway(the gateway will be cli only).
  • I’m also struggling to get the upnp function in i2p to work properly in a kvm/qemu virtual machine. Even with my firewalls completely disabled. If someone can figure out how to get that working that would be great.

At some point I would also like to setup repos that only work over i2p, however this will be a somewhat costly endeavor, at least to maintain enough mirrors for high uptime. At the moment I am not soliciting any donations or resources to make this happen. If there is enough interest in this project and I can get a functional beta, then I will worry about setting up repos.

Any and all help is welcome and appreciated, no matter how small.

1 Like

This forum is likely not qualified to help.

If you break up your question into small, individual issues you may have more luck.

The developers hang out on mailing lists and on chat.fedoraproject.org

Having one person make a distro is quiet unreasonable, you should make or join a team who share similar values and goals to you.

I love the enthusiasm and spirit!
Fedora needs more packagers and documentors, I would welcome you to join our team. Maybe you could achieve your goals by utilising a Fedora base distro and writing documentation or an Ansible playbook or a Kickstart?

The developers hang out on mailing lists and on chat.fedoraproject.org

Thanks, I forgot about the matrix room, I’ll ask there too. Although I tend not to use the mailing lists, because I’m subscribed to so many it’s a lot to keep up with.

Having one person make a distro is quiet unreasonable, you should make or join a team who share similar values and goals to you.

I’ve thought about it, although finding a team might be a more difficult proposition than doing most of the work myself, unfortunately I don’t have very many social skills. For now I think I’ll settle for asking for a few contributions here and there where I personally struggle.

Fedora needs more packagers and documentors, I would welcome you to join our team.

I have attempted this before, unfortunately my issue again stems partially from my lack of social skills. It was rather difficult for me to find a sponsor. And reviewing other package submissions was somewhat difficult for me because of time constraints.

Maybe you could achieve your goals by utilising a Fedora base distro and writing documentation or an Ansible playbook or a Kickstart?

I don’t know what Ansible is, and I had somewhat of a roadmap for how I am going to achieve my goal already. First step is to successfully build and package all the softwares that I need as well as nftable rules. Everything else is relatively easy for me, as I am fairly familiar with spec files, repository configurations, kickstarts, etc. All that’s holding it back is time constraints and a few key points that I listed out already.

Keep it up!
Your social skills seem at least as good as most developers :slight_smile: Seriously, just keep engaged - your fine.

If you help a few people on the devel matrix channel with spec files, I’m sure someone will sponsor you.

1 Like