Wurf: Difference between revisions

From Nasqueron Agora
(Created page with "The '''wurf''' (web upload and receive file), allows to spawn a server to allow to download a file, then exit automatically. It's planned to be deployed on Nasqueron servers for the end of the year 2024. The '''wurf''' utility is a fork of '''woof''' (web offer one file) by Simon Budig. As woof is released under a GPLv2+ software, the '''wurf''' utility is also release under a GPLv2+ license, and not under BSD license. We thank Simon for the work on that utility. == No...")
 
No edit summary
Line 1: Line 1:
The '''wurf''' (web upload and receive file), allows to spawn a server to allow to download a file, then exit automatically. It's planned to be deployed on Nasqueron servers for the end of the year 2024.
The '''wurf''' (Web Upload and Receive File), allows spawning a server to allow to download a file and then automatically exits. It's planned to be deployed on Nasqueron servers by the end of 2024.


The '''wurf''' utility is a fork of '''woof''' (web offer one file) by Simon Budig. As woof is released under a GPLv2+ software, the '''wurf''' utility is also release under a GPLv2+ license, and not under BSD license. We thank Simon for the work on that utility.
The '''wurf''' utility is a fork of '''woof''' (Web Offer One File) by Simon Budig. As woof has been released under the GPLv2+ license, the '''wurf''' utility is also released under the GPLv2+ license, and not under a BSD license. We thank Simon for their work on that utility.


== Notes on the fork ==
== Notes on the fork ==


The name '''wurf''' is more wolfie than doggie, as the acronym of "web upload and receive file".
The name '''wurf''' has a more ''wolfish'' feel than ''dog-like''. It was picked first, before picking Web Upload and Receive File as a backronym.


The goals of the fork are to actively maintain a Python 3.x-compatible version:
The goals of the fork are to actively maintain a Python 3.x-compatible version:
* supersede the soft-deprecated getopt module by argparse
* replace the soft-deprecated getopt module with argparse
* accept pull request replacing CGI module
* accept pull requests replacing the deprecated CGI module
* publish man page
* publish a man page


We also need to modernize Web distribution by supporting TLS:
We also aim to modernize web distribution by supporting TLS:
* allow to document a proxy configuration for woof, so it can be served through nginx with proxy_pass
* allow to write a configuration file with to document an existing proxy (nginx, haproxy, ...) to a specific wurf port, and expose the URL when that port is available
* allow certificates support to directly serve without proxy
* enable certificate support to serve fiels directly without a proxy


We'd like to try to restore woof in packages distribution:
We would also like to restore the utility in package distributions:
* the port I maintained was removed from FreeBSD in 2020 as not compatible with Python 3 and a project decision not to distribute packages for unsupported Python versions
* The FreeBSD port I maintained was removed in 2020 due to incompatibility with Python 3 and the project's decision not to distribute packages for unsupported Python versions.
* the package for Debian was 2.7 only and remove after Jessie (see [https://devcentral.nasqueron.org/T1644 T1644])
* The Debian package was Python 2.7-only and was removed after Jessie (see [https://devcentral.nasqueron.org/T1644 T1644]).


That let Nasqueron in a though spot, we rely on that utility on our servers but struggle to keep it maintained
This situation has left Nasqueron in a tough spot, as we rely on this utility on our servers but have struggled to keep it maintained.


Hence the fork for our own servers infrastructure.
Hence, the fork for our own servers infrastructure.
 
== FAQ ==
=== Can I use wurf outside of Nasqueron servers? ===
While the primary goal of the '''wurf''' utility is to deploy it on Nasqueron servers, we would be delighted if others find it useful as well. We welcome contributions and feedback from anyone who sees potential in the tool and would like to use it.
 
=== Is wurf open-source? ===
Yes, '''wurf''' is open-source and released under the GPLv2+ license, the same as the original '''woof''' utility. This ensures that '''wurf''' remains freely available for modification and redistribution under the same terms.
 
=== Why isn't wurf licensed under BSD? ===
Because '''wurf''' is a direct fork of '''woof''', which is licensed under GPLv2+, it must adhere to the same licensing conditions. This means it cannot be released under the BSD license.
 
=== Can I contribute to wurf? ===
Absolutely! We welcome contributions from anyone who finds the tool useful and would like to improve or extend its functionality. Feel free [[How to contribute code|to submit pull requests]], especially those that help modernize and maintain the codebase.
 
=== Why not keep the name woof? ===
We chose to rename the fork to '''wurf''' to reflect its new direction and functionality. '''wurf''' stands for "Web Upload and Receive File," emphasizing the enhanced features and modernization efforts we would like to make, particularly for Python 3.x compatibility and TLS support. The name change also helps signal that this is an actively maintained project, distinct from the original '''woof'''. While we respect the origins of '''woof''', '''wurf''' represents a fresh, forward-looking approach for our needs and contributions.

Revision as of 17:05, 18 October 2024

The wurf (Web Upload and Receive File), allows spawning a server to allow to download a file and then automatically exits. It's planned to be deployed on Nasqueron servers by the end of 2024.

The wurf utility is a fork of woof (Web Offer One File) by Simon Budig. As woof has been released under the GPLv2+ license, the wurf utility is also released under the GPLv2+ license, and not under a BSD license. We thank Simon for their work on that utility.

Notes on the fork

The name wurf has a more wolfish feel than dog-like. It was picked first, before picking Web Upload and Receive File as a backronym.

The goals of the fork are to actively maintain a Python 3.x-compatible version:

  • replace the soft-deprecated getopt module with argparse
  • accept pull requests replacing the deprecated CGI module
  • publish a man page

We also aim to modernize web distribution by supporting TLS:

  • allow to write a configuration file with to document an existing proxy (nginx, haproxy, ...) to a specific wurf port, and expose the URL when that port is available
  • enable certificate support to serve fiels directly without a proxy

We would also like to restore the utility in package distributions:

  • The FreeBSD port I maintained was removed in 2020 due to incompatibility with Python 3 and the project's decision not to distribute packages for unsupported Python versions.
  • The Debian package was Python 2.7-only and was removed after Jessie (see T1644).

This situation has left Nasqueron in a tough spot, as we rely on this utility on our servers but have struggled to keep it maintained.

Hence, the fork for our own servers infrastructure.

FAQ

Can I use wurf outside of Nasqueron servers?

While the primary goal of the wurf utility is to deploy it on Nasqueron servers, we would be delighted if others find it useful as well. We welcome contributions and feedback from anyone who sees potential in the tool and would like to use it.

Is wurf open-source?

Yes, wurf is open-source and released under the GPLv2+ license, the same as the original woof utility. This ensures that wurf remains freely available for modification and redistribution under the same terms.

Why isn't wurf licensed under BSD?

Because wurf is a direct fork of woof, which is licensed under GPLv2+, it must adhere to the same licensing conditions. This means it cannot be released under the BSD license.

Can I contribute to wurf?

Absolutely! We welcome contributions from anyone who finds the tool useful and would like to improve or extend its functionality. Feel free to submit pull requests, especially those that help modernize and maintain the codebase.

Why not keep the name woof?

We chose to rename the fork to wurf to reflect its new direction and functionality. wurf stands for "Web Upload and Receive File," emphasizing the enhanced features and modernization efforts we would like to make, particularly for Python 3.x compatibility and TLS support. The name change also helps signal that this is an actively maintained project, distinct from the original woof. While we respect the origins of woof, wurf represents a fresh, forward-looking approach for our needs and contributions.