#16282 closed defect (fixed)
emacs 22.2: bad use of chown in destroot stage
| Reported by: | vinc17@… | Owned by: | darren.bane@… |
|---|---|---|---|
| Priority: | Normal | Milestone: | |
| Component: | ports | Version: | 1.6.0 |
| Keywords: | Cc: | ||
| Port: |
Description
I get the following errors:
---> Staging emacs into destroot
[...]
for dir in /opt/local/var/macports/build/_Users_vinc17_software_dports_editors_emacs/work/emacs-22.2/etc /opt/local/var/macports/build/_Users_vinc17_software_dports_editors_emacs/work/emacs-22.2/lisp ; do \
dest=$1 ; shift ; \
[ -d ${dir} ] \
&& [ `(cd ${dir} && /bin/pwd)` != `(cd ${dest} && /bin/pwd)` ] \
&& (echo "Copying ${dir} to ${dest}..." ; \
(cd ${dir}; tar -chf - . ) \
| (cd ${dest}; umask 022; \
tar -xvf - && cat > /dev/null) || exit 1; \
find ${dest} -exec chown ${LOGNAME:-$USERNAME} {} ';' ;\
for subdir in `find ${dest} -type d ! -name RCS ! -name CVS -print` ; do \
chmod a+rx ${subdir} ; \
rm -rf ${subdir}/RCS ; \
rm -rf ${subdir}/CVS ; \
rm -f ${subdir}/.cvsignore ; \
rm -f ${subdir}/.arch-inventory ; \
rm -f ${subdir}/\#* ; \
rm -f ${subdir}/.\#* ; \
rm -f ${subdir}/*~ ; \
rm -f ${subdir}/*.orig ; \
rm -f ${subdir}/[mM]akefile* ; \
rm -f ${subdir}/ChangeLog* ; \
rm -f ${subdir}/dired.todo ; \
done) ; \
done
Copying /opt/local/var/macports/build/_Users_vinc17_software_dports_editors_emacs/work/emacs-22.2/etc to /opt/local/var/macports/build/_Users_vinc17_software_dports_editors_emacs/work/destroot/opt/local/share/emacs/22.2/etc...
./
./BABYL
./calccard.ps
./calccard.tex
[...]
./yow.lines
usage: chown [-fhv] [-R [-H | -L | -P]] owner[:group] file ...
chown [-fhv] [-R [-H | -L | -P]] :group file ...
usage: chown [-fhv] [-R [-H | -L | -P]] owner[:group] file ...
chown [-fhv] [-R [-H | -L | -P]] :group file ...
[...]
Here "sudo env | grep NAME" gives:
LOGNAME=root USERNAME=vinc17
I suppose that the problem is that MacPorts undefines both LOGNAME and USERNAME.
Attachments (3)
Change History (9)
comment:1 Changed 18 years ago by vinc17@…
| Owner: | changed from macports-tickets@… to darren.bane@… |
|---|
comment:2 Changed 18 years ago by vinc17@…
Replying to vinc17@macports.org:
I suppose that the problem is that MacPorts undefines both LOGNAME and USERNAME.
Indeed, if I insert
echo "chown '$${LOGNAME:-$$USERNAME}' ..." ; \
before the "find $${dest} -exec chown", I get:
chown '' ...
I think that a fix would be to remove all these unnecessary chown's. Or MacPorts base should be fixed to keep LOGNAME set to a valid value (I wonder if unsetting it is allowed by POSIX).
comment:3 Changed 18 years ago by raimue (Rainer Müller)
Can someone explain why emacs wants to change the owner at all? Would it be a problem if it is owned by root?
Changed 18 years ago by darren.bane@…
| Attachment: | patch-Portfile.diff added |
|---|
Patch against editors/emacs/Portfile
Changed 18 years ago by darren.bane@…
| Attachment: | patch-Makefile.in.diff added |
|---|
New patch, to go in editors/emacs/files
Changed 18 years ago by darren.bane@…
| Attachment: | patch-leim-Makefile.in.diff added |
|---|
New patch, to go in editors/emacs/files
comment:4 Changed 18 years ago by darren.bane@…
I agree that the chowns are unnecessary, and have uploaded patches to remove them. Can someone with commit privs do the honours please?
Also, the other patches in editors/emacs/files are no longer used and can be removed.
comment:5 Changed 18 years ago by febeling@…
| Resolution: | → fixed |
|---|---|
| Status: | new → closed |
I did so in r39221 and close the ticket.

Forgot to assign to maintainer...