summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2020-02-21Make autopkgtests cross-test-friendlySteve Langasek2-2/+3
* debian/tests/control: Declare dependency on adequate as native. * debian/tests/control: Let run-testsuite also depend on libpcre3. * Mark zsh-doc as "Multi-Arch: foreign". Gbp-Dch: Full
2020-02-1945447: Complete vcs_info_hookadd and vcs_info_hookdel. Expose ↵Daniel Shahaf4-3/+41
_vcs_info_hooks as a top-level helper function.
2020-02-1845463: test: kill: Document why we use SIGURGChris Down2-0/+12
See discussion in workers/45460.
2020-02-1845453: builtins: kill: Do not signal current process group when pid is emptyChris Down3-3/+15
The following case was encountered in the wild: % zsh; echo "$?" % trap 'exit 5' TERM % kill '' 5 This behaviour seems more likely to be the result of bugs in programs (e.g. `kill -9 "$unsetvar") rather than being desirable behaviour to me. It also seems unintentional judging by the code and documentation, since it comes about as a result of the fact that: - `isanum` returns true for empty strings (since an empty string technically only consists of digits and minuses...); - `atoi`, when passed a pointer to an invalid number, returns 0; - `kill(0, signal)` sends the signal in question to all processes in the current process group. There are (at least) two ways to solve this issue: 1. Add special handling to `kill` to avoid this case. See this patch[0] for a version that does that. 2. Change how isanum behaves. Since the only two call sites that use it both seem like they should handle the case where the input char array is empty, that seems like a reasonable overall change to me.[1] After this patch: % trap 'exit 5' TERM % kill '' kill: illegal pid: The regression test for `kill` without a sigspec is also included in this commit, as previously it's not possible to test it trivially as it would still kill the test runner in expected-to-fail mode; see discussion in workers/45449. 0: workers/45426: https://www.zsh.org/mla/workers/2020/msg00251.html 1: The other call site using isanum() is the fg builtin, but in that case we just fail later since we can't find any job named '', so no big deal either way. It's the kill case which is more concerning.
2020-02-1845452: builtins: kill: Add `kill ''` regression test with explicit sigspecChris Down2-0/+12
The version without a sigspec can't be added yet because it would still kill the test runner even in expected-to-fail mode; see workers/45449 for discussion. For the same reason, we use a signal which is non-fatal by default and unlikely to be sent by someone else, SIGURG, to do the expected-to-fail case prior to the fix.
2020-02-1845451: builtins: kill: Add basic test suiteChris Down2-0/+64
This is not totally comprehensive, but at least it's a start for the core functionality. In the next commits, we'll also use this base to add some regression tests.
2020-02-18Upload to unstable as 5.8-2Axel Beckert1-0/+9
2020-02-17d/zshrc: Tighten regexDaniel Shahaf1-1/+1
It matched VERSION_ID and might match other keys or values as well.
2020-02-17Fix advice in comment: zprofile isn't sourced by non-login interactive shells.Daniel Shahaf1-1/+1
2020-02-17github #48/0002: vcs_info git: properly detect bare repositoriesbrian m. carlson2-0/+8
We currently detect Git repositories by finding the top level of the working tree, and if we fail to detect it, assume that we're not in a repository. However, there's a case we don't consider: a bare repository. Let's detect if the user is in a bare repository by checking if gitdir is set, and if so, using that if there is no working tree. We now detect bare Git repositories with vcs_info, as expected.
2020-02-17github #48/0001: vcs_info git: avoid warnings in bare repositoriesbrian m. carlson2-1/+7
Git 2.25 introduced a change to how git rev-parse --show-toplevel behaves. Traditionally, it succeeded with no output if the user was in a bare repository. Now it dies, printing an error to standard error. Consequently, when the user is in a bare repository with a newer Git, vcs_info prints noisily to standard error. While this is functionally harmless, it is annoying for the shell to print messages from Git every time the prompt is printed, so let's silence the error message.
2020-02-16Upload to unstable as 5.8-1Axel Beckert1-5/+46
Urgency is kept at the default value "medium" despite the upload containing one security fix. Reasoning: * The fixed security vulnerability is considered to be only minor. * The upload contains a bunch of other changes which are deemed to be good, but there's some chance that thet cause unexpected results in corner cases. * autopkgtest reduces the migration interval from 5 to 3 days anyways.
2020-02-16Update pkg-zsh-workflow-new-upstream-release.md for switching to upstream ↵Axel Beckert1-18/+38
tar-balls
2020-02-16Declare adequate test to be superficialAxel Beckert1-0/+1
2020-02-16Retroactively list #924736 as fixed in previous uploadAxel Beckert1-0/+1
2020-02-16Add a debian/rules convenience target to restore files from git which were ↵Axel Beckert1-0/+5
removed in the clean target
2020-02-16Add lintian override for "zsh-dev: package-contains-no-arch-dependent-files"Axel Beckert1-0/+3
/usr/include/zsh/config.h _is_ architecture-dependent, just not a binary. Gbp-Dch: Full
2020-02-16Get debian/source/options's extend-diff-ignore back in sync with ↵Axel Beckert1-1/+1
debian/clean to avoid unnecessary warnings
2020-02-16Add libgdbm-dev as build-dependency to build the zsh gdbm moduleAxel Beckert1-0/+1
Thanks: Daniel Shahaf
2020-02-16Fix FTBFS if libncurses-dev provided the libncursesw5-dev build-dependencyAxel Beckert1-1/+5
Thanks: Daniel Shahaf for helping to figure out how to solve this issue properly.
2020-02-16debian/zshrc: Enable completions only on Ubuntu and derivatives by defaultAxel Beckert1-1/+1
2020-02-16Apply changes from Ubuntu's zsh 5.7.1-1ubuntu2 packageAxel Beckert5-0/+78
… except all debian/changelog entries and modifying the Maintainer field. This includes: * debian/zshrc: Enable completions by default, unless skip_global_compinit is set. * Support cross-compiling: + Adjust upstream autoconf cross-compile default fallbacks. + Skip zcompile when cross-compiling. + Add libelf-dev build-dependency. Gbp-Dch: Full
2020-02-16Drop the get-orig-source target, no more neededAxel Beckert1-7/+0
2020-02-16debian/gbp.conf: Declare upstream-vcs-tag formatAxel Beckert1-0/+3
It seems as if this was not necessary when I ran gbp import-orig for 5.8 (found and merged the nevertheless), but it should cause no harm to declare it anyway.
2020-02-16Add some more files from the original upstream tar ball, but not in upstream ↵Axel Beckert1-0/+2
git, to debian/clean Only leave out Src/patchlevel.h.release.
2020-02-16Update debian/changelogAxel Beckert1-0/+12
Gbp-Dch: Ignore
2020-02-16Update upstream source from tag 'upstream/5.8'Axel Beckert136-219/+100191
Update to upstream version '5.8' with Debian dir b7a9cb7b782a12a49dca06e06ca2554b5a95bf93
2020-02-16New upstream version 5.8Axel Beckert136-219/+100191
2020-02-16Change upstream tag format to make gbp upstream tags coexist with upstream ↵Axel Beckert1-1/+1
git history
2020-02-16debian/watch: Comment out RC or dev releases due to #827814Axel Beckert1-2/+5
2020-02-16Switch debian/watch to version 4Axel Beckert1-1/+1
2020-02-14unposted: Post-release version bumpdana2-2/+4
2020-02-14unposted: Release 5.8dana2-2/+4
2020-02-14CVE-2019-20044: Update change log for preceding commitsdana1-0/+6
2020-02-14Update NEWS/READMEdana2-4/+25
2020-02-14Add unsetopt/PRIVILEGED testsdana3-1/+207
2020-02-14Clean up error-message white spacedana1-9/+21
2020-02-14Improve PRIVILEGED fixes (again)dana1-49/+43
* Pass RGID instead of passwd GID to initgroups() * Clean up #ifdefs, avoid unnecessary checks * Flatten conditions
2020-02-14Improve PRIVILEGED fixesDaniel Shahaf6-102/+292
- Fix retval handling in bin_setopt() - Don't skip_setuid / skip_setgid. It's not our place to optimize away noops (that might not even _be_ noops; they might change the saved uid…). - Remove HAVE_* guard checks around functions that are used unguarded elsewhere. - Use bsd-setres_id.c from OpenSSH to provide setresuid() / setresgid() everywhere, and thus simplify the ifdef soup. Fix some preëxisting bugs in the macro definitions of setuid() (do we still need that one?). - Fix zwarning() format codes for variadic arguments type safety - Restored a comment from HEAD - Fix failure modes around initgroups() - Compared privilege restoration code with OpenSSH's permanently_drop_uid() and updated as needed - Add E01 PRIVILEGED sanity checks
2020-02-14Drop privileges securelySam Foxman2-41/+124
2020-02-14unposted: V01zmodload: Fix failing test from workers/45385dana2-2/+7
2020-02-1445423: _su: Improve arg handling, shell look-upsdana2-12/+38
Differences from ML post: * Properly fix escaping issue with $usr (needs unescaped first) * Make $shell emptiness check easier to read (per feedback)
2020-02-14Upload to experimental as 5.7.1-test-3-1 with urgency=lowAxel Beckert1-2/+9
2020-02-14Declare compliance with Debian Policy 4.5.0. (No changes needed.)Axel Beckert1-1/+1
2020-02-14Add lintian override for zsh sub-man-pagesAxel Beckert1-0/+3
2020-02-14Drop debian/copyright file stanza for file dropped upstreamAxel Beckert1-5/+0
2020-02-14Minor packaging workflow updateAxel Beckert1-1/+1
Gbp-Dch: Ignore
2020-02-14Add NEWS based on incompatibilities listed in upstream's README.Axel Beckert1-0/+29
Gbp-Dch: Ignore
2020-02-14Update debian/changelog for new upstream release candidateAxel Beckert1-0/+12
Gbp-Dch: Ignore
2020-02-14Merge tag 'zsh-5.7.1-test-3' into debianAxel Beckert362-4671/+11357
Test release: 5.7.1-test-3