anchor / tingle Goto Github PK
View Code? Open in Web Editor NEWA package updater for busy system administrators
License: BSD 2-Clause "Simplified" License
A package updater for busy system administrators
License: BSD 2-Clause "Simplified" License
We've observed that tingle check
will occasionally return a false negative, indicating that there are no pending updates, when in fact there are plenty. We eventually nailed this down to yum outputting Bold terminal codes, which breaks the awk regex in check-updates-rpm
.
yum outputs bold text when the updated packages have already been downloaded but not installed, assuming that coloured output is enabled by default. This will occur if you check
after a warm
, or if the process is halted before/during the apply
phase; rare but not implausible.
There are a few solutions to this that we can see:
TERM=dumb tingle check
check-updates-rpm
to accept and ignore terminal control codescheck-updates-rpm
to invoke yum with --color=never
bigpty
to pass a suitable environment to subprocess.call
, which would potentially affect/break/fix any other scripts that make use of bigpty
It's noted that this issue only affects interactive use. We've been using at
to schedule our tingle runs and they work just fine because jobs appear to be run with TERM=dumb
.
We have no particular preference for how/where the fix is made.
Hi,
I've been working on an OpenBSD driver for tingle using the new syspatch(8) utility due for release with OpenBSD 6.1.
Currently, tingle makes a few GNUish assumptions which mean that it cannot be correctly installed on a non-GNU system without patching every source file:
#!/bin/bash
. Were this the only issue, it could be easily addressed by changing it to #!/usr/bin/env bash
.$PATH
to /usr/sbin:/usr/bin:/sbin:/bin
, meaning that systems which place bash
in /usr/local/bin
would not find it even with /usr/bin/env
in the shebang.$TINGLE_PREFIX
) assume that tingle is to be installed under /usr
. This is not generally a correct assumption even on GNU systems; /usr
is typically reserved for package-managed files, while a sysadmin who runs make install
would expect the installation to end up under /usr/local
.The first two points can be easily resolved by removing the explicit $PATH
and changing each shebang to #!/usr/bin/env bash
. I do not see value in overriding whatever $PATH
the sysadmin has provided.
The third is trickier, since scripts need to know how to find their libraries somehow, and bash does not provide a standard library include path. I can see three options here:
/etc
which specifies where to find the system-wide tingle installation. This may be problematic because:
/etc
for third-party software, this is not a portable assumption in general (e.g., FreeBSD uses /usr/local/etc
).$0
). This probably provides the best trade-off between portability and simplicity, but note that $0
may not always be a fully qualified path if the user did not invoke tingle
using a fully qualified path. However, Darwin is the only system I am aware of where it is not, and tingle is unlikely to be used on Darwin systems.I am happy to work on a solution and create a PR once I know what kind of solution might be accepted.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.