This is the mail archive of the cygwin mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Cygwin 1.7.12-1: exit code 1 during post-install regarding dirs in /dev


On Apr  4 15:38, Andre Loker wrote:
> Am 04.04.2012 15:04, schrieb Corinna Vinschen:
> >On Apr  4 14:12, Corinna Vinschen wrote:
> >>On Apr  4 12:24, Andre Loker wrote:
> >>>I *suppose*  the issue is related to this change in 1.7.12:
> >>>"- Cygwin now automatically populates the /dev directory with all
> >>>existing POSIX devices."
> >>>
> >>>Do I have to take any actions regarding those issues? If so, which?
> >>Thanks for the report.  That's a blatant bug in the /dev handling.
> >>I hope I fixed it sufficiently in CVS.  I'm just generating a new
> >>snapshot which should be available in about half an hour on
> >>http://cygwin.com/snapshots/
> >>
> >>Please give it a try.  For instance, call the /etc/postinstall/bash.sh
> >>and /etc/postinstall/000-cygwin-post-install.sh files manually ands
> >>report back if they do what they should in terms of /dev.  Maybe the
> >>scripts now have a .done suffix, but you should still be able to run
> >>them.
> >Snapshot is uploaded.  Please test ASAP.
> >
> $ ./000-cygwin-post-install.sh.done
> mkdir: cannot create directory `/dev/shm': Read-only file system

Ok, this is a problem with the 000-cygwin-post-install.sh script now:

  if [ ! -e "${DEVDIR}" ]
  then
    mkdir -m 755 "${DEVDIR}"
    if [ ! -e "${DEVDIR}" ]
    then
      echo
      echo "Creating ${DEVDIR} directory failed."
      echo "Please fix that manually, otherwise you WILL get problems."
      echo
      exit 1
    fi
  fi

The non-device files under /dev can only be created, if /dev exists
on disk.  

However, if /dev does not exist as real directory on disk, it's handled
as virtual read-only filesystem to be able to list the device files even
then.  Therefore the first 

  if [ ! -e "${DEVDIR}" ]

fails and the mkdir is never called.  Consequentially subsequent calls
to create files and/or directories fail as well.  So the above code has
to be changed like this:

  mkdir -m 755 "${DEVDIR}" 2> /dev/null
  if [ ! -e "${DEVDIR}" ]
  then
    echo
    echo "Creating ${DEVDIR} directory failed."
    echo "Please fix that manually, otherwise you WILL get problems."
    echo
    exit 1
  fi

This works for me.  Can you test this as well, please?  I will fix the
base-cygwin package ASAP.


Thanks,
Corinna

-- 
Corinna Vinschen                  Please, send mails regarding Cygwin to
Cygwin Project Co-Leader          cygwin AT cygwin DOT com
Red Hat

--
Problem reports:       http://cygwin.com/problems.html
FAQ:                   http://cygwin.com/faq/
Documentation:         http://cygwin.com/docs.html
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]