##// END OF EJS Templates
dockerlib: allow non-unique uid and gid of $DBUILDUSER (issue4657)...
dockerlib: allow non-unique uid and gid of $DBUILDUSER (issue4657) There are make targets for building mercurial packages for various distributions using docker. One of the preparation steps before building is to create inside the docker image a user with the same uid/gid as the current user on the host system, so that the resulting files have appropriate ownership/permissions. It's possible to run `make docker-<distro>` as a user with uid or gid that is already present in a vanilla docker container of that distibution. For example, issue4657 is about failing to build fedora packages as a user with uid=999 and gid=999 because these ids are already used in fedora, and groupadd fails. useradd would fail too, if the flow ever got to it (and there was a user with such uid already). A straightforward (maybe too much) way to fix this is to allow non-unique uid and gid for the new user and group that get created inside the image. I'm not sure of the implications of this, but marmoute encouraged me to try and send this patch for stable.

File last commit:

r22046:7a9cbb31 default
r26888:271a8020 stable
Show More
test-oldcgi.t
76 lines | 2.0 KiB | text/troff | Tads3Lexer
#require no-msys # MSYS will translate web paths as if they were file paths
This tests if CGI files from before d0db3462d568 still work.
$ hg init test
$ cat >hgweb.cgi <<HGWEB
> #!/usr/bin/env python
> #
> # An example CGI script to use hgweb, edit as necessary
>
> import cgitb, os, sys
> cgitb.enable()
>
> # sys.path.insert(0, "/path/to/python/lib") # if not a system-wide install
> from mercurial import hgweb
>
> h = hgweb.hgweb("test", "Empty test repository")
> h.run()
> HGWEB
$ chmod 755 hgweb.cgi
$ cat >hgweb.config <<HGWEBDIRCONF
> [paths]
> test = test
> HGWEBDIRCONF
$ cat >hgwebdir.cgi <<HGWEBDIR
> #!/usr/bin/env python
> #
> # An example CGI script to export multiple hgweb repos, edit as necessary
>
> import cgitb, sys
> cgitb.enable()
>
> # sys.path.insert(0, "/path/to/python/lib") # if not a system-wide install
> from mercurial import hgweb
>
> # The config file looks like this. You can have paths to individual
> # repos, collections of repos in a directory tree, or both.
> #
> # [paths]
> # virtual/path = /real/path
> # virtual/path = /real/path
> #
> # [collections]
> # /prefix/to/strip/off = /root/of/tree/full/of/repos
> #
> # collections example: say directory tree /foo contains repos /foo/bar,
> # /foo/quux/baz. Give this config section:
> # [collections]
> # /foo = /foo
> # Then repos will list as bar and quux/baz.
>
> # Alternatively you can pass a list of ('virtual/path', '/real/path') tuples
> # or use a dictionary with entries like 'virtual/path': '/real/path'
>
> h = hgweb.hgwebdir("hgweb.config")
> h.run()
> HGWEBDIR
$ chmod 755 hgwebdir.cgi
$ . "$TESTDIR/cgienv"
$ python hgweb.cgi > page1
$ python hgwebdir.cgi > page2
$ PATH_INFO="/test/"
$ PATH_TRANSLATED="/var/something/test.cgi"
$ REQUEST_URI="/test/test/"
$ SCRIPT_URI="http://hg.omnifarious.org/test/test/"
$ SCRIPT_URL="/test/test/"
$ python hgwebdir.cgi > page3
$ grep -i error page1 page2 page3
[1]