Comments (11)
Alternatively, can we make it executable and useful instead? When manually executed it could work as a config file sanity tester, i.e. just sourcing the config files in verbose -x mode and then exit with an "success" if that did not result in an error.
Sounds good, done.
from corridor.
What about the man pages? I think I could also write them in markdown, then convert them roff and eventually send a pull request here.
They are looking quite okay, I think. You can see one created that way in action in Whonix. Example:
man tor-ctrl
from corridor.
What about the man pages?
What do you think about a combined manpage (i.e. man corridor
, symlinked to the individual command names)? It could show how everything fits together, and would probably avoid some redundancy.
I think I could also write them in markdown, then convert them roff and eventually send a pull request here.
Either way would be fine, I'd check in both your source and the generated output anyway. Like it's often done for configure.ac
and configure
.
They are looking quite okay, I think.
Yeah, even the generated roff code doesn't look terrible. I like it!
from corridor.
I don't know if a combined man page would be acceptable by Debian policy or otherwise. I will ask.
Debian request for packaging feature request:
RFP: corridor - a Tor traffic whitelisting gateway
- http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=829740
- http://lists.alioth.debian.org/pipermail/pkg-privacy-maintainers/Week-of-Mon-20160704/000814.html
Perhaps for getting this into official Debian, I would have to become upstream. I'd be maintaining a Debian friendly fork of corridor. This is because for getting this packages, I patched the makefile and added an additional dependency, genmkfile. Let's see what pkg-privacy-maintainers say and how supportive they are.
from corridor.
I am not wiser about the combined manpage yet. Will ask in another place.
What however would work would be having just one corridor binary in /usr/sbin/corridor which would just be a stub calling the others scripts from /usr/share/corridor/{forwarding-init,...}. Then a combined manpage would certainly be possible. Whether this is a good idea is another question.
from corridor.
W: corridor: executable-not-elf-or-script usr/sbin/corridor-load-config
Fixed:
I am not wiser about the combined manpage yet. Will ask in another place.
Asked:
https://lists.debian.org/debian-mentors/2016/07/threads.html
from corridor.
A combined manpage is permissible.
from corridor.
As of adrelanos@e9907c9:
git diff --stat rustybird/master
Makefile | 43 ++------
Makefile_orig | 37 +++++++
README.debian | 5 +
changelog.upstream | 844 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
debian/changelog | 12 ++
debian/compat | 1 +
debian/control | 37 +++++++
debian/copyright | 31 ++++++
debian/corridor.links | 10 ++
debian/corridor.postinst | 43 ++++++++
debian/corridor.postrm | 36 ++++++
debian/gain-root-command | 7 ++
debian/rules | 17 +++
debian/source/format | 1 +
debian/source/lintian-overrides | 2 +
debian/watch | 7 ++
make-helper-overrides.bsh | 25 +++++
17 files changed, 1127 insertions(+), 31 deletions(-)
from corridor.
Nice! Some things I've noticed:
- README.debian can be deleted now
- From my cursory understanding of git-based Debian packaging, it sounds like all Debian specific files should go into debian/ and the top level directory be unchanged
- Is the custom Makefile and the genmkfile dependency still needed?
- Seems strange to ship almost a thousand lines of upstream.changelog in the same git repository it is generated from. Maybe it could be a line in debian/rules.
- The ruby-ronn dependency might be unnecessary, installation uses the precompiled version
from corridor.
Rusty Bird:
Nice! Some things I've noticed:
- README.debian can be deleted now
Done.
- From my cursory understanding of git-based Debian packaging, it sounds like all Debian specific files should go into debian/ and the top level directory be unchanged
Usually yes.
- Is the custom Makefile and the genmkfile dependency still needed?
Yes.
- Seems strange to ship almost a thousand lines of upstream.changelog in the same git repository it is generated from. Maybe it could be a line in debian/rules.
If is required for Debian packaging. Not strictly required, but then the
package is free of any lintian --pedantic warnings.
Used in debian/rules:
override_dh_installchangelogs:
dh_installchangelogs changelog.upstream upstream
If upstream does not provide an upstream changelog, this is a legitimate
way to generate one.
It could be automatically created during package build in theory, but
Debian source packages are spare out the '.git' folder. So the Debian
source package already has to include the upstream tarball.
This situation will likely improve when debian/source/format 3.0 (git)
GitSrc is ready. Good that I am reminded.
asked on debian-mentors mailing list:
What is the status of debian/source/format 3.0 (git) GitSrc?
- The ruby-ronn dependency might be unnecessary, installation uses the precompiled version
Done.
from corridor.
If you are wondering, why I am using genmkfile... genmkfile's make help
.
make help
Show this help.
make dist
Create package-version.tar.gz from source files in $DISTDIR (default "..").
make undist
Delete package-version.tar.gz from source files in $DISTDIR (default "..").
make debdist
Create debian.tar.gz from source files in $DISTDIR (default "..").
make undebdist
Delete debian.tar.(gz|xz) from source files in $DISTDIR (default "..").
make manpages
Create man page from man source folder, which will be stored in debian/tmp-man folder.
make uch
Store upstream changelog from git log in changelog.upstream.
make install
Copying the files from the source tree to system-wide directories.
make installsim
Simulate copying the files from the source tree to system-wide directories.
make deb-build-dep
Install build dependencies listed in debian/control under Build-Depends using apt-get.
Various environment variables supported.
make deb-pkg
Create a deb, which will be stored in parent folder.
make deb-pkg-install
Create a deb, which will be stored in parent folder, and install it.
make deb-install
Install deb from parent folder.
make deb-icup
Combination of make deb-pkg, make deb-pkg-install and make deb-pkg-cleanup.
make deb-remove
apt-get remove make_source_package_name
make deb-purge
apt-get purge make_source_package_name
make deb-clean
Delete temporary debhelper files.
make deb-cleanup
Same as make deb-clean and deletes debuild artifacts from parent folder.
make dput-ubuntu-ppa
Upload to Ubuntu ppa. Requires functional .dput.cf.
make clean
Currently same as make deb-clean.
make distclean
Currently same as make clean.
make checkout
Fetch from git.
make installcheck
Check if source files match installed files.
make uninstallcheck
Check if make uninstall removed all files.
make uninstall
Delete all installed files.
make uninstallsim
Simulate what make uninstall would do.
make deb-chl-bumpup-manual
Manual upstream version number in debian/changelog.
make deb-uachl-bumpup-manual
Combination of make uch and make deb-chl-bumpup.
make deb-chl-bumpup-major
Major bump upstream version number in debian/changelog.
make deb-uachl-bumpup-major
Combination of make uch and make deb-chl-bumpup.
make git-tag-sign
git tag (-s) sign latest pkg_version_with_revision from debian/changelog. Only a repository sanity check. Not for security purposes!
make git-tag-verify
git tag (-v) verify latest pkg_version_with_revision from debian/changelog. Only a repository sanity check. Not for security purposes!
make git-tag-check
Check if current git head is a signed git tag. Only a repository sanity check. Not for security purposes!
make git-commit-verify
Check if current git head is a signed git commit. Only a repository sanity check. Not for security purposes!
make git-verify
Combination of tag-check and commit-verify. Only a repository sanity check. Not for security purposes!
make git-tag-push
git push latest pkg_version_with_revision from debian/changelog. (Environment variable make_git_tag_push_targets, that defaults to 'origin'.)
make git-tag-push-latest
git push most recent git tag. (Environment variable make_git_tag_push_targets, that defaults to 'origin'.)
make reprepro-add
Add main deb package using reprepro wrapper (Environment variable make_reprepro_wrapper, that default to 'reprepro'.)
to repository (Environment variable make_reprepro_codename, that defaults to 'developers'.).
(Some of that is broken for corridor.)
It somewhat standardizes packaging trivially packageable stuff. (I am not saying corridor is trivial! Just sh/bash/scripts that do not require compilation are intrinsically easy to package.) It helps me with questions such as:
- "What was the command to generate a deterministic upstream tarball again?" I could make this a local shell alias, but I find that intransparent. I prefer having this command public. It could be implemented per project, I could write a feature request "please provide a make dist" target
- Among other handy stuff that I need for packaging, builds, repository generation.
- This allows me to maintain a big number of packages with more ease / time efficient since these are all very similar.
from corridor.
Related Issues (20)
- please avoid symlinks / breaks Debian packaging HOT 4
- please merge qubes subfolder HOT 2
- Qubes mkdir -p "$RELAYS_STATE" missing HOT 1
- Qubes: systemd corridor-data.service should wait for /rw HOT 2
- Qubes: also process /rw/corridor.d configuration folder HOT 2
- firewall lockdown failure mode HOT 1
- clarify alpha / beta / stable
- clarify compatibility with ufw HOT 2
- testing on Debian host HOT 17
- systemd broken dependencies, ordering cycle, Unknown lvalue 'Require' in section 'Unit' HOT 11
- start corridor-data.service after tor.service HOT 2
- corridor config in /usr/local [/rw] ignored HOT 2
- corridor systemd services hang during corridor upgrades HOT 1
- corridor-init-forwarding.service use Before=shutdown.target Conflicts=shutdown.target HOT 4
- missing make all target HOT 5
- add IPv6 support / port to nftables or Berkeley Packet Filter (BPF) HOT 1
- corridor causes Tor assertion failure on Qubes-Fedora-26-minimal standalone proxyVM HOT 5
- /etc/torrc.d/ vs bridges grep? HOT 4
- systemd WantedBy=multi-user.target correct - resulting in applications using networking before corridor firewall rules are load? HOT 4
- does not fail systemd unit file if folder inaccessible HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from corridor.